@peac/cli 0.10.0 → 0.10.10
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/LICENSE +1 -1
- package/README.md +78 -5
- package/dist/commands/conformance.d.ts +16 -0
- package/dist/commands/conformance.d.ts.map +1 -0
- package/dist/commands/samples.d.ts +17 -0
- package/dist/commands/samples.d.ts.map +1 -0
- package/dist/index.cjs +2257 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.mjs +2236 -0
- package/dist/index.mjs.map +1 -0
- package/dist/lib/conformance/digest.d.ts +64 -0
- package/dist/lib/conformance/digest.d.ts.map +1 -0
- package/dist/lib/conformance/index.d.ts +11 -0
- package/dist/lib/conformance/index.d.ts.map +1 -0
- package/dist/lib/conformance/manifest.d.ts +15 -0
- package/dist/lib/conformance/manifest.d.ts.map +1 -0
- package/dist/lib/conformance/profiles.d.ts +33 -0
- package/dist/lib/conformance/profiles.d.ts.map +1 -0
- package/dist/lib/conformance/types.d.ts +186 -0
- package/dist/lib/conformance/types.d.ts.map +1 -0
- package/dist/lib/conformance/validators.d.ts +27 -0
- package/dist/lib/conformance/validators.d.ts.map +1 -0
- package/dist/lib/conformance-runner.d.ts +29 -0
- package/dist/lib/conformance-runner.d.ts.map +1 -0
- package/dist/lib/samples-loader.d.ts +44 -0
- package/dist/lib/samples-loader.d.ts.map +1 -0
- package/dist/lib/version.d.ts +22 -0
- package/dist/lib/version.d.ts.map +1 -0
- package/package.json +27 -13
- package/dist/cli.js +0 -90
- package/dist/cli.js.map +0 -1
- package/dist/commands/bridge/index.js +0 -20
- package/dist/commands/bridge/index.js.map +0 -1
- package/dist/commands/bridge/install.js +0 -27
- package/dist/commands/bridge/install.js.map +0 -1
- package/dist/commands/bridge/start.js +0 -123
- package/dist/commands/bridge/start.js.map +0 -1
- package/dist/commands/bridge/status.js +0 -192
- package/dist/commands/bridge/status.js.map +0 -1
- package/dist/commands/bridge/stop.js +0 -130
- package/dist/commands/bridge/stop.js.map +0 -1
- package/dist/commands/bundle.js +0 -363
- package/dist/commands/bundle.js.map +0 -1
- package/dist/commands/discover.js +0 -39
- package/dist/commands/discover.js.map +0 -1
- package/dist/commands/hash.js +0 -106
- package/dist/commands/hash.js.map +0 -1
- package/dist/commands/policy.js +0 -712
- package/dist/commands/policy.js.map +0 -1
- package/dist/commands/verify.js +0 -50
- package/dist/commands/verify.js.map +0 -1
- package/dist/index.js +0 -217
- package/dist/index.js.map +0 -1
- package/dist/types.js +0 -6
- package/dist/types.js.map +0 -1
- package/dist/utils.js +0 -101
- package/dist/utils.js.map +0 -1
package/dist/commands/bundle.js
DELETED
|
@@ -1,363 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* PEAC Bundle CLI Commands (v0.9.30+)
|
|
4
|
-
*
|
|
5
|
-
* Commands for creating and verifying dispute bundles:
|
|
6
|
-
* - create: Create a dispute bundle from receipts and keys
|
|
7
|
-
* - verify: Verify a dispute bundle (offline by default)
|
|
8
|
-
* - info: Show bundle manifest information
|
|
9
|
-
*
|
|
10
|
-
* Automation flags:
|
|
11
|
-
* - --json: Machine-readable JSON output
|
|
12
|
-
* - --online: Enable external key fetching (verify only, not yet implemented)
|
|
13
|
-
*/
|
|
14
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
|
-
if (k2 === undefined) k2 = k;
|
|
16
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
17
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
18
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
19
|
-
}
|
|
20
|
-
Object.defineProperty(o, k2, desc);
|
|
21
|
-
}) : (function(o, m, k, k2) {
|
|
22
|
-
if (k2 === undefined) k2 = k;
|
|
23
|
-
o[k2] = m[k];
|
|
24
|
-
}));
|
|
25
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
26
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
27
|
-
}) : function(o, v) {
|
|
28
|
-
o["default"] = v;
|
|
29
|
-
});
|
|
30
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
31
|
-
var ownKeys = function(o) {
|
|
32
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
33
|
-
var ar = [];
|
|
34
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
35
|
-
return ar;
|
|
36
|
-
};
|
|
37
|
-
return ownKeys(o);
|
|
38
|
-
};
|
|
39
|
-
return function (mod) {
|
|
40
|
-
if (mod && mod.__esModule) return mod;
|
|
41
|
-
var result = {};
|
|
42
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
43
|
-
__setModuleDefault(result, mod);
|
|
44
|
-
return result;
|
|
45
|
-
};
|
|
46
|
-
})();
|
|
47
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
-
exports.bundleCommand = void 0;
|
|
49
|
-
const commander_1 = require("commander");
|
|
50
|
-
const fs = __importStar(require("fs"));
|
|
51
|
-
const path = __importStar(require("path"));
|
|
52
|
-
const audit_1 = require("@peac/audit");
|
|
53
|
-
/**
|
|
54
|
-
* Get global options from parent command
|
|
55
|
-
*/
|
|
56
|
-
function getGlobalOptions(cmd) {
|
|
57
|
-
const parent = cmd.parent;
|
|
58
|
-
if (!parent)
|
|
59
|
-
return {};
|
|
60
|
-
return parent.opts();
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Output result - handles JSON vs human-readable format
|
|
64
|
-
*/
|
|
65
|
-
function output(data, opts, humanMessage) {
|
|
66
|
-
if (opts.json) {
|
|
67
|
-
console.log(JSON.stringify(data, null, 2));
|
|
68
|
-
}
|
|
69
|
-
else if (humanMessage) {
|
|
70
|
-
console.log(humanMessage);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Output error - handles JSON vs human-readable format
|
|
75
|
-
*/
|
|
76
|
-
function outputError(error, details, opts) {
|
|
77
|
-
if (opts.json) {
|
|
78
|
-
console.log(JSON.stringify({ success: false, error, ...details }, null, 2));
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
console.error(`Error: ${error}`);
|
|
82
|
-
if (details.code) {
|
|
83
|
-
console.error(`Code: ${details.code}`);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Read receipts from a directory or files
|
|
89
|
-
*/
|
|
90
|
-
function readReceipts(receiptsPath) {
|
|
91
|
-
const receipts = [];
|
|
92
|
-
const stat = fs.statSync(receiptsPath);
|
|
93
|
-
if (stat.isDirectory()) {
|
|
94
|
-
// Read all .jws files in directory
|
|
95
|
-
const files = fs.readdirSync(receiptsPath);
|
|
96
|
-
for (const file of files) {
|
|
97
|
-
if (file.endsWith('.jws')) {
|
|
98
|
-
const content = fs.readFileSync(path.join(receiptsPath, file), 'utf8').trim();
|
|
99
|
-
receipts.push(content);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
// Single file - read it
|
|
105
|
-
const content = fs.readFileSync(receiptsPath, 'utf8').trim();
|
|
106
|
-
receipts.push(content);
|
|
107
|
-
}
|
|
108
|
-
return receipts;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Read JWKS from file
|
|
112
|
-
*/
|
|
113
|
-
function readJwks(keysPath) {
|
|
114
|
-
const content = fs.readFileSync(keysPath, 'utf8');
|
|
115
|
-
return JSON.parse(content);
|
|
116
|
-
}
|
|
117
|
-
const bundle = new commander_1.Command('bundle').description('Dispute bundle operations (v0.9.30+)');
|
|
118
|
-
exports.bundleCommand = bundle;
|
|
119
|
-
/**
|
|
120
|
-
* peac bundle create --dispute <ref> --receipts <path> --keys <file> [--policy <file>] -o <output>
|
|
121
|
-
*/
|
|
122
|
-
bundle
|
|
123
|
-
.command('create')
|
|
124
|
-
.description('Create a dispute bundle from receipts and keys')
|
|
125
|
-
.requiredOption('-d, --dispute <ref>', 'Dispute reference (ULID)')
|
|
126
|
-
.requiredOption('-r, --receipts <path>', 'Path to receipts (directory or file)')
|
|
127
|
-
.requiredOption('-k, --keys <file>', 'Path to JWKS file with public keys')
|
|
128
|
-
.option('-p, --policy <file>', 'Path to policy YAML file')
|
|
129
|
-
.option('-c, --created-by <uri>', 'Creator URI (default: cli)')
|
|
130
|
-
.requiredOption('-o, --output <file>', 'Output bundle file path')
|
|
131
|
-
.option('--bundle-id <id>', 'Custom bundle ID (generated if not provided)')
|
|
132
|
-
.action(async (options, cmd) => {
|
|
133
|
-
const globalOpts = getGlobalOptions(cmd);
|
|
134
|
-
try {
|
|
135
|
-
// Validate input paths exist
|
|
136
|
-
if (!fs.existsSync(options.receipts)) {
|
|
137
|
-
outputError('Receipts path not found', { path: options.receipts }, globalOpts);
|
|
138
|
-
process.exit(1);
|
|
139
|
-
}
|
|
140
|
-
if (!fs.existsSync(options.keys)) {
|
|
141
|
-
outputError('JWKS file not found', { path: options.keys }, globalOpts);
|
|
142
|
-
process.exit(1);
|
|
143
|
-
}
|
|
144
|
-
// Read inputs
|
|
145
|
-
const receipts = readReceipts(options.receipts);
|
|
146
|
-
const keys = readJwks(options.keys);
|
|
147
|
-
if (receipts.length === 0) {
|
|
148
|
-
outputError('No receipts found', { path: options.receipts }, globalOpts);
|
|
149
|
-
process.exit(1);
|
|
150
|
-
}
|
|
151
|
-
// Read policy if provided
|
|
152
|
-
let policy;
|
|
153
|
-
if (options.policy) {
|
|
154
|
-
if (!fs.existsSync(options.policy)) {
|
|
155
|
-
outputError('Policy file not found', { path: options.policy }, globalOpts);
|
|
156
|
-
process.exit(1);
|
|
157
|
-
}
|
|
158
|
-
policy = fs.readFileSync(options.policy, 'utf8');
|
|
159
|
-
}
|
|
160
|
-
// Create bundle
|
|
161
|
-
const createOptions = {
|
|
162
|
-
dispute_ref: options.dispute,
|
|
163
|
-
created_by: options.createdBy ?? 'peac-cli',
|
|
164
|
-
receipts,
|
|
165
|
-
keys,
|
|
166
|
-
policy,
|
|
167
|
-
bundle_id: options.bundleId,
|
|
168
|
-
};
|
|
169
|
-
const result = await (0, audit_1.createDisputeBundle)(createOptions);
|
|
170
|
-
if (!result.ok) {
|
|
171
|
-
outputError(result.error.message, { code: result.error.code }, globalOpts);
|
|
172
|
-
process.exit(1);
|
|
173
|
-
}
|
|
174
|
-
// Write output
|
|
175
|
-
fs.writeFileSync(options.output, result.value);
|
|
176
|
-
// Read back to get manifest info
|
|
177
|
-
const readResult = await (0, audit_1.readDisputeBundle)(result.value);
|
|
178
|
-
if (readResult.ok) {
|
|
179
|
-
const manifest = readResult.value.manifest;
|
|
180
|
-
output({
|
|
181
|
-
success: true,
|
|
182
|
-
bundle_id: manifest.bundle_id,
|
|
183
|
-
content_hash: manifest.content_hash,
|
|
184
|
-
receipts_count: manifest.receipts.length,
|
|
185
|
-
keys_count: manifest.keys.length,
|
|
186
|
-
output_path: options.output,
|
|
187
|
-
}, globalOpts, `Bundle created successfully:
|
|
188
|
-
Bundle ID: ${manifest.bundle_id}
|
|
189
|
-
Content hash: ${manifest.content_hash}
|
|
190
|
-
Receipts: ${manifest.receipts.length}
|
|
191
|
-
Keys: ${manifest.keys.length}
|
|
192
|
-
Output: ${options.output}`);
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
output({ success: true, output_path: options.output }, globalOpts, `Bundle created: ${options.output}`);
|
|
196
|
-
}
|
|
197
|
-
process.exit(0);
|
|
198
|
-
}
|
|
199
|
-
catch (err) {
|
|
200
|
-
outputError(err.message, {}, globalOpts);
|
|
201
|
-
process.exit(1);
|
|
202
|
-
}
|
|
203
|
-
});
|
|
204
|
-
/**
|
|
205
|
-
* peac bundle verify <bundle> [--online] [--output <file>] [--format json|text]
|
|
206
|
-
*
|
|
207
|
-
* NOTE: Verification is OFFLINE by default - uses only keys bundled in the archive.
|
|
208
|
-
* Use --online to enable external key fetching (not yet implemented).
|
|
209
|
-
*/
|
|
210
|
-
bundle
|
|
211
|
-
.command('verify')
|
|
212
|
-
.description('Verify a dispute bundle (offline by default)')
|
|
213
|
-
.argument('<bundle>', 'Path to bundle ZIP file')
|
|
214
|
-
.option('--online', 'Allow external key fetching (not yet implemented)', false)
|
|
215
|
-
.option('-o, --output <file>', 'Output report to file')
|
|
216
|
-
.option('-f, --format <format>', 'Output format: json or text', 'text')
|
|
217
|
-
.action(async (bundlePath, options, cmd) => {
|
|
218
|
-
const globalOpts = getGlobalOptions(cmd);
|
|
219
|
-
try {
|
|
220
|
-
// Validate bundle exists
|
|
221
|
-
if (!fs.existsSync(bundlePath)) {
|
|
222
|
-
outputError('Bundle file not found', { path: bundlePath }, globalOpts);
|
|
223
|
-
process.exit(1);
|
|
224
|
-
}
|
|
225
|
-
// Read bundle
|
|
226
|
-
const zipBuffer = fs.readFileSync(bundlePath);
|
|
227
|
-
// Verify bundle - offline by default, online if explicitly requested
|
|
228
|
-
const offline = !options.online;
|
|
229
|
-
const result = await (0, audit_1.verifyBundle)(zipBuffer, { offline });
|
|
230
|
-
if (!result.ok) {
|
|
231
|
-
outputError(result.error.message, { code: result.error.code }, globalOpts);
|
|
232
|
-
process.exit(1);
|
|
233
|
-
}
|
|
234
|
-
const report = result.value;
|
|
235
|
-
// Format output
|
|
236
|
-
let outputContent;
|
|
237
|
-
if (options.format === 'json' || globalOpts.json) {
|
|
238
|
-
outputContent = (0, audit_1.serializeReport)(report, true);
|
|
239
|
-
}
|
|
240
|
-
else {
|
|
241
|
-
outputContent = (0, audit_1.formatReportText)(report);
|
|
242
|
-
}
|
|
243
|
-
// Write to file or stdout
|
|
244
|
-
if (options.output) {
|
|
245
|
-
fs.writeFileSync(options.output, outputContent);
|
|
246
|
-
output({
|
|
247
|
-
success: true,
|
|
248
|
-
report_hash: report.report_hash,
|
|
249
|
-
summary: report.summary,
|
|
250
|
-
recommendation: report.auditor_summary.recommendation,
|
|
251
|
-
output_path: options.output,
|
|
252
|
-
}, globalOpts, `Verification complete:
|
|
253
|
-
${report.auditor_summary.headline}
|
|
254
|
-
Recommendation: ${report.auditor_summary.recommendation.toUpperCase()}
|
|
255
|
-
Report hash: ${report.report_hash}
|
|
256
|
-
Report saved to: ${options.output}`);
|
|
257
|
-
}
|
|
258
|
-
else if (globalOpts.json) {
|
|
259
|
-
// JSON to stdout
|
|
260
|
-
console.log(outputContent);
|
|
261
|
-
}
|
|
262
|
-
else {
|
|
263
|
-
// Text to stdout
|
|
264
|
-
console.log(outputContent);
|
|
265
|
-
}
|
|
266
|
-
// Exit code based on recommendation
|
|
267
|
-
const exitCode = report.auditor_summary.recommendation === 'valid' ? 0 : 1;
|
|
268
|
-
process.exit(exitCode);
|
|
269
|
-
}
|
|
270
|
-
catch (err) {
|
|
271
|
-
outputError(err.message, {}, globalOpts);
|
|
272
|
-
process.exit(1);
|
|
273
|
-
}
|
|
274
|
-
});
|
|
275
|
-
/**
|
|
276
|
-
* peac bundle info <bundle>
|
|
277
|
-
*/
|
|
278
|
-
bundle
|
|
279
|
-
.command('info')
|
|
280
|
-
.description('Show bundle manifest information')
|
|
281
|
-
.argument('<bundle>', 'Path to bundle ZIP file')
|
|
282
|
-
.action(async (bundlePath, options, cmd) => {
|
|
283
|
-
const globalOpts = getGlobalOptions(cmd);
|
|
284
|
-
try {
|
|
285
|
-
// Validate bundle exists
|
|
286
|
-
if (!fs.existsSync(bundlePath)) {
|
|
287
|
-
outputError('Bundle file not found', { path: bundlePath }, globalOpts);
|
|
288
|
-
process.exit(1);
|
|
289
|
-
}
|
|
290
|
-
// Read bundle
|
|
291
|
-
const zipBuffer = fs.readFileSync(bundlePath);
|
|
292
|
-
const result = await (0, audit_1.readDisputeBundle)(zipBuffer);
|
|
293
|
-
if (!result.ok) {
|
|
294
|
-
outputError(result.error.message, { code: result.error.code }, globalOpts);
|
|
295
|
-
process.exit(1);
|
|
296
|
-
}
|
|
297
|
-
const { manifest, receipts, keys, policy } = result.value;
|
|
298
|
-
if (globalOpts.json) {
|
|
299
|
-
console.log(JSON.stringify({
|
|
300
|
-
success: true,
|
|
301
|
-
manifest: {
|
|
302
|
-
version: manifest.version,
|
|
303
|
-
bundle_id: manifest.bundle_id,
|
|
304
|
-
dispute_ref: manifest.dispute_ref,
|
|
305
|
-
created_by: manifest.created_by,
|
|
306
|
-
created_at: manifest.created_at,
|
|
307
|
-
time_range: manifest.time_range,
|
|
308
|
-
content_hash: manifest.content_hash,
|
|
309
|
-
receipts_count: manifest.receipts.length,
|
|
310
|
-
keys_count: manifest.keys.length,
|
|
311
|
-
has_policy: !!policy,
|
|
312
|
-
},
|
|
313
|
-
}, null, 2));
|
|
314
|
-
}
|
|
315
|
-
else {
|
|
316
|
-
console.log(`PEAC Dispute Bundle Info
|
|
317
|
-
========================
|
|
318
|
-
|
|
319
|
-
Version: ${manifest.version}
|
|
320
|
-
Bundle ID: ${manifest.bundle_id}
|
|
321
|
-
Dispute Ref: ${manifest.dispute_ref}
|
|
322
|
-
Created By: ${manifest.created_by}
|
|
323
|
-
Created At: ${manifest.created_at}
|
|
324
|
-
|
|
325
|
-
Time Range
|
|
326
|
-
----------
|
|
327
|
-
Start: ${manifest.time_range.start}
|
|
328
|
-
End: ${manifest.time_range.end}
|
|
329
|
-
|
|
330
|
-
Contents
|
|
331
|
-
--------
|
|
332
|
-
Receipts: ${manifest.receipts.length}
|
|
333
|
-
Keys: ${keys.keys.length}
|
|
334
|
-
Policy: ${policy ? 'Yes' : 'No'}
|
|
335
|
-
|
|
336
|
-
Integrity
|
|
337
|
-
---------
|
|
338
|
-
Content Hash: ${manifest.content_hash}
|
|
339
|
-
`);
|
|
340
|
-
// List receipts
|
|
341
|
-
if (manifest.receipts.length > 0) {
|
|
342
|
-
console.log('Receipts:');
|
|
343
|
-
for (const receipt of manifest.receipts) {
|
|
344
|
-
console.log(` - ${receipt.receipt_id} (${receipt.issued_at})`);
|
|
345
|
-
}
|
|
346
|
-
console.log('');
|
|
347
|
-
}
|
|
348
|
-
// List keys
|
|
349
|
-
if (manifest.keys.length > 0) {
|
|
350
|
-
console.log('Keys:');
|
|
351
|
-
for (const key of manifest.keys) {
|
|
352
|
-
console.log(` - ${key.kid} (${key.alg})`);
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
process.exit(0);
|
|
357
|
-
}
|
|
358
|
-
catch (err) {
|
|
359
|
-
outputError(err.message, {}, globalOpts);
|
|
360
|
-
process.exit(1);
|
|
361
|
-
}
|
|
362
|
-
});
|
|
363
|
-
//# sourceMappingURL=bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../src/commands/bundle.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,yCAAoC;AACpC,uCAAyB;AACzB,2CAA6B;AAC7B,uCAQqB;AASrB;;GAEG;AACH,SAAS,gBAAgB,CAAC,GAAY;IACpC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO,MAAM,CAAC,IAAI,EAAyB,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAS,MAAM,CACb,IAA6B,EAC7B,IAAyB,EACzB,YAAqB;IAErB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;SAAM,IAAI,YAAY,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAClB,KAAa,EACb,OAAgC,EAChC,IAAyB;IAEzB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;QACjC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,SAAS,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,YAAoB;IACxC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEvC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACvB,mCAAmC;QACnC,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC9E,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,wBAAwB;QACxB,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7D,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,QAAgB;IAChC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAkB,CAAC;AAC9C,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,sCAAsC,CAAC,CAAC;AA8RtE,+BAAa;AA5RhC;;GAEG;AACH,MAAM;KACH,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,cAAc,CAAC,qBAAqB,EAAE,0BAA0B,CAAC;KACjE,cAAc,CAAC,uBAAuB,EAAE,sCAAsC,CAAC;KAC/E,cAAc,CAAC,mBAAmB,EAAE,oCAAoC,CAAC;KACzE,MAAM,CAAC,qBAAqB,EAAE,0BAA0B,CAAC;KACzD,MAAM,CAAC,wBAAwB,EAAE,4BAA4B,CAAC;KAC9D,cAAc,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;KAChE,MAAM,CAAC,kBAAkB,EAAE,8CAA8C,CAAC;KAC1E,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;IAC7B,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,6BAA6B;QAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,WAAW,CAAC,yBAAyB,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,CAAC;YAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,WAAW,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,cAAc;QACd,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEpC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,WAAW,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,0BAA0B;QAC1B,IAAI,MAA0B,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnC,WAAW,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC;gBAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC;QAED,gBAAgB;QAChB,MAAM,aAAa,GAA+B;YAChD,WAAW,EAAE,OAAO,CAAC,OAAO;YAC5B,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,UAAU;YAC3C,QAAQ;YACR,IAAI;YACJ,MAAM;YACN,SAAS,EAAE,OAAO,CAAC,QAAQ;SAC5B,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAmB,EAAC,aAAa,CAAC,CAAC;QAExD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;YAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,eAAe;QACf,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAE/C,iCAAiC;QACjC,MAAM,UAAU,GAAG,MAAM,IAAA,yBAAiB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzD,IAAI,UAAU,CAAC,EAAE,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC3C,MAAM,CACJ;gBACE,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,YAAY,EAAE,QAAQ,CAAC,YAAY;gBACnC,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;gBACxC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;gBAChC,WAAW,EAAE,OAAO,CAAC,MAAM;aAC5B,EACD,UAAU,EACV;eACK,QAAQ,CAAC,SAAS;kBACf,QAAQ,CAAC,YAAY;cACzB,QAAQ,CAAC,QAAQ,CAAC,MAAM;UAC5B,QAAQ,CAAC,IAAI,CAAC,MAAM;YAClB,OAAO,CAAC,MAAM,EAAE,CACnB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CACJ,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,EAC9C,UAAU,EACV,mBAAmB,OAAO,CAAC,MAAM,EAAE,CACpC,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAE,GAAa,CAAC,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL;;;;;GAKG;AACH,MAAM;KACH,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,8CAA8C,CAAC;KAC3D,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;KAC/C,MAAM,CAAC,UAAU,EAAE,mDAAmD,EAAE,KAAK,CAAC;KAC9E,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;KACtD,MAAM,CAAC,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,CAAC;KACtE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;IACzC,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,yBAAyB;QACzB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,WAAW,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,UAAU,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,cAAc;QACd,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAE9C,qEAAqE;QACrE,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAY,EAAC,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAE1D,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;YAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;QAE5B,gBAAgB;QAChB,IAAI,aAAqB,CAAC;QAC1B,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACjD,aAAa,GAAG,IAAA,uBAAe,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,aAAa,GAAG,IAAA,wBAAgB,EAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QAED,0BAA0B;QAC1B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;YAChD,MAAM,CACJ;gBACE,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,cAAc,EAAE,MAAM,CAAC,eAAe,CAAC,cAAc;gBACrD,WAAW,EAAE,OAAO,CAAC,MAAM;aAC5B,EACD,UAAU,EACV;IACN,MAAM,CAAC,eAAe,CAAC,QAAQ;oBACf,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,WAAW,EAAE;iBACtD,MAAM,CAAC,WAAW;qBACd,OAAO,CAAC,MAAM,EAAE,CAC5B,CAAC;QACJ,CAAC;aAAM,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YAC3B,iBAAiB;YACjB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,iBAAiB;YACjB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC7B,CAAC;QAED,oCAAoC;QACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAE,GAAa,CAAC,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL;;GAEG;AACH,MAAM;KACH,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kCAAkC,CAAC;KAC/C,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;IACzC,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,yBAAyB;QACzB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,WAAW,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,UAAU,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,cAAc;QACd,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAiB,EAAC,SAAS,CAAC,CAAC;QAElD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;YAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;QAE1D,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ;gBACE,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE;oBACR,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,YAAY,EAAE,QAAQ,CAAC,YAAY;oBACnC,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;oBACxC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;oBAChC,UAAU,EAAE,CAAC,CAAC,MAAM;iBACrB;aACF,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC;;;WAGT,QAAQ,CAAC,OAAO;aACd,QAAQ,CAAC,SAAS;eAChB,QAAQ,CAAC,WAAW;cACrB,QAAQ,CAAC,UAAU;cACnB,QAAQ,CAAC,UAAU;;;;SAIxB,QAAQ,CAAC,UAAU,CAAC,KAAK;OAC3B,QAAQ,CAAC,UAAU,CAAC,GAAG;;;;YAIlB,QAAQ,CAAC,QAAQ,CAAC,MAAM;QAC5B,IAAI,CAAC,IAAI,CAAC,MAAM;UACd,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;;;;gBAIf,QAAQ,CAAC,YAAY;CACpC,CAAC,CAAC;YAEK,gBAAgB;YAChB,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACzB,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBACxC,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,UAAU,KAAK,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;gBAClE,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;YAED,YAAY;YACZ,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACrB,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAChC,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAE,GAAa,CAAC,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* peac discover <url> command
|
|
4
|
-
* Thin wrapper around @peac/disc for discovery
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.DiscoverCommand = void 0;
|
|
8
|
-
const disc_1 = require("@peac/disc");
|
|
9
|
-
const utils_js_1 = require("../utils.js");
|
|
10
|
-
class DiscoverCommand {
|
|
11
|
-
async execute(url, options = {}) {
|
|
12
|
-
const timer = (0, utils_js_1.timing)();
|
|
13
|
-
try {
|
|
14
|
-
const parsedUrl = new URL(url);
|
|
15
|
-
if (!['http:', 'https:'].includes(parsedUrl.protocol)) {
|
|
16
|
-
throw new Error('URL must use http: or https: protocol');
|
|
17
|
-
}
|
|
18
|
-
const discoveryResult = await (0, disc_1.discover)(url);
|
|
19
|
-
// Assert peac.txt ≤ 20 lines if present
|
|
20
|
-
if (discoveryResult?.data) {
|
|
21
|
-
// The discover function from @peac/disc returns a ParseResult
|
|
22
|
-
// We'll just validate line count if needed at the API level
|
|
23
|
-
}
|
|
24
|
-
return {
|
|
25
|
-
success: true,
|
|
26
|
-
data: discoveryResult,
|
|
27
|
-
timing: timer.end(),
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
catch (error) {
|
|
31
|
-
return {
|
|
32
|
-
...(0, utils_js_1.handleError)(error),
|
|
33
|
-
timing: timer.end(),
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
exports.DiscoverCommand = DiscoverCommand;
|
|
39
|
-
//# sourceMappingURL=discover.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/commands/discover.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,qCAAsC;AAEtC,0CAAkD;AAElD,MAAa,eAAe;IAC1B,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,UAAsB,EAAE;QACjD,MAAM,KAAK,GAAG,IAAA,iBAAM,GAAE,CAAC;QAEvB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,eAAe,GAAG,MAAM,IAAA,eAAQ,EAAC,GAAG,CAAC,CAAC;YAE5C,wCAAwC;YACxC,IAAI,eAAe,EAAE,IAAI,EAAE,CAAC;gBAC1B,8DAA8D;gBAC9D,4DAA4D;YAC9D,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE;aACpB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,GAAG,IAAA,sBAAW,EAAC,KAAc,CAAC;gBAC9B,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE;aACpB,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AA9BD,0CA8BC"}
|
package/dist/commands/hash.js
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* peac hash <policy.json> command
|
|
4
|
-
* Canonical digest computation using JCS
|
|
5
|
-
*/
|
|
6
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
-
if (k2 === undefined) k2 = k;
|
|
8
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
-
}
|
|
12
|
-
Object.defineProperty(o, k2, desc);
|
|
13
|
-
}) : (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
o[k2] = m[k];
|
|
16
|
-
}));
|
|
17
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
-
}) : function(o, v) {
|
|
20
|
-
o["default"] = v;
|
|
21
|
-
});
|
|
22
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
-
var ownKeys = function(o) {
|
|
24
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
-
var ar = [];
|
|
26
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
-
return ar;
|
|
28
|
-
};
|
|
29
|
-
return ownKeys(o);
|
|
30
|
-
};
|
|
31
|
-
return function (mod) {
|
|
32
|
-
if (mod && mod.__esModule) return mod;
|
|
33
|
-
var result = {};
|
|
34
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
-
__setModuleDefault(result, mod);
|
|
36
|
-
return result;
|
|
37
|
-
};
|
|
38
|
-
})();
|
|
39
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
exports.HashCommand = void 0;
|
|
41
|
-
const promises_1 = require("fs/promises");
|
|
42
|
-
const utils_js_1 = require("../utils.js");
|
|
43
|
-
class HashCommand {
|
|
44
|
-
async execute(policyPath, options = {}) {
|
|
45
|
-
const timer = (0, utils_js_1.timing)();
|
|
46
|
-
try {
|
|
47
|
-
// Read and parse policy file
|
|
48
|
-
const policyContent = await (0, promises_1.readFile)(policyPath, 'utf-8');
|
|
49
|
-
const policy = JSON.parse(policyContent);
|
|
50
|
-
// Compute canonical hash using @peac/crypto
|
|
51
|
-
const { jcsHash } = await Promise.resolve().then(() => __importStar(require('@peac/crypto')));
|
|
52
|
-
const digest = await jcsHash(policy);
|
|
53
|
-
const result = {
|
|
54
|
-
algorithm: 'SHA-256',
|
|
55
|
-
format: 'JCS',
|
|
56
|
-
digest,
|
|
57
|
-
input_size: Buffer.byteLength(policyContent, 'utf-8'),
|
|
58
|
-
};
|
|
59
|
-
return {
|
|
60
|
-
success: true,
|
|
61
|
-
data: result,
|
|
62
|
-
timing: timer.end(),
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
66
|
-
return {
|
|
67
|
-
...(0, utils_js_1.handleError)(error),
|
|
68
|
-
timing: timer.end(),
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
async executeFromStdin(options = {}) {
|
|
73
|
-
const timer = (0, utils_js_1.timing)();
|
|
74
|
-
try {
|
|
75
|
-
// Read from stdin
|
|
76
|
-
const chunks = [];
|
|
77
|
-
for await (const chunk of process.stdin) {
|
|
78
|
-
chunks.push(chunk);
|
|
79
|
-
}
|
|
80
|
-
const policyContent = Buffer.concat(chunks).toString('utf-8');
|
|
81
|
-
const policy = JSON.parse(policyContent);
|
|
82
|
-
// Compute canonical hash using @peac/crypto
|
|
83
|
-
const { jcsHash } = await Promise.resolve().then(() => __importStar(require('@peac/crypto')));
|
|
84
|
-
const digest = await jcsHash(policy);
|
|
85
|
-
const result = {
|
|
86
|
-
algorithm: 'SHA-256',
|
|
87
|
-
format: 'JCS',
|
|
88
|
-
digest,
|
|
89
|
-
input_size: Buffer.byteLength(policyContent, 'utf-8'),
|
|
90
|
-
};
|
|
91
|
-
return {
|
|
92
|
-
success: true,
|
|
93
|
-
data: result,
|
|
94
|
-
timing: timer.end(),
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
catch (error) {
|
|
98
|
-
return {
|
|
99
|
-
...(0, utils_js_1.handleError)(error),
|
|
100
|
-
timing: timer.end(),
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
exports.HashCommand = HashCommand;
|
|
106
|
-
//# sourceMappingURL=hash.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/commands/hash.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,0CAAuC;AAEvC,0CAAkD;AAElD,MAAa,WAAW;IACtB,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,UAAsB,EAAE;QACxD,MAAM,KAAK,GAAG,IAAA,iBAAM,GAAE,CAAC;QAEvB,IAAI,CAAC;YACH,6BAA6B;YAC7B,MAAM,aAAa,GAAG,MAAM,IAAA,mBAAQ,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAEzC,4CAA4C;YAC5C,MAAM,EAAE,OAAO,EAAE,GAAG,wDAAa,cAAc,GAAC,CAAC;YACjD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;YAErC,MAAM,MAAM,GAAe;gBACzB,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,KAAK;gBACb,MAAM;gBACN,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC;aACtD,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE;aACpB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,GAAG,IAAA,sBAAW,EAAC,KAAc,CAAC;gBAC9B,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE;aACpB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,UAAsB,EAAE;QAC7C,MAAM,KAAK,GAAG,IAAA,iBAAM,GAAE,CAAC;QAEvB,IAAI,CAAC;YACH,kBAAkB;YAClB,MAAM,MAAM,GAAiB,EAAE,CAAC;YAChC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAEzC,4CAA4C;YAC5C,MAAM,EAAE,OAAO,EAAE,GAAG,wDAAa,cAAc,GAAC,CAAC;YACjD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;YAErC,MAAM,MAAM,GAAe;gBACzB,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,KAAK;gBACb,MAAM;gBACN,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC;aACtD,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE;aACpB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,GAAG,IAAA,sBAAW,EAAC,KAAc,CAAC;gBAC9B,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE;aACpB,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AArED,kCAqEC"}
|