@peac/protocol 0.10.9 → 0.10.11

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.
Files changed (45) hide show
  1. package/LICENSE +1 -1
  2. package/dist/discovery.d.ts.map +1 -1
  3. package/dist/index.cjs +2694 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.mjs +2612 -0
  6. package/dist/index.mjs.map +1 -0
  7. package/dist/verification-report.d.ts.map +1 -1
  8. package/dist/verifier-types.d.ts +42 -2
  9. package/dist/verifier-types.d.ts.map +1 -1
  10. package/dist/verify-local.cjs +164 -0
  11. package/dist/verify-local.cjs.map +1 -0
  12. package/dist/verify-local.d.ts +15 -0
  13. package/dist/verify-local.d.ts.map +1 -1
  14. package/dist/verify-local.mjs +160 -0
  15. package/dist/verify-local.mjs.map +1 -0
  16. package/dist/verify.d.ts.map +1 -1
  17. package/package.json +20 -13
  18. package/dist/crypto-utils.js +0 -21
  19. package/dist/crypto-utils.js.map +0 -1
  20. package/dist/discovery.js +0 -405
  21. package/dist/discovery.js.map +0 -1
  22. package/dist/headers.js +0 -110
  23. package/dist/headers.js.map +0 -1
  24. package/dist/index.js +0 -44
  25. package/dist/index.js.map +0 -1
  26. package/dist/issue.js +0 -198
  27. package/dist/issue.js.map +0 -1
  28. package/dist/pointer-fetch.js +0 -305
  29. package/dist/pointer-fetch.js.map +0 -1
  30. package/dist/ssrf-safe-fetch.js +0 -671
  31. package/dist/ssrf-safe-fetch.js.map +0 -1
  32. package/dist/telemetry.js +0 -43
  33. package/dist/telemetry.js.map +0 -1
  34. package/dist/transport-profiles.js +0 -424
  35. package/dist/transport-profiles.js.map +0 -1
  36. package/dist/verification-report.js +0 -322
  37. package/dist/verification-report.js.map +0 -1
  38. package/dist/verifier-core.js +0 -578
  39. package/dist/verifier-core.js.map +0 -1
  40. package/dist/verifier-types.js +0 -161
  41. package/dist/verifier-types.js.map +0 -1
  42. package/dist/verify-local.js +0 -230
  43. package/dist/verify-local.js.map +0 -1
  44. package/dist/verify.js +0 -213
  45. package/dist/verify.js.map +0 -1
