@apimatic/cli 1.1.0-beta.8 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/README.md +117 -13
  2. package/lib/actions/portal/copilot.d.ts +1 -0
  3. package/lib/actions/portal/copilot.js +12 -12
  4. package/lib/actions/portal/copilot.js.map +1 -1
  5. package/lib/actions/portal/generate.js +7 -1
  6. package/lib/actions/portal/generate.js.map +1 -1
  7. package/lib/actions/portal/quickstart.d.ts +1 -0
  8. package/lib/actions/portal/quickstart.js +40 -6
  9. package/lib/actions/portal/quickstart.js.map +1 -1
  10. package/lib/actions/portal/serve.d.ts +1 -0
  11. package/lib/actions/portal/serve.js +77 -20
  12. package/lib/actions/portal/serve.js.map +1 -1
  13. package/lib/actions/portal/toc/new-toc.js +8 -20
  14. package/lib/actions/portal/toc/new-toc.js.map +1 -1
  15. package/lib/actions/publishing/profile/list.d.ts +11 -0
  16. package/lib/actions/publishing/profile/list.js +29 -0
  17. package/lib/actions/publishing/profile/list.js.map +1 -0
  18. package/lib/actions/sdk/generate.d.ts +9 -5
  19. package/lib/actions/sdk/generate.js +76 -30
  20. package/lib/actions/sdk/generate.js.map +1 -1
  21. package/lib/actions/sdk/merge-source-tree.d.ts +12 -0
  22. package/lib/actions/sdk/merge-source-tree.js +78 -0
  23. package/lib/actions/sdk/merge-source-tree.js.map +1 -0
  24. package/lib/actions/sdk/publish/interactive.d.ts +13 -0
  25. package/lib/actions/sdk/publish/interactive.js +105 -0
  26. package/lib/actions/sdk/publish/interactive.js.map +1 -0
  27. package/lib/actions/sdk/publish/non-interactive.d.ts +14 -0
  28. package/lib/actions/sdk/publish/non-interactive.js +101 -0
  29. package/lib/actions/sdk/publish/non-interactive.js.map +1 -0
  30. package/lib/actions/sdk/publish.d.ts +18 -0
  31. package/lib/actions/sdk/publish.js +56 -0
  32. package/lib/actions/sdk/publish.js.map +1 -0
  33. package/lib/actions/sdk/quickstart.js +2 -1
  34. package/lib/actions/sdk/quickstart.js.map +1 -1
  35. package/lib/actions/sdk/save-changes.d.ts +8 -0
  36. package/lib/actions/sdk/save-changes.js +93 -0
  37. package/lib/actions/sdk/save-changes.js.map +1 -0
  38. package/lib/application/portal/recipe/recipe-generator.js +14 -29
  39. package/lib/application/portal/recipe/recipe-generator.js.map +1 -1
  40. package/lib/application/portal/toc/toc-structure-generator.d.ts +3 -19
  41. package/lib/application/portal/toc/toc-structure-generator.js +43 -33
  42. package/lib/application/portal/toc/toc-structure-generator.js.map +1 -1
  43. package/lib/commands/portal/recipe/new.js +2 -2
  44. package/lib/commands/portal/recipe/new.js.map +1 -1
  45. package/lib/commands/portal/serve.js +3 -3
  46. package/lib/commands/portal/serve.js.map +1 -1
  47. package/lib/commands/portal/toc/new.js +2 -2
  48. package/lib/commands/portal/toc/new.js.map +1 -1
  49. package/lib/commands/publishing/profile/list.d.ts +9 -0
  50. package/lib/commands/publishing/profile/list.js +28 -0
  51. package/lib/commands/publishing/profile/list.js.map +1 -0
  52. package/lib/commands/quickstart.js +1 -1
  53. package/lib/commands/quickstart.js.map +1 -1
  54. package/lib/commands/sdk/generate.d.ts +7 -2
  55. package/lib/commands/sdk/generate.js +37 -9
  56. package/lib/commands/sdk/generate.js.map +1 -1
  57. package/lib/commands/sdk/publish.d.ts +18 -0
  58. package/lib/commands/sdk/publish.js +73 -0
  59. package/lib/commands/sdk/publish.js.map +1 -0
  60. package/lib/commands/sdk/save-changes.d.ts +14 -0
  61. package/lib/commands/sdk/save-changes.js +51 -0
  62. package/lib/commands/sdk/save-changes.js.map +1 -0
  63. package/lib/hooks/not-found.js +1 -1
  64. package/lib/hooks/not-found.js.map +1 -1
  65. package/lib/infrastructure/debounce-service.js +3 -0
  66. package/lib/infrastructure/debounce-service.js.map +1 -1
  67. package/lib/infrastructure/env-info.d.ts +2 -0
  68. package/lib/infrastructure/env-info.js +23 -12
  69. package/lib/infrastructure/env-info.js.map +1 -1
  70. package/lib/infrastructure/file-service.d.ts +9 -0
  71. package/lib/infrastructure/file-service.js +94 -5
  72. package/lib/infrastructure/file-service.js.map +1 -1
  73. package/lib/infrastructure/git-service.d.ts +14 -0
  74. package/lib/infrastructure/git-service.js +90 -0
  75. package/lib/infrastructure/git-service.js.map +1 -0
  76. package/lib/infrastructure/launcher-service.d.ts +5 -0
  77. package/lib/infrastructure/launcher-service.js +35 -2
  78. package/lib/infrastructure/launcher-service.js.map +1 -1
  79. package/lib/infrastructure/os-extensions.d.ts +2 -0
  80. package/lib/infrastructure/os-extensions.js +6 -0
  81. package/lib/infrastructure/os-extensions.js.map +1 -0
  82. package/lib/infrastructure/service-error.d.ts +14 -2
  83. package/lib/infrastructure/service-error.js +26 -9
  84. package/lib/infrastructure/service-error.js.map +1 -1
  85. package/lib/infrastructure/services/api-service.d.ts +1 -0
  86. package/lib/infrastructure/services/api-service.js +26 -2
  87. package/lib/infrastructure/services/api-service.js.map +1 -1
  88. package/lib/infrastructure/services/portal-service.d.ts +11 -2
  89. package/lib/infrastructure/services/portal-service.js +123 -18
  90. package/lib/infrastructure/services/portal-service.js.map +1 -1
  91. package/lib/infrastructure/services/publishing-api-service.d.ts +19 -0
  92. package/lib/infrastructure/services/publishing-api-service.js +111 -0
  93. package/lib/infrastructure/services/publishing-api-service.js.map +1 -0
  94. package/lib/infrastructure/services/validation-service.js.map +1 -1
  95. package/lib/infrastructure/zip-service.d.ts +2 -2
  96. package/lib/infrastructure/zip-service.js +46 -25
  97. package/lib/infrastructure/zip-service.js.map +1 -1
  98. package/lib/prompts/format.d.ts +0 -2
  99. package/lib/prompts/format.js +0 -31
  100. package/lib/prompts/format.js.map +1 -1
  101. package/lib/prompts/portal/generate.d.ts +1 -1
  102. package/lib/prompts/portal/generate.js +9 -3
  103. package/lib/prompts/portal/generate.js.map +1 -1
  104. package/lib/prompts/portal/quickstart.d.ts +4 -0
  105. package/lib/prompts/portal/quickstart.js +22 -0
  106. package/lib/prompts/portal/quickstart.js.map +1 -1
  107. package/lib/prompts/portal/serve.d.ts +4 -0
  108. package/lib/prompts/portal/serve.js +20 -1
  109. package/lib/prompts/portal/serve.js.map +1 -1
  110. package/lib/prompts/portal/toc/new-toc.d.ts +2 -2
  111. package/lib/prompts/portal/toc/new-toc.js +3 -3
  112. package/lib/prompts/portal/toc/new-toc.js.map +1 -1
  113. package/lib/prompts/prompt.d.ts +6 -0
  114. package/lib/prompts/prompt.js +45 -0
  115. package/lib/prompts/prompt.js.map +1 -1
  116. package/lib/prompts/publishing/profile/list.d.ts +9 -0
  117. package/lib/prompts/publishing/profile/list.js +27 -0
  118. package/lib/prompts/publishing/profile/list.js.map +1 -0
  119. package/lib/prompts/sdk/generate.d.ts +9 -4
  120. package/lib/prompts/sdk/generate.js +37 -15
  121. package/lib/prompts/sdk/generate.js.map +1 -1
  122. package/lib/prompts/sdk/merge-source-tree.d.ts +22 -0
  123. package/lib/prompts/sdk/merge-source-tree.js +90 -0
  124. package/lib/prompts/sdk/merge-source-tree.js.map +1 -0
  125. package/lib/prompts/sdk/publish/interactive.d.ts +30 -0
  126. package/lib/prompts/sdk/publish/interactive.js +139 -0
  127. package/lib/prompts/sdk/publish/interactive.js.map +1 -0
  128. package/lib/prompts/sdk/publish/non-interactive.d.ts +27 -0
  129. package/lib/prompts/sdk/publish/non-interactive.js +97 -0
  130. package/lib/prompts/sdk/publish/non-interactive.js.map +1 -0
  131. package/lib/prompts/sdk/publish.d.ts +12 -0
  132. package/lib/prompts/sdk/publish.js +16 -0
  133. package/lib/prompts/sdk/publish.js.map +1 -0
  134. package/lib/prompts/sdk/save-changes.d.ts +21 -0
  135. package/lib/prompts/sdk/save-changes.js +84 -0
  136. package/lib/prompts/sdk/save-changes.js.map +1 -0
  137. package/lib/types/build/build.d.ts +81 -2
  138. package/lib/types/build/build.js +158 -0
  139. package/lib/types/build/build.js.map +1 -1
  140. package/lib/types/build-context.d.ts +12 -1
  141. package/lib/types/build-context.js +78 -4
  142. package/lib/types/build-context.js.map +1 -1
  143. package/lib/types/events/sdk-changes-saved.d.ts +8 -0
  144. package/lib/types/events/sdk-changes-saved.js +11 -0
  145. package/lib/types/events/sdk-changes-saved.js.map +1 -0
  146. package/lib/types/events/sdk-changes-tracked.d.ts +8 -0
  147. package/lib/types/events/sdk-changes-tracked.js +11 -0
  148. package/lib/types/events/sdk-changes-tracked.js.map +1 -0
  149. package/lib/types/events/sdk-conflicts-resolved.d.ts +8 -0
  150. package/lib/types/events/sdk-conflicts-resolved.js +11 -0
  151. package/lib/types/events/sdk-conflicts-resolved.js.map +1 -0
  152. package/lib/types/events/sdk-publish-validation-failed.d.ts +5 -0
  153. package/lib/types/events/sdk-publish-validation-failed.js +8 -0
  154. package/lib/types/events/sdk-publish-validation-failed.js.map +1 -0
  155. package/lib/types/file/directory.d.ts +10 -1
  156. package/lib/types/file/directory.js +63 -5
  157. package/lib/types/file/directory.js.map +1 -1
  158. package/lib/types/file/directoryPath.js.map +1 -1
  159. package/lib/types/file/urlPath.d.ts +4 -0
  160. package/lib/types/file/urlPath.js +9 -0
  161. package/lib/types/file/urlPath.js.map +1 -1
  162. package/lib/types/merge-source-tree-context.d.ts +28 -0
  163. package/lib/types/merge-source-tree-context.js +63 -0
  164. package/lib/types/merge-source-tree-context.js.map +1 -0
  165. package/lib/types/package-settings-context.d.ts +10 -0
  166. package/lib/types/package-settings-context.js +20 -0
  167. package/lib/types/package-settings-context.js.map +1 -0
  168. package/lib/types/publish/package-settings-configuration.d.ts +74 -0
  169. package/lib/types/publish/package-settings-configuration.js +2 -0
  170. package/lib/types/publish/package-settings-configuration.js.map +1 -0
  171. package/lib/types/publish/profile-id.d.ts +10 -0
  172. package/lib/types/publish/profile-id.js +22 -0
  173. package/lib/types/publish/profile-id.js.map +1 -0
  174. package/lib/types/publish/publishing-profile.d.ts +26 -0
  175. package/lib/types/publish/publishing-profile.js +154 -0
  176. package/lib/types/publish/publishing-profile.js.map +1 -0
  177. package/lib/types/publish/publishing-profiles.d.ts +12 -0
  178. package/lib/types/publish/publishing-profiles.js +36 -0
  179. package/lib/types/publish/publishing-profiles.js.map +1 -0
  180. package/lib/types/publish/version.d.ts +7 -0
  181. package/lib/types/publish/version.js +17 -0
  182. package/lib/types/publish/version.js.map +1 -0
  183. package/lib/types/publish-api/publish-log.d.ts +20 -0
  184. package/lib/types/publish-api/publish-log.js +2 -0
  185. package/lib/types/publish-api/publish-log.js.map +1 -0
  186. package/lib/types/publish-api/publishing-info.d.ts +4 -0
  187. package/lib/types/publish-api/publishing-info.js +2 -0
  188. package/lib/types/publish-api/publishing-info.js.map +1 -0
  189. package/lib/types/publish-api/publishing-profile-item.d.ts +190 -0
  190. package/lib/types/publish-api/publishing-profile-item.js +6 -0
  191. package/lib/types/publish-api/publishing-profile-item.js.map +1 -0
  192. package/lib/types/save-changes-context.d.ts +17 -0
  193. package/lib/types/save-changes-context.js +42 -0
  194. package/lib/types/save-changes-context.js.map +1 -0
  195. package/lib/types/sdk/generate.d.ts +8 -0
  196. package/lib/types/sdk/generate.js +10 -0
  197. package/lib/types/sdk/generate.js.map +1 -1
  198. package/lib/types/sdk-context.d.ts +5 -4
  199. package/lib/types/sdk-context.js +26 -13
  200. package/lib/types/sdk-context.js.map +1 -1
  201. package/lib/types/sdl/sdl.d.ts +0 -28
  202. package/lib/types/sdl/sdl.js +1 -128
  203. package/lib/types/sdl/sdl.js.map +1 -1
  204. package/lib/types/spec-context.js.map +1 -1
  205. package/lib/types/temp-context.js.map +1 -1
  206. package/lib/types/toc/toc-components.d.ts +37 -0
  207. package/lib/types/toc/toc-components.js +97 -0
  208. package/lib/types/toc/toc-components.js.map +1 -0
  209. package/lib/types/toc/toc.d.ts +11 -0
  210. package/lib/utils/string-utils.d.ts +0 -1
  211. package/lib/utils/string-utils.js +0 -42
  212. package/lib/utils/string-utils.js.map +1 -1
  213. package/package.json +28 -20
  214. package/lib/types/versioned-build-context.d.ts +0 -9
  215. package/lib/types/versioned-build-context.js +0 -21
  216. package/lib/types/versioned-build-context.js.map +0 -1
