@nevermined-io/cli 1.0.3-rc1
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 +194 -0
- package/bin/dev.js +5 -0
- package/bin/run.js +5 -0
- package/dist/base-command.d.ts +36 -0
- package/dist/base-command.d.ts.map +1 -0
- package/dist/base-command.js +161 -0
- package/dist/base-command.js.map +1 -0
- package/dist/commands/agents/add-plan-to-agent.d.ts +19 -0
- package/dist/commands/agents/add-plan-to-agent.d.ts.map +1 -0
- package/dist/commands/agents/add-plan-to-agent.js +33 -0
- package/dist/commands/agents/add-plan-to-agent.js.map +1 -0
- package/dist/commands/agents/get-agent-plans.d.ts +19 -0
- package/dist/commands/agents/get-agent-plans.d.ts.map +1 -0
- package/dist/commands/agents/get-agent-plans.js +36 -0
- package/dist/commands/agents/get-agent-plans.js.map +1 -0
- package/dist/commands/agents/get-agent.d.ts +18 -0
- package/dist/commands/agents/get-agent.d.ts.map +1 -0
- package/dist/commands/agents/get-agent.js +32 -0
- package/dist/commands/agents/get-agent.js.map +1 -0
- package/dist/commands/agents/register-agent-and-plan.d.ts +21 -0
- package/dist/commands/agents/register-agent-and-plan.d.ts.map +1 -0
- package/dist/commands/agents/register-agent-and-plan.js +44 -0
- package/dist/commands/agents/register-agent-and-plan.js.map +1 -0
- package/dist/commands/agents/register-agent.d.ts +18 -0
- package/dist/commands/agents/register-agent.d.ts.map +1 -0
- package/dist/commands/agents/register-agent.js +32 -0
- package/dist/commands/agents/register-agent.js.map +1 -0
- package/dist/commands/agents/remove-plan-from-agent.d.ts +19 -0
- package/dist/commands/agents/remove-plan-from-agent.d.ts.map +1 -0
- package/dist/commands/agents/remove-plan-from-agent.js +33 -0
- package/dist/commands/agents/remove-plan-from-agent.js.map +1 -0
- package/dist/commands/agents/update-agent-metadata.d.ts +20 -0
- package/dist/commands/agents/update-agent-metadata.d.ts.map +1 -0
- package/dist/commands/agents/update-agent-metadata.js +37 -0
- package/dist/commands/agents/update-agent-metadata.js.map +1 -0
- package/dist/commands/config/init.d.ts +15 -0
- package/dist/commands/config/init.d.ts.map +1 -0
- package/dist/commands/config/init.js +78 -0
- package/dist/commands/config/init.js.map +1 -0
- package/dist/commands/config/set.d.ts +16 -0
- package/dist/commands/config/set.d.ts.map +1 -0
- package/dist/commands/config/set.js +44 -0
- package/dist/commands/config/set.js.map +1 -0
- package/dist/commands/config/show.d.ts +13 -0
- package/dist/commands/config/show.d.ts.map +1 -0
- package/dist/commands/config/show.js +53 -0
- package/dist/commands/config/show.js.map +1 -0
- package/dist/commands/facilitator/settle-permissions.d.ts +16 -0
- package/dist/commands/facilitator/settle-permissions.d.ts.map +1 -0
- package/dist/commands/facilitator/settle-permissions.js +30 -0
- package/dist/commands/facilitator/settle-permissions.js.map +1 -0
- package/dist/commands/facilitator/verify-permissions.d.ts +16 -0
- package/dist/commands/facilitator/verify-permissions.d.ts.map +1 -0
- package/dist/commands/facilitator/verify-permissions.js +30 -0
- package/dist/commands/facilitator/verify-permissions.js.map +1 -0
- package/dist/commands/organizations/connect-stripe-account.d.ts +18 -0
- package/dist/commands/organizations/connect-stripe-account.d.ts.map +1 -0
- package/dist/commands/organizations/connect-stripe-account.js +29 -0
- package/dist/commands/organizations/connect-stripe-account.js.map +1 -0
- package/dist/commands/organizations/create-member.d.ts +20 -0
- package/dist/commands/organizations/create-member.d.ts.map +1 -0
- package/dist/commands/organizations/create-member.js +34 -0
- package/dist/commands/organizations/create-member.js.map +1 -0
- package/dist/commands/organizations/get-members.d.ts +19 -0
- package/dist/commands/organizations/get-members.d.ts.map +1 -0
- package/dist/commands/organizations/get-members.js +30 -0
- package/dist/commands/organizations/get-members.js.map +1 -0
- package/dist/commands/plans/get-agents-associated-to-a-plan.d.ts +19 -0
- package/dist/commands/plans/get-agents-associated-to-a-plan.d.ts.map +1 -0
- package/dist/commands/plans/get-agents-associated-to-a-plan.js +36 -0
- package/dist/commands/plans/get-agents-associated-to-a-plan.js.map +1 -0
- package/dist/commands/plans/get-crypto-price-config.d.ts +18 -0
- package/dist/commands/plans/get-crypto-price-config.d.ts.map +1 -0
- package/dist/commands/plans/get-crypto-price-config.js +35 -0
- package/dist/commands/plans/get-crypto-price-config.js.map +1 -0
- package/dist/commands/plans/get-dynamic-credits-config.d.ts +18 -0
- package/dist/commands/plans/get-dynamic-credits-config.d.ts.map +1 -0
- package/dist/commands/plans/get-dynamic-credits-config.js +29 -0
- package/dist/commands/plans/get-dynamic-credits-config.js.map +1 -0
- package/dist/commands/plans/get-erc20-price-config.d.ts +18 -0
- package/dist/commands/plans/get-erc20-price-config.d.ts.map +1 -0
- package/dist/commands/plans/get-erc20-price-config.js +35 -0
- package/dist/commands/plans/get-erc20-price-config.js.map +1 -0
- package/dist/commands/plans/get-expirable-duration-config.d.ts +16 -0
- package/dist/commands/plans/get-expirable-duration-config.d.ts.map +1 -0
- package/dist/commands/plans/get-expirable-duration-config.js +27 -0
- package/dist/commands/plans/get-expirable-duration-config.js.map +1 -0
- package/dist/commands/plans/get-fiat-price-config.d.ts +17 -0
- package/dist/commands/plans/get-fiat-price-config.d.ts.map +1 -0
- package/dist/commands/plans/get-fiat-price-config.js +31 -0
- package/dist/commands/plans/get-fiat-price-config.js.map +1 -0
- package/dist/commands/plans/get-fixed-credits-config.d.ts +17 -0
- package/dist/commands/plans/get-fixed-credits-config.d.ts.map +1 -0
- package/dist/commands/plans/get-fixed-credits-config.js +28 -0
- package/dist/commands/plans/get-fixed-credits-config.js.map +1 -0
- package/dist/commands/plans/get-free-price-config.d.ts +15 -0
- package/dist/commands/plans/get-free-price-config.d.ts.map +1 -0
- package/dist/commands/plans/get-free-price-config.js +25 -0
- package/dist/commands/plans/get-free-price-config.js.map +1 -0
- package/dist/commands/plans/get-native-token-price-config.d.ts +17 -0
- package/dist/commands/plans/get-native-token-price-config.d.ts.map +1 -0
- package/dist/commands/plans/get-native-token-price-config.js +31 -0
- package/dist/commands/plans/get-native-token-price-config.js.map +1 -0
- package/dist/commands/plans/get-non-expirable-duration-config.d.ts +15 -0
- package/dist/commands/plans/get-non-expirable-duration-config.d.ts.map +1 -0
- package/dist/commands/plans/get-non-expirable-duration-config.js +25 -0
- package/dist/commands/plans/get-non-expirable-duration-config.js.map +1 -0
- package/dist/commands/plans/get-pay-as-you-go-credits-config.d.ts +15 -0
- package/dist/commands/plans/get-pay-as-you-go-credits-config.d.ts.map +1 -0
- package/dist/commands/plans/get-pay-as-you-go-credits-config.js +25 -0
- package/dist/commands/plans/get-pay-as-you-go-credits-config.js.map +1 -0
- package/dist/commands/plans/get-pay-as-you-go-price-config.d.ts +18 -0
- package/dist/commands/plans/get-pay-as-you-go-price-config.d.ts.map +1 -0
- package/dist/commands/plans/get-pay-as-you-go-price-config.js +35 -0
- package/dist/commands/plans/get-pay-as-you-go-price-config.js.map +1 -0
- package/dist/commands/plans/get-plan-balance.d.ts +19 -0
- package/dist/commands/plans/get-plan-balance.d.ts.map +1 -0
- package/dist/commands/plans/get-plan-balance.js +36 -0
- package/dist/commands/plans/get-plan-balance.js.map +1 -0
- package/dist/commands/plans/get-plan.d.ts +18 -0
- package/dist/commands/plans/get-plan.d.ts.map +1 -0
- package/dist/commands/plans/get-plan.js +32 -0
- package/dist/commands/plans/get-plan.js.map +1 -0
- package/dist/commands/plans/get-plans.d.ts +19 -0
- package/dist/commands/plans/get-plans.d.ts.map +1 -0
- package/dist/commands/plans/get-plans.js +30 -0
- package/dist/commands/plans/get-plans.js.map +1 -0
- package/dist/commands/plans/mint-plan-credits.d.ts +20 -0
- package/dist/commands/plans/mint-plan-credits.d.ts.map +1 -0
- package/dist/commands/plans/mint-plan-credits.js +37 -0
- package/dist/commands/plans/mint-plan-credits.js.map +1 -0
- package/dist/commands/plans/mint-plan-expirable.d.ts +21 -0
- package/dist/commands/plans/mint-plan-expirable.d.ts.map +1 -0
- package/dist/commands/plans/mint-plan-expirable.js +38 -0
- package/dist/commands/plans/mint-plan-expirable.js.map +1 -0
- package/dist/commands/plans/order-fiat-plan.d.ts +18 -0
- package/dist/commands/plans/order-fiat-plan.d.ts.map +1 -0
- package/dist/commands/plans/order-fiat-plan.js +32 -0
- package/dist/commands/plans/order-fiat-plan.js.map +1 -0
- package/dist/commands/plans/order-plan.d.ts +18 -0
- package/dist/commands/plans/order-plan.d.ts.map +1 -0
- package/dist/commands/plans/order-plan.js +32 -0
- package/dist/commands/plans/order-plan.js.map +1 -0
- package/dist/commands/plans/redeem-credits.d.ts +21 -0
- package/dist/commands/plans/redeem-credits.d.ts.map +1 -0
- package/dist/commands/plans/redeem-credits.js +38 -0
- package/dist/commands/plans/redeem-credits.js.map +1 -0
- package/dist/commands/plans/register-credits-plan.d.ts +18 -0
- package/dist/commands/plans/register-credits-plan.d.ts.map +1 -0
- package/dist/commands/plans/register-credits-plan.js +38 -0
- package/dist/commands/plans/register-credits-plan.js.map +1 -0
- package/dist/commands/plans/register-credits-trial-plan.d.ts +18 -0
- package/dist/commands/plans/register-credits-trial-plan.d.ts.map +1 -0
- package/dist/commands/plans/register-credits-trial-plan.js +38 -0
- package/dist/commands/plans/register-credits-trial-plan.js.map +1 -0
- package/dist/commands/plans/register-plan.d.ts +20 -0
- package/dist/commands/plans/register-plan.d.ts.map +1 -0
- package/dist/commands/plans/register-plan.js +40 -0
- package/dist/commands/plans/register-plan.js.map +1 -0
- package/dist/commands/plans/register-time-plan.d.ts +18 -0
- package/dist/commands/plans/register-time-plan.d.ts.map +1 -0
- package/dist/commands/plans/register-time-plan.js +38 -0
- package/dist/commands/plans/register-time-plan.js.map +1 -0
- package/dist/commands/plans/register-time-trial-plan.d.ts +18 -0
- package/dist/commands/plans/register-time-trial-plan.d.ts.map +1 -0
- package/dist/commands/plans/register-time-trial-plan.js +38 -0
- package/dist/commands/plans/register-time-trial-plan.js.map +1 -0
- package/dist/commands/plans/set-proof-required.d.ts +17 -0
- package/dist/commands/plans/set-proof-required.d.ts.map +1 -0
- package/dist/commands/plans/set-proof-required.js +31 -0
- package/dist/commands/plans/set-proof-required.js.map +1 -0
- package/dist/commands/plans/set-redemption-type.d.ts +17 -0
- package/dist/commands/plans/set-redemption-type.d.ts.map +1 -0
- package/dist/commands/plans/set-redemption-type.js +31 -0
- package/dist/commands/plans/set-redemption-type.js.map +1 -0
- package/dist/commands/x402token/get-x402-access-token.d.ts +22 -0
- package/dist/commands/x402token/get-x402-access-token.d.ts.map +1 -0
- package/dist/commands/x402token/get-x402-access-token.js +36 -0
- package/dist/commands/x402token/get-x402-access-token.js.map +1 -0
- package/dist/generator/api-scanner.d.ts +63 -0
- package/dist/generator/api-scanner.d.ts.map +1 -0
- package/dist/generator/api-scanner.js +228 -0
- package/dist/generator/api-scanner.js.map +1 -0
- package/dist/generator/command-generator.d.ts +91 -0
- package/dist/generator/command-generator.d.ts.map +1 -0
- package/dist/generator/command-generator.js +334 -0
- package/dist/generator/command-generator.js.map +1 -0
- package/dist/generator/generate.d.ts +7 -0
- package/dist/generator/generate.d.ts.map +1 -0
- package/dist/generator/generate.js +70 -0
- package/dist/generator/generate.js.map +1 -0
- package/dist/generator/sync-check.d.ts +7 -0
- package/dist/generator/sync-check.d.ts.map +1 -0
- package/dist/generator/sync-check.js +115 -0
- package/dist/generator/sync-check.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/config-manager.d.ts +27 -0
- package/dist/utils/config-manager.d.ts.map +1 -0
- package/dist/utils/config-manager.js +120 -0
- package/dist/utils/config-manager.js.map +1 -0
- package/dist/utils/output-formatter.d.ts +46 -0
- package/dist/utils/output-formatter.d.ts.map +1 -0
- package/dist/utils/output-formatter.js +113 -0
- package/dist/utils/output-formatter.js.map +1 -0
- package/oclif.manifest.json +3136 -0
- package/package.json +111 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base-command.js';
|
|
2
|
+
/**
|
|
3
|
+
* Sets the redemption type in a credits configuration.
|
|
4
|
+
*/
|
|
5
|
+
export default class SetRedemptionType extends BaseCommand {
|
|
6
|
+
static description: string;
|
|
7
|
+
static examples: string[];
|
|
8
|
+
static flags: {
|
|
9
|
+
'credits-config': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
10
|
+
'redemption-type': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
11
|
+
profile: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
12
|
+
format: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
13
|
+
verbose: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
14
|
+
};
|
|
15
|
+
run(): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=set-redemption-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-redemption-type.d.ts","sourceRoot":"","sources":["../../../src/commands/plans/set-redemption-type.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,WAAW;IACxD,OAAgB,WAAW,SAAyD;IAEpF,OAAgB,QAAQ,WAEvB;IAED,OAAgB,KAAK;;;;;;MAOpB;IAIY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAalC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Flags } from '@oclif/core';
|
|
2
|
+
import { BaseCommand } from '../../base-command.js';
|
|
3
|
+
/**
|
|
4
|
+
* Sets the redemption type in a credits configuration.
|
|
5
|
+
*/
|
|
6
|
+
export default class SetRedemptionType extends BaseCommand {
|
|
7
|
+
static description = "Sets the redemption type in a credits configuration.";
|
|
8
|
+
static examples = [
|
|
9
|
+
'$ nvm plans set-redemption-type'
|
|
10
|
+
];
|
|
11
|
+
static flags = {
|
|
12
|
+
...BaseCommand.baseFlags,
|
|
13
|
+
'credits-config': Flags.string({
|
|
14
|
+
description: "creditsConfig as JSON string",
|
|
15
|
+
required: true
|
|
16
|
+
}),
|
|
17
|
+
'redemption-type': Flags.string({ required: true }),
|
|
18
|
+
};
|
|
19
|
+
async run() {
|
|
20
|
+
const { flags } = await this.parse(this.constructor);
|
|
21
|
+
const payments = await this.initPayments();
|
|
22
|
+
try {
|
|
23
|
+
const result = await payments.plans.setRedemptionType(await this.parseJsonInput(flags['credits-config']), flags['redemption-type']);
|
|
24
|
+
this.formatter.output(result);
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
this.handleError(error);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=set-redemption-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-redemption-type.js","sourceRoot":"","sources":["../../../src/commands/plans/set-redemption-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,WAAW;IACxD,MAAM,CAAU,WAAW,GAAG,sDAAsD,CAAA;IAEpF,MAAM,CAAU,QAAQ,GAAG;QACzB,iCAAiC;KAClC,CAAA;IAED,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,WAAW,CAAC,SAAS;QACxB,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC;YAC7B,WAAW,EAAE,8BAA8B;YAC3C,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KACpD,CAAA;IAIM,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAkB,CAAC,CAAA;QAE3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAE1C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAA;YAEnI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACzB,CAAC;IACH,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base-command.js';
|
|
2
|
+
/**
|
|
3
|
+
* Create a permission and get an X402 access token for the given plan. This token allows the agent to verify and settle permissions on behalf of the subscriber. The token contains cryptographically signed session keys that delegate specific permissions (order, burn) to the agent.
|
|
4
|
+
*/
|
|
5
|
+
export default class GetX402AccessToken extends BaseCommand {
|
|
6
|
+
static description: string;
|
|
7
|
+
static examples: string[];
|
|
8
|
+
static flags: {
|
|
9
|
+
'agent-id': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
10
|
+
'redemption-limit': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
11
|
+
'order-limit': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
12
|
+
expiration: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
13
|
+
profile: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
14
|
+
format: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
15
|
+
verbose: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
16
|
+
};
|
|
17
|
+
static args: {
|
|
18
|
+
plan: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
|
|
19
|
+
};
|
|
20
|
+
run(): Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=get-x402-access-token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-x402-access-token.d.ts","sourceRoot":"","sources":["../../../src/commands/x402token/get-x402-access-token.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,WAAW;IACzD,OAAgB,WAAW,SAA2R;IAEtT,OAAgB,QAAQ,WAEvB;IAED,OAAgB,KAAK;;;;;;;;MAMpB;IAED,OAAgB,IAAI;;MAKnB;IAGY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAalC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Args, Flags } from '@oclif/core';
|
|
2
|
+
import { BaseCommand } from '../../base-command.js';
|
|
3
|
+
/**
|
|
4
|
+
* Create a permission and get an X402 access token for the given plan. This token allows the agent to verify and settle permissions on behalf of the subscriber. The token contains cryptographically signed session keys that delegate specific permissions (order, burn) to the agent.
|
|
5
|
+
*/
|
|
6
|
+
export default class GetX402AccessToken extends BaseCommand {
|
|
7
|
+
static description = "Create a permission and get an X402 access token for the given plan. This token allows the agent to verify and settle permissions on behalf of the subscriber. The token contains cryptographically signed session keys that delegate specific permissions (order, burn) to the agent.";
|
|
8
|
+
static examples = [
|
|
9
|
+
'$ nvm x402token get-x402-access-token <planId>'
|
|
10
|
+
];
|
|
11
|
+
static flags = {
|
|
12
|
+
...BaseCommand.baseFlags,
|
|
13
|
+
'agent-id': Flags.string({ required: false }),
|
|
14
|
+
'redemption-limit': Flags.string({ required: false }),
|
|
15
|
+
'order-limit': Flags.string({ required: false }),
|
|
16
|
+
'expiration': Flags.string({ required: false }),
|
|
17
|
+
};
|
|
18
|
+
static args = {
|
|
19
|
+
plan: Args.string({
|
|
20
|
+
description: "plan identifier",
|
|
21
|
+
required: true,
|
|
22
|
+
}),
|
|
23
|
+
};
|
|
24
|
+
async run() {
|
|
25
|
+
const { flags, args } = await this.parse(this.constructor);
|
|
26
|
+
const payments = await this.initPayments();
|
|
27
|
+
try {
|
|
28
|
+
const result = await payments.x402.getX402AccessToken(args.plan, flags['agent-id'], flags['redemption-limit'], flags['order-limit'], flags['expiration']);
|
|
29
|
+
this.formatter.output(result);
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
this.handleError(error);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=get-x402-access-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-x402-access-token.js","sourceRoot":"","sources":["../../../src/commands/x402token/get-x402-access-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,WAAW;IACzD,MAAM,CAAU,WAAW,GAAG,wRAAwR,CAAA;IAEtT,MAAM,CAAU,QAAQ,GAAG;QACzB,gDAAgD;KACjD,CAAA;IAED,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,WAAW,CAAC,SAAS;QACxB,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC7C,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACrD,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAChD,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;KAChD,CAAA;IAED,MAAM,CAAU,IAAI,GAAG;QACrB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,iBAAiB;YAC9B,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IAGM,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAkB,CAAC,CAAA;QAEjE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAE1C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAA;YAEzJ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACzB,CAAC;IACH,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API Scanner - Analyzes the Payments SDK API using ts-morph
|
|
3
|
+
* Extracts method signatures, parameters, and JSDoc comments
|
|
4
|
+
*/
|
|
5
|
+
export interface MethodParameter {
|
|
6
|
+
name: string;
|
|
7
|
+
type: string;
|
|
8
|
+
optional: boolean;
|
|
9
|
+
description?: string;
|
|
10
|
+
defaultValue?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface MethodInfo {
|
|
13
|
+
name: string;
|
|
14
|
+
className: string;
|
|
15
|
+
description: string;
|
|
16
|
+
parameters: MethodParameter[];
|
|
17
|
+
returnType: string;
|
|
18
|
+
examples: string[];
|
|
19
|
+
isAsync: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface APIClassInfo {
|
|
22
|
+
name: string;
|
|
23
|
+
description: string;
|
|
24
|
+
methods: MethodInfo[];
|
|
25
|
+
}
|
|
26
|
+
export declare class APIScanner {
|
|
27
|
+
private project;
|
|
28
|
+
private sdkPath;
|
|
29
|
+
constructor(sdkPath: string);
|
|
30
|
+
/**
|
|
31
|
+
* Scan all API classes in the SDK
|
|
32
|
+
*/
|
|
33
|
+
scanAPIs(): APIClassInfo[];
|
|
34
|
+
/**
|
|
35
|
+
* Scan a single class
|
|
36
|
+
*/
|
|
37
|
+
private scanClass;
|
|
38
|
+
/**
|
|
39
|
+
* Scan a single method
|
|
40
|
+
*/
|
|
41
|
+
private scanMethod;
|
|
42
|
+
/**
|
|
43
|
+
* Extract description from JSDoc
|
|
44
|
+
*/
|
|
45
|
+
private extractDescription;
|
|
46
|
+
/**
|
|
47
|
+
* Extract examples from JSDoc
|
|
48
|
+
*/
|
|
49
|
+
private extractExamples;
|
|
50
|
+
/**
|
|
51
|
+
* Extract parameter documentation from JSDoc
|
|
52
|
+
*/
|
|
53
|
+
private extractParamDocs;
|
|
54
|
+
/**
|
|
55
|
+
* Simplify TypeScript type to a human-readable string
|
|
56
|
+
*/
|
|
57
|
+
private simplifyType;
|
|
58
|
+
/**
|
|
59
|
+
* Get all API classes and their methods
|
|
60
|
+
*/
|
|
61
|
+
getAPISummary(): string;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=api-scanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-scanner.d.ts","sourceRoot":"","sources":["../../src/generator/api-scanner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,UAAU,EAAE,CAAA;CACtB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAQ;gBAEX,OAAO,EAAE,MAAM;IAO3B;;OAEG;IACH,QAAQ,IAAI,YAAY,EAAE;IAkC1B;;OAEG;IACH,OAAO,CAAC,SAAS;IAiCjB;;OAEG;IACH,OAAO,CAAC,UAAU;IA4ClB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAc1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAkBvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAwBxB;;OAEG;IACH,OAAO,CAAC,YAAY;IA6BpB;;OAEG;IACH,aAAa,IAAI,MAAM;CA2BxB"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API Scanner - Analyzes the Payments SDK API using ts-morph
|
|
3
|
+
* Extracts method signatures, parameters, and JSDoc comments
|
|
4
|
+
*/
|
|
5
|
+
import { Project, SyntaxKind } from 'ts-morph';
|
|
6
|
+
import { join } from 'path';
|
|
7
|
+
export class APIScanner {
|
|
8
|
+
project;
|
|
9
|
+
sdkPath;
|
|
10
|
+
constructor(sdkPath) {
|
|
11
|
+
this.sdkPath = sdkPath;
|
|
12
|
+
this.project = new Project({
|
|
13
|
+
tsConfigFilePath: join(sdkPath, 'tsconfig.json'),
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Scan all API classes in the SDK
|
|
18
|
+
*/
|
|
19
|
+
scanAPIs() {
|
|
20
|
+
const apiClasses = [];
|
|
21
|
+
// Scan API files (relative to SDK root)
|
|
22
|
+
const apiFiles = [
|
|
23
|
+
'src/api/plans-api.ts',
|
|
24
|
+
'src/api/agents-api.ts',
|
|
25
|
+
'src/x402/token.ts',
|
|
26
|
+
'src/x402/facilitator-api.ts',
|
|
27
|
+
'src/api/organizations-api/organizations-api.ts',
|
|
28
|
+
];
|
|
29
|
+
for (const relativePath of apiFiles) {
|
|
30
|
+
const filePath = join(this.sdkPath, relativePath);
|
|
31
|
+
const sourceFile = this.project.addSourceFileAtPath(filePath);
|
|
32
|
+
if (!sourceFile) {
|
|
33
|
+
console.warn(`File not found: ${filePath}`);
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
// Find all exported classes
|
|
37
|
+
const classes = sourceFile.getClasses().filter((cls) => cls.isExported());
|
|
38
|
+
for (const cls of classes) {
|
|
39
|
+
const classInfo = this.scanClass(cls);
|
|
40
|
+
if (classInfo) {
|
|
41
|
+
apiClasses.push(classInfo);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return apiClasses;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Scan a single class
|
|
49
|
+
*/
|
|
50
|
+
scanClass(cls) {
|
|
51
|
+
const className = cls.getName();
|
|
52
|
+
if (!className || !className.endsWith('API')) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
// Get class description from JSDoc
|
|
56
|
+
const jsDocs = cls.getJsDocs();
|
|
57
|
+
const description = this.extractDescription(jsDocs);
|
|
58
|
+
// Get all public methods
|
|
59
|
+
const methods = cls
|
|
60
|
+
.getMethods()
|
|
61
|
+
.filter((method) => {
|
|
62
|
+
const modifiers = method.getModifiers();
|
|
63
|
+
const isPublic = !modifiers.some((m) => m.getKind() === SyntaxKind.PrivateKeyword || m.getKind() === SyntaxKind.ProtectedKeyword);
|
|
64
|
+
// Skip static methods and getInstance
|
|
65
|
+
const isStatic = modifiers.some((m) => m.getKind() === SyntaxKind.StaticKeyword);
|
|
66
|
+
const name = method.getName();
|
|
67
|
+
return isPublic && !isStatic && name !== 'getInstance' && !name.startsWith('_');
|
|
68
|
+
})
|
|
69
|
+
.map((method) => this.scanMethod(method, className || ''))
|
|
70
|
+
.filter((m) => m !== null);
|
|
71
|
+
return {
|
|
72
|
+
name: className,
|
|
73
|
+
description,
|
|
74
|
+
methods,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Scan a single method
|
|
79
|
+
*/
|
|
80
|
+
scanMethod(method, className) {
|
|
81
|
+
const name = method.getName();
|
|
82
|
+
if (!name)
|
|
83
|
+
return null;
|
|
84
|
+
// Get JSDoc
|
|
85
|
+
const jsDocs = method.getJsDocs();
|
|
86
|
+
const description = this.extractDescription(jsDocs);
|
|
87
|
+
const examples = this.extractExamples(jsDocs);
|
|
88
|
+
const paramDocs = this.extractParamDocs(jsDocs);
|
|
89
|
+
// Get parameters
|
|
90
|
+
const parameters = method.getParameters().map((param) => {
|
|
91
|
+
const paramName = param.getName();
|
|
92
|
+
const paramType = this.simplifyType(param.getType());
|
|
93
|
+
const optional = param.isOptional() || param.hasInitializer();
|
|
94
|
+
const defaultValue = param.getInitializer()?.getText();
|
|
95
|
+
return {
|
|
96
|
+
name: paramName,
|
|
97
|
+
type: paramType,
|
|
98
|
+
optional,
|
|
99
|
+
description: paramDocs[paramName],
|
|
100
|
+
defaultValue,
|
|
101
|
+
};
|
|
102
|
+
});
|
|
103
|
+
// Get return type
|
|
104
|
+
const returnTypeNode = method.getReturnType();
|
|
105
|
+
const returnType = this.simplifyType(returnTypeNode);
|
|
106
|
+
// Check if async
|
|
107
|
+
const isAsync = method.isAsync();
|
|
108
|
+
return {
|
|
109
|
+
name,
|
|
110
|
+
className,
|
|
111
|
+
description,
|
|
112
|
+
parameters,
|
|
113
|
+
returnType,
|
|
114
|
+
examples,
|
|
115
|
+
isAsync,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Extract description from JSDoc
|
|
120
|
+
*/
|
|
121
|
+
extractDescription(jsDocs) {
|
|
122
|
+
if (jsDocs.length === 0)
|
|
123
|
+
return '';
|
|
124
|
+
const doc = jsDocs[0];
|
|
125
|
+
const description = doc.getDescription().trim();
|
|
126
|
+
// Remove leading asterisks and clean up
|
|
127
|
+
return description
|
|
128
|
+
.split('\n')
|
|
129
|
+
.map((line) => line.replace(/^\s*\*\s?/, '').trim())
|
|
130
|
+
.filter((line) => line.length > 0)
|
|
131
|
+
.join(' ');
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Extract examples from JSDoc
|
|
135
|
+
*/
|
|
136
|
+
extractExamples(jsDocs) {
|
|
137
|
+
const examples = [];
|
|
138
|
+
for (const doc of jsDocs) {
|
|
139
|
+
const tags = doc.getTags();
|
|
140
|
+
for (const tag of tags) {
|
|
141
|
+
if (tag.getTagName() === 'example') {
|
|
142
|
+
const exampleText = tag.getComment();
|
|
143
|
+
if (typeof exampleText === 'string') {
|
|
144
|
+
examples.push(exampleText.trim());
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return examples;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Extract parameter documentation from JSDoc
|
|
153
|
+
*/
|
|
154
|
+
extractParamDocs(jsDocs) {
|
|
155
|
+
const paramDocs = {};
|
|
156
|
+
for (const doc of jsDocs) {
|
|
157
|
+
const tags = doc.getTags();
|
|
158
|
+
for (const tag of tags) {
|
|
159
|
+
if (tag.getTagName() === 'param') {
|
|
160
|
+
const comment = tag.getComment();
|
|
161
|
+
if (typeof comment === 'string') {
|
|
162
|
+
// Extract parameter name and description
|
|
163
|
+
// Format: @param paramName - description
|
|
164
|
+
const match = comment.match(/^(\w+)\s*-?\s*(.+)$/s);
|
|
165
|
+
if (match) {
|
|
166
|
+
const [, paramName, description] = match;
|
|
167
|
+
paramDocs[paramName] = description.trim();
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return paramDocs;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Simplify TypeScript type to a human-readable string
|
|
177
|
+
*/
|
|
178
|
+
simplifyType(type) {
|
|
179
|
+
const typeText = type.getText();
|
|
180
|
+
// Simplify common patterns
|
|
181
|
+
if (typeText.includes('Promise<')) {
|
|
182
|
+
const match = typeText.match(/Promise<(.+)>/);
|
|
183
|
+
if (match) {
|
|
184
|
+
return match[1];
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
// Simplify union types
|
|
188
|
+
if (typeText.includes('|')) {
|
|
189
|
+
return typeText;
|
|
190
|
+
}
|
|
191
|
+
// Simplify complex types
|
|
192
|
+
if (typeText.length > 100) {
|
|
193
|
+
if (typeText.includes('{')) {
|
|
194
|
+
return 'object';
|
|
195
|
+
}
|
|
196
|
+
if (typeText.includes('[')) {
|
|
197
|
+
return 'array';
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return typeText;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Get all API classes and their methods
|
|
204
|
+
*/
|
|
205
|
+
getAPISummary() {
|
|
206
|
+
const apis = this.scanAPIs();
|
|
207
|
+
let summary = 'Nevermined Payments SDK API Summary\n';
|
|
208
|
+
summary += '='.repeat(50) + '\n\n';
|
|
209
|
+
for (const api of apis) {
|
|
210
|
+
summary += `${api.name}\n`;
|
|
211
|
+
summary += '-'.repeat(api.name.length) + '\n';
|
|
212
|
+
if (api.description) {
|
|
213
|
+
summary += `${api.description}\n\n`;
|
|
214
|
+
}
|
|
215
|
+
for (const method of api.methods) {
|
|
216
|
+
summary += ` ${method.name}(`;
|
|
217
|
+
summary += method.parameters.map((p) => `${p.name}${p.optional ? '?' : ''}: ${p.type}`).join(', ');
|
|
218
|
+
summary += `): ${method.returnType}\n`;
|
|
219
|
+
if (method.description) {
|
|
220
|
+
summary += ` ${method.description}\n`;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
summary += '\n';
|
|
224
|
+
}
|
|
225
|
+
return summary;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
//# sourceMappingURL=api-scanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-scanner.js","sourceRoot":"","sources":["../../src/generator/api-scanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command Generator - Generates oclif command files from API scanner output
|
|
3
|
+
* Uses manual commands as templates and generates new commands from SDK API
|
|
4
|
+
*/
|
|
5
|
+
import { APIClassInfo } from './api-scanner.js';
|
|
6
|
+
export interface CommandMetadata {
|
|
7
|
+
className: string;
|
|
8
|
+
methodName: string;
|
|
9
|
+
customizations?: {
|
|
10
|
+
flags?: Record<string, any>;
|
|
11
|
+
examples?: string[];
|
|
12
|
+
beforeInit?: string;
|
|
13
|
+
afterInit?: string;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export declare class CommandGenerator {
|
|
17
|
+
private outputDir;
|
|
18
|
+
private metadataPath;
|
|
19
|
+
private metadata;
|
|
20
|
+
constructor(outputDir: string, metadataPath?: string);
|
|
21
|
+
/**
|
|
22
|
+
* Load metadata about custom command modifications
|
|
23
|
+
*/
|
|
24
|
+
loadMetadata(): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Save metadata about custom command modifications
|
|
27
|
+
*/
|
|
28
|
+
saveMetadata(): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Generate all commands from API classes
|
|
31
|
+
*/
|
|
32
|
+
generateCommands(apis: APIClassInfo[]): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Generate a single command file
|
|
35
|
+
*/
|
|
36
|
+
private generateCommand;
|
|
37
|
+
/**
|
|
38
|
+
* Get the file path for a command
|
|
39
|
+
*/
|
|
40
|
+
private getCommandPath;
|
|
41
|
+
/**
|
|
42
|
+
* Generate the TypeScript content for a command
|
|
43
|
+
*/
|
|
44
|
+
private generateCommandContent;
|
|
45
|
+
/**
|
|
46
|
+
* Generate flag definitions from method parameters
|
|
47
|
+
*/
|
|
48
|
+
private generateFlags;
|
|
49
|
+
/**
|
|
50
|
+
* Generate a single flag definition
|
|
51
|
+
*/
|
|
52
|
+
private generateFlagDefinition;
|
|
53
|
+
/**
|
|
54
|
+
* Generate args definitions for positional arguments
|
|
55
|
+
*/
|
|
56
|
+
private generateArgs;
|
|
57
|
+
/**
|
|
58
|
+
* Generate example commands
|
|
59
|
+
*/
|
|
60
|
+
private generateExamples;
|
|
61
|
+
/**
|
|
62
|
+
* Check if method has positional arguments
|
|
63
|
+
*/
|
|
64
|
+
private hasPositionalArgs;
|
|
65
|
+
/**
|
|
66
|
+
* Generate the run method implementation
|
|
67
|
+
*/
|
|
68
|
+
private generateRunMethod;
|
|
69
|
+
/**
|
|
70
|
+
* Check if type is a complex object that needs JSON parsing
|
|
71
|
+
*/
|
|
72
|
+
private isComplexType;
|
|
73
|
+
/**
|
|
74
|
+
* Generate method call arguments
|
|
75
|
+
*/
|
|
76
|
+
private generateMethodCall;
|
|
77
|
+
/**
|
|
78
|
+
* Get the API property name (e.g., PlansAPI -> plans)
|
|
79
|
+
*/
|
|
80
|
+
private getAPIProperty;
|
|
81
|
+
/**
|
|
82
|
+
* Get the command class name (e.g., getPlan -> GetPlan)
|
|
83
|
+
*/
|
|
84
|
+
private getCommandClassName;
|
|
85
|
+
/**
|
|
86
|
+
* Convert camelCase to kebab-case
|
|
87
|
+
* Handles consecutive capitals like ERC20 -> erc20, APlan -> aplan
|
|
88
|
+
*/
|
|
89
|
+
private camelToKebab;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=command-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-generator.d.ts","sourceRoot":"","sources":["../../src/generator/command-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAc,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE3D,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE;QACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAC3B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;CACF;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAA8B;gBAElC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAMpD;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBnC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAWnC;;OAEG;IACG,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3D;;OAEG;YACW,eAAe;IAe7B;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA2C9B;;OAEG;IACH,OAAO,CAAC,aAAa;IAkCrB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA8B9B;;OAEG;IACH,OAAO,CAAC,YAAY;IAsBpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsBxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA+CzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;IACH,OAAO,CAAC,cAAc;IAWtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;OAGG;IACH,OAAO,CAAC,YAAY;CAMrB"}
|