@apimatic/cli 1.1.0-beta.10 → 1.1.0-beta.11
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 +41 -5
- package/lib/actions/portal/generate.js +7 -1
- package/lib/actions/portal/generate.js.map +1 -1
- package/lib/actions/sdk/generate.d.ts +4 -1
- package/lib/actions/sdk/generate.js +54 -39
- 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/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/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/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/file-service.d.ts +5 -0
- package/lib/infrastructure/file-service.js +51 -5
- package/lib/infrastructure/file-service.js.map +1 -1
- package/lib/infrastructure/git-service.d.ts +15 -0
- package/lib/infrastructure/git-service.js +93 -0
- package/lib/infrastructure/git-service.js.map +1 -0
- package/lib/infrastructure/launcher-service.d.ts +2 -0
- package/lib/infrastructure/launcher-service.js +22 -1
- package/lib/infrastructure/launcher-service.js.map +1 -1
- package/lib/infrastructure/service-error.d.ts +13 -2
- package/lib/infrastructure/service-error.js +23 -9
- package/lib/infrastructure/service-error.js.map +1 -1
- package/lib/infrastructure/services/portal-service.d.ts +5 -1
- package/lib/infrastructure/services/portal-service.js +35 -16
- package/lib/infrastructure/services/portal-service.js.map +1 -1
- package/lib/infrastructure/zip-service.js +1 -1
- package/lib/infrastructure/zip-service.js.map +1 -1
- 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/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/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 +10 -0
- package/lib/types/build-context.js +71 -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/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 +62 -0
- package/lib/types/merge-source-tree-context.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 +3 -2
- 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,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;
|
|
@@ -10,4 +12,12 @@ export declare class BuildContext {
|
|
|
10
12
|
getBuildFileContents(): Promise<BuildConfig>;
|
|
11
13
|
updateBuildFileContents(buildJson: BuildConfig): Promise<void>;
|
|
12
14
|
deleteWorkflowDir(): Promise<void>;
|
|
15
|
+
getBuildDirectory(): DirectoryPath;
|
|
16
|
+
getSpecContext(): SpecContext;
|
|
17
|
+
hasSdkSourceTree(language: string): Promise<boolean>;
|
|
18
|
+
getSdkSourceTree(language: string): FilePath;
|
|
19
|
+
isVersionedBuild(): Promise<boolean>;
|
|
20
|
+
getVersionedBuildDirectory(): Promise<DirectoryPath | undefined>;
|
|
21
|
+
getSingleVersionedBuildDirectory(): Promise<DirectoryPath | undefined>;
|
|
22
|
+
getSelectedVersionedBuildDirectory(versionSelector: (versions: string[]) => Promise<string | undefined>): Promise<DirectoryPath | undefined>;
|
|
13
23
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
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";
|
|
4
5
|
export class BuildContext {
|
|
5
6
|
constructor(buildDirectory) {
|
|
6
7
|
this.fileService = new FileService();
|
|
@@ -17,7 +18,7 @@ export class BuildContext {
|
|
|
17
18
|
return await this.fileService.fileExists(this.buildFile);
|
|
18
19
|
}
|
|
19
20
|
async exists() {
|
|
20
|
-
return
|
|
21
|
+
return await this.fileService.directoryExists(this.buildDirectory);
|
|
21
22
|
}
|
|
22
23
|
async getBuildFileContents() {
|
|
23
24
|
const buildFileContent = await this.fileService.getContents(this.buildFile);
|
|
@@ -29,5 +30,74 @@ export class BuildContext {
|
|
|
29
30
|
async deleteWorkflowDir() {
|
|
30
31
|
await this.fileService.deleteDirectory(this.buildDirectory.join(".github"));
|
|
31
32
|
}
|
|
33
|
+
getBuildDirectory() {
|
|
34
|
+
return this.buildDirectory;
|
|
35
|
+
}
|
|
36
|
+
getSpecContext() {
|
|
37
|
+
return new SpecContext(this.buildDirectory.join("spec"));
|
|
38
|
+
}
|
|
39
|
+
async hasSdkSourceTree(language) {
|
|
40
|
+
const sourceTreePath = FilePath.create(this.buildDirectory.join("sdk-source-tree").join(`.${language}`).toString());
|
|
41
|
+
if (!sourceTreePath) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
return await this.fileService.fileExists(sourceTreePath);
|
|
45
|
+
}
|
|
46
|
+
getSdkSourceTree(language) {
|
|
47
|
+
return FilePath.create(this.buildDirectory.join("sdk-source-tree").join(`.${language}`).toString());
|
|
48
|
+
}
|
|
49
|
+
async isVersionedBuild() {
|
|
50
|
+
if (!await this.validate()) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
const buildConfig = await this.getBuildFileContents();
|
|
54
|
+
if (buildConfig.generateVersionedPortal) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
async getVersionedBuildDirectory() {
|
|
60
|
+
var _a;
|
|
61
|
+
const buildConfig = await this.getBuildFileContents();
|
|
62
|
+
if (!buildConfig.generateVersionedPortal) {
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
const versionsDirectory = this.buildDirectory.join((_a = buildConfig.versionsPath) !== null && _a !== void 0 ? _a : 'versioned_docs');
|
|
66
|
+
if (!await this.fileService.directoryExists(versionsDirectory)) {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
const versionsDirs = await this.fileService.getSubDirectoriesPaths(versionsDirectory);
|
|
70
|
+
return versionsDirs.length > 0 ? versionsDirectory : undefined;
|
|
71
|
+
}
|
|
72
|
+
async getSingleVersionedBuildDirectory() {
|
|
73
|
+
var _a;
|
|
74
|
+
const buildConfig = await this.getBuildFileContents();
|
|
75
|
+
if (!buildConfig.generateVersionedPortal) {
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
const versionsDirectory = this.buildDirectory.join((_a = buildConfig.versionsPath) !== null && _a !== void 0 ? _a : 'versioned_docs');
|
|
79
|
+
if (!await this.fileService.directoryExists(versionsDirectory)) {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
const versionsDirs = await this.fileService.getSubDirectoriesPaths(versionsDirectory);
|
|
83
|
+
return versionsDirs.length === 1 ? versionsDirs[0] : undefined;
|
|
84
|
+
}
|
|
85
|
+
async getSelectedVersionedBuildDirectory(versionSelector) {
|
|
86
|
+
var _a;
|
|
87
|
+
const buildConfig = await this.getBuildFileContents();
|
|
88
|
+
if (!buildConfig.generateVersionedPortal) {
|
|
89
|
+
return undefined;
|
|
90
|
+
}
|
|
91
|
+
const versionsDirectory = this.buildDirectory.join((_a = buildConfig.versionsPath) !== null && _a !== void 0 ? _a : 'versioned_docs');
|
|
92
|
+
if (!await this.fileService.directoryExists(versionsDirectory)) {
|
|
93
|
+
return undefined;
|
|
94
|
+
}
|
|
95
|
+
const versionsDirs = await this.fileService.getSubDirectoriesPaths(versionsDirectory);
|
|
96
|
+
const selectedVersion = await versionSelector(versionsDirs.map(dir => dir.leafName()));
|
|
97
|
+
if (!selectedVersion) {
|
|
98
|
+
return undefined;
|
|
99
|
+
}
|
|
100
|
+
return versionsDirs.find(dir => dir.leafName() === selectedVersion);
|
|
101
|
+
}
|
|
32
102
|
}
|
|
33
103
|
//# 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;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,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,iBAAiB;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,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
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DomainEvent } from "./domain-event.js";
|
|
2
|
+
export class SdkChangesTrackedEvent extends DomainEvent {
|
|
3
|
+
constructor(language) {
|
|
4
|
+
super(SdkChangesTrackedEvent.message, SdkChangesTrackedEvent.commandName, {});
|
|
5
|
+
this.eventName = SdkChangesTrackedEvent.name;
|
|
6
|
+
this.language = language;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
SdkChangesTrackedEvent.message = "SDK generated with track changes enabled.";
|
|
10
|
+
SdkChangesTrackedEvent.commandName = "sdk:generate";
|
|
11
|
+
//# sourceMappingURL=sdk-changes-tracked.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-changes-tracked.js","sourceRoot":"","sources":["../../../src/types/events/sdk-changes-tracked.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,sBAAuB,SAAQ,WAAW;IAMrD,YAAY,QAAgB;QAC1B,KAAK,CAAC,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAN7D,cAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC;QAOzD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;;AAPuB,8BAAO,GAAG,2CAAoD,AAAvD,CAAwD;AAC/D,kCAAW,GAAG,cAAuB,AAA1B,CAA2B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DomainEvent } from "./domain-event.js";
|
|
2
|
+
export declare class SdkConflictsResolvedEvent 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 SdkConflictsResolvedEvent extends DomainEvent {
|
|
3
|
+
constructor(language) {
|
|
4
|
+
super(SdkConflictsResolvedEvent.message, SdkConflictsResolvedEvent.commandName, {});
|
|
5
|
+
this.eventName = SdkConflictsResolvedEvent.name;
|
|
6
|
+
this.language = language;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
SdkConflictsResolvedEvent.message = "SDK merge conflicts resolved.";
|
|
10
|
+
SdkConflictsResolvedEvent.commandName = "sdk:generate";
|
|
11
|
+
//# sourceMappingURL=sdk-conflicts-resolved.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-conflicts-resolved.js","sourceRoot":"","sources":["../../../src/types/events/sdk-conflicts-resolved.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,yBAA0B,SAAQ,WAAW;IAMxD,YAAY,QAAgB;QAC1B,KAAK,CAAC,yBAAyB,CAAC,OAAO,EAAE,yBAAyB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QANnE,cAAS,GAAG,yBAAyB,CAAC,IAAI,CAAC;QAO5D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;;AAPuB,iCAAO,GAAG,+BAAwC,AAA3C,CAA4C;AACnD,qCAAW,GAAG,cAAuB,AAA1B,CAA2B"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { DirectoryPath } from "./directoryPath.js";
|
|
2
2
|
import { FileName } from "./fileName.js";
|
|
3
3
|
import { TocGroup } from "../toc/toc.js";
|
|
4
|
+
import { FilePath } from "./filePath.js";
|
|
4
5
|
import { TreeNode } from "../../prompts/format.js";
|
|
5
|
-
export type
|
|
6
|
+
export type FileItem = {
|
|
7
|
+
fileName: FileName;
|
|
8
|
+
description?: string;
|
|
9
|
+
};
|
|
10
|
+
export type DirectoryItem = FileItem | Directory;
|
|
6
11
|
export declare class Directory {
|
|
7
12
|
readonly directoryPath: DirectoryPath;
|
|
8
13
|
readonly items: DirectoryItem[];
|
|
@@ -11,7 +16,11 @@ export declare class Directory {
|
|
|
11
16
|
private static readonly folderDescriptions;
|
|
12
17
|
private static readonly fileDescriptions;
|
|
13
18
|
toTreeNode(): TreeNode;
|
|
19
|
+
mapFilesInDirectory(map: (rootDir: DirectoryPath, fileItem: FileItem) => Promise<FileItem | undefined>): Promise<Directory>;
|
|
20
|
+
isEmpty(): boolean;
|
|
21
|
+
getAllFiles(): FilePath[];
|
|
14
22
|
parseContentFolder(baseContentPath: DirectoryPath): Promise<TocGroup[]>;
|
|
15
23
|
private getPageName;
|
|
16
24
|
private isRootContentDirectory;
|
|
25
|
+
static createFromRelativePaths(rootDir: DirectoryPath, fileItems: FileItem[]): Directory;
|
|
17
26
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FileName } from "./fileName.js";
|
|
1
2
|
import { FilePath } from "./filePath.js";
|
|
2
3
|
import { FileService } from "../../infrastructure/file-service.js";
|
|
3
4
|
export class Directory {
|
|
@@ -13,12 +14,13 @@ export class Directory {
|
|
|
13
14
|
name: folderName,
|
|
14
15
|
description: folderDescription,
|
|
15
16
|
items: this.items.map((item) => {
|
|
17
|
+
var _a;
|
|
16
18
|
if (item instanceof Directory) {
|
|
17
19
|
return item.toTreeNode();
|
|
18
20
|
}
|
|
19
21
|
// file case
|
|
20
|
-
const fileName = item.toString();
|
|
21
|
-
const fileDescription = Directory.fileDescriptions[fileName];
|
|
22
|
+
const fileName = item.fileName.toString();
|
|
23
|
+
const fileDescription = (_a = item.description) !== null && _a !== void 0 ? _a : Directory.fileDescriptions[fileName];
|
|
22
24
|
return {
|
|
23
25
|
name: fileName,
|
|
24
26
|
description: fileDescription
|
|
@@ -26,6 +28,38 @@ export class Directory {
|
|
|
26
28
|
})
|
|
27
29
|
};
|
|
28
30
|
}
|
|
31
|
+
async mapFilesInDirectory(map) {
|
|
32
|
+
const mappedItems = [];
|
|
33
|
+
for (const item of this.items) {
|
|
34
|
+
if (item instanceof Directory) {
|
|
35
|
+
const mappedSubDir = await item.mapFilesInDirectory(map);
|
|
36
|
+
if (!mappedSubDir.isEmpty()) {
|
|
37
|
+
mappedItems.push(mappedSubDir);
|
|
38
|
+
}
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
const mappedItem = await map(this.directoryPath, item);
|
|
42
|
+
if (mappedItem) {
|
|
43
|
+
mappedItems.push(mappedItem);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return new Directory(this.directoryPath, mappedItems);
|
|
47
|
+
}
|
|
48
|
+
isEmpty() {
|
|
49
|
+
return this.items.length === 0;
|
|
50
|
+
}
|
|
51
|
+
getAllFiles() {
|
|
52
|
+
const files = [];
|
|
53
|
+
for (const item of this.items) {
|
|
54
|
+
if (item instanceof Directory) {
|
|
55
|
+
files.push(...item.getAllFiles());
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
files.push(new FilePath(this.directoryPath, item.fileName));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return files;
|
|
62
|
+
}
|
|
29
63
|
async parseContentFolder(baseContentPath) {
|
|
30
64
|
const groups = [];
|
|
31
65
|
const pages = [];
|
|
@@ -41,11 +75,11 @@ export class Directory {
|
|
|
41
75
|
}
|
|
42
76
|
}
|
|
43
77
|
else {
|
|
44
|
-
if (item.
|
|
45
|
-
const currentFilePath = new FilePath(this.directoryPath, item);
|
|
78
|
+
if (item.fileName.toString().endsWith(".md")) {
|
|
79
|
+
const currentFilePath = new FilePath(this.directoryPath, item.fileName);
|
|
46
80
|
const relativeFilePath = this.fileService.getRelativePath(currentFilePath, baseContentPath);
|
|
47
81
|
pages.push({
|
|
48
|
-
page: this.getPageName(item),
|
|
82
|
+
page: this.getPageName(item.fileName),
|
|
49
83
|
file: relativeFilePath
|
|
50
84
|
});
|
|
51
85
|
}
|
|
@@ -73,6 +107,30 @@ export class Directory {
|
|
|
73
107
|
isRootContentDirectory(baseContentPath) {
|
|
74
108
|
return this.directoryPath.toString() === baseContentPath.toString();
|
|
75
109
|
}
|
|
110
|
+
static createFromRelativePaths(rootDir, fileItems) {
|
|
111
|
+
const buildDirectory = (pending) => new Directory(pending.pendingDirPath, pending.items.map((item) => ("pendingDirPath" in item ? buildDirectory(item) : item)));
|
|
112
|
+
const root = { pendingDirPath: rootDir, items: [] };
|
|
113
|
+
for (const file of fileItems) {
|
|
114
|
+
const parts = file.fileName.toString().split(/[\\/]/);
|
|
115
|
+
let currentDir = root;
|
|
116
|
+
for (let i = 0; i < parts.length; i++) {
|
|
117
|
+
const part = parts[i];
|
|
118
|
+
const isLastPart = i === parts.length - 1;
|
|
119
|
+
if (isLastPart) {
|
|
120
|
+
currentDir.items.push({ fileName: new FileName(part), description: file.description });
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
let existingDir = currentDir.items.find((item) => "pendingDirPath" in item && item.pendingDirPath.leafName() === part);
|
|
124
|
+
if (!existingDir) {
|
|
125
|
+
existingDir = { pendingDirPath: currentDir.pendingDirPath.join(part), items: [] };
|
|
126
|
+
currentDir.items.push(existingDir);
|
|
127
|
+
}
|
|
128
|
+
currentDir = existingDir;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return buildDirectory(root);
|
|
133
|
+
}
|
|
76
134
|
}
|
|
77
135
|
Directory.folderDescriptions = {
|
|
78
136
|
spec: "# Contains all API definition files",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directory.js","sourceRoot":"","sources":["../../../src/types/file/directory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"directory.js","sourceRoot":"","sources":["../../../src/types/file/directory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directoryPath.js","sourceRoot":"","sources":["../../../src/types/file/directoryPath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"directoryPath.js","sourceRoot":"","sources":["../../../src/types/file/directoryPath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,OAAO,aAAa;IAGxB,YAAY,aAAqB,EAAE,GAAG,QAAkB;QACtD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,QAAQ,CAAC,CAAC;IAChE,CAAC;IAIM,MAAM,CAAC,WAAW,CAAC,KAAyB;QACjD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,aAAa,CAAC,OAAO,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEM,IAAI,CAAC,GAAG,OAAiB;QAC9B,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IACtE,CAAC;IAEM,OAAO,CAAC,KAAoB;QACjC,OAAO,IAAI,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa,CAAC;IACpD,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;;AAvBa,qBAAO,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Directory } from "./file/directory.js";
|
|
2
|
+
import { DirectoryPath } from "./file/directoryPath.js";
|
|
3
|
+
import { FilePath } from "./file/filePath.js";
|
|
4
|
+
export declare class MergeSourceTreeContext {
|
|
5
|
+
private readonly sdkWithSourceTree;
|
|
6
|
+
private readonly sdkWithoutSourceTree;
|
|
7
|
+
private readonly sourceTreePath;
|
|
8
|
+
private readonly trackChanges;
|
|
9
|
+
private readonly skipChanges;
|
|
10
|
+
private readonly hasSdkSourceTree;
|
|
11
|
+
private readonly fileService;
|
|
12
|
+
private readonly zipService;
|
|
13
|
+
private readonly gitService;
|
|
14
|
+
constructor(sdkWithSourceTree: DirectoryPath, sdkWithoutSourceTree: DirectoryPath, sourceTreePath: FilePath, trackChanges: boolean, skipChanges: boolean, hasSdkSourceTree: boolean);
|
|
15
|
+
saveSkippingChanges(): Promise<{
|
|
16
|
+
hasSkippedChangesEnabled: boolean;
|
|
17
|
+
hasSkippedCustomizations: boolean;
|
|
18
|
+
}>;
|
|
19
|
+
saveWithoutConflicts(): Promise<{
|
|
20
|
+
hasSourceTreeTracked: boolean;
|
|
21
|
+
hasSourceTreeAlreadyTracked: boolean;
|
|
22
|
+
hasAppliedCustomizations: boolean;
|
|
23
|
+
}>;
|
|
24
|
+
saveWithResolvedConflicts(): Promise<void>;
|
|
25
|
+
private saveSourceTree;
|
|
26
|
+
getConflictedFilesDirectory(): Promise<Directory>;
|
|
27
|
+
cleanUp(onCleanUpFailure: () => Promise<void>): Promise<void>;
|
|
28
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { FileService } from "../infrastructure/file-service.js";
|
|
2
|
+
import { GitService } from "../infrastructure/git-service.js";
|
|
3
|
+
import { ZipService } from "../infrastructure/zip-service.js";
|
|
4
|
+
import { FileName } from "./file/fileName.js";
|
|
5
|
+
export class MergeSourceTreeContext {
|
|
6
|
+
constructor(sdkWithSourceTree, sdkWithoutSourceTree, sourceTreePath, trackChanges, skipChanges, hasSdkSourceTree) {
|
|
7
|
+
this.sdkWithSourceTree = sdkWithSourceTree;
|
|
8
|
+
this.sdkWithoutSourceTree = sdkWithoutSourceTree;
|
|
9
|
+
this.sourceTreePath = sourceTreePath;
|
|
10
|
+
this.trackChanges = trackChanges;
|
|
11
|
+
this.skipChanges = skipChanges;
|
|
12
|
+
this.hasSdkSourceTree = hasSdkSourceTree;
|
|
13
|
+
this.fileService = new FileService();
|
|
14
|
+
this.zipService = new ZipService();
|
|
15
|
+
this.gitService = new GitService();
|
|
16
|
+
}
|
|
17
|
+
async saveSkippingChanges() {
|
|
18
|
+
if (!this.skipChanges || !await this.gitService.hasCustomBranch(this.sdkWithSourceTree)) {
|
|
19
|
+
return { hasSkippedChangesEnabled: this.skipChanges, hasSkippedCustomizations: false };
|
|
20
|
+
}
|
|
21
|
+
await Promise.all(this.gitService.getMergeFiles(this.sdkWithSourceTree).map((filePath) => this.fileService.deleteFile(filePath)));
|
|
22
|
+
await this.gitService.forceCheckoutMainBranch(this.sdkWithSourceTree);
|
|
23
|
+
await this.fileService.deleteDirectory(this.sdkWithSourceTree.join(".git"));
|
|
24
|
+
return { hasSkippedChangesEnabled: true, hasSkippedCustomizations: true };
|
|
25
|
+
}
|
|
26
|
+
async saveWithoutConflicts() {
|
|
27
|
+
const mergeFiles = this.gitService.getMergeFiles(this.sdkWithSourceTree);
|
|
28
|
+
if (await this.fileService.fileExists(mergeFiles[0])) {
|
|
29
|
+
for (const filePath of mergeFiles) {
|
|
30
|
+
await this.fileService.deleteFile(filePath);
|
|
31
|
+
}
|
|
32
|
+
return { hasSourceTreeTracked: false, hasSourceTreeAlreadyTracked: false, hasAppliedCustomizations: false };
|
|
33
|
+
}
|
|
34
|
+
if (this.trackChanges || this.hasSdkSourceTree) {
|
|
35
|
+
await this.saveSourceTree();
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
hasSourceTreeTracked: this.trackChanges || this.hasSdkSourceTree,
|
|
39
|
+
hasSourceTreeAlreadyTracked: this.trackChanges && this.hasSdkSourceTree,
|
|
40
|
+
hasAppliedCustomizations: await this.gitService.hasCustomBranch(this.sdkWithSourceTree)
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
async saveWithResolvedConflicts() {
|
|
44
|
+
await this.gitService.commitResolvedConflicts(this.sdkWithSourceTree);
|
|
45
|
+
// Re create the sdkWithoutSourceTree using the updated resolved state of the sdkWithSourceTree
|
|
46
|
+
await this.fileService.cleanDirectory(this.sdkWithoutSourceTree);
|
|
47
|
+
await this.fileService.copyDirectoryExcluding(this.sdkWithSourceTree, this.sdkWithoutSourceTree, [new FileName(".git")]);
|
|
48
|
+
await this.saveSourceTree();
|
|
49
|
+
}
|
|
50
|
+
async saveSourceTree() {
|
|
51
|
+
await this.fileService.ensurePathExists(this.sourceTreePath);
|
|
52
|
+
await this.gitService.forceCheckoutMainBranch(this.sdkWithSourceTree);
|
|
53
|
+
await this.zipService.archive(this.sdkWithSourceTree.join(".git"), this.sourceTreePath);
|
|
54
|
+
}
|
|
55
|
+
async getConflictedFilesDirectory() {
|
|
56
|
+
return await this.gitService.getDirectoryWithUnmergedFiles(this.sdkWithSourceTree);
|
|
57
|
+
}
|
|
58
|
+
async cleanUp(onCleanUpFailure) {
|
|
59
|
+
await this.fileService.pollDeleteDirectory(this.sdkWithSourceTree, onCleanUpFailure);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=merge-source-tree-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-source-tree-context.js","sourceRoot":"","sources":["../../src/types/merge-source-tree-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Directory } from "./file/directory.js";
|
|
2
|
+
import { DirectoryPath } from "./file/directoryPath.js";
|
|
3
|
+
import { FilePath } from "./file/filePath.js";
|
|
4
|
+
import { Language } from "./sdk/generate.js";
|
|
5
|
+
export declare class SaveChangesContext {
|
|
6
|
+
private readonly sourceTreePath;
|
|
7
|
+
private readonly sdkReviewDirectory;
|
|
8
|
+
private readonly fileService;
|
|
9
|
+
private readonly zipService;
|
|
10
|
+
private readonly gitService;
|
|
11
|
+
private readonly sdkInputDirectory;
|
|
12
|
+
constructor(sourceTreePath: FilePath, sdkReviewDirectory: DirectoryPath, sdkInputDirectory: DirectoryPath | undefined, workingDirectory: DirectoryPath, language: Language, version: string | undefined);
|
|
13
|
+
isSdkInputDirectoryMissing(onMissingDirectory: (directory: DirectoryPath) => void): Promise<boolean>;
|
|
14
|
+
getChangesForReviewDirectory(): Promise<Directory>;
|
|
15
|
+
cleanUpSdkReviewDirectory(onCleanUpFailure: () => void): Promise<void>;
|
|
16
|
+
saveSourceTree(): Promise<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { FileService } from "../infrastructure/file-service.js";
|
|
2
|
+
import { GitService } from "../infrastructure/git-service.js";
|
|
3
|
+
import { ZipService } from "../infrastructure/zip-service.js";
|
|
4
|
+
import { FileName } from "./file/fileName.js";
|
|
5
|
+
export class SaveChangesContext {
|
|
6
|
+
constructor(sourceTreePath, sdkReviewDirectory, sdkInputDirectory, workingDirectory, language, version) {
|
|
7
|
+
this.sourceTreePath = sourceTreePath;
|
|
8
|
+
this.sdkReviewDirectory = sdkReviewDirectory;
|
|
9
|
+
this.fileService = new FileService();
|
|
10
|
+
this.zipService = new ZipService();
|
|
11
|
+
this.gitService = new GitService();
|
|
12
|
+
this.sdkInputDirectory = sdkInputDirectory !== null && sdkInputDirectory !== void 0 ? sdkInputDirectory : (version
|
|
13
|
+
? workingDirectory.join("sdk").join(version).join(language)
|
|
14
|
+
: workingDirectory.join("sdk").join(language));
|
|
15
|
+
}
|
|
16
|
+
async isSdkInputDirectoryMissing(onMissingDirectory) {
|
|
17
|
+
if (await this.fileService.directoryEmpty(this.sdkInputDirectory)) {
|
|
18
|
+
onMissingDirectory(this.sdkInputDirectory);
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
async getChangesForReviewDirectory() {
|
|
24
|
+
const sdkGitDir = this.sdkReviewDirectory.join(".git");
|
|
25
|
+
await this.fileService.createDirectoryIfNotExists(sdkGitDir);
|
|
26
|
+
await this.zipService.unArchive(this.sourceTreePath, sdkGitDir);
|
|
27
|
+
await this.gitService.checkoutCustomBranch(this.sdkReviewDirectory);
|
|
28
|
+
await this.fileService.cleanDirectoryExcluding(this.sdkReviewDirectory, [new FileName(".git")]);
|
|
29
|
+
await this.fileService.copyDirectoryExcluding(this.sdkInputDirectory, this.sdkReviewDirectory, [new FileName(".git")]);
|
|
30
|
+
return this.gitService.getDirectoryWithUpdatedFiles(this.sdkReviewDirectory);
|
|
31
|
+
}
|
|
32
|
+
async cleanUpSdkReviewDirectory(onCleanUpFailure) {
|
|
33
|
+
await this.fileService.pollDeleteDirectory(this.sdkReviewDirectory, onCleanUpFailure);
|
|
34
|
+
}
|
|
35
|
+
async saveSourceTree() {
|
|
36
|
+
const sdkGitDir = this.sdkReviewDirectory.join(".git");
|
|
37
|
+
await this.gitService.commitReviewedChanges(this.sdkReviewDirectory);
|
|
38
|
+
await this.gitService.forceCheckoutMainBranch(this.sdkReviewDirectory);
|
|
39
|
+
await this.zipService.archive(sdkGitDir, this.sourceTreePath);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=save-changes-context.js.map
|