openkitt 0.1.2

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 (234) hide show
  1. package/README.md +236 -0
  2. package/dist/ast/engine.d.ts +26 -0
  3. package/dist/ast/engine.js +130 -0
  4. package/dist/ast/engine.js.map +1 -0
  5. package/dist/ast/operations.d.ts +13 -0
  6. package/dist/ast/operations.js +329 -0
  7. package/dist/ast/operations.js.map +1 -0
  8. package/dist/ast/validator.d.ts +19 -0
  9. package/dist/ast/validator.js +281 -0
  10. package/dist/ast/validator.js.map +1 -0
  11. package/dist/audit/logger.d.ts +14 -0
  12. package/dist/audit/logger.js +102 -0
  13. package/dist/audit/logger.js.map +1 -0
  14. package/dist/cli.d.ts +4 -0
  15. package/dist/cli.js +401 -0
  16. package/dist/cli.js.map +1 -0
  17. package/dist/commands/create-confirm.d.ts +13 -0
  18. package/dist/commands/create-confirm.js +38 -0
  19. package/dist/commands/create-confirm.js.map +1 -0
  20. package/dist/commands/create-infra.d.ts +20 -0
  21. package/dist/commands/create-infra.js +63 -0
  22. package/dist/commands/create-infra.js.map +1 -0
  23. package/dist/commands/create-manifest.d.ts +10 -0
  24. package/dist/commands/create-manifest.js +21 -0
  25. package/dist/commands/create-manifest.js.map +1 -0
  26. package/dist/commands/create-packages.d.ts +17 -0
  27. package/dist/commands/create-packages.js +69 -0
  28. package/dist/commands/create-packages.js.map +1 -0
  29. package/dist/commands/create-pipeline.d.ts +15 -0
  30. package/dist/commands/create-pipeline.js +57 -0
  31. package/dist/commands/create-pipeline.js.map +1 -0
  32. package/dist/commands/create-scaffolding.d.ts +12 -0
  33. package/dist/commands/create-scaffolding.js +137 -0
  34. package/dist/commands/create-scaffolding.js.map +1 -0
  35. package/dist/commands/create-staging.d.ts +13 -0
  36. package/dist/commands/create-staging.js +17 -0
  37. package/dist/commands/create-staging.js.map +1 -0
  38. package/dist/commands/create-transforms.d.ts +10 -0
  39. package/dist/commands/create-transforms.js +33 -0
  40. package/dist/commands/create-transforms.js.map +1 -0
  41. package/dist/commands/create.d.ts +2 -0
  42. package/dist/commands/create.js +155 -0
  43. package/dist/commands/create.js.map +1 -0
  44. package/dist/commands/delete.d.ts +2 -0
  45. package/dist/commands/delete.js +83 -0
  46. package/dist/commands/delete.js.map +1 -0
  47. package/dist/commands/deploy.d.ts +5 -0
  48. package/dist/commands/deploy.js +371 -0
  49. package/dist/commands/deploy.js.map +1 -0
  50. package/dist/commands/domain.d.ts +2 -0
  51. package/dist/commands/domain.js +90 -0
  52. package/dist/commands/domain.js.map +1 -0
  53. package/dist/commands/env.d.ts +2 -0
  54. package/dist/commands/env.js +153 -0
  55. package/dist/commands/env.js.map +1 -0
  56. package/dist/commands/help.d.ts +3 -0
  57. package/dist/commands/help.js +107 -0
  58. package/dist/commands/help.js.map +1 -0
  59. package/dist/commands/init.d.ts +2 -0
  60. package/dist/commands/init.js +217 -0
  61. package/dist/commands/init.js.map +1 -0
  62. package/dist/commands/list.d.ts +2 -0
  63. package/dist/commands/list.js +142 -0
  64. package/dist/commands/list.js.map +1 -0
  65. package/dist/commands/login.d.ts +2 -0
  66. package/dist/commands/login.js +235 -0
  67. package/dist/commands/login.js.map +1 -0
  68. package/dist/commands/logs.d.ts +2 -0
  69. package/dist/commands/logs.js +90 -0
  70. package/dist/commands/logs.js.map +1 -0
  71. package/dist/commands/publish.d.ts +2 -0
  72. package/dist/commands/publish.js +113 -0
  73. package/dist/commands/publish.js.map +1 -0
  74. package/dist/commands/run.d.ts +14 -0
  75. package/dist/commands/run.js +196 -0
  76. package/dist/commands/run.js.map +1 -0
  77. package/dist/commands/settings.d.ts +3 -0
  78. package/dist/commands/settings.js +278 -0
  79. package/dist/commands/settings.js.map +1 -0
  80. package/dist/commands/status.d.ts +2 -0
  81. package/dist/commands/status.js +88 -0
  82. package/dist/commands/status.js.map +1 -0
  83. package/dist/commands/versions.d.ts +2 -0
  84. package/dist/commands/versions.js +242 -0
  85. package/dist/commands/versions.js.map +1 -0
  86. package/dist/credentials/config.d.ts +12 -0
  87. package/dist/credentials/config.js +196 -0
  88. package/dist/credentials/config.js.map +1 -0
  89. package/dist/credentials/encryption.d.ts +9 -0
  90. package/dist/credentials/encryption.js +100 -0
  91. package/dist/credentials/encryption.js.map +1 -0
  92. package/dist/credentials/keychain.d.ts +8 -0
  93. package/dist/credentials/keychain.js +236 -0
  94. package/dist/credentials/keychain.js.map +1 -0
  95. package/dist/credentials/railway.d.ts +9 -0
  96. package/dist/credentials/railway.js +69 -0
  97. package/dist/credentials/railway.js.map +1 -0
  98. package/dist/llm/client.d.ts +59 -0
  99. package/dist/llm/client.js +530 -0
  100. package/dist/llm/client.js.map +1 -0
  101. package/dist/llm/operations.d.ts +39 -0
  102. package/dist/llm/operations.js +131 -0
  103. package/dist/llm/operations.js.map +1 -0
  104. package/dist/llm/rate-limiter.d.ts +20 -0
  105. package/dist/llm/rate-limiter.js +57 -0
  106. package/dist/llm/rate-limiter.js.map +1 -0
  107. package/dist/llm/scaffolding.d.ts +51 -0
  108. package/dist/llm/scaffolding.js +118 -0
  109. package/dist/llm/scaffolding.js.map +1 -0
  110. package/dist/manifest/drift.d.ts +6 -0
  111. package/dist/manifest/drift.js +45 -0
  112. package/dist/manifest/drift.js.map +1 -0
  113. package/dist/manifest/reader.d.ts +12 -0
  114. package/dist/manifest/reader.js +99 -0
  115. package/dist/manifest/reader.js.map +1 -0
  116. package/dist/manifest/types.d.ts +31 -0
  117. package/dist/manifest/types.js +2 -0
  118. package/dist/manifest/types.js.map +1 -0
  119. package/dist/manifest/writer.d.ts +9 -0
  120. package/dist/manifest/writer.js +142 -0
  121. package/dist/manifest/writer.js.map +1 -0
  122. package/dist/mcp/client.d.ts +21 -0
  123. package/dist/mcp/client.js +213 -0
  124. package/dist/mcp/client.js.map +1 -0
  125. package/dist/mcp/lifecycle.d.ts +12 -0
  126. package/dist/mcp/lifecycle.js +149 -0
  127. package/dist/mcp/lifecycle.js.map +1 -0
  128. package/dist/mcp/project-guard.d.ts +14 -0
  129. package/dist/mcp/project-guard.js +27 -0
  130. package/dist/mcp/project-guard.js.map +1 -0
  131. package/dist/prompts/operations.d.ts +1 -0
  132. package/dist/prompts/operations.js +160 -0
  133. package/dist/prompts/operations.js.map +1 -0
  134. package/dist/prompts/scaffolding.d.ts +1 -0
  135. package/dist/prompts/scaffolding.js +331 -0
  136. package/dist/prompts/scaffolding.js.map +1 -0
  137. package/dist/prompts/version.d.ts +2 -0
  138. package/dist/prompts/version.js +3 -0
  139. package/dist/prompts/version.js.map +1 -0
  140. package/dist/sandbox/command-allowlist.d.ts +6 -0
  141. package/dist/sandbox/command-allowlist.js +103 -0
  142. package/dist/sandbox/command-allowlist.js.map +1 -0
  143. package/dist/sandbox/package-allowlist.d.ts +6 -0
  144. package/dist/sandbox/package-allowlist.js +49 -0
  145. package/dist/sandbox/package-allowlist.js.map +1 -0
  146. package/dist/sandbox/scanner.d.ts +25 -0
  147. package/dist/sandbox/scanner.js +196 -0
  148. package/dist/sandbox/scanner.js.map +1 -0
  149. package/dist/sandbox/staging.d.ts +12 -0
  150. package/dist/sandbox/staging.js +107 -0
  151. package/dist/sandbox/staging.js.map +1 -0
  152. package/dist/scaffold/frameworks/express.d.ts +3 -0
  153. package/dist/scaffold/frameworks/express.js +242 -0
  154. package/dist/scaffold/frameworks/express.js.map +1 -0
  155. package/dist/scaffold/frameworks/hono.d.ts +3 -0
  156. package/dist/scaffold/frameworks/hono.js +238 -0
  157. package/dist/scaffold/frameworks/hono.js.map +1 -0
  158. package/dist/scaffold/frameworks/nextjs.d.ts +3 -0
  159. package/dist/scaffold/frameworks/nextjs.js +447 -0
  160. package/dist/scaffold/frameworks/nextjs.js.map +1 -0
  161. package/dist/scaffold/frameworks/tanstack-start.d.ts +3 -0
  162. package/dist/scaffold/frameworks/tanstack-start.js +280 -0
  163. package/dist/scaffold/frameworks/tanstack-start.js.map +1 -0
  164. package/dist/scaffold/index.d.ts +4 -0
  165. package/dist/scaffold/index.js +138 -0
  166. package/dist/scaffold/index.js.map +1 -0
  167. package/dist/scaffold/integrations/backend.d.ts +3 -0
  168. package/dist/scaffold/integrations/backend.js +403 -0
  169. package/dist/scaffold/integrations/backend.js.map +1 -0
  170. package/dist/scaffold/integrations/posthog.d.ts +2 -0
  171. package/dist/scaffold/integrations/posthog.js +21 -0
  172. package/dist/scaffold/integrations/posthog.js.map +1 -0
  173. package/dist/scaffold/integrations/sentry.d.ts +2 -0
  174. package/dist/scaffold/integrations/sentry.js +16 -0
  175. package/dist/scaffold/integrations/sentry.js.map +1 -0
  176. package/dist/scaffold/integrations/storybook.d.ts +2 -0
  177. package/dist/scaffold/integrations/storybook.js +79 -0
  178. package/dist/scaffold/integrations/storybook.js.map +1 -0
  179. package/dist/scaffold/integrations/vitest.d.ts +2 -0
  180. package/dist/scaffold/integrations/vitest.js +37 -0
  181. package/dist/scaffold/integrations/vitest.js.map +1 -0
  182. package/dist/scaffold/package-builder.d.ts +3 -0
  183. package/dist/scaffold/package-builder.js +136 -0
  184. package/dist/scaffold/package-builder.js.map +1 -0
  185. package/dist/scaffold/packages.d.ts +4 -0
  186. package/dist/scaffold/packages.js +144 -0
  187. package/dist/scaffold/packages.js.map +1 -0
  188. package/dist/scaffold/types.d.ts +20 -0
  189. package/dist/scaffold/types.js +2 -0
  190. package/dist/scaffold/types.js.map +1 -0
  191. package/dist/types.d.ts +11 -0
  192. package/dist/types.js +2 -0
  193. package/dist/types.js.map +1 -0
  194. package/dist/utils/auth-guard.d.ts +5 -0
  195. package/dist/utils/auth-guard.js +52 -0
  196. package/dist/utils/auth-guard.js.map +1 -0
  197. package/dist/utils/cleanup.d.ts +2 -0
  198. package/dist/utils/cleanup.js +37 -0
  199. package/dist/utils/cleanup.js.map +1 -0
  200. package/dist/utils/constraints.d.ts +11 -0
  201. package/dist/utils/constraints.js +162 -0
  202. package/dist/utils/constraints.js.map +1 -0
  203. package/dist/utils/display.d.ts +32 -0
  204. package/dist/utils/display.js +103 -0
  205. package/dist/utils/display.js.map +1 -0
  206. package/dist/utils/global-config.d.ts +8 -0
  207. package/dist/utils/global-config.js +39 -0
  208. package/dist/utils/global-config.js.map +1 -0
  209. package/dist/utils/pm.d.ts +4 -0
  210. package/dist/utils/pm.js +40 -0
  211. package/dist/utils/pm.js.map +1 -0
  212. package/dist/utils/prerequisites.d.ts +9 -0
  213. package/dist/utils/prerequisites.js +96 -0
  214. package/dist/utils/prerequisites.js.map +1 -0
  215. package/dist/utils/prompts.d.ts +25 -0
  216. package/dist/utils/prompts.js +148 -0
  217. package/dist/utils/prompts.js.map +1 -0
  218. package/dist/utils/validation.d.ts +9 -0
  219. package/dist/utils/validation.js +38 -0
  220. package/dist/utils/validation.js.map +1 -0
  221. package/dist/versions/compat.d.ts +13 -0
  222. package/dist/versions/compat.js +127 -0
  223. package/dist/versions/compat.js.map +1 -0
  224. package/dist/versions/integrity.d.ts +9 -0
  225. package/dist/versions/integrity.js +60 -0
  226. package/dist/versions/integrity.js.map +1 -0
  227. package/dist/versions/parser.d.ts +13 -0
  228. package/dist/versions/parser.js +106 -0
  229. package/dist/versions/parser.js.map +1 -0
  230. package/dist/versions/registry.d.ts +30 -0
  231. package/dist/versions/registry.js +165 -0
  232. package/dist/versions/registry.js.map +1 -0
  233. package/package.json +58 -0
  234. package/scripts/publish.sh +254 -0