@@ -1,21 +0,0 @@
1
- "use strict";
2
- /**
3
- * Cryptographic utilities for PEAC verifiers
4
- *
5
- * @deprecated Use @peac/crypto directly instead. This re-export exists for backwards compatibility.
6
- *
7
- * @packageDocumentation
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.sha256Hex = exports.sha256Bytes = exports.jwkToPublicKeyBytes = exports.hexToBytes = exports.computeJwkThumbprint = exports.bytesToHex = exports.base64urlEncode = exports.base64urlDecode = void 0;
11
- // Re-export all crypto utilities from @peac/crypto for backwards compatibility
12
- var crypto_1 = require("@peac/crypto");
13
- Object.defineProperty(exports, "base64urlDecode", { enumerable: true, get: function () { return crypto_1.base64urlDecode; } });
14
- Object.defineProperty(exports, "base64urlEncode", { enumerable: true, get: function () { return crypto_1.base64urlEncode; } });
15
- Object.defineProperty(exports, "bytesToHex", { enumerable: true, get: function () { return crypto_1.bytesToHex; } });
16
- Object.defineProperty(exports, "computeJwkThumbprint", { enumerable: true, get: function () { return crypto_1.computeJwkThumbprint; } });
17
- Object.defineProperty(exports, "hexToBytes", { enumerable: true, get: function () { return crypto_1.hexToBytes; } });
18
- Object.defineProperty(exports, "jwkToPublicKeyBytes", { enumerable: true, get: function () { return crypto_1.jwkToPublicKeyBytes; } });
19
- Object.defineProperty(exports, "sha256Bytes", { enumerable: true, get: function () { return crypto_1.sha256Bytes; } });
20
- Object.defineProperty(exports, "sha256Hex", { enumerable: true, get: function () { return crypto_1.sha256Hex; } });
21
- //# sourceMappingURL=crypto-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypto-utils.js","sourceRoot":"","sources":["../src/crypto-utils.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,+EAA+E;AAC/E,uCASsB;AARpB,yGAAA,eAAe,OAAA;AACf,yGAAA,eAAe,OAAA;AACf,oGAAA,UAAU,OAAA;AACV,8GAAA,oBAAoB,OAAA;AACpB,oGAAA,UAAU,OAAA;AACV,6GAAA,mBAAmB,OAAA;AACnB,qGAAA,WAAW,OAAA;AACX,mGAAA,SAAS,OAAA"}
package/dist/discovery.js DELETED
@@ -1,405 +0,0 @@
1
- "use strict";
2
- /**
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
11
- */
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.parseIssuerConfig = parseIssuerConfig;
14
- exports.fetchIssuerConfig = fetchIssuerConfig;
15
- exports.parsePolicyManifest = parsePolicyManifest;
16
- exports.fetchPolicyManifest = fetchPolicyManifest;
17
- exports.parseDiscovery = parseDiscovery;
18
- exports.fetchDiscovery = fetchDiscovery;
19
- const schema_1 = require("@peac/schema");
20
- // ============================================================================
21
- // Issuer Configuration (/.well-known/peac-issuer.json)
22
- // ============================================================================
23
- /**
24
- * Parse PEAC issuer configuration from JSON
25
- *
26
- * @param json - JSON string or object
27
- * @returns Parsed issuer configuration
28
- * @throws Error if validation fails
29
- */
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) {
161
- const bytes = new TextEncoder().encode(text).length;
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})`);
164
- }
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")`);
186
- }
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,
205
- };
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
- }
230
- for (const line of lines) {
231
- const trimmed = line.trim();
232
- // Skip empty lines, comments, and document markers
233
- if (!trimmed || trimmed.startsWith('#') || trimmed === '---') {
234
- continue;
235
- }
236
- // Parse key: value
237
- const colonIndex = trimmed.indexOf(':');
238
- if (colonIndex === -1)
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;
245
- }
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);
259
- }
260
- // Parse numbers
261
- else if (/^-?\d+(\.\d+)?$/.test(value)) {
262
- value = parseFloat(value);
263
- }
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);
313
- }
314
- throw new Error('Policy manifest not found at primary or fallback location');
315
- }
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(':')) {
347
- const [key, ...valueParts] = trimmed.split(':');
348
- const value = valueParts.join(':').trim();
349
- switch (key.trim()) {
350
- case 'version':
351
- discovery.version = value;
352
- break;
353
- case 'issuer':
354
- discovery.issuer = value;
355
- break;
356
- case 'verify':
357
- discovery.verify_endpoint = value;
358
- break;
359
- case 'jwks':
360
- discovery.jwks_uri = value;
361
- break;
362
- case 'security':
363
- discovery.security_contact = value;
364
- break;
365
- }
366
- }
367
- }
368
- // Validate required fields
369
- if (!discovery.version)
370
- throw new Error('Missing required field: version');
371
- if (!discovery.issuer)
372
- throw new Error('Missing required field: issuer');
373
- if (!discovery.verify_endpoint)
374
- throw new Error('Missing required field: verify');
375
- if (!discovery.jwks_uri)
376
- throw new Error('Missing required field: jwks');
377
- return discovery;
378
- }
379
- /**
380
- * @deprecated Use fetchIssuerConfig instead. Will be removed in v1.0.
381
- *
382
- * Fetch and parse PEAC discovery from an issuer URL.
383
- * This function is maintained for backward compatibility only.
384
- */
385
- async function fetchDiscovery(issuerUrl) {
386
- if (!issuerUrl.startsWith('https://')) {
387
- throw new Error('Issuer URL must be https://');
388
- }
389
- const discoveryUrl = `${issuerUrl}/.well-known/peac.txt`;
390
- try {
391
- const resp = await fetch(discoveryUrl, {
392
- headers: { Accept: 'text/plain' },
393
- signal: AbortSignal.timeout(5000),
394
- });
395
- if (!resp.ok) {
396
- throw new Error(`Discovery fetch failed: ${resp.status}`);
397
- }
398
- const text = await resp.text();
399
- return parseDiscovery(text);
400
- }
401
- catch (err) {
402
- throw new Error(`Failed to fetch discovery from ${issuerUrl}: ${err instanceof Error ? err.message : String(err)}`);
403
- }
404
- }
405
- //# sourceMappingURL=discovery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
package/dist/headers.js DELETED
@@ -1,110 +0,0 @@
1
- "use strict";
2
- /**
3
- * HTTP header utilities for PEAC receipts and purpose
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.setReceiptHeader = setReceiptHeader;
7
- exports.getReceiptHeader = getReceiptHeader;
8
- exports.setVaryHeader = setVaryHeader;
9
- exports.getPurposeHeader = getPurposeHeader;
10
- exports.setPurposeAppliedHeader = setPurposeAppliedHeader;
11
- exports.setPurposeReasonHeader = setPurposeReasonHeader;
12
- exports.setVaryPurposeHeader = setVaryPurposeHeader;
13
- const schema_1 = require("@peac/schema");
14
- /**
15
- * Set PEAC-Receipt header on a response
16
- *
17
- * @param headers - Headers object (e.g., Response.headers)
18
- * @param receiptJws - JWS compact serialization
19
- */
20
- function setReceiptHeader(headers, receiptJws) {
21
- headers.set(schema_1.PEAC_RECEIPT_HEADER, receiptJws);
22
- }
23
- /**
24
- * Get PEAC-Receipt header from a request/response
25
- *
26
- * @param headers - Headers object
27
- * @returns JWS compact serialization, or null if not present
28
- */
29
- function getReceiptHeader(headers) {
30
- return headers.get(schema_1.PEAC_RECEIPT_HEADER);
31
- }
32
- /**
33
- * Set Vary: PEAC-Receipt header for caching
34
- *
35
- * @param headers - Response headers
36
- */
37
- function setVaryHeader(headers) {
38
- const existing = headers.get('Vary');
39
- if (existing) {
40
- // Append to existing Vary header
41
- const varies = existing.split(',').map((v) => v.trim());
42
- if (!varies.includes(schema_1.PEAC_RECEIPT_HEADER)) {
43
- headers.set('Vary', `${existing}, ${schema_1.PEAC_RECEIPT_HEADER}`);
44
- }
45
- }
46
- else {
47
- headers.set('Vary', schema_1.PEAC_RECEIPT_HEADER);
48
- }
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
- }
110
- //# sourceMappingURL=headers.js.map
@@ -1 +0,0 @@
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.js DELETED
@@ -1,44 +0,0 @@
1
- "use strict";
2
- /**
3
- * PEAC Protocol Implementation
4
- * Receipt issuance and verification with JWKS caching
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
18
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
- };
20
- Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.verify = exports.sha256Hex = exports.sha256Bytes = exports.jwkToPublicKeyBytes = exports.generateKeypair = exports.computeJwkThumbprint = exports.base64urlEncode = exports.base64urlDecode = void 0;
22
- __exportStar(require("./issue"), exports);
23
- __exportStar(require("./verify"), exports);
24
- __exportStar(require("./verify-local"), exports);
25
- __exportStar(require("./headers"), exports);
26
- __exportStar(require("./discovery"), exports);
27
- // Verifier core (v0.10.8+)
28
- __exportStar(require("./verifier-types"), exports);
29
- __exportStar(require("./verifier-core"), exports);
30
- __exportStar(require("./verification-report"), exports);
31
- __exportStar(require("./ssrf-safe-fetch"), exports);
32
- __exportStar(require("./transport-profiles"), exports);
33
- __exportStar(require("./pointer-fetch"), exports);
34
- // Re-export crypto utilities for single-package quickstart
35
- var crypto_1 = require("@peac/crypto");
36
- Object.defineProperty(exports, "base64urlDecode", { enumerable: true, get: function () { return crypto_1.base64urlDecode; } });
37
- Object.defineProperty(exports, "base64urlEncode", { enumerable: true, get: function () { return crypto_1.base64urlEncode; } });
38
- Object.defineProperty(exports, "computeJwkThumbprint", { enumerable: true, get: function () { return crypto_1.computeJwkThumbprint; } });
39
- Object.defineProperty(exports, "generateKeypair", { enumerable: true, get: function () { return crypto_1.generateKeypair; } });
40
- Object.defineProperty(exports, "jwkToPublicKeyBytes", { enumerable: true, get: function () { return crypto_1.jwkToPublicKeyBytes; } });
41
- Object.defineProperty(exports, "sha256Bytes", { enumerable: true, get: function () { return crypto_1.sha256Bytes; } });
42
- Object.defineProperty(exports, "sha256Hex", { enumerable: true, get: function () { return crypto_1.sha256Hex; } });
43
- Object.defineProperty(exports, "verify", { enumerable: true, get: function () { return crypto_1.verify; } });
44
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
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,2BAA2B;AAC3B,mDAAiC;AACjC,kDAAgC;AAChC,wDAAsC;AACtC,oDAAkC;AAClC,uDAAqC;AACrC,kDAAgC;AAEhC,2DAA2D;AAC3D,uCASsB;AARpB,yGAAA,eAAe,OAAA;AACf,yGAAA,eAAe,OAAA;AACf,8GAAA,oBAAoB,OAAA;AACpB,yGAAA,eAAe,OAAA;AACf,6GAAA,mBAAmB,OAAA;AACnB,qGAAA,WAAW,OAAA;AACX,mGAAA,SAAS,OAAA;AACT,gGAAA,MAAM,OAAA"}