@apimatic/cli 1.2.1 → 1.3.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/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/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 +23 -4
- 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/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 +10 -1
- package/lib/infrastructure/service-error.js +47 -0
- package/lib/infrastructure/service-error.js.map +1 -1
- package/lib/infrastructure/services/api-service.d.ts +0 -7
- package/lib/infrastructure/services/api-service.js +0 -42
- 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 -8
- package/lib/infrastructure/services/portal-service.js +147 -39
- package/lib/infrastructure/services/portal-service.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/publishing/links.d.ts +1 -0
- package/lib/prompts/publishing/links.js +2 -0
- package/lib/prompts/publishing/links.js.map +1 -0
- package/lib/prompts/publishing/profile/list.js +5 -3
- package/lib/prompts/publishing/profile/list.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 +7 -5
- package/lib/prompts/sdk/publish/interactive.js +29 -14
- 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 +11 -52
- 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/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/publishing-profiles.d.ts +1 -1
- package/lib/types/publish/publishing-profiles.js +1 -1
- package/lib/types/publish/publishing-profiles.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/utils.d.ts +1 -0
- package/oclif.manifest.json +1040 -0
- package/package.json +7 -4
- package/lib/types/api/generation-status-endpoint.d.ts +0 -8
- package/lib/types/api/generation-status-endpoint.js +0 -12
- package/lib/types/api/generation-status-endpoint.js.map +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { log } from '@clack/prompts';
|
|
1
|
+
import { log, spinner } from '@clack/prompts';
|
|
2
2
|
import { PublishType } from '../../types/publish-api/publishing-profile-item.js';
|
|
3
|
-
import { withSpinner } from '../prompt.js';
|
|
3
|
+
import { noteWrapped, withSpinner } from '../prompt.js';
|
|
4
|
+
import { format as f } from '../format.js';
|
|
4
5
|
export class SdkPublishPrompts {
|
|
5
6
|
publishSdk(fn) {
|
|
6
7
|
return withSpinner('Publishing SDK', 'Publishing initiated.', 'SDK Publishing failed.', fn);
|
|
@@ -8,9 +9,74 @@ export class SdkPublishPrompts {
|
|
|
8
9
|
sdkPublishingServiceError(serviceError) {
|
|
9
10
|
log.error(serviceError.errorMessage);
|
|
10
11
|
}
|
|
11
|
-
dryRunNotice(
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
dryRunNotice(publishingSummary) {
|
|
13
|
+
log.info(`You can publish this SDK by removing the --dry-run flag. It will be published for the following:` +
|
|
14
|
+
publishingSummary);
|
|
14
15
|
}
|
|
16
|
+
publishingRunningNotice(publishingSummary) {
|
|
17
|
+
log.info(`Publishing is running for the following:` + publishingSummary);
|
|
18
|
+
}
|
|
19
|
+
publishingLogsMessage(publishingLogUrl) {
|
|
20
|
+
const message = `To track progress and view publishing logs, please visit:
|
|
21
|
+
${f.link(publishingLogUrl)}`;
|
|
22
|
+
noteWrapped(message, 'Publishing Logs');
|
|
23
|
+
}
|
|
24
|
+
async pollPublishingStatus(getSdkPublishingLogFn) {
|
|
25
|
+
const TERMINAL_STATES = new Set(['Succeeded', 'Failed', 'Exception', 'InternalError']);
|
|
26
|
+
const POLL_INTERVAL_MS = 10000; // poll after every 10 seconds.
|
|
27
|
+
let abortWait;
|
|
28
|
+
const spin = spinner({
|
|
29
|
+
onCancel: () => {
|
|
30
|
+
abortWait === null || abortWait === void 0 ? void 0 : abortWait();
|
|
31
|
+
},
|
|
32
|
+
cancelMessage: 'Publishing is still running on APIMatic and will continue without the CLI.'
|
|
33
|
+
});
|
|
34
|
+
spin.start('Waiting for publishing status...');
|
|
35
|
+
while (!spin.isCancelled) {
|
|
36
|
+
const publishingLogResult = await getSdkPublishingLogFn();
|
|
37
|
+
if (publishingLogResult.isErr()) {
|
|
38
|
+
spin.stop('Failed to fetch publishing status.', 1);
|
|
39
|
+
return 'failed';
|
|
40
|
+
}
|
|
41
|
+
const { events } = publishingLogResult.value;
|
|
42
|
+
const executionCompleted = events.every((event) => TERMINAL_STATES.has(event.eventType));
|
|
43
|
+
const statusMessage = [...events]
|
|
44
|
+
.sort((a, b) => (a.publishType === 'SourceCode' ? -1 : b.publishType === 'SourceCode' ? 1 : 0))
|
|
45
|
+
.map((event) => {
|
|
46
|
+
var _a;
|
|
47
|
+
const target = event.publishType === 'SourceCode' ? 'Source Code' : 'Package';
|
|
48
|
+
const eventLabels = {
|
|
49
|
+
Queued: 'Queued',
|
|
50
|
+
InProgress: 'In Progress',
|
|
51
|
+
Succeeded: 'Published'
|
|
52
|
+
};
|
|
53
|
+
const label = (_a = eventLabels[event.eventType]) !== null && _a !== void 0 ? _a : 'Failed';
|
|
54
|
+
return `${target}: [${label}]`;
|
|
55
|
+
})
|
|
56
|
+
.join(' | ');
|
|
57
|
+
if (executionCompleted) {
|
|
58
|
+
const isExecutionSuccessful = events.every((event) => event.eventType === 'Succeeded');
|
|
59
|
+
spin.stop(statusMessage, isExecutionSuccessful ? 0 : 1);
|
|
60
|
+
return isExecutionSuccessful ? 'succeeded' : 'failed';
|
|
61
|
+
}
|
|
62
|
+
spin.message(statusMessage);
|
|
63
|
+
await new Promise((resolve) => {
|
|
64
|
+
const timer = setTimeout(resolve, POLL_INTERVAL_MS);
|
|
65
|
+
abortWait = () => {
|
|
66
|
+
clearTimeout(timer);
|
|
67
|
+
resolve();
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
abortWait = undefined;
|
|
71
|
+
}
|
|
72
|
+
return 'cancelled';
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export function formatPublishingDetails({ profile, language, version, publishType, codegenOption }) {
|
|
76
|
+
const targets = [...publishType]
|
|
77
|
+
.map((t) => (t === PublishType.PackagePublishing ? "Package" : "Source Code"))
|
|
78
|
+
.join(" + ");
|
|
79
|
+
const generator = codegenOption ? `\n Generator: ${codegenOption}` : "";
|
|
80
|
+
return `\n\n Profile: ${profile}\n Language: ${language}\n Version: ${version}\n Targets: ${targets}${generator}`;
|
|
15
81
|
}
|
|
16
82
|
//# sourceMappingURL=publish.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/prompts/sdk/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/prompts/sdk/publish.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,9 @@ export declare class Directory {
|
|
|
18
18
|
toTreeNode(): TreeNode;
|
|
19
19
|
mapFilesInDirectory(map: (rootDir: DirectoryPath, fileItem: FileItem) => Promise<FileItem | undefined>): Promise<Directory>;
|
|
20
20
|
isEmpty(): boolean;
|
|
21
|
+
excluding(names: FileName[]): Directory;
|
|
22
|
+
countFiles(): number;
|
|
23
|
+
countDirectories(): number;
|
|
21
24
|
getAllFiles(): FilePath[];
|
|
22
25
|
parseContentFolder(baseContentPath: DirectoryPath): Promise<TocGroup[]>;
|
|
23
26
|
private getPageName;
|
|
@@ -48,6 +48,19 @@ export class Directory {
|
|
|
48
48
|
isEmpty() {
|
|
49
49
|
return this.items.length === 0;
|
|
50
50
|
}
|
|
51
|
+
excluding(names) {
|
|
52
|
+
const excluded = names.map((name) => name.toString());
|
|
53
|
+
const kept = this.items.filter((item) => item instanceof Directory
|
|
54
|
+
? !excluded.includes(item.directoryPath.leafName())
|
|
55
|
+
: !excluded.includes(item.fileName.toString()));
|
|
56
|
+
return new Directory(this.directoryPath, kept);
|
|
57
|
+
}
|
|
58
|
+
countFiles() {
|
|
59
|
+
return this.items.reduce((total, item) => total + (item instanceof Directory ? item.countFiles() : 1), 0);
|
|
60
|
+
}
|
|
61
|
+
countDirectories() {
|
|
62
|
+
return this.items.reduce((total, item) => total + (item instanceof Directory ? 1 + item.countDirectories() : 0), 0);
|
|
63
|
+
}
|
|
51
64
|
getAllFiles() {
|
|
52
65
|
const files = [];
|
|
53
66
|
for (const item of this.items) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directory.js","sourceRoot":"","sources":["../../../src/types/file/directory.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"directory.js","sourceRoot":"","sources":["../../../src/types/file/directory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context plugin generation reports its own status vocabulary, which does not match the
|
|
3
|
+
* shared `Status` enum in `@apimatic/sdk`: there is no `SubscriptionError` (entitlement is
|
|
4
|
+
* a 403 on the generate call instead), and the in-flight values below have no equivalent.
|
|
5
|
+
* `Completed` is not sent on the wire — as with portal generation, a finished run is a 302
|
|
6
|
+
* to the download endpoint, which `getGenerationStatus` maps onto it.
|
|
7
|
+
*/
|
|
8
|
+
export declare enum PluginGenerationStatus {
|
|
9
|
+
Queued = "Queued",
|
|
10
|
+
ExecutionStarted = "ExecutionStarted",
|
|
11
|
+
GeneratingArtifacts = "GeneratingArtifacts",
|
|
12
|
+
Completed = "Completed",
|
|
13
|
+
Failed = "Failed",
|
|
14
|
+
ValidationError = "ValidationError",
|
|
15
|
+
Unknown = "Unknown"
|
|
16
|
+
}
|
|
17
|
+
export interface PluginGenerationStatusResponse {
|
|
18
|
+
status: PluginGenerationStatus;
|
|
19
|
+
errors?: Record<string, string[]>;
|
|
20
|
+
}
|
|
21
|
+
export interface PluginGenerationInitiatedResponse {
|
|
22
|
+
id: string;
|
|
23
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context plugin generation reports its own status vocabulary, which does not match the
|
|
3
|
+
* shared `Status` enum in `@apimatic/sdk`: there is no `SubscriptionError` (entitlement is
|
|
4
|
+
* a 403 on the generate call instead), and the in-flight values below have no equivalent.
|
|
5
|
+
* `Completed` is not sent on the wire — as with portal generation, a finished run is a 302
|
|
6
|
+
* to the download endpoint, which `getGenerationStatus` maps onto it.
|
|
7
|
+
*/
|
|
8
|
+
export var PluginGenerationStatus;
|
|
9
|
+
(function (PluginGenerationStatus) {
|
|
10
|
+
PluginGenerationStatus["Queued"] = "Queued";
|
|
11
|
+
PluginGenerationStatus["ExecutionStarted"] = "ExecutionStarted";
|
|
12
|
+
PluginGenerationStatus["GeneratingArtifacts"] = "GeneratingArtifacts";
|
|
13
|
+
PluginGenerationStatus["Completed"] = "Completed";
|
|
14
|
+
PluginGenerationStatus["Failed"] = "Failed";
|
|
15
|
+
PluginGenerationStatus["ValidationError"] = "ValidationError";
|
|
16
|
+
PluginGenerationStatus["Unknown"] = "Unknown";
|
|
17
|
+
})(PluginGenerationStatus || (PluginGenerationStatus = {}));
|
|
18
|
+
//# sourceMappingURL=generation-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generation-status.js","sourceRoot":"","sources":["../../../src/types/plugin/generation-status.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,sBAQX;AARD,WAAY,sBAAsB;IAChC,2CAAiB,CAAA;IACjB,+DAAqC,CAAA;IACrC,qEAA2C,CAAA;IAC3C,iDAAuB,CAAA;IACvB,2CAAiB,CAAA;IACjB,6DAAmC,CAAA;IACnC,6CAAmB,CAAA;AACrB,CAAC,EARW,sBAAsB,KAAtB,sBAAsB,QAQjC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { GitConfiguration, PackageConfigurationForLanguage } from '../publish/package-settings-configuration.js';
|
|
2
|
+
import { SemVersion } from '../publish/version.js';
|
|
3
|
+
import { CodeGenerationVersion, Language } from '../sdk/generate.js';
|
|
4
|
+
import { PluginLanguageEntry } from './plugin-config.js';
|
|
5
|
+
/**
|
|
6
|
+
* The version rides inside the package block, so a source-only publish records no version at all —
|
|
7
|
+
* there is no package for it to describe.
|
|
8
|
+
*/
|
|
9
|
+
export declare function buildLanguageEntry<L extends Language>(language: L, gitConfiguration: GitConfiguration | undefined, packageConfiguration: PackageConfigurationForLanguage[L] | undefined, packageVersion: SemVersion, codegenVersion: CodeGenerationVersion): PluginLanguageEntry<L>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Language } from '../sdk/generate.js';
|
|
2
|
+
const GITHUB_BASE_URL = 'https://github.com';
|
|
3
|
+
/**
|
|
4
|
+
* One builder per language, each checked against that language's own profile fields and its own
|
|
5
|
+
* entry shape. A single builder taking every language's configuration at once can only reach those
|
|
6
|
+
* fields through a cast, which is what let a mismatched pair compile.
|
|
7
|
+
*/
|
|
8
|
+
const languageEntryBuilders = {
|
|
9
|
+
[Language.CSHARP]: (source, configuration, version, codegenVersion) => ({
|
|
10
|
+
source,
|
|
11
|
+
package: (configuration === null || configuration === void 0 ? void 0 : configuration.packageId) ? { packageId: configuration.packageId, version } : undefined,
|
|
12
|
+
codegenVersion
|
|
13
|
+
}),
|
|
14
|
+
[Language.JAVA]: (source, configuration, version, codegenVersion) => ({
|
|
15
|
+
source,
|
|
16
|
+
package: (configuration === null || configuration === void 0 ? void 0 : configuration.groupId) && configuration.artifactId
|
|
17
|
+
? { groupId: configuration.groupId, artifactId: configuration.artifactId, version }
|
|
18
|
+
: undefined,
|
|
19
|
+
codegenVersion
|
|
20
|
+
}),
|
|
21
|
+
[Language.PHP]: (source, configuration, version, codegenVersion) => ({
|
|
22
|
+
source,
|
|
23
|
+
package: (configuration === null || configuration === void 0 ? void 0 : configuration.vendorName) && configuration.projectName
|
|
24
|
+
? { vendorName: configuration.vendorName, projectName: configuration.projectName, version }
|
|
25
|
+
: undefined,
|
|
26
|
+
codegenVersion
|
|
27
|
+
}),
|
|
28
|
+
[Language.PYTHON]: (source, configuration, version, codegenVersion) => ({
|
|
29
|
+
source,
|
|
30
|
+
package: (configuration === null || configuration === void 0 ? void 0 : configuration.name) ? { name: configuration.name, version } : undefined,
|
|
31
|
+
codegenVersion
|
|
32
|
+
}),
|
|
33
|
+
[Language.RUBY]: (source, configuration, version, codegenVersion) => ({
|
|
34
|
+
source,
|
|
35
|
+
package: (configuration === null || configuration === void 0 ? void 0 : configuration.name) ? { name: configuration.name, version } : undefined,
|
|
36
|
+
codegenVersion
|
|
37
|
+
}),
|
|
38
|
+
[Language.TYPESCRIPT]: (source, configuration, version, codegenVersion) => ({
|
|
39
|
+
source,
|
|
40
|
+
package: (configuration === null || configuration === void 0 ? void 0 : configuration.name) ? { name: configuration.name, version } : undefined,
|
|
41
|
+
codegenVersion
|
|
42
|
+
}),
|
|
43
|
+
[Language.GO]: (source, configuration, version, codegenVersion) => ({
|
|
44
|
+
source,
|
|
45
|
+
package: (configuration === null || configuration === void 0 ? void 0 : configuration.packageName) ? { packageName: configuration.packageName, version } : undefined,
|
|
46
|
+
codegenVersion
|
|
47
|
+
})
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* The version rides inside the package block, so a source-only publish records no version at all —
|
|
51
|
+
* there is no package for it to describe.
|
|
52
|
+
*/
|
|
53
|
+
export function buildLanguageEntry(language, gitConfiguration, packageConfiguration, packageVersion, codegenVersion) {
|
|
54
|
+
var _a;
|
|
55
|
+
const repositoryName = (_a = gitConfiguration === null || gitConfiguration === void 0 ? void 0 : gitConfiguration.repositoryName) === null || _a === void 0 ? void 0 : _a.trim();
|
|
56
|
+
const source = repositoryName
|
|
57
|
+
? {
|
|
58
|
+
repositoryUrl: `${GITHUB_BASE_URL}/${repositoryName}`,
|
|
59
|
+
branch: (gitConfiguration === null || gitConfiguration === void 0 ? void 0 : gitConfiguration.branch) ? gitConfiguration.branch : undefined
|
|
60
|
+
}
|
|
61
|
+
: undefined;
|
|
62
|
+
return languageEntryBuilders[language](source, packageConfiguration, packageVersion.toString(), codegenVersion);
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=language-entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-entry.js","sourceRoot":"","sources":["../../../src/types/plugin/language-entry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { SemVersionString } from '../publish/version.js';
|
|
2
|
+
import { CodeGenerationVersion, Language } from '../sdk/generate.js';
|
|
3
|
+
/** Written unprompted: the backend consumes it, and nothing in the CLI asks for it. */
|
|
4
|
+
export declare const DEFAULT_PLUGIN_LICENSE = "MIT";
|
|
5
|
+
export interface PluginAuthor {
|
|
6
|
+
name: string;
|
|
7
|
+
email?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface LanguageSource {
|
|
10
|
+
repositoryUrl: string;
|
|
11
|
+
branch?: string;
|
|
12
|
+
}
|
|
13
|
+
interface CSharpPackageConfig {
|
|
14
|
+
packageId: string;
|
|
15
|
+
version: SemVersionString;
|
|
16
|
+
}
|
|
17
|
+
interface JavaPackageConfig {
|
|
18
|
+
groupId: string;
|
|
19
|
+
artifactId: string;
|
|
20
|
+
version: SemVersionString;
|
|
21
|
+
}
|
|
22
|
+
interface PhpPackageConfig {
|
|
23
|
+
vendorName: string;
|
|
24
|
+
projectName: string;
|
|
25
|
+
version: SemVersionString;
|
|
26
|
+
}
|
|
27
|
+
interface NamedPackageConfig {
|
|
28
|
+
name: string;
|
|
29
|
+
version: SemVersionString;
|
|
30
|
+
}
|
|
31
|
+
type PythonPackageConfig = NamedPackageConfig;
|
|
32
|
+
type RubyPackageConfig = NamedPackageConfig;
|
|
33
|
+
type TypeScriptPackageConfig = NamedPackageConfig;
|
|
34
|
+
interface GoPackageConfig {
|
|
35
|
+
packageName: string;
|
|
36
|
+
version: SemVersionString;
|
|
37
|
+
}
|
|
38
|
+
interface PluginConfig<TPackage> {
|
|
39
|
+
source?: LanguageSource;
|
|
40
|
+
package?: TPackage;
|
|
41
|
+
codegenVersion: CodeGenerationVersion;
|
|
42
|
+
}
|
|
43
|
+
interface PluginConfigForLanguage {
|
|
44
|
+
[Language.CSHARP]: PluginConfig<CSharpPackageConfig>;
|
|
45
|
+
[Language.JAVA]: PluginConfig<JavaPackageConfig>;
|
|
46
|
+
[Language.PHP]: PluginConfig<PhpPackageConfig>;
|
|
47
|
+
[Language.PYTHON]: PluginConfig<PythonPackageConfig>;
|
|
48
|
+
[Language.RUBY]: PluginConfig<RubyPackageConfig>;
|
|
49
|
+
[Language.TYPESCRIPT]: PluginConfig<TypeScriptPackageConfig>;
|
|
50
|
+
[Language.GO]: PluginConfig<GoPackageConfig>;
|
|
51
|
+
}
|
|
52
|
+
export type PluginLanguageEntry<L extends Language> = PluginConfigForLanguage[L];
|
|
53
|
+
export type PluginLanguages = Partial<PluginConfigForLanguage>;
|
|
54
|
+
export interface PluginConfigData {
|
|
55
|
+
pluginId?: string;
|
|
56
|
+
pluginName?: string;
|
|
57
|
+
pluginVersion?: string;
|
|
58
|
+
pluginKey?: string;
|
|
59
|
+
author?: PluginAuthor;
|
|
60
|
+
license?: string;
|
|
61
|
+
homepage?: string;
|
|
62
|
+
repository?: string;
|
|
63
|
+
languages: PluginLanguages;
|
|
64
|
+
[key: string]: unknown;
|
|
65
|
+
}
|
|
66
|
+
/** The fields the CLI asks for; everything else is derived, resolved or constant. */
|
|
67
|
+
export interface PluginMetadata {
|
|
68
|
+
pluginId: string;
|
|
69
|
+
pluginName: string;
|
|
70
|
+
pluginVersion: string;
|
|
71
|
+
}
|
|
72
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-config.js","sourceRoot":"","sources":["../../../src/types/plugin/plugin-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAErE,uFAAuF;AACvF,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-contents.js","sourceRoot":"","sources":["../../../src/types/plugin/plugin-contents.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { DirectoryPath } from './file/directoryPath.js';
|
|
2
|
+
import { FilePath } from './file/filePath.js';
|
|
3
|
+
import { CodeGenerationVersion, Language } from './sdk/generate.js';
|
|
4
|
+
import { PluginAuthor, PluginConfigData, PluginLanguageEntry, PluginMetadata } from './plugin/plugin-config.js';
|
|
5
|
+
import { SemVersion } from './publish/version.js';
|
|
6
|
+
import { Result } from 'neverthrow';
|
|
7
|
+
/** Also the rule the metadata prompt validates against, so a plugin ID is legal as a repository name. */
|
|
8
|
+
export declare const PLUGIN_ID_PATTERN: RegExp;
|
|
9
|
+
export type PluginReleaseData = {
|
|
10
|
+
pluginId: string;
|
|
11
|
+
version: SemVersion;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* What a caller needs to know before generating. Metadata and languages are written by different
|
|
15
|
+
* commands — `plugin generate` owns the first, `sdk publish` the second — so they are reported
|
|
16
|
+
* separately. `path` rides on `unreadable` purely so the prompt can say where to fix the file.
|
|
17
|
+
*/
|
|
18
|
+
export type PluginConfigState = {
|
|
19
|
+
state: 'missing';
|
|
20
|
+
} | {
|
|
21
|
+
state: 'unreadable';
|
|
22
|
+
reason: string;
|
|
23
|
+
path: FilePath;
|
|
24
|
+
} | PluginConfigPresent;
|
|
25
|
+
export declare class PluginConfigPresent {
|
|
26
|
+
private readonly config;
|
|
27
|
+
readonly state: "present";
|
|
28
|
+
private constructor();
|
|
29
|
+
static create(config: PluginConfigData): PluginConfigPresent;
|
|
30
|
+
hasPublishedSdks(): boolean;
|
|
31
|
+
hasMetadata(): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Absent until `plugin generate` records the identity. The fields are checked rather than trusted:
|
|
34
|
+
* they reach this class through a cast of parsed JSON, so a hand-edited config can hold a number
|
|
35
|
+
* where the type promises a string.
|
|
36
|
+
*/
|
|
37
|
+
getRelease(): PluginReleaseData | undefined;
|
|
38
|
+
hasNoSourceRepository(language: Language): boolean;
|
|
39
|
+
assertNoCodegenVersionMismatch(codegenVersion: CodeGenerationVersion, language: Language, entry: PluginLanguageEntry<Language>): Result<void, {
|
|
40
|
+
expected: CodeGenerationVersion;
|
|
41
|
+
actual: CodeGenerationVersion;
|
|
42
|
+
}>;
|
|
43
|
+
}
|
|
44
|
+
export type PluginConfigWriteFailure = 'unreadable' | 'unwritable';
|
|
45
|
+
export declare class PluginConfigContext {
|
|
46
|
+
private readonly buildDirectory;
|
|
47
|
+
private readonly fileService;
|
|
48
|
+
constructor(buildDirectory: DirectoryPath);
|
|
49
|
+
private get configPath();
|
|
50
|
+
getPluginConfigState(): Promise<PluginConfigState>;
|
|
51
|
+
upsertMetadata(metadata: PluginMetadata, author?: PluginAuthor): Promise<Result<PluginConfigPresent, PluginConfigWriteFailure>>;
|
|
52
|
+
upsertLanguage<L extends Language>(language: L, entry: PluginLanguageEntry<L>): Promise<Result<PluginConfigPresent, PluginConfigWriteFailure>>;
|
|
53
|
+
/**
|
|
54
|
+
* A file that exists but cannot be parsed is left alone rather than overwritten, and a write
|
|
55
|
+
* fault is reported rather than thrown: this runs after a publish that already succeeded, and
|
|
56
|
+
* nothing here may turn that into a crash. A success carries the config as it now stands, so a
|
|
57
|
+
* caller that has to decide something after writing does not have to read the file back.
|
|
58
|
+
*/
|
|
59
|
+
private merge;
|
|
60
|
+
private read;
|
|
61
|
+
private parse;
|
|
62
|
+
private write;
|
|
63
|
+
}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { FileService } from '../infrastructure/file-service.js';
|
|
2
|
+
import { FileName } from './file/fileName.js';
|
|
3
|
+
import { FilePath } from './file/filePath.js';
|
|
4
|
+
import { DEFAULT_PLUGIN_LICENSE } from './plugin/plugin-config.js';
|
|
5
|
+
import { SemVersion } from './publish/version.js';
|
|
6
|
+
import { err, ok } from 'neverthrow';
|
|
7
|
+
/** Also the rule the metadata prompt validates against, so a plugin ID is legal as a repository name. */
|
|
8
|
+
export const PLUGIN_ID_PATTERN = /^[a-z0-9]+(-[a-z0-9]+)*$/;
|
|
9
|
+
const MALFORMED_PLUGIN_ID = `its 'pluginId' must be lower-case alphanumeric words separated by single dashes, ` +
|
|
10
|
+
`for example 'acme-payments'`;
|
|
11
|
+
const MALFORMED_PLUGIN_VERSION = `its 'pluginVersion' must be a version in the format major.minor.patch, for example '0.1.0'`;
|
|
12
|
+
export class PluginConfigPresent {
|
|
13
|
+
constructor(config) {
|
|
14
|
+
this.config = config;
|
|
15
|
+
this.state = 'present';
|
|
16
|
+
}
|
|
17
|
+
static create(config) {
|
|
18
|
+
return new PluginConfigPresent(config);
|
|
19
|
+
}
|
|
20
|
+
hasPublishedSdks() {
|
|
21
|
+
const languages = this.config.languages;
|
|
22
|
+
if (typeof languages !== 'object' || languages === null) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
return Object.values(languages).some((entry) => (entry === null || entry === void 0 ? void 0 : entry.source) || (entry === null || entry === void 0 ? void 0 : entry.package));
|
|
26
|
+
}
|
|
27
|
+
hasMetadata() {
|
|
28
|
+
const isNonBlankString = (value) => typeof value === 'string' && value.trim() !== '';
|
|
29
|
+
return isNonBlankString(this.config.pluginId) && isNonBlankString(this.config.pluginName);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Absent until `plugin generate` records the identity. The fields are checked rather than trusted:
|
|
33
|
+
* they reach this class through a cast of parsed JSON, so a hand-edited config can hold a number
|
|
34
|
+
* where the type promises a string.
|
|
35
|
+
*/
|
|
36
|
+
getRelease() {
|
|
37
|
+
const pluginId = typeof this.config.pluginId === 'string' ? this.config.pluginId.trim() : '';
|
|
38
|
+
const rawVersion = typeof this.config.pluginVersion === 'string' ? this.config.pluginVersion.trim() : '';
|
|
39
|
+
if (pluginId === '' || rawVersion === '') {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
return SemVersion.tryCreate(rawVersion).match((version) => ({ pluginId, version }), () => undefined);
|
|
43
|
+
}
|
|
44
|
+
hasNoSourceRepository(language) {
|
|
45
|
+
var _a, _b;
|
|
46
|
+
return !((_b = (_a = this.config.languages) === null || _a === void 0 ? void 0 : _a[language]) === null || _b === void 0 ? void 0 : _b.source);
|
|
47
|
+
}
|
|
48
|
+
assertNoCodegenVersionMismatch(codegenVersion, language, entry) {
|
|
49
|
+
var _a, _b, _c;
|
|
50
|
+
if (entry.package && entry.source) {
|
|
51
|
+
return ok(); // if both package and source are given, there is no possible mismatch
|
|
52
|
+
}
|
|
53
|
+
const existingEntry = (_a = this.config.languages) === null || _a === void 0 ? void 0 : _a[language];
|
|
54
|
+
if (!existingEntry) {
|
|
55
|
+
return ok();
|
|
56
|
+
}
|
|
57
|
+
if (!existingEntry.package && !existingEntry.source) {
|
|
58
|
+
return ok();
|
|
59
|
+
}
|
|
60
|
+
const extractedVersion = (_c = (_b = this.config.languages) === null || _b === void 0 ? void 0 : _b[language]) === null || _c === void 0 ? void 0 : _c.codegenVersion;
|
|
61
|
+
if (!extractedVersion) {
|
|
62
|
+
return ok();
|
|
63
|
+
}
|
|
64
|
+
if (extractedVersion === codegenVersion) {
|
|
65
|
+
return ok();
|
|
66
|
+
}
|
|
67
|
+
return err({ expected: codegenVersion, actual: extractedVersion });
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function isJsonObject(value) {
|
|
71
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
72
|
+
}
|
|
73
|
+
export class PluginConfigContext {
|
|
74
|
+
constructor(buildDirectory) {
|
|
75
|
+
this.buildDirectory = buildDirectory;
|
|
76
|
+
this.fileService = new FileService();
|
|
77
|
+
}
|
|
78
|
+
get configPath() {
|
|
79
|
+
return new FilePath(this.buildDirectory, new FileName('plugin-config.json'));
|
|
80
|
+
}
|
|
81
|
+
async getPluginConfigState() {
|
|
82
|
+
if (!(await this.fileService.fileExists(this.configPath))) {
|
|
83
|
+
return { state: 'missing' };
|
|
84
|
+
}
|
|
85
|
+
const parsed = await this.parse();
|
|
86
|
+
if ('reason' in parsed) {
|
|
87
|
+
return { state: 'unreadable', reason: parsed.reason, path: this.configPath };
|
|
88
|
+
}
|
|
89
|
+
return PluginConfigPresent.create(parsed.config);
|
|
90
|
+
}
|
|
91
|
+
async upsertMetadata(metadata, author) {
|
|
92
|
+
return await this.merge((config) => {
|
|
93
|
+
var _a;
|
|
94
|
+
return (Object.assign(Object.assign(Object.assign(Object.assign({}, config), { pluginId: metadata.pluginId, pluginName: metadata.pluginName, pluginVersion: metadata.pluginVersion }), (!config.author && author && { author })), { license: (_a = config.license) !== null && _a !== void 0 ? _a : DEFAULT_PLUGIN_LICENSE }));
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
async upsertLanguage(language, entry) {
|
|
98
|
+
return await this.merge((config) => {
|
|
99
|
+
var _a, _b, _c;
|
|
100
|
+
const languages = Object.assign({}, config.languages);
|
|
101
|
+
const existingEntry = (_a = config.languages) === null || _a === void 0 ? void 0 : _a[language];
|
|
102
|
+
languages[language] = Object.assign(Object.assign(Object.assign({}, existingEntry), entry), { source: (_b = entry.source) !== null && _b !== void 0 ? _b : existingEntry === null || existingEntry === void 0 ? void 0 : existingEntry.source, package: (_c = entry.package) !== null && _c !== void 0 ? _c : existingEntry === null || existingEntry === void 0 ? void 0 : existingEntry.package });
|
|
103
|
+
return Object.assign(Object.assign({}, config), { languages });
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* A file that exists but cannot be parsed is left alone rather than overwritten, and a write
|
|
108
|
+
* fault is reported rather than thrown: this runs after a publish that already succeeded, and
|
|
109
|
+
* nothing here may turn that into a crash. A success carries the config as it now stands, so a
|
|
110
|
+
* caller that has to decide something after writing does not have to read the file back.
|
|
111
|
+
*/
|
|
112
|
+
async merge(apply) {
|
|
113
|
+
const existing = await this.read();
|
|
114
|
+
if ('reason' in existing) {
|
|
115
|
+
return err('unreadable');
|
|
116
|
+
}
|
|
117
|
+
const merged = apply(existing.config);
|
|
118
|
+
try {
|
|
119
|
+
await this.write(merged);
|
|
120
|
+
}
|
|
121
|
+
catch (_a) {
|
|
122
|
+
return err('unwritable');
|
|
123
|
+
}
|
|
124
|
+
return ok(PluginConfigPresent.create(merged));
|
|
125
|
+
}
|
|
126
|
+
async read() {
|
|
127
|
+
if (!(await this.fileService.fileExists(this.configPath))) {
|
|
128
|
+
return { config: { languages: {} } };
|
|
129
|
+
}
|
|
130
|
+
return await this.parse();
|
|
131
|
+
}
|
|
132
|
+
async parse() {
|
|
133
|
+
const BYTE_ORDER_MARK = 0xfeff; // Notepad and PowerShell redirection can write it
|
|
134
|
+
try {
|
|
135
|
+
// TODO: JSON Parsing/Stringify should be in a dedicated JSON infra layer which preferably uses zod
|
|
136
|
+
const contents = await this.fileService.getContents(this.configPath);
|
|
137
|
+
if (contents.trim() === '') {
|
|
138
|
+
return { reason: 'it is empty' };
|
|
139
|
+
}
|
|
140
|
+
if (contents.codePointAt(0) === BYTE_ORDER_MARK) {
|
|
141
|
+
return { reason: 'it starts with a byte-order mark, which JSON does not allow' };
|
|
142
|
+
}
|
|
143
|
+
const parsed = JSON.parse(contents);
|
|
144
|
+
if (!isJsonObject(parsed)) {
|
|
145
|
+
return { reason: 'it is not a JSON object' };
|
|
146
|
+
}
|
|
147
|
+
// Every write merges these by spreading them, which turns a string into `{"0":"a"}` and a
|
|
148
|
+
// number into nothing, so a wrong shape has to be refused before it can corrupt the file.
|
|
149
|
+
const languages = parsed.languages;
|
|
150
|
+
if (languages !== undefined) {
|
|
151
|
+
if (!isJsonObject(languages)) {
|
|
152
|
+
return { reason: `its 'languages' field is not a JSON object` };
|
|
153
|
+
}
|
|
154
|
+
for (const [language, entry] of Object.entries(languages)) {
|
|
155
|
+
if (!isJsonObject(entry)) {
|
|
156
|
+
return { reason: `its 'languages.${language}' entry is not a JSON object` };
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
const id = parsed.pluginId;
|
|
161
|
+
if (typeof id === 'string' && (id.trim() === '' || !PLUGIN_ID_PATTERN.test(id))) {
|
|
162
|
+
return { reason: MALFORMED_PLUGIN_ID };
|
|
163
|
+
}
|
|
164
|
+
const rawVersion = parsed.pluginVersion;
|
|
165
|
+
if (typeof rawVersion === 'string' && (rawVersion.trim() === '' || SemVersion.tryCreate(rawVersion).isErr())) {
|
|
166
|
+
return { reason: MALFORMED_PLUGIN_VERSION };
|
|
167
|
+
}
|
|
168
|
+
return { config: parsed };
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
return { reason: error instanceof Error ? error.message : String(error) };
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
async write(config) {
|
|
175
|
+
await this.fileService.ensurePathExists(this.configPath);
|
|
176
|
+
await this.fileService.writeContents(this.configPath, JSON.stringify(config, null, 2));
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=plugin-config-context.js.map
|