@agility/create-next-app 1.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/.claude/settings.json +7 -0
  2. package/.claude/settings.local.json +24 -0
  3. package/FEATURE_ROADMAP.md +343 -0
  4. package/README.md +205 -0
  5. package/TESTING.md +131 -0
  6. package/bin/create-agility-app.js +48 -0
  7. package/dist/agility/api-keys/generateApiKeys.d.ts +9 -0
  8. package/dist/agility/api-keys/generateApiKeys.d.ts.map +1 -0
  9. package/dist/agility/api-keys/generateApiKeys.js +99 -0
  10. package/dist/agility/api-keys/generateApiKeys.js.map +1 -0
  11. package/dist/agility/api-keys/getApiKeys.d.ts +9 -0
  12. package/dist/agility/api-keys/getApiKeys.d.ts.map +1 -0
  13. package/dist/agility/api-keys/getApiKeys.js +14 -0
  14. package/dist/agility/api-keys/getApiKeys.js.map +1 -0
  15. package/dist/agility/index.d.ts +3 -0
  16. package/dist/agility/index.d.ts.map +1 -0
  17. package/dist/agility/index.js +8 -0
  18. package/dist/agility/index.js.map +1 -0
  19. package/dist/agility/instance/createNewInstance.d.ts +8 -0
  20. package/dist/agility/instance/createNewInstance.d.ts.map +1 -0
  21. package/dist/agility/instance/createNewInstance.js +65 -0
  22. package/dist/agility/instance/createNewInstance.js.map +1 -0
  23. package/dist/agility/instance/getAvailableInstances.d.ts +8 -0
  24. package/dist/agility/instance/getAvailableInstances.d.ts.map +1 -0
  25. package/dist/agility/instance/getAvailableInstances.js +43 -0
  26. package/dist/agility/instance/getAvailableInstances.js.map +1 -0
  27. package/dist/agility/instance/manageInstance.d.ts +9 -0
  28. package/dist/agility/instance/manageInstance.d.ts.map +1 -0
  29. package/dist/agility/instance/manageInstance.js +82 -0
  30. package/dist/agility/instance/manageInstance.js.map +1 -0
  31. package/dist/agility/utils/getMgmtAPIUrl.d.ts +20 -0
  32. package/dist/agility/utils/getMgmtAPIUrl.d.ts.map +1 -0
  33. package/dist/agility/utils/getMgmtAPIUrl.js +61 -0
  34. package/dist/agility/utils/getMgmtAPIUrl.js.map +1 -0
  35. package/dist/auth/api-key/authenticateWithApiKey.d.ts +6 -0
  36. package/dist/auth/api-key/authenticateWithApiKey.d.ts.map +1 -0
  37. package/dist/auth/api-key/authenticateWithApiKey.js +28 -0
  38. package/dist/auth/api-key/authenticateWithApiKey.js.map +1 -0
  39. package/dist/auth/index.d.ts +3 -0
  40. package/dist/auth/index.d.ts.map +1 -0
  41. package/dist/auth/index.js +8 -0
  42. package/dist/auth/index.js.map +1 -0
  43. package/dist/auth/oauth/authenticate.d.ts +6 -0
  44. package/dist/auth/oauth/authenticate.d.ts.map +1 -0
  45. package/dist/auth/oauth/authenticate.js +162 -0
  46. package/dist/auth/oauth/authenticate.js.map +1 -0
  47. package/dist/auth/oauth/constants.d.ts +5 -0
  48. package/dist/auth/oauth/constants.d.ts.map +1 -0
  49. package/dist/auth/oauth/constants.js +9 -0
  50. package/dist/auth/oauth/constants.js.map +1 -0
  51. package/dist/auth/oauth/exchangeCodeForToken.d.ts +7 -0
  52. package/dist/auth/oauth/exchangeCodeForToken.d.ts.map +1 -0
  53. package/dist/auth/oauth/exchangeCodeForToken.js +39 -0
  54. package/dist/auth/oauth/exchangeCodeForToken.js.map +1 -0
  55. package/dist/cli/index.d.ts +3 -0
  56. package/dist/cli/index.d.ts.map +1 -0
  57. package/dist/cli/index.js +290 -0
  58. package/dist/cli/index.js.map +1 -0
  59. package/dist/cli/promptForMissingOptions.d.ts +8 -0
  60. package/dist/cli/promptForMissingOptions.d.ts.map +1 -0
  61. package/dist/cli/promptForMissingOptions.js +92 -0
  62. package/dist/cli/promptForMissingOptions.js.map +1 -0
  63. package/dist/config/env/createEnvFile.d.ts +6 -0
  64. package/dist/config/env/createEnvFile.d.ts.map +1 -0
  65. package/dist/config/env/createEnvFile.js +31 -0
  66. package/dist/config/env/createEnvFile.js.map +1 -0
  67. package/dist/config/index.d.ts +2 -0
  68. package/dist/config/index.d.ts.map +1 -0
  69. package/dist/config/index.js +6 -0
  70. package/dist/config/index.js.map +1 -0
  71. package/dist/config/mcp/createMcpConfig.d.ts +5 -0
  72. package/dist/config/mcp/createMcpConfig.d.ts.map +1 -0
  73. package/dist/config/mcp/createMcpConfig.js +32 -0
  74. package/dist/config/mcp/createMcpConfig.js.map +1 -0
  75. package/dist/config/packages/installAgilityPackages.d.ts +6 -0
  76. package/dist/config/packages/installAgilityPackages.d.ts.map +1 -0
  77. package/dist/config/packages/installAgilityPackages.js +61 -0
  78. package/dist/config/packages/installAgilityPackages.js.map +1 -0
  79. package/dist/config/setupProject.d.ts +8 -0
  80. package/dist/config/setupProject.d.ts.map +1 -0
  81. package/dist/config/setupProject.js +32 -0
  82. package/dist/config/setupProject.js.map +1 -0
  83. package/dist/create-next-app/createNextApp.d.ts +9 -0
  84. package/dist/create-next-app/createNextApp.d.ts.map +1 -0
  85. package/dist/create-next-app/createNextApp.js +83 -0
  86. package/dist/create-next-app/createNextApp.js.map +1 -0
  87. package/dist/create-next-app/index.d.ts +3 -0
  88. package/dist/create-next-app/index.d.ts.map +1 -0
  89. package/dist/create-next-app/index.js +8 -0
  90. package/dist/create-next-app/index.js.map +1 -0
  91. package/dist/scaffold/components/createPageComponents.d.ts +6 -0
  92. package/dist/scaffold/components/createPageComponents.d.ts.map +1 -0
  93. package/dist/scaffold/components/createPageComponents.js +62 -0
  94. package/dist/scaffold/components/createPageComponents.js.map +1 -0
  95. package/dist/scaffold/containers/createContainers.d.ts +6 -0
  96. package/dist/scaffold/containers/createContainers.d.ts.map +1 -0
  97. package/dist/scaffold/containers/createContainers.js +48 -0
  98. package/dist/scaffold/containers/createContainers.js.map +1 -0
  99. package/dist/scaffold/index.d.ts +2 -0
  100. package/dist/scaffold/index.d.ts.map +1 -0
  101. package/dist/scaffold/index.js +6 -0
  102. package/dist/scaffold/index.js.map +1 -0
  103. package/dist/scaffold/instance/createBlankInstance.d.ts +8 -0
  104. package/dist/scaffold/instance/createBlankInstance.d.ts.map +1 -0
  105. package/dist/scaffold/instance/createBlankInstance.js +51 -0
  106. package/dist/scaffold/instance/createBlankInstance.js.map +1 -0
  107. package/dist/scaffold/models/createContentModels.d.ts +6 -0
  108. package/dist/scaffold/models/createContentModels.d.ts.map +1 -0
  109. package/dist/scaffold/models/createContentModels.js +70 -0
  110. package/dist/scaffold/models/createContentModels.js.map +1 -0
  111. package/dist/templates/copyDirectory.d.ts +5 -0
  112. package/dist/templates/copyDirectory.d.ts.map +1 -0
  113. package/dist/templates/copyDirectory.js +28 -0
  114. package/dist/templates/copyDirectory.js.map +1 -0
  115. package/dist/templates/copyTemplates.d.ts +8 -0
  116. package/dist/templates/copyTemplates.d.ts.map +1 -0
  117. package/dist/templates/copyTemplates.js +58 -0
  118. package/dist/templates/copyTemplates.js.map +1 -0
  119. package/dist/templates/index.d.ts +2 -0
  120. package/dist/templates/index.d.ts.map +1 -0
  121. package/dist/templates/index.js +6 -0
  122. package/dist/templates/index.js.map +1 -0
  123. package/dist/types/index.d.ts +50 -0
  124. package/dist/types/index.d.ts.map +1 -0
  125. package/dist/types/index.js +3 -0
  126. package/dist/types/index.js.map +1 -0
  127. package/dist/utils/git.d.ts +9 -0
  128. package/dist/utils/git.d.ts.map +1 -0
  129. package/dist/utils/git.js +71 -0
  130. package/dist/utils/git.js.map +1 -0
  131. package/dist/utils/validation.d.ts +45 -0
  132. package/dist/utils/validation.d.ts.map +1 -0
  133. package/dist/utils/validation.js +180 -0
  134. package/dist/utils/validation.js.map +1 -0
  135. package/package.json +45 -0
  136. package/src/agility/api-keys/generateApiKeys.ts +100 -0
  137. package/src/agility/api-keys/getApiKeys.ts +13 -0
  138. package/src/agility/index.ts +3 -0
  139. package/src/agility/instance/createNewInstance.ts +67 -0
  140. package/src/agility/instance/getAvailableInstances.ts +49 -0
  141. package/src/agility/instance/manageInstance.ts +90 -0
  142. package/src/agility/utils/getMgmtAPIUrl.ts +68 -0
  143. package/src/auth/api-key/authenticateWithApiKey.ts +24 -0
  144. package/src/auth/index.ts +3 -0
  145. package/src/auth/oauth/authenticate.ts +165 -0
  146. package/src/auth/oauth/constants.ts +6 -0
  147. package/src/auth/oauth/exchangeCodeForToken.ts +43 -0
  148. package/src/cli/index.ts +281 -0
  149. package/src/cli/promptForMissingOptions.ts +104 -0
  150. package/src/config/env/createEnvFile.ts +30 -0
  151. package/src/config/index.ts +2 -0
  152. package/src/config/mcp/createMcpConfig.ts +30 -0
  153. package/src/config/packages/installAgilityPackages.ts +63 -0
  154. package/src/config/setupProject.ts +31 -0
  155. package/src/create-next-app/createNextApp.ts +75 -0
  156. package/src/create-next-app/index.ts +3 -0
  157. package/src/scaffold/components/createPageComponents.ts +74 -0
  158. package/src/scaffold/containers/createContainers.ts +55 -0
  159. package/src/scaffold/index.ts +2 -0
  160. package/src/scaffold/instance/createBlankInstance.ts +55 -0
  161. package/src/scaffold/models/createContentModels.ts +83 -0
  162. package/src/templates/copyDirectory.ts +24 -0
  163. package/src/templates/copyTemplates.ts +57 -0
  164. package/src/templates/index.ts +2 -0
  165. package/src/types/index.ts +55 -0
  166. package/src/utils/git.ts +74 -0
  167. package/src/utils/validation.ts +184 -0
  168. package/templates/.claude/QUICK-START.md +230 -0
  169. package/templates/.claude/README.md +32 -0
  170. package/templates/.claude/settings.json +8 -0
  171. package/templates/BLANK-INSTANCE-SETUP.md +375 -0
  172. package/templates/DEVELOPMENT.md +160 -0
  173. package/templates/EXAMPLE-PROMPTS.md +643 -0
  174. package/templates/PROMPTS.md +410 -0
  175. package/templates/README.md +281 -0
  176. package/templates/agents.md +429 -0
  177. package/templates/app/[locale]/[...slug]/error.tsx +17 -0
  178. package/templates/app/[locale]/[...slug]/not-found.tsx +9 -0
  179. package/templates/app/[locale]/[...slug]/page.tsx +102 -0
  180. package/templates/app/[locale]/layout.tsx +22 -0
  181. package/templates/app/[locale]/page.tsx +12 -0
  182. package/templates/app/api/dynamic-redirect/route.ts +24 -0
  183. package/templates/app/api/preview/exit/route.ts +34 -0
  184. package/templates/app/api/preview/route.ts +63 -0
  185. package/templates/app/api/revalidate/route.ts +118 -0
  186. package/templates/components/agility-components/RichTextArea.tsx +66 -0
  187. package/templates/components/agility-components/index.ts +30 -0
  188. package/templates/components/agility-pages/MainTemplate.tsx +36 -0
  189. package/templates/components/agility-pages/index.ts +11 -0
  190. package/templates/docs/01-agility-cms-overview.md +139 -0
  191. package/templates/docs/02-page-routing.md +251 -0
  192. package/templates/docs/03-creating-components.md +462 -0
  193. package/templates/docs/04-data-fetching.md +484 -0
  194. package/templates/docs/05-containers-and-lists.md +596 -0
  195. package/templates/docs/06-localization.md +561 -0
  196. package/templates/docs/07-caching-strategies.md +410 -0
  197. package/templates/docs/08-common-components.md +756 -0
  198. package/templates/docs/09-whats-included.md +279 -0
  199. package/templates/docs/10-mcp-server-setup.md +153 -0
  200. package/templates/docs/11-linked-nested-content.md +611 -0
  201. package/templates/docs/README.md +164 -0
  202. package/templates/lib/cms/getAgilityContext.ts +28 -0
  203. package/templates/lib/cms/getAgilityPage.ts +51 -0
  204. package/templates/lib/cms/getAgilitySDK.ts +22 -0
  205. package/templates/lib/cms/getContentItem.ts +20 -0
  206. package/templates/lib/cms/getContentList.ts +19 -0
  207. package/templates/lib/cms/getRedirections.ts +85 -0
  208. package/templates/lib/cms/getSitemapFlat.ts +19 -0
  209. package/templates/lib/cms/getSitemapNested.ts +19 -0
  210. package/templates/lib/env.ts +99 -0
  211. package/templates/lib/i18n/config.ts +28 -0
  212. package/templates/proxy.ts +101 -0
  213. package/tsconfig.json +21 -0
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.promptForMissingOptions = promptForMissingOptions;
7
+ const inquirer_1 = __importDefault(require("inquirer"));
8
+ /**
9
+ * Prompts for missing options interactively
10
+ */
11
+ async function promptForMissingOptions(projectName, options, defaultProjectName) {
12
+ const questions = [];
13
+ // Prompt for project name if not provided
14
+ if (!projectName) {
15
+ questions.push({
16
+ type: 'input',
17
+ name: 'projectName',
18
+ message: 'What is your project named?',
19
+ default: defaultProjectName || 'my-app',
20
+ validate: (input) => {
21
+ if (!input || input.trim().length === 0) {
22
+ return 'Project name is required';
23
+ }
24
+ // Check for valid project name (no spaces, special chars)
25
+ if (!/^[a-z0-9-_]+$/i.test(input)) {
26
+ return 'Project name can only contain letters, numbers, hyphens, and underscores';
27
+ }
28
+ return true;
29
+ }
30
+ });
31
+ }
32
+ // TypeScript and App Router are always enabled by default (no prompt)
33
+ // Only override if explicitly set via flags
34
+ // Prompt for Tailwind CSS if not specified
35
+ if (options.tailwind === undefined) {
36
+ questions.push({
37
+ type: 'confirm',
38
+ name: 'tailwind',
39
+ message: 'Would you like to use Tailwind CSS?',
40
+ default: true
41
+ });
42
+ }
43
+ // Prompt for ESLint if not specified
44
+ if (options.eslint === undefined) {
45
+ questions.push({
46
+ type: 'confirm',
47
+ name: 'eslint',
48
+ message: 'Would you like to use ESLint?',
49
+ default: true
50
+ });
51
+ }
52
+ // Prompt for src directory if not specified
53
+ if (options.srcDir === undefined) {
54
+ questions.push({
55
+ type: 'confirm',
56
+ name: 'srcDir',
57
+ message: 'Would you like to use the src directory?',
58
+ default: true
59
+ });
60
+ }
61
+ // Default to TypeScript and App Router (unless explicitly overridden)
62
+ const mergedOptions = {
63
+ ...options,
64
+ projectName: projectName
65
+ };
66
+ if (!options.typescript && !options.javascript) {
67
+ mergedOptions.typescript = true;
68
+ mergedOptions.javascript = false;
69
+ }
70
+ if (options.app === undefined) {
71
+ mergedOptions.app = true;
72
+ }
73
+ // Only prompt if we have questions
74
+ if (questions.length === 0) {
75
+ return mergedOptions;
76
+ }
77
+ const answers = await inquirer_1.default.prompt(questions);
78
+ // Merge answers with existing options
79
+ mergedOptions.projectName = projectName || answers.projectName;
80
+ // Handle boolean options from prompts
81
+ if (answers.tailwind !== undefined) {
82
+ mergedOptions.tailwind = answers.tailwind;
83
+ }
84
+ if (answers.eslint !== undefined) {
85
+ mergedOptions.eslint = answers.eslint;
86
+ }
87
+ if (answers.srcDir !== undefined) {
88
+ mergedOptions.srcDir = answers.srcDir;
89
+ }
90
+ return mergedOptions;
91
+ }
92
+ //# sourceMappingURL=promptForMissingOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promptForMissingOptions.js","sourceRoot":"","sources":["../../src/cli/promptForMissingOptions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { ProjectConfig } from '../../types';
2
+ /**
3
+ * Creates .env.local file with Agility configuration
4
+ */
5
+ export declare function createEnvFile(projectPath: string, config: ProjectConfig): Promise<void>;
6
+ //# sourceMappingURL=createEnvFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createEnvFile.d.ts","sourceRoot":"","sources":["../../../src/config/env/createEnvFile.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;GAEG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB7F"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createEnvFile = createEnvFile;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ /**
11
+ * Creates .env.local file with Agility configuration
12
+ */
13
+ async function createEnvFile(projectPath, config) {
14
+ const envPath = path_1.default.join(projectPath, '.env.local');
15
+ const envVars = {
16
+ AGILITY_GUID: config.instanceGuid || '',
17
+ AGILITY_API_FETCH_KEY: config.apiKeys?.fetchKey || '',
18
+ AGILITY_API_PREVIEW_KEY: config.apiKeys?.previewKey || '',
19
+ AGILITY_SECURITY_KEY: config.apiKeys?.securityKey || '',
20
+ AGILITY_LOCALES: 'en-us',
21
+ AGILITY_SITEMAP: 'website',
22
+ AGILITY_FETCH_CACHE_DURATION: '60',
23
+ AGILITY_PATH_REVALIDATE_DURATION: '60'
24
+ };
25
+ const envContent = Object.entries(envVars)
26
+ .map(([key, value]) => `${key}=${value}`)
27
+ .join('\n');
28
+ fs_1.default.writeFileSync(envPath, envContent);
29
+ console.log(chalk_1.default.green('✓ Created .env.local'));
30
+ }
31
+ //# sourceMappingURL=createEnvFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createEnvFile.js","sourceRoot":"","sources":["../../../src/config/env/createEnvFile.ts"],"names":[],"mappings":";;;;;AAQA,sCAoBC;AA5BD,4CAAoB;AACpB,gDAAwB;AACxB,kDAA0B;AAG1B;;GAEG;AACI,KAAK,UAAU,aAAa,CAAC,WAAmB,EAAE,MAAqB;IAC5E,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAErD,MAAM,OAAO,GAA2B;QACtC,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;QACvC,qBAAqB,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE;QACrD,uBAAuB,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE;QACzD,oBAAoB,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,IAAI,EAAE;QACvD,eAAe,EAAE,OAAO;QACxB,eAAe,EAAE,SAAS;QAC1B,4BAA4B,EAAE,IAAI;QAClC,gCAAgC,EAAE,IAAI;KACvC,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;SACvC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;SACxC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,YAAE,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { setupProject } from './setupProject';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setupProject = void 0;
4
+ var setupProject_1 = require("./setupProject");
5
+ Object.defineProperty(exports, "setupProject", { enumerable: true, get: function () { return setupProject_1.setupProject; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;AAAA,+CAA8C;AAArC,4GAAA,YAAY,OAAA"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Creates .vscode/mcp.json file with Agility CMS MCP server configuration
3
+ */
4
+ export declare function createMcpConfig(projectPath: string): Promise<void>;
5
+ //# sourceMappingURL=createMcpConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMcpConfig.d.ts","sourceRoot":"","sources":["../../../src/config/mcp/createMcpConfig.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBxE"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createMcpConfig = createMcpConfig;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ /**
11
+ * Creates .vscode/mcp.json file with Agility CMS MCP server configuration
12
+ */
13
+ async function createMcpConfig(projectPath) {
14
+ const vscodeDir = path_1.default.join(projectPath, '.vscode');
15
+ const mcpConfigPath = path_1.default.join(vscodeDir, 'mcp.json');
16
+ // Ensure .vscode directory exists
17
+ if (!fs_1.default.existsSync(vscodeDir)) {
18
+ fs_1.default.mkdirSync(vscodeDir, { recursive: true });
19
+ }
20
+ const mcpConfig = {
21
+ servers: {
22
+ 'Agility CMS': {
23
+ url: 'https://mcp.agilitycms.com/api/mcp',
24
+ type: 'http'
25
+ }
26
+ },
27
+ inputs: []
28
+ };
29
+ fs_1.default.writeFileSync(mcpConfigPath, JSON.stringify(mcpConfig, null, '\t'));
30
+ console.log(chalk_1.default.green('✓ Created .vscode/mcp.json'));
31
+ }
32
+ //# sourceMappingURL=createMcpConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMcpConfig.js","sourceRoot":"","sources":["../../../src/config/mcp/createMcpConfig.ts"],"names":[],"mappings":";;;;;AAOA,0CAqBC;AA5BD,4CAAoB;AACpB,gDAAwB;AACxB,kDAA0B;AAE1B;;GAEG;AACI,KAAK,UAAU,eAAe,CAAC,WAAmB;IACvD,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAEvD,kCAAkC;IAClC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,YAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,SAAS,GAAG;QAChB,OAAO,EAAE;YACP,aAAa,EAAE;gBACb,GAAG,EAAE,oCAAoC;gBACzC,IAAI,EAAE,MAAM;aACb;SACF;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IAEF,YAAE,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;AACzD,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ProjectConfig } from '../../types';
2
+ /**
3
+ * Installs Agility packages
4
+ */
5
+ export declare function installAgilityPackages(projectPath: string, config: ProjectConfig): Promise<void>;
6
+ //# sourceMappingURL=installAgilityPackages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installAgilityPackages.d.ts","sourceRoot":"","sources":["../../../src/config/packages/installAgilityPackages.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAoDtG"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.installAgilityPackages = installAgilityPackages;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const child_process_1 = require("child_process");
10
+ const ora_1 = __importDefault(require("ora"));
11
+ /**
12
+ * Installs Agility packages
13
+ */
14
+ async function installAgilityPackages(projectPath, config) {
15
+ const spinner = (0, ora_1.default)('Installing Agility packages...').start();
16
+ return new Promise((resolve, reject) => {
17
+ // Determine package manager
18
+ let packageManager = 'npm';
19
+ let installCommand = 'install';
20
+ if (fs_1.default.existsSync(path_1.default.join(projectPath, 'yarn.lock'))) {
21
+ packageManager = 'yarn';
22
+ installCommand = 'add';
23
+ }
24
+ else if (fs_1.default.existsSync(path_1.default.join(projectPath, 'pnpm-lock.yaml'))) {
25
+ packageManager = 'pnpm';
26
+ installCommand = 'add';
27
+ }
28
+ else if (fs_1.default.existsSync(path_1.default.join(projectPath, 'bun.lockb'))) {
29
+ packageManager = 'bun';
30
+ installCommand = 'add';
31
+ }
32
+ const packages = [
33
+ '@agility/nextjs@latest',
34
+ '@agility/content-fetch@latest'
35
+ ];
36
+ // Install latest versions of @agility/nextjs (v16+) and @agility/content-fetch
37
+ // @agility/nextjs v16+ supports Next.js 16
38
+ const installArgs = packageManager === 'npm'
39
+ ? [installCommand, ...packages]
40
+ : [installCommand, ...packages];
41
+ const child = (0, child_process_1.spawn)(packageManager, installArgs, {
42
+ stdio: 'inherit',
43
+ shell: true,
44
+ cwd: projectPath
45
+ });
46
+ child.on('error', (error) => {
47
+ spinner.fail('Failed to install packages');
48
+ reject(error);
49
+ });
50
+ child.on('exit', (code) => {
51
+ if (code !== 0) {
52
+ spinner.fail('Failed to install packages');
53
+ reject(new Error(`Package installation exited with code ${code}`));
54
+ return;
55
+ }
56
+ spinner.succeed('Agility packages installed');
57
+ resolve();
58
+ });
59
+ });
60
+ }
61
+ //# sourceMappingURL=installAgilityPackages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installAgilityPackages.js","sourceRoot":"","sources":["../../../src/config/packages/installAgilityPackages.ts"],"names":[],"mappings":";;;;;AASA,wDAoDC;AA7DD,4CAAoB;AACpB,gDAAwB;AACxB,iDAAsC;AACtC,8CAAsB;AAGtB;;GAEG;AACI,KAAK,UAAU,sBAAsB,CAAC,WAAmB,EAAE,MAAqB;IACrF,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,gCAAgC,CAAC,CAAC,KAAK,EAAE,CAAC;IAE9D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,4BAA4B;QAC5B,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,cAAc,GAAG,SAAS,CAAC;QAE/B,IAAI,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;YACvD,cAAc,GAAG,MAAM,CAAC;YACxB,cAAc,GAAG,KAAK,CAAC;QACzB,CAAC;aAAM,IAAI,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;YACnE,cAAc,GAAG,MAAM,CAAC;YACxB,cAAc,GAAG,KAAK,CAAC;QACzB,CAAC;aAAM,IAAI,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;YAC9D,cAAc,GAAG,KAAK,CAAC;YACvB,cAAc,GAAG,KAAK,CAAC;QACzB,CAAC;QAED,MAAM,QAAQ,GAAG;YACf,wBAAwB;YACxB,+BAA+B;SAChC,CAAC;QAEF,+EAA+E;QAC/E,2CAA2C;QAC3C,MAAM,WAAW,GAAG,cAAc,KAAK,KAAK;YAC1C,CAAC,CAAC,CAAC,cAAc,EAAE,GAAG,QAAQ,CAAC;YAC/B,CAAC,CAAC,CAAC,cAAc,EAAE,GAAG,QAAQ,CAAC,CAAC;QAElC,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,cAAc,EAAE,WAAW,EAAE;YAC/C,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,IAAI;YACX,GAAG,EAAE,WAAW;SACjB,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YACjC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC3C,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAmB,EAAE,EAAE;YACvC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;gBAC3C,MAAM,CAAC,IAAI,KAAK,CAAC,yCAAyC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACnE,OAAO;YACT,CAAC;YAED,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;YAC9C,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ProjectConfig } from '../types';
2
+ /**
3
+ * Sets up the project configuration
4
+ * @param projectPath - Path to the project
5
+ * @param config - Configuration object
6
+ */
7
+ export declare function setupProject(projectPath: string, config: ProjectConfig): Promise<void>;
8
+ //# sourceMappingURL=setupProject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupProject.d.ts","sourceRoot":"","sources":["../../src/config/setupProject.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAK9C;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB5F"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.setupProject = setupProject;
7
+ const ora_1 = __importDefault(require("ora"));
8
+ const createEnvFile_1 = require("./env/createEnvFile");
9
+ const createMcpConfig_1 = require("./mcp/createMcpConfig");
10
+ const installAgilityPackages_1 = require("./packages/installAgilityPackages");
11
+ /**
12
+ * Sets up the project configuration
13
+ * @param projectPath - Path to the project
14
+ * @param config - Configuration object
15
+ */
16
+ async function setupProject(projectPath, config) {
17
+ const spinner = (0, ora_1.default)('Configuring Agility CMS integration...').start();
18
+ try {
19
+ // Create .env.local file
20
+ await (0, createEnvFile_1.createEnvFile)(projectPath, config);
21
+ // Create .vscode/mcp.json file
22
+ await (0, createMcpConfig_1.createMcpConfig)(projectPath);
23
+ // Install Agility packages
24
+ await (0, installAgilityPackages_1.installAgilityPackages)(projectPath, config);
25
+ spinner.succeed('Project configured successfully');
26
+ }
27
+ catch (error) {
28
+ spinner.fail('Failed to configure project');
29
+ throw error;
30
+ }
31
+ }
32
+ //# sourceMappingURL=setupProject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupProject.js","sourceRoot":"","sources":["../../src/config/setupProject.ts"],"names":[],"mappings":";;;;;AAWA,oCAkBC;AA7BD,8CAAsB;AAEtB,uDAAoD;AACpD,2DAAwD;AACxD,8EAA2E;AAE3E;;;;GAIG;AACI,KAAK,UAAU,YAAY,CAAC,WAAmB,EAAE,MAAqB;IAC3E,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,wCAAwC,CAAC,CAAC,KAAK,EAAE,CAAC;IAEtE,IAAI,CAAC;QACH,yBAAyB;QACzB,MAAM,IAAA,6BAAa,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAEzC,+BAA+B;QAC/B,MAAM,IAAA,iCAAe,EAAC,WAAW,CAAC,CAAC;QAEnC,2BAA2B;QAC3B,MAAM,IAAA,+CAAsB,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAElD,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC5C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { CreateNextAppOptions } from '../types';
2
+ /**
3
+ * Creates a Next.js app using create-next-app programmatically
4
+ * @param projectName - Name of the project
5
+ * @param options - Options to pass to create-next-app
6
+ * @returns Path to the created project
7
+ */
8
+ export declare function createNextApp(projectName: string, options: CreateNextAppOptions): Promise<string>;
9
+ //# sourceMappingURL=createNextApp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createNextApp.d.ts","sourceRoot":"","sources":["../../src/create-next-app/createNextApp.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CA8DvG"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createNextApp = createNextApp;
7
+ const child_process_1 = require("child_process");
8
+ const path_1 = __importDefault(require("path"));
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ /**
11
+ * Creates a Next.js app using create-next-app programmatically
12
+ * @param projectName - Name of the project
13
+ * @param options - Options to pass to create-next-app
14
+ * @returns Path to the created project
15
+ */
16
+ async function createNextApp(projectName, options) {
17
+ // Show a simple message instead of a spinner to avoid conflicts with create-next-app output
18
+ console.log(chalk_1.default.blue('Setting up your Next.js project...\n'));
19
+ return new Promise((resolve, reject) => {
20
+ const args = [];
21
+ // Add project name if provided
22
+ if (projectName) {
23
+ args.push(projectName);
24
+ }
25
+ // Build create-next-app arguments
26
+ // Use the options provided (from prompts or flags)
27
+ if (options.typescript)
28
+ args.push('--ts', '--typescript');
29
+ if (options.javascript)
30
+ args.push('--js', '--javascript');
31
+ if (options.tailwind === true)
32
+ args.push('--tailwind');
33
+ if (options.tailwind === false)
34
+ args.push('--no-tailwind');
35
+ if (options.eslint === true)
36
+ args.push('--eslint');
37
+ if (options.eslint === false)
38
+ args.push('--no-eslint');
39
+ if (options.app)
40
+ args.push('--app');
41
+ if (options.srcDir)
42
+ args.push('--src-dir');
43
+ if (options.importAlias)
44
+ args.push('--import-alias', options.importAlias);
45
+ if (options.useNpm)
46
+ args.push('--use-npm');
47
+ if (options.usePnpm)
48
+ args.push('--use-pnpm');
49
+ if (options.useYarn)
50
+ args.push('--use-yarn');
51
+ if (options.useBun)
52
+ args.push('--use-bun');
53
+ if (options.skipInstall)
54
+ args.push('--skip-install');
55
+ // Always use latest version
56
+ // Use -y flag to auto-confirm package installation
57
+ const command = 'npx';
58
+ const createNextAppArgs = ['-y', 'create-next-app@latest', ...args];
59
+ const child = (0, child_process_1.spawn)(command, createNextAppArgs, {
60
+ stdio: 'inherit',
61
+ shell: true,
62
+ cwd: process.cwd()
63
+ });
64
+ child.on('error', (error) => {
65
+ console.error(chalk_1.default.red('Failed to create Next.js app'));
66
+ reject(new Error(`Failed to create Next.js app: ${error.message}`));
67
+ });
68
+ child.on('exit', (code) => {
69
+ if (code !== 0) {
70
+ console.error(chalk_1.default.red('Failed to create Next.js app'));
71
+ reject(new Error(`create-next-app exited with code ${code}`));
72
+ return;
73
+ }
74
+ console.log(chalk_1.default.green('\n✓ Base Next.js project created successfully\n'));
75
+ // Determine project path
76
+ const projectPath = projectName
77
+ ? path_1.default.resolve(process.cwd(), projectName)
78
+ : path_1.default.resolve(process.cwd(), 'my-app');
79
+ resolve(projectPath);
80
+ });
81
+ });
82
+ }
83
+ //# sourceMappingURL=createNextApp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createNextApp.js","sourceRoot":"","sources":["../../src/create-next-app/createNextApp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { createNextApp } from './createNextApp';
2
+ export { createNextApp as default } from './createNextApp';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/create-next-app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = exports.createNextApp = void 0;
4
+ var createNextApp_1 = require("./createNextApp");
5
+ Object.defineProperty(exports, "createNextApp", { enumerable: true, get: function () { return createNextApp_1.createNextApp; } });
6
+ var createNextApp_2 = require("./createNextApp");
7
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return createNextApp_2.createNextApp; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/create-next-app/index.ts"],"names":[],"mappings":";;;AAAA,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,iDAA2D;AAAlD,wGAAA,aAAa,OAAW"}
@@ -0,0 +1,6 @@
1
+ import type { ApiKeys } from '../../types';
2
+ /**
3
+ * Creates basic page components
4
+ */
5
+ export declare function createPageComponents(instanceGuid: string, apiKeys: ApiKeys | null): Promise<void>;
6
+ //# sourceMappingURL=createPageComponents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createPageComponents.d.ts","sourceRoot":"","sources":["../../../src/scaffold/components/createPageComponents.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAkEvG"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createPageComponents = createPageComponents;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ /**
9
+ * Creates basic page components
10
+ */
11
+ async function createPageComponents(instanceGuid, apiKeys) {
12
+ const components = [
13
+ {
14
+ displayName: 'Hero',
15
+ referenceName: 'Hero',
16
+ description: 'Hero section component',
17
+ fields: [
18
+ { type: 'Text', name: 'headline', label: 'Headline', required: true },
19
+ { type: 'LongText', name: 'subheadline', label: 'Subheadline' },
20
+ { type: 'ImageAttachment', name: 'backgroundImage', label: 'Background Image' },
21
+ { type: 'Link', name: 'ctaLink', label: 'CTA Link' }
22
+ ]
23
+ },
24
+ {
25
+ displayName: 'RichTextArea',
26
+ referenceName: 'RichTextArea',
27
+ description: 'Rich text content component',
28
+ fields: [
29
+ { type: 'Html', name: 'content', label: 'Content', required: true }
30
+ ]
31
+ },
32
+ {
33
+ displayName: 'TextBlock',
34
+ referenceName: 'TextBlock',
35
+ description: 'Simple text block component',
36
+ fields: [
37
+ { type: 'Text', name: 'title', label: 'Title' },
38
+ { type: 'LongText', name: 'content', label: 'Content', required: true }
39
+ ]
40
+ },
41
+ {
42
+ displayName: 'Image',
43
+ referenceName: 'Image',
44
+ description: 'Image component',
45
+ fields: [
46
+ { type: 'ImageAttachment', name: 'image', label: 'Image', required: true },
47
+ { type: 'Text', name: 'altText', label: 'Alt Text' },
48
+ { type: 'Text', name: 'caption', label: 'Caption' }
49
+ ]
50
+ }
51
+ ];
52
+ // In a real implementation, this would use the MCP tool:
53
+ // for (const component of components) {
54
+ // await mcp_Agility_CMS_save_component_model({ instanceGuid, model: component });
55
+ // }
56
+ console.log(chalk_1.default.cyan('\n🧩 Page components to create:'));
57
+ components.forEach(component => {
58
+ console.log(chalk_1.default.white(` - ${component.displayName} (${component.referenceName})`));
59
+ });
60
+ console.log(chalk_1.default.yellow('\n⚠️ Please create these components in Agility CMS manually, or use the API.'));
61
+ }
62
+ //# sourceMappingURL=createPageComponents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createPageComponents.js","sourceRoot":"","sources":["../../../src/scaffold/components/createPageComponents.ts"],"names":[],"mappings":";;;;;AAMA,oDAkEC;AAxED,kDAA0B;AAG1B;;GAEG;AACI,KAAK,UAAU,oBAAoB,CAAC,YAAoB,EAAE,OAAuB;IAetF,MAAM,UAAU,GAAgB;QAC9B;YACE,WAAW,EAAE,MAAM;YACnB,aAAa,EAAE,MAAM;YACrB,WAAW,EAAE,wBAAwB;YACrC,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACrE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;gBAC/D,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,kBAAkB,EAAE;gBAC/E,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE;aACrD;SACF;QACD;YACE,WAAW,EAAE,cAAc;YAC3B,aAAa,EAAE,cAAc;YAC7B,WAAW,EAAE,6BAA6B;YAC1C,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;aACpE;SACF;QACD;YACE,WAAW,EAAE,WAAW;YACxB,aAAa,EAAE,WAAW;YAC1B,WAAW,EAAE,6BAA6B;YAC1C,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;gBAC/C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;aACxE;SACF;QACD;YACE,WAAW,EAAE,OAAO;YACpB,aAAa,EAAE,OAAO;YACtB,WAAW,EAAE,iBAAiB;YAC9B,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC1E,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE;gBACpD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;aACpD;SACF;KACF,CAAC;IAEF,yDAAyD;IACzD,wCAAwC;IACxC,oFAAoF;IACpF,IAAI;IAEJ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC3D,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAC7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,WAAW,KAAK,SAAS,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,+EAA+E,CAAC,CAAC,CAAC;AAC7G,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ApiKeys } from '../../types';
2
+ /**
3
+ * Creates containers for content
4
+ */
5
+ export declare function createContainers(instanceGuid: string, apiKeys: ApiKeys | null): Promise<void>;
6
+ //# sourceMappingURL=createContainers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createContainers.d.ts","sourceRoot":"","sources":["../../../src/scaffold/containers/createContainers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA+CnG"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createContainers = createContainers;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ /**
9
+ * Creates containers for content
10
+ */
11
+ async function createContainers(instanceGuid, apiKeys) {
12
+ const containers = [
13
+ {
14
+ displayName: 'Pages',
15
+ referenceName: 'pages',
16
+ modelTypeID: 0, // Single item
17
+ isShared: false,
18
+ isDynamicPageList: true,
19
+ modelID: null // Would be set after creating Page model
20
+ },
21
+ {
22
+ displayName: 'Posts',
23
+ referenceName: 'posts',
24
+ modelTypeID: 1, // List
25
+ isShared: true,
26
+ isDynamicPageList: false,
27
+ modelID: null // Would be set after creating Post model
28
+ },
29
+ {
30
+ displayName: 'Categories',
31
+ referenceName: 'categories',
32
+ modelTypeID: 1, // List
33
+ isShared: true,
34
+ isDynamicPageList: false,
35
+ modelID: null // Would be set after creating Category model
36
+ }
37
+ ];
38
+ // In a real implementation, this would use the MCP tool:
39
+ // for (const container of containers) {
40
+ // await mcp_Agility_CMS_save_container({ instanceGuid, container });
41
+ // }
42
+ console.log(chalk_1.default.cyan('\n📦 Containers to create:'));
43
+ containers.forEach(container => {
44
+ console.log(chalk_1.default.white(` - ${container.displayName} (${container.referenceName})`));
45
+ });
46
+ console.log(chalk_1.default.yellow('\n⚠️ Please create these containers in Agility CMS manually, or use the API.'));
47
+ }
48
+ //# sourceMappingURL=createContainers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createContainers.js","sourceRoot":"","sources":["../../../src/scaffold/containers/createContainers.ts"],"names":[],"mappings":";;;;;AAMA,4CA+CC;AArDD,kDAA0B;AAG1B;;GAEG;AACI,KAAK,UAAU,gBAAgB,CAAC,YAAoB,EAAE,OAAuB;IAUlF,MAAM,UAAU,GAAgB;QAC9B;YACE,WAAW,EAAE,OAAO;YACpB,aAAa,EAAE,OAAO;YACtB,WAAW,EAAE,CAAC,EAAE,cAAc;YAC9B,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,IAAI;YACvB,OAAO,EAAE,IAAI,CAAC,yCAAyC;SACxD;QACD;YACE,WAAW,EAAE,OAAO;YACpB,aAAa,EAAE,OAAO;YACtB,WAAW,EAAE,CAAC,EAAE,OAAO;YACvB,QAAQ,EAAE,IAAI;YACd,iBAAiB,EAAE,KAAK;YACxB,OAAO,EAAE,IAAI,CAAC,yCAAyC;SACxD;QACD;YACE,WAAW,EAAE,YAAY;YACzB,aAAa,EAAE,YAAY;YAC3B,WAAW,EAAE,CAAC,EAAE,OAAO;YACvB,QAAQ,EAAE,IAAI;YACd,iBAAiB,EAAE,KAAK;YACxB,OAAO,EAAE,IAAI,CAAC,6CAA6C;SAC5D;KACF,CAAC;IAEF,yDAAyD;IACzD,wCAAwC;IACxC,uEAAuE;IACvE,IAAI;IAEJ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;IACtD,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAC7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,WAAW,KAAK,SAAS,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,+EAA+E,CAAC,CAAC,CAAC;AAC7G,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { createBlankInstance } from './instance/createBlankInstance';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scaffold/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC"}