create-chaaskit 0.1.3 → 0.1.5

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 (42) hide show
  1. package/dist/commands/init.d.ts.map +1 -1
  2. package/dist/commands/init.js +12 -19
  3. package/dist/commands/init.js.map +1 -1
  4. package/dist/commands/sync.d.ts +7 -0
  5. package/dist/commands/sync.d.ts.map +1 -0
  6. package/dist/commands/sync.js +360 -0
  7. package/dist/commands/sync.js.map +1 -0
  8. package/dist/index.js +10 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/lib/managed-routes.d.ts +10 -0
  11. package/dist/lib/managed-routes.d.ts.map +1 -0
  12. package/dist/lib/managed-routes.js +110 -0
  13. package/dist/lib/managed-routes.js.map +1 -0
  14. package/dist/lib/routes-updater.d.ts +26 -0
  15. package/dist/lib/routes-updater.d.ts.map +1 -0
  16. package/dist/lib/routes-updater.js +102 -0
  17. package/dist/lib/routes-updater.js.map +1 -0
  18. package/dist/lib/types.d.ts +15 -0
  19. package/dist/lib/types.d.ts.map +1 -0
  20. package/dist/lib/types.js +2 -0
  21. package/dist/lib/types.js.map +1 -0
  22. package/dist/lib/wrapper-gen.d.ts +10 -0
  23. package/dist/lib/wrapper-gen.d.ts.map +1 -0
  24. package/dist/lib/wrapper-gen.js +27 -0
  25. package/dist/lib/wrapper-gen.js.map +1 -0
  26. package/package.json +1 -1
  27. package/dist/templates/app/routes/chat._index.tsx +0 -11
  28. package/dist/templates/app/routes/chat.admin._index.tsx +0 -10
  29. package/dist/templates/app/routes/chat.admin.promo-codes.tsx +0 -10
  30. package/dist/templates/app/routes/chat.admin.teams.$teamId.tsx +0 -10
  31. package/dist/templates/app/routes/chat.admin.teams._index.tsx +0 -10
  32. package/dist/templates/app/routes/chat.admin.users.tsx +0 -10
  33. package/dist/templates/app/routes/chat.admin.waitlist.tsx +0 -10
  34. package/dist/templates/app/routes/chat.api-keys.tsx +0 -10
  35. package/dist/templates/app/routes/chat.automations.tsx +0 -10
  36. package/dist/templates/app/routes/chat.documents.tsx +0 -10
  37. package/dist/templates/app/routes/chat.team.$teamId.settings.tsx +0 -10
  38. package/dist/templates/app/routes/chat.thread.$threadId.tsx +0 -11
  39. package/dist/templates/app/routes/invite.$token.tsx +0 -10
  40. package/dist/templates/app/routes/oauth.consent.tsx +0 -10
  41. package/dist/templates/app/routes/pricing.tsx +0 -10
  42. package/dist/templates/app/routes/verify-email.tsx +0 -10
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAgBA,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAqG/F"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAkBA,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAqG/F"}
@@ -5,6 +5,8 @@ import chalk from 'chalk';
5
5
  import ora from 'ora';
6
6
  import prompts from 'prompts';
7
7
  import { spawn } from 'child_process';
8
+ import { managedRoutes } from '../lib/managed-routes.js';
9
+ import { generateWrapper } from '../lib/wrapper-gen.js';
8
10
  const __filename = fileURLToPath(import.meta.url);
9
11
  const __dirname = path.dirname(__filename);
10
12
  // Convert project name to database name (replace dashes/spaces with underscores, lowercase)
@@ -112,8 +114,8 @@ async function copyTemplateFiles(templatesPath, targetPath, projectName) {
112
114
  await fs.ensureDir(path.join(targetPath, 'prisma', 'schema'));
113
115
  await fs.ensureDir(path.join(targetPath, 'public'));
114
116
  // Copy template files
115
- // Note: Client wrapper components (*Client.tsx) and documentation files are now
116
- // provided by @chaaskit/client package - routes import directly from there.
117
+ // Note: Thin wrapper routes are generated from the route registry (single source of truth).
118
+ // Only user-owned templates (login, register, etc.) are copied from the templates directory.
117
119
  const templates = [
118
120
  // React Router app files
119
121
  { src: 'app/routes.ts', dest: 'app/routes.ts' },
@@ -124,30 +126,15 @@ async function copyTemplateFiles(templatesPath, targetPath, projectName) {
124
126
  { src: 'app/styles/app.css', dest: 'app/styles/app.css' },
125
127
  // ClientOnly re-export for convenience
126
128
  { src: 'app/components/ClientOnly.tsx', dest: 'app/components/ClientOnly.tsx' },
127
- // Public routes (no basePath prefix)
129
+ // User-owned route templates (full custom pages, NOT thin wrappers)
128
130
  { src: 'app/routes/_index.tsx', dest: 'app/routes/_index.tsx' },
129
131
  { src: 'app/routes/login.tsx', dest: 'app/routes/login.tsx' },
130
132
  { src: 'app/routes/register.tsx', dest: 'app/routes/register.tsx' },
131
133
  { src: 'app/routes/shared.$shareId.tsx', dest: 'app/routes/shared.$shareId.tsx' },
132
134
  { src: 'app/routes/terms.tsx', dest: 'app/routes/terms.tsx' },
133
135
  { src: 'app/routes/privacy.tsx', dest: 'app/routes/privacy.tsx' },
134
- { src: 'app/routes/verify-email.tsx', dest: 'app/routes/verify-email.tsx' },
135
- { src: 'app/routes/invite.$token.tsx', dest: 'app/routes/invite.$token.tsx' },
136
- { src: 'app/routes/pricing.tsx', dest: 'app/routes/pricing.tsx' },
137
- { src: 'app/routes/oauth.consent.tsx', dest: 'app/routes/oauth.consent.tsx' },
138
- // Authenticated routes (under basePath, e.g., /chat/*)
139
- // Layout route that handles authentication for all chat.* routes
136
+ // Layout route (user-owned, handles auth guard)
140
137
  { src: 'app/routes/chat.tsx', dest: 'app/routes/chat.tsx' },
141
- { src: 'app/routes/chat._index.tsx', dest: 'app/routes/chat._index.tsx' },
142
- { src: 'app/routes/chat.thread.$threadId.tsx', dest: 'app/routes/chat.thread.$threadId.tsx' },
143
- { src: 'app/routes/chat.api-keys.tsx', dest: 'app/routes/chat.api-keys.tsx' },
144
- { src: 'app/routes/chat.documents.tsx', dest: 'app/routes/chat.documents.tsx' },
145
- { src: 'app/routes/chat.automations.tsx', dest: 'app/routes/chat.automations.tsx' },
146
- { src: 'app/routes/chat.team.$teamId.settings.tsx', dest: 'app/routes/chat.team.$teamId.settings.tsx' },
147
- { src: 'app/routes/chat.admin._index.tsx', dest: 'app/routes/chat.admin._index.tsx' },
148
- { src: 'app/routes/chat.admin.users.tsx', dest: 'app/routes/chat.admin.users.tsx' },
149
- { src: 'app/routes/chat.admin.teams._index.tsx', dest: 'app/routes/chat.admin.teams._index.tsx' },
150
- { src: 'app/routes/chat.admin.teams.$teamId.tsx', dest: 'app/routes/chat.admin.teams.$teamId.tsx' },
151
138
  // Config
152
139
  { src: 'config/app.config.ts', dest: 'config/app.config.ts' },
153
140
  { src: 'react-router.config.ts', dest: 'react-router.config.ts' },
@@ -197,6 +184,12 @@ async function copyTemplateFiles(templatesPath, targetPath, projectName) {
197
184
  }
198
185
  }
199
186
  }
187
+ // Generate thin wrapper route files from the route registry (single source of truth)
188
+ for (const route of managedRoutes) {
189
+ const destPath = path.join(targetPath, 'app', route.file);
190
+ const content = generateWrapper(route);
191
+ await fs.outputFile(destPath, content);
192
+ }
200
193
  }
