@hsuite/smart-engines-cli 1.1.0 → 1.1.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.
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Deterministic XRPL ed25519 fixture.
3
+ *
4
+ * Provenance — derived once with:
5
+ * node -e "const {Wallet}=require('xrpl'); const w=Wallet.fromSeed('sEdTyaBYHfQhWt9ycB9QJsRKH8UUEuD'); console.log(w.address, w.publicKey)"
6
+ *
7
+ * Expected signature derived by running the validator's exact verifier
8
+ * path (libs/security-core/src/auth/web3-auth.service.ts:334-340):
9
+ * const hex = Buffer.from(message, 'utf-8').toString('hex').toUpperCase();
10
+ * sign(hex, wallet.privateKey) // ripple-keypairs
11
+ *
12
+ * If `EXPECTED_SIGNATURE` drifts, the CLI's signFn no longer produces what
13
+ * the validator's web3-auth verifier accepts. That's an auth-contract
14
+ * regression — every developer's `subscribe`/`deploy` breaks silently.
15
+ */
16
+ export declare const XRPL_FIXTURE: {
17
+ readonly seed: "sEdTyaBYHfQhWt9ycB9QJsRKH8UUEuD";
18
+ readonly address: "rNHjsSoFgEMPZi4kE5rfw6c8k6tTUX8eng";
19
+ readonly publicKey: "ED652CD3EAB154510CBFCF4AEDEE4EAEB295D32EA7CE358F0B25D26203003F5DED";
20
+ /** Plain-text payload signed in the deterministic-signature assertion. */
21
+ readonly payload: "hello-smart-engines";
22
+ /** Output of `sign(hex(payload).upper, fixture.privateKey)`. */
23
+ readonly expectedSignature: "CFF9ABD65D3BBC985FE8A8C899DAC26B16DAB95B13AE2B2CB3DEAC2CA0E54F7791307B22971180D6016422EEE2E36ACFECCC7B7C3A1CB7701CE28D243E16BF03";
24
+ };
25
+ /**
26
+ * Reproduce the validator's verifier check verbatim.
27
+ *
28
+ * Mirrors `verifyXRPLSignature` at
29
+ * libs/security-core/src/auth/web3-auth.service.ts:328-350 — same hex
30
+ * canonicalization, same ripple-keypairs.verify entry point. Used by the
31
+ * signFn spec to cross-check the CLI's output WITHOUT importing the heavy
32
+ * NestJS-bound web3-auth.service.ts class graph.
33
+ */
34
+ export declare function validatorVerifyXrplSignature(publicKey: string, message: string, signature: string): boolean;
35
+ /**
36
+ * Build a throwaway tmp directory and return its path + a cleanup fn.
37
+ *
38
+ * Usage:
39
+ * const { dir, cleanup } = makeTempDir('hsuite-init-');
40
+ * afterEach(cleanup);
41
+ */
42
+ export declare function makeTempDir(prefix?: string): {
43
+ dir: string;
44
+ cleanup: () => void;
45
+ };
46
+ /** Build the path for an env file inside a tmp dir. */
47
+ export declare function envPathIn(dir: string, name?: string): string;
48
+ //# sourceMappingURL=fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../src/__tests__/helpers/fixtures.ts"],"names":[],"mappings":"AAgBA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,YAAY;;;;IAIvB,0EAA0E;;IAE1E,gEAAgE;;CAGxD,CAAC;AAEX;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAKT;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,SAAqB,GAAG;IACxD,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAMA;AAED,uDAAuD;AACvD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,SAAe,GAAG,MAAM,CAElE"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XRPL_FIXTURE = void 0;
4
+ exports.validatorVerifyXrplSignature = validatorVerifyXrplSignature;
5
+ exports.makeTempDir = makeTempDir;
6
+ exports.envPathIn = envPathIn;
7
+ /**
8
+ * Shared test fixtures for the @hsuite/smart-engines-cli specs.
9
+ *
10
+ * Centralises the XRPL seed/address/pubkey we sign with, the expected
11
+ * deterministic signature for a canonical payload, and a tmp-dir helper
12
+ * so individual specs don't repeat boilerplate.
13
+ *
14
+ * The fixture seed is fresh (generated 2026-05-22 with xrpl.Wallet.generate)
15
+ * and is NOT funded on any network. Re-deriving from this seed yields the
16
+ * same address / pubkey / signature on every machine — that's the whole
17
+ * point of an ed25519-with-deterministic-K (RFC 8032) signer.
18
+ */
19
+ const fs_1 = require("fs");
20
+ const os_1 = require("os");
21
+ const path_1 = require("path");
22
+ /**
23
+ * Deterministic XRPL ed25519 fixture.
24
+ *
25
+ * Provenance — derived once with:
26
+ * node -e "const {Wallet}=require('xrpl'); const w=Wallet.fromSeed('sEdTyaBYHfQhWt9ycB9QJsRKH8UUEuD'); console.log(w.address, w.publicKey)"
27
+ *
28
+ * Expected signature derived by running the validator's exact verifier
29
+ * path (libs/security-core/src/auth/web3-auth.service.ts:334-340):
30
+ * const hex = Buffer.from(message, 'utf-8').toString('hex').toUpperCase();
31
+ * sign(hex, wallet.privateKey) // ripple-keypairs
32
+ *
33
+ * If `EXPECTED_SIGNATURE` drifts, the CLI's signFn no longer produces what
34
+ * the validator's web3-auth verifier accepts. That's an auth-contract
35
+ * regression — every developer's `subscribe`/`deploy` breaks silently.
36
+ */
37
+ exports.XRPL_FIXTURE = {
38
+ seed: 'sEdTyaBYHfQhWt9ycB9QJsRKH8UUEuD',
39
+ address: 'rNHjsSoFgEMPZi4kE5rfw6c8k6tTUX8eng',
40
+ publicKey: 'ED652CD3EAB154510CBFCF4AEDEE4EAEB295D32EA7CE358F0B25D26203003F5DED',
41
+ /** Plain-text payload signed in the deterministic-signature assertion. */
42
+ payload: 'hello-smart-engines',
43
+ /** Output of `sign(hex(payload).upper, fixture.privateKey)`. */
44
+ expectedSignature: 'CFF9ABD65D3BBC985FE8A8C899DAC26B16DAB95B13AE2B2CB3DEAC2CA0E54F7791307B22971180D6016422EEE2E36ACFECCC7B7C3A1CB7701CE28D243E16BF03',
45
+ };
46
+ /**
47
+ * Reproduce the validator's verifier check verbatim.
48
+ *
49
+ * Mirrors `verifyXRPLSignature` at
50
+ * libs/security-core/src/auth/web3-auth.service.ts:328-350 — same hex
51
+ * canonicalization, same ripple-keypairs.verify entry point. Used by the
52
+ * signFn spec to cross-check the CLI's output WITHOUT importing the heavy
53
+ * NestJS-bound web3-auth.service.ts class graph.
54
+ */
55
+ function validatorVerifyXrplSignature(publicKey, message, signature) {
56
+ const messageHex = Buffer.from(message, 'utf-8').toString('hex').toUpperCase();
57
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
58
+ const { verify } = require('ripple-keypairs');
59
+ return verify(messageHex, signature, publicKey);
60
+ }
61
+ /**
62
+ * Build a throwaway tmp directory and return its path + a cleanup fn.
63
+ *
64
+ * Usage:
65
+ * const { dir, cleanup } = makeTempDir('hsuite-init-');
66
+ * afterEach(cleanup);
67
+ */
68
+ function makeTempDir(prefix = 'hsuite-cli-spec-') {
69
+ const dir = (0, fs_1.mkdtempSync)((0, path_1.join)((0, os_1.tmpdir)(), prefix));
70
+ return {
71
+ dir,
72
+ cleanup: () => (0, fs_1.rmSync)(dir, { recursive: true, force: true }),
73
+ };
74
+ }
75
+ /** Build the path for an env file inside a tmp dir. */
76
+ function envPathIn(dir, name = '.env.local') {
77
+ return (0, path_1.join)(dir, name);
78
+ }
79
+ //# sourceMappingURL=fixtures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../../src/__tests__/helpers/fixtures.ts"],"names":[],"mappings":";;;AAmDA,oEASC;AASD,kCASC;AAGD,8BAEC;AAnFD;;;;;;;;;;;GAWG;AACH,2BAAyC;AACzC,2BAA4B;AAC5B,+BAA4B;AAE5B;;;;;;;;;;;;;;GAcG;AACU,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE,iCAAiC;IACvC,OAAO,EAAE,oCAAoC;IAC7C,SAAS,EAAE,oEAAoE;IAC/E,0EAA0E;IAC1E,OAAO,EAAE,qBAAqB;IAC9B,gEAAgE;IAChE,iBAAiB,EACf,kIAAkI;CAC5H,CAAC;AAEX;;;;;;;;GAQG;AACH,SAAgB,4BAA4B,CAC1C,SAAiB,EACjB,OAAe,EACf,SAAiB;IAEjB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/E,8DAA8D;IAC9D,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,WAAW,CAAC,MAAM,GAAG,kBAAkB;IAIrD,MAAM,GAAG,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,OAAO;QACL,GAAG;QACH,OAAO,EAAE,GAAG,EAAE,CAAC,IAAA,WAAM,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED,uDAAuD;AACvD,SAAgB,SAAS,CAAC,GAAW,EAAE,IAAI,GAAG,YAAY;IACxD,OAAO,IAAA,WAAI,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACzB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /** Public SDK-bootstrap host for the Smart Engines testnet. */
2
+ export declare const DEFAULT_GATEWAY = "https://gateway.testnet.hsuite.network";
3
+ /**
4
+ * Resolve the gateway URL to connect to. Bootstraps decentralized cluster
5
+ * discovery against `bootstrap`; on an empty registry or any failure,
6
+ * falls back to `bootstrap` itself (a working round-robin gateway).
7
+ *
8
+ * @param bootstrap fully-qualified bootstrap URL (the `--gateway` value)
9
+ * @returns the gateway URL the CLI should talk to
10
+ */
11
+ export declare function resolveGatewayUrl(bootstrap: string): Promise<string>;
12
+ //# sourceMappingURL=cluster.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster.d.ts","sourceRoot":"","sources":["../../src/_lib/cluster.ts"],"names":[],"mappings":"AAiBA,+DAA+D;AAC/D,eAAO,MAAM,eAAe,2CAA2C,CAAC;AAExE;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAY1E"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_GATEWAY = void 0;
4
+ exports.resolveGatewayUrl = resolveGatewayUrl;
5
+ /**
6
+ * Cluster bootstrap — resolve a working gateway URL via decentralized
7
+ * cluster discovery.
8
+ *
9
+ * The CLI bootstraps against the public round-robin host
10
+ * `gateway.testnet.hsuite.network` — 3 DNS A-records over the 3 genesis
11
+ * cluster ingress LBs (HANDOFF arc-v13-do-deploy §11). It fetches the
12
+ * cluster registry through the SDK's `ClusterDiscoveryClient` and picks a
13
+ * random active cluster, so the CLI follows permissionless cluster
14
+ * join/leave with no code edits.
15
+ *
16
+ * If the registry is empty or unreachable it falls back to the bootstrap
17
+ * host itself — which is already a working gateway, round-robined across
18
+ * the clusters — so the CLI degrades gracefully instead of failing.
19
+ */
20
+ const smart_engines_sdk_1 = require("@hsuite/smart-engines-sdk");
21
+ /** Public SDK-bootstrap host for the Smart Engines testnet. */
22
+ exports.DEFAULT_GATEWAY = 'https://gateway.testnet.hsuite.network';
23
+ /**
24
+ * Resolve the gateway URL to connect to. Bootstraps decentralized cluster
25
+ * discovery against `bootstrap`; on an empty registry or any failure,
26
+ * falls back to `bootstrap` itself (a working round-robin gateway).
27
+ *
28
+ * @param bootstrap fully-qualified bootstrap URL (the `--gateway` value)
29
+ * @returns the gateway URL the CLI should talk to
30
+ */
31
+ async function resolveGatewayUrl(bootstrap) {
32
+ const allowInsecure = bootstrap.startsWith('http://');
33
+ try {
34
+ const discovery = new smart_engines_sdk_1.ClusterDiscoveryClient({
35
+ bootstrap: [bootstrap],
36
+ allowInsecure,
37
+ });
38
+ const url = await discovery.getRandomGatewayUrl();
39
+ return url ?? bootstrap;
40
+ }
41
+ catch {
42
+ return bootstrap;
43
+ }
44
+ }
45
+ //# sourceMappingURL=cluster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster.js","sourceRoot":"","sources":["../../src/_lib/cluster.ts"],"names":[],"mappings":";;;AA4BA,8CAYC;AAxCD;;;;;;;;;;;;;;GAcG;AACH,iEAAmE;AAEnE,+DAA+D;AAClD,QAAA,eAAe,GAAG,wCAAwC,CAAC;AAExE;;;;;;;GAOG;AACI,KAAK,UAAU,iBAAiB,CAAC,SAAiB;IACvD,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,0CAAsB,CAAC;YAC3C,SAAS,EAAE,CAAC,SAAS,CAAC;YACtB,aAAa;SACd,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,mBAAmB,EAAE,CAAC;QAClD,OAAO,GAAG,IAAI,SAAS,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+DpC,eAAO,MAAM,aAAa,SA6HtB,CAAC"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgEpC,eAAO,MAAM,aAAa,SAyItB,CAAC"}
@@ -61,6 +61,7 @@ const path_1 = require("path");
61
61
  const readline = __importStar(require("readline"));