@@ -0,0 +1,447 @@
1
+ function v(versions, key, fallback) {
2
+ return versions[key] ?? fallback;
3
+ }
4
+ export function buildNextjsPackageJson(opts) {
5
+ const { appName, integrations, versions, workspaceName } = opts;
6
+ const nextVersion = v(versions, 'Next.js', '15.2.0');
7
+ const reactVersion = v(versions, 'react', '19.0.0');
8
+ const typescriptVersion = v(versions, 'typescript', '5.7.3');
9
+ const typesNodeVersion = v(versions, '@types/node', '22.0.0');
10
+ const typesReactVersion = v(versions, '@types/react', '19.0.0');
11
+ const typesReactDomVersion = v(versions, '@types/react-dom', '19.0.0');
12
+ const eslintVersion = v(versions, 'eslint', '9.0.0');
13
+ const eslintConfigNextVersion = v(versions, 'eslint-config-next', nextVersion);
14
+ const dependencies = {
15
+ next: nextVersion,
16
+ react: reactVersion,
17
+ 'react-dom': reactVersion,
18
+ };
19
+ const devDependencies = {
20
+ typescript: typescriptVersion,
21
+ '@types/node': typesNodeVersion,
22
+ '@types/react': typesReactVersion,
23
+ '@types/react-dom': typesReactDomVersion,
24
+ eslint: eslintVersion,
25
+ 'eslint-config-next': eslintConfigNextVersion,
26
+ };
27
+ if (integrations.includes('tailwindcss')) {
28
+ devDependencies['tailwindcss'] = v(versions, 'TailwindCSS', '4.1.0');
29
+ devDependencies['@tailwindcss/postcss'] = v(versions, '@tailwindcss/postcss', '4.1.0');
30
+ devDependencies['postcss'] = v(versions, 'postcss', '8.5.0');
31
+ }
32
+ if (integrations.includes('shadcn')) {
33
+ devDependencies['shadcn'] = v(versions, 'shadcn/ui', '3.8.5');
34
+ dependencies['class-variance-authority'] = '^0.7.0';
35
+ dependencies['clsx'] = '^2.0.0';
36
+ dependencies['tailwind-merge'] = '^2.0.0';
37
+ dependencies['lucide-react'] = '^0.400.0';
38
+ }
39
+ if (integrations.includes('sentry')) {
40
+ dependencies['@sentry/nextjs'] = v(versions, 'Sentry JS', '9.5.0');
41
+ }
42
+ if (integrations.includes('posthog')) {
43
+ dependencies['posthog-js'] = v(versions, 'PostHog JS', '1.200.0');
44
+ dependencies['posthog-node'] = '^4.0.0';
45
+ }
46
+ if (integrations.includes('vitest')) {
47
+ const vitestVersion = v(versions, 'Vitest', '4.0.18');
48
+ devDependencies['vitest'] = vitestVersion;
49
+ devDependencies['@vitest/ui'] = vitestVersion;
50
+ devDependencies['@testing-library/react'] = v(versions, '@testing-library/react', '16.0.0');
51
+ devDependencies['@testing-library/jest-dom'] = v(versions, '@testing-library/jest-dom', '6.0.0');
52
+ devDependencies['jsdom'] = '^26.0.0';
53
+ }
54
+ if (integrations.includes('drizzle')) {
55
+ dependencies['drizzle-orm'] = v(versions, 'Drizzle ORM', '0.39.0');
56
+ devDependencies['drizzle-kit'] = v(versions, 'drizzle-kit', '0.30.0');
57
+ }
58
+ if (integrations.includes('prisma')) {
59
+ dependencies['@prisma/client'] = v(versions, 'Prisma', '6.0.0');
60
+ devDependencies['prisma'] = v(versions, 'Prisma', '6.0.0');
61
+ }
62
+ if (integrations.includes('postgresql')) {
63
+ dependencies['pg'] = '^8.0.0';
64
+ devDependencies['@types/pg'] = '^8.0.0';
65
+ }
66
+ else if (integrations.includes('mysql')) {
67
+ dependencies['mysql2'] = '^3.0.0';
68
+ }
69
+ else if (integrations.includes('sqlite')) {
70
+ dependencies['better-sqlite3'] = '^11.0.0';
71
+ devDependencies['@types/better-sqlite3'] = '^7.0.0';
72
+ }
73
+ if (integrations.includes('better-auth')) {
74
+ dependencies['better-auth'] = v(versions, 'Better Auth', '1.2.0');
75
+ }
76
+ if (integrations.includes('stripe')) {
77
+ dependencies['stripe'] = v(versions, 'Stripe SDK', '17.0.0');
78
+ }
79
+ if (integrations.includes('polar')) {
80
+ dependencies['@polar-sh/sdk'] = v(versions, 'Polar SDK', '0.27.0');
81
+ }
82
+ if (integrations.includes('resend')) {
83
+ dependencies['resend'] = v(versions, 'Resend SDK', '4.0.0');
84
+ }
85
+ if (integrations.includes('bullmq')) {
86
+ dependencies['bullmq'] = v(versions, 'BullMQ', '5.0.0');
87
+ dependencies['ioredis'] = '^5.0.0';
88
+ }
89
+ else if (integrations.includes('trigger-dev')) {
90
+ dependencies['@trigger.dev/sdk'] = v(versions, 'Trigger.dev SDK', '3.0.0');
91
+ }
92
+ if (integrations.includes('playwright')) {
93
+ devDependencies['@playwright/test'] = v(versions, 'Playwright', '1.50.0');
94
+ }
95
+ if (integrations.includes('storybook')) {
96
+ const sbVersion = v(versions, 'Storybook', '8.6.0');
97
+ devDependencies['storybook'] = sbVersion;
98
+ devDependencies['@storybook/react'] = sbVersion;
99
+ devDependencies['@storybook/react-vite'] = sbVersion;
100
+ devDependencies['@storybook/addon-essentials'] = sbVersion;
101
+ devDependencies['@storybook/addon-interactions'] = sbVersion;
102
+ }
103
+ const pkg = {
104
+ name: `@${workspaceName}/${appName}`,
105
+ version: '0.0.1',
106
+ private: true,
107
+ scripts: {
108
+ dev: 'next dev',
109
+ build: 'next build',
110
+ start: 'next start',
111
+ lint: 'next lint',
112
+ typecheck: 'tsc --noEmit',
113
+ test: 'vitest run',
114
+ 'test:ui': 'vitest --ui',
115
+ ...(integrations.includes('storybook') ? { storybook: 'storybook dev -p 6006', 'build-storybook': 'storybook build' } : {}),
116
+ },
117
+ dependencies,
118
+ devDependencies,
119
+ };
120
+ return JSON.stringify(pkg, null, 2) + '\n';
121
+ }
122
+ export function buildNextjsFiles(opts) {
123
+ const { appName, integrations, workspaceName } = opts;
124
+ const base = `apps/${appName}`;
125
+ const files = [];
126
+ files.push({
127
+ path: `${base}/tsconfig.json`,
128
+ content: JSON.stringify({
129
+ compilerOptions: {
130
+ target: 'ES2017',
131
+ lib: ['dom', 'dom.iterable', 'esnext'],
132
+ allowJs: true,
133
+ skipLibCheck: true,
134
+ strict: true,
135
+ noEmit: true,
136
+ esModuleInterop: true,
137
+ module: 'esnext',
138
+ moduleResolution: 'bundler',
139
+ resolveJsonModule: true,
140
+ isolatedModules: true,
141
+ jsx: 'preserve',
142
+ incremental: true,
143
+ plugins: [{ name: 'next' }],
144
+ paths: { '@/*': ['./src/*'] },
145
+ },
146
+ include: ['next-env.d.ts', '**/*.ts', '**/*.tsx', '.next/types/**/*.ts'],
147
+ exclude: ['node_modules'],
148
+ }, null, 2) + '\n',
149
+ });
150
+ const hasSentry = integrations.includes('sentry');
151
+ if (hasSentry) {
152
+ files.push({
153
+ path: `${base}/next.config.ts`,
154
+ content: `import type { NextConfig } from 'next';
155
+ import { withSentryConfig } from '@sentry/nextjs';
156
+
157
+ const nextConfig: NextConfig = {
158
+ reactStrictMode: true,
159
+ };
160
+
161
+ export default withSentryConfig(nextConfig, {
162
+ silent: true,
163
+ org: process.env.SENTRY_ORG,
164
+ project: process.env.SENTRY_PROJECT,
165
+ });
166
+ `,
167
+ });
168
+ }
169
+ else {
170
+ files.push({
171
+ path: `${base}/next.config.ts`,
172
+ content: `import type { NextConfig } from 'next';
173
+
174
+ const nextConfig: NextConfig = {
175
+ reactStrictMode: true,
176
+ };
177
+
178
+ export default nextConfig;
179
+ `,
180
+ });
181
+ }
182
+ if (integrations.includes('tailwindcss')) {
183
+ files.push({
184
+ path: `${base}/postcss.config.mjs`,
185
+ content: `const config = {
186
+ plugins: {
187
+ '@tailwindcss/postcss': {},
188
+ },
189
+ };
190
+
191
+ export default config;
192
+ `,
193
+ });
194
+ }
195
+ if (integrations.includes('tailwindcss')) {
196
+ files.push({
197
+ path: `${base}/src/app/globals.css`,
198
+ content: `@import 'tailwindcss';
199
+ `,
200
+ });
201
+ }
202
+ else {
203
+ files.push({
204
+ path: `${base}/src/app/globals.css`,
205
+ content: `* {
206
+ box-sizing: border-box;
207
+ padding: 0;
208
+ margin: 0;
209
+ }
210
+
211
+ html,
212
+ body {
213
+ max-width: 100vw;
214
+ overflow-x: hidden;
215
+ }
216
+ `,
217
+ });
218
+ }
219
+ files.push({
220
+ path: `${base}/src/app/layout.tsx`,
221
+ content: buildRootLayout(appName, integrations),
222
+ });
223
+ files.push({
224
+ path: `${base}/src/app/page.tsx`,
225
+ content: buildHomePage(appName, workspaceName, integrations),
226
+ });
227
+ if (integrations.includes('posthog')) {
228
+ files.push(...buildPosthogFiles(base));
229
+ }
230
+ if (integrations.includes('sentry')) {
231
+ files.push(...buildSentryFiles(base));
232
+ }
233
+ if (integrations.includes('vitest')) {
234
+ files.push(...buildVitestFiles(base));
235
+ }
236
+ return files;
237
+ }
238
+ function buildRootLayout(appName, integrations) {
239
+ const hasPosthog = integrations.includes('posthog');
240
+ const hasTailwind = integrations.includes('tailwindcss');
241
+ const cssImport = hasTailwind
242
+ ? `import './globals.css';`
243
+ : `import './globals.css';`;
244
+ const posthogImport = hasPosthog
245
+ ? `import PosthogProvider from '@/providers/posthog-provider';`
246
+ : '';
247
+ const bodyContent = hasPosthog
248
+ ? ` <PosthogProvider>{children}</PosthogProvider>`
249
+ : ` {children}`;
250
+ return `import type { Metadata } from 'next';
251
+ ${cssImport}
252
+ ${posthogImport}
253
+
254
+ export const metadata: Metadata = {
255
+ title: '${appName}',
256
+ description: 'Scaffolded with KITT',
257
+ };
258
+
259
+ export default function RootLayout({
260
+ children,
261
+ }: {
262
+ children: React.ReactNode;
263
+ }) {
264
+ return (
265
+ <html lang="en">
266
+ <body>
267
+ ${bodyContent}
268
+ </body>
269
+ </html>
270
+ );
271
+ }
272
+ `;
273
+ }
274
+ function buildHomePage(appName, _workspaceName, integrations) {
275
+ const displayName = appName.charAt(0).toUpperCase() + appName.slice(1);
276
+ const hasTailwind = integrations.includes('tailwindcss');
277
+ if (hasTailwind) {
278
+ return [
279
+ `export default function Home() {`,
280
+ ` return (`,
281
+ ` <main className="min-h-screen bg-[#050508] text-white flex items-center justify-center antialiased">`,
282
+ ` <div className="text-center space-y-5 px-6">`,
283
+ ` <h1 className="font-mono text-6xl font-bold text-[#3b82f6] uppercase" style={{ letterSpacing: '0.18em' }}>`,
284
+ ` ${displayName}`,
285
+ ` </h1>`,
286
+ ` <p className="text-zinc-400 text-base tracking-wide">`,
287
+ ` Scaffolded with{' '}`,
288
+ ` <span className="text-[#3b82f6] font-semibold font-mono tracking-widest">KITT</span>`,
289
+ ` </p>`,
290
+ ` <p className="text-zinc-600 text-sm font-mono">`,
291
+ ` Edit{' '}`,
292
+ ` <code className="text-zinc-400 bg-zinc-900 px-2 py-0.5 rounded">src/app/page.tsx</code>`,
293
+ ` {' '}to get started.`,
294
+ ` </p>`,
295
+ ` </div>`,
296
+ ` </main>`,
297
+ ` );`,
298
+ `}`,
299
+ ``,
300
+ ].join('\n');
301
+ }
302
+ return [
303
+ `export default function Home() {`,
304
+ ` return (`,
305
+ ` <main style={{ minHeight: '100vh', display: 'flex', alignItems: 'center', justifyContent: 'center', background: '#050508' }}>`,
306
+ ` <div style={{ textAlign: 'center', fontFamily: 'monospace' }}>`,
307
+ ` <h1 style={{ fontSize: '3.5rem', fontWeight: 'bold', color: '#3b82f6', letterSpacing: '0.18em', textTransform: 'uppercase' }}>${displayName}</h1>`,
308
+ ` <p style={{ color: '#a1a1aa', marginTop: '1.25rem', fontSize: '1rem' }}>`,
309
+ ` Scaffolded with <span style={{ color: '#3b82f6', fontWeight: '600' }}>KITT</span>`,
310
+ ` </p>`,
311
+ ` <p style={{ color: '#52525b', marginTop: '0.5rem', fontSize: '0.875rem' }}>`,
312
+ ` Edit <code style={{ color: '#a1a1aa', background: '#18181b', padding: '0.1em 0.4em', borderRadius: '4px' }}>src/app/page.tsx</code> to get started.`,
313
+ ` </p>`,
314
+ ` </div>`,
315
+ ` </main>`,
316
+ ` );`,
317
+ `}`,
318
+ ``,
319
+ ].join('\n');
320
+ }
321
+ function buildPosthogFiles(base) {
322
+ return [
323
+ {
324
+ path: `${base}/src/lib/posthog.ts`,
325
+ content: `import PostHog from 'posthog-js';
326
+
327
+ export const initPosthog = () => {
328
+ const key = process.env.NEXT_PUBLIC_POSTHOG_KEY;
329
+ const host = process.env.NEXT_PUBLIC_POSTHOG_HOST ?? 'https://us.i.posthog.com';
330
+ if (!key || typeof window === 'undefined') return;
331
+ PostHog.init(key, {
332
+ api_host: host,
333
+ person_profiles: 'identified_only',
334
+ capture_pageview: false,
335
+ });
336
+ };
337
+
338
+ export { PostHog as posthog };
339
+ `,
340
+ },
341
+ {
342
+ path: `${base}/src/providers/posthog-provider.tsx`,
343
+ content: `'use client';
344
+
345
+ import { useEffect } from 'react';
346
+ import { usePathname, useSearchParams } from 'next/navigation';
347
+ import { initPosthog, posthog } from '@/lib/posthog';
348
+
349
+ export default function PosthogProvider({ children }: { children: React.ReactNode }) {
350
+ const pathname = usePathname();
351
+ const searchParams = useSearchParams();
352
+
353
+ useEffect(() => {
354
+ initPosthog();
355
+ }, []);
356
+
357
+ useEffect(() => {
358
+ const url = pathname + (searchParams.toString() ? \`?\${searchParams.toString()}\` : '');
359
+ posthog.capture('$pageview', { $current_url: url });
360
+ }, [pathname, searchParams]);
361
+
362
+ return <>{children}</>;
363
+ }
364
+ `,
365
+ },
366
+ ];
367
+ }
368
+ function buildSentryFiles(base) {
369
+ return [
370
+ {
371
+ path: `${base}/src/lib/sentry.ts`,
372
+ content: `import * as Sentry from '@sentry/nextjs';
373
+
374
+ export function initSentry() {
375
+ const dsn = process.env.NEXT_PUBLIC_SENTRY_DSN;
376
+ if (!dsn) return;
377
+ Sentry.init({
378
+ dsn,
379
+ tracesSampleRate: 1.0,
380
+ replaysSessionSampleRate: 0.1,
381
+ replaysOnErrorSampleRate: 1.0,
382
+ });
383
+ }
384
+
385
+ export { Sentry };
386
+ `,
387
+ },
388
+ {
389
+ path: `${base}/sentry.client.config.ts`,
390
+ content: `import { initSentry } from './src/lib/sentry';
391
+ initSentry();
392
+ `,
393
+ },
394
+ {
395
+ path: `${base}/sentry.server.config.ts`,
396
+ content: `import * as Sentry from '@sentry/nextjs';
397
+
398
+ Sentry.init({
399
+ dsn: process.env.SENTRY_DSN,
400
+ tracesSampleRate: 1.0,
401
+ });
402
+ `,
403
+ },
404
+ ];
405
+ }
406
+ function buildVitestFiles(base) {
407
+ return [
408
+ {
409
+ path: `${base}/vitest.config.ts`,
410
+ content: `import { defineConfig } from 'vitest/config';
411
+ import react from '@vitejs/plugin-react';
412
+ import path from 'node:path';
413
+
414
+ export default defineConfig({
415
+ plugins: [react()],
416
+ test: {
417
+ environment: 'jsdom',
418
+ globals: true,
419
+ setupFiles: ['./src/test/setup.ts'],
420
+ },
421
+ resolve: {
422
+ alias: {
423
+ '@': path.resolve(__dirname, './src'),
424
+ },
425
+ },
426
+ });
427
+ `,
428
+ },
429
+ {
430
+ path: `${base}/src/test/setup.ts`,
431
+ content: `import '@testing-library/jest-dom';
432
+ `,
433
+ },
434
+ {
435
+ path: `${base}/src/test/example.test.ts`,
436
+ content: `import { describe, expect, it } from 'vitest';
437
+
438
+ describe('example', () => {
439
+ it('should pass', () => {
440
+ expect(true).toBe(true);
441
+ });
442
+ });
443
+ `,
444
+ },
445
+ ];
446
+ }
447
+ //# sourceMappingURL=nextjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nextjs.js","sourceRoot":"","sources":["../../../src/scaffold/frameworks/nextjs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ScaffoldFile, StaticScaffoldOptions } from '../types.js';
2
+ export declare function buildTanstackStartFiles(opts: StaticScaffoldOptions): ScaffoldFile[];
3
+ export declare function buildIndexRoute(base: string, appName: string, welcomeContent?: string): ScaffoldFile;