@apimatic/cli 1.1.0-beta.10 → 1.1.0-beta.13

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 (166) hide show
  1. package/README.md +105 -6
  2. package/lib/actions/portal/generate.js +7 -1
  3. package/lib/actions/portal/generate.js.map +1 -1
  4. package/lib/actions/publishing/profile/list.d.ts +11 -0
  5. package/lib/actions/publishing/profile/list.js +29 -0
  6. package/lib/actions/publishing/profile/list.js.map +1 -0
  7. package/lib/actions/sdk/generate.d.ts +5 -1
  8. package/lib/actions/sdk/generate.js +55 -40
  9. package/lib/actions/sdk/generate.js.map +1 -1
  10. package/lib/actions/sdk/merge-source-tree.d.ts +12 -0
  11. package/lib/actions/sdk/merge-source-tree.js +78 -0
  12. package/lib/actions/sdk/merge-source-tree.js.map +1 -0
  13. package/lib/actions/sdk/publish/interactive.d.ts +13 -0
  14. package/lib/actions/sdk/publish/interactive.js +105 -0
  15. package/lib/actions/sdk/publish/interactive.js.map +1 -0
  16. package/lib/actions/sdk/publish/non-interactive.d.ts +14 -0
  17. package/lib/actions/sdk/publish/non-interactive.js +101 -0
  18. package/lib/actions/sdk/publish/non-interactive.js.map +1 -0
  19. package/lib/actions/sdk/publish.d.ts +18 -0
  20. package/lib/actions/sdk/publish.js +56 -0
  21. package/lib/actions/sdk/publish.js.map +1 -0
  22. package/lib/actions/sdk/quickstart.js +1 -1
  23. package/lib/actions/sdk/quickstart.js.map +1 -1
  24. package/lib/actions/sdk/save-changes.d.ts +8 -0
  25. package/lib/actions/sdk/save-changes.js +93 -0
  26. package/lib/actions/sdk/save-changes.js.map +1 -0
  27. package/lib/commands/portal/recipe/new.js +2 -2
  28. package/lib/commands/portal/recipe/new.js.map +1 -1
  29. package/lib/commands/portal/toc/new.js +2 -2
  30. package/lib/commands/portal/toc/new.js.map +1 -1
  31. package/lib/commands/publishing/profile/list.d.ts +9 -0
  32. package/lib/commands/publishing/profile/list.js +28 -0
  33. package/lib/commands/publishing/profile/list.js.map +1 -0
  34. package/lib/commands/quickstart.js +1 -1
  35. package/lib/commands/quickstart.js.map +1 -1
  36. package/lib/commands/sdk/generate.d.ts +4 -2
  37. package/lib/commands/sdk/generate.js +26 -8
  38. package/lib/commands/sdk/generate.js.map +1 -1
  39. package/lib/commands/sdk/publish.d.ts +18 -0
  40. package/lib/commands/sdk/publish.js +73 -0
  41. package/lib/commands/sdk/publish.js.map +1 -0
  42. package/lib/commands/sdk/save-changes.d.ts +14 -0
  43. package/lib/commands/sdk/save-changes.js +51 -0
  44. package/lib/commands/sdk/save-changes.js.map +1 -0
  45. package/lib/hooks/not-found.js +1 -1
  46. package/lib/hooks/not-found.js.map +1 -1
  47. package/lib/infrastructure/env-info.d.ts +2 -0
  48. package/lib/infrastructure/env-info.js +22 -11
  49. package/lib/infrastructure/env-info.js.map +1 -1
  50. package/lib/infrastructure/file-service.d.ts +9 -0
  51. package/lib/infrastructure/file-service.js +94 -5
  52. package/lib/infrastructure/file-service.js.map +1 -1
  53. package/lib/infrastructure/git-service.d.ts +14 -0
  54. package/lib/infrastructure/git-service.js +90 -0
  55. package/lib/infrastructure/git-service.js.map +1 -0
  56. package/lib/infrastructure/launcher-service.d.ts +5 -0
  57. package/lib/infrastructure/launcher-service.js +35 -2
  58. package/lib/infrastructure/launcher-service.js.map +1 -1
  59. package/lib/infrastructure/os-extensions.d.ts +2 -0
  60. package/lib/infrastructure/os-extensions.js +6 -0
  61. package/lib/infrastructure/os-extensions.js.map +1 -0
  62. package/lib/infrastructure/service-error.d.ts +14 -2
  63. package/lib/infrastructure/service-error.js +26 -9
  64. package/lib/infrastructure/service-error.js.map +1 -1
  65. package/lib/infrastructure/services/portal-service.d.ts +6 -1
  66. package/lib/infrastructure/services/portal-service.js +37 -18
  67. package/lib/infrastructure/services/portal-service.js.map +1 -1
  68. package/lib/infrastructure/services/publishing-api-service.d.ts +19 -0
  69. package/lib/infrastructure/services/publishing-api-service.js +111 -0
  70. package/lib/infrastructure/services/publishing-api-service.js.map +1 -0
  71. package/lib/infrastructure/zip-service.d.ts +2 -2
  72. package/lib/infrastructure/zip-service.js +29 -11
  73. package/lib/infrastructure/zip-service.js.map +1 -1
  74. package/lib/prompts/format.d.ts +0 -2
  75. package/lib/prompts/format.js +0 -31
  76. package/lib/prompts/format.js.map +1 -1
  77. package/lib/prompts/portal/generate.d.ts +1 -1
  78. package/lib/prompts/portal/generate.js +9 -3
  79. package/lib/prompts/portal/generate.js.map +1 -1
  80. package/lib/prompts/prompt.d.ts +6 -0
  81. package/lib/prompts/prompt.js +45 -0
  82. package/lib/prompts/prompt.js.map +1 -1
  83. package/lib/prompts/publishing/profile/list.d.ts +9 -0
  84. package/lib/prompts/publishing/profile/list.js +27 -0
  85. package/lib/prompts/publishing/profile/list.js.map +1 -0
  86. package/lib/prompts/sdk/generate.d.ts +5 -3
  87. package/lib/prompts/sdk/generate.js +20 -14
  88. package/lib/prompts/sdk/generate.js.map +1 -1
  89. package/lib/prompts/sdk/merge-source-tree.d.ts +22 -0
  90. package/lib/prompts/sdk/merge-source-tree.js +90 -0
  91. package/lib/prompts/sdk/merge-source-tree.js.map +1 -0
  92. package/lib/prompts/sdk/publish/interactive.d.ts +30 -0
  93. package/lib/prompts/sdk/publish/interactive.js +139 -0
  94. package/lib/prompts/sdk/publish/interactive.js.map +1 -0
  95. package/lib/prompts/sdk/publish/non-interactive.d.ts +27 -0
  96. package/lib/prompts/sdk/publish/non-interactive.js +97 -0
  97. package/lib/prompts/sdk/publish/non-interactive.js.map +1 -0
  98. package/lib/prompts/sdk/publish.d.ts +12 -0
  99. package/lib/prompts/sdk/publish.js +16 -0
  100. package/lib/prompts/sdk/publish.js.map +1 -0
  101. package/lib/prompts/sdk/save-changes.d.ts +21 -0
  102. package/lib/prompts/sdk/save-changes.js +84 -0
  103. package/lib/prompts/sdk/save-changes.js.map +1 -0
  104. package/lib/types/build/build.d.ts +2 -0
  105. package/lib/types/build/build.js.map +1 -1
  106. package/lib/types/build-context.d.ts +11 -0
  107. package/lib/types/build-context.js +81 -1
  108. package/lib/types/build-context.js.map +1 -1
  109. package/lib/types/events/sdk-changes-saved.d.ts +8 -0
  110. package/lib/types/events/sdk-changes-saved.js +11 -0
  111. package/lib/types/events/sdk-changes-saved.js.map +1 -0
  112. package/lib/types/events/sdk-changes-tracked.d.ts +8 -0
  113. package/lib/types/events/sdk-changes-tracked.js +11 -0
  114. package/lib/types/events/sdk-changes-tracked.js.map +1 -0
  115. package/lib/types/events/sdk-conflicts-resolved.d.ts +8 -0
  116. package/lib/types/events/sdk-conflicts-resolved.js +11 -0
  117. package/lib/types/events/sdk-conflicts-resolved.js.map +1 -0
  118. package/lib/types/events/sdk-publish-validation-failed.d.ts +5 -0
  119. package/lib/types/events/sdk-publish-validation-failed.js +8 -0
  120. package/lib/types/events/sdk-publish-validation-failed.js.map +1 -0
  121. package/lib/types/file/directory.d.ts +10 -1
  122. package/lib/types/file/directory.js +63 -5
  123. package/lib/types/file/directory.js.map +1 -1
  124. package/lib/types/file/directoryPath.js.map +1 -1
  125. package/lib/types/merge-source-tree-context.d.ts +28 -0
  126. package/lib/types/merge-source-tree-context.js +63 -0
  127. package/lib/types/merge-source-tree-context.js.map +1 -0
  128. package/lib/types/package-settings-context.d.ts +10 -0
  129. package/lib/types/package-settings-context.js +20 -0
  130. package/lib/types/package-settings-context.js.map +1 -0
  131. package/lib/types/publish/package-settings-configuration.d.ts +70 -0
  132. package/lib/types/publish/package-settings-configuration.js +46 -0
  133. package/lib/types/publish/package-settings-configuration.js.map +1 -0
  134. package/lib/types/publish/profile-id.d.ts +10 -0
  135. package/lib/types/publish/profile-id.js +22 -0
  136. package/lib/types/publish/profile-id.js.map +1 -0
  137. package/lib/types/publish/publishing-profile.d.ts +18 -0
  138. package/lib/types/publish/publishing-profile.js +105 -0
  139. package/lib/types/publish/publishing-profile.js.map +1 -0
  140. package/lib/types/publish/publishing-profiles.d.ts +12 -0
  141. package/lib/types/publish/publishing-profiles.js +36 -0
  142. package/lib/types/publish/publishing-profiles.js.map +1 -0
  143. package/lib/types/publish/version.d.ts +7 -0
  144. package/lib/types/publish/version.js +17 -0
  145. package/lib/types/publish/version.js.map +1 -0
  146. package/lib/types/publish-api/publish-log.d.ts +20 -0
  147. package/lib/types/publish-api/publish-log.js +2 -0
  148. package/lib/types/publish-api/publish-log.js.map +1 -0
  149. package/lib/types/publish-api/publishing-info.d.ts +4 -0
  150. package/lib/types/publish-api/publishing-info.js +2 -0
  151. package/lib/types/publish-api/publishing-info.js.map +1 -0
  152. package/lib/types/publish-api/publishing-profile-item.d.ts +183 -0
  153. package/lib/types/publish-api/publishing-profile-item.js +6 -0
  154. package/lib/types/publish-api/publishing-profile-item.js.map +1 -0
  155. package/lib/types/save-changes-context.d.ts +17 -0
  156. package/lib/types/save-changes-context.js +42 -0
  157. package/lib/types/save-changes-context.js.map +1 -0
  158. package/lib/types/sdk-context.d.ts +5 -4
  159. package/lib/types/sdk-context.js +26 -13
  160. package/lib/types/sdk-context.js.map +1 -1
  161. package/lib/types/spec-context.js.map +1 -1
  162. package/lib/types/temp-context.js.map +1 -1
  163. package/package.json +18 -9
  164. package/lib/types/versioned-build-context.d.ts +0 -15
  165. package/lib/types/versioned-build-context.js +0 -28
  166. package/lib/types/versioned-build-context.js.map +0 -1