@@ -0,0 +1,84 @@
1
+ import { log, isCancel, select, confirm } from "@clack/prompts";
2
+ import { format as f, getTree } from "../format.js";
3
+ import { noteWrapped } from "../prompt.js";
4
+ export class SaveChangesPrompts {
5
+ srcDirectoryEmpty(directory) {
6
+ const message = `The ${f.var("src")} directory is either empty or invalid: ${f.path(directory)}`;
7
+ log.error(message);
8
+ }
9
+ invalidSdkDirectory(directory) {
10
+ const message = `SDK directory does not exist: ${f.path(directory)}`;
11
+ log.error(message);
12
+ }
13
+ invalidVersionedDocsDirectory(directory) {
14
+ const message = `The ${f.var("versioned_docs")} directory is either empty or invalid: ${f.path(directory)}`;
15
+ log.error(message);
16
+ }
17
+ apiVersionOnlyApplicableWithVersionedBuild() {
18
+ log.warn(`The ${f.flag("api-version")} is only applicable with a versioned build.`);
19
+ }
20
+ versionNotFound() {
21
+ log.error(`The selected API version is invalid.`);
22
+ }
23
+ async selectVersion(versions) {
24
+ const version = await select({
25
+ message: "Select an API version to save SDK changes into:",
26
+ options: versions.map((v) => ({ label: v, value: v }))
27
+ });
28
+ if (isCancel(version)) {
29
+ return undefined;
30
+ }
31
+ return version;
32
+ }
33
+ sdkSourceTreeNotFound(language) {
34
+ log.error(`No 'sdk-source-tree' found for ${f.var(language)}. You need to generate the SDK with change tracking enabled before you can save changes.`);
35
+ const message = `Generate the SDK with change tracking by running:
36
+ '${f.cmdAlt("apimatic", "sdk", "generate")} ${f.flag("language", language)} ${f.flag("track-changes")}'
37
+ Then customize your SDK and run ${f.cmdAlt("apimatic", "sdk", "save-changes")} again.`;
38
+ noteWrapped(message, "Next Steps");
39
+ }
40
+ operationCancelled() {
41
+ log.warn("Exiting without saving any changes.");
42
+ }
43
+ async directoryStillOpen(directory) {
44
+ log.info(`Please close all applications using the directory ${f.path(directory)} to allow cleanup of temporary files.`);
45
+ }
46
+ modifiedFilesDetected(directory) {
47
+ log.info(`Detected changes in the following file(s):
48
+ ${getTree(directory.toTreeNode())}`);
49
+ }
50
+ async confirmReviewChanges() {
51
+ const confirmed = await confirm({
52
+ message: `Do you want to review these changes?`,
53
+ initialValue: false
54
+ });
55
+ if (isCancel(confirmed)) {
56
+ return false;
57
+ }
58
+ return confirmed;
59
+ }
60
+ noChangesDetected() {
61
+ log.info("No changes detected in the SDK.");
62
+ }
63
+ openingDirectoryToReviewChanges() {
64
+ log.info(`Opening the changed files in VS Code for review. Close the editor to proceed.`);
65
+ }
66
+ async reviewChangesManually(tempDirectory) {
67
+ log.info(`Review the changes at ${f.path(tempDirectory)} to proceed.`);
68
+ }
69
+ async confirmSaveChanges() {
70
+ const confirmed = await confirm({
71
+ message: `Do you want to save these changes?`,
72
+ initialValue: true
73
+ });
74
+ if (isCancel(confirmed)) {
75
+ return false;
76
+ }
77
+ return confirmed;
78
+ }
79
+ changesSaved(sourceTreePath) {
80
+ log.success(`Changes saved successfully at ${f.path(sourceTreePath)}.`);
81
+ log.info(`Your saved changes will reapply automatically the next time you generate this SDK.`);
82
+ }
83
+ }
84
+ //# sourceMappingURL=save-changes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save-changes.js","sourceRoot":"","sources":["../../../src/prompts/sdk/save-changes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAI3C,MAAM,OAAO,kBAAkB;IAEtB,iBAAiB,CAAC,SAAwB;QAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACjG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAEM,mBAAmB,CAAC,SAAwB;QACjD,MAAM,OAAO,GAAG,iCAAiC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAEM,6BAA6B,CAAC,SAAwB;QAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,0CAA0C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5G,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAEM,0CAA0C;QAC/C,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,6CAA6C,CAAC,CAAC;IACtF,CAAC;IAEM,eAAe;QACpB,GAAG,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACpD,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,QAAkB;QAC3C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC;YAC3B,OAAO,EAAE,iDAAiD;YAC1D,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;SACvD,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,qBAAqB,CAAC,QAAgB;QAC3C,GAAG,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,0FAA0F,CAAC,CAAC;QACvJ,MAAM,OAAO,GAAG;GACjB,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;kCACnE,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,cAAc,CAAC,SAAS,CAAC;QACnF,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACrC,CAAC;IAEM,kBAAkB;QACvB,GAAG,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IAClD,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,SAAwB;QACtD,GAAG,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC;IAC1H,CAAC;IAEM,qBAAqB,CAAC,SAAoB;QAC/C,GAAG,CAAC,IAAI,CAAC;IACT,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,oBAAoB;QAC/B,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC;YAC9B,OAAO,EAAE,sCAAsC;YAC/C,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,iBAAiB;QACtB,GAAG,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC9C,CAAC;IAEM,+BAA+B;QACpC,GAAG,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;IAC5F,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,aAA4B;QAC7D,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IACzE,CAAC;IAEM,KAAK,CAAC,kBAAkB;QAC7B,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC;YAC9B,OAAO,EAAE,oCAAoC;YAC7C,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,YAAY,CAAC,cAAwB;QAC1C,GAAG,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACxE,GAAG,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAC;IACjG,CAAC;CACF"}
@@ -1,7 +1,11 @@
1
1
  import { DirectoryPath } from "../file/directoryPath.js";
