@peac/protocol 0.10.9 → 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/dist/discovery.d.ts.map +1 -1
- package/dist/index.cjs +2694 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.mjs +2612 -0
- package/dist/index.mjs.map +1 -0
- package/dist/verification-report.d.ts.map +1 -1
- package/dist/verifier-types.d.ts +42 -2
- package/dist/verifier-types.d.ts.map +1 -1
- package/dist/verify-local.cjs +164 -0
- package/dist/verify-local.cjs.map +1 -0
- package/dist/verify-local.d.ts +15 -0
- package/dist/verify-local.d.ts.map +1 -1
- package/dist/verify-local.mjs +160 -0
- package/dist/verify-local.mjs.map +1 -0
- package/dist/verify.d.ts.map +1 -1
- package/package.json +20 -13
- package/dist/crypto-utils.js +0 -21
- package/dist/crypto-utils.js.map +0 -1
- package/dist/discovery.js +0 -405
- package/dist/discovery.js.map +0 -1
- package/dist/headers.js +0 -110
- package/dist/headers.js.map +0 -1
- package/dist/index.js +0 -44
- package/dist/index.js.map +0 -1
- package/dist/issue.js +0 -198
- package/dist/issue.js.map +0 -1
- package/dist/pointer-fetch.js +0 -305
- package/dist/pointer-fetch.js.map +0 -1
- package/dist/ssrf-safe-fetch.js +0 -671
- package/dist/ssrf-safe-fetch.js.map +0 -1
- package/dist/telemetry.js +0 -43
- package/dist/telemetry.js.map +0 -1
- package/dist/transport-profiles.js +0 -424
- package/dist/transport-profiles.js.map +0 -1
- package/dist/verification-report.js +0 -322
- package/dist/verification-report.js.map +0 -1
- package/dist/verifier-core.js +0 -578
- package/dist/verifier-core.js.map +0 -1
- package/dist/verifier-types.js +0 -161
- package/dist/verifier-types.js.map +0 -1
- package/dist/verify-local.js +0 -230
- package/dist/verify-local.js.map +0 -1
- package/dist/verify.js +0 -213
- package/dist/verify.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ssrf-safe-fetch.js","sourceRoot":"","sources":["../src/ssrf-safe-fetch.ts"],"names":[],"mappings":"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"}
|
package/dist/telemetry.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Telemetry utilities for protocol package
|
|
4
|
-
*
|
|
5
|
-
* TelemetryHook is the protocol-local interface for observability.
|
|
6
|
-
* Hooks are best-effort side effects: fire-and-forget, never awaited,
|
|
7
|
-
* guarded against both sync throws and async rejections.
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.fireTelemetryHook = fireTelemetryHook;
|
|
11
|
-
exports.hashReceipt = hashReceipt;
|
|
12
|
-
const node_crypto_1 = require("node:crypto");
|
|
13
|
-
/**
|
|
14
|
-
* Safely invoke a telemetry hook (fire-and-forget)
|
|
15
|
-
*
|
|
16
|
-
* Guards both sync throws and async rejections.
|
|
17
|
-
* Telemetry MUST NOT break core flow.
|
|
18
|
-
*/
|
|
19
|
-
function fireTelemetryHook(fn, input) {
|
|
20
|
-
if (!fn)
|
|
21
|
-
return;
|
|
22
|
-
try {
|
|
23
|
-
const result = fn(input);
|
|
24
|
-
// Swallow async rejections
|
|
25
|
-
if (result && typeof result.catch === 'function') {
|
|
26
|
-
result.catch(() => { });
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
catch {
|
|
30
|
-
// Telemetry MUST NOT break core flow
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Compute a SHA-256 hash of a receipt JWS
|
|
35
|
-
*
|
|
36
|
-
* Returns format: sha256:{hex prefix}
|
|
37
|
-
* Uses first 16 chars of hex for brevity in logs/spans.
|
|
38
|
-
*/
|
|
39
|
-
function hashReceipt(jws) {
|
|
40
|
-
const hash = (0, node_crypto_1.createHash)('sha256').update(jws).digest('hex');
|
|
41
|
-
return `sha256:${hash.slice(0, 16)}`;
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=telemetry.js.map
|
package/dist/telemetry.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AA6CH,8CAcC;AAQD,kCAGC;AApED,6CAAyC;AAqCzC;;;;;GAKG;AACH,SAAgB,iBAAiB,CAC/B,EAAoD,EACpD,KAAQ;IAER,IAAI,CAAC,EAAE;QAAE,OAAO;IAChB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QACzB,2BAA2B;QAC3B,IAAI,MAAM,IAAI,OAAQ,MAAwB,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YACnE,MAAwB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,qCAAqC;IACvC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,GAAW;IACrC,MAAM,IAAI,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5D,OAAO,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AACvC,CAAC"}
|
|
@@ -1,424 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* PEAC Transport Profile Parsers
|
|
4
|
-
*
|
|
5
|
-
* Implements parsing for transport profiles per TRANSPORT-PROFILES.md:
|
|
6
|
-
* - Header profile (PEAC-Receipt header)
|
|
7
|
-
* - Pointer profile (PEAC-Receipt-Pointer header)
|
|
8
|
-
* - Body profile (peac_receipt/peac_receipts in JSON body)
|
|
9
|
-
*
|
|
10
|
-
* @packageDocumentation
|
|
11
|
-
*/
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.parseHeaderProfile = parseHeaderProfile;
|
|
14
|
-
exports.parsePointerProfile = parsePointerProfile;
|
|
15
|
-
exports.parseBodyProfile = parseBodyProfile;
|
|
16
|
-
exports.parseTransportProfile = parseTransportProfile;
|
|
17
|
-
// ---------------------------------------------------------------------------
|
|
18
|
-
// Header Profile Parser
|
|
19
|
-
// ---------------------------------------------------------------------------
|
|
20
|
-
/**
|
|
21
|
-
* Parse PEAC-Receipt header
|
|
22
|
-
*
|
|
23
|
-
* Per TRANSPORT-PROFILES.md:
|
|
24
|
-
* - Multiple headers MUST be rejected
|
|
25
|
-
* - Comma-separated values MUST be rejected
|
|
26
|
-
* - Value MUST be JWS compact serialization (three dot-separated segments)
|
|
27
|
-
*
|
|
28
|
-
* @param headerValue - PEAC-Receipt header value (string or array if multiple)
|
|
29
|
-
* @returns Parse result
|
|
30
|
-
*/
|
|
31
|
-
function parseHeaderProfile(headerValue) {
|
|
32
|
-
// Check for missing header
|
|
33
|
-
if (headerValue === undefined || headerValue === '') {
|
|
34
|
-
return {
|
|
35
|
-
ok: false,
|
|
36
|
-
reason: 'invalid_transport',
|
|
37
|
-
errorCode: 'E_VERIFY_INVALID_TRANSPORT',
|
|
38
|
-
message: 'PEAC-Receipt header is missing',
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
// Check for multiple headers (array)
|
|
42
|
-
if (Array.isArray(headerValue)) {
|
|
43
|
-
return {
|
|
44
|
-
ok: false,
|
|
45
|
-
reason: 'invalid_transport',
|
|
46
|
-
errorCode: 'E_VERIFY_INVALID_TRANSPORT',
|
|
47
|
-
message: 'Multiple PEAC-Receipt headers are not allowed',
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
// Check for comma-separated values (HTTP header list syntax)
|
|
51
|
-
if (headerValue.includes(',')) {
|
|
52
|
-
// Could be comma in base64url, but JWS compact has exactly 2 periods
|
|
53
|
-
// If there are commas between periods, it's likely multiple values
|
|
54
|
-
const parts = headerValue.split('.');
|
|
55
|
-
if (parts.length !== 3 || parts.some((p) => p.includes(','))) {
|
|
56
|
-
return {
|
|
57
|
-
ok: false,
|
|
58
|
-
reason: 'invalid_transport',
|
|
59
|
-
errorCode: 'E_VERIFY_INVALID_TRANSPORT',
|
|
60
|
-
message: 'Comma-separated PEAC-Receipt values are not allowed',
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
// Validate JWS compact serialization structure (three segments)
|
|
65
|
-
const segments = headerValue.split('.');
|
|
66
|
-
if (segments.length !== 3) {
|
|
67
|
-
return {
|
|
68
|
-
ok: false,
|
|
69
|
-
reason: 'malformed_receipt',
|
|
70
|
-
errorCode: 'E_VERIFY_MALFORMED_RECEIPT',
|
|
71
|
-
message: `Invalid JWS compact serialization: expected 3 segments, got ${segments.length}`,
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
// All segments must be non-empty base64url strings
|
|
75
|
-
const base64urlRegex = /^[A-Za-z0-9_-]*$/;
|
|
76
|
-
for (let i = 0; i < segments.length; i++) {
|
|
77
|
-
const segment = segments[i];
|
|
78
|
-
if (segment.length === 0) {
|
|
79
|
-
return {
|
|
80
|
-
ok: false,
|
|
81
|
-
reason: 'malformed_receipt',
|
|
82
|
-
errorCode: 'E_VERIFY_MALFORMED_RECEIPT',
|
|
83
|
-
message: `Invalid JWS compact serialization: segment ${i + 1} is empty`,
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
if (!base64urlRegex.test(segment)) {
|
|
87
|
-
return {
|
|
88
|
-
ok: false,
|
|
89
|
-
reason: 'malformed_receipt',
|
|
90
|
-
errorCode: 'E_VERIFY_MALFORMED_RECEIPT',
|
|
91
|
-
message: `Invalid JWS compact serialization: segment ${i + 1} contains invalid characters`,
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
return {
|
|
96
|
-
ok: true,
|
|
97
|
-
result: {
|
|
98
|
-
profile: 'header',
|
|
99
|
-
receipt: headerValue,
|
|
100
|
-
},
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
// ---------------------------------------------------------------------------
|
|
104
|
-
// Pointer Profile Parser
|
|
105
|
-
// ---------------------------------------------------------------------------
|
|
106
|
-
/**
|
|
107
|
-
* Parse PEAC-Receipt-Pointer header
|
|
108
|
-
*
|
|
109
|
-
* Per TRANSPORT-PROFILES.md:
|
|
110
|
-
* - Format: RFC 8941 dictionary with sha256 and url parameters
|
|
111
|
-
* - Multiple headers MUST be rejected
|
|
112
|
-
* - URL MUST be HTTPS
|
|
113
|
-
*
|
|
114
|
-
* Example: sha256="7d8f...", url="https://receipts.example.com/abc123"
|
|
115
|
-
*
|
|
116
|
-
* @param headerValue - PEAC-Receipt-Pointer header value (string or array if multiple)
|
|
117
|
-
* @returns Parse result
|
|
118
|
-
*/
|
|
119
|
-
function parsePointerProfile(headerValue) {
|
|
120
|
-
// Check for missing header
|
|
121
|
-
if (headerValue === undefined || headerValue === '') {
|
|
122
|
-
return {
|
|
123
|
-
ok: false,
|
|
124
|
-
reason: 'invalid_transport',
|
|
125
|
-
errorCode: 'E_VERIFY_INVALID_TRANSPORT',
|
|
126
|
-
message: 'PEAC-Receipt-Pointer header is missing',
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
// Check for multiple headers (array)
|
|
130
|
-
if (Array.isArray(headerValue)) {
|
|
131
|
-
return {
|
|
132
|
-
ok: false,
|
|
133
|
-
reason: 'invalid_transport',
|
|
134
|
-
errorCode: 'E_VERIFY_INVALID_TRANSPORT',
|
|
135
|
-
message: 'Multiple PEAC-Receipt-Pointer headers are not allowed',
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
// Parse RFC 8941 dictionary format
|
|
139
|
-
// Format: sha256="<hex>", url="<url>"
|
|
140
|
-
// We use a simple parser here instead of a full RFC 8941 implementation
|
|
141
|
-
const parseResult = parseSimpleDictionary(headerValue);
|
|
142
|
-
// Strict: Reject duplicate parameters
|
|
143
|
-
if (parseResult.duplicates.length > 0) {
|
|
144
|
-
return {
|
|
145
|
-
ok: false,
|
|
146
|
-
reason: 'invalid_transport',
|
|
147
|
-
errorCode: 'E_VERIFY_INVALID_TRANSPORT',
|
|
148
|
-
message: `PEAC-Receipt-Pointer has duplicate parameter: ${parseResult.duplicates[0]}`,
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
// Strict: Reject unknown parameters (only sha256, url, and ext_* are valid)
|
|
152
|
-
// Extension keys (ext_*) are allowed for forward-compatibility
|
|
153
|
-
const ALLOWED_KEYS = new Set(['sha256', 'url']);
|
|
154
|
-
const unknownKeys = parseResult.keys.filter((k) => !ALLOWED_KEYS.has(k) && !k.startsWith('ext_'));
|
|
155
|
-
if (unknownKeys.length > 0) {
|
|
156
|
-
return {
|
|
157
|
-
ok: false,
|
|
158
|
-
reason: 'invalid_transport',
|
|
159
|
-
errorCode: 'E_VERIFY_INVALID_TRANSPORT',
|
|
160
|
-
message: `PEAC-Receipt-Pointer has unknown parameter: ${unknownKeys[0]}`,
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
const params = parseResult.params;
|
|
164
|
-
if (!params.sha256) {
|
|
165
|
-
return {
|
|
166
|
-
ok: false,
|
|
167
|
-
reason: 'invalid_transport',
|
|
168
|
-
errorCode: 'E_VERIFY_INVALID_TRANSPORT',
|
|
169
|
-
message: 'PEAC-Receipt-Pointer missing sha256 parameter',
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
if (!params.url) {
|
|
173
|
-
return {
|
|
174
|
-
ok: false,
|
|
175
|
-
reason: 'invalid_transport',
|
|
176
|
-
errorCode: 'E_VERIFY_INVALID_TRANSPORT',
|
|
177
|
-
message: 'PEAC-Receipt-Pointer missing url parameter',
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
// Validate digest is lowercase hex
|
|
181
|
-
const hexRegex = /^[0-9a-f]{64}$/;
|
|
182
|
-
if (!hexRegex.test(params.sha256)) {
|
|
183
|
-
return {
|
|
184
|
-
ok: false,
|
|
185
|
-
reason: 'invalid_transport',
|
|
186
|
-
errorCode: 'E_VERIFY_INVALID_TRANSPORT',
|
|
187
|
-
message: 'PEAC-Receipt-Pointer sha256 must be 64 lowercase hex characters',
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
// Validate URL is HTTPS
|
|
191
|
-
try {
|
|
192
|
-
const url = new URL(params.url);
|
|
193
|
-
if (url.protocol !== 'https:') {
|
|
194
|
-
return {
|
|
195
|
-
ok: false,
|
|
196
|
-
reason: 'pointer_fetch_blocked',
|
|
197
|
-
errorCode: 'E_VERIFY_POINTER_FETCH_BLOCKED',
|
|
198
|
-
message: 'Pointer URL must use HTTPS',
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
catch {
|
|
203
|
-
return {
|
|
204
|
-
ok: false,
|
|
205
|
-
reason: 'invalid_transport',
|
|
206
|
-
errorCode: 'E_VERIFY_INVALID_TRANSPORT',
|
|
207
|
-
message: 'PEAC-Receipt-Pointer url is not a valid URL',
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
// Extract extension keys (ext_*) for forward-compatibility
|
|
211
|
-
const extensions = {};
|
|
212
|
-
for (const key of parseResult.keys) {
|
|
213
|
-
if (key.startsWith('ext_')) {
|
|
214
|
-
extensions[key] = params[key];
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
return {
|
|
218
|
-
ok: true,
|
|
219
|
-
result: {
|
|
220
|
-
profile: 'pointer',
|
|
221
|
-
digestAlg: 'sha256',
|
|
222
|
-
digestValue: params.sha256,
|
|
223
|
-
url: params.url,
|
|
224
|
-
...(Object.keys(extensions).length > 0 && { extensions }),
|
|
225
|
-
},
|
|
226
|
-
};
|
|
227
|
-
}
|
|
228
|
-
/**
|
|
229
|
-
* Simple RFC 8941-like dictionary parser (ReDoS-safe)
|
|
230
|
-
*
|
|
231
|
-
* Parses: key1="value1", key2="value2"
|
|
232
|
-
* Returns map of key -> value (unquoted) plus metadata for strict validation
|
|
233
|
-
*
|
|
234
|
-
* Uses explicit character-by-character parsing to avoid ReDoS vulnerabilities
|
|
235
|
-
* from regex alternation patterns.
|
|
236
|
-
*/
|
|
237
|
-
function parseSimpleDictionary(input) {
|
|
238
|
-
const params = {};
|
|
239
|
-
const duplicates = [];
|
|
240
|
-
const keys = [];
|
|
241
|
-
let i = 0;
|
|
242
|
-
const len = input.length;
|
|
243
|
-
while (i < len) {
|
|
244
|
-
// Skip whitespace and commas
|
|
245
|
-
while (i < len && (input[i] === ' ' || input[i] === ',' || input[i] === '\t')) {
|
|
246
|
-
i++;
|
|
247
|
-
}
|
|
248
|
-
if (i >= len)
|
|
249
|
-
break;
|
|
250
|
-
// Parse key (word characters only)
|
|
251
|
-
const keyStart = i;
|
|
252
|
-
while (i < len && /\w/.test(input[i])) {
|
|
253
|
-
i++;
|
|
254
|
-
}
|
|
255
|
-
const key = input.slice(keyStart, i);
|
|
256
|
-
if (!key)
|
|
257
|
-
break;
|
|
258
|
-
// Skip whitespace before '='
|
|
259
|
-
while (i < len && input[i] === ' ')
|
|
260
|
-
i++;
|
|
261
|
-
// Expect '='
|
|
262
|
-
if (i >= len || input[i] !== '=')
|
|
263
|
-
break;
|
|
264
|
-
i++; // skip '='
|
|
265
|
-
// Skip whitespace after '='
|
|
266
|
-
while (i < len && input[i] === ' ')
|
|
267
|
-
i++;
|
|
268
|
-
// Parse value (quoted or unquoted)
|
|
269
|
-
let value;
|
|
270
|
-
if (input[i] === '"') {
|
|
271
|
-
// Quoted value - find closing quote
|
|
272
|
-
i++; // skip opening quote
|
|
273
|
-
const valueStart = i;
|
|
274
|
-
while (i < len && input[i] !== '"') {
|
|
275
|
-
i++;
|
|
276
|
-
}
|
|
277
|
-
value = input.slice(valueStart, i);
|
|
278
|
-
if (i < len)
|
|
279
|
-
i++; // skip closing quote
|
|
280
|
-
}
|
|
281
|
-
else {
|
|
282
|
-
// Unquoted value - read until comma or whitespace
|
|
283
|
-
const valueStart = i;
|
|
284
|
-
while (i < len && input[i] !== ',' && input[i] !== ' ' && input[i] !== '\t') {
|
|
285
|
-
i++;
|
|
286
|
-
}
|
|
287
|
-
value = input.slice(valueStart, i);
|
|
288
|
-
}
|
|
289
|
-
keys.push(key);
|
|
290
|
-
// Track duplicates
|
|
291
|
-
if (key in params) {
|
|
292
|
-
duplicates.push(key);
|
|
293
|
-
}
|
|
294
|
-
params[key] = value;
|
|
295
|
-
}
|
|
296
|
-
return { params, duplicates, keys };
|
|
297
|
-
}
|
|
298
|
-
// ---------------------------------------------------------------------------
|
|
299
|
-
// Body Profile Parser
|
|
300
|
-
// ---------------------------------------------------------------------------
|
|
301
|
-
/**
|
|
302
|
-
* Parse body profile (JSON body with peac_receipt or peac_receipts)
|
|
303
|
-
*
|
|
304
|
-
* Per TRANSPORT-PROFILES.md:
|
|
305
|
-
* - peac_receipt: single receipt (string)
|
|
306
|
-
* - peac_receipts: multiple receipts (array of strings)
|
|
307
|
-
*
|
|
308
|
-
* @param body - Parsed JSON body object
|
|
309
|
-
* @returns Parse result
|
|
310
|
-
*/
|
|
311
|
-
function parseBodyProfile(body) {
|
|
312
|
-
if (body === null || typeof body !== 'object') {
|
|
313
|
-
return {
|
|
314
|
-
ok: false,
|
|
315
|
-
reason: 'invalid_transport',
|
|
316
|
-
errorCode: 'E_VERIFY_INVALID_TRANSPORT',
|
|
317
|
-
message: 'Body must be a JSON object',
|
|
318
|
-
};
|
|
319
|
-
}
|
|
320
|
-
const obj = body;
|
|
321
|
-
// Check for peac_receipts (array, takes precedence)
|
|
322
|
-
if ('peac_receipts' in obj) {
|
|
323
|
-
if (!Array.isArray(obj.peac_receipts)) {
|
|
324
|
-
return {
|
|
325
|
-
ok: false,
|
|
326
|
-
reason: 'invalid_transport',
|
|
327
|
-
errorCode: 'E_VERIFY_INVALID_TRANSPORT',
|
|
328
|
-
message: 'peac_receipts must be an array',
|
|
329
|
-
};
|
|
330
|
-
}
|
|
331
|
-
const receipts = [];
|
|
332
|
-
for (let i = 0; i < obj.peac_receipts.length; i++) {
|
|
333
|
-
const receipt = obj.peac_receipts[i];
|
|
334
|
-
if (typeof receipt !== 'string') {
|
|
335
|
-
return {
|
|
336
|
-
ok: false,
|
|
337
|
-
reason: 'invalid_transport',
|
|
338
|
-
errorCode: 'E_VERIFY_INVALID_TRANSPORT',
|
|
339
|
-
message: `peac_receipts[${i}] must be a string`,
|
|
340
|
-
};
|
|
341
|
-
}
|
|
342
|
-
receipts.push(receipt);
|
|
343
|
-
}
|
|
344
|
-
if (receipts.length === 0) {
|
|
345
|
-
return {
|
|
346
|
-
ok: false,
|
|
347
|
-
reason: 'invalid_transport',
|
|
348
|
-
errorCode: 'E_VERIFY_INVALID_TRANSPORT',
|
|
349
|
-
message: 'peac_receipts array is empty',
|
|
350
|
-
};
|
|
351
|
-
}
|
|
352
|
-
return {
|
|
353
|
-
ok: true,
|
|
354
|
-
result: {
|
|
355
|
-
profile: 'body',
|
|
356
|
-
receipts,
|
|
357
|
-
},
|
|
358
|
-
};
|
|
359
|
-
}
|
|
360
|
-
// Check for peac_receipt (single)
|
|
361
|
-
if ('peac_receipt' in obj) {
|
|
362
|
-
if (typeof obj.peac_receipt !== 'string') {
|
|
363
|
-
return {
|
|
364
|
-
ok: false,
|
|
365
|
-
reason: 'invalid_transport',
|
|
366
|
-
errorCode: 'E_VERIFY_INVALID_TRANSPORT',
|
|
367
|
-
message: 'peac_receipt must be a string',
|
|
368
|
-
};
|
|
369
|
-
}
|
|
370
|
-
if (obj.peac_receipt.length === 0) {
|
|
371
|
-
return {
|
|
372
|
-
ok: false,
|
|
373
|
-
reason: 'invalid_transport',
|
|
374
|
-
errorCode: 'E_VERIFY_INVALID_TRANSPORT',
|
|
375
|
-
message: 'peac_receipt is empty',
|
|
376
|
-
};
|
|
377
|
-
}
|
|
378
|
-
return {
|
|
379
|
-
ok: true,
|
|
380
|
-
result: {
|
|
381
|
-
profile: 'body',
|
|
382
|
-
receipts: [obj.peac_receipt],
|
|
383
|
-
},
|
|
384
|
-
};
|
|
385
|
-
}
|
|
386
|
-
return {
|
|
387
|
-
ok: false,
|
|
388
|
-
reason: 'invalid_transport',
|
|
389
|
-
errorCode: 'E_VERIFY_INVALID_TRANSPORT',
|
|
390
|
-
message: 'Body must contain peac_receipt or peac_receipts',
|
|
391
|
-
};
|
|
392
|
-
}
|
|
393
|
-
// ---------------------------------------------------------------------------
|
|
394
|
-
// Auto-detect Parser
|
|
395
|
-
// ---------------------------------------------------------------------------
|
|
396
|
-
/**
|
|
397
|
-
* Auto-detect and parse transport profile from request context
|
|
398
|
-
*
|
|
399
|
-
* @param context - Request context with headers and optional body
|
|
400
|
-
* @returns Parse result
|
|
401
|
-
*/
|
|
402
|
-
function parseTransportProfile(context) {
|
|
403
|
-
const peacReceipt = context.headers['peac-receipt'] ?? context.headers['PEAC-Receipt'];
|
|
404
|
-
const peacPointer = context.headers['peac-receipt-pointer'] ?? context.headers['PEAC-Receipt-Pointer'];
|
|
405
|
-
// Header profile takes precedence
|
|
406
|
-
if (peacReceipt !== undefined) {
|
|
407
|
-
return parseHeaderProfile(peacReceipt);
|
|
408
|
-
}
|
|
409
|
-
// Pointer profile second
|
|
410
|
-
if (peacPointer !== undefined) {
|
|
411
|
-
return parsePointerProfile(peacPointer);
|
|
412
|
-
}
|
|
413
|
-
// Body profile last (if body provided)
|
|
414
|
-
if (context.body !== undefined) {
|
|
415
|
-
return parseBodyProfile(context.body);
|
|
416
|
-
}
|
|
417
|
-
return {
|
|
418
|
-
ok: false,
|
|
419
|
-
reason: 'invalid_transport',
|
|
420
|
-
errorCode: 'E_VERIFY_INVALID_TRANSPORT',
|
|
421
|
-
message: 'No transport profile detected (missing PEAC-Receipt, PEAC-Receipt-Pointer, or body receipt)',
|
|
422
|
-
};
|
|
423
|
-
}
|
|
424
|
-
//# sourceMappingURL=transport-profiles.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transport-profiles.js","sourceRoot":"","sources":["../src/transport-profiles.ts"],"names":[],"mappings":"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"}
|