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/scripts/setup.sh
ADDED
|
@@ -0,0 +1,540 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
# This is a slighly adjusted Tea.xyz setup script,
|
|
4
|
+
# specific for Stacks usage—many thanks to Tea!
|
|
5
|
+
|
|
6
|
+
set -e
|
|
7
|
+
set -o noglob
|
|
8
|
+
|
|
9
|
+
# prevent existing env breaking this script
|
|
10
|
+
unset TEA_DESTDIR
|
|
11
|
+
unset TEA_VERSION
|
|
12
|
+
|
|
13
|
+
unset stop
|
|
14
|
+
while test "$#" -gt 0 -a -z "$stop"; do
|
|
15
|
+
case $1 in
|
|
16
|
+
--prefix)
|
|
17
|
+
# we don’t use TEA_PREFIX so any already installed tea that we use in this script doesn’t break
|
|
18
|
+
TEA_DESTDIR="$2"
|
|
19
|
+
if test -z "$TEA_DESTDIR"; then
|
|
20
|
+
echo "tea: error: --prefix requires an argument" >&2
|
|
21
|
+
exit 1
|
|
22
|
+
fi
|
|
23
|
+
shift
|
|
24
|
+
shift
|
|
25
|
+
;;
|
|
26
|
+
--version)
|
|
27
|
+
TEA_VERSION="$2"
|
|
28
|
+
if test -z "$TEA_VERSION"; then
|
|
29
|
+
echo "tea: error: --version requires an argument" >&2
|
|
30
|
+
exit 1
|
|
31
|
+
fi
|
|
32
|
+
shift
|
|
33
|
+
shift
|
|
34
|
+
;;
|
|
35
|
+
--yes | -y)
|
|
36
|
+
TEA_YES=1
|
|
37
|
+
shift
|
|
38
|
+
;;
|
|
39
|
+
--help | -h)
|
|
40
|
+
echo "tea: docs: https://github.com/teaxyz/setup"
|
|
41
|
+
exit
|
|
42
|
+
;;
|
|
43
|
+
*)
|
|
44
|
+
stop=1
|
|
45
|
+
;;
|
|
46
|
+
esac
|
|
47
|
+
done
|
|
48
|
+
|
|
49
|
+
unset stop
|
|
50
|
+
|
|
51
|
+
####################################################################### funcs
|
|
52
|
+
prepare() {
|
|
53
|
+
# ensure ⌃C works
|
|
54
|
+
#FIXME doesn’t seem to work through `gum` prompts
|
|
55
|
+
trap "echo; exit" INT
|
|
56
|
+
|
|
57
|
+
if ! command -v tar >/dev/null 2>&1; then
|
|
58
|
+
echo "tea: error: sorry. pls install tar :(" >&2
|
|
59
|
+
fi
|
|
60
|
+
|
|
61
|
+
if test -n "$VERBOSE" -o -n "$GITHUB_ACTIONS" -a -n "$RUNNER_DEBUG"; then
|
|
62
|
+
set -x
|
|
63
|
+
fi
|
|
64
|
+
|
|
65
|
+
if test $# -eq 0; then
|
|
66
|
+
MODE="install"
|
|
67
|
+
else
|
|
68
|
+
MODE="exec"
|
|
69
|
+
fi
|
|
70
|
+
|
|
71
|
+
HW_TARGET=$(uname)/$(uname -m)
|
|
72
|
+
|
|
73
|
+
ZZ=gz
|
|
74
|
+
|
|
75
|
+
case $HW_TARGET in
|
|
76
|
+
Darwin/arm64)
|
|
77
|
+
ZZ=xz
|
|
78
|
+
MIDFIX=darwin/aarch64
|
|
79
|
+
;;
|
|
80
|
+
Darwin/x86_64)
|
|
81
|
+
ZZ=xz
|
|
82
|
+
MIDFIX=darwin/x86-64
|
|
83
|
+
;;
|
|
84
|
+
Linux/arm64 | Linux/aarch64)
|
|
85
|
+
MIDFIX=linux/aarch64
|
|
86
|
+
;;
|
|
87
|
+
Linux/x86_64)
|
|
88
|
+
MIDFIX=linux/x86-64
|
|
89
|
+
;;
|
|
90
|
+
*)
|
|
91
|
+
echo "tea: error: (currently) unsupported OS or architecture ($HW_TARGET)" >&2
|
|
92
|
+
echo "let’s talk about it: https://github.com/orgs/teaxyz/discussions" >&2
|
|
93
|
+
exit 1
|
|
94
|
+
;;
|
|
95
|
+
esac
|
|
96
|
+
|
|
97
|
+
# We support minimum OS version of 11 on Darwin
|
|
98
|
+
if test "$(uname)" = "Darwin"; then
|
|
99
|
+
MAJOR=$(sw_vers -productVersion | cut -d . -f 1)
|
|
100
|
+
if test "$MAJOR" -lt 11; then
|
|
101
|
+
echo "tea: error: we currently don't support macOS versions less than 11" >&2
|
|
102
|
+
echo "let’s talk about it: https://github.com/orgs/teaxyz/discussions" >&2
|
|
103
|
+
exit 1
|
|
104
|
+
fi
|
|
105
|
+
fi
|
|
106
|
+
|
|
107
|
+
if test $ZZ = 'gz'; then
|
|
108
|
+
if command -v base64 >/dev/null 2>&1; then
|
|
109
|
+
BASE64_TARXZ="/Td6WFoAAATm1rRGAgAhARYAAAB0L+Wj4AX/AFNdADMb7AG6cMNAaNMVK8FvZMaza8QKKTQY6wZ3kG/F814lHE9ruhkFO5DAG7XNamN7JMHavgmbbLacr72NaAzgGUXOstqUaGb6kbp7jrkF+3aQT12CAAB8Uikc1gG8RwABb4AMAAAAeGbHwbHEZ/sCAAAAAARZWg=="
|
|
110
|
+
if echo "$BASE64_TARXZ" | base64 -d | tar Jtf - >/dev/null 2>&1; then
|
|
111
|
+
ZZ=xz
|
|
112
|
+
fi
|
|
113
|
+
elif command -v uudecode >/dev/null 2>&1; then
|
|
114
|
+
TMPFILE=$(mktemp)
|
|
115
|
+
cat >"$TMPFILE" <<-EOF
|
|
116
|
+
begin 644 foo.tar.xz
|
|
117
|
+
M_3=Z6%H\`\`\`3FUK1&\`@\`A\`18\`\`\`!T+^6CX\`7_\`%-=\`#,;[\`&Z<,-\`:-,5*\%O
|
|
118
|
+
M9,:S:\0**308ZP9WD&_%\UXE'$]KNAD%.Y#\`&[7-:F-[),':O@F;;+:<K[V-
|
|
119
|
+
M:\`S@&47.LMJ4:&;ZD;I[CKD%^W:03UV"\`\`!\4BD<U@&\1P\`!;X\`,\`\`\`\`>&;'
|
|
120
|
+
-P;'\$9_L"\`\`\`\`\`\`196@\`\`
|
|
121
|
+
\`
|
|
122
|
+
end
|
|
123
|
+
EOF
|
|
124
|
+
if uudecode -p "$TMPFILE" | tar Jtf - >/dev/null 2>&1; then
|
|
125
|
+
ZZ=xz
|
|
126
|
+
fi
|
|
127
|
+
fi
|
|
128
|
+
fi
|
|
129
|
+
|
|
130
|
+
case "$ZZ" in
|
|
131
|
+
gz)
|
|
132
|
+
TAR_FLAGS=xz
|
|
133
|
+
;; # confusingly
|
|
134
|
+
xz)
|
|
135
|
+
TAR_FLAGS=xJ
|
|
136
|
+
;;
|
|
137
|
+
esac
|
|
138
|
+
|
|
139
|
+
if test -z "$TEA_DESTDIR"; then
|
|
140
|
+
# update existing installation if found
|
|
141
|
+
if command -v tea >/dev/null 2>&1; then
|
|
142
|
+
set +e
|
|
143
|
+
TEA_DESTDIR="$(tea --prefix --silent)"
|
|
144
|
+
if test $? -eq 0 -a -n "$TEA_DESTDIR"; then
|
|
145
|
+
ALREADY_INSTALLED=1
|
|
146
|
+
else
|
|
147
|
+
# probably it’s actually gitea and not teaxyz
|
|
148
|
+
unset TEA_DESTDIR
|
|
149
|
+
fi
|
|
150
|
+
set -e
|
|
151
|
+
fi
|
|
152
|
+
|
|
153
|
+
# we check again: in case the above failed for some reason
|
|
154
|
+
if test -z "$TEA_DESTDIR"; then
|
|
155
|
+
if test "$MODE" = exec; then
|
|
156
|
+
TEA_DESTDIR="$(mktemp -dt tea-XXXXXX)"
|
|
157
|
+
else
|
|
158
|
+
TEA_DESTDIR="$HOME/.stacks"
|
|
159
|
+
# make our configurations portable
|
|
160
|
+
TEA_DESTDIR_WRITABLE="\$HOME/.stacks"
|
|
161
|
+
fi
|
|
162
|
+
fi
|
|
163
|
+
fi
|
|
164
|
+
|
|
165
|
+
if test -z "$TEA_DESTDIR_WRITABLE"; then
|
|
166
|
+
TEA_DESTDIR_WRITABLE="$TEA_DESTDIR"
|
|
167
|
+
fi
|
|
168
|
+
|
|
169
|
+
if test -z "$CURL"; then
|
|
170
|
+
if command -v curl >/dev/null 2>&1; then
|
|
171
|
+
CURL="curl -Ssf"
|
|
172
|
+
elif test -f "$TEA_DESTDIR/curl.se/v*/bin/curl"; then
|
|
173
|
+
CURL="$TEA_DESTDIR/curl.se/v*/bin/curl -Ssf"
|
|
174
|
+
else
|
|
175
|
+
# how they got here without curl: we dunno
|
|
176
|
+
echo "tea: error: you need curl (or set \`\$CURL\`)" >&2
|
|
177
|
+
exit 1
|
|
178
|
+
fi
|
|
179
|
+
fi
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
get_gum() {
|
|
183
|
+
if command -v gum >/dev/null 2>&1; then
|
|
184
|
+
TEA_GUM=gum
|
|
185
|
+
elif test -n "$ALREADY_INSTALLED"; then
|
|
186
|
+
TEA_GUM="tea --silent +charm.sh/gum gum"
|
|
187
|
+
fi
|
|
188
|
+
|
|
189
|
+
if test -n "$TEA_GUM"; then
|
|
190
|
+
if ! "$TEA_GUM" --version >/dev/null 2>&1; then
|
|
191
|
+
# apparently this gum is broken
|
|
192
|
+
unset TEA_GUM
|
|
193
|
+
else
|
|
194
|
+
return 0
|
|
195
|
+
fi
|
|
196
|
+
fi
|
|
197
|
+
|
|
198
|
+
if test -f "$TEA_DESTDIR/charm.sh/gum/v0.9.0/bin/gum"; then
|
|
199
|
+
TEA_GUM="$TEA_DESTDIR/charm.sh/gum/v0.9.0/bin/gum"
|
|
200
|
+
else
|
|
201
|
+
URL="https://dist.tea.xyz/charm.sh/gum/$MIDFIX/v0.9.0.tar.$ZZ"
|
|
202
|
+
mkdir -p "$TEA_DESTDIR"
|
|
203
|
+
# shellcheck disable=SC2291
|
|
204
|
+
printf "one moment, just steeping some leaves…"
|
|
205
|
+
$CURL "$URL" | tar "$TAR_FLAGS" -C "$TEA_DESTDIR"
|
|
206
|
+
TEA_GUM="$TEA_DESTDIR/charm.sh/gum/v0.9.0/bin/gum"
|
|
207
|
+
printf "\r "
|
|
208
|
+
fi
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
gum_func() {
|
|
212
|
+
case "$1" in
|
|
213
|
+
confirm)
|
|
214
|
+
if test -n "$TEA_YES"; then
|
|
215
|
+
set +e # waiting on: https://github.com/charmbracelet/gum/pull/148
|
|
216
|
+
$TEA_GUM "$@" --timeout=1ms --default=yes
|
|
217
|
+
set -e
|
|
218
|
+
return 0
|
|
219
|
+
elif test ! -t 1; then
|
|
220
|
+
echo "tea: error: no tty detected, re-run with \`TEA_YES=1\` set" >&2
|
|
221
|
+
return 1
|
|
222
|
+
fi
|
|
223
|
+
;;
|
|
224
|
+
spin)
|
|
225
|
+
if test ! -t 1; then
|
|
226
|
+
while test "$1" != --title -a -n "$1"; do
|
|
227
|
+
shift
|
|
228
|
+
done
|
|
229
|
+
if test -z "$VERBOSE"; then
|
|
230
|
+
echo "tea: spin: $2" >&2
|
|
231
|
+
fi
|
|
232
|
+
while test "$1" != -- -a -n "$1"; do
|
|
233
|
+
shift
|
|
234
|
+
done
|
|
235
|
+
shift
|
|
236
|
+
"$@"
|
|
237
|
+
return
|
|
238
|
+
fi
|
|
239
|
+
;;
|
|
240
|
+
esac
|
|
241
|
+
|
|
242
|
+
$TEA_GUM "$@"
|
|
243
|
+
|
|
244
|
+
RV="$?"
|
|
245
|
+
|
|
246
|
+
if test -z "$__TEA_WE_ABORT" -a "$1" = confirm -a "$RV" -eq 130; then
|
|
247
|
+
echo 'aborting…'
|
|
248
|
+
exit 130
|
|
249
|
+
else
|
|
250
|
+
return "$RV"
|
|
251
|
+
fi
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
welcome() {
|
|
255
|
+
gum_func format --theme="dracula" -- <<-EoMD
|
|
256
|
+
# hi 👋 let’s set up stacks
|
|
257
|
+
|
|
258
|
+
* stacks uses tea to manage your environments
|
|
259
|
+
* everything stacks installs goes: \`$TEA_DESTDIR\`
|
|
260
|
+
* (it won’t touch anything else)
|
|
261
|
+
|
|
262
|
+
> docs https://github.com/stacksjs/stacks
|
|
263
|
+
EoMD
|
|
264
|
+
|
|
265
|
+
echo #spacer
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
get_tea_version() {
|
|
269
|
+
if test -n "$TEA_VERSION"; then
|
|
270
|
+
return
|
|
271
|
+
fi
|
|
272
|
+
|
|
273
|
+
v_sh="$(mktemp)"
|
|
274
|
+
cat <<-EoMD >"$v_sh"
|
|
275
|
+
$CURL "https://dist.tea.xyz/tea.xyz/$MIDFIX/versions.txt" | tail -n1 > "$v_sh"
|
|
276
|
+
EoMD
|
|
277
|
+
|
|
278
|
+
gum_func spin --title 'determining tea version' -- sh "$v_sh"
|
|
279
|
+
|
|
280
|
+
TEA_VERSION="$(cat "$v_sh")"
|
|
281
|
+
|
|
282
|
+
if test -z "$TEA_VERSION"; then
|
|
283
|
+
echo "failed to get latest tea version" >&2
|
|
284
|
+
exit 1
|
|
285
|
+
fi
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
fix_links() {
|
|
289
|
+
OLDWD="$PWD"
|
|
290
|
+
|
|
291
|
+
link() {
|
|
292
|
+
if test -d "v$1" -a ! -L "v$1"; then
|
|
293
|
+
echo "'v$1' is unexpectedly a directory" >&2
|
|
294
|
+
else
|
|
295
|
+
rm -f "v$1"
|
|
296
|
+
ln -s "v$TEA_VERSION" "v$1"
|
|
297
|
+
fi
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
cd "$TEA_DESTDIR"/tea.xyz
|
|
301
|
+
link \*
|
|
302
|
+
link "$(echo "$TEA_VERSION" | cut -d. -f1)"
|
|
303
|
+
link "$(echo "$TEA_VERSION" | cut -d. -f1-2)"
|
|
304
|
+
cd "$OLDWD"
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
install() {
|
|
308
|
+
if test -n "$ALREADY_INSTALLED"; then
|
|
309
|
+
TITLE="updating to tea@$TEA_VERSION"
|
|
310
|
+
else
|
|
311
|
+
TITLE="fetching tea@$TEA_VERSION"
|
|
312
|
+
fi
|
|
313
|
+
|
|
314
|
+
#NOTE using script instead of passing args to gum because
|
|
315
|
+
# periodically the data didn’t pipe to tar causing it to error
|
|
316
|
+
mkdir -p "$TEA_DESTDIR"
|
|
317
|
+
TEA_DESTDIR="$(cd $TEA_DESTDIR && pwd)" # we need this PATH to be an absolute path for later stuff
|
|
318
|
+
TEA_TMP_SCRIPT="$(mktemp)"
|
|
319
|
+
URL="https://dist.tea.xyz/tea.xyz/$MIDFIX/v$TEA_VERSION.tar.$ZZ"
|
|
320
|
+
echo "set -e; $CURL '$URL' | tar '$TAR_FLAGS' -C '$TEA_DESTDIR'" >"$TEA_TMP_SCRIPT"
|
|
321
|
+
gum_func spin --title "$TITLE" -- sh "$TEA_TMP_SCRIPT"
|
|
322
|
+
|
|
323
|
+
fix_links
|
|
324
|
+
|
|
325
|
+
if ! test "$MODE" = exec; then
|
|
326
|
+
gum_func format --theme="dracula" -- "awesome, we installed \`$TEA_DESTDIR/tea.xyz/v$TEA_VERSION/bin/tea\`"
|
|
327
|
+
fi
|
|
328
|
+
|
|
329
|
+
TEA_VERSION_MAJOR="$(echo "$TEA_VERSION" | cut -d. -f1)"
|
|
330
|
+
TEA_EXENAME="$TEA_DESTDIR/tea.xyz/v$TEA_VERSION_MAJOR/bin/tea"
|
|
331
|
+
|
|
332
|
+
echo #spacer
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
check_path() {
|
|
336
|
+
gum_func format --theme="dracula" -- <<-EoMD
|
|
337
|
+
# one second!
|
|
338
|
+
without magic, tea’s not in your path!
|
|
339
|
+
> *we may need to ask for your **root password*** (via \`sudo\` obv.)
|
|
340
|
+
EoMD
|
|
341
|
+
|
|
342
|
+
if gum_func confirm "create /usr/local/bin/tea?" --affirmative="make symlink" --negative="skip"; then
|
|
343
|
+
echo #spacer
|
|
344
|
+
|
|
345
|
+
# NOTE: Binary -a and -o are inherently ambiguous. Use 'test EXPR1
|
|
346
|
+
# && test EXPR2' or 'test EXPR1 || test EXPR2' instead.
|
|
347
|
+
# https://man7.org/linux/man-pages/man1/test.1.html
|
|
348
|
+
if test -w /usr/local/bin || (test ! -e /usr/local/bin && mkdir -p /usr/local/bin >/dev/null 2>&1); then
|
|
349
|
+
mkdir -p /usr/local/bin
|
|
350
|
+
ln -sf "$TEA_EXENAME" /usr/local/bin/tea
|
|
351
|
+
elif command -v sudo >/dev/null 2>&1; then
|
|
352
|
+
sudo --reset-timestamp
|
|
353
|
+
sudo mkdir -p /usr/local/bin
|
|
354
|
+
sudo ln -sf "$TEA_EXENAME" /usr/local/bin/tea
|
|
355
|
+
else
|
|
356
|
+
echo #spacer
|
|
357
|
+
gum_func format --theme="dracula" -- <<-EoMD
|
|
358
|
+
> hmmm, sudo command not found.
|
|
359
|
+
> try installing sudo
|
|
360
|
+
EoMD
|
|
361
|
+
fi
|
|
362
|
+
|
|
363
|
+
if ! command -v tea >/dev/null 2>&1; then
|
|
364
|
+
|
|
365
|
+
echo #spacer
|
|
366
|
+
gum_func format --theme="dracula" -- <<-EoMD
|
|
367
|
+
> hmmm, \`/usr/local/bin\` isn’t in your path,
|
|
368
|
+
> you’ll need to fix that yourself.
|
|
369
|
+
> sorry 😞
|
|
370
|
+
|
|
371
|
+
\`PATH=$PATH\`
|
|
372
|
+
EoMD
|
|
373
|
+
fi
|
|
374
|
+
fi
|
|
375
|
+
|
|
376
|
+
echo #spacer
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
check_shell_magic() {
|
|
380
|
+
if test $TEA_VERSION_MAJOR -eq 0; then
|
|
381
|
+
__TEA_MINOR_VERSION=$(echo $TEA_VERSION | cut -d. -f2)
|
|
382
|
+
if test $__TEA_MINOR_VERSION -lt 19; then
|
|
383
|
+
# we cannot any longer support magic below 0.19.0
|
|
384
|
+
return 1
|
|
385
|
+
fi
|
|
386
|
+
fi
|
|
387
|
+
|
|
388
|
+
# foo knows I cannot tell you why $SHELL may be unset
|
|
389
|
+
if test -z "$SHELL"; then
|
|
390
|
+
if command -v finger >/dev/null 2>&1; then
|
|
391
|
+
SHELL="$(finger "$USER" | grep Shell | cut -d: -f3 | tr -d ' ')"
|
|
392
|
+
elif command -v getent >/dev/null 2>&1; then
|
|
393
|
+
SHELL="$(getent passwd "$USER")"
|
|
394
|
+
elif command -v id >/dev/null 2>&1; then
|
|
395
|
+
SHELL="$(id -P | cut -d ':' -f 10)"
|
|
396
|
+
# Try to fall back with some level of normalcy
|
|
397
|
+
elif test "$(uname)" == "Darwin"; then
|
|
398
|
+
SHELL=zsh
|
|
399
|
+
else
|
|
400
|
+
SHELL=bash
|
|
401
|
+
fi
|
|
402
|
+
fi
|
|
403
|
+
|
|
404
|
+
SHELL=$(basename "$SHELL") # just in case
|
|
405
|
+
|
|
406
|
+
__TEA_ONE_LINER="test -d \"$TEA_DESTDIR_WRITABLE\" && source <(\"$TEA_DESTDIR_WRITABLE/tea.xyz/v*/bin/tea\" --magic=$SHELL --silent)"
|
|
407
|
+
|
|
408
|
+
case "$SHELL" in
|
|
409
|
+
zsh)
|
|
410
|
+
if test -n "$ZDOTDIR"; then
|
|
411
|
+
__TEA_ZSHRC="$ZDOTDIR/.zshrc"
|
|
412
|
+
__TEA_SH_FILE="$__TEA_ZSHRC"
|
|
413
|
+
else
|
|
414
|
+
# shellcheck disable=SC2088
|
|
415
|
+
__TEA_ZSHRC="~/.zshrc"
|
|
416
|
+
__TEA_SH_FILE="$HOME/.zshrc"
|
|
417
|
+
fi
|
|
418
|
+
__TEA_BTN_TXT="add one-liner to your \`$__TEA_ZSHRC\`?"
|
|
419
|
+
;;
|
|
420
|
+
bash)
|
|
421
|
+
__TEA_SH_FILE="$HOME/.bashrc"
|
|
422
|
+
__TEA_BTN_TXT="add one-liner to your \`~/.bashrc\`?"
|
|
423
|
+
;;
|
|
424
|
+
elvish)
|
|
425
|
+
__TEA_SH_FILE="$HOME/.config/elvish/rc.elv"
|
|
426
|
+
__TEA_BTN_TXT="add one-liner to your \`~/.config/elvish/rc.elv\`?"
|
|
427
|
+
;;
|
|
428
|
+
fish)
|
|
429
|
+
__TEA_SH_FILE="${XDG_CONFIG_HOME:-$HOME/.config}/fish/config.fish"
|
|
430
|
+
__TEA_BTN_TXT="add one-liner to your \`config.fish\`?"
|
|
431
|
+
__TEA_ONE_LINER="test -d \"$TEA_DESTDIR_WRITABLE\" && \"$TEA_DESTDIR_WRITABLE/tea.xyz/v*/bin/tea\" --magic=fish --silent | source"
|
|
432
|
+
;;
|
|
433
|
+
*)
|
|
434
|
+
gum_func format --theme="dracula" -- <<-EoMD
|
|
435
|
+
# we need your help 🙏
|
|
436
|
+
|
|
437
|
+
tea’s magic is optional but it’s the way it’s meant to be used.
|
|
438
|
+
|
|
439
|
+
we don’t know how to support \`$SHELL\` yet. can you make a pull request?
|
|
440
|
+
|
|
441
|
+
> https://github.com/teaxyz/cli/pulls
|
|
442
|
+
EoMD
|
|
443
|
+
return 1
|
|
444
|
+
;;
|
|
445
|
+
esac
|
|
446
|
+
|
|
447
|
+
if test -f "$__TEA_SH_FILE" && command -v grep >/dev/null && grep --fixed-strings "$__TEA_ONE_LINER" "$__TEA_SH_FILE" --silent; then
|
|
448
|
+
# shell magic already installed
|
|
449
|
+
return 0
|
|
450
|
+
fi
|
|
451
|
+
|
|
452
|
+
echo >>"$__TEA_SH_FILE"
|
|
453
|
+
echo "alias buddy='./buddy '" >>"$__TEA_SH_FILE"
|
|
454
|
+
echo "alias bud='./buddy '" >>"$__TEA_SH_FILE"
|
|
455
|
+
echo "alias stacks='./buddy '" >>"$__TEA_SH_FILE"
|
|
456
|
+
echo "alias stx='./buddy '" >>"$__TEA_SH_FILE"
|
|
457
|
+
echo >>"$__TEA_SH_FILE"
|
|
458
|
+
echo "$__TEA_ONE_LINER" >>"$__TEA_SH_FILE"
|
|
459
|
+
|
|
460
|
+
echo #spacer
|
|
461
|
+
|
|
462
|
+
gum_func format --theme="dracula" -- <<-EoMD
|
|
463
|
+
Added one-liner to \`$__TEA_SH_FILE\`:
|
|
464
|
+
|
|
465
|
+
\`$__TEA_ONE_LINER\`
|
|
466
|
+
EoMD
|
|
467
|
+
|
|
468
|
+
echo #spacer
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
########################################################################## go
|
|
472
|
+
prepare "$@"
|
|
473
|
+
get_gum
|
|
474
|
+
if test $MODE = install -a -z "$ALREADY_INSTALLED"; then
|
|
475
|
+
welcome
|
|
476
|
+
fi
|
|
477
|
+
get_tea_version
|
|
478
|
+
if ! test -f "$TEA_DESTDIR/tea.xyz/v$TEA_VERSION/bin/tea"; then
|
|
479
|
+
install
|
|
480
|
+
else
|
|
481
|
+
fix_links # be proactive in repairing the user installation just in case that's what they ran this for
|
|
482
|
+
TEA_IS_CURRENT=1
|
|
483
|
+
TEA_VERSION_MAJOR="$(echo "$TEA_VERSION" | cut -d. -f1)"
|
|
484
|
+
TEA_EXENAME="$TEA_DESTDIR/tea.xyz/v$TEA_VERSION_MAJOR/bin/tea"
|
|
485
|
+
fi
|
|
486
|
+
|
|
487
|
+
if ! test -d "$TEA_DESTDIR/tea.xyz/var/pantry"; then
|
|
488
|
+
title="prefetching"
|
|
489
|
+
elif command -v git >/dev/null 2>&1; then
|
|
490
|
+
title="syncing"
|
|
491
|
+
fi
|
|
492
|
+
|
|
493
|
+
gum_func spin --title "$title pantry" -- "$TEA_EXENAME" --sync --cd / /bin/echo
|
|
494
|
+
|
|
495
|
+
case $MODE in
|
|
496
|
+
install)
|
|
497
|
+
if ! test -n "$ALREADY_INSTALLED"; then
|
|
498
|
+
if ! check_shell_magic; then
|
|
499
|
+
check_path
|
|
500
|
+
gum_func format --theme="dracula" -- <<-EoMD
|
|
501
|
+
# you’re all set!
|
|
502
|
+
|
|
503
|
+
try it out:
|
|
504
|
+
|
|
505
|
+
\`tea wget -qO- tea.xyz/white-paper | tea glow -\`
|
|
506
|
+
EoMD
|
|
507
|
+
else
|
|
508
|
+
if test -n "$GITHUB_ACTIONS"; then
|
|
509
|
+
# if the user did call us directly from GHA may as well help them out
|
|
510
|
+
echo "$TEA_DESTDIR/tea.xyz/v$TEA_VERSION_MAJOR/bin" >>"$GITHUB_PATH"
|
|
511
|
+
fi
|
|
512
|
+
fi
|
|
513
|
+
elif test -n "$TEA_IS_CURRENT"; then
|
|
514
|
+
gum_func format --theme="dracula" -- <<-EoMD
|
|
515
|
+
# the latest version of tea was already installed
|
|
516
|
+
> $TEA_DESTDIR/tea.xyz/v$TEA_VERSION/bin/tea
|
|
517
|
+
EoMD
|
|
518
|
+
fi
|
|
519
|
+
echo #spacer
|
|
520
|
+
;;
|
|
521
|
+
exec)
|
|
522
|
+
# ensure we use the just installed tea
|
|
523
|
+
export TEA_PREFIX="$TEA_DESTDIR"
|
|
524
|
+
|
|
525
|
+
if test -z "$ALREADY_INSTALLED" -a -t 1; then
|
|
526
|
+
$TEA_EXENAME "$@"
|
|
527
|
+
|
|
528
|
+
echo #spacer
|
|
529
|
+
|
|
530
|
+
gum_func format --theme="dracula" <<-EoMD >&2
|
|
531
|
+
> powered by [stacks](https://stacksjs.dev) & [tea](https://tea.xyz)
|
|
532
|
+
EoMD
|
|
533
|
+
|
|
534
|
+
echo #spacer
|
|
535
|
+
else
|
|
536
|
+
export PATH="$TEA_PREFIX/tea.xyz/v*/bin:$PATH"
|
|
537
|
+
exec $TEA_EXENAME "$@"
|
|
538
|
+
fi
|
|
539
|
+
;;
|
|
540
|
+
esac
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Stacks Dashboard
|
|
2
|
+
|
|
3
|
+
The Stacks Dashboard.
|
|
4
|
+
|
|
5
|
+
## ☘️ Features
|
|
6
|
+
|
|
7
|
+
- [wip] Log Viewer
|
|
8
|
+
|
|
9
|
+
- [] Self-deployed or managed cloud error tracking
|
|
10
|
+
- [] Performance Monitoring
|
|
11
|
+
- [] Serverless/Server (host) Monitoring
|
|
12
|
+
- [] Anomaly Detection
|
|
13
|
+
- [] Metric Dashboards/Reports
|
|
14
|
+
- [] Page view & function execution analytics, etc.
|
|
15
|
+
- [] Uptime Monitoring
|
|
16
|
+
- [] Queue Monitoring
|
|
17
|
+
- [] Request Monitoring
|
|
18
|
+
- [] Deployment Management UI
|
|
19
|
+
- [] Local email testing & debugging
|
|
20
|
+
- [] AWS Billing Details & Alerts
|
|
21
|
+
- [] Invoice generation
|
|
22
|
+
- [] AWS Cost Explorer
|
|
23
|
+
- [] AWS Cost
|
|
24
|
+
|
|
25
|
+
## 🤖 Usage
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
pnpm i -D @stacksjs/dashboard
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Now, you can use it in your project:
|
|
32
|
+
|
|
33
|
+
```js
|
|
34
|
+
import { log } from '@stacksjs/logging'
|
|
35
|
+
|
|
36
|
+
log('some description') // aliases to log.log()
|
|
37
|
+
log.debug('some debug description')
|
|
38
|
+
log.info('some info description')
|
|
39
|
+
log.warn('some warning description')
|
|
40
|
+
log.error('some error description')
|
|
41
|
+
// and more...
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Learn more in the docs.
|
|
45
|
+
|
|
46
|
+
## 🧪 Testing
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
pnpm test
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## 📈 Changelog
|
|
53
|
+
|
|
54
|
+
Please see our [releases](https://github.com/stacksjs/stacks/releases) page for more information on what has changed recently.
|
|
55
|
+
|
|
56
|
+
## 🚜 Contributing
|
|
57
|
+
|
|
58
|
+
Please review the [Contributing Guide](https://github.com/stacksjs/contributing) for details.
|
|
59
|
+
|
|
60
|
+
## 🏝 Community
|
|
61
|
+
|
|
62
|
+
For help, discussion about best practices, or any other conversation that would benefit from being searchable:
|
|
63
|
+
|
|
64
|
+
[Discussions on GitHub](https://github.com/stacksjs/stacks/discussions)
|
|
65
|
+
|
|
66
|
+
For casual chit-chat with others using this package:
|
|
67
|
+
|
|
68
|
+
[Join the Stacks Discord Server](https://discord.ow3.org)
|
|
69
|
+
|
|
70
|
+
## 📄 License
|
|
71
|
+
|
|
72
|
+
The MIT License (MIT). Please see [LICENSE](https://github.com/stacksjs/stacks/tree/main/LICENSE.md) for more information.
|
|
73
|
+
|
|
74
|
+
Made with ❤️
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@stacksjs/dashboard",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "0.51.0",
|
|
5
|
+
"packageManager": "pnpm@8.6.5",
|
|
6
|
+
"description": "The Stacks Dashboard.",
|
|
7
|
+
"author": "Chris Breuer",
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"funding": "https://github.com/sponsors/chrisbbreuer",
|
|
10
|
+
"homepage": "https://github.com/stacksjs/stacks/tree/main/.stacks/core/dashboard#readme",
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "git+https://github.com/stacksjs/stacks.git",
|
|
14
|
+
"directory": "./.stacks/core/dashboard"
|
|
15
|
+
},
|
|
16
|
+
"bugs": {
|
|
17
|
+
"url": "https://github.com/stacksjs/stacks/issues"
|
|
18
|
+
},
|
|
19
|
+
"keywords": [
|
|
20
|
+
"dashboard",
|
|
21
|
+
"reporting",
|
|
22
|
+
"analytics",
|
|
23
|
+
"logs",
|
|
24
|
+
"debugging",
|
|
25
|
+
"requests",
|
|
26
|
+
"stacks"
|
|
27
|
+
],
|
|
28
|
+
"module": "dist/index.mjs",
|
|
29
|
+
"types": "dist/index.d.ts",
|
|
30
|
+
"contributors": [
|
|
31
|
+
"Chris Breuer <chris@ow3.org>"
|
|
32
|
+
],
|
|
33
|
+
"files": [
|
|
34
|
+
"dist",
|
|
35
|
+
"README.md"
|
|
36
|
+
],
|
|
37
|
+
"scripts": {
|
|
38
|
+
"build": "unbuild",
|
|
39
|
+
"dev": "unbuild --stub",
|
|
40
|
+
"prepublishOnly": "unbuild",
|
|
41
|
+
"typecheck": "tsc --noEmit"
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@stacksjs/development": "workspace:*"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
File without changes
|