@peac/protocol 0.9.18 → 0.10.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/LICENSE +190 -0
- package/dist/discovery.d.ts +48 -8
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +331 -46
- package/dist/discovery.js.map +1 -1
- package/dist/headers.d.ts +38 -1
- package/dist/headers.d.ts.map +1 -1
- package/dist/headers.js +65 -1
- package/dist/headers.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/issue.d.ts +35 -3
- package/dist/issue.d.ts.map +1 -1
- package/dist/issue.js +91 -2
- package/dist/issue.js.map +1 -1
- package/dist/telemetry.d.ts +11 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +18 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/verify-local.d.ts +125 -0
- package/dist/verify-local.d.ts.map +1 -0
- package/dist/verify-local.js +189 -0
- package/dist/verify-local.js.map +1 -0
- package/dist/verify.d.ts.map +1 -1
- package/dist/verify.js +33 -0
- package/dist/verify.js.map +1 -1
- package/package.json +14 -11
package/dist/discovery.js
CHANGED
|
@@ -1,58 +1,349 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* PEAC
|
|
3
|
+
* PEAC Discovery - Issuer Configuration and Policy Manifest
|
|
4
|
+
*
|
|
5
|
+
* This module provides functions for:
|
|
6
|
+
* - Issuer configuration discovery (/.well-known/peac-issuer.json)
|
|
7
|
+
* - Policy manifest parsing (/.well-known/peac.txt)
|
|
8
|
+
*
|
|
9
|
+
* @see docs/specs/PEAC-ISSUER.md
|
|
10
|
+
* @see docs/specs/PEAC-TXT.md
|
|
4
11
|
*/
|
|
5
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.parseIssuerConfig = parseIssuerConfig;
|
|
14
|
+
exports.fetchIssuerConfig = fetchIssuerConfig;
|
|
15
|
+
exports.parsePolicyManifest = parsePolicyManifest;
|
|
16
|
+
exports.fetchPolicyManifest = fetchPolicyManifest;
|
|
6
17
|
exports.parseDiscovery = parseDiscovery;
|
|
7
18
|
exports.fetchDiscovery = fetchDiscovery;
|
|
8
19
|
const schema_1 = require("@peac/schema");
|
|
20
|
+
// ============================================================================
|
|
21
|
+
// Issuer Configuration (/.well-known/peac-issuer.json)
|
|
22
|
+
// ============================================================================
|
|
9
23
|
/**
|
|
10
|
-
* Parse
|
|
24
|
+
* Parse PEAC issuer configuration from JSON
|
|
11
25
|
*
|
|
12
|
-
* @param
|
|
13
|
-
* @returns Parsed
|
|
26
|
+
* @param json - JSON string or object
|
|
27
|
+
* @returns Parsed issuer configuration
|
|
28
|
+
* @throws Error if validation fails
|
|
14
29
|
*/
|
|
15
|
-
function
|
|
16
|
-
|
|
30
|
+
function parseIssuerConfig(json) {
|
|
31
|
+
let config;
|
|
32
|
+
if (typeof json === 'string') {
|
|
33
|
+
const bytes = new TextEncoder().encode(json).length;
|
|
34
|
+
if (bytes > schema_1.PEAC_ISSUER_CONFIG_MAX_BYTES) {
|
|
35
|
+
throw new Error(`Issuer config exceeds ${schema_1.PEAC_ISSUER_CONFIG_MAX_BYTES} bytes (got ${bytes})`);
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
config = JSON.parse(json);
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
throw new Error('Issuer config is not valid JSON');
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
config = json;
|
|
46
|
+
}
|
|
47
|
+
if (typeof config !== 'object' || config === null) {
|
|
48
|
+
throw new Error('Issuer config must be an object');
|
|
49
|
+
}
|
|
50
|
+
const obj = config;
|
|
51
|
+
// Validate required fields
|
|
52
|
+
if (typeof obj.version !== 'string' || !obj.version) {
|
|
53
|
+
throw new Error('Missing required field: version');
|
|
54
|
+
}
|
|
55
|
+
if (typeof obj.issuer !== 'string' || !obj.issuer) {
|
|
56
|
+
throw new Error('Missing required field: issuer');
|
|
57
|
+
}
|
|
58
|
+
if (typeof obj.jwks_uri !== 'string' || !obj.jwks_uri) {
|
|
59
|
+
throw new Error('Missing required field: jwks_uri');
|
|
60
|
+
}
|
|
61
|
+
// Validate URL fields
|
|
62
|
+
if (!obj.issuer.startsWith('https://')) {
|
|
63
|
+
throw new Error('issuer must be an HTTPS URL');
|
|
64
|
+
}
|
|
65
|
+
if (!obj.jwks_uri.startsWith('https://')) {
|
|
66
|
+
throw new Error('jwks_uri must be an HTTPS URL');
|
|
67
|
+
}
|
|
68
|
+
// Validate optional fields
|
|
69
|
+
if (obj.verify_endpoint !== undefined) {
|
|
70
|
+
if (typeof obj.verify_endpoint !== 'string') {
|
|
71
|
+
throw new Error('verify_endpoint must be a string');
|
|
72
|
+
}
|
|
73
|
+
if (!obj.verify_endpoint.startsWith('https://')) {
|
|
74
|
+
throw new Error('verify_endpoint must be an HTTPS URL');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (obj.receipt_versions !== undefined) {
|
|
78
|
+
if (!Array.isArray(obj.receipt_versions)) {
|
|
79
|
+
throw new Error('receipt_versions must be an array');
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (obj.algorithms !== undefined) {
|
|
83
|
+
if (!Array.isArray(obj.algorithms)) {
|
|
84
|
+
throw new Error('algorithms must be an array');
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (obj.payment_rails !== undefined) {
|
|
88
|
+
if (!Array.isArray(obj.payment_rails)) {
|
|
89
|
+
throw new Error('payment_rails must be an array');
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
version: obj.version,
|
|
94
|
+
issuer: obj.issuer,
|
|
95
|
+
jwks_uri: obj.jwks_uri,
|
|
96
|
+
verify_endpoint: obj.verify_endpoint,
|
|
97
|
+
receipt_versions: obj.receipt_versions,
|
|
98
|
+
algorithms: obj.algorithms,
|
|
99
|
+
payment_rails: obj.payment_rails,
|
|
100
|
+
security_contact: obj.security_contact,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Fetch PEAC issuer configuration from an issuer URL
|
|
105
|
+
*
|
|
106
|
+
* @param issuerUrl - Issuer URL (https://)
|
|
107
|
+
* @returns Parsed issuer configuration
|
|
108
|
+
* @throws Error if fetch or validation fails
|
|
109
|
+
*/
|
|
110
|
+
async function fetchIssuerConfig(issuerUrl) {
|
|
111
|
+
if (!issuerUrl.startsWith('https://')) {
|
|
112
|
+
throw new Error('Issuer URL must be https://');
|
|
113
|
+
}
|
|
114
|
+
// Remove trailing slash for consistent URL construction
|
|
115
|
+
const baseUrl = issuerUrl.replace(/\/$/, '');
|
|
116
|
+
const configUrl = `${baseUrl}${schema_1.PEAC_ISSUER_CONFIG_PATH}`;
|
|
117
|
+
try {
|
|
118
|
+
const resp = await fetch(configUrl, {
|
|
119
|
+
headers: { Accept: 'application/json' },
|
|
120
|
+
signal: AbortSignal.timeout(10000),
|
|
121
|
+
});
|
|
122
|
+
if (!resp.ok) {
|
|
123
|
+
throw new Error(`Issuer config fetch failed: ${resp.status}`);
|
|
124
|
+
}
|
|
125
|
+
const text = await resp.text();
|
|
126
|
+
const config = parseIssuerConfig(text);
|
|
127
|
+
// Verify issuer matches
|
|
128
|
+
const normalizedExpected = baseUrl.replace(/\/$/, '');
|
|
129
|
+
const normalizedActual = config.issuer.replace(/\/$/, '');
|
|
130
|
+
if (normalizedActual !== normalizedExpected) {
|
|
131
|
+
throw new Error(`Issuer mismatch: expected ${normalizedExpected}, got ${normalizedActual}`);
|
|
132
|
+
}
|
|
133
|
+
return config;
|
|
134
|
+
}
|
|
135
|
+
catch (err) {
|
|
136
|
+
throw new Error(`Failed to fetch issuer config from ${issuerUrl}: ${err instanceof Error ? err.message : String(err)}`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
// ============================================================================
|
|
140
|
+
// Policy Manifest (/.well-known/peac.txt)
|
|
141
|
+
// ============================================================================
|
|
142
|
+
/**
|
|
143
|
+
* Detect if content is JSON or YAML
|
|
144
|
+
*/
|
|
145
|
+
function isJsonContent(text, contentType) {
|
|
146
|
+
if (contentType?.includes('application/json')) {
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
const firstChar = text.trimStart()[0];
|
|
150
|
+
return firstChar === '{';
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Parse PEAC policy manifest from YAML or JSON
|
|
154
|
+
*
|
|
155
|
+
* @param text - Policy manifest text (YAML or JSON)
|
|
156
|
+
* @param contentType - Optional Content-Type header value
|
|
157
|
+
* @returns Parsed policy manifest
|
|
158
|
+
* @throws Error if validation fails
|
|
159
|
+
*/
|
|
160
|
+
function parsePolicyManifest(text, contentType) {
|
|
17
161
|
const bytes = new TextEncoder().encode(text).length;
|
|
18
|
-
if (bytes > schema_1.
|
|
19
|
-
throw new Error(`
|
|
162
|
+
if (bytes > schema_1.PEAC_POLICY_MAX_BYTES) {
|
|
163
|
+
throw new Error(`Policy manifest exceeds ${schema_1.PEAC_POLICY_MAX_BYTES} bytes (got ${bytes})`);
|
|
20
164
|
}
|
|
21
|
-
|
|
22
|
-
if (
|
|
23
|
-
|
|
165
|
+
let manifest;
|
|
166
|
+
if (isJsonContent(text, contentType)) {
|
|
167
|
+
// Parse as JSON
|
|
168
|
+
try {
|
|
169
|
+
manifest = JSON.parse(text);
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
throw new Error('Policy manifest is not valid JSON');
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
// Parse as simple YAML (key: value format)
|
|
177
|
+
manifest = parseSimpleYaml(text);
|
|
178
|
+
}
|
|
179
|
+
// Validate required fields
|
|
180
|
+
if (typeof manifest.version !== 'string' || !manifest.version) {
|
|
181
|
+
throw new Error('Missing required field: version');
|
|
182
|
+
}
|
|
183
|
+
// Validate version format: must be peac-policy/<major>.<minor>
|
|
184
|
+
if (!manifest.version.startsWith('peac-policy/')) {
|
|
185
|
+
throw new Error(`Invalid version format: "${manifest.version}". Must start with "peac-policy/" (e.g., "peac-policy/0.1")`);
|
|
24
186
|
}
|
|
25
|
-
|
|
26
|
-
|
|
187
|
+
if (manifest.usage !== 'open' && manifest.usage !== 'conditional') {
|
|
188
|
+
throw new Error('Missing or invalid field: usage (must be "open" or "conditional")');
|
|
189
|
+
}
|
|
190
|
+
return {
|
|
191
|
+
version: manifest.version,
|
|
192
|
+
usage: manifest.usage,
|
|
193
|
+
purposes: manifest.purposes,
|
|
194
|
+
receipts: manifest.receipts,
|
|
195
|
+
attribution: manifest.attribution,
|
|
196
|
+
rate_limit: manifest.rate_limit,
|
|
197
|
+
daily_limit: manifest.daily_limit,
|
|
198
|
+
negotiate: manifest.negotiate,
|
|
199
|
+
contact: manifest.contact,
|
|
200
|
+
license: manifest.license,
|
|
201
|
+
price: manifest.price,
|
|
202
|
+
currency: manifest.currency,
|
|
203
|
+
payment_methods: manifest.payment_methods,
|
|
204
|
+
payment_endpoint: manifest.payment_endpoint,
|
|
27
205
|
};
|
|
28
|
-
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Parse simple YAML (key: value format, no complex features)
|
|
209
|
+
* Rejects YAML features that are security risks (anchors, aliases, tags)
|
|
210
|
+
*/
|
|
211
|
+
function parseSimpleYaml(text) {
|
|
212
|
+
const lines = text.split('\n');
|
|
213
|
+
const result = {};
|
|
214
|
+
// Security: reject YAML features that are dangerous
|
|
215
|
+
// Check merge keys first (they contain * which would trigger anchor check)
|
|
216
|
+
if (text.includes('<<:')) {
|
|
217
|
+
throw new Error('YAML merge keys are not allowed');
|
|
218
|
+
}
|
|
219
|
+
if (text.includes('&') || text.includes('*')) {
|
|
220
|
+
throw new Error('YAML anchors and aliases are not allowed');
|
|
221
|
+
}
|
|
222
|
+
if (/!\w+/.test(text)) {
|
|
223
|
+
throw new Error('YAML custom tags are not allowed');
|
|
224
|
+
}
|
|
225
|
+
// Count document separators
|
|
226
|
+
const docSeparators = text.match(/^---$/gm);
|
|
227
|
+
if (docSeparators && docSeparators.length > 1) {
|
|
228
|
+
throw new Error('Multi-document YAML is not allowed');
|
|
229
|
+
}
|
|
29
230
|
for (const line of lines) {
|
|
30
231
|
const trimmed = line.trim();
|
|
31
|
-
|
|
32
|
-
|
|
232
|
+
// Skip empty lines, comments, and document markers
|
|
233
|
+
if (!trimmed || trimmed.startsWith('#') || trimmed === '---') {
|
|
234
|
+
continue;
|
|
33
235
|
}
|
|
34
|
-
|
|
35
|
-
|
|
236
|
+
// Parse key: value
|
|
237
|
+
const colonIndex = trimmed.indexOf(':');
|
|
238
|
+
if (colonIndex === -1)
|
|
36
239
|
continue;
|
|
240
|
+
const key = trimmed.slice(0, colonIndex).trim();
|
|
241
|
+
let value = trimmed.slice(colonIndex + 1).trim();
|
|
242
|
+
// Parse value types
|
|
243
|
+
if (value === '') {
|
|
244
|
+
value = undefined;
|
|
37
245
|
}
|
|
38
|
-
if (
|
|
39
|
-
//
|
|
40
|
-
if (
|
|
41
|
-
|
|
42
|
-
|
|
246
|
+
else if (typeof value === 'string') {
|
|
247
|
+
// Remove quotes if present
|
|
248
|
+
if ((value.startsWith('"') && value.endsWith('"')) ||
|
|
249
|
+
(value.startsWith("'") && value.endsWith("'"))) {
|
|
250
|
+
value = value.slice(1, -1);
|
|
251
|
+
}
|
|
252
|
+
// Parse arrays [a, b, c]
|
|
253
|
+
else if (value.startsWith('[') && value.endsWith(']')) {
|
|
254
|
+
const inner = value.slice(1, -1);
|
|
255
|
+
value = inner
|
|
256
|
+
.split(',')
|
|
257
|
+
.map((s) => s.trim())
|
|
258
|
+
.filter((s) => s.length > 0);
|
|
43
259
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
discovery.payments[discovery.payments.length - 1].info = info;
|
|
48
|
-
}
|
|
260
|
+
// Parse numbers
|
|
261
|
+
else if (/^-?\d+(\.\d+)?$/.test(value)) {
|
|
262
|
+
value = parseFloat(value);
|
|
49
263
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
264
|
+
// Parse booleans
|
|
265
|
+
else if (value === 'true') {
|
|
266
|
+
value = true;
|
|
267
|
+
}
|
|
268
|
+
else if (value === 'false') {
|
|
269
|
+
value = false;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
if (value !== undefined) {
|
|
273
|
+
result[key] = value;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
return result;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Fetch PEAC policy manifest from a domain
|
|
280
|
+
*
|
|
281
|
+
* @param baseUrl - Base URL (https://example.com)
|
|
282
|
+
* @returns Parsed policy manifest
|
|
283
|
+
* @throws Error if fetch or validation fails
|
|
284
|
+
*/
|
|
285
|
+
async function fetchPolicyManifest(baseUrl) {
|
|
286
|
+
if (!baseUrl.startsWith('https://') && !baseUrl.startsWith('http://localhost')) {
|
|
287
|
+
throw new Error('Base URL must be https://');
|
|
288
|
+
}
|
|
289
|
+
const normalizedBase = baseUrl.replace(/\/$/, '');
|
|
290
|
+
const primaryUrl = `${normalizedBase}${schema_1.PEAC_POLICY_PATH}`;
|
|
291
|
+
const fallbackUrl = `${normalizedBase}${schema_1.PEAC_POLICY_FALLBACK_PATH}`;
|
|
292
|
+
// Try primary location first
|
|
293
|
+
try {
|
|
294
|
+
const resp = await fetch(primaryUrl, {
|
|
295
|
+
headers: { Accept: 'text/plain, application/json' },
|
|
296
|
+
signal: AbortSignal.timeout(5000),
|
|
297
|
+
});
|
|
298
|
+
if (resp.ok) {
|
|
299
|
+
const text = await resp.text();
|
|
300
|
+
const contentType = resp.headers.get('content-type') || undefined;
|
|
301
|
+
return parsePolicyManifest(text, contentType);
|
|
302
|
+
}
|
|
303
|
+
// If 404, try fallback
|
|
304
|
+
if (resp.status === 404) {
|
|
305
|
+
const fallbackResp = await fetch(fallbackUrl, {
|
|
306
|
+
headers: { Accept: 'text/plain, application/json' },
|
|
307
|
+
signal: AbortSignal.timeout(5000),
|
|
308
|
+
});
|
|
309
|
+
if (fallbackResp.ok) {
|
|
310
|
+
const text = await fallbackResp.text();
|
|
311
|
+
const contentType = fallbackResp.headers.get('content-type') || undefined;
|
|
312
|
+
return parsePolicyManifest(text, contentType);
|
|
53
313
|
}
|
|
314
|
+
throw new Error('Policy manifest not found at primary or fallback location');
|
|
54
315
|
}
|
|
55
|
-
|
|
316
|
+
throw new Error(`Policy manifest fetch failed: ${resp.status}`);
|
|
317
|
+
}
|
|
318
|
+
catch (err) {
|
|
319
|
+
throw new Error(`Failed to fetch policy manifest from ${baseUrl}: ${err instanceof Error ? err.message : String(err)}`);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
// ============================================================================
|
|
323
|
+
// Deprecated Legacy API (for backward compatibility)
|
|
324
|
+
// ============================================================================
|
|
325
|
+
/**
|
|
326
|
+
* @deprecated Use parseIssuerConfig instead. Will be removed in v1.0.
|
|
327
|
+
*
|
|
328
|
+
* Parse a PEAC discovery manifest from YAML-like text.
|
|
329
|
+
* This function is maintained for backward compatibility only.
|
|
330
|
+
*/
|
|
331
|
+
function parseDiscovery(text) {
|
|
332
|
+
const bytes = new TextEncoder().encode(text).length;
|
|
333
|
+
if (bytes > 2000) {
|
|
334
|
+
throw new Error(`Discovery manifest exceeds 2000 bytes (got ${bytes})`);
|
|
335
|
+
}
|
|
336
|
+
const lines = text.trim().split('\n');
|
|
337
|
+
if (lines.length > 20) {
|
|
338
|
+
throw new Error(`Discovery manifest exceeds 20 lines (got ${lines.length})`);
|
|
339
|
+
}
|
|
340
|
+
const discovery = {};
|
|
341
|
+
for (const line of lines) {
|
|
342
|
+
const trimmed = line.trim();
|
|
343
|
+
if (!trimmed || trimmed.startsWith('#')) {
|
|
344
|
+
continue;
|
|
345
|
+
}
|
|
346
|
+
if (trimmed.includes(':')) {
|
|
56
347
|
const [key, ...valueParts] = trimmed.split(':');
|
|
57
348
|
const value = valueParts.join(':').trim();
|
|
58
349
|
switch (key.trim()) {
|
|
@@ -63,19 +354,13 @@ function parseDiscovery(text) {
|
|
|
63
354
|
discovery.issuer = value;
|
|
64
355
|
break;
|
|
65
356
|
case 'verify':
|
|
66
|
-
discovery.
|
|
357
|
+
discovery.verify_endpoint = value;
|
|
67
358
|
break;
|
|
68
359
|
case 'jwks':
|
|
69
|
-
discovery.
|
|
70
|
-
break;
|
|
71
|
-
case 'aipref':
|
|
72
|
-
discovery.aipref = value;
|
|
73
|
-
break;
|
|
74
|
-
case 'slos':
|
|
75
|
-
discovery.slos = value;
|
|
360
|
+
discovery.jwks_uri = value;
|
|
76
361
|
break;
|
|
77
362
|
case 'security':
|
|
78
|
-
discovery.
|
|
363
|
+
discovery.security_contact = value;
|
|
79
364
|
break;
|
|
80
365
|
}
|
|
81
366
|
}
|
|
@@ -85,17 +370,17 @@ function parseDiscovery(text) {
|
|
|
85
370
|
throw new Error('Missing required field: version');
|
|
86
371
|
if (!discovery.issuer)
|
|
87
372
|
throw new Error('Missing required field: issuer');
|
|
88
|
-
if (!discovery.
|
|
373
|
+
if (!discovery.verify_endpoint)
|
|
89
374
|
throw new Error('Missing required field: verify');
|
|
90
|
-
if (!discovery.
|
|
375
|
+
if (!discovery.jwks_uri)
|
|
91
376
|
throw new Error('Missing required field: jwks');
|
|
92
377
|
return discovery;
|
|
93
378
|
}
|
|
94
379
|
/**
|
|
95
|
-
*
|
|
380
|
+
* @deprecated Use fetchIssuerConfig instead. Will be removed in v1.0.
|
|
96
381
|
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
382
|
+
* Fetch and parse PEAC discovery from an issuer URL.
|
|
383
|
+
* This function is maintained for backward compatibility only.
|
|
99
384
|
*/
|
|
100
385
|
async function fetchDiscovery(issuerUrl) {
|
|
101
386
|
if (!issuerUrl.startsWith('https://')) {
|
package/dist/discovery.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
|
package/dist/headers.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* HTTP header utilities for PEAC receipts
|
|
2
|
+
* HTTP header utilities for PEAC receipts and purpose
|
|
3
3
|
*/
|
|
4
|
+
import { type PurposeToken, type CanonicalPurpose, type PurposeReason } from '@peac/schema';
|
|
4
5
|
/**
|
|
5
6
|
* Set PEAC-Receipt header on a response
|
|
6
7
|
*
|
|
@@ -21,4 +22,40 @@ export declare function getReceiptHeader(headers: Headers): string | null;
|
|
|
21
22
|
* @param headers - Response headers
|
|
22
23
|
*/
|
|
23
24
|
export declare function setVaryHeader(headers: Headers): void;
|
|
25
|
+
/**
|
|
26
|
+
* Get PEAC-Purpose header from a request
|
|
27
|
+
*
|
|
28
|
+
* Parses the comma-separated purpose token list into an array.
|
|
29
|
+
* Normalizes tokens (lowercase, trim whitespace), deduplicates.
|
|
30
|
+
*
|
|
31
|
+
* @param headers - Request headers
|
|
32
|
+
* @returns Array of normalized PurposeToken values, empty if header missing
|
|
33
|
+
*/
|
|
34
|
+
export declare function getPurposeHeader(headers: Headers): PurposeToken[];
|
|
35
|
+
/**
|
|
36
|
+
* Set PEAC-Purpose-Applied header on a response
|
|
37
|
+
*
|
|
38
|
+
* Indicates which purpose(s) were enforced for this request.
|
|
39
|
+
*
|
|
40
|
+
* @param headers - Response headers
|
|
41
|
+
* @param purpose - Single canonical purpose that was enforced
|
|
42
|
+
*/
|
|
43
|
+
export declare function setPurposeAppliedHeader(headers: Headers, purpose: CanonicalPurpose): void;
|
|
44
|
+
/**
|
|
45
|
+
* Set PEAC-Purpose-Reason header on a response
|
|
46
|
+
*
|
|
47
|
+
* Explains WHY the purpose was enforced as it was (audit trail).
|
|
48
|
+
*
|
|
49
|
+
* @param headers - Response headers
|
|
50
|
+
* @param reason - Purpose reason enum value
|
|
51
|
+
*/
|
|
52
|
+
export declare function setPurposeReasonHeader(headers: Headers, reason: PurposeReason): void;
|
|
53
|
+
/**
|
|
54
|
+
* Set Vary: PEAC-Purpose header for caching
|
|
55
|
+
*
|
|
56
|
+
* If response behavior varies by declared purpose, MUST set this header.
|
|
57
|
+
*
|
|
58
|
+
* @param headers - Response headers
|
|
59
|
+
*/
|
|
60
|
+
export declare function setVaryPurposeHeader(headers: Headers): void;
|
|
24
61
|
//# sourceMappingURL=headers.d.ts.map
|
package/dist/headers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../src/headers.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../src/headers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAML,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AAEtB;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAE3E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEhE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAWpD;AAMD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,EAAE,CAMjE;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAEzF;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAEpF;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAU3D"}
|
package/dist/headers.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* HTTP header utilities for PEAC receipts
|
|
3
|
+
* HTTP header utilities for PEAC receipts and purpose
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.setReceiptHeader = setReceiptHeader;
|
|
7
7
|
exports.getReceiptHeader = getReceiptHeader;
|
|
8
8
|
exports.setVaryHeader = setVaryHeader;
|
|
9
|
+
exports.getPurposeHeader = getPurposeHeader;
|
|
10
|
+
exports.setPurposeAppliedHeader = setPurposeAppliedHeader;
|
|
11
|
+
exports.setPurposeReasonHeader = setPurposeReasonHeader;
|
|
12
|
+
exports.setVaryPurposeHeader = setVaryPurposeHeader;
|
|
9
13
|
const schema_1 = require("@peac/schema");
|
|
10
14
|
/**
|
|
11
15
|
* Set PEAC-Receipt header on a response
|
|
@@ -43,4 +47,64 @@ function setVaryHeader(headers) {
|
|
|
43
47
|
headers.set('Vary', schema_1.PEAC_RECEIPT_HEADER);
|
|
44
48
|
}
|
|
45
49
|
}
|
|
50
|
+
// -----------------------------------------------------------------------------
|
|
51
|
+
// Purpose Header Utilities (v0.9.24+)
|
|
52
|
+
// -----------------------------------------------------------------------------
|
|
53
|
+
/**
|
|
54
|
+
* Get PEAC-Purpose header from a request
|
|
55
|
+
*
|
|
56
|
+
* Parses the comma-separated purpose token list into an array.
|
|
57
|
+
* Normalizes tokens (lowercase, trim whitespace), deduplicates.
|
|
58
|
+
*
|
|
59
|
+
* @param headers - Request headers
|
|
60
|
+
* @returns Array of normalized PurposeToken values, empty if header missing
|
|
61
|
+
*/
|
|
62
|
+
function getPurposeHeader(headers) {
|
|
63
|
+
const value = headers.get(schema_1.PEAC_PURPOSE_HEADER);
|
|
64
|
+
if (!value) {
|
|
65
|
+
return [];
|
|
66
|
+
}
|
|
67
|
+
return (0, schema_1.parsePurposeHeader)(value);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Set PEAC-Purpose-Applied header on a response
|
|
71
|
+
*
|
|
72
|
+
* Indicates which purpose(s) were enforced for this request.
|
|
73
|
+
*
|
|
74
|
+
* @param headers - Response headers
|
|
75
|
+
* @param purpose - Single canonical purpose that was enforced
|
|
76
|
+
*/
|
|
77
|
+
function setPurposeAppliedHeader(headers, purpose) {
|
|
78
|
+
headers.set(schema_1.PEAC_PURPOSE_APPLIED_HEADER, purpose);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Set PEAC-Purpose-Reason header on a response
|
|
82
|
+
*
|
|
83
|
+
* Explains WHY the purpose was enforced as it was (audit trail).
|
|
84
|
+
*
|
|
85
|
+
* @param headers - Response headers
|
|
86
|
+
* @param reason - Purpose reason enum value
|
|
87
|
+
*/
|
|
88
|
+
function setPurposeReasonHeader(headers, reason) {
|
|
89
|
+
headers.set(schema_1.PEAC_PURPOSE_REASON_HEADER, reason);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Set Vary: PEAC-Purpose header for caching
|
|
93
|
+
*
|
|
94
|
+
* If response behavior varies by declared purpose, MUST set this header.
|
|
95
|
+
*
|
|
96
|
+
* @param headers - Response headers
|
|
97
|
+
*/
|
|
98
|
+
function setVaryPurposeHeader(headers) {
|
|
99
|
+
const existing = headers.get('Vary');
|
|
100
|
+
if (existing) {
|
|
101
|
+
const varies = existing.split(',').map((v) => v.trim());
|
|
102
|
+
if (!varies.includes(schema_1.PEAC_PURPOSE_HEADER)) {
|
|
103
|
+
headers.set('Vary', `${existing}, ${schema_1.PEAC_PURPOSE_HEADER}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
headers.set('Vary', schema_1.PEAC_PURPOSE_HEADER);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
46
110
|
//# sourceMappingURL=headers.js.map
|
package/dist/headers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headers.js","sourceRoot":"","sources":["../src/headers.ts"],"names":[],"mappings":";AAAA;;GAEG;;
|
|
1
|
+
{"version":3,"file":"headers.js","sourceRoot":"","sources":["../src/headers.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAmBH,4CAEC;AAQD,4CAEC;AAOD,sCAWC;AAeD,4CAMC;AAUD,0DAEC;AAUD,wDAEC;AASD,oDAUC;AA/GD,yCASsB;AAEtB;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,OAAgB,EAAE,UAAkB;IACnE,OAAO,CAAC,GAAG,CAAC,4BAAmB,EAAE,UAAU,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,OAAO,CAAC,GAAG,CAAC,4BAAmB,CAAC,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,OAAgB;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,QAAQ,EAAE,CAAC;QACb,iCAAiC;QACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAAmB,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,QAAQ,KAAK,4BAAmB,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,4BAAmB,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,sCAAsC;AACtC,gFAAgF;AAEhF;;;;;;;;GAQG;AACH,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,4BAAmB,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,IAAA,2BAAkB,EAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,uBAAuB,CAAC,OAAgB,EAAE,OAAyB;IACjF,OAAO,CAAC,GAAG,CAAC,oCAA2B,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,sBAAsB,CAAC,OAAgB,EAAE,MAAqB;IAC5E,OAAO,CAAC,GAAG,CAAC,mCAA0B,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAC,OAAgB;IACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAAmB,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,QAAQ,KAAK,4BAAmB,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,4BAAmB,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAG5B,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -18,8 +18,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
18
18
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
19
19
|
};
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.verify = exports.generateKeypair = void 0;
|
|
21
22
|
__exportStar(require("./issue"), exports);
|
|
22
23
|
__exportStar(require("./verify"), exports);
|
|
24
|
+
__exportStar(require("./verify-local"), exports);
|
|
23
25
|
__exportStar(require("./headers"), exports);
|
|
24
26
|
__exportStar(require("./discovery"), exports);
|
|
27
|
+
// Re-export crypto utilities for single-package quickstart
|
|
28
|
+
var crypto_1 = require("@peac/crypto");
|
|
29
|
+
Object.defineProperty(exports, "generateKeypair", { enumerable: true, get: function () { return crypto_1.generateKeypair; } });
|
|
30
|
+
Object.defineProperty(exports, "verify", { enumerable: true, get: function () { return crypto_1.verify; } });
|
|
25
31
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,0CAAwB;AACxB,2CAAyB;AACzB,iDAA+B;AAC/B,4CAA0B;AAC1B,8CAA4B;AAE5B,2DAA2D;AAC3D,uCAAuD;AAA9C,yGAAA,eAAe,OAAA;AAAE,gGAAA,MAAM,OAAA"}
|