@peac/cli 0.9.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +87 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/bridge/index.d.ts +6 -0
- package/dist/commands/bridge/index.d.ts.map +1 -0
- package/dist/commands/bridge/index.js +20 -0
- package/dist/commands/bridge/index.js.map +1 -0
- package/dist/commands/bridge/install.d.ts +6 -0
- package/dist/commands/bridge/install.d.ts.map +1 -0
- package/dist/commands/bridge/install.js +27 -0
- package/dist/commands/bridge/install.js.map +1 -0
- package/dist/commands/bridge/start.d.ts +6 -0
- package/dist/commands/bridge/start.d.ts.map +1 -0
- package/dist/commands/bridge/start.js +123 -0
- package/dist/commands/bridge/start.js.map +1 -0
- package/dist/commands/bridge/status.d.ts +6 -0
- package/dist/commands/bridge/status.d.ts.map +1 -0
- package/dist/commands/bridge/status.js +192 -0
- package/dist/commands/bridge/status.js.map +1 -0
- package/dist/commands/bridge/stop.d.ts +6 -0
- package/dist/commands/bridge/stop.d.ts.map +1 -0
- package/dist/commands/bridge/stop.js +130 -0
- package/dist/commands/bridge/stop.js.map +1 -0
- package/dist/commands/discover.d.ts +9 -0
- package/dist/commands/discover.d.ts.map +1 -0
- package/dist/commands/discover.js +39 -0
- package/dist/commands/discover.js.map +1 -0
- package/dist/commands/hash.d.ts +10 -0
- package/dist/commands/hash.d.ts.map +1 -0
- package/dist/commands/hash.js +106 -0
- package/dist/commands/hash.js.map +1 -0
- package/dist/commands/policy.d.ts +13 -0
- package/dist/commands/policy.d.ts.map +1 -0
- package/dist/commands/policy.js +364 -0
- package/dist/commands/policy.js.map +1 -0
- package/dist/commands/verify.d.ts +13 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +50 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +213 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +49 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +16 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +101 -0
- package/dist/utils.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* PEAC Policy CLI Commands
|
|
4
|
+
*
|
|
5
|
+
* Commands for managing policy files:
|
|
6
|
+
* - init: Create a new policy file
|
|
7
|
+
* - validate: Validate policy syntax and schema
|
|
8
|
+
* - explain: Debug rule matching
|
|
9
|
+
* - generate: Compile policy to deployment artifacts
|
|
10
|
+
*/
|
|
11
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
14
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
15
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
16
|
+
}
|
|
17
|
+
Object.defineProperty(o, k2, desc);
|
|
18
|
+
}) : (function(o, m, k, k2) {
|
|
19
|
+
if (k2 === undefined) k2 = k;
|
|
20
|
+
o[k2] = m[k];
|
|
21
|
+
}));
|
|
22
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
23
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
24
|
+
}) : function(o, v) {
|
|
25
|
+
o["default"] = v;
|
|
26
|
+
});
|
|
27
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
28
|
+
var ownKeys = function(o) {
|
|
29
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
30
|
+
var ar = [];
|
|
31
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
32
|
+
return ar;
|
|
33
|
+
};
|
|
34
|
+
return ownKeys(o);
|
|
35
|
+
};
|
|
36
|
+
return function (mod) {
|
|
37
|
+
if (mod && mod.__esModule) return mod;
|
|
38
|
+
var result = {};
|
|
39
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
40
|
+
__setModuleDefault(result, mod);
|
|
41
|
+
return result;
|
|
42
|
+
};
|
|
43
|
+
})();
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.policy = void 0;
|
|
46
|
+
const commander_1 = require("commander");
|
|
47
|
+
const fs = __importStar(require("fs"));
|
|
48
|
+
const path = __importStar(require("path"));
|
|
49
|
+
const policy_kit_1 = require("@peac/policy-kit");
|
|
50
|
+
const policy = new commander_1.Command('policy').description('Policy file operations');
|
|
51
|
+
exports.policy = policy;
|
|
52
|
+
/**
|
|
53
|
+
* peac policy init
|
|
54
|
+
*
|
|
55
|
+
* Create a new peac-policy.yaml file in the current directory.
|
|
56
|
+
*/
|
|
57
|
+
policy
|
|
58
|
+
.command('init')
|
|
59
|
+
.description('Create a new PEAC policy file')
|
|
60
|
+
.option('-f, --format <format>', 'Output format (yaml or json)', 'yaml')
|
|
61
|
+
.option('-o, --output <file>', 'Output file path', 'peac-policy.yaml')
|
|
62
|
+
.option('--force', 'Overwrite existing file')
|
|
63
|
+
.action((options) => {
|
|
64
|
+
try {
|
|
65
|
+
const format = options.format?.toLowerCase() || 'yaml';
|
|
66
|
+
const outputPath = options.output || (format === 'json' ? 'peac-policy.json' : 'peac-policy.yaml');
|
|
67
|
+
// Check if file exists and --force not set
|
|
68
|
+
if (fs.existsSync(outputPath) && !options.force) {
|
|
69
|
+
console.error(`Error: File already exists: ${outputPath}`);
|
|
70
|
+
console.error('Use --force to overwrite.');
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
const example = (0, policy_kit_1.createExamplePolicy)();
|
|
74
|
+
const content = format === 'json' ? (0, policy_kit_1.serializePolicyJson)(example) : (0, policy_kit_1.serializePolicyYaml)(example);
|
|
75
|
+
fs.writeFileSync(outputPath, content, 'utf-8');
|
|
76
|
+
console.log(`Created policy file: ${outputPath}`);
|
|
77
|
+
console.log('');
|
|
78
|
+
console.log('Next steps:');
|
|
79
|
+
console.log(' 1. Edit the policy file to define your access rules');
|
|
80
|
+
console.log(' 2. Validate with: peac policy validate ' + outputPath);
|
|
81
|
+
console.log(' 3. Generate artifacts with: peac policy generate ' + outputPath);
|
|
82
|
+
process.exit(0);
|
|
83
|
+
}
|
|
84
|
+
catch (err) {
|
|
85
|
+
console.error('Error:', err instanceof Error ? err.message : String(err));
|
|
86
|
+
process.exit(1);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
/**
|
|
90
|
+
* peac policy validate <file>
|
|
91
|
+
*/
|
|
92
|
+
policy
|
|
93
|
+
.command('validate')
|
|
94
|
+
.description('Validate a PEAC policy file (YAML or JSON)')
|
|
95
|
+
.argument('<file>', 'Path to policy file')
|
|
96
|
+
.option('-v, --verbose', 'Show detailed validation output')
|
|
97
|
+
.action((file, options) => {
|
|
98
|
+
try {
|
|
99
|
+
console.log(`Validating policy file: ${file}\n`);
|
|
100
|
+
const policyDoc = (0, policy_kit_1.loadPolicy)(file);
|
|
101
|
+
console.log('Policy is valid!\n');
|
|
102
|
+
console.log('Policy Information:');
|
|
103
|
+
console.log(` Version: ${policyDoc.version}`);
|
|
104
|
+
if (policyDoc.name) {
|
|
105
|
+
console.log(` Name: ${policyDoc.name}`);
|
|
106
|
+
}
|
|
107
|
+
console.log(` Default: ${policyDoc.defaults.decision}`);
|
|
108
|
+
console.log(` Rules: ${policyDoc.rules.length}`);
|
|
109
|
+
if (options.verbose && policyDoc.rules.length > 0) {
|
|
110
|
+
console.log('\nRules:');
|
|
111
|
+
for (const rule of policyDoc.rules) {
|
|
112
|
+
console.log(` - ${rule.name}: ${rule.decision}`);
|
|
113
|
+
if (rule.subject) {
|
|
114
|
+
const parts = [];
|
|
115
|
+
if (rule.subject.type) {
|
|
116
|
+
const types = Array.isArray(rule.subject.type)
|
|
117
|
+
? rule.subject.type.join('|')
|
|
118
|
+
: rule.subject.type;
|
|
119
|
+
parts.push(`type=${types}`);
|
|
120
|
+
}
|
|
121
|
+
if (rule.subject.labels) {
|
|
122
|
+
parts.push(`labels=[${rule.subject.labels.join(',')}]`);
|
|
123
|
+
}
|
|
124
|
+
if (rule.subject.id) {
|
|
125
|
+
parts.push(`id=${rule.subject.id}`);
|
|
126
|
+
}
|
|
127
|
+
if (parts.length > 0) {
|
|
128
|
+
console.log(` subject: ${parts.join(', ')}`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (rule.purpose) {
|
|
132
|
+
const purposes = Array.isArray(rule.purpose) ? rule.purpose.join('|') : rule.purpose;
|
|
133
|
+
console.log(` purpose: ${purposes}`);
|
|
134
|
+
}
|
|
135
|
+
if (rule.licensing_mode) {
|
|
136
|
+
const modes = Array.isArray(rule.licensing_mode)
|
|
137
|
+
? rule.licensing_mode.join('|')
|
|
138
|
+
: rule.licensing_mode;
|
|
139
|
+
console.log(` licensing_mode: ${modes}`);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
process.exit(0);
|
|
144
|
+
}
|
|
145
|
+
catch (err) {
|
|
146
|
+
if (err instanceof policy_kit_1.PolicyValidationError) {
|
|
147
|
+
console.error('Policy validation failed:\n');
|
|
148
|
+
for (const issue of err.issues) {
|
|
149
|
+
console.error(` - ${issue.path.join('.')}: ${issue.message}`);
|
|
150
|
+
}
|
|
151
|
+
process.exit(1);
|
|
152
|
+
}
|
|
153
|
+
else if (err instanceof policy_kit_1.PolicyLoadError) {
|
|
154
|
+
console.error(`Failed to load policy: ${err.message}`);
|
|
155
|
+
process.exit(1);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
console.error('Error:', err instanceof Error ? err.message : String(err));
|
|
159
|
+
process.exit(1);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
/**
|
|
164
|
+
* peac policy generate <file>
|
|
165
|
+
*
|
|
166
|
+
* Generate deployment artifacts from a policy file:
|
|
167
|
+
* - peac.txt (PEAC discovery file)
|
|
168
|
+
* - robots.txt snippet
|
|
169
|
+
* - AIPREF header templates
|
|
170
|
+
* - ai-policy.md (human-readable summary)
|
|
171
|
+
*/
|
|
172
|
+
policy
|
|
173
|
+
.command('generate')
|
|
174
|
+
.description('Generate deployment artifacts from a policy file')
|
|
175
|
+
.argument('<file>', 'Path to policy file')
|
|
176
|
+
.option('-o, --out <dir>', 'Output directory', 'dist')
|
|
177
|
+
.option('--well-known', 'Output peac.txt to .well-known/ subdirectory')
|
|
178
|
+
.option('--dry-run', 'Show what would be generated without writing files')
|
|
179
|
+
.option('--peac-version <version>', 'PEAC protocol version (default: 0.9)')
|
|
180
|
+
.option('--site-url <url>', 'Site URL for peac.txt')
|
|
181
|
+
.option('--contact <email>', 'Contact email for policy questions')
|
|
182
|
+
.option('--attribution <mode>', 'Attribution requirement (required, optional, none)')
|
|
183
|
+
.option('--receipts <mode>', 'Receipts requirement (required, optional, omit)')
|
|
184
|
+
.option('--rate-limit <limit>', 'Rate limit string (e.g., "100/hour", "unlimited")')
|
|
185
|
+
.option('--negotiate <url>', 'Negotiate endpoint URL')
|
|
186
|
+
.option('--no-comments', 'Omit comments from generated files')
|
|
187
|
+
.action((file, options) => {
|
|
188
|
+
try {
|
|
189
|
+
console.log(`Loading policy: ${file}\n`);
|
|
190
|
+
const policyDoc = (0, policy_kit_1.loadPolicy)(file);
|
|
191
|
+
const compileOptions = {
|
|
192
|
+
peacVersion: options.peacVersion,
|
|
193
|
+
siteUrl: options.siteUrl,
|
|
194
|
+
contact: options.contact,
|
|
195
|
+
attribution: options.attribution,
|
|
196
|
+
receipts: options.receipts,
|
|
197
|
+
rateLimit: options.rateLimit,
|
|
198
|
+
negotiateUrl: options.negotiate,
|
|
199
|
+
includeComments: options.comments !== false,
|
|
200
|
+
};
|
|
201
|
+
// Determine output paths
|
|
202
|
+
const outDir = options.out;
|
|
203
|
+
let peacTxtPath;
|
|
204
|
+
if (options.wellKnown) {
|
|
205
|
+
peacTxtPath = path.join(outDir, '.well-known', 'peac.txt');
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
peacTxtPath = path.join(outDir, 'peac.txt');
|
|
209
|
+
}
|
|
210
|
+
const robotsPath = path.join(outDir, 'robots-ai-snippet.txt');
|
|
211
|
+
const aiprefPath = path.join(outDir, 'aipref-headers.json');
|
|
212
|
+
const mdPath = path.join(outDir, 'ai-policy.md');
|
|
213
|
+
// Generate content
|
|
214
|
+
const peacTxt = (0, policy_kit_1.compilePeacTxt)(policyDoc, compileOptions);
|
|
215
|
+
const robotsTxt = (0, policy_kit_1.compileRobotsSnippet)(policyDoc, compileOptions);
|
|
216
|
+
const aiprefTemplates = (0, policy_kit_1.compileAiprefTemplates)(policyDoc, compileOptions);
|
|
217
|
+
const markdown = (0, policy_kit_1.renderPolicyMarkdown)(policyDoc, compileOptions);
|
|
218
|
+
if (options.dryRun) {
|
|
219
|
+
// Dry run: show what would be generated
|
|
220
|
+
console.log('Dry run - files that would be generated:\n');
|
|
221
|
+
console.log(`--- ${peacTxtPath} ---`);
|
|
222
|
+
console.log(peacTxt);
|
|
223
|
+
console.log(`--- ${robotsPath} ---`);
|
|
224
|
+
console.log(robotsTxt);
|
|
225
|
+
console.log(`--- ${aiprefPath} ---`);
|
|
226
|
+
console.log(JSON.stringify(aiprefTemplates, null, 2));
|
|
227
|
+
console.log(`\n--- ${mdPath} ---`);
|
|
228
|
+
console.log(markdown);
|
|
229
|
+
process.exit(0);
|
|
230
|
+
}
|
|
231
|
+
// Create output directories
|
|
232
|
+
if (!fs.existsSync(outDir)) {
|
|
233
|
+
fs.mkdirSync(outDir, { recursive: true });
|
|
234
|
+
}
|
|
235
|
+
if (options.wellKnown) {
|
|
236
|
+
const wellKnownDir = path.join(outDir, '.well-known');
|
|
237
|
+
if (!fs.existsSync(wellKnownDir)) {
|
|
238
|
+
fs.mkdirSync(wellKnownDir, { recursive: true });
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
// Write files
|
|
242
|
+
fs.writeFileSync(peacTxtPath, peacTxt, 'utf-8');
|
|
243
|
+
console.log(`Generated: ${peacTxtPath}`);
|
|
244
|
+
fs.writeFileSync(robotsPath, robotsTxt, 'utf-8');
|
|
245
|
+
console.log(`Generated: ${robotsPath}`);
|
|
246
|
+
fs.writeFileSync(aiprefPath, JSON.stringify(aiprefTemplates, null, 2), 'utf-8');
|
|
247
|
+
console.log(`Generated: ${aiprefPath}`);
|
|
248
|
+
fs.writeFileSync(mdPath, markdown, 'utf-8');
|
|
249
|
+
console.log(`Generated: ${mdPath}`);
|
|
250
|
+
console.log('');
|
|
251
|
+
console.log('Deployment instructions:');
|
|
252
|
+
if (options.wellKnown) {
|
|
253
|
+
console.log(` 1. Deploy ${peacTxtPath} to serve at /.well-known/peac.txt`);
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
console.log(` 1. Copy ${peacTxtPath} to /.well-known/peac.txt`);
|
|
257
|
+
}
|
|
258
|
+
console.log(` 2. Append ${robotsPath} to your robots.txt`);
|
|
259
|
+
console.log(` 3. Add headers from ${aiprefPath} to your server config`);
|
|
260
|
+
console.log(` 4. Publish ${mdPath} for human reference`);
|
|
261
|
+
process.exit(0);
|
|
262
|
+
}
|
|
263
|
+
catch (err) {
|
|
264
|
+
if (err instanceof policy_kit_1.PolicyLoadError) {
|
|
265
|
+
console.error(`Failed to load policy: ${err.message}`);
|
|
266
|
+
process.exit(1);
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
console.error('Error:', err instanceof Error ? err.message : String(err));
|
|
270
|
+
process.exit(1);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
/**
|
|
275
|
+
* peac policy explain <file>
|
|
276
|
+
*
|
|
277
|
+
* Debug tool: explain which rule would apply for a given context.
|
|
278
|
+
*/
|
|
279
|
+
policy
|
|
280
|
+
.command('explain')
|
|
281
|
+
.description('Explain which rule would apply for a given context')
|
|
282
|
+
.argument('<file>', 'Path to policy file')
|
|
283
|
+
.option('-t, --type <type>', 'Subject type (human, org, agent)')
|
|
284
|
+
.option('-l, --labels <labels>', 'Subject labels (comma-separated)')
|
|
285
|
+
.option('-i, --id <id>', 'Subject ID')
|
|
286
|
+
.option('-p, --purpose <purpose>', 'Access purpose (crawl, index, train, inference, ai_input, ai_index, search)')
|
|
287
|
+
.option('-m, --licensing-mode <mode>', 'Licensing mode (subscription, pay_per_crawl, pay_per_inference)')
|
|
288
|
+
.option('--all-matches', 'Show all matching rules, not just the first')
|
|
289
|
+
.action((file, options) => {
|
|
290
|
+
try {
|
|
291
|
+
const policyDoc = (0, policy_kit_1.loadPolicy)(file);
|
|
292
|
+
// Build evaluation context from options
|
|
293
|
+
const context = {};
|
|
294
|
+
if (options.type || options.labels || options.id) {
|
|
295
|
+
context.subject = {};
|
|
296
|
+
if (options.type) {
|
|
297
|
+
context.subject.type = options.type;
|
|
298
|
+
}
|
|
299
|
+
if (options.labels) {
|
|
300
|
+
context.subject.labels = options.labels.split(',').map((l) => l.trim());
|
|
301
|
+
}
|
|
302
|
+
if (options.id) {
|
|
303
|
+
context.subject.id = options.id;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
if (options.purpose) {
|
|
307
|
+
context.purpose = options.purpose;
|
|
308
|
+
}
|
|
309
|
+
if (options.licensingMode) {
|
|
310
|
+
context.licensing_mode = options.licensingMode;
|
|
311
|
+
}
|
|
312
|
+
console.log('Evaluation Context:');
|
|
313
|
+
if (context.subject) {
|
|
314
|
+
console.log(` Subject: ${JSON.stringify(context.subject)}`);
|
|
315
|
+
}
|
|
316
|
+
else {
|
|
317
|
+
console.log(' Subject: (any)');
|
|
318
|
+
}
|
|
319
|
+
console.log(` Purpose: ${context.purpose || '(any)'}`);
|
|
320
|
+
console.log(` Licensing Mode: ${context.licensing_mode || '(any)'}`);
|
|
321
|
+
console.log();
|
|
322
|
+
if (options.allMatches) {
|
|
323
|
+
const matches = (0, policy_kit_1.explainMatches)(policyDoc, context);
|
|
324
|
+
console.log(`Matching Rules (${matches.length}):`);
|
|
325
|
+
for (const match of matches) {
|
|
326
|
+
if (match === '[default]') {
|
|
327
|
+
console.log(` - [default] -> ${policyDoc.defaults.decision}`);
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
const rule = policyDoc.rules.find((r) => r.name === match);
|
|
331
|
+
if (rule) {
|
|
332
|
+
console.log(` - ${rule.name} -> ${rule.decision}`);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
else {
|
|
338
|
+
const result = (0, policy_kit_1.evaluate)(policyDoc, context);
|
|
339
|
+
console.log('Result:');
|
|
340
|
+
console.log(` Decision: ${result.decision}`);
|
|
341
|
+
if (result.matched_rule) {
|
|
342
|
+
console.log(` Matched Rule: ${result.matched_rule}`);
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
console.log(' Matched Rule: (default)');
|
|
346
|
+
}
|
|
347
|
+
if (result.reason) {
|
|
348
|
+
console.log(` Reason: ${result.reason}`);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
process.exit(0);
|
|
352
|
+
}
|
|
353
|
+
catch (err) {
|
|
354
|
+
if (err instanceof policy_kit_1.PolicyLoadError) {
|
|
355
|
+
console.error(`Failed to load policy: ${err.message}`);
|
|
356
|
+
process.exit(1);
|
|
357
|
+
}
|
|
358
|
+
else {
|
|
359
|
+
console.error('Error:', err instanceof Error ? err.message : String(err));
|
|
360
|
+
process.exit(1);
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
});
|
|
364
|
+
//# sourceMappingURL=policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/commands/policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* peac verify <receipt.jws> --resource <url> command
|
|
3
|
+
* Receipt verification via API bridge
|
|
4
|
+
*/
|
|
5
|
+
import type { CLIOptions, CommandResult } from '../types.js';
|
|
6
|
+
export interface VerifyOptions extends CLIOptions {
|
|
7
|
+
resource?: string;
|
|
8
|
+
keys?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class VerifyCommand {
|
|
11
|
+
execute(receiptPath: string, options?: VerifyOptions): Promise<CommandResult>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=verify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAgB,MAAM,aAAa,CAAC;AAG3E,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,aAAa;IAClB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;CAkDxF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* peac verify <receipt.jws> --resource <url> command
|
|
4
|
+
* Receipt verification via API bridge
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.VerifyCommand = void 0;
|
|
8
|
+
const promises_1 = require("fs/promises");
|
|
9
|
+
const utils_js_1 = require("../utils.js");
|
|
10
|
+
class VerifyCommand {
|
|
11
|
+
async execute(receiptPath, options = {}) {
|
|
12
|
+
const timer = (0, utils_js_1.timing)();
|
|
13
|
+
try {
|
|
14
|
+
const receiptContent = await (0, promises_1.readFile)(receiptPath, 'utf-8');
|
|
15
|
+
const receiptJws = receiptContent.trim();
|
|
16
|
+
const base = process.env.PEAC_BRIDGE_URL?.trim() || 'http://127.0.0.1:3000';
|
|
17
|
+
const url = new URL('/verify', base).toString();
|
|
18
|
+
const res = await fetch(url, {
|
|
19
|
+
method: 'POST',
|
|
20
|
+
headers: { 'content-type': 'application/json' },
|
|
21
|
+
body: JSON.stringify({ receipt: receiptJws, resource: options.resource }),
|
|
22
|
+
});
|
|
23
|
+
const body = (await res.json().catch(() => ({})));
|
|
24
|
+
const ok = res.ok && body?.valid === true;
|
|
25
|
+
const result = {
|
|
26
|
+
valid: ok,
|
|
27
|
+
receipt: body?.claims ? { header: undefined, payload: body.claims } : undefined,
|
|
28
|
+
resource: options.resource,
|
|
29
|
+
policy_hash: body?.policyHash,
|
|
30
|
+
reconstructed: body?.reconstructed,
|
|
31
|
+
};
|
|
32
|
+
if (!ok) {
|
|
33
|
+
result.error = body?.detail || body?.title || 'Receipt verification failed';
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
success: true,
|
|
37
|
+
data: result,
|
|
38
|
+
timing: timer.end(),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
return {
|
|
43
|
+
...(0, utils_js_1.handleError)(error),
|
|
44
|
+
timing: timer.end(),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.VerifyCommand = VerifyCommand;
|
|
50
|
+
//# sourceMappingURL=verify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,0CAAuC;AAEvC,0CAAkD;AAOlD,MAAa,aAAa;IACxB,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,UAAyB,EAAE;QAC5D,MAAM,KAAK,GAAG,IAAA,iBAAM,GAAE,CAAC;QAEvB,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,IAAA,mBAAQ,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC5D,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;YAEzC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,uBAAuB,CAAC;YAC5E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YAEhD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC3B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;aAC1E,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAO/C,CAAC;YACF,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;YAE1C,MAAM,MAAM,GAAiB;gBAC3B,KAAK,EAAE,EAAE;gBACT,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS;gBAC/E,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,WAAW,EAAE,IAAI,EAAE,UAAU;gBAC7B,aAAa,EAAE,IAAI,EAAE,aAAa;aACnC,CAAC;YAEF,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,MAAM,CAAC,KAAK,GAAG,IAAI,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,IAAI,6BAA6B,CAAC;YAC9E,CAAC;YAED,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;AAnDD,sCAmDC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG"}
|