@apimatic/cli 1.2.1 → 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/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/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/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 +10 -1
- package/lib/infrastructure/service-error.js +47 -0
- package/lib/infrastructure/service-error.js.map +1 -1
- package/lib/infrastructure/services/api-service.d.ts +0 -7
- package/lib/infrastructure/services/api-service.js +0 -42
- 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 -8
- package/lib/infrastructure/services/portal-service.js +147 -39
- package/lib/infrastructure/services/portal-service.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/publishing/profile/list.js +8 -3
- package/lib/prompts/publishing/profile/list.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/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/utils.d.ts +1 -0
- package/package.json +6 -3
- package/lib/types/api/generation-status-endpoint.d.ts +0 -8
- package/lib/types/api/generation-status-endpoint.js +0 -12
- package/lib/types/api/generation-status-endpoint.js.map +0 -1
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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"}
|
|
@@ -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":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,oDAAoD,CAAC;AAIjF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;;GAGG;AACH,MAAM,OAAO,qBAAqB;IAAlC;QACmB,YAAO,GAA2B,IAAI,sBAAsB,EAAE,CAAC;QAEhE,YAAO,GAAG,KAAK,EAC7B,cAA6B,EAC7B,QAAkB,EAClB,iBAAoC,EACpC,YAA2B,EAC3B,cAA0B,EAC1B,cAAqC,EACrC,aAAsB,EACC,EAAE;YACzB,6FAA6F;YAC7F,6FAA6F;YAC7F,mCAAmC;YACnC,MAAM,KAAK,GAAG,kBAAkB,CAC9B,QAAQ,EACR,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,oBAAoB,CAAC;gBACrD,CAAC,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,QAAQ,CAAC;gBAC5D,CAAC,CAAC,SAAS,EACb,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CAAC;gBAClD,CAAC,CAAC,iBAAiB,CAAC,sCAAsC,CAAC,QAAQ,CAAC;gBACpE,CAAC,CAAC,SAAS,EACb,cAAc,EACd,cAAc,CACf,CAAC;YAEF,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,cAAc,CAAC,CAAC;YACpE,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,oBAAoB,EAAE,CAAC;YACrE,IAAI,WAAW,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;gBACvC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACxD,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,KAAK,SAAS,CAAC;YAEtD,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,MAAM,GAAG,WAAW,CAAC,8BAA8B,CAAC,cAAc,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC3F,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;oBACnB,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAC1F,IAAI,aAAa,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,8BAA8B,EAAE,CAAC,EAAE,CAAC;wBAC5E,OAAO,YAAY,CAAC,SAAS,EAAE,CAAC;oBAClC,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,aAAa,IAAI,WAAW,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBACrF,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC9E,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC;gBACxB,QAAQ,WAAW,CAAC,KAAK,EAAE,CAAC;oBAC1B,iFAAiF;oBACjF,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,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YAClD,OAAO,YAAY,CAAC,OAAO,EAAE,CAAC;QAChC,CAAC,CAAC;IACJ,CAAC;CAAA"}
|
|
@@ -1,7 +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
|
-
import {
|
|
4
|
+
import { CodegenOption, Language } from '../../types/sdk/generate.js';
|
|
5
5
|
import { SemVersion } from '../../types/publish/version.js';
|
|
6
6
|
export declare class GenerateAction {
|
|
7
7
|
private readonly prompts;
|
|
@@ -10,7 +10,7 @@ export declare class GenerateAction {
|
|
|
10
10
|
private readonly commandMetadata;
|
|
11
11
|
private readonly authKey;
|
|
12
12
|
constructor(configDir: DirectoryPath, commandMetadata: CommandMetadata, authKey?: string | null);
|
|
13
|
-
readonly execute: (buildDirectory: DirectoryPath, destinationSdkDirectory: DirectoryPath, language: Language, force: boolean, zipSdk: boolean, skipChanges: boolean, trackChanges: boolean,
|
|
13
|
+
readonly execute: (buildDirectory: DirectoryPath, destinationSdkDirectory: DirectoryPath, language: Language, force: boolean, zipSdk: boolean, skipChanges: boolean, trackChanges: boolean, codegenOption: CodegenOption, stabilityWasProvided: boolean, apiVersion?: string, packageVersion?: SemVersion, packageSettingsDirectory?: DirectoryPath) => Promise<ActionResult<{
|
|
14
14
|
sourceTreeTrackingInitiated: boolean;
|
|
15
15
|
conflictsResolved: boolean;
|
|
16
16
|
}>>;
|
|
@@ -4,14 +4,14 @@ import { withDirPath } from '../../infrastructure/tmp-extensions.js';
|
|
|
4
4
|
import { SdkContext } from '../../types/sdk-context.js';
|
|
5
5
|
import { SdkGeneratePrompts } from '../../prompts/sdk/generate.js';
|
|
6
6
|
import { TempContext } from '../../types/temp-context.js';
|
|
7
|
-
import { CodeGenerationVersion } from '../../types/sdk/generate.js';
|
|
8
7
|
import { MergeSourceTreeAction } from './merge-source-tree.js';
|
|
9
8
|
import { BuildContext } from '../../types/build-context.js';
|
|
10
9
|
export class GenerateAction {
|
|
11
10
|
constructor(configDir, commandMetadata, authKey = null) {
|
|
12
11
|
this.prompts = new SdkGeneratePrompts();
|
|
13
12
|
this.portalService = new PortalService();
|
|
14
|
-
this.execute = async (buildDirectory, destinationSdkDirectory, language, force, zipSdk, skipChanges, trackChanges,
|
|
13
|
+
this.execute = async (buildDirectory, destinationSdkDirectory, language, force, zipSdk, skipChanges, trackChanges, codegenOption, stabilityWasProvided, apiVersion, packageVersion, packageSettingsDirectory) => {
|
|
14
|
+
this.prompts.warnIfStabilityIgnored(codegenOption, stabilityWasProvided);
|
|
15
15
|
if (buildDirectory.isEqual(destinationSdkDirectory)) {
|
|
16
16
|
this.prompts.sameBuildAndSdkDir(buildDirectory);
|
|
17
17
|
return ActionResult.failed();
|
|
@@ -67,9 +67,9 @@ export class GenerateAction {
|
|
|
67
67
|
return await withDirPath(async (tempDirectory) => {
|
|
68
68
|
const tempContext = new TempContext(tempDirectory);
|
|
69
69
|
const buildZipPath = await buildContext.getBuildZipPath(tempDirectory, packageSettingsDirectory);
|
|
70
|
-
if (
|
|
70
|
+
if (codegenOption.isV4()) {
|
|
71
71
|
this.prompts.sdkCustomizationsNotSupportedForV4();
|
|
72
|
-
const response = await this.prompts.generateV4SDK(this.portalService.generateV4Sdk(buildZipPath, language,
|
|
72
|
+
const response = await this.prompts.generateV4SDK(this.portalService.generateV4Sdk(buildZipPath, language, codegenOption.stabilityLevel(), this.configDir, this.commandMetadata, this.authKey));
|
|
73
73
|
if (response.isErr()) {
|
|
74
74
|
this.prompts.sdkGenerationServiceError(response.error);
|
|
75
75
|
return ActionResult.failed();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/actions/sdk/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAEhF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/actions/sdk/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,10 @@ import { DirectoryPath } from '../../../types/file/directoryPath.js';
|
|
|
4
4
|
import { PublishType } from '../../../types/publish-api/publishing-profile-item.js';
|
|
5
5
|
import { PublishingProfile } from '../../../types/publish/publishing-profile.js';
|
|
6
6
|
import { PublishingProfiles } from '../../../types/publish/publishing-profiles.js';
|
|
7
|
+
import { getCodegenOptions } from '../../../types/sdk/generate.js';
|
|
8
|
+
import { formatPublishingDetails } from '../../../prompts/sdk/publish.js';
|
|
7
9
|
import { ActionResult } from '../../action-result.js';
|
|
10
|
+
import { PluginRecordSdkAction } from '../../plugin/record-sdk.js';
|
|
8
11
|
import { SdkPublishAction } from '../publish.js';
|
|
9
12
|
import { BuildContext } from '../../../types/build-context.js';
|
|
10
13
|
import { ProfileId } from '../../../types/publish/profile-id.js';
|
|
@@ -55,13 +58,27 @@ export class SdkPublishInteractiveAction {
|
|
|
55
58
|
this.prompts.noLanguageSelected();
|
|
56
59
|
return ActionResult.cancelled();
|
|
57
60
|
}
|
|
61
|
+
const codegenOptions = getCodegenOptions(language);
|
|
62
|
+
const codegenOption = codegenOptions.length === 1 ? codegenOptions[0]
|
|
63
|
+
: await this.prompts.selectCodegenVersion(codegenOptions);
|
|
64
|
+
if (!codegenOption) {
|
|
65
|
+
this.prompts.noCodegenVersionSelected();
|
|
66
|
+
return ActionResult.cancelled();
|
|
67
|
+
}
|
|
58
68
|
const version = await this.prompts.inputVersion();
|
|
59
69
|
if (!version) {
|
|
60
70
|
this.prompts.noVersionSpecified();
|
|
61
71
|
return ActionResult.cancelled();
|
|
62
72
|
}
|
|
63
73
|
const publishTypes = publishingProfile.getPublishTypesForLanguage(language);
|
|
64
|
-
|
|
74
|
+
const publishingSummary = formatPublishingDetails({
|
|
75
|
+
profile: publishingProfile,
|
|
76
|
+
language,
|
|
77
|
+
version,
|
|
78
|
+
publishType: publishTypes,
|
|
79
|
+
codegenOption: codegenOptions.length === 1 ? undefined : codegenOption
|
|
80
|
+
});
|
|
81
|
+
this.prompts.publishingSummary(publishingSummary);
|
|
65
82
|
const confirmed = await this.prompts.confirmPublishing();
|
|
66
83
|
if (!confirmed) {
|
|
67
84
|
this.prompts.publishingCancelled();
|
|
@@ -71,14 +88,16 @@ export class SdkPublishInteractiveAction {
|
|
|
71
88
|
this.prompts.sourceCodeOnlyPublishingNotice();
|
|
72
89
|
}
|
|
73
90
|
const publishingProfileId = ProfileId.createFromPublishingProfileItem(publishingProfileItem);
|
|
74
|
-
const publishResult = await new SdkPublishAction(this.configDir, this.commandMetadata).execute(buildDirectory, sdkDirectory, language, publishTypes, false, publishingProfileId, version, publishingProfile, false, onPublishSdkError);
|
|
91
|
+
const publishResult = await new SdkPublishAction(this.configDir, this.commandMetadata).execute(buildDirectory, sdkDirectory, language, publishTypes, false, publishingProfileId, version, publishingProfile, false, codegenOption, false, publishingSummary, onPublishSdkError);
|
|
75
92
|
if (publishResult.isFailed()) {
|
|
76
93
|
return ActionResult.failed();
|
|
77
94
|
}
|
|
78
95
|
if (publishResult.isCancelled()) {
|
|
79
96
|
return ActionResult.cancelled();
|
|
80
97
|
}
|
|
81
|
-
this.prompts.
|
|
98
|
+
if (await this.prompts.confirmRecordSdk()) {
|
|
99
|
+
await new PluginRecordSdkAction().execute(buildDirectory, language, publishingProfile, publishTypes, version, codegenOption.codeGenerationVersion(), true);
|
|
100
|
+
}
|
|
82
101
|
return ActionResult.success();
|
|
83
102
|
};
|
|
84
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../../../src/actions/sdk/publish/interactive.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../../../src/actions/sdk/publish/interactive.ts"],"names":[],"mappings":"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"}
|