62
62
  const smart_engines_sdk_1 = require("@hsuite/smart-engines-sdk");
63
63
  const env_1 = require("../_lib/env");
64
+ const cluster_1 = require("../_lib/cluster");
64
65
  /**
65
66
  * Block until the user presses Enter on stdin. Skipped in non-interactive
66
67
  * mode (env `CI=true`, no TTY, or `--non-interactive` flag) — caller is
@@ -88,7 +89,7 @@ exports.deployCommand = new commander_1.Command('deploy')
88
89
  .description('Deploy a smart-app from a JSON manifest (init → push → deploy)')
89
90
  .requiredOption('--manifest <file>', 'JSON manifest path')
90
91
  .option('--env <file>', 'Env file with auth creds', '.env.local')
91
- .option('--gateway <url>', 'Smart-engines gateway URL', 'https://v3-testnet-gateway.hsuite.network')
92
+ .option('--gateway <url>', 'Bootstrap host — seed for decentralized cluster discovery', cluster_1.DEFAULT_GATEWAY)
92
93
  .option('--non-interactive', 'Skip the wait-for-Enter between init and deploy', false)
93
94
  .action(async (opts) => {
94
95
  console.log(chalk_1.default.bold.cyan('\n hsuite deploy\n'));
@@ -109,17 +110,27 @@ exports.deployCommand = new commander_1.Command('deploy')
109
110
  console.log(chalk_1.default.gray(` name: ${manifest.name}`));
110
111
  console.log(chalk_1.default.gray(` port: ${manifest.port}`));
111
112
  console.log(chalk_1.default.gray(` services: ${manifest.services.join(', ') || '(none)'}`));
112
- console.log(chalk_1.default.gray(` tag: ${manifest.tag}`));
113
- console.log(chalk_1.default.gray(` gateway: ${opts.gateway}\n`));
113
+ console.log(chalk_1.default.gray(` tag: ${manifest.tag}`));
114
+ console.log(chalk_1.default.gray(` bootstrap: ${opts.gateway}\n`));
114
115
  const env = (0, env_1.readEnv)(opts.env);
115
116
  const signer = (0, env_1.buildSignerFromEnv)(env);
117
+ // Decentralized cluster discovery: bootstrap → registry → random node.
118
+ // Falls back to the bootstrap host (a working round-robin gateway).
119
+ let spinner = (0, ora_1.default)('discovering cluster...').start();
120
+ const gatewayUrl = await (0, cluster_1.resolveGatewayUrl)(opts.gateway);
121
+ spinner.succeed(`cluster: ${gatewayUrl}`);
116
122
  const client = new smart_engines_sdk_1.BaasClient({
117
- hostUrl: opts.gateway,
123
+ hostUrl: gatewayUrl,
118
124
  appId: env.get('SUBSCRIPTION_APP_ID') ?? 'pending',
119
- allowInsecure: opts.gateway.startsWith('http://'),
120
- pathPrefix: '/host',
125
+ allowInsecure: gatewayUrl.startsWith('http://'),
126
+ // Paths are the apps' real /api/* routes; the ingress routes each
127
+ // prefix straight to its service — no host-proxy prefix.
128
+ pathPrefix: '',
129
+ // deployment.init runs the smart-app entity DKG ceremony synchronously
130
+ // across the validator cluster — well past the 30s default. 3 min.
131
+ timeout: 180_000,
121
132
  });
122
- let spinner = (0, ora_1.default)('authenticate...').start();
133
+ spinner = (0, ora_1.default)('authenticate...').start();
123
134
  try {
124
135
  await client.authenticate({
125
136
  chain: signer.chain,
@@ -184,6 +195,7 @@ exports.deployCommand = new commander_1.Command('deploy')
184
195
  try {
185
196
  deployRes = await client.deployment.deploy(init.appId, {
186
197
  tag: manifest.tag,
198
+ port: manifest.port,
187
199
  replicas: manifest.replicas ?? 1,
188
200
  env: manifest.env,
189
201
  });
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,eAAO,MAAM,WAAW,SAwEpB,CAAC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,eAAO,MAAM,WAAW,SAwEpB,CAAC"}
@@ -13,6 +13,7 @@ const ora_1 = __importDefault(require("ora"));
13
13
  const fs_1 = require("fs");
14
14
  const path_1 = require("path");
15
15
  const xrpl_1 = require("xrpl");
16
+ const cluster_1 = require("../_lib/cluster");
16
17
  const FAUCETS = {
17
18
  testnet: 'https://faucet.altnet.rippletest.net/accounts',
18
19
  devnet: 'https://faucet.devnet.rippletest.net/accounts',
@@ -21,7 +22,7 @@ exports.initCommand = new commander_1.Command('init')
21
22
  .description('Generate an XRPL testnet wallet, fund it, and write .env')
22
23
  .option('--out <file>', 'Output env file path', '.env.local')
23
24
  .option('--network <network>', 'XRPL network (testnet | devnet)', 'testnet')
24
- .option('--gateway <url>', 'Smart-engines gateway URL', 'https://v3-testnet-gateway.hsuite.network')
25
+ .option('--gateway <url>', 'Smart-engines bootstrap host (written to the env file)', cluster_1.DEFAULT_GATEWAY)
25
26
  .option('--no-fund', 'Skip the testnet faucet step')
26
27
  .option('--force', 'Overwrite existing env file')
27
28
  .action(async (opts) => {
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../../src/commands/subscribe.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,gBAAgB,SAqGzB,CAAC"}
1
+ {"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../../src/commands/subscribe.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,eAAO,MAAM,gBAAgB,SAwHzB,CAAC"}
@@ -16,16 +16,17 @@ const chalk_1 = __importDefault(require("chalk"));
16
16
  const ora_1 = __importDefault(require("ora"));
17
17
  const smart_engines_sdk_1 = require("@hsuite/smart-engines-sdk");
18
18
  const env_1 = require("../_lib/env");
19
+ const cluster_1 = require("../_lib/cluster");
19
20
  exports.subscribeCommand = new commander_1.Command('subscribe')
20
21
  .description('Register a free_testnet smart-app on the cluster')
21
22
  .option('--env <file>', 'Env file with XRPL/Hedera creds', '.env.local')
22
- .option('--gateway <url>', 'Smart-engines gateway URL', 'https://v3-testnet-gateway.hsuite.network')
23
+ .option('--gateway <url>', 'Bootstrap host — seed for decentralized cluster discovery', cluster_1.DEFAULT_GATEWAY)
23
24
  .option('--name <name>', 'Smart-app display name')
24
25
  .option('--services <list>', 'Comma-separated services to enable', 'database,storage,messaging,functions')
25
26
  .action(async (opts) => {
26
27
  console.log(chalk_1.default.bold.cyan('\n hsuite subscribe\n'));
27
- console.log(chalk_1.default.gray(` env: ${opts.env}`));
28
- console.log(chalk_1.default.gray(` gateway: ${opts.gateway}\n`));
28
+ console.log(chalk_1.default.gray(` env: ${opts.env}`));
29
+ console.log(chalk_1.default.gray(` bootstrap: ${opts.gateway}\n`));
29
30
  let env;
30
31
  try {
31
32
  env = (0, env_1.readEnv)(opts.env);
@@ -58,11 +59,29 @@ exports.subscribeCommand = new commander_1.Command('subscribe')
58
59
  process.exit(1);
59
60
  }
60
61
  spinner.succeed(`signer ready (${signer.chain}, ${signer.walletAddress})`);
62
+ // Decentralized cluster discovery: bootstrap → registry → random node.
63
+ // Falls back to the bootstrap host (a working round-robin gateway) when
64
+ // the registry is empty or unreachable.
65
+ spinner = (0, ora_1.default)('discovering cluster...').start();
66
+ const gatewayUrl = await (0, cluster_1.resolveGatewayUrl)(opts.gateway);
67
+ spinner.succeed(`cluster: ${gatewayUrl}`);
61
68
  const client = new smart_engines_sdk_1.BaasClient({
62
- hostUrl: opts.gateway,
69
+ hostUrl: gatewayUrl,
63
70
  appId: 'pending',
64
- allowInsecure: opts.gateway.startsWith('http://'),
65
- pathPrefix: '/host',
71
+ allowInsecure: gatewayUrl.startsWith('http://'),
72
+ // Paths are the apps' real /api/* routes; the ingress routes each
73
+ // prefix straight to its service — no host-proxy prefix.
74
+ pathPrefix: '',
75
+ // `deployment.init` → smart-host → validator runtime-init. As of
76
+ // HANDOFF-arc-v13-do-deploy.md §18.3 4b / §19.4f item 2, the
77
+ // validator runs DKG asynchronously and smart-host's
78
+ // `SmartAppCreatorAdapter` polls until terminal (default 10 min
79
+ // poll-timeout, env-tunable via `RUNTIME_INIT_POLL_TIMEOUT_MS`
80
+ // on the smart-host pod). The HTTP request itself stays open
81
+ // for the full adapter-side poll window — bump the CLI timeout
82
+ // to match the adapter ceiling so a slow DKG doesn't truncate
83
+ // the request before the adapter resolves.
84
+ timeout: 10 * 60 * 1_000,
66
85
  });
67
86
  spinner = (0, ora_1.default)('web3-auth challenge → verify...').start();
68
87
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../src/commands/subscribe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../src/commands/subscribe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * `hsuite verify` — verify a PQC attestation cert against a payload.
3
+ *
4
+ * PR 11.1 — Arc 11 (external-verifier surface). Thin Commander wrapper
5
+ * around `verifyPqcAttestation` from `@hsuite/smart-engines-sdk/pqc-verify`
6
+ * (PR 11.0). Three invocation modes:
7
+ *
8
+ * - Direct verify:
9
+ * hsuite verify --cert <cert.json> --payload <payload.json>
10
+ *
11
+ * - Fetch-then-verify via smart-host proxy (PR #820):
12
+ * hsuite verify --topic-msg <consumer>/<contentHash> --payload <p.json>
13
+ *
14
+ * The proxy endpoint is `GET /api/pqc-attestation/<consumer>/<contentHash>`
15
+ * (apps/smart-host/src/pqc-proxy/pqc-attestation-proxy.controller.ts:35),
16
+ * keyed by `(consumer, contentHash)` — NOT a Hedera topic-message id.
17
+ * The flag name follows the design spec (§4.2) for customer-facing
18
+ * parity; the value is the consumer/contentHash slug the proxy actually
19
+ * accepts.
20
+ *
21
+ * - Help: hsuite verify --help
22
+ *
23
+ * Exit codes:
24
+ * 0 cert valid (threshold met)
25
+ * 1 cert invalid (specific reason printed to stderr) OR usage error
26
+ * 2 network / fetch error (only possible in --topic-msg mode)
27
+ *
28
+ * @see docs/superpowers/specs/2026-05-27-pqc-arc11-external-verifier-design.md §4.2
29
+ * @see docs/superpowers/plans/2026-05-27-pqc-arc11-external-verifier-plan.md PR 11.1
30
+ */
31
+ import { Command } from 'commander';
32
+ /**
33
+ * Build a fresh `verify` Command. Commander Command instances accumulate
34
+ * parsed-option state across `parseAsync` calls, so tests build their own
35
+ * via this factory to isolate runs; the bin entrypoint calls it once.
36
+ */
37
+ export declare function buildVerifyCommand(): Command;
38
+ /**
39
+ * Default command instance used by the bin entrypoint. Tests build their
40
+ * own via {@link buildVerifyCommand}.
41
+ */
42
+ export declare const verifyCommand: Command;
43
+ //# sourceMappingURL=verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0FpC;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CA0I5C;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,SAAuB,CAAC"}
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.verifyCommand = void 0;
7
+ exports.buildVerifyCommand = buildVerifyCommand;
8
+ /**
9
+ * `hsuite verify` — verify a PQC attestation cert against a payload.
10
+ *
11
+ * PR 11.1 — Arc 11 (external-verifier surface). Thin Commander wrapper
12
+ * around `verifyPqcAttestation` from `@hsuite/smart-engines-sdk/pqc-verify`
13
+ * (PR 11.0). Three invocation modes:
14
+ *
15
+ * - Direct verify:
16
+ * hsuite verify --cert <cert.json> --payload <payload.json>
17
+ *
18
+ * - Fetch-then-verify via smart-host proxy (PR #820):
19
+ * hsuite verify --topic-msg <consumer>/<contentHash> --payload <p.json>
20
+ *
21
+ * The proxy endpoint is `GET /api/pqc-attestation/<consumer>/<contentHash>`
22
+ * (apps/smart-host/src/pqc-proxy/pqc-attestation-proxy.controller.ts:35),
23
+ * keyed by `(consumer, contentHash)` — NOT a Hedera topic-message id.
24
+ * The flag name follows the design spec (§4.2) for customer-facing
25
+ * parity; the value is the consumer/contentHash slug the proxy actually
26
+ * accepts.
27
+ *
28
+ * - Help: hsuite verify --help
29
+ *
30
+ * Exit codes:
31
+ * 0 cert valid (threshold met)
32
+ * 1 cert invalid (specific reason printed to stderr) OR usage error
33
+ * 2 network / fetch error (only possible in --topic-msg mode)
34
+ *
35
+ * @see docs/superpowers/specs/2026-05-27-pqc-arc11-external-verifier-design.md §4.2
36
+ * @see docs/superpowers/plans/2026-05-27-pqc-arc11-external-verifier-plan.md PR 11.1
37
+ */
38
+ const commander_1 = require("commander");
39
+ const chalk_1 = __importDefault(require("chalk"));
40
+ const fs_1 = require("fs");
41
+ const path_1 = require("path");
42
+ const pqc_verify_1 = require("@hsuite/smart-engines-sdk/pqc-verify");
43
+ const cluster_1 = require("../_lib/cluster");
44
+ /**
45
+ * Slug shape for `--topic-msg`. Matches the proxy controller's two
46
+ * Param() regexes (CONSUMER_RE + HASH_RE in pqc-attestation-proxy.service.ts).
47
+ * Surfacing the parse failure as a usage error (exit 1) rather than a fetch
48
+ * error so the developer fixes the input, not their connectivity.
49
+ */
50
+ const TOPIC_MSG_SLUG_RE = /^([a-z][a-z0-9-]{0,63})\/([a-f0-9]{64})$/;
51
+ function readJsonFile(label, p) {
52
+ const abs = (0, path_1.resolve)(p);
53
+ if (!(0, fs_1.existsSync)(abs)) {
54
+ throw new Error(`${label} file not found: ${abs}`);
55
+ }
56
+ const raw = (0, fs_1.readFileSync)(abs, 'utf8');
57
+ try {
58
+ return JSON.parse(raw);
59
+ }
60
+ catch (err) {
61
+ throw new Error(`${label} file is not valid JSON: ${err.message}`);
62
+ }
63
+ }
64
+ /**
65
+ * Map the verifier's machine-readable `reason` codes (e.g. `content-hash-mismatch`,
66
+ * `threshold-not-met`, `schema-invalid: <detail>`) to the human strings the CLI
67
+ * surfaces. The exit code is the contract; the wording is a developer-facing
68
+ * affordance, so we humanize "content-hash-mismatch" → "content-hash mismatch"
69
+ * and strip the verifier's debug suffix (computed=/cert=/verified=/required=).
70
+ */
71
+ function humanizeReason(reason) {
72
+ if (!reason)
73
+ return 'unknown';
74
+ // Strip trailing debug suffix after first ": " — keeps the kind, drops detail.
75
+ const head = reason.split(': ')[0];
76
+ // content-hash-mismatch → content-hash mismatch
77
+ if (head === 'content-hash-mismatch')
78
+ return 'content-hash mismatch';
79
+ // threshold-not-met → threshold not met
80
+ if (head === 'threshold-not-met')
81
+ return 'threshold not met';
82
+ // schema-invalid → schema invalid (preserve original detail when present)
83
+ if (head === 'schema-invalid') {
84
+ const detail = reason.slice('schema-invalid'.length);
85
+ return `schema invalid${detail}`;
86
+ }
87
+ // payload-canonicalization-failed → payload canonicalization failed
88
+ if (head === 'payload-canonicalization-failed') {
89
+ return 'payload canonicalization failed';
90
+ }
91
+ // registry-* → registry <rest>
92
+ if (head.startsWith('registry-')) {
93
+ return head.replace(/^registry-/, 'registry ').replace(/-/g, ' ');
94
+ }
95
+ // Fallback: hyphens → spaces, keep detail.
96
+ return reason.replace(/-/g, ' ');
97
+ }
98
+ /**
99
+ * Fetch a cert from the smart-host proxy. Throws on transport / 5xx;
100
+ * returns `null` on a missing cert (404 OR `cert: null` payload OR
101
+ * `status: 'pending' | 'missing'` envelope).
102
+ */
103
+ async function fetchCertFromProxy(args) {
104
+ const base = args.server.replace(/\/+$/, '');
105
+ const url = `${base}/api/pqc-attestation/${args.consumer}/${args.contentHash}`;
106
+ const resp = await fetch(url);
107
+ if (resp.status === 404)
108
+ return null;
109
+ if (!resp.ok) {
110
+ throw new Error(`smart-host proxy returned HTTP ${resp.status}`);
111
+ }
112
+ const body = (await resp.json());
113
+ if (body.status && body.status !== 'valid')
114
+ return null;
115
+ return body.cert ?? null;
116
+ }
117
+ /**
118
+ * Build a fresh `verify` Command. Commander Command instances accumulate
119
+ * parsed-option state across `parseAsync` calls, so tests build their own
120
+ * via this factory to isolate runs; the bin entrypoint calls it once.
121
+ */
122
+ function buildVerifyCommand() {
123
+ const cmd = new commander_1.Command('verify')
124
+ .description('Verify a PQC attestation cert against a payload (direct or via smart-host proxy)')
125
+ .option('--cert <path>', 'Path to the PQC cert JSON file (direct-verify mode)')
126
+ .option('--topic-msg <consumer/contentHash>', 'Fetch the cert via smart-host proxy at /api/pqc-attestation/<consumer>/<contentHash> then verify')
127
+ .option('--payload <path>', 'Path to the JSON payload to verify against')
128
+ .option('--server <url>', 'Smart-host base URL for --topic-msg mode (default: $SMART_HOST_URL / $VALIDATOR_URL / public testnet)')
129
+ .addHelpText('after', `
130
+ Examples:
131
+ hsuite verify --cert ./cert.json --payload ./payload.json
132
+ hsuite verify --topic-msg license-envelope/abc...def --payload ./payload.json
133
+
134
+ Exit codes:
135
+ 0 cert valid (threshold met)
136
+ 1 cert invalid (with reason on stderr) OR usage error
137
+ 2 network / fetch error (only in --topic-msg mode)
138
+ `)
139
+ .action(async (opts) => {
140
+ // ── Flag validation ───────────────────────────────────────────────────
141
+ if (!opts.payload) {
142
+ console.error(chalk_1.default.red(' --payload is required\n'));
143
+ cmd.outputHelp();
144
+ process.exit(1);
145
+ }
146
+ const haveCert = !!opts.cert;
147
+ const haveTopicMsg = !!opts.topicMsg;
148
+ if (!haveCert && !haveTopicMsg) {
149
+ console.error(chalk_1.default.red(' one of --cert or --topic-msg is required\n'));
150
+ cmd.outputHelp();
151
+ process.exit(1);
152
+ }
153
+ if (haveCert && haveTopicMsg) {
154
+ console.error(chalk_1.default.red(' --cert and --topic-msg are mutually exclusive\n'));
155
+ cmd.outputHelp();
156
+ process.exit(1);
157
+ }
158
+ // ── Load payload (both modes) ─────────────────────────────────────────
159
+ let payload;
160
+ try {
161
+ payload = readJsonFile('payload', opts.payload);
162
+ }
163
+ catch (err) {
164
+ console.error(chalk_1.default.red(` ${err.message}\n`));
165
+ process.exit(1);
166
+ }
167
+ // ── Resolve cert (direct or proxy-fetched) ────────────────────────────
168
+ let cert;
169
+ if (haveCert) {
170
+ try {
171
+ cert = readJsonFile('cert', opts.cert);
172
+ }
173
+ catch (err) {
174
+ console.error(chalk_1.default.red(` ${err.message}\n`));
175
+ process.exit(1);
176
+ }
177
+ }
178
+ else {
179
+ const slugMatch = TOPIC_MSG_SLUG_RE.exec(opts.topicMsg);
180
+ if (!slugMatch) {
181
+ console.error(chalk_1.default.red(' --topic-msg must be "<consumer>/<contentHash>" where consumer matches /^[a-z][a-z0-9-]{0,63}$/ and contentHash is 64 hex chars\n'));
182
+ process.exit(1);
183
+ }
184
+ const [, consumer, contentHash] = slugMatch;
185
+ const server = opts.server ??
186
+ process.env.SMART_HOST_URL ??
187
+ process.env.VALIDATOR_URL ??
188
+ cluster_1.DEFAULT_GATEWAY;
189
+ try {
190
+ const fetched = await fetchCertFromProxy({
191
+ server,
192
+ consumer,
193
+ contentHash,
194
+ });
195
+ if (fetched === null) {
196
+ console.error(chalk_1.default.red(' Cert not found on platform\n'));
197
+ process.exit(2);
198
+ }
199
+ cert = fetched;
200
+ }
201
+ catch (err) {
202
+ console.error(chalk_1.default.red(` Network error: ${err.message}\n`));
203
+ process.exit(2);
204
+ }
205
+ }
206
+ // ── Verify ────────────────────────────────────────────────────────────
207
+ const result = await (0, pqc_verify_1.verifyPqcAttestation)(cert, payload);
208
+ if (result.valid) {
209
+ const n = result.verifiedSignerCount ?? 0;
210
+ // `signers.length` is on the cert (already schema-validated by
211
+ // verifyPqcAttestation). We pull it back out for the "N of M"
212
+ // diagnostic without re-parsing.
213
+ const m = Array.isArray(cert.signers)
214
+ ? (cert.signers.length)
215
+ : n;
216
+ console.log(chalk_1.default.green(` Cert valid — ${n} of ${m} signers verified, threshold met`));
217
+ process.exit(0);
218
+ }
219
+ else {
220
+ console.error(chalk_1.default.red(` Cert invalid — ${humanizeReason(result.reason)}`));
221
+ process.exit(1);
222
+ }
223
+ });
224
+ return cmd;
225
+ }
226
+ /**
227
+ * Default command instance used by the bin entrypoint. Tests build their
228
+ * own via {@link buildVerifyCommand}.
229
+ */
230
+ exports.verifyCommand = buildVerifyCommand();
231
+ //# sourceMappingURL=verify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -57,6 +57,7 @@ const deploy_1 = require("./commands/deploy");
57
57
  const governance_1 = require("./commands/governance");
