@apimatic/cli 1.2.0 → 1.3.0-beta.1
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.
- package/README.md +65 -1
- package/lib/actions/action-result.d.ts +1 -0
- package/lib/actions/action-result.js +3 -0
- package/lib/actions/action-result.js.map +1 -1
- package/lib/actions/auth/status.js +5 -1
- package/lib/actions/auth/status.js.map +1 -1
- package/lib/actions/plugin/generate.d.ts +12 -0
- package/lib/actions/plugin/generate.js +71 -0
- package/lib/actions/plugin/generate.js.map +1 -0
- package/lib/actions/plugin/publish.d.ts +6 -0
- package/lib/actions/plugin/publish.js +43 -0
- package/lib/actions/plugin/publish.js.map +1 -0
- package/lib/actions/plugin/record-metadata.d.ts +18 -0
- package/lib/actions/plugin/record-metadata.js +57 -0
- package/lib/actions/plugin/record-metadata.js.map +1 -0
- package/lib/actions/plugin/record-sdk.d.ts +14 -0
- package/lib/actions/plugin/record-sdk.js +60 -0
- package/lib/actions/plugin/record-sdk.js.map +1 -0
- package/lib/actions/portal/quickstart.js +1 -1
- package/lib/actions/portal/quickstart.js.map +1 -1
- package/lib/actions/portal/toc/new-toc.js +27 -16
- package/lib/actions/portal/toc/new-toc.js.map +1 -1
- package/lib/actions/sdk/generate.d.ts +2 -2
- package/lib/actions/sdk/generate.js +4 -4
- package/lib/actions/sdk/generate.js.map +1 -1
- package/lib/actions/sdk/publish/interactive.js +22 -3
- package/lib/actions/sdk/publish/interactive.js.map +1 -1
- package/lib/actions/sdk/publish/non-interactive.d.ts +2 -2
- package/lib/actions/sdk/publish/non-interactive.js +19 -12
- package/lib/actions/sdk/publish/non-interactive.js.map +1 -1
- package/lib/actions/sdk/publish.d.ts +2 -3
- package/lib/actions/sdk/publish.js +26 -5
- package/lib/actions/sdk/publish.js.map +1 -1
- package/lib/actions/sdk/quickstart.js +2 -2
- package/lib/actions/sdk/quickstart.js.map +1 -1
- package/lib/commands/plugin/generate.d.ts +14 -0
- package/lib/commands/plugin/generate.js +37 -0
- package/lib/commands/plugin/generate.js.map +1 -0
- package/lib/commands/plugin/publish.d.ts +11 -0
- package/lib/commands/plugin/publish.js +29 -0
- package/lib/commands/plugin/publish.js.map +1 -0
- package/lib/commands/portal/generate.js +1 -1
- package/lib/commands/portal/generate.js.map +1 -1
- package/lib/commands/quickstart.js +1 -1
- package/lib/commands/quickstart.js.map +1 -1
- package/lib/commands/sdk/generate.js +4 -3
- package/lib/commands/sdk/generate.js.map +1 -1
- package/lib/commands/sdk/publish.d.ts +3 -0
- package/lib/commands/sdk/publish.js +18 -5
- package/lib/commands/sdk/publish.js.map +1 -1
- package/lib/config/axios-config.d.ts +6 -0
- package/lib/config/axios-config.js +8 -2
- package/lib/config/axios-config.js.map +1 -1
- package/lib/infrastructure/generation-status-poller.d.ts +31 -0
- package/lib/infrastructure/generation-status-poller.js +56 -0
- package/lib/infrastructure/generation-status-poller.js.map +1 -0
- package/lib/infrastructure/service-error.d.ts +11 -1
- package/lib/infrastructure/service-error.js +102 -0
- package/lib/infrastructure/service-error.js.map +1 -1
- package/lib/infrastructure/services/api-service.d.ts +0 -4
- package/lib/infrastructure/services/api-service.js +0 -72
- package/lib/infrastructure/services/api-service.js.map +1 -1
- package/lib/infrastructure/services/plugin-service.d.ts +24 -0
- package/lib/infrastructure/services/plugin-service.js +141 -0
- package/lib/infrastructure/services/plugin-service.js.map +1 -0
- package/lib/infrastructure/services/portal-service.d.ts +16 -1
- package/lib/infrastructure/services/portal-service.js +176 -130
- package/lib/infrastructure/services/portal-service.js.map +1 -1
- package/lib/infrastructure/services/publishing-api-service.js +12 -6
- package/lib/infrastructure/services/publishing-api-service.js.map +1 -1
- package/lib/infrastructure/services/transformation-service.d.ts +1 -0
- package/lib/infrastructure/services/transformation-service.js +29 -14
- package/lib/infrastructure/services/transformation-service.js.map +1 -1
- package/lib/infrastructure/services/validation-service.js +1 -1
- package/lib/infrastructure/services/validation-service.js.map +1 -1
- package/lib/prompts/auth/login.js +9 -2
- package/lib/prompts/auth/login.js.map +1 -1
- package/lib/prompts/auth/status.d.ts +1 -0
- package/lib/prompts/auth/status.js +5 -0
- package/lib/prompts/auth/status.js.map +1 -1
- package/lib/prompts/format.d.ts +4 -3
- package/lib/prompts/format.js +14 -13
- package/lib/prompts/format.js.map +1 -1
- package/lib/prompts/plugin/generate.d.ts +19 -0
- package/lib/prompts/plugin/generate.js +64 -0
- package/lib/prompts/plugin/generate.js.map +1 -0
- package/lib/prompts/plugin/publish.d.ts +25 -0
- package/lib/prompts/plugin/publish.js +77 -0
- package/lib/prompts/plugin/publish.js.map +1 -0
- package/lib/prompts/plugin/record-metadata.d.ts +25 -0
- package/lib/prompts/plugin/record-metadata.js +70 -0
- package/lib/prompts/plugin/record-metadata.js.map +1 -0
- package/lib/prompts/plugin/record-sdk.d.ts +9 -0
- package/lib/prompts/plugin/record-sdk.js +40 -0
- package/lib/prompts/plugin/record-sdk.js.map +1 -0
- package/lib/prompts/portal/generate.js +1 -1
- package/lib/prompts/portal/generate.js.map +1 -1
- package/lib/prompts/portal/quickstart.d.ts +1 -1
- package/lib/prompts/portal/quickstart.js +12 -5
- package/lib/prompts/portal/quickstart.js.map +1 -1
- package/lib/prompts/portal/toc/new-toc.d.ts +3 -2
- package/lib/prompts/portal/toc/new-toc.js +7 -3
- package/lib/prompts/portal/toc/new-toc.js.map +1 -1
- package/lib/prompts/publishing/profile/list.js +8 -3
- package/lib/prompts/publishing/profile/list.js.map +1 -1
- package/lib/prompts/quickstart.js +4 -4
- package/lib/prompts/quickstart.js.map +1 -1
- package/lib/prompts/sdk/generate.d.ts +2 -0
- package/lib/prompts/sdk/generate.js +7 -0
- package/lib/prompts/sdk/generate.js.map +1 -1
- package/lib/prompts/sdk/publish/interactive.d.ts +6 -4
- package/lib/prompts/sdk/publish/interactive.js +25 -11
- package/lib/prompts/sdk/publish/interactive.js.map +1 -1
- package/lib/prompts/sdk/publish/non-interactive.d.ts +1 -6
- package/lib/prompts/sdk/publish/non-interactive.js +7 -49
- package/lib/prompts/sdk/publish/non-interactive.js.map +1 -1
- package/lib/prompts/sdk/publish.d.ts +15 -2
- package/lib/prompts/sdk/publish.js +71 -5
- package/lib/prompts/sdk/publish.js.map +1 -1
- package/lib/prompts/sdk/quickstart.js +2 -0
- package/lib/prompts/sdk/quickstart.js.map +1 -1
- package/lib/types/api/generation-status.d.ts +5 -0
- package/lib/types/api/generation-status.js +2 -0
- package/lib/types/api/generation-status.js.map +1 -0
- package/lib/types/build/build.d.ts +1 -0
- package/lib/types/build/build.js +14 -0
- package/lib/types/build/build.js.map +1 -1
- package/lib/types/file/directory.d.ts +3 -0
- package/lib/types/file/directory.js +13 -0
- package/lib/types/file/directory.js.map +1 -1
- package/lib/types/plugin/generation-status.d.ts +23 -0
- package/lib/types/plugin/generation-status.js +18 -0
- package/lib/types/plugin/generation-status.js.map +1 -0
- package/lib/types/plugin/language-entry.d.ts +9 -0
- package/lib/types/plugin/language-entry.js +64 -0
- package/lib/types/plugin/language-entry.js.map +1 -0
- package/lib/types/plugin/plugin-config.d.ts +72 -0
- package/lib/types/plugin/plugin-config.js +4 -0
- package/lib/types/plugin/plugin-config.js.map +1 -0
- package/lib/types/plugin/plugin-contents.d.ts +5 -0
- package/lib/types/plugin/plugin-contents.js +2 -0
- package/lib/types/plugin/plugin-contents.js.map +1 -0
- package/lib/types/plugin-config-context.d.ts +63 -0
- package/lib/types/plugin-config-context.js +179 -0
- package/lib/types/plugin-config-context.js.map +1 -0
- package/lib/types/plugin-context.d.ts +13 -0
- package/lib/types/plugin-context.js +28 -0
- package/lib/types/plugin-context.js.map +1 -0
- package/lib/types/publish/package-settings-configuration.d.ts +11 -1
- package/lib/types/publish/package-settings-configuration.js +1 -1
- package/lib/types/publish/package-settings-configuration.js.map +1 -1
- package/lib/types/publish/publishing-profile.d.ts +3 -2
- package/lib/types/publish/publishing-profile.js +24 -18
- package/lib/types/publish/publishing-profile.js.map +1 -1
- package/lib/types/publish/version.d.ts +6 -1
- package/lib/types/publish/version.js +2 -1
- package/lib/types/publish/version.js.map +1 -1
- package/lib/types/sdk/generate.d.ts +19 -0
- package/lib/types/sdk/generate.js +44 -0
- package/lib/types/sdk/generate.js.map +1 -1
- package/lib/types/toc/toc-components.d.ts +0 -1
- package/lib/types/toc/toc-components.js +0 -3
- package/lib/types/toc/toc-components.js.map +1 -1
- package/lib/types/utils.d.ts +1 -0
- package/lib/utils/utils.d.ts +1 -0
- package/lib/utils/utils.js +22 -0
- package/lib/utils/utils.js.map +1 -1
- package/package.json +6 -3
|
@@ -30,7 +30,7 @@ class Quickstart extends Command {
|
|
|
30
30
|
}
|
|
31
31
|
_a = Quickstart;
|
|
32
32
|
Quickstart.description = "Get started with your first SDK or API Portal in four easy steps.";
|
|
33
|
-
Quickstart.summary = "Create your first
|
|
33
|
+
Quickstart.summary = "Create your first API Portal, Context Plugins and SDKs, or a standalone SDK, using APIMatic.";
|
|
34
34
|
Quickstart.cmdTxt = format.cmd("apimatic", "quickstart");
|
|
35
35
|
Quickstart.examples = [_a.cmdTxt];
|
|
36
36
|
export default Quickstart;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../src/commands/quickstart.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAEnF,MAAqB,UAAW,SAAQ,OAAO;IAA/C;;QA+BmB,iBAAY,GAAG,GAAG,EAAE;YACnC,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC,CAAC;IACJ,CAAC;IAzBC,KAAK,CAAC,GAAG;QACP,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACnE,MAAM,eAAe,GAAoB;YACvC,WAAW,EAAE,EAAU,CAAC,EAAE;YAC1B,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;SACzB,CAAC;QAEF,MAAM,gBAAgB,CAAC,UAAU,CAAC,IAAI,wBAAwB,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;QAEzF,KAAK,CAAC,YAAY,CAAC,CAAC;QACpB,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,eAAe,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACtC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,mDAAmD;QACnD,MAAM,MAAM,CAAC,MAAM,CACjB,KAAK,IAAI,EAAE,CAAC,MAAM,gBAAgB,CAAC,UAAU,CAAC,IAAI,wBAAwB,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,EACpG,KAAK,IAAI,EAAE,GAAE,CAAC,EACd,KAAK,IAAI,EAAE,GAAE,CAAC,CACf,CAAC;IACJ,CAAC;;;AA5BM,sBAAW,GAAG,mEAAmE,AAAtE,CAAuE;AAElF,kBAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../src/commands/quickstart.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAEnF,MAAqB,UAAW,SAAQ,OAAO;IAA/C;;QA+BmB,iBAAY,GAAG,GAAG,EAAE;YACnC,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC,CAAC;IACJ,CAAC;IAzBC,KAAK,CAAC,GAAG;QACP,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACnE,MAAM,eAAe,GAAoB;YACvC,WAAW,EAAE,EAAU,CAAC,EAAE;YAC1B,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;SACzB,CAAC;QAEF,MAAM,gBAAgB,CAAC,UAAU,CAAC,IAAI,wBAAwB,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;QAEzF,KAAK,CAAC,YAAY,CAAC,CAAC;QACpB,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,eAAe,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACtC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,mDAAmD;QACnD,MAAM,MAAM,CAAC,MAAM,CACjB,KAAK,IAAI,EAAE,CAAC,MAAM,gBAAgB,CAAC,UAAU,CAAC,IAAI,wBAAwB,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,EACpG,KAAK,IAAI,EAAE,GAAE,CAAC,EACd,KAAK,IAAI,EAAE,GAAE,CAAC,CACf,CAAC;IACJ,CAAC;;;AA5BM,sBAAW,GAAG,mEAAmE,AAAtE,CAAuE;AAElF,kBAAO,GAAG,8FAA8F,AAAjG,CAAkG;AAEzG,iBAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,AAAvC,CAAwC;AAE9C,mBAAQ,GAAG,CAAC,EAAI,CAAC,MAAM,CAAC,AAAhB,CAAiB;eAPb,UAAU"}
|
|
@@ -2,7 +2,7 @@ import { Command, Flags } from "@oclif/core";
|
|
|
2
2
|
import { DirectoryPath } from "../../types/file/directoryPath.js";
|
|
3
3
|
import { FlagsProvider } from "../../types/flags-provider.js";
|
|
4
4
|
import { GenerateAction } from "../../actions/sdk/generate.js";
|
|
5
|
-
import { CodeGenerationVersion, Language, Stability } from "../../types/sdk/generate.js";
|
|
5
|
+
import { CodeGenerationVersion, CodegenOption, Language, Stability } from "../../types/sdk/generate.js";
|
|
6
6
|
import { format, intro, outro } from "../../prompts/format.js";
|
|
7
7
|
import { SdkChangesTrackedEvent } from "../../types/events/sdk-changes-tracked.js";
|
|
8
8
|
import { TelemetryService } from "../../infrastructure/services/telemetry-service.js";
|
|
@@ -15,7 +15,8 @@ class SdkGenerate extends Command {
|
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
17
|
async run() {
|
|
18
|
-
|
|
18
|
+
var _a;
|
|
19
|
+
const { flags: { language, input, destination, force, zip: zipSdk, "auth-key": authKey, "skip-changes": skipChanges, "track-changes": trackChanges, "api-version": apiVersion, "codegen-version": codegenVersion, stability }, metadata } = await this.parse(SdkGenerate);
|
|
19
20
|
const workingDirectory = DirectoryPath.createInput(input);
|
|
20
21
|
const buildDirectory = input ? new DirectoryPath(input, "src") : workingDirectory.join("src");
|
|
21
22
|
const sdkDirectory = destination ? new DirectoryPath(destination) : workingDirectory.join("sdk");
|
|
@@ -26,7 +27,7 @@ class SdkGenerate extends Command {
|
|
|
26
27
|
const telemetryService = new TelemetryService(this.getConfigDir());
|
|
27
28
|
intro("Generate SDK");
|
|
28
29
|
const action = new GenerateAction(this.getConfigDir(), commandMetadata, authKey);
|
|
29
|
-
const result = await action.execute(buildDirectory, sdkDirectory, language, force, zipSdk, skipChanges, trackChanges, codegenVersion, stability, apiVersion);
|
|
30
|
+
const result = await action.execute(buildDirectory, sdkDirectory, language, force, zipSdk, skipChanges, trackChanges, CodegenOption.create(codegenVersion, stability), ((_a = metadata.flags.stability) === null || _a === void 0 ? void 0 : _a.setFromDefault) !== true, apiVersion);
|
|
30
31
|
outro(result);
|
|
31
32
|
await result.mapAll(async (res) => {
|
|
32
33
|
if (res === null || res === void 0 ? void 0 : res.sourceTreeTrackingInitiated) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/commands/sdk/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/commands/sdk/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,9 @@ export default class SdkPublish extends Command {
|
|
|
6
6
|
static flags: {
|
|
7
7
|
'publish-type': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
8
|
'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
9
|
+
'codegen-version': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
stability: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
'update-plugin-config': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
9
12
|
force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
13
|
language: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
14
|
destination: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Command, Flags } from '@oclif/core';
|
|
2
2
|
import { DirectoryPath } from '../../types/file/directoryPath.js';
|
|
3
3
|
import { FlagsProvider } from '../../types/flags-provider.js';
|
|
4
|
-
import { Language } from '../../types/sdk/generate.js';
|
|
4
|
+
import { CodeGenerationVersion, CodegenOption, Language, Stability } from '../../types/sdk/generate.js';
|
|
5
5
|
import { format, intro, outro } from '../../prompts/format.js';
|
|
6
6
|
import { PublishType } from '../../types/publish-api/publishing-profile-item.js';
|
|
7
7
|
import { TelemetryService } from '../../infrastructure/services/telemetry-service.js';
|
|
@@ -16,7 +16,8 @@ class SdkPublish extends Command {
|
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
async run() {
|
|
19
|
-
|
|
19
|
+
var _a;
|
|
20
|
+
const { flags: { 'profile-id': profileId, version, destination, language, force, input, 'publish-type': publishType, 'dry-run': dryRun, 'codegen-version': codegenVersion, stability, 'update-plugin-config': updatePluginConfig }, metadata } = await this.parse(SdkPublish);
|
|
20
21
|
const publishTypes = [...new Set(publishType)];
|
|
21
22
|
const interactive = this.argv.length === 0;
|
|
22
23
|
const commandMetadata = {
|
|
@@ -31,11 +32,11 @@ class SdkPublish extends Command {
|
|
|
31
32
|
const onPublishSdkError = interactive
|
|
32
33
|
? (errorMessage) => telemetryService.trackEvent(new SdkPublishValidationFailedEvent(errorMessage, SdkPublish.id, { interactive: true }), commandMetadata.shell)
|
|
33
34
|
: (errorMessage) => telemetryService.trackEvent(new SdkPublishValidationFailedEvent(errorMessage, SdkPublish.id, Object.assign(Object.assign({ 'profile-id': profileId, version,
|
|
34
|
-
language }, (force && { force })), { 'publish-type': publishTypes })), commandMetadata.shell);
|
|
35
|
+
language }, (force && { force })), { 'publish-type': publishTypes, 'codegen-version': codegenVersion, stability })), commandMetadata.shell);
|
|
35
36
|
intro('Publish SDK');
|
|
36
37
|
const result = interactive
|
|
37
38
|
? await new SdkPublishInteractiveAction(configDir, commandMetadata).execute(workingDirectory, onPublishSdkError)
|
|
38
|
-
: await new SdkPublishNonInteractiveAction(configDir, commandMetadata).execute(buildDirectory, sdkDirectory, language, publishTypes, force, dryRun, onPublishSdkError, profileId, version);
|
|
39
|
+
: await new SdkPublishNonInteractiveAction(configDir, commandMetadata).execute(buildDirectory, sdkDirectory, language, publishTypes, force, dryRun, CodegenOption.create(codegenVersion, stability), ((_a = metadata.flags.stability) === null || _a === void 0 ? void 0 : _a.setFromDefault) !== true, updatePluginConfig, onPublishSdkError, profileId, version);
|
|
39
40
|
outro(result);
|
|
40
41
|
}
|
|
41
42
|
}
|
|
@@ -62,12 +63,24 @@ SdkPublish.flags = Object.assign(Object.assign(Object.assign(Object.assign(Objec
|
|
|
62
63
|
}), 'dry-run': Flags.boolean({
|
|
63
64
|
default: false,
|
|
64
65
|
description: 'Generate the SDK locally for review without publishing.'
|
|
66
|
+
}), 'codegen-version': Flags.string({
|
|
67
|
+
description: 'Version of the code generator to use',
|
|
68
|
+
options: Object.values(CodeGenerationVersion).map((v) => v.valueOf()),
|
|
69
|
+
default: CodeGenerationVersion.V3
|
|
70
|
+
}), 'stability': Flags.string({
|
|
71
|
+
description: 'Stability level of the generated SDK',
|
|
72
|
+
options: Object.values(Stability).map((s) => s.valueOf()),
|
|
73
|
+
default: Stability.STABLE
|
|
74
|
+
}), 'update-plugin-config': Flags.boolean({
|
|
75
|
+
default: false,
|
|
76
|
+
description: "Record the published SDK in 'plugin-config.json', creating the file if it does not exist. Interactive runs are asked instead."
|
|
65
77
|
}) });
|
|
66
78
|
SdkPublish.examples = [
|
|
67
79
|
`${SdkPublish.cmdTxt}`,
|
|
68
80
|
`${SdkPublish.cmdTxt} ${format.flag('profile-id', 'a1b2c3d4e5f6a1b2c3d4e5f6')} ${format.flag('language', 'typescript')} ${format.flag('version', '1.0.0')} ${format.flag('publish-type', PublishType.PackagePublishing)} ${format.flag('publish-type', PublishType.SourceCodePublishing)}`,
|
|
69
81
|
`${SdkPublish.cmdTxt} ${format.flag('profile-id', 'b2c3d4e5f6a1b2c3d4e5f6a1')} ${format.flag('language', 'java')} ${format.flag('version', '2.0.0')} ${format.flag('publish-type', PublishType.SourceCodePublishing)}`,
|
|
70
|
-
`${SdkPublish.cmdTxt} ${format.flag('profile-id', 'c3d4e5f6a1b2c3d4e5f6a1b2')} ${format.flag('language', 'python')} ${format.flag('version', '1.0.0')} ${format.flag('publish-type', PublishType.PackagePublishing)} ${format.flag('dry-run')}
|
|
82
|
+
`${SdkPublish.cmdTxt} ${format.flag('profile-id', 'c3d4e5f6a1b2c3d4e5f6a1b2')} ${format.flag('language', 'python')} ${format.flag('version', '1.0.0')} ${format.flag('publish-type', PublishType.PackagePublishing)} ${format.flag('dry-run')}`,
|
|
83
|
+
`${SdkPublish.cmdTxt} ${format.flag('profile-id', 'd4e5f6a1b2c3d4e5f6a1b2c3')} ${format.flag('language', 'csharp')} ${format.flag('version', '1.0.0')} ${format.flag('publish-type', PublishType.PackagePublishing)} ${format.flag('codegen-version', 'v4')} ${format.flag('stability', 'beta')}`
|
|
71
84
|
];
|
|
72
85
|
export default SdkPublish;
|
|
73
86
|
//# sourceMappingURL=publish.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/commands/sdk/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/commands/sdk/publish.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The single bound on any one API request, shared by the instance below and by services that
|
|
3
|
+
* build their own. A generation budget is only read between polls, so without this a request
|
|
4
|
+
* that connects and never answers would outlive it and hang the CLI.
|
|
5
|
+
*/
|
|
6
|
+
export declare const REQUEST_TIMEOUT_MS: number;
|
|
1
7
|
declare const axiosInstance: import("axios").AxiosInstance;
|
|
2
8
|
export default axiosInstance;
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import axios from "axios";
|
|
2
2
|
const fiftyMBsInBytes = 50 * 1024 * 1024;
|
|
3
|
-
const
|
|
3
|
+
const fourMinutesInMilliseconds = 4 * 60 * 1000;
|
|
4
|
+
/**
|
|
5
|
+
* The single bound on any one API request, shared by the instance below and by services that
|
|
6
|
+
* build their own. A generation budget is only read between polls, so without this a request
|
|
7
|
+
* that connects and never answers would outlive it and hang the CLI.
|
|
8
|
+
*/
|
|
9
|
+
export const REQUEST_TIMEOUT_MS = fourMinutesInMilliseconds;
|
|
4
10
|
const axiosInstance = axios.create({
|
|
5
11
|
maxContentLength: fiftyMBsInBytes,
|
|
6
12
|
maxBodyLength: fiftyMBsInBytes,
|
|
7
|
-
timeout:
|
|
13
|
+
timeout: REQUEST_TIMEOUT_MS
|
|
8
14
|
});
|
|
9
15
|
export default axiosInstance;
|
|
10
16
|
//# sourceMappingURL=axios-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axios-config.js","sourceRoot":"","sources":["../../src/config/axios-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,eAAe,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACzC,MAAM,yBAAyB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhD,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC;IACjC,gBAAgB,EAAE,eAAe;IACjC,aAAa,EAAE,eAAe;IAC9B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"axios-config.js","sourceRoot":"","sources":["../../src/config/axios-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,eAAe,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACzC,MAAM,yBAAyB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AAE5D,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC;IACjC,gBAAgB,EAAE,eAAe;IACjC,aAAa,EAAE,eAAe;IAC9B,OAAO,EAAE,kBAAkB;CAC5B,CAAC,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Result } from 'neverthrow';
|
|
2
|
+
import { ServiceError } from './service-error.js';
|
|
3
|
+
export declare const STATUS_POLL_INTERVAL_MS = 3000;
|
|
4
|
+
/**
|
|
5
|
+
* Set well clear of any plausible run: it exists to end a generation that is stuck, not to
|
|
6
|
+
* cap a slow one. No duration data exists for real runs, so this is the number to revisit
|
|
7
|
+
* if a legitimate generation ever reports a timeout.
|
|
8
|
+
*/
|
|
9
|
+
export declare const GENERATION_TIMEOUT_MS: number;
|
|
10
|
+
export interface GenerationStatus {
|
|
11
|
+
status: string;
|
|
12
|
+
errors?: Record<string, unknown>;
|
|
13
|
+
}
|
|
14
|
+
export type ValidationErrorFormatter = (errors: Record<string, string[]>) => string;
|
|
15
|
+
export interface GenerationPoll<T extends GenerationStatus> {
|
|
16
|
+
pollIntervalMs: number;
|
|
17
|
+
fetchStatus: () => Promise<Result<T, ServiceError>>;
|
|
18
|
+
/**
|
|
19
|
+
* Bounds a run whose status never reaches a terminal value. `label` opens the message.
|
|
20
|
+
* The budget is only read between polls, so `fetchStatus` must bound its own request —
|
|
21
|
+
* one that connects and never answers outlives any budget set here.
|
|
22
|
+
*/
|
|
23
|
+
timeout: {
|
|
24
|
+
budgetMs: number;
|
|
25
|
+
label: string;
|
|
26
|
+
};
|
|
27
|
+
/** Only when the endpoint needs custom validation wording. */
|
|
28
|
+
formatValidationError?: ValidationErrorFormatter;
|
|
29
|
+
}
|
|
30
|
+
export declare function pollUntilCompleted<T extends GenerationStatus>({ pollIntervalMs, fetchStatus, timeout, formatValidationError }: GenerationPoll<T>): Promise<Result<T, ServiceError>>;
|
|
31
|
+
export declare const formatValidationErrors: ValidationErrorFormatter;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Status } from '@apimatic/sdk';
|
|
2
|
+
import { err, ok } from 'neverthrow';
|
|
3
|
+
import { ServiceError } from './service-error.js';
|
|
4
|
+
export const STATUS_POLL_INTERVAL_MS = 3000;
|
|
5
|
+
/**
|
|
6
|
+
* Set well clear of any plausible run: it exists to end a generation that is stuck, not to
|
|
7
|
+
* cap a slow one. No duration data exists for real runs, so this is the number to revisit
|
|
8
|
+
* if a legitimate generation ever reports a timeout.
|
|
9
|
+
*/
|
|
10
|
+
export const GENERATION_TIMEOUT_MS = 30 * 60 * 1000;
|
|
11
|
+
export async function pollUntilCompleted({ pollIntervalMs, fetchStatus, timeout, formatValidationError = formatValidationErrors }) {
|
|
12
|
+
const deadline = Date.now() + timeout.budgetMs;
|
|
13
|
+
for (;;) {
|
|
14
|
+
await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
|
|
15
|
+
const statusResult = await fetchStatus();
|
|
16
|
+
if (statusResult.isErr()) {
|
|
17
|
+
return err(statusResult.error);
|
|
18
|
+
}
|
|
19
|
+
const { status, errors } = statusResult.value;
|
|
20
|
+
if (status === Status.Completed) {
|
|
21
|
+
return ok(statusResult.value);
|
|
22
|
+
}
|
|
23
|
+
if (status === Status.Failed) {
|
|
24
|
+
return err(ServiceError.ServerError);
|
|
25
|
+
}
|
|
26
|
+
if (status === Status.ValidationError) {
|
|
27
|
+
const validationErrors = asMessages(errors);
|
|
28
|
+
return err(ServiceError.badRequest(formatValidationError(validationErrors), validationErrors));
|
|
29
|
+
}
|
|
30
|
+
if (status === Status.SubscriptionError) {
|
|
31
|
+
const message = Object.values(asMessages(errors)).flat()[0];
|
|
32
|
+
return err(ServiceError.forbidden('Access denied to resource.' + (message ? '\n- ' + message : '')));
|
|
33
|
+
}
|
|
34
|
+
// Every other status keeps the run alive rather than ending it: an endpoint reporting
|
|
35
|
+
// its own in-flight vocabulary is healthy, and the plugin orchestrator reports
|
|
36
|
+
// `Unknown` until it writes a custom status. The deadline is what stops a genuinely
|
|
37
|
+
// stuck run, and it is read after the status so a run that finished during the last
|
|
38
|
+
// wait still counts.
|
|
39
|
+
if (Date.now() >= deadline) {
|
|
40
|
+
return err(ServiceError.timeout(timedOutMessage(timeout.label, timeout.budgetMs)));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export const formatValidationErrors = (errors) => {
|
|
45
|
+
const messages = Object.values(errors).flat();
|
|
46
|
+
return 'One or more validation errors occurred.' + (messages.length ? '\n- ' + messages.join('\n- ') : '');
|
|
47
|
+
};
|
|
48
|
+
const timedOutMessage = (label, budgetMs) => {
|
|
49
|
+
const minutes = Math.floor(budgetMs / 60000);
|
|
50
|
+
if (minutes < 1) {
|
|
51
|
+
return `${label} timed out.`;
|
|
52
|
+
}
|
|
53
|
+
return `${label} timed out after ${minutes} ${minutes === 1 ? 'minute' : 'minutes'}.`;
|
|
54
|
+
};
|
|
55
|
+
const asMessages = (errors) => (errors !== null && errors !== void 0 ? errors : {});
|
|
56
|
+
//# sourceMappingURL=generation-status-poller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generation-status-poller.js","sourceRoot":"","sources":["../../src/infrastructure/generation-status-poller.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,8 @@ export declare enum ServiceErrorCode {
|
|
|
5
5
|
InvalidResponse = "INVALID_RESPONSE",
|
|
6
6
|
UnAuthorized = "UNAUTHORIZED",
|
|
7
7
|
BadRequest = "BAD_REQUEST",
|
|
8
|
-
Forbidden = "FORBIDDEN"
|
|
8
|
+
Forbidden = "FORBIDDEN",
|
|
9
|
+
Timeout = "TIMEOUT"
|
|
9
10
|
}
|
|
10
11
|
export declare class ServiceError {
|
|
11
12
|
readonly code: ServiceErrorCode;
|
|
@@ -20,9 +21,18 @@ export declare class ServiceError {
|
|
|
20
21
|
static badRequest(customMessage: string, errors: Record<string, string[]>): ServiceError;
|
|
21
22
|
static forbidden(customMessage: string): ServiceError;
|
|
22
23
|
static notFound(customMessage: string): ServiceError;
|
|
24
|
+
static timeout(customMessage: string): ServiceError;
|
|
25
|
+
static unauthorizedWithHint(apiMessage: string | null): ServiceError;
|
|
23
26
|
static readonly values: ServiceError[];
|
|
24
27
|
private constructor();
|
|
25
28
|
get errorMessage(): string;
|
|
26
29
|
getError(key: string): string[] | undefined;
|
|
27
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* `handleServiceError` maps an axios 401 onto the bare `Unauthorized access.`, which leaves the
|
|
33
|
+
* user with nothing to act on — the SDK path names the remedy but the axios path does not.
|
|
34
|
+
*/
|
|
35
|
+
export declare function mapTransportError(error: unknown): ServiceError;
|
|
36
|
+
/** For responses whose body is readable JSON; a streamed body can only be mapped by status. */
|
|
37
|
+
export declare function mapRequestError(error: unknown): ServiceError;
|
|
28
38
|
export declare function handleServiceError(error: unknown): ServiceError;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
var _a;
|
|
2
2
|
import axios from "axios";
|
|
3
|
+
import { ApiError, ProblemDetailsError } from "@apimatic/sdk";
|
|
3
4
|
import { format as f } from "../prompts/format.js";
|
|
5
|
+
import { discardStreamBody } from "../utils/utils.js";
|
|
4
6
|
export var ServiceErrorCode;
|
|
5
7
|
(function (ServiceErrorCode) {
|
|
6
8
|
ServiceErrorCode["NotFound"] = "NOT_FOUND";
|
|
@@ -10,6 +12,7 @@ export var ServiceErrorCode;
|
|
|
10
12
|
ServiceErrorCode["UnAuthorized"] = "UNAUTHORIZED";
|
|
11
13
|
ServiceErrorCode["BadRequest"] = "BAD_REQUEST";
|
|
12
14
|
ServiceErrorCode["Forbidden"] = "FORBIDDEN";
|
|
15
|
+
ServiceErrorCode["Timeout"] = "TIMEOUT";
|
|
13
16
|
})(ServiceErrorCode || (ServiceErrorCode = {}));
|
|
14
17
|
export class ServiceError {
|
|
15
18
|
static badRequest(customMessage, errors) {
|
|
@@ -21,6 +24,19 @@ export class ServiceError {
|
|
|
21
24
|
static notFound(customMessage) {
|
|
22
25
|
return new _a(ServiceErrorCode.NotFound, customMessage, {});
|
|
23
26
|
}
|
|
27
|
+
static timeout(customMessage) {
|
|
28
|
+
return new _a(ServiceErrorCode.Timeout, customMessage, {});
|
|
29
|
+
}
|
|
30
|
+
static unauthorizedWithHint(apiMessage) {
|
|
31
|
+
// Both remedies name the full `auth login` command: the key is supplied to
|
|
32
|
+
// that command, not to whichever one hit the 401 — most of them don't accept
|
|
33
|
+
// an --auth-key flag at all.
|
|
34
|
+
const loginCommand = f.cmdAlt("apimatic", "auth", "login");
|
|
35
|
+
const message = `${apiMessage !== null && apiMessage !== void 0 ? apiMessage : "Authorization has been denied for this request."} ` +
|
|
36
|
+
`Please run ${loginCommand} to log in via browser, ` +
|
|
37
|
+
`or provide a valid auth key using the ${loginCommand} ${f.flag("auth-key")}`;
|
|
38
|
+
return new _a(ServiceErrorCode.UnAuthorized, message, {});
|
|
39
|
+
}
|
|
24
40
|
constructor(code, defaultMessage, errors) {
|
|
25
41
|
this.code = code;
|
|
26
42
|
this.defaultMessage = defaultMessage;
|
|
@@ -47,8 +63,94 @@ ServiceError.values = [
|
|
|
47
63
|
_a.InvalidResponse,
|
|
48
64
|
_a.UnAuthorized
|
|
49
65
|
];
|
|
66
|
+
// A ProblemDetails body carries a `title` plus a map of field errors; surface
|
|
67
|
+
// the title and the first field message.
|
|
68
|
+
function mapProblemDetailsError(error) {
|
|
69
|
+
var _b, _c, _d, _e, _f;
|
|
70
|
+
// ProblemDetails.title and .errors are optional and result may be absent — guard
|
|
71
|
+
// all three so a sparse body can't crash or render a trailing "- null".
|
|
72
|
+
// TODO: This only picks the first error message, improve it to show all errors.
|
|
73
|
+
const errors = ((_c = (_b = error.result) === null || _b === void 0 ? void 0 : _b.errors) !== null && _c !== void 0 ? _c : {});
|
|
74
|
+
const firstFieldMessage = (_d = Object.values(errors)[0]) === null || _d === void 0 ? void 0 : _d[0];
|
|
75
|
+
const title = (_f = (_e = error.result) === null || _e === void 0 ? void 0 : _e.title) !== null && _f !== void 0 ? _f : "Request failed.";
|
|
76
|
+
const errorMessage = firstFieldMessage ? `${title}\n- ${firstFieldMessage}` : title;
|
|
77
|
+
if (error.statusCode === 400)
|
|
78
|
+
return ServiceError.badRequest(errorMessage, errors);
|
|
79
|
+
if (error.statusCode === 403)
|
|
80
|
+
return ServiceError.forbidden(errorMessage);
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
// SDK controllers throw typed `ApiError`s (not axios errors). The API reports
|
|
84
|
+
// the reason as {"message": "..."} deserialized into `result`.
|
|
85
|
+
function mapApiError(error) {
|
|
86
|
+
var _b, _c;
|
|
87
|
+
if (error instanceof ProblemDetailsError) {
|
|
88
|
+
const serviceError = mapProblemDetailsError(error);
|
|
89
|
+
if (serviceError)
|
|
90
|
+
return serviceError;
|
|
91
|
+
}
|
|
92
|
+
if (error.statusCode === 401) {
|
|
93
|
+
const apiMessage = (_c = (_b = error.result) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : null;
|
|
94
|
+
return ServiceError.unauthorizedWithHint(apiMessage);
|
|
95
|
+
}
|
|
96
|
+
if (error.statusCode === 404)
|
|
97
|
+
return ServiceError.NotFound;
|
|
98
|
+
return ServiceError.ServerError;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* `handleServiceError` reads a ProblemDetails body only off the SDK's typed errors, so on a raw
|
|
102
|
+
* axios call a 400 or 403 would collapse into a generic server error and lose its message.
|
|
103
|
+
* Unlike the SDK path this also falls back to `detail`, which io uses when it sends no `errors`
|
|
104
|
+
* map. Every other status is left to `mapTransportError`.
|
|
105
|
+
*/
|
|
106
|
+
function mapAxiosProblemDetails(error) {
|
|
107
|
+
var _b, _c, _d, _e, _f, _g;
|
|
108
|
+
if (!axios.isAxiosError(error)) {
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
const body = (_b = error.response) === null || _b === void 0 ? void 0 : _b.data;
|
|
112
|
+
if (typeof body !== "object" || body === null) {
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
const errors = (_c = body.errors) !== null && _c !== void 0 ? _c : {};
|
|
116
|
+
const firstMessage = (_d = Object.values(errors).flat()[0]) !== null && _d !== void 0 ? _d : body.detail;
|
|
117
|
+
const title = (_e = body.title) !== null && _e !== void 0 ? _e : "Request failed.";
|
|
118
|
+
const message = firstMessage ? `${title}\n- ${firstMessage}` : title;
|
|
119
|
+
if (((_f = error.response) === null || _f === void 0 ? void 0 : _f.status) === 400) {
|
|
120
|
+
return ServiceError.badRequest(message, errors);
|
|
121
|
+
}
|
|
122
|
+
if (((_g = error.response) === null || _g === void 0 ? void 0 : _g.status) === 403) {
|
|
123
|
+
return ServiceError.forbidden(message);
|
|
124
|
+
}
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* `handleServiceError` maps an axios 401 onto the bare `Unauthorized access.`, which leaves the
|
|
129
|
+
* user with nothing to act on — the SDK path names the remedy but the axios path does not.
|
|
130
|
+
*/
|
|
131
|
+
export function mapTransportError(error) {
|
|
132
|
+
var _b;
|
|
133
|
+
if (axios.isAxiosError(error) && ((_b = error.response) === null || _b === void 0 ? void 0 : _b.status) === 401) {
|
|
134
|
+
return ServiceError.unauthorizedWithHint(null);
|
|
135
|
+
}
|
|
136
|
+
return handleServiceError(error);
|
|
137
|
+
}
|
|
138
|
+
/** For responses whose body is readable JSON; a streamed body can only be mapped by status. */
|
|
139
|
+
export function mapRequestError(error) {
|
|
140
|
+
var _b;
|
|
141
|
+
return (_b = mapAxiosProblemDetails(error)) !== null && _b !== void 0 ? _b : mapTransportError(error);
|
|
142
|
+
}
|
|
50
143
|
export function handleServiceError(error) {
|
|
51
144
|
var _b;
|
|
145
|
+
if (error instanceof ApiError) {
|
|
146
|
+
// A `callAsStream` error body would otherwise hang the CLI. Order against
|
|
147
|
+
// `mapApiError` is free: `error.result` is only populated when the SDK
|
|
148
|
+
// drained the body itself, so a live stream and a readable `result` never
|
|
149
|
+
// coexist.
|
|
150
|
+
const serviceError = mapApiError(error);
|
|
151
|
+
discardStreamBody(error.body);
|
|
152
|
+
return serviceError;
|
|
153
|
+
}
|
|
52
154
|
if (axios.isAxiosError(error)) {
|
|
53
155
|
const status = (_b = error.response) === null || _b === void 0 ? void 0 : _b.status;
|
|
54
156
|
if (status === 401)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-error.js","sourceRoot":"","sources":["../../src/infrastructure/service-error.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"service-error.js","sourceRoot":"","sources":["../../src/infrastructure/service-error.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,9 @@ import { DirectoryPath } from "../../types/file/directoryPath.js";
|
|
|
2
2
|
import { SubscriptionInfo } from "../../types/api/account.js";
|
|
3
3
|
import { Result } from "neverthrow";
|
|
4
4
|
import { ServiceError } from "../service-error.js";
|
|
5
|
-
import { PortalGenerationStatusResponse, SdkGenerationStatusResponse } from "@apimatic/sdk";
|
|
6
5
|
export declare class ApiService {
|
|
7
6
|
private readonly apiBaseUrl;
|
|
8
7
|
getAccountInfo(configDir: DirectoryPath, shell: string, authKey: string | null): Promise<Result<SubscriptionInfo, ServiceError>>;
|
|
9
|
-
getPortalGenerationStatus(requestId: string, configDir: DirectoryPath, shell: string, authKey: string | null): Promise<Result<PortalGenerationStatusResponse, ServiceError>>;
|
|
10
|
-
getSdkGenerationStatus(requestId: string, configDir: DirectoryPath, shell: string, authKey: string | null): Promise<Result<SdkGenerationStatusResponse, ServiceError>>;
|
|
11
|
-
getV4SdkGenerationStatus(requestId: string, configDir: DirectoryPath, shell: string, authKey: string | null): Promise<Result<SdkGenerationStatusResponse, ServiceError>>;
|
|
12
8
|
sendTelemetry(payload: string, authKey: string, shell: string): Promise<Result<string, string | ServiceError>>;
|
|
13
9
|
private axiosInstance;
|
|
14
10
|
}
|
|
@@ -24,78 +24,6 @@ export class ApiService {
|
|
|
24
24
|
return err(handleServiceError(error));
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
async getPortalGenerationStatus(requestId, configDir, shell, authKey) {
|
|
28
|
-
const authInfo = await getAuthInfo(configDir.toString());
|
|
29
|
-
if (authInfo === null && !authKey) {
|
|
30
|
-
return err(ServiceError.UnAuthorized);
|
|
31
|
-
}
|
|
32
|
-
try {
|
|
33
|
-
const token = authKey || (authInfo === null || authInfo === void 0 ? void 0 : authInfo.authKey);
|
|
34
|
-
const response = await this.axiosInstance(shell, token).get(`/portal/v2/${requestId}/status`, {
|
|
35
|
-
headers: { Accept: "application/json" },
|
|
36
|
-
maxRedirects: 0,
|
|
37
|
-
validateStatus: () => true
|
|
38
|
-
});
|
|
39
|
-
if (response.status === 200) {
|
|
40
|
-
return ok(response.data);
|
|
41
|
-
}
|
|
42
|
-
if (response.status === 302) {
|
|
43
|
-
return ok({ status: "Completed" });
|
|
44
|
-
}
|
|
45
|
-
return err(ServiceError.InvalidResponse);
|
|
46
|
-
}
|
|
47
|
-
catch (error) {
|
|
48
|
-
return err(handleServiceError(error));
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
async getSdkGenerationStatus(requestId, configDir, shell, authKey) {
|
|
52
|
-
const authInfo = await getAuthInfo(configDir.toString());
|
|
53
|
-
if (authInfo === null && !authKey) {
|
|
54
|
-
return err(ServiceError.UnAuthorized);
|
|
55
|
-
}
|
|
56
|
-
try {
|
|
57
|
-
const token = authKey || (authInfo === null || authInfo === void 0 ? void 0 : authInfo.authKey);
|
|
58
|
-
const response = await this.axiosInstance(shell, token).get(`/sdk/${requestId}/status`, {
|
|
59
|
-
headers: { Accept: 'application/json' },
|
|
60
|
-
maxRedirects: 0,
|
|
61
|
-
validateStatus: () => true
|
|
62
|
-
});
|
|
63
|
-
if (response.status === 200) {
|
|
64
|
-
return ok(response.data);
|
|
65
|
-
}
|
|
66
|
-
if (response.status === 302) {
|
|
67
|
-
return ok({ status: 'Completed' });
|
|
68
|
-
}
|
|
69
|
-
return err(ServiceError.InvalidResponse);
|
|
70
|
-
}
|
|
71
|
-
catch (error) {
|
|
72
|
-
return err(handleServiceError(error));
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
async getV4SdkGenerationStatus(requestId, configDir, shell, authKey) {
|
|
76
|
-
const authInfo = await getAuthInfo(configDir.toString());
|
|
77
|
-
if (authInfo === null && !authKey) {
|
|
78
|
-
return err(ServiceError.UnAuthorized);
|
|
79
|
-
}
|
|
80
|
-
try {
|
|
81
|
-
const token = authKey || (authInfo === null || authInfo === void 0 ? void 0 : authInfo.authKey);
|
|
82
|
-
const response = await this.axiosInstance(shell, token).get(`/sdk/v2/${requestId}/status`, {
|
|
83
|
-
headers: { Accept: 'application/json' },
|
|
84
|
-
maxRedirects: 0,
|
|
85
|
-
validateStatus: () => true
|
|
86
|
-
});
|
|
87
|
-
if (response.status === 200) {
|
|
88
|
-
return ok(response.data);
|
|
89
|
-
}
|
|
90
|
-
if (response.status === 302) {
|
|
91
|
-
return ok({ status: 'Completed' });
|
|
92
|
-
}
|
|
93
|
-
return err(ServiceError.InvalidResponse);
|
|
94
|
-
}
|
|
95
|
-
catch (error) {
|
|
96
|
-
return err(handleServiceError(error));
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
27
|
async sendTelemetry(payload, authKey, shell) {
|
|
100
28
|
try {
|
|
101
29
|
const response = await this.axiosInstance(shell, authKey).post("/telemetry/track", payload, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-service.js","sourceRoot":"","sources":["../../../src/infrastructure/services/api-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAY,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAG3E,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAU,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"api-service.js","sourceRoot":"","sources":["../../../src/infrastructure/services/api-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAY,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAG3E,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAU,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEvE,MAAM,OAAO,UAAU;IAAvB;QACmB,eAAU,GAAG,yBAAkC,CAAC;IAsDnE,CAAC;IApDQ,KAAK,CAAC,cAAc,CACzB,SAAwB,EACxB,KAAa,EACb,OAAsB;QAEtB,MAAM,QAAQ,GAAoB,MAAM,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1E,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,OAAO,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,OAAO,KAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAA,CAAC;YAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAEhF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAwB,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO,GAAG,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,OAAe,EAAE,KAAa;QACxE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE;gBAC1F,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;aAChD,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,OAAO,EAAE,CAAC,gBAAgB,CAAC,CAAC;YAC9B,CAAC;YACD,OAAO,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,KAAa,EAAE,MAA0B;;QAC7D,MAAM,OAAO,GAA2B;YACtC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;SAC1C,CAAC;QAEF,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,aAAa,GAAG,cAAc,MAAM,EAAE,CAAC;QACjD,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,CAAC;YAClB,OAAO,EAAE,MAAA,OAAO,CAAC,UAAU,EAAE,mCAAI,IAAI,CAAC,UAAU;YAChD,OAAO;SACR,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Result } from 'neverthrow';
|
|
2
|
+
import { CommandMetadata } from '../../types/common/command-metadata.js';
|
|
3
|
+
import { DirectoryPath } from '../../types/file/directoryPath.js';
|
|
4
|
+
import { FilePath } from '../../types/file/filePath.js';
|
|
5
|
+
import { ServiceError } from '../service-error.js';
|
|
6
|
+
declare const TIMING_DEFAULTS: {
|
|
7
|
+
pollIntervalMs: number;
|
|
8
|
+
generationTimeoutMs: number;
|
|
9
|
+
requestTimeoutMs: number;
|
|
10
|
+
};
|
|
11
|
+
/** Overridable so tests are not paced by the production defaults; nothing else overrides them. */
|
|
12
|
+
export type GenerationTimings = Partial<typeof TIMING_DEFAULTS>;
|
|
13
|
+
export declare class PluginService {
|
|
14
|
+
private readonly apiBaseUrl;
|
|
15
|
+
private readonly fileService;
|
|
16
|
+
private readonly timings;
|
|
17
|
+
constructor(timings?: GenerationTimings);
|
|
18
|
+
generatePlugin(buildPath: FilePath, configDir: DirectoryPath, commandMetadata: CommandMetadata, authKey: string | null): Promise<Result<NodeJS.ReadableStream, ServiceError>>;
|
|
19
|
+
private initiateGeneration;
|
|
20
|
+
private getGenerationStatus;
|
|
21
|
+
private downloadPlugin;
|
|
22
|
+
private axiosInstance;
|
|
23
|
+
}
|
|
24
|
+
export {};
|