201
194
  function runCommand(command, args, options) {
202
195
  return new Promise((resolve, reject) => {
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,4FAA4F;AAC5F,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,WAA+B,EAAE,OAAoB;IAC9E,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,0CAA0C;IAC1C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC;YAC7B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,6BAA6B;YACtC,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;IACrC,CAAC;IAED,wDAAwD;IACxD,MAAM,gBAAgB,GAAG,WAAqB,CAAC;IAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAElE,4BAA4B;IAC5B,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC;YAC7B,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,aAAa,gBAAgB,6BAA6B;YACnE,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,2BAA2B;IAC3B,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAEhC,MAAM,OAAO,GAAG,GAAG,CAAC,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC;IAEzD,IAAI,CAAC;QACH,sBAAsB;QACtB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAC3D,MAAM,iBAAiB,CAAC,aAAa,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAEtE,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAEzC,4BAA4B;QAC5B,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QAElF,uBAAuB;QACvB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACzB,MAAM,cAAc,GAAG,GAAG,CAAC,gCAAgC,cAAc,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;YAExF,IAAI,CAAC;gBACH,MAAM,UAAU,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;gBACpE,cAAc,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,cAAc,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;gBACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qDAAqD,CAAC,CAAC,CAAC;gBACjF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,gBAAgB,EAAE,CAAC,CAAC,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,cAAc,UAAU,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,YAAY,gBAAgB,OAAO,WAAW,EAAE,CAAC,CAAC;QAC1F,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,cAAc,MAAM,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,cAAc,QAAQ,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,cAAc,UAAU,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,gBAAgB,EAAE,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,cAAc,UAAU,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,cAAc,MAAM,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,EAAE,CAAC;IAEhB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACzC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,aAAqB,EAAE,UAAkB,EAAE,WAAmB;IAC7F,qDAAqD;IACrD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC3D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;IAC/D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC3D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IACpD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;IACzE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IACjE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEpD,sBAAsB;IACtB,4FAA4F;IAC5F,6FAA6F;IAC7F,MAAM,SAAS,GAAkF;QAC/F,yBAAyB;QACzB,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE;QAC/C,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE;QAC7C,EAAE,GAAG,EAAE,sBAAsB,EAAE,IAAI,EAAE,sBAAsB,EAAE;QAC7D,EAAE,GAAG,EAAE,sBAAsB,EAAE,IAAI,EAAE,sBAAsB,EAAE;QAC7D,wBAAwB;QACxB,EAAE,GAAG,EAAE,oBAAoB,EAAE,IAAI,EAAE,oBAAoB,EAAE;QACzD,uCAAuC;QACvC,EAAE,GAAG,EAAE,+BAA+B,EAAE,IAAI,EAAE,+BAA+B,EAAE;QAC/E,oEAAoE;QACpE,EAAE,GAAG,EAAE,uBAAuB,EAAE,IAAI,EAAE,uBAAuB,EAAE;QAC/D,EAAE,GAAG,EAAE,sBAAsB,EAAE,IAAI,EAAE,sBAAsB,EAAE;QAC7D,EAAE,GAAG,EAAE,yBAAyB,EAAE,IAAI,EAAE,yBAAyB,EAAE;QACnE,EAAE,GAAG,EAAE,gCAAgC,EAAE,IAAI,EAAE,gCAAgC,EAAE;QACjF,EAAE,GAAG,EAAE,sBAAsB,EAAE,IAAI,EAAE,sBAAsB,EAAE;QAC7D,EAAE,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,wBAAwB,EAAE;QACjE,gDAAgD;QAChD,EAAE,GAAG,EAAE,qBAAqB,EAAE,IAAI,EAAE,qBAAqB,EAAE;QAC3D,SAAS;QACT,EAAE,GAAG,EAAE,sBAAsB,EAAE,IAAI,EAAE,sBAAsB,EAAE;QAC7D,EAAE,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,wBAAwB,EAAE;QACjE,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,EAAE;QACjD,EAAE,GAAG,EAAE,oBAAoB,EAAE,IAAI,EAAE,oBAAoB,EAAE;QACzD,EAAE,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,mBAAmB,EAAE;QACvD,aAAa;QACb,EAAE,GAAG,EAAE,4BAA4B,EAAE,IAAI,EAAE,4BAA4B,EAAE;QACzE,EAAE,GAAG,EAAE,mCAAmC,EAAE,IAAI,EAAE,mCAAmC,EAAE;QACvF,EAAE,GAAG,EAAE,2BAA2B,EAAE,IAAI,EAAE,2BAA2B,EAAE;QACvE,gBAAgB;QAChB,EAAE,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE;QACnD,EAAE,GAAG,EAAE,oBAAoB,EAAE,IAAI,EAAE,oBAAoB,EAAE;QACzD,aAAa;QACb;YACE,GAAG,EAAE,cAAc;YACnB,IAAI,EAAE,cAAc;YACpB,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;SACnF;QACD,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE;QACzC;YACE,GAAG,EAAE,cAAc;YACnB,IAAI,EAAE,cAAc;YACpB,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,EAAE,WAAW,CAAC;SAC9E;QACD,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE;QAC/C,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE;QACvC,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,EAAE,WAAW,CAAC,EAAE;QACtH,SAAS;QACT,EAAE,GAAG,EAAE,2BAA2B,EAAE,IAAI,EAAE,2BAA2B,EAAE;QACvE,EAAE,GAAG,EAAE,6BAA6B,EAAE,IAAI,EAAE,6BAA6B,EAAE;KAC5E,CAAC;IAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEtD,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,IAAI,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACvB,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC;YACD,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,uCAAuC;YACvC,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAED,qFAAqF;IACrF,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,IAAc,EAAE,OAAwB;IAC3E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YACjC,GAAG,OAAO;YACV,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,7 @@
1
+ interface SyncOptions {
2
+ dryRun?: boolean;
3
+ yes?: boolean;
4
+ }
5
+ export declare function sync(options?: SyncOptions): Promise<void>;
6
+ export {};
7
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAaA,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AA4BD,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwRnE"}
@@ -0,0 +1,360 @@
1
+ import path from 'path';
2
+ import fs from 'fs-extra';
3
+ import { fileURLToPath } from 'url';
4
+ import chalk from 'chalk';
5
+ import prompts from 'prompts';
6
+ import { createRequire } from 'module';
7
+ import { generateWrapper, isThinWrapper } from '../lib/wrapper-gen.js';
8
+ import { insertRoutes, routeExistsInConfig } from '../lib/routes-updater.js';
9
+ const __filename = fileURLToPath(import.meta.url);
10
+ const __dirname = path.dirname(__filename);
11
+ /**
12
+ * The framework files that sync manages (these are files consumers shouldn't
13
+ * normally customize, or should be kept in sync with the template).
14
+ */
15
+ const FRAMEWORK_FILES = [
16
+ 'app/root.tsx',
17
+ 'app/entry.client.tsx',
18
+ 'app/entry.server.tsx',
19
+ 'app/components/ClientOnly.tsx',
20
+ 'server.js',
21
+ ];
22
+ export async function sync(options = {}) {
23
+ const cwd = process.cwd();
24
+ const { dryRun, yes } = options;
25
+ if (dryRun) {
26
+ console.log(chalk.dim('(dry run — no files will be written)\n'));
27
+ }
28
+ // Step 1: Load route registry from installed @chaaskit/client
29
+ const managedRoutes = await loadRouteRegistry(cwd);
30
+ if (!managedRoutes)
31
+ return;
32
+ const clientPkg = await loadClientPackageVersion(cwd);
33
+ console.log(`Reading route registry from ${chalk.cyan(`@chaaskit/client@${clientPkg}`)}...\n`);
34
+ // Step 2: Check managed routes
35
+ const routeStatuses = await checkManagedRoutes(cwd, managedRoutes);
36
+ // Step 3: Check framework files
37
+ const frameworkStatuses = await checkFrameworkFiles(cwd);
38
+ // Step 4: Check routes.ts for missing entries
39
+ const routesFilePath = path.join(cwd, 'app', 'routes.ts');
40
+ let routesContent = '';
41
+ let routesFileExists = false;
42
+ try {
43
+ routesContent = await fs.readFile(routesFilePath, 'utf-8');
44
+ routesFileExists = true;
45
+ }
46
+ catch {
47
+ // routes.ts doesn't exist
48
+ }
49
+ const missingFromRoutesTs = routesFileExists
50
+ ? managedRoutes.filter((r) => !routeExistsInConfig(routesContent, r.file))
51
+ : [];
52
+ // Step 5: Present status
53
+ const newRoutes = routeStatuses.filter((s) => s.status === 'new');
54
+ const updatableRoutes = routeStatuses.filter((s) => s.status === 'updatable');
55
+ const customizedRoutes = routeStatuses.filter((s) => s.status === 'customized');
56
+ const upToDateRoutes = routeStatuses.filter((s) => s.status === 'up-to-date');
57
+ const newFramework = frameworkStatuses.filter((s) => s.status === 'new');
58
+ const differsFramework = frameworkStatuses.filter((s) => s.status === 'differs');
59
+ const upToDateFramework = frameworkStatuses.filter((s) => s.status === 'up-to-date');
60
+ if (newRoutes.length > 0) {
61
+ console.log(chalk.green('New routes:'));
62
+ for (const s of newRoutes) {
63
+ console.log(` ${chalk.green('+')} app/${s.route.file} ${chalk.dim(s.route.title)}`);
64
+ }
65
+ console.log();
66
+ }
67
+ if (updatableRoutes.length > 0) {
68
+ console.log(chalk.yellow('Updatable routes (thin wrappers with outdated content):'));
69
+ for (const s of updatableRoutes) {
70
+ console.log(` ${chalk.yellow('~')} app/${s.route.file} ${chalk.dim(s.route.title)}`);
71
+ }
72
+ console.log();
73
+ }
74
+ if (customizedRoutes.length > 0) {
75
+ console.log(chalk.blue('User-customized routes (skipped):'));
76
+ for (const s of customizedRoutes) {
77
+ console.log(` ${chalk.blue('•')} app/${s.route.file} ${chalk.dim('(not a thin wrapper)')}`);
78
+ }
79
+ console.log();
80
+ }
81
+ if (differsFramework.length > 0 || newFramework.length > 0) {
82
+ console.log(chalk.yellow('Framework updates:'));
83
+ for (const s of newFramework) {
84
+ console.log(` ${chalk.green('+')} ${s.relativePath} ${chalk.dim('(new)')}`);
85
+ }
86
+ for (const s of differsFramework) {
87
+ console.log(` ${chalk.yellow('~')} ${s.relativePath} ${chalk.dim('(differs from template)')}`);
88
+ }
89
+ console.log();
90
+ }
91
+ // Only count routes that have their file AND are in routes.ts
92
+ const missingOnlyFromRoutesTs = missingFromRoutesTs.filter((r) => {
93
+ // Only show as missing from routes.ts if the file exists or will be created
94
+ const routeStatus = routeStatuses.find((s) => s.route.file === r.file);
95
+ return routeStatus && (routeStatus.status === 'up-to-date' || routeStatus.status === 'updatable' || routeStatus.status === 'customized');
96
+ });
97
+ if (missingOnlyFromRoutesTs.length > 0) {
98
+ console.log(chalk.yellow('Missing from routes.ts:'));
99
+ for (const r of missingOnlyFromRoutesTs) {
100
+ console.log(` ${chalk.yellow('+')} ${r.file}`);
101
+ }
102
+ console.log();
103
+ }
104
+ const totalUpToDate = upToDateRoutes.length + upToDateFramework.length;
105
+ if (totalUpToDate > 0) {
106
+ console.log(chalk.dim(`Up to date (${totalUpToDate} files)`));
107
+ console.log();
108
+ }
109
+ // Check if there's anything to do
110
+ const hasNewRoutes = newRoutes.length > 0;
111
+ const hasUpdatableRoutes = updatableRoutes.length > 0;
112
+ const hasFrameworkUpdates = differsFramework.length > 0 || newFramework.length > 0;
113
+ const hasMissingRouteEntries = missingFromRoutesTs.length > 0 &&
114
+ (hasNewRoutes || missingOnlyFromRoutesTs.length > 0);
115
+ if (!hasNewRoutes && !hasUpdatableRoutes && !hasFrameworkUpdates && !hasMissingRouteEntries) {
116
+ console.log(chalk.green('Everything is up to date!'));
117
+ return;
118
+ }
119
+ if (dryRun) {
120
+ console.log(chalk.dim('Dry run complete. No files were written.'));
121
+ return;
122
+ }
123
+ // Step 6: Confirm and execute
124
+ let createdRoutes = 0;
125
+ let updatedRoutes = 0;
126
+ let routesAddedToConfig = 0;
127
+ let frameworkUpdated = 0;
128
+ // Create new routes + update outdated thin wrappers
129
+ if (hasNewRoutes || hasUpdatableRoutes) {
130
+ const routeActions = [
131
+ ...(hasNewRoutes ? [`create ${newRoutes.length} new route(s)`] : []),
132
+ ...(hasUpdatableRoutes ? [`update ${updatableRoutes.length} outdated wrapper(s)`] : []),
133
+ ];
134
+ const routeMsg = `${routeActions.join(' and ')}${hasNewRoutes ? ' (and add to routes.ts)' : ''}`;
135
+ let confirm = yes;
136
+ if (!confirm) {
137
+ const response = await prompts({
138
+ type: 'confirm',
139
+ name: 'value',
140
+ message: `${routeMsg}?`,
141
+ initial: true,
142
+ });
143
+ confirm = response.value;
144
+ }
145
+ if (confirm) {
146
+ for (const s of newRoutes) {
147
+ const filePath = path.join(cwd, 'app', s.route.file);
148
+ await fs.ensureDir(path.dirname(filePath));
149
+ await fs.writeFile(filePath, s.expected, 'utf-8');
150
+ createdRoutes++;
151
+ }
152
+ for (const s of updatableRoutes) {
153
+ const filePath = path.join(cwd, 'app', s.route.file);
154
+ await fs.writeFile(filePath, s.expected, 'utf-8');
155
+ updatedRoutes++;
156
+ }
157
+ // Update routes.ts with new route entries
158
+ if (routesFileExists && newRoutes.length > 0) {
159
+ // Re-read routes.ts (in case it changed)
160
+ routesContent = await fs.readFile(routesFilePath, 'utf-8');
161
+ const newRoutesToAdd = newRoutes
162
+ .map((s) => s.route)
163
+ .filter((r) => !routeExistsInConfig(routesContent, r.file));
164
+ if (newRoutesToAdd.length > 0) {
165
+ const result = insertRoutes(routesContent, newRoutesToAdd);
166
+ if (result.added.length > 0) {
167
+ await fs.writeFile(routesFilePath, result.content, 'utf-8');
168
+ routesAddedToConfig = result.added.length;
169
+ }
170
+ if (result.manual.length > 0) {
171
+ console.log();
172
+ console.log(chalk.yellow('Could not auto-insert these routes (routes.ts structure not recognized):'));
173
+ console.log(chalk.yellow('Add them manually to app/routes.ts:'));
174
+ console.log();
175
+ for (const line of result.manual) {
176
+ console.log(` ${line}`);
177
+ }
178
+ console.log();
179
+ }
180
+ }
181
+ }
182
+ }
183
+ }
184
+ // Also handle routes that exist as files but are missing from routes.ts
185
+ if (missingOnlyFromRoutesTs.length > 0 && routesFileExists) {
186
+ let confirm = yes;
187
+ if (!confirm) {
188
+ const response = await prompts({
189
+ type: 'confirm',
190
+ name: 'value',
191
+ message: `Add ${missingOnlyFromRoutesTs.length} existing route(s) to routes.ts?`,
192
+ initial: true,
193
+ });
194
+ confirm = response.value;
195
+ }
196
+ if (confirm) {
197
+ routesContent = await fs.readFile(routesFilePath, 'utf-8');
198
+ const toAdd = missingOnlyFromRoutesTs.filter((r) => !routeExistsInConfig(routesContent, r.file));
199
+ if (toAdd.length > 0) {
200
+ const result = insertRoutes(routesContent, toAdd);
201
+ if (result.added.length > 0) {
202
+ await fs.writeFile(routesFilePath, result.content, 'utf-8');
203
+ routesAddedToConfig += result.added.length;
204
+ }
205
+ if (result.manual.length > 0) {
206
+ console.log();
207
+ console.log(chalk.yellow('Add these routes manually to app/routes.ts:'));
208
+ for (const line of result.manual) {
209
+ console.log(` ${line}`);
210
+ }
211
+ console.log();
212
+ }
213
+ }
214
+ }
215
+ }
216
+ // Framework file updates
217
+ if (hasFrameworkUpdates) {
218
+ let confirm = yes;
219
+ if (!confirm) {
220
+ const response = await prompts({
221
+ type: 'confirm',
222
+ name: 'value',
223
+ message: `Update ${differsFramework.length + newFramework.length} framework file(s)?`,
224
+ initial: true,
225
+ });
226
+ confirm = response.value;
227
+ }
228
+ if (confirm) {
229
+ for (const s of [...newFramework, ...differsFramework]) {
230
+ const filePath = path.join(cwd, s.relativePath);
231
+ await fs.ensureDir(path.dirname(filePath));
232
+ await fs.writeFile(filePath, s.templateContent, 'utf-8');
233
+ frameworkUpdated++;
234
+ }
235
+ }
236
+ }
237
+ // Step 7: Summary
238
+ console.log();
239
+ if (createdRoutes > 0) {
240
+ console.log(chalk.green(`✓ Created ${createdRoutes} route file(s)`));
241
+ }
242
+ if (updatedRoutes > 0) {
243
+ console.log(chalk.green(`✓ Updated ${updatedRoutes} route wrapper(s)`));
244
+ }
245
+ if (routesAddedToConfig > 0) {
246
+ console.log(chalk.green(`✓ Added ${routesAddedToConfig} route(s) to app/routes.ts`));
247
+ }
248
+ if (frameworkUpdated > 0) {
249
+ console.log(chalk.green(`✓ Updated ${frameworkUpdated} framework file(s)`));
250
+ }
251
+ const totalChanges = createdRoutes + updatedRoutes + routesAddedToConfig + frameworkUpdated;
252
+ if (totalChanges === 0) {
253
+ console.log(chalk.dim('No changes made.'));
254
+ }
255
+ else {
256
+ console.log();
257
+ console.log('Next steps:');
258
+ console.log(` ${chalk.cyan('pnpm db:generate && pnpm db:push')} (if schema changed)`);
259
+ console.log(` Restart your dev server`);
260
+ }
261
+ }
262
+ /**
263
+ * Load the managedRoutes array from the installed @chaaskit/client package.
264
+ */
265
+ async function loadRouteRegistry(cwd) {
266
+ try {
267
+ // Use createRequire to resolve from the project's node_modules
268
+ const require = createRequire(path.join(cwd, 'package.json'));
269
+ const registryPath = require.resolve('@chaaskit/client/route-registry');
270
+ const registry = await import(registryPath);
271
+ return registry.managedRoutes;
272
+ }
273
+ catch (error) {
274
+ console.error(chalk.red('Could not load route registry from @chaaskit/client.\n' +
275
+ 'Make sure @chaaskit/client is installed and up to date:\n' +
276
+ ' pnpm install @chaaskit/client@latest'));
277
+ return null;
278
+ }
279
+ }
280
+ /**
281
+ * Get the installed @chaaskit/client version.
282
+ */
283
+ async function loadClientPackageVersion(cwd) {
284
+ try {
285
+ const pkgPath = path.join(cwd, 'node_modules', '@chaaskit', 'client', 'package.json');
286
+ const pkg = JSON.parse(await fs.readFile(pkgPath, 'utf-8'));
287
+ return pkg.version || 'unknown';
288
+ }
289
+ catch {
290
+ return 'unknown';
291
+ }
292
+ }
293
+ /**
294
+ * Check each managed route against local files.
295
+ */
296
+ async function checkManagedRoutes(cwd, managedRoutes) {
297
+ const results = [];
298
+ for (const route of managedRoutes) {
299
+ const filePath = path.join(cwd, 'app', route.file);
300
+ const expected = generateWrapper(route);
301
+ if (!(await fs.pathExists(filePath))) {
302
+ results.push({ route, status: 'new', expected });
303
+ continue;
304
+ }
305
+ const actual = await fs.readFile(filePath, 'utf-8');
306
+ if (!isThinWrapper(actual)) {
307
+ results.push({ route, status: 'customized', actual });
308
+ continue;
309
+ }
310
+ if (actual === expected) {
311
+ results.push({ route, status: 'up-to-date' });
312
+ }
313
+ else {
314
+ results.push({ route, status: 'updatable', expected, actual });
315
+ }
316
+ }
317
+ return results;
318
+ }
319
+ /**
320
+ * Check framework files against templates.
321
+ */
322
+ async function checkFrameworkFiles(cwd) {
323
+ const results = [];
324
+ const templatesPath = getTemplatesPath();
325
+ for (const relativePath of FRAMEWORK_FILES) {
326
+ const templatePath = path.join(templatesPath, relativePath);
327
+ const localPath = path.join(cwd, relativePath);
328
+ let templateContent;
329
+ try {
330
+ templateContent = await fs.readFile(templatePath, 'utf-8');
331
+ }
332
+ catch {
333
+ // Template doesn't exist, skip this file
334
+ continue;
335
+ }
336
+ let localContent;
337
+ try {
338
+ localContent = await fs.readFile(localPath, 'utf-8');
339
+ }
340
+ catch {
341
+ results.push({ relativePath, status: 'new', templateContent });
342
+ continue;
343
+ }
344
+ if (localContent === templateContent) {
345
+ results.push({ relativePath, status: 'up-to-date' });
346
+ }
347
+ else {
348
+ results.push({ relativePath, status: 'differs', templateContent, localContent });
349
+ }
350
+ }
351
+ return results;
352
+ }
353
+ /**
354
+ * Get the path to the templates directory in the create-chaaskit package.
355
+ */
356
+ function getTemplatesPath() {
357
+ // When running from dist/commands/, templates are at ../templates
358
+ return path.join(__dirname, '..', 'templates');
359
+ }
360
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE7E,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAqB3C;;;GAGG;AACH,MAAM,eAAe,GAAG;IACtB,cAAc;IACd,sBAAsB;IACtB,sBAAsB;IACtB,+BAA+B;IAC/B,WAAW;CACZ,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,UAAuB,EAAE;IAClD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAEhC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,8DAA8D;IAC9D,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,CAAC,aAAa;QAAE,OAAO;IAE3B,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAAC,GAAG,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CACT,+BAA+B,KAAK,CAAC,IAAI,CAAC,oBAAoB,SAAS,EAAE,CAAC,OAAO,CAClF,CAAC;IAEF,+BAA+B;IAC/B,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAEnE,gCAAgC;IAChC,MAAM,iBAAiB,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAEzD,8CAA8C;IAC9C,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAC1D,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,CAAC;QACH,aAAa,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC3D,gBAAgB,GAAG,IAAI,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,0BAA0B;IAC5B,CAAC;IAED,MAAM,mBAAmB,GAAG,gBAAgB;QAC1C,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1E,CAAC,CAAC,EAAE,CAAC;IAEP,yBAAyB;IACzB,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;IAClE,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;IAC9E,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC;IAChF,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC;IAE9E,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;IACzE,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IACjF,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC;IAErF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yDAAyD,CAAC,CAAC,CAAC;QACrF,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC7D,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QAChG,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAChD,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;QACnG,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,8DAA8D;IAC9D,MAAM,uBAAuB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC/D,4EAA4E;QAC5E,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QACvE,OAAO,WAAW,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,YAAY,IAAI,WAAW,CAAC,MAAM,KAAK,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC;IAC3I,CAAC,CAAC,CAAC;IAEH,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,uBAAuB,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC;IACvE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,aAAa,SAAS,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,kCAAkC;IAClC,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1C,MAAM,kBAAkB,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;IACtD,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IACnF,MAAM,sBAAsB,GAC1B,mBAAmB,CAAC,MAAM,GAAG,CAAC;QAC9B,CAAC,YAAY,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEvD,IAAI,CAAC,YAAY,IAAI,CAAC,kBAAkB,IAAI,CAAC,mBAAmB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACnE,OAAO;IACT,CAAC;IAED,8BAA8B;IAC9B,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,gBAAgB,GAAG,CAAC,CAAC;IAEzB,oDAAoD;IACpD,IAAI,YAAY,IAAI,kBAAkB,EAAE,CAAC;QACvC,MAAM,YAAY,GAAG;YACnB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,SAAS,CAAC,MAAM,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,UAAU,eAAe,CAAC,MAAM,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACxF,CAAC;QACF,MAAM,QAAQ,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAEjG,IAAI,OAAO,GAAG,GAAG,CAAC;QAClB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC;gBAC7B,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,GAAG,QAAQ,GAAG;gBACvB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YACH,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC3B,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACrD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC3C,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAS,EAAE,OAAO,CAAC,CAAC;gBACnD,aAAa,EAAE,CAAC;YAClB,CAAC;YAED,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACrD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAS,EAAE,OAAO,CAAC,CAAC;gBACnD,aAAa,EAAE,CAAC;YAClB,CAAC;YAED,0CAA0C;YAC1C,IAAI,gBAAgB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7C,yCAAyC;gBACzC,aAAa,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;gBAE3D,MAAM,cAAc,GAAG,SAAS;qBAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;qBACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAE9D,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9B,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;oBAC3D,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC5B,MAAM,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;wBAC5D,mBAAmB,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC5C,CAAC;oBACD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,OAAO,CAAC,GAAG,EAAE,CAAC;wBACd,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,0EAA0E,CAC3E,CACF,CAAC;wBACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC,CAAC;wBACjE,OAAO,CAAC,GAAG,EAAE,CAAC;wBACd,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;4BACjC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;wBAC3B,CAAC;wBACD,OAAO,CAAC,GAAG,EAAE,CAAC;oBAChB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,EAAE,CAAC;QAC3D,IAAI,OAAO,GAAG,GAAG,CAAC;QAClB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC;gBAC7B,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,OAAO,uBAAuB,CAAC,MAAM,kCAAkC;gBAChF,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YACH,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC3B,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,aAAa,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAC3D,MAAM,KAAK,GAAG,uBAAuB,CAAC,MAAM,CAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CACnD,CAAC;YACF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;gBAClD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC5D,mBAAmB,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC7C,CAAC;gBACD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7B,OAAO,CAAC,GAAG,EAAE,CAAC;oBACd,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAC5D,CAAC;oBACF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBACjC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;oBAC3B,CAAC;oBACD,OAAO,CAAC,GAAG,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,IAAI,mBAAmB,EAAE,CAAC;QACxB,IAAI,OAAO,GAAG,GAAG,CAAC;QAClB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC;gBAC7B,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,UAAU,gBAAgB,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,qBAAqB;gBACrF,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YACH,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC3B,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC;gBACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;gBAChD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC3C,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,eAAgB,EAAE,OAAO,CAAC,CAAC;gBAC1D,gBAAgB,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,aAAa,gBAAgB,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,aAAa,mBAAmB,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,mBAAmB,4BAA4B,CAAC,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,gBAAgB,oBAAoB,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,YAAY,GAAG,aAAa,GAAG,aAAa,GAAG,mBAAmB,GAAG,gBAAgB,CAAC;IAC5F,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,uBAAuB,CAAC,CAAC;QACxF,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAAC,GAAW;IAC1C,IAAI,CAAC;QACH,+DAA+D;QAC/D,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5C,OAAO,QAAQ,CAAC,aAA+B,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,wDAAwD;YACtD,2DAA2D;YAC3D,wCAAwC,CAC3C,CACF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,wBAAwB,CAAC,GAAW;IACjD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;QACtF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5D,OAAO,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAC/B,GAAW,EACX,aAA6B;IAE7B,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAExC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACjD,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEpD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;YACtD,SAAS;QACX,CAAC;QAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAAC,GAAW;IAC5C,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IAEzC,KAAK,MAAM,YAAY,IAAI,eAAe,EAAE,CAAC;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAE/C,IAAI,eAAuB,CAAC;QAC5B,IAAI,CAAC;YACH,eAAe,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC7D,CAAC;QAAC,MAAM,CAAC;YACP,yCAAyC;YACzC,SAAS;QACX,CAAC;QAED,IAAI,YAAoB,CAAC;QACzB,IAAI,CAAC;YACH,YAAY,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;YAC/D,SAAS;QACX,CAAC;QAED,IAAI,YAAY,KAAK,eAAe,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB;IACvB,kEAAkE;IAClE,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AACjD,CAAC"}
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ import { init } from './commands/init.js';
4
4
  import { dev } from './commands/dev.js';
5
5
  import { build } from './commands/build.js';
6
6
  import { dbSync } from './commands/db-sync.js';
7
+ import { sync } from './commands/sync.js';
7
8
  import { addInfra } from './commands/add-infra.js';
8
9
  const program = new Command();
9
10
  program
@@ -45,6 +46,15 @@ program
45
46
  .action(async (options) => {
46
47
  await dbSync(options);
47
48
  });
49
+ // Sync routes and framework files
50
+ program
51
+ .command('sync')
52
+ .description('Sync routes and framework files from @chaaskit/client')
53
+ .option('--dry-run', 'Show changes without writing files')
54
+ .option('-y, --yes', 'Non-interactive mode (accept all changes)')
55
+ .action(async (options) => {
56
+ await sync(options);
57
+ });
48
58
  // Add infrastructure-as-code
49
59
  program
50
60
  .command('add-infra <provider>')
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,yCAAyC,CAAC;KACtD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,uBAAuB;AACvB,OAAO;KACJ,OAAO,CAAC,uBAAuB,CAAC;KAChC,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,uBAAuB,EAAE,iBAAiB,EAAE,SAAS,CAAC;KAC7D,MAAM,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;KACxD,MAAM,CAAC,WAAW,EAAE,yBAAyB,CAAC;KAC9C,MAAM,CAAC,YAAY,EAAE,0BAA0B,CAAC;KAChD,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE;IACrC,MAAM,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEL,wCAAwC;AACxC,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,mBAAmB,EAAE,cAAc,EAAE,MAAM,CAAC;KACnD,MAAM,CAAC,sBAAsB,EAAE,eAAe,EAAE,MAAM,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC;AAEL,mCAAmC;AACnC,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,KAAK,EAAE,CAAC;AAChB,CAAC,CAAC,CAAC;AAEL,uBAAuB;AACvB,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,aAAa,EAAE,sCAAsC,CAAC;KAC7D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,6BAA6B;AAC7B,OAAO;KACJ,OAAO,CAAC,sBAAsB,CAAC;KAC/B,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,2BAA2B,EAAE,gCAAgC,CAAC;KACrE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;IAClC,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,yCAAyC,CAAC;KACtD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,uBAAuB;AACvB,OAAO;KACJ,OAAO,CAAC,uBAAuB,CAAC;KAChC,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,uBAAuB,EAAE,iBAAiB,EAAE,SAAS,CAAC;KAC7D,MAAM,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;KACxD,MAAM,CAAC,WAAW,EAAE,yBAAyB,CAAC;KAC9C,MAAM,CAAC,YAAY,EAAE,0BAA0B,CAAC;KAChD,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE;IACrC,MAAM,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEL,wCAAwC;AACxC,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,mBAAmB,EAAE,cAAc,EAAE,MAAM,CAAC;KACnD,MAAM,CAAC,sBAAsB,EAAE,eAAe,EAAE,MAAM,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC;AAEL,mCAAmC;AACnC,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,KAAK,EAAE,CAAC;AAChB,CAAC,CAAC,CAAC;AAEL,uBAAuB;AACvB,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,aAAa,EAAE,sCAAsC,CAAC;KAC7D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,kCAAkC;AAClC,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,WAAW,EAAE,oCAAoC,CAAC;KACzD,MAAM,CAAC,WAAW,EAAE,2CAA2C,CAAC;KAChE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC;AAEL,6BAA6B;AAC7B,OAAO;KACJ,OAAO,CAAC,sBAAsB,CAAC;KAC/B,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,2BAA2B,EAAE,gCAAgC,CAAC;KACrE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;IAClC,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ManagedRoute } from './types.js';
2
+ /**
3
+ * Local copy of the managed routes registry for use during `create-chaaskit create`.
4
+ *
5
+ * This must be kept in sync with @chaaskit/client/route-registry.
6
+ * The `sync` command loads the registry dynamically from node_modules at runtime,
7
+ * but `create` needs a static copy because @chaaskit/client isn't installed yet.
8
+ */
9
+ export declare const managedRoutes: ManagedRoute[];
10
+ //# sourceMappingURL=managed-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-routes.d.ts","sourceRoot":"","sources":["../../src/lib/managed-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,EAAE,YAAY,EAqGvC,CAAC"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Local copy of the managed routes registry for use during `create-chaaskit create`.
3
+ *
4
+ * This must be kept in sync with @chaaskit/client/route-registry.
5
+ * The `sync` command loads the registry dynamically from node_modules at runtime,
6
+ * but `create` needs a static copy because @chaaskit/client isn't installed yet.
7
+ */
8
+ export const managedRoutes = [
9
+ // Authenticated routes (under basePath layout)
10
+ {
11
+ file: 'routes/chat._index.tsx',
12
+ title: 'Chat',
13
+ importPath: '@chaaskit/client/routes/ChatRoute',
14
+ skeleton: 'chat',
15
+ route: { path: '', section: 'authenticated' },
16
+ },
17
+ {
18
+ file: 'routes/chat.thread.$threadId.tsx',
19
+ title: 'Chat',
20
+ importPath: '@chaaskit/client/routes/ChatRoute',
21
+ skeleton: 'chat',
22
+ route: { path: 'thread/:threadId', section: 'authenticated' },
23
+ },
24
+ {
25
+ file: 'routes/chat.api-keys.tsx',
26
+ title: 'API Keys',
27
+ importPath: '@chaaskit/client/routes/ApiKeysRoute',
28
+ route: { path: 'api-keys', section: 'authenticated' },
29
+ },
30
+ {
31
+ file: 'routes/chat.documents.tsx',
32
+ title: 'Documents',
33
+ importPath: '@chaaskit/client/routes/DocumentsRoute',
34
+ route: { path: 'documents', section: 'authenticated' },
35
+ },
36
+ {
37
+ file: 'routes/chat.automations.tsx',
38
+ title: 'Automations',
39
+ importPath: '@chaaskit/client/routes/AutomationsRoute',
40
+ route: { path: 'automations', section: 'authenticated' },
41
+ },
42
+ {
43
+ file: 'routes/chat.team.$teamId.settings.tsx',
44
+ title: 'Team Settings',
45
+ importPath: '@chaaskit/client/routes/TeamSettingsRoute',
46
+ route: { path: 'team/:teamId/settings', section: 'authenticated' },
47
+ },
48
+ {
49
+ file: 'routes/chat.admin._index.tsx',
50
+ title: 'Admin Dashboard',
51
+ importPath: '@chaaskit/client/routes/AdminDashboardRoute',
52
+ route: { path: 'admin', section: 'authenticated' },
53
+ },
54
+ {
55
+ file: 'routes/chat.admin.users.tsx',
56
+ title: 'Admin Users',
57
+ importPath: '@chaaskit/client/routes/AdminUsersRoute',
58
+ route: { path: 'admin/users', section: 'authenticated' },
59
+ },
60
+ {
61
+ file: 'routes/chat.admin.waitlist.tsx',
62
+ title: 'Admin Waitlist',
63
+ importPath: '@chaaskit/client/routes/AdminWaitlistRoute',
64
+ route: { path: 'admin/waitlist', section: 'authenticated' },
65
+ },
66
+ {
67
+ file: 'routes/chat.admin.promo-codes.tsx',
68
+ title: 'Admin Promo Codes',
69
+ importPath: '@chaaskit/client/routes/AdminPromoCodesRoute',
70
+ route: { path: 'admin/promo-codes', section: 'authenticated' },
71
+ },
72
+ {
73
+ file: 'routes/chat.admin.teams._index.tsx',
74
+ title: 'Admin Teams',
75
+ importPath: '@chaaskit/client/routes/AdminTeamsRoute',
76
+ route: { path: 'admin/teams', section: 'authenticated' },
77
+ },
78
+ {
79
+ file: 'routes/chat.admin.teams.$teamId.tsx',
80
+ title: 'Admin Team',
81
+ importPath: '@chaaskit/client/routes/AdminTeamRoute',
82
+ route: { path: 'admin/teams/:teamId', section: 'authenticated' },
83
+ },
84
+ // Public routes
85
+ {
86
+ file: 'routes/pricing.tsx',
87
+ title: 'Pricing',
88
+ importPath: '@chaaskit/client/routes/PricingRoute',
89
+ route: { path: 'pricing', section: 'public' },
90
+ },
91
+ {
92
+ file: 'routes/verify-email.tsx',
93
+ title: 'Verify Email',
94
+ importPath: '@chaaskit/client/routes/VerifyEmailRoute',
95
+ route: { path: 'verify-email', section: 'public' },
96
+ },
97
+ {
98
+ file: 'routes/invite.$token.tsx',
99
+ title: 'Accept Invite',
100
+ importPath: '@chaaskit/client/routes/AcceptInviteRoute',
101
+ route: { path: 'invite/:token', section: 'public' },
102
+ },
103
+ {
104
+ file: 'routes/oauth.consent.tsx',
105
+ title: 'OAuth Consent',
106
+ importPath: '@chaaskit/client/routes/OAuthConsentRoute',
107
+ route: { path: 'oauth/consent', section: 'public' },
108
+ },
109
+ ];
110
+ //# sourceMappingURL=managed-routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-routes.js","sourceRoot":"","sources":["../../src/lib/managed-routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { ManagedRoute } from './types.js';
2
+ interface InsertionResult {
3
+ content: string;
4
+ added: string[];
5
+ manual: string[];
6
+ }
7
+ /**
8
+ * Generate a route() call for routes.ts from a ManagedRoute entry.
9
+ */
10
+ export declare function generateRouteCall(r: ManagedRoute): string;
11
+ /**
12
+ * Insert missing route entries into routes.ts content.
13
+ *
14
+ * Parses the file structure to find:
15
+ * - The layout('routes/chat.tsx' line (boundary between public/authenticated)
16
+ * - The closing `]),` of the layout's children array
17
+ *
18
+ * Returns updated content plus lists of what was added and what needs manual insertion.
19
+ */
20
+ export declare function insertRoutes(routesContent: string, missingRoutes: ManagedRoute[]): InsertionResult;
21
+ /**
22
+ * Check if a route file path already exists in routes.ts content.
23
+ */
24
+ export declare function routeExistsInConfig(routesContent: string, filePath: string): boolean;
25
+ export {};
26
+ //# sourceMappingURL=routes-updater.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes-updater.d.ts","sourceRoot":"","sources":["../../src/lib/routes-updater.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAQzD;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,YAAY,EAAE,GAC5B,eAAe,CAiFjB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpF"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Generate a route() call for routes.ts from a ManagedRoute entry.
3
+ */
4
+ export function generateRouteCall(r) {
5
+ if (r.route.section === 'public') {
6
+ return ` route('${r.route.path}', '${r.file}'),`;
7
+ }
8
+ if (r.route.path === '') {
9
+ return ` route(base, '${r.file}'),`;
10
+ }
11
+ return ` route(\`\${base}/${r.route.path}\`, '${r.file}'),`;
12
+ }
13
+ /**
14
+ * Insert missing route entries into routes.ts content.
15
+ *
16
+ * Parses the file structure to find:
17
+ * - The layout('routes/chat.tsx' line (boundary between public/authenticated)
18
+ * - The closing `]),` of the layout's children array
19
+ *
20
+ * Returns updated content plus lists of what was added and what needs manual insertion.
21
+ */
22
+ export function insertRoutes(routesContent, missingRoutes) {
23
+ if (missingRoutes.length === 0) {
24
+ return { content: routesContent, added: [], manual: [] };
25
+ }
26
+ const lines = routesContent.split('\n');
27
+ const added = [];
28
+ const manual = [];
29
+ // Find the layout line: layout('routes/chat.tsx'
30
+ let layoutLineIdx = -1;
31
+ for (let i = 0; i < lines.length; i++) {
32
+ if (lines[i].match(/layout\s*\(\s*['"]routes\/chat\.tsx['"]/)) {
33
+ layoutLineIdx = i;
34
+ break;
35
+ }
36
+ }
37
+ if (layoutLineIdx === -1) {
38
+ // Can't find layout boundary - all routes need manual insertion
39
+ for (const r of missingRoutes) {
40
+ manual.push(generateRouteCall(r));
41
+ }
42
+ return { content: routesContent, added, manual };
43
+ }
44
+ // Find the closing `]),` of the layout's children array by tracking bracket depth
45
+ let layoutCloseIdx = -1;
46
+ let depth = 0;
47
+ let foundOpenBracket = false;
48
+ for (let i = layoutLineIdx; i < lines.length; i++) {
49
+ for (const ch of lines[i]) {
50
+ if (ch === '[') {
51
+ depth++;
52
+ foundOpenBracket = true;
53
+ }
54
+ else if (ch === ']') {
55
+ depth--;
56
+ if (foundOpenBracket && depth === 0) {
57
+ layoutCloseIdx = i;
58
+ break;
59
+ }
60
+ }
61
+ }
62
+ if (layoutCloseIdx !== -1)
63
+ break;
64
+ }
65
+ if (layoutCloseIdx === -1) {
66
+ // Can't find layout close - all routes need manual insertion
67
+ for (const r of missingRoutes) {
68
+ manual.push(generateRouteCall(r));
69
+ }
70
+ return { content: routesContent, added, manual };
71
+ }
72
+ // Separate missing routes into public and authenticated
73
+ const publicRoutes = missingRoutes.filter((r) => r.route.section === 'public');
74
+ const authRoutes = missingRoutes.filter((r) => r.route.section === 'authenticated');
75
+ // Insert authenticated routes before the layout close line
76
+ if (authRoutes.length > 0) {
77
+ const authLines = authRoutes.map((r) => generateRouteCall(r));
78
+ // Insert before layoutCloseIdx
79
+ lines.splice(layoutCloseIdx, 0, ...authLines);
80
+ added.push(...authRoutes.map((r) => r.file));
81
+ // Adjust layoutCloseIdx for the inserted lines
82
+ layoutCloseIdx += authLines.length;
83
+ // Also adjust layoutLineIdx reference isn't needed since we insert public before it
84
+ }
85
+ // Recalculate layoutLineIdx after auth insertions (it may have shifted if auth was inserted before)
86
+ // Actually auth routes are inserted after layoutLineIdx, so layoutLineIdx stays the same.
87
+ // Insert public routes before the layout line
88
+ if (publicRoutes.length > 0) {
89
+ const publicLines = publicRoutes.map((r) => generateRouteCall(r));
90
+ // Insert before layoutLineIdx (just before the layout block)
91
+ lines.splice(layoutLineIdx, 0, ...publicLines);
92
+ added.push(...publicRoutes.map((r) => r.file));
93
+ }
94
+ return { content: lines.join('\n'), added, manual };
95
+ }
96
+ /**
97
+ * Check if a route file path already exists in routes.ts content.
98
+ */
99
+ export function routeExistsInConfig(routesContent, filePath) {
100
+ return routesContent.includes(`'${filePath}'`) || routesContent.includes(`"${filePath}"`);
101
+ }
102
+ //# sourceMappingURL=routes-updater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes-updater.js","sourceRoot":"","sources":["../../src/lib/routes-updater.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Mirrors the ManagedRoute type from @chaaskit/client/route-registry.
3
+ * Duplicated here to avoid a compile-time dependency on @chaaskit/client.
4
+ */
5
+ export interface ManagedRoute {
6
+ file: string;
7
+ title: string;
8
+ importPath: string;
9
+ skeleton?: 'chat';
10
+ route: {
11
+ path: string;
12
+ section: 'public' | 'authenticated';
13
+ };
14
+ }
15
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,QAAQ,GAAG,eAAe,CAAC;KACrC,CAAC;CACH"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import type { ManagedRoute } from './types.js';
2
+ /**
3
+ * Generate the thin wrapper file content for a managed route.
4
+ */
5
+ export declare function generateWrapper(r: ManagedRoute): string;
6
+ /**
7
+ * Detect if a file's content is a thin wrapper (managed by the registry).
8
+ */
9
+ export declare function isThinWrapper(content: string): boolean;
10
+ //# sourceMappingURL=wrapper-gen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapper-gen.d.ts","sourceRoot":"","sources":["../../src/lib/wrapper-gen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAevD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAKtD"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Generate the thin wrapper file content for a managed route.
3
+ */
4
+ export function generateWrapper(r) {
5
+ const skeleton = r.skeleton ? `\n skeleton: '${r.skeleton}',` : '';
6
+ return [
7
+ `import { createRoute } from '@chaaskit/client/ssr-utils';`,
8
+ ``,
9
+ `const route = createRoute({`,
10
+ ` title: '${r.title}',`,
11
+ ` load: () => import('${r.importPath}'),${skeleton}`,
12
+ `});`,
13
+ ``,
14
+ `export const meta = route.meta;`,
15
+ `export const links = route.links;`,
16
+ `export default route.default;`,
17
+ ``,
18
+ ].join('\n');
19
+ }
20
+ /**
21
+ * Detect if a file's content is a thin wrapper (managed by the registry).
22
+ */
23
+ export function isThinWrapper(content) {
24
+ return (content.includes("from '@chaaskit/client/ssr-utils'") &&
25
+ content.includes('createRoute('));
26
+ }
27
+ //# sourceMappingURL=wrapper-gen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapper-gen.js","sourceRoot":"","sources":["../../src/lib/wrapper-gen.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,CAAe;IAC7C,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,OAAO;QACL,2DAA2D;QAC3D,EAAE;QACF,6BAA6B;QAC7B,aAAa,CAAC,CAAC,KAAK,IAAI;QACxB,yBAAyB,CAAC,CAAC,UAAU,MAAM,QAAQ,EAAE;QACrD,KAAK;QACL,EAAE;QACF,iCAAiC;QACjC,mCAAmC;QACnC,+BAA+B;QAC/B,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,CACL,OAAO,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QACrD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CACjC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-chaaskit",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "CLI to create and manage ChaasKit AI chat SaaS applications",
5
5
  "license": "MIT",
6
6
  "author": "Matt Ferrante <@ferrants>",
@@ -1,11 +0,0 @@
1
- import { createRoute } from '@chaaskit/client/ssr-utils';
2
-
3
- const route = createRoute({
4
- title: 'Chat',
5
- load: () => import('@chaaskit/client/routes/ChatRoute'),
6
- skeleton: 'chat',
7
- });
8
-
9
- export const meta = route.meta;
10
- export const links = route.links;
11
- export default route.default;
@@ -1,10 +0,0 @@
1
- import { createRoute } from '@chaaskit/client/ssr-utils';
2
-
3
- const route = createRoute({
4
- title: 'Admin Dashboard',
5
- load: () => import('@chaaskit/client/routes/AdminDashboardRoute'),
6
- });
7
-
8
- export const meta = route.meta;
9
- export const links = route.links;
10
- export default route.default;
@@ -1,10 +0,0 @@
1
- import { createRoute } from '@chaaskit/client/ssr-utils';
2
-
3
- const route = createRoute({
4
- title: 'Admin Promo Codes',
5
- load: () => import('@chaaskit/client/routes/AdminPromoCodesRoute'),
6
- });
7
-
8
- export const meta = route.meta;
9
- export const links = route.links;
10
- export default route.default;
@@ -1,10 +0,0 @@
1
- import { createRoute } from '@chaaskit/client/ssr-utils';
2
-
3
- const route = createRoute({
4
- title: 'Admin - Team Details',
5
- load: () => import('@chaaskit/client/routes/AdminTeamRoute'),
6
- });
7
-
8
- export const meta = route.meta;
9
- export const links = route.links;
10
- export default route.default;
@@ -1,10 +0,0 @@
1
- import { createRoute } from '@chaaskit/client/ssr-utils';
2
-
3
- const route = createRoute({
4
- title: 'Admin - Teams',
5
- load: () => import('@chaaskit/client/routes/AdminTeamsRoute'),
6
- });
7
-
8
- export const meta = route.meta;
9
- export const links = route.links;
10
- export default route.default;
@@ -1,10 +0,0 @@
1
- import { createRoute } from '@chaaskit/client/ssr-utils';
2
-
3
- const route = createRoute({
4
- title: 'Admin - Users',
5
- load: () => import('@chaaskit/client/routes/AdminUsersRoute'),
6
- });
7
-
8
- export const meta = route.meta;
9
- export const links = route.links;
10
- export default route.default;
@@ -1,10 +0,0 @@
1
- import { createRoute } from '@chaaskit/client/ssr-utils';
2
-
3
- const route = createRoute({
4
- title: 'Admin Waitlist',
5
- load: () => import('@chaaskit/client/routes/AdminWaitlistRoute'),
6
- });
7
-
8
- export const meta = route.meta;
9
- export const links = route.links;
10
- export default route.default;
@@ -1,10 +0,0 @@
1
- import { createRoute } from '@chaaskit/client/ssr-utils';
2
-
3
- const route = createRoute({
4
- title: 'API Keys',
5
- load: () => import('@chaaskit/client/routes/ApiKeysRoute'),
6
- });
7
-
8
- export const meta = route.meta;
9
- export const links = route.links;
10
- export default route.default;
@@ -1,10 +0,0 @@
1
- import { createRoute } from '@chaaskit/client/ssr-utils';
2
-
3
- const route = createRoute({
4
- title: 'Automations',
5
- load: () => import('@chaaskit/client/routes/AutomationsRoute'),
6
- });
7
-
8
- export const meta = route.meta;
9
- export const links = route.links;
10
- export default route.default;
@@ -1,10 +0,0 @@
1
- import { createRoute } from '@chaaskit/client/ssr-utils';
2
-
3
- const route = createRoute({
4
- title: 'Documents',
5
- load: () => import('@chaaskit/client/routes/DocumentsRoute'),
6
- });
7
-
8
- export const meta = route.meta;
9
- export const links = route.links;
10
- export default route.default;
@@ -1,10 +0,0 @@
1
- import { createRoute } from '@chaaskit/client/ssr-utils';
2
-
3
- const route = createRoute({
4
- title: 'Team Settings',
5
- load: () => import('@chaaskit/client/routes/TeamSettingsRoute'),
6
- });
7
-
8
- export const meta = route.meta;
9
- export const links = route.links;
10
- export default route.default;
@@ -1,11 +0,0 @@
1
- import { createRoute } from '@chaaskit/client/ssr-utils';
2
-
3
- const route = createRoute({
4
- title: 'Chat',
5
- load: () => import('@chaaskit/client/routes/ChatRoute'),
6
- skeleton: 'chat',
7
- });
8
-
9
- export const meta = route.meta;
10
- export const links = route.links;
11
- export default route.default;
@@ -1,10 +0,0 @@
1
- import { createRoute } from '@chaaskit/client/ssr-utils';
2
-
3
- const route = createRoute({
4
- title: 'Accept Invitation',
5
- load: () => import('@chaaskit/client/routes/AcceptInviteRoute'),
6
- });
7
-
8
- export const meta = route.meta;
9
- export const links = route.links;
10
- export default route.default;
@@ -1,10 +0,0 @@
1
- import { createRoute } from '@chaaskit/client/ssr-utils';
2
-
3
- const route = createRoute({
4
- title: 'OAuth Consent',
5
- load: () => import('@chaaskit/client/routes/OAuthConsentRoute'),
6
- });
7
-
8
- export const meta = route.meta;
9
- export const links = route.links;
10
- export default route.default;
@@ -1,10 +0,0 @@
1
- import { createRoute } from '@chaaskit/client/ssr-utils';
2
-
3
- const route = createRoute({
4
- title: 'Pricing',
5
- load: () => import('@chaaskit/client/routes/PricingRoute'),
6
- });
7
-
8
- export const meta = route.meta;
9
- export const links = route.links;
10
- export default route.default;
@@ -1,10 +0,0 @@
1
- import { createRoute } from '@chaaskit/client/ssr-utils';
2
-
3
- const route = createRoute({
4
- title: 'Verify Email',
5
- load: () => import('@chaaskit/client/routes/VerifyEmailRoute'),
6
- });
7
-
8
- export const meta = route.meta;
9
- export const links = route.links;
10
- export default route.default;