2
- export interface BuildConfig {
2
+ import { UrlPath } from "../file/urlPath.js";
3
+ export interface BuildConfigData {
3
4
  generatePortal?: PortalConfig;
5
+ generateVersionedPortal?: object;
6
+ versionsPath?: string;
4
7
  apiCopilotConfig?: CopilotConfig;
8
+ recipes?: RecipesConfig;
5
9
  [key: string]: unknown;
6
10
  }
7
11
  export interface PortalConfig {
@@ -9,14 +13,89 @@ export interface PortalConfig {
9
13
  languageConfig: {
10
14
  [key: string]: object;
11
15
  };
12
- [key: string]: unknown;
16
+ /** URL where the portal will be hosted. Mirrors `generatePortal.baseUrl` in codegen. */
17
+ baseUrl?: string;
18
+ /** Portal UI settings. Mirrors `generatePortal.portalSettings` in codegen. */
19
+ portalSettings?: PortalSettingsData;
13
20
  apiSpecPath?: DirectoryPath;
21
+ [key: string]: unknown;
22
+ }
23
+ export interface PortalSettingsData {
24
+ /** Base URL for the API calls made by the portal. Preferred over `generatePortal.baseUrl` for portal artifacts. */
25
+ baseUrl?: string;
26
+ /** Language/template id the portal opens on first load. */
27
+ initialPlatform?: string;
28
+ /** Per-language portal settings, keyed by language/template id. */
29
+ languageSettings?: {
30
+ [language: string]: LanguageSettingData;
31
+ };
32
+ [key: string]: unknown;
33
+ }
34
+ export interface LanguageSettingData {
35
+ aiIntegration?: AiIntegration;
36
+ [key: string]: unknown;
37
+ }
38
+ export interface AiIntegration {
39
+ cursor?: AiIntegrationSetting;
40
+ claudeCode?: AiIntegrationSetting;
41
+ vscode?: AiIntegrationSetting;
42
+ }
43
+ export interface AiIntegrationSetting {
44
+ isEnabled: boolean;
45
+ stabilityLevelTag?: string;
14
46
  }
15
47
  export interface CopilotConfig {
16
48
  isEnabled: boolean;
17
49
  key: string;
18
50
  welcomeMessage: string;
19
51
  }
52
+ export interface RecipesConfig {
53
+ workflows?: RecipeWorkflow[];
54
+ }
55
+ export interface RecipeWorkflow {
56
+ name: string;
57
+ permalink: string;
58
+ functionName: string;
59
+ scriptPath: string;
60
+ }
20
61
  export declare function getLanguagesConfig(selectedLanguages: string[]): {
21
62
  [key: string]: object;
22
63
  };
64
+ export declare class LanguageSetting {
65
+ private readonly data;
66
+ private constructor();
67
+ static from(data?: LanguageSettingData): LanguageSetting;
68
+ /** Returns a copy with all AI editor integrations (Cursor/Claude Code/VS Code) enabled. */
69
+ withAiIntegrationsEnabled(): LanguageSetting;
70
+ toLanguageSettingData(): LanguageSettingData;
71
+ }
72
+ export declare class PortalSettings {
73
+ private readonly data;
74
+ private constructor();
75
+ static from(data?: PortalSettingsData): PortalSettings;
76
+ /** Returns a copy with the API-call base URL set. */
77
+ withBaseUrl(baseUrl: UrlPath): PortalSettings;
78
+ withAiIntegrations(languages: string[]): PortalSettings;
79
+ toPortalSettingsData(): PortalSettingsData;
80
+ }
81
+ export declare class BuildConfig {
82
+ private readonly data;
83
+ private constructor();
84
+ static parse(json: string): BuildConfig;
85
+ toJSON(): BuildConfigData;
86
+ /** Content directory for the portal, relative to the build directory. Defaults to "content". */
87
+ contentFolder(): string;
88
+ /** True when this build produces a multi-versioned portal. */
89
+ isVersioned(): boolean;
90
+ /** Directory holding the versioned portals, relative to the build directory. Defaults to "versioned_docs". */
91
+ versionsPath(): string;
92
+ /** True when API Copilot is already configured for this build. */
93
+ hasApiCopilot(): boolean;
94
+ /** Returns a copy with the portal's languageConfig set from the selected friendly language ids. */
95
+ withPortalLanguages(languages: string[]): BuildConfig;
96
+ /** Returns a copy with the API Copilot configuration set (or overwritten). */
97
+ withApiCopilotConfig(config: CopilotConfig): BuildConfig;
98
+ withApiCopilotForPortal(key: string, welcomeMessage: string, baseUrl: UrlPath): BuildConfig;
99
+ updateBuildConfigBaseUrl(serveUrl: UrlPath): BuildConfig;
100
+ withRecipeWorkflow(name: string, functionName: string, scriptPath: string): BuildConfig;
101
+ }
@@ -1,7 +1,165 @@
1
+ import { UrlPath } from "../file/urlPath.js";
1
2
  export function getLanguagesConfig(selectedLanguages) {
2
3
  return selectedLanguages.reduce((config, lang) => {
3
4
  config[lang] = {};
4
5
  return config;
5
6
  }, {});
6
7
  }
8
+ // Maps the CLI's friendly language identifiers (used as languageConfig keys) to
9
+ // codegen's SupportedTemplates ids, which is what portalSettings.languageSettings
10
+ // must be keyed by (codegen resolves these via SdkLanguage.FromSupportedTemplate).
11
+ // These ids are version-specific in codegen (e.g. php_generic_lib_v2) — keep in sync
12
+ // with APIMatic.CodeGen.Common.SdkLanguage.
13
+ const CODEGEN_TEMPLATE_ID_BY_LANGUAGE = {
14
+ typescript: "ts_generic_lib",
15
+ csharp: "cs_net_standard_lib",
16
+ java: "java_eclipse_jre_lib",
17
+ php: "php_generic_lib_v2",
18
+ python: "python_generic_lib",
19
+ ruby: "ruby_generic_lib",
20
+ go: "go_generic_lib"
21
+ };
22
+ // codegen derives initialPlatform from languageConfig (http is always first), so a
23
+ // languageSettings entry for http must exist or the portal widget fails to render.
24
+ const HTTP_TEMPLATE_ID = "http_curl_v1";
25
+ // Immutable per-language portal setting. Build new values via the static factory and
26
+ // the with* transforms; the wrapped data is never mutated after construction.
27
+ export class LanguageSetting {
28
+ constructor(data) {
29
+ this.data = data;
30
+ }
31
+ static from(data = {}) {
32
+ return new LanguageSetting(data);
33
+ }
34
+ /** Returns a copy with all AI editor integrations (Cursor/Claude Code/VS Code) enabled. */
35
+ withAiIntegrationsEnabled() {
36
+ return new LanguageSetting(Object.assign(Object.assign({}, this.data), { aiIntegration: {
37
+ cursor: { isEnabled: true },
38
+ claudeCode: { isEnabled: true },
39
+ vscode: { isEnabled: true }
40
+ } }));
41
+ }
42
+ toLanguageSettingData() {
43
+ return this.data;
44
+ }
45
+ }
46
+ // Immutable portal UI settings. Build new values via the static factory and the with*
47
+ // transforms; the wrapped data is never mutated after construction.
48
+ export class PortalSettings {
49
+ constructor(data) {
50
+ this.data = data;
51
+ }
52
+ static from(data = {}) {
53
+ return new PortalSettings(data);
54
+ }
55
+ /** Returns a copy with the API-call base URL set. */
56
+ withBaseUrl(baseUrl) {
57
+ return new PortalSettings(Object.assign(Object.assign({}, this.data), { baseUrl: baseUrl.toString() }));
58
+ }
59
+ // Returns a copy with AI editor integrations enabled for the given SDK languages
60
+ // (friendly ids). Always adds the http entry the portal needs to render and opens the
61
+ // portal on the first SDK language. Languages without a codegen template id are skipped.
62
+ withAiIntegrations(languages) {
63
+ var _a;
64
+ const languageSettings = Object.assign({}, this.data.languageSettings);
65
+ languageSettings[HTTP_TEMPLATE_ID] = (_a = languageSettings[HTTP_TEMPLATE_ID]) !== null && _a !== void 0 ? _a : {};
66
+ let firstSdkTemplateId;
67
+ for (const language of languages) {
68
+ const templateId = CODEGEN_TEMPLATE_ID_BY_LANGUAGE[language];
69
+ if (!templateId) {
70
+ continue;
71
+ }
72
+ firstSdkTemplateId !== null && firstSdkTemplateId !== void 0 ? firstSdkTemplateId : (firstSdkTemplateId = templateId);
73
+ languageSettings[templateId] = LanguageSetting.from(languageSettings[templateId]).withAiIntegrationsEnabled().toLanguageSettingData();
74
+ }
75
+ return new PortalSettings(Object.assign(Object.assign(Object.assign({}, this.data), { languageSettings }), (firstSdkTemplateId ? { initialPlatform: firstSdkTemplateId } : {})));
76
+ }
77
+ toPortalSettingsData() {
78
+ return this.data;
79
+ }
80
+ }
81
+ // Immutable wrapper around the parsed APIMATIC-BUILD.json. All build-config reads go
82
+ // through accessor methods and all changes go through with*/update methods that
83
+ // return a NEW BuildConfig — the wrapped data is never mutated after construction.
84
+ // Construct via `BuildConfig.parse`; persist via `BuildContext`.
85
+ export class BuildConfig {
86
+ constructor(data) {
87
+ this.data = data;
88
+ }
89
+ static parse(json) {
90
+ return new BuildConfig(JSON.parse(json));
91
+ }
92
+ // Called implicitly by JSON.stringify when the config is written back to disk.
93
+ toJSON() {
94
+ return this.data;
95
+ }
96
+ /** Content directory for the portal, relative to the build directory. Defaults to "content". */
97
+ contentFolder() {
98
+ var _a, _b;
99
+ return (_b = (_a = this.data.generatePortal) === null || _a === void 0 ? void 0 : _a.contentFolder) !== null && _b !== void 0 ? _b : "content";
100
+ }
101
+ /** True when this build produces a multi-versioned portal. */
102
+ isVersioned() {
103
+ return this.data.generateVersionedPortal != null;
104
+ }
105
+ /** Directory holding the versioned portals, relative to the build directory. Defaults to "versioned_docs". */
106
+ versionsPath() {
107
+ var _a;
108
+ return (_a = this.data.versionsPath) !== null && _a !== void 0 ? _a : "versioned_docs";
109
+ }
110
+ /** True when API Copilot is already configured for this build. */
111
+ hasApiCopilot() {
112
+ return this.data.apiCopilotConfig != null;
113
+ }
114
+ /** Returns a copy with the portal's languageConfig set from the selected friendly language ids. */
115
+ withPortalLanguages(languages) {
116
+ const portal = this.data.generatePortal;
117
+ return new BuildConfig(Object.assign(Object.assign({}, this.data), { generatePortal: Object.assign(Object.assign({}, portal), { languageConfig: getLanguagesConfig(languages) }) }));
118
+ }
119
+ /** Returns a copy with the API Copilot configuration set (or overwritten). */
120
+ withApiCopilotConfig(config) {
121
+ return new BuildConfig(Object.assign(Object.assign({}, this.data), { apiCopilotConfig: Object.assign({}, config) }));
122
+ }
123
+ // Returns a copy with API Copilot enabled for a locally-served portal: stores the
124
+ // Copilot config, points the portal base URL at the local serve URL, and turns on AI
125
+ // editor integrations for the configured SDK languages.
126
+ withApiCopilotForPortal(key, welcomeMessage, baseUrl) {
127
+ const portal = this.data.generatePortal;
128
+ return new BuildConfig(Object.assign(Object.assign({}, this.data), { apiCopilotConfig: { isEnabled: true, key, welcomeMessage }, generatePortal: Object.assign(Object.assign({}, portal), { baseUrl: baseUrl.toString(), portalSettings: PortalSettings.from(portal.portalSettings)
129
+ .withAiIntegrations(Object.keys(portal.languageConfig))
130
+ .toPortalSettingsData() }) }));
131
+ }
132
+ // Returns a copy with the portal base URL repointed at the serve URL, or `this`
133
+ // unchanged when there's no localhost base URL to rewrite (or it already matches the
134
+ // serve URL). Callers detect a change via reference identity: `result !== original`.
135
+ updateBuildConfigBaseUrl(serveUrl) {
136
+ var _a, _b, _c, _d;
137
+ // `portalSettings.baseUrl` is preferred for portal artifacts; otherwise fall back
138
+ // to `generatePortal.baseUrl`. Mirrors how codegen resolves the base URL.
139
+ const portalSettings = (_a = this.data.generatePortal) === null || _a === void 0 ? void 0 : _a.portalSettings;
140
+ const baseUrl = (_b = portalSettings === null || portalSettings === void 0 ? void 0 : portalSettings.baseUrl) !== null && _b !== void 0 ? _b : (_c = this.data.generatePortal) === null || _c === void 0 ? void 0 : _c.baseUrl;
141
+ if (!baseUrl) {
142
+ return this;
143
+ }
144
+ const parsedUrl = UrlPath.create(baseUrl);
145
+ if (!(parsedUrl === null || parsedUrl === void 0 ? void 0 : parsedUrl.isLocalhost()) || parsedUrl.isEqual(serveUrl)) {
146
+ return this;
147
+ }
148
+ const portal = this.data.generatePortal;
149
+ const updatedPortal = ((_d = portal.portalSettings) === null || _d === void 0 ? void 0 : _d.baseUrl)
150
+ ? Object.assign(Object.assign({}, portal), { portalSettings: PortalSettings.from(portal.portalSettings).withBaseUrl(serveUrl).toPortalSettingsData() }) : Object.assign(Object.assign({}, portal), { baseUrl: serveUrl.toString() });
151
+ return new BuildConfig(Object.assign(Object.assign({}, this.data), { generatePortal: updatedPortal }));
152
+ }
153
+ // Returns a copy with a recipe workflow added (or replaced, matched by permalink).
154
+ withRecipeWorkflow(name, functionName, scriptPath) {
155
+ var _a, _b;
156
+ const recipes = (_a = this.data.recipes) !== null && _a !== void 0 ? _a : {};
157
+ const workflows = (_b = recipes.workflows) !== null && _b !== void 0 ? _b : [];
158
+ const permalink = `page:recipes/${functionName}`;
159
+ const workflow = { name, permalink, functionName, scriptPath };
160
+ const existingIndex = workflows.findIndex((w) => w.permalink === permalink);
161
+ const updatedWorkflows = existingIndex === -1 ? [...workflows, workflow] : workflows.map((w, index) => (index === existingIndex ? workflow : w));
162
+ return new BuildConfig(Object.assign(Object.assign({}, this.data), { recipes: Object.assign(Object.assign({}, recipes), { workflows: updatedWorkflows }) }));
163
+ }
164
+ }
7
165
  //# sourceMappingURL=build.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/types/build/build.ts"],"names":[],"mappings":"AAqBA,MAAM,UAAU,kBAAkB,CAAC,iBAA2B;IAC5D,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QAC/C,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,EAA+B,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/types/build/build.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { DirectoryPath } from "./file/directoryPath.js";
2
+ import { FilePath } from "./file/filePath.js";
2
3
  import { BuildConfig } from "./build/build.js";
4
+ import { SpecContext } from "./spec-context.js";
3
5
  export declare class BuildContext {
4
6
  private readonly fileService;
5
7
  private readonly buildDirectory;
@@ -7,7 +9,16 @@ export declare class BuildContext {
7
9
  private get buildFile();
8
10
  validate(): Promise<boolean>;
9
11
  exists(): Promise<boolean>;
12
+ existsSync(): boolean;
10
13
  getBuildFileContents(): Promise<BuildConfig>;
11
- updateBuildFileContents(buildJson: BuildConfig): Promise<void>;
14
+ updateBuildFileContents(buildConfig: BuildConfig): Promise<void>;
12
15
  deleteWorkflowDir(): Promise<void>;
16
+ getBuildZipPath(tempDir: DirectoryPath, packageSettingsDirectory?: DirectoryPath): Promise<FilePath>;
17
+ getSpecContext(): SpecContext;
18
+ hasSdkSourceTree(language: string): Promise<boolean>;
19
+ getSdkSourceTree(language: string): FilePath;
20
+ isVersionedBuild(): Promise<boolean>;
21
+ getVersionedBuildDirectory(): Promise<DirectoryPath | undefined>;
22
+ getSingleVersionedBuildDirectory(): Promise<DirectoryPath | undefined>;
23
+ getSelectedVersionedBuildDirectory(versionSelector: (versions: string[]) => Promise<string | undefined>): Promise<DirectoryPath | undefined>;
13
24
  }
@@ -1,6 +1,9 @@
1
1
  import { FileService } from "../infrastructure/file-service.js";
2
2
  import { FilePath } from "./file/filePath.js";
3
3
  import { FileName } from "./file/fileName.js";
4
+ import { BuildConfig } from "./build/build.js";
5
+ import { SpecContext } from "./spec-context.js";
6
+ import { TempContext } from "./temp-context.js";
4
7
  export class BuildContext {
5
8
  constructor(buildDirectory) {
6
9
  this.fileService = new FileService();
@@ -17,17 +20,88 @@ export class BuildContext {
17
20
  return await this.fileService.fileExists(this.buildFile);
18
21
  }
19
22
  async exists() {
20
- return !(await this.fileService.directoryEmpty(this.buildDirectory));
23
+ return await this.fileService.directoryExists(this.buildDirectory);
24
+ }
25
+ existsSync() {
26
+ return this.fileService.directoryExistsSync(this.buildDirectory);
21
27
  }
22
28
  async getBuildFileContents() {
23
29
  const buildFileContent = await this.fileService.getContents(this.buildFile);
24
- return JSON.parse(buildFileContent);
30
+ return BuildConfig.parse(buildFileContent);
25
31
  }
26
- async updateBuildFileContents(buildJson) {
27
- await this.fileService.writeContents(this.buildFile, JSON.stringify(buildJson, null, 2));
32
+ async updateBuildFileContents(buildConfig) {
33
+ await this.fileService.writeContents(this.buildFile, JSON.stringify(buildConfig, null, 2));
28
34
  }
29
35
  async deleteWorkflowDir() {
30
36
  await this.fileService.deleteDirectory(this.buildDirectory.join(".github"));
31
37
  }
38
+ async getBuildZipPath(tempDir, packageSettingsDirectory) {
39
+ const tempContext = new TempContext(tempDir);
40
+ const tempBuildDir = tempDir.join("build");
41
+ await this.fileService.copyDirectoryContents(this.buildDirectory, tempBuildDir);
42
+ if (packageSettingsDirectory) {
43
+ await this.fileService.copyDirectoryContents(packageSettingsDirectory, tempBuildDir.join('package-settings'));
44
+ }
45
+ return await tempContext.zip(tempBuildDir);
46
+ }
47
+ getSpecContext() {
48
+ return new SpecContext(this.buildDirectory.join("spec"));
49
+ }
50
+ async hasSdkSourceTree(language) {
51
+ const sourceTreePath = FilePath.create(this.buildDirectory.join("sdk-source-tree").join(`.${language}`).toString());
52
+ if (!sourceTreePath) {
53
+ return false;
54
+ }
55
+ return await this.fileService.fileExists(sourceTreePath);
56
+ }
57
+ getSdkSourceTree(language) {
58
+ return FilePath.create(this.buildDirectory.join("sdk-source-tree").join(`.${language}`).toString());
59
+ }
60
+ async isVersionedBuild() {
61
+ if (!await this.validate()) {
62
+ return false;
63
+ }
64
+ return (await this.getBuildFileContents()).isVersioned();
65
+ }
66
+ async getVersionedBuildDirectory() {
67
+ const buildConfig = await this.getBuildFileContents();
68
+ if (!buildConfig.isVersioned()) {
69
+ return undefined;
70
+ }
71
+ const versionsDirectory = this.buildDirectory.join(buildConfig.versionsPath());
72
+ if (!await this.fileService.directoryExists(versionsDirectory)) {
73
+ return undefined;
74
+ }
75
+ const versionsDirs = await this.fileService.getSubDirectoriesPaths(versionsDirectory);
76
+ return versionsDirs.length > 0 ? versionsDirectory : undefined;
77
+ }
78
+ async getSingleVersionedBuildDirectory() {
79
+ const buildConfig = await this.getBuildFileContents();
80
+ if (!buildConfig.isVersioned()) {
81
+ return undefined;
82
+ }
83
+ const versionsDirectory = this.buildDirectory.join(buildConfig.versionsPath());
84
+ if (!await this.fileService.directoryExists(versionsDirectory)) {
85
+ return undefined;
86
+ }
87
+ const versionsDirs = await this.fileService.getSubDirectoriesPaths(versionsDirectory);
88
+ return versionsDirs.length === 1 ? versionsDirs[0] : undefined;
89
+ }
90
+ async getSelectedVersionedBuildDirectory(versionSelector) {
91
+ const buildConfig = await this.getBuildFileContents();
92
+ if (!buildConfig.isVersioned()) {
93
+ return undefined;
94
+ }
95
+ const versionsDirectory = this.buildDirectory.join(buildConfig.versionsPath());
96
+ if (!await this.fileService.directoryExists(versionsDirectory)) {
97
+ return undefined;
98
+ }
99
+ const versionsDirs = await this.fileService.getSubDirectoriesPaths(versionsDirectory);
100
+ const selectedVersion = await versionSelector(versionsDirs.map(dir => dir.leafName()));
101
+ if (!selectedVersion) {
102
+ return undefined;
103
+ }
104
+ return versionsDirs.find(dir => dir.leafName() === selectedVersion);
105
+ }
32
106
  }
33
107
  //# sourceMappingURL=build-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-context.js","sourceRoot":"","sources":["../../src/types/build-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,MAAM,OAAO,YAAY;IAIvB,YAAY,cAA6B;QAHxB,gBAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QAI/C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,IAAY,SAAS;QACnB,uCAAuC;QACvC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAChF,CAAC;IAEM,KAAK,CAAC,QAAQ;QACnB,6BAA6B;QAC7B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAEjF,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IAEM,KAAK,CAAC,MAAM;QACjB,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IACvE,CAAC;IAEM,KAAK,CAAC,oBAAoB;QAC/B,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAgB,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,uBAAuB,CAAC,SAAsB;QACzD,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC5B,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9E,CAAC;CACF"}
1
+ {"version":3,"file":"build-context.js","sourceRoot":"","sources":["../../src/types/build-context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { DomainEvent } from "./domain-event.js";
2
+ export declare class SdkChangesSavedEvent extends DomainEvent {
3
+ protected readonly eventName: string;
4
+ private static readonly message;
5
+ private static readonly commandName;
6
+ private readonly language;
7
+ constructor(language: string);
8
+ }
@@ -0,0 +1,11 @@
1
+ import { DomainEvent } from "./domain-event.js";
2
+ export class SdkChangesSavedEvent extends DomainEvent {
3
+ constructor(language) {
4
+ super(SdkChangesSavedEvent.message, SdkChangesSavedEvent.commandName, {});
5
+ this.eventName = SdkChangesSavedEvent.name;
6
+ this.language = language;
7
+ }
8
+ }
9
+ SdkChangesSavedEvent.message = "Save changes completed.";
10
+ SdkChangesSavedEvent.commandName = "sdk:save-changes";
11
+ //# sourceMappingURL=sdk-changes-saved.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-changes-saved.js","sourceRoot":"","sources":["../../../src/types/events/sdk-changes-saved.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IAMnD,YAAY,QAAgB;QAC1B,KAAK,CAAC,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QANzD,cAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC;QAOvD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;;AAPuB,4BAAO,GAAG,yBAAkC,AAArC,CAAsC;AAC7C,gCAAW,GAAG,kBAA2B,AAA9B,CAA+B"}
@@ -0,0 +1,8 @@
1
+ import { DomainEvent } from "./domain-event.js";
2
+ export declare class SdkChangesTrackedEvent extends DomainEvent {
3
+ protected readonly eventName: string;
4
+ private static readonly message;
5
+ private static readonly commandName;
6
+ private readonly language;
7
+ constructor(language: string);
8
+ }
@@ -0,0 +1,11 @@
1
+ import { DomainEvent } from "./domain-event.js";
2
+ export class SdkChangesTrackedEvent extends DomainEvent {
3
+ constructor(language) {
4
+ super(SdkChangesTrackedEvent.message, SdkChangesTrackedEvent.commandName, {});
5
+ this.eventName = SdkChangesTrackedEvent.name;
6
+ this.language = language;
7
+ }
8
+ }
9
+ SdkChangesTrackedEvent.message = "SDK generated with track changes enabled.";
10
+ SdkChangesTrackedEvent.commandName = "sdk:generate";
11
+ //# sourceMappingURL=sdk-changes-tracked.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-changes-tracked.js","sourceRoot":"","sources":["../../../src/types/events/sdk-changes-tracked.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,sBAAuB,SAAQ,WAAW;IAMrD,YAAY,QAAgB;QAC1B,KAAK,CAAC,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAN7D,cAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC;QAOzD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;;AAPuB,8BAAO,GAAG,2CAAoD,AAAvD,CAAwD;AAC/D,kCAAW,GAAG,cAAuB,AAA1B,CAA2B"}
@@ -0,0 +1,8 @@
1
+ import { DomainEvent } from "./domain-event.js";
2
+ export declare class SdkConflictsResolvedEvent extends DomainEvent {
3
+ protected readonly eventName: string;
4
+ private static readonly message;
5
+ private static readonly commandName;
6
+ private readonly language;
7
+ constructor(language: string);
8
+ }
@@ -0,0 +1,11 @@
1
+ import { DomainEvent } from "./domain-event.js";
2
+ export class SdkConflictsResolvedEvent extends DomainEvent {
3
+ constructor(language) {
4
+ super(SdkConflictsResolvedEvent.message, SdkConflictsResolvedEvent.commandName, {});
5
+ this.eventName = SdkConflictsResolvedEvent.name;
6
+ this.language = language;
7
+ }
8
+ }
9
+ SdkConflictsResolvedEvent.message = "SDK merge conflicts resolved.";
10
+ SdkConflictsResolvedEvent.commandName = "sdk:generate";
11
+ //# sourceMappingURL=sdk-conflicts-resolved.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-conflicts-resolved.js","sourceRoot":"","sources":["../../../src/types/events/sdk-conflicts-resolved.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,yBAA0B,SAAQ,WAAW;IAMxD,YAAY,QAAgB;QAC1B,KAAK,CAAC,yBAAyB,CAAC,OAAO,EAAE,yBAAyB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QANnE,cAAS,GAAG,yBAAyB,CAAC,IAAI,CAAC;QAO5D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;;AAPuB,iCAAO,GAAG,+BAAwC,AAA3C,CAA4C;AACnD,qCAAW,GAAG,cAAuB,AAA1B,CAA2B"}
@@ -0,0 +1,5 @@
1
+ import { DomainEvent } from './domain-event.js';
2
+ export declare class SdkPublishValidationFailedEvent extends DomainEvent {
3
+ protected readonly eventName: string;
4
+ constructor(message: string, commandName: string, flags: Record<string, unknown>);
5
+ }
@@ -0,0 +1,8 @@
1
+ import { DomainEvent } from './domain-event.js';
2
+ export class SdkPublishValidationFailedEvent extends DomainEvent {
3
+ constructor(message, commandName, flags) {
4
+ super(message, commandName, flags);
5
+ this.eventName = SdkPublishValidationFailedEvent.name;
6
+ }
7
+ }
8
+ //# sourceMappingURL=sdk-publish-validation-failed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-publish-validation-failed.js","sourceRoot":"","sources":["../../../src/types/events/sdk-publish-validation-failed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,+BAAgC,SAAQ,WAAW;IAG9D,YAAY,OAAe,EAAE,WAAmB,EAAE,KAA8B;QAC9E,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QAHlB,cAAS,GAAG,+BAA+B,CAAC,IAAI,CAAC;IAIpE,CAAC;CACF"}
@@ -1,8 +1,13 @@
1
1
  import { DirectoryPath } from "./directoryPath.js";
2
2
  import { FileName } from "./fileName.js";
3
3
  import { TocGroup } from "../toc/toc.js";
4
+ import { FilePath } from "./filePath.js";
4
5
  import { TreeNode } from "../../prompts/format.js";
5
- export type DirectoryItem = FileName | Directory;
6
+ export type FileItem = {
7
+ fileName: FileName;
8
+ description?: string;
9
+ };
10
+ export type DirectoryItem = FileItem | Directory;
6
11
  export declare class Directory {
7
12
  readonly directoryPath: DirectoryPath;
8
13
  readonly items: DirectoryItem[];
@@ -11,7 +16,11 @@ export declare class Directory {
11
16
  private static readonly folderDescriptions;
12
17
  private static readonly fileDescriptions;
13
18
  toTreeNode(): TreeNode;
19
+ mapFilesInDirectory(map: (rootDir: DirectoryPath, fileItem: FileItem) => Promise<FileItem | undefined>): Promise<Directory>;
20
+ isEmpty(): boolean;
21
+ getAllFiles(): FilePath[];
14
22
  parseContentFolder(baseContentPath: DirectoryPath): Promise<TocGroup[]>;
15
23
  private getPageName;
16
24
  private isRootContentDirectory;
25
+ static createFromRelativePaths(rootDir: DirectoryPath, fileItems: FileItem[]): Directory;
17
26
  }