58
58
  const hist_balance_1 = require("./commands/hist-balance");
59
59
  const personhood_1 = require("./commands/personhood");
60
+ const verify_1 = require("./commands/verify");
60
61
  dotenv.config();
61
62
  function getVersion() {
62
63
  try {
@@ -79,6 +80,7 @@ program.addCommand(deploy_1.deployCommand);
79
80
  program.addCommand(governance_1.governanceCommand);
80
81
  program.addCommand(hist_balance_1.histBalanceCommand);
81
82
  program.addCommand(personhood_1.personhoodCommand);
83
+ program.addCommand(verify_1.verifyCommand);
82
84
  program.parse(process.argv);
83
85
  if (!process.argv.slice(2).length) {
84
86
  program.outputHelp();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,yCAAoC;AACpC,+CAAiC;AACjC,uCAAyB;AACzB,2CAA6B;AAC7B,0CAA8C;AAC9C,oDAAwD;AACxD,8CAAkD;AAClD,sDAA0D;AAC1D,0DAA6D;AAC7D,sDAA0D;AAE1D,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1E,OAAO,WAAW,CAAC,OAAO,IAAI,OAAO,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,oEAAoE,CAAC;KACjF,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;AAEzB,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,4BAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,8BAAiB,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,iCAAkB,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,8BAAiB,CAAC,CAAC;AAEtC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,yCAAoC;AACpC,+CAAiC;AACjC,uCAAyB;AACzB,2CAA6B;AAC7B,0CAA8C;AAC9C,oDAAwD;AACxD,8CAAkD;AAClD,sDAA0D;AAC1D,0DAA6D;AAC7D,sDAA0D;AAC1D,8CAAkD;AAElD,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1E,OAAO,WAAW,CAAC,OAAO,IAAI,OAAO,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,oEAAoE,CAAC;KACjF,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;AAEzB,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,4BAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,8BAAiB,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,iCAAkB,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,8BAAiB,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAElC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hsuite/smart-engines-cli",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "HSuite CLI for smart-app deployment and management",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",