@@ -0,0 +1,105 @@
1
+ import { Language } from '../sdk/generate.js';
2
+ import { PublishType } from '../publish-api/publishing-profile-item.js';
3
+ export class PublishingProfile {
4
+ constructor(item) {
5
+ this.item = item;
6
+ }
7
+ static create(item) {
8
+ return new PublishingProfile(item);
9
+ }
10
+ toString() {
11
+ return this.item.name;
12
+ }
13
+ hasEnabledLanguages() {
14
+ const languageConfigs = this.getLanguageConfigs();
15
+ return languageConfigs.some(({ packageConfig, gitConfig }) => (packageConfig === null || packageConfig === void 0 ? void 0 : packageConfig.isEnabled) || (gitConfig === null || gitConfig === void 0 ? void 0 : gitConfig.isEnabled));
16
+ }
17
+ isLanguageEnabled(language) {
18
+ const { packageConfig, gitConfig } = this.getLanguageConfig(language);
19
+ return (packageConfig === null || packageConfig === void 0 ? void 0 : packageConfig.isEnabled) === true || (gitConfig === null || gitConfig === void 0 ? void 0 : gitConfig.isEnabled) === true;
20
+ }
21
+ getEnabledLanguages() {
22
+ const languageConfigs = this.getLanguageConfigs();
23
+ return languageConfigs
24
+ .filter(({ packageConfig, gitConfig }) => (packageConfig === null || packageConfig === void 0 ? void 0 : packageConfig.isEnabled) || (gitConfig === null || gitConfig === void 0 ? void 0 : gitConfig.isEnabled))
25
+ .map(({ language }) => language);
26
+ }
27
+ getPublishTypesForLanguage(language) {
28
+ const { packageConfig, gitConfig } = this.getLanguageConfig(language);
29
+ const types = [];
30
+ if ((gitConfig === null || gitConfig === void 0 ? void 0 : gitConfig.isEnabled) === true)
31
+ types.push(PublishType.SourceCodePublishing);
32
+ if ((packageConfig === null || packageConfig === void 0 ? void 0 : packageConfig.isEnabled) === true)
33
+ types.push(PublishType.PackagePublishing);
34
+ return types;
35
+ }
36
+ getUnallowedPublishTypes(language, requestedTypes) {
37
+ const allowedTypes = this.getPublishTypesForLanguage(language);
38
+ return requestedTypes.filter((pt) => !allowedTypes.includes(pt));
39
+ }
40
+ toPublishingProfileSummaryGroup() {
41
+ return {
42
+ apiGroupName: this.item.apiGroupName,
43
+ profiles: [{ name: this.item.name, id: this.item.id, enabledLanguages: this.getEnabledLanguages() }]
44
+ };
45
+ }
46
+ toPublishingProfileWithLanguagesGroup() {
47
+ return {
48
+ apiGroupName: this.item.apiGroupName,
49
+ profiles: [{ profile: this.item, enabledLanguages: this.getEnabledLanguages() }]
50
+ };
51
+ }
52
+ getPackageConfigurationForLanguage(language) {
53
+ switch (language) {
54
+ case Language.CSHARP:
55
+ return this.item.cSharpConfiguration;
56
+ case Language.JAVA:
57
+ return this.item.javaConfiguration;
58
+ case Language.GO:
59
+ return this.item.goConfiguration;
60
+ case Language.RUBY:
61
+ return this.item.rubyConfiguration;
62
+ case Language.PHP:
63
+ return this.item.phpConfiguration;
64
+ case Language.PYTHON:
65
+ return this.item.pythonConfiguration;
66
+ case Language.TYPESCRIPT:
67
+ return this.item.typeScriptConfiguration;
68
+ }
69
+ }
70
+ getLanguageConfigs() {
71
+ return [
72
+ {
73
+ language: Language.CSHARP,
74
+ packageConfig: this.item.cSharpConfiguration,
75
+ gitConfig: this.item.cSharpGitConfiguration
76
+ },
77
+ {
78
+ language: Language.JAVA,
79
+ packageConfig: this.item.javaConfiguration,
80
+ gitConfig: this.item.javaGitConfiguration
81
+ },
82
+ { language: Language.GO, packageConfig: this.item.goConfiguration, gitConfig: this.item.goGitConfiguration },
83
+ { language: Language.PHP, packageConfig: this.item.phpConfiguration, gitConfig: this.item.phpGitConfiguration },
84
+ {
85
+ language: Language.PYTHON,
86
+ packageConfig: this.item.pythonConfiguration,
87
+ gitConfig: this.item.pythonGitConfiguration
88
+ },
89
+ {
90
+ language: Language.RUBY,
91
+ packageConfig: this.item.rubyConfiguration,
92
+ gitConfig: this.item.rubyGitConfiguration
93
+ },
94
+ {
95
+ language: Language.TYPESCRIPT,
96
+ packageConfig: this.item.typeScriptConfiguration,
97
+ gitConfig: this.item.typeScriptGitConfiguration
98
+ }
99
+ ];
100
+ }
101
+ getLanguageConfig(language) {
102
+ return this.getLanguageConfigs().find((lc) => lc.language === language);
103
+ }
104
+ }
105
+ //# sourceMappingURL=publishing-profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publishing-profile.js","sourceRoot":"","sources":["../../../src/types/publish/publishing-profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Result } from 'neverthrow';
2
+ import { PublishingProfileItem, PublishingProfileSummaryGroup, PublishingProfileWithLanguagesGroup } from '../publish-api/publishing-profile-item.js';
3
+ import { PublishingProfile } from './publishing-profile.js';
4
+ export declare class PublishingProfiles {
5
+ private readonly items;
6
+ private constructor();
7
+ static create(items: PublishingProfileItem[]): Result<PublishingProfiles, string>;
8
+ getActiveProfiles(): PublishingProfile[];
9
+ toActiveProfilesGroups(): PublishingProfileWithLanguagesGroup[];
10
+ toPublishingProfileSummariesByApiGroups(): PublishingProfileSummaryGroup[];
11
+ private groupByApiGroup;
12
+ }
@@ -0,0 +1,36 @@
1
+ import { err, ok } from 'neverthrow';
2
+ import { PublishingProfile } from './publishing-profile.js';
3
+ export class PublishingProfiles {
4
+ constructor(items) {
5
+ this.items = items;
6
+ }
7
+ static create(items) {
8
+ if (items.length === 0) {
9
+ return err('No publishing profiles found. Please create a publishing profile on the APIMatic App before publishing an SDK.');
10
+ }
11
+ return ok(new PublishingProfiles(items.map((item) => PublishingProfile.create(item))));
12
+ }
13
+ getActiveProfiles() {
14
+ return this.items.filter((p) => p.hasEnabledLanguages());
15
+ }
16
+ toActiveProfilesGroups() {
17
+ return this.groupByApiGroup(this.getActiveProfiles().map((p) => p.toPublishingProfileWithLanguagesGroup()));
18
+ }
19
+ toPublishingProfileSummariesByApiGroups() {
20
+ return this.groupByApiGroup(this.items.map((p) => p.toPublishingProfileSummaryGroup()));
21
+ }
22
+ groupByApiGroup(entries) {
23
+ const map = new Map();
24
+ for (const entry of entries) {
25
+ const existing = map.get(entry.apiGroupName);
26
+ if (existing) {
27
+ existing.profiles.push(...entry.profiles);
28
+ }
29
+ else {
30
+ map.set(entry.apiGroupName, Object.assign(Object.assign({}, entry), { profiles: [...entry.profiles] }));
31
+ }
32
+ }
33
+ return [...map.values()];
34
+ }
35
+ }
36
+ //# sourceMappingURL=publishing-profiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publishing-profiles.js","sourceRoot":"","sources":["../../../src/types/publish/publishing-profiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAU,MAAM,YAAY,CAAC;AAM7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,OAAO,kBAAkB;IAC7B,YAAqC,KAA0B;QAA1B,UAAK,GAAL,KAAK,CAAqB;IAAG,CAAC;IAE5D,MAAM,CAAC,MAAM,CAAC,KAA8B;QACjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,gHAAgH,CAAC,CAAC;QAC/H,CAAC;QAED,OAAO,EAAE,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,CAAC;IAEM,iBAAiB;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC3D,CAAC;IAEM,sBAAsB;QAC3B,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;IAC9G,CAAC;IAEM,uCAAuC;QAC5C,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;IAC1F,CAAC;IAEO,eAAe,CAA0D,OAAY;QAC3F,MAAM,GAAG,GAAG,IAAI,GAAG,EAAa,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC7C,IAAI,QAAQ,EAAE,CAAC;gBACZ,QAAQ,CAAC,QAAsB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,kCAAO,KAAK,KAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAG,CAAC;YAC3E,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3B,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ import { Result } from 'neverthrow';
2
+ export declare class SemVersion {
3
+ private readonly value;
4
+ private constructor();
5
+ static tryCreate(value: string): Result<SemVersion, string>;
6
+ toString(): string;
7
+ }
@@ -0,0 +1,17 @@
1
+ import { ok, err } from 'neverthrow';
2
+ export class SemVersion {
3
+ constructor(value) {
4
+ this.value = value;
5
+ }
6
+ static tryCreate(value) {
7
+ const parts = value.split('.');
8
+ if (parts.length !== 3 || !parts.every((p) => p !== '' && !isNaN(Number(p)) && Number(p) >= 0)) {
9
+ return err('Invalid version format. Expected major.minor.patch (e.g., 1.0.0).');
10
+ }
11
+ return ok(new SemVersion(value));
12
+ }
13
+ toString() {
14
+ return this.value;
15
+ }
16
+ }
17
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/types/publish/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,EAAE,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,OAAO,UAAU;IAGrB,YAAoB,KAAa;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,KAAa;QACnC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC/F,OAAO,GAAG,CAAC,mEAAmE,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ type SdkLanguage = "CSharp" | "Java" | "Php" | "Python" | "Ruby" | "TypeScript";
2
+ type PublishType = "Package" | "SourceCode";
3
+ type PublishEventType = "Queued" | "InProgress" | "Succeeded" | "Failed" | "Exception" | "InternalError";
4
+ export interface PublishLogEventItem {
5
+ sdkLanguage: SdkLanguage;
6
+ languageVersion: string;
7
+ publishType: PublishType;
8
+ eventType: PublishEventType;
9
+ inProgressTimeStamp: string | null;
10
+ timeStamp: string;
11
+ logUrl: string | null;
12
+ sdkUrl: string | null;
13
+ packageUrl: string | null;
14
+ sourceUrl: string | null;
15
+ }
16
+ export interface PublishLogItem {
17
+ publishLogId: string;
18
+ events: PublishLogEventItem[];
19
+ }
20
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=publish-log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish-log.js","sourceRoot":"","sources":["../../../src/types/publish-api/publish-log.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export interface PublishingInfo {
2
+ publishLogId: string;
3
+ publishingLogUrl: string;
4
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=publishing-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publishing-info.js","sourceRoot":"","sources":["../../../src/types/publish-api/publishing-info.ts"],"names":[],"mappings":""}
@@ -0,0 +1,183 @@
1
+ import { Language } from '../sdk/generate.js';
2
+ export declare enum PublishType {
3
+ PackagePublishing = "package",
4
+ SourceCodePublishing = "sourcecode"
5
+ }
6
+ export interface KeyValueItem {
7
+ key: string;
8
+ value: string;
9
+ }
10
+ export interface BaseConfigurationItem {
11
+ isEnabled: boolean;
12
+ credentialsId: string;
13
+ }
14
+ export interface GitConfigurationItem extends BaseConfigurationItem {
15
+ repositoryName: string;
16
+ branch: string;
17
+ }
18
+ export interface CSharpConfigurationItem extends BaseConfigurationItem {
19
+ packageId: string;
20
+ authors: string | null;
21
+ description: string | null;
22
+ title: string | null;
23
+ packageTags: string | null;
24
+ repositoryUrl: string | null;
25
+ repositoryType: string | null;
26
+ packageProjectUrl: string | null;
27
+ packageIcon: string | null;
28
+ packageReleaseNotes: string | null;
29
+ copyright: string | null;
30
+ }
31
+ export interface GoConfigurationItem extends BaseConfigurationItem {
32
+ packageName: string;
33
+ }
34
+ export interface JavaDeveloper {
35
+ name: string;
36
+ email: string;
37
+ organization: string | null;
38
+ organizationUrl: string | null;
39
+ }
40
+ export interface JavaSnapShotRepository {
41
+ id: string;
42
+ name: string | null;
43
+ url: string | null;
44
+ }
45
+ export interface JavaDistributionManagement {
46
+ snapShotRepository: JavaSnapShotRepository;
47
+ }
48
+ export interface JavaScm {
49
+ connection: string;
50
+ developerConnection: string;
51
+ url: string;
52
+ }
53
+ export interface JavaConfigurationItem extends BaseConfigurationItem {
54
+ groupId: string;
55
+ artifactId: string;
56
+ name: string;
57
+ description: string;
58
+ url: string;
59
+ developers: JavaDeveloper[];
60
+ distributionManagement: JavaDistributionManagement;
61
+ scm: JavaScm;
62
+ }
63
+ export interface PhpAuthor {
64
+ name: string | null;
65
+ email: string | null;
66
+ homepage: string | null;
67
+ role: string | null;
68
+ }
69
+ export interface PhpSupport {
70
+ email: string | null;
71
+ issues: string | null;
72
+ forum: string | null;
73
+ wiki: string | null;
74
+ irc: string | null;
75
+ chat: string | null;
76
+ source: string | null;
77
+ docs: string | null;
78
+ rss: string | null;
79
+ }
80
+ export interface PhpConfigurationItem extends BaseConfigurationItem {
81
+ gitCredentialsId: string;
82
+ repositoryName: string;
83
+ branchName: string;
84
+ vendorName: string;
85
+ projectName: string;
86
+ description: string;
87
+ type: string | null;
88
+ keywords: string[];
89
+ homepage: string | null;
90
+ authors: PhpAuthor[];
91
+ support: PhpSupport;
92
+ releaseNotes: string | null;
93
+ }
94
+ export interface PythonPerson {
95
+ email: string | null;
96
+ name: string | null;
97
+ }
98
+ export interface PythonConfigurationItem extends BaseConfigurationItem {
99
+ name: string;
100
+ description: string | null;
101
+ authors: PythonPerson[];
102
+ maintainers: PythonPerson[];
103
+ keywords: string[];
104
+ classifiers: string[];
105
+ urls: KeyValueItem[];
106
+ }
107
+ export interface RubyConfigurationItem extends BaseConfigurationItem {
108
+ name: string;
109
+ authors: string[];
110
+ summary: string;
111
+ description: string | null;
112
+ email: string[];
113
+ homepage: string | null;
114
+ metadata: KeyValueItem[];
115
+ postInstallMessage: string | null;
116
+ requirements: string[];
117
+ }
118
+ export interface TsPerson {
119
+ name: string | null;
120
+ email: string | null;
121
+ url: string | null;
122
+ }
123
+ export interface TsBugs {
124
+ url: string | null;
125
+ email: string | null;
126
+ }
127
+ export interface TsRepository {
128
+ type: string | null;
129
+ url: string | null;
130
+ directory: string | null;
131
+ }
132
+ export interface TypeScriptConfigurationItem extends BaseConfigurationItem {
133
+ name: string;
134
+ author: TsPerson;
135
+ description: string | null;
136
+ contributors: TsPerson[];
137
+ bugs: TsBugs;
138
+ keywords: string[];
139
+ homepage: string | null;
140
+ repository: TsRepository;
141
+ }
142
+ export interface PublishingProfileItem {
143
+ id: string;
144
+ name: string;
145
+ apiGroupId: string;
146
+ apiGroupName: string;
147
+ cSharpConfiguration: CSharpConfigurationItem | null;
148
+ goConfiguration: GoConfigurationItem | null;
149
+ javaConfiguration: JavaConfigurationItem | null;
150
+ phpConfiguration: PhpConfigurationItem | null;
151
+ pythonConfiguration: PythonConfigurationItem | null;
152
+ rubyConfiguration: RubyConfigurationItem | null;
153
+ typeScriptConfiguration: TypeScriptConfigurationItem | null;
154
+ cSharpGitConfiguration: GitConfigurationItem | null;
155
+ goGitConfiguration: GitConfigurationItem | null;
156
+ javaGitConfiguration: GitConfigurationItem | null;
157
+ phpGitConfiguration: GitConfigurationItem | null;
158
+ pythonGitConfiguration: GitConfigurationItem | null;
159
+ rubyGitConfiguration: GitConfigurationItem | null;
160
+ typeScriptGitConfiguration: GitConfigurationItem | null;
161
+ }
162
+ export interface LanguagePublishingConfig {
163
+ language: Language;
164
+ packageConfig: BaseConfigurationItem | null;
165
+ gitConfig: BaseConfigurationItem | null;
166
+ }
167
+ export interface PublishingProfileWithLanguages {
168
+ profile: PublishingProfileItem;
169
+ enabledLanguages: Language[];
170
+ }
171
+ export interface PublishingProfileWithLanguagesGroup {
172
+ apiGroupName: string;
173
+ profiles: PublishingProfileWithLanguages[];
174
+ }
175
+ export interface PublishingProfileSummary {
176
+ name: string;
177
+ id: string;
178
+ enabledLanguages: Language[];
179
+ }
180
+ export interface PublishingProfileSummaryGroup {
181
+ apiGroupName: string;
182
+ profiles: PublishingProfileSummary[];
183
+ }
@@ -0,0 +1,6 @@
1
+ export var PublishType;
2
+ (function (PublishType) {
3
+ PublishType["PackagePublishing"] = "package";
4
+ PublishType["SourceCodePublishing"] = "sourcecode";
5
+ })(PublishType || (PublishType = {}));
6
+ //# sourceMappingURL=publishing-profile-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publishing-profile-item.js","sourceRoot":"","sources":["../../../src/types/publish-api/publishing-profile-item.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,4CAA6B,CAAA;IAC7B,kDAAmC,CAAA;AACrC,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB"}
@@ -0,0 +1,17 @@
1
+ import { Directory } from "./file/directory.js";
2
+ import { DirectoryPath } from "./file/directoryPath.js";
3
+ import { FilePath } from "./file/filePath.js";
4
+ import { Language } from "./sdk/generate.js";
5
+ export declare class SaveChangesContext {
6
+ private readonly sourceTreePath;
7
+ private readonly sdkReviewDirectory;
8
+ private readonly fileService;
9
+ private readonly zipService;
10
+ private readonly gitService;
11
+ private readonly sdkInputDirectory;
12
+ constructor(sourceTreePath: FilePath, sdkReviewDirectory: DirectoryPath, sdkInputDirectory: DirectoryPath | undefined, workingDirectory: DirectoryPath, language: Language, version: string | undefined);
13
+ isSdkInputDirectoryMissing(onMissingDirectory: (directory: DirectoryPath) => void): Promise<boolean>;
14
+ getChangesForReviewDirectory(): Promise<Directory>;
15
+ cleanUpSdkReviewDirectory(onCleanUpFailure: () => void): Promise<void>;
16
+ saveSourceTree(): Promise<void>;
17
+ }
@@ -0,0 +1,42 @@
1
+ import { FileService } from "../infrastructure/file-service.js";
2
+ import { GitService } from "../infrastructure/git-service.js";
3
+ import { ZipService } from "../infrastructure/zip-service.js";
4
+ import { FileName } from "./file/fileName.js";
5
+ export class SaveChangesContext {
6
+ constructor(sourceTreePath, sdkReviewDirectory, sdkInputDirectory, workingDirectory, language, version) {
7
+ this.sourceTreePath = sourceTreePath;
8
+ this.sdkReviewDirectory = sdkReviewDirectory;
9
+ this.fileService = new FileService();
10
+ this.zipService = new ZipService();
11
+ this.gitService = new GitService();
12
+ this.sdkInputDirectory = sdkInputDirectory !== null && sdkInputDirectory !== void 0 ? sdkInputDirectory : (version
13
+ ? workingDirectory.join("sdk").join(version).join(language)
14
+ : workingDirectory.join("sdk").join(language));
15
+ }
16
+ async isSdkInputDirectoryMissing(onMissingDirectory) {
17
+ if (await this.fileService.directoryEmpty(this.sdkInputDirectory)) {
18
+ onMissingDirectory(this.sdkInputDirectory);
19
+ return true;
20
+ }
21
+ return false;
22
+ }
23
+ async getChangesForReviewDirectory() {
24
+ const sdkGitDir = this.sdkReviewDirectory.join(".git");
25
+ await this.fileService.createDirectoryIfNotExists(sdkGitDir);
26
+ await this.zipService.unArchive(this.sourceTreePath, sdkGitDir);
27
+ await this.gitService.checkoutCustomBranch(this.sdkReviewDirectory);
28
+ await this.fileService.cleanDirectoryExcluding(this.sdkReviewDirectory, [new FileName(".git")]);
29
+ await this.fileService.copyDirectoryExcluding(this.sdkInputDirectory, this.sdkReviewDirectory, [new FileName(".git")]);
30
+ return this.gitService.getDirectoryWithUpdatedFiles(this.sdkReviewDirectory);
31
+ }
32
+ async cleanUpSdkReviewDirectory(onCleanUpFailure) {
33
+ await this.fileService.pollDeleteDirectory(this.sdkReviewDirectory, onCleanUpFailure);
34
+ }
35
+ async saveSourceTree() {
36
+ const sdkGitDir = this.sdkReviewDirectory.join(".git");
37
+ await this.gitService.commitReviewedChanges(this.sdkReviewDirectory);
38
+ await this.gitService.forceCheckoutMainBranch(this.sdkReviewDirectory);
39
+ await this.zipService.archive(sdkGitDir, this.sourceTreePath);
40
+ }
41
+ }
42
+ //# sourceMappingURL=save-changes-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save-changes-context.js","sourceRoot":"","sources":["../../src/types/save-changes-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAG9D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI9C,MAAM,OAAO,kBAAkB;IAM7B,YACmB,cAAwB,EACxB,kBAAiC,EAClD,iBAA4C,EAC5C,gBAA+B,EAC/B,QAAkB,EAClB,OAA2B;QALV,mBAAc,GAAd,cAAc,CAAU;QACxB,uBAAkB,GAAlB,kBAAkB,CAAe;QAPnC,gBAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,eAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,eAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QAW7C,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GAAI,CAAC,OAAO;YAClD,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC3D,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,0BAA0B,CAAC,kBAAsD;QAC5F,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAClE,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,4BAA4B;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;QAC7D,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QAEhE,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpE,MAAM,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAChG,MAAM,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEvH,OAAO,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC/E,CAAC;IAEM,KAAK,CAAC,yBAAyB,CAAC,gBAA4B;QACjE,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;IACxF,CAAC;IAEM,KAAK,CAAC,cAAc;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACrE,MAAM,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACvE,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAChE,CAAC;CACF"}
@@ -2,13 +2,14 @@ import { DirectoryPath } from "./file/directoryPath.js";
2
2
  import { FilePath } from "./file/filePath.js";
3
3
  import { Language } from "./sdk/generate.js";
4
4
  export declare class SdkContext {
5
- private readonly sdkDirectory;
6
5
  private readonly language;
7
6
  private readonly fileService;
8
7
  private readonly zipService;
9
- constructor(sdkDirectory: DirectoryPath, language: Language);
8
+ private readonly sdkDirectory;
9
+ constructor(language: Language, sdkDirectory: DirectoryPath, requireUncustomizedDir: boolean, version?: string);
10
10
  private get zipPath();
11
- get sdkLanguageDirectory(): DirectoryPath;
12
11
  exists(): Promise<boolean>;
13
- save(tempPortalFilePath: FilePath, zipPortal: boolean): Promise<DirectoryPath>;
12
+ save(tempSdkDirectory: DirectoryPath, zipSdk: boolean): Promise<DirectoryPath>;
13
+ loadSdkInTempDirectory(tempDirectory: DirectoryPath, tempSdk: FilePath): Promise<DirectoryPath>;
14
+ loadSdkWithSourceTreeInTempDirectory(tempDirectory: DirectoryPath, tempSdk: FilePath, tempSdkSourceTree: FilePath): Promise<DirectoryPath>;
14
15
  }
@@ -3,30 +3,43 @@ import { FilePath } from "./file/filePath.js";
3
3
  import { FileName } from "./file/fileName.js";
4
4
  import { ZipService } from "../infrastructure/zip-service.js";
5
5
  export class SdkContext {
6
- constructor(sdkDirectory, language) {
7
- this.sdkDirectory = sdkDirectory;
6
+ constructor(language, sdkDirectory, requireUncustomizedDir, version) {
8
7
  this.language = language;
9
8
  this.fileService = new FileService();
10
9
  this.zipService = new ZipService();
10
+ const baseDirectory = requireUncustomizedDir ? sdkDirectory.join('uncustomized') : sdkDirectory;
11
+ this.sdkDirectory = version ? baseDirectory.join(version).join(language) : baseDirectory.join(language);
11
12
  }
12
13
  get zipPath() {
13
- return new FilePath(this.sdkLanguageDirectory, new FileName(`${this.language}.zip`));
14
- }
15
- get sdkLanguageDirectory() {
16
- return this.sdkDirectory.join(this.language);
14
+ return new FilePath(this.sdkDirectory, new FileName(`${this.language}.zip`));
17
15
  }
18
16
  async exists() {
19
- return !(await this.fileService.directoryEmpty(this.sdkLanguageDirectory));
17
+ return !(await this.fileService.directoryEmpty(this.sdkDirectory));
20
18
  }
21
- async save(tempPortalFilePath, zipPortal) {
22
- await this.fileService.cleanDirectory(this.sdkLanguageDirectory);
23
- if (zipPortal) {
24
- await this.fileService.copy(tempPortalFilePath, this.zipPath);
19
+ async save(tempSdkDirectory, zipSdk) {
20
+ await this.fileService.cleanDirectory(this.sdkDirectory);
21
+ if (!zipSdk) {
22
+ await this.fileService.copyDirectoryContents(tempSdkDirectory, this.sdkDirectory);
25
23
  }
26
24
  else {
27
- await this.zipService.unArchive(tempPortalFilePath, this.sdkLanguageDirectory);
25
+ await this.zipService.archive(tempSdkDirectory, this.zipPath);
28
26
  }
29
- return this.sdkLanguageDirectory;
27
+ return this.sdkDirectory;
28
+ }
29
+ async loadSdkInTempDirectory(tempDirectory, tempSdk) {
30
+ const tempSdkDirectory = tempDirectory.join('sdk-original');
31
+ await this.fileService.createDirectoryIfNotExists(tempSdkDirectory);
32
+ await this.zipService.unArchive(tempSdk, tempSdkDirectory);
33
+ return tempSdkDirectory;
34
+ }
35
+ async loadSdkWithSourceTreeInTempDirectory(tempDirectory, tempSdk, tempSdkSourceTree) {
36
+ const tempSdkDirectory = tempDirectory.join('sdk');
37
+ await this.fileService.createDirectoryIfNotExists(tempSdkDirectory);
38
+ await this.zipService.unArchive(tempSdk, tempSdkDirectory);
39
+ const gitSourceTreeDir = tempSdkDirectory.join('.git');
40
+ await this.fileService.createDirectoryIfNotExists(gitSourceTreeDir);
41
+ await this.zipService.unArchive(tempSdkSourceTree, gitSourceTreeDir);
42
+ return tempSdkDirectory;
30
43
  }
31
44
  }
32
45
  //# sourceMappingURL=sdk-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-context.js","sourceRoot":"","sources":["../../src/types/sdk-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;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAG9D,MAAM,OAAO,UAAU;IAIrB,YAA6B,YAA2B,EAAmB,QAAkB;QAAhE,iBAAY,GAAZ,YAAY,CAAe;QAAmB,aAAQ,GAAR,QAAQ,CAAU;QAH5E,gBAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,eAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IAG/C,CAAC;IAED,IAAY,OAAO;QACjB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,IAAW,oBAAoB;QAC7B,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,MAAM;QACjB,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC7E,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,kBAA4B,EAAE,SAAkB;QAChE,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjE,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,kBAAkB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"sdk-context.js","sourceRoot":"","sources":["../../src/types/sdk-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;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAE9D,MAAM,OAAO,UAAU;IAKrB,YACmB,QAAkB,EACnC,YAA2B,EAC3B,sBAA+B,EAC/B,OAAgB;QAHC,aAAQ,GAAR,QAAQ,CAAU;QALpB,gBAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,eAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QAS7C,MAAM,aAAa,GAAG,sBAAsB,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAEhG,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1G,CAAC;IAED,IAAY,OAAO;QACjB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC;IAC/E,CAAC;IAEM,KAAK,CAAC,MAAM;QACjB,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACrE,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,gBAA+B,EAAE,MAAe;QAChE,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACpF,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,aAA4B,EAAE,OAAiB;QACjF,MAAM,gBAAgB,GAAG,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5D,MAAM,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;QACpE,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAC3D,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,oCAAoC,CAC/C,aAA4B,EAC5B,OAAiB,EACjB,iBAA2B;QAE3B,MAAM,gBAAgB,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;QACpE,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;QACpE,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;QACrE,OAAO,gBAAgB,CAAC;IAC1B,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"spec-context.js","sourceRoot":"","sources":["../../src/types/spec-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;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAE9D,MAAM,OAAO,WAAW;IAKtB,YAAY,aAA4B;QAJvB,gBAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,eAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QAI7C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,QAAQ;QACnB,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACtE,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,QAAkB;QAChD,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAClG,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,MAA6B,EAAE,QAAkB;QACjE,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC5D,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACnD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
1
+ {"version":3,"file":"spec-context.js","sourceRoot":"","sources":["../../src/types/spec-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;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAE9D,MAAM,OAAO,WAAW;IAMtB,YAAY,aAA4B;QALvB,gBAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,eAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QAK7C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,QAAQ;QACnB,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACtE,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,QAAkB;QAChD,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAClG,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,MAA6B,EAAE,QAAkB;QACjE,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC5D,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACnD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"temp-context.js","sourceRoot":"","sources":["../../src/types/temp-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,OAAO,WAAW;IAItB,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QAHxC,gBAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,eAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IAEa,CAAC;IAE7D,IAAY,eAAe;QACzB,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;QAC1B,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IACnE,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,cAA6B;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;QACtC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACxD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,YAAmC;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;QACtC,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACzD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
1
+ {"version":3,"file":"temp-context.js","sourceRoot":"","sources":["../../src/types/temp-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,OAAO,WAAW;IAItB,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QAHxC,gBAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,eAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IAEc,CAAC;IAE9D,IAAY,eAAe;QACzB,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;QAC1B,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IACnE,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,cAA6B;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;QACtC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACxD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,YAAmC;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;QACtC,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACzD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}