@intentsolutions/blueprint 2.6.0 → 2.8.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 (192) hide show
  1. package/dist/analytics/collector.d.ts +73 -0
  2. package/dist/analytics/collector.d.ts.map +1 -0
  3. package/dist/analytics/collector.js +239 -0
  4. package/dist/analytics/collector.js.map +1 -0
  5. package/dist/analytics/dashboard.d.ts +62 -0
  6. package/dist/analytics/dashboard.d.ts.map +1 -0
  7. package/dist/analytics/dashboard.js +346 -0
  8. package/dist/analytics/dashboard.js.map +1 -0
  9. package/dist/analytics/index.d.ts +75 -0
  10. package/dist/analytics/index.d.ts.map +1 -0
  11. package/dist/analytics/index.js +115 -0
  12. package/dist/analytics/index.js.map +1 -0
  13. package/dist/analytics/types.d.ts +169 -0
  14. package/dist/analytics/types.d.ts.map +1 -0
  15. package/dist/analytics/types.js +16 -0
  16. package/dist/analytics/types.js.map +1 -0
  17. package/dist/cli.js +359 -1
  18. package/dist/cli.js.map +1 -1
  19. package/dist/commands/analytics.d.ts +38 -0
  20. package/dist/commands/analytics.d.ts.map +1 -0
  21. package/dist/commands/analytics.js +196 -0
  22. package/dist/commands/analytics.js.map +1 -0
  23. package/dist/commands/index.d.ts +26 -0
  24. package/dist/commands/index.d.ts.map +1 -0
  25. package/dist/commands/index.js +101 -0
  26. package/dist/commands/index.js.map +1 -0
  27. package/dist/commands/marketplace.d.ts +52 -0
  28. package/dist/commands/marketplace.d.ts.map +1 -0
  29. package/dist/commands/marketplace.js +356 -0
  30. package/dist/commands/marketplace.js.map +1 -0
  31. package/dist/enterprise/api/index.d.ts +8 -0
  32. package/dist/enterprise/api/index.d.ts.map +1 -0
  33. package/dist/enterprise/api/index.js +8 -0
  34. package/dist/enterprise/api/index.js.map +1 -0
  35. package/dist/enterprise/api/server.d.ts +79 -0
  36. package/dist/enterprise/api/server.d.ts.map +1 -0
  37. package/dist/enterprise/api/server.js +468 -0
  38. package/dist/enterprise/api/server.js.map +1 -0
  39. package/dist/enterprise/api/types.d.ts +269 -0
  40. package/dist/enterprise/api/types.d.ts.map +1 -0
  41. package/dist/enterprise/api/types.js +6 -0
  42. package/dist/enterprise/api/types.js.map +1 -0
  43. package/dist/enterprise/api/webhooks.d.ts +214 -0
  44. package/dist/enterprise/api/webhooks.d.ts.map +1 -0
  45. package/dist/enterprise/api/webhooks.js +308 -0
  46. package/dist/enterprise/api/webhooks.js.map +1 -0
  47. package/dist/enterprise/index.d.ts +9 -0
  48. package/dist/enterprise/index.d.ts.map +1 -0
  49. package/dist/enterprise/index.js +13 -0
  50. package/dist/enterprise/index.js.map +1 -0
  51. package/dist/enterprise/models/claude.d.ts +23 -0
  52. package/dist/enterprise/models/claude.d.ts.map +1 -0
  53. package/dist/enterprise/models/claude.js +176 -0
  54. package/dist/enterprise/models/claude.js.map +1 -0
  55. package/dist/enterprise/models/gemini.d.ts +25 -0
  56. package/dist/enterprise/models/gemini.d.ts.map +1 -0
  57. package/dist/enterprise/models/gemini.js +199 -0
  58. package/dist/enterprise/models/gemini.js.map +1 -0
  59. package/dist/enterprise/models/index.d.ts +11 -0
  60. package/dist/enterprise/models/index.d.ts.map +1 -0
  61. package/dist/enterprise/models/index.js +11 -0
  62. package/dist/enterprise/models/index.js.map +1 -0
  63. package/dist/enterprise/models/ollama.d.ts +32 -0
  64. package/dist/enterprise/models/ollama.d.ts.map +1 -0
  65. package/dist/enterprise/models/ollama.js +285 -0
  66. package/dist/enterprise/models/ollama.js.map +1 -0
  67. package/dist/enterprise/models/openai.d.ts +27 -0
  68. package/dist/enterprise/models/openai.d.ts.map +1 -0
  69. package/dist/enterprise/models/openai.js +222 -0
  70. package/dist/enterprise/models/openai.js.map +1 -0
  71. package/dist/enterprise/models/registry.d.ts +101 -0
  72. package/dist/enterprise/models/registry.d.ts.map +1 -0
  73. package/dist/enterprise/models/registry.js +263 -0
  74. package/dist/enterprise/models/registry.js.map +1 -0
  75. package/dist/enterprise/models/types.d.ts +141 -0
  76. package/dist/enterprise/models/types.d.ts.map +1 -0
  77. package/dist/enterprise/models/types.js +40 -0
  78. package/dist/enterprise/models/types.js.map +1 -0
  79. package/dist/enterprise/team/audit.d.ts +153 -0
  80. package/dist/enterprise/team/audit.d.ts.map +1 -0
  81. package/dist/enterprise/team/audit.js +346 -0
  82. package/dist/enterprise/team/audit.js.map +1 -0
  83. package/dist/enterprise/team/config.d.ts +83 -0
  84. package/dist/enterprise/team/config.d.ts.map +1 -0
  85. package/dist/enterprise/team/config.js +245 -0
  86. package/dist/enterprise/team/config.js.map +1 -0
  87. package/dist/enterprise/team/index.d.ts +7 -0
  88. package/dist/enterprise/team/index.d.ts.map +1 -0
  89. package/dist/enterprise/team/index.js +7 -0
  90. package/dist/enterprise/team/index.js.map +1 -0
  91. package/dist/enterprise/templates/engine.d.ts +100 -0
  92. package/dist/enterprise/templates/engine.d.ts.map +1 -0
  93. package/dist/enterprise/templates/engine.js +429 -0
  94. package/dist/enterprise/templates/engine.js.map +1 -0
  95. package/dist/enterprise/templates/index.d.ts +8 -0
  96. package/dist/enterprise/templates/index.d.ts.map +1 -0
  97. package/dist/enterprise/templates/index.js +8 -0
  98. package/dist/enterprise/templates/index.js.map +1 -0
  99. package/dist/enterprise/templates/loader.d.ts +65 -0
  100. package/dist/enterprise/templates/loader.d.ts.map +1 -0
  101. package/dist/enterprise/templates/loader.js +269 -0
  102. package/dist/enterprise/templates/loader.js.map +1 -0
  103. package/dist/enterprise/templates/types.d.ts +212 -0
  104. package/dist/enterprise/templates/types.d.ts.map +1 -0
  105. package/dist/enterprise/templates/types.js +55 -0
  106. package/dist/enterprise/templates/types.js.map +1 -0
  107. package/dist/marketplace/index.d.ts +86 -0
  108. package/dist/marketplace/index.d.ts.map +1 -0
  109. package/dist/marketplace/index.js +112 -0
  110. package/dist/marketplace/index.js.map +1 -0
  111. package/dist/marketplace/manager.d.ts +81 -0
  112. package/dist/marketplace/manager.d.ts.map +1 -0
  113. package/dist/marketplace/manager.js +292 -0
  114. package/dist/marketplace/manager.js.map +1 -0
  115. package/dist/marketplace/packs/fastapi.d.ts +8 -0
  116. package/dist/marketplace/packs/fastapi.d.ts.map +1 -0
  117. package/dist/marketplace/packs/fastapi.js +728 -0
  118. package/dist/marketplace/packs/fastapi.js.map +1 -0
  119. package/dist/marketplace/packs/fintech.d.ts +8 -0
  120. package/dist/marketplace/packs/fintech.d.ts.map +1 -0
  121. package/dist/marketplace/packs/fintech.js +366 -0
  122. package/dist/marketplace/packs/fintech.js.map +1 -0
  123. package/dist/marketplace/packs/gdpr.d.ts +8 -0
  124. package/dist/marketplace/packs/gdpr.d.ts.map +1 -0
  125. package/dist/marketplace/packs/gdpr.js +637 -0
  126. package/dist/marketplace/packs/gdpr.js.map +1 -0
  127. package/dist/marketplace/packs/healthtech.d.ts +8 -0
  128. package/dist/marketplace/packs/healthtech.d.ts.map +1 -0
  129. package/dist/marketplace/packs/healthtech.js +470 -0
  130. package/dist/marketplace/packs/healthtech.js.map +1 -0
  131. package/dist/marketplace/packs/hipaa.d.ts +8 -0
  132. package/dist/marketplace/packs/hipaa.d.ts.map +1 -0
  133. package/dist/marketplace/packs/hipaa.js +473 -0
  134. package/dist/marketplace/packs/hipaa.js.map +1 -0
  135. package/dist/marketplace/packs/index.d.ts +250 -0
  136. package/dist/marketplace/packs/index.d.ts.map +1 -0
  137. package/dist/marketplace/packs/index.js +205 -0
  138. package/dist/marketplace/packs/index.js.map +1 -0
  139. package/dist/marketplace/packs/nextjs.d.ts +8 -0
  140. package/dist/marketplace/packs/nextjs.d.ts.map +1 -0
  141. package/dist/marketplace/packs/nextjs.js +532 -0
  142. package/dist/marketplace/packs/nextjs.js.map +1 -0
  143. package/dist/marketplace/packs/rails.d.ts +8 -0
  144. package/dist/marketplace/packs/rails.d.ts.map +1 -0
  145. package/dist/marketplace/packs/rails.js +866 -0
  146. package/dist/marketplace/packs/rails.js.map +1 -0
  147. package/dist/marketplace/packs/saas.d.ts +8 -0
  148. package/dist/marketplace/packs/saas.d.ts.map +1 -0
  149. package/dist/marketplace/packs/saas.js +516 -0
  150. package/dist/marketplace/packs/saas.js.map +1 -0
  151. package/dist/marketplace/packs/soc2.d.ts +8 -0
  152. package/dist/marketplace/packs/soc2.d.ts.map +1 -0
  153. package/dist/marketplace/packs/soc2.js +455 -0
  154. package/dist/marketplace/packs/soc2.js.map +1 -0
  155. package/dist/marketplace/registry.d.ts +76 -0
  156. package/dist/marketplace/registry.d.ts.map +1 -0
  157. package/dist/marketplace/registry.js +454 -0
  158. package/dist/marketplace/registry.js.map +1 -0
  159. package/dist/marketplace/types.d.ts +202 -0
  160. package/dist/marketplace/types.d.ts.map +1 -0
  161. package/dist/marketplace/types.js +61 -0
  162. package/dist/marketplace/types.js.map +1 -0
  163. package/dist/mcp/index.js +1 -1
  164. package/dist/plugins/builtin/html-formatter.d.ts +11 -0
  165. package/dist/plugins/builtin/html-formatter.d.ts.map +1 -0
  166. package/dist/plugins/builtin/html-formatter.js +214 -0
  167. package/dist/plugins/builtin/html-formatter.js.map +1 -0
  168. package/dist/plugins/builtin/index.d.ts +21 -0
  169. package/dist/plugins/builtin/index.d.ts.map +1 -0
  170. package/dist/plugins/builtin/index.js +31 -0
  171. package/dist/plugins/builtin/index.js.map +1 -0
  172. package/dist/plugins/builtin/markdown-formatter.d.ts +11 -0
  173. package/dist/plugins/builtin/markdown-formatter.d.ts.map +1 -0
  174. package/dist/plugins/builtin/markdown-formatter.js +77 -0
  175. package/dist/plugins/builtin/markdown-formatter.js.map +1 -0
  176. package/dist/plugins/builtin/quality-validator.d.ts +11 -0
  177. package/dist/plugins/builtin/quality-validator.d.ts.map +1 -0
  178. package/dist/plugins/builtin/quality-validator.js +355 -0
  179. package/dist/plugins/builtin/quality-validator.js.map +1 -0
  180. package/dist/plugins/index.d.ts +98 -0
  181. package/dist/plugins/index.d.ts.map +1 -0
  182. package/dist/plugins/index.js +187 -0
  183. package/dist/plugins/index.js.map +1 -0
  184. package/dist/plugins/manager.d.ts +122 -0
  185. package/dist/plugins/manager.d.ts.map +1 -0
  186. package/dist/plugins/manager.js +349 -0
  187. package/dist/plugins/manager.js.map +1 -0
  188. package/dist/plugins/types.d.ts +348 -0
  189. package/dist/plugins/types.d.ts.map +1 -0
  190. package/dist/plugins/types.js +13 -0
  191. package/dist/plugins/types.js.map +1 -0
  192. package/package.json +5 -4
