@apimatic/cli 1.1.0-beta.11 → 1.1.0-beta.14
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 +64 -1
- package/lib/actions/publishing/profile/list.d.ts +11 -0
- package/lib/actions/publishing/profile/list.js +29 -0
- package/lib/actions/publishing/profile/list.js.map +1 -0
- package/lib/actions/sdk/generate.d.ts +2 -1
- package/lib/actions/sdk/generate.js +3 -3
- package/lib/actions/sdk/generate.js.map +1 -1
- package/lib/actions/sdk/publish/interactive.d.ts +13 -0
- package/lib/actions/sdk/publish/interactive.js +105 -0
- package/lib/actions/sdk/publish/interactive.js.map +1 -0
- package/lib/actions/sdk/publish/non-interactive.d.ts +14 -0
- package/lib/actions/sdk/publish/non-interactive.js +101 -0
- package/lib/actions/sdk/publish/non-interactive.js.map +1 -0
- package/lib/actions/sdk/publish.d.ts +18 -0
- package/lib/actions/sdk/publish.js +57 -0
- package/lib/actions/sdk/publish.js.map +1 -0
- package/lib/commands/publishing/profile/list.d.ts +9 -0
- package/lib/commands/publishing/profile/list.js +28 -0
- package/lib/commands/publishing/profile/list.js.map +1 -0
- package/lib/commands/sdk/publish.d.ts +18 -0
- package/lib/commands/sdk/publish.js +73 -0
- package/lib/commands/sdk/publish.js.map +1 -0
- package/lib/infrastructure/env-info.d.ts +2 -0
- package/lib/infrastructure/env-info.js +23 -12
- package/lib/infrastructure/env-info.js.map +1 -1
- package/lib/infrastructure/file-service.d.ts +4 -0
- package/lib/infrastructure/file-service.js +43 -0
- package/lib/infrastructure/file-service.js.map +1 -1
- package/lib/infrastructure/git-service.d.ts +0 -1
- package/lib/infrastructure/git-service.js +0 -3
- package/lib/infrastructure/git-service.js.map +1 -1
- package/lib/infrastructure/launcher-service.d.ts +3 -0
- package/lib/infrastructure/launcher-service.js +13 -1
- package/lib/infrastructure/launcher-service.js.map +1 -1
- package/lib/infrastructure/os-extensions.d.ts +2 -0
- package/lib/infrastructure/os-extensions.js +6 -0
- package/lib/infrastructure/os-extensions.js.map +1 -0
- package/lib/infrastructure/service-error.d.ts +1 -0
- package/lib/infrastructure/service-error.js +3 -0
- package/lib/infrastructure/service-error.js.map +1 -1
- package/lib/infrastructure/services/portal-service.d.ts +2 -1
- package/lib/infrastructure/services/portal-service.js +2 -2
- package/lib/infrastructure/services/portal-service.js.map +1 -1
- package/lib/infrastructure/services/publishing-api-service.d.ts +19 -0
- package/lib/infrastructure/services/publishing-api-service.js +111 -0
- package/lib/infrastructure/services/publishing-api-service.js.map +1 -0
- package/lib/infrastructure/zip-service.d.ts +2 -2
- package/lib/infrastructure/zip-service.js +29 -11
- package/lib/infrastructure/zip-service.js.map +1 -1
- package/lib/prompts/format.d.ts +0 -2
- package/lib/prompts/format.js +0 -31
- package/lib/prompts/format.js.map +1 -1
- package/lib/prompts/prompt.d.ts +6 -0
- package/lib/prompts/prompt.js +45 -0
- package/lib/prompts/prompt.js.map +1 -1
- package/lib/prompts/publishing/profile/list.d.ts +9 -0
- package/lib/prompts/publishing/profile/list.js +27 -0
- package/lib/prompts/publishing/profile/list.js.map +1 -0
- package/lib/prompts/sdk/publish/interactive.d.ts +30 -0
- package/lib/prompts/sdk/publish/interactive.js +139 -0
- package/lib/prompts/sdk/publish/interactive.js.map +1 -0
- package/lib/prompts/sdk/publish/non-interactive.d.ts +27 -0
- package/lib/prompts/sdk/publish/non-interactive.js +97 -0
- package/lib/prompts/sdk/publish/non-interactive.js.map +1 -0
- package/lib/prompts/sdk/publish.d.ts +12 -0
- package/lib/prompts/sdk/publish.js +16 -0
- package/lib/prompts/sdk/publish.js.map +1 -0
- package/lib/types/build-context.d.ts +2 -1
- package/lib/types/build-context.js +12 -2
- package/lib/types/build-context.js.map +1 -1
- package/lib/types/events/sdk-publish-validation-failed.d.ts +5 -0
- package/lib/types/events/sdk-publish-validation-failed.js +8 -0
- package/lib/types/events/sdk-publish-validation-failed.js.map +1 -0
- package/lib/types/merge-source-tree-context.js +2 -1
- package/lib/types/merge-source-tree-context.js.map +1 -1
- package/lib/types/package-settings-context.d.ts +10 -0
- package/lib/types/package-settings-context.js +20 -0
- package/lib/types/package-settings-context.js.map +1 -0
- package/lib/types/publish/package-settings-configuration.d.ts +70 -0
- package/lib/types/publish/package-settings-configuration.js +46 -0
- package/lib/types/publish/package-settings-configuration.js.map +1 -0
- package/lib/types/publish/profile-id.d.ts +10 -0
- package/lib/types/publish/profile-id.js +22 -0
- package/lib/types/publish/profile-id.js.map +1 -0
- package/lib/types/publish/publishing-profile.d.ts +18 -0
- package/lib/types/publish/publishing-profile.js +105 -0
- package/lib/types/publish/publishing-profile.js.map +1 -0
- package/lib/types/publish/publishing-profiles.d.ts +12 -0
- package/lib/types/publish/publishing-profiles.js +36 -0
- package/lib/types/publish/publishing-profiles.js.map +1 -0
- package/lib/types/publish/version.d.ts +7 -0
- package/lib/types/publish/version.js +17 -0
- package/lib/types/publish/version.js.map +1 -0
- package/lib/types/publish-api/publish-log.d.ts +20 -0
- package/lib/types/publish-api/publish-log.js +2 -0
- package/lib/types/publish-api/publish-log.js.map +1 -0
- package/lib/types/publish-api/publishing-info.d.ts +4 -0
- package/lib/types/publish-api/publishing-info.js +2 -0
- package/lib/types/publish-api/publishing-info.js.map +1 -0
- package/lib/types/publish-api/publishing-profile-item.d.ts +183 -0
- package/lib/types/publish-api/publishing-profile-item.js +6 -0
- package/lib/types/publish-api/publishing-profile-item.js.map +1 -0
- package/package.json +16 -8
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import axios, { AxiosError } from 'axios';
|
|
2
|
+
import { err, ok } from 'neverthrow';
|
|
3
|
+
import FormData from 'form-data';
|
|
4
|
+
import { handleServiceError, ServiceError } from '../service-error.js';
|
|
5
|
+
import { getAuthInfo } from '../../client-utils/auth-manager.js';
|
|
6
|
+
import { envInfo } from '../env-info.js';
|
|
7
|
+
import { FileService } from '../file-service.js';
|
|
8
|
+
export class PublishingApiService {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.apiBaseUrl = 'https://api.package-publishing.apimatic.io/api';
|
|
11
|
+
this.fileService = new FileService();
|
|
12
|
+
}
|
|
13
|
+
async getPublishingProfiles(configDir, shell) {
|
|
14
|
+
const authInfo = await getAuthInfo(configDir.toString());
|
|
15
|
+
if (authInfo === null) {
|
|
16
|
+
return err(ServiceError.UnAuthorized);
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
const token = authInfo.authKey;
|
|
20
|
+
const response = await this.axiosInstance(shell, token).get(`/publishing-profile/user`);
|
|
21
|
+
if (response.status === 200) {
|
|
22
|
+
return ok(response.data);
|
|
23
|
+
}
|
|
24
|
+
return err(ServiceError.InvalidResponse);
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
return err(handleServiceError(error));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
async publishSdkPackage(sdkFilePath, profileId, language, packageVersion, publishType, configDir, shell) {
|
|
31
|
+
var _a, _b;
|
|
32
|
+
const authInfo = await getAuthInfo(configDir.toString());
|
|
33
|
+
if (authInfo === null) {
|
|
34
|
+
return err(ServiceError.UnAuthorized);
|
|
35
|
+
}
|
|
36
|
+
const sdkFileStream = await this.fileService.getStream(sdkFilePath);
|
|
37
|
+
try {
|
|
38
|
+
const token = authInfo.authKey;
|
|
39
|
+
const formData = new FormData();
|
|
40
|
+
formData.append('file', sdkFileStream);
|
|
41
|
+
formData.append('packageVersion', packageVersion.toString());
|
|
42
|
+
// If both package and source code publishing are not selected, publishType array will contain only one of them, so we need to specify which one to the API.
|
|
43
|
+
// If both are selected, we will omit this field as API defaults to both types being selected.
|
|
44
|
+
if (publishType.length !== 2) {
|
|
45
|
+
formData.append('publishType', publishType[0]);
|
|
46
|
+
}
|
|
47
|
+
const response = await this.axiosInstance(shell, token).post(`/publish/${profileId}/${language}`, formData, {
|
|
48
|
+
headers: formData.getHeaders(),
|
|
49
|
+
responseType: 'json'
|
|
50
|
+
});
|
|
51
|
+
if (response.status === 200) {
|
|
52
|
+
return ok(response.data);
|
|
53
|
+
}
|
|
54
|
+
return err(ServiceError.InvalidResponse);
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
if (error instanceof AxiosError) {
|
|
58
|
+
const data = (_a = error.response) === null || _a === void 0 ? void 0 : _a.data;
|
|
59
|
+
if (error.status === 400) {
|
|
60
|
+
const errors = data.errors;
|
|
61
|
+
const detail = errors ? (_b = Object.values(errors)[0]) === null || _b === void 0 ? void 0 : _b[0] : data.detail;
|
|
62
|
+
const errorMessage = data.title + '\n- ' + detail;
|
|
63
|
+
return err(ServiceError.badRequest(errorMessage, errors !== null && errors !== void 0 ? errors : {}));
|
|
64
|
+
}
|
|
65
|
+
if (error.status === 403) {
|
|
66
|
+
const errorMessage = data.title + '\n- ' + data.detail;
|
|
67
|
+
return err(ServiceError.forbidden(errorMessage));
|
|
68
|
+
}
|
|
69
|
+
if (error.status === 404) {
|
|
70
|
+
const errorMessage = data.title + '\n- ' + data.detail;
|
|
71
|
+
return err(ServiceError.notFound(errorMessage));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return err(handleServiceError(error));
|
|
75
|
+
}
|
|
76
|
+
finally {
|
|
77
|
+
sdkFileStream.close();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async getSdkPublishingLog(publishingLogId, configDir, shell) {
|
|
81
|
+
const authInfo = await getAuthInfo(configDir.toString());
|
|
82
|
+
if (authInfo === null) {
|
|
83
|
+
return err(ServiceError.UnAuthorized);
|
|
84
|
+
}
|
|
85
|
+
try {
|
|
86
|
+
const token = authInfo.authKey;
|
|
87
|
+
const response = await this.axiosInstance(shell, token).get(`/publish-logs/${publishingLogId}`);
|
|
88
|
+
if (response.status === 200) {
|
|
89
|
+
return ok(response.data);
|
|
90
|
+
}
|
|
91
|
+
return err(ServiceError.InvalidResponse);
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
return err(handleServiceError(error));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
axiosInstance(shell, apiKey) {
|
|
98
|
+
var _a;
|
|
99
|
+
const headers = {
|
|
100
|
+
'User-Agent': envInfo.getUserAgent(shell)
|
|
101
|
+
};
|
|
102
|
+
if (apiKey) {
|
|
103
|
+
headers.Authorization = `X-Auth-Key ${apiKey}`;
|
|
104
|
+
}
|
|
105
|
+
return axios.create({
|
|
106
|
+
baseURL: (_a = envInfo.getPublishingBaseUrl()) !== null && _a !== void 0 ? _a : this.apiBaseUrl,
|
|
107
|
+
headers
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=publishing-api-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publishing-api-service.js","sourceRoot":"","sources":["../../../src/infrastructure/services/publishing-api-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DirectoryPath } from
|
|
2
|
-
import { FilePath } from
|
|
1
|
+
import { DirectoryPath } from '../types/file/directoryPath.js';
|
|
2
|
+
import { FilePath } from '../types/file/filePath.js';
|
|
3
3
|
export declare class ZipService {
|
|
4
4
|
archive(sourceDir: DirectoryPath, outputZipPath: FilePath): Promise<void>;
|
|
5
5
|
unArchive(sourceFile: FilePath, destinationDirectory: DirectoryPath): Promise<void>;
|
|
@@ -1,16 +1,34 @@
|
|
|
1
|
-
import fs from
|
|
2
|
-
import
|
|
3
|
-
import extract from
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import yazl from 'yazl';
|
|
3
|
+
import extract from 'extract-zip';
|
|
4
4
|
export class ZipService {
|
|
5
5
|
async archive(sourceDir, outputZipPath) {
|
|
6
6
|
return new Promise((resolve, reject) => {
|
|
7
|
+
const zipfile = new yazl.ZipFile();
|
|
8
|
+
const addDirectory = (dir, relativePrefix) => {
|
|
9
|
+
for (const entry of fs.readdirSync(dir.toString(), { withFileTypes: true })) {
|
|
10
|
+
const fullPath = dir.join(entry.name);
|
|
11
|
+
// Always use forward slashes as metadataPath — zip format requires it
|
|
12
|
+
const metadataPath = relativePrefix ? `${relativePrefix}/${entry.name}` : entry.name;
|
|
13
|
+
if (entry.isDirectory()) {
|
|
14
|
+
addDirectory(fullPath, metadataPath);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
zipfile.addFile(fullPath.toString(), metadataPath);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
try {
|
|
22
|
+
addDirectory(sourceDir, '');
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
return reject(err);
|
|
26
|
+
}
|
|
27
|
+
zipfile.end();
|
|
7
28
|
const output = fs.createWriteStream(outputZipPath.toString());
|
|
8
|
-
|
|
9
|
-
output.on(
|
|
10
|
-
|
|
11
|
-
archive.pipe(output);
|
|
12
|
-
archive.directory(sourceDir.toString(), false);
|
|
13
|
-
archive.finalize();
|
|
29
|
+
zipfile.outputStream.pipe(output);
|
|
30
|
+
output.on('close', resolve);
|
|
31
|
+
output.on('error', reject);
|
|
14
32
|
});
|
|
15
33
|
}
|
|
16
34
|
async unArchive(sourceFile, destinationDirectory) {
|
|
@@ -23,14 +41,14 @@ export class ZipService {
|
|
|
23
41
|
onEntry: function (entry) {
|
|
24
42
|
fileCount++;
|
|
25
43
|
if (fileCount > MAX_FILES) {
|
|
26
|
-
throw new Error(
|
|
44
|
+
throw new Error('Reached max. file count');
|
|
27
45
|
}
|
|
28
46
|
// The uncompressedSize comes from the zip headers, so it might not be trustworthy.
|
|
29
47
|
// Alternatively, calculate the size from the readStream.
|
|
30
48
|
let entrySize = entry.uncompressedSize;
|
|
31
49
|
totalSize += entrySize;
|
|
32
50
|
if (totalSize > MAX_SIZE) {
|
|
33
|
-
throw new Error(
|
|
51
|
+
throw new Error('Reached max. size');
|
|
34
52
|
}
|
|
35
53
|
}
|
|
36
54
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zip-service.js","sourceRoot":"","sources":["../../src/infrastructure/zip-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,
|
|
1
|
+
{"version":3,"file":"zip-service.js","sourceRoot":"","sources":["../../src/infrastructure/zip-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,OAAO,MAAM,aAAa,CAAC;AAIlC,MAAM,OAAO,UAAU;IACd,KAAK,CAAC,OAAO,CAAC,SAAwB,EAAE,aAAuB;QACpE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAEnC,MAAM,YAAY,GAAG,CAAC,GAAkB,EAAE,cAAsB,EAAE,EAAE;gBAClE,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;oBAC5E,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACtC,sEAAsE;oBACtE,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;oBACrF,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;wBACxB,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;oBACvC,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;oBACrD,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;YAEF,IAAI,CAAC;gBACH,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;YAED,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC9D,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC5B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,UAAoB,EAAE,oBAAmC;QAC9E,MAAM,SAAS,GAAG,MAAO,CAAC;QAC1B,MAAM,QAAQ,GAAG,UAAa,CAAC,CAAC,OAAO;QACvC,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE;YACnC,GAAG,EAAE,oBAAoB,CAAC,QAAQ,EAAE;YACpC,OAAO,EAAE,UAAU,KAAK;gBACtB,SAAS,EAAE,CAAC;gBACZ,IAAI,SAAS,GAAG,SAAS,EAAE,CAAC;oBAC1B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBAC7C,CAAC;gBACD,mFAAmF;gBACnF,yDAAyD;gBACzD,IAAI,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC;gBACvC,SAAS,IAAI,SAAS,CAAC;gBACvB,IAAI,SAAS,GAAG,QAAQ,EAAE,CAAC;oBACzB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/lib/prompts/format.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ActionResult } from "../actions/action-result.js";
|
|
2
|
-
import { Directory } from "../types/file/directory.js";
|
|
3
2
|
import { DirectoryPath } from "../types/file/directoryPath.js";
|
|
4
3
|
import { FilePath } from "../types/file/filePath.js";
|
|
5
4
|
export declare const format: {
|
|
@@ -20,7 +19,6 @@ export declare const format: {
|
|
|
20
19
|
};
|
|
21
20
|
export declare function intro(text: string): void;
|
|
22
21
|
export declare function outro<T>(result: ActionResult<T>): void;
|
|
23
|
-
export declare function getDirectoryTree(dir: Directory, prefix?: string, isLast?: boolean): string;
|
|
24
22
|
export interface LeafNode {
|
|
25
23
|
name: string;
|
|
26
24
|
description?: string;
|
package/lib/prompts/format.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import pc from "picocolors";
|
|
2
2
|
import { intro as i, outro as o } from '@clack/prompts';
|
|
3
|
-
import { Directory } from "../types/file/directory.js";
|
|
4
3
|
export const format = {
|
|
5
4
|
// Core element types
|
|
6
5
|
var: (text) => pc.magenta(`'${text}'`),
|
|
@@ -35,36 +34,6 @@ export function outro(result) {
|
|
|
35
34
|
o(outroMessage);
|
|
36
35
|
process.exitCode = exitCode;
|
|
37
36
|
}
|
|
38
|
-
export function getDirectoryTree(dir, prefix = "", isLast = true) {
|
|
39
|
-
const folderDescription = {
|
|
40
|
-
spec: "# Contains all API definition files",
|
|
41
|
-
content: "# Includes custom documentation pages in Markdown",
|
|
42
|
-
static: "# Includes all static files, such as images, GIFs, and PDFs"
|
|
43
|
-
};
|
|
44
|
-
const fileDescriptions = {
|
|
45
|
-
"toc.yml": "# Controls the structure of the side navigation bar in the API portal",
|
|
46
|
-
"APIMATIC-BUILD.json": "# Defines all configurations for the API portal, including programming languages and themes"
|
|
47
|
-
};
|
|
48
|
-
const pointer = isLast ? "└─ " : "├─ ";
|
|
49
|
-
const folderName = dir.directoryPath.leafName();
|
|
50
|
-
const description = folderDescription[folderName] ? format.description(folderDescription[folderName]) : "";
|
|
51
|
-
let output = `${prefix}${pointer}${folderName}${description ? " " + description : ""}\n`;
|
|
52
|
-
const items = dir.items;
|
|
53
|
-
const newPrefix = prefix + (isLast ? " " : "| ");
|
|
54
|
-
items.forEach((item, index) => {
|
|
55
|
-
const last = index === items.length - 1;
|
|
56
|
-
if (item instanceof Directory) {
|
|
57
|
-
output += getDirectoryTree(item, newPrefix, last);
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
const filePointer = last ? "└─ " : "├─ ";
|
|
61
|
-
const fileName = item.toString();
|
|
62
|
-
const fileDescription = fileDescriptions[fileName] ? format.description(fileDescriptions[fileName]) : "";
|
|
63
|
-
output += `${newPrefix}${filePointer}${fileName}${fileDescription ? " " + fileDescription : ""}\n`;
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
return output;
|
|
67
|
-
}
|
|
68
37
|
export function getTree(dir, prefix = "", isLast = true) {
|
|
69
38
|
const pointer = isLast ? "└─ " : "├─ ";
|
|
70
39
|
const folderName = dir.name;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/prompts/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/prompts/format.ts"],"names":[],"mappings":"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"}
|
package/lib/prompts/prompt.d.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
1
|
import { Result } from "neverthrow";
|
|
2
2
|
export declare function withSpinner<T, E>(intro: string, success: string, failure: string, fn: Promise<Result<T, E>>): Promise<Result<T, E>>;
|
|
3
3
|
export declare const noteWrapped: (message: string, title: string) => void;
|
|
4
|
+
export declare function buildTableWithHeading(groups: {
|
|
5
|
+
heading: string;
|
|
6
|
+
rows: string[][];
|
|
7
|
+
}[], headers: string[], columnStyles?: ColumnStyle[]): string;
|
|
8
|
+
type ColumnStyle = 'primary' | 'secondary' | 'item';
|
|
9
|
+
export {};
|
package/lib/prompts/prompt.js
CHANGED
|
@@ -34,4 +34,49 @@ export const noteWrapped = (message, title) => {
|
|
|
34
34
|
note(message, title, opts);
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
|
+
export function buildTableWithHeading(groups, headers, columnStyles) {
|
|
38
|
+
return groups
|
|
39
|
+
.map((group) => `${pc.bold(pc.white(group.heading))}\n${buildTable(headers, group.rows, true, columnStyles)}`)
|
|
40
|
+
.join('\n\n');
|
|
41
|
+
}
|
|
42
|
+
function buildTable(headers, rows, rowSeparators = false, columnStyles) {
|
|
43
|
+
const COL_PAD = 2;
|
|
44
|
+
const MIN_COL_WIDTH = 4;
|
|
45
|
+
const coloredHeaders = headers.map((h) => pc.bold(pc.white(h)));
|
|
46
|
+
let widths = headers.map((h, i) => Math.max(stripAnsi(h).length, ...rows.map((r) => stripAnsi(r[i]).length)) + COL_PAD);
|
|
47
|
+
const terminalColumns = getColumns(process.stdout) || 80;
|
|
48
|
+
const totalWidth = 1 + 3 * headers.length + widths.reduce((a, b) => a + b, 0);
|
|
49
|
+
if (totalWidth > terminalColumns) {
|
|
50
|
+
const availableWidth = terminalColumns - 1 - 3 * headers.length;
|
|
51
|
+
const naturalTotal = widths.reduce((a, b) => a + b, 0);
|
|
52
|
+
widths = widths.map((w) => Math.max(MIN_COL_WIDTH, Math.floor((w / naturalTotal) * availableWidth)));
|
|
53
|
+
}
|
|
54
|
+
const columnStyleMap = {
|
|
55
|
+
primary: (text) => pc.magenta(text),
|
|
56
|
+
secondary: (text) => pc.dim(text),
|
|
57
|
+
item: (text) => pc.cyan(text)
|
|
58
|
+
};
|
|
59
|
+
const divider = (l, m, r) => pc.gray(l + widths.map((w) => '─'.repeat(w + 2)).join(m) + r);
|
|
60
|
+
const renderRow = (cells, applyStyles = false) => pc.gray('│') +
|
|
61
|
+
cells
|
|
62
|
+
.map((cell, i) => {
|
|
63
|
+
const styled = applyStyles && (columnStyles === null || columnStyles === void 0 ? void 0 : columnStyles[i]) ? columnStyleMap[columnStyles[i]](cell) : cell;
|
|
64
|
+
return ` ${pad(styled, widths[i])} ` + pc.gray('│');
|
|
65
|
+
})
|
|
66
|
+
.join('');
|
|
67
|
+
const lines = [divider('┌', '┬', '┐'), renderRow(coloredHeaders), divider('├', '┼', '┤')];
|
|
68
|
+
rows.forEach((row, i) => {
|
|
69
|
+
lines.push(renderRow(row, true));
|
|
70
|
+
if (rowSeparators) {
|
|
71
|
+
lines.push(i < rows.length - 1 ? divider('├', '┼', '┤') : divider('└', '┴', '┘'));
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
if (!rowSeparators)
|
|
75
|
+
lines.push(divider('└', '┴', '┘'));
|
|
76
|
+
return lines.join('\n');
|
|
77
|
+
}
|
|
78
|
+
/** Pad `text` to `width` visible characters (ANSI-safe). */
|
|
79
|
+
function pad(text, width) {
|
|
80
|
+
return text + ' '.repeat(Math.max(0, width - stripAnsi(text).length));
|
|
81
|
+
}
|
|
37
82
|
//# sourceMappingURL=prompt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/prompts/prompt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAe,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE1F,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAO,KAAa,EAAE,OAAe,EAAE,OAAe,EAAE,EAAyB;IAChH,MAAM,CAAC,GAAG,OAAO,CAAC;QAChB,aAAa,EAAE,WAAW;QAC1B,YAAY,EAAE,QAAQ;QACtB,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;KAC3D,CAAC,CAAC;IACH,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,KAAK,CACV,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EACxB,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CACzB,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,KAAa,EAAE,EAAE;IAC5D,MAAM,MAAM,GAAa,OAAO,CAAC,MAAM,CAAC;IACxC,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,IAAI,kBAAkB,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC3C,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7E,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAgB;YACxB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI;SACvB,CAAC;QACF,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/prompts/prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Result } from 'neverthrow';
|
|
2
|
+
import { ServiceError } from '../../../infrastructure/service-error.js';
|
|
3
|
+
import { PublishingProfileSummaryGroup, PublishingProfileItem } from '../../../types/publish-api/publishing-profile-item.js';
|
|
4
|
+
export declare class PublishingProfileListPrompts {
|
|
5
|
+
fetchProfiles(fn: Promise<Result<PublishingProfileItem[], ServiceError>>): Promise<Result<PublishingProfileItem[], ServiceError>>;
|
|
6
|
+
fetchError(error: ServiceError): void;
|
|
7
|
+
noProfilesFound(): void;
|
|
8
|
+
displayProfiles(groups: PublishingProfileSummaryGroup[]): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { log } from '@clack/prompts';
|
|
2
|
+
import { buildTableWithHeading, withSpinner } from '../../prompt.js';
|
|
3
|
+
export class PublishingProfileListPrompts {
|
|
4
|
+
fetchProfiles(fn) {
|
|
5
|
+
return withSpinner('Fetching publishing profiles', 'Publishing profiles fetched successfully.', 'Failed to fetch publishing profiles.', fn);
|
|
6
|
+
}
|
|
7
|
+
fetchError(error) {
|
|
8
|
+
log.error(error.errorMessage);
|
|
9
|
+
}
|
|
10
|
+
noProfilesFound() {
|
|
11
|
+
log.info('No publishing profiles found. Please create a publishing profile on the APIMatic App to view it here.');
|
|
12
|
+
}
|
|
13
|
+
displayProfiles(groups) {
|
|
14
|
+
const count = groups.reduce((sum, g) => sum + g.profiles.length, 0);
|
|
15
|
+
const label = count === 1 ? '1 profile' : `${count} profiles`;
|
|
16
|
+
const tableGroups = groups.map((group) => ({
|
|
17
|
+
heading: group.apiGroupName,
|
|
18
|
+
rows: group.profiles.map((profile) => [
|
|
19
|
+
profile.name,
|
|
20
|
+
profile.id,
|
|
21
|
+
profile.enabledLanguages.length === 0 ? '—' : profile.enabledLanguages.join(', '),
|
|
22
|
+
]),
|
|
23
|
+
}));
|
|
24
|
+
log.info(`Publishing Profiles (${label})\n\n${buildTableWithHeading(tableGroups, ['Name', 'ID', 'Languages'], ['primary', 'secondary', 'item'])}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/prompts/publishing/profile/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAIrC,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAErE,MAAM,OAAO,4BAA4B;IAChC,aAAa,CAAC,EAA0D;QAC7E,OAAO,WAAW,CAChB,8BAA8B,EAC9B,2CAA2C,EAC3C,sCAAsC,EACtC,EAAE,CACH,CAAC;IACJ,CAAC;IAEM,UAAU,CAAC,KAAmB;QACnC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAEM,eAAe;QACpB,GAAG,CAAC,IAAI,CAAC,uGAAuG,CAAC,CAAC;IACpH,CAAC;IAEM,eAAe,CAAC,MAAuC;QAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC;QAC9D,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACzC,OAAO,EAAE,KAAK,CAAC,YAAY;YAC3B,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBACpC,OAAO,CAAC,IAAI;gBACZ,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;aAClF,CAAC;SACH,CAAC,CAAC,CAAC;QACJ,GAAG,CAAC,IAAI,CAAC,wBAAwB,KAAK,QAAQ,qBAAqB,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACrJ,CAAC;CACF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Result } from 'neverthrow';
|
|
2
|
+
import { DirectoryPath } from '../../../types/file/directoryPath.js';
|
|
3
|
+
import { ServiceError } from '../../../infrastructure/service-error.js';
|
|
4
|
+
import { PublishingProfileWithLanguagesGroup, PublishingProfileItem, PublishType } from '../../../types/publish-api/publishing-profile-item.js';
|
|
5
|
+
import { PublishingProfile } from '../../../types/publish/publishing-profile.js';
|
|
6
|
+
import { Language } from '../../../types/sdk/generate.js';
|
|
7
|
+
import { SemVersion } from '../../../types/publish/version.js';
|
|
8
|
+
export declare class SdkPublishInteractivePrompts {
|
|
9
|
+
inputWorkingDirectory(defaultDirectory: DirectoryPath, validator: (value: string | undefined) => string | Error | undefined): Promise<DirectoryPath | undefined>;
|
|
10
|
+
noInputDirectoryProvided(): Promise<void>;
|
|
11
|
+
srcDirectoryInvalid(directory: DirectoryPath): void;
|
|
12
|
+
inputSdkDirectory(defaultDirectory: DirectoryPath, validator: (value: string | undefined) => string | Error | undefined): Promise<DirectoryPath | undefined>;
|
|
13
|
+
sdkDirectoryCannotBeSameAsBuildDirectory(): void;
|
|
14
|
+
noSdkDirectoryProvided(): Promise<void>;
|
|
15
|
+
getPublishingProfiles(fn: Promise<Result<PublishingProfileItem[], ServiceError>>): Promise<Result<PublishingProfileItem[], ServiceError>>;
|
|
16
|
+
getPublishingProfilesServiceError(serviceError: ServiceError): void;
|
|
17
|
+
noPublishingProfilesFound(errorMessage: string): void;
|
|
18
|
+
noProfileWithEnabledLanguagesFound(): void;
|
|
19
|
+
selectPublishingProfile(groups: PublishingProfileWithLanguagesGroup[]): Promise<PublishingProfileItem | undefined>;
|
|
20
|
+
noPublishingProfileSelected(): void;
|
|
21
|
+
selectLanguage(publishingProfile: PublishingProfile): Promise<Language | undefined>;
|
|
22
|
+
noLanguageSelected(): void;
|
|
23
|
+
inputVersion(): Promise<SemVersion | undefined>;
|
|
24
|
+
noVersionSpecified(): void;
|
|
25
|
+
publishingSummary(profile: PublishingProfile, language: Language, version: SemVersion, publishType: PublishType[]): void;
|
|
26
|
+
confirmPublishing(): Promise<boolean>;
|
|
27
|
+
publishingCancelled(): void;
|
|
28
|
+
sourceCodeOnlyPublishingNotice(): void;
|
|
29
|
+
sdkPublishingInProgress(publishingLogUrl: string): void;
|
|
30
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { confirm, isCancel, log, select, text } from '@clack/prompts';
|
|
2
|
+
import { format as f } from '../../../prompts/format.js';
|
|
3
|
+
import { noteWrapped, withSpinner } from '../../prompt.js';
|
|
4
|
+
import { DirectoryPath } from '../../../types/file/directoryPath.js';
|
|
5
|
+
import { PublishType } from '../../../types/publish-api/publishing-profile-item.js';
|
|
6
|
+
import { SemVersion } from '../../../types/publish/version.js';
|
|
7
|
+
import { removeQuotes } from '../../../utils/string-utils.js';
|
|
8
|
+
export class SdkPublishInteractivePrompts {
|
|
9
|
+
async inputWorkingDirectory(defaultDirectory, validator) {
|
|
10
|
+
const value = await text({
|
|
11
|
+
message: `Enter the path to the directory containing the ${f.var('src')} folder:`,
|
|
12
|
+
placeholder: defaultDirectory.toString(),
|
|
13
|
+
defaultValue: defaultDirectory.toString(),
|
|
14
|
+
validate: validator
|
|
15
|
+
});
|
|
16
|
+
if (isCancel(value)) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
return new DirectoryPath(removeQuotes(value.trim()));
|
|
20
|
+
}
|
|
21
|
+
async noInputDirectoryProvided() {
|
|
22
|
+
log.error('No input directory was provided.');
|
|
23
|
+
}
|
|
24
|
+
srcDirectoryInvalid(directory) {
|
|
25
|
+
log.error(`${f.path(directory)} does not contain a valid ${f.var('APIMATIC-BUILD.json')}. Please check the path and try again.`);
|
|
26
|
+
}
|
|
27
|
+
async inputSdkDirectory(defaultDirectory, validator) {
|
|
28
|
+
const value = await text({
|
|
29
|
+
message: 'Enter the destination path for the generated SDK:',
|
|
30
|
+
placeholder: defaultDirectory.toString(),
|
|
31
|
+
defaultValue: defaultDirectory.toString(),
|
|
32
|
+
validate: validator
|
|
33
|
+
});
|
|
34
|
+
if (isCancel(value)) {
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
return new DirectoryPath(removeQuotes(value.trim()));
|
|
38
|
+
}
|
|
39
|
+
sdkDirectoryCannotBeSameAsBuildDirectory() {
|
|
40
|
+
log.error(`SDK directory must be different from the ${f.var('src')} directory.`);
|
|
41
|
+
}
|
|
42
|
+
async noSdkDirectoryProvided() {
|
|
43
|
+
log.error('No SDK directory was provided.');
|
|
44
|
+
}
|
|
45
|
+
async getPublishingProfiles(fn) {
|
|
46
|
+
return withSpinner('Searching for publishing profiles', 'Profile search complete.', 'Failed to fetch publishing profiles.', fn);
|
|
47
|
+
}
|
|
48
|
+
getPublishingProfilesServiceError(serviceError) {
|
|
49
|
+
log.error(serviceError.errorMessage);
|
|
50
|
+
}
|
|
51
|
+
noPublishingProfilesFound(errorMessage) {
|
|
52
|
+
log.error(errorMessage);
|
|
53
|
+
}
|
|
54
|
+
noProfileWithEnabledLanguagesFound() {
|
|
55
|
+
log.error('No publishing profiles found with languages enabled for Source Code Publishing or Package Publishing. Please enable at least one language in a publishing profile before publishing an SDK.');
|
|
56
|
+
}
|
|
57
|
+
async selectPublishingProfile(groups) {
|
|
58
|
+
const publishingProfile = await select({
|
|
59
|
+
message: 'Select a publishing profile:',
|
|
60
|
+
options: groups.flatMap((group) => group.profiles.map(({ profile, enabledLanguages }) => ({
|
|
61
|
+
value: profile,
|
|
62
|
+
hint: group.apiGroupName,
|
|
63
|
+
label: `${profile.name} | ${enabledLanguages.join(', ')} | ID: ${profile.id}`
|
|
64
|
+
})))
|
|
65
|
+
});
|
|
66
|
+
if (isCancel(publishingProfile)) {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
return publishingProfile;
|
|
70
|
+
}
|
|
71
|
+
noPublishingProfileSelected() {
|
|
72
|
+
log.error('No publishing profile was selected.');
|
|
73
|
+
}
|
|
74
|
+
async selectLanguage(publishingProfile) {
|
|
75
|
+
const options = publishingProfile.getEnabledLanguages().map((language) => ({
|
|
76
|
+
value: language,
|
|
77
|
+
label: `${language} (${publishingProfile
|
|
78
|
+
.getPublishTypesForLanguage(language)
|
|
79
|
+
.map((t) => (t === PublishType.PackagePublishing ? 'Package' : 'Source Code'))
|
|
80
|
+
.join(' + ')})`
|
|
81
|
+
}));
|
|
82
|
+
const language = await select({
|
|
83
|
+
message: 'Select a language to publish:',
|
|
84
|
+
options
|
|
85
|
+
});
|
|
86
|
+
if (isCancel(language)) {
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
return language;
|
|
90
|
+
}
|
|
91
|
+
noLanguageSelected() {
|
|
92
|
+
log.error('No language was selected for publishing.');
|
|
93
|
+
}
|
|
94
|
+
async inputVersion() {
|
|
95
|
+
const version = await text({
|
|
96
|
+
message: 'Enter version to publish (e.g. 1.0.0):',
|
|
97
|
+
validate: (value) => {
|
|
98
|
+
if (!value)
|
|
99
|
+
return 'Version is required.';
|
|
100
|
+
if (SemVersion.tryCreate(value).isErr())
|
|
101
|
+
return 'Please enter a valid version in the format major.minor.patch (e.g., 1.0.0).';
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
if (isCancel(version)) {
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
const versionResult = SemVersion.tryCreate(version);
|
|
108
|
+
if (versionResult.isErr())
|
|
109
|
+
return undefined;
|
|
110
|
+
return versionResult.value;
|
|
111
|
+
}
|
|
112
|
+
noVersionSpecified() {
|
|
113
|
+
log.error('No version was specified for publishing the SDK.');
|
|
114
|
+
}
|
|
115
|
+
publishingSummary(profile, language, version, publishType) {
|
|
116
|
+
const targets = publishType
|
|
117
|
+
.map((t) => (t === PublishType.PackagePublishing ? 'Package' : 'Source Code'))
|
|
118
|
+
.join(' + ');
|
|
119
|
+
log.info(`Ready to publish:\n\n Profile: ${profile}\n Language: ${language}\n Version: ${version}\n Targets: ${targets}`);
|
|
120
|
+
}
|
|
121
|
+
async confirmPublishing() {
|
|
122
|
+
const result = await confirm({ message: 'Do you want to proceed?' });
|
|
123
|
+
if (isCancel(result))
|
|
124
|
+
return false;
|
|
125
|
+
return result;
|
|
126
|
+
}
|
|
127
|
+
publishingCancelled() {
|
|
128
|
+
log.error('Publishing cancelled.');
|
|
129
|
+
}
|
|
130
|
+
sourceCodeOnlyPublishingNotice() {
|
|
131
|
+
log.info('Version tags will not be created in your Git repository because you have opted to publish Source Code only.');
|
|
132
|
+
}
|
|
133
|
+
sdkPublishingInProgress(publishingLogUrl) {
|
|
134
|
+
const message = `To view the status of publishing, please visit:
|
|
135
|
+
${f.link(publishingLogUrl)}`;
|
|
136
|
+
noteWrapped(message, 'Next Steps');
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=interactive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../../../src/prompts/sdk/publish/interactive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Result } from 'neverthrow';
|
|
2
|
+
import { PublishType } from '../../../types/publish-api/publishing-profile-item.js';
|
|
3
|
+
import { SemVersion } from '../../../types/publish/version.js';
|
|
4
|
+
import { DirectoryPath } from '../../../types/file/directoryPath.js';
|
|
5
|
+
import { ServiceError } from '../../../infrastructure/service-error.js';
|
|
6
|
+
import { PublishingProfileItem } from '../../../types/publish-api/publishing-profile-item.js';
|
|
7
|
+
import { PublishLogItem } from '../../../types/publish-api/publish-log.js';
|
|
8
|
+
import { ProfileId } from '../../../types/publish/profile-id.js';
|
|
9
|
+
import { PublishingProfile } from '../../../types/publish/publishing-profile.js';
|
|
10
|
+
import { Language } from '../../../types/sdk/generate.js';
|
|
11
|
+
export declare class SdkPublishNonInteractivePrompts {
|
|
12
|
+
directoryCannotBeSame(directory: DirectoryPath): void;
|
|
13
|
+
srcDirectoryDoesNotExist(directory: DirectoryPath): void;
|
|
14
|
+
missingRequiredFlags(options: string[]): void;
|
|
15
|
+
interactiveModeNotice(): void;
|
|
16
|
+
invalidVersion(version: string): void;
|
|
17
|
+
invalidProfileId(profileId: string): void;
|
|
18
|
+
getPublishingProfiles(fn: Promise<Result<PublishingProfileItem[], ServiceError>>): Promise<Result<PublishingProfileItem[], ServiceError>>;
|
|
19
|
+
getPublishingProfilesServiceError(serviceError: ServiceError): void;
|
|
20
|
+
publishingProfileNotFound(profileId: ProfileId): void;
|
|
21
|
+
languageNotConfiguredForProfile(language: Language): void;
|
|
22
|
+
publishTypesNotAvailableForLanguage(publishTypes: PublishType[], language: Language): void;
|
|
23
|
+
sourceCodeOnlyPublishingNotice(): void;
|
|
24
|
+
publishingRunningNotice(profile: PublishingProfile, language: Language, version: SemVersion, publishType: PublishType[]): void;
|
|
25
|
+
postPublishingMessage(publishingLogUrl: string): void;
|
|
26
|
+
pollPublishingStatus(getSdkPublishingLogFn: () => Promise<Result<PublishLogItem, ServiceError>>): Promise<boolean>;
|
|
27
|
+
}
|