@apimatic/cli 1.1.0-beta.10 → 1.1.0-beta.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +105 -6
- package/lib/actions/portal/generate.js +7 -1
- package/lib/actions/portal/generate.js.map +1 -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 +5 -1
- package/lib/actions/sdk/generate.js +55 -40
- package/lib/actions/sdk/generate.js.map +1 -1
- package/lib/actions/sdk/merge-source-tree.d.ts +12 -0
- package/lib/actions/sdk/merge-source-tree.js +78 -0
- package/lib/actions/sdk/merge-source-tree.js.map +1 -0
- 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 +56 -0
- package/lib/actions/sdk/publish.js.map +1 -0
- package/lib/actions/sdk/quickstart.js +1 -1
- package/lib/actions/sdk/quickstart.js.map +1 -1
- package/lib/actions/sdk/save-changes.d.ts +8 -0
- package/lib/actions/sdk/save-changes.js +93 -0
- package/lib/actions/sdk/save-changes.js.map +1 -0
- package/lib/commands/portal/recipe/new.js +2 -2
- package/lib/commands/portal/recipe/new.js.map +1 -1
- package/lib/commands/portal/toc/new.js +2 -2
- package/lib/commands/portal/toc/new.js.map +1 -1
- 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/quickstart.js +1 -1
- package/lib/commands/quickstart.js.map +1 -1
- package/lib/commands/sdk/generate.d.ts +4 -2
- package/lib/commands/sdk/generate.js +26 -8
- package/lib/commands/sdk/generate.js.map +1 -1
- 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/commands/sdk/save-changes.d.ts +14 -0
- package/lib/commands/sdk/save-changes.js +51 -0
- package/lib/commands/sdk/save-changes.js.map +1 -0
- package/lib/hooks/not-found.js +1 -1
- package/lib/hooks/not-found.js.map +1 -1
- package/lib/infrastructure/env-info.d.ts +2 -0
- package/lib/infrastructure/env-info.js +22 -11
- package/lib/infrastructure/env-info.js.map +1 -1
- package/lib/infrastructure/file-service.d.ts +9 -0
- package/lib/infrastructure/file-service.js +94 -5
- package/lib/infrastructure/file-service.js.map +1 -1
- package/lib/infrastructure/git-service.d.ts +14 -0
- package/lib/infrastructure/git-service.js +90 -0
- package/lib/infrastructure/git-service.js.map +1 -0
- package/lib/infrastructure/launcher-service.d.ts +5 -0
- package/lib/infrastructure/launcher-service.js +35 -2
- 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 +14 -2
- package/lib/infrastructure/service-error.js +26 -9
- package/lib/infrastructure/service-error.js.map +1 -1
- package/lib/infrastructure/services/portal-service.d.ts +6 -1
- package/lib/infrastructure/services/portal-service.js +37 -18
- 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/portal/generate.d.ts +1 -1
- package/lib/prompts/portal/generate.js +9 -3
- package/lib/prompts/portal/generate.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/generate.d.ts +5 -3
- package/lib/prompts/sdk/generate.js +20 -14
- package/lib/prompts/sdk/generate.js.map +1 -1
- package/lib/prompts/sdk/merge-source-tree.d.ts +22 -0
- package/lib/prompts/sdk/merge-source-tree.js +90 -0
- package/lib/prompts/sdk/merge-source-tree.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/prompts/sdk/save-changes.d.ts +21 -0
- package/lib/prompts/sdk/save-changes.js +84 -0
- package/lib/prompts/sdk/save-changes.js.map +1 -0
- package/lib/types/build/build.d.ts +2 -0
- package/lib/types/build/build.js.map +1 -1
- package/lib/types/build-context.d.ts +11 -0
- package/lib/types/build-context.js +81 -1
- package/lib/types/build-context.js.map +1 -1
- package/lib/types/events/sdk-changes-saved.d.ts +8 -0
- package/lib/types/events/sdk-changes-saved.js +11 -0
- package/lib/types/events/sdk-changes-saved.js.map +1 -0
- package/lib/types/events/sdk-changes-tracked.d.ts +8 -0
- package/lib/types/events/sdk-changes-tracked.js +11 -0
- package/lib/types/events/sdk-changes-tracked.js.map +1 -0
- package/lib/types/events/sdk-conflicts-resolved.d.ts +8 -0
- package/lib/types/events/sdk-conflicts-resolved.js +11 -0
- package/lib/types/events/sdk-conflicts-resolved.js.map +1 -0
- 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/file/directory.d.ts +10 -1
- package/lib/types/file/directory.js +63 -5
- package/lib/types/file/directory.js.map +1 -1
- package/lib/types/file/directoryPath.js.map +1 -1
- package/lib/types/merge-source-tree-context.d.ts +28 -0
- package/lib/types/merge-source-tree-context.js +63 -0
- package/lib/types/merge-source-tree-context.js.map +1 -0
- 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/lib/types/save-changes-context.d.ts +17 -0
- package/lib/types/save-changes-context.js +42 -0
- package/lib/types/save-changes-context.js.map +1 -0
- package/lib/types/sdk-context.d.ts +5 -4
- package/lib/types/sdk-context.js +26 -13
- package/lib/types/sdk-context.js.map +1 -1
- package/lib/types/spec-context.js.map +1 -1
- package/lib/types/temp-context.js.map +1 -1
- package/package.json +18 -9
- package/lib/types/versioned-build-context.d.ts +0 -15
- package/lib/types/versioned-build-context.js +0 -28
- package/lib/types/versioned-build-context.js.map +0 -1
|
@@ -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
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { log, spinner } from '@clack/prompts';
|
|
2
|
+
import { PublishType } from '../../../types/publish-api/publishing-profile-item.js';
|
|
3
|
+
import { format as f } from '../../../prompts/format.js';
|
|
4
|
+
import { noteWrapped, withSpinner } from '../../prompt.js';
|
|
5
|
+
export class SdkPublishNonInteractivePrompts {
|
|
6
|
+
directoryCannotBeSame(directory) {
|
|
7
|
+
const message = `The ${f.var('src')} and ${f.var('sdk')} directories must be different. Current value: ${f.path(directory)}`;
|
|
8
|
+
log.error(message);
|
|
9
|
+
}
|
|
10
|
+
srcDirectoryDoesNotExist(directory) {
|
|
11
|
+
log.error(`The ${f.var('src')} does not exist at the provided location: ${f.path(directory)}`);
|
|
12
|
+
}
|
|
13
|
+
missingRequiredFlags(options) {
|
|
14
|
+
const message = `Missing required flag(s): ${options.join(', ')}`;
|
|
15
|
+
log.error(message);
|
|
16
|
+
}
|
|
17
|
+
interactiveModeNotice() {
|
|
18
|
+
log.info('You can run the command in interactive mode by not passing any flags.');
|
|
19
|
+
}
|
|
20
|
+
invalidVersion(version) {
|
|
21
|
+
log.error(`Invalid version '${version}'. Please provide a valid version in the format major.minor.patch (e.g., 1.0.0).`);
|
|
22
|
+
}
|
|
23
|
+
invalidProfileId(profileId) {
|
|
24
|
+
log.error(`Invalid profile id '${profileId}' provided. Please provide a valid profile id.`);
|
|
25
|
+
}
|
|
26
|
+
async getPublishingProfiles(fn) {
|
|
27
|
+
return withSpinner('Searching for publishing profile', 'Profile search complete.', 'Failed to search for publishing profile.', fn);
|
|
28
|
+
}
|
|
29
|
+
getPublishingProfilesServiceError(serviceError) {
|
|
30
|
+
log.error(serviceError.errorMessage);
|
|
31
|
+
}
|
|
32
|
+
publishingProfileNotFound(profileId) {
|
|
33
|
+
log.error(`Publishing profile with id '${profileId}' not found. Please check if the provided profile id is correct or create a new publishing profile on the APIMatic App.`);
|
|
34
|
+
}
|
|
35
|
+
languageNotConfiguredForProfile(language) {
|
|
36
|
+
log.error(`No configuration found for '${language}' in the selected publishing profile. Please check the provided profile's configuration on the APIMatic App and try again.`);
|
|
37
|
+
}
|
|
38
|
+
publishTypesNotAvailableForLanguage(publishTypes, language) {
|
|
39
|
+
const types = [...publishTypes]
|
|
40
|
+
.sort((a, b) => (a === PublishType.SourceCodePublishing ? -1 : b === PublishType.SourceCodePublishing ? 1 : 0))
|
|
41
|
+
.join(' + ');
|
|
42
|
+
const noun = publishTypes.length === 1 ? 'type' : 'types';
|
|
43
|
+
log.error(`Publish ${noun} '${types}' not found or not enabled for '${language}' in the selected publishing profile. Please check your profile configuration on the APIMatic App and try again.`);
|
|
44
|
+
}
|
|
45
|
+
sourceCodeOnlyPublishingNotice() {
|
|
46
|
+
log.info('Version tags will not be created in your Git repository because you have opted to publish Source Code only.');
|
|
47
|
+
}
|
|
48
|
+
publishingRunningNotice(profile, language, version, publishType) {
|
|
49
|
+
const targets = [...publishType]
|
|
50
|
+
.sort((a, b) => (a === PublishType.SourceCodePublishing ? -1 : b === PublishType.SourceCodePublishing ? 1 : 0))
|
|
51
|
+
.map((t) => (t === PublishType.PackagePublishing ? 'Package' : 'Source Code'))
|
|
52
|
+
.join(' + ');
|
|
53
|
+
log.info(`Publishing is running for the following:\n\n Profile: ${profile}\n Language: ${language}\n Version: ${version}\n Targets: ${targets}`);
|
|
54
|
+
}
|
|
55
|
+
postPublishingMessage(publishingLogUrl) {
|
|
56
|
+
const message = `To view publishing logs, please visit:
|
|
57
|
+
${f.link(publishingLogUrl)}`;
|
|
58
|
+
noteWrapped(message, 'Next Steps');
|
|
59
|
+
}
|
|
60
|
+
async pollPublishingStatus(getSdkPublishingLogFn) {
|
|
61
|
+
const TERMINAL_STATES = new Set(['Succeeded', 'Failed', 'Exception', 'InternalError']);
|
|
62
|
+
const POLL_INTERVAL_MS = 10000; // poll after every 10 seconds.
|
|
63
|
+
const spin = spinner();
|
|
64
|
+
spin.start('Waiting for publishing status...');
|
|
65
|
+
while (true) {
|
|
66
|
+
const publishingLogResult = await getSdkPublishingLogFn();
|
|
67
|
+
if (publishingLogResult.isErr()) {
|
|
68
|
+
spin.stop('Failed to fetch publishing status.', 1);
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
const { events } = publishingLogResult.value;
|
|
72
|
+
const executionCompleted = events.every((event) => TERMINAL_STATES.has(event.eventType));
|
|
73
|
+
const statusMessage = [...events]
|
|
74
|
+
.sort((a, b) => (a.publishType === 'SourceCode' ? -1 : b.publishType === 'SourceCode' ? 1 : 0))
|
|
75
|
+
.map((event) => {
|
|
76
|
+
var _a;
|
|
77
|
+
const target = event.publishType === 'SourceCode' ? 'Source Code' : 'Package';
|
|
78
|
+
const eventLabels = {
|
|
79
|
+
Queued: 'Queued',
|
|
80
|
+
InProgress: 'In Progress',
|
|
81
|
+
Succeeded: 'Published'
|
|
82
|
+
};
|
|
83
|
+
const label = (_a = eventLabels[event.eventType]) !== null && _a !== void 0 ? _a : 'Failed';
|
|
84
|
+
return `${target}: [${label}]`;
|
|
85
|
+
})
|
|
86
|
+
.join(' | ');
|
|
87
|
+
if (executionCompleted) {
|
|
88
|
+
const isExecutionSuccessful = events.every((event) => event.eventType === 'Succeeded');
|
|
89
|
+
spin.stop(statusMessage, isExecutionSuccessful ? 0 : 1);
|
|
90
|
+
return isExecutionSuccessful;
|
|
91
|
+
}
|
|
92
|
+
spin.message(statusMessage);
|
|
93
|
+
await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=non-interactive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"non-interactive.js","sourceRoot":"","sources":["../../../../src/prompts/sdk/publish/non-interactive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Result } from 'neverthrow';
|
|
2
|
+
import { ServiceError } from '../../infrastructure/service-error.js';
|
|
3
|
+
import { PublishingInfo } from '../../types/publish-api/publishing-info.js';
|
|
4
|
+
import { PublishType } from '../../types/publish-api/publishing-profile-item.js';
|
|
5
|
+
import { SemVersion } from '../../types/publish/version.js';
|
|
6
|
+
import { Language } from '../../types/sdk/generate.js';
|
|
7
|
+
import { PublishingProfile } from '../../types/publish/publishing-profile.js';
|
|
8
|
+
export declare class SdkPublishPrompts {
|
|
9
|
+
publishSdk(fn: Promise<Result<PublishingInfo, ServiceError>>): Promise<Result<PublishingInfo, ServiceError>>;
|
|
10
|
+
sdkPublishingServiceError(serviceError: ServiceError): void;
|
|
11
|
+
dryRunNotice(publishingProfile: PublishingProfile, language: Language, version: SemVersion, publishType: PublishType[]): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { log } from '@clack/prompts';
|
|
2
|
+
import { PublishType } from '../../types/publish-api/publishing-profile-item.js';
|
|
3
|
+
import { withSpinner } from '../prompt.js';
|
|
4
|
+
export class SdkPublishPrompts {
|
|
5
|
+
publishSdk(fn) {
|
|
6
|
+
return withSpinner('Publishing SDK', 'Publishing initiated.', 'SDK Publishing failed.', fn);
|
|
7
|
+
}
|
|
8
|
+
sdkPublishingServiceError(serviceError) {
|
|
9
|
+
log.error(serviceError.errorMessage);
|
|
10
|
+
}
|
|
11
|
+
dryRunNotice(publishingProfile, language, version, publishType) {
|
|
12
|
+
const targets = publishType.map((t) => (t === PublishType.PackagePublishing ? 'Package' : 'Source Code')).join(' + ');
|
|
13
|
+
log.info(`You can publish this SDK by removing the --dry-run flag. It will be published for the following:\n\n Profile: ${publishingProfile}\n Language: ${language}\n Version: ${version}\n Targets: ${targets}`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=publish.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/prompts/sdk/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAIrC,OAAO,EAAE,WAAW,EAAE,MAAM,oDAAoD,CAAC;AAGjF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,MAAM,OAAO,iBAAiB;IACrB,UAAU,CAAC,EAAiD;QACjE,OAAO,WAAW,CAAC,gBAAgB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAC;IAC9F,CAAC;IAEM,yBAAyB,CAAC,YAA0B;QACzD,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC;IAEM,YAAY,CAAC,iBAAoC,EAAE,QAAkB,EAAE,OAAmB,EAAE,WAA0B;QAC3H,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtH,GAAG,CAAC,IAAI,CACN,oHAAoH,iBAAiB,kBAAkB,QAAQ,kBAAkB,OAAO,kBAAkB,OAAO,EAAE,CACpN,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DirectoryPath } from "../../types/file/directoryPath.js";
|
|
2
|
+
import { FilePath } from "../../types/file/filePath.js";
|
|
3
|
+
import { Directory } from "../../types/file/directory.js";
|
|
4
|
+
export declare class SaveChangesPrompts {
|
|
5
|
+
srcDirectoryEmpty(directory: DirectoryPath): void;
|
|
6
|
+
invalidSdkDirectory(directory: DirectoryPath): void;
|
|
7
|
+
invalidVersionedDocsDirectory(directory: DirectoryPath): void;
|
|
8
|
+
apiVersionOnlyApplicableWithVersionedBuild(): void;
|
|
9
|
+
versionNotFound(): void;
|
|
10
|
+
selectVersion(versions: string[]): Promise<string | undefined>;
|
|
11
|
+
sdkSourceTreeNotFound(language: string): void;
|
|
12
|
+
operationCancelled(): void;
|
|
13
|
+
directoryStillOpen(directory: DirectoryPath): Promise<void>;
|
|
14
|
+
modifiedFilesDetected(directory: Directory): void;
|
|
15
|
+
confirmReviewChanges(): Promise<boolean>;
|
|
16
|
+
noChangesDetected(): void;
|
|
17
|
+
openingDirectoryToReviewChanges(): void;
|
|
18
|
+
reviewChangesManually(tempDirectory: DirectoryPath): Promise<void>;
|
|
19
|
+
confirmSaveChanges(): Promise<boolean>;
|
|
20
|
+
changesSaved(sourceTreePath: FilePath): void;
|
|
21
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { log, isCancel, select, confirm } from "@clack/prompts";
|
|
2
|
+
import { format as f, getTree } from "../format.js";
|
|
3
|
+
import { noteWrapped } from "../prompt.js";
|
|
4
|
+
export class SaveChangesPrompts {
|
|
5
|
+
srcDirectoryEmpty(directory) {
|
|
6
|
+
const message = `The ${f.var("src")} directory is either empty or invalid: ${f.path(directory)}`;
|
|
7
|
+
log.error(message);
|
|
8
|
+
}
|
|
9
|
+
invalidSdkDirectory(directory) {
|
|
10
|
+
const message = `SDK directory does not exist: ${f.path(directory)}`;
|
|
11
|
+
log.error(message);
|
|
12
|
+
}
|
|
13
|
+
invalidVersionedDocsDirectory(directory) {
|
|
14
|
+
const message = `The ${f.var("versioned_docs")} directory is either empty or invalid: ${f.path(directory)}`;
|
|
15
|
+
log.error(message);
|
|
16
|
+
}
|
|
17
|
+
apiVersionOnlyApplicableWithVersionedBuild() {
|
|
18
|
+
log.warn(`The ${f.flag("api-version")} is only applicable with a versioned build.`);
|
|
19
|
+
}
|
|
20
|
+
versionNotFound() {
|
|
21
|
+
log.error(`The selected API version is invalid.`);
|
|
22
|
+
}
|
|
23
|
+
async selectVersion(versions) {
|
|
24
|
+
const version = await select({
|
|
25
|
+
message: "Select an API version to save SDK changes into:",
|
|
26
|
+
options: versions.map((v) => ({ label: v, value: v }))
|
|
27
|
+
});
|
|
28
|
+
if (isCancel(version)) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
return version;
|
|
32
|
+
}
|
|
33
|
+
sdkSourceTreeNotFound(language) {
|
|
34
|
+
log.error(`No 'sdk-source-tree' found for ${f.var(language)}. You need to generate the SDK with change tracking enabled before you can save changes.`);
|
|
35
|
+
const message = `Generate the SDK with change tracking by running:
|
|
36
|
+
'${f.cmdAlt("apimatic", "sdk", "generate")} ${f.flag("language", language)} ${f.flag("track-changes")}'
|
|
37
|
+
Then customize your SDK and run ${f.cmdAlt("apimatic", "sdk", "save-changes")} again.`;
|
|
38
|
+
noteWrapped(message, "Next Steps");
|
|
39
|
+
}
|
|
40
|
+
operationCancelled() {
|
|
41
|
+
log.warn("Exiting without saving any changes.");
|
|
42
|
+
}
|
|
43
|
+
async directoryStillOpen(directory) {
|
|
44
|
+
log.info(`Please close all applications using the directory ${f.path(directory)} to allow cleanup of temporary files.`);
|
|
45
|
+
}
|
|
46
|
+
modifiedFilesDetected(directory) {
|
|
47
|
+
log.info(`Detected changes in the following file(s):
|
|
48
|
+
${getTree(directory.toTreeNode())}`);
|
|
49
|
+
}
|
|
50
|
+
async confirmReviewChanges() {
|
|
51
|
+
const confirmed = await confirm({
|
|
52
|
+
message: `Do you want to review these changes?`,
|
|
53
|
+
initialValue: false
|
|
54
|
+
});
|
|
55
|
+
if (isCancel(confirmed)) {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
return confirmed;
|
|
59
|
+
}
|
|
60
|
+
noChangesDetected() {
|
|
61
|
+
log.info("No changes detected in the SDK.");
|
|
62
|
+
}
|
|
63
|
+
openingDirectoryToReviewChanges() {
|
|
64
|
+
log.info(`Opening the changed files in VS Code for review. Close the editor to proceed.`);
|
|
65
|
+
}
|
|
66
|
+
async reviewChangesManually(tempDirectory) {
|
|
67
|
+
log.info(`Review the changes at ${f.path(tempDirectory)} to proceed.`);
|
|
68
|
+
}
|
|
69
|
+
async confirmSaveChanges() {
|
|
70
|
+
const confirmed = await confirm({
|
|
71
|
+
message: `Do you want to save these changes?`,
|
|
72
|
+
initialValue: true
|
|
73
|
+
});
|
|
74
|
+
if (isCancel(confirmed)) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
return confirmed;
|
|
78
|
+
}
|
|
79
|
+
changesSaved(sourceTreePath) {
|
|
80
|
+
log.success(`Changes saved successfully at ${f.path(sourceTreePath)}.`);
|
|
81
|
+
log.info(`Your saved changes will reapply automatically the next time you generate this SDK.`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=save-changes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save-changes.js","sourceRoot":"","sources":["../../../src/prompts/sdk/save-changes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/types/build/build.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/types/build/build.ts"],"names":[],"mappings":"AAuBA,MAAM,UAAU,kBAAkB,CAAC,iBAA2B;IAC5D,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QAC/C,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,EAA+B,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { DirectoryPath } from "./file/directoryPath.js";
|
|
2
|
+
import { FilePath } from "./file/filePath.js";
|
|
2
3
|
import { BuildConfig } from "./build/build.js";
|
|
4
|
+
import { SpecContext } from "./spec-context.js";
|
|
3
5
|
export declare class BuildContext {
|
|
4
6
|
private readonly fileService;
|
|
5
7
|
private readonly buildDirectory;
|
|
@@ -7,7 +9,16 @@ export declare class BuildContext {
|
|
|
7
9
|
private get buildFile();
|
|
8
10
|
validate(): Promise<boolean>;
|
|
9
11
|
exists(): Promise<boolean>;
|
|
12
|
+
existsSync(): boolean;
|
|
10
13
|
getBuildFileContents(): Promise<BuildConfig>;
|
|
11
14
|
updateBuildFileContents(buildJson: BuildConfig): Promise<void>;
|
|
12
15
|
deleteWorkflowDir(): Promise<void>;
|
|
16
|
+
getBuildZipPath(tempDir: DirectoryPath, packageSettingsDirectory?: DirectoryPath): Promise<FilePath>;
|
|
17
|
+
getSpecContext(): SpecContext;
|
|
18
|
+
hasSdkSourceTree(language: string): Promise<boolean>;
|
|
19
|
+
getSdkSourceTree(language: string): FilePath;
|
|
20
|
+
isVersionedBuild(): Promise<boolean>;
|
|
21
|
+
getVersionedBuildDirectory(): Promise<DirectoryPath | undefined>;
|
|
22
|
+
getSingleVersionedBuildDirectory(): Promise<DirectoryPath | undefined>;
|
|
23
|
+
getSelectedVersionedBuildDirectory(versionSelector: (versions: string[]) => Promise<string | undefined>): Promise<DirectoryPath | undefined>;
|
|
13
24
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { FileService } from "../infrastructure/file-service.js";
|
|
2
2
|
import { FilePath } from "./file/filePath.js";
|
|
3
3
|
import { FileName } from "./file/fileName.js";
|
|
4
|
+
import { SpecContext } from "./spec-context.js";
|
|
5
|
+
import { TempContext } from "./temp-context.js";
|
|
4
6
|
export class BuildContext {
|
|
5
7
|
constructor(buildDirectory) {
|
|
6
8
|
this.fileService = new FileService();
|
|
@@ -17,7 +19,10 @@ export class BuildContext {
|
|
|
17
19
|
return await this.fileService.fileExists(this.buildFile);
|
|
18
20
|
}
|
|
19
21
|
async exists() {
|
|
20
|
-
return
|
|
22
|
+
return await this.fileService.directoryExists(this.buildDirectory);
|
|
23
|
+
}
|
|
24
|
+
existsSync() {
|
|
25
|
+
return this.fileService.directoryExistsSync(this.buildDirectory);
|
|
21
26
|
}
|
|
22
27
|
async getBuildFileContents() {
|
|
23
28
|
const buildFileContent = await this.fileService.getContents(this.buildFile);
|
|
@@ -29,5 +34,80 @@ export class BuildContext {
|
|
|
29
34
|
async deleteWorkflowDir() {
|
|
30
35
|
await this.fileService.deleteDirectory(this.buildDirectory.join(".github"));
|
|
31
36
|
}
|
|
37
|
+
async getBuildZipPath(tempDir, packageSettingsDirectory) {
|
|
38
|
+
const tempContext = new TempContext(tempDir);
|
|
39
|
+
const tempBuildDir = tempDir.join("build");
|
|
40
|
+
await this.fileService.copyDirectoryContents(this.buildDirectory, tempBuildDir);
|
|
41
|
+
if (packageSettingsDirectory) {
|
|
42
|
+
await this.fileService.copyDirectoryContents(packageSettingsDirectory.join('package-settings'), tempBuildDir.join('package-settings'));
|
|
43
|
+
}
|
|
44
|
+
return await tempContext.zip(tempBuildDir);
|
|
45
|
+
}
|
|
46
|
+
getSpecContext() {
|
|
47
|
+
return new SpecContext(this.buildDirectory.join("spec"));
|
|
48
|
+
}
|
|
49
|
+
async hasSdkSourceTree(language) {
|
|
50
|
+
const sourceTreePath = FilePath.create(this.buildDirectory.join("sdk-source-tree").join(`.${language}`).toString());
|
|
51
|
+
if (!sourceTreePath) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
return await this.fileService.fileExists(sourceTreePath);
|
|
55
|
+
}
|
|
56
|
+
getSdkSourceTree(language) {
|
|
57
|
+
return FilePath.create(this.buildDirectory.join("sdk-source-tree").join(`.${language}`).toString());
|
|
58
|
+
}
|
|
59
|
+
async isVersionedBuild() {
|
|
60
|
+
if (!await this.validate()) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
const buildConfig = await this.getBuildFileContents();
|
|
64
|
+
if (buildConfig.generateVersionedPortal) {
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
async getVersionedBuildDirectory() {
|
|
70
|
+
var _a;
|
|
71
|
+
const buildConfig = await this.getBuildFileContents();
|
|
72
|
+
if (!buildConfig.generateVersionedPortal) {
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
const versionsDirectory = this.buildDirectory.join((_a = buildConfig.versionsPath) !== null && _a !== void 0 ? _a : 'versioned_docs');
|
|
76
|
+
if (!await this.fileService.directoryExists(versionsDirectory)) {
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
const versionsDirs = await this.fileService.getSubDirectoriesPaths(versionsDirectory);
|
|
80
|
+
return versionsDirs.length > 0 ? versionsDirectory : undefined;
|
|
81
|
+
}
|
|
82
|
+
async getSingleVersionedBuildDirectory() {
|
|
83
|
+
var _a;
|
|
84
|
+
const buildConfig = await this.getBuildFileContents();
|
|
85
|
+
if (!buildConfig.generateVersionedPortal) {
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
const versionsDirectory = this.buildDirectory.join((_a = buildConfig.versionsPath) !== null && _a !== void 0 ? _a : 'versioned_docs');
|
|
89
|
+
if (!await this.fileService.directoryExists(versionsDirectory)) {
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
const versionsDirs = await this.fileService.getSubDirectoriesPaths(versionsDirectory);
|
|
93
|
+
return versionsDirs.length === 1 ? versionsDirs[0] : undefined;
|
|
94
|
+
}
|
|
95
|
+
async getSelectedVersionedBuildDirectory(versionSelector) {
|
|
96
|
+
var _a;
|
|
97
|
+
const buildConfig = await this.getBuildFileContents();
|
|
98
|
+
if (!buildConfig.generateVersionedPortal) {
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
const versionsDirectory = this.buildDirectory.join((_a = buildConfig.versionsPath) !== null && _a !== void 0 ? _a : 'versioned_docs');
|
|
102
|
+
if (!await this.fileService.directoryExists(versionsDirectory)) {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
const versionsDirs = await this.fileService.getSubDirectoriesPaths(versionsDirectory);
|
|
106
|
+
const selectedVersion = await versionSelector(versionsDirs.map(dir => dir.leafName()));
|
|
107
|
+
if (!selectedVersion) {
|
|
108
|
+
return undefined;
|
|
109
|
+
}
|
|
110
|
+
return versionsDirs.find(dir => dir.leafName() === selectedVersion);
|
|
111
|
+
}
|
|
32
112
|
}
|
|
33
113
|
//# sourceMappingURL=build-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-context.js","sourceRoot":"","sources":["../../src/types/build-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"build-context.js","sourceRoot":"","sources":["../../src/types/build-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,YAAY;IAIvB,YAAY,cAA6B;QAHxB,gBAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QAI/C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,IAAY,SAAS;QACnB,uCAAuC;QACvC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAChF,CAAC;IAEM,KAAK,CAAC,QAAQ;QACnB,6BAA6B;QAC7B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAEjF,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IAEM,KAAK,CAAC,MAAM;QACjB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACrE,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnE,CAAC;IAEM,KAAK,CAAC,oBAAoB;QAC/B,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAgB,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,uBAAuB,CAAC,SAAsB;QACzD,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC5B,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9E,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,OAAsB,EAAE,wBAAwC;QAC3F,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAChF,IAAI,wBAAwB,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACzI,CAAC;QACD,OAAO,MAAM,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,QAAgB;QAC5C,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpH,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAC3D,CAAC;IAEM,gBAAgB,CAAC,QAAgB;QACtC,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAE,CAAC;IACvG,CAAC;IAEM,KAAK,CAAC,gBAAgB;QAC3B,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACtD,IAAI,WAAW,CAAC,uBAAuB,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,0BAA0B;;QACrC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACtD,IAAI,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAC;YACzC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAA,WAAW,CAAC,YAAY,mCAAI,gBAAgB,CAAC,CAAC;QACjG,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC/D,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;QACtF,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,CAAC;IAEM,KAAK,CAAC,gCAAgC;;QAC3C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACtD,IAAI,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAC;YACzC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAA,WAAW,CAAC,YAAY,mCAAI,gBAAgB,CAAC,CAAC;QACjG,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC/D,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;QACtF,OAAO,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,CAAC;IAEM,KAAK,CAAC,kCAAkC,CAAC,eAAoE;;QAClH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACtD,IAAI,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAC;YACzC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAA,WAAW,CAAC,YAAY,mCAAI,gBAAgB,CAAC,CAAC;QACjG,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC/D,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;QACtF,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACvF,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,eAAe,CAAC,CAAC;IAEtE,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DomainEvent } from "./domain-event.js";
|
|
2
|
+
export declare class SdkChangesSavedEvent extends DomainEvent {
|
|
3
|
+
protected readonly eventName: string;
|
|
4
|
+
private static readonly message;
|
|
5
|
+
private static readonly commandName;
|
|
6
|
+
private readonly language;
|
|
7
|
+
constructor(language: string);
|
|
8
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DomainEvent } from "./domain-event.js";
|
|
2
|
+
export class SdkChangesSavedEvent extends DomainEvent {
|
|
3
|
+
constructor(language) {
|
|
4
|
+
super(SdkChangesSavedEvent.message, SdkChangesSavedEvent.commandName, {});
|
|
5
|
+
this.eventName = SdkChangesSavedEvent.name;
|
|
6
|
+
this.language = language;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
SdkChangesSavedEvent.message = "Save changes completed.";
|
|
10
|
+
SdkChangesSavedEvent.commandName = "sdk:save-changes";
|
|
11
|
+
//# sourceMappingURL=sdk-changes-saved.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-changes-saved.js","sourceRoot":"","sources":["../../../src/types/events/sdk-changes-saved.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IAMnD,YAAY,QAAgB;QAC1B,KAAK,CAAC,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QANzD,cAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC;QAOvD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;;AAPuB,4BAAO,GAAG,yBAAkC,AAArC,CAAsC;AAC7C,gCAAW,GAAG,kBAA2B,AAA9B,CAA+B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DomainEvent } from "./domain-event.js";
|
|
2
|
+
export declare class SdkChangesTrackedEvent extends DomainEvent {
|
|
3
|
+
protected readonly eventName: string;
|
|
4
|
+
private static readonly message;
|
|
5
|
+
private static readonly commandName;
|
|
6
|
+
private readonly language;
|
|
7
|
+
constructor(language: string);
|
|
8
|
+
}
|