@glxmart/boss-cli 1.0.0-beta.0
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/LICENSE +21 -0
- package/README.md +134 -0
- package/assets/claude-folder/agents/.gitkeep +0 -0
- package/assets/claude-folder/commands/boss-commands.md +138 -0
- package/assets/claude-folder/rules/boss-workflow.md +33 -0
- package/assets/claude-folder/rules/code-style.md +23 -0
- package/assets/claude-folder/rules/security.md +22 -0
- package/assets/claude-folder/rules/testing.md +32 -0
- package/assets/claude-folder/settings.local.json +88 -0
- package/assets/claude-folder/skills/.gitkeep +0 -0
- package/assets/claude-md/docs/container-use.md +140 -0
- package/assets/claude-md/docs/github-operations.md +238 -0
- package/assets/claude-md/docs/initialization.md +186 -0
- package/assets/claude-md/docs/quality-standards.md +15 -0
- package/assets/claude-md/docs/spec-kit.md +46 -0
- package/assets/claude-md/docs/workers.md +174 -0
- package/assets/claude-md/docs/workflow.md +140 -0
- package/assets/claude-md/template.md +812 -0
- package/assets/docker-compose/docker-compose.yml +52 -0
- package/assets/git-hooks/commit-msg.sh +102 -0
- package/assets/git-hooks/pre-commit-check.sh +21 -0
- package/assets/git-hooks/pre-commit.sh +6 -0
- package/assets/git-hooks/pre-push.sh +154 -0
- package/assets/git-hooks/security-check.sh +40 -0
- package/assets/git-hooks/test-changed.sh +84 -0
- package/assets/github-workflows/CODEOWNERS +3 -0
- package/assets/github-workflows/boss-ci.yml +40 -0
- package/assets/github-workflows/boss-gates.yml +28 -0
- package/assets/start-boss-sh/start-boss.sh +471 -0
- package/assets/template-docs/api-service-fastify.md +98 -0
- package/assets/template-docs/blank.md +91 -0
- package/assets/template-docs/nextjs-app-turbo.md +102 -0
- package/assets/template-docs/t3-app.md +106 -0
- package/assets/template-loader/README.md +28 -0
- package/assets/template-loader/eslint.config.node.js +28 -0
- package/assets/template-loader/eslint.config.react.js +47 -0
- package/assets/template-loader/gitignore +42 -0
- package/assets/template-loader/index.test.ts +10 -0
- package/assets/template-loader/index.ts +13 -0
- package/assets/template-loader/prettierignore +8 -0
- package/assets/template-loader/vitest.config.ts +19 -0
- package/assets/worker-configs/architect/.claude/commands/.gitkeep +0 -0
- package/assets/worker-configs/architect/.claude/skills/.gitkeep +0 -0
- package/assets/worker-configs/architect/CLAUDE.md +106 -0
- package/assets/worker-configs/clarifier/.claude/commands/.gitkeep +1 -0
- package/assets/worker-configs/clarifier/.claude/skills/.gitkeep +1 -0
- package/assets/worker-configs/clarifier/CLAUDE.md +112 -0
- package/assets/worker-configs/code-reviewer/CLAUDE.md +113 -0
- package/assets/worker-configs/consolidator/.claude/commands/.gitkeep +1 -0
- package/assets/worker-configs/consolidator/.claude/skills/.gitkeep +1 -0
- package/assets/worker-configs/consolidator/CLAUDE.md +114 -0
- package/assets/worker-configs/developer-backend/.claude/commands/.gitkeep +1 -0
- package/assets/worker-configs/developer-backend/.claude/skills/.gitkeep +1 -0
- package/assets/worker-configs/developer-backend/CLAUDE.md +116 -0
- package/assets/worker-configs/developer-frontend/.claude/commands/.gitkeep +1 -0
- package/assets/worker-configs/developer-frontend/.claude/skills/.gitkeep +1 -0
- package/assets/worker-configs/developer-frontend/CLAUDE.md +116 -0
- package/assets/worker-configs/developer-fullstack/.claude/commands/.gitkeep +1 -0
- package/assets/worker-configs/developer-fullstack/.claude/skills/.gitkeep +1 -0
- package/assets/worker-configs/developer-fullstack/CLAUDE.md +116 -0
- package/assets/worker-configs/devops-engineer/CLAUDE.md +111 -0
- package/assets/worker-configs/planner/.claude/commands/.gitkeep +1 -0
- package/assets/worker-configs/planner/.claude/skills/.gitkeep +1 -0
- package/assets/worker-configs/planner/CLAUDE.md +111 -0
- package/assets/worker-configs/product-owner/CLAUDE.md +108 -0
- package/assets/worker-configs/reviewer/.claude/commands/.gitkeep +1 -0
- package/assets/worker-configs/reviewer/.claude/skills/.gitkeep +1 -0
- package/assets/worker-configs/reviewer/CLAUDE.md +110 -0
- package/assets/worker-configs/security-engineer/CLAUDE.md +109 -0
- package/assets/worker-configs/spec-writer/.claude/commands/.gitkeep +1 -0
- package/assets/worker-configs/spec-writer/.claude/skills/.gitkeep +1 -0
- package/assets/worker-configs/spec-writer/CLAUDE.md +110 -0
- package/assets/worker-configs/technical-writer/CLAUDE.md +107 -0
- package/assets/worker-configs/tester/CLAUDE.md +110 -0
- package/dist/assets/claude-folder/agents/.gitkeep +0 -0
- package/dist/assets/claude-folder/commands/boss-commands.md +138 -0
- package/dist/assets/claude-folder/rules/boss-workflow.md +33 -0
- package/dist/assets/claude-folder/rules/code-style.md +23 -0
- package/dist/assets/claude-folder/rules/security.md +22 -0
- package/dist/assets/claude-folder/rules/testing.md +32 -0
- package/dist/assets/claude-folder/settings.local.json +88 -0
- package/dist/assets/claude-folder/skills/.gitkeep +0 -0
- package/dist/assets/claude-md/docs/container-use.md +140 -0
- package/dist/assets/claude-md/docs/github-operations.md +238 -0
- package/dist/assets/claude-md/docs/initialization.md +186 -0
- package/dist/assets/claude-md/docs/quality-standards.md +15 -0
- package/dist/assets/claude-md/docs/spec-kit.md +46 -0
- package/dist/assets/claude-md/docs/workers.md +174 -0
- package/dist/assets/claude-md/docs/workflow.md +140 -0
- package/dist/assets/claude-md/template.md +812 -0
- package/dist/assets/docker-compose/docker-compose.yml +52 -0
- package/dist/assets/git-hooks/commit-msg.sh +102 -0
- package/dist/assets/git-hooks/pre-commit-check.sh +21 -0
- package/dist/assets/git-hooks/pre-commit.sh +6 -0
- package/dist/assets/git-hooks/pre-push.sh +154 -0
- package/dist/assets/git-hooks/security-check.sh +40 -0
- package/dist/assets/git-hooks/test-changed.sh +84 -0
- package/dist/assets/github-workflows/CODEOWNERS +3 -0
- package/dist/assets/github-workflows/boss-ci.yml +40 -0
- package/dist/assets/github-workflows/boss-gates.yml +28 -0
- package/dist/assets/start-boss-sh/start-boss.sh +471 -0
- package/dist/assets/template-docs/api-service-fastify.md +98 -0
- package/dist/assets/template-docs/blank.md +91 -0
- package/dist/assets/template-docs/nextjs-app-turbo.md +102 -0
- package/dist/assets/template-docs/t3-app.md +106 -0
- package/dist/assets/template-loader/README.md +28 -0
- package/dist/assets/template-loader/eslint.config.node.js +28 -0
- package/dist/assets/template-loader/eslint.config.react.js +47 -0
- package/dist/assets/template-loader/gitignore +42 -0
- package/dist/assets/template-loader/index.test.ts +10 -0
- package/dist/assets/template-loader/index.ts +13 -0
- package/dist/assets/template-loader/prettierignore +8 -0
- package/dist/assets/template-loader/vitest.config.ts +19 -0
- package/dist/assets/worker-configs/architect/.claude/commands/.gitkeep +0 -0
- package/dist/assets/worker-configs/architect/.claude/skills/.gitkeep +0 -0
- package/dist/assets/worker-configs/architect/CLAUDE.md +106 -0
- package/dist/assets/worker-configs/clarifier/.claude/commands/.gitkeep +1 -0
- package/dist/assets/worker-configs/clarifier/.claude/skills/.gitkeep +1 -0
- package/dist/assets/worker-configs/clarifier/CLAUDE.md +112 -0
- package/dist/assets/worker-configs/code-reviewer/CLAUDE.md +113 -0
- package/dist/assets/worker-configs/consolidator/.claude/commands/.gitkeep +1 -0
- package/dist/assets/worker-configs/consolidator/.claude/skills/.gitkeep +1 -0
- package/dist/assets/worker-configs/consolidator/CLAUDE.md +114 -0
- package/dist/assets/worker-configs/developer-backend/.claude/commands/.gitkeep +1 -0
- package/dist/assets/worker-configs/developer-backend/.claude/skills/.gitkeep +1 -0
- package/dist/assets/worker-configs/developer-backend/CLAUDE.md +116 -0
- package/dist/assets/worker-configs/developer-frontend/.claude/commands/.gitkeep +1 -0
- package/dist/assets/worker-configs/developer-frontend/.claude/skills/.gitkeep +1 -0
- package/dist/assets/worker-configs/developer-frontend/CLAUDE.md +116 -0
- package/dist/assets/worker-configs/developer-fullstack/.claude/commands/.gitkeep +1 -0
- package/dist/assets/worker-configs/developer-fullstack/.claude/skills/.gitkeep +1 -0
- package/dist/assets/worker-configs/developer-fullstack/CLAUDE.md +116 -0
- package/dist/assets/worker-configs/devops-engineer/CLAUDE.md +111 -0
- package/dist/assets/worker-configs/planner/.claude/commands/.gitkeep +1 -0
- package/dist/assets/worker-configs/planner/.claude/skills/.gitkeep +1 -0
- package/dist/assets/worker-configs/planner/CLAUDE.md +111 -0
- package/dist/assets/worker-configs/product-owner/CLAUDE.md +108 -0
- package/dist/assets/worker-configs/reviewer/.claude/commands/.gitkeep +1 -0
- package/dist/assets/worker-configs/reviewer/.claude/skills/.gitkeep +1 -0
- package/dist/assets/worker-configs/reviewer/CLAUDE.md +110 -0
- package/dist/assets/worker-configs/security-engineer/CLAUDE.md +109 -0
- package/dist/assets/worker-configs/spec-writer/.claude/commands/.gitkeep +1 -0
- package/dist/assets/worker-configs/spec-writer/.claude/skills/.gitkeep +1 -0
- package/dist/assets/worker-configs/spec-writer/CLAUDE.md +110 -0
- package/dist/assets/worker-configs/technical-writer/CLAUDE.md +107 -0
- package/dist/assets/worker-configs/tester/CLAUDE.md +110 -0
- package/dist/commands/__tests__/bootstrap.test.d.ts +2 -0
- package/dist/commands/__tests__/bootstrap.test.d.ts.map +1 -0
- package/dist/commands/__tests__/bootstrap.test.js +379 -0
- package/dist/commands/__tests__/bootstrap.test.js.map +1 -0
- package/dist/commands/__tests__/doctor.test.d.ts +2 -0
- package/dist/commands/__tests__/doctor.test.d.ts.map +1 -0
- package/dist/commands/__tests__/doctor.test.js +13 -0
- package/dist/commands/__tests__/doctor.test.js.map +1 -0
- package/dist/commands/bootstrap.d.ts +3 -0
- package/dist/commands/bootstrap.d.ts.map +1 -0
- package/dist/commands/bootstrap.js +390 -0
- package/dist/commands/bootstrap.js.map +1 -0
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +171 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/templates.d.ts +2 -0
- package/dist/commands/templates.d.ts.map +1 -0
- package/dist/commands/templates.js +12 -0
- package/dist/commands/templates.js.map +1 -0
- package/dist/constants.d.ts +23 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +23 -0
- package/dist/constants.js.map +1 -0
- package/dist/generators/__tests__/boss-config.test.d.ts +2 -0
- package/dist/generators/__tests__/boss-config.test.d.ts.map +1 -0
- package/dist/generators/__tests__/boss-config.test.js +61 -0
- package/dist/generators/__tests__/boss-config.test.js.map +1 -0
- package/dist/generators/__tests__/claude-folder.test.d.ts +2 -0
- package/dist/generators/__tests__/claude-folder.test.d.ts.map +1 -0
- package/dist/generators/__tests__/claude-folder.test.js +128 -0
- package/dist/generators/__tests__/claude-folder.test.js.map +1 -0
- package/dist/generators/__tests__/claude-md.test.d.ts +2 -0
- package/dist/generators/__tests__/claude-md.test.d.ts.map +1 -0
- package/dist/generators/__tests__/claude-md.test.js +55 -0
- package/dist/generators/__tests__/claude-md.test.js.map +1 -0
- package/dist/generators/__tests__/container-use-config.test.d.ts +2 -0
- package/dist/generators/__tests__/container-use-config.test.d.ts.map +1 -0
- package/dist/generators/__tests__/container-use-config.test.js +80 -0
- package/dist/generators/__tests__/container-use-config.test.js.map +1 -0
- package/dist/generators/__tests__/docker-compose.test.d.ts +2 -0
- package/dist/generators/__tests__/docker-compose.test.d.ts.map +1 -0
- package/dist/generators/__tests__/docker-compose.test.js +39 -0
- package/dist/generators/__tests__/docker-compose.test.js.map +1 -0
- package/dist/generators/__tests__/git-hooks.test.d.ts +2 -0
- package/dist/generators/__tests__/git-hooks.test.d.ts.map +1 -0
- package/dist/generators/__tests__/git-hooks.test.js +118 -0
- package/dist/generators/__tests__/git-hooks.test.js.map +1 -0
- package/dist/generators/__tests__/github-workflows.test.d.ts +2 -0
- package/dist/generators/__tests__/github-workflows.test.d.ts.map +1 -0
- package/dist/generators/__tests__/github-workflows.test.js +86 -0
- package/dist/generators/__tests__/github-workflows.test.js.map +1 -0
- package/dist/generators/__tests__/mcp-config.test.d.ts +2 -0
- package/dist/generators/__tests__/mcp-config.test.d.ts.map +1 -0
- package/dist/generators/__tests__/mcp-config.test.js +131 -0
- package/dist/generators/__tests__/mcp-config.test.js.map +1 -0
- package/dist/generators/__tests__/project-structure.test.d.ts +2 -0
- package/dist/generators/__tests__/project-structure.test.d.ts.map +1 -0
- package/dist/generators/__tests__/project-structure.test.js +40 -0
- package/dist/generators/__tests__/project-structure.test.js.map +1 -0
- package/dist/generators/__tests__/quality-gates.test.d.ts +2 -0
- package/dist/generators/__tests__/quality-gates.test.d.ts.map +1 -0
- package/dist/generators/__tests__/quality-gates.test.js +71 -0
- package/dist/generators/__tests__/quality-gates.test.js.map +1 -0
- package/dist/generators/__tests__/specify-structure.test.d.ts +2 -0
- package/dist/generators/__tests__/specify-structure.test.d.ts.map +1 -0
- package/dist/generators/__tests__/specify-structure.test.js +63 -0
- package/dist/generators/__tests__/specify-structure.test.js.map +1 -0
- package/dist/generators/__tests__/start-boss-sh.test.d.ts +2 -0
- package/dist/generators/__tests__/start-boss-sh.test.d.ts.map +1 -0
- package/dist/generators/__tests__/start-boss-sh.test.js +36 -0
- package/dist/generators/__tests__/start-boss-sh.test.js.map +1 -0
- package/dist/generators/__tests__/template-docs.test.d.ts +2 -0
- package/dist/generators/__tests__/template-docs.test.d.ts.map +1 -0
- package/dist/generators/__tests__/template-docs.test.js +92 -0
- package/dist/generators/__tests__/template-docs.test.js.map +1 -0
- package/dist/generators/__tests__/template-loader.test.d.ts +2 -0
- package/dist/generators/__tests__/template-loader.test.d.ts.map +1 -0
- package/dist/generators/__tests__/template-loader.test.js +215 -0
- package/dist/generators/__tests__/template-loader.test.js.map +1 -0
- package/dist/generators/__tests__/worker-configs.test.d.ts +2 -0
- package/dist/generators/__tests__/worker-configs.test.d.ts.map +1 -0
- package/dist/generators/__tests__/worker-configs.test.js +122 -0
- package/dist/generators/__tests__/worker-configs.test.js.map +1 -0
- package/dist/generators/boss-config.d.ts +3 -0
- package/dist/generators/boss-config.d.ts.map +1 -0
- package/dist/generators/boss-config.js +242 -0
- package/dist/generators/boss-config.js.map +1 -0
- package/dist/generators/claude-folder.d.ts +3 -0
- package/dist/generators/claude-folder.d.ts.map +1 -0
- package/dist/generators/claude-folder.js +94 -0
- package/dist/generators/claude-folder.js.map +1 -0
- package/dist/generators/claude-md.d.ts +3 -0
- package/dist/generators/claude-md.d.ts.map +1 -0
- package/dist/generators/claude-md.js +64 -0
- package/dist/generators/claude-md.js.map +1 -0
- package/dist/generators/container-use-config.d.ts +13 -0
- package/dist/generators/container-use-config.d.ts.map +1 -0
- package/dist/generators/container-use-config.js +60 -0
- package/dist/generators/container-use-config.js.map +1 -0
- package/dist/generators/docker-compose.d.ts +2 -0
- package/dist/generators/docker-compose.d.ts.map +1 -0
- package/dist/generators/docker-compose.js +8 -0
- package/dist/generators/docker-compose.js.map +1 -0
- package/dist/generators/git-hooks.d.ts +3 -0
- package/dist/generators/git-hooks.d.ts.map +1 -0
- package/dist/generators/git-hooks.js +58 -0
- package/dist/generators/git-hooks.js.map +1 -0
- package/dist/generators/github-workflows.d.ts +3 -0
- package/dist/generators/github-workflows.d.ts.map +1 -0
- package/dist/generators/github-workflows.js +27 -0
- package/dist/generators/github-workflows.js.map +1 -0
- package/dist/generators/mcp-config.d.ts +3 -0
- package/dist/generators/mcp-config.d.ts.map +1 -0
- package/dist/generators/mcp-config.js +183 -0
- package/dist/generators/mcp-config.js.map +1 -0
- package/dist/generators/project-structure.d.ts +3 -0
- package/dist/generators/project-structure.d.ts.map +1 -0
- package/dist/generators/project-structure.js +24 -0
- package/dist/generators/project-structure.js.map +1 -0
- package/dist/generators/quality-gates.d.ts +3 -0
- package/dist/generators/quality-gates.d.ts.map +1 -0
- package/dist/generators/quality-gates.js +32 -0
- package/dist/generators/quality-gates.js.map +1 -0
- package/dist/generators/specify-structure.d.ts +2 -0
- package/dist/generators/specify-structure.d.ts.map +1 -0
- package/dist/generators/specify-structure.js +43 -0
- package/dist/generators/specify-structure.js.map +1 -0
- package/dist/generators/start-boss-sh.d.ts +2 -0
- package/dist/generators/start-boss-sh.d.ts.map +1 -0
- package/dist/generators/start-boss-sh.js +10 -0
- package/dist/generators/start-boss-sh.js.map +1 -0
- package/dist/generators/template-docs.d.ts +3 -0
- package/dist/generators/template-docs.d.ts.map +1 -0
- package/dist/generators/template-docs.js +19 -0
- package/dist/generators/template-docs.js.map +1 -0
- package/dist/generators/template-loader.d.ts +3 -0
- package/dist/generators/template-loader.d.ts.map +1 -0
- package/dist/generators/template-loader.js +308 -0
- package/dist/generators/template-loader.js.map +1 -0
- package/dist/generators/worker-configs.d.ts +3 -0
- package/dist/generators/worker-configs.d.ts.map +1 -0
- package/dist/generators/worker-configs.js +119 -0
- package/dist/generators/worker-configs.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +57 -0
- package/dist/index.js.map +1 -0
- package/dist/presets/__tests__/quality-presets.test.d.ts +2 -0
- package/dist/presets/__tests__/quality-presets.test.d.ts.map +1 -0
- package/dist/presets/__tests__/quality-presets.test.js +152 -0
- package/dist/presets/__tests__/quality-presets.test.js.map +1 -0
- package/dist/presets/quality-presets.d.ts +3 -0
- package/dist/presets/quality-presets.d.ts.map +1 -0
- package/dist/presets/quality-presets.js +65 -0
- package/dist/presets/quality-presets.js.map +1 -0
- package/dist/types/index.d.ts +42 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/__tests__/file-system.test.d.ts +2 -0
- package/dist/utils/__tests__/file-system.test.d.ts.map +1 -0
- package/dist/utils/__tests__/file-system.test.js +83 -0
- package/dist/utils/__tests__/file-system.test.js.map +1 -0
- package/dist/utils/__tests__/git.test.d.ts +2 -0
- package/dist/utils/__tests__/git.test.d.ts.map +1 -0
- package/dist/utils/__tests__/git.test.js +79 -0
- package/dist/utils/__tests__/git.test.js.map +1 -0
- package/dist/utils/__tests__/template-loader.test.d.ts +2 -0
- package/dist/utils/__tests__/template-loader.test.d.ts.map +1 -0
- package/dist/utils/__tests__/template-loader.test.js +109 -0
- package/dist/utils/__tests__/template-loader.test.js.map +1 -0
- package/dist/utils/__tests__/validators.test.d.ts +2 -0
- package/dist/utils/__tests__/validators.test.d.ts.map +1 -0
- package/dist/utils/__tests__/validators.test.js +118 -0
- package/dist/utils/__tests__/validators.test.js.map +1 -0
- package/dist/utils/file-system.d.ts +8 -0
- package/dist/utils/file-system.d.ts.map +1 -0
- package/dist/utils/file-system.js +54 -0
- package/dist/utils/file-system.js.map +1 -0
- package/dist/utils/git.d.ts +7 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +98 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/logger.d.ts +13 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +42 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/prompts.d.ts +18 -0
- package/dist/utils/prompts.d.ts.map +1 -0
- package/dist/utils/prompts.js +197 -0
- package/dist/utils/prompts.js.map +1 -0
- package/dist/utils/template-loader.d.ts +18 -0
- package/dist/utils/template-loader.d.ts.map +1 -0
- package/dist/utils/template-loader.js +92 -0
- package/dist/utils/template-loader.js.map +1 -0
- package/dist/utils/validators.d.ts +21 -0
- package/dist/utils/validators.d.ts.map +1 -0
- package/dist/utils/validators.js +50 -0
- package/dist/utils/validators.js.map +1 -0
- package/package.json +79 -0
- package/templates/spec-kit/README.md +17 -0
- package/templates/spec-kit/memory/constitution.md +50 -0
- package/templates/spec-kit/scripts/bash/check-prerequisites.sh +166 -0
- package/templates/spec-kit/scripts/bash/common.sh +156 -0
- package/templates/spec-kit/scripts/bash/create-new-feature.sh +297 -0
- package/templates/spec-kit/scripts/bash/setup-plan.sh +61 -0
- package/templates/spec-kit/scripts/bash/update-agent-context.sh +799 -0
- package/templates/spec-kit/scripts/powershell/check-prerequisites.ps1 +148 -0
- package/templates/spec-kit/scripts/powershell/common.ps1 +137 -0
- package/templates/spec-kit/scripts/powershell/create-new-feature.ps1 +283 -0
- package/templates/spec-kit/scripts/powershell/setup-plan.ps1 +61 -0
- package/templates/spec-kit/scripts/powershell/update-agent-context.ps1 +448 -0
- package/templates/spec-kit/src/specify_cli/__init__.py +1369 -0
- package/templates/spec-kit/templates/agent-file-template.md +28 -0
- package/templates/spec-kit/templates/checklist-template.md +40 -0
- package/templates/spec-kit/templates/commands/analyze.md +187 -0
- package/templates/spec-kit/templates/commands/checklist.md +297 -0
- package/templates/spec-kit/templates/commands/clarify.md +184 -0
- package/templates/spec-kit/templates/commands/constitution.md +82 -0
- package/templates/spec-kit/templates/commands/implement.md +138 -0
- package/templates/spec-kit/templates/commands/plan.md +95 -0
- package/templates/spec-kit/templates/commands/specify.md +261 -0
- package/templates/spec-kit/templates/commands/tasks.md +140 -0
- package/templates/spec-kit/templates/commands/taskstoissues.md +33 -0
- package/templates/spec-kit/templates/plan-template.md +104 -0
- package/templates/spec-kit/templates/spec-template.md +115 -0
- package/templates/spec-kit/templates/tasks-template.md +251 -0
- package/templates/spec-kit/templates/vscode-settings.json +14 -0
- package/templates/t3-app/README.md +41 -0
- package/templates/t3-app/base/README.md +29 -0
- package/templates/t3-app/base/_gitignore +47 -0
- package/templates/t3-app/base/next-env.d.ts +5 -0
- package/templates/t3-app/base/next.config.js +22 -0
- package/templates/t3-app/base/package.json +26 -0
- package/templates/t3-app/base/public/favicon.ico +0 -0
- package/templates/t3-app/base/src/env.js +40 -0
- package/templates/t3-app/base/src/styles/globals.css +16 -0
- package/templates/t3-app/base/tsconfig.json +42 -0
- package/templates/t3-app/extras/config/_eslint.base.js +45 -0
- package/templates/t3-app/extras/config/_eslint.drizzle.js +58 -0
- package/templates/t3-app/extras/config/_prettier.config.js +2 -0
- package/templates/t3-app/extras/config/_tailwind.prettier.config.js +4 -0
- package/templates/t3-app/extras/config/biome.jsonc +69 -0
- package/templates/t3-app/extras/config/drizzle-config-mysql.ts +12 -0
- package/templates/t3-app/extras/config/drizzle-config-postgres.ts +12 -0
- package/templates/t3-app/extras/config/drizzle-config-sqlite.ts +12 -0
- package/templates/t3-app/extras/config/next-config-appdir.js +10 -0
- package/templates/t3-app/extras/config/postcss.config.js +5 -0
- package/templates/t3-app/extras/pnpm/_npmrc +2 -0
- package/templates/t3-app/extras/prisma/schema/base-planetscale.prisma +25 -0
- package/templates/t3-app/extras/prisma/schema/base.prisma +21 -0
- package/templates/t3-app/extras/prisma/schema/with-auth-planetscale.prisma +79 -0
- package/templates/t3-app/extras/prisma/schema/with-auth.prisma +75 -0
- package/templates/t3-app/extras/prisma/schema/with-better-auth-planetscale.prisma +90 -0
- package/templates/t3-app/extras/prisma/schema/with-better-auth.prisma +89 -0
- package/templates/t3-app/extras/src/app/_components/post-tw.tsx +50 -0
- package/templates/t3-app/extras/src/app/_components/post.tsx +54 -0
- package/templates/t3-app/extras/src/app/api/auth/[...all]/route.ts +5 -0
- package/templates/t3-app/extras/src/app/api/auth/[...nextauth]/route.ts +3 -0
- package/templates/t3-app/extras/src/app/api/trpc/[trpc]/route.ts +34 -0
- package/templates/t3-app/extras/src/app/layout/base.tsx +24 -0
- package/templates/t3-app/extras/src/app/layout/with-trpc-tw.tsx +29 -0
- package/templates/t3-app/extras/src/app/layout/with-trpc.tsx +28 -0
- package/templates/t3-app/extras/src/app/layout/with-tw.tsx +25 -0
- package/templates/t3-app/extras/src/app/page/base.tsx +39 -0
- package/templates/t3-app/extras/src/app/page/with-auth-trpc-tw.tsx +69 -0
- package/templates/t3-app/extras/src/app/page/with-auth-trpc.tsx +70 -0
- package/templates/t3-app/extras/src/app/page/with-better-auth-trpc-tw.tsx +105 -0
- package/templates/t3-app/extras/src/app/page/with-better-auth-trpc.tsx +103 -0
- package/templates/t3-app/extras/src/app/page/with-better-auth-tw.tsx +90 -0
- package/templates/t3-app/extras/src/app/page/with-better-auth.tsx +88 -0
- package/templates/t3-app/extras/src/app/page/with-trpc-tw.tsx +53 -0
- package/templates/t3-app/extras/src/app/page/with-trpc.tsx +54 -0
- package/templates/t3-app/extras/src/app/page/with-tw.tsx +37 -0
- package/templates/t3-app/extras/src/env/with-auth-db-planetscale.js +58 -0
- package/templates/t3-app/extras/src/env/with-auth-db.js +52 -0
- package/templates/t3-app/extras/src/env/with-auth.js +51 -0
- package/templates/t3-app/extras/src/env/with-better-auth-db-planetscale.js +58 -0
- package/templates/t3-app/extras/src/env/with-better-auth-db.js +50 -0
- package/templates/t3-app/extras/src/env/with-better-auth.js +49 -0
- package/templates/t3-app/extras/src/env/with-db-planetscale.js +50 -0
- package/templates/t3-app/extras/src/env/with-db.js +44 -0
- package/templates/t3-app/extras/src/index.module.css +177 -0
- package/templates/t3-app/extras/src/pages/_app/base.tsx +18 -0
- package/templates/t3-app/extras/src/pages/_app/with-auth-trpc-tw.tsx +27 -0
- package/templates/t3-app/extras/src/pages/_app/with-auth-trpc.tsx +27 -0
- package/templates/t3-app/extras/src/pages/_app/with-auth-tw.tsx +25 -0
- package/templates/t3-app/extras/src/pages/_app/with-auth.tsx +25 -0
- package/templates/t3-app/extras/src/pages/_app/with-better-auth-trpc-tw.tsx +20 -0
- package/templates/t3-app/extras/src/pages/_app/with-better-auth-trpc.tsx +20 -0
- package/templates/t3-app/extras/src/pages/_app/with-trpc-tw.tsx +20 -0
- package/templates/t3-app/extras/src/pages/_app/with-trpc.tsx +20 -0
- package/templates/t3-app/extras/src/pages/_app/with-tw.tsx +18 -0
- package/templates/t3-app/extras/src/pages/api/auth/[...all].ts +8 -0
- package/templates/t3-app/extras/src/pages/api/trpc/[trpc].ts +19 -0
- package/templates/t3-app/extras/src/pages/index/base.tsx +47 -0
- package/templates/t3-app/extras/src/pages/index/with-auth-trpc-tw.tsx +81 -0
- package/templates/t3-app/extras/src/pages/index/with-auth-trpc.tsx +82 -0
- package/templates/t3-app/extras/src/pages/index/with-better-auth-trpc-tw.tsx +99 -0
- package/templates/t3-app/extras/src/pages/index/with-better-auth-trpc.tsx +100 -0
- package/templates/t3-app/extras/src/pages/index/with-better-auth-tw.tsx +87 -0
- package/templates/t3-app/extras/src/pages/index/with-better-auth.tsx +88 -0
- package/templates/t3-app/extras/src/pages/index/with-trpc-tw.tsx +52 -0
- package/templates/t3-app/extras/src/pages/index/with-trpc.tsx +53 -0
- package/templates/t3-app/extras/src/pages/index/with-tw.tsx +45 -0
- package/templates/t3-app/extras/src/server/api/root.ts +23 -0
- package/templates/t3-app/extras/src/server/api/routers/post/base.ts +40 -0
- package/templates/t3-app/extras/src/server/api/routers/post/with-auth-drizzle.ts +39 -0
- package/templates/t3-app/extras/src/server/api/routers/post/with-auth-prisma.ts +41 -0
- package/templates/t3-app/extras/src/server/api/routers/post/with-auth.ts +37 -0
- package/templates/t3-app/extras/src/server/api/routers/post/with-drizzle.ts +30 -0
- package/templates/t3-app/extras/src/server/api/routers/post/with-prisma.ts +31 -0
- package/templates/t3-app/extras/src/server/api/trpc-app/base.ts +103 -0
- package/templates/t3-app/extras/src/server/api/trpc-app/with-auth-db.ts +133 -0
- package/templates/t3-app/extras/src/server/api/trpc-app/with-auth.ts +130 -0
- package/templates/t3-app/extras/src/server/api/trpc-app/with-better-auth-db.ts +134 -0
- package/templates/t3-app/extras/src/server/api/trpc-app/with-better-auth.ts +131 -0
- package/templates/t3-app/extras/src/server/api/trpc-app/with-db.ts +106 -0
- package/templates/t3-app/extras/src/server/api/trpc-pages/base.ts +122 -0
- package/templates/t3-app/extras/src/server/api/trpc-pages/with-auth-db.ts +160 -0
- package/templates/t3-app/extras/src/server/api/trpc-pages/with-auth.ts +158 -0
- package/templates/t3-app/extras/src/server/api/trpc-pages/with-better-auth-db.ts +168 -0
- package/templates/t3-app/extras/src/server/api/trpc-pages/with-better-auth.ts +166 -0
- package/templates/t3-app/extras/src/server/api/trpc-pages/with-db.ts +125 -0
- package/templates/t3-app/extras/src/server/auth/config/base.ts +52 -0
- package/templates/t3-app/extras/src/server/auth/config/with-drizzle.ts +67 -0
- package/templates/t3-app/extras/src/server/auth/config/with-prisma.ts +56 -0
- package/templates/t3-app/extras/src/server/auth/index.ts +10 -0
- package/templates/t3-app/extras/src/server/better-auth/client.ts +5 -0
- package/templates/t3-app/extras/src/server/better-auth/config/base.ts +12 -0
- package/templates/t3-app/extras/src/server/better-auth/config/with-drizzle.ts +26 -0
- package/templates/t3-app/extras/src/server/better-auth/config/with-prisma.ts +26 -0
- package/templates/t3-app/extras/src/server/better-auth/index.ts +1 -0
- package/templates/t3-app/extras/src/server/better-auth/server.ts +7 -0
- package/templates/t3-app/extras/src/server/db/db-prisma-planetscale.ts +19 -0
- package/templates/t3-app/extras/src/server/db/db-prisma.ts +16 -0
- package/templates/t3-app/extras/src/server/db/index-drizzle/with-mysql.ts +18 -0
- package/templates/t3-app/extras/src/server/db/index-drizzle/with-planetscale.ts +7 -0
- package/templates/t3-app/extras/src/server/db/index-drizzle/with-postgres.ts +18 -0
- package/templates/t3-app/extras/src/server/db/index-drizzle/with-sqlite.ts +19 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/base-mysql.ts +26 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/base-planetscale.ts +26 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/base-postgres.ts +26 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/base-sqlite.ts +27 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/with-auth-mysql.ts +111 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/with-auth-planetscale.ts +100 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/with-auth-postgres.ts +108 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/with-auth-sqlite.ts +105 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/with-better-auth-mysql.ts +106 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/with-better-auth-planetscale.ts +106 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/with-better-auth-postgres.ts +105 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/with-better-auth-sqlite.ts +134 -0
- package/templates/t3-app/extras/src/styles/globals.css +6 -0
- package/templates/t3-app/extras/src/trpc/query-client.ts +25 -0
- package/templates/t3-app/extras/src/trpc/react.tsx +78 -0
- package/templates/t3-app/extras/src/trpc/server.ts +30 -0
- package/templates/t3-app/extras/src/utils/api.ts +68 -0
- package/templates/t3-app/extras/start-database/mysql.sh +86 -0
- package/templates/t3-app/extras/start-database/postgres.sh +88 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import Link from "next/link";
|
|
2
|
+
|
|
3
|
+
import { LatestPost } from "~/app/_components/post";
|
|
4
|
+
import { api, HydrateClient } from "~/trpc/server";
|
|
5
|
+
|
|
6
|
+
export default async function Home() {
|
|
7
|
+
const hello = await api.post.hello({ text: "from tRPC" });
|
|
8
|
+
|
|
9
|
+
void api.post.getLatest.prefetch();
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<HydrateClient>
|
|
13
|
+
<main className="flex min-h-screen flex-col items-center justify-center bg-gradient-to-b from-[#2e026d] to-[#15162c] text-white">
|
|
14
|
+
<div className="container flex flex-col items-center justify-center gap-12 px-4 py-16">
|
|
15
|
+
<h1 className="text-5xl font-extrabold tracking-tight sm:text-[5rem]">
|
|
16
|
+
Create <span className="text-[hsl(280,100%,70%)]">T3</span> App
|
|
17
|
+
</h1>
|
|
18
|
+
<div className="grid grid-cols-1 gap-4 sm:grid-cols-2 md:gap-8">
|
|
19
|
+
<Link
|
|
20
|
+
className="flex max-w-xs flex-col gap-4 rounded-xl bg-white/10 p-4 hover:bg-white/20"
|
|
21
|
+
href="https://create.t3.gg/en/usage/first-steps"
|
|
22
|
+
target="_blank"
|
|
23
|
+
>
|
|
24
|
+
<h3 className="text-2xl font-bold">First Steps →</h3>
|
|
25
|
+
<div className="text-lg">
|
|
26
|
+
Just the basics - Everything you need to know to set up your
|
|
27
|
+
database and authentication.
|
|
28
|
+
</div>
|
|
29
|
+
</Link>
|
|
30
|
+
<Link
|
|
31
|
+
className="flex max-w-xs flex-col gap-4 rounded-xl bg-white/10 p-4 hover:bg-white/20"
|
|
32
|
+
href="https://create.t3.gg/en/introduction"
|
|
33
|
+
target="_blank"
|
|
34
|
+
>
|
|
35
|
+
<h3 className="text-2xl font-bold">Documentation →</h3>
|
|
36
|
+
<div className="text-lg">
|
|
37
|
+
Learn more about Create T3 App, the libraries it uses, and how
|
|
38
|
+
to deploy it.
|
|
39
|
+
</div>
|
|
40
|
+
</Link>
|
|
41
|
+
</div>
|
|
42
|
+
<div className="flex flex-col items-center gap-2">
|
|
43
|
+
<p className="text-2xl text-white">
|
|
44
|
+
{hello ? hello.greeting : "Loading tRPC query..."}
|
|
45
|
+
</p>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<LatestPost />
|
|
49
|
+
</div>
|
|
50
|
+
</main>
|
|
51
|
+
</HydrateClient>
|
|
52
|
+
);
|
|
53
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import Link from "next/link";
|
|
2
|
+
|
|
3
|
+
import { LatestPost } from "~/app/_components/post";
|
|
4
|
+
import { api, HydrateClient } from "~/trpc/server";
|
|
5
|
+
import styles from "./index.module.css";
|
|
6
|
+
|
|
7
|
+
export default async function Home() {
|
|
8
|
+
const hello = await api.post.hello({ text: "from tRPC" });
|
|
9
|
+
|
|
10
|
+
void api.post.getLatest.prefetch();
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
<HydrateClient>
|
|
14
|
+
<main className={styles.main}>
|
|
15
|
+
<div className={styles.container}>
|
|
16
|
+
<h1 className={styles.title}>
|
|
17
|
+
Create <span className={styles.pinkSpan}>T3</span> App
|
|
18
|
+
</h1>
|
|
19
|
+
<div className={styles.cardRow}>
|
|
20
|
+
<Link
|
|
21
|
+
className={styles.card}
|
|
22
|
+
href="https://create.t3.gg/en/usage/first-steps"
|
|
23
|
+
target="_blank"
|
|
24
|
+
>
|
|
25
|
+
<h3 className={styles.cardTitle}>First Steps →</h3>
|
|
26
|
+
<div className={styles.cardText}>
|
|
27
|
+
Just the basics - Everything you need to know to set up your
|
|
28
|
+
database and authentication.
|
|
29
|
+
</div>
|
|
30
|
+
</Link>
|
|
31
|
+
<Link
|
|
32
|
+
className={styles.card}
|
|
33
|
+
href="https://create.t3.gg/en/introduction"
|
|
34
|
+
target="_blank"
|
|
35
|
+
>
|
|
36
|
+
<h3 className={styles.cardTitle}>Documentation →</h3>
|
|
37
|
+
<div className={styles.cardText}>
|
|
38
|
+
Learn more about Create T3 App, the libraries it uses, and how
|
|
39
|
+
to deploy it.
|
|
40
|
+
</div>
|
|
41
|
+
</Link>
|
|
42
|
+
</div>
|
|
43
|
+
<div className={styles.showcaseContainer}>
|
|
44
|
+
<p className={styles.showcaseText}>
|
|
45
|
+
{hello ? hello.greeting : "Loading tRPC query..."}
|
|
46
|
+
</p>
|
|
47
|
+
</div>
|
|
48
|
+
|
|
49
|
+
<LatestPost />
|
|
50
|
+
</div>
|
|
51
|
+
</main>
|
|
52
|
+
</HydrateClient>
|
|
53
|
+
);
|
|
54
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import Link from "next/link";
|
|
2
|
+
|
|
3
|
+
export default function HomePage() {
|
|
4
|
+
return (
|
|
5
|
+
<main className="flex min-h-screen flex-col items-center justify-center bg-gradient-to-b from-[#2e026d] to-[#15162c] text-white">
|
|
6
|
+
<div className="container flex flex-col items-center justify-center gap-12 px-4 py-16">
|
|
7
|
+
<h1 className="text-5xl font-extrabold tracking-tight text-white sm:text-[5rem]">
|
|
8
|
+
Create <span className="text-[hsl(280,100%,70%)]">T3</span> App
|
|
9
|
+
</h1>
|
|
10
|
+
<div className="grid grid-cols-1 gap-4 sm:grid-cols-2 md:gap-8">
|
|
11
|
+
<Link
|
|
12
|
+
className="flex max-w-xs flex-col gap-4 rounded-xl bg-white/10 p-4 text-white hover:bg-white/20"
|
|
13
|
+
href="https://create.t3.gg/en/usage/first-steps"
|
|
14
|
+
target="_blank"
|
|
15
|
+
>
|
|
16
|
+
<h3 className="text-2xl font-bold">First Steps →</h3>
|
|
17
|
+
<div className="text-lg">
|
|
18
|
+
Just the basics - Everything you need to know to set up your
|
|
19
|
+
database and authentication.
|
|
20
|
+
</div>
|
|
21
|
+
</Link>
|
|
22
|
+
<Link
|
|
23
|
+
className="flex max-w-xs flex-col gap-4 rounded-xl bg-white/10 p-4 text-white hover:bg-white/20"
|
|
24
|
+
href="https://create.t3.gg/en/introduction"
|
|
25
|
+
target="_blank"
|
|
26
|
+
>
|
|
27
|
+
<h3 className="text-2xl font-bold">Documentation →</h3>
|
|
28
|
+
<div className="text-lg">
|
|
29
|
+
Learn more about Create T3 App, the libraries it uses, and how to
|
|
30
|
+
deploy it.
|
|
31
|
+
</div>
|
|
32
|
+
</Link>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
</main>
|
|
36
|
+
);
|
|
37
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { createEnv } from "@t3-oss/env-nextjs";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
|
|
4
|
+
export const env = createEnv({
|
|
5
|
+
/**
|
|
6
|
+
* Specify your server-side environment variables schema here. This way you can ensure the app
|
|
7
|
+
* isn't built with invalid env vars.
|
|
8
|
+
*/
|
|
9
|
+
server: {
|
|
10
|
+
AUTH_SECRET:
|
|
11
|
+
process.env.NODE_ENV === "production"
|
|
12
|
+
? z.string()
|
|
13
|
+
: z.string().optional(),
|
|
14
|
+
AUTH_DISCORD_ID: z.string(),
|
|
15
|
+
AUTH_DISCORD_SECRET: z.string(),
|
|
16
|
+
DATABASE_URL: z
|
|
17
|
+
.string()
|
|
18
|
+
.url()
|
|
19
|
+
.refine(
|
|
20
|
+
(str) => !str.includes("YOUR_MYSQL_URL_HERE"),
|
|
21
|
+
"You forgot to change the default URL"
|
|
22
|
+
),
|
|
23
|
+
NODE_ENV: z
|
|
24
|
+
.enum(["development", "test", "production"])
|
|
25
|
+
.default("development"),
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Specify your client-side environment variables schema here. This way you can ensure the app
|
|
30
|
+
* isn't built with invalid env vars. To expose them to the client, prefix them with
|
|
31
|
+
* `NEXT_PUBLIC_`.
|
|
32
|
+
*/
|
|
33
|
+
client: {
|
|
34
|
+
// NEXT_PUBLIC_CLIENTVAR: z.string(),
|
|
35
|
+
},
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* You can't destruct `process.env` as a regular object in the Next.js edge runtimes (e.g.
|
|
39
|
+
* middlewares) or client-side so we need to destruct manually.
|
|
40
|
+
*/
|
|
41
|
+
runtimeEnv: {
|
|
42
|
+
AUTH_SECRET: process.env.AUTH_SECRET,
|
|
43
|
+
AUTH_DISCORD_ID: process.env.AUTH_DISCORD_ID,
|
|
44
|
+
AUTH_DISCORD_SECRET: process.env.AUTH_DISCORD_SECRET,
|
|
45
|
+
DATABASE_URL: process.env.DATABASE_URL,
|
|
46
|
+
NODE_ENV: process.env.NODE_ENV,
|
|
47
|
+
},
|
|
48
|
+
/**
|
|
49
|
+
* Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially
|
|
50
|
+
* useful for Docker builds.
|
|
51
|
+
*/
|
|
52
|
+
skipValidation: !!process.env.SKIP_ENV_VALIDATION,
|
|
53
|
+
/**
|
|
54
|
+
* Makes it so that empty strings are treated as undefined. `SOME_VAR: z.string()` and
|
|
55
|
+
* `SOME_VAR=''` will throw an error.
|
|
56
|
+
*/
|
|
57
|
+
emptyStringAsUndefined: true,
|
|
58
|
+
});
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { createEnv } from "@t3-oss/env-nextjs";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
|
|
4
|
+
export const env = createEnv({
|
|
5
|
+
/**
|
|
6
|
+
* Specify your server-side environment variables schema here. This way you can ensure the app
|
|
7
|
+
* isn't built with invalid env vars.
|
|
8
|
+
*/
|
|
9
|
+
server: {
|
|
10
|
+
AUTH_SECRET:
|
|
11
|
+
process.env.NODE_ENV === "production"
|
|
12
|
+
? z.string()
|
|
13
|
+
: z.string().optional(),
|
|
14
|
+
AUTH_DISCORD_ID: z.string(),
|
|
15
|
+
AUTH_DISCORD_SECRET: z.string(),
|
|
16
|
+
DATABASE_URL: z.string().url(),
|
|
17
|
+
NODE_ENV: z
|
|
18
|
+
.enum(["development", "test", "production"])
|
|
19
|
+
.default("development"),
|
|
20
|
+
},
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Specify your client-side environment variables schema here. This way you can ensure the app
|
|
24
|
+
* isn't built with invalid env vars. To expose them to the client, prefix them with
|
|
25
|
+
* `NEXT_PUBLIC_`.
|
|
26
|
+
*/
|
|
27
|
+
client: {
|
|
28
|
+
// NEXT_PUBLIC_CLIENTVAR: z.string(),
|
|
29
|
+
},
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* You can't destruct `process.env` as a regular object in the Next.js edge runtimes (e.g.
|
|
33
|
+
* middlewares) or client-side so we need to destruct manually.
|
|
34
|
+
*/
|
|
35
|
+
runtimeEnv: {
|
|
36
|
+
AUTH_SECRET: process.env.AUTH_SECRET,
|
|
37
|
+
AUTH_DISCORD_ID: process.env.AUTH_DISCORD_ID,
|
|
38
|
+
AUTH_DISCORD_SECRET: process.env.AUTH_DISCORD_SECRET,
|
|
39
|
+
DATABASE_URL: process.env.DATABASE_URL,
|
|
40
|
+
NODE_ENV: process.env.NODE_ENV,
|
|
41
|
+
},
|
|
42
|
+
/**
|
|
43
|
+
* Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially
|
|
44
|
+
* useful for Docker builds.
|
|
45
|
+
*/
|
|
46
|
+
skipValidation: !!process.env.SKIP_ENV_VALIDATION,
|
|
47
|
+
/**
|
|
48
|
+
* Makes it so that empty strings are treated as undefined. `SOME_VAR: z.string()` and
|
|
49
|
+
* `SOME_VAR=''` will throw an error.
|
|
50
|
+
*/
|
|
51
|
+
emptyStringAsUndefined: true,
|
|
52
|
+
});
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { createEnv } from "@t3-oss/env-nextjs";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
|
|
4
|
+
export const env = createEnv({
|
|
5
|
+
/**
|
|
6
|
+
* Specify your server-side environment variables schema here. This way you can ensure the app
|
|
7
|
+
* isn't built with invalid env vars.
|
|
8
|
+
*/
|
|
9
|
+
server: {
|
|
10
|
+
AUTH_SECRET:
|
|
11
|
+
process.env.NODE_ENV === "production"
|
|
12
|
+
? z.string()
|
|
13
|
+
: z.string().optional(),
|
|
14
|
+
AUTH_DISCORD_ID: z.string(),
|
|
15
|
+
AUTH_DISCORD_SECRET: z.string(),
|
|
16
|
+
NODE_ENV: z
|
|
17
|
+
.enum(["development", "test", "production"])
|
|
18
|
+
.default("development"),
|
|
19
|
+
},
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Specify your client-side environment variables schema here. This way you can ensure the app
|
|
23
|
+
* isn't built with invalid env vars. To expose them to the client, prefix them with
|
|
24
|
+
* `NEXT_PUBLIC_`.
|
|
25
|
+
*/
|
|
26
|
+
client: {
|
|
27
|
+
// NEXT_PUBLIC_CLIENTVAR: z.string(),
|
|
28
|
+
},
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* You can't destruct `process.env` as a regular object in the Next.js edge runtimes (e.g.
|
|
32
|
+
* middlewares) or client-side so we need to destruct manually.
|
|
33
|
+
*/
|
|
34
|
+
runtimeEnv: {
|
|
35
|
+
AUTH_SECRET: process.env.AUTH_SECRET,
|
|
36
|
+
AUTH_DISCORD_ID: process.env.AUTH_DISCORD_ID,
|
|
37
|
+
AUTH_DISCORD_SECRET: process.env.AUTH_DISCORD_SECRET,
|
|
38
|
+
NODE_ENV: process.env.NODE_ENV,
|
|
39
|
+
// NEXT_PUBLIC_CLIENTVAR: process.env.NEXT_PUBLIC_CLIENTVAR,
|
|
40
|
+
},
|
|
41
|
+
/**
|
|
42
|
+
* Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially
|
|
43
|
+
* useful for Docker builds.
|
|
44
|
+
*/
|
|
45
|
+
skipValidation: !!process.env.SKIP_ENV_VALIDATION,
|
|
46
|
+
/**
|
|
47
|
+
* Makes it so that empty strings are treated as undefined. `SOME_VAR: z.string()` and
|
|
48
|
+
* `SOME_VAR=''` will throw an error.
|
|
49
|
+
*/
|
|
50
|
+
emptyStringAsUndefined: true,
|
|
51
|
+
});
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { createEnv } from "@t3-oss/env-nextjs";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
|
|
4
|
+
export const env = createEnv({
|
|
5
|
+
/**
|
|
6
|
+
* Specify your server-side environment variables schema here. This way you can ensure the app
|
|
7
|
+
* isn't built with invalid env vars.
|
|
8
|
+
*/
|
|
9
|
+
server: {
|
|
10
|
+
BETTER_AUTH_SECRET:
|
|
11
|
+
process.env.NODE_ENV === "production"
|
|
12
|
+
? z.string()
|
|
13
|
+
: z.string().optional(),
|
|
14
|
+
BETTER_AUTH_GITHUB_CLIENT_ID: z.string(),
|
|
15
|
+
BETTER_AUTH_GITHUB_CLIENT_SECRET: z.string(),
|
|
16
|
+
DATABASE_URL: z
|
|
17
|
+
.string()
|
|
18
|
+
.url()
|
|
19
|
+
.refine(
|
|
20
|
+
(str) => !str.includes("YOUR_MYSQL_URL_HERE"),
|
|
21
|
+
"You forgot to change the default URL"
|
|
22
|
+
),
|
|
23
|
+
NODE_ENV: z
|
|
24
|
+
.enum(["development", "test", "production"])
|
|
25
|
+
.default("development"),
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Specify your client-side environment variables schema here. This way you can ensure the app
|
|
30
|
+
* isn't built with invalid env vars. To expose them to the client, prefix them with
|
|
31
|
+
* `NEXT_PUBLIC_`.
|
|
32
|
+
*/
|
|
33
|
+
client: {
|
|
34
|
+
// NEXT_PUBLIC_CLIENTVAR: z.string(),
|
|
35
|
+
},
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* You can't destruct `process.env` as a regular object in the Next.js edge runtimes (e.g.
|
|
39
|
+
* middlewares) or client-side so we need to destruct manually.
|
|
40
|
+
*/
|
|
41
|
+
runtimeEnv: {
|
|
42
|
+
BETTER_AUTH_SECRET: process.env.BETTER_AUTH_SECRET,
|
|
43
|
+
BETTER_AUTH_GITHUB_CLIENT_ID: process.env.BETTER_AUTH_GITHUB_CLIENT_ID,
|
|
44
|
+
BETTER_AUTH_GITHUB_CLIENT_SECRET: process.env.BETTER_AUTH_GITHUB_CLIENT_SECRET,
|
|
45
|
+
DATABASE_URL: process.env.DATABASE_URL,
|
|
46
|
+
NODE_ENV: process.env.NODE_ENV,
|
|
47
|
+
},
|
|
48
|
+
/**
|
|
49
|
+
* Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially
|
|
50
|
+
* useful for Docker builds.
|
|
51
|
+
*/
|
|
52
|
+
skipValidation: !!process.env.SKIP_ENV_VALIDATION,
|
|
53
|
+
/**
|
|
54
|
+
* Makes it so that empty strings are treated as undefined. `SOME_VAR: z.string()` and
|
|
55
|
+
* `SOME_VAR=''` will throw an error.
|
|
56
|
+
*/
|
|
57
|
+
emptyStringAsUndefined: true,
|
|
58
|
+
});
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { createEnv } from "@t3-oss/env-nextjs";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
|
|
4
|
+
export const env = createEnv({
|
|
5
|
+
/**
|
|
6
|
+
* Specify your server-side environment variables schema here. This way you can ensure the app
|
|
7
|
+
* isn't built with invalid env vars.
|
|
8
|
+
*/
|
|
9
|
+
server: {
|
|
10
|
+
BETTER_AUTH_SECRET:
|
|
11
|
+
process.env.NODE_ENV === "production" ? z.string() : z.string().optional(),
|
|
12
|
+
BETTER_AUTH_GITHUB_CLIENT_ID: z.string(),
|
|
13
|
+
BETTER_AUTH_GITHUB_CLIENT_SECRET: z.string(),
|
|
14
|
+
DATABASE_URL: z.string().url(),
|
|
15
|
+
NODE_ENV: z
|
|
16
|
+
.enum(["development", "test", "production"])
|
|
17
|
+
.default("development"),
|
|
18
|
+
},
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Specify your client-side environment variables schema here. This way you can ensure the app
|
|
22
|
+
* isn't built with invalid env vars. To expose them to the client, prefix them with
|
|
23
|
+
* `NEXT_PUBLIC_`.
|
|
24
|
+
*/
|
|
25
|
+
client: {
|
|
26
|
+
// NEXT_PUBLIC_CLIENTVAR: z.string(),
|
|
27
|
+
},
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* You can't destruct `process.env` as a regular object in the Next.js edge runtimes (e.g.
|
|
31
|
+
* middlewares) or client-side so we need to destruct manually.
|
|
32
|
+
*/
|
|
33
|
+
runtimeEnv: {
|
|
34
|
+
BETTER_AUTH_SECRET: process.env.BETTER_AUTH_SECRET,
|
|
35
|
+
BETTER_AUTH_GITHUB_CLIENT_ID: process.env.BETTER_AUTH_GITHUB_CLIENT_ID,
|
|
36
|
+
BETTER_AUTH_GITHUB_CLIENT_SECRET: process.env.BETTER_AUTH_GITHUB_CLIENT_SECRET,
|
|
37
|
+
DATABASE_URL: process.env.DATABASE_URL,
|
|
38
|
+
NODE_ENV: process.env.NODE_ENV,
|
|
39
|
+
},
|
|
40
|
+
/**
|
|
41
|
+
* Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially
|
|
42
|
+
* useful for Docker builds.
|
|
43
|
+
*/
|
|
44
|
+
skipValidation: !!process.env.SKIP_ENV_VALIDATION,
|
|
45
|
+
/**
|
|
46
|
+
* Makes it so that empty strings are treated as undefined. `SOME_VAR: z.string()` and
|
|
47
|
+
* `SOME_VAR=''` will throw an error.
|
|
48
|
+
*/
|
|
49
|
+
emptyStringAsUndefined: true,
|
|
50
|
+
});
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { createEnv } from "@t3-oss/env-nextjs";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
|
|
4
|
+
export const env = createEnv({
|
|
5
|
+
/**
|
|
6
|
+
* Specify your server-side environment variables schema here. This way you can ensure the app
|
|
7
|
+
* isn't built with invalid env vars.
|
|
8
|
+
*/
|
|
9
|
+
server: {
|
|
10
|
+
BETTER_AUTH_SECRET:
|
|
11
|
+
process.env.NODE_ENV === "production" ? z.string() : z.string().optional(),
|
|
12
|
+
BETTER_AUTH_GITHUB_CLIENT_ID: z.string(),
|
|
13
|
+
BETTER_AUTH_GITHUB_CLIENT_SECRET: z.string(),
|
|
14
|
+
NODE_ENV: z
|
|
15
|
+
.enum(["development", "test", "production"])
|
|
16
|
+
.default("development"),
|
|
17
|
+
},
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Specify your client-side environment variables schema here. This way you can ensure the app
|
|
21
|
+
* isn't built with invalid env vars. To expose them to the client, prefix them with
|
|
22
|
+
* `NEXT_PUBLIC_`.
|
|
23
|
+
*/
|
|
24
|
+
client: {
|
|
25
|
+
// NEXT_PUBLIC_CLIENTVAR: z.string(),
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* You can't destruct `process.env` as a regular object in the Next.js edge runtimes (e.g.
|
|
30
|
+
* middlewares) or client-side so we need to destruct manually.
|
|
31
|
+
*/
|
|
32
|
+
runtimeEnv: {
|
|
33
|
+
BETTER_AUTH_SECRET: process.env.BETTER_AUTH_SECRET,
|
|
34
|
+
BETTER_AUTH_GITHUB_CLIENT_ID: process.env.BETTER_AUTH_GITHUB_CLIENT_ID,
|
|
35
|
+
BETTER_AUTH_GITHUB_CLIENT_SECRET: process.env.BETTER_AUTH_GITHUB_CLIENT_SECRET,
|
|
36
|
+
NODE_ENV: process.env.NODE_ENV,
|
|
37
|
+
// NEXT_PUBLIC_CLIENTVAR: process.env.NEXT_PUBLIC_CLIENTVAR,
|
|
38
|
+
},
|
|
39
|
+
/**
|
|
40
|
+
* Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially
|
|
41
|
+
* useful for Docker builds.
|
|
42
|
+
*/
|
|
43
|
+
skipValidation: !!process.env.SKIP_ENV_VALIDATION,
|
|
44
|
+
/**
|
|
45
|
+
* Makes it so that empty strings are treated as undefined. `SOME_VAR: z.string()` and
|
|
46
|
+
* `SOME_VAR=''` will throw an error.
|
|
47
|
+
*/
|
|
48
|
+
emptyStringAsUndefined: true,
|
|
49
|
+
});
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { createEnv } from "@t3-oss/env-nextjs";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
|
|
4
|
+
export const env = createEnv({
|
|
5
|
+
/**
|
|
6
|
+
* Specify your server-side environment variables schema here. This way you can ensure the app
|
|
7
|
+
* isn't built with invalid env vars.
|
|
8
|
+
*/
|
|
9
|
+
server: {
|
|
10
|
+
DATABASE_URL: z
|
|
11
|
+
.string()
|
|
12
|
+
.url()
|
|
13
|
+
.refine(
|
|
14
|
+
(str) => !str.includes("YOUR_MYSQL_URL_HERE"),
|
|
15
|
+
"You forgot to change the default URL"
|
|
16
|
+
),
|
|
17
|
+
NODE_ENV: z
|
|
18
|
+
.enum(["development", "test", "production"])
|
|
19
|
+
.default("development"),
|
|
20
|
+
},
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Specify your client-side environment variables schema here. This way you can ensure the app
|
|
24
|
+
* isn't built with invalid env vars. To expose them to the client, prefix them with
|
|
25
|
+
* `NEXT_PUBLIC_`.
|
|
26
|
+
*/
|
|
27
|
+
client: {
|
|
28
|
+
// NEXT_PUBLIC_CLIENTVAR: z.string(),
|
|
29
|
+
},
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* You can't destruct `process.env` as a regular object in the Next.js edge runtimes (e.g.
|
|
33
|
+
* middlewares) or client-side so we need to destruct manually.
|
|
34
|
+
*/
|
|
35
|
+
runtimeEnv: {
|
|
36
|
+
DATABASE_URL: process.env.DATABASE_URL,
|
|
37
|
+
NODE_ENV: process.env.NODE_ENV,
|
|
38
|
+
// NEXT_PUBLIC_CLIENTVAR: process.env.NEXT_PUBLIC_CLIENTVAR,
|
|
39
|
+
},
|
|
40
|
+
/**
|
|
41
|
+
* Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially
|
|
42
|
+
* useful for Docker builds.
|
|
43
|
+
*/
|
|
44
|
+
skipValidation: !!process.env.SKIP_ENV_VALIDATION,
|
|
45
|
+
/**
|
|
46
|
+
* Makes it so that empty strings are treated as undefined. `SOME_VAR: z.string()` and
|
|
47
|
+
* `SOME_VAR=''` will throw an error.
|
|
48
|
+
*/
|
|
49
|
+
emptyStringAsUndefined: true,
|
|
50
|
+
});
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { createEnv } from "@t3-oss/env-nextjs";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
|
|
4
|
+
export const env = createEnv({
|
|
5
|
+
/**
|
|
6
|
+
* Specify your server-side environment variables schema here. This way you can ensure the app
|
|
7
|
+
* isn't built with invalid env vars.
|
|
8
|
+
*/
|
|
9
|
+
server: {
|
|
10
|
+
DATABASE_URL: z.string().url(),
|
|
11
|
+
NODE_ENV: z
|
|
12
|
+
.enum(["development", "test", "production"])
|
|
13
|
+
.default("development"),
|
|
14
|
+
},
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Specify your client-side environment variables schema here. This way you can ensure the app
|
|
18
|
+
* isn't built with invalid env vars. To expose them to the client, prefix them with
|
|
19
|
+
* `NEXT_PUBLIC_`.
|
|
20
|
+
*/
|
|
21
|
+
client: {
|
|
22
|
+
// NEXT_PUBLIC_CLIENTVAR: z.string(),
|
|
23
|
+
},
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* You can't destruct `process.env` as a regular object in the Next.js edge runtimes (e.g.
|
|
27
|
+
* middlewares) or client-side so we need to destruct manually.
|
|
28
|
+
*/
|
|
29
|
+
runtimeEnv: {
|
|
30
|
+
DATABASE_URL: process.env.DATABASE_URL,
|
|
31
|
+
NODE_ENV: process.env.NODE_ENV,
|
|
32
|
+
// NEXT_PUBLIC_CLIENTVAR: process.env.NEXT_PUBLIC_CLIENTVAR,
|
|
33
|
+
},
|
|
34
|
+
/**
|
|
35
|
+
* Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially
|
|
36
|
+
* useful for Docker builds.
|
|
37
|
+
*/
|
|
38
|
+
skipValidation: !!process.env.SKIP_ENV_VALIDATION,
|
|
39
|
+
/**
|
|
40
|
+
* Makes it so that empty strings are treated as undefined. `SOME_VAR: z.string()` and
|
|
41
|
+
* `SOME_VAR=''` will throw an error.
|
|
42
|
+
*/
|
|
43
|
+
emptyStringAsUndefined: true,
|
|
44
|
+
});
|