@@ -0,0 +1,532 @@
1
+ /**
2
+ * Next.js Template Pack
3
+ * Templates optimized for Next.js applications
4
+ */
5
+ export const NEXTJS_TEMPLATES = [
6
+ {
7
+ meta: {
8
+ id: 'nextjs-prd',
9
+ name: 'Next.js Product Requirements',
10
+ description: 'PRD template optimized for Next.js applications with App Router',
11
+ version: '1.0.0',
12
+ category: 'product',
13
+ scope: 'standard',
14
+ author: 'Intent Solutions',
15
+ tags: ['nextjs', 'react', 'frontend', 'prd'],
16
+ },
17
+ variables: [
18
+ { name: 'projectName', label: 'Project Name', type: 'string', required: true },
19
+ { name: 'projectDescription', label: 'Description', type: 'text', required: true },
20
+ { name: 'routerType', label: 'Router Type', type: 'select', options: [
21
+ { label: 'App Router (Next.js 13+)', value: 'app' },
22
+ { label: 'Pages Router (Legacy)', value: 'pages' },
23
+ ], default: 'app' },
24
+ { name: 'rendering', label: 'Rendering Strategy', type: 'multiselect', options: [
25
+ { label: 'Server Components (RSC)', value: 'rsc' },
26
+ { label: 'Client Components', value: 'client' },
27
+ { label: 'Static Site Generation (SSG)', value: 'ssg' },
28
+ { label: 'Server-Side Rendering (SSR)', value: 'ssr' },
29
+ { label: 'Incremental Static Regeneration (ISR)', value: 'isr' },
30
+ ] },
31
+ { name: 'features', label: 'Features', type: 'multiselect', options: [
32
+ { label: 'Authentication', value: 'auth' },
33
+ { label: 'Database', value: 'database' },
34
+ { label: 'API Routes', value: 'api' },
35
+ { label: 'Internationalization', value: 'i18n' },
36
+ { label: 'Dark Mode', value: 'darkmode' },
37
+ { label: 'PWA Support', value: 'pwa' },
38
+ { label: 'Analytics', value: 'analytics' },
39
+ ] },
40
+ { name: 'deployment', label: 'Deployment Target', type: 'select', options: [
41
+ { label: 'Vercel', value: 'vercel' },
42
+ { label: 'AWS Amplify', value: 'amplify' },
43
+ { label: 'Cloudflare Pages', value: 'cloudflare' },
44
+ { label: 'Docker/Kubernetes', value: 'docker' },
45
+ { label: 'Self-hosted', value: 'self' },
46
+ ] },
47
+ ],
48
+ sections: [
49
+ {
50
+ id: 'overview',
51
+ title: 'Product Overview',
52
+ order: 1,
53
+ content: `# {{projectName}}
54
+
55
+ ## Overview
56
+ {{projectDescription}}
57
+
58
+ ### Technology Stack
59
+ - **Framework:** Next.js 14+ ({{routerType}} Router)
60
+ - **Rendering:** {{join rendering ", "}}
61
+ - **Deployment:** {{deployment}}
62
+
63
+ ### Key Features
64
+ {{#each features}}
65
+ - {{this}}
66
+ {{/each}}`,
67
+ },
68
+ {
69
+ id: 'architecture',
70
+ title: 'Technical Architecture',
71
+ order: 2,
72
+ content: `## Technical Architecture
73
+
74
+ ### Project Structure
75
+ \`\`\`
76
+ {{projectName}}/
77
+ ├── app/ # App Router pages
78
+ │ ├── (auth)/ # Auth route group
79
+ │ ├── (dashboard)/ # Dashboard route group
80
+ │ ├── api/ # API routes
81
+ │ ├── layout.tsx # Root layout
82
+ │ └── page.tsx # Home page
83
+ ├── components/
84
+ │ ├── ui/ # UI primitives
85
+ │ └── features/ # Feature components
86
+ ├── lib/
87
+ │ ├── actions/ # Server actions
88
+ │ ├── db/ # Database client
89
+ │ └── utils/ # Utilities
90
+ ├── public/ # Static assets
91
+ └── styles/ # Global styles
92
+ \`\`\`
93
+
94
+ ### Rendering Strategy
95
+ {{#if rendering}}
96
+ {{#each rendering}}
97
+ {{#if (equals this "rsc")}}
98
+ - **Server Components:** Default for data fetching, reduce client bundle
99
+ {{/if}}
100
+ {{#if (equals this "client")}}
101
+ - **Client Components:** Interactive UI, hooks, browser APIs
102
+ {{/if}}
103
+ {{#if (equals this "ssg")}}
104
+ - **Static Generation:** Pre-render at build time for static pages
105
+ {{/if}}
106
+ {{#if (equals this "ssr")}}
107
+ - **Server Rendering:** Dynamic content per request
108
+ {{/if}}
109
+ {{#if (equals this "isr")}}
110
+ - **ISR:** Revalidate static pages on interval
111
+ {{/if}}
112
+ {{/each}}
113
+ {{/if}}`,
114
+ },
115
+ {
116
+ id: 'routes',
117
+ title: 'Routes & Pages',
118
+ order: 3,
119
+ content: `## Routes & Pages
120
+
121
+ ### Public Routes
122
+ | Route | Page | Rendering |
123
+ |-------|------|-----------|
124
+ | / | Home | SSG |
125
+ | /about | About | SSG |
126
+ | /pricing | Pricing | SSG |
127
+ | /blog | Blog List | ISR |
128
+ | /blog/[slug] | Blog Post | SSG |
129
+
130
+ {{#if (contains features "auth")}}
131
+ ### Auth Routes
132
+ | Route | Page | Rendering |
133
+ |-------|------|-----------|
134
+ | /login | Login | Client |
135
+ | /signup | Sign Up | Client |
136
+ | /forgot-password | Password Reset | Client |
137
+ | /verify-email | Email Verification | Client |
138
+ {{/if}}
139
+
140
+ ### Protected Routes
141
+ | Route | Page | Rendering |
142
+ |-------|------|-----------|
143
+ | /dashboard | Dashboard | SSR |
144
+ | /settings | User Settings | SSR |
145
+ | /profile | User Profile | SSR |`,
146
+ },
147
+ {
148
+ id: 'api',
149
+ title: 'API Routes',
150
+ order: 4,
151
+ condition: { variable: 'features', operator: 'contains', value: 'api' },
152
+ content: `## API Routes
153
+
154
+ ### Route Handlers (App Router)
155
+ \`\`\`typescript
156
+ // app/api/users/route.ts
157
+ export async function GET(request: Request) {
158
+ // Handle GET request
159
+ }
160
+
161
+ export async function POST(request: Request) {
162
+ // Handle POST request
163
+ }
164
+ \`\`\`
165
+
166
+ ### API Endpoints
167
+ | Endpoint | Method | Description |
168
+ |----------|--------|-------------|
169
+ | /api/users | GET | List users |
170
+ | /api/users | POST | Create user |
171
+ | /api/users/[id] | GET | Get user |
172
+ | /api/users/[id] | PATCH | Update user |
173
+ | /api/users/[id] | DELETE | Delete user |
174
+
175
+ ### Server Actions
176
+ For mutations, prefer Server Actions over API routes:
177
+ \`\`\`typescript
178
+ // lib/actions/users.ts
179
+ 'use server'
180
+
181
+ export async function createUser(formData: FormData) {
182
+ // Direct database access, no API call
183
+ }
184
+ \`\`\``,
185
+ },
186
+ {
187
+ id: 'auth',
188
+ title: 'Authentication',
189
+ order: 5,
190
+ condition: { variable: 'features', operator: 'contains', value: 'auth' },
191
+ content: `## Authentication
192
+
193
+ ### Auth Provider
194
+ Recommended: NextAuth.js v5 (Auth.js)
195
+
196
+ ### Implementation
197
+ \`\`\`typescript
198
+ // auth.ts
199
+ import NextAuth from 'next-auth'
200
+ import GitHub from 'next-auth/providers/github'
201
+ import Credentials from 'next-auth/providers/credentials'
202
+
203
+ export const { handlers, auth, signIn, signOut } = NextAuth({
204
+ providers: [GitHub, Credentials],
205
+ })
206
+ \`\`\`
207
+
208
+ ### Protected Routes
209
+ \`\`\`typescript
210
+ // app/(dashboard)/layout.tsx
211
+ import { auth } from '@/auth'
212
+ import { redirect } from 'next/navigation'
213
+
214
+ export default async function DashboardLayout({ children }) {
215
+ const session = await auth()
216
+ if (!session) redirect('/login')
217
+ return <>{children}</>
218
+ }
219
+ \`\`\`
220
+
221
+ ### Middleware Protection
222
+ \`\`\`typescript
223
+ // middleware.ts
224
+ export { auth as middleware } from '@/auth'
225
+
226
+ export const config = {
227
+ matcher: ['/dashboard/:path*', '/settings/:path*']
228
+ }
229
+ \`\`\``,
230
+ },
231
+ {
232
+ id: 'database',
233
+ title: 'Database',
234
+ order: 6,
235
+ condition: { variable: 'features', operator: 'contains', value: 'database' },
236
+ content: `## Database
237
+
238
+ ### Recommended Stack
239
+ - **ORM:** Prisma or Drizzle
240
+ - **Database:** PostgreSQL (Neon/Supabase) or PlanetScale (MySQL)
241
+ - **Caching:** Redis (Upstash)
242
+
243
+ ### Prisma Setup
244
+ \`\`\`typescript
245
+ // lib/db/index.ts
246
+ import { PrismaClient } from '@prisma/client'
247
+
248
+ const globalForPrisma = globalThis as { prisma?: PrismaClient }
249
+
250
+ export const prisma = globalForPrisma.prisma ?? new PrismaClient()
251
+
252
+ if (process.env.NODE_ENV !== 'production') {
253
+ globalForPrisma.prisma = prisma
254
+ }
255
+ \`\`\`
256
+
257
+ ### Data Fetching
258
+ \`\`\`typescript
259
+ // app/users/page.tsx
260
+ import { prisma } from '@/lib/db'
261
+
262
+ export default async function UsersPage() {
263
+ const users = await prisma.user.findMany()
264
+ return <UserList users={users} />
265
+ }
266
+ \`\`\``,
267
+ },
268
+ {
269
+ id: 'deployment',
270
+ title: 'Deployment',
271
+ order: 7,
272
+ content: `## Deployment
273
+
274
+ ### {{deployment}} Configuration
275
+
276
+ {{#if (equals deployment "vercel")}}
277
+ #### Vercel Setup
278
+ 1. Connect GitHub repository
279
+ 2. Configure environment variables
280
+ 3. Deploy automatically on push
281
+
282
+ \`\`\`json
283
+ // vercel.json
284
+ {
285
+ "buildCommand": "next build",
286
+ "outputDirectory": ".next"
287
+ }
288
+ \`\`\`
289
+ {{/if}}
290
+
291
+ {{#if (equals deployment "docker")}}
292
+ #### Docker Setup
293
+ \`\`\`dockerfile
294
+ # Dockerfile
295
+ FROM node:20-alpine AS builder
296
+ WORKDIR /app
297
+ COPY package*.json ./
298
+ RUN npm ci
299
+ COPY . .
300
+ RUN npm run build
301
+
302
+ FROM node:20-alpine AS runner
303
+ WORKDIR /app
304
+ ENV NODE_ENV=production
305
+ COPY --from=builder /app/.next/standalone ./
306
+ COPY --from=builder /app/.next/static ./.next/static
307
+ COPY --from=builder /app/public ./public
308
+ EXPOSE 3000
309
+ CMD ["node", "server.js"]
310
+ \`\`\`
311
+ {{/if}}
312
+
313
+ ### Environment Variables
314
+ \`\`\`env
315
+ # .env.local
316
+ DATABASE_URL=
317
+ NEXTAUTH_SECRET=
318
+ NEXTAUTH_URL=
319
+ \`\`\``,
320
+ },
321
+ ],
322
+ },
323
+ {
324
+ meta: {
325
+ id: 'nextjs-architecture',
326
+ name: 'Next.js Architecture Document',
327
+ description: 'Technical architecture document for Next.js applications',
328
+ version: '1.0.0',
329
+ category: 'technical',
330
+ scope: 'comprehensive',
331
+ author: 'Intent Solutions',
332
+ tags: ['nextjs', 'architecture', 'technical'],
333
+ },
334
+ variables: [
335
+ { name: 'projectName', label: 'Project Name', type: 'string', required: true },
336
+ { name: 'scale', label: 'Expected Scale', type: 'select', options: [
337
+ { label: 'Small (< 10k users)', value: 'small' },
338
+ { label: 'Medium (10k-100k users)', value: 'medium' },
339
+ { label: 'Large (100k+ users)', value: 'large' },
340
+ ] },
341
+ ],
342
+ sections: [
343
+ {
344
+ id: 'overview',
345
+ title: 'Architecture Overview',
346
+ order: 1,
347
+ content: `# {{projectName}} Architecture
348
+
349
+ ## System Overview
350
+ This document describes the technical architecture for {{projectName}}, a Next.js application designed for {{scale}} scale.
351
+
352
+ ## Architecture Principles
353
+ 1. Server-first rendering
354
+ 2. Progressive enhancement
355
+ 3. Edge-ready deployment
356
+ 4. Type safety throughout`,
357
+ },
358
+ {
359
+ id: 'components',
360
+ title: 'Component Architecture',
361
+ order: 2,
362
+ content: `## Component Architecture
363
+
364
+ ### Component Categories
365
+
366
+ #### Server Components (Default)
367
+ - Data fetching
368
+ - Access backend resources
369
+ - Keep sensitive info on server
370
+ - Reduce client bundle
371
+
372
+ #### Client Components
373
+ - Interactivity (onClick, onChange)
374
+ - State management (useState, useEffect)
375
+ - Browser APIs
376
+ - Custom hooks
377
+
378
+ ### Composition Pattern
379
+ \`\`\`tsx
380
+ // Server Component wrapping Client Component
381
+ // app/dashboard/page.tsx
382
+ import { getUser } from '@/lib/data'
383
+ import { Dashboard } from '@/components/dashboard'
384
+
385
+ export default async function DashboardPage() {
386
+ const user = await getUser() // Server-side fetch
387
+ return <Dashboard user={user} /> // Pass to client
388
+ }
389
+ \`\`\``,
390
+ },
391
+ {
392
+ id: 'caching',
393
+ title: 'Caching Strategy',
394
+ order: 3,
395
+ content: `## Caching Strategy
396
+
397
+ ### Request Memoization
398
+ Automatic deduplication within a single render pass.
399
+
400
+ ### Data Cache
401
+ \`\`\`typescript
402
+ // Cached by default
403
+ const data = await fetch('/api/data')
404
+
405
+ // Opt out of caching
406
+ const data = await fetch('/api/data', { cache: 'no-store' })
407
+
408
+ // Revalidate every hour
409
+ const data = await fetch('/api/data', { next: { revalidate: 3600 } })
410
+ \`\`\`
411
+
412
+ ### Full Route Cache
413
+ - Static routes cached at build time
414
+ - Dynamic routes cached on first request
415
+ - Invalidate with revalidatePath() or revalidateTag()
416
+
417
+ ### Router Cache
418
+ Client-side cache for prefetched routes (30s default).`,
419
+ },
420
+ ],
421
+ },
422
+ {
423
+ meta: {
424
+ id: 'nextjs-testing',
425
+ name: 'Next.js Testing Strategy',
426
+ description: 'Testing strategy and implementation guide for Next.js',
427
+ version: '1.0.0',
428
+ category: 'testing',
429
+ scope: 'standard',
430
+ author: 'Intent Solutions',
431
+ tags: ['nextjs', 'testing', 'jest', 'playwright'],
432
+ },
433
+ variables: [
434
+ { name: 'projectName', label: 'Project Name', type: 'string', required: true },
435
+ ],
436
+ sections: [
437
+ {
438
+ id: 'strategy',
439
+ title: 'Testing Strategy',
440
+ order: 1,
441
+ content: `# {{projectName}} Testing Strategy
442
+
443
+ ## Testing Pyramid
444
+ - **E2E Tests:** 10% - Critical user flows
445
+ - **Integration:** 30% - Component interactions
446
+ - **Unit Tests:** 60% - Business logic
447
+
448
+ ## Tools
449
+ - **Unit/Integration:** Vitest + React Testing Library
450
+ - **E2E:** Playwright
451
+ - **Visual:** Chromatic (Storybook)`,
452
+ },
453
+ {
454
+ id: 'unit',
455
+ title: 'Unit Testing',
456
+ order: 2,
457
+ content: `## Unit Testing
458
+
459
+ ### Setup
460
+ \`\`\`typescript
461
+ // vitest.config.ts
462
+ import { defineConfig } from 'vitest/config'
463
+ import react from '@vitejs/plugin-react'
464
+
465
+ export default defineConfig({
466
+ plugins: [react()],
467
+ test: {
468
+ environment: 'jsdom',
469
+ setupFiles: ['./vitest.setup.ts'],
470
+ },
471
+ })
472
+ \`\`\`
473
+
474
+ ### Component Test Example
475
+ \`\`\`typescript
476
+ // components/button.test.tsx
477
+ import { render, screen } from '@testing-library/react'
478
+ import userEvent from '@testing-library/user-event'
479
+ import { Button } from './button'
480
+
481
+ describe('Button', () => {
482
+ it('calls onClick when clicked', async () => {
483
+ const onClick = vi.fn()
484
+ render(<Button onClick={onClick}>Click me</Button>)
485
+
486
+ await userEvent.click(screen.getByRole('button'))
487
+
488
+ expect(onClick).toHaveBeenCalledOnce()
489
+ })
490
+ })
491
+ \`\`\``,
492
+ },
493
+ {
494
+ id: 'e2e',
495
+ title: 'E2E Testing',
496
+ order: 3,
497
+ content: `## E2E Testing with Playwright
498
+
499
+ ### Setup
500
+ \`\`\`typescript
501
+ // playwright.config.ts
502
+ import { defineConfig } from '@playwright/test'
503
+
504
+ export default defineConfig({
505
+ testDir: './e2e',
506
+ webServer: {
507
+ command: 'npm run dev',
508
+ url: 'http://localhost:3000',
509
+ },
510
+ })
511
+ \`\`\`
512
+
513
+ ### E2E Test Example
514
+ \`\`\`typescript
515
+ // e2e/auth.spec.ts
516
+ import { test, expect } from '@playwright/test'
517
+
518
+ test('user can sign in', async ({ page }) => {
519
+ await page.goto('/login')
520
+ await page.fill('[name="email"]', 'user@example.com')
521
+ await page.fill('[name="password"]', 'password')
522
+ await page.click('button[type="submit"]')
523
+
524
+ await expect(page).toHaveURL('/dashboard')
525
+ })
526
+ \`\`\``,
527
+ },
528
+ ],
529
+ },
530
+ ];
531
+ export default NEXTJS_TEMPLATES;
532
+ //# sourceMappingURL=nextjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nextjs.js","sourceRoot":"","sources":["../../../src/marketplace/packs/nextjs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Ruby on Rails Template Pack
3
+ * Templates optimized for Rails applications
4
+ */
5
+ import type { CustomTemplate } from '../../enterprise/templates/types.js';
6
+ export declare const RAILS_TEMPLATES: CustomTemplate[];
7
+ export default RAILS_TEMPLATES;
8
+ //# sourceMappingURL=rails.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rails.d.ts","sourceRoot":"","sources":["../../../src/marketplace/packs/rails.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAE1E,eAAO,MAAM,eAAe,EAAE,cAAc,EA21B3C,CAAC;AAEF,eAAe,eAAe,CAAC"}