edockit 0.3.0 → 0.4.0-dev.1

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 (68) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +81 -198
  3. package/TRUSTED-LIST.md +308 -0
  4. package/dist/certificate-3c9dcdac.js +549 -0
  5. package/dist/certificate-3c9dcdac.js.map +1 -0
  6. package/dist/certificate-c7123a37.js +581 -0
  7. package/dist/certificate-c7123a37.js.map +1 -0
  8. package/dist/core/canonicalization/XMLCanonicalizer.d.ts +9 -3
  9. package/dist/core/trustedlist/build.d.ts +41 -0
  10. package/dist/core/trustedlist/bundled-provider.d.ts +2 -0
  11. package/dist/core/trustedlist/contract.d.ts +19 -0
  12. package/dist/core/trustedlist/dom.d.ts +12 -0
  13. package/dist/core/trustedlist/extract.d.ts +6 -0
  14. package/dist/core/trustedlist/http.d.ts +8 -0
  15. package/dist/core/trustedlist/identity.d.ts +7 -0
  16. package/dist/core/trustedlist/index.d.ts +18 -0
  17. package/dist/core/trustedlist/loader.d.ts +5 -0
  18. package/dist/core/trustedlist/matcher.d.ts +11 -0
  19. package/dist/core/trustedlist/normalize.d.ts +14 -0
  20. package/dist/core/trustedlist/reference-provider.d.ts +12 -0
  21. package/dist/core/trustedlist/types.d.ts +114 -0
  22. package/dist/core/unzip.d.ts +0 -0
  23. package/dist/core/verification.d.ts +22 -0
  24. package/dist/data/trusted-list.d.ts +3 -0
  25. package/dist/identity-c9e5052e.js +410 -0
  26. package/dist/identity-c9e5052e.js.map +1 -0
  27. package/dist/identity-fca881b1.js +406 -0
  28. package/dist/identity-fca881b1.js.map +1 -0
  29. package/dist/index.cjs.js +540 -8838
  30. package/dist/index.cjs.js.map +1 -1
  31. package/dist/index.d.ts +4 -2
  32. package/dist/index.esm.js +498 -8795
  33. package/dist/index.esm.js.map +1 -1
  34. package/dist/index.umd.js +23 -17
  35. package/dist/index.umd.js.map +1 -1
  36. package/dist/loader-7a0f771f.js +222 -0
  37. package/dist/loader-7a0f771f.js.map +1 -0
  38. package/dist/loader-ad1a5051.js +217 -0
  39. package/dist/loader-ad1a5051.js.map +1 -0
  40. package/dist/normalize-50862581.js +456 -0
  41. package/dist/normalize-50862581.js.map +1 -0
  42. package/dist/normalize-9626be7c.js +479 -0
  43. package/dist/normalize-9626be7c.js.map +1 -0
  44. package/dist/reference-provider-3838ebfb.js +217 -0
  45. package/dist/reference-provider-3838ebfb.js.map +1 -0
  46. package/dist/reference-provider-9bbbaab8.js +211 -0
  47. package/dist/reference-provider-9bbbaab8.js.map +1 -0
  48. package/dist/trusted-list-build.cjs.js +580 -0
  49. package/dist/trusted-list-build.cjs.js.map +1 -0
  50. package/dist/trusted-list-build.d.ts +4 -0
  51. package/dist/trusted-list-build.esm.js +569 -0
  52. package/dist/trusted-list-build.esm.js.map +1 -0
  53. package/dist/trusted-list-bundled.cjs.js +30439 -0
  54. package/dist/trusted-list-bundled.cjs.js.map +1 -0
  55. package/dist/trusted-list-bundled.d.ts +1 -0
  56. package/dist/trusted-list-bundled.esm.js +30435 -0
  57. package/dist/trusted-list-bundled.esm.js.map +1 -0
  58. package/dist/trusted-list-http.cjs.js +85 -0
  59. package/dist/trusted-list-http.cjs.js.map +1 -0
  60. package/dist/trusted-list-http.d.ts +1 -0
  61. package/dist/trusted-list-http.esm.js +81 -0
  62. package/dist/trusted-list-http.esm.js.map +1 -0
  63. package/dist/trusted-list.cjs.js +38 -0
  64. package/dist/trusted-list.cjs.js.map +1 -0
  65. package/dist/trusted-list.d.ts +9 -0
  66. package/dist/trusted-list.esm.js +13 -0
  67. package/dist/trusted-list.esm.js.map +1 -0
  68. package/package.json +32 -2
