@hsuite/smart-engines-cli 1.1.0 → 1.2.0
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/dist/__tests__/helpers/fixtures.d.ts +48 -0
- package/dist/__tests__/helpers/fixtures.d.ts.map +1 -0
- package/dist/__tests__/helpers/fixtures.js +79 -0
- package/dist/__tests__/helpers/fixtures.js.map +1 -0
- package/dist/_lib/cluster.d.ts +15 -0
- package/dist/_lib/cluster.d.ts.map +1 -0
- package/dist/_lib/cluster.js +18 -0
- package/dist/_lib/cluster.js.map +1 -0
- package/dist/_lib/subscription-client.d.ts +152 -0
- package/dist/_lib/subscription-client.d.ts.map +1 -0
- package/dist/_lib/subscription-client.js +84 -0
- package/dist/_lib/subscription-client.js.map +1 -0
- package/dist/_lib/subscription-env.d.ts +20 -0
- package/dist/_lib/subscription-env.d.ts.map +1 -0
- package/dist/_lib/subscription-env.js +28 -0
- package/dist/_lib/subscription-env.js.map +1 -0
- package/dist/commands/billing.d.ts +17 -0
- package/dist/commands/billing.d.ts.map +1 -0
- package/dist/commands/billing.js +59 -0
- package/dist/commands/billing.js.map +1 -0
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +32 -10
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/downgrade.d.ts +22 -0
- package/dist/commands/downgrade.d.ts.map +1 -0
- package/dist/commands/downgrade.js +55 -0
- package/dist/commands/downgrade.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +5 -7
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/renew.d.ts +19 -0
- package/dist/commands/renew.d.ts.map +1 -0
- package/dist/commands/renew.js +58 -0
- package/dist/commands/renew.js.map +1 -0
- package/dist/commands/subscribe.d.ts +40 -4
- package/dist/commands/subscribe.d.ts.map +1 -1
- package/dist/commands/subscribe.js +156 -75
- package/dist/commands/subscribe.js.map +1 -1
- package/dist/commands/upgrade.d.ts +41 -0
- package/dist/commands/upgrade.d.ts.map +1 -0
- package/dist/commands/upgrade.js +128 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/commands/usage.d.ts +22 -0
- package/dist/commands/usage.d.ts.map +1 -0
- package/dist/commands/usage.js +81 -0
- package/dist/commands/usage.js.map +1 -0
- package/dist/commands/verify.d.ts +56 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +291 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -2
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `hsuite verify` — verify a PQC attestation cert (Sig program) OR a Kyber
|
|
3
|
+
* hybrid envelope (Kyber Arc 11).
|
|
4
|
+
*
|
|
5
|
+
* PR 11.1 — Arc 11 (external-verifier surface). Thin Commander wrapper
|
|
6
|
+
* around `verifyPqcAttestation` from `@hsuite/smart-engines-sdk/pqc-verify`
|
|
7
|
+
* (PR 11.0) AND `verifyPqcEnvelope` from
|
|
8
|
+
* `@hsuite/smart-engines-sdk/pqc-verify-envelope` (Kyber Arc 11).
|
|
9
|
+
*
|
|
10
|
+
* Four invocation modes:
|
|
11
|
+
*
|
|
12
|
+
* - Direct cert verify (Sig):
|
|
13
|
+
* hsuite verify --cert <cert.json> --payload <payload.json>
|
|
14
|
+
*
|
|
15
|
+
* - Fetch-then-verify cert via smart-host proxy (Sig, PR #820):
|
|
16
|
+
* hsuite verify --topic-msg <consumer>/<contentHash> --payload <p.json>
|
|
17
|
+
*
|
|
18
|
+
* The proxy endpoint is `GET /api/pqc-attestation/<consumer>/<contentHash>`
|
|
19
|
+
* (apps/smart-host/src/pqc-proxy/pqc-attestation-proxy.controller.ts:35),
|
|
20
|
+
* keyed by `(consumer, contentHash)` — NOT a Hedera topic-message id.
|
|
21
|
+
* The flag name follows the design spec (§4.2) for customer-facing
|
|
22
|
+
* parity; the value is the consumer/contentHash slug the proxy actually
|
|
23
|
+
* accepts.
|
|
24
|
+
*
|
|
25
|
+
* - Envelope verify (Kyber):
|
|
26
|
+
* hsuite verify --envelope <envelope.json>
|
|
27
|
+
* [--expected-label <label>]
|
|
28
|
+
* [--expected-fingerprint <hex>]
|
|
29
|
+
*
|
|
30
|
+
* Observation-only — schema + base64 + timestamp + optional claim
|
|
31
|
+
* checks. No decryption, no key access.
|
|
32
|
+
*
|
|
33
|
+
* - Help: hsuite verify --help
|
|
34
|
+
*
|
|
35
|
+
* Exit codes:
|
|
36
|
+
* 0 cert/envelope valid
|
|
37
|
+
* 1 cert/envelope invalid (specific reason printed to stderr) OR usage error
|
|
38
|
+
* 2 network / fetch error (only possible in --topic-msg mode)
|
|
39
|
+
*
|
|
40
|
+
* @see docs/superpowers/specs/2026-05-27-pqc-arc11-external-verifier-design.md §4.2
|
|
41
|
+
* @see docs/superpowers/specs/2026-05-29-kyber-mlkem-production-readiness.md §5 Arc 11
|
|
42
|
+
* @see docs/superpowers/plans/2026-05-27-pqc-arc11-external-verifier-plan.md PR 11.1
|
|
43
|
+
*/
|
|
44
|
+
import { Command } from 'commander';
|
|
45
|
+
/**
|
|
46
|
+
* Build a fresh `verify` Command. Commander Command instances accumulate
|
|
47
|
+
* parsed-option state across `parseAsync` calls, so tests build their own
|
|
48
|
+
* via this factory to isolate runs; the bin entrypoint calls it once.
|
|
49
|
+
*/
|
|
50
|
+
export declare function buildVerifyCommand(): Command;
|
|
51
|
+
/**
|
|
52
|
+
* Default command instance used by the bin entrypoint. Tests build their
|
|
53
|
+
* own via {@link buildVerifyCommand}.
|
|
54
|
+
*/
|
|
55
|
+
export declare const verifyCommand: Command;
|
|
56
|
+
//# sourceMappingURL=verify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgGpC;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAwM5C;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,SAAuB,CAAC"}
|
|
@@ -0,0 +1,291 @@
|
|
|
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 (Sig program) OR a Kyber
|
|
10
|
+
* hybrid envelope (Kyber Arc 11).
|
|
11
|
+
*
|
|
12
|
+
* PR 11.1 — Arc 11 (external-verifier surface). Thin Commander wrapper
|
|
13
|
+
* around `verifyPqcAttestation` from `@hsuite/smart-engines-sdk/pqc-verify`
|
|
14
|
+
* (PR 11.0) AND `verifyPqcEnvelope` from
|
|
15
|
+
* `@hsuite/smart-engines-sdk/pqc-verify-envelope` (Kyber Arc 11).
|
|
16
|
+
*
|
|
17
|
+
* Four invocation modes:
|
|
18
|
+
*
|
|
19
|
+
* - Direct cert verify (Sig):
|
|
20
|
+
* hsuite verify --cert <cert.json> --payload <payload.json>
|
|
21
|
+
*
|
|
22
|
+
* - Fetch-then-verify cert via smart-host proxy (Sig, PR #820):
|
|
23
|
+
* hsuite verify --topic-msg <consumer>/<contentHash> --payload <p.json>
|
|
24
|
+
*
|
|
25
|
+
* The proxy endpoint is `GET /api/pqc-attestation/<consumer>/<contentHash>`
|
|
26
|
+
* (apps/smart-host/src/pqc-proxy/pqc-attestation-proxy.controller.ts:35),
|
|
27
|
+
* keyed by `(consumer, contentHash)` — NOT a Hedera topic-message id.
|
|
28
|
+
* The flag name follows the design spec (§4.2) for customer-facing
|
|
29
|
+
* parity; the value is the consumer/contentHash slug the proxy actually
|
|
30
|
+
* accepts.
|
|
31
|
+
*
|
|
32
|
+
* - Envelope verify (Kyber):
|
|
33
|
+
* hsuite verify --envelope <envelope.json>
|
|
34
|
+
* [--expected-label <label>]
|
|
35
|
+
* [--expected-fingerprint <hex>]
|
|
36
|
+
*
|
|
37
|
+
* Observation-only — schema + base64 + timestamp + optional claim
|
|
38
|
+
* checks. No decryption, no key access.
|
|
39
|
+
*
|
|
40
|
+
* - Help: hsuite verify --help
|
|
41
|
+
*
|
|
42
|
+
* Exit codes:
|
|
43
|
+
* 0 cert/envelope valid
|
|
44
|
+
* 1 cert/envelope invalid (specific reason printed to stderr) OR usage error
|
|
45
|
+
* 2 network / fetch error (only possible in --topic-msg mode)
|
|
46
|
+
*
|
|
47
|
+
* @see docs/superpowers/specs/2026-05-27-pqc-arc11-external-verifier-design.md §4.2
|
|
48
|
+
* @see docs/superpowers/specs/2026-05-29-kyber-mlkem-production-readiness.md §5 Arc 11
|
|
49
|
+
* @see docs/superpowers/plans/2026-05-27-pqc-arc11-external-verifier-plan.md PR 11.1
|
|
50
|
+
*/
|
|
51
|
+
const commander_1 = require("commander");
|
|
52
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
53
|
+
const fs_1 = require("fs");
|
|
54
|
+
const path_1 = require("path");
|
|
55
|
+
// NOTE: imported from the SDK root barrel (not the `pqc-verify` /
|
|
56
|
+
// `pqc-verify-envelope` subpath exports) because the CLI's tsconfig.build.json
|
|
57
|
+
// uses classic `moduleResolution: "node"`, which doesn't honor package.json
|
|
58
|
+
// `exports` subpaths (TS2307 — added in TS 4.7 via `node16`/`nodenext`).
|
|
59
|
+
// The SDK re-exports both helpers from `libs/smartengine-sdk/src/index.ts`,
|
|
60
|
+
// so root-barrel imports resolve cleanly under classic resolution.
|
|
61
|
+
const smart_engines_sdk_1 = require("@hsuite/smart-engines-sdk");
|
|
62
|
+
const cluster_1 = require("../_lib/cluster");
|
|
63
|
+
/**
|
|
64
|
+
* Slug shape for `--topic-msg`. Matches the proxy controller's two
|
|
65
|
+
* Param() regexes (CONSUMER_RE + HASH_RE in pqc-attestation-proxy.service.ts).
|
|
66
|
+
* Surfacing the parse failure as a usage error (exit 1) rather than a fetch
|
|
67
|
+
* error so the developer fixes the input, not their connectivity.
|
|
68
|
+
*/
|
|
69
|
+
const TOPIC_MSG_SLUG_RE = /^([a-z][a-z0-9-]{0,63})\/([a-f0-9]{64})$/;
|
|
70
|
+
function readJsonFile(label, p) {
|
|
71
|
+
const abs = (0, path_1.resolve)(p);
|
|
72
|
+
if (!(0, fs_1.existsSync)(abs)) {
|
|
73
|
+
throw new Error(`${label} file not found: ${abs}`);
|
|
74
|
+
}
|
|
75
|
+
const raw = (0, fs_1.readFileSync)(abs, 'utf8');
|
|
76
|
+
try {
|
|
77
|
+
return JSON.parse(raw);
|
|
78
|
+
}
|
|
79
|
+
catch (err) {
|
|
80
|
+
throw new Error(`${label} file is not valid JSON: ${err.message}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Map the verifier's machine-readable `reason` codes (e.g. `content-hash-mismatch`,
|
|
85
|
+
* `threshold-not-met`, `schema-invalid: <detail>`) to the human strings the CLI
|
|
86
|
+
* surfaces. The exit code is the contract; the wording is a developer-facing
|
|
87
|
+
* affordance, so we humanize "content-hash-mismatch" → "content-hash mismatch"
|
|
88
|
+
* and strip the verifier's debug suffix (computed=/cert=/verified=/required=).
|
|
89
|
+
*/
|
|
90
|
+
function humanizeReason(reason) {
|
|
91
|
+
if (!reason)
|
|
92
|
+
return 'unknown';
|
|
93
|
+
// Strip trailing debug suffix after first ": " — keeps the kind, drops detail.
|
|
94
|
+
const head = reason.split(': ')[0];
|
|
95
|
+
// content-hash-mismatch → content-hash mismatch
|
|
96
|
+
if (head === 'content-hash-mismatch')
|
|
97
|
+
return 'content-hash mismatch';
|
|
98
|
+
// threshold-not-met → threshold not met
|
|
99
|
+
if (head === 'threshold-not-met')
|
|
100
|
+
return 'threshold not met';
|
|
101
|
+
// schema-invalid → schema invalid (preserve original detail when present)
|
|
102
|
+
if (head === 'schema-invalid') {
|
|
103
|
+
const detail = reason.slice('schema-invalid'.length);
|
|
104
|
+
return `schema invalid${detail}`;
|
|
105
|
+
}
|
|
106
|
+
// payload-canonicalization-failed → payload canonicalization failed
|
|
107
|
+
if (head === 'payload-canonicalization-failed') {
|
|
108
|
+
return 'payload canonicalization failed';
|
|
109
|
+
}
|
|
110
|
+
// registry-* → registry <rest>
|
|
111
|
+
if (head.startsWith('registry-')) {
|
|
112
|
+
return head.replace(/^registry-/, 'registry ').replace(/-/g, ' ');
|
|
113
|
+
}
|
|
114
|
+
// Fallback: hyphens → spaces, keep detail.
|
|
115
|
+
return reason.replace(/-/g, ' ');
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Fetch a cert from the smart-host proxy. Throws on transport / 5xx;
|
|
119
|
+
* returns `null` on a missing cert (404 OR `cert: null` payload OR
|
|
120
|
+
* `status: 'pending' | 'missing'` envelope).
|
|
121
|
+
*/
|
|
122
|
+
async function fetchCertFromProxy(args) {
|
|
123
|
+
const base = args.server.replace(/\/+$/, '');
|
|
124
|
+
const url = `${base}/api/pqc-attestation/${args.consumer}/${args.contentHash}`;
|
|
125
|
+
const resp = await fetch(url);
|
|
126
|
+
if (resp.status === 404)
|
|
127
|
+
return null;
|
|
128
|
+
if (!resp.ok) {
|
|
129
|
+
throw new Error(`smart-host proxy returned HTTP ${resp.status}`);
|
|
130
|
+
}
|
|
131
|
+
const body = (await resp.json());
|
|
132
|
+
if (body.status && body.status !== 'valid')
|
|
133
|
+
return null;
|
|
134
|
+
return body.cert ?? null;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Build a fresh `verify` Command. Commander Command instances accumulate
|
|
138
|
+
* parsed-option state across `parseAsync` calls, so tests build their own
|
|
139
|
+
* via this factory to isolate runs; the bin entrypoint calls it once.
|
|
140
|
+
*/
|
|
141
|
+
function buildVerifyCommand() {
|
|
142
|
+
const cmd = new commander_1.Command('verify')
|
|
143
|
+
.description('Verify a PQC attestation cert (Sig) or a Kyber hybrid envelope (Arc 11)')
|
|
144
|
+
.option('--cert <path>', 'Path to the PQC cert JSON file (direct-verify cert mode)')
|
|
145
|
+
.option('--topic-msg <consumer/contentHash>', 'Fetch the cert via smart-host proxy at /api/pqc-attestation/<consumer>/<contentHash> then verify')
|
|
146
|
+
.option('--envelope <path>', 'Path to a Kyber hybrid envelope JSON file (observation-only verify; no decryption)')
|
|
147
|
+
.option('--payload <path>', 'Path to the JSON payload to verify against (cert modes only)')
|
|
148
|
+
.option('--expected-label <label>', 'Kyber envelope: REQUIRE the envelope.kdfLabel to equal this value (envelope mode only)')
|
|
149
|
+
.option('--expected-fingerprint <hex>', 'Kyber envelope: REQUIRE the envelope.recipientPkFingerprint to equal this hex value (envelope mode only)')
|
|
150
|
+
.option('--server <url>', 'Smart-host base URL for --topic-msg mode (default: $SMART_HOST_URL / $VALIDATOR_URL / public testnet)')
|
|
151
|
+
.addHelpText('after', `
|
|
152
|
+
Examples:
|
|
153
|
+
hsuite verify --cert ./cert.json --payload ./payload.json
|
|
154
|
+
hsuite verify --topic-msg license-envelope/abc...def --payload ./payload.json
|
|
155
|
+
hsuite verify --envelope ./envelope.json
|
|
156
|
+
hsuite verify --envelope ./envelope.json --expected-label smart-app-secret-envelope-v1
|
|
157
|
+
|
|
158
|
+
Exit codes:
|
|
159
|
+
0 cert/envelope valid
|
|
160
|
+
1 cert/envelope invalid (with reason on stderr) OR usage error
|
|
161
|
+
2 network / fetch error (only in --topic-msg mode)
|
|
162
|
+
`)
|
|
163
|
+
.action(async (opts) => {
|
|
164
|
+
// ── Envelope mode (Kyber Arc 11) — short-circuits before cert flow ────
|
|
165
|
+
// Mode is mutually exclusive with --cert/--topic-msg/--payload.
|
|
166
|
+
const haveEnvelope = !!opts.envelope;
|
|
167
|
+
if (haveEnvelope) {
|
|
168
|
+
if (opts.cert || opts.topicMsg || opts.payload) {
|
|
169
|
+
console.error(chalk_1.default.red(' --envelope is mutually exclusive with --cert/--topic-msg/--payload\n'));
|
|
170
|
+
cmd.outputHelp();
|
|
171
|
+
process.exit(1);
|
|
172
|
+
}
|
|
173
|
+
let envelopeJson;
|
|
174
|
+
try {
|
|
175
|
+
envelopeJson = readJsonFile('envelope', opts.envelope);
|
|
176
|
+
}
|
|
177
|
+
catch (err) {
|
|
178
|
+
console.error(chalk_1.default.red(` ${err.message}\n`));
|
|
179
|
+
process.exit(1);
|
|
180
|
+
}
|
|
181
|
+
const result = await (0, smart_engines_sdk_1.verifyPqcEnvelope)(envelopeJson, {
|
|
182
|
+
expectedLabel: opts.expectedLabel,
|
|
183
|
+
expectedRecipientPkFingerprint: opts.expectedFingerprint,
|
|
184
|
+
});
|
|
185
|
+
if (result.valid) {
|
|
186
|
+
console.log(chalk_1.default.green(` Envelope valid — version=${result.version}` +
|
|
187
|
+
(result.details.kemAlgorithm
|
|
188
|
+
? `, kem=${result.details.kemAlgorithm}`
|
|
189
|
+
: '') +
|
|
190
|
+
(result.details.kdfLabel
|
|
191
|
+
? `, label='${result.details.kdfLabel}'`
|
|
192
|
+
: '')));
|
|
193
|
+
process.exit(0);
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
console.error(chalk_1.default.red(` Envelope invalid — ${result.reason}`));
|
|
197
|
+
process.exit(1);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
// ── Cert-mode flag validation ─────────────────────────────────────────
|
|
201
|
+
if (!opts.payload) {
|
|
202
|
+
console.error(chalk_1.default.red(' --payload is required\n'));
|
|
203
|
+
cmd.outputHelp();
|
|
204
|
+
process.exit(1);
|
|
205
|
+
}
|
|
206
|
+
const haveCert = !!opts.cert;
|
|
207
|
+
const haveTopicMsg = !!opts.topicMsg;
|
|
208
|
+
if (!haveCert && !haveTopicMsg) {
|
|
209
|
+
console.error(chalk_1.default.red(' one of --cert, --topic-msg, or --envelope is required\n'));
|
|
210
|
+
cmd.outputHelp();
|
|
211
|
+
process.exit(1);
|
|
212
|
+
}
|
|
213
|
+
if (haveCert && haveTopicMsg) {
|
|
214
|
+
console.error(chalk_1.default.red(' --cert and --topic-msg are mutually exclusive\n'));
|
|
215
|
+
cmd.outputHelp();
|
|
216
|
+
process.exit(1);
|
|
217
|
+
}
|
|
218
|
+
// ── Load payload (both modes) ─────────────────────────────────────────
|
|
219
|
+
let payload;
|
|
220
|
+
try {
|
|
221
|
+
payload = readJsonFile('payload', opts.payload);
|
|
222
|
+
}
|
|
223
|
+
catch (err) {
|
|
224
|
+
console.error(chalk_1.default.red(` ${err.message}\n`));
|
|
225
|
+
process.exit(1);
|
|
226
|
+
}
|
|
227
|
+
// ── Resolve cert (direct or proxy-fetched) ────────────────────────────
|
|
228
|
+
let cert;
|
|
229
|
+
if (haveCert) {
|
|
230
|
+
try {
|
|
231
|
+
cert = readJsonFile('cert', opts.cert);
|
|
232
|
+
}
|
|
233
|
+
catch (err) {
|
|
234
|
+
console.error(chalk_1.default.red(` ${err.message}\n`));
|
|
235
|
+
process.exit(1);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
const slugMatch = TOPIC_MSG_SLUG_RE.exec(opts.topicMsg);
|
|
240
|
+
if (!slugMatch) {
|
|
241
|
+
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'));
|
|
242
|
+
process.exit(1);
|
|
243
|
+
}
|
|
244
|
+
const [, consumer, contentHash] = slugMatch;
|
|
245
|
+
const server = opts.server ??
|
|
246
|
+
process.env.SMART_HOST_URL ??
|
|
247
|
+
process.env.VALIDATOR_URL ??
|
|
248
|
+
cluster_1.DEFAULT_GATEWAY;
|
|
249
|
+
try {
|
|
250
|
+
const fetched = await fetchCertFromProxy({
|
|
251
|
+
server,
|
|
252
|
+
consumer,
|
|
253
|
+
contentHash,
|
|
254
|
+
});
|
|
255
|
+
if (fetched === null) {
|
|
256
|
+
console.error(chalk_1.default.red(' Cert not found on platform\n'));
|
|
257
|
+
process.exit(2);
|
|
258
|
+
}
|
|
259
|
+
cert = fetched;
|
|
260
|
+
}
|
|
261
|
+
catch (err) {
|
|
262
|
+
console.error(chalk_1.default.red(` Network error: ${err.message}\n`));
|
|
263
|
+
process.exit(2);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
// ── Verify ────────────────────────────────────────────────────────────
|
|
267
|
+
const result = await (0, smart_engines_sdk_1.verifyPqcAttestation)(cert, payload);
|
|
268
|
+
if (result.valid) {
|
|
269
|
+
const n = result.verifiedSignerCount ?? 0;
|
|
270
|
+
// `signers.length` is on the cert (already schema-validated by
|
|
271
|
+
// verifyPqcAttestation). We pull it back out for the "N of M"
|
|
272
|
+
// diagnostic without re-parsing.
|
|
273
|
+
const m = Array.isArray(cert.signers)
|
|
274
|
+
? (cert.signers.length)
|
|
275
|
+
: n;
|
|
276
|
+
console.log(chalk_1.default.green(` Cert valid — ${n} of ${m} signers verified, threshold met`));
|
|
277
|
+
process.exit(0);
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
console.error(chalk_1.default.red(` Cert invalid — ${humanizeReason(result.reason)}`));
|
|
281
|
+
process.exit(1);
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
return cmd;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Default command instance used by the bin entrypoint. Tests build their
|
|
288
|
+
* own via {@link buildVerifyCommand}.
|
|
289
|
+
*/
|
|
290
|
+
exports.verifyCommand = buildVerifyCommand();
|
|
291
|
+
//# 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.d.ts
CHANGED
|
@@ -4,8 +4,14 @@
|
|
|
4
4
|
*
|
|
5
5
|
* hsuite init Generate XRPL testnet wallet, fund via
|
|
6
6
|
* faucet, write .env.local.
|
|
7
|
-
* hsuite subscribe --
|
|
8
|
-
*
|
|
7
|
+
* hsuite subscribe [--tier T] Mint a subscription NFT via the cluster's
|
|
8
|
+
* /api/v3/subscription/* surface.
|
|
9
|
+
* hsuite renew Extend the subscription lock period.
|
|
10
|
+
* hsuite upgrade --to-tier T Upgrade tier (may require a top-up).
|
|
11
|
+
* hsuite downgrade --to-tier T Schedule a downgrade for next renewal.
|
|
12
|
+
* hsuite tier-change cancel Cancel a pending tier change.
|
|
13
|
+
* hsuite usage Print today's usage + overage info.
|
|
14
|
+
* hsuite billing Print the billing-ledger entries.
|
|
9
15
|
* hsuite deploy --manifest <f> Deploy a smart-app from a JSON manifest.
|
|
10
16
|
*
|
|
11
17
|
* Smart Engines V3 is XRPL-only for smart-app authentication and
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;GAkBG"}
|
package/dist/index.js
CHANGED
|
@@ -5,8 +5,14 @@
|
|
|
5
5
|
*
|
|
6
6
|
* hsuite init Generate XRPL testnet wallet, fund via
|
|
7
7
|
* faucet, write .env.local.
|
|
8
|
-
* hsuite subscribe --
|
|
9
|
-
*
|
|
8
|
+
* hsuite subscribe [--tier T] Mint a subscription NFT via the cluster's
|
|
9
|
+
* /api/v3/subscription/* surface.
|
|
10
|
+
* hsuite renew Extend the subscription lock period.
|
|
11
|
+
* hsuite upgrade --to-tier T Upgrade tier (may require a top-up).
|
|
12
|
+
* hsuite downgrade --to-tier T Schedule a downgrade for next renewal.
|
|
13
|
+
* hsuite tier-change cancel Cancel a pending tier change.
|
|
14
|
+
* hsuite usage Print today's usage + overage info.
|
|
15
|
+
* hsuite billing Print the billing-ledger entries.
|
|
10
16
|
* hsuite deploy --manifest <f> Deploy a smart-app from a JSON manifest.
|
|
11
17
|
*
|
|
12
18
|
* Smart Engines V3 is XRPL-only for smart-app authentication and
|
|
@@ -54,9 +60,15 @@ const path = __importStar(require("path"));
|
|
|
54
60
|
const init_1 = require("./commands/init");
|
|
55
61
|
const subscribe_1 = require("./commands/subscribe");
|
|
56
62
|
const deploy_1 = require("./commands/deploy");
|
|
63
|
+
const renew_1 = require("./commands/renew");
|
|
64
|
+
const upgrade_1 = require("./commands/upgrade");
|
|
65
|
+
const downgrade_1 = require("./commands/downgrade");
|
|
66
|
+
const usage_1 = require("./commands/usage");
|
|
67
|
+
const billing_1 = require("./commands/billing");
|
|
57
68
|
const governance_1 = require("./commands/governance");
|
|
58
69
|
const hist_balance_1 = require("./commands/hist-balance");
|
|
59
70
|
const personhood_1 = require("./commands/personhood");
|
|
71
|
+
const verify_1 = require("./commands/verify");
|
|
60
72
|
dotenv.config();
|
|
61
73
|
function getVersion() {
|
|
62
74
|
try {
|
|
@@ -75,10 +87,17 @@ program
|
|
|
75
87
|
.version(getVersion());
|
|
76
88
|
program.addCommand(init_1.initCommand);
|
|
77
89
|
program.addCommand(subscribe_1.subscribeCommand);
|
|
90
|
+
program.addCommand(renew_1.renewCommand);
|
|
91
|
+
program.addCommand(upgrade_1.upgradeCommand);
|
|
92
|
+
program.addCommand(downgrade_1.downgradeCommand);
|
|
93
|
+
program.addCommand(upgrade_1.tierChangeCommand);
|
|
94
|
+
program.addCommand(usage_1.usageCommand);
|
|
95
|
+
program.addCommand(billing_1.billingCommand);
|
|
78
96
|
program.addCommand(deploy_1.deployCommand);
|
|
79
97
|
program.addCommand(governance_1.governanceCommand);
|
|
80
98
|
program.addCommand(hist_balance_1.histBalanceCommand);
|
|
81
99
|
program.addCommand(personhood_1.personhoodCommand);
|
|
100
|
+
program.addCommand(verify_1.verifyCommand);
|
|
82
101
|
program.parse(process.argv);
|
|
83
102
|
if (!process.argv.slice(2).length) {
|
|
84
103
|
program.outputHelp();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA;;;;;;;;;;;;;;;;;;GAkBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,yCAAoC;AACpC,+CAAiC;AACjC,uCAAyB;AACzB,2CAA6B;AAC7B,0CAA8C;AAC9C,oDAAwD;AACxD,8CAAkD;AAClD,4CAAgD;AAChD,gDAAuE;AACvE,oDAAwD;AACxD,4CAAgD;AAChD,gDAAoD;AACpD,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,oBAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,4BAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,2BAAiB,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,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.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "HSuite CLI for smart-app deployment and management",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"prepublishOnly": "npm run clean && npm run build"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@hsuite/smart-engines-sdk": "^3.
|
|
21
|
+
"@hsuite/smart-engines-sdk": "^3.4.0",
|
|
22
22
|
"chalk": "^4.1.2",
|
|
23
23
|
"commander": "^11.1.0",
|
|
24
24
|
"dotenv": "^17.2.3",
|