spinup-ts 0.1.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.
Files changed (138) hide show
  1. package/README.md +82 -0
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +96 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/prompts.d.ts +17 -0
  7. package/dist/prompts.d.ts.map +1 -0
  8. package/dist/prompts.js +264 -0
  9. package/dist/prompts.js.map +1 -0
  10. package/dist/scaffold.d.ts +5 -0
  11. package/dist/scaffold.d.ts.map +1 -0
  12. package/dist/scaffold.js +128 -0
  13. package/dist/scaffold.js.map +1 -0
  14. package/dist/transforms/devcontainer.d.ts +3 -0
  15. package/dist/transforms/devcontainer.d.ts.map +1 -0
  16. package/dist/transforms/devcontainer.js +8 -0
  17. package/dist/transforms/devcontainer.js.map +1 -0
  18. package/dist/transforms/docker.d.ts +3 -0
  19. package/dist/transforms/docker.d.ts.map +1 -0
  20. package/dist/transforms/docker.js +11 -0
  21. package/dist/transforms/docker.js.map +1 -0
  22. package/dist/transforms/docs.d.ts +3 -0
  23. package/dist/transforms/docs.d.ts.map +1 -0
  24. package/dist/transforms/docs.js +22 -0
  25. package/dist/transforms/docs.js.map +1 -0
  26. package/dist/transforms/documentation.d.ts +3 -0
  27. package/dist/transforms/documentation.d.ts.map +1 -0
  28. package/dist/transforms/documentation.js +37 -0
  29. package/dist/transforms/documentation.js.map +1 -0
  30. package/dist/transforms/github-actions.d.ts +3 -0
  31. package/dist/transforms/github-actions.d.ts.map +1 -0
  32. package/dist/transforms/github-actions.js +48 -0
  33. package/dist/transforms/github-actions.js.map +1 -0
  34. package/dist/transforms/index.d.ts +3 -0
  35. package/dist/transforms/index.d.ts.map +1 -0
  36. package/dist/transforms/index.js +24 -0
  37. package/dist/transforms/index.js.map +1 -0
  38. package/dist/transforms/license.d.ts +3 -0
  39. package/dist/transforms/license.d.ts.map +1 -0
  40. package/dist/transforms/license.js +19 -0
  41. package/dist/transforms/license.js.map +1 -0
  42. package/dist/transforms/npm-publish.d.ts +3 -0
  43. package/dist/transforms/npm-publish.d.ts.map +1 -0
  44. package/dist/transforms/npm-publish.js +15 -0
  45. package/dist/transforms/npm-publish.js.map +1 -0
  46. package/dist/transforms/package-manager.d.ts +3 -0
  47. package/dist/transforms/package-manager.d.ts.map +1 -0
  48. package/dist/transforms/package-manager.js +31 -0
  49. package/dist/transforms/package-manager.js.map +1 -0
  50. package/dist/types.d.ts +116 -0
  51. package/dist/types.d.ts.map +1 -0
  52. package/dist/types.js +52 -0
  53. package/dist/types.js.map +1 -0
  54. package/dist/update.d.ts +2 -0
  55. package/dist/update.d.ts.map +1 -0
  56. package/dist/update.js +207 -0
  57. package/dist/update.js.map +1 -0
  58. package/package.json +94 -0
  59. package/template/.commitlintrc.json +3 -0
  60. package/template/.devcontainer/.zshrc +159 -0
  61. package/template/.devcontainer/DISCOVER-DEPS.md +109 -0
  62. package/template/.devcontainer/README.md +223 -0
  63. package/template/.devcontainer/SETUP.md +191 -0
  64. package/template/.devcontainer/TOOLS.md +215 -0
  65. package/template/.devcontainer/devcontainer.json +106 -0
  66. package/template/.devcontainer/scripts/init-project.sh +167 -0
  67. package/template/.editorconfig +12 -0
  68. package/template/.github/.release-please-manifest.json +3 -0
  69. package/template/.github/ISSUE_TEMPLATE/bug_report.md +21 -0
  70. package/template/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
  71. package/template/.github/PULL_REQUEST_TEMPLATE.md +13 -0
  72. package/template/.github/actions/setup-node-env/action.yml +20 -0
  73. package/template/.github/dependabot.yml +17 -0
  74. package/template/.github/labeler.yml +17 -0
  75. package/template/.github/release-please-config.json +7 -0
  76. package/template/.github/workflows/ci.yml +95 -0
  77. package/template/.github/workflows/codeql.yml +31 -0
  78. package/template/.github/workflows/labeler.yml +18 -0
  79. package/template/.github/workflows/release-please.yml +72 -0
  80. package/template/.github/workflows/stale.yml +32 -0
  81. package/template/.husky/commit-msg +1 -0
  82. package/template/.husky/pre-commit +1 -0
  83. package/template/.nvmrc +1 -0
  84. package/template/.vscode/extensions.json +11 -0
  85. package/template/.vscode/settings.json +12 -0
  86. package/template/AGENTS.md +1 -0
  87. package/template/CHANGELOG.md +11 -0
  88. package/template/CLAUDE.md +0 -0
  89. package/template/CONTRIBUTING.md +22 -0
  90. package/template/Dockerfile +21 -0
  91. package/template/LICENSE.Apache-2.0 +17 -0
  92. package/template/LICENSE.BSD-3-Clause +28 -0
  93. package/template/LICENSE.GPL-3.0 +17 -0
  94. package/template/LICENSE.ISC +15 -0
  95. package/template/LICENSE.MIT +21 -0
  96. package/template/README.md +62 -0
  97. package/template/biome.json +49 -0
  98. package/template/docker-compose.yml +7 -0
  99. package/template/docs/architecture/api-layer.md +44 -0
  100. package/template/docs/architecture/constitution.md +24 -0
  101. package/template/docs/architecture/data-model.md +24 -0
  102. package/template/docs/architecture/index.md +15 -0
  103. package/template/docs/architecture/project.md +24 -0
  104. package/template/docs/architecture/quality-checks.md +28 -0
  105. package/template/docs/architecture/testing-plan.md +35 -0
  106. package/template/docs/architecture/ui.md +37 -0
  107. package/template/docs/changelog.md +9 -0
  108. package/template/docs/contributing.md +46 -0
  109. package/template/docs/developer-guide/architecture.md +22 -0
  110. package/template/docs/developer-guide/contributing.md +30 -0
  111. package/template/docs/developer-guide/data-model.md +25 -0
  112. package/template/docs/developer-guide/index.md +12 -0
  113. package/template/docs/developer-guide/testing.md +40 -0
  114. package/template/docs/examples.md +37 -0
  115. package/template/docs/getting-started.md +42 -0
  116. package/template/docs/installation.md +45 -0
  117. package/template/docs/intro.md +60 -0
  118. package/template/docs/post-mortems/.gitkeep +0 -0
  119. package/template/docs/reference/cli.md +32 -0
  120. package/template/docs/reference/configuration.md +33 -0
  121. package/template/docs/reference/hooks.md +27 -0
  122. package/template/docs/research/competitor-analysis.md +21 -0
  123. package/template/docs/research/real-world-demand.md +21 -0
  124. package/template/docs/user-guide/configuration.md +32 -0
  125. package/template/docs/user-guide/features.md +21 -0
  126. package/template/docs/user-guide/how-it-works.md +29 -0
  127. package/template/docs/user-guide/index.md +11 -0
  128. package/template/docusaurus.config.ts +93 -0
  129. package/template/eslint.config.mjs +66 -0
  130. package/template/justfile +51 -0
  131. package/template/package.json +88 -0
  132. package/template/pnpm-workspace.yaml +8 -0
  133. package/template/sidebars.ts +72 -0
  134. package/template/src/index.ts +3 -0
  135. package/template/static/img/logo.svg +4 -0
  136. package/template/tests/index.test.ts +8 -0
  137. package/template/tsconfig.json +23 -0
  138. package/template/vitest.config.ts +19 -0
