@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
|
@@ -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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-config-context.js","sourceRoot":"","sources":["../../src/types/plugin-config-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DirectoryPath } from './file/directoryPath.js';
|
|
2
|
+
import { FilePath } from './file/filePath.js';
|
|
3
|
+
import { PluginContents } from './plugin/plugin-contents.js';
|
|
4
|
+
export declare class PluginContext {
|
|
5
|
+
private readonly pluginDirectory;
|
|
6
|
+
private readonly fileService;
|
|
7
|
+
private readonly zipService;
|
|
8
|
+
constructor(pluginDirectory: DirectoryPath);
|
|
9
|
+
exists(): Promise<boolean>;
|
|
10
|
+
describeContents(): Promise<PluginContents>;
|
|
11
|
+
isGitInitialized(): Promise<boolean>;
|
|
12
|
+
save(tempPluginFilePath: FilePath): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { FileService } from '../infrastructure/file-service.js';
|
|
2
|
+
import { ZipService } from '../infrastructure/zip-service.js';
|
|
3
|
+
import { FileName } from './file/fileName.js';
|
|
4
|
+
const GIT_DIRECTORY_NAME = '.git';
|
|
5
|
+
export class PluginContext {
|
|
6
|
+
constructor(pluginDirectory) {
|
|
7
|
+
this.pluginDirectory = pluginDirectory;
|
|
8
|
+
this.fileService = new FileService();
|
|
9
|
+
this.zipService = new ZipService();
|
|
10
|
+
}
|
|
11
|
+
async exists() {
|
|
12
|
+
return !(await this.fileService.directoryEmpty(this.pluginDirectory));
|
|
13
|
+
}
|
|
14
|
+
async describeContents() {
|
|
15
|
+
const directory = await this.fileService.getDirectory(this.pluginDirectory);
|
|
16
|
+
const publishable = directory.excluding([new FileName(GIT_DIRECTORY_NAME)]);
|
|
17
|
+
return { fileCount: publishable.countFiles(), directoryCount: publishable.countDirectories() };
|
|
18
|
+
}
|
|
19
|
+
async isGitInitialized() {
|
|
20
|
+
return await this.fileService.directoryExists(this.pluginDirectory.join(GIT_DIRECTORY_NAME));
|
|
21
|
+
}
|
|
22
|
+
async save(tempPluginFilePath) {
|
|
23
|
+
// This directory is the user's repository once published: emptying it outright would discard their history.
|
|
24
|
+
await this.fileService.cleanDirectoryExcluding(this.pluginDirectory, [new FileName(GIT_DIRECTORY_NAME)]);
|
|
25
|
+
await this.zipService.unArchive(tempPluginFilePath, this.pluginDirectory);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=plugin-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-context.js","sourceRoot":"","sources":["../../src/types/plugin-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI9C,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,MAAM,OAAO,aAAa;IAIxB,YAA6B,eAA8B;QAA9B,oBAAe,GAAf,eAAe,CAAe;QAH1C,gBAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,eAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IAEe,CAAC;IAExD,KAAK,CAAC,MAAM;QACjB,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IACxE,CAAC;IAEM,KAAK,CAAC,gBAAgB;QAC3B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAE5E,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,UAAU,EAAE,EAAE,cAAc,EAAE,WAAW,CAAC,gBAAgB,EAAE,EAAE,CAAC;IACjG,CAAC;IAEM,KAAK,CAAC,gBAAgB;QAC3B,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC/F,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,kBAA4B;QAC5C,4GAA4G;QAC5G,MAAM,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACzG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,kBAAkB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5E,CAAC;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Language } from '../sdk/generate.js';
|
|
1
2
|
import { JavaDeveloper, JavaDistributionManagement, JavaScm, PhpAuthor, PhpSupport, PythonPerson, TsBugs, TsPerson, TsRepository } from '../publish-api/publishing-profile-item.js';
|
|
2
3
|
export interface GitConfiguration {
|
|
3
4
|
isEnabled: boolean;
|
|
@@ -71,4 +72,13 @@ export interface TypeScriptPackageConfiguration {
|
|
|
71
72
|
export interface GoPackageConfiguration {
|
|
72
73
|
packageName: string;
|
|
73
74
|
}
|
|
74
|
-
export
|
|
75
|
+
export interface PackageConfigurationForLanguage {
|
|
76
|
+
[Language.CSHARP]: CSharpPackageConfiguration;
|
|
77
|
+
[Language.JAVA]: JavaPackageConfiguration;
|
|
78
|
+
[Language.PHP]: PhpPackageConfiguration;
|
|
79
|
+
[Language.PYTHON]: PythonPackageConfiguration;
|
|
80
|
+
[Language.RUBY]: RubyPackageConfiguration;
|
|
81
|
+
[Language.TYPESCRIPT]: TypeScriptPackageConfiguration;
|
|
82
|
+
[Language.GO]: GoPackageConfiguration;
|
|
83
|
+
}
|
|
84
|
+
export type PackageConfigurationData = PackageConfigurationForLanguage[Language];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { Language } from '../sdk/generate.js';
|
|
2
2
|
//# sourceMappingURL=package-settings-configuration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-settings-configuration.js","sourceRoot":"","sources":["../../../src/types/publish/package-settings-configuration.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"package-settings-configuration.js","sourceRoot":"","sources":["../../../src/types/publish/package-settings-configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Language } from '../sdk/generate.js';
|
|
2
2
|
import { PublishingProfileItem, PublishingProfileSummaryGroup, PublishingProfileWithLanguagesGroup, PublishType } from '../publish-api/publishing-profile-item.js';
|
|
3
|
-
import {
|
|
3
|
+
import { GitConfiguration, PackageConfigurationForLanguage } from './package-settings-configuration.js';
|
|
4
4
|
export declare class PublishingProfile {
|
|
5
5
|
private readonly profile;
|
|
6
6
|
private readonly languageConfigs;
|
|
@@ -15,7 +15,8 @@ export declare class PublishingProfile {
|
|
|
15
15
|
getUnallowedPublishTypes(language: Language, requestedTypes: PublishType[]): PublishType[];
|
|
16
16
|
toPublishingProfileSummaryGroup(): PublishingProfileSummaryGroup;
|
|
17
17
|
toPublishingProfileWithLanguagesGroup(): PublishingProfileWithLanguagesGroup;
|
|
18
|
-
getPackageConfigurationDataForLanguage(language:
|
|
18
|
+
getPackageConfigurationDataForLanguage<L extends Language>(language: L): PackageConfigurationForLanguage[L] | undefined;
|
|
19
|
+
getGitConfigurationForLanguage(language: Language): GitConfiguration | undefined;
|
|
19
20
|
private static createCSharpConfiguration;
|
|
20
21
|
private static createJavaConfiguration;
|
|
21
22
|
private static createPhpConfiguration;
|
|
@@ -1,27 +1,30 @@
|
|
|
1
1
|
import { Language } from '../sdk/generate.js';
|
|
2
2
|
import { PublishType, } from '../publish-api/publishing-profile-item.js';
|
|
3
|
+
function enabledOnly(configs) {
|
|
4
|
+
return Object.fromEntries(Object.entries(configs).filter(([, config]) => config !== undefined));
|
|
5
|
+
}
|
|
3
6
|
export class PublishingProfile {
|
|
4
7
|
constructor(profile) {
|
|
5
8
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
6
9
|
this.profile = profile;
|
|
7
|
-
this.languageConfigs =
|
|
8
|
-
[Language.CSHARP
|
|
9
|
-
[Language.GO
|
|
10
|
-
[Language.JAVA
|
|
11
|
-
[Language.PHP
|
|
12
|
-
[Language.PYTHON
|
|
13
|
-
[Language.RUBY
|
|
14
|
-
[Language.TYPESCRIPT
|
|
15
|
-
|
|
16
|
-
this.gitConfigs =
|
|
17
|
-
[Language.CSHARP
|
|
18
|
-
[Language.GO
|
|
19
|
-
[Language.JAVA
|
|
20
|
-
[Language.PHP
|
|
21
|
-
[Language.PYTHON
|
|
22
|
-
[Language.RUBY
|
|
23
|
-
[Language.TYPESCRIPT
|
|
24
|
-
|
|
10
|
+
this.languageConfigs = enabledOnly({
|
|
11
|
+
[Language.CSHARP]: ((_a = profile.cSharpConfiguration) === null || _a === void 0 ? void 0 : _a.isEnabled) ? PublishingProfile.createCSharpConfiguration(profile.cSharpConfiguration) : undefined,
|
|
12
|
+
[Language.GO]: ((_b = profile.goConfiguration) === null || _b === void 0 ? void 0 : _b.isEnabled) ? PublishingProfile.createGoConfiguration(profile.goConfiguration) : undefined,
|
|
13
|
+
[Language.JAVA]: ((_c = profile.javaConfiguration) === null || _c === void 0 ? void 0 : _c.isEnabled) ? PublishingProfile.createJavaConfiguration(profile.javaConfiguration) : undefined,
|
|
14
|
+
[Language.PHP]: ((_d = profile.phpConfiguration) === null || _d === void 0 ? void 0 : _d.isEnabled) ? PublishingProfile.createPhpConfiguration(profile.phpConfiguration) : undefined,
|
|
15
|
+
[Language.PYTHON]: ((_e = profile.pythonConfiguration) === null || _e === void 0 ? void 0 : _e.isEnabled) ? PublishingProfile.createPythonConfiguration(profile.pythonConfiguration) : undefined,
|
|
16
|
+
[Language.RUBY]: ((_f = profile.rubyConfiguration) === null || _f === void 0 ? void 0 : _f.isEnabled) ? PublishingProfile.createRubyConfiguration(profile.rubyConfiguration) : undefined,
|
|
17
|
+
[Language.TYPESCRIPT]: ((_g = profile.typeScriptConfiguration) === null || _g === void 0 ? void 0 : _g.isEnabled) ? PublishingProfile.createTypeScriptConfiguration(profile.typeScriptConfiguration) : undefined
|
|
18
|
+
});
|
|
19
|
+
this.gitConfigs = enabledOnly({
|
|
20
|
+
[Language.CSHARP]: ((_h = profile.cSharpGitConfiguration) === null || _h === void 0 ? void 0 : _h.isEnabled) ? profile.cSharpGitConfiguration : undefined,
|
|
21
|
+
[Language.GO]: ((_j = profile.goGitConfiguration) === null || _j === void 0 ? void 0 : _j.isEnabled) ? profile.goGitConfiguration : undefined,
|
|
22
|
+
[Language.JAVA]: ((_k = profile.javaGitConfiguration) === null || _k === void 0 ? void 0 : _k.isEnabled) ? profile.javaGitConfiguration : undefined,
|
|
23
|
+
[Language.PHP]: ((_l = profile.phpGitConfiguration) === null || _l === void 0 ? void 0 : _l.isEnabled) ? profile.phpGitConfiguration : undefined,
|
|
24
|
+
[Language.PYTHON]: ((_m = profile.pythonGitConfiguration) === null || _m === void 0 ? void 0 : _m.isEnabled) ? profile.pythonGitConfiguration : undefined,
|
|
25
|
+
[Language.RUBY]: ((_o = profile.rubyGitConfiguration) === null || _o === void 0 ? void 0 : _o.isEnabled) ? profile.rubyGitConfiguration : undefined,
|
|
26
|
+
[Language.TYPESCRIPT]: ((_p = profile.typeScriptGitConfiguration) === null || _p === void 0 ? void 0 : _p.isEnabled) ? profile.typeScriptGitConfiguration : undefined
|
|
27
|
+
});
|
|
25
28
|
}
|
|
26
29
|
static create(item) {
|
|
27
30
|
return new PublishingProfile(item);
|
|
@@ -70,6 +73,9 @@ export class PublishingProfile {
|
|
|
70
73
|
getPackageConfigurationDataForLanguage(language) {
|
|
71
74
|
return this.languageConfigs[language];
|
|
72
75
|
}
|
|
76
|
+
getGitConfigurationForLanguage(language) {
|
|
77
|
+
return this.gitConfigs[language];
|
|
78
|
+
}
|
|
73
79
|
static createCSharpConfiguration(config) {
|
|
74
80
|
return {
|
|
75
81
|
packageId: config.packageId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publishing-profile.js","sourceRoot":"","sources":["../../../src/types/publish/publishing-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAWL,WAAW,GACZ,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"publishing-profile.js","sourceRoot":"","sources":["../../../src/types/publish/publishing-profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { Result } from 'neverthrow';
|
|
2
|
+
/**
|
|
3
|
+
* Structural only — it also admits strings `tryCreate` rejects, such as `1.2.3.4`. It is useful as
|
|
4
|
+
* the return type of an already-validated `SemVersion`, never as a substitute for one.
|
|
5
|
+
*/
|
|
6
|
+
export type SemVersionString = `${number}.${number}.${number}`;
|
|
2
7
|
export declare class SemVersion {
|
|
3
8
|
private readonly value;
|
|
4
9
|
private constructor();
|
|
5
10
|
static tryCreate(value: string): Result<SemVersion, string>;
|
|
6
|
-
toString():
|
|
11
|
+
toString(): SemVersionString;
|
|
7
12
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { ok, err } from 'neverthrow';
|
|
2
|
+
const DIGITS = /^\d+$/;
|
|
2
3
|
export class SemVersion {
|
|
3
4
|
constructor(value) {
|
|
4
5
|
this.value = value;
|
|
5
6
|
}
|
|
6
7
|
static tryCreate(value) {
|
|
7
8
|
const parts = value.split('.');
|
|
8
|
-
if (parts.length !== 3 || !parts.every((p) =>
|
|
9
|
+
if (parts.length !== 3 || !parts.every((p) => DIGITS.test(p))) {
|
|
9
10
|
return err('Invalid version format. Expected major.minor.patch (e.g., 1.0.0).');
|
|
10
11
|
}
|
|
11
12
|
return ok(new SemVersion(value));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/types/publish/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,EAAE,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/types/publish/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,EAAE,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAQ7C,MAAM,MAAM,GAAG,OAAO,CAAC;AAEvB,MAAM,OAAO,UAAU;IAGrB,YAAoB,KAAa;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,KAAa;QACnC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,OAAO,GAAG,CAAC,mEAAmE,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,KAAyB,CAAC;IACxC,CAAC;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { NonEmptyArray } from "../utils.js";
|
|
1
2
|
export declare enum Language {
|
|
2
3
|
CSHARP = "csharp",
|
|
3
4
|
JAVA = "java",
|
|
@@ -26,3 +27,21 @@ export declare const LANGUAGE_CHOICES: ReadonlyArray<{
|
|
|
26
27
|
label: string;
|
|
27
28
|
value: Language;
|
|
28
29
|
}>;
|
|
30
|
+
export declare class CodegenOption {
|
|
31
|
+
private readonly version;
|
|
32
|
+
private readonly stability;
|
|
33
|
+
static readonly v3: CodegenOption;
|
|
34
|
+
private constructor();
|
|
35
|
+
static create(version: CodeGenerationVersion, stability: Stability): CodegenOption;
|
|
36
|
+
isV3(): boolean;
|
|
37
|
+
isV4(): boolean;
|
|
38
|
+
stabilityLevel(): Stability;
|
|
39
|
+
codeGenerationVersion(): CodeGenerationVersion;
|
|
40
|
+
toString(): string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* For validating only interactive `sdk publish/generate` commands.
|
|
44
|
+
* Non-interactive validation is handled server-side by codegen API.
|
|
45
|
+
*/
|
|
46
|
+
export declare const CODEGEN_OPTIONS: Readonly<Record<Language, Readonly<NonEmptyArray<CodegenOption>>>>;
|
|
47
|
+
export declare function getCodegenOptions(language: Language): Readonly<NonEmptyArray<CodegenOption>>;
|
|
@@ -47,4 +47,48 @@ export const LANGUAGE_CHOICES = [
|
|
|
47
47
|
{ label: "PHP", value: Language.PHP },
|
|
48
48
|
{ label: "Go", value: Language.GO }
|
|
49
49
|
];
|
|
50
|
+
export class CodegenOption {
|
|
51
|
+
constructor(version, stability) {
|
|
52
|
+
this.version = version;
|
|
53
|
+
this.stability = stability;
|
|
54
|
+
}
|
|
55
|
+
static create(version, stability) {
|
|
56
|
+
if (version === CodeGenerationVersion.V3) {
|
|
57
|
+
return CodegenOption.v3;
|
|
58
|
+
}
|
|
59
|
+
return new CodegenOption(version, stability);
|
|
60
|
+
}
|
|
61
|
+
isV3() {
|
|
62
|
+
return this.version === CodeGenerationVersion.V3;
|
|
63
|
+
}
|
|
64
|
+
isV4() {
|
|
65
|
+
return this.version === CodeGenerationVersion.V4;
|
|
66
|
+
}
|
|
67
|
+
stabilityLevel() {
|
|
68
|
+
return this.stability;
|
|
69
|
+
}
|
|
70
|
+
codeGenerationVersion() {
|
|
71
|
+
return this.version;
|
|
72
|
+
}
|
|
73
|
+
toString() {
|
|
74
|
+
return `${this.version.toUpperCase()} (${this.stability})`;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
CodegenOption.v3 = new CodegenOption(CodeGenerationVersion.V3, Stability.STABLE);
|
|
78
|
+
/**
|
|
79
|
+
* For validating only interactive `sdk publish/generate` commands.
|
|
80
|
+
* Non-interactive validation is handled server-side by codegen API.
|
|
81
|
+
*/
|
|
82
|
+
export const CODEGEN_OPTIONS = {
|
|
83
|
+
[Language.CSHARP]: [CodegenOption.v3, CodegenOption.create(CodeGenerationVersion.V4, Stability.BETA)],
|
|
84
|
+
[Language.GO]: [CodegenOption.v3],
|
|
85
|
+
[Language.JAVA]: [CodegenOption.v3],
|
|
86
|
+
[Language.PHP]: [CodegenOption.v3],
|
|
87
|
+
[Language.PYTHON]: [CodegenOption.v3],
|
|
88
|
+
[Language.RUBY]: [CodegenOption.v3],
|
|
89
|
+
[Language.TYPESCRIPT]: [CodegenOption.v3]
|
|
90
|
+
};
|
|
91
|
+
export function getCodegenOptions(language) {
|
|
92
|
+
return CODEGEN_OPTIONS[language];
|
|
93
|
+
}
|
|
50
94
|
//# sourceMappingURL=generate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/types/sdk/generate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/types/sdk/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,6 @@ export declare class TocComponents {
|
|
|
26
26
|
readonly webhookGroups: WebhookGroups;
|
|
27
27
|
readonly callbackGroups: CallbackGroups;
|
|
28
28
|
private constructor();
|
|
29
|
-
static empty(): TocComponents;
|
|
30
29
|
static fromTocData(tocData: TocData): TocComponents;
|
|
31
30
|
private static toEndpointGroups;
|
|
32
31
|
private static toTocModelPages;
|
|
@@ -9,9 +9,6 @@ export class TocComponents {
|
|
|
9
9
|
this.webhookGroups = webhookGroups;
|
|
10
10
|
this.callbackGroups = callbackGroups;
|
|
11
11
|
}
|
|
12
|
-
static empty() {
|
|
13
|
-
return new TocComponents(new Map(), [], [], [], [], [], new Map(), new Map());
|
|
14
|
-
}
|
|
15
12
|
static fromTocData(tocData) {
|
|
16
13
|
return new TocComponents(TocComponents.toEndpointGroups(tocData.endpoints), TocComponents.toTocModelPages(tocData.models), TocComponents.toTocModelPages(tocData.enums), TocComponents.toTocModelPages(tocData.errors), TocComponents.toTocContainerModelPages(tocData.containers), TocComponents.toTocInputModelPages(tocData.inputModels), TocComponents.toWebhookGroups(tocData.webhooks), TocComponents.toCallbackGroups(tocData.callbacks));
|
|
17
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toc-components.js","sourceRoot":"","sources":["../../../src/types/toc/toc-components.ts"],"names":[],"mappings":"AAgCA,MAAM,OAAO,aAAa;IAUxB,YACE,cAA8B,EAC9B,MAAsB,EACtB,KAAqB,EACrB,MAAsB,EACtB,eAAwC,EACxC,WAAgC,EAChC,aAA4B,EAC5B,cAA8B;QAE9B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"toc-components.js","sourceRoot":"","sources":["../../../src/types/toc/toc-components.ts"],"names":[],"mappings":"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"}
|
package/lib/types/utils.d.ts
CHANGED