@apimatic/cli 1.1.0-beta.1 → 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 +53 -10
- package/lib/actions/action-result.d.ts +12 -6
- package/lib/actions/action-result.js +36 -10
- package/lib/actions/action-result.js.map +1 -1
- package/lib/actions/api/validate.d.ts +3 -1
- package/lib/actions/api/validate.js +14 -3
- package/lib/actions/api/validate.js.map +1 -1
- package/lib/actions/portal/copilot.js +2 -2
- package/lib/actions/portal/generate.js +7 -1
- package/lib/actions/portal/generate.js.map +1 -1
- package/lib/actions/portal/quickstart.d.ts +4 -3
- package/lib/actions/portal/quickstart.js +42 -19
- package/lib/actions/portal/quickstart.js.map +1 -1
- package/lib/actions/portal/serve.js +0 -14
- package/lib/actions/portal/serve.js.map +1 -1
- package/lib/actions/portal/toc/new-toc.d.ts +5 -5
- package/lib/actions/portal/toc/new-toc.js +39 -40
- package/lib/actions/portal/toc/new-toc.js.map +1 -1
- package/lib/actions/sdk/generate.d.ts +4 -1
- package/lib/actions/sdk/generate.js +62 -17
- 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.d.ts +6 -3
- package/lib/actions/sdk/quickstart.js +48 -26
- 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/application/portal/toc/toc-structure-generator.d.ts +23 -2
- package/lib/application/portal/toc/toc-structure-generator.js +131 -60
- package/lib/application/portal/toc/toc-structure-generator.js.map +1 -1
- 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.d.ts +5 -3
- package/lib/commands/portal/toc/new.js +34 -26
- 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 +29 -11
- 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/debounce-service.js +3 -0
- package/lib/infrastructure/debounce-service.js.map +1 -1
- package/lib/infrastructure/file-service.d.ts +6 -0
- package/lib/infrastructure/file-service.js +58 -1
- 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/api-service.d.ts +2 -1
- package/lib/infrastructure/services/api-service.js +24 -0
- package/lib/infrastructure/services/api-service.js.map +1 -1
- package/lib/infrastructure/services/portal-service.d.ts +6 -4
- package/lib/infrastructure/services/portal-service.js +96 -59
- package/lib/infrastructure/services/portal-service.js.map +1 -1
- package/lib/infrastructure/services/validation-service.d.ts +28 -2
- package/lib/infrastructure/services/validation-service.js +108 -15
- package/lib/infrastructure/services/validation-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/api/validate.d.ts +5 -2
- package/lib/prompts/api/validate.js +36 -0
- package/lib/prompts/api/validate.js.map +1 -1
- package/lib/prompts/format.d.ts +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/portal/quickstart.d.ts +3 -0
- package/lib/prompts/portal/quickstart.js +39 -2
- package/lib/prompts/portal/quickstart.js.map +1 -1
- package/lib/prompts/portal/toc/new-toc.d.ts +1 -1
- package/lib/prompts/portal/toc/new-toc.js +10 -2
- package/lib/prompts/portal/toc/new-toc.js.map +1 -1
- package/lib/prompts/sdk/generate.d.ts +11 -4
- package/lib/prompts/sdk/generate.js +37 -11
- 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/quickstart.d.ts +4 -1
- package/lib/prompts/sdk/quickstart.js +41 -4
- package/lib/prompts/sdk/quickstart.js.map +1 -1
- 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/sdl/sdl.d.ts +20 -3
- package/lib/types/sdl/sdl.js +120 -22
- package/lib/types/sdl/sdl.js.map +1 -1
- package/lib/types/spec-context.js.map +1 -1
- package/lib/types/temp-context.js.map +1 -1
- package/lib/types/toc/toc.d.ts +31 -6
- package/lib/utils/string-utils.d.ts +1 -0
- package/lib/utils/string-utils.js +42 -0
- package/lib/utils/string-utils.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ The official CLI for APIMatic.
|
|
|
14
14
|
To get started with APIMatic's CLI using a step by step wizard, run the following command:
|
|
15
15
|
|
|
16
16
|
```sh-session
|
|
17
|
-
$ apimatic
|
|
17
|
+
$ apimatic quickstart
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
# Usage
|
|
@@ -24,7 +24,7 @@ $ npm install -g @apimatic/cli
|
|
|
24
24
|
$ apimatic COMMAND
|
|
25
25
|
running command...
|
|
26
26
|
$ apimatic (--version)
|
|
27
|
-
@apimatic/cli/1.
|
|
27
|
+
@apimatic/cli/1.1.0-beta.8 win32-x64 node-v23.4.0
|
|
28
28
|
$ apimatic --help [COMMAND]
|
|
29
29
|
USAGE
|
|
30
30
|
$ apimatic COMMAND
|
|
@@ -48,6 +48,7 @@ USAGE
|
|
|
48
48
|
* [`apimatic portal toc new`](#apimatic-portal-toc-new)
|
|
49
49
|
* [`apimatic quickstart`](#apimatic-quickstart)
|
|
50
50
|
* [`apimatic sdk generate`](#apimatic-sdk-generate)
|
|
51
|
+
* [`apimatic sdk save-changes`](#apimatic-sdk-save-changes)
|
|
51
52
|
|
|
52
53
|
## `apimatic api transform`
|
|
53
54
|
|
|
@@ -349,16 +350,21 @@ Generate a Table of Contents (TOC) file for your API documentation portal
|
|
|
349
350
|
```
|
|
350
351
|
USAGE
|
|
351
352
|
$ apimatic portal toc new [-d <value>] [-i <value>] [-f] [--expand-endpoints] [--expand-models]
|
|
353
|
+
[--expand-webhooks] [--expand-callbacks]
|
|
352
354
|
|
|
353
355
|
FLAGS
|
|
354
356
|
-d, --destination=<value> [default: <input>/src/content] path where the toc.yml will be generated.
|
|
355
357
|
-f, --force overwrite changes without asking for user consent.
|
|
356
358
|
-i, --input=<value> [default: ./] path to the parent directory containing the 'src' directory, which includes
|
|
357
359
|
API specifications and configuration files.
|
|
360
|
+
--expand-callbacks include individual entries for each callback in the generated 'toc.yml'. Requires a valid
|
|
361
|
+
API specification in the working directory.
|
|
358
362
|
--expand-endpoints include individual entries for each endpoint in the generated 'toc.yml'. Requires a valid
|
|
359
363
|
API specification in the working directory.
|
|
360
364
|
--expand-models include individual entries for each model in the generated 'toc.yml'. Requires a valid API
|
|
361
365
|
specification in the working directory.
|
|
366
|
+
--expand-webhooks include individual entries for each webhook in the generated 'toc.yml'. Requires a valid
|
|
367
|
+
API specification in the working directory.
|
|
362
368
|
|
|
363
369
|
DESCRIPTION
|
|
364
370
|
Generate a Table of Contents (TOC) file for your API documentation portal
|
|
@@ -406,17 +412,22 @@ Generate an SDK for your API
|
|
|
406
412
|
|
|
407
413
|
```
|
|
408
414
|
USAGE
|
|
409
|
-
$ apimatic sdk generate -l csharp|java|php|python|ruby|typescript|go [
|
|
410
|
-
[-k <value>]
|
|
415
|
+
$ apimatic sdk generate -l csharp|java|php|python|ruby|typescript|go [-d <value>] [--skip-changes]
|
|
416
|
+
[--api-version <value>] [--zip] [--track-changes] [-i <value>] [-f] [-k <value>]
|
|
411
417
|
|
|
412
418
|
FLAGS
|
|
413
|
-
-d, --destination=<value>
|
|
419
|
+
-d, --destination=<value> [default: <input>/sdk/<language> | <input>/sdk/<api-version>/<language>] path where the SDK
|
|
420
|
+
will be generated
|
|
414
421
|
-f, --force overwrite changes without asking for user consent.
|
|
422
|
+
-i, --input=<value> [default: ./] path to the parent directory containing the 'src' directory, which includes
|
|
423
|
+
API specifications and configuration files.
|
|
415
424
|
-k, --auth-key=<value> override current authentication state with an authentication key.
|
|
416
|
-
-l, --language=<option> (required)
|
|
425
|
+
-l, --language=<option> (required) Programming language for SDK generation
|
|
417
426
|
<options: csharp|java|php|python|ruby|typescript|go>
|
|
418
|
-
--
|
|
419
|
-
--
|
|
427
|
+
--api-version=<value> Version of the API to use for SDK generation (if multiple versions exist)
|
|
428
|
+
--skip-changes Do not apply the saved changes to the generated SDK
|
|
429
|
+
--track-changes Enable change tracking for SDK generation (only required for initial setup)
|
|
430
|
+
--zip Download the generated SDK as a .zip archive
|
|
420
431
|
|
|
421
432
|
DESCRIPTION
|
|
422
433
|
Generate an SDK for your API
|
|
@@ -427,10 +438,42 @@ DESCRIPTION
|
|
|
427
438
|
EXAMPLES
|
|
428
439
|
apimatic sdk generate --language=java
|
|
429
440
|
|
|
430
|
-
apimatic sdk generate --language=csharp --
|
|
441
|
+
apimatic sdk generate --language=csharp --input=./
|
|
431
442
|
|
|
432
443
|
apimatic sdk generate --language=python --destination=./sdk --zip
|
|
433
444
|
```
|
|
434
445
|
|
|
435
446
|
_See code: [src/commands/sdk/generate.ts](https://github.com/apimatic/apimatic-cli/blob/beta/src/commands/sdk/generate.ts)_
|
|
436
|
-
|
|
447
|
+
|
|
448
|
+
## `apimatic sdk save-changes`
|
|
449
|
+
|
|
450
|
+
Save customizations made to an auto-generated SDK
|
|
451
|
+
|
|
452
|
+
```
|
|
453
|
+
USAGE
|
|
454
|
+
$ apimatic sdk save-changes -l csharp|java|php|python|ruby|typescript|go [--sdk <value>] [--api-version <value>] [-i
|
|
455
|
+
<value>]
|
|
456
|
+
|
|
457
|
+
FLAGS
|
|
458
|
+
-i, --input=<value> [default: ./] path to the parent directory containing the 'src' directory, which includes
|
|
459
|
+
API specifications and configuration files.
|
|
460
|
+
-l, --language=<option> (required) Programming language of the SDK
|
|
461
|
+
<options: csharp|java|php|python|ruby|typescript|go>
|
|
462
|
+
--api-version=<value> Version of the API where changes should be saved (if multiple versions exist).
|
|
463
|
+
--sdk=<value> [default: ./sdk/<language> | ./sdk/<api-version>/<language>] path to the folder containing
|
|
464
|
+
the updated SDK.
|
|
465
|
+
|
|
466
|
+
DESCRIPTION
|
|
467
|
+
Save customizations made to an auto-generated SDK
|
|
468
|
+
|
|
469
|
+
Requires an input directory with API specifications, a path to the updated SDK directory, and the programming
|
|
470
|
+
language.
|
|
471
|
+
|
|
472
|
+
EXAMPLES
|
|
473
|
+
apimatic sdk save-changes --language=csharp
|
|
474
|
+
|
|
475
|
+
apimatic sdk save-changes --language=java --sdk=./sdk
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
_See code: [src/commands/sdk/save-changes.ts](https://github.com/apimatic/apimatic-cli/blob/beta/src/commands/sdk/save-changes.ts)_
|
|
479
|
+
<!-- commandsstop -->
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
export declare class ActionResult {
|
|
1
|
+
export declare class ActionResult<T = void> {
|
|
2
2
|
private readonly message;
|
|
3
3
|
private readonly resultType;
|
|
4
|
+
private readonly value?;
|
|
4
5
|
private constructor();
|
|
5
|
-
static success(): ActionResult
|
|
6
|
-
static failed(): ActionResult
|
|
7
|
-
static cancelled(): ActionResult
|
|
8
|
-
static stopped(): ActionResult
|
|
6
|
+
static success<T>(value?: T): ActionResult<T>;
|
|
7
|
+
static failed<T = never>(message?: string): ActionResult<T>;
|
|
8
|
+
static cancelled<T = never>(message?: string): ActionResult<T>;
|
|
9
|
+
static stopped<T = never>(message?: string): ActionResult<T>;
|
|
9
10
|
getMessage(): string;
|
|
10
11
|
getExitCode(): number;
|
|
11
12
|
isFailed(): boolean;
|
|
12
|
-
|
|
13
|
+
isSuccess(): boolean;
|
|
14
|
+
isCancelled(): boolean;
|
|
15
|
+
match<R>(onSuccess: (value: T) => R, onFailure: (message: string) => R, onCancel: (message: string) => R): R;
|
|
16
|
+
getValue(): T;
|
|
17
|
+
getValueOr(defaultValue: T): T;
|
|
18
|
+
mapAll<R>(onSuccess: (value?: T) => R, onFailure: () => R, onCancel: () => R): R;
|
|
13
19
|
}
|
|
@@ -5,21 +5,22 @@ var ResultType;
|
|
|
5
5
|
ResultType[ResultType["Failure"] = 1] = "Failure";
|
|
6
6
|
})(ResultType || (ResultType = {}));
|
|
7
7
|
export class ActionResult {
|
|
8
|
-
constructor(resultType, message) {
|
|
8
|
+
constructor(resultType, message, value) {
|
|
9
9
|
this.resultType = resultType;
|
|
10
10
|
this.message = message;
|
|
11
|
+
this.value = value;
|
|
11
12
|
}
|
|
12
|
-
static success() {
|
|
13
|
-
return new ActionResult(ResultType.Success, "
|
|
13
|
+
static success(value) {
|
|
14
|
+
return new ActionResult(ResultType.Success, "Succeeded", value);
|
|
14
15
|
}
|
|
15
|
-
static failed() {
|
|
16
|
-
return new ActionResult(ResultType.Failure,
|
|
16
|
+
static failed(message = "Failed") {
|
|
17
|
+
return new ActionResult(ResultType.Failure, message);
|
|
17
18
|
}
|
|
18
|
-
static cancelled() {
|
|
19
|
-
return new ActionResult(ResultType.Cancel,
|
|
19
|
+
static cancelled(message = "Cancelled") {
|
|
20
|
+
return new ActionResult(ResultType.Cancel, message);
|
|
20
21
|
}
|
|
21
|
-
static stopped() {
|
|
22
|
-
return new ActionResult(ResultType.Cancel,
|
|
22
|
+
static stopped(message = "Stopped") {
|
|
23
|
+
return new ActionResult(ResultType.Cancel, message);
|
|
23
24
|
}
|
|
24
25
|
getMessage() {
|
|
25
26
|
return this.message;
|
|
@@ -30,10 +31,35 @@ export class ActionResult {
|
|
|
30
31
|
isFailed() {
|
|
31
32
|
return this.resultType === ResultType.Failure;
|
|
32
33
|
}
|
|
34
|
+
isSuccess() {
|
|
35
|
+
return this.resultType === ResultType.Success;
|
|
36
|
+
}
|
|
37
|
+
isCancelled() {
|
|
38
|
+
return this.resultType === ResultType.Cancel;
|
|
39
|
+
}
|
|
40
|
+
match(onSuccess, onFailure, onCancel) {
|
|
41
|
+
switch (this.resultType) {
|
|
42
|
+
case ResultType.Success:
|
|
43
|
+
return onSuccess(this.value);
|
|
44
|
+
case ResultType.Failure:
|
|
45
|
+
return onFailure(this.message);
|
|
46
|
+
case ResultType.Cancel:
|
|
47
|
+
return onCancel(this.message);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
getValue() {
|
|
51
|
+
if (!this.isSuccess()) {
|
|
52
|
+
throw new Error(`Cannot unwrap ${ResultType[this.resultType]} result: ${this.message}`);
|
|
53
|
+
}
|
|
54
|
+
return this.value;
|
|
55
|
+
}
|
|
56
|
+
getValueOr(defaultValue) {
|
|
57
|
+
return this.isSuccess() ? this.value : defaultValue;
|
|
58
|
+
}
|
|
33
59
|
mapAll(onSuccess, onFailure, onCancel) {
|
|
34
60
|
switch (this.resultType) {
|
|
35
61
|
case ResultType.Success:
|
|
36
|
-
return onSuccess();
|
|
62
|
+
return onSuccess(this.value);
|
|
37
63
|
case ResultType.Failure:
|
|
38
64
|
return onFailure();
|
|
39
65
|
case ResultType.Cancel:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-result.js","sourceRoot":"","sources":["../../src/actions/action-result.ts"],"names":[],"mappings":"AAAA,IAAK,UAIJ;AAJD,WAAK,UAAU;IACb,
|
|
1
|
+
{"version":3,"file":"action-result.js","sourceRoot":"","sources":["../../src/actions/action-result.ts"],"names":[],"mappings":"AAAA,IAAK,UAIJ;AAJD,WAAK,UAAU;IACb,iDAAW,CAAA;IACX,iDAAY,CAAA;IACZ,iDAAW,CAAA;AACb,CAAC,EAJI,UAAU,KAAV,UAAU,QAId;AAED,MAAM,OAAO,YAAY;IAKvB,YAAoB,UAAsB,EAAE,OAAe,EAAE,KAAS;QACpE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,OAAO,CAAI,KAAS;QACzB,OAAO,IAAI,YAAY,CAAI,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,MAAM,CAAY,OAAO,GAAG,QAAQ;QACzC,OAAO,IAAI,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,SAAS,CAAY,OAAO,GAAG,WAAW;QAC/C,OAAO,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,OAAO,CAAY,OAAO,GAAG,SAAS;QAC3C,OAAO,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO,CAAC;IAChD,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO,CAAC;IAChD,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,MAAM,CAAC;IAC/C,CAAC;IAEM,KAAK,CACV,SAA0B,EAC1B,SAAiC,EACjC,QAAgC;QAEhC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;YACxB,KAAK,UAAU,CAAC,OAAO;gBACrB,OAAO,SAAS,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC;YAChC,KAAK,UAAU,CAAC,OAAO;gBACrB,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjC,KAAK,UAAU,CAAC,MAAM;gBACpB,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAEM,QAAQ;QACb,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,iBAAiB,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,IAAI,CAAC,KAAM,CAAC;IACrB,CAAC;IAEM,UAAU,CAAC,YAAe;QAC/B,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC,CAAC,YAAY,CAAC;IACvD,CAAC;IAEM,MAAM,CACX,SAA2B,EAC3B,SAAkB,EAClB,QAAiB;QAEjB,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;YACxB,KAAK,UAAU,CAAC,OAAO;gBACrB,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,KAAK,UAAU,CAAC,OAAO;gBACrB,OAAO,SAAS,EAAE,CAAC;YACrB,KAAK,UAAU,CAAC,MAAM;gBACpB,OAAO,QAAQ,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DirectoryPath } from "../../types/file/directoryPath.js";
|
|
2
2
|
import { ActionResult } from "../action-result.js";
|
|
3
|
+
import { UnallowedFeaturesResponse } from "../../infrastructure/services/validation-service.js";
|
|
3
4
|
import { CommandMetadata } from "../../types/common/command-metadata.js";
|
|
4
5
|
import { ResourceInput } from "../../types/file/resource-input.js";
|
|
5
6
|
export declare class ValidateAction {
|
|
@@ -8,5 +9,6 @@ export declare class ValidateAction {
|
|
|
8
9
|
private readonly authKey;
|
|
9
10
|
private readonly commandMetadata;
|
|
10
11
|
constructor(configDir: DirectoryPath, commandMetadata: CommandMetadata, authKey?: string | null);
|
|
11
|
-
readonly execute: (resourcePath: ResourceInput, displayValidationSummary?: boolean) => Promise<ActionResult
|
|
12
|
+
readonly execute: (resourcePath: ResourceInput, displayValidationSummary?: boolean) => Promise<ActionResult<UnallowedFeaturesResponse | null>>;
|
|
13
|
+
private hasValidationIssues;
|
|
12
14
|
}
|
|
@@ -25,17 +25,28 @@ export class ValidateAction {
|
|
|
25
25
|
}
|
|
26
26
|
const validationSummary = validationSummaryResult.value;
|
|
27
27
|
if (displayValidationSummary) {
|
|
28
|
-
this.
|
|
28
|
+
if (this.hasValidationIssues(validationSummary.result.validation)) {
|
|
29
|
+
this.prompts.displayValidationSummary(validationSummary.result.validation);
|
|
30
|
+
}
|
|
31
|
+
if (this.hasValidationIssues(validationSummary.result.linting)) {
|
|
32
|
+
this.prompts.displayValidationSummary(validationSummary.result.linting);
|
|
33
|
+
}
|
|
29
34
|
}
|
|
30
|
-
if (!validationSummary.
|
|
35
|
+
if (!validationSummary.result.validation.isSuccess || !validationSummary.result.linting.isSuccess) {
|
|
31
36
|
return ActionResult.failed();
|
|
32
37
|
}
|
|
33
|
-
return ActionResult.success();
|
|
38
|
+
return ActionResult.success(validationSummary.unallowedFeatures);
|
|
34
39
|
});
|
|
35
40
|
};
|
|
36
41
|
this.authKey = authKey;
|
|
37
42
|
this.validationService = new ValidationService(configDir);
|
|
38
43
|
this.commandMetadata = commandMetadata;
|
|
39
44
|
}
|
|
45
|
+
hasValidationIssues(summary) {
|
|
46
|
+
return (summary.blocking.length > 0 ||
|
|
47
|
+
summary.errors.length > 0 ||
|
|
48
|
+
summary.warnings.length > 0 ||
|
|
49
|
+
summary.information.length > 0);
|
|
50
|
+
}
|
|
40
51
|
}
|
|
41
52
|
//# sourceMappingURL=validate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/actions/api/validate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/actions/api/validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -76,8 +76,8 @@ export class CopilotAction {
|
|
|
76
76
|
"\n" +
|
|
77
77
|
"Ask me anything about this API or try one of these example prompts:\n" +
|
|
78
78
|
"\n" +
|
|
79
|
-
"
|
|
80
|
-
"
|
|
79
|
+
"- `What authentication methods does this API support?`\n" +
|
|
80
|
+
"- `[Enter another prompt here]`";
|
|
81
81
|
await this.fileService.writeContents(tempFile, defaultContent);
|
|
82
82
|
this.prompts.openWelcomeMessageEditor();
|
|
83
83
|
await this.launcherService.openInEditor(tempFile);
|
|
@@ -34,7 +34,13 @@ export class GenerateAction {
|
|
|
34
34
|
if (response.isErr()) {
|
|
35
35
|
const error = response.error;
|
|
36
36
|
if (error instanceof ServiceError) {
|
|
37
|
-
|
|
37
|
+
const sdkMergeFailedErrors = error.getError("sdkMergeFailed");
|
|
38
|
+
if (sdkMergeFailedErrors) {
|
|
39
|
+
this.prompts.portalGenerationSdkMergeFailed(sdkMergeFailedErrors);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
this.prompts.portalGenerationError(error.errorMessage);
|
|
43
|
+
}
|
|
38
44
|
}
|
|
39
45
|
else if (typeof error === "string") {
|
|
40
46
|
this.prompts.portalGenerationError(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/actions/portal/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAEhF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAErE,MAAM,OAAO,cAAc;IAQzB,YAAY,SAAwB,EAAE,eAAgC,EAAE,UAAyB,IAAI;QAPpF,YAAO,GAA0B,IAAI,qBAAqB,EAAE,CAAC;QAC7D,oBAAe,GAAoB,IAAI,eAAe,EAAE,CAAC;QACzD,kBAAa,GAAkB,IAAI,aAAa,EAAE,CAAC;QAWpD,YAAO,GAAG,KAAK,EAC7B,cAA6B,EAC7B,eAA8B,EAC9B,KAAc,EACd,SAAkB,EAClB,kBAA2B,IAAI,EACR,EAAE;YACzB,IAAI,cAAc,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;gBACpD,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,cAAc,CAAC,CAAC;YACtD,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,aAAa,GAAG,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC;YACzD,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;gBACvG,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC;gBACvC,OAAO,YAAY,CAAC,SAAS,EAAE,CAAC;YAClC,CAAC;YAED,OAAO,MAAM,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE;gBAC/C,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,aAAa,CAAC,CAAC;gBACnD,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAE3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAChD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,CACpG,CAAC;gBAEF,IAAI,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;oBACrB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;oBAC7B,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;wBAClC,IAAI,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/actions/portal/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DirectoryPath } from
|
|
2
|
-
import { ActionResult } from
|
|
3
|
-
import { CommandMetadata } from
|
|
1
|
+
import { DirectoryPath } from '../../types/file/directoryPath.js';
|
|
2
|
+
import { ActionResult } from '../action-result.js';
|
|
3
|
+
import { CommandMetadata } from '../../types/common/command-metadata.js';
|
|
4
4
|
export declare class PortalQuickstartAction {
|
|
5
5
|
private readonly prompts;
|
|
6
6
|
private readonly zipService;
|
|
@@ -11,6 +11,7 @@ export declare class PortalQuickstartAction {
|
|
|
11
11
|
private readonly buildFileUrl;
|
|
12
12
|
private readonly defaultSpecUrl;
|
|
13
13
|
private readonly repositoryFolderName;
|
|
14
|
+
private readonly validationService;
|
|
14
15
|
constructor(configDir: DirectoryPath, commandMetadata: CommandMetadata);
|
|
15
16
|
readonly execute: () => Promise<ActionResult>;
|
|
16
17
|
}
|
|
@@ -1,18 +1,20 @@
|
|
|
1
|
-
import { getAuthInfo } from
|
|
2
|
-
import { FileService } from
|
|
3
|
-
import { withDirPath } from
|
|
4
|
-
import { ZipService } from
|
|
5
|
-
import { PortalQuickstartPrompts } from
|
|
6
|
-
import { UrlPath } from
|
|
7
|
-
import { LoginAction } from
|
|
8
|
-
import { ActionResult } from
|
|
9
|
-
import { PortalServeAction } from
|
|
10
|
-
import { ValidateAction } from
|
|
11
|
-
import { BuildContext } from
|
|
12
|
-
import { TempContext } from
|
|
13
|
-
import { FileDownloadService } from
|
|
14
|
-
import { getLanguagesConfig } from
|
|
15
|
-
import { SpecContext } from
|
|
1
|
+
import { getAuthInfo } from '../../client-utils/auth-manager.js';
|
|
2
|
+
import { FileService } from '../../infrastructure/file-service.js';
|
|
3
|
+
import { withDirPath } from '../../infrastructure/tmp-extensions.js';
|
|
4
|
+
import { ZipService } from '../../infrastructure/zip-service.js';
|
|
5
|
+
import { PortalQuickstartPrompts } from '../../prompts/portal/quickstart.js';
|
|
6
|
+
import { UrlPath } from '../../types/file/urlPath.js';
|
|
7
|
+
import { LoginAction } from '../auth/login.js';
|
|
8
|
+
import { ActionResult } from '../action-result.js';
|
|
9
|
+
import { PortalServeAction } from './serve.js';
|
|
10
|
+
import { ValidateAction } from '../api/validate.js';
|
|
11
|
+
import { BuildContext } from '../../types/build-context.js';
|
|
12
|
+
import { TempContext } from '../../types/temp-context.js';
|
|
13
|
+
import { FileDownloadService } from '../../infrastructure/services/file-download-service.js';
|
|
14
|
+
import { getLanguagesConfig } from '../../types/build/build.js';
|
|
15
|
+
import { SpecContext } from '../../types/spec-context.js';
|
|
16
|
+
import { ValidationService } from '../../infrastructure/services/validation-service.js';
|
|
17
|
+
import { FileName } from '../../types/file/fileName.js';
|
|
16
18
|
const defaultPort = 3000;
|
|
17
19
|
export class PortalQuickstartAction {
|
|
18
20
|
constructor(configDir, commandMetadata) {
|
|
@@ -22,7 +24,7 @@ export class PortalQuickstartAction {
|
|
|
22
24
|
this.fileDownloadService = new FileDownloadService();
|
|
23
25
|
this.buildFileUrl = new UrlPath(`https://github.com/apimatic/sample-docs-as-code-portal/archive/refs/heads/master.zip`);
|
|
24
26
|
this.defaultSpecUrl = new UrlPath(`https://raw.githubusercontent.com/apimatic/sample-docs-as-code-portal/refs/heads/master/src/spec/openapi.json`);
|
|
25
|
-
this.repositoryFolderName =
|
|
27
|
+
this.repositoryFolderName = 'sample-docs-as-code-portal-master/src';
|
|
26
28
|
this.execute = async () => {
|
|
27
29
|
const storedAuth = await getAuthInfo(this.configDir.toString());
|
|
28
30
|
if (!(storedAuth === null || storedAuth === void 0 ? void 0 : storedAuth.authKey)) {
|
|
@@ -32,6 +34,7 @@ export class PortalQuickstartAction {
|
|
|
32
34
|
}
|
|
33
35
|
}
|
|
34
36
|
return await withDirPath(async (tempDirectory) => {
|
|
37
|
+
var _a;
|
|
35
38
|
// Step 1/4
|
|
36
39
|
this.prompts.importSpecStep();
|
|
37
40
|
let specPath;
|
|
@@ -80,6 +83,25 @@ export class PortalQuickstartAction {
|
|
|
80
83
|
specPath = await specContext.save(downloadFileResult.value.stream, downloadFileResult.value.filename);
|
|
81
84
|
}
|
|
82
85
|
}
|
|
86
|
+
if (validationResult.isSuccess()) {
|
|
87
|
+
const unallowed = validationResult.getValue();
|
|
88
|
+
if (unallowed && (((_a = unallowed.Features) === null || _a === void 0 ? void 0 : _a.length) > 0 || unallowed.EndpointCount > unallowed.EndpointLimit)) {
|
|
89
|
+
const config = {
|
|
90
|
+
features: unallowed.Features.filter((name) => !!name),
|
|
91
|
+
endpointsToKeep: unallowed.EndpointLimit
|
|
92
|
+
};
|
|
93
|
+
const stripUnallowedFeaturesResult = await this.validationService.stripUnallowedFeatures(specPath, config);
|
|
94
|
+
if (stripUnallowedFeaturesResult.isErr()) {
|
|
95
|
+
this.prompts.splitSpecDetected(unallowed);
|
|
96
|
+
return ActionResult.failed();
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
this.prompts.stripUnallowedFeaturesStep(unallowed);
|
|
100
|
+
const specContext = new SpecContext(tempDirectory);
|
|
101
|
+
specPath = await specContext.save(stripUnallowedFeaturesResult.value, new FileName('pruned-spec.zip'));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
83
105
|
// Step 3/4
|
|
84
106
|
this.prompts.selectLanguagesStep();
|
|
85
107
|
const languages = await this.prompts.selectLanguagesPrompt();
|
|
@@ -121,14 +143,14 @@ export class PortalQuickstartAction {
|
|
|
121
143
|
const buildFile = await tempBuildContext.getBuildFileContents();
|
|
122
144
|
buildFile.generatePortal.languageConfig = getLanguagesConfig(languages);
|
|
123
145
|
await tempBuildContext.updateBuildFileContents(buildFile);
|
|
124
|
-
const sourceDirectory = inputDirectory.join(
|
|
146
|
+
const sourceDirectory = inputDirectory.join('src');
|
|
125
147
|
await this.fileService.copyDirectoryContents(extractedFolder, sourceDirectory);
|
|
126
|
-
const specDirectory = sourceDirectory.join(
|
|
148
|
+
const specDirectory = sourceDirectory.join('spec');
|
|
127
149
|
const specContext = new SpecContext(specDirectory);
|
|
128
150
|
await specContext.replaceDefaultSpec(specPath);
|
|
129
151
|
const buildDirectoryStructure = await this.fileService.getDirectory(sourceDirectory);
|
|
130
152
|
this.prompts.printDirectoryStructure(inputDirectory, buildDirectoryStructure);
|
|
131
|
-
const portalDirectory = inputDirectory.join(
|
|
153
|
+
const portalDirectory = inputDirectory.join('portal');
|
|
132
154
|
const portalServeAction = new PortalServeAction(this.configDir, this.commandMetadata, null);
|
|
133
155
|
const result = await portalServeAction.execute(sourceDirectory, portalDirectory, defaultPort, true, false, () => {
|
|
134
156
|
this.prompts.nextSteps();
|
|
@@ -141,6 +163,7 @@ export class PortalQuickstartAction {
|
|
|
141
163
|
};
|
|
142
164
|
this.configDir = configDir;
|
|
143
165
|
this.commandMetadata = commandMetadata;
|
|
166
|
+
this.validationService = new ValidationService(this.configDir);
|
|
144
167
|
}
|
|
145
168
|
}
|
|
146
169
|
//# sourceMappingURL=quickstart.js.map
|
|
@@ -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;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../../src/actions/portal/quickstart.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,6 @@ import { createServer as createLiveReloadServer } from "livereload";
|
|
|
2
2
|
import connectLiveReload from "connect-livereload";
|
|
3
3
|
import express from "express";
|
|
4
4
|
import chokidar from "chokidar";
|
|
5
|
-
import crypto from "crypto";
|
|
6
|
-
import { Mutex } from "async-mutex";
|
|
7
5
|
import { PortalServePrompts } from "../../prompts/portal/serve.js";
|
|
8
6
|
import { ActionResult } from "../action-result.js";
|
|
9
7
|
import { GenerateAction } from "./generate.js";
|
|
@@ -62,9 +60,6 @@ export class PortalServeAction {
|
|
|
62
60
|
atomic: true
|
|
63
61
|
});
|
|
64
62
|
const deletedDirectories = new Set();
|
|
65
|
-
// TODO: Verify if we need mutex and eventQueue after refactoring.
|
|
66
|
-
const eventQueue = new Map();
|
|
67
|
-
const mutex = new Mutex();
|
|
68
63
|
const debounceService = new DebounceService();
|
|
69
64
|
watcher
|
|
70
65
|
.on("all", async (event, path) => {
|
|
@@ -79,17 +74,8 @@ export class PortalServeAction {
|
|
|
79
74
|
}
|
|
80
75
|
}
|
|
81
76
|
}
|
|
82
|
-
const eventId = `${Date.now()}-${crypto.randomUUID()}`;
|
|
83
|
-
await mutex.runExclusive(async () => {
|
|
84
|
-
eventQueue.clear();
|
|
85
|
-
eventQueue.set(eventId, path);
|
|
86
|
-
});
|
|
87
77
|
await debounceService.batchSingleRequest(async () => {
|
|
88
78
|
this.prompts.changesDetected();
|
|
89
|
-
// TODO: Verify if this is needed.
|
|
90
|
-
if (!eventQueue.has(eventId)) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
79
|
await generatePortalAction.execute(buildDirectory, portalDirectory, true, false, false);
|
|
94
80
|
liveReloadServer.refresh(portalDirectory.toString());
|
|
95
81
|
this.clearStandardInput();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/actions/portal/serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,iBAAiB,MAAM,oBAAoB,CAAC;AACnD,OAAO,OAAoB,MAAM,SAAS,CAAC;AAC3C,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/actions/portal/serve.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { TocGroup } from
|
|
2
|
-
import { DirectoryPath } from
|
|
3
|
-
import { CommandMetadata } from
|
|
4
|
-
import { ActionResult } from
|
|
1
|
+
import { TocGroup } from '../../../types/toc/toc.js';
|
|
2
|
+
import { DirectoryPath } from '../../../types/file/directoryPath.js';
|
|
3
|
+
import { CommandMetadata } from '../../../types/common/command-metadata.js';
|
|
4
|
+
import { ActionResult } from '../../action-result.js';
|
|
5
5
|
export declare class ContentContext {
|
|
6
6
|
private readonly contentDirectory;
|
|
7
7
|
private readonly fileService;
|
|
@@ -17,5 +17,5 @@ export declare class PortalNewTocAction {
|
|
|
17
17
|
private readonly fileService;
|
|
18
18
|
private readonly portalService;
|
|
19
19
|
constructor(configDirectory: DirectoryPath, commandMetadata: CommandMetadata);
|
|
20
|
-
execute(buildDirectory: DirectoryPath, tocDirectory?: DirectoryPath, force?: boolean, expandEndpoints?: boolean, expandModels?: boolean): Promise<ActionResult>;
|
|
20
|
+
execute(buildDirectory: DirectoryPath, tocDirectory?: DirectoryPath, force?: boolean, expandEndpoints?: boolean, expandModels?: boolean, expandWebhooks?: boolean, expandCallbacks?: boolean): Promise<ActionResult>;
|
|
21
21
|
}
|