@@ -0,0 +1,51 @@
1
+ # List available recipes
2
+ default:
3
+ @just --list
4
+
5
+ # Install dependencies and set up hooks
6
+ install:
7
+ pnpm install
8
+
9
+ # Run all quality checks
10
+ check:
11
+ pnpm typecheck && pnpm lint
12
+
13
+ # Run tests
14
+ test:
15
+ pnpm test
16
+
17
+ # Run tests with coverage
18
+ test-coverage:
19
+ pnpm test:coverage
20
+
21
+ # Build the project
22
+ build:
23
+ pnpm build
24
+
25
+ # Clean build output
26
+ clean:
27
+ rm -rf dist coverage
28
+
29
+ # Build and publish to npm
30
+ release: build
31
+ pnpm publish
32
+
33
+ # Start docs dev server
34
+ docs:
35
+ pnpm docs:start
36
+
37
+ # Build docs
38
+ docs-build:
39
+ pnpm docs:build
40
+
41
+ # Serve built docs locally
42
+ docs-serve:
43
+ pnpm docs:serve
44
+
45
+ # Clear Docusaurus cache
46
+ docs-clear:
47
+ pnpm docs:clear
48
+
49
+ # Check for unused dependencies
50
+ deps:
51
+ pnpm depcheck
@@ -0,0 +1,88 @@
1
+ {
2
+ "name": "__PROJECT_NAME__",
3
+ "version": "0.1.0",
4
+ "description": "__DESCRIPTION__",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.js",
11
+ "types": "./dist/index.d.ts"
12
+ }
13
+ },
14
+ "files": ["dist"],
15
+ "scripts": {
16
+ "build": "tsc",
17
+ "dev": "tsx src/index.ts",
18
+ "test": "vitest",
19
+ "test:watch": "vitest --watch",
20
+ "test:coverage": "vitest --coverage",
21
+ "lint": "biome ci . && eslint . --max-warnings=0",
22
+ "lint:fix": "biome check --write . && eslint --fix .",
23
+ "format": "biome format --write .",
24
+ "typecheck": "tsc --noEmit",
25
+ "check": "pnpm typecheck && pnpm lint",
26
+ "commit": "cz",
27
+ "depcheck": "depcheck",
28
+ "docs:start": "docusaurus start",
29
+ "docs:build": "docusaurus build",
30
+ "docs:serve": "docusaurus serve",
31
+ "docs:clear": "docusaurus clear",
32
+ "prepare": "husky",
33
+ "prepublishOnly": "pnpm build"
34
+ },
35
+ "devDependencies": {
36
+ "@biomejs/biome": "^1.9.4",
37
+ "@types/node": "^22.0.0",
38
+ "@vitest/coverage-v8": "^3.0.0",
39
+ "depcheck": "^1.4.7",
40
+ "eslint": "^9.28.0",
41
+ "eslint-plugin-import-x": "^4.12.2",
42
+ "eslint-plugin-no-secrets": "^1.1.2",
43
+ "eslint-plugin-sonarjs": "^3.0.2",
44
+ "eslint-plugin-unicorn": "^56.0.1",
45
+ "@commitlint/cli": "^21.0.2",
46
+ "@commitlint/config-conventional": "^21.0.2",
47
+ "commitizen": "^4.3.1",
48
+ "cz-conventional-changelog": "^3.3.0",
49
+ "husky": "^9.1.7",
50
+ "lint-staged": "^15.5.2",
51
+ "tsx": "^4.19.2",
52
+ "typescript": "^5.8.3",
53
+ "typescript-eslint": "^8.32.1",
54
+ "@docusaurus/core": "^3.8.0",
55
+ "@docusaurus/preset-classic": "^3.8.0",
56
+ "@docusaurus/types": "^3.8.0",
57
+ "docusaurus-plugin-llms": "^0.4.0",
58
+ "docusaurus-plugin-typedoc": "^1.2.0",
59
+ "react": "^18.0.0",
60
+ "react-dom": "^18.0.0",
61
+ "typedoc": "^0.27.0",
62
+ "vitest": "^3.0.0"
63
+ },
64
+ "__lint-staged__": {
65
+ "*.{ts,js,json,md}": ["biome check --write --no-errors-on-unmatched --files-ignore-unknown=true"],
66
+ "*.ts": ["eslint --fix --max-warnings=0 --no-warn-ignored"]
67
+ },
68
+ "author": "__AUTHOR__ <__EMAIL__>",
69
+ "license": "__LICENSE__",
70
+ "repository": {
71
+ "type": "git",
72
+ "url": "git+https://github.com/__GITHUB_HANDLE__/__PROJECT_NAME__.git"
73
+ },
74
+ "engines": {
75
+ "node": ">=__NODE_VERSION__"
76
+ },
77
+ "config": {
78
+ "commitizen": {
79
+ "path": "cz-conventional-changelog"
80
+ }
81
+ },
82
+ "pnpm": {
83
+ "onlyBuiltDependencies": ["@biomejs/biome", "core-js", "esbuild", "unrs-resolver"]
84
+ },
85
+ "depcheck": {
86
+ "ignores": ["react", "react-dom", "@docusaurus/types"]
87
+ }
88
+ }
@@ -0,0 +1,8 @@
1
+ packages:
2
+ - '.'
3
+
4
+ allowBuilds:
5
+ '@biomejs/biome': true
6
+ core-js: true
7
+ esbuild: true
8
+ unrs-resolver: true
@@ -0,0 +1,72 @@
1
+ const sidebars = {
2
+ mainSidebar: [
3
+ {
4
+ type: 'category',
5
+ label: 'Getting Started',
6
+ collapsed: false,
7
+ items: ['intro', 'installation', 'getting-started', 'examples'],
8
+ },
9
+ {
10
+ type: 'category',
11
+ label: 'User Guide',
12
+ items: [
13
+ 'user-guide/index',
14
+ 'user-guide/how-it-works',
15
+ 'user-guide/configuration',
16
+ 'user-guide/features',
17
+ ],
18
+ },
19
+ {
20
+ type: 'category',
21
+ label: 'Developer Guide',
22
+ items: [
23
+ 'developer-guide/index',
24
+ 'developer-guide/data-model',
25
+ 'developer-guide/testing',
26
+ 'developer-guide/contributing',
27
+ 'developer-guide/architecture',
28
+ ],
29
+ },
30
+ {
31
+ type: 'category',
32
+ label: 'Architecture',
33
+ items: [
34
+ 'architecture/index',
35
+ 'architecture/constitution',
36
+ 'architecture/data-model',
37
+ 'architecture/project',
38
+ 'architecture/api-layer',
39
+ 'architecture/ui',
40
+ 'architecture/quality-checks',
41
+ 'architecture/testing-plan',
42
+ ],
43
+ },
44
+ {
45
+ type: 'category',
46
+ label: 'Reference',
47
+ items: ['reference/cli', 'reference/configuration', 'reference/hooks'],
48
+ },
49
+ {
50
+ type: 'autogenerated',
51
+ dirName: 'api',
52
+ },
53
+ {
54
+ type: 'category',
55
+ label: 'Research',
56
+ items: ['research/real-world-demand', 'research/competitor-analysis'],
57
+ },
58
+ {
59
+ type: 'category',
60
+ label: 'Post-mortems',
61
+ link: {
62
+ type: 'generated-index',
63
+ title: 'Post-mortems',
64
+ description: 'Retrospectives and incident analyses.',
65
+ },
66
+ items: [{ type: 'autogenerated', dirName: 'post-mortems' }],
67
+ },
68
+ 'changelog',
69
+ ],
70
+ };
71
+
72
+ export default sidebars;
@@ -0,0 +1,3 @@
1
+ export function greet(name: string): string {
2
+ return `Hello, ${name}!`;
3
+ }
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 200 200">
2
+ <rect width="200" height="200" rx="24" fill="#3578e5"/>
3
+ <text x="100" y="138" font-family="monospace,sans-serif" font-size="96" font-weight="bold" fill="white" text-anchor="middle">TS</text>
4
+ </svg>
@@ -0,0 +1,8 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { greet } from '@/index.js';
3
+
4
+ describe('greet', () => {
5
+ it('returns greeting with name', () => {
6
+ expect(greet('world')).toBe('Hello, world!');
7
+ });
8
+ });
@@ -0,0 +1,23 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "NodeNext",
5
+ "moduleResolution": "NodeNext",
6
+ "outDir": "dist",
7
+ "rootDir": "src",
8
+ "strict": true,
9
+ "noUncheckedIndexedAccess": true,
10
+ "exactOptionalPropertyTypes": true,
11
+ "declaration": true,
12
+ "declarationMap": true,
13
+ "sourceMap": true,
14
+ "esModuleInterop": true,
15
+ "forceConsistentCasingInFileNames": true,
16
+ "skipLibCheck": true,
17
+ "paths": {
18
+ "@/*": ["./src/*"]
19
+ }
20
+ },
21
+ "include": ["src"],
22
+ "exclude": ["node_modules", "dist"]
23
+ }
@@ -0,0 +1,19 @@
1
+ import path from 'node:path';
2
+ import { defineConfig } from 'vitest/config';
3
+
4
+ export default defineConfig({
5
+ resolve: {
6
+ alias: {
7
+ '@': path.resolve(import.meta.dirname, 'src'),
8
+ },
9
+ },
10
+ test: {
11
+ globals: true,
12
+ environment: 'node',
13
+ coverage: {
14
+ provider: 'v8',
15
+ reporter: ['text', 'lcov', 'html'],
16
+ exclude: ['node_modules', 'dist', 'vitest.config.ts'],
17
+ },
18
+ },
19
+ });