@@ -0,0 +1,479 @@
1
+ /*!
2
+ * MIT License
3
+ * Copyright (c) 2025 Edgars Jēkabsons, ZenomyTech SIA
4
+ */
5
+ 'use strict';
6
+
7
+ // src/core/revocation/fetch.ts
8
+ /**
9
+ * Fetch binary data from a URL with timeout support
10
+ * @param url URL to fetch
11
+ * @param options Fetch options
12
+ * @returns FetchResult with binary data or error
13
+ */
14
+ async function fetchBinary(url, options = {}) {
15
+ const { timeout = 10000, method = "GET", body, contentType, accept, proxyUrl } = options;
16
+ // Apply proxy URL if provided
17
+ const fetchUrl = proxyUrl ? `${proxyUrl}${encodeURIComponent(url)}` : url;
18
+ const controller = new AbortController();
19
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
20
+ try {
21
+ const headers = {};
22
+ if (contentType) {
23
+ headers["Content-Type"] = contentType;
24
+ }
25
+ if (accept) {
26
+ headers["Accept"] = accept;
27
+ }
28
+ const response = await fetch(fetchUrl, {
29
+ method,
30
+ headers,
31
+ body: body ? new Uint8Array(body) : undefined,
32
+ signal: controller.signal,
33
+ });
34
+ clearTimeout(timeoutId);
35
+ if (!response.ok) {
36
+ return {
37
+ ok: false,
38
+ status: response.status,
39
+ error: `HTTP ${response.status}: ${response.statusText}`,
40
+ };
41
+ }
42
+ const data = await response.arrayBuffer();
43
+ return {
44
+ ok: true,
45
+ status: response.status,
46
+ data,
47
+ };
48
+ }
49
+ catch (error) {
50
+ clearTimeout(timeoutId);
51
+ if (error instanceof Error) {
52
+ if (error.name === "AbortError") {
53
+ return {
54
+ ok: false,
55
+ status: 0,
56
+ error: `Request timeout after ${timeout}ms`,
57
+ };
58
+ }
59
+ return {
60
+ ok: false,
61
+ status: 0,
62
+ error: error.message,
63
+ };
64
+ }
65
+ return {
66
+ ok: false,
67
+ status: 0,
68
+ error: String(error),
69
+ };
70
+ }
71
+ }
72
+ /**
73
+ * Fetch OCSP response
74
+ * @param url OCSP responder URL
75
+ * @param request DER-encoded OCSP request
76
+ * @param timeout Timeout in milliseconds
77
+ * @param proxyUrl Optional CORS proxy URL
78
+ * @returns FetchResult with OCSP response data
79
+ */
80
+ async function fetchOCSP(url, request, timeout = 5000, proxyUrl) {
81
+ return fetchBinary(url, {
82
+ method: "POST",
83
+ body: request,
84
+ contentType: "application/ocsp-request",
85
+ accept: "application/ocsp-response",
86
+ timeout,
87
+ proxyUrl,
88
+ });
89
+ }
90
+ /**
91
+ * Fetch CRL from distribution point
92
+ * @param url CRL distribution point URL
93
+ * @param timeout Timeout in milliseconds
94
+ * @param proxyUrl Optional CORS proxy URL
95
+ * @returns FetchResult with CRL data
96
+ */
97
+ async function fetchCRL(url, timeout = 10000, proxyUrl) {
98
+ return fetchBinary(url, {
99
+ method: "GET",
100
+ accept: "application/pkix-crl",
101
+ timeout,
102
+ proxyUrl,
103
+ });
104
+ }
105
+ /**
106
+ * Fetch issuer certificate from AIA extension
107
+ * @param url CA Issuers URL
108
+ * @param timeout Timeout in milliseconds
109
+ * @param proxyUrl Optional CORS proxy URL
110
+ * @returns FetchResult with certificate data
111
+ */
112
+ async function fetchIssuerCertificate(url, timeout = 5000, proxyUrl) {
113
+ return fetchBinary(url, {
114
+ method: "GET",
115
+ accept: "application/pkix-cert",
116
+ timeout,
117
+ proxyUrl,
118
+ });
119
+ }
120
+
121
+ /**
122
+ * Cross-platform encoding utilities for ArrayBuffer/Base64/Hex conversions
123
+ * Works in both browser and Node.js environments
124
+ */
125
+ /**
126
+ * Convert ArrayBuffer to base64 string
127
+ */
128
+ function arrayBufferToBase64(buffer) {
129
+ const bytes = new Uint8Array(buffer);
130
+ if (typeof btoa === "function") {
131
+ // Browser
132
+ let binary = "";
133
+ for (let i = 0; i < bytes.length; i++) {
134
+ binary += String.fromCharCode(bytes[i]);
135
+ }
136
+ return btoa(binary);
137
+ }
138
+ // Node.js
139
+ return Buffer.from(bytes).toString("base64");
140
+ }
141
+ /**
142
+ * Convert base64 string to ArrayBuffer
143
+ * Handles base64 strings with whitespace (common in XML)
144
+ */
145
+ function base64ToArrayBuffer(base64) {
146
+ // Strip whitespace (newlines, spaces, tabs) that may be present in XML
147
+ const cleanBase64 = base64.replace(/\s/g, "");
148
+ if (typeof atob === "function") {
149
+ // Browser
150
+ const binary = atob(cleanBase64);
151
+ const bytes = new Uint8Array(binary.length);
152
+ for (let i = 0; i < binary.length; i++) {
153
+ bytes[i] = binary.charCodeAt(i);
154
+ }
155
+ return bytes.buffer;
156
+ }
157
+ // Node.js
158
+ const buffer = Buffer.from(cleanBase64, "base64");
159
+ return buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
160
+ }
161
+ /**
162
+ * Convert base64 string to Uint8Array
163
+ */
164
+ function base64ToUint8Array(base64) {
165
+ return new Uint8Array(base64ToArrayBuffer(base64));
166
+ }
167
+ /**
168
+ * Convert ArrayBuffer to hex string
169
+ */
170
+ function arrayBufferToHex(buffer) {
171
+ return Array.from(new Uint8Array(buffer))
172
+ .map((b) => b.toString(16).padStart(2, "0"))
173
+ .join("");
174
+ }
175
+ /**
176
+ * Convert hex string to ArrayBuffer
177
+ */
178
+ function hexToArrayBuffer(hex) {
179
+ const bytes = new Uint8Array(hex.length / 2);
180
+ for (let i = 0; i < hex.length; i += 2) {
181
+ bytes[i / 2] = parseInt(hex.substring(i, i + 2), 16);
182
+ }
183
+ return bytes.buffer;
184
+ }
185
+ /**
186
+ * Format DER bytes as PEM certificate
187
+ */
188
+ function arrayBufferToPEM(buffer, type = "CERTIFICATE") {
189
+ const base64 = arrayBufferToBase64(buffer);
190
+ const lines = base64.match(/.{1,64}/g) || [];
191
+ return `-----BEGIN ${type}-----\n${lines.join("\n")}\n-----END ${type}-----`;
192
+ }
193
+
194
+ const RELEVANT_SERVICE_TYPES = [
195
+ "CA/QC",
196
+ "CA/PKC",
197
+ "NationalRootCA-QC",
198
+ "TSA/QTST",
199
+ "TSA/TSS-QC",
200
+ "MR-CA/QC",
201
+ "MR-TSA/QTST",
202
+ ];
203
+ const SIGNATURE_ISSUER_PURPOSE_MASK = 1;
204
+ const TIMESTAMP_TSA_PURPOSE_MASK = 2;
205
+ const KNOWN_STATUS_SUFFIXES = [
206
+ "granted",
207
+ "recognisedatnationallevel",
208
+ "accredited",
209
+ "withdrawn",
210
+ "deprecatedatnationallevel",
211
+ ];
212
+ const DN_ATTRIBUTE_ALIASES = {
213
+ c: "C",
214
+ cn: "CN",
215
+ dnq: "DNQ",
216
+ emailaddress: "E",
217
+ e: "E",
218
+ g: "GN",
219
+ givenname: "GN",
220
+ gn: "GN",
221
+ l: "L",
222
+ o: "O",
223
+ organizationidentifier: "ORGANIZATIONIDENTIFIER",
224
+ "2.5.4.97": "ORGANIZATIONIDENTIFIER",
225
+ "oid.2.5.4.97": "ORGANIZATIONIDENTIFIER",
226
+ ou: "OU",
227
+ serialnumber: "SERIALNUMBER",
228
+ sn: "SN",
229
+ st: "ST",
230
+ surname: "SN",
231
+ street: "STREET",
232
+ "2.5.4.5": "SERIALNUMBER",
233
+ };
234
+ function splitOnUnescaped(input, separator) {
235
+ const parts = [];
236
+ let current = "";
237
+ let escaped = false;
238
+ for (const char of input) {
239
+ if (escaped) {
240
+ current += char;
241
+ escaped = false;
242
+ continue;
243
+ }
244
+ if (char === "\\") {
245
+ current += char;
246
+ escaped = true;
247
+ continue;
248
+ }
249
+ if (char === separator) {
250
+ parts.push(current);
251
+ current = "";
252
+ continue;
253
+ }
254
+ current += char;
255
+ }
256
+ parts.push(current);
257
+ return parts;
258
+ }
259
+ function normalizeDnAttributeKey(key) {
260
+ const trimmedKey = key.trim();
261
+ const alias = DN_ATTRIBUTE_ALIASES[trimmedKey.toLowerCase()];
262
+ return alias || trimmedKey.toUpperCase();
263
+ }
264
+ function normalizeDnAttributeValue(key, value) {
265
+ const normalized = value.trim().replace(/\s+/g, " ");
266
+ if (key === "C") {
267
+ return normalized.toUpperCase();
268
+ }
269
+ return normalized;
270
+ }
271
+ function normalizeHex(input) {
272
+ if (!input) {
273
+ return null;
274
+ }
275
+ const normalized = input.replace(/[^a-fA-F0-9]/g, "").toLowerCase();
276
+ return normalized || null;
277
+ }
278
+ function hexToBase64Url(input) {
279
+ const normalized = normalizeHex(input);
280
+ if (!normalized) {
281
+ return null;
282
+ }
283
+ const bytes = new Uint8Array(normalized.length / 2);
284
+ for (let index = 0; index < normalized.length; index += 2) {
285
+ bytes[index / 2] = Number.parseInt(normalized.slice(index, index + 2), 16);
286
+ }
287
+ return bytesToBase64Url(bytes);
288
+ }
289
+ function base64UrlToHex(input) {
290
+ if (!input) {
291
+ return null;
292
+ }
293
+ const bytes = decodeBase64Url(input.trim());
294
+ return bytes ? bytesToHex(bytes) : null;
295
+ }
296
+ function bytesToHex(bytes) {
297
+ return Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
298
+ }
299
+ function bytesToBase64Url(bytes) {
300
+ if (typeof Buffer !== "undefined") {
301
+ return Buffer.from(bytes).toString("base64url");
302
+ }
303
+ if (typeof btoa === "function") {
304
+ const base64 = btoa(String.fromCharCode(...bytes));
305
+ return base64.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/g, "");
306
+ }
307
+ throw new Error("No base64url encoder available in this environment");
308
+ }
309
+ function decodeBase64(input) {
310
+ const normalizedInput = input.replace(/\s+/g, "");
311
+ try {
312
+ if (typeof Buffer !== "undefined") {
313
+ return Uint8Array.from(Buffer.from(normalizedInput, "base64"));
314
+ }
315
+ if (typeof atob === "function") {
316
+ const decoded = atob(normalizedInput);
317
+ return Uint8Array.from(decoded, (character) => character.charCodeAt(0));
318
+ }
319
+ }
320
+ catch {
321
+ return null;
322
+ }
323
+ return null;
324
+ }
325
+ function decodeBase64Url(input) {
326
+ const normalizedInput = input.replace(/-/g, "+").replace(/_/g, "/");
327
+ const paddingLength = (4 - (normalizedInput.length % 4 || 4)) % 4;
328
+ return decodeBase64(normalizedInput + "=".repeat(paddingLength));
329
+ }
330
+ function normalizeKeyIdentifier(input) {
331
+ if (!input) {
332
+ return null;
333
+ }
334
+ if (typeof input !== "string") {
335
+ if (ArrayBuffer.isView(input)) {
336
+ return bytesToHex(new Uint8Array(input.buffer, input.byteOffset, input.byteLength));
337
+ }
338
+ return bytesToHex(new Uint8Array(input));
339
+ }
340
+ const trimmedInput = input.trim();
341
+ if (!trimmedInput) {
342
+ return null;
343
+ }
344
+ const hexCandidate = normalizeHex(trimmedInput);
345
+ const hexLikeInput = trimmedInput.replace(/[\s:-]+/g, "");
346
+ // Prefer explicit hex-like inputs before attempting base64 decoding. Short values such as
347
+ // "AABB" are syntactically valid in both encodings; treating even-length hex-safe input as
348
+ // hex first preserves common SKI/AKI representations and makes the priority order explicit.
349
+ if (hexCandidate && /^[a-fA-F0-9]+$/.test(hexLikeInput) && hexLikeInput.length % 2 === 0) {
350
+ return hexCandidate;
351
+ }
352
+ if (/^[A-Za-z0-9+/=\s]+$/.test(trimmedInput) &&
353
+ trimmedInput.replace(/\s+/g, "").length % 4 === 0) {
354
+ const decodedBytes = decodeBase64(trimmedInput);
355
+ if (decodedBytes && decodedBytes.length > 0) {
356
+ return bytesToHex(decodedBytes);
357
+ }
358
+ }
359
+ return hexCandidate;
360
+ }
361
+ function normalizeDistinguishedName(dn) {
362
+ if (!dn) {
363
+ return "";
364
+ }
365
+ const normalizedParts = splitOnUnescaped(dn, ",")
366
+ .map((part) => part.trim())
367
+ .filter(Boolean)
368
+ .map((part) => {
369
+ const [rawKey, ...rawValueParts] = splitOnUnescaped(part, "=");
370
+ if (!rawKey || rawValueParts.length === 0) {
371
+ return part.replace(/\s+/g, " ");
372
+ }
373
+ const key = normalizeDnAttributeKey(rawKey);
374
+ const value = normalizeDnAttributeValue(key, rawValueParts.join("="));
375
+ return `${key}=${value}`;
376
+ });
377
+ return normalizedParts.sort((left, right) => left.localeCompare(right)).join(",");
378
+ }
379
+ function isTrustedServiceStatus(status) {
380
+ const normalizedStatus = status.trim().toLowerCase();
381
+ return (normalizedStatus === "granted" ||
382
+ normalizedStatus === "recognisedatnationallevel" ||
383
+ normalizedStatus === "accredited");
384
+ }
385
+ function getRelevantServiceType(uri) {
386
+ if (!uri) {
387
+ return null;
388
+ }
389
+ const normalizedUri = uri.trim().toLowerCase();
390
+ const match = RELEVANT_SERVICE_TYPES.find((serviceType) => normalizedUri.endsWith(serviceType.toLowerCase()));
391
+ return match || null;
392
+ }
393
+ function getTrustListPurposeMaskForQueryPurpose(purpose) {
394
+ return purpose === "signature_issuer"
395
+ ? SIGNATURE_ISSUER_PURPOSE_MASK
396
+ : TIMESTAMP_TSA_PURPOSE_MASK;
397
+ }
398
+ function trustListPurposeMatchesMask(purpose, purposeMask) {
399
+ return (getTrustListPurposeMaskForQueryPurpose(purpose) & purposeMask) !== 0;
400
+ }
401
+ function getTrustListPurposeMaskForServiceType(serviceType) {
402
+ if (serviceType === "CA/QC" || serviceType === "CA/PKC" || serviceType === "NationalRootCA-QC") {
403
+ return SIGNATURE_ISSUER_PURPOSE_MASK;
404
+ }
405
+ if (serviceType === "TSA/QTST" || serviceType === "TSA/TSS-QC") {
406
+ return TIMESTAMP_TSA_PURPOSE_MASK;
407
+ }
408
+ if (serviceType === "MR-CA/QC") {
409
+ return SIGNATURE_ISSUER_PURPOSE_MASK;
410
+ }
411
+ if (serviceType === "MR-TSA/QTST") {
412
+ return TIMESTAMP_TSA_PURPOSE_MASK;
413
+ }
414
+ return null;
415
+ }
416
+ function getServiceStatusSuffix(uri) {
417
+ if (!uri) {
418
+ return null;
419
+ }
420
+ const normalizedUri = uri.trim().toLowerCase();
421
+ const knownMatch = KNOWN_STATUS_SUFFIXES.find((status) => normalizedUri.endsWith(status));
422
+ if (knownMatch) {
423
+ return knownMatch;
424
+ }
425
+ const marker = "/svcstatus/";
426
+ const markerIndex = normalizedUri.lastIndexOf(marker);
427
+ if (markerIndex >= 0) {
428
+ const suffix = normalizedUri.slice(markerIndex + marker.length).replace(/^\/+|\/+$/g, "");
429
+ return suffix || null;
430
+ }
431
+ const hashIndex = normalizedUri.lastIndexOf("#");
432
+ if (hashIndex >= 0) {
433
+ const suffix = normalizedUri.slice(hashIndex + 1).replace(/^\/+|\/+$/g, "");
434
+ return suffix || null;
435
+ }
436
+ const segments = normalizedUri.split("/").filter(Boolean);
437
+ return segments.length > 0 ? segments[segments.length - 1] : null;
438
+ }
439
+ function isLikelyXmlTslUrl(url) {
440
+ try {
441
+ const parsed = new URL(url);
442
+ const pathname = parsed.pathname.toLowerCase();
443
+ if (pathname.endsWith(".pdf") || pathname.endsWith(".html") || pathname.endsWith(".htm")) {
444
+ return false;
445
+ }
446
+ return true;
447
+ }
448
+ catch {
449
+ const normalizedUrl = url.trim().toLowerCase();
450
+ return (normalizedUrl.length > 0 &&
451
+ !normalizedUrl.endsWith(".pdf") &&
452
+ !normalizedUrl.endsWith(".html") &&
453
+ !normalizedUrl.endsWith(".htm"));
454
+ }
455
+ }
456
+
457
+ exports.arrayBufferToBase64 = arrayBufferToBase64;
458
+ exports.arrayBufferToHex = arrayBufferToHex;
459
+ exports.arrayBufferToPEM = arrayBufferToPEM;
460
+ exports.base64ToArrayBuffer = base64ToArrayBuffer;
461
+ exports.base64ToUint8Array = base64ToUint8Array;
462
+ exports.base64UrlToHex = base64UrlToHex;
463
+ exports.fetchBinary = fetchBinary;
464
+ exports.fetchCRL = fetchCRL;
465
+ exports.fetchIssuerCertificate = fetchIssuerCertificate;
466
+ exports.fetchOCSP = fetchOCSP;
467
+ exports.getRelevantServiceType = getRelevantServiceType;
468
+ exports.getServiceStatusSuffix = getServiceStatusSuffix;
469
+ exports.getTrustListPurposeMaskForQueryPurpose = getTrustListPurposeMaskForQueryPurpose;
470
+ exports.getTrustListPurposeMaskForServiceType = getTrustListPurposeMaskForServiceType;
471
+ exports.hexToArrayBuffer = hexToArrayBuffer;
472
+ exports.hexToBase64Url = hexToBase64Url;
473
+ exports.isLikelyXmlTslUrl = isLikelyXmlTslUrl;
474
+ exports.isTrustedServiceStatus = isTrustedServiceStatus;
475
+ exports.normalizeDistinguishedName = normalizeDistinguishedName;
476
+ exports.normalizeHex = normalizeHex;
477
+ exports.normalizeKeyIdentifier = normalizeKeyIdentifier;
478
+ exports.trustListPurposeMatchesMask = trustListPurposeMatchesMask;
479
+ //# sourceMappingURL=normalize-9626be7c.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-9626be7c.js","sources":["../src/core/revocation/fetch.ts","../src/utils/encoding.ts","../src/core/trustedlist/normalize.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":"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"}