diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..7b86f2d --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1092 @@ +{ + "name": "create-routify", + "version": "1.3.2", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "create-routify", + "version": "1.3.2", + "license": "MIT", + "dependencies": { + "kleur": "^4.1.5", + "log-symbols": "^5.1.0", + "minimist": "^1.2.7", + "prompts": "^2.4.2", + "simple-git": "^3.15.1", + "update-notifier": "^6.0.2" + }, + "bin": { + "create-routify": "src/bin.js" + }, + "devDependencies": { + "@types/prompts": "^2.4.2", + "@types/update-notifier": "^6.0.1" + } + }, + "node_modules/@kwsites/file-exists": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", + "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", + "dependencies": { + "debug": "^4.1.1" + } + }, + "node_modules/@kwsites/promise-deferred": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", + "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==" + }, + "node_modules/@pnpm/network.ca-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", + "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", + "dependencies": { + "graceful-fs": "4.2.10" + }, + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/npm-conf": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-1.0.5.tgz", + "integrity": "sha512-hD8ml183638O3R6/Txrh0L8VzGOrFXgRtRDG4qQC4tONdZ5Z1M+tlUUDUvrjYdmK6G+JTBTeaCLMna11cXzi8A==", + "dependencies": { + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@sindresorhus/is": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", + "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/@types/configstore": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@types/configstore/-/configstore-6.0.0.tgz", + "integrity": "sha512-GUvNiia85zTDDIx0iPrtF3pI8dwrQkfuokEqxqPDE55qxH0U5SZz4awVZjiJLWN2ZZRkXCUqgsMUbygXY+kytA==", + "dev": true + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, + "node_modules/@types/node": { + "version": "18.13.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.13.0.tgz", + "integrity": "sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==", + "dev": true + }, + "node_modules/@types/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@types/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-TwNx7qsjvRIUv/BCx583tqF5IINEVjCNqg9ofKHRlSoUHE62WBHrem4B1HGXcIrG511v29d1kJ9a/t2Esz7MIg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "kleur": "^3.0.3" + } + }, + "node_modules/@types/prompts/node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/update-notifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/update-notifier/-/update-notifier-6.0.2.tgz", + "integrity": "sha512-/OKZaYpzHqBO9D+IzqAB7VfC/fx+xl/CM1upD6D56QPNyvAsFULAVLfjlBIGCl1ibU1rKqZV45xOj018WqHhlA==", + "dev": true, + "dependencies": { + "@types/configstore": "*", + "boxen": "^7.0.0" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/boxen": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.1.tgz", + "integrity": "sha512-8k2eH6SRAK00NDl1iX5q17RJ8rfl53TajdYxE3ssMLehbg487dEVgsad4pIsZb/QqBgYWIl6JOauMTLGX2Kpkw==", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^7.0.0", + "chalk": "^5.0.1", + "cli-boxes": "^3.0.0", + "string-width": "^5.1.2", + "type-fest": "^2.13.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request": { + "version": "10.2.7", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.7.tgz", + "integrity": "sha512-I4SA6mKgDxcxVbSt/UmIkb9Ny8qSkg6ReBHtAAXnZHk7KOSx5g3DTiAOaYzcHCs6oOdHn+bip9T48E6tMvK9hw==", + "dependencies": { + "@types/http-cache-semantics": "^4.0.1", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.2", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/camelcase": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chalk": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", + "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/config-chain/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/configstore": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", + "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", + "dependencies": { + "dot-prop": "^6.0.1", + "graceful-fs": "^4.2.6", + "unique-string": "^3.0.0", + "write-file-atomic": "^3.0.3", + "xdg-basedir": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/yeoman/configstore?sponsor=1" + } + }, + "node_modules/crypto-random-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "dependencies": { + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/crypto-random-string/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/escape-goat": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", + "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "engines": { + "node": ">= 14.17" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got": { + "version": "12.5.3", + "resolved": "https://registry.npmjs.org/got/-/got-12.5.3.tgz", + "integrity": "sha512-8wKnb9MGU8IPGRIo+/ukTy9XLJBwDiCpIf5TVzQ9Cpol50eMTpBq2GAuDsuDIz7hTYmZgMgC1e9ydr6kSDWs3w==", + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.1", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "node_modules/has-yarn": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", + "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "node_modules/http2-wrapper": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-npm": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", + "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-yarn-global": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", + "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/keyv": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/latest-version": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", + "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", + "dependencies": { + "package-json": "^8.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", + "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "dependencies": { + "chalk": "^5.0.0", + "is-unicode-supported": "^1.1.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/normalize-url": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/package-json": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.0.tgz", + "integrity": "sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg==", + "dependencies": { + "got": "^12.1.0", + "registry-auth-token": "^5.0.1", + "registry-url": "^6.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prompts/node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==" + }, + "node_modules/pupa": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", + "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", + "dependencies": { + "escape-goat": "^4.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/registry-auth-token": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.1.tgz", + "integrity": "sha512-UfxVOj8seK1yaIOiieV4FIP01vfBDLsY0H9sQzi9EbbUdJiuuBjJgLa1DpImXMNPnVkBD4eVxTEXcrZA6kfpJA==", + "dependencies": { + "@pnpm/npm-conf": "^1.0.4" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/registry-url": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", + "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", + "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/simple-git": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.16.0.tgz", + "integrity": "sha512-zuWYsOLEhbJRWVxpjdiXl6eyAyGo/KzVW+KFhhw9MqEEJttcq+32jTWSGyxTdf9e/YCohxRE+9xpWFj9FdiJNw==", + "dependencies": { + "@kwsites/file-exists": "^1.1.1", + "@kwsites/promise-deferred": "^1.1.1", + "debug": "^4.3.4" + }, + "funding": { + "type": "github", + "url": "https://github.com/steveukx/git-js?sponsor=1" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/unique-string": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", + "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", + "dependencies": { + "crypto-random-string": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", + "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", + "dependencies": { + "boxen": "^7.0.0", + "chalk": "^5.0.1", + "configstore": "^6.0.0", + "has-yarn": "^3.0.0", + "import-lazy": "^4.0.0", + "is-ci": "^3.0.1", + "is-installed-globally": "^0.4.0", + "is-npm": "^6.0.0", + "is-yarn-global": "^0.4.0", + "latest-version": "^7.0.0", + "pupa": "^3.1.0", + "semver": "^7.3.7", + "semver-diff": "^4.0.0", + "xdg-basedir": "^5.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/widest-line": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "dependencies": { + "string-width": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/xdg-basedir": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", + "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } +} diff --git a/src/bin.js b/src/bin.js index 02042fa..ff137e1 100755 --- a/src/bin.js +++ b/src/bin.js @@ -1,8 +1,8 @@ #!/usr/bin/env node -import updateNotifier from 'update-notifier'; import { readFile } from 'fs/promises'; -import { run } from '../src/index.js'; import minimist from 'minimist'; +import updateNotifier from 'update-notifier'; +import { run } from '../src/index.js'; const args = minimist(process.argv.slice(2)); diff --git a/src/index.js b/src/index.js index 8b23e07..4af3592 100644 --- a/src/index.js +++ b/src/index.js @@ -1,11 +1,10 @@ -import { onCancel } from './utils/prompts.js'; import { existsSync, readdirSync } from 'fs'; import { mkdir } from 'fs/promises'; +import k from 'kleur'; import symbols from 'log-symbols'; -import { relative } from 'path'; -import { resolve } from 'path'; +import { relative, resolve } from 'path'; import prompts from 'prompts'; -import k from 'kleur'; +import { onCancel } from './utils/prompts.js'; const versions = { 2: () => import('./versions/two.js'), diff --git a/src/versions/three/examples/typescript-tailwind-cypress/cypress.config.ts b/src/versions/three/examples/typescript-tailwind-cypress/cypress.config.ts new file mode 100644 index 0000000..98e47ab --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-cypress/cypress.config.ts @@ -0,0 +1,9 @@ +import { defineConfig } from 'cypress'; + +export default defineConfig({ + e2e: { + setupNodeEvents(on, config) { + // implement node event listeners here + }, + }, +}); diff --git a/src/versions/three/examples/typescript-tailwind-cypress/cypress/e2e/spec.cy.ts b/src/versions/three/examples/typescript-tailwind-cypress/cypress/e2e/spec.cy.ts new file mode 100644 index 0000000..41d485f --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-cypress/cypress/e2e/spec.cy.ts @@ -0,0 +1,7 @@ +describe('[Home] template spec', () => { + it('passes', () => { + cy.visit('http://localhost:1337/'); + + cy.get('h1').should('have.text', 'Routify 3'); + }); +}); diff --git a/src/versions/three/examples/typescript-tailwind-cypress/cypress/fixtures/example.json b/src/versions/three/examples/typescript-tailwind-cypress/cypress/fixtures/example.json new file mode 100644 index 0000000..02e4254 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-cypress/cypress/fixtures/example.json @@ -0,0 +1,5 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io", + "body": "Fixtures are a great way to mock data for responses to routes" +} diff --git a/src/versions/three/examples/typescript-tailwind-cypress/cypress/support/commands.ts b/src/versions/three/examples/typescript-tailwind-cypress/cypress/support/commands.ts new file mode 100644 index 0000000..698b01a --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-cypress/cypress/support/commands.ts @@ -0,0 +1,37 @@ +/// +// *********************************************** +// This example commands.ts shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add('login', (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) +// +// declare global { +// namespace Cypress { +// interface Chainable { +// login(email: string, password: string): Chainable +// drag(subject: string, options?: Partial): Chainable +// dismiss(subject: string, options?: Partial): Chainable +// visit(originalFn: CommandOriginalFn, url: string, options: Partial): Chainable +// } +// } +// } \ No newline at end of file diff --git a/src/versions/three/examples/typescript-tailwind-cypress/cypress/support/e2e.ts b/src/versions/three/examples/typescript-tailwind-cypress/cypress/support/e2e.ts new file mode 100644 index 0000000..f80f74f --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-cypress/cypress/support/e2e.ts @@ -0,0 +1,20 @@ +// *********************************************************** +// This example support/e2e.ts is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands' + +// Alternatively you can use CommonJS syntax: +// require('./commands') \ No newline at end of file diff --git a/src/versions/three/examples/typescript-tailwind-cypress/index.html b/src/versions/three/examples/typescript-tailwind-cypress/index.html new file mode 100644 index 0000000..fdaebc9 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-cypress/index.html @@ -0,0 +1,14 @@ + + + + + + Svelte app + + + + + + + + diff --git a/src/versions/three/examples/typescript-tailwind-cypress/package.json b/src/versions/three/examples/typescript-tailwind-cypress/package.json new file mode 100644 index 0000000..c97be56 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-cypress/package.json @@ -0,0 +1,27 @@ +{ + "name": "starter", + "type": "module", + "scripts": { + "build": "vite build", + "preview": "vite preview", + "dev": "vite", + "svelte-check": "svelte-check", + "cypress:open": "cypress open", + "cypress:test": "cypress run" + }, + "devDependencies": { + "cypress": "^12.5.1", + "@roxi/routify": "3.0.0-next.142", + "autoprefixer": "^10.4.13", + "tailwindcss": "^3.2.6", + "tailwindcss-debug-screens": "^2.2.1", + "postcss": "^8.4.21", + "@sveltejs/vite-plugin-svelte": "^2.0.0", + "@tsconfig/svelte": "^3.0.0", + "svelte": "^3.55.1", + "svelte-preprocess": "^5.0.1", + "typescript": "^4.9.5", + "vite": "^4.0.0", + "svelte-check": "^3.0.3" + } +} diff --git a/src/versions/three/examples/typescript-tailwind-cypress/postcss.config.cjs b/src/versions/three/examples/typescript-tailwind-cypress/postcss.config.cjs new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-cypress/postcss.config.cjs @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/src/versions/three/examples/typescript-tailwind-cypress/public/favicon.ico b/src/versions/three/examples/typescript-tailwind-cypress/public/favicon.ico new file mode 100644 index 0000000..1708f40 Binary files /dev/null and b/src/versions/three/examples/typescript-tailwind-cypress/public/favicon.ico differ diff --git a/src/versions/three/examples/typescript-tailwind-cypress/src/App.svelte b/src/versions/three/examples/typescript-tailwind-cypress/src/App.svelte new file mode 100644 index 0000000..42ab741 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-cypress/src/App.svelte @@ -0,0 +1,7 @@ + + + diff --git a/src/versions/three/examples/typescript-tailwind-cypress/src/app.css b/src/versions/three/examples/typescript-tailwind-cypress/src/app.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-cypress/src/app.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/src/versions/three/examples/typescript-tailwind-cypress/src/main.ts b/src/versions/three/examples/typescript-tailwind-cypress/src/main.ts new file mode 100644 index 0000000..1f104fa --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-cypress/src/main.ts @@ -0,0 +1,5 @@ +import App from './App.svelte' + +const app = new App({ target: document.body }) + +export default app diff --git a/src/versions/three/examples/typescript-tailwind-cypress/src/routes/index.svelte b/src/versions/three/examples/typescript-tailwind-cypress/src/routes/index.svelte new file mode 100644 index 0000000..61395f3 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-cypress/src/routes/index.svelte @@ -0,0 +1,7 @@ + + +
+

{name}

+
diff --git a/src/versions/three/examples/typescript-tailwind-cypress/tailwind.config.cjs b/src/versions/three/examples/typescript-tailwind-cypress/tailwind.config.cjs new file mode 100644 index 0000000..91e35d0 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-cypress/tailwind.config.cjs @@ -0,0 +1,9 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + darkMode: 'class', + content: ['./src/**/*.svelte', './src/**/*.css', './index.html'], + theme: { + extend: {}, + }, + plugins: [require('tailwindcss-debug-screens')], +}; diff --git a/src/versions/three/examples/typescript-tailwind-cypress/tsconfig.json b/src/versions/three/examples/typescript-tailwind-cypress/tsconfig.json new file mode 100644 index 0000000..0bf4141 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-cypress/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "@tsconfig/svelte/tsconfig.json", + "compilerOptions": { + "target": "esnext", + "useDefineForClassFields": true, + "module": "esnext", + "resolveJsonModule": true, + "baseUrl": ".", + "allowJs": true, + "checkJs": true + }, + "include": [ + "src//.d.ts", + "src/**/.ts", + "src//*.js", + "src//.svelte", + "src/main.ts", + "src/main.ts" + ] +} diff --git a/src/versions/three/examples/typescript-tailwind-cypress/vite.config.js b/src/versions/three/examples/typescript-tailwind-cypress/vite.config.js new file mode 100644 index 0000000..2814064 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-cypress/vite.config.js @@ -0,0 +1,26 @@ +import routify from '@roxi/routify/vite-plugin'; +import { svelte } from '@sveltejs/vite-plugin-svelte'; +import preprocess from 'svelte-preprocess'; +import { defineConfig } from 'vite'; + +const production = process.env.NODE_ENV === 'production'; + +export default defineConfig({ + clearScreen: false, + + plugins: [ + routify({ + ssr: { enable: false }, + }), + svelte({ + compilerOptions: { + dev: !production, + hydratable: !!process.env.ROUTIFY_SSR_ENABLE, + }, + extensions: ['.svelte'], + preprocess: [preprocess()], + }), + ], + + server: { port: 1337 }, +}); diff --git a/src/versions/three/examples/typescript-tailwind-playwright/index.html b/src/versions/three/examples/typescript-tailwind-playwright/index.html new file mode 100644 index 0000000..fdaebc9 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-playwright/index.html @@ -0,0 +1,14 @@ + + + + + + Svelte app + + + + + + + + diff --git a/src/versions/three/examples/typescript-tailwind-playwright/package.json b/src/versions/three/examples/typescript-tailwind-playwright/package.json new file mode 100644 index 0000000..9c37c16 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-playwright/package.json @@ -0,0 +1,26 @@ +{ + "name": "starter", + "type": "module", + "scripts": { + "build": "vite build", + "preview": "vite preview", + "dev": "vite", + "svelte-check": "svelte-check", + "test": "playwright test" + }, + "devDependencies": { + "@playwright/test": "^1.30.0", + "@roxi/routify": "3.0.0-next.142", + "autoprefixer": "^10.4.13", + "tailwindcss": "^3.2.6", + "tailwindcss-debug-screens": "^2.2.1", + "postcss": "^8.4.21", + "@sveltejs/vite-plugin-svelte": "^2.0.0", + "@tsconfig/svelte": "^3.0.0", + "svelte": "^3.55.1", + "svelte-preprocess": "^5.0.1", + "typescript": "^4.9.5", + "vite": "^4.0.0", + "svelte-check": "^3.0.3" + } +} diff --git a/src/versions/three/examples/typescript-tailwind-playwright/playwright.config.ts b/src/versions/three/examples/typescript-tailwind-playwright/playwright.config.ts new file mode 100644 index 0000000..1e38fa0 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-playwright/playwright.config.ts @@ -0,0 +1,12 @@ +import type { PlaywrightTestConfig } from '@playwright/test'; + +const config: PlaywrightTestConfig = { + webServer: { + command: 'npm run build && npm run preview', + port: 4173, + }, + reporter: 'list', + testDir: 'tests', +}; + +export default config; diff --git a/src/versions/three/examples/typescript-tailwind-playwright/postcss.config.cjs b/src/versions/three/examples/typescript-tailwind-playwright/postcss.config.cjs new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-playwright/postcss.config.cjs @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/src/versions/three/examples/typescript-tailwind-playwright/public/favicon.ico b/src/versions/three/examples/typescript-tailwind-playwright/public/favicon.ico new file mode 100644 index 0000000..1708f40 Binary files /dev/null and b/src/versions/three/examples/typescript-tailwind-playwright/public/favicon.ico differ diff --git a/src/versions/three/examples/typescript-tailwind-playwright/src/App.svelte b/src/versions/three/examples/typescript-tailwind-playwright/src/App.svelte new file mode 100644 index 0000000..42ab741 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-playwright/src/App.svelte @@ -0,0 +1,7 @@ + + + diff --git a/src/versions/three/examples/typescript-tailwind-playwright/src/app.css b/src/versions/three/examples/typescript-tailwind-playwright/src/app.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-playwright/src/app.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/src/versions/three/examples/typescript-tailwind-playwright/src/main.ts b/src/versions/three/examples/typescript-tailwind-playwright/src/main.ts new file mode 100644 index 0000000..1f104fa --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-playwright/src/main.ts @@ -0,0 +1,5 @@ +import App from './App.svelte' + +const app = new App({ target: document.body }) + +export default app diff --git a/src/versions/three/examples/typescript-tailwind-playwright/src/routes/index.svelte b/src/versions/three/examples/typescript-tailwind-playwright/src/routes/index.svelte new file mode 100644 index 0000000..61395f3 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-playwright/src/routes/index.svelte @@ -0,0 +1,7 @@ + + +
+

