@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,48 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { spawn } = require('child_process');
4
+ const path = require('path');
5
+ const fs = require('fs');
6
+
7
+ // Check if dist directory exists (built version)
8
+ const distPath = path.join(__dirname, '..', 'dist', 'cli', 'index.js');
9
+ const srcPath = path.join(__dirname, '..', 'src', 'cli', 'index.ts');
10
+
11
+ let cliPath;
12
+ let command;
13
+
14
+ if (fs.existsSync(distPath)) {
15
+ // Use compiled version if available
16
+ cliPath = distPath;
17
+ command = 'node';
18
+ } else {
19
+ // Use tsx to run TypeScript directly
20
+ cliPath = srcPath;
21
+ command = 'npx';
22
+ // Use tsx if available, otherwise try ts-node
23
+ try {
24
+ require.resolve('tsx');
25
+ } catch {
26
+ try {
27
+ require.resolve('ts-node');
28
+ command = 'npx';
29
+ } catch {
30
+ console.error('Error: TypeScript files found but no TypeScript runner available.');
31
+ console.error('Please run "npm install" and "npm run build" first, or install tsx/ts-node.');
32
+ process.exit(1);
33
+ }
34
+ }
35
+ }
36
+
37
+ // Spawn the CLI process
38
+ const args = command === 'npx' ? ['tsx', cliPath, ...process.argv.slice(2)] : [cliPath, ...process.argv.slice(2)];
39
+ const child = spawn(command, args, {
40
+ stdio: 'inherit',
41
+ cwd: process.cwd(),
42
+ shell: true
43
+ });
44
+
45
+ child.on('exit', (code) => {
46
+ process.exit(code || 0);
47
+ });
48
+
@@ -0,0 +1,9 @@
1
+ import type { ApiKeys } from '../../types';
2
+ /**
3
+ * Gets API keys for an Agility instance
4
+ * @param accessToken - OAuth access token
5
+ * @param instanceGuid - Instance GUID
6
+ * @returns Object with fetch and preview API keys
7
+ */
8
+ export declare function generateApiKeys(accessToken: string, instanceGuid: string): Promise<ApiKeys>;
9
+ //# sourceMappingURL=generateApiKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateApiKeys.d.ts","sourceRoot":"","sources":["../../../src/agility/api-keys/generateApiKeys.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAuFjG"}
@@ -0,0 +1,99 @@
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.generateApiKeys = generateApiKeys;
7
+ const ora_1 = __importDefault(require("ora"));
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const getMgmtAPIUrl_1 = require("../utils/getMgmtAPIUrl");
10
+ /**
11
+ * Gets API keys for an Agility instance
12
+ * @param accessToken - OAuth access token
13
+ * @param instanceGuid - Instance GUID
14
+ * @returns Object with fetch and preview API keys
15
+ */
16
+ async function generateApiKeys(accessToken, instanceGuid) {
17
+ const spinner = (0, ora_1.default)('Fetching API keys...').start();
18
+ try {
19
+ const oauthBaseUrl = (0, getMgmtAPIUrl_1.getMgmtOAuthUrl)({ guid: instanceGuid });
20
+ // Get Fetch API Key
21
+ const fetchKeyUrl = `${oauthBaseUrl}GetFetchKey?guid=${instanceGuid}`;
22
+ const fetchKeyResponse = await fetch(fetchKeyUrl, {
23
+ method: 'GET',
24
+ headers: {
25
+ 'Authorization': `Bearer ${accessToken}`,
26
+ 'Content-Type': 'application/json',
27
+ },
28
+ });
29
+ if (!fetchKeyResponse.ok) {
30
+ const errorText = await fetchKeyResponse.text();
31
+ let errorMessage = `Failed to get Fetch Key: ${fetchKeyResponse.status} ${fetchKeyResponse.statusText}`;
32
+ try {
33
+ const errorJson = JSON.parse(errorText);
34
+ if (errorJson.message) {
35
+ errorMessage += ` - ${errorJson.message}`;
36
+ }
37
+ else {
38
+ errorMessage += ` - ${errorText}`;
39
+ }
40
+ }
41
+ catch {
42
+ errorMessage += ` - ${errorText}`;
43
+ }
44
+ throw new Error(errorMessage);
45
+ }
46
+ const fetchKey = await fetchKeyResponse.text();
47
+ if (!fetchKey) {
48
+ throw new Error('No Fetch Key received from API');
49
+ }
50
+ // Get Preview API Key
51
+ const previewKeyUrl = `${oauthBaseUrl}GetPreviewKey?guid=${instanceGuid}`;
52
+ const previewKeyResponse = await fetch(previewKeyUrl, {
53
+ method: 'GET',
54
+ headers: {
55
+ 'Authorization': `Bearer ${accessToken}`,
56
+ 'Content-Type': 'application/json',
57
+ },
58
+ });
59
+ if (!previewKeyResponse.ok) {
60
+ const errorText = await previewKeyResponse.text();
61
+ let errorMessage = `Failed to get Preview Key: ${previewKeyResponse.status} ${previewKeyResponse.statusText}`;
62
+ try {
63
+ const errorJson = JSON.parse(errorText);
64
+ if (errorJson.message) {
65
+ errorMessage += ` - ${errorJson.message}`;
66
+ }
67
+ else {
68
+ errorMessage += ` - ${errorText}`;
69
+ }
70
+ }
71
+ catch {
72
+ errorMessage += ` - ${errorText}`;
73
+ }
74
+ throw new Error(errorMessage);
75
+ }
76
+ const previewKey = await previewKeyResponse.text();
77
+ if (!previewKey) {
78
+ throw new Error('No Preview Key received from API');
79
+ }
80
+ spinner.succeed('API keys retrieved');
81
+ return {
82
+ fetchKey,
83
+ previewKey,
84
+ securityKey: '' // Security key is typically not needed for basic setup
85
+ };
86
+ }
87
+ catch (error) {
88
+ spinner.fail('Failed to get API keys');
89
+ if (error instanceof Error) {
90
+ console.error(chalk_1.default.red(`Error: ${error.message}`));
91
+ // Log additional details if available
92
+ if (error instanceof Error && 'cause' in error) {
93
+ console.error(chalk_1.default.gray(`Details: ${JSON.stringify(error.cause)}`));
94
+ }
95
+ }
96
+ throw error;
97
+ }
98
+ }
99
+ //# sourceMappingURL=generateApiKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateApiKeys.js","sourceRoot":"","sources":["../../../src/agility/api-keys/generateApiKeys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { ApiKeys } from '../../types';
2
+ /**
3
+ * Gets API keys for an existing instance
4
+ * @param accessToken - OAuth access token
5
+ * @param instanceGuid - Instance GUID
6
+ * @returns Object with fetch and preview API keys
7
+ */
8
+ export declare function getApiKeys(accessToken: string, instanceGuid: string): Promise<ApiKeys>;
9
+ //# sourceMappingURL=getApiKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getApiKeys.d.ts","sourceRoot":"","sources":["../../../src/agility/api-keys/getApiKeys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE5F"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getApiKeys = getApiKeys;
4
+ const generateApiKeys_1 = require("./generateApiKeys");
5
+ /**
6
+ * Gets API keys for an existing instance
7
+ * @param accessToken - OAuth access token
8
+ * @param instanceGuid - Instance GUID
9
+ * @returns Object with fetch and preview API keys
10
+ */
11
+ async function getApiKeys(accessToken, instanceGuid) {
12
+ return (0, generateApiKeys_1.generateApiKeys)(accessToken, instanceGuid);
13
+ }
14
+ //# sourceMappingURL=getApiKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getApiKeys.js","sourceRoot":"","sources":["../../../src/agility/api-keys/getApiKeys.ts"],"names":[],"mappings":";;AASA,gCAEC;AAVD,uDAAoD;AAEpD;;;;;GAKG;AACI,KAAK,UAAU,UAAU,CAAC,WAAmB,EAAE,YAAoB;IACxE,OAAO,IAAA,iCAAe,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { manageInstance } from './instance/manageInstance';
2
+ export { getApiKeys } from './api-keys/getApiKeys';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agility/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getApiKeys = exports.manageInstance = void 0;
4
+ var manageInstance_1 = require("./instance/manageInstance");
5
+ Object.defineProperty(exports, "manageInstance", { enumerable: true, get: function () { return manageInstance_1.manageInstance; } });
6
+ var getApiKeys_1 = require("./api-keys/getApiKeys");
7
+ Object.defineProperty(exports, "getApiKeys", { enumerable: true, get: function () { return getApiKeys_1.getApiKeys; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agility/index.ts"],"names":[],"mappings":";;;AAAA,4DAA2D;AAAlD,gHAAA,cAAc,OAAA;AACvB,oDAAmD;AAA1C,wGAAA,UAAU,OAAA"}
@@ -0,0 +1,8 @@
1
+ import type { InstanceData } from '../../types';
2
+ /**
3
+ * Creates a new blank Agility instance
4
+ * @param accessToken - OAuth access token
5
+ * @returns Instance data with GUID and API keys
6
+ */
7
+ export declare function createNewInstance(accessToken: string): Promise<InstanceData>;
8
+ //# sourceMappingURL=createNewInstance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createNewInstance.d.ts","sourceRoot":"","sources":["../../../src/agility/instance/createNewInstance.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAuDlF"}
@@ -0,0 +1,65 @@
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.createNewInstance = createNewInstance;
7
+ const inquirer_1 = __importDefault(require("inquirer"));
8
+ const ora_1 = __importDefault(require("ora"));
9
+ const generateApiKeys_1 = require("../api-keys/generateApiKeys");
10
+ /**
11
+ * Creates a new blank Agility instance
12
+ * @param accessToken - OAuth access token
13
+ * @returns Instance data with GUID and API keys
14
+ */
15
+ async function createNewInstance(accessToken) {
16
+ const spinner = (0, ora_1.default)('Creating new Agility instance...').start();
17
+ try {
18
+ // Prompt for instance name
19
+ const answers = await inquirer_1.default.prompt([
20
+ {
21
+ type: 'input',
22
+ name: 'instanceName',
23
+ message: 'Enter a name for your new instance:',
24
+ default: 'My Agility Instance',
25
+ validate: (input) => {
26
+ if (!input || input.trim().length === 0) {
27
+ return 'Instance name is required';
28
+ }
29
+ return true;
30
+ }
31
+ }
32
+ ]);
33
+ spinner.text = 'Creating instance...';
34
+ // In a real implementation, this would call Agility's API to create an instance
35
+ // For now, we'll use a placeholder that would need to be implemented
36
+ // const instance = await createAgilityInstance(accessToken, answers.instanceName);
37
+ // For now, we'll prompt for the instance GUID manually
38
+ const guidAnswer = await inquirer_1.default.prompt([
39
+ {
40
+ type: 'input',
41
+ name: 'instanceGuid',
42
+ message: 'Enter the instance GUID (you can find this in Agility CMS):',
43
+ validate: (input) => {
44
+ if (!input || input.trim().length === 0) {
45
+ return 'Instance GUID is required';
46
+ }
47
+ return true;
48
+ }
49
+ }
50
+ ]);
51
+ spinner.succeed('Instance ready');
52
+ // Generate API keys
53
+ const apiKeys = await (0, generateApiKeys_1.generateApiKeys)(accessToken, guidAnswer.instanceGuid);
54
+ return {
55
+ guid: guidAnswer.instanceGuid,
56
+ name: answers.instanceName,
57
+ apiKeys
58
+ };
59
+ }
60
+ catch (error) {
61
+ spinner.fail('Failed to create instance');
62
+ throw error;
63
+ }
64
+ }
65
+ //# sourceMappingURL=createNewInstance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createNewInstance.js","sourceRoot":"","sources":["../../../src/agility/instance/createNewInstance.ts"],"names":[],"mappings":";;;;;AAUA,8CAuDC;AAjED,wDAAgC;AAChC,8CAAsB;AAEtB,iEAA8D;AAE9D;;;;GAIG;AACI,KAAK,UAAU,iBAAiB,CAAC,WAAmB;IACzD,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,kCAAkC,CAAC,CAAC,KAAK,EAAE,CAAC;IAEhE,IAAI,CAAC;QACH,2BAA2B;QAC3B,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAA2B;YAC9D;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,qCAAqC;gBAC9C,OAAO,EAAE,qBAAqB;gBAC9B,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC1B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACxC,OAAO,2BAA2B,CAAC;oBACrC,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;SACF,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,GAAG,sBAAsB,CAAC;QAEtC,gFAAgF;QAChF,qEAAqE;QACrE,mFAAmF;QAEnF,uDAAuD;QACvD,MAAM,UAAU,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAA2B;YACjE;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,6DAA6D;gBACtE,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC1B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACxC,OAAO,2BAA2B,CAAC;oBACrC,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;SACF,CAAC,CAAC;QAEH,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAElC,oBAAoB;QACpB,MAAM,OAAO,GAAG,MAAM,IAAA,iCAAe,EAAC,WAAW,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;QAE5E,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,YAAY;YAC7B,IAAI,EAAE,OAAO,CAAC,YAAY;YAC1B,OAAO;SACR,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC1C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Instance } from '../../types';
2
+ /**
3
+ * Gets available Agility instances for the authenticated user
4
+ * @param accessToken - OAuth access token
5
+ * @returns Array of instances
6
+ */
7
+ export declare function getAvailableInstances(accessToken: string): Promise<Instance[]>;
8
+ //# sourceMappingURL=getAvailableInstances.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAvailableInstances.d.ts","sourceRoot":"","sources":["../../../src/agility/instance/getAvailableInstances.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAsCpF"}
@@ -0,0 +1,43 @@
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.getAvailableInstances = getAvailableInstances;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const getMgmtAPIUrl_1 = require("../utils/getMgmtAPIUrl");
9
+ /**
10
+ * Gets available Agility instances for the authenticated user
11
+ * @param accessToken - OAuth access token
12
+ * @returns Array of instances
13
+ */
14
+ async function getAvailableInstances(accessToken) {
15
+ try {
16
+ // Use the Agility Management API to get current user and their instances
17
+ // Note: We don't have a GUID yet, so we use the default URL
18
+ const apiBaseUrl = (0, getMgmtAPIUrl_1.getMgmtAPIUrl)();
19
+ const response = await fetch(`${apiBaseUrl}users/me`, {
20
+ method: 'GET',
21
+ headers: {
22
+ 'Authorization': `Bearer ${accessToken}`,
23
+ 'Content-Type': 'application/json',
24
+ },
25
+ });
26
+ if (!response.ok) {
27
+ throw new Error(`Failed to get user info: ${response.status} ${response.statusText}`);
28
+ }
29
+ const userData = await response.json();
30
+ // Convert websiteAccess to instances
31
+ const instances = (userData.websiteAccess || []).map(access => ({
32
+ name: access.displayName || access.websiteName,
33
+ guid: access.guid,
34
+ org: access.orgName,
35
+ }));
36
+ return instances;
37
+ }
38
+ catch (error) {
39
+ console.warn(chalk_1.default.yellow('Could not fetch instances from API'));
40
+ throw error;
41
+ }
42
+ }
43
+ //# sourceMappingURL=getAvailableInstances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAvailableInstances.js","sourceRoot":"","sources":["../../../src/agility/instance/getAvailableInstances.ts"],"names":[],"mappings":";;;;;AASA,sDAsCC;AA/CD,kDAA0B;AAE1B,0DAAuD;AAEvD;;;;GAIG;AACI,KAAK,UAAU,qBAAqB,CAAC,WAAmB;IAC7D,IAAI,CAAC;QACH,yEAAyE;QACzE,4DAA4D;QAC5D,MAAM,UAAU,GAAG,IAAA,6BAAa,GAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,UAAU,UAAU,EAAE;YACpD,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,WAAW,EAAE;gBACxC,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACxF,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAOnC,CAAC;QAEF,qCAAqC;QACrC,MAAM,SAAS,GAAe,CAAC,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC1E,IAAI,EAAE,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW;YAC9C,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,GAAG,EAAE,MAAM,CAAC,OAAO;SACpB,CAAC,CAAC,CAAC;QAEJ,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC,CAAC;QACjE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { InstanceData, CliOptions } from '../../types';
2
+ /**
3
+ * Manages Agility CMS instance selection from existing instances
4
+ * @param accessToken - OAuth access token
5
+ * @param options - CLI options
6
+ * @returns Instance data with GUID and API keys
7
+ */
8
+ export declare function manageInstance(accessToken: string, options: CliOptions): Promise<InstanceData>;
9
+ //# sourceMappingURL=manageInstance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manageInstance.d.ts","sourceRoot":"","sources":["../../../src/agility/instance/manageInstance.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI5D;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CA2EpG"}
@@ -0,0 +1,82 @@
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.manageInstance = manageInstance;
7
+ const inquirer_1 = __importDefault(require("inquirer"));
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const ora_1 = __importDefault(require("ora"));
10
+ const getAvailableInstances_1 = require("./getAvailableInstances");
11
+ const generateApiKeys_1 = require("../api-keys/generateApiKeys");
12
+ /**
13
+ * Manages Agility CMS instance selection from existing instances
14
+ * @param accessToken - OAuth access token
15
+ * @param options - CLI options
16
+ * @returns Instance data with GUID and API keys
17
+ */
18
+ async function manageInstance(accessToken, options) {
19
+ const spinner = (0, ora_1.default)('Fetching Agility instances...').start();
20
+ try {
21
+ // Fetch available instances using the Management API
22
+ const instances = await (0, getAvailableInstances_1.getAvailableInstances)(accessToken);
23
+ spinner.succeed(`Found ${instances.length} instance(s)`);
24
+ if (instances.length === 0) {
25
+ throw new Error('No Agility CMS instances found. Please create an instance in Agility CMS first, or skip the connection for now.');
26
+ }
27
+ // Group instances by organization
28
+ const instancesByOrg = new Map();
29
+ for (const inst of instances) {
30
+ const orgName = inst.org || 'No Organization';
31
+ if (!instancesByOrg.has(orgName)) {
32
+ instancesByOrg.set(orgName, []);
33
+ }
34
+ instancesByOrg.get(orgName).push(inst);
35
+ }
36
+ // Sort organizations alphabetically
37
+ const sortedOrgs = Array.from(instancesByOrg.keys()).sort();
38
+ // Build choices with organization grouping
39
+ const instanceChoices = [];
40
+ for (const orgName of sortedOrgs) {
41
+ // Add separator for organization (except for first one)
42
+ if (instanceChoices.length > 0) {
43
+ instanceChoices.push(new inquirer_1.default.Separator());
44
+ }
45
+ // Add organization header
46
+ instanceChoices.push(new inquirer_1.default.Separator(chalk_1.default.cyan(` ${orgName}`)));
47
+ // Add instances for this organization
48
+ const orgInstances = instancesByOrg.get(orgName);
49
+ for (const inst of orgInstances) {
50
+ instanceChoices.push({
51
+ name: ` - ${inst.name} (${inst.guid})`,
52
+ value: inst.guid
53
+ });
54
+ }
55
+ }
56
+ const selected = await inquirer_1.default.prompt([
57
+ {
58
+ type: 'list',
59
+ name: 'instanceGuid',
60
+ message: 'Select an instance:',
61
+ choices: instanceChoices
62
+ }
63
+ ]);
64
+ // Find the selected instance to get its name
65
+ const selectedInstance = instances.find(inst => inst.guid === selected.instanceGuid);
66
+ if (!selectedInstance) {
67
+ throw new Error('Selected instance not found');
68
+ }
69
+ // Generate API keys for selected instance
70
+ const apiKeys = await (0, generateApiKeys_1.generateApiKeys)(accessToken, selected.instanceGuid);
71
+ return {
72
+ guid: selected.instanceGuid,
73
+ name: selectedInstance.name,
74
+ apiKeys
75
+ };
76
+ }
77
+ catch (error) {
78
+ spinner.fail('Failed to manage instance');
79
+ throw error;
80
+ }
81
+ }
82
+ //# sourceMappingURL=manageInstance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manageInstance.js","sourceRoot":"","sources":["../../../src/agility/instance/manageInstance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ interface Props {
2
+ /**
3
+ * The instance guid (optional - if not provided, uses default URL)
4
+ */
5
+ guid?: string;
6
+ }
7
+ /**
8
+ * Gets the management API base URL based on the instance GUID
9
+ * @param guid - The instance GUID (optional - if not provided, uses default URL)
10
+ * @returns The base URL for the management API
11
+ */
12
+ export declare const getMgmtAPIUrl: ({ guid }?: Props) => string;
13
+ /**
14
+ * Gets the management OAuth base URL based on the instance GUID
15
+ * @param guid - The instance GUID (optional - if not provided, uses default URL)
16
+ * @returns The base URL for the management OAuth endpoints
17
+ */
18
+ export declare const getMgmtOAuthUrl: ({ guid }?: Props) => string;
19
+ export {};
20
+ //# sourceMappingURL=getMgmtAPIUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMgmtAPIUrl.d.ts","sourceRoot":"","sources":["../../../src/agility/utils/getMgmtAPIUrl.ts"],"names":[],"mappings":"AAAA,UAAU,KAAK;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,WAAU,KAAU,KAAG,MAuBpD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,WAAU,KAAU,KAAG,MAwBtD,CAAC"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMgmtOAuthUrl = exports.getMgmtAPIUrl = void 0;
4
+ /**
5
+ * Gets the management API base URL based on the instance GUID
6
+ * @param guid - The instance GUID (optional - if not provided, uses default URL)
7
+ * @returns The base URL for the management API
8
+ */
9
+ const getMgmtAPIUrl = ({ guid } = {}) => {
10
+ const baseUrlSuffixes = {
11
+ u: '',
12
+ c: '-ca',
13
+ e: '-eu',
14
+ a: '-aus',
15
+ d: '-dev'
16
+ };
17
+ // If no GUID provided, use default URL
18
+ if (!guid || guid.length === 0) {
19
+ return `https://mgmt.aglty.io/api/v1/`;
20
+ }
21
+ const env = guid.substring(guid.length - 1);
22
+ // New format of guid
23
+ if (baseUrlSuffixes.hasOwnProperty(env)) {
24
+ return `https://mgmt${baseUrlSuffixes[env]}.aglty.io/api/v1/`;
25
+ }
26
+ else {
27
+ // use default url
28
+ return `https://mgmt.aglty.io/api/v1/`;
29
+ }
30
+ };
31
+ exports.getMgmtAPIUrl = getMgmtAPIUrl;
32
+ /**
33
+ * Gets the management OAuth base URL based on the instance GUID
34
+ * @param guid - The instance GUID (optional - if not provided, uses default URL)
35
+ * @returns The base URL for the management OAuth endpoints
36
+ */
37
+ const getMgmtOAuthUrl = ({ guid } = {}) => {
38
+ const baseUrlSuffixes = {
39
+ u: '',
40
+ c: '-ca',
41
+ e: '-eu',
42
+ a: '-aus',
43
+ d: '-dev',
44
+ us2: 'usa2'
45
+ };
46
+ // If no GUID provided, use default URL
47
+ if (!guid || guid.length === 0) {
48
+ return `https://mgmt.aglty.io/oauth/`;
49
+ }
50
+ const env = guid.substring(guid.length - 1);
51
+ // New format of guid
52
+ if (baseUrlSuffixes.hasOwnProperty(env)) {
53
+ return `https://mgmt${baseUrlSuffixes[env]}.aglty.io/oauth/`;
54
+ }
55
+ else {
56
+ // use default url
57
+ return `https://mgmt.aglty.io/oauth/`;
58
+ }
59
+ };
60
+ exports.getMgmtOAuthUrl = getMgmtOAuthUrl;
61
+ //# sourceMappingURL=getMgmtAPIUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMgmtAPIUrl.js","sourceRoot":"","sources":["../../../src/agility/utils/getMgmtAPIUrl.ts"],"names":[],"mappings":";;;AAOA;;;;GAIG;AACI,MAAM,aAAa,GAAG,CAAC,EAAE,IAAI,KAAY,EAAE,EAAU,EAAE;IAC7D,MAAM,eAAe,GAA8B;QAClD,CAAC,EAAE,EAAE;QACL,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,MAAM;QACT,CAAC,EAAE,MAAM;KACT,CAAC;IAEF,uCAAuC;IACvC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,+BAA+B,CAAC;IACxC,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE5C,qBAAqB;IACrB,IAAI,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,eAAe,eAAe,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAC/D,CAAC;SAAM,CAAC;QACP,kBAAkB;QAClB,OAAO,+BAA+B,CAAC;IACxC,CAAC;AACF,CAAC,CAAC;AAvBW,QAAA,aAAa,iBAuBxB;AAEF;;;;GAIG;AACI,MAAM,eAAe,GAAG,CAAC,EAAE,IAAI,KAAY,EAAE,EAAU,EAAE;IAC/D,MAAM,eAAe,GAA8B;QAClD,CAAC,EAAE,EAAE;QACL,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,MAAM;QACT,CAAC,EAAE,MAAM;QACT,GAAG,EAAE,MAAM;KACX,CAAC;IAEF,uCAAuC;IACvC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,8BAA8B,CAAC;IACvC,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE5C,qBAAqB;IACrB,IAAI,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,eAAe,eAAe,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAC9D,CAAC;SAAM,CAAC;QACP,kBAAkB;QAClB,OAAO,8BAA8B,CAAC;IACvC,CAAC;AACF,CAAC,CAAC;AAxBW,QAAA,eAAe,mBAwB1B"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Alternative: Manual API key input if OAuth is not available
3
+ * @returns API key or access token
4
+ */
5
+ export declare function authenticateWithApiKey(): Promise<string>;
6
+ //# sourceMappingURL=authenticateWithApiKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticateWithApiKey.d.ts","sourceRoot":"","sources":["../../../src/auth/api-key/authenticateWithApiKey.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,CAgB9D"}
@@ -0,0 +1,28 @@
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.authenticateWithApiKey = authenticateWithApiKey;
7
+ const inquirer_1 = __importDefault(require("inquirer"));
8
+ /**
9
+ * Alternative: Manual API key input if OAuth is not available
10
+ * @returns API key or access token
11
+ */
12
+ async function authenticateWithApiKey() {
13
+ const answers = await inquirer_1.default.prompt([
14
+ {
15
+ type: 'input',
16
+ name: 'apiKey',
17
+ message: 'Enter your Agility CMS API key:',
18
+ validate: (input) => {
19
+ if (!input || input.trim().length === 0) {
20
+ return 'API key is required';
21
+ }
22
+ return true;
23
+ }
24
+ }
25
+ ]);
26
+ return answers.apiKey;
27
+ }
28
+ //# sourceMappingURL=authenticateWithApiKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticateWithApiKey.js","sourceRoot":"","sources":["../../../src/auth/api-key/authenticateWithApiKey.ts"],"names":[],"mappings":";;;;;AAMA,wDAgBC;AAtBD,wDAAgC;AAEhC;;;GAGG;AACI,KAAK,UAAU,sBAAsB;IAC1C,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAqB;QACxD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,iCAAiC;YAC1C,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC1B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxC,OAAO,qBAAqB,CAAC;gBAC/B,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;SACF;KACF,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,MAAM,CAAC;AACxB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { authenticate } from './oauth/authenticate';
2
+ export { authenticateWithApiKey } from './api-key/authenticateWithApiKey';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.authenticateWithApiKey = exports.authenticate = void 0;
4
+ var authenticate_1 = require("./oauth/authenticate");
5
+ Object.defineProperty(exports, "authenticate", { enumerable: true, get: function () { return authenticate_1.authenticate; } });
6
+ var authenticateWithApiKey_1 = require("./api-key/authenticateWithApiKey");
7
+ Object.defineProperty(exports, "authenticateWithApiKey", { enumerable: true, get: function () { return authenticateWithApiKey_1.authenticateWithApiKey; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":";;;AAAA,qDAAoD;AAA3C,4GAAA,YAAY,OAAA;AACrB,2EAA0E;AAAjE,gIAAA,sBAAsB,OAAA"}