stacks 0.53.1 → 0.56.3
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 +4 -2
- package/README.md +71 -74
- package/api/package.json +3 -2
- package/art/logo-dark.svg +11 -0
- package/art/logo.svg +11 -0
- package/auto-imports.d.ts +1182 -841
- package/components.d.ts +7 -9
- package/core/actions/build.config.ts +181 -9
- package/core/actions/package.json +6 -8
- package/core/actions/src/build/component-libs.ts +2 -12
- package/core/actions/src/dev/index.ts +6 -5
- package/core/actions/src/generate/index.ts +2 -2
- package/core/actions/src/generate/settings.ts +1 -1
- package/core/actions/src/helpers/lib-entries.ts +43 -35
- package/core/actions/src/helpers/utils.ts +7 -9
- package/core/actions/src/lint/index.ts +14 -2
- package/core/actions/src/make.ts +7 -4
- package/core/actions/src/migrate.ts +2 -2
- package/core/actions/src/prepublish.ts +2 -2
- package/core/actions/src/release.ts +1 -1
- package/core/actions/src/seed.ts +1 -1
- package/core/actions/src/upgrade/framework.ts +1 -1
- package/core/actions/src/upgrade.ts +3 -3
- package/core/ai/build.config.ts +5 -7
- package/core/ai/package.json +5 -9
- package/core/alias/build.config.ts +5 -7
- package/core/alias/package.json +3 -6
- package/core/alias/src/index.ts +6 -7
- package/core/analytics/build.config.ts +5 -7
- package/core/analytics/package.json +6 -6
- package/core/arrays/build.config.ts +4 -7
- package/core/arrays/package.json +8 -4
- package/core/arrays/src/contains.ts +23 -0
- package/core/arrays/src/helpers.ts +206 -0
- package/core/arrays/src/index.ts +4 -226
- package/core/arrays/src/macro.ts +135 -0
- package/core/arrays/src/math.ts +19 -0
- package/core/auth/build.config.ts +4 -7
- package/core/auth/package.json +3 -3
- package/core/buddy/README.md +73 -76
- package/core/buddy/build.config.ts +1 -2
- package/core/buddy/package.json +4 -4
- package/core/buddy/src/cli.ts +10 -18
- package/core/buddy/src/commands/add.ts +2 -2
- package/core/buddy/src/commands/build.ts +23 -16
- package/core/buddy/src/commands/create.ts +2 -2
- package/core/buddy/src/commands/dev.ts +31 -30
- package/core/buddy/src/commands/example.ts +8 -14
- package/core/buddy/src/commands/generate.ts +16 -14
- package/core/buddy/src/commands/key.ts +1 -1
- package/core/buddy/src/commands/lint.ts +4 -4
- package/core/buddy/src/commands/make.ts +20 -15
- package/core/buddy/src/commands/setting.ts +2 -2
- package/core/buddy/src/commands/upgrade.ts +18 -22
- package/core/buddy/src/commands/version.ts +1 -1
- package/core/build/build.config.ts +22 -7
- package/core/build/package.json +11 -10
- package/core/build/src/desktop.ts +2 -2
- package/core/build/src/example-vue.ts +5 -4
- package/core/build/src/example-wc.ts +5 -4
- package/core/build/src/functions.ts +9 -11
- package/core/build/src/index.ts +7 -7
- package/core/build/src/stacks.ts +31 -50
- package/core/build/src/{pages.ts → views.ts} +13 -14
- package/core/build/src/vue-components.ts +73 -12
- package/core/build/src/web-components.ts +12 -11
- package/core/build/web-types.ts +3 -3
- package/core/cache/build.config.ts +7 -7
- package/core/cache/package.json +17 -17
- package/core/cache/tests/DynamoDB.test.ts +19 -33
- package/core/chat/build.config.ts +5 -7
- package/core/chat/package.json +8 -8
- package/core/cli/build.config.ts +3 -2
- package/core/cli/package.json +3 -3
- package/core/cli/src/console.ts +75 -2
- package/core/cli/src/helpers.ts +1 -1
- package/core/cli/src/parse.ts +2 -2
- package/core/cli/src/run.ts +5 -6
- package/core/cloud/build.config.ts +4 -7
- package/core/cloud/package.json +17 -3
- package/core/cloud/src/aws/index.ts +9 -0
- package/core/cloud/src/aws/logger.ts +8 -0
- package/core/cloud/src/aws/metrics.ts +8 -0
- package/core/cloud/src/aws/stack.ts +12 -0
- package/core/cloud/src/aws/tracer.ts +3 -0
- package/core/cloud/src/index.ts +1 -1
- package/core/cloud/src/runtime/nodejs/bootstrap.ts +16 -0
- package/core/cloud/src/runtime/nodejs/build.sh +1 -0
- package/core/collections/build.config.ts +3 -7
- package/core/collections/package.json +3 -3
- package/core/config/build.config.ts +33 -33
- package/core/config/package.json +4 -4
- package/core/config/src/defaults.ts +0 -3
- package/core/config/src/stacks.ts +10 -11
- package/core/database/build.config.ts +1 -2
- package/core/database/package.json +3 -3
- package/core/database/src/factory/index.ts +1 -1
- package/core/database/src/migrations/index.ts +1 -1
- package/core/datetime/build.config.ts +1 -2
- package/core/datetime/package.json +3 -3
- package/core/datetime/src/index.ts +2 -1
- package/core/desktop/build.config.ts +2 -1
- package/core/desktop/package.json +6 -6
- package/core/development/build.config.ts +15 -8
- package/core/development/package.json +11 -5
- package/core/development/src/index.ts +2 -0
- package/core/{domains → dns}/README.md +2 -2
- package/core/dns/build.config.ts +22 -0
- package/core/{domains → dns}/package.json +13 -9
- package/core/dns/src/index.ts +18 -0
- package/core/docs/build.config.ts +1 -2
- package/core/docs/package.json +4 -4
- package/core/email/build.config.ts +1 -2
- package/core/email/package.json +15 -15
- package/core/email/src/drivers/emailjs.ts +1 -1
- package/core/email/src/drivers/mailgun.ts +1 -1
- package/core/email/src/drivers/mailjet.ts +2 -2
- package/core/email/src/drivers/mandrill.ts +1 -1
- package/core/email/src/drivers/netcore.ts +1 -1
- package/core/email/src/drivers/nodemailer.ts +1 -1
- package/core/email/src/drivers/postmark.ts +1 -1
- package/core/email/src/drivers/sendgrid.ts +1 -1
- package/core/error-handling/build.config.ts +7 -2
- package/core/error-handling/package.json +6 -4
- package/core/error-handling/src/index.ts +45 -0
- package/core/events/README.md +1 -1
- package/core/events/build.config.ts +1 -2
- package/core/events/package.json +3 -3
- package/core/events/src/index.ts +8 -1
- package/core/faker/build.config.ts +3 -1
- package/core/faker/package.json +4 -4
- package/core/git/build.config.ts +3 -1
- package/core/git/package.json +4 -4
- package/core/health/build.config.ts +3 -1
- package/core/health/package.json +3 -3
- package/core/lint/build.config.ts +3 -1
- package/core/lint/package.json +6 -6
- package/core/logging/build.config.ts +5 -3
- package/core/logging/package.json +6 -6
- package/core/modules/build.config.ts +10 -7
- package/core/modules/package.json +3 -3
- package/core/notifications/README.md +1 -1
- package/core/notifications/build.config.ts +2 -1
- package/core/notifications/package.json +25 -25
- package/core/notifications/src/tailwind.config.ts +1 -1
- package/core/notifications/tests/email/Mailgun.test.ts +4 -4
- package/core/notifications/tests/email/Sendgrid.test.ts +2 -2
- package/core/objects/build.config.ts +15 -7
- package/core/objects/package.json +5 -4
- package/core/orm/build.config.ts +1 -2
- package/core/orm/package.json +3 -3
- package/core/pages/build.config.ts +4 -7
- package/core/pages/package.json +3 -3
- package/core/pages/src/index.ts +2 -2
- package/core/path/build.config.ts +1 -2
- package/core/path/package.json +4 -5
- package/core/path/src/index.ts +84 -65
- package/core/payments/build.config.ts +4 -7
- package/core/payments/package.json +5 -5
- package/core/push/build.config.ts +4 -7
- package/core/push/package.json +5 -5
- package/core/query-builder/build.config.ts +4 -7
- package/core/query-builder/package.json +7 -7
- package/core/queue/build.config.ts +4 -7
- package/core/queue/package.json +3 -3
- package/core/realtime/build.config.ts +4 -7
- package/core/realtime/package.json +3 -3
- package/core/realtime/src/index.ts +3 -1
- package/core/repl/README.md +53 -0
- package/core/repl/build.config.ts +12 -0
- package/core/repl/package.json +56 -0
- package/core/repl/src/index.ts +1 -0
- package/core/repl/tests/example.test.ts +7 -0
- package/core/router/build.config.ts +13 -7
- package/core/router/package.json +4 -4
- package/core/router/src/index.ts +2 -0
- package/core/scheduler/build.config.ts +4 -7
- package/core/scheduler/package.json +4 -4
- package/core/search-engine/build.config.ts +17 -7
- package/core/search-engine/package.json +4 -4
- package/core/search-engine/src/index.ts +2 -2
- package/core/security/build.config.ts +17 -7
- package/core/security/package.json +4 -3
- package/core/security/src/crypt.ts +11 -2
- package/core/server/build.config.ts +3 -7
- package/core/server/package.json +5 -5
- package/core/signals/README.md +2 -2
- package/core/signals/build.config.ts +4 -7
- package/core/signals/package.json +4 -4
- package/core/signals/src/index.ts +1 -1
- package/core/slug/build.config.ts +4 -7
- package/core/slug/package.json +3 -3
- package/core/slug/src/index.ts +2 -1
- package/core/sms/build.config.ts +3 -1
- package/core/sms/package.json +13 -13
- package/core/storage/build.config.ts +3 -7
- package/core/storage/package.json +5 -5
- package/core/storage/src/index.ts +2 -22
- package/core/strings/build.config.ts +1 -2
- package/core/strings/package.json +9 -3
- package/core/strings/src/case.ts +12 -0
- package/core/strings/src/index.ts +2 -1
- package/core/strings/src/is.ts +170 -0
- package/core/strings/src/macro.ts +139 -0
- package/core/strings/src/utils.ts +10 -12
- package/core/testing/build.config.ts +3 -1
- package/core/testing/package.json +8 -8
- package/core/tinker/build.config.ts +12 -0
- package/core/tinker/package.json +15 -3
- package/core/tinker/src/index.ts +1 -0
- package/core/types/build.config.ts +17 -8
- package/core/types/package.json +25 -19
- package/core/types/src/app.ts +4 -4
- package/core/types/src/cli.ts +36 -34
- package/core/types/src/cron-jobs.ts +25 -4
- package/core/types/src/database.ts +12 -3
- package/core/types/src/errors.ts +19 -1
- package/core/types/src/events.ts +13 -5
- package/core/types/src/git.ts +1 -1
- package/core/types/src/index.ts +2 -1
- package/core/types/src/library.ts +0 -7
- package/core/types/src/model.ts +21 -7
- package/core/types/src/money.ts +3 -0
- package/core/types/src/notifications.ts +9 -7
- package/core/types/src/queue.ts +34 -0
- package/core/types/src/search-engine.ts +3 -3
- package/core/types/src/stacks.ts +1 -12
- package/core/ui/build.config.ts +5 -7
- package/core/ui/package.json +7 -7
- package/core/utils/build.config.ts +32 -7
- package/core/utils/package.json +16 -16
- package/core/utils/src/config.ts +88 -49
- package/core/utils/src/currency.ts +3 -0
- package/core/utils/src/delete.ts +1 -3
- package/core/utils/src/helpers.ts +11 -5
- package/core/validation/build.config.ts +18 -8
- package/core/validation/package.json +8 -6
- package/core/validation/src/index.ts +2 -0
- package/core/validation/src/is.ts +27 -174
- package/core/validation/src/rules.ts +126 -0
- package/core/validation/src/types/env.ts +147 -0
- package/core/validation/src/types/index.ts +2 -0
- package/core/validation/src/types/money.ts +17 -0
- package/core/validation/src/validate.ts +14 -25
- package/core/vite-plugin/README.md +59 -0
- package/core/vite-plugin/build.config.ts +21 -0
- package/core/vite-plugin/package.json +51 -0
- package/core/vite-plugin/src/index.ts +23 -0
- package/core/vite-plugin/tests/example.test.ts +7 -0
- package/dictionary.txt +228 -0
- package/docs/package.json +3 -2
- package/env.d.ts +7 -0
- package/ide/jetbrains/.fleet/run.json +5 -0
- package/ide/jetbrains/.fleet/settings.json +4 -0
- package/ide/jetbrains/.idea/.gitignore +5 -0
- package/ide/jetbrains/.idea/inspectionProfiles/Project_Default.xml +6 -0
- package/ide/jetbrains/.idea/jsLibraryMappings.xml +6 -0
- package/ide/jetbrains/.idea/jsLinters/eslint.xml +7 -0
- package/ide/jetbrains/.idea/modules.xml +8 -0
- package/ide/jetbrains/.idea/stacks.iml +69 -0
- package/ide/jetbrains/.idea/vcs.xml +6 -0
- package/ide/jetbrains/.idea/webResources.xml +14 -0
- package/ide/jetbrains/.idea/workspace.xml +225 -0
- package/ide/jetbrains/IntelliJ IDEA Global Settings +0 -0
- package/ide/jetbrains/installed.txt +4 -0
- package/ide/jetbrains/options/github-copilot.xml +5 -0
- package/ide/jetbrains/options/nodejs.xml +7 -0
- package/ide/jetbrains/options/templates.xml +124 -0
- package/ide/jetbrains/templates/JavaScript.xml +6 -0
- package/ide/jetbrains/templates/Stacks.xml +8 -0
- package/ide/vscode/.vscode/README.md +23 -0
- package/ide/vscode/.vscode/extensions.json +5 -0
- package/ide/vscode/.vscode/settings.json +111 -0
- package/ide/vscode/.vscode/stacks.code-snippets +182 -0
- package/ide/vscode/README.md +42 -0
- package/ide/vscode/logo.png +0 -0
- package/ide/vscode/package.json +64 -0
- package/{components → libs/components}/vue/main.ts +1 -1
- package/{components → libs/components}/vue/package.json +1 -1
- package/{components → libs/components}/web/package.json +1 -1
- package/libs/examples/vue/App.vue +12 -0
- package/libs/examples/vue/favicon.png +0 -0
- package/libs/examples/vue/index.html +20 -0
- package/libs/examples/web/favicon.png +0 -0
- package/libs/examples/web/index.html +13 -0
- package/libs/functions/package.json +41 -0
- package/package.json +104 -98
- package/reset.d.ts +1 -0
- package/scripts/ensure.sh +33 -0
- package/scripts/publish.sh +18 -0
- package/scripts/setup.sh +540 -0
- package/stacks/dashboard/README.md +74 -0
- package/{core/domains → stacks/dashboard}/build.config.ts +1 -1
- package/stacks/dashboard/package.json +46 -0
- package/stacks/dashboard/src/index.ts +0 -0
- package/stacks/dashboard/tests/example.test.ts +7 -0
- package/stacks/tables/README.md +109 -0
- package/stacks/tables/build.config.ts +16 -0
- package/stacks/tables/examples/vue/App.vue +12 -0
- package/stacks/tables/examples/vue/favicon.png +0 -0
- package/stacks/tables/examples/vue/index.html +20 -0
- package/stacks/tables/examples/web/favicon.png +0 -0
- package/stacks/tables/examples/web/index.html +13 -0
- package/stacks/tables/index.html +13 -0
- package/stacks/tables/package.json +57 -0
- package/stacks/tables/src/App.vue +23 -0
- package/stacks/tables/src/components/Demo.vue +84 -0
- package/stacks/tables/src/components/README.md +110 -0
- package/stacks/tables/src/components/Table.vue +342 -0
- package/stacks/tables/src/components/TableBody.vue +32 -0
- package/stacks/tables/src/components/TableCellActionItems.vue +9 -0
- package/stacks/tables/src/components/TableFilters.vue +704 -0
- package/stacks/tables/src/components/TableHead.vue +60 -0
- package/stacks/tables/src/components/TablePagination.vue +131 -0
- package/stacks/tables/src/components/TableRow.vue +73 -0
- package/stacks/tables/src/components/TableSearch.vue +39 -0
- package/stacks/tables/src/components/Tooltip.vue +10 -0
- package/stacks/tables/src/config/tables.ts +1 -0
- package/stacks/tables/src/docs/index.md +0 -0
- package/stacks/tables/src/functions/README.md +8 -0
- package/stacks/tables/src/functions/dark.ts +3 -0
- package/stacks/tables/src/functions/index.ts +2 -0
- package/stacks/tables/src/functions/table.ts +207 -0
- package/stacks/tables/src/main.ts +4 -0
- package/stacks/tables/tests/example.test.ts +7 -0
- package/stacks/tables/vite.config.ts +26 -0
- package/stacks/tinker/package.json +48 -0
- package/stacks/tinker/src/index.ts +1 -0
- package/stacks/x-ray/README.md +55 -0
- package/stacks/x-ray/build.config.ts +15 -0
- package/stacks/x-ray/index.html +13 -0
- package/stacks/x-ray/package.json +55 -0
- package/stacks/x-ray/routes/index.ts +19 -0
- package/stacks/x-ray/src/client.ts +14 -0
- package/stacks/x-ray/src/desktop/api/nitro.config.ts +19 -0
- package/stacks/x-ray/src/desktop/api/routes/api/logs.ts +7 -0
- package/stacks/x-ray/src/desktop/api/routes/api/store-logs.ts +22 -0
- package/stacks/x-ray/src/desktop/api/src/types.ts +7 -0
- package/stacks/x-ray/src/desktop/api/storage/index.ts +7 -0
- package/stacks/x-ray/src/desktop/app.vue +377 -0
- package/stacks/x-ray/src/desktop/functions/http.ts +26 -0
- package/stacks/x-ray/src/desktop/functions/types.ts +7 -0
- package/stacks/x-ray/src/desktop/main.ts +14 -0
- package/stacks/x-ray/src/desktop/modules/counter/mod.vue +44 -0
- package/stacks/x-ray/src/desktop/modules/fetcher/mod.vue +63 -0
- package/stacks/x-ray/src/desktop/plugins/unified/unified-app.ts +5 -0
- package/stacks/x-ray/src/desktop/plugins/unified/unified-styles.scss +0 -0
- package/stacks/x-ray/src/desktop/services/http.ts +45 -0
- package/stacks/x-ray/src/desktop/styles/app.scss +0 -0
- package/stacks/x-ray/src/http.ts +26 -0
- package/stacks/x-ray/src/index.ts +42 -0
- package/stacks/x-ray/src/ray.config.ts +27 -0
- package/stacks/x-ray/src/types.ts +8 -0
- package/stacks/x-ray/tests/example.test.ts +7 -0
- package/stacks.d.ts +22 -0
- package/tsconfig.json +21 -12
- package/vcs/github/CODE_OF_CONDUCT.md +83 -0
- package/vcs/github/CONTRIBUTING.md +190 -0
- package/vcs/github/EXPLANATIONS.md +41 -0
- package/vcs/github/FUNDING.yml +1 -0
- package/vcs/github/ISSUE_TEMPLATE/bug_report.yml +62 -0
- package/vcs/github/ISSUE_TEMPLATE/config.yml +10 -0
- package/vcs/github/ISSUE_TEMPLATE/feature_request.yml +44 -0
- package/vcs/github/SECURITY.md +70 -0
- package/vcs/github/renovate.json +5 -0
- package/vcs/github/stale.yml +14 -0
- package/vcs/github/workflows/README.md +16 -0
- package/vcs/github/workflows/ci.yml +173 -0
- package/vcs/github/workflows/export-size.yml +32 -0
- package/vcs/github/workflows/release.yml +57 -0
- package/{pages → views}/desktop/src/Cargo.lock +363 -46
- package/{pages → views}/desktop/src/Cargo.toml +2 -2
- package/{pages → views}/web/main.ts +2 -2
- package/api/serverless.yml +0 -11
- package/core/actions/node_modules/.bin/markdown-it +0 -17
- package/core/actions/node_modules/.bin/unbuild +0 -17
- package/core/build/entries/README.md +0 -7
- package/core/build/node_modules/.bin/unbuild +0 -17
- package/core/build/node_modules/.bin/vite +0 -17
- package/core/build/node_modules/.bin/vite-ssg +0 -17
- package/core/build/node_modules/.bin/vue-docgen-web-types +0 -17
- package/core/desktop/node_modules/.bin/tauri +0 -17
- package/core/development/node_modules/.bin/tsc +0 -17
- package/core/development/node_modules/.bin/tsserver +0 -17
- package/core/development/node_modules/.bin/tsx +0 -17
- package/core/development/node_modules/.bin/unbuild +0 -17
- package/core/docs/node_modules/.bin/vitepress +0 -17
- package/core/email/node_modules/.bin/maizzle +0 -17
- package/core/git/node_modules/.bin/bumpp +0 -17
- package/core/git/node_modules/.bin/changelogen +0 -17
- package/core/git/node_modules/.bin/commitizen +0 -17
- package/core/git/node_modules/.bin/cz +0 -17
- package/core/git/node_modules/.bin/giget +0 -17
- package/core/git/node_modules/.bin/git-cz +0 -17
- package/core/git/node_modules/.bin/simple-git-hooks +0 -17
- package/core/lint/node_modules/.bin/eslint +0 -17
- package/core/lint/node_modules/.bin/lint-staged +0 -17
- package/core/lint/node_modules/.bin/publint +0 -17
- package/core/logging/node_modules/.bin/tsc +0 -17
- package/core/logging/node_modules/.bin/tsserver +0 -17
- package/core/logging/node_modules/.bin/tsx +0 -17
- package/core/logging/node_modules/.bin/unbuild +0 -17
- package/core/notifications/node_modules/.bin/maizzle +0 -17
- package/core/server/node_modules/.bin/nitro +0 -17
- package/core/server/node_modules/.bin/nitropack +0 -17
- package/core/server/node_modules/.bin/vite +0 -17
- package/core/testing/node_modules/.bin/playwright +0 -17
- package/core/testing/node_modules/.bin/tsc +0 -17
- package/core/testing/node_modules/.bin/tsserver +0 -17
- package/core/testing/node_modules/.bin/unbuild +0 -17
- package/core/testing/node_modules/.bin/vitest +0 -17
- package/core/tinker/node_modules/.bin/tsx +0 -17
- package/core/types/node_modules/.bin/markdown-it +0 -17
- package/core/types/node_modules/.bin/vite +0 -17
- package/core/types/node_modules/.bin/vite-ssg +0 -17
- package/core/types/node_modules/.bin/vitepress +0 -17
- package/core/types/src/markdown.ts +0 -198
- package/core/ui/node_modules/.bin/vue-tsc +0 -17
- package/core/utils/node_modules/.bin/rimraf +0 -17
- package/core/utils/node_modules/.bin/semver +0 -17
- package/docs/node_modules/.bin/rimraf +0 -17
- package/docs/node_modules/.bin/vitepress +0 -17
- /package/core/{domains → dns}/tests/example.test.ts +0 -0
- /package/{LICENSE.md → ide/vscode/LICENSE.md} +0 -0
- /package/{components → libs/components}/vue/index.html +0 -0
- /package/{core/domains/src → stacks/tables/src/cli}/index.ts +0 -0
- /package/{pages → views}/desktop/.gitignore +0 -0
- /package/{pages → views}/desktop/README.md +0 -0
- /package/{pages → views}/desktop/index.html +0 -0
- /package/{pages → views}/desktop/package.json +0 -0
- /package/{pages → views}/desktop/public/favicon.svg +0 -0
- /package/{pages → views}/desktop/src/.gitignore +0 -0
- /package/{pages → views}/desktop/src/build.rs +0 -0
- /package/{pages → views}/desktop/src/icons/128x128.png +0 -0
- /package/{pages → views}/desktop/src/icons/128x128@2x.png +0 -0
- /package/{pages → views}/desktop/src/icons/32x32.png +0 -0
- /package/{pages → views}/desktop/src/icons/Square107x107Logo.png +0 -0
- /package/{pages → views}/desktop/src/icons/Square142x142Logo.png +0 -0
- /package/{pages → views}/desktop/src/icons/Square150x150Logo.png +0 -0
- /package/{pages → views}/desktop/src/icons/Square284x284Logo.png +0 -0
- /package/{pages → views}/desktop/src/icons/Square30x30Logo.png +0 -0
- /package/{pages → views}/desktop/src/icons/Square310x310Logo.png +0 -0
- /package/{pages → views}/desktop/src/icons/Square44x44Logo.png +0 -0
- /package/{pages → views}/desktop/src/icons/Square71x71Logo.png +0 -0
- /package/{pages → views}/desktop/src/icons/Square89x89Logo.png +0 -0
- /package/{pages → views}/desktop/src/icons/StoreLogo.png +0 -0
- /package/{pages → views}/desktop/src/icons/icon.icns +0 -0
- /package/{pages → views}/desktop/src/icons/icon.ico +0 -0
- /package/{pages → views}/desktop/src/icons/icon.png +0 -0
- /package/{pages → views}/desktop/src/src/main.rs +0 -0
- /package/{pages → views}/desktop/src/tauri.conf.json +0 -0
- /package/{pages → views}/web/App.vue +0 -0
- /package/{pages → views}/web/index.html +0 -0
- /package/{pages → views}/web/public/_headers +0 -0
- /package/{pages → views}/web/public/favicon-dark.svg +0 -0
- /package/{pages → views}/web/public/favicon.svg +0 -0
- /package/{pages → views}/web/public/pwa-192x192.png +0 -0
- /package/{pages → views}/web/public/pwa-512x512.png +0 -0
- /package/{pages → views}/web/public/safari-pinned-tab.svg +0 -0
- /package/{pages → views}/web/styles/main.css +0 -0
- /package/{pages → views}/web/styles/markdown.css +0 -0
package/core/buddy/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
[![npm downloads][npm-downloads-src]][npm-downloads-href]
|
|
9
9
|
<!-- [![Codecov][codecov-src]][codecov-href] -->
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
_Beta coming soon._
|
|
12
12
|
|
|
13
13
|
The goal of the framework is to _help you_ create & maintain frontends, backends, and clouds—without having to worry about the boilerplate. Stacks is a rapid application development framework, meeting all your full stack needs.
|
|
14
14
|
|
|
@@ -72,7 +72,7 @@ _Create your personal or professional Vercel-like cloud, based on MIT-licensed O
|
|
|
72
72
|
- ⛅️ **Serverless** _on-demand, auto-scaling, zero maintenance_
|
|
73
73
|
- 🚏 **CDN** _zero-config low-latency CDN, including request life-cycle hooks & optimized request compressions (Brotli & gzip)_
|
|
74
74
|
- 🔀 **Domain** _version-controlled & zero-config domain management (e.g. DNS)_
|
|
75
|
-
- 📧 **Email** _secure & simplistic
|
|
75
|
+
- 📧 **Email** _secure & simplistic easy-peasy@custom-domains.com mail_
|
|
76
76
|
- 🔐 **Firewall** _native web application firewall support_
|
|
77
77
|
- 🚜 **Maintenance** _handles your cloud infrastructure via the Stacks & Serverless framework_
|
|
78
78
|
- 🤖 **Infrastructure as Code** _create & maintain your cloud infrastructure with ease_
|
|
@@ -94,7 +94,7 @@ _Enhanced productivity for developers. No more creating boilerplate._
|
|
|
94
94
|
- 💪🏼 **Type Strong** _built-in e2e type-safety_
|
|
95
95
|
- ✨ **Git Workflows** _committing with ease_
|
|
96
96
|
- 🚗 **Auto Imports** _your components & functions, including date, string, array, & object helpers_
|
|
97
|
-
- ⏩ **Code Snippets** _say goodbye to the boilerplate—thank you
|
|
97
|
+
- ⏩ **Code Snippets** _say goodbye to the boilerplate—thank you Sarah Drasner_
|
|
98
98
|
- 🔤 **Spell Checker** _be notified once there are typos_
|
|
99
99
|
- 🛠️ **Utilities** _Collections, VueUse, and more_
|
|
100
100
|
- 🧪 **Testing** _unit & e2e tests powered by Vitest & Playwright_
|
|
@@ -110,27 +110,24 @@ Develop beautiful, reactive, composable UIs without learning a new set of langua
|
|
|
110
110
|
It's incredibly easy to get started with this framework. Simply run the following command in your terminal:
|
|
111
111
|
|
|
112
112
|
```bash
|
|
113
|
-
sh <(curl stacksjs.dev)
|
|
113
|
+
sh <(curl stacksjs.dev) my-project
|
|
114
114
|
|
|
115
|
-
# alternatively, if Node.js >= v18.
|
|
115
|
+
# alternatively, if Node.js >= v18.16 is installed already,
|
|
116
116
|
# you may also get started via:
|
|
117
117
|
npx stacks new my-project
|
|
118
118
|
```
|
|
119
119
|
|
|
120
|
-
> **Note**
|
|
121
|
-
> pnpm 8 required. _Run the setup script & 🐶 Buddy will set you up. He barks otherwise._
|
|
122
|
-
|
|
123
120
|
## 🤖 Usage
|
|
124
121
|
|
|
125
122
|
The following list includes some of the most common ways to interact with the Stacks API. Meet the toolkit, Buddy:
|
|
126
123
|
|
|
127
124
|
```bash
|
|
128
125
|
buddy install # installs all dependencies
|
|
129
|
-
buddy dev # starts one of the dev servers (components, functions,
|
|
126
|
+
buddy dev # starts one of the dev servers (components, functions, views, or docs)
|
|
130
127
|
buddy build # follow CLI prompts to select which library (or server) to build
|
|
131
128
|
buddy commit # follow CLI prompts for committing changes
|
|
132
129
|
buddy release # creates the releases for the stack & consequently, publishes them to npm
|
|
133
|
-
buddy upgrade # auto-update deps & the Stacks framework
|
|
130
|
+
buddy upgrade # auto-update all deps & the Stacks framework
|
|
134
131
|
|
|
135
132
|
buddy make:component HelloWorld # scaffolds a component
|
|
136
133
|
buddy make:function HelloWorld # scaffolds a function
|
|
@@ -148,69 +145,76 @@ buddy --help # view help menu
|
|
|
148
145
|
# please note: you may suffix any command with the
|
|
149
146
|
# `command --help` flag to review the help menu
|
|
150
147
|
|
|
151
|
-
buddy install # installs
|
|
148
|
+
buddy install # installs dependencies
|
|
149
|
+
buddy add # adds a stack or dependency
|
|
152
150
|
buddy fresh # fresh reinstall of all deps
|
|
153
|
-
buddy clean # removes all
|
|
151
|
+
buddy clean # removes all deps
|
|
154
152
|
|
|
155
|
-
buddy
|
|
156
|
-
buddy
|
|
157
|
-
buddy
|
|
158
|
-
buddy
|
|
159
|
-
buddy
|
|
160
|
-
buddy
|
|
161
|
-
buddy
|
|
153
|
+
buddy upgrade # auto-upgrades deps, framework, node.js, and/or pnpm
|
|
154
|
+
buddy upgrade:dependencies # auto-upgrades deps & the Stacks framework
|
|
155
|
+
buddy upgrade:framework # auto-upgrades deps & the Stacks framework
|
|
156
|
+
buddy upgrade:package-manager # auto-upgrades deps & the Stacks framework
|
|
157
|
+
buddy upgrade:search-engine # auto-upgrades configured search engine
|
|
158
|
+
buddy upgrade:node # upgrades to latest project-defined node version
|
|
159
|
+
buddy upgrade:all # upgrades Node, package manager, framework, dependencies
|
|
162
160
|
|
|
163
161
|
# if you need any more info on any command listed here, you may suffix
|
|
164
162
|
# any of them via the "help option", i.e. `buddy ... --help`
|
|
165
163
|
|
|
166
|
-
buddy dev #
|
|
167
|
-
buddy dev:components #
|
|
164
|
+
buddy dev # starts one of the dev servers (components, functions, views, or docs)
|
|
165
|
+
buddy dev:components # starts local playground dev server
|
|
168
166
|
buddy dev:desktop # starts the Desktop playground
|
|
169
|
-
buddy dev:
|
|
170
|
-
buddy dev:functions #
|
|
171
|
-
buddy dev:docs #
|
|
167
|
+
buddy dev:views # starts local playground views dev server
|
|
168
|
+
buddy dev:functions # stubs local the functions
|
|
169
|
+
buddy dev:docs # starts local docs dev server
|
|
172
170
|
buddy development # `buddy dev` alias
|
|
173
171
|
|
|
174
172
|
# for Laravel folks, `serve` may ring more familiar than the `dev` name. Hence, we aliased it:
|
|
175
173
|
buddy serve
|
|
176
174
|
buddy serve:components
|
|
177
|
-
buddy serve:
|
|
175
|
+
buddy serve:desktop
|
|
176
|
+
buddy serve:views
|
|
178
177
|
buddy serve:functions
|
|
179
178
|
buddy serve:docs
|
|
180
179
|
|
|
181
180
|
# building for production (e.g. AWS, Google Cloud, npm, Vercel, Netlify, et al.)
|
|
182
181
|
buddy build # select a specific build (follow CLI prompts)
|
|
183
|
-
buddy build:
|
|
184
|
-
buddy build:
|
|
185
|
-
buddy build:
|
|
186
|
-
buddy build:functions #
|
|
187
|
-
buddy build:
|
|
188
|
-
buddy build:
|
|
182
|
+
buddy build:views # builds SSG views
|
|
183
|
+
buddy build:desktop # builds Desktop application
|
|
184
|
+
buddy build:library # builds any or all libraries
|
|
185
|
+
buddy build:functions # builds function library
|
|
186
|
+
buddy build:components # builds Vue component library & Web Component library
|
|
187
|
+
buddy build:web-components # builds framework agnostic Web Component library (i.e. Custom Elements)
|
|
188
|
+
buddy build:vue-components # builds Vue 2 & 3-ready Component library
|
|
189
|
+
buddy build:all # builds all your code
|
|
189
190
|
|
|
190
191
|
# `buddy build` aliases
|
|
191
192
|
buddy prod
|
|
192
193
|
buddy prod:components
|
|
194
|
+
buddy prod:desktop
|
|
195
|
+
buddy prod:library
|
|
196
|
+
buddy prod:views
|
|
197
|
+
buddy prod:functions
|
|
193
198
|
buddy prod:vue-components
|
|
194
199
|
buddy prod:web-components
|
|
195
|
-
buddy prod:functions
|
|
196
|
-
buddy prod:pages
|
|
197
200
|
buddy prod:all
|
|
198
201
|
buddy production # `buddy prod` alias
|
|
199
202
|
|
|
200
203
|
# sets your application key
|
|
201
204
|
buddy key:generate
|
|
202
205
|
|
|
203
|
-
buddy make:
|
|
204
|
-
buddy make:
|
|
205
|
-
buddy make:
|
|
206
|
-
buddy make:
|
|
207
|
-
buddy make:
|
|
208
|
-
buddy make:
|
|
209
|
-
buddy make:
|
|
210
|
-
buddy make:
|
|
211
|
-
buddy make:
|
|
212
|
-
buddy make:
|
|
213
|
-
buddy make:
|
|
206
|
+
buddy make:component HelloWorld # bootstraps a HelloWorld component
|
|
207
|
+
buddy make:function hello-world # bootstraps a hello-world function
|
|
208
|
+
buddy make:page hello-world # bootstraps a hello-word page
|
|
209
|
+
buddy make:model Car # bootstraps a Car model
|
|
210
|
+
buddy make:database cars # creates a cars database
|
|
211
|
+
buddy make:migration create_cars_table # creates a cars migration file
|
|
212
|
+
buddy make:factory cars # creates a Car factory file
|
|
213
|
+
buddy make:seed cars # creates a Car seed file
|
|
214
|
+
buddy make:table cars # boostraps a cars data table
|
|
215
|
+
buddy make:notification welcome-email # bootstraps a welcome-email notification
|
|
216
|
+
buddy make:lang de # bootstraps a lang/de.yml language file
|
|
217
|
+
buddy make:stack my-project # shares logic with `npx stacks new my-project`
|
|
214
218
|
|
|
215
219
|
buddy lint # runs linter
|
|
216
220
|
buddy lint:fix # runs linter and fixes issues
|
|
@@ -220,33 +224,33 @@ buddy release # creates the releases for the stack & triggers the Release Action
|
|
|
220
224
|
buddy changelog # generates CHANGELOG.md
|
|
221
225
|
|
|
222
226
|
# when deploying your app/s to a remote server or cloud provider
|
|
223
|
-
buddy deploy
|
|
224
|
-
buddy deploy:docs
|
|
225
|
-
buddy deploy:functions
|
|
226
|
-
buddy deploy:
|
|
227
|
-
buddy deploy:all
|
|
227
|
+
buddy deploy # select a specific deployment (follow CLI prompts)
|
|
228
|
+
buddy deploy:docs # deploys docs to AWS (or other configured provider)
|
|
229
|
+
buddy deploy:functions # deploys functions to AWS (or other configured provider)
|
|
230
|
+
buddy deploy:views # deploys views to AWS (or other configured provider)
|
|
231
|
+
buddy deploy:all # deploys all your code
|
|
228
232
|
|
|
229
233
|
# select the example to run (follow CLI prompts)
|
|
230
|
-
buddy example
|
|
231
|
-
buddy example:vue
|
|
232
|
-
buddy example:web-components
|
|
234
|
+
buddy example # prompts you to select which example to run
|
|
235
|
+
buddy example:vue # runs the Vue example
|
|
236
|
+
buddy example:web-components # runs the Web Component example
|
|
233
237
|
|
|
234
238
|
# you likely won't need to run these commands as they are auto-triggered, but they are available
|
|
235
|
-
buddy generate
|
|
236
|
-
buddy generate:entries
|
|
237
|
-
buddy generate:vue-compat
|
|
238
|
-
buddy generate:web-types
|
|
239
|
-
buddy generate:vscode-custom-data
|
|
240
|
-
buddy generate:ide-helpers
|
|
241
|
-
buddy generate:component-meta
|
|
242
|
-
buddy generate:all
|
|
239
|
+
buddy generate # prompts you to select which generator to run
|
|
240
|
+
buddy generate:entries # generates entry files for components, functions, & views
|
|
241
|
+
buddy generate:vue-compat # generates Vue 2 compatibility layer
|
|
242
|
+
buddy generate:web-types # generates Web Component types
|
|
243
|
+
buddy generate:vscode-custom-data # generates VSCode custom data
|
|
244
|
+
buddy generate:ide-helpers # generates IDE helpers
|
|
245
|
+
buddy generate:component-meta # generates component meta
|
|
246
|
+
buddy generate:all # runs all generators
|
|
243
247
|
|
|
244
248
|
# generates your application key
|
|
245
|
-
buddy key:generate
|
|
249
|
+
buddy key:generate # generates your application key
|
|
246
250
|
|
|
247
251
|
# generate your TypeScript declarations
|
|
248
|
-
buddy types:generate
|
|
249
|
-
buddy types:fix
|
|
252
|
+
buddy types:generate # generates types for your components, functions, & views
|
|
253
|
+
buddy types:fix # auto-fixes types for your components, functions, & views
|
|
250
254
|
|
|
251
255
|
# test your stack
|
|
252
256
|
buddy test # runs test suite (unit & e2e)
|
|
@@ -259,12 +263,6 @@ stx fresh
|
|
|
259
263
|
buddy fresh
|
|
260
264
|
bud fresh
|
|
261
265
|
buddy fresh
|
|
262
|
-
pnpm stx fresh
|
|
263
|
-
pnpm buddy fresh
|
|
264
|
-
pnpm buddy fresh
|
|
265
|
-
pnpm fresh
|
|
266
|
-
pnpm run fresh
|
|
267
|
-
pnpm run buddy fresh
|
|
268
266
|
```
|
|
269
267
|
|
|
270
268
|
</details>
|
|
@@ -275,7 +273,7 @@ Read more here about the Stacks CLI in the documentation.
|
|
|
275
273
|
|
|
276
274
|
Because Stacks optimizes the development of easily reusable & composable component & function libraries, the primary intention is to always _keep it simple, yet configurable._
|
|
277
275
|
|
|
278
|
-
By default, Stacks realizes whether your Stack includes components, functions, and/or
|
|
276
|
+
By default, Stacks realizes whether your Stack includes components, functions, and/or views. Based on that determination, Stacks builds your outputs.
|
|
279
277
|
|
|
280
278
|
The UI libraries that automatically get built are: a Web Component (Custom Elements) & Vue Component library.
|
|
281
279
|
|
|
@@ -347,7 +345,7 @@ You may view this framework as an incredibly “useful set of frames” to assis
|
|
|
347
345
|
|
|
348
346
|
Part of the Stacks ecosystem are the following first-party supported stacks:
|
|
349
347
|
|
|
350
|
-
- [Table](https://github.com/stacksjs/
|
|
348
|
+
- [Table](https://github.com/stacksjs/stacks/tree/main/.stacks/stacks/tables) (Data tables with ease)
|
|
351
349
|
- [Calendar](https://github.com/stacksjs/calendar) (Add to Calendar utilities—iCal, Google, and more)
|
|
352
350
|
- [Command Palette](https://github.com/stacksjs/command-palette) (`⌘ + k` for the web)
|
|
353
351
|
- [Date Picker](https://github.com/stacksjs/date-picker) (Beautiful, modern date picker)
|
|
@@ -355,11 +353,10 @@ Part of the Stacks ecosystem are the following first-party supported stacks:
|
|
|
355
353
|
- [Image](https://github.com/stacksjs/image) (Modern image experience)
|
|
356
354
|
- [Video](https://github.com/stacksjs/video) (Modern video experience)
|
|
357
355
|
- [Audio](https://github.com/stacksjs/audio) (Modern audio experience)
|
|
358
|
-
- [
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
- [DAO](https://github.com/stacksjs/dao) (Powerful toolkit for DAO governance, including a Reddit-type of voting system)
|
|
356
|
+
- [Identity](https://github.com/stacksjs/identity) (Identity providers & wallet integrations)
|
|
357
|
+
- [Digital Ownership](https://github.com/stacksjs/ownership) (Public ownership protocol integrations)
|
|
358
|
+
- [Payments](https://github.com/stacksjs/payments) (Unified payment APIs)
|
|
359
|
+
- [Governance](https://github.com/stacksjs/governance) (Powerful toolkit for democratic governance)
|
|
363
360
|
|
|
364
361
|
View our detailed roadmap/s [here](https://github.com/stacksjs/stacks/projects?query=is%3Aopen), for more information. Additionally, you may find interesting stacks, information & examples over at [Awesome Stacks](https://github.com/stacksjs/awesome-stacks).
|
|
365
362
|
|
package/core/buddy/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stacksjs/buddy",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
5
|
-
"packageManager": "pnpm@8.5
|
|
4
|
+
"version": "0.56.3",
|
|
5
|
+
"packageManager": "pnpm@8.6.5",
|
|
6
6
|
"description": "Meet Buddy. The Stacks runtime.",
|
|
7
7
|
"author": "Chris Breuer",
|
|
8
8
|
"license": "MIT",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"preinstall": "npx only-allow pnpm",
|
|
67
67
|
"build": "unbuild",
|
|
68
68
|
"dev": "unbuild --stub",
|
|
69
|
-
"prepublishOnly": "
|
|
69
|
+
"prepublishOnly": "tsx ./src/cli.ts prepublish",
|
|
70
70
|
"typecheck": "tsc --noEmit"
|
|
71
71
|
},
|
|
72
72
|
"peerDependencies": {
|
|
@@ -84,8 +84,8 @@
|
|
|
84
84
|
"@stacksjs/database": "workspace:*",
|
|
85
85
|
"@stacksjs/desktop": "workspace:*",
|
|
86
86
|
"@stacksjs/development": "workspace:*",
|
|
87
|
+
"@stacksjs/dns": "workspace:*",
|
|
87
88
|
"@stacksjs/docs": "workspace:*",
|
|
88
|
-
"@stacksjs/domains": "workspace:*",
|
|
89
89
|
"@stacksjs/email": "workspace:*",
|
|
90
90
|
"@stacksjs/error-handling": "workspace:*",
|
|
91
91
|
"@stacksjs/events": "workspace:*",
|
package/core/buddy/src/cli.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { runAction } from '@stacksjs/actions'
|
|
3
|
+
import { handleError } from '@stacksjs/error-handling'
|
|
3
4
|
import { command, log } from '@stacksjs/cli'
|
|
4
|
-
import { env
|
|
5
|
+
import { env } from '@stacksjs/validation'
|
|
6
|
+
import { frameworkVersion, installIfVersionMismatch, isProjectCreated } from '@stacksjs/utils'
|
|
5
7
|
import { projectPath } from '@stacksjs/path'
|
|
6
8
|
import { Action } from '@stacksjs/types'
|
|
7
9
|
import { build, changelog, clean, commit, create, dev, example, fresh, generate, key, lint, make, migrate, preinstall, prepublish, release, seed, setup, test, upgrade, version } from './commands'
|
|
@@ -9,8 +11,8 @@ import { build, changelog, clean, commit, create, dev, example, fresh, generate,
|
|
|
9
11
|
const cli = command('buddy')
|
|
10
12
|
|
|
11
13
|
// setup global error handlers
|
|
12
|
-
process.on('uncaughtException',
|
|
13
|
-
process.on('unhandledRejection',
|
|
14
|
+
process.on('uncaughtException', handleError)
|
|
15
|
+
process.on('unhandledRejection', handleError)
|
|
14
16
|
|
|
15
17
|
async function main() {
|
|
16
18
|
// the following commands are not dependent on the project being initialized
|
|
@@ -20,20 +22,15 @@ async function main() {
|
|
|
20
22
|
|
|
21
23
|
// before running any commands, check if the project is already initialized
|
|
22
24
|
if (!await isProjectCreated()) {
|
|
23
|
-
if (env
|
|
25
|
+
if (env.APP_ENV !== 'production')
|
|
24
26
|
log.info('Project not yet initialized, generating application key...')
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
log.error('Please run `buddy key:generate` to generate an application key.')
|
|
28
|
-
process.exit()
|
|
29
|
-
}
|
|
27
|
+
else
|
|
28
|
+
handleError(new Error('Please run `buddy key:generate` to generate an application key'))
|
|
30
29
|
|
|
31
30
|
const result = await runAction(Action.KeyGenerate, { cwd: projectPath() })
|
|
32
31
|
|
|
33
|
-
if (result.isErr())
|
|
34
|
-
|
|
35
|
-
process.exit()
|
|
36
|
-
}
|
|
32
|
+
if (result.isErr())
|
|
33
|
+
handleError(result.error as Error)
|
|
37
34
|
|
|
38
35
|
log.info('Application key generated.')
|
|
39
36
|
|
|
@@ -66,8 +63,3 @@ async function main() {
|
|
|
66
63
|
}
|
|
67
64
|
|
|
68
65
|
main()
|
|
69
|
-
|
|
70
|
-
function errorHandler(error: Error): void {
|
|
71
|
-
log.error(error)
|
|
72
|
-
process.exit(1)
|
|
73
|
-
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AddOptions, BuildOptions, CLI } from '@stacksjs/types'
|
|
2
2
|
import { ExitCode } from '@stacksjs/types'
|
|
3
|
-
import {
|
|
3
|
+
import { log } from '@stacksjs/cli'
|
|
4
4
|
import { invoke } from '@stacksjs/actions/add'
|
|
5
5
|
|
|
6
6
|
async function add(buddy: CLI) {
|
|
@@ -21,7 +21,7 @@ async function add(buddy: CLI) {
|
|
|
21
21
|
.option('--verbose', descriptions.verbose, { default: false })
|
|
22
22
|
.action(async (options: BuildOptions) => {
|
|
23
23
|
if (hasNoOptions(options)) {
|
|
24
|
-
const answers = await prompt(descriptions.select, {
|
|
24
|
+
const answers = await log.prompt(descriptions.select, {
|
|
25
25
|
type: 'multiselect',
|
|
26
26
|
options: [
|
|
27
27
|
{ label: 'Calendar', value: 'calendar' },
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BuildOptions, CLI } from '@stacksjs/types'
|
|
2
2
|
import { Action, ExitCode } from '@stacksjs/types'
|
|
3
|
-
import { intro, outro, prompt } from '@stacksjs/cli'
|
|
3
|
+
import { intro, log, outro, prompt } from '@stacksjs/cli'
|
|
4
4
|
import { runAction } from '@stacksjs/actions'
|
|
5
5
|
|
|
6
6
|
async function build(buddy: CLI) {
|
|
@@ -10,7 +10,7 @@ async function build(buddy: CLI) {
|
|
|
10
10
|
webComponents: 'Build your framework agnostic web component library',
|
|
11
11
|
elements: 'An alias to the -w flag',
|
|
12
12
|
functions: 'Build your function library',
|
|
13
|
-
pages: 'Build your SSG
|
|
13
|
+
pages: 'Build your SSG views',
|
|
14
14
|
docs: 'Build your documentation site',
|
|
15
15
|
stacks: 'Build Stacks framework',
|
|
16
16
|
select: 'What are you trying to build?',
|
|
@@ -24,29 +24,36 @@ async function build(buddy: CLI) {
|
|
|
24
24
|
.option('-w, --web-components', descriptions.webComponents) // these are automatically built with your -c option as well
|
|
25
25
|
.option('-e, --elements', descriptions.elements)
|
|
26
26
|
.option('-f, --functions', descriptions.functions)
|
|
27
|
-
.option('-p, --
|
|
27
|
+
.option('-p, --views', descriptions.pages)
|
|
28
28
|
.option('-d, --docs', descriptions.docs)
|
|
29
29
|
.option('-s, --stacks', descriptions.stacks, { default: false })
|
|
30
30
|
.option('--verbose', descriptions.verbose, { default: false })
|
|
31
31
|
.action(async (options: BuildOptions) => {
|
|
32
32
|
if (hasNoOptions(options)) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
33
|
+
let answers = await prompt.require()
|
|
34
|
+
.multiselect(descriptions.select, {
|
|
35
|
+
options: [
|
|
36
|
+
{ label: 'Components', value: 'components' },
|
|
37
|
+
// { label: 'Vue Components', value: 'vue-components' },
|
|
38
|
+
// { label: 'Web Components', value: 'web-components' },
|
|
39
|
+
{ label: 'Functions', value: 'functions' },
|
|
40
|
+
{ label: 'Pages', value: 'pages' },
|
|
41
|
+
{ label: 'Documentation', value: 'docs' },
|
|
42
|
+
],
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
if (answers !== null)
|
|
46
|
+
process.exit(ExitCode.InvalidArgument)
|
|
47
|
+
|
|
48
|
+
if (isString(answers))
|
|
49
|
+
answers = [answers]
|
|
45
50
|
|
|
46
51
|
// creates an object out of array and sets answers to true
|
|
47
52
|
options = answers.reduce((a: any, v: any) => ({ ...a, [v]: true }), {})
|
|
48
53
|
}
|
|
49
54
|
|
|
55
|
+
console.log('options', options)
|
|
56
|
+
|
|
50
57
|
await runAction(Action.BuildStacks, options)
|
|
51
58
|
|
|
52
59
|
process.exit(ExitCode.Success)
|
|
@@ -111,7 +118,7 @@ async function build(buddy: CLI) {
|
|
|
111
118
|
const result = await runAction(Action.BuildCore, options)
|
|
112
119
|
|
|
113
120
|
if (result.isErr()) {
|
|
114
|
-
log.error('Failed to build the Stacks core.', result.error
|
|
121
|
+
log.error('Failed to build the Stacks core.', result.error)
|
|
115
122
|
process.exit()
|
|
116
123
|
}
|
|
117
124
|
|
|
@@ -13,7 +13,7 @@ async function create(buddy: CLI) {
|
|
|
13
13
|
components: 'Are you building UI components?',
|
|
14
14
|
webComponents: 'Automagically built optimized custom elements/web components?',
|
|
15
15
|
vue: 'Automagically built a Vue component library?',
|
|
16
|
-
pages: 'How about
|
|
16
|
+
pages: 'How about views/views?',
|
|
17
17
|
functions: 'Are you developing functions/composables?',
|
|
18
18
|
api: 'Are you building an API?',
|
|
19
19
|
database: 'Do you need a database?',
|
|
@@ -26,7 +26,7 @@ async function create(buddy: CLI) {
|
|
|
26
26
|
.option('-c, --components', descriptions.components, { default: true }) // if no, -v and -w would be false
|
|
27
27
|
.option('-w, --web-components', descriptions.webComponents, { default: true })
|
|
28
28
|
.option('-v, --vue', descriptions.vue, { default: true })
|
|
29
|
-
.option('-p, --
|
|
29
|
+
.option('-p, --views', descriptions.pages, { default: true }) // views need an HTTP server
|
|
30
30
|
.option('-f, --functions', descriptions.functions, { default: true }) // if no, API would be false
|
|
31
31
|
.option('-a, --api', descriptions.api, { default: true }) // APIs need an HTTP server & assumes functions is true
|
|
32
32
|
.option('-d, --database', descriptions.database, { default: true })
|
|
@@ -4,7 +4,7 @@ import type { CLI, DevOptions } from '@stacksjs/types'
|
|
|
4
4
|
import { intro, log, outro, prompt } from '@stacksjs/cli'
|
|
5
5
|
import { components, desktop, functions, pages } from '@stacksjs/actions/dev'
|
|
6
6
|
|
|
7
|
-
// import { components, desktop, functions,
|
|
7
|
+
// import { components, desktop, functions, views, invoke as startDevelopmentServer } from '@stacksjs/actions/dev'
|
|
8
8
|
|
|
9
9
|
async function dev(buddy: CLI) {
|
|
10
10
|
const descriptions = {
|
|
@@ -22,24 +22,25 @@ async function dev(buddy: CLI) {
|
|
|
22
22
|
.option('-c, --components', descriptions.components)
|
|
23
23
|
.option('-f, --functions', descriptions.functions)
|
|
24
24
|
.option('-d, --docs', descriptions.docs)
|
|
25
|
-
.option('-p, --
|
|
25
|
+
.option('-p, --views', descriptions.pages)
|
|
26
26
|
.option('--verbose', descriptions.verbose, { default: false })
|
|
27
27
|
.action(async (options: DevOptions) => {
|
|
28
|
+
// const perf = await intro('buddy dev')
|
|
29
|
+
// const result = await runAction(Action.Dev, { ...options, verbose: true })
|
|
30
|
+
|
|
28
31
|
if (hasNoOptions(options)) {
|
|
29
|
-
const answer = await prompt(
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (answer !== null)
|
|
42
|
-
process.exit(ExitCode.InvalidArgument)
|
|
32
|
+
const answer = await prompt.require()
|
|
33
|
+
.select(descriptions.select, {
|
|
34
|
+
options: [
|
|
35
|
+
{ value: 'all', label: 'All' },
|
|
36
|
+
{ value: 'pages', label: 'Frontend' },
|
|
37
|
+
{ value: 'api', label: 'Backend' },
|
|
38
|
+
{ value: 'desktop', label: 'Desktop' },
|
|
39
|
+
{ value: 'components', label: 'Components' },
|
|
40
|
+
{ value: 'functions', label: 'Functions' },
|
|
41
|
+
{ value: 'docs', label: 'Documentation' },
|
|
42
|
+
],
|
|
43
|
+
})
|
|
43
44
|
|
|
44
45
|
if (answer === 'components')
|
|
45
46
|
await components(options)
|
|
@@ -48,12 +49,21 @@ async function dev(buddy: CLI) {
|
|
|
48
49
|
else if (answer === 'pages')
|
|
49
50
|
await pages(options)
|
|
50
51
|
// else if (answer === 'docs')
|
|
51
|
-
|
|
52
|
+
// await docs(options)
|
|
52
53
|
|
|
53
54
|
else process.exit(ExitCode.InvalidArgument)
|
|
54
55
|
}
|
|
55
|
-
|
|
56
|
+
else {
|
|
57
|
+
if (options.components)
|
|
58
|
+
await components(options)
|
|
59
|
+
else if (options.functions)
|
|
60
|
+
await functions(options)
|
|
61
|
+
else if (options.pages)
|
|
62
|
+
await pages(options)
|
|
63
|
+
// else if (options.docs)
|
|
64
|
+
}
|
|
56
65
|
// await startDevelopmentServer(options)
|
|
66
|
+
|
|
57
67
|
process.exit(ExitCode.Success)
|
|
58
68
|
})
|
|
59
69
|
|
|
@@ -64,19 +74,10 @@ async function dev(buddy: CLI) {
|
|
|
64
74
|
const result = await runAction(Action.DevComponents, { ...options, verbose: true })
|
|
65
75
|
|
|
66
76
|
if (options.verbose)
|
|
67
|
-
log.info('
|
|
68
|
-
|
|
69
|
-
// check if result is an array
|
|
70
|
-
if (Array.isArray(result)) {
|
|
71
|
-
// check if any of the items in the array is an error
|
|
72
|
-
// if (result.some(item => item.isErr())) {
|
|
73
|
-
// outro('While running the dev:components command, there was an issue', { startTime: perf, useSeconds: true, isError: true })
|
|
74
|
-
// process.exit()
|
|
75
|
-
// }
|
|
76
|
-
}
|
|
77
|
+
log.info('runAction result is', result)
|
|
77
78
|
|
|
78
79
|
// check if result is an error
|
|
79
|
-
|
|
80
|
+
if (result.isErr()) {
|
|
80
81
|
outro('While running the dev:components command, there was an issue', { startTime: perf, useSeconds: true, isError: true }, result.error ?? undefined)
|
|
81
82
|
process.exit()
|
|
82
83
|
}
|
|
@@ -127,7 +128,7 @@ async function dev(buddy: CLI) {
|
|
|
127
128
|
})
|
|
128
129
|
|
|
129
130
|
buddy
|
|
130
|
-
.command('dev:
|
|
131
|
+
.command('dev:views', descriptions.pages)
|
|
131
132
|
.option('--verbose', descriptions.verbose, { default: false })
|
|
132
133
|
.action(async (options: DevOptions) => {
|
|
133
134
|
await pages(options)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ExitCode } from '@stacksjs/types'
|
|
2
2
|
import type { CLI, ExamplesOptions } from '@stacksjs/types'
|
|
3
|
-
import {
|
|
3
|
+
import { prompt } from '@stacksjs/cli'
|
|
4
4
|
import { componentExample, invoke as runExample, webComponentExample } from '@stacksjs/actions/examples'
|
|
5
5
|
|
|
6
6
|
async function example(buddy: CLI) {
|
|
@@ -20,19 +20,13 @@ async function example(buddy: CLI) {
|
|
|
20
20
|
.option('-w, --web-components', descriptions.webComponents)
|
|
21
21
|
.option('--verbose', descriptions.verbose, { default: false })
|
|
22
22
|
.action(async (options: ExamplesOptions) => {
|
|
23
|
-
const answer = await prompt(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
})
|
|
31
|
-
|
|
32
|
-
if (answer !== null) {
|
|
33
|
-
log.error(`You did not provide an answer. Please try again, ${italic('or report the issue')}`)
|
|
34
|
-
process.exit()
|
|
35
|
-
}
|
|
23
|
+
const answer = await prompt.require()
|
|
24
|
+
.select(descriptions.select, {
|
|
25
|
+
options: [
|
|
26
|
+
{ value: 'components', label: 'Vue Components' },
|
|
27
|
+
{ value: 'web-components', label: 'Web Components' },
|
|
28
|
+
],
|
|
29
|
+
})
|
|
36
30
|
|
|
37
31
|
if (answer === 'components')
|
|
38
32
|
await componentExample(options)
|