{name}

+
diff --git a/src/versions/three/examples/typescript-tailwind-playwright/tailwind.config.cjs b/src/versions/three/examples/typescript-tailwind-playwright/tailwind.config.cjs new file mode 100644 index 0000000..91e35d0 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-playwright/tailwind.config.cjs @@ -0,0 +1,9 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + darkMode: 'class', + content: ['./src/**/*.svelte', './src/**/*.css', './index.html'], + theme: { + extend: {}, + }, + plugins: [require('tailwindcss-debug-screens')], +}; diff --git a/src/versions/three/examples/typescript-tailwind-playwright/tests/home.spec.ts b/src/versions/three/examples/typescript-tailwind-playwright/tests/home.spec.ts new file mode 100644 index 0000000..2a81e1b --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-playwright/tests/home.spec.ts @@ -0,0 +1,7 @@ +import { expect, test } from '@playwright/test'; + +test('index page has expected h1', async ({ page }) => { + await page.goto('/'); + + expect(await page.textContent('h1')).toBe('Routify 3'); +}); diff --git a/src/versions/three/examples/typescript-tailwind-playwright/tsconfig.json b/src/versions/three/examples/typescript-tailwind-playwright/tsconfig.json new file mode 100644 index 0000000..0bf4141 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-playwright/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "@tsconfig/svelte/tsconfig.json", + "compilerOptions": { + "target": "esnext", + "useDefineForClassFields": true, + "module": "esnext", + "resolveJsonModule": true, + "baseUrl": ".", + "allowJs": true, + "checkJs": true + }, + "include": [ + "src//.d.ts", + "src/**/.ts", + "src//*.js", + "src//.svelte", + "src/main.ts", + "src/main.ts" + ] +} diff --git a/src/versions/three/examples/typescript-tailwind-playwright/vite.config.js b/src/versions/three/examples/typescript-tailwind-playwright/vite.config.js new file mode 100644 index 0000000..2814064 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind-playwright/vite.config.js @@ -0,0 +1,26 @@ +import routify from '@roxi/routify/vite-plugin'; +import { svelte } from '@sveltejs/vite-plugin-svelte'; +import preprocess from 'svelte-preprocess'; +import { defineConfig } from 'vite'; + +const production = process.env.NODE_ENV === 'production'; + +export default defineConfig({ + clearScreen: false, + + plugins: [ + routify({ + ssr: { enable: false }, + }), + svelte({ + compilerOptions: { + dev: !production, + hydratable: !!process.env.ROUTIFY_SSR_ENABLE, + }, + extensions: ['.svelte'], + preprocess: [preprocess()], + }), + ], + + server: { port: 1337 }, +}); diff --git a/src/versions/three/examples/typescript-tailwind/index.html b/src/versions/three/examples/typescript-tailwind/index.html new file mode 100644 index 0000000..fdaebc9 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind/index.html @@ -0,0 +1,14 @@ + + + + + + Svelte app + + + + + + + + diff --git a/src/versions/three/examples/typescript-tailwind/package.json b/src/versions/three/examples/typescript-tailwind/package.json new file mode 100644 index 0000000..ab737c2 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind/package.json @@ -0,0 +1,24 @@ +{ + "name": "starter", + "type": "module", + "scripts": { + "build": "vite build", + "preview": "vite preview", + "dev": "vite", + "svelte-check": "svelte-check" + }, + "devDependencies": { + "@roxi/routify": "3.0.0-next.142", + "autoprefixer": "^10.4.13", + "tailwindcss": "^3.2.6", + "tailwindcss-debug-screens": "^2.2.1", + "postcss": "^8.4.21", + "@sveltejs/vite-plugin-svelte": "^2.0.0", + "@tsconfig/svelte": "^3.0.0", + "svelte": "^3.55.1", + "svelte-preprocess": "^5.0.1", + "typescript": "^4.9.5", + "vite": "^4.0.0", + "svelte-check": "^3.0.3" + } +} diff --git a/src/versions/three/examples/typescript-tailwind/postcss.config.cjs b/src/versions/three/examples/typescript-tailwind/postcss.config.cjs new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind/postcss.config.cjs @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/src/versions/three/examples/typescript-tailwind/public/favicon.ico b/src/versions/three/examples/typescript-tailwind/public/favicon.ico new file mode 100644 index 0000000..1708f40 Binary files /dev/null and b/src/versions/three/examples/typescript-tailwind/public/favicon.ico differ diff --git a/src/versions/three/examples/typescript-tailwind/src/App.svelte b/src/versions/three/examples/typescript-tailwind/src/App.svelte new file mode 100644 index 0000000..42ab741 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind/src/App.svelte @@ -0,0 +1,7 @@ + + + diff --git a/src/versions/three/examples/typescript-tailwind/src/app.css b/src/versions/three/examples/typescript-tailwind/src/app.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind/src/app.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/src/versions/three/examples/typescript-tailwind/src/main.ts b/src/versions/three/examples/typescript-tailwind/src/main.ts new file mode 100644 index 0000000..1f104fa --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind/src/main.ts @@ -0,0 +1,5 @@ +import App from './App.svelte' + +const app = new App({ target: document.body }) + +export default app diff --git a/src/versions/three/examples/typescript-tailwind/src/routes/index.svelte b/src/versions/three/examples/typescript-tailwind/src/routes/index.svelte new file mode 100644 index 0000000..61395f3 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind/src/routes/index.svelte @@ -0,0 +1,7 @@ + + +
+

