@apimatic/cli 1.1.0-beta.17 → 1.1.0-beta.19
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/lib/actions/portal/copilot.d.ts +1 -0
- package/lib/actions/portal/copilot.js +12 -12
- package/lib/actions/portal/copilot.js.map +1 -1
- package/lib/actions/portal/quickstart.d.ts +1 -0
- package/lib/actions/portal/quickstart.js +40 -6
- package/lib/actions/portal/quickstart.js.map +1 -1
- package/lib/actions/portal/serve.d.ts +1 -0
- package/lib/actions/portal/serve.js +78 -7
- package/lib/actions/portal/serve.js.map +1 -1
- package/lib/actions/portal/toc/new-toc.js +1 -2
- package/lib/actions/portal/toc/new-toc.js.map +1 -1
- package/lib/application/portal/recipe/recipe-generator.js +2 -23
- package/lib/application/portal/recipe/recipe-generator.js.map +1 -1
- package/lib/commands/portal/serve.js +3 -3
- package/lib/commands/portal/serve.js.map +1 -1
- package/lib/infrastructure/zip-service.js +20 -17
- package/lib/infrastructure/zip-service.js.map +1 -1
- package/lib/prompts/portal/quickstart.d.ts +4 -0
- package/lib/prompts/portal/quickstart.js +22 -0
- package/lib/prompts/portal/quickstart.js.map +1 -1
- package/lib/prompts/portal/serve.d.ts +4 -0
- package/lib/prompts/portal/serve.js +20 -1
- package/lib/prompts/portal/serve.js.map +1 -1
- package/lib/types/build/build.d.ts +79 -2
- package/lib/types/build/build.js +158 -0
- package/lib/types/build/build.js.map +1 -1
- package/lib/types/build-context.d.ts +1 -1
- package/lib/types/build-context.js +11 -17
- package/lib/types/build-context.js.map +1 -1
- package/lib/types/file/urlPath.d.ts +4 -0
- package/lib/types/file/urlPath.js +9 -0
- package/lib/types/file/urlPath.js.map +1 -1
- package/package.json +6 -3
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DirectoryPath } from "../../types/file/directoryPath.js";
|
|
2
2
|
import { ActionResult } from "../action-result.js";
|
|
3
3
|
import { CommandMetadata } from "../../types/common/command-metadata.js";
|
|
4
|
+
export declare const DEFAULT_COPILOT_WELCOME_MESSAGE: string;
|
|
4
5
|
export declare class CopilotAction {
|
|
5
6
|
private readonly apiService;
|
|
6
7
|
private readonly fileService;
|
|
@@ -8,6 +8,12 @@ import { FileName } from "../../types/file/fileName.js";
|
|
|
8
8
|
import { FileService } from "../../infrastructure/file-service.js";
|
|
9
9
|
import { LauncherService } from "../../infrastructure/launcher-service.js";
|
|
10
10
|
import { err, ok } from "neverthrow";
|
|
11
|
+
export const DEFAULT_COPILOT_WELCOME_MESSAGE = "Hi there! I'm your API Integration Assistant, here to help you learn and integrate with this API.\n" +
|
|
12
|
+
"\n" +
|
|
13
|
+
"Ask me anything about this API or try one of these example prompts:\n" +
|
|
14
|
+
"\n" +
|
|
15
|
+
"- `What authentication methods does this API support?`\n" +
|
|
16
|
+
"- `What endpoints are available in this API?`\n";
|
|
11
17
|
export class CopilotAction {
|
|
12
18
|
constructor(configDir, commandMetadata, authKey = null) {
|
|
13
19
|
this.apiService = new ApiService();
|
|
@@ -20,8 +26,8 @@ export class CopilotAction {
|
|
|
20
26
|
this.prompts.srcDirectoryEmpty(buildDirectory);
|
|
21
27
|
return ActionResult.failed();
|
|
22
28
|
}
|
|
23
|
-
const
|
|
24
|
-
if (!force &&
|
|
29
|
+
const buildConfig = await buildContext.getBuildFileContents();
|
|
30
|
+
if (!force && buildConfig.hasApiCopilot() && !(await this.prompts.confirmOverwrite())) {
|
|
25
31
|
this.prompts.cancelled();
|
|
26
32
|
return ActionResult.cancelled();
|
|
27
33
|
}
|
|
@@ -37,12 +43,12 @@ export class CopilotAction {
|
|
|
37
43
|
return ActionResult.failed();
|
|
38
44
|
}
|
|
39
45
|
const welcomeMessage = await this.prepareWelcomeMessage();
|
|
40
|
-
|
|
46
|
+
const updatedBuildConfig = buildConfig.withApiCopilotConfig({
|
|
41
47
|
isEnabled: enable,
|
|
42
48
|
key: apiCopilotKeyResult.value,
|
|
43
49
|
welcomeMessage: welcomeMessage
|
|
44
|
-
};
|
|
45
|
-
await buildContext.updateBuildFileContents(
|
|
50
|
+
});
|
|
51
|
+
await buildContext.updateBuildFileContents(updatedBuildConfig);
|
|
46
52
|
this.prompts.copilotConfigured(enable, apiCopilotKeyResult.value);
|
|
47
53
|
return ActionResult.success();
|
|
48
54
|
};
|
|
@@ -72,13 +78,7 @@ export class CopilotAction {
|
|
|
72
78
|
async prepareWelcomeMessage() {
|
|
73
79
|
return await withDirPath(async (tempDir) => {
|
|
74
80
|
const tempFile = new FilePath(tempDir, new FileName("welcome-message.md"));
|
|
75
|
-
|
|
76
|
-
"\n" +
|
|
77
|
-
"Ask me anything about this API or try one of these example prompts:\n" +
|
|
78
|
-
"\n" +
|
|
79
|
-
"- `What authentication methods does this API support?`\n" +
|
|
80
|
-
"- `[Enter another prompt here]`";
|
|
81
|
-
await this.fileService.writeContents(tempFile, defaultContent);
|
|
81
|
+
await this.fileService.writeContents(tempFile, DEFAULT_COPILOT_WELCOME_MESSAGE);
|
|
82
82
|
this.prompts.openWelcomeMessageEditor();
|
|
83
83
|
await this.launcherService.openInEditor(tempFile);
|
|
84
84
|
const welcomeMessage = await this.fileService.getContents(tempFile);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../../src/actions/portal/copilot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,EAAE,GAAG,EAAE,EAAE,EAAU,MAAM,YAAY,CAAC;AAK7C,MAAM,OAAO,aAAa;IASxB,YAAY,SAAwB,EAAE,eAAgC,EAAE,UAAyB,IAAI;QARpF,eAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,gBAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,oBAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QACxC,YAAO,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAWtC,YAAO,GAAG,KAAK,EAC7B,cAA6B,EAC7B,KAAc,EACd,MAAe,EACQ,EAAE;YACzB,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,cAAc,CAAC,CAAC;YAEtD,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;gBAC/C,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,
|
|
1
|
+
{"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../../src/actions/portal/copilot.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export declare class PortalQuickstartAction {
|
|
|
8
8
|
private readonly configDir;
|
|
9
9
|
private readonly commandMetadata;
|
|
10
10
|
private readonly fileDownloadService;
|
|
11
|
+
private readonly apiService;
|
|
11
12
|
private readonly buildFileUrl;
|
|
12
13
|
private readonly defaultSpecUrl;
|
|
13
14
|
private readonly repositoryFolderName;
|
|
@@ -11,17 +11,20 @@ import { ValidateAction } from '../api/validate.js';
|
|
|
11
11
|
import { BuildContext } from '../../types/build-context.js';
|
|
12
12
|
import { TempContext } from '../../types/temp-context.js';
|
|
13
13
|
import { FileDownloadService } from '../../infrastructure/services/file-download-service.js';
|
|
14
|
-
import { getLanguagesConfig } from '../../types/build/build.js';
|
|
15
14
|
import { SpecContext } from '../../types/spec-context.js';
|
|
16
15
|
import { ValidationService } from '../../infrastructure/services/validation-service.js';
|
|
17
16
|
import { FileName } from '../../types/file/fileName.js';
|
|
18
|
-
|
|
17
|
+
import { ApiService } from '../../infrastructure/services/api-service.js';
|
|
18
|
+
import { DEFAULT_COPILOT_WELCOME_MESSAGE } from './copilot.js';
|
|
19
|
+
const defaultPort = 23513;
|
|
20
|
+
const defaultBaseUrl = new UrlPath(`http://localhost:${defaultPort}`);
|
|
19
21
|
export class PortalQuickstartAction {
|
|
20
22
|
constructor(configDir, commandMetadata) {
|
|
21
23
|
this.prompts = new PortalQuickstartPrompts();
|
|
22
24
|
this.zipService = new ZipService();
|
|
23
25
|
this.fileService = new FileService();
|
|
24
26
|
this.fileDownloadService = new FileDownloadService();
|
|
27
|
+
this.apiService = new ApiService();
|
|
25
28
|
this.buildFileUrl = new UrlPath(`https://github.com/apimatic/sample-docs-as-code-portal/archive/refs/heads/master.zip`);
|
|
26
29
|
this.defaultSpecUrl = new UrlPath(`https://raw.githubusercontent.com/apimatic/sample-docs-as-code-portal/refs/heads/master/src/spec/openapi.json`);
|
|
27
30
|
this.repositoryFolderName = 'sample-docs-as-code-portal-master/src';
|
|
@@ -34,7 +37,7 @@ export class PortalQuickstartAction {
|
|
|
34
37
|
}
|
|
35
38
|
}
|
|
36
39
|
return await withDirPath(async (tempDirectory) => {
|
|
37
|
-
var _a;
|
|
40
|
+
var _a, _b;
|
|
38
41
|
// Step 1/4
|
|
39
42
|
this.prompts.importSpecStep();
|
|
40
43
|
let specPath;
|
|
@@ -129,6 +132,30 @@ export class PortalQuickstartAction {
|
|
|
129
132
|
}
|
|
130
133
|
break;
|
|
131
134
|
}
|
|
135
|
+
// Resolve the API Copilot key to enable, if any, before setting up the source
|
|
136
|
+
// directory so the user decides on Copilot up front. The lookup failing is fatal;
|
|
137
|
+
// an account with no key continues silently (no Copilot); cancelling the multi-key
|
|
138
|
+
// selection aborts quickstart.
|
|
139
|
+
const accountInfo = await this.apiService.getAccountInfo(this.configDir, this.commandMetadata.shell, null);
|
|
140
|
+
if (accountInfo.isErr()) {
|
|
141
|
+
this.prompts.accountInfoFetchFailed(accountInfo.error);
|
|
142
|
+
return ActionResult.failed();
|
|
143
|
+
}
|
|
144
|
+
let copilotKey;
|
|
145
|
+
const copilotKeys = (_b = accountInfo.value.ApiCopilotKeys) !== null && _b !== void 0 ? _b : [];
|
|
146
|
+
if (copilotKeys.length === 1) {
|
|
147
|
+
copilotKey = copilotKeys[0];
|
|
148
|
+
}
|
|
149
|
+
else if (copilotKeys.length > 1) {
|
|
150
|
+
copilotKey = await this.prompts.selectCopilotKey(copilotKeys);
|
|
151
|
+
if (!copilotKey) {
|
|
152
|
+
this.prompts.noCopilotKeySelected();
|
|
153
|
+
return ActionResult.cancelled();
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
if (copilotKey) {
|
|
157
|
+
this.prompts.copilotEnabled(copilotKey);
|
|
158
|
+
}
|
|
132
159
|
const masterBuildFile = await this.prompts.downloadBuildDirectory(this.fileDownloadService.downloadFile(this.buildFileUrl));
|
|
133
160
|
if (masterBuildFile.isErr()) {
|
|
134
161
|
this.prompts.serviceError(masterBuildFile.error);
|
|
@@ -138,13 +165,20 @@ export class PortalQuickstartAction {
|
|
|
138
165
|
const masterBuildFilePath = await tempContext.save(masterBuildFile.value.stream);
|
|
139
166
|
await this.zipService.unArchive(masterBuildFilePath, tempDirectory);
|
|
140
167
|
const extractedFolder = tempDirectory.join(this.repositoryFolderName);
|
|
168
|
+
// Clean up the workflow dir from the template before copying
|
|
141
169
|
const tempBuildContext = new BuildContext(extractedFolder);
|
|
142
170
|
await tempBuildContext.deleteWorkflowDir();
|
|
143
|
-
|
|
144
|
-
buildFile.generatePortal.languageConfig = getLanguagesConfig(languages);
|
|
145
|
-
await tempBuildContext.updateBuildFileContents(buildFile);
|
|
171
|
+
// Copy the template into the final destination
|
|
146
172
|
const sourceDirectory = inputDirectory.join('src');
|
|
147
173
|
await this.fileService.copyDirectoryContents(extractedFolder, sourceDirectory);
|
|
174
|
+
// Update the build file in its final location via BuildContext,
|
|
175
|
+
// mirroring exactly how CopilotAction reads and writes the build file
|
|
176
|
+
const buildContext = new BuildContext(sourceDirectory);
|
|
177
|
+
const baseConfig = (await buildContext.getBuildFileContents()).withPortalLanguages(languages);
|
|
178
|
+
const buildConfig = copilotKey
|
|
179
|
+
? baseConfig.withApiCopilotForPortal(copilotKey, DEFAULT_COPILOT_WELCOME_MESSAGE, defaultBaseUrl)
|
|
180
|
+
: baseConfig;
|
|
181
|
+
await buildContext.updateBuildFileContents(buildConfig);
|
|
148
182
|
const specDirectory = sourceDirectory.join('spec');
|
|
149
183
|
const specContext = new SpecContext(specDirectory);
|
|
150
184
|
await specContext.replaceDefaultSpec(specPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../../src/actions/portal/quickstart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wDAAwD,CAAC;
|
|
1
|
+
{"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../../src/actions/portal/quickstart.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,5 +11,6 @@ export declare class PortalServeAction {
|
|
|
11
11
|
private readonly authKey;
|
|
12
12
|
constructor(configDir: DirectoryPath, commandMetadata: CommandMetadata, authKey?: string | null);
|
|
13
13
|
execute(buildDirectory: DirectoryPath, portalDirectory: DirectoryPath, port: number, openInBrowser: boolean, hotReload: boolean, onAfterServe?: () => void): Promise<ActionResult>;
|
|
14
|
+
private waitForServerListening;
|
|
14
15
|
private clearStandardInput;
|
|
15
16
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { err, ok } from "neverthrow";
|
|
1
2
|
import { createServer as createLiveReloadServer } from "livereload";
|
|
2
3
|
import connectLiveReload from "connect-livereload";
|
|
3
4
|
import express from "express";
|
|
@@ -9,6 +10,7 @@ import { NetworkService } from "../../infrastructure/network-service.js";
|
|
|
9
10
|
import { UrlPath } from "../../types/file/urlPath.js";
|
|
10
11
|
import { LauncherService } from "../../infrastructure/launcher-service.js";
|
|
11
12
|
import { DebounceService } from "../../infrastructure/debounce-service.js";
|
|
13
|
+
import { BuildContext } from "../../types/build-context.js";
|
|
12
14
|
export class PortalServeAction {
|
|
13
15
|
constructor(configDir, commandMetadata, authKey = null) {
|
|
14
16
|
this.prompts = new PortalServePrompts();
|
|
@@ -20,25 +22,61 @@ export class PortalServeAction {
|
|
|
20
22
|
this.authKey = authKey;
|
|
21
23
|
}
|
|
22
24
|
async execute(buildDirectory, portalDirectory, port, openInBrowser, hotReload, onAfterServe) {
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
const buildContext = new BuildContext(buildDirectory);
|
|
26
|
+
if (!(await buildContext.exists())) {
|
|
27
|
+
this.prompts.noPortalSource(buildDirectory);
|
|
28
|
+
return ActionResult.failed();
|
|
29
|
+
}
|
|
30
|
+
let buildConfig;
|
|
31
|
+
try {
|
|
32
|
+
buildConfig = await buildContext.getBuildFileContents();
|
|
33
|
+
}
|
|
34
|
+
catch (_a) {
|
|
35
|
+
this.prompts.invalidBuildConfig(buildDirectory);
|
|
26
36
|
return ActionResult.failed();
|
|
27
37
|
}
|
|
28
38
|
const servePort = await this.networkService.getServerPort([port, 3000, 3001, 3002]);
|
|
29
|
-
if (servePort != port
|
|
39
|
+
if (servePort != port) {
|
|
30
40
|
this.prompts.usingFallbackPort(port, servePort);
|
|
31
41
|
}
|
|
42
|
+
const serveUrl = new UrlPath(`http://localhost:${servePort}`);
|
|
43
|
+
// Update the configured localhost base URL to the actual serve URL BEFORE
|
|
44
|
+
// generation bakes it into the portal artifacts; otherwise the portal would load
|
|
45
|
+
// its content from the wrong port and fail to render.
|
|
46
|
+
const updatedBuildConfig = buildConfig.updateBuildConfigBaseUrl(serveUrl);
|
|
47
|
+
if (updatedBuildConfig !== buildConfig) {
|
|
48
|
+
await buildContext.updateBuildFileContents(updatedBuildConfig);
|
|
49
|
+
this.prompts.baseUrlPortUpdated(serveUrl);
|
|
50
|
+
}
|
|
51
|
+
const generatePortalAction = new GenerateAction(this.configDir, this.commandMetadata, this.authKey);
|
|
52
|
+
const result = await generatePortalAction.execute(buildDirectory, portalDirectory, true, false);
|
|
53
|
+
if (result.isFailed()) {
|
|
54
|
+
return ActionResult.failed();
|
|
55
|
+
}
|
|
32
56
|
const liveReloadPort = await this.networkService.getServerPort([35729, 35730, 35731, 35732]);
|
|
33
57
|
const liveReloadServer = createLiveReloadServer({ port: liveReloadPort });
|
|
58
|
+
// livereload attaches its "error" handler to the inner WebSocket server, not to the
|
|
59
|
+
// HTTP server it binds the port on, so a failed bind (e.g. the port was taken in the
|
|
60
|
+
// gap since getServerPort) emits an unhandled "error" that would crash the process.
|
|
61
|
+
// Guard the HTTP server the same way as the main server below.
|
|
62
|
+
const liveReloadHttpServer = liveReloadServer.config.server;
|
|
63
|
+
if ((await this.waitForServerListening(liveReloadHttpServer)).isErr()) {
|
|
64
|
+
liveReloadServer.close();
|
|
65
|
+
this.prompts.serverStartFailed(liveReloadPort);
|
|
66
|
+
return ActionResult.failed();
|
|
67
|
+
}
|
|
34
68
|
const server = this.application
|
|
35
69
|
.use(connectLiveReload())
|
|
36
70
|
.use(express.static(portalDirectory.toString(), { extensions: ["html"] }))
|
|
37
71
|
.listen(servePort);
|
|
38
|
-
|
|
39
|
-
|
|
72
|
+
if ((await this.waitForServerListening(server)).isErr()) {
|
|
73
|
+
liveReloadServer.close();
|
|
74
|
+
this.prompts.serverStartFailed(servePort);
|
|
75
|
+
return ActionResult.failed();
|
|
76
|
+
}
|
|
77
|
+
this.prompts.portalServed(serveUrl);
|
|
40
78
|
if (openInBrowser) {
|
|
41
|
-
await this.launcherService.openUrlInBrowser(
|
|
79
|
+
await this.launcherService.openUrlInBrowser(serveUrl);
|
|
42
80
|
}
|
|
43
81
|
this.prompts.promptForExit();
|
|
44
82
|
if (!hotReload) {
|
|
@@ -76,6 +114,23 @@ export class PortalServeAction {
|
|
|
76
114
|
}
|
|
77
115
|
await debounceService.batchSingleRequest(async () => {
|
|
78
116
|
this.prompts.changesDetected();
|
|
117
|
+
// Re-reconcile on every hot-reload cycle: portalSettings.baseUrl takes
|
|
118
|
+
// precedence over generatePortal.baseUrl and may have been added or changed
|
|
119
|
+
// since serve started. If a mismatch is found the file is rewritten, which
|
|
120
|
+
// triggers a second watcher event — the debounce queues it, and the second
|
|
121
|
+
// cycle sees no mismatch and generates cleanly.
|
|
122
|
+
try {
|
|
123
|
+
const latestConfig = await buildContext.getBuildFileContents();
|
|
124
|
+
const reconciledConfig = latestConfig.updateBuildConfigBaseUrl(serveUrl);
|
|
125
|
+
if (reconciledConfig !== latestConfig) {
|
|
126
|
+
await buildContext.updateBuildFileContents(reconciledConfig);
|
|
127
|
+
this.prompts.baseUrlPortUpdated(serveUrl);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
catch (_a) {
|
|
131
|
+
// Build file temporarily unreadable (e.g. mid-save); skip reconciliation
|
|
132
|
+
// this cycle. GenerateAction will surface the error if the file is broken.
|
|
133
|
+
}
|
|
79
134
|
await generatePortalAction.execute(buildDirectory, portalDirectory, true, false, false);
|
|
80
135
|
liveReloadServer.refresh(portalDirectory.toString());
|
|
81
136
|
this.clearStandardInput();
|
|
@@ -93,6 +148,22 @@ export class PortalServeAction {
|
|
|
93
148
|
server.close();
|
|
94
149
|
return ActionResult.success();
|
|
95
150
|
}
|
|
151
|
+
// Resolves ok once the server is bound, or err with the bind error (e.g. EADDRINUSE)
|
|
152
|
+
// so a failed listen is reported cleanly instead of crashing via an unhandled "error".
|
|
153
|
+
waitForServerListening(server) {
|
|
154
|
+
return new Promise((resolve) => {
|
|
155
|
+
const onListening = () => {
|
|
156
|
+
server.removeListener("error", onError);
|
|
157
|
+
resolve(ok(undefined));
|
|
158
|
+
};
|
|
159
|
+
const onError = (error) => {
|
|
160
|
+
server.removeListener("listening", onListening);
|
|
161
|
+
resolve(err(error));
|
|
162
|
+
};
|
|
163
|
+
server.once("listening", onListening);
|
|
164
|
+
server.once("error", onError);
|
|
165
|
+
});
|
|
166
|
+
}
|
|
96
167
|
// This clears the standard input to allow interrupts like CTRL+C to work properly.
|
|
97
168
|
clearStandardInput() {
|
|
98
169
|
if (process.platform !== "darwin" && process.stdin.isTTY) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/actions/portal/serve.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/actions/portal/serve.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,7 +31,6 @@ export class PortalNewTocAction {
|
|
|
31
31
|
this.portalService = new PortalService();
|
|
32
32
|
}
|
|
33
33
|
async execute(buildDirectory, tocDirectory, force = false, expandEndpoints = false, expandModels = false, expandWebhooks = false, expandCallbacks = false) {
|
|
34
|
-
var _a, _b;
|
|
35
34
|
// Validate build directory
|
|
36
35
|
const buildContext = new BuildContext(buildDirectory);
|
|
37
36
|
if (!(await buildContext.validate())) {
|
|
@@ -39,7 +38,7 @@ export class PortalNewTocAction {
|
|
|
39
38
|
return ActionResult.failed();
|
|
40
39
|
}
|
|
41
40
|
const buildConfig = await buildContext.getBuildFileContents();
|
|
42
|
-
const contentDirectory = buildDirectory.join(
|
|
41
|
+
const contentDirectory = buildDirectory.join(buildConfig.contentFolder());
|
|
43
42
|
const tocDir = tocDirectory !== null && tocDirectory !== void 0 ? tocDirectory : contentDirectory;
|
|
44
43
|
const tocContext = new TocContext(tocDir);
|
|
45
44
|
if (!force && (await tocContext.exists()) && !(await this.prompts.overwriteToc(tocContext.tocPath))) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new-toc.js","sourceRoot":"","sources":["../../../../src/actions/portal/toc/new-toc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4DAA4D,CAAC;AAInG,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EACL,aAAa,EACd,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oDAAoD,CAAC;AAEnF,MAAM,OAAO,cAAc;IAGzB,YAA6B,gBAA+B;QAA/B,qBAAgB,GAAhB,gBAAgB,CAAe;QAF3C,gBAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAEc,CAAC;IAEzD,KAAK,CAAC,MAAM;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACjE,CAAC;IAEM,KAAK,CAAC,oBAAoB;QAC/B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7E,OAAO,MAAM,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACnE,CAAC;CACF;AAED,MAAM,OAAO,kBAAkB;IAM7B,YAA6B,eAA8B,EAAmB,eAAgC;QAAjF,oBAAe,GAAf,eAAe,CAAe;QAAmB,oBAAe,GAAf,eAAe,CAAiB;QAL7F,YAAO,GAAwB,IAAI,mBAAmB,EAAE,CAAC;QACzD,iBAAY,GAA0B,IAAI,qBAAqB,EAAE,CAAC;QAClE,gBAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,kBAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAE4D,CAAC;IAE3G,KAAK,CAAC,OAAO,CAClB,cAA6B,EAC7B,YAA4B,EAC5B,QAAiB,KAAK,EACtB,kBAA2B,KAAK,EAChC,eAAwB,KAAK,EAC7B,iBAA0B,KAAK,EAC/B,kBAA2B,KAAK
|
|
1
|
+
{"version":3,"file":"new-toc.js","sourceRoot":"","sources":["../../../../src/actions/portal/toc/new-toc.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,29 +44,8 @@ export class PortalRecipeGenerator {
|
|
|
44
44
|
}
|
|
45
45
|
async registerRecipeInBuildConfigFile(buildContext, recipeName, recipeScriptFileName) {
|
|
46
46
|
const buildConfig = await buildContext.getBuildFileContents();
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
const recipesConfig = buildConfig.recipes;
|
|
51
|
-
if (!recipesConfig.workflows) {
|
|
52
|
-
recipesConfig.workflows = [];
|
|
53
|
-
}
|
|
54
|
-
const existingIndex = recipesConfig.workflows.findIndex((workflow) => workflow.permalink === `page:recipes/${this.toPascalCase(recipeName)}`);
|
|
55
|
-
const newWorkflow = {
|
|
56
|
-
name: recipeName,
|
|
57
|
-
permalink: `page:recipes/${this.toPascalCase(recipeName)}`,
|
|
58
|
-
functionName: this.toPascalCase(recipeName),
|
|
59
|
-
scriptPath: `./static/scripts/recipes/${recipeScriptFileName}`
|
|
60
|
-
};
|
|
61
|
-
if (existingIndex !== -1) {
|
|
62
|
-
// Replace the existing workflow
|
|
63
|
-
recipesConfig.workflows[existingIndex] = newWorkflow;
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
// Add as new workflow
|
|
67
|
-
recipesConfig.workflows.push(newWorkflow);
|
|
68
|
-
}
|
|
69
|
-
await buildContext.updateBuildFileContents(buildConfig);
|
|
47
|
+
const updatedBuildConfig = buildConfig.withRecipeWorkflow(recipeName, this.toPascalCase(recipeName), `./static/scripts/recipes/${recipeScriptFileName}`);
|
|
48
|
+
await buildContext.updateBuildFileContents(updatedBuildConfig);
|
|
70
49
|
}
|
|
71
50
|
async createMarkdownFile(recipeMarkdownFileName, contentFolder) {
|
|
72
51
|
const directory = contentFolder.join("recipes");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipe-generator.js","sourceRoot":"","sources":["../../../../src/application/portal/recipe/recipe-generator.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAGjC,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAEtE,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAI3D,MAAM,OAAO,qBAAqB;IAAlC;QACE,2DAA2D;QAC1C,gBAAW,GAAgB,IAAI,WAAW,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"recipe-generator.js","sourceRoot":"","sources":["../../../../src/application/portal/recipe/recipe-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,8 +29,8 @@ PortalServe.description = "Requires an input directory with API specifications,
|
|
|
29
29
|
PortalServe.flags = Object.assign(Object.assign(Object.assign(Object.assign({ port: Flags.integer({
|
|
30
30
|
char: "p",
|
|
31
31
|
description: "port to serve the portal.",
|
|
32
|
-
default:
|
|
33
|
-
helpValue: "
|
|
32
|
+
default: 23513,
|
|
33
|
+
helpValue: "23513"
|
|
34
34
|
}) }, FlagsProvider.input), FlagsProvider.destination("portal", "portal")), { open: Flags.boolean({
|
|
35
35
|
char: "o",
|
|
36
36
|
description: "open the portal in the default browser.",
|
|
@@ -45,7 +45,7 @@ PortalServe.examples = [
|
|
|
45
45
|
`${_a.cmdTxt} ` +
|
|
46
46
|
`${format.flag("input", './')} ` +
|
|
47
47
|
`${format.flag("destination", './portal')} ` +
|
|
48
|
-
`${format.flag("port", "
|
|
48
|
+
`${format.flag("port", "23513")} ` +
|
|
49
49
|
`${format.flag("open")} ` +
|
|
50
50
|
`${format.flag("no-reload")}`
|
|
51
51
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/commands/portal/serve.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAqB,WAAY,SAAQ,OAAO;IAsCvC,KAAK,CAAC,GAAG;QACd,MAAM,EACJ,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,EACtF,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAW,CAAC,CAAC;QAElC,MAAM,gBAAgB,GAAG,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1D,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9F,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvG,MAAM,eAAe,GAAoB;YACvC,WAAW,EAAE,EAAW,CAAC,EAAE;YAC3B,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;SACzB,CAAC;QAEF,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,cAAc,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;QACvG,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAEO,YAAY;QAClB,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;;;AA1DM,mBAAO,GAAG,iEAAiE,AAApE,CAAqE;AAE5E,uBAAW,GAChB,kLAAkL,AADlK,CACmK;AAE9K,iBAAK,6DACV,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;QAClB,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,2BAA2B;QACxC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/commands/portal/serve.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
import yazl from 'yazl';
|
|
3
|
-
import
|
|
3
|
+
import AdmZip from 'adm-zip';
|
|
4
4
|
export class ZipService {
|
|
5
5
|
async archive(sourceDir, outputZipPath) {
|
|
6
6
|
return new Promise((resolve, reject) => {
|
|
@@ -34,24 +34,27 @@ export class ZipService {
|
|
|
34
34
|
async unArchive(sourceFile, destinationDirectory) {
|
|
35
35
|
const MAX_FILES = 100000;
|
|
36
36
|
const MAX_SIZE = 1000000000; // 1 GB
|
|
37
|
-
|
|
37
|
+
// adm-zip extracts synchronously, with no per-entry read streams. This
|
|
38
|
+
// avoids a hang on Node 22+ where yauzl/fd-slicer (used by extract-zip)
|
|
39
|
+
// builds STORED-entry read streams that deliver every byte but never emit
|
|
40
|
+
// `end`, leaving the extraction promise pending forever — even though all
|
|
41
|
+
// files have already been written to disk — which crashes the CLI with
|
|
42
|
+
// "unsettled top-level await" / exit code 13.
|
|
43
|
+
const zip = new AdmZip(sourceFile.toString());
|
|
44
|
+
const entries = zip.getEntries();
|
|
45
|
+
if (entries.length > MAX_FILES) {
|
|
46
|
+
throw new Error('Reached max. file count');
|
|
47
|
+
}
|
|
48
|
+
// header.size is the uncompressed size declared in the zip headers, so it
|
|
49
|
+
// might not be trustworthy — kept as a cheap guard against zip bombs.
|
|
38
50
|
let totalSize = 0;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
if (fileCount > MAX_FILES) {
|
|
44
|
-
throw new Error('Reached max. file count');
|
|
45
|
-
}
|
|
46
|
-
// The uncompressedSize comes from the zip headers, so it might not be trustworthy.
|
|
47
|
-
// Alternatively, calculate the size from the readStream.
|
|
48
|
-
let entrySize = entry.uncompressedSize;
|
|
49
|
-
totalSize += entrySize;
|
|
50
|
-
if (totalSize > MAX_SIZE) {
|
|
51
|
-
throw new Error('Reached max. size');
|
|
52
|
-
}
|
|
51
|
+
for (const entry of entries) {
|
|
52
|
+
totalSize += entry.header.size;
|
|
53
|
+
if (totalSize > MAX_SIZE) {
|
|
54
|
+
throw new Error('Reached max. size');
|
|
53
55
|
}
|
|
54
|
-
}
|
|
56
|
+
}
|
|
57
|
+
zip.extractAllTo(destinationDirectory.toString(), /* overwrite */ true);
|
|
55
58
|
}
|
|
56
59
|
}
|
|
57
60
|
//# sourceMappingURL=zip-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zip-service.js","sourceRoot":"","sources":["../../src/infrastructure/zip-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"zip-service.js","sourceRoot":"","sources":["../../src/infrastructure/zip-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,SAAS,CAAC;AAI7B,MAAM,OAAO,UAAU;IACd,KAAK,CAAC,OAAO,CAAC,SAAwB,EAAE,aAAuB;QACpE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAEnC,MAAM,YAAY,GAAG,CAAC,GAAkB,EAAE,cAAsB,EAAE,EAAE;gBAClE,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;oBAC5E,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACtC,sEAAsE;oBACtE,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;oBACrF,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;wBACxB,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;oBACvC,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;oBACrD,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;YAEF,IAAI,CAAC;gBACH,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;YAED,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC9D,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC5B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,UAAoB,EAAE,oBAAmC;QAC9E,MAAM,SAAS,GAAG,MAAO,CAAC;QAC1B,MAAM,QAAQ,GAAG,UAAa,CAAC,CAAC,OAAO;QAEvC,uEAAuE;QACvE,wEAAwE;QACxE,0EAA0E;QAC1E,0EAA0E;QAC1E,uEAAuE;QACvE,8CAA8C;QAC9C,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QAEjC,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QACD,0EAA0E;QAC1E,sEAAsE;QACtE,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;YAC/B,IAAI,SAAS,GAAG,QAAQ,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,GAAG,CAAC,YAAY,CAAC,oBAAoB,CAAC,QAAQ,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;CACF"}
|
|
@@ -28,6 +28,10 @@ export declare class PortalQuickstartPrompts {
|
|
|
28
28
|
downloadSpecFile(fn: Promise<Result<FileDownloadResponse, ServiceError>>): Promise<Result<FileDownloadResponse, ServiceError>>;
|
|
29
29
|
nextSteps(): void;
|
|
30
30
|
serviceError(serviceError: ServiceError): void;
|
|
31
|
+
selectCopilotKey(keys: string[]): Promise<string | undefined>;
|
|
32
|
+
noCopilotKeySelected(): void;
|
|
33
|
+
accountInfoFetchFailed(serviceError: ServiceError): void;
|
|
34
|
+
copilotEnabled(key: string): void;
|
|
31
35
|
printDirectoryStructure(inputDirectory: DirectoryPath, directory: Directory): void;
|
|
32
36
|
specValidationFailed(): void;
|
|
33
37
|
}
|
|
@@ -157,6 +157,28 @@ ${f.link(referenceDocumentationUrl)}`;
|
|
|
157
157
|
serviceError(serviceError) {
|
|
158
158
|
log.error(serviceError.errorMessage);
|
|
159
159
|
}
|
|
160
|
+
async selectCopilotKey(keys) {
|
|
161
|
+
const selectedKey = await select({
|
|
162
|
+
message: "Select an API Copilot key for this portal:",
|
|
163
|
+
maxItems: 10,
|
|
164
|
+
options: keys.map((key) => ({ value: key, label: key }))
|
|
165
|
+
});
|
|
166
|
+
if (isCancel(selectedKey)) {
|
|
167
|
+
return undefined;
|
|
168
|
+
}
|
|
169
|
+
return selectedKey;
|
|
170
|
+
}
|
|
171
|
+
noCopilotKeySelected() {
|
|
172
|
+
log.error("No API Copilot key was selected.");
|
|
173
|
+
}
|
|
174
|
+
accountInfoFetchFailed(serviceError) {
|
|
175
|
+
log.error(`Failed to fetch your account information. ${serviceError.errorMessage}`);
|
|
176
|
+
}
|
|
177
|
+
copilotEnabled(key) {
|
|
178
|
+
const message = `API Copilot is enabled with key ${f.var(key)}. ` +
|
|
179
|
+
`Any existing AI context associated with this key will be overwritten when the portal is generated.`;
|
|
180
|
+
log.warn(message);
|
|
181
|
+
}
|
|
160
182
|
printDirectoryStructure(inputDirectory, directory) {
|
|
161
183
|
const heading = `${f.var("src")} directory containing source files created at ${f.path(inputDirectory)}\n`;
|
|
162
184
|
const message = getTree(directory.toTreeNode());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../../src/prompts/portal/quickstart.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../../src/prompts/portal/quickstart.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,10 @@ import { UrlPath } from "../../types/file/urlPath.js";
|
|
|
2
2
|
import { DirectoryPath } from "../../types/file/directoryPath.js";
|
|
3
3
|
export declare class PortalServePrompts {
|
|
4
4
|
usingFallbackPort(currentPort: number, availablePort: number): void;
|
|
5
|
+
serverStartFailed(port: number): void;
|
|
6
|
+
noPortalSource(buildDirectory: DirectoryPath): void;
|
|
7
|
+
invalidBuildConfig(buildDirectory: DirectoryPath): void;
|
|
8
|
+
baseUrlPortUpdated(updatedUrl: UrlPath): void;
|
|
5
9
|
portalServed(urlPath: UrlPath): void;
|
|
6
10
|
promptForExit(): void;
|
|
7
11
|
changesDetected(): void;
|
|
@@ -4,9 +4,28 @@ import { once } from "events";
|
|
|
4
4
|
import { noteWrapped } from "../prompt.js";
|
|
5
5
|
export class PortalServePrompts {
|
|
6
6
|
usingFallbackPort(currentPort, availablePort) {
|
|
7
|
-
const message = `Port ${f.var(currentPort.toString())} is already in use.
|
|
7
|
+
const message = `Port ${f.var(currentPort.toString())} is already in use. The portal will use port ${f.var(availablePort.toString())} instead.`;
|
|
8
8
|
log.step(message);
|
|
9
9
|
}
|
|
10
|
+
serverStartFailed(port) {
|
|
11
|
+
const message = `Could not start the portal server on port ${f.var(port.toString())}; ` +
|
|
12
|
+
`it may have just been taken by another process. Please try again.`;
|
|
13
|
+
log.error(message);
|
|
14
|
+
}
|
|
15
|
+
noPortalSource(buildDirectory) {
|
|
16
|
+
const message = `No portal source found at ${f.path(buildDirectory)}. ` +
|
|
17
|
+
`Run ${f.cmdAlt("apimatic", "portal", "quickstart")} to set one up.`;
|
|
18
|
+
log.error(message);
|
|
19
|
+
}
|
|
20
|
+
invalidBuildConfig(buildDirectory) {
|
|
21
|
+
const message = `Could not read the build configuration in ${f.path(buildDirectory)}. ` +
|
|
22
|
+
`Ensure ${f.var("APIMATIC-BUILD.json")} exists and is valid JSON.`;
|
|
23
|
+
log.error(message);
|
|
24
|
+
}
|
|
25
|
+
baseUrlPortUpdated(updatedUrl) {
|
|
26
|
+
const message = `Updated the base URL in ${f.var("APIMATIC-BUILD.json")} to ${f.var(updatedUrl.toString())} to match the serve port.`;
|
|
27
|
+
log.info(message);
|
|
28
|
+
}
|
|
10
29
|
portalServed(urlPath) {
|
|
11
30
|
const message = `The portal is running at ${f.link(urlPath.toString())}`;
|
|
12
31
|
log.message(message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/prompts/portal/serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,OAAO,kBAAkB;IACtB,iBAAiB,CAAC,WAAmB,EAAE,aAAqB;QACjE,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/prompts/portal/serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,OAAO,kBAAkB;IACtB,iBAAiB,CAAC,WAAmB,EAAE,aAAqB;QACjE,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,gDAAgD,CAAC,CAAC,GAAG,CACxG,aAAa,CAAC,QAAQ,EAAE,CACzB,WAAW,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC;IAEM,iBAAiB,CAAC,IAAY;QACnC,MAAM,OAAO,GACX,6CAA6C,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI;YACvE,mEAAmE,CAAC;QACtE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAEM,cAAc,CAAC,cAA6B;QACjD,MAAM,OAAO,GACX,6BAA6B,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI;YACvD,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,CAAC,iBAAiB,CAAC;QACvE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAEM,kBAAkB,CAAC,cAA6B;QACrD,MAAM,OAAO,GACX,6CAA6C,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI;YACvE,UAAU,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC,4BAA4B,CAAC;QACrE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAEM,kBAAkB,CAAC,UAAmB;QAC3C,MAAM,OAAO,GAAG,2BAA2B,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,2BAA2B,CAAC;QACtI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC;IAEM,YAAY,CAAC,OAAgB;QAClC,MAAM,OAAO,GAAG,4BAA4B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;QACzE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAEM,aAAa;QAClB,MAAM,OAAO,GAAG,kCAAkC,CAAC;QACnD,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAEM,eAAe;QACpB,MAAM,OAAO,GAAG,qBAAqB,CAAC;QACtC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC;IAEM,YAAY;QACjB,MAAM,OAAO,GAAG,iJAAiJ,CAAC,CAAC,GAAG,CACpK,qBAAqB,CACtB,EAAE,CAAC;QACJ,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,cAAc;QACzB,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC;IAEM,gBAAgB,CAAC,YAA2B;QACjD,WAAW,CACT;;yBAEmB,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,EACzD,MAAM,CACP,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { DirectoryPath } from "../file/directoryPath.js";
|
|
2
|
-
|
|
2
|
+
import { UrlPath } from "../file/urlPath.js";
|
|
3
|
+
export interface BuildConfigData {
|
|
3
4
|
generatePortal?: PortalConfig;
|
|
4
5
|
generateVersionedPortal?: object;
|
|
5
6
|
versionsPath?: string;
|
|
6
7
|
apiCopilotConfig?: CopilotConfig;
|
|
8
|
+
recipes?: RecipesConfig;
|
|
7
9
|
[key: string]: unknown;
|
|
8
10
|
}
|
|
9
11
|
export interface PortalConfig {
|
|
@@ -11,14 +13,89 @@ export interface PortalConfig {
|
|
|
11
13
|
languageConfig: {
|
|
12
14
|
[key: string]: object;
|
|
13
15
|
};
|
|
14
|
-
|
|
16
|
+
/** URL where the portal will be hosted. Mirrors `generatePortal.baseUrl` in codegen. */
|
|
17
|
+
baseUrl?: string;
|
|
18
|
+
/** Portal UI settings. Mirrors `generatePortal.portalSettings` in codegen. */
|
|
19
|
+
portalSettings?: PortalSettingsData;
|
|
15
20
|
apiSpecPath?: DirectoryPath;
|
|
21
|
+
[key: string]: unknown;
|
|
22
|
+
}
|
|
23
|
+
export interface PortalSettingsData {
|
|
24
|
+
/** Base URL for the API calls made by the portal. Preferred over `generatePortal.baseUrl` for portal artifacts. */
|
|
25
|
+
baseUrl?: string;
|
|
26
|
+
/** Language/template id the portal opens on first load. */
|
|
27
|
+
initialPlatform?: string;
|
|
28
|
+
/** Per-language portal settings, keyed by language/template id. */
|
|
29
|
+
languageSettings?: {
|
|
30
|
+
[language: string]: LanguageSettingData;
|
|
31
|
+
};
|
|
32
|
+
[key: string]: unknown;
|
|
33
|
+
}
|
|
34
|
+
export interface LanguageSettingData {
|
|
35
|
+
aiIntegration?: AiIntegration;
|
|
36
|
+
[key: string]: unknown;
|
|
37
|
+
}
|
|
38
|
+
export interface AiIntegration {
|
|
39
|
+
cursor?: AiIntegrationSetting;
|
|
40
|
+
claudeCode?: AiIntegrationSetting;
|
|
41
|
+
vscode?: AiIntegrationSetting;
|
|
42
|
+
}
|
|
43
|
+
export interface AiIntegrationSetting {
|
|
44
|
+
isEnabled: boolean;
|
|
45
|
+
stabilityLevelTag?: string;
|
|
16
46
|
}
|
|
17
47
|
export interface CopilotConfig {
|
|
18
48
|
isEnabled: boolean;
|
|
19
49
|
key: string;
|
|
20
50
|
welcomeMessage: string;
|
|
21
51
|
}
|
|
52
|
+
export interface RecipesConfig {
|
|
53
|
+
workflows?: RecipeWorkflow[];
|
|
54
|
+
}
|
|
55
|
+
export interface RecipeWorkflow {
|
|
56
|
+
name: string;
|
|
57
|
+
permalink: string;
|
|
58
|
+
functionName: string;
|
|
59
|
+
scriptPath: string;
|
|
60
|
+
}
|
|
22
61
|
export declare function getLanguagesConfig(selectedLanguages: string[]): {
|
|
23
62
|
[key: string]: object;
|
|
24
63
|
};
|
|
64
|
+
export declare class LanguageSetting {
|
|
65
|
+
private readonly data;
|
|
66
|
+
private constructor();
|
|
67
|
+
static from(data?: LanguageSettingData): LanguageSetting;
|
|
68
|
+
/** Returns a copy with all AI editor integrations (Cursor/Claude Code/VS Code) enabled. */
|
|
69
|
+
withAiIntegrationsEnabled(): LanguageSetting;
|
|
70
|
+
toLanguageSettingData(): LanguageSettingData;
|
|
71
|
+
}
|
|
72
|
+
export declare class PortalSettings {
|
|
73
|
+
private readonly data;
|
|
74
|
+
private constructor();
|
|
75
|
+
static from(data?: PortalSettingsData): PortalSettings;
|
|
76
|
+
/** Returns a copy with the API-call base URL set. */
|
|
77
|
+
withBaseUrl(baseUrl: UrlPath): PortalSettings;
|
|
78
|
+
withAiIntegrations(languages: string[]): PortalSettings;
|
|
79
|
+
toPortalSettingsData(): PortalSettingsData;
|
|
80
|
+
}
|
|
81
|
+
export declare class BuildConfig {
|
|
82
|
+
private readonly data;
|
|
83
|
+
private constructor();
|
|
84
|
+
static parse(json: string): BuildConfig;
|
|
85
|
+
toJSON(): BuildConfigData;
|
|
86
|
+
/** Content directory for the portal, relative to the build directory. Defaults to "content". */
|
|
87
|
+
contentFolder(): string;
|
|
88
|
+
/** True when this build produces a multi-versioned portal. */
|
|
89
|
+
isVersioned(): boolean;
|
|
90
|
+
/** Directory holding the versioned portals, relative to the build directory. Defaults to "versioned_docs". */
|
|
91
|
+
versionsPath(): string;
|
|
92
|
+
/** True when API Copilot is already configured for this build. */
|
|
93
|
+
hasApiCopilot(): boolean;
|
|
94
|
+
/** Returns a copy with the portal's languageConfig set from the selected friendly language ids. */
|
|
95
|
+
withPortalLanguages(languages: string[]): BuildConfig;
|
|
96
|
+
/** Returns a copy with the API Copilot configuration set (or overwritten). */
|
|
97
|
+
withApiCopilotConfig(config: CopilotConfig): BuildConfig;
|
|
98
|
+
withApiCopilotForPortal(key: string, welcomeMessage: string, baseUrl: UrlPath): BuildConfig;
|
|
99
|
+
updateBuildConfigBaseUrl(serveUrl: UrlPath): BuildConfig;
|
|
100
|
+
withRecipeWorkflow(name: string, functionName: string, scriptPath: string): BuildConfig;
|
|
101
|
+
}
|
package/lib/types/build/build.js
CHANGED
|
@@ -1,7 +1,165 @@
|
|
|
1
|
+
import { UrlPath } from "../file/urlPath.js";
|
|
1
2
|
export function getLanguagesConfig(selectedLanguages) {
|
|
2
3
|
return selectedLanguages.reduce((config, lang) => {
|
|
3
4
|
config[lang] = {};
|
|
4
5
|
return config;
|
|
5
6
|
}, {});
|
|
6
7
|
}
|
|
8
|
+
// Maps the CLI's friendly language identifiers (used as languageConfig keys) to
|
|
9
|
+
// codegen's SupportedTemplates ids, which is what portalSettings.languageSettings
|
|
10
|
+
// must be keyed by (codegen resolves these via SdkLanguage.FromSupportedTemplate).
|
|
11
|
+
// These ids are version-specific in codegen (e.g. php_generic_lib_v2) — keep in sync
|
|
12
|
+
// with APIMatic.CodeGen.Common.SdkLanguage.
|
|
13
|
+
const CODEGEN_TEMPLATE_ID_BY_LANGUAGE = {
|
|
14
|
+
typescript: "ts_generic_lib",
|
|
15
|
+
csharp: "cs_net_standard_lib",
|
|
16
|
+
java: "java_eclipse_jre_lib",
|
|
17
|
+
php: "php_generic_lib_v2",
|
|
18
|
+
python: "python_generic_lib",
|
|
19
|
+
ruby: "ruby_generic_lib",
|
|
20
|
+
go: "go_generic_lib"
|
|
21
|
+
};
|
|
22
|
+
// codegen derives initialPlatform from languageConfig (http is always first), so a
|
|
23
|
+
// languageSettings entry for http must exist or the portal widget fails to render.
|
|
24
|
+
const HTTP_TEMPLATE_ID = "http_curl_v1";
|
|
25
|
+
// Immutable per-language portal setting. Build new values via the static factory and
|
|
26
|
+
// the with* transforms; the wrapped data is never mutated after construction.
|
|
27
|
+
export class LanguageSetting {
|
|
28
|
+
constructor(data) {
|
|
29
|
+
this.data = data;
|
|
30
|
+
}
|
|
31
|
+
static from(data = {}) {
|
|
32
|
+
return new LanguageSetting(data);
|
|
33
|
+
}
|
|
34
|
+
/** Returns a copy with all AI editor integrations (Cursor/Claude Code/VS Code) enabled. */
|
|
35
|
+
withAiIntegrationsEnabled() {
|
|
36
|
+
return new LanguageSetting(Object.assign(Object.assign({}, this.data), { aiIntegration: {
|
|
37
|
+
cursor: { isEnabled: true },
|
|
38
|
+
claudeCode: { isEnabled: true },
|
|
39
|
+
vscode: { isEnabled: true }
|
|
40
|
+
} }));
|
|
41
|
+
}
|
|
42
|
+
toLanguageSettingData() {
|
|
43
|
+
return this.data;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// Immutable portal UI settings. Build new values via the static factory and the with*
|
|
47
|
+
// transforms; the wrapped data is never mutated after construction.
|
|
48
|
+
export class PortalSettings {
|
|
49
|
+
constructor(data) {
|
|
50
|
+
this.data = data;
|
|
51
|
+
}
|
|
52
|
+
static from(data = {}) {
|
|
53
|
+
return new PortalSettings(data);
|
|
54
|
+
}
|
|
55
|
+
/** Returns a copy with the API-call base URL set. */
|
|
56
|
+
withBaseUrl(baseUrl) {
|
|
57
|
+
return new PortalSettings(Object.assign(Object.assign({}, this.data), { baseUrl: baseUrl.toString() }));
|
|
58
|
+
}
|
|
59
|
+
// Returns a copy with AI editor integrations enabled for the given SDK languages
|
|
60
|
+
// (friendly ids). Always adds the http entry the portal needs to render and opens the
|
|
61
|
+
// portal on the first SDK language. Languages without a codegen template id are skipped.
|
|
62
|
+
withAiIntegrations(languages) {
|
|
63
|
+
var _a;
|
|
64
|
+
const languageSettings = Object.assign({}, this.data.languageSettings);
|
|
65
|
+
languageSettings[HTTP_TEMPLATE_ID] = (_a = languageSettings[HTTP_TEMPLATE_ID]) !== null && _a !== void 0 ? _a : {};
|
|
66
|
+
let firstSdkTemplateId;
|
|
67
|
+
for (const language of languages) {
|
|
68
|
+
const templateId = CODEGEN_TEMPLATE_ID_BY_LANGUAGE[language];
|
|
69
|
+
if (!templateId) {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
firstSdkTemplateId !== null && firstSdkTemplateId !== void 0 ? firstSdkTemplateId : (firstSdkTemplateId = templateId);
|
|
73
|
+
languageSettings[templateId] = LanguageSetting.from(languageSettings[templateId]).withAiIntegrationsEnabled().toLanguageSettingData();
|
|
74
|
+
}
|
|
75
|
+
return new PortalSettings(Object.assign(Object.assign(Object.assign({}, this.data), { languageSettings }), (firstSdkTemplateId ? { initialPlatform: firstSdkTemplateId } : {})));
|
|
76
|
+
}
|
|
77
|
+
toPortalSettingsData() {
|
|
78
|
+
return this.data;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// Immutable wrapper around the parsed APIMATIC-BUILD.json. All build-config reads go
|
|
82
|
+
// through accessor methods and all changes go through with*/update methods that
|
|
83
|
+
// return a NEW BuildConfig — the wrapped data is never mutated after construction.
|
|
84
|
+
// Construct via `BuildConfig.parse`; persist via `BuildContext`.
|
|
85
|
+
export class BuildConfig {
|
|
86
|
+
constructor(data) {
|
|
87
|
+
this.data = data;
|
|
88
|
+
}
|
|
89
|
+
static parse(json) {
|
|
90
|
+
return new BuildConfig(JSON.parse(json));
|
|
91
|
+
}
|
|
92
|
+
// Called implicitly by JSON.stringify when the config is written back to disk.
|
|
93
|
+
toJSON() {
|
|
94
|
+
return this.data;
|
|
95
|
+
}
|
|
96
|
+
/** Content directory for the portal, relative to the build directory. Defaults to "content". */
|
|
97
|
+
contentFolder() {
|
|
98
|
+
var _a, _b;
|
|
99
|
+
return (_b = (_a = this.data.generatePortal) === null || _a === void 0 ? void 0 : _a.contentFolder) !== null && _b !== void 0 ? _b : "content";
|
|
100
|
+
}
|
|
101
|
+
/** True when this build produces a multi-versioned portal. */
|
|
102
|
+
isVersioned() {
|
|
103
|
+
return this.data.generateVersionedPortal != null;
|
|
104
|
+
}
|
|
105
|
+
/** Directory holding the versioned portals, relative to the build directory. Defaults to "versioned_docs". */
|
|
106
|
+
versionsPath() {
|
|
107
|
+
var _a;
|
|
108
|
+
return (_a = this.data.versionsPath) !== null && _a !== void 0 ? _a : "versioned_docs";
|
|
109
|
+
}
|
|
110
|
+
/** True when API Copilot is already configured for this build. */
|
|
111
|
+
hasApiCopilot() {
|
|
112
|
+
return this.data.apiCopilotConfig != null;
|
|
113
|
+
}
|
|
114
|
+
/** Returns a copy with the portal's languageConfig set from the selected friendly language ids. */
|
|
115
|
+
withPortalLanguages(languages) {
|
|
116
|
+
const portal = this.data.generatePortal;
|
|
117
|
+
return new BuildConfig(Object.assign(Object.assign({}, this.data), { generatePortal: Object.assign(Object.assign({}, portal), { languageConfig: getLanguagesConfig(languages) }) }));
|
|
118
|
+
}
|
|
119
|
+
/** Returns a copy with the API Copilot configuration set (or overwritten). */
|
|
120
|
+
withApiCopilotConfig(config) {
|
|
121
|
+
return new BuildConfig(Object.assign(Object.assign({}, this.data), { apiCopilotConfig: Object.assign({}, config) }));
|
|
122
|
+
}
|
|
123
|
+
// Returns a copy with API Copilot enabled for a locally-served portal: stores the
|
|
124
|
+
// Copilot config, points the portal base URL at the local serve URL, and turns on AI
|
|
125
|
+
// editor integrations for the configured SDK languages.
|
|
126
|
+
withApiCopilotForPortal(key, welcomeMessage, baseUrl) {
|
|
127
|
+
const portal = this.data.generatePortal;
|
|
128
|
+
return new BuildConfig(Object.assign(Object.assign({}, this.data), { apiCopilotConfig: { isEnabled: true, key, welcomeMessage }, generatePortal: Object.assign(Object.assign({}, portal), { baseUrl: baseUrl.toString(), portalSettings: PortalSettings.from(portal.portalSettings)
|
|
129
|
+
.withAiIntegrations(Object.keys(portal.languageConfig))
|
|
130
|
+
.toPortalSettingsData() }) }));
|
|
131
|
+
}
|
|
132
|
+
// Returns a copy with the portal base URL repointed at the serve URL, or `this`
|
|
133
|
+
// unchanged when there's no localhost base URL to rewrite (or it already matches the
|
|
134
|
+
// serve URL). Callers detect a change via reference identity: `result !== original`.
|
|
135
|
+
updateBuildConfigBaseUrl(serveUrl) {
|
|
136
|
+
var _a, _b, _c, _d;
|
|
137
|
+
// `portalSettings.baseUrl` is preferred for portal artifacts; otherwise fall back
|
|
138
|
+
// to `generatePortal.baseUrl`. Mirrors how codegen resolves the base URL.
|
|
139
|
+
const portalSettings = (_a = this.data.generatePortal) === null || _a === void 0 ? void 0 : _a.portalSettings;
|
|
140
|
+
const baseUrl = (_b = portalSettings === null || portalSettings === void 0 ? void 0 : portalSettings.baseUrl) !== null && _b !== void 0 ? _b : (_c = this.data.generatePortal) === null || _c === void 0 ? void 0 : _c.baseUrl;
|
|
141
|
+
if (!baseUrl) {
|
|
142
|
+
return this;
|
|
143
|
+
}
|
|
144
|
+
const parsedUrl = UrlPath.create(baseUrl);
|
|
145
|
+
if (!(parsedUrl === null || parsedUrl === void 0 ? void 0 : parsedUrl.isLocalhost()) || parsedUrl.isEqual(serveUrl)) {
|
|
146
|
+
return this;
|
|
147
|
+
}
|
|
148
|
+
const portal = this.data.generatePortal;
|
|
149
|
+
const updatedPortal = ((_d = portal.portalSettings) === null || _d === void 0 ? void 0 : _d.baseUrl)
|
|
150
|
+
? Object.assign(Object.assign({}, portal), { portalSettings: PortalSettings.from(portal.portalSettings).withBaseUrl(serveUrl).toPortalSettingsData() }) : Object.assign(Object.assign({}, portal), { baseUrl: serveUrl.toString() });
|
|
151
|
+
return new BuildConfig(Object.assign(Object.assign({}, this.data), { generatePortal: updatedPortal }));
|
|
152
|
+
}
|
|
153
|
+
// Returns a copy with a recipe workflow added (or replaced, matched by permalink).
|
|
154
|
+
withRecipeWorkflow(name, functionName, scriptPath) {
|
|
155
|
+
var _a, _b;
|
|
156
|
+
const recipes = (_a = this.data.recipes) !== null && _a !== void 0 ? _a : {};
|
|
157
|
+
const workflows = (_b = recipes.workflows) !== null && _b !== void 0 ? _b : [];
|
|
158
|
+
const permalink = `page:recipes/${functionName}`;
|
|
159
|
+
const workflow = { name, permalink, functionName, scriptPath };
|
|
160
|
+
const existingIndex = workflows.findIndex((w) => w.permalink === permalink);
|
|
161
|
+
const updatedWorkflows = existingIndex === -1 ? [...workflows, workflow] : workflows.map((w, index) => (index === existingIndex ? workflow : w));
|
|
162
|
+
return new BuildConfig(Object.assign(Object.assign({}, this.data), { recipes: Object.assign(Object.assign({}, recipes), { workflows: updatedWorkflows }) }));
|
|
163
|
+
}
|
|
164
|
+
}
|
|
7
165
|
//# sourceMappingURL=build.js.map
|
|
@@ -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":"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"}
|
|
@@ -11,7 +11,7 @@ export declare class BuildContext {
|
|
|
11
11
|
exists(): Promise<boolean>;
|
|
12
12
|
existsSync(): boolean;
|
|
13
13
|
getBuildFileContents(): Promise<BuildConfig>;
|
|
14
|
-
updateBuildFileContents(
|
|
14
|
+
updateBuildFileContents(buildConfig: BuildConfig): Promise<void>;
|
|
15
15
|
deleteWorkflowDir(): Promise<void>;
|
|
16
16
|
getBuildZipPath(tempDir: DirectoryPath, packageSettingsDirectory?: DirectoryPath): Promise<FilePath>;
|
|
17
17
|
getSpecContext(): SpecContext;
|
|
@@ -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 { BuildConfig } from "./build/build.js";
|
|
4
5
|
import { SpecContext } from "./spec-context.js";
|
|
5
6
|
import { TempContext } from "./temp-context.js";
|
|
6
7
|
export class BuildContext {
|
|
@@ -26,10 +27,10 @@ export class BuildContext {
|
|
|
26
27
|
}
|
|
27
28
|
async getBuildFileContents() {
|
|
28
29
|
const buildFileContent = await this.fileService.getContents(this.buildFile);
|
|
29
|
-
return
|
|
30
|
+
return BuildConfig.parse(buildFileContent);
|
|
30
31
|
}
|
|
31
|
-
async updateBuildFileContents(
|
|
32
|
-
await this.fileService.writeContents(this.buildFile, JSON.stringify(
|
|
32
|
+
async updateBuildFileContents(buildConfig) {
|
|
33
|
+
await this.fileService.writeContents(this.buildFile, JSON.stringify(buildConfig, null, 2));
|
|
33
34
|
}
|
|
34
35
|
async deleteWorkflowDir() {
|
|
35
36
|
await this.fileService.deleteDirectory(this.buildDirectory.join(".github"));
|
|
@@ -60,19 +61,14 @@ export class BuildContext {
|
|
|
60
61
|
if (!await this.validate()) {
|
|
61
62
|
return false;
|
|
62
63
|
}
|
|
63
|
-
|
|
64
|
-
if (buildConfig.generateVersionedPortal) {
|
|
65
|
-
return true;
|
|
66
|
-
}
|
|
67
|
-
return false;
|
|
64
|
+
return (await this.getBuildFileContents()).isVersioned();
|
|
68
65
|
}
|
|
69
66
|
async getVersionedBuildDirectory() {
|
|
70
|
-
var _a;
|
|
71
67
|
const buildConfig = await this.getBuildFileContents();
|
|
72
|
-
if (!buildConfig.
|
|
68
|
+
if (!buildConfig.isVersioned()) {
|
|
73
69
|
return undefined;
|
|
74
70
|
}
|
|
75
|
-
const versionsDirectory = this.buildDirectory.join(
|
|
71
|
+
const versionsDirectory = this.buildDirectory.join(buildConfig.versionsPath());
|
|
76
72
|
if (!await this.fileService.directoryExists(versionsDirectory)) {
|
|
77
73
|
return undefined;
|
|
78
74
|
}
|
|
@@ -80,12 +76,11 @@ export class BuildContext {
|
|
|
80
76
|
return versionsDirs.length > 0 ? versionsDirectory : undefined;
|
|
81
77
|
}
|
|
82
78
|
async getSingleVersionedBuildDirectory() {
|
|
83
|
-
var _a;
|
|
84
79
|
const buildConfig = await this.getBuildFileContents();
|
|
85
|
-
if (!buildConfig.
|
|
80
|
+
if (!buildConfig.isVersioned()) {
|
|
86
81
|
return undefined;
|
|
87
82
|
}
|
|
88
|
-
const versionsDirectory = this.buildDirectory.join(
|
|
83
|
+
const versionsDirectory = this.buildDirectory.join(buildConfig.versionsPath());
|
|
89
84
|
if (!await this.fileService.directoryExists(versionsDirectory)) {
|
|
90
85
|
return undefined;
|
|
91
86
|
}
|
|
@@ -93,12 +88,11 @@ export class BuildContext {
|
|
|
93
88
|
return versionsDirs.length === 1 ? versionsDirs[0] : undefined;
|
|
94
89
|
}
|
|
95
90
|
async getSelectedVersionedBuildDirectory(versionSelector) {
|
|
96
|
-
var _a;
|
|
97
91
|
const buildConfig = await this.getBuildFileContents();
|
|
98
|
-
if (!buildConfig.
|
|
92
|
+
if (!buildConfig.isVersioned()) {
|
|
99
93
|
return undefined;
|
|
100
94
|
}
|
|
101
|
-
const versionsDirectory = this.buildDirectory.join(
|
|
95
|
+
const versionsDirectory = this.buildDirectory.join(buildConfig.versionsPath());
|
|
102
96
|
if (!await this.fileService.directoryExists(versionsDirectory)) {
|
|
103
97
|
return undefined;
|
|
104
98
|
}
|
|
@@ -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":"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"}
|
|
@@ -3,4 +3,8 @@ export declare class UrlPath {
|
|
|
3
3
|
constructor(url: string);
|
|
4
4
|
static create(url: string): UrlPath | undefined;
|
|
5
5
|
toString(): string;
|
|
6
|
+
/** True when the URL points at the local machine (`localhost` or `127.0.0.1`). */
|
|
7
|
+
isLocalhost(): boolean;
|
|
8
|
+
/** Structural equality against another URL. */
|
|
9
|
+
isEqual(other: UrlPath): boolean;
|
|
6
10
|
}
|
|
@@ -18,5 +18,14 @@ export class UrlPath {
|
|
|
18
18
|
toString() {
|
|
19
19
|
return this.url;
|
|
20
20
|
}
|
|
21
|
+
/** True when the URL points at the local machine (`localhost` or `127.0.0.1`). */
|
|
22
|
+
isLocalhost() {
|
|
23
|
+
const hostname = new URL(this.url).hostname;
|
|
24
|
+
return hostname === "localhost" || hostname === "127.0.0.1";
|
|
25
|
+
}
|
|
26
|
+
/** Structural equality against another URL. */
|
|
27
|
+
isEqual(other) {
|
|
28
|
+
return this.url === other.url;
|
|
29
|
+
}
|
|
21
30
|
}
|
|
22
31
|
//# sourceMappingURL=urlPath.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urlPath.js","sourceRoot":"","sources":["../../../src/types/file/urlPath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,OAAO,OAAO;IAGlB,YAAY,GAAW;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,GAAW;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClD,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAAC,WAAM,CAAC;YACP,kBAAkB;QACpB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"urlPath.js","sourceRoot":"","sources":["../../../src/types/file/urlPath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,OAAO,OAAO;IAGlB,YAAY,GAAW;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,GAAW;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClD,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAAC,WAAM,CAAC;YACP,kBAAkB;QACpB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,kFAAkF;IAC3E,WAAW;QAChB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QAC5C,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,WAAW,CAAC;IAC9D,CAAC;IAED,+CAA+C;IACxC,OAAO,CAAC,KAAc;QAC3B,OAAO,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC;IAChC,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apimatic/cli",
|
|
3
3
|
"description": "The official CLI for APIMatic.",
|
|
4
|
-
"version": "1.1.0-beta.
|
|
4
|
+
"version": "1.1.0-beta.19",
|
|
5
5
|
"author": "APIMatic",
|
|
6
6
|
"bin": {
|
|
7
7
|
"apimatic": "./bin/run.js"
|
|
@@ -38,6 +38,8 @@
|
|
|
38
38
|
"types": "lib/index.d.ts",
|
|
39
39
|
"scripts": {
|
|
40
40
|
"build": "tsc -b",
|
|
41
|
+
"build:watch": "tsc -b --watch",
|
|
42
|
+
"apimatic": "node ./bin/run.js",
|
|
41
43
|
"postpack": "rimraf oclif.manifest.json",
|
|
42
44
|
"posttest": "eslint . --ext .ts",
|
|
43
45
|
"prettier": "prettier \"src/**/*.{js,ts}\"",
|
|
@@ -53,6 +55,7 @@
|
|
|
53
55
|
"@oclif/core": "^4.2.8",
|
|
54
56
|
"@oclif/plugin-autocomplete": "^3.2.24",
|
|
55
57
|
"@oclif/plugin-help": "^6.2.26",
|
|
58
|
+
"adm-zip": "^0.5.17",
|
|
56
59
|
"ansis": "^3.17.0",
|
|
57
60
|
"async-mutex": "^0.5.0",
|
|
58
61
|
"axios": "^1.8.1",
|
|
@@ -60,7 +63,6 @@
|
|
|
60
63
|
"connect-livereload": "^0.6.1",
|
|
61
64
|
"execa": "^9.6.0",
|
|
62
65
|
"express": "^4.17.1",
|
|
63
|
-
"extract-zip": "^2.0.1",
|
|
64
66
|
"fast-levenshtein": "^3.0.0",
|
|
65
67
|
"form-data": "^4.0.2",
|
|
66
68
|
"fs-extra": "^11.3.0",
|
|
@@ -86,6 +88,7 @@
|
|
|
86
88
|
"@oclif/test": "^4.1.13",
|
|
87
89
|
"@semantic-release/changelog": "^6.0.3",
|
|
88
90
|
"@semantic-release/git": "^10.0.1",
|
|
91
|
+
"@types/adm-zip": "^0.5.8",
|
|
89
92
|
"@types/base-64": "^1.0.0",
|
|
90
93
|
"@types/chai": "^4.3.20",
|
|
91
94
|
"@types/connect-livereload": "^0.5.32",
|
|
@@ -115,7 +118,7 @@
|
|
|
115
118
|
"nyc": "^17.1.0",
|
|
116
119
|
"oclif": "^4.17.34",
|
|
117
120
|
"rimraf": "^6.0.1",
|
|
118
|
-
"semantic-release": "^
|
|
121
|
+
"semantic-release": "^25.0.3",
|
|
119
122
|
"simple-git": "^3.36.0",
|
|
120
123
|
"sinon": "^21.0.0",
|
|
121
124
|
"string-argv": "^0.3.1",
|