@apimatic/cli 1.2.0 → 1.3.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +65 -1
- package/lib/actions/action-result.d.ts +1 -0
- package/lib/actions/action-result.js +3 -0
- package/lib/actions/action-result.js.map +1 -1
- package/lib/actions/auth/status.js +5 -1
- package/lib/actions/auth/status.js.map +1 -1
- package/lib/actions/plugin/generate.d.ts +12 -0
- package/lib/actions/plugin/generate.js +71 -0
- package/lib/actions/plugin/generate.js.map +1 -0
- package/lib/actions/plugin/publish.d.ts +6 -0
- package/lib/actions/plugin/publish.js +43 -0
- package/lib/actions/plugin/publish.js.map +1 -0
- package/lib/actions/plugin/record-metadata.d.ts +18 -0
- package/lib/actions/plugin/record-metadata.js +57 -0
- package/lib/actions/plugin/record-metadata.js.map +1 -0
- package/lib/actions/plugin/record-sdk.d.ts +14 -0
- package/lib/actions/plugin/record-sdk.js +60 -0
- package/lib/actions/plugin/record-sdk.js.map +1 -0
- package/lib/actions/portal/quickstart.js +1 -1
- package/lib/actions/portal/quickstart.js.map +1 -1
- package/lib/actions/portal/toc/new-toc.js +27 -16
- package/lib/actions/portal/toc/new-toc.js.map +1 -1
- package/lib/actions/sdk/generate.d.ts +2 -2
- package/lib/actions/sdk/generate.js +4 -4
- package/lib/actions/sdk/generate.js.map +1 -1
- package/lib/actions/sdk/publish/interactive.js +22 -3
- package/lib/actions/sdk/publish/interactive.js.map +1 -1
- package/lib/actions/sdk/publish/non-interactive.d.ts +2 -2
- package/lib/actions/sdk/publish/non-interactive.js +19 -12
- package/lib/actions/sdk/publish/non-interactive.js.map +1 -1
- package/lib/actions/sdk/publish.d.ts +2 -3
- package/lib/actions/sdk/publish.js +26 -5
- package/lib/actions/sdk/publish.js.map +1 -1
- package/lib/actions/sdk/quickstart.js +2 -2
- package/lib/actions/sdk/quickstart.js.map +1 -1
- package/lib/commands/plugin/generate.d.ts +14 -0
- package/lib/commands/plugin/generate.js +37 -0
- package/lib/commands/plugin/generate.js.map +1 -0
- package/lib/commands/plugin/publish.d.ts +11 -0
- package/lib/commands/plugin/publish.js +29 -0
- package/lib/commands/plugin/publish.js.map +1 -0
- package/lib/commands/portal/generate.js +1 -1
- package/lib/commands/portal/generate.js.map +1 -1
- package/lib/commands/quickstart.js +1 -1
- package/lib/commands/quickstart.js.map +1 -1
- package/lib/commands/sdk/generate.js +4 -3
- package/lib/commands/sdk/generate.js.map +1 -1
- package/lib/commands/sdk/publish.d.ts +3 -0
- package/lib/commands/sdk/publish.js +18 -5
- package/lib/commands/sdk/publish.js.map +1 -1
- package/lib/config/axios-config.d.ts +6 -0
- package/lib/config/axios-config.js +8 -2
- package/lib/config/axios-config.js.map +1 -1
- package/lib/infrastructure/generation-status-poller.d.ts +31 -0
- package/lib/infrastructure/generation-status-poller.js +56 -0
- package/lib/infrastructure/generation-status-poller.js.map +1 -0
- package/lib/infrastructure/service-error.d.ts +11 -1
- package/lib/infrastructure/service-error.js +102 -0
- package/lib/infrastructure/service-error.js.map +1 -1
- package/lib/infrastructure/services/api-service.d.ts +0 -4
- package/lib/infrastructure/services/api-service.js +0 -72
- package/lib/infrastructure/services/api-service.js.map +1 -1
- package/lib/infrastructure/services/plugin-service.d.ts +24 -0
- package/lib/infrastructure/services/plugin-service.js +141 -0
- package/lib/infrastructure/services/plugin-service.js.map +1 -0
- package/lib/infrastructure/services/portal-service.d.ts +16 -1
- package/lib/infrastructure/services/portal-service.js +176 -130
- package/lib/infrastructure/services/portal-service.js.map +1 -1
- package/lib/infrastructure/services/publishing-api-service.js +12 -6
- package/lib/infrastructure/services/publishing-api-service.js.map +1 -1
- package/lib/infrastructure/services/transformation-service.d.ts +1 -0
- package/lib/infrastructure/services/transformation-service.js +29 -14
- package/lib/infrastructure/services/transformation-service.js.map +1 -1
- package/lib/infrastructure/services/validation-service.js +1 -1
- package/lib/infrastructure/services/validation-service.js.map +1 -1
- package/lib/prompts/auth/login.js +9 -2
- package/lib/prompts/auth/login.js.map +1 -1
- package/lib/prompts/auth/status.d.ts +1 -0
- package/lib/prompts/auth/status.js +5 -0
- package/lib/prompts/auth/status.js.map +1 -1
- package/lib/prompts/format.d.ts +4 -3
- package/lib/prompts/format.js +14 -13
- package/lib/prompts/format.js.map +1 -1
- package/lib/prompts/plugin/generate.d.ts +19 -0
- package/lib/prompts/plugin/generate.js +64 -0
- package/lib/prompts/plugin/generate.js.map +1 -0
- package/lib/prompts/plugin/publish.d.ts +25 -0
- package/lib/prompts/plugin/publish.js +77 -0
- package/lib/prompts/plugin/publish.js.map +1 -0
- package/lib/prompts/plugin/record-metadata.d.ts +25 -0
- package/lib/prompts/plugin/record-metadata.js +70 -0
- package/lib/prompts/plugin/record-metadata.js.map +1 -0
- package/lib/prompts/plugin/record-sdk.d.ts +9 -0
- package/lib/prompts/plugin/record-sdk.js +40 -0
- package/lib/prompts/plugin/record-sdk.js.map +1 -0
- package/lib/prompts/portal/generate.js +1 -1
- package/lib/prompts/portal/generate.js.map +1 -1
- package/lib/prompts/portal/quickstart.d.ts +1 -1
- package/lib/prompts/portal/quickstart.js +12 -5
- package/lib/prompts/portal/quickstart.js.map +1 -1
- package/lib/prompts/portal/toc/new-toc.d.ts +3 -2
- package/lib/prompts/portal/toc/new-toc.js +7 -3
- package/lib/prompts/portal/toc/new-toc.js.map +1 -1
- package/lib/prompts/publishing/profile/list.js +8 -3
- package/lib/prompts/publishing/profile/list.js.map +1 -1
- package/lib/prompts/quickstart.js +4 -4
- package/lib/prompts/quickstart.js.map +1 -1
- package/lib/prompts/sdk/generate.d.ts +2 -0
- package/lib/prompts/sdk/generate.js +7 -0
- package/lib/prompts/sdk/generate.js.map +1 -1
- package/lib/prompts/sdk/publish/interactive.d.ts +6 -4
- package/lib/prompts/sdk/publish/interactive.js +25 -11
- package/lib/prompts/sdk/publish/interactive.js.map +1 -1
- package/lib/prompts/sdk/publish/non-interactive.d.ts +1 -6
- package/lib/prompts/sdk/publish/non-interactive.js +7 -49
- package/lib/prompts/sdk/publish/non-interactive.js.map +1 -1
- package/lib/prompts/sdk/publish.d.ts +15 -2
- package/lib/prompts/sdk/publish.js +71 -5
- package/lib/prompts/sdk/publish.js.map +1 -1
- package/lib/prompts/sdk/quickstart.js +2 -0
- package/lib/prompts/sdk/quickstart.js.map +1 -1
- package/lib/types/api/generation-status.d.ts +5 -0
- package/lib/types/api/generation-status.js +2 -0
- package/lib/types/api/generation-status.js.map +1 -0
- package/lib/types/build/build.d.ts +1 -0
- package/lib/types/build/build.js +14 -0
- package/lib/types/build/build.js.map +1 -1
- package/lib/types/file/directory.d.ts +3 -0
- package/lib/types/file/directory.js +13 -0
- package/lib/types/file/directory.js.map +1 -1
- package/lib/types/plugin/generation-status.d.ts +23 -0
- package/lib/types/plugin/generation-status.js +18 -0
- package/lib/types/plugin/generation-status.js.map +1 -0
- package/lib/types/plugin/language-entry.d.ts +9 -0
- package/lib/types/plugin/language-entry.js +64 -0
- package/lib/types/plugin/language-entry.js.map +1 -0
- package/lib/types/plugin/plugin-config.d.ts +72 -0
- package/lib/types/plugin/plugin-config.js +4 -0
- package/lib/types/plugin/plugin-config.js.map +1 -0
- package/lib/types/plugin/plugin-contents.d.ts +5 -0
- package/lib/types/plugin/plugin-contents.js +2 -0
- package/lib/types/plugin/plugin-contents.js.map +1 -0
- package/lib/types/plugin-config-context.d.ts +63 -0
- package/lib/types/plugin-config-context.js +179 -0
- package/lib/types/plugin-config-context.js.map +1 -0
- package/lib/types/plugin-context.d.ts +13 -0
- package/lib/types/plugin-context.js +28 -0
- package/lib/types/plugin-context.js.map +1 -0
- package/lib/types/publish/package-settings-configuration.d.ts +11 -1
- package/lib/types/publish/package-settings-configuration.js +1 -1
- package/lib/types/publish/package-settings-configuration.js.map +1 -1
- package/lib/types/publish/publishing-profile.d.ts +3 -2
- package/lib/types/publish/publishing-profile.js +24 -18
- package/lib/types/publish/publishing-profile.js.map +1 -1
- package/lib/types/publish/version.d.ts +6 -1
- package/lib/types/publish/version.js +2 -1
- package/lib/types/publish/version.js.map +1 -1
- package/lib/types/sdk/generate.d.ts +19 -0
- package/lib/types/sdk/generate.js +44 -0
- package/lib/types/sdk/generate.js.map +1 -1
- package/lib/types/toc/toc-components.d.ts +0 -1
- package/lib/types/toc/toc-components.js +0 -3
- package/lib/types/toc/toc-components.js.map +1 -1
- package/lib/types/utils.d.ts +1 -0
- package/lib/utils/utils.d.ts +1 -0
- package/lib/utils/utils.js +22 -0
- package/lib/utils/utils.js.map +1 -1
- package/package.json +6 -3
package/README.md
CHANGED
|
@@ -40,6 +40,8 @@ USAGE
|
|
|
40
40
|
* [`apimatic auth status`](#apimatic-auth-status)
|
|
41
41
|
* [`apimatic autocomplete [SHELL]`](#apimatic-autocomplete-shell)
|
|
42
42
|
* [`apimatic help [COMMAND]`](#apimatic-help-command)
|
|
43
|
+
* [`apimatic plugin generate`](#apimatic-plugin-generate)
|
|
44
|
+
* [`apimatic plugin publish`](#apimatic-plugin-publish)
|
|
43
45
|
* [`apimatic portal copilot`](#apimatic-portal-copilot)
|
|
44
46
|
* [`apimatic portal generate`](#apimatic-portal-generate)
|
|
45
47
|
* [`apimatic portal recipe new`](#apimatic-portal-recipe-new)
|
|
@@ -222,6 +224,62 @@ DESCRIPTION
|
|
|
222
224
|
|
|
223
225
|
_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/main/src/commands/help.ts)_
|
|
224
226
|
|
|
227
|
+
## `apimatic plugin generate`
|
|
228
|
+
|
|
229
|
+
Generate a Claude Code context plugin for your published SDKs.
|
|
230
|
+
|
|
231
|
+
```
|
|
232
|
+
USAGE
|
|
233
|
+
$ apimatic plugin generate [-i <value>] [-d <value>] [-f] [-k <value>]
|
|
234
|
+
|
|
235
|
+
FLAGS
|
|
236
|
+
-d, --destination=<value> [default: <input>/plugin] path where the plugin will be generated.
|
|
237
|
+
-f, --force overwrite changes without asking for user consent.
|
|
238
|
+
-i, --input=<value> [default: ./] path to the parent directory containing the 'src' directory, which includes
|
|
239
|
+
API specifications and configuration files.
|
|
240
|
+
-k, --auth-key=<value> override current authentication state with an authentication key.
|
|
241
|
+
|
|
242
|
+
DESCRIPTION
|
|
243
|
+
Generate a Claude Code context plugin for your published SDKs.
|
|
244
|
+
|
|
245
|
+
Generate a context plugin that teaches an AI coding assistant how to use your SDKs. Requires an input directory
|
|
246
|
+
containing a `src` directory with a `plugin-config.json`.
|
|
247
|
+
|
|
248
|
+
EXAMPLES
|
|
249
|
+
apimatic plugin generate
|
|
250
|
+
|
|
251
|
+
apimatic plugin generate --input="./" --destination="./plugin"
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
_See code: [src/commands/plugin/generate.ts](https://github.com/apimatic/apimatic-cli/blob/beta/src/commands/plugin/generate.ts)_
|
|
255
|
+
|
|
256
|
+
## `apimatic plugin publish`
|
|
257
|
+
|
|
258
|
+
Print the git commands for publishing your context plugin to GitHub.
|
|
259
|
+
|
|
260
|
+
```
|
|
261
|
+
USAGE
|
|
262
|
+
$ apimatic plugin publish [-i <value>] [-d <value>]
|
|
263
|
+
|
|
264
|
+
FLAGS
|
|
265
|
+
-d, --destination=<value> [default: <input>/plugin] path where the plugin was generated.
|
|
266
|
+
-i, --input=<value> [default: ./] path to the parent directory containing the 'src' directory, which includes
|
|
267
|
+
API specifications and configuration files.
|
|
268
|
+
|
|
269
|
+
DESCRIPTION
|
|
270
|
+
Print the git commands for publishing your context plugin to GitHub.
|
|
271
|
+
|
|
272
|
+
Print the commands that publish a generated context plugin to a GitHub repository. The commands are printed for you to
|
|
273
|
+
run — this command never touches your repository.
|
|
274
|
+
|
|
275
|
+
EXAMPLES
|
|
276
|
+
apimatic plugin publish
|
|
277
|
+
|
|
278
|
+
apimatic plugin publish --input="./" --destination="./plugin"
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
_See code: [src/commands/plugin/publish.ts](https://github.com/apimatic/apimatic-cli/blob/beta/src/commands/plugin/publish.ts)_
|
|
282
|
+
|
|
225
283
|
## `apimatic portal copilot`
|
|
226
284
|
|
|
227
285
|
Configure API Copilot for your API Documentation portal
|
|
@@ -477,7 +535,7 @@ Generate and publish an SDK to a package registry and/or source repository
|
|
|
477
535
|
```
|
|
478
536
|
USAGE
|
|
479
537
|
$ apimatic sdk publish [-p <value>] [-v <value>] [-d <value>] [-l csharp|java|php|python|ruby|typescript] [-f]
|
|
480
|
-
[-i <value>] [--publish-type package|sourcecode...] [--dry-run]
|
|
538
|
+
[-i <value>] [--publish-type package|sourcecode...] [--dry-run] [--codegen-version v3|v4] [--stability stable|beta]
|
|
481
539
|
|
|
482
540
|
FLAGS
|
|
483
541
|
-d, --destination=<value> [default: <input>/sdk] path where the sdk will be generated.
|
|
@@ -488,10 +546,14 @@ FLAGS
|
|
|
488
546
|
<options: csharp|java|php|python|ruby|typescript>
|
|
489
547
|
-p, --profile-id=<value> Id of the publishing profile to use.
|
|
490
548
|
-v, --version=<value> Semantic version of the SDK to publish (e.g. 1.0.0).
|
|
549
|
+
--codegen-version=<option> [default: v3] Version of the code generator to use
|
|
550
|
+
<options: v3|v4>
|
|
491
551
|
--dry-run Generate the SDK locally for review without publishing.
|
|
492
552
|
--publish-type=<option>... One or more publishing targets: 'package' for a package registry, 'sourcecode' for a
|
|
493
553
|
git repository.
|
|
494
554
|
<options: package|sourcecode>
|
|
555
|
+
--stability=<option> [default: stable] Stability level of the generated SDK
|
|
556
|
+
<options: stable|beta>
|
|
495
557
|
|
|
496
558
|
DESCRIPTION
|
|
497
559
|
Generate and publish an SDK to a package registry and/or source repository
|
|
@@ -508,6 +570,8 @@ EXAMPLES
|
|
|
508
570
|
apimatic sdk publish --profile-id=b2c3d4e5f6a1b2c3d4e5f6a1 --language=java --version=2.0.0 --publish-type=sourcecode
|
|
509
571
|
|
|
510
572
|
apimatic sdk publish --profile-id=c3d4e5f6a1b2c3d4e5f6a1b2 --language=python --version=1.0.0 --publish-type=package --dry-run
|
|
573
|
+
|
|
574
|
+
apimatic sdk publish --profile-id=d4e5f6a1b2c3d4e5f6a1b2c3 --language=csharp --version=1.0.0 --publish-type=package --codegen-version=v4 --stability=beta
|
|
511
575
|
```
|
|
512
576
|
|
|
513
577
|
_See code: [src/commands/sdk/publish.ts](https://github.com/apimatic/apimatic-cli/blob/beta/src/commands/sdk/publish.ts)_
|
|
@@ -15,5 +15,6 @@ export declare class ActionResult<T = void> {
|
|
|
15
15
|
match<R>(onSuccess: (value: T) => R, onFailure: (message: string) => R, onCancel: (message: string) => R): R;
|
|
16
16
|
getValue(): T;
|
|
17
17
|
getValueOr(defaultValue: T): T;
|
|
18
|
+
discardValue(): ActionResult;
|
|
18
19
|
mapAll<R>(onSuccess: (value?: T) => R, onFailure: () => R, onCancel: () => R): R;
|
|
19
20
|
}
|
|
@@ -56,6 +56,9 @@ export class ActionResult {
|
|
|
56
56
|
getValueOr(defaultValue) {
|
|
57
57
|
return this.isSuccess() ? this.value : defaultValue;
|
|
58
58
|
}
|
|
59
|
+
discardValue() {
|
|
60
|
+
return new ActionResult(this.resultType, this.message);
|
|
61
|
+
}
|
|
59
62
|
mapAll(onSuccess, onFailure, onCancel) {
|
|
60
63
|
switch (this.resultType) {
|
|
61
64
|
case ResultType.Success:
|
|
@@ -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,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
|
+
{"version":3,"file":"action-result.js","sourceRoot":"","sources":["../../src/actions/action-result.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,11 @@ export class StatusAction {
|
|
|
11
11
|
}
|
|
12
12
|
async execute(authKey) {
|
|
13
13
|
const accountInfo = await getAuthInfo(this.configDir.toString());
|
|
14
|
-
|
|
14
|
+
// `auth logout` blanks config.json rather than deleting it, so a logged-out user still
|
|
15
|
+
// has a non-null AuthInfo with an empty key. Checking the key catches both that and a
|
|
16
|
+
// missing config file, and avoids a request that can only come back 401.
|
|
17
|
+
if (!(accountInfo === null || accountInfo === void 0 ? void 0 : accountInfo.authKey)) {
|
|
18
|
+
this.prompts.notLoggedIn();
|
|
15
19
|
return ActionResult.failed();
|
|
16
20
|
}
|
|
17
21
|
const result = await this.prompts.accountInfoSpinner(this.apiService.getAccountInfo(this.configDir, this.commandMetadata.shell, authKey));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/actions/auth/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAE1E,MAAM,OAAO,YAAY;IAIvB,YAA6B,SAAwB,EAAmB,eAAgC;QAA3E,cAAS,GAAT,SAAS,CAAe;QAAmB,oBAAe,GAAf,eAAe,CAAiB;QAHvF,YAAO,GAAG,IAAI,aAAa,EAAE,CAAC;QAC9B,eAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IAE4D,CAAC;IAErG,KAAK,CAAC,OAAO,CAAC,OAAsB;QACzC,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjE,IAAI,WAAW,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/actions/auth/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAE1E,MAAM,OAAO,YAAY;IAIvB,YAA6B,SAAwB,EAAmB,eAAgC;QAA3E,cAAS,GAAT,SAAS,CAAe;QAAmB,oBAAe,GAAf,eAAe,CAAiB;QAHvF,YAAO,GAAG,IAAI,aAAa,EAAE,CAAC;QAC9B,eAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IAE4D,CAAC;IAErG,KAAK,CAAC,OAAO,CAAC,OAAsB;QACzC,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjE,uFAAuF;QACvF,sFAAsF;QACtF,yEAAyE;QACzE,IAAI,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,CAAA,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC3B,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;QAC/B,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAClD,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CACpF,CAAC;QACF,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9C,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,YAAY,CAAC,OAAO,EAAE,CAAC;IAChC,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CommandMetadata } from '../../types/common/command-metadata.js';
|
|
2
|
+
import { DirectoryPath } from '../../types/file/directoryPath.js';
|
|
3
|
+
import { ActionResult } from '../action-result.js';
|
|
4
|
+
export declare class PluginGenerateAction {
|
|
5
|
+
private readonly prompts;
|
|
6
|
+
private readonly pluginService;
|
|
7
|
+
private readonly configDir;
|
|
8
|
+
private readonly commandMetadata;
|
|
9
|
+
private readonly authKey;
|
|
10
|
+
constructor(configDir: DirectoryPath, commandMetadata: CommandMetadata, authKey?: string | null);
|
|
11
|
+
readonly execute: (buildDirectory: DirectoryPath, pluginDirectory: DirectoryPath, force: boolean) => Promise<ActionResult>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { withDirPath } from '../../infrastructure/tmp-extensions.js';
|
|
2
|
+
import { PluginService } from '../../infrastructure/services/plugin-service.js';
|
|
3
|
+
import { PluginGeneratePrompts } from '../../prompts/plugin/generate.js';
|
|
4
|
+
import { BuildContext } from '../../types/build-context.js';
|
|
5
|
+
import { PluginConfigContext } from '../../types/plugin-config-context.js';
|
|
6
|
+
import { PluginContext } from '../../types/plugin-context.js';
|
|
7
|
+
import { TempContext } from '../../types/temp-context.js';
|
|
8
|
+
import { ActionResult } from '../action-result.js';
|
|
9
|
+
import { PluginRecordMetadataAction } from './record-metadata.js';
|
|
10
|
+
export class PluginGenerateAction {
|
|
11
|
+
constructor(configDir, commandMetadata, authKey = null) {
|
|
12
|
+
this.prompts = new PluginGeneratePrompts();
|
|
13
|
+
this.pluginService = new PluginService();
|
|
14
|
+
this.execute = async (buildDirectory, pluginDirectory, force) => {
|
|
15
|
+
if (buildDirectory.isEqual(pluginDirectory)) {
|
|
16
|
+
this.prompts.directoryCannotBeSame(pluginDirectory);
|
|
17
|
+
return ActionResult.failed();
|
|
18
|
+
}
|
|
19
|
+
const buildContext = new BuildContext(buildDirectory);
|
|
20
|
+
if (!(await buildContext.validate())) {
|
|
21
|
+
this.prompts.srcDirectoryEmpty(buildDirectory);
|
|
22
|
+
return ActionResult.failed();
|
|
23
|
+
}
|
|
24
|
+
const pluginContext = new PluginContext(pluginDirectory);
|
|
25
|
+
if (!force && (await pluginContext.exists()) && !(await this.prompts.overwritePlugin(pluginDirectory))) {
|
|
26
|
+
this.prompts.pluginDirectoryNotEmpty();
|
|
27
|
+
return ActionResult.cancelled();
|
|
28
|
+
}
|
|
29
|
+
let configState = await new PluginConfigContext(buildDirectory).getPluginConfigState();
|
|
30
|
+
if (configState.state === 'unreadable') {
|
|
31
|
+
this.prompts.pluginConfigUnreadable(configState.reason, configState.path);
|
|
32
|
+
return ActionResult.failed();
|
|
33
|
+
}
|
|
34
|
+
if (configState.state === 'missing' || !configState.hasMetadata()) {
|
|
35
|
+
const metadataResult = await new PluginRecordMetadataAction(this.configDir, this.commandMetadata, this.authKey).execute(buildDirectory);
|
|
36
|
+
if (metadataResult.isCancelled()) {
|
|
37
|
+
this.prompts.metadataCancelled(metadataResult.getMessage());
|
|
38
|
+
return ActionResult.cancelled();
|
|
39
|
+
}
|
|
40
|
+
if (!metadataResult.isSuccess()) {
|
|
41
|
+
return metadataResult.discardValue();
|
|
42
|
+
}
|
|
43
|
+
configState = metadataResult.getValue();
|
|
44
|
+
}
|
|
45
|
+
if (!configState.hasPublishedSdks()) {
|
|
46
|
+
this.prompts.noPublishedSdks();
|
|
47
|
+
this.prompts.nextStepsPublishSdks();
|
|
48
|
+
return ActionResult.success();
|
|
49
|
+
}
|
|
50
|
+
return await withDirPath(async (tempDirectory) => {
|
|
51
|
+
const tempContext = new TempContext(tempDirectory);
|
|
52
|
+
const buildZipPath = await tempContext.zip(buildDirectory);
|
|
53
|
+
const response = await this.prompts.generatePlugin(this.pluginService.generatePlugin(buildZipPath, this.configDir, this.commandMetadata, this.authKey));
|
|
54
|
+
if (response.isErr()) {
|
|
55
|
+
this.prompts.pluginGenerationError(response.error.errorMessage);
|
|
56
|
+
return ActionResult.failed();
|
|
57
|
+
}
|
|
58
|
+
const tempPluginZipPath = await tempContext.save(response.value);
|
|
59
|
+
await pluginContext.save(tempPluginZipPath);
|
|
60
|
+
this.prompts.pluginGenerated(pluginDirectory);
|
|
61
|
+
this.prompts.tryPluginInClaudeCode(pluginDirectory);
|
|
62
|
+
this.prompts.nextStepsPublishPlugin();
|
|
63
|
+
return ActionResult.success();
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
this.configDir = configDir;
|
|
67
|
+
this.commandMetadata = commandMetadata;
|
|
68
|
+
this.authKey = authKey;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=generate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/actions/plugin/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DirectoryPath } from '../../types/file/directoryPath.js';
|
|
2
|
+
import { ActionResult } from '../action-result.js';
|
|
3
|
+
export declare class PluginPublishAction {
|
|
4
|
+
private readonly prompts;
|
|
5
|
+
readonly execute: (buildDirectory: DirectoryPath, pluginDirectory: DirectoryPath) => Promise<ActionResult>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { PluginPublishPrompts } from '../../prompts/plugin/publish.js';
|
|
2
|
+
import { PluginConfigContext } from '../../types/plugin-config-context.js';
|
|
3
|
+
import { PluginContext } from '../../types/plugin-context.js';
|
|
4
|
+
import { ActionResult } from '../action-result.js';
|
|
5
|
+
export class PluginPublishAction {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.prompts = new PluginPublishPrompts();
|
|
8
|
+
this.execute = async (buildDirectory, pluginDirectory) => {
|
|
9
|
+
if (buildDirectory.isEqual(pluginDirectory)) {
|
|
10
|
+
this.prompts.directoryCannotBeSame(pluginDirectory);
|
|
11
|
+
return ActionResult.failed();
|
|
12
|
+
}
|
|
13
|
+
const pluginContext = new PluginContext(pluginDirectory);
|
|
14
|
+
if (!(await pluginContext.exists())) {
|
|
15
|
+
this.prompts.pluginNotGenerated(pluginDirectory);
|
|
16
|
+
return ActionResult.failed();
|
|
17
|
+
}
|
|
18
|
+
const configState = await new PluginConfigContext(buildDirectory).getPluginConfigState();
|
|
19
|
+
if (configState.state === 'unreadable') {
|
|
20
|
+
this.prompts.pluginConfigUnreadable(configState.reason, configState.path);
|
|
21
|
+
return ActionResult.failed();
|
|
22
|
+
}
|
|
23
|
+
if (configState.state === 'missing') {
|
|
24
|
+
this.prompts.pluginConfigMissing(buildDirectory);
|
|
25
|
+
return ActionResult.failed();
|
|
26
|
+
}
|
|
27
|
+
const release = configState.getRelease();
|
|
28
|
+
if (!release) {
|
|
29
|
+
this.prompts.pluginDetailsNotSet();
|
|
30
|
+
return ActionResult.failed();
|
|
31
|
+
}
|
|
32
|
+
const contents = await pluginContext.describeContents();
|
|
33
|
+
if (await pluginContext.isGitInitialized()) {
|
|
34
|
+
this.prompts.updateInstructions(release, contents, pluginDirectory);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this.prompts.firstPublishInstructions(release, contents, pluginDirectory);
|
|
38
|
+
}
|
|
39
|
+
return ActionResult.success();
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=publish.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/actions/plugin/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,OAAO,mBAAmB;IAAhC;QACmB,YAAO,GAAyB,IAAI,oBAAoB,EAAE,CAAC;QAE5D,YAAO,GAAG,KAAK,EAC7B,cAA6B,EAC7B,eAA8B,EACP,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,aAAa,GAAG,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC;YACzD,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;gBACjD,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,IAAI,mBAAmB,CAAC,cAAc,CAAC,CAAC,oBAAoB,EAAE,CAAC;YACzF,IAAI,WAAW,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;gBACvC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC1E,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;gBACjD,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;YACzC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;gBACnC,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,gBAAgB,EAAE,CAAC;YAExD,IAAI,MAAM,aAAa,CAAC,gBAAgB,EAAE,EAAE,CAAC;gBAC3C,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;YACtE,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;YAC5E,CAAC;YAED,OAAO,YAAY,CAAC,OAAO,EAAE,CAAC;QAChC,CAAC,CAAC;IACJ,CAAC;CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { CommandMetadata } from '../../types/common/command-metadata.js';
|
|
2
|
+
import { DirectoryPath } from '../../types/file/directoryPath.js';
|
|
3
|
+
import { PluginConfigPresent } from '../../types/plugin-config-context.js';
|
|
4
|
+
import { ActionResult } from '../action-result.js';
|
|
5
|
+
/**
|
|
6
|
+
* Only `plugin generate` writes the plugin's identity: `sdk publish` records languages and leaves
|
|
7
|
+
* identity alone, so a project can be published from long before anyone decides to build a context
|
|
8
|
+
* plugin.
|
|
9
|
+
*/
|
|
10
|
+
export declare class PluginRecordMetadataAction {
|
|
11
|
+
private readonly prompts;
|
|
12
|
+
private readonly apiService;
|
|
13
|
+
private readonly configDir;
|
|
14
|
+
private readonly commandMetadata;
|
|
15
|
+
private readonly authKey;
|
|
16
|
+
constructor(configDir: DirectoryPath, commandMetadata: CommandMetadata, authKey?: string | null);
|
|
17
|
+
readonly execute: (buildDirectory: DirectoryPath) => Promise<ActionResult<PluginConfigPresent>>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { ApiService } from '../../infrastructure/services/api-service.js';
|
|
2
|
+
import { PluginRecordMetadataPrompts } from '../../prompts/plugin/record-metadata.js';
|
|
3
|
+
import { PluginConfigContext } from '../../types/plugin-config-context.js';
|
|
4
|
+
import { ActionResult } from '../action-result.js';
|
|
5
|
+
/**
|
|
6
|
+
* Suggested in the prompts as an example of the shape each field takes.
|
|
7
|
+
*/
|
|
8
|
+
const DEFAULT_METADATA = {
|
|
9
|
+
pluginId: 'acme-payments',
|
|
10
|
+
pluginName: 'Acme Payments',
|
|
11
|
+
pluginVersion: '0.1.0'
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Only `plugin generate` writes the plugin's identity: `sdk publish` records languages and leaves
|
|
15
|
+
* identity alone, so a project can be published from long before anyone decides to build a context
|
|
16
|
+
* plugin.
|
|
17
|
+
*/
|
|
18
|
+
export class PluginRecordMetadataAction {
|
|
19
|
+
constructor(configDir, commandMetadata, authKey = null) {
|
|
20
|
+
this.prompts = new PluginRecordMetadataPrompts();
|
|
21
|
+
this.apiService = new ApiService();
|
|
22
|
+
this.execute = async (buildDirectory) => {
|
|
23
|
+
const input = await this.prompts.inputPluginMetadata(DEFAULT_METADATA);
|
|
24
|
+
if ('cancelled' in input) {
|
|
25
|
+
return ActionResult.cancelled(input.cancelled);
|
|
26
|
+
}
|
|
27
|
+
const metadata = input.metadata;
|
|
28
|
+
const account = await this.prompts.spinnerAccountInfo(this.apiService.getAccountInfo(this.configDir, this.commandMetadata.shell, this.authKey));
|
|
29
|
+
if (account.isErr()) {
|
|
30
|
+
this.prompts.accountInfoUnavailable();
|
|
31
|
+
}
|
|
32
|
+
const author = account.isOk() ? authorOf(account.value) : undefined;
|
|
33
|
+
const writeResult = await new PluginConfigContext(buildDirectory).upsertMetadata(metadata, author);
|
|
34
|
+
if (writeResult.isErr()) {
|
|
35
|
+
switch (writeResult.error) {
|
|
36
|
+
case 'unreadable':
|
|
37
|
+
this.prompts.pluginConfigUnreadable();
|
|
38
|
+
return ActionResult.failed();
|
|
39
|
+
case 'unwritable':
|
|
40
|
+
this.prompts.pluginConfigNotWritten();
|
|
41
|
+
return ActionResult.failed();
|
|
42
|
+
default:
|
|
43
|
+
throw writeResult.error;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
this.prompts.metadataRecorded(metadata);
|
|
47
|
+
return ActionResult.success(writeResult.value);
|
|
48
|
+
};
|
|
49
|
+
this.configDir = configDir;
|
|
50
|
+
this.commandMetadata = commandMetadata;
|
|
51
|
+
this.authKey = authKey;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function authorOf(account) {
|
|
55
|
+
return account.FullName ? { name: account.FullName, email: account.Email || undefined } : undefined;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=record-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-metadata.js","sourceRoot":"","sources":["../../../src/actions/plugin/record-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAC1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AAKtF,OAAO,EAAE,mBAAmB,EAAuB,MAAM,sCAAsC,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;GAEG;AACH,MAAM,gBAAgB,GAAmB;IACvC,QAAQ,EAAE,eAAe;IACzB,UAAU,EAAE,eAAe;IAC3B,aAAa,EAAE,OAAO;CACvB,CAAC;AAEF;;;;GAIG;AACH,MAAM,OAAO,0BAA0B;IAOrC,YAAY,SAAwB,EAAE,eAAgC,EAAE,UAAyB,IAAI;QANpF,YAAO,GAAgC,IAAI,2BAA2B,EAAE,CAAC;QACzE,eAAU,GAAe,IAAI,UAAU,EAAE,CAAC;QAW3C,YAAO,GAAG,KAAK,EAC7B,cAA6B,EACe,EAAE;YAC9C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;YACvE,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;gBACzB,OAAO,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YAChC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CACnD,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CACzF,CAAC;YACF,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBACpB,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;YACxC,CAAC;YAED,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,MAAM,WAAW,GAAG,MAAM,IAAI,mBAAmB,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACnG,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC;gBACxB,QAAQ,WAAW,CAAC,KAAK,EAAE,CAAC;oBAC1B,KAAK,YAAY;wBACf,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;wBACtC,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;oBAC/B,KAAK,YAAY;wBACf,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;wBACtC,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;oBAC/B;wBACE,MAAM,WAAW,CAAC,KAAqB,CAAC;gBAC5C,CAAC;YACH,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACxC,OAAO,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC;QAtCA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CAoCF;AAED,SAAS,QAAQ,CAAC,OAAyB;IACzC,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACtG,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { DirectoryPath } from '../../types/file/directoryPath.js';
|
|
2
|
+
import { PublishType } from '../../types/publish-api/publishing-profile-item.js';
|
|
3
|
+
import { PublishingProfile } from '../../types/publish/publishing-profile.js';
|
|
4
|
+
import { SemVersion } from '../../types/publish/version.js';
|
|
5
|
+
import { CodeGenerationVersion, Language } from '../../types/sdk/generate.js';
|
|
6
|
+
import { ActionResult } from '../action-result.js';
|
|
7
|
+
/**
|
|
8
|
+
* Callers discard the result: this runs after a publish that already succeeded, and no outcome here
|
|
9
|
+
* may change that.
|
|
10
|
+
*/
|
|
11
|
+
export declare class PluginRecordSdkAction {
|
|
12
|
+
private readonly prompts;
|
|
13
|
+
readonly execute: (buildDirectory: DirectoryPath, language: Language, publishingProfile: PublishingProfile, publishTypes: PublishType[], packageVersion: SemVersion, codegenVersion: CodeGenerationVersion, isInteractive: boolean) => Promise<ActionResult>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { PluginRecordSdkPrompts } from '../../prompts/plugin/record-sdk.js';
|
|
2
|
+
import { buildLanguageEntry } from '../../types/plugin/language-entry.js';
|
|
3
|
+
import { PluginConfigContext } from '../../types/plugin-config-context.js';
|
|
4
|
+
import { PublishType } from '../../types/publish-api/publishing-profile-item.js';
|
|
5
|
+
import { ActionResult } from '../action-result.js';
|
|
6
|
+
/**
|
|
7
|
+
* Callers discard the result: this runs after a publish that already succeeded, and no outcome here
|
|
8
|
+
* may change that.
|
|
9
|
+
*/
|
|
10
|
+
export class PluginRecordSdkAction {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.prompts = new PluginRecordSdkPrompts();
|
|
13
|
+
this.execute = async (buildDirectory, language, publishingProfile, publishTypes, packageVersion, codegenVersion, isInteractive) => {
|
|
14
|
+
// The entry has to describe what this run published, not what the profile happens to enable.
|
|
15
|
+
// A package-only run must not claim a repository it never pushed to, nor a source-only run a
|
|
16
|
+
// package that was never released.
|
|
17
|
+
const entry = buildLanguageEntry(language, publishTypes.includes(PublishType.SourceCodePublishing)
|
|
18
|
+
? publishingProfile.getGitConfigurationForLanguage(language)
|
|
19
|
+
: undefined, publishTypes.includes(PublishType.PackagePublishing)
|
|
20
|
+
? publishingProfile.getPackageConfigurationDataForLanguage(language)
|
|
21
|
+
: undefined, packageVersion, codegenVersion);
|
|
22
|
+
const pluginConfigContext = new PluginConfigContext(buildDirectory);
|
|
23
|
+
const configState = await pluginConfigContext.getPluginConfigState();
|
|
24
|
+
if (configState.state === 'unreadable') {
|
|
25
|
+
this.prompts.pluginConfigUnreadable(configState.reason);
|
|
26
|
+
return ActionResult.failed();
|
|
27
|
+
}
|
|
28
|
+
const configExisted = configState.state === 'present';
|
|
29
|
+
if (configExisted) {
|
|
30
|
+
const result = configState.assertNoCodegenVersionMismatch(codegenVersion, language, entry);
|
|
31
|
+
if (result.isErr()) {
|
|
32
|
+
this.prompts.codegenVersionMismatch(language, result.error.actual, result.error.expected);
|
|
33
|
+
if (isInteractive && !(await this.prompts.confirmCodegenVersionOverwrite())) {
|
|
34
|
+
return ActionResult.cancelled();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (!entry.source && (!configExisted || configState.hasNoSourceRepository(language))) {
|
|
39
|
+
this.prompts.noSourceRepository(language);
|
|
40
|
+
}
|
|
41
|
+
const writeResult = await pluginConfigContext.upsertLanguage(language, entry);
|
|
42
|
+
if (writeResult.isErr()) {
|
|
43
|
+
switch (writeResult.error) {
|
|
44
|
+
// Readable a moment ago, so this only happens if the file changed underneath us.
|
|
45
|
+
case 'unreadable':
|
|
46
|
+
this.prompts.pluginConfigUnreadable();
|
|
47
|
+
return ActionResult.failed();
|
|
48
|
+
case 'unwritable':
|
|
49
|
+
this.prompts.pluginConfigNotWritten();
|
|
50
|
+
return ActionResult.failed();
|
|
51
|
+
default:
|
|
52
|
+
throw writeResult.error;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
this.prompts.sdkRecorded(language, configExisted);
|
|
56
|
+
return ActionResult.success();
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=record-sdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-sdk.js","sourceRoot":"","sources":["../../../src/actions/plugin/record-sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -222,7 +222,7 @@ export class PortalQuickstartAction {
|
|
|
222
222
|
const portalDirectory = inputDirectory.join('portal');
|
|
223
223
|
const portalServeAction = new PortalServeAction(this.configDir, this.commandMetadata, null);
|
|
224
224
|
const result = await portalServeAction.execute(sourceDirectory, portalDirectory, defaultPort, true, false, () => {
|
|
225
|
-
this.prompts.nextSteps();
|
|
225
|
+
this.prompts.nextSteps(prunedConfig.hasAiIntegration());
|
|
226
226
|
});
|
|
227
227
|
if (result.isFailed()) {
|
|
228
228
|
return ActionResult.failed();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../../src/actions/portal/quickstart.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../../src/actions/portal/quickstart.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ import { TocComponents } from '../../../types/toc/toc-components.js';
|
|
|
8
8
|
import { withDirPath } from '../../../infrastructure/tmp-extensions.js';
|
|
9
9
|
import { TempContext } from '../../../types/temp-context.js';
|
|
10
10
|
import { PortalService } from '../../../infrastructure/services/portal-service.js';
|
|
11
|
+
import { err, ok } from 'neverthrow';
|
|
11
12
|
export class ContentContext {
|
|
12
13
|
constructor(contentDirectory) {
|
|
13
14
|
this.contentDirectory = contentDirectory;
|
|
@@ -37,6 +38,15 @@ export class PortalNewTocAction {
|
|
|
37
38
|
this.prompts.invalidBuildDirectory(buildDirectory);
|
|
38
39
|
return ActionResult.failed();
|
|
39
40
|
}
|
|
41
|
+
const specDirectory = buildDirectory.join('spec');
|
|
42
|
+
if (!(await this.fileService.directoryExists(specDirectory))) {
|
|
43
|
+
this.prompts.specDirectoryNotFound(buildDirectory);
|
|
44
|
+
return ActionResult.failed();
|
|
45
|
+
}
|
|
46
|
+
if (!(await buildContext.getSpecContext().validate())) {
|
|
47
|
+
this.prompts.specDirectoryEmpty(buildDirectory);
|
|
48
|
+
return ActionResult.failed();
|
|
49
|
+
}
|
|
40
50
|
const buildConfig = await buildContext.getBuildFileContents();
|
|
41
51
|
const contentDirectory = buildDirectory.join(buildConfig.contentFolder());
|
|
42
52
|
const tocDir = tocDirectory !== null && tocDirectory !== void 0 ? tocDirectory : contentDirectory;
|
|
@@ -45,25 +55,26 @@ export class PortalNewTocAction {
|
|
|
45
55
|
this.prompts.tocFileAlreadyExists();
|
|
46
56
|
return ActionResult.cancelled();
|
|
47
57
|
}
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
return await withDirPath(async (tempDirectory) => {
|
|
55
|
-
const tempContext = new TempContext(tempDirectory);
|
|
56
|
-
const specZipPath = await tempContext.zip(specDirectory);
|
|
57
|
-
const specFileStream = await this.fileService.getStream(specZipPath);
|
|
58
|
+
const tocComponentsResult = await withDirPath(async (tempDirectory) => {
|
|
59
|
+
const tempContext = new TempContext(tempDirectory);
|
|
60
|
+
const specZipPath = await tempContext.zip(specDirectory);
|
|
61
|
+
const specFileStream = await this.fileService.getStream(specZipPath);
|
|
62
|
+
try {
|
|
58
63
|
const result = await this.prompts.extractTocData(this.portalService.generateTocData(specFileStream, this.configDirectory, this.commandMetadata), expandEndpoints, expandModels, expandWebhooks, expandCallbacks);
|
|
59
|
-
specFileStream.close();
|
|
60
64
|
if (result.isErr()) {
|
|
61
|
-
|
|
62
|
-
return TocComponents.empty();
|
|
65
|
+
return err(result.error);
|
|
63
66
|
}
|
|
64
|
-
return TocComponents.fromTocData(result.value);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
+
return ok(TocComponents.fromTocData(result.value));
|
|
68
|
+
}
|
|
69
|
+
finally {
|
|
70
|
+
specFileStream.close();
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
if (tocComponentsResult.isErr()) {
|
|
74
|
+
this.prompts.tocExtractionFailed(tocComponentsResult.error.errorMessage);
|
|
75
|
+
return ActionResult.failed();
|
|
76
|
+
}
|
|
77
|
+
const tocComponents = tocComponentsResult.value;
|
|
67
78
|
const contentContext = new ContentContext(contentDirectory);
|
|
68
79
|
const contentExists = await contentContext.exists();
|
|
69
80
|
let contentGroups;
|