{name}

+
diff --git a/src/versions/three/examples/typescript-tailwind/tailwind.config.cjs b/src/versions/three/examples/typescript-tailwind/tailwind.config.cjs new file mode 100644 index 0000000..91e35d0 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind/tailwind.config.cjs @@ -0,0 +1,9 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + darkMode: 'class', + content: ['./src/**/*.svelte', './src/**/*.css', './index.html'], + theme: { + extend: {}, + }, + plugins: [require('tailwindcss-debug-screens')], +}; diff --git a/src/versions/three/examples/typescript-tailwind/tsconfig.json b/src/versions/three/examples/typescript-tailwind/tsconfig.json new file mode 100644 index 0000000..0bf4141 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "@tsconfig/svelte/tsconfig.json", + "compilerOptions": { + "target": "esnext", + "useDefineForClassFields": true, + "module": "esnext", + "resolveJsonModule": true, + "baseUrl": ".", + "allowJs": true, + "checkJs": true + }, + "include": [ + "src//.d.ts", + "src/**/.ts", + "src//*.js", + "src//.svelte", + "src/main.ts", + "src/main.ts" + ] +} diff --git a/src/versions/three/examples/typescript-tailwind/vite.config.js b/src/versions/three/examples/typescript-tailwind/vite.config.js new file mode 100644 index 0000000..2814064 --- /dev/null +++ b/src/versions/three/examples/typescript-tailwind/vite.config.js @@ -0,0 +1,26 @@ +import routify from '@roxi/routify/vite-plugin'; +import { svelte } from '@sveltejs/vite-plugin-svelte'; +import preprocess from 'svelte-preprocess'; +import { defineConfig } from 'vite'; + +const production = process.env.NODE_ENV === 'production'; + +export default defineConfig({ + clearScreen: false, + + plugins: [ + routify({ + ssr: { enable: false }, + }), + svelte({ + compilerOptions: { + dev: !production, + hydratable: !!process.env.ROUTIFY_SSR_ENABLE, + }, + extensions: ['.svelte'], + preprocess: [preprocess()], + }), + ], + + server: { port: 1337 }, +}); diff --git a/src/versions/three/index.js b/src/versions/three/index.js index 8913ca5..9d349ab 100644 --- a/src/versions/three/index.js +++ b/src/versions/three/index.js @@ -1,9 +1,9 @@ -import { onCancel } from '../../utils/prompts.js'; -import { readdir, cp } from 'fs/promises'; -import { join, dirname } from 'path'; -import { fileURLToPath } from 'url'; -import prompts from 'prompts'; +import { cp, readdir } from 'fs/promises'; import k from 'kleur'; +import { dirname, join } from 'path'; +import prompts from 'prompts'; +import { fileURLToPath } from 'url'; +import { onCancel } from '../../utils/prompts.js'; const __dirname = dirname(fileURLToPath(import.meta.url)); @@ -59,6 +59,10 @@ export const run = async ({ projectDir }) => { title: 'Skeleton Project', value: 'skeleton', }, + { + title: 'Skeleton Project (TS)', + value: 'skeleton-ts', + }, { title: 'Example Project', value: 'example', @@ -68,12 +72,17 @@ export const run = async ({ projectDir }) => { { onCancel }, ); - if (!['skeleton', 'example'].includes(projectType)) + if (!['skeleton', 'example', 'skeleton-ts'].includes(projectType)) return console.log(` ${k.red('Unable to find type ' + projectType)}`); + const map = { + 'skeleton-ts': './skeleton-ts', + skeleton: './skeleton', + }; + const exampleDir = join( __dirname, - projectType == 'skeleton' ? './skeleton' : await getExampleDir(), + map[projectType] || (await getExampleDir()), '/', ); diff --git a/src/versions/three/skeleton-ts/index.html b/src/versions/three/skeleton-ts/index.html new file mode 100644 index 0000000..a460a88 --- /dev/null +++ b/src/versions/three/skeleton-ts/index.html @@ -0,0 +1,14 @@ + + + + + + Svelte app + + + + + + + + diff --git a/src/versions/three/skeleton-ts/package.json b/src/versions/three/skeleton-ts/package.json new file mode 100644 index 0000000..acd9d58 --- /dev/null +++ b/src/versions/three/skeleton-ts/package.json @@ -0,0 +1,20 @@ +{ + "name": "starter", + "type": "module", + "scripts": { + "build": "vite build", + "preview": "vite preview", + "dev": "vite", + "svelte-check": "svelte-check" + }, + "devDependencies": { + "@roxi/routify": "3.0.0-next.142", + "@sveltejs/vite-plugin-svelte": "^2.0.0", + "@tsconfig/svelte": "^3.0.0", + "svelte": "^3.55.1", + "svelte-preprocess": "^5.0.1", + "typescript": "^4.9.5", + "vite": "^4.0.0", + "svelte-check": "^3.0.3" + } +} diff --git a/src/versions/three/skeleton-ts/public/favicon.ico b/src/versions/three/skeleton-ts/public/favicon.ico new file mode 100644 index 0000000..1708f40 Binary files /dev/null and b/src/versions/three/skeleton-ts/public/favicon.ico differ diff --git a/src/versions/three/skeleton-ts/src/App.svelte b/src/versions/three/skeleton-ts/src/App.svelte new file mode 100644 index 0000000..e51b06e --- /dev/null +++ b/src/versions/three/skeleton-ts/src/App.svelte @@ -0,0 +1,6 @@ + + + diff --git a/src/versions/three/skeleton-ts/src/main.ts b/src/versions/three/skeleton-ts/src/main.ts new file mode 100644 index 0000000..1f104fa --- /dev/null +++ b/src/versions/three/skeleton-ts/src/main.ts @@ -0,0 +1,5 @@ +import App from './App.svelte' + +const app = new App({ target: document.body }) + +export default app diff --git a/src/versions/three/skeleton-ts/src/routes/index.svelte b/src/versions/three/skeleton-ts/src/routes/index.svelte new file mode 100644 index 0000000..0e3bc5d --- /dev/null +++ b/src/versions/three/skeleton-ts/src/routes/index.svelte @@ -0,0 +1,5 @@ + + +

{name}

diff --git a/src/versions/three/skeleton-ts/tsconfig.json b/src/versions/three/skeleton-ts/tsconfig.json new file mode 100644 index 0000000..0bf4141 --- /dev/null +++ b/src/versions/three/skeleton-ts/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "@tsconfig/svelte/tsconfig.json", + "compilerOptions": { + "target": "esnext", + "useDefineForClassFields": true, + "module": "esnext", + "resolveJsonModule": true, + "baseUrl": ".", + "allowJs": true, + "checkJs": true + }, + "include": [ + "src//.d.ts", + "src/**/.ts", + "src//*.js", + "src//.svelte", + "src/main.ts", + "src/main.ts" + ] +} diff --git a/src/versions/three/skeleton-ts/vite.config.js b/src/versions/three/skeleton-ts/vite.config.js new file mode 100644 index 0000000..2814064 --- /dev/null +++ b/src/versions/three/skeleton-ts/vite.config.js @@ -0,0 +1,26 @@ +import routify from '@roxi/routify/vite-plugin'; +import { svelte } from '@sveltejs/vite-plugin-svelte'; +import preprocess from 'svelte-preprocess'; +import { defineConfig } from 'vite'; + +const production = process.env.NODE_ENV === 'production'; + +export default defineConfig({ + clearScreen: false, + + plugins: [ + routify({ + ssr: { enable: false }, + }), + svelte({ + compilerOptions: { + dev: !production, + hydratable: !!process.env.ROUTIFY_SSR_ENABLE, + }, + extensions: ['.svelte'], + preprocess: [preprocess()], + }), + ], + + server: { port: 1337 }, +});