stacks 0.41.1 → 0.44.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitignore +12 -0
- package/README.md +369 -27
- package/auto-imports.d.ts +862 -0
- package/buddy/README.md +414 -0
- package/{bin → buddy/bin}/stacks.mjs +0 -0
- package/buddy/build.config.ts +17 -0
- package/buddy/node_modules/.bin/only-allow +17 -0
- package/buddy/node_modules/.bin/pnpm +17 -0
- package/buddy/node_modules/.bin/pnpx +17 -0
- package/buddy/node_modules/.bin/tsc +17 -0
- package/buddy/node_modules/.bin/tsserver +17 -0
- package/buddy/node_modules/.bin/unbuild +17 -0
- package/buddy/package.json +183 -0
- package/buddy/src/cli.ts +49 -0
- package/buddy/src/commands/add.ts +63 -0
- package/buddy/src/commands/build.ts +111 -0
- package/buddy/src/commands/clean.ts +18 -0
- package/buddy/src/commands/commit.ts +18 -0
- package/buddy/src/commands/create.ts +129 -0
- package/buddy/src/commands/dev.ts +96 -0
- package/buddy/src/commands/example.ts +65 -0
- package/buddy/src/commands/fresh.ts +18 -0
- package/buddy/src/commands/generate.ts +110 -0
- package/buddy/src/commands/index.ts +18 -0
- package/buddy/src/commands/key.ts +18 -0
- package/buddy/src/commands/lint.ts +27 -0
- package/buddy/src/commands/make.ts +219 -0
- package/buddy/src/commands/preinstall.ts +18 -0
- package/buddy/src/commands/prepublish.ts +19 -0
- package/buddy/src/commands/release.ts +28 -0
- package/buddy/src/commands/setup.ts +26 -0
- package/buddy/src/commands/test.ts +41 -0
- package/buddy/src/commands/types.ts +26 -0
- package/buddy/src/commands/update.ts +108 -0
- package/buddy/src/index.ts +17 -0
- package/components/vue/dist/.gitkeep +0 -0
- package/components/vue/index.html +13 -0
- package/components/vue/main.ts +18 -0
- package/components/vue/package.json +41 -0
- package/components/web/dist/.gitkeep +0 -0
- package/components/web/package.json +41 -0
- package/components.d.ts +22 -0
- package/core/actions/README.md +58 -0
- package/core/actions/node_modules/.bin/esno +17 -0
- package/core/actions/node_modules/.bin/markdown-it +17 -0
- package/core/actions/node_modules/.bin/mkdist +17 -0
- package/core/actions/node_modules/.bin/tsc +17 -0
- package/core/actions/node_modules/.bin/tsserver +17 -0
- package/core/actions/package.json +68 -0
- package/core/actions/src/add.ts +32 -0
- package/core/actions/src/build.ts +93 -0
- package/core/actions/src/clean.ts +25 -0
- package/core/actions/src/commit.ts +19 -0
- package/core/actions/src/copy-types.ts +22 -0
- package/core/actions/src/dev.ts +55 -0
- package/core/actions/src/examples.ts +48 -0
- package/core/actions/src/fresh.ts +27 -0
- package/core/actions/src/generate-component-meta.ts +15 -0
- package/core/actions/src/generate-ide-helpers.ts +19 -0
- package/core/actions/src/generate-lib-entries.ts +17 -0
- package/core/actions/src/generate-package-json.ts +11 -0
- package/core/actions/src/generate-vscode-custom-data.ts +16 -0
- package/core/actions/src/generate-vue-compat.ts +10 -0
- package/core/actions/src/generate.ts +119 -0
- package/core/actions/src/helpers/component-meta.ts +93 -0
- package/core/actions/src/helpers/index.ts +6 -0
- package/core/actions/src/helpers/lib-entries.ts +130 -0
- package/core/actions/src/helpers/package-json.ts +95 -0
- package/core/actions/src/helpers/utils.ts +30 -0
- package/core/actions/src/helpers/vscode-custom-data.ts +28 -0
- package/core/actions/src/helpers/vue-compat.ts +17 -0
- package/core/actions/src/index.ts +1 -0
- package/core/actions/src/key.ts +48 -0
- package/core/actions/src/lint.ts +36 -0
- package/core/actions/src/make.ts +249 -0
- package/core/actions/src/preinstall.ts +27 -0
- package/core/actions/src/prepublish.ts +16 -0
- package/core/actions/src/release.ts +32 -0
- package/core/actions/src/test.ts +61 -0
- package/core/actions/src/types.ts +23 -0
- package/core/actions/src/update.ts +149 -0
- package/core/actions/test.ts +10 -0
- package/core/actions/tests/example.test.ts +7 -0
- package/core/ai/README.md +62 -0
- package/core/ai/node_modules/.bin/mkdist +17 -0
- package/core/ai/node_modules/.bin/tsc +17 -0
- package/core/ai/node_modules/.bin/tsserver +17 -0
- package/core/ai/package.json +55 -0
- package/core/ai/src/drivers/openai.ts +1 -0
- package/core/ai/src/index.ts +1 -0
- package/core/ai/tests/example.test.ts +7 -0
- package/core/alias/README.md +62 -0
- package/core/alias/node_modules/.bin/mkdist +17 -0
- package/core/alias/node_modules/.bin/tsc +17 -0
- package/core/alias/node_modules/.bin/tsserver +17 -0
- package/core/alias/package.json +51 -0
- package/core/alias/src/index.ts +84 -0
- package/core/alias/tests/example.test.ts +7 -0
- package/core/arrays/README.md +59 -0
- package/core/arrays/node_modules/.bin/mkdist +17 -0
- package/core/arrays/node_modules/.bin/tsc +17 -0
- package/core/arrays/node_modules/.bin/tsserver +17 -0
- package/core/arrays/package.json +55 -0
- package/core/arrays/src/index.ts +208 -0
- package/core/arrays/tests/example.test.ts +7 -0
- package/core/auth/README.md +59 -0
- package/core/auth/node_modules/.bin/mkdist +17 -0
- package/core/auth/node_modules/.bin/tsc +17 -0
- package/core/auth/node_modules/.bin/tsserver +17 -0
- package/core/auth/package.json +49 -0
- package/core/auth/src/index.ts +3 -0
- package/core/auth/tests/example.test.ts +7 -0
- package/core/build/README.md +59 -0
- package/core/build/entries/README.md +7 -0
- package/core/build/node_modules/.bin/mkdist +17 -0
- package/core/build/node_modules/.bin/tsc +17 -0
- package/core/build/node_modules/.bin/tsserver +17 -0
- package/core/build/node_modules/.bin/unbuild +17 -0
- package/core/build/node_modules/.bin/vite +17 -0
- package/core/build/node_modules/.bin/vite-ssg +17 -0
- package/core/build/node_modules/.bin/vue-docgen-web-types +17 -0
- package/core/build/package.json +76 -0
- package/core/build/src/desktop.ts +27 -0
- package/core/build/src/example-vue.ts +24 -0
- package/core/build/src/example-wc.ts +24 -0
- package/core/build/src/functions.ts +56 -0
- package/core/build/src/index.ts +7 -0
- package/core/build/src/pages.ts +50 -0
- package/core/build/src/stacks.ts +198 -0
- package/core/build/src/vue-components.ts +74 -0
- package/core/build/src/web-components.ts +61 -0
- package/core/build/tests/example.test.ts +7 -0
- package/core/build/web-types.config.cjs +4 -0
- package/core/build/web-types.ts +14 -0
- package/core/cache/README.md +59 -0
- package/core/cache/node_modules/.bin/mkdist +17 -0
- package/core/cache/node_modules/.bin/tsc +17 -0
- package/core/cache/node_modules/.bin/tsserver +17 -0
- package/core/cache/package.json +60 -0
- package/core/cache/src/drivers/dynamodb.ts +117 -0
- package/core/cache/src/drivers/memcached.ts +20 -0
- package/core/cache/src/drivers/redis.ts +41 -0
- package/core/cache/src/index.ts +3 -0
- package/core/cache/tests/DynamoDB.test.ts +149 -0
- package/core/cache/tests/Memcached.test.ts +52 -0
- package/core/cache/tests/Redis.test.ts +82 -0
- package/core/cache/vite.config.ts +7 -0
- package/core/cli/README.md +129 -0
- package/core/cli/node_modules/.bin/esno +17 -0
- package/core/cli/node_modules/.bin/mkdist +17 -0
- package/core/cli/package.json +69 -0
- package/core/cli/src/actions/index.ts +2 -0
- package/core/cli/src/actions/install.ts +22 -0
- package/core/cli/src/actions/run.ts +72 -0
- package/core/cli/src/command.ts +7 -0
- package/core/cli/src/console.ts +6 -0
- package/core/cli/src/helpers.ts +58 -0
- package/core/cli/src/index.ts +8 -0
- package/core/cli/src/spinner.ts +3 -0
- package/core/cli/src/utilities.ts +1 -0
- package/core/cli/tests/example.test.ts +7 -0
- package/core/cloud/README.md +59 -0
- package/core/cloud/dist/actions/README.md +53 -0
- package/core/cloud/node_modules/.bin/mkdist +17 -0
- package/core/cloud/node_modules/.bin/tsc +17 -0
- package/core/cloud/node_modules/.bin/tsserver +17 -0
- package/core/cloud/package.json +53 -0
- package/core/cloud/src/actions/README.md +53 -0
- package/core/cloud/src/index.ts +1 -0
- package/core/cloud/tests/example.test.ts +7 -0
- package/core/collections/README.md +71 -0
- package/core/collections/node_modules/.bin/mkdist +17 -0
- package/core/collections/node_modules/.bin/tsc +17 -0
- package/core/collections/node_modules/.bin/tsserver +17 -0
- package/core/collections/package.json +56 -0
- package/core/collections/src/index.ts +1 -0
- package/core/collections/tests/example.test.ts +7 -0
- package/core/config/README.md +53 -0
- package/core/config/build.config.ts +13 -0
- package/core/config/node_modules/.bin/mkdist +17 -0
- package/core/config/node_modules/.bin/tsc +17 -0
- package/core/config/node_modules/.bin/tsserver +17 -0
- package/core/config/node_modules/.bin/unbuild +17 -0
- package/core/config/package.json +53 -0
- package/core/config/src/helpers.ts +30 -0
- package/core/config/src/index.ts +17 -0
- package/core/config/tests/example.test.ts +7 -0
- package/core/dashboard/README.md +74 -0
- package/core/dashboard/node_modules/.bin/mkdist +17 -0
- package/core/dashboard/package.json +52 -0
- package/core/dashboard/src/index.ts +0 -0
- package/core/dashboard/tests/example.test.ts +7 -0
- package/core/database/README.md +59 -0
- package/core/database/node_modules/.bin/mkdist +17 -0
- package/core/database/node_modules/.bin/tsc +17 -0
- package/core/database/node_modules/.bin/tsserver +17 -0
- package/core/database/package.json +59 -0
- package/core/database/src/factory/index.ts +70 -0
- package/core/database/src/index.ts +3 -0
- package/core/database/src/migrations/index.ts +5 -0
- package/core/database/src/seeder/index.ts +10 -0
- package/core/database/tests/example.test.ts +7 -0
- package/core/datetime/README.md +66 -0
- package/core/datetime/node_modules/.bin/mkdist +17 -0
- package/core/datetime/node_modules/.bin/tsc +17 -0
- package/core/datetime/node_modules/.bin/tsserver +17 -0
- package/core/datetime/package.json +55 -0
- package/core/datetime/src/index.ts +6 -0
- package/core/datetime/tests/example.test.ts +7 -0
- package/core/desktop/README.md +49 -0
- package/core/desktop/node_modules/.bin/mkdist +17 -0
- package/core/desktop/node_modules/.bin/tauri +17 -0
- package/core/desktop/node_modules/.bin/tsc +17 -0
- package/core/desktop/node_modules/.bin/tsserver +17 -0
- package/core/desktop/package.json +69 -0
- package/core/desktop/src/drivers/tauri/index.ts +1 -0
- package/core/desktop/src/index.ts +1 -0
- package/core/desktop/tests/example.test.ts +7 -0
- package/core/docs/README.md +59 -0
- package/core/docs/node_modules/.bin/mkdist +17 -0
- package/core/docs/node_modules/.bin/tsc +17 -0
- package/core/docs/node_modules/.bin/tsserver +17 -0
- package/core/docs/node_modules/.bin/vitepress +17 -0
- package/core/docs/package.json +53 -0
- package/core/docs/src/index.ts +4 -0
- package/core/docs/tests/example.test.ts +7 -0
- package/core/domains/README.md +56 -0
- package/core/domains/node_modules/.bin/mkdist +17 -0
- package/core/domains/node_modules/.bin/tsc +17 -0
- package/core/domains/node_modules/.bin/tsserver +17 -0
- package/core/domains/package.json +52 -0
- package/core/domains/src/index.ts +1 -0
- package/core/domains/tests/example.test.ts +7 -0
- package/core/drivers/README.md +53 -0
- package/core/drivers/node_modules/.bin/mkdist +17 -0
- package/core/drivers/node_modules/.bin/tsc +17 -0
- package/core/drivers/node_modules/.bin/tsserver +17 -0
- package/core/drivers/package.json +53 -0
- package/core/drivers/src/index.ts +10 -0
- package/core/drivers/tests/example.test.ts +7 -0
- package/core/email/README.md +89 -0
- package/core/email/node_modules/.bin/mkdist +17 -0
- package/core/email/node_modules/.bin/tsc +17 -0
- package/core/email/node_modules/.bin/tsserver +17 -0
- package/core/email/package.json +57 -0
- package/core/email/src/index.ts +1 -0
- package/core/email/tests/example.test.ts +7 -0
- package/core/error-handling/README.md +131 -0
- package/core/error-handling/node_modules/.bin/mkdist +17 -0
- package/core/error-handling/node_modules/.bin/tsc +17 -0
- package/core/error-handling/node_modules/.bin/tsserver +17 -0
- package/core/error-handling/package.json +55 -0
- package/core/error-handling/src/index.ts +15 -0
- package/core/error-handling/tests/example.test.ts +7 -0
- package/core/git/README.md +69 -0
- package/core/git/node_modules/.bin/bumpp +17 -0
- package/core/git/node_modules/.bin/commitizen +17 -0
- package/core/git/node_modules/.bin/conventional-changelog +17 -0
- package/core/git/node_modules/.bin/cz +17 -0
- package/core/git/node_modules/.bin/giget +17 -0
- package/core/git/node_modules/.bin/git-cz +17 -0
- package/core/git/node_modules/.bin/mkdist +17 -0
- package/core/git/node_modules/.bin/simple-git-hooks +17 -0
- package/core/git/node_modules/.bin/tsc +17 -0
- package/core/git/node_modules/.bin/tsserver +17 -0
- package/core/git/package.json +59 -0
- package/core/git/src/index.ts +1 -0
- package/core/git/tests/example.test.ts +7 -0
- package/core/lint/README.md +73 -0
- package/core/lint/node_modules/.bin/eslint +17 -0
- package/core/lint/node_modules/.bin/lint-staged +17 -0
- package/core/lint/node_modules/.bin/mkdist +17 -0
- package/core/lint/node_modules/.bin/tsc +17 -0
- package/core/lint/node_modules/.bin/tsserver +17 -0
- package/core/lint/package.json +58 -0
- package/core/lint/src/index.ts +3 -0
- package/core/lint/tests/example.test.ts +7 -0
- package/core/logging/README.md +58 -0
- package/core/logging/debug-test.ts +8 -0
- package/core/logging/node_modules/.bin/mkdist +17 -0
- package/core/logging/node_modules/.bin/tsc +17 -0
- package/core/logging/node_modules/.bin/tsserver +17 -0
- package/core/logging/package.json +55 -0
- package/core/logging/src/index.ts +15 -0
- package/core/logging/tests/example.test.ts +7 -0
- package/core/modules/README.md +51 -0
- package/core/modules/node_modules/.bin/mkdist +17 -0
- package/core/modules/node_modules/.bin/tsc +17 -0
- package/core/modules/node_modules/.bin/tsserver +17 -0
- package/core/modules/package.json +54 -0
- package/core/modules/src/i18n.ts +23 -0
- package/core/modules/src/nprogress.ts +12 -0
- package/core/modules/src/pwa.ts +12 -0
- package/core/modules/tests/example.test.ts +7 -0
- package/core/notifications/README.md +89 -0
- package/core/notifications/build.config.ts +14 -0
- package/core/notifications/node_modules/.bin/maizzle +17 -0
- package/core/notifications/node_modules/.bin/mkdist +17 -0
- package/core/notifications/node_modules/.bin/tsc +17 -0
- package/core/notifications/node_modules/.bin/tsserver +17 -0
- package/core/notifications/node_modules/.bin/unbuild +17 -0
- package/core/notifications/package.json +88 -0
- package/core/notifications/src/drivers/chat/discord.ts +15 -0
- package/core/notifications/src/drivers/chat/index.ts +2 -0
- package/core/notifications/src/drivers/chat/slack.ts +22 -0
- package/core/notifications/src/drivers/email/actions/send.ts +36 -0
- package/core/notifications/src/drivers/email/emailjs.ts +21 -0
- package/core/notifications/src/drivers/email/index.ts +9 -0
- package/core/notifications/src/drivers/email/mailgun.ts +19 -0
- package/core/notifications/src/drivers/email/mailjet.ts +18 -0
- package/core/notifications/src/drivers/email/mandrill.ts +17 -0
- package/core/notifications/src/drivers/email/netcore.ts +17 -0
- package/core/notifications/src/drivers/email/nodemailer.ts +21 -0
- package/core/notifications/src/drivers/email/postmark.ts +17 -0
- package/core/notifications/src/drivers/email/sendgrid.ts +18 -0
- package/core/notifications/src/drivers/email/ses.ts +19 -0
- package/core/notifications/src/drivers/email/tailwind.config.ts +37 -0
- package/core/notifications/src/drivers/sms/gupshup.ts +21 -0
- package/core/notifications/src/drivers/sms/index.ts +8 -0
- package/core/notifications/src/drivers/sms/nexmo.ts +22 -0
- package/core/notifications/src/drivers/sms/plivo.ts +22 -0
- package/core/notifications/src/drivers/sms/sms77.ts +21 -0
- package/core/notifications/src/drivers/sms/sns.ts +22 -0
- package/core/notifications/src/drivers/sms/telnyx.ts +22 -0
- package/core/notifications/src/drivers/sms/termii.ts +21 -0
- package/core/notifications/src/drivers/sms/twilio.ts +22 -0
- package/core/notifications/src/index.ts +25 -0
- package/core/notifications/src/utils/config.ts +5 -0
- package/core/notifications/src/utils/template.html +8 -0
- package/core/notifications/tests/chat/Slack.test.ts +24 -0
- package/core/notifications/tests/email/Mailgun.test.ts +29 -0
- package/core/notifications/tests/email/Sendgrid.test.ts +30 -0
- package/core/notifications/tests/example.test.ts +7 -0
- package/core/notifications/tests/sms/Twilio.test.ts +27 -0
- package/core/objects/README.md +71 -0
- package/core/objects/node_modules/.bin/mkdist +17 -0
- package/core/objects/node_modules/.bin/tsc +17 -0
- package/core/objects/node_modules/.bin/tsserver +17 -0
- package/core/objects/package.json +53 -0
- package/core/objects/src/index.ts +130 -0
- package/core/objects/tests/example.test.ts +7 -0
- package/core/path/README.md +64 -0
- package/core/path/node_modules/.bin/mkdist +17 -0
- package/core/path/node_modules/.bin/tsc +17 -0
- package/core/path/node_modules/.bin/tsserver +17 -0
- package/core/path/package.json +55 -0
- package/core/path/src/index.ts +353 -0
- package/core/path/tests/example.test.ts +7 -0
- package/core/payments/README.md +64 -0
- package/core/payments/node_modules/.bin/mkdist +17 -0
- package/core/payments/node_modules/.bin/tsc +17 -0
- package/core/payments/node_modules/.bin/tsserver +17 -0
- package/core/payments/package.json +52 -0
- package/core/payments/src/drivers/stripe.ts +1 -0
- package/core/payments/src/index.ts +1 -0
- package/core/payments/tests/example.test.ts +7 -0
- package/core/realtime/README.md +59 -0
- package/core/realtime/node_modules/.bin/mkdist +17 -0
- package/core/realtime/node_modules/.bin/tsc +17 -0
- package/core/realtime/node_modules/.bin/tsserver +17 -0
- package/core/realtime/package.json +51 -0
- package/core/realtime/src/drivers/index.ts +3 -0
- package/core/realtime/src/index.ts +3 -0
- package/core/realtime/tests/example.test.ts +7 -0
- package/core/router/README.md +59 -0
- package/core/router/node_modules/.bin/mkdist +17 -0
- package/core/router/node_modules/.bin/tsc +17 -0
- package/core/router/node_modules/.bin/tsserver +17 -0
- package/core/router/package.json +54 -0
- package/core/router/src/index.ts +14 -0
- package/core/router/tests/example.test.ts +7 -0
- package/core/search-engine/README.md +66 -0
- package/core/search-engine/node_modules/.bin/mkdist +17 -0
- package/core/search-engine/node_modules/.bin/tsc +17 -0
- package/core/search-engine/node_modules/.bin/tsserver +17 -0
- package/core/search-engine/package.json +64 -0
- package/core/search-engine/src/drivers/meilisearch.ts +37 -0
- package/core/search-engine/src/helpers.ts +74 -0
- package/core/search-engine/src/index.ts +56 -0
- package/core/search-engine/tests/example.test.ts +7 -0
- package/core/security/README.md +66 -0
- package/core/security/node_modules/.bin/mkdist +17 -0
- package/core/security/node_modules/.bin/tsc +17 -0
- package/core/security/node_modules/.bin/tsserver +17 -0
- package/core/security/package.json +57 -0
- package/core/security/src/crypt.ts +14 -0
- package/core/security/src/hash.ts +52 -0
- package/core/security/src/index.ts +3 -0
- package/core/security/src/key.ts +11 -0
- package/core/security/tests/example.test.ts +7 -0
- package/core/server/README.md +51 -0
- package/core/server/node_modules/.bin/mkdist +17 -0
- package/core/server/node_modules/.bin/nitro +17 -0
- package/core/server/node_modules/.bin/nitropack +17 -0
- package/core/server/node_modules/.bin/tsc +17 -0
- package/core/server/node_modules/.bin/tsserver +17 -0
- package/core/server/node_modules/.bin/vite +17 -0
- package/core/server/package.json +59 -0
- package/core/server/src/config.ts +6 -0
- package/core/server/src/index.ts +5 -0
- package/core/server/src/nitro.config.ts +6 -0
- package/core/server/tests/example.test.ts +7 -0
- package/core/storage/README.md +74 -0
- package/core/storage/node_modules/.bin/mkdist +17 -0
- package/core/storage/node_modules/.bin/tsc +17 -0
- package/core/storage/node_modules/.bin/tsserver +17 -0
- package/core/storage/package.json +62 -0
- package/core/storage/src/index.ts +193 -0
- package/core/storage/tests/example.test.ts +7 -0
- package/core/strings/README.md +68 -0
- package/core/strings/build.config.ts +15 -0
- package/core/strings/node_modules/.bin/mkdist +17 -0
- package/core/strings/node_modules/.bin/tsc +17 -0
- package/core/strings/node_modules/.bin/tsserver +17 -0
- package/core/strings/node_modules/.bin/unbuild +17 -0
- package/core/strings/package.json +69 -0
- package/core/strings/src/index.ts +97 -0
- package/core/strings/tests/example.test.ts +7 -0
- package/core/testing/README.md +59 -0
- package/core/testing/node_modules/.bin/mkdist +17 -0
- package/core/testing/node_modules/.bin/tsc +17 -0
- package/core/testing/node_modules/.bin/tsserver +17 -0
- package/core/testing/node_modules/.bin/vitest +17 -0
- package/core/testing/package.json +57 -0
- package/core/testing/src/index.ts +1 -0
- package/core/types/README.md +59 -0
- package/core/types/node_modules/.bin/markdown-it +17 -0
- package/core/types/node_modules/.bin/mkdist +17 -0
- package/core/types/node_modules/.bin/tsc +17 -0
- package/core/types/node_modules/.bin/tsserver +17 -0
- package/core/types/node_modules/.bin/vite-ssg +17 -0
- package/core/types/node_modules/.bin/vitepress +17 -0
- package/core/types/package.json +71 -0
- package/core/types/src/app.ts +140 -0
- package/core/types/src/auto-imports.ts +3 -0
- package/core/types/src/build.ts +2 -0
- package/core/types/src/cli.ts +198 -0
- package/core/types/src/components.ts +66 -0
- package/core/types/src/database.ts +3 -0
- package/core/types/src/debug.ts +6 -0
- package/core/types/src/deploy.ts +11 -0
- package/core/types/src/docs.ts +3 -0
- package/core/types/src/errors.ts +6 -0
- package/core/types/src/exit-code.ts +10 -0
- package/core/types/src/fs.ts +17 -0
- package/core/types/src/git.ts +131 -0
- package/core/types/src/hashing.ts +107 -0
- package/core/types/src/i18n.ts +19 -0
- package/core/types/src/index.ts +28 -0
- package/core/types/src/inspect.ts +10 -0
- package/core/types/src/layout.ts +8 -0
- package/core/types/src/library.ts +148 -0
- package/core/types/src/manifest.ts +9 -0
- package/core/types/src/markdown.ts +198 -0
- package/core/types/src/notifications.ts +9 -0
- package/core/types/src/pages.ts +8 -0
- package/core/types/src/promise.ts +1 -0
- package/core/types/src/pwa.ts +8 -0
- package/core/types/src/search-engine.ts +118 -0
- package/core/types/src/ssg.ts +3 -0
- package/core/types/src/ui.ts +184 -0
- package/core/types/src/utils.ts +38 -0
- package/core/ui/README.md +66 -0
- package/core/ui/node_modules/.bin/mkdist +17 -0
- package/core/ui/node_modules/.bin/tsc +17 -0
- package/core/ui/node_modules/.bin/tsserver +17 -0
- package/core/ui/node_modules/.bin/vue-tsc +17 -0
- package/core/ui/package.json +66 -0
- package/core/ui/src/index.ts +17 -0
- package/core/ui/src/unocss.ts +45 -0
- package/core/ui/tests/example.test.ts +7 -0
- package/core/utils/node_modules/.bin/esno +17 -0
- package/core/utils/node_modules/.bin/mkdist +17 -0
- package/core/utils/node_modules/.bin/rimraf +17 -0
- package/core/utils/node_modules/.bin/tsc +17 -0
- package/core/utils/node_modules/.bin/tsserver +17 -0
- package/core/utils/package.json +77 -0
- package/core/utils/src/base.ts +10 -0
- package/core/utils/src/function.ts +32 -0
- package/core/utils/src/guards.ts +39 -0
- package/core/utils/src/helpers.ts +134 -0
- package/core/utils/src/index.ts +13 -0
- package/core/utils/src/is.ts +12 -0
- package/core/utils/src/p.ts +118 -0
- package/core/utils/src/promise.ts +91 -0
- package/core/utils/src/vendor.ts +1 -0
- package/core/utils/tests/example.test.ts +7 -0
- package/core/x-ray/README.md +55 -0
- package/core/x-ray/index.html +13 -0
- package/core/x-ray/node_modules/.bin/mkdist +17 -0
- package/core/x-ray/node_modules/.bin/tsc +17 -0
- package/core/x-ray/node_modules/.bin/tsserver +17 -0
- package/core/x-ray/package.json +63 -0
- package/core/x-ray/routes/index.ts +19 -0
- package/core/x-ray/src/client.ts +14 -0
- package/core/x-ray/src/desktop/api/nitro.config.ts +18 -0
- package/core/x-ray/src/desktop/api/routes/api/logs.ts +7 -0
- package/core/x-ray/src/desktop/api/routes/api/store-logs.ts +22 -0
- package/core/x-ray/src/desktop/api/src/types.ts +7 -0
- package/core/x-ray/src/desktop/api/storage/index.ts +7 -0
- package/core/x-ray/src/desktop/app.vue +377 -0
- package/core/x-ray/src/desktop/functions/http.ts +26 -0
- package/core/x-ray/src/desktop/functions/types.ts +7 -0
- package/core/x-ray/src/desktop/main.ts +14 -0
- package/core/x-ray/src/desktop/modules/counter/mod.vue +44 -0
- package/core/x-ray/src/desktop/modules/fetcher/mod.vue +63 -0
- package/core/x-ray/src/desktop/plugins/unified/unified-app.ts +5 -0
- package/core/x-ray/src/desktop/plugins/unified/unified-styles.scss +0 -0
- package/core/x-ray/src/desktop/services/http.ts +45 -0
- package/core/x-ray/src/desktop/styles/app.scss +0 -0
- package/core/x-ray/src/http.ts +26 -0
- package/core/x-ray/src/index.ts +42 -0
- package/core/x-ray/src/ray.config.js +27 -0
- package/core/x-ray/src/types.ts +7 -0
- package/core/x-ray/tests/example.test.ts +7 -0
- package/custom-elements.json +14 -0
- package/examples/vue/App.vue +12 -0
- package/examples/vue/favicon.png +0 -0
- package/examples/vue/index.html +20 -0
- package/examples/web/favicon.png +0 -0
- package/examples/web/index.html +13 -0
- package/functions/package.json +41 -0
- package/netlify.toml +18 -0
- package/package.json +39 -68
- package/pages/App.vue +26 -0
- package/pages/index.html +23 -0
- package/pages/main.ts +26 -0
- package/pages/public/_headers +3 -0
- package/pages/public/favicon-dark.svg +3 -0
- package/pages/public/favicon.svg +3 -0
- package/pages/public/pwa-192x192.png +0 -0
- package/pages/public/pwa-512x512.png +0 -0
- package/pages/public/safari-pinned-tab.svg +41 -0
- package/pages/styles/main.css +29 -0
- package/pages/styles/markdown.css +28 -0
- package/shims.d.ts +29 -0
- package/simple-git-hooks.cjs +4 -0
- package/tsconfig.json +115 -0
- package/vitest.config.ts +21 -0
- package/web-types.json +67 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { log } from '@stacksjs/logging'
|
|
2
|
+
import { writeTextFile } from '@stacksjs/storage'
|
|
3
|
+
import { packageJsonPath } from '@stacksjs/path'
|
|
4
|
+
import { library } from '@stacksjs/config'
|
|
5
|
+
import { packageManager } from '../../package.json' assert { type: 'json' }
|
|
6
|
+
|
|
7
|
+
export async function generatePackageJson(type: 'vue-components' | 'web-components' | 'functions') {
|
|
8
|
+
let name, description, directory, keywords, config, prettyName
|
|
9
|
+
|
|
10
|
+
if (type === 'vue-components') {
|
|
11
|
+
name = library.vueComponents.name
|
|
12
|
+
description = library.vueComponents.description
|
|
13
|
+
directory = 'components'
|
|
14
|
+
keywords = library.vueComponents.keywords
|
|
15
|
+
config = 'vue-components'
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
else if (type === 'web-components') {
|
|
19
|
+
name = library.webComponents.name
|
|
20
|
+
description = library.webComponents.description
|
|
21
|
+
directory = 'components'
|
|
22
|
+
keywords = library.webComponents.keywords
|
|
23
|
+
config = 'web-components'
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
else if (type === 'functions') {
|
|
27
|
+
name = library.functions.name
|
|
28
|
+
description = library.functions.description
|
|
29
|
+
directory = 'functions'
|
|
30
|
+
keywords = library.functions.keywords
|
|
31
|
+
config = 'functions'
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
try {
|
|
35
|
+
// the version does not have to be set here,
|
|
36
|
+
// it will be set automatically by the release script
|
|
37
|
+
await writeTextFile({
|
|
38
|
+
path: packageJsonPath(type),
|
|
39
|
+
data: `{
|
|
40
|
+
"name": "${name}",
|
|
41
|
+
"type": "module",
|
|
42
|
+
"version": "",
|
|
43
|
+
"packageManager": "${packageManager}",
|
|
44
|
+
"description": "${description}",
|
|
45
|
+
"author": "${library.author}",
|
|
46
|
+
"license": "MIT",
|
|
47
|
+
"homepage": "https://github.com/${library.repository}/tree/main/${directory}#readme",
|
|
48
|
+
"repository": {
|
|
49
|
+
"type": "git",
|
|
50
|
+
"url": "git+https://github.com/${library.repository}.git",
|
|
51
|
+
"directory": "${directory}"
|
|
52
|
+
},
|
|
53
|
+
"bugs": {
|
|
54
|
+
"url": "https://github.com/${library.repository}/issues"
|
|
55
|
+
},
|
|
56
|
+
"keywords": ${JSON.stringify(keywords)},
|
|
57
|
+
"contributors": ${JSON.stringify(library.contributors)},
|
|
58
|
+
"exports": {
|
|
59
|
+
".": {
|
|
60
|
+
"types": "./dist/index.d.ts",
|
|
61
|
+
"require": "./dist/index.cjs",
|
|
62
|
+
"import": "./dist/index.js"
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"main": "dist/index.cjs",
|
|
66
|
+
"module": "dist/index.js",
|
|
67
|
+
"types": "dist/index.d.ts",
|
|
68
|
+
"files": [
|
|
69
|
+
"dist",
|
|
70
|
+
"README.md"
|
|
71
|
+
],
|
|
72
|
+
"scripts": {
|
|
73
|
+
"build": "vite build -c ../build/${config}.ts",
|
|
74
|
+
"prepublishOnly": "pnpm run build"
|
|
75
|
+
},
|
|
76
|
+
"devDependencies": {
|
|
77
|
+
"stacks": "workspace:*"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
`,
|
|
81
|
+
})
|
|
82
|
+
|
|
83
|
+
if (type === 'vue-components')
|
|
84
|
+
prettyName = 'Vue Component library'
|
|
85
|
+
else if (type === 'web-components')
|
|
86
|
+
prettyName = 'Web Component library'
|
|
87
|
+
else if (type === 'functions')
|
|
88
|
+
prettyName = 'Function Library'
|
|
89
|
+
|
|
90
|
+
log.success(`Created ${prettyName} package.json`)
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
log.error(`There was an error creating the ${prettyName} package.json.`, err)
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import storage from '@stacksjs/storage'
|
|
2
|
+
import { runCommand } from '@stacksjs/cli'
|
|
3
|
+
import { actionsPath, functionsPath } from '@stacksjs/path'
|
|
4
|
+
import type { CliOptions } from '@stacksjs/types'
|
|
5
|
+
import { err } from '@stacksjs/error-handling'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Run a command the Stacks way.
|
|
9
|
+
*
|
|
10
|
+
* @param command The action to invoke.
|
|
11
|
+
* @param options The options to pass to the command.
|
|
12
|
+
* @returns The result of the command.
|
|
13
|
+
*/
|
|
14
|
+
export async function runAction(action: string, options?: CliOptions) {
|
|
15
|
+
if (!hasAction(action))
|
|
16
|
+
return err(`The specified action "${action}" does not exist`)
|
|
17
|
+
|
|
18
|
+
const cmd = `esno ${actionsPath(`${action}.ts`)}`
|
|
19
|
+
return await runCommand(cmd, options)
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function hasAction(action: string) {
|
|
23
|
+
if (storage.isFile(functionsPath(`actions/${action}.ts`)))
|
|
24
|
+
return true
|
|
25
|
+
|
|
26
|
+
if (storage.isFile(actionsPath(`${action}.ts`)))
|
|
27
|
+
return true
|
|
28
|
+
|
|
29
|
+
return false
|
|
30
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { log } from '@stacksjs/logging'
|
|
2
|
+
import { customElementsDataPath } from '@stacksjs/path'
|
|
3
|
+
import { writeTextFile } from '@stacksjs/storage'
|
|
4
|
+
import { library } from '@stacksjs/config'
|
|
5
|
+
|
|
6
|
+
export async function generateVsCodeCustomData() {
|
|
7
|
+
try {
|
|
8
|
+
// the version does not have to be set here,
|
|
9
|
+
// it will be set automatically by the release script
|
|
10
|
+
await writeTextFile({
|
|
11
|
+
path: customElementsDataPath(),
|
|
12
|
+
data: generateComponentInfoData(),
|
|
13
|
+
})
|
|
14
|
+
}
|
|
15
|
+
catch (err) {
|
|
16
|
+
log.error('There was an error generating the VS Code custom data file.', err)
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function generateComponentInfoData() {
|
|
21
|
+
const componentsData = JSON.stringify(library.vueComponents.tags)
|
|
22
|
+
|
|
23
|
+
return `{
|
|
24
|
+
"version": 1.1,
|
|
25
|
+
"tags": ${componentsData}
|
|
26
|
+
}
|
|
27
|
+
`
|
|
28
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import fg from 'fast-glob'
|
|
2
|
+
import fs from 'fs-extra'
|
|
3
|
+
|
|
4
|
+
export async function generateVueCompat(paths: string[]) {
|
|
5
|
+
const files = await fg(paths, {
|
|
6
|
+
onlyFiles: true,
|
|
7
|
+
})
|
|
8
|
+
|
|
9
|
+
for (const f of files) {
|
|
10
|
+
const raw = await fs.readFile(f, 'utf-8')
|
|
11
|
+
const changed = raw
|
|
12
|
+
.replace(/"@vue\/composition-api"/g, '\'vue-demi\'')
|
|
13
|
+
.replace(/"vue"/g, '\'vue-demi\'')
|
|
14
|
+
.replace(/'vue'/g, '\'vue-demi\'')
|
|
15
|
+
await fs.writeFile(f, changed, 'utf-8')
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './helpers'
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { getRandomValues } from 'node:crypto'
|
|
2
|
+
import { log, runCommand } from '@stacksjs/cli'
|
|
3
|
+
// import { generateAppKey } from '@stacksjs/security'
|
|
4
|
+
import type { CliOptions as KeyOptions } from '@stacksjs/types'
|
|
5
|
+
import { setEnvValue } from '@stacksjs/utils'
|
|
6
|
+
import { isFile } from '@stacksjs/storage'
|
|
7
|
+
import utf8 from 'crypto-js/enc-utf8'
|
|
8
|
+
import base64 from 'crypto-js/enc-base64'
|
|
9
|
+
|
|
10
|
+
export async function invoke(options: KeyOptions) {
|
|
11
|
+
await generate(options)
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* An alias of the invoke method.
|
|
16
|
+
* @param options
|
|
17
|
+
* @returns
|
|
18
|
+
*/
|
|
19
|
+
export async function key(options: KeyOptions) {
|
|
20
|
+
return invoke(options)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export async function generate(options: KeyOptions) {
|
|
24
|
+
try {
|
|
25
|
+
log.info('Setting random application key.')
|
|
26
|
+
|
|
27
|
+
if (!isFile('.env'))
|
|
28
|
+
await runCommand('cp .env.example .env', options)
|
|
29
|
+
// spawn('cp .env.example .env', { stdio: debug, cwd: projectPath() })
|
|
30
|
+
|
|
31
|
+
await setEnvValue('APP_KEY', await generateAppKey())
|
|
32
|
+
log.success('Application key set')
|
|
33
|
+
|
|
34
|
+
return true
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
log.error('There was an error generating your key.', error)
|
|
38
|
+
process.exit()
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export async function generateAppKey() {
|
|
43
|
+
const random = getRandomValues(new Uint8Array(32))
|
|
44
|
+
const encodedWord = utf8.parse(random.toString())
|
|
45
|
+
const key = base64.stringify(encodedWord)
|
|
46
|
+
|
|
47
|
+
return `base64:${key}`
|
|
48
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { log } from '@stacksjs/logging'
|
|
2
|
+
import { intro, outro, runCommand } from '@stacksjs/cli'
|
|
3
|
+
import { runNpmScript } from '@stacksjs/utils'
|
|
4
|
+
import type { LintOptions } from '@stacksjs/types'
|
|
5
|
+
import { ExitCode, NpmScript } from '@stacksjs/types'
|
|
6
|
+
|
|
7
|
+
export async function invoke(options: LintOptions) {
|
|
8
|
+
if (options?.fix)
|
|
9
|
+
await lintFix(options)
|
|
10
|
+
else
|
|
11
|
+
await lint(options)
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export async function lint(options: LintOptions) {
|
|
15
|
+
const perf = intro('buddy lint')
|
|
16
|
+
const result = await runCommand(NpmScript.Lint, { ...options, debug: true })
|
|
17
|
+
|
|
18
|
+
if (result.isErr()) {
|
|
19
|
+
outro('While running `buddy lint`, there was an issue', { startTime: perf, useSeconds: true, isError: true })
|
|
20
|
+
process.exit(ExitCode.FatalError)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
outro('Linted', { startTime: perf, useSeconds: true })
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export async function lintFix(options?: LintOptions) {
|
|
27
|
+
log.info('Fixing lint errors...')
|
|
28
|
+
const result = await runNpmScript(NpmScript.LintFix, options)
|
|
29
|
+
|
|
30
|
+
if (result.isErr()) {
|
|
31
|
+
log.error('There was an error lint fixing your code.', result.error)
|
|
32
|
+
process.exit()
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
log.success('Fixed lint errors')
|
|
36
|
+
}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import { italic, log, spawn } from '@stacksjs/cli'
|
|
2
|
+
import { writeTextFile } from '@stacksjs/storage'
|
|
3
|
+
import { resolve } from '@stacksjs/path'
|
|
4
|
+
import type { MakeOptions } from '@stacksjs/types'
|
|
5
|
+
|
|
6
|
+
export async function invoke(options: MakeOptions) {
|
|
7
|
+
if (options.component)
|
|
8
|
+
await component(options)
|
|
9
|
+
|
|
10
|
+
if (options.database)
|
|
11
|
+
await database(options)
|
|
12
|
+
|
|
13
|
+
if (options.factory)
|
|
14
|
+
await factory(options)
|
|
15
|
+
|
|
16
|
+
if (options.function)
|
|
17
|
+
await fx(options)
|
|
18
|
+
|
|
19
|
+
if (options.language)
|
|
20
|
+
await language(options)
|
|
21
|
+
|
|
22
|
+
if (options.migration)
|
|
23
|
+
await migration(options)
|
|
24
|
+
|
|
25
|
+
if (options.notification)
|
|
26
|
+
await notification(options)
|
|
27
|
+
|
|
28
|
+
if (options.page)
|
|
29
|
+
await page(options)
|
|
30
|
+
|
|
31
|
+
if (options.stack)
|
|
32
|
+
await stack(options)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* An alias of the invoke method.
|
|
37
|
+
* @param options
|
|
38
|
+
* @returns
|
|
39
|
+
*/
|
|
40
|
+
export async function make(options: MakeOptions) {
|
|
41
|
+
return invoke(options)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export async function component(options: MakeOptions) {
|
|
45
|
+
try {
|
|
46
|
+
const name = options.name
|
|
47
|
+
log.info('Creating your component...')
|
|
48
|
+
await createComponent(options)
|
|
49
|
+
log.success(`Created ${italic(name)} component`)
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
log.error('There was an error creating your component.', error)
|
|
53
|
+
process.exit()
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export async function createComponent(options: MakeOptions) {
|
|
58
|
+
const name = options.name
|
|
59
|
+
await writeTextFile({
|
|
60
|
+
path: `./components/${name}.vue`,
|
|
61
|
+
data: `<script setup lang="ts">
|
|
62
|
+
// eslint-disable-next-line no-console
|
|
63
|
+
console.log('Hello World component created')
|
|
64
|
+
</script>
|
|
65
|
+
|
|
66
|
+
<template>
|
|
67
|
+
<div>
|
|
68
|
+
Some HTML block
|
|
69
|
+
</div>
|
|
70
|
+
</template>
|
|
71
|
+
`,
|
|
72
|
+
})
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export async function database(options: MakeOptions) {
|
|
76
|
+
try {
|
|
77
|
+
const name = options.name
|
|
78
|
+
log.info(`Creating your ${italic(name)} database...`)
|
|
79
|
+
await createDatabase(options)
|
|
80
|
+
log.success(`Created ${italic(name)} database`)
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
log.error('There was an error creating your database.', error)
|
|
84
|
+
process.exit()
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export async function createDatabase(options: MakeOptions) {
|
|
89
|
+
// eslint-disable-next-line no-console
|
|
90
|
+
console.log('options', options) // wip
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export async function factory(options: MakeOptions) {
|
|
94
|
+
try {
|
|
95
|
+
const name = options.name
|
|
96
|
+
log.info(`Creating your ${italic(name)} factory...`)
|
|
97
|
+
await createDatabase(options)
|
|
98
|
+
log.success(`Created ${italic(name)} factory`)
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
log.error('There was an error creating your factory.', error)
|
|
102
|
+
process.exit()
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export async function createFactory(options: MakeOptions) {
|
|
107
|
+
// eslint-disable-next-line no-console
|
|
108
|
+
console.log('options', options) // wip
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export async function migration(options: MakeOptions) {
|
|
112
|
+
try {
|
|
113
|
+
const name = options.name
|
|
114
|
+
log.info(`Creating your ${italic(name)} migration...`)
|
|
115
|
+
await createMigration(options)
|
|
116
|
+
log.success(`Created ${italic(name)} migration`)
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
log.error('There was an error creating your migration.', error)
|
|
120
|
+
process.exit()
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export async function createMigration(options: MakeOptions) {
|
|
125
|
+
// eslint-disable-next-line no-console
|
|
126
|
+
console.log('options', options) // wip
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export async function notification(options: MakeOptions) {
|
|
130
|
+
try {
|
|
131
|
+
const name = options.name
|
|
132
|
+
log.info(`Creating your ${italic(name)} notification...`)
|
|
133
|
+
await createNotification(options)
|
|
134
|
+
log.success(`Created ${italic(name)} notification`)
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
log.error('There was an error creating your notification.', error)
|
|
138
|
+
process.exit()
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
export async function createNotification(options: MakeOptions) {
|
|
143
|
+
// eslint-disable-next-line no-console
|
|
144
|
+
console.log('options', options) // wip
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
export async function page(options: MakeOptions) {
|
|
148
|
+
try {
|
|
149
|
+
const name = options.name
|
|
150
|
+
log.info('Creating your page...')
|
|
151
|
+
createPage(options)
|
|
152
|
+
log.success(`Created ${name} page`)
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
log.error('There was an error creating your page.', error)
|
|
156
|
+
process.exit()
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
export async function createPage(options: MakeOptions) {
|
|
161
|
+
const name = options.name
|
|
162
|
+
await writeTextFile({
|
|
163
|
+
path: `./pages/${name}.vue`,
|
|
164
|
+
data:
|
|
165
|
+
`<script setup lang="ts">
|
|
166
|
+
// eslint-disable-next-line no-console
|
|
167
|
+
console.log('Hello World page created')
|
|
168
|
+
</script>
|
|
169
|
+
|
|
170
|
+
<template>
|
|
171
|
+
<div>
|
|
172
|
+
Visit http://127.0.0.1/${name}
|
|
173
|
+
</div>
|
|
174
|
+
</template>
|
|
175
|
+
`,
|
|
176
|
+
})
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
export async function fx(options: MakeOptions) {
|
|
180
|
+
try {
|
|
181
|
+
const name = options.name
|
|
182
|
+
log.info('Creating your function...')
|
|
183
|
+
await createFunction(options)
|
|
184
|
+
log.success(`Created ${name} function`)
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
log.error('There was an error creating your function.', error)
|
|
188
|
+
process.exit()
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
export async function createFunction(options: MakeOptions) {
|
|
193
|
+
const name = options.name
|
|
194
|
+
await writeTextFile({
|
|
195
|
+
path: `./functions/${name}.ts`,
|
|
196
|
+
data: `// reactive state
|
|
197
|
+
const ${name} = ref(0)
|
|
198
|
+
|
|
199
|
+
// functions that mutate state and trigger updates
|
|
200
|
+
function increment() {
|
|
201
|
+
${name}.value++
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
export {
|
|
205
|
+
${name},
|
|
206
|
+
increment,
|
|
207
|
+
}
|
|
208
|
+
`,
|
|
209
|
+
})
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
export async function language(options: MakeOptions) {
|
|
213
|
+
try {
|
|
214
|
+
const name = options.name
|
|
215
|
+
log.info('Creating your translation file...')
|
|
216
|
+
createLanguage(options)
|
|
217
|
+
log.success(`Created ${name} translation file`)
|
|
218
|
+
}
|
|
219
|
+
catch (error) {
|
|
220
|
+
log.error('There was an error creating your language.', error)
|
|
221
|
+
process.exit()
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
export async function createLanguage(options: MakeOptions) {
|
|
226
|
+
const name = options.name
|
|
227
|
+
await writeTextFile({
|
|
228
|
+
path: `./lang/${name}.yml`,
|
|
229
|
+
data: `button:
|
|
230
|
+
text: Copy
|
|
231
|
+
`,
|
|
232
|
+
})
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
export async function stack(options: MakeOptions) {
|
|
236
|
+
try {
|
|
237
|
+
const name = options.name
|
|
238
|
+
log.info(`Creating your ${name} stack...`)
|
|
239
|
+
const path = resolve(process.cwd(), name)
|
|
240
|
+
|
|
241
|
+
await spawn(`giget stacks ${path}`)
|
|
242
|
+
log.success('Successfully scaffolded your project')
|
|
243
|
+
log.info(`cd ${path} && pnpm install`)
|
|
244
|
+
}
|
|
245
|
+
catch (error) {
|
|
246
|
+
log.error('There was an error creating your stack.', error)
|
|
247
|
+
process.exit()
|
|
248
|
+
}
|
|
249
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { log, spawn } from '@stacksjs/cli'
|
|
2
|
+
import { projectPath } from '@stacksjs/path'
|
|
3
|
+
import type { PreinstallOptions } from '@stacksjs/types'
|
|
4
|
+
import { determineDebugMode } from '@stacksjs/config'
|
|
5
|
+
|
|
6
|
+
export async function invoke(options?: PreinstallOptions) {
|
|
7
|
+
try {
|
|
8
|
+
const stdio = determineDebugMode(options) ? 'inherit' : 'ignore'
|
|
9
|
+
|
|
10
|
+
log.info('Preinstall check...')
|
|
11
|
+
await spawn('npx only-allow pnpm', { stdio, cwd: projectPath() })
|
|
12
|
+
log.success('Environment ready')
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
log.error('There was an error pre-installing your stack.', error)
|
|
16
|
+
process.exit()
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* An alias of the invoke method.
|
|
22
|
+
* @param options
|
|
23
|
+
* @returns
|
|
24
|
+
*/
|
|
25
|
+
export async function preinstall(options: PreinstallOptions) {
|
|
26
|
+
return invoke(options)
|
|
27
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { log } from '@stacksjs/logging'
|
|
2
|
+
import { runtimePath } from '@stacksjs/path'
|
|
3
|
+
import { runNpmScript } from '@stacksjs/utils'
|
|
4
|
+
import { NpmScript } from '@stacksjs/types'
|
|
5
|
+
|
|
6
|
+
log.info('Running prepublish command...')
|
|
7
|
+
|
|
8
|
+
// right before we publish, we need to build Stacks
|
|
9
|
+
const result = await runNpmScript(NpmScript.BuildStacks, { debug: true, cwd: runtimePath() }) // TODO: add flag for debug mode
|
|
10
|
+
|
|
11
|
+
if (result.isErr()) {
|
|
12
|
+
log.error('There was an error while prepublishing your stack, during the process of building Stacks.', result.error)
|
|
13
|
+
process.exit()
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
log.success('Prepublishing completed')
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { frameworkPath } from '@stacksjs/path'
|
|
3
|
+
import { runAction } from '@stacksjs/actions'
|
|
4
|
+
import { runNpmScript } from '@stacksjs/utils'
|
|
5
|
+
import { NpmScript } from '@stacksjs/types'
|
|
6
|
+
import { log } from '@stacksjs/cli'
|
|
7
|
+
|
|
8
|
+
// first, lets generate the package.json's
|
|
9
|
+
let result = await runAction('generate-package-json')
|
|
10
|
+
|
|
11
|
+
if (result.isErr()) {
|
|
12
|
+
log.error('There was an error while releasing your stack, during the process of fixing your lint errors.', result.error)
|
|
13
|
+
process.exit()
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// next, lets run lint:fix to make sure there are no lint errors
|
|
17
|
+
// because when "generate-package-json" runs, it generates some lint errors
|
|
18
|
+
result = await runNpmScript(NpmScript.LintFix, { debug: true, cwd: frameworkPath() })
|
|
19
|
+
|
|
20
|
+
if (result.isErr()) {
|
|
21
|
+
log.error('There was an error while releasing your stack, during the process of fixing your lint errors.', result.error)
|
|
22
|
+
process.exit()
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// next, lets run the release script to bump the versions and generate the changelog, and push the changes
|
|
26
|
+
// ultimately, a successful git push will trigger the CI/CD release workflow
|
|
27
|
+
result = await runNpmScript(NpmScript.Release, { debug: true, cwd: frameworkPath() })
|
|
28
|
+
|
|
29
|
+
if (result.isErr()) {
|
|
30
|
+
log.error('There was an error while releasing your stack.', result.error)
|
|
31
|
+
process.exit()
|
|
32
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { TestOptions } from '@stacksjs/types'
|
|
2
|
+
import { NpmScript } from '@stacksjs/types'
|
|
3
|
+
import { intro, outro, runCommand } from '@stacksjs/cli'
|
|
4
|
+
import { projectPath } from '@stacksjs/path'
|
|
5
|
+
|
|
6
|
+
export async function invoke(options: TestOptions) {
|
|
7
|
+
const perf = intro('buddy test')
|
|
8
|
+
const result = await runCommand(NpmScript.Test, { ...options, debug: true, cwd: projectPath() })
|
|
9
|
+
|
|
10
|
+
if (result.isErr()) {
|
|
11
|
+
outro('While running `buddy test`, there was an issue', { startTime: perf, useSeconds: true, isError: true }, result.error)
|
|
12
|
+
process.exit()
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
outro('Finished running tests', { startTime: perf, useSeconds: true })
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export async function testUi(options: TestOptions) {
|
|
19
|
+
const perf = intro('buddy test:ui')
|
|
20
|
+
const result = await runCommand(NpmScript.TestUi, { ...options, debug: true })
|
|
21
|
+
|
|
22
|
+
if (result.isErr()) {
|
|
23
|
+
outro('While running `buddy test:ui`, there was an issue', { startTime: perf, useSeconds: true, isError: true }, result.error)
|
|
24
|
+
process.exit()
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* An alias of the invoke method.
|
|
30
|
+
* @param options
|
|
31
|
+
* @returns
|
|
32
|
+
*/
|
|
33
|
+
export async function test(options: TestOptions) {
|
|
34
|
+
return invoke(options)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export async function typecheck(options: TestOptions) {
|
|
38
|
+
const perf = intro('buddy test:types')
|
|
39
|
+
const result = await runCommand(NpmScript.TestTypes, options)
|
|
40
|
+
|
|
41
|
+
if (result.isErr()) {
|
|
42
|
+
outro('While running `buddy test:types`, there was an issue', { startTime: perf, useSeconds: true, isError: true }, result.error)
|
|
43
|
+
process.exit()
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
outro('Finished typecheck', { startTime: perf, useSeconds: true })
|
|
47
|
+
process.exit()
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export async function testCoverageReport(options: TestOptions) {
|
|
51
|
+
const perf = intro('buddy test:coverage')
|
|
52
|
+
const result = await runCommand(NpmScript.TestCoverage, options)
|
|
53
|
+
|
|
54
|
+
if (result.isErr()) {
|
|
55
|
+
outro('While running `buddy test:coverage`, there was an issue', { startTime: perf, useSeconds: true, isError: true }, result.error)
|
|
56
|
+
process.exit()
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
outro('Generated the test coverage report', { startTime: perf, useSeconds: true })
|
|
60
|
+
process.exit()
|
|
61
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { log } from '@stacksjs/logging'
|
|
2
|
+
import { runNpmScript } from '@stacksjs/utils'
|
|
3
|
+
import { NpmScript, type TypesOptions } from '@stacksjs/types'
|
|
4
|
+
|
|
5
|
+
export async function invoke(options?: TypesOptions) {
|
|
6
|
+
const results = await runNpmScript(NpmScript.TypesFix, options)
|
|
7
|
+
|
|
8
|
+
if (results.isErr()) {
|
|
9
|
+
log.error('There was an error fixing your types.', results.error)
|
|
10
|
+
process.exit()
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
log.success('Types are set')
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* An alias of the invoke method.
|
|
18
|
+
* @param options
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
export async function types(options: TypesOptions) {
|
|
22
|
+
return invoke(options)
|
|
23
|
+
}
|