@reportwright/viewer 0.12.0 → 0.13.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.
Files changed (89) hide show
  1. package/CHANGELOG.md +133 -1
  2. package/README.md +43 -6
  3. package/THIRD-PARTY-NOTICES.md +52 -0
  4. package/dist/{chunk-SBD55ZES.js → chunk-BF7GCWZY.js} +103 -41
  5. package/dist/chunk-BF7GCWZY.js.map +6 -0
  6. package/dist/chunk-BR5K6SBL.js +324 -0
  7. package/dist/chunk-BR5K6SBL.js.map +6 -0
  8. package/dist/chunk-CNDUJ7IV.js +758 -0
  9. package/dist/chunk-CNDUJ7IV.js.map +6 -0
  10. package/dist/{chunk-RYHJUQSV.js → chunk-DXHLIJEY.js} +2 -2
  11. package/dist/{chunk-M6GENFAH.js → chunk-EK5CJY22.js} +4021 -4631
  12. package/dist/chunk-EK5CJY22.js.map +6 -0
  13. package/dist/{chunk-KJTRZJHN.js → chunk-F5EPQTPF.js} +4 -3
  14. package/dist/chunk-F5EPQTPF.js.map +6 -0
  15. package/dist/{chunk-SR2TQ2ZK.js → chunk-F6RMRXIN.js} +2 -2
  16. package/dist/chunk-F6RMRXIN.js.map +6 -0
  17. package/dist/chunk-FEM2QVOO.js +18 -0
  18. package/dist/{chunk-ODREGGKA.js → chunk-IFYCJZNS.js} +9 -6
  19. package/dist/chunk-IFYCJZNS.js.map +6 -0
  20. package/dist/{chunk-EOVGKHAS.js → chunk-L6YEIVVD.js} +86 -57
  21. package/dist/chunk-L6YEIVVD.js.map +6 -0
  22. package/dist/{chunk-APRPSQOD.js → chunk-PQNM6ET7.js} +28 -9
  23. package/dist/chunk-PQNM6ET7.js.map +6 -0
  24. package/dist/chunk-QFLVVM3H.js +856 -0
  25. package/dist/chunk-QFLVVM3H.js.map +6 -0
  26. package/dist/{chunk-5N6OFCHJ.js → chunk-TZXEEVKE.js} +1319 -76
  27. package/dist/chunk-TZXEEVKE.js.map +6 -0
  28. package/dist/{chunk-FARG6X2U.js → chunk-UHHURTSV.js} +15 -9
  29. package/dist/chunk-UHHURTSV.js.map +6 -0
  30. package/dist/chunk-UJL7C2AS.js +546 -0
  31. package/dist/chunk-UJL7C2AS.js.map +6 -0
  32. package/dist/chunk-YIX3OJXU.js +34 -0
  33. package/dist/designer.d.ts +19 -4
  34. package/dist/designer.js +616 -405
  35. package/dist/designer.js.map +3 -3
  36. package/dist/{peer/chunk-GBITRNHE.js → engine.worker.js} +11006 -9030
  37. package/dist/engine.worker.js.map +6 -0
  38. package/dist/peer/{chunk-NPYKZINU.js → chunk-2CD5COHN.js} +66 -37
  39. package/dist/peer/chunk-2CD5COHN.js.map +6 -0
  40. package/dist/peer/{chunk-IPU2YRL2.js → chunk-3CBV5SAI.js} +28 -9
  41. package/dist/peer/chunk-3CBV5SAI.js.map +6 -0
  42. package/dist/peer/{chunk-MCJPN2KL.js → chunk-45GVDKP5.js} +15 -9
  43. package/dist/peer/chunk-45GVDKP5.js.map +6 -0
  44. package/dist/peer/{chunk-76ZABVTI.js → chunk-LWXQX3NJ.js} +4 -3
  45. package/dist/peer/chunk-MKY3SDXU.js +758 -0
  46. package/dist/peer/chunk-MKY3SDXU.js.map +6 -0
  47. package/dist/peer/chunk-S6LSPHSU.js +17 -0
  48. package/dist/peer/chunk-S6LSPHSU.js.map +6 -0
  49. package/dist/peer/{chunk-M4AGFUWE.js → chunk-V42KN7HD.js} +2 -2
  50. package/dist/peer/{chunk-KBT6ZGGO.js → chunk-VZHHNQYB.js} +1319 -76
  51. package/dist/peer/chunk-VZHHNQYB.js.map +6 -0
  52. package/dist/peer/{chunk-Y5CAHLXS.js → chunk-YITWGAR4.js} +9 -6
  53. package/dist/peer/chunk-YITWGAR4.js.map +6 -0
  54. package/dist/peer/chunk-Z5II55QT.js +33 -0
  55. package/dist/peer/chunk-Z5II55QT.js.map +6 -0
  56. package/dist/peer/designer.js +473 -262
  57. package/dist/peer/designer.js.map +3 -3
  58. package/dist/peer/engine.worker.js +16782 -0
  59. package/dist/peer/engine.worker.js.map +6 -0
  60. package/dist/peer/viewer.js +17 -7
  61. package/dist/peer/viewer.js.map +1 -1
  62. package/dist/viewer.d.ts +11 -2
  63. package/dist/viewer.js +17 -7
  64. package/dist/viewer.js.map +1 -1
  65. package/package.json +4 -2
  66. package/dist/chunk-3D43XGIN.js +0 -1167
  67. package/dist/chunk-3D43XGIN.js.map +0 -6
  68. package/dist/chunk-5N6OFCHJ.js.map +0 -6
  69. package/dist/chunk-AH47FS6Y.js +0 -13
  70. package/dist/chunk-APRPSQOD.js.map +0 -6
  71. package/dist/chunk-EOVGKHAS.js.map +0 -6
  72. package/dist/chunk-FARG6X2U.js.map +0 -6
  73. package/dist/chunk-M6GENFAH.js.map +0 -6
  74. package/dist/chunk-ODREGGKA.js.map +0 -6
  75. package/dist/chunk-SBD55ZES.js.map +0 -6
  76. package/dist/chunk-SR2TQ2ZK.js.map +0 -6
  77. package/dist/peer/chunk-76ZABVTI.js.map +0 -6
  78. package/dist/peer/chunk-GBITRNHE.js.map +0 -6
  79. package/dist/peer/chunk-IMQRHDR4.js +0 -12
  80. package/dist/peer/chunk-IPU2YRL2.js.map +0 -6
  81. package/dist/peer/chunk-KBT6ZGGO.js.map +0 -6
  82. package/dist/peer/chunk-MCJPN2KL.js.map +0 -6
  83. package/dist/peer/chunk-NPYKZINU.js.map +0 -6
  84. package/dist/peer/chunk-Y5CAHLXS.js.map +0 -6
  85. /package/dist/{chunk-RYHJUQSV.js.map → chunk-DXHLIJEY.js.map} +0 -0
  86. /package/dist/{chunk-AH47FS6Y.js.map → chunk-FEM2QVOO.js.map} +0 -0
  87. /package/dist/{peer/chunk-IMQRHDR4.js.map → chunk-YIX3OJXU.js.map} +0 -0
  88. /package/dist/{chunk-KJTRZJHN.js.map → peer/chunk-LWXQX3NJ.js.map} +0 -0
  89. /package/dist/peer/{chunk-M4AGFUWE.js.map → chunk-V42KN7HD.js.map} +0 -0
@@ -0,0 +1,324 @@
1
+ // src/engine/units.js
2
+ var PAGE_SIZES = {
3
+ A4: [595.28, 841.89],
4
+ A5: [419.53, 595.28],
5
+ A3: [841.89, 1190.55],
6
+ Letter: [612, 792],
7
+ Legal: [612, 1008]
8
+ };
9
+ var UNITS = { pt: 1, in: 72, cm: 72 / 2.54, mm: 72 / 25.4, px: 0.75 };
10
+ var PAGELESS_MAX = 14400;
11
+ function toPt(v, unit) {
12
+ return v * UNITS[unit];
13
+ }
14
+ function fromPt(pt, unit) {
15
+ return pt / UNITS[unit];
16
+ }
17
+ function normalizePageSize(size) {
18
+ if (typeof size !== "string") return void 0;
19
+ const t = size.trim().toLowerCase();
20
+ if (t === "pageless") return "Pageless";
21
+ return Object.keys(PAGE_SIZES).find((k) => k.toLowerCase() === t);
22
+ }
23
+ function resolvePage(page = {}) {
24
+ const size = normalizePageSize(page.size);
25
+ if (size === "Pageless") {
26
+ const w2 = Number(page.width) || 960;
27
+ const m2 = normBox(page.margins ?? 24);
28
+ return { width: w2, height: PAGELESS_MAX, margins: { top: m2[0], right: m2[1], bottom: m2[2], left: m2[3] }, bodyWidth: w2 - m2[1] - m2[3], pageless: true, minHeight: Number(page.minHeight) || 0 };
29
+ }
30
+ let [w, h] = size ? PAGE_SIZES[size] : [page.width || PAGE_SIZES.A4[0], page.height || PAGE_SIZES.A4[1]];
31
+ if (page.orientation === "landscape" && h > w) [w, h] = [h, w];
32
+ const m = normBox(page.margins ?? 36);
33
+ return { width: w, height: h, margins: { top: m[0], right: m[1], bottom: m[2], left: m[3] }, bodyWidth: w - m[1] - m[3] };
34
+ }
35
+ function normBox(v) {
36
+ if (v == null) return [0, 0, 0, 0];
37
+ if (typeof v === "number") return [v, v, v, v];
38
+ if (typeof v === "string") v = v.trim().split(/[\s,]+/).map(Number);
39
+ if (!Array.isArray(v)) return [0, 0, 0, 0];
40
+ const a = v.map((x) => Number(x) || 0);
41
+ if (a.length === 1) return [a[0], a[0], a[0], a[0]];
42
+ if (a.length === 2) return [a[0], a[1], a[0], a[1]];
43
+ if (a.length === 3) return [a[0], a[1], a[2], a[1]];
44
+ return [a[0], a[1], a[2], a[3]];
45
+ }
46
+
47
+ // src/engine/notices.js
48
+ var NO_CJK_FONTS = "Text in Japanese/Chinese/Korean needs the optional CJK fonts: npm i @reportwright/fonts-cjk, then npx reportwright-fonts-cjk (npm); in the app, npm run fonts:cjk";
49
+
50
+ // src/engine/data/guard.js
51
+ var FETCH_DEFAULTS = { timeoutMs: 3e4, maxBytes: 64 * 1048576, hops: 5 };
52
+ var V4 = [
53
+ ["0.0.0.0", 8],
54
+ ["10.0.0.0", 8],
55
+ ["100.64.0.0", 10],
56
+ ["127.0.0.0", 8],
57
+ ["169.254.0.0", 16],
58
+ ["172.16.0.0", 12],
59
+ ["192.0.0.0", 24],
60
+ ["192.0.2.0", 24],
61
+ ["192.168.0.0", 16],
62
+ ["198.18.0.0", 15],
63
+ ["198.51.100.0", 24],
64
+ ["203.0.113.0", 24],
65
+ ["224.0.0.0", 3]
66
+ ].map(([a, p]) => [v4num(String(a)), Number(p)]);
67
+ function v4num(ip) {
68
+ return ip.split(".").reduce((n, x) => n * 256 + Number(x), 0);
69
+ }
70
+ function privateV4(ip) {
71
+ const n = v4num(ip);
72
+ return V4.some(([a, p]) => Math.floor(n / 2 ** (32 - p)) === Math.floor(a / 2 ** (32 - p)));
73
+ }
74
+ function groups6(ip) {
75
+ const [h, t = ""] = ip.split("::");
76
+ const a = h ? h.split(":") : [], b = t ? t.split(":") : [];
77
+ if (b.length && b[b.length - 1].includes(".")) {
78
+ const q = b.pop().split(".").map(Number);
79
+ b.push((q[0] << 8 | q[1]).toString(16), (q[2] << 8 | q[3]).toString(16));
80
+ }
81
+ return [...a, ...Array(Math.max(0, 8 - a.length - b.length)).fill("0"), ...b].map((x) => parseInt(x, 16) || 0);
82
+ }
83
+ function privateV6(ip) {
84
+ const g = groups6(ip);
85
+ const v4 = () => `${g[6] >> 8}.${g[6] & 255}.${g[7] >> 8}.${g[7] & 255}`;
86
+ if (g.slice(0, 6).every((x) => x === 0)) return true;
87
+ if (g.slice(0, 5).every((x) => x === 0) && g[5] === 65535) return privateV4(v4());
88
+ if (g[0] === 100 && g[1] === 65435) return g[2] === 1 || privateV4(v4());
89
+ if (g[0] === 8194 || g[0] === 8193 && g[1] === 0) return true;
90
+ if ((g[0] & 65024) === 64512 || (g[0] & 65472) === 65152 || (g[0] & 65472) === 65216 || (g[0] & 65280) === 65280) return true;
91
+ return false;
92
+ }
93
+ function privateHost(host) {
94
+ const h = host.replace(/^\[|\]$/g, "").toLowerCase();
95
+ if (h.includes(":")) return privateV6(h);
96
+ if (/^\d+\.\d+\.\d+\.\d+$/.test(h)) return privateV4(h);
97
+ return h === "localhost" || h.endsWith(".localhost") || h.endsWith(".local") || h.endsWith(".internal");
98
+ }
99
+ var refuse = (host) => Object.assign(new Error(`"${host}" is a private or local address; a data source may not reach it (pass allowHosts: ["${host}"] to render to allow it)`), { status: 403, code: "EPRIVATE" });
100
+ function nodeMod(name) {
101
+ const p = (
102
+ /** @type {any} */
103
+ globalThis.process
104
+ );
105
+ if (!p?.versions?.node) return null;
106
+ if (!p.getBuiltinModule) throw Object.assign(new Error("The engine's fetch guard needs Node 20.16 or later (process.getBuiltinModule); or pass your own fetch to render"), { status: 500 });
107
+ return p.getBuiltinModule(name);
108
+ }
109
+ var inNode = () => !!/** @type {any} */
110
+ globalThis.process?.versions?.node;
111
+ var addrHost = (a) => a.family === 6 || String(a.address).includes(":") ? `[${a.address}]` : String(a.address);
112
+ function checkUrl(input, allow) {
113
+ let u;
114
+ try {
115
+ u = new URL(input);
116
+ } catch {
117
+ throw Object.assign(new Error(`Not a URL: ${String(input).slice(0, 200)}`), { status: 400 });
118
+ }
119
+ if (u.protocol !== "http:" && u.protocol !== "https:") throw Object.assign(new Error(`Only http and https URLs can be fetched, not ${u.protocol}`), { status: 400 });
120
+ if (u.username || u.password) throw Object.assign(new Error("A user name or password in a data URL is not allowed"), { status: 400 });
121
+ const host = u.hostname.replace(/^\[|\]$/g, "").toLowerCase();
122
+ if (!host) throw Object.assign(new Error("A data URL needs a host"), { status: 400 });
123
+ if (allow.includes(host)) return u;
124
+ let bad = true;
125
+ try {
126
+ bad = privateHost(u.hostname);
127
+ } catch {
128
+ }
129
+ if (bad) throw refuse(host);
130
+ return u;
131
+ }
132
+ function nodeRequest(url, init, trusted) {
133
+ const http = nodeMod("node:http"), https = nodeMod("node:https"), dns = nodeMod("node:dns"), stream = nodeMod("node:stream");
134
+ const lookup = (name, o, cb) => dns.lookup(name, { ...o, all: true }, (err, list) => {
135
+ if (err || !Array.isArray(list) || !list.length) return cb(err || refuse(name));
136
+ let bad = true;
137
+ try {
138
+ bad = !trusted && list.some((a) => privateHost(addrHost(a)));
139
+ } catch {
140
+ }
141
+ if (bad) return cb(refuse(name));
142
+ return o.all ? cb(null, list) : cb(null, list[0].address, list[0].family);
143
+ });
144
+ const headers = Object.fromEntries(new Headers(init.headers || {}));
145
+ headers["accept-encoding"] = "identity";
146
+ return new Promise((resolve, reject) => {
147
+ const req = (url.protocol === "https:" ? https : http).request(url, { method: init.method || "GET", headers, lookup, signal: init.signal }, (res) => {
148
+ const pairs = [];
149
+ for (let i = 0; i < res.rawHeaders.length; i += 2) pairs.push([res.rawHeaders[i], res.rawHeaders[i + 1]]);
150
+ const none = [101, 204, 205, 304].includes(res.statusCode) || (init.method || "GET").toUpperCase() === "HEAD";
151
+ if (none) res.resume();
152
+ const enc = String(res.headers["content-encoding"] || "").trim().toLowerCase();
153
+ let body = res, decoded = false;
154
+ if (!none && enc && enc !== "identity") {
155
+ const zlib = nodeMod("node:zlib");
156
+ const dec = enc === "gzip" || enc === "x-gzip" ? zlib.createGunzip() : enc === "deflate" ? zlib.createInflate() : enc === "br" ? zlib.createBrotliDecompress() : null;
157
+ if (!dec) {
158
+ res.resume();
159
+ return reject(Object.assign(new Error(`the response is encoded as "${enc}", which the data fetch cannot decode`), { status: 415 }));
160
+ }
161
+ body = stream.pipeline(res, dec, () => {
162
+ });
163
+ decoded = true;
164
+ }
165
+ const kept = decoded ? pairs.filter(([k]) => !/^(content-encoding|content-length)$/i.test(k)) : pairs;
166
+ resolve(new Response(none ? null : stream.Readable.toWeb(body), { status: res.statusCode, statusText: res.statusMessage, headers: (
167
+ /** @type {any} */
168
+ kept
169
+ ) }));
170
+ });
171
+ req.on("error", reject);
172
+ req.end(init.body ?? void 0);
173
+ });
174
+ }
175
+ var CROSS_ORIGIN_KEEP = /* @__PURE__ */ new Set(["accept", "accept-language", "content-type"]);
176
+ function redirectRequest(from, to, req, status) {
177
+ if (from.protocol === "https:" && to.protocol !== "https:") throw Object.assign(new Error(`${from.host} redirects from https to http; not followed`), { status: 403 });
178
+ const headers = new Headers(req.headers || {});
179
+ if (to.origin !== from.origin) {
180
+ for (const k of [...headers.keys()]) if (!CROSS_ORIGIN_KEEP.has(k)) headers.delete(k);
181
+ }
182
+ const get = status === 303 || (status === 301 || status === 302) && (req.method || "GET").toUpperCase() !== "GET";
183
+ return get ? { ...req, method: "GET", body: void 0, headers } : { ...req, headers };
184
+ }
185
+ function guardedFetch(opt, base) {
186
+ const allow = (opt.allowHosts || []).map((h) => String(h).toLowerCase().replace(/^\[|\]$/g, ""));
187
+ const node = !opt.viaBase && inNode();
188
+ return (
189
+ /** @type {any} */
190
+ (async (input, init = {}) => {
191
+ let url = checkUrl(String(input), allow);
192
+ let req = { ...init };
193
+ for (let hop = 0; ; hop++) {
194
+ const trusted = allow.includes(url.hostname.replace(/^\[|\]$/g, "").toLowerCase());
195
+ const res = node ? await nodeRequest(url, req, trusted) : await base(url.href, { ...req, redirect: "manual" });
196
+ if (res.type === "opaqueredirect") throw new Error(`${url.host} redirects; a redirect cannot be checked here (pass your own fetch to render)`);
197
+ const loc = res.status >= 300 && res.status < 400 ? res.headers.get("location") : null;
198
+ if (!loc) return res;
199
+ await res.body?.cancel().catch(() => {
200
+ });
201
+ if (hop >= FETCH_DEFAULTS.hops) throw new Error(`Too many redirects from ${url.host}`);
202
+ const next = checkUrl(new URL(loc, url).href, allow);
203
+ req = redirectRequest(url, next, req, res.status);
204
+ url = next;
205
+ }
206
+ })
207
+ );
208
+ }
209
+ function boundedFetch(f, opt) {
210
+ const ms0 = Number(opt.fetchTimeoutMs) > 0 ? Number(opt.fetchTimeoutMs) : FETCH_DEFAULTS.timeoutMs;
211
+ const max = Number(opt.maxFetchBytes) > 0 ? Number(opt.maxFetchBytes) : FETCH_DEFAULTS.maxBytes;
212
+ return (
213
+ /** @type {any} */
214
+ (async (input, init = {}) => {
215
+ const ms = Math.max(1, Math.min(ms0, opt.deadline ? opt.deadline - Date.now() : Infinity));
216
+ const ctl = new AbortController();
217
+ const timer = setTimeout(() => ctl.abort(Object.assign(new Error(`The data request took longer than ${Math.round(ms)} ms`), { status: 504 })), ms);
218
+ const signal = init.signal ? anySignal([init.signal, ctl.signal]) : ctl.signal;
219
+ let res;
220
+ const stop = new Promise((_, rej) => signal.addEventListener("abort", () => rej(signal.reason), { once: true }));
221
+ stop.catch(() => {
222
+ });
223
+ try {
224
+ res = await Promise.race([f(input, { ...init, signal }), stop]);
225
+ } catch (e) {
226
+ clearTimeout(timer);
227
+ throw ctl.signal.aborted ? ctl.signal.reason : fetchFailure(e, input);
228
+ }
229
+ if (!res.body || /** @type {any} */
230
+ init.pwStream) {
231
+ clearTimeout(timer);
232
+ return res;
233
+ }
234
+ let n = 0;
235
+ const reader = res.body.getReader();
236
+ const body = new ReadableStream({
237
+ async pull(c) {
238
+ try {
239
+ const { done, value } = await reader.read();
240
+ if (done) {
241
+ clearTimeout(timer);
242
+ c.close();
243
+ return;
244
+ }
245
+ n += value.byteLength;
246
+ if (n > max) {
247
+ clearTimeout(timer);
248
+ reader.cancel().catch(() => {
249
+ });
250
+ c.error(Object.assign(new Error(`The data response is larger than ${Math.round(max / 1048576)} MB (maxFetchBytes)`), { status: 413 }));
251
+ return;
252
+ }
253
+ c.enqueue(value);
254
+ } catch (e) {
255
+ clearTimeout(timer);
256
+ c.error(ctl.signal.aborted ? ctl.signal.reason : e);
257
+ }
258
+ },
259
+ cancel(r) {
260
+ clearTimeout(timer);
261
+ return reader.cancel(r);
262
+ }
263
+ });
264
+ return new Response(body, { status: res.status, statusText: res.statusText, headers: res.headers });
265
+ })
266
+ );
267
+ }
268
+ var CAUSES = {
269
+ ENOTFOUND: "the host name did not resolve",
270
+ EAI_AGAIN: "DNS lookup timed out",
271
+ ECONNREFUSED: "connection refused",
272
+ ECONNRESET: "connection reset",
273
+ EPIPE: "connection closed",
274
+ UND_ERR_SOCKET: "connection closed early",
275
+ ETIMEDOUT: "timed out",
276
+ UND_ERR_CONNECT_TIMEOUT: "connect timed out",
277
+ EPROTO: "TLS error",
278
+ ERR_TLS_CERT_ALTNAME_INVALID: "TLS certificate does not match the host",
279
+ DEPTH_ZERO_SELF_SIGNED_CERT: "TLS certificate is self-signed",
280
+ SELF_SIGNED_CERT_IN_CHAIN: "TLS certificate chain is untrusted",
281
+ UNABLE_TO_VERIFY_LEAF_SIGNATURE: "TLS certificate chain is untrusted",
282
+ CERT_HAS_EXPIRED: "TLS certificate has expired"
283
+ };
284
+ function redactUrl(s) {
285
+ const str = String(s);
286
+ const q = str.search(/[?#]/);
287
+ const base = (q >= 0 ? str.slice(0, q) : str).replace(/^([a-z][\w+.-]*:\/\/)[^/?#]*@/i, "$1");
288
+ return q >= 0 ? `${base}${str[q]}…` : base;
289
+ }
290
+ function fetchFailure(e, input) {
291
+ if (!e || e.status) return e;
292
+ const code = String(e.cause?.code || e.code || "");
293
+ if (!code && e.message !== "fetch failed") return e;
294
+ const why = CAUSES[code] || (/^ERR_TLS|CERT_|SSL/.test(code) ? "TLS error" : "");
295
+ const at = redactUrl(input?.href ?? input);
296
+ return Object.assign(new Error(`the request to ${at} failed${why ? `: ${why}` : ""}${code ? ` (${code})` : ""}`), { code: e.code });
297
+ }
298
+ function anySignal(list) {
299
+ const S = (
300
+ /** @type {any} */
301
+ AbortSignal
302
+ );
303
+ if (S.any) return S.any(list);
304
+ const c = new AbortController();
305
+ for (const s of list) {
306
+ if (s.aborted) c.abort(s.reason);
307
+ else s.addEventListener("abort", () => c.abort(s.reason), { once: true });
308
+ }
309
+ return c.signal;
310
+ }
311
+
312
+ export {
313
+ guardedFetch,
314
+ boundedFetch,
315
+ redactUrl,
316
+ PAGE_SIZES,
317
+ toPt,
318
+ fromPt,
319
+ normalizePageSize,
320
+ resolvePage,
321
+ normBox,
322
+ NO_CJK_FONTS
323
+ };
324
+ //# sourceMappingURL=chunk-BR5K6SBL.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/engine/units.js", "../../../src/engine/notices.js", "../../../src/engine/data/guard.js"],
4
+ "mappings": "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",
5
+ "names": ["w", "m"]
6
+ }