@reportwright/viewer 0.12.1 → 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 (81) hide show
  1. package/CHANGELOG.md +78 -0
  2. package/README.md +16 -1
  3. package/THIRD-PARTY-NOTICES.md +52 -0
  4. package/dist/{chunk-S2IUUI6N.js → chunk-BF7GCWZY.js} +67 -49
  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/{peer/chunk-BQFI3DHK.js → chunk-CNDUJ7IV.js} +289 -25
  9. package/dist/chunk-CNDUJ7IV.js.map +6 -0
  10. package/dist/{chunk-VNOWPSE6.js → chunk-EK5CJY22.js} +1223 -899
  11. package/dist/chunk-EK5CJY22.js.map +6 -0
  12. package/dist/{chunk-2BPBQMH2.js → chunk-F5EPQTPF.js} +3 -3
  13. package/dist/chunk-FEM2QVOO.js +18 -0
  14. package/dist/{chunk-3D2KFKG2.js → chunk-IFYCJZNS.js} +8 -6
  15. package/dist/chunk-IFYCJZNS.js.map +6 -0
  16. package/dist/{chunk-NR2G4TMG.js → chunk-L6YEIVVD.js} +43 -22
  17. package/dist/chunk-L6YEIVVD.js.map +6 -0
  18. package/dist/{chunk-DPVJEFKP.js → chunk-PQNM6ET7.js} +4 -4
  19. package/dist/{chunk-DPVJEFKP.js.map → chunk-PQNM6ET7.js.map} +1 -1
  20. package/dist/{chunk-Z7MKH66Z.js → chunk-QFLVVM3H.js} +225 -11
  21. package/dist/chunk-QFLVVM3H.js.map +6 -0
  22. package/dist/{chunk-PGP3QA6L.js → chunk-TZXEEVKE.js} +1301 -70
  23. package/dist/chunk-TZXEEVKE.js.map +6 -0
  24. package/dist/{chunk-Q6MMPKQA.js → chunk-UHHURTSV.js} +11 -10
  25. package/dist/chunk-UHHURTSV.js.map +6 -0
  26. package/dist/{chunk-M6AYND5G.js → chunk-UJL7C2AS.js} +16 -7
  27. package/dist/chunk-UJL7C2AS.js.map +6 -0
  28. package/dist/chunk-YIX3OJXU.js +34 -0
  29. package/dist/designer.d.ts +11 -3
  30. package/dist/designer.js +587 -386
  31. package/dist/designer.js.map +3 -3
  32. package/dist/engine.worker.js +16729 -18
  33. package/dist/engine.worker.js.map +3 -3
  34. package/dist/peer/{chunk-6I2EAAVN.js → chunk-2CD5COHN.js} +43 -22
  35. package/dist/peer/chunk-2CD5COHN.js.map +6 -0
  36. package/dist/peer/{chunk-BMAXIBP2.js → chunk-3CBV5SAI.js} +4 -4
  37. package/dist/peer/{chunk-BMAXIBP2.js.map → chunk-3CBV5SAI.js.map} +1 -1
  38. package/dist/peer/{chunk-WSNRD2AQ.js → chunk-45GVDKP5.js} +11 -10
  39. package/dist/{chunk-Q6MMPKQA.js.map → peer/chunk-45GVDKP5.js.map} +1 -1
  40. package/dist/peer/{chunk-R4VX5UC7.js → chunk-LWXQX3NJ.js} +3 -3
  41. package/dist/{chunk-6TPZ7G74.js → peer/chunk-MKY3SDXU.js} +289 -25
  42. package/dist/peer/chunk-MKY3SDXU.js.map +6 -0
  43. package/dist/peer/chunk-S6LSPHSU.js +17 -0
  44. package/dist/peer/chunk-S6LSPHSU.js.map +6 -0
  45. package/dist/peer/{chunk-TSC4RAH3.js → chunk-VZHHNQYB.js} +1301 -70
  46. package/dist/peer/chunk-VZHHNQYB.js.map +6 -0
  47. package/dist/peer/{chunk-WQGENQZO.js → chunk-YITWGAR4.js} +8 -6
  48. package/dist/peer/chunk-YITWGAR4.js.map +6 -0
  49. package/dist/peer/chunk-Z5II55QT.js +33 -0
  50. package/dist/peer/chunk-Z5II55QT.js.map +6 -0
  51. package/dist/peer/designer.js +444 -243
  52. package/dist/peer/designer.js.map +3 -3
  53. package/dist/peer/engine.worker.js +16729 -17
  54. package/dist/peer/engine.worker.js.map +3 -3
  55. package/dist/peer/viewer.js +14 -11
  56. package/dist/peer/viewer.js.map +1 -1
  57. package/dist/viewer.d.ts +2 -1
  58. package/dist/viewer.js +14 -11
  59. package/dist/viewer.js.map +1 -1
  60. package/package.json +4 -2
  61. package/dist/chunk-3D2KFKG2.js.map +0 -6
  62. package/dist/chunk-6TPZ7G74.js.map +0 -6
  63. package/dist/chunk-BRB34AJ2.js +0 -16
  64. package/dist/chunk-M6AYND5G.js.map +0 -6
  65. package/dist/chunk-NR2G4TMG.js.map +0 -6
  66. package/dist/chunk-PGP3QA6L.js.map +0 -6
  67. package/dist/chunk-S2IUUI6N.js.map +0 -6
  68. package/dist/chunk-ULKEEARQ.js +0 -553
  69. package/dist/chunk-ULKEEARQ.js.map +0 -6
  70. package/dist/chunk-VNOWPSE6.js.map +0 -6
  71. package/dist/chunk-Z7MKH66Z.js.map +0 -6
  72. package/dist/peer/chunk-2FZTYEDE.js +0 -15
  73. package/dist/peer/chunk-6I2EAAVN.js.map +0 -6
  74. package/dist/peer/chunk-BQFI3DHK.js.map +0 -6
  75. package/dist/peer/chunk-TSC4RAH3.js.map +0 -6
  76. package/dist/peer/chunk-WQGENQZO.js.map +0 -6
  77. package/dist/peer/chunk-WSNRD2AQ.js.map +0 -6
  78. /package/dist/{chunk-2BPBQMH2.js.map → chunk-F5EPQTPF.js.map} +0 -0
  79. /package/dist/{chunk-BRB34AJ2.js.map → chunk-FEM2QVOO.js.map} +0 -0
  80. /package/dist/{peer/chunk-2FZTYEDE.js.map → chunk-YIX3OJXU.js.map} +0 -0
  81. /package/dist/peer/{chunk-R4VX5UC7.js.map → chunk-LWXQX3NJ.js.map} +0 -0
@@ -1,21 +1,103 @@
1
1
  import {
2
- fetchPolicy,
3
- policyKeysIn,
4
- render,
5
- reportFetch,
2
+ guardedFetch,
3
+ redactUrl,
6
4
  resolvePage
7
- } from "../chunk-VNOWPSE6.js";
5
+ } from "./chunk-BR5K6SBL.js";
8
6
  import {
9
7
  fontFamilyCss,
10
8
  fontKeysOf
11
- } from "../chunk-M6AYND5G.js";
9
+ } from "./chunk-UJL7C2AS.js";
12
10
  import {
13
- ALL_FONT_KEYS,
14
- FontStore,
11
+ CORE_FONT_KEY,
15
12
  SHAPER,
16
13
  fontFile,
14
+ isStandard,
17
15
  setCustomFonts
18
- } from "../chunk-Z7MKH66Z.js";
16
+ } from "./chunk-QFLVVM3H.js";
17
+
18
+ // src/viewer/dataFetch.js
19
+ function sqlCall(body, sqlPreview) {
20
+ let b;
21
+ try {
22
+ b = JSON.parse(String(body));
23
+ } catch {
24
+ return false;
25
+ }
26
+ if (!b || typeof b !== "object" || Array.isArray(b)) return false;
27
+ const keys = Object.keys(b);
28
+ if (typeof b.report === "string" && typeof b.source === "string") return keys.every((k) => ["report", "source", "params"].includes(k));
29
+ return sqlPreview && typeof b.query === "string" && keys.every((k) => ["connection", "query", "params"].includes(k));
30
+ }
31
+ var policy = { allowHosts: [], unsafeFetch: false, fetch: null };
32
+ function setFetchPolicy({ allowHosts, unsafeFetch = false, fetch: f = null } = {}) {
33
+ policy = { allowHosts: (allowHosts || []).map((h) => String(h).toLowerCase().replace(/^\[|\]$/g, "")), unsafeFetch: !!unsafeFetch, fetch: typeof f === "function" ? f : null };
34
+ }
35
+ var POLICY_KEYS = ["allowHosts", "unsafeFetch", "allowPrivate"];
36
+ function policyKeysIn(def) {
37
+ const has = (o) => POLICY_KEYS.filter((k) => o && typeof o === "object" && Object.hasOwn(o, k));
38
+ return [...has(def), ...(Array.isArray(def?.dataSources) ? def.dataSources : []).flatMap((s) => has(s).map((k) => `${s.name}.${k}`))];
39
+ }
40
+ var fetchPolicy = () => policy;
41
+ function failed(e, url) {
42
+ if (e?.status || !(e instanceof TypeError)) return e;
43
+ return Object.assign(new Error(`the request to ${redactUrl(url)} failed (${e.message}): the server may not allow this page to read it (CORS: it must send Access-Control-Allow-Origin), the network or the server may be down, or the browser blocked it (a content security policy or an extension)`), { cause: e });
44
+ }
45
+ var DATA = [/^\/api\/sample\//, /^\/api\/data\/proxy$/];
46
+ var OURS = /^\/(?:$|api(?:\/|$)|admin(?:\/|$)|designer(?:\/|$)|viewer(?:\/|$)|login(?:\/|$)|embed(?:\/|$)|_next(?:\/|$))/i;
47
+ var BUSY = /* @__PURE__ */ new Set([429, 502, 503, 504]);
48
+ function withRetry(f, { onRetry, retries = 3, wait = (ms) => new Promise((r) => setTimeout(r, ms)) } = {}) {
49
+ return (
50
+ /** @type {any} */
51
+ (async (url, init = {}) => {
52
+ const method = String(init.method || "GET").toUpperCase();
53
+ const read = method === "GET" || method === "HEAD" || method === "POST" && /\/api\/data\/sql$/.test(new URL(String(url), "http://x").pathname);
54
+ for (let attempt = 1; ; attempt++) {
55
+ const res = await f(url, init);
56
+ if (!read || !BUSY.has(res.status) || attempt > retries) return res;
57
+ const after = Number(res.headers?.get?.("retry-after"));
58
+ const ms = Number.isFinite(after) && after >= 0 ? Math.min(1e4, after * 1e3) : Math.round(400 * 2 ** (attempt - 1) * (0.75 + Math.random() * 0.5));
59
+ onRetry?.({ attempt, max: retries, status: res.status });
60
+ await wait(ms);
61
+ }
62
+ })
63
+ );
64
+ }
65
+ function reportFetch(base, f0 = policy.fetch || ((...a) => fetch(...a)), { sqlPreview = false, onRetry, retries = 3, wait } = {}) {
66
+ const self = new URL(base).origin;
67
+ const { allowHosts, unsafeFetch } = policy;
68
+ const send = (url, init) => f0(url, init).catch((e) => {
69
+ throw failed(e, url);
70
+ });
71
+ const f = withRetry(send, { onRetry, retries, wait });
72
+ const guarded = unsafeFetch ? f : guardedFetch({ allowHosts, viaBase: true }, f);
73
+ const other = (url, init) => guarded(url, init).catch((e) => {
74
+ if (e?.code === "EPRIVATE") e.message = e.message.replace(/pass allowHosts: (\[[^\]]*\]) to render/, "mountViewer({ allowHosts: $1 })");
75
+ else if (e && typeof e === "object") e.message = String(e.message).replace("(pass your own fetch to render)", "(a browser cannot see where it leads: use the URL it redirects to, or render on the server)");
76
+ throw e;
77
+ });
78
+ const out = (
79
+ /** @type {any} */
80
+ (async (input, init = {}) => {
81
+ const u = new URL(String(input instanceof Request ? input.url : input), base);
82
+ const method = String(init.method || "GET").toUpperCase();
83
+ if (u.origin !== self) return other(u.href, { ...init, credentials: "omit" });
84
+ let path;
85
+ try {
86
+ path = decodeURIComponent(u.pathname).replace(/\/{2,}/g, "/");
87
+ } catch {
88
+ path = null;
89
+ }
90
+ const read = path !== null && ["GET", "HEAD"].includes(method) && !/%2f|%5c/i.test(u.pathname) && (DATA.some((r) => r.test(path)) || !OURS.test(path));
91
+ if (!read && !(method === "POST" && u.pathname === "/api/data/sql" && sqlCall(init.body, sqlPreview))) {
92
+ throw Object.assign(new Error(`A data source may only read data from this ReportWright server (sample data, the data proxy, saved SQL), not ${method} ${path}.`), { status: 403 });
93
+ }
94
+ const ours = DATA.some((r) => r.test(u.pathname)) || u.pathname === "/api/data/sql";
95
+ return f(u.href, { ...init, credentials: ours ? "same-origin" : "omit", redirect: "error" });
96
+ })
97
+ );
98
+ if (!unsafeFetch) out.hostRule = { allowHosts };
99
+ return out;
100
+ }
19
101
 
20
102
  // src/exporters/subset.js
21
103
  var HB_MEMORY_MODE_WRITABLE = 2;
@@ -24,11 +106,154 @@ var HB_SUBSET_SETS_LAYOUT_FEATURE_TAG = 6;
24
106
  var HB_SUBSET_FLAGS_RETAIN_GIDS = 2;
25
107
  var HB_SUBSET_FLAGS_NOTDEF_OUTLINE = 64;
26
108
  var tag = (s) => [...s].reduce((a, c) => (a << 8) + c.charCodeAt(0), 0) >>> 0;
109
+ var WEIGHT_NAMES = { 100: "Thin", 200: "ExtraLight", 300: "Light", 400: "Regular", 500: "Medium", 600: "SemiBold", 700: "Bold", 800: "ExtraBold", 900: "Black" };
110
+ var WEIGHT_WORD = /\b(Thin|ExtraLight|UltraLight|Light|Regular|Medium|SemiBold|DemiBold|Bold|ExtraBold|UltraBold|Black|Heavy)\b/i;
111
+ var chars = (b) => {
112
+ let s = "";
113
+ for (const c of b) s += String.fromCharCode(c);
114
+ return s;
115
+ };
116
+ function sfntTables(bytes) {
117
+ const t = /* @__PURE__ */ new Map();
118
+ if (bytes.length < 12 || chars(bytes.subarray(0, 4)) === "ttcf") return t;
119
+ const dv = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
120
+ const n = dv.getUint16(4);
121
+ for (let i = 0; i < n; i++) {
122
+ const p = 12 + i * 16;
123
+ const off = dv.getUint32(p + 8), len = dv.getUint32(p + 12);
124
+ t.set(chars(bytes.subarray(p, p + 4)), bytes.subarray(off, off + len));
125
+ }
126
+ return t;
127
+ }
128
+ function buildSfnt(version, tables) {
129
+ const tags = [...tables.keys()].sort();
130
+ const n = tags.length, pow = 2 ** Math.floor(Math.log2(n));
131
+ const offs = /* @__PURE__ */ new Map();
132
+ let total = 12 + 16 * n;
133
+ for (const tg of tags) {
134
+ offs.set(tg, total);
135
+ total += tables.get(tg).length + 3 & ~3;
136
+ }
137
+ const out = new Uint8Array(total), dv = new DataView(out.buffer);
138
+ out.set(version.subarray ? version.subarray(0, 4) : [0, 1, 0, 0], 0);
139
+ dv.setUint16(4, n);
140
+ dv.setUint16(6, pow * 16);
141
+ dv.setUint16(8, Math.log2(pow));
142
+ dv.setUint16(10, n * 16 - pow * 16);
143
+ tags.forEach((tg, i) => {
144
+ const p = 12 + 16 * i, data = tables.get(tg), o = offs.get(tg);
145
+ for (let k = 0; k < 4; k++) out[p + k] = tg.charCodeAt(k);
146
+ out.set(data, o);
147
+ dv.setUint32(p + 4, tableSum(out, o, data.length + 3 & ~3));
148
+ dv.setUint32(p + 8, o);
149
+ dv.setUint32(p + 12, data.length);
150
+ });
151
+ if (offs.has("head")) {
152
+ const h = offs.get("head") + 8;
153
+ dv.setUint32(h, 0);
154
+ dv.setUint32(h, 2981146554 - tableSum(out, 0, out.length) >>> 0);
155
+ }
156
+ return out;
157
+ }
158
+ var tableSum = (b, o, len) => {
159
+ const dv = new DataView(b.buffer, b.byteOffset + o, len);
160
+ let s = 0;
161
+ for (let i = 0; i < len; i += 4) s = s + dv.getUint32(i) >>> 0;
162
+ return s;
163
+ };
164
+ function setNameStrings(name, strings) {
165
+ const dv = new DataView(name.buffer, name.byteOffset, name.byteLength);
166
+ const count = dv.getUint16(2), store = dv.getUint16(4);
167
+ const recs = [];
168
+ for (let i = 0; i < count; i++) {
169
+ const p = 6 + 12 * i;
170
+ const platform = dv.getUint16(p), id = dv.getUint16(p + 6), len = dv.getUint16(p + 8), off = store + dv.getUint16(p + 10);
171
+ const rec = { platform, enc: dv.getUint16(p + 2), lang: dv.getUint16(p + 4), id, raw: name.subarray(off, off + len) };
172
+ if (strings.has(id)) {
173
+ const s = strings.get(id);
174
+ rec.raw = platform === 1 ? Uint8Array.from(s, (c) => c.charCodeAt(0) & 255) : utf16(s);
175
+ }
176
+ recs.push(rec);
177
+ }
178
+ const size = 6 + 12 * count + recs.reduce((a, r) => a + r.raw.length, 0);
179
+ const out = new Uint8Array(size), o = new DataView(out.buffer);
180
+ o.setUint16(0, 0);
181
+ o.setUint16(2, count);
182
+ o.setUint16(4, 6 + 12 * count);
183
+ let at = 6 + 12 * count;
184
+ recs.forEach((r, i) => {
185
+ const p = 6 + 12 * i;
186
+ o.setUint16(p, r.platform);
187
+ o.setUint16(p + 2, r.enc);
188
+ o.setUint16(p + 4, r.lang);
189
+ o.setUint16(p + 6, r.id);
190
+ o.setUint16(p + 8, r.raw.length);
191
+ o.setUint16(p + 10, at - (6 + 12 * count));
192
+ out.set(r.raw, at);
193
+ at += r.raw.length;
194
+ });
195
+ return out;
196
+ }
197
+ var utf16 = (s) => {
198
+ const b = new Uint8Array(s.length * 2);
199
+ for (let i = 0; i < s.length; i++) {
200
+ b[2 * i] = s.charCodeAt(i) >> 8;
201
+ b[2 * i + 1] = s.charCodeAt(i) & 255;
202
+ }
203
+ return b;
204
+ };
205
+ function renameForWeight(tables, weight) {
206
+ const word = WEIGHT_NAMES[weight] || "Regular";
207
+ const nm = tables.get("name");
208
+ if (nm) {
209
+ const dv = new DataView(nm.buffer, nm.byteOffset, nm.byteLength);
210
+ const get = (id) => {
211
+ const count = dv.getUint16(2), store = dv.getUint16(4);
212
+ for (let i = 0; i < count; i++) {
213
+ const p = 6 + 12 * i;
214
+ if (dv.getUint16(p + 6) !== id) continue;
215
+ const platform = dv.getUint16(p), len = dv.getUint16(p + 8), off = store + dv.getUint16(p + 10);
216
+ const b = nm.subarray(off, off + len);
217
+ if (platform === 1) return chars(b);
218
+ let s = "";
219
+ for (let k = 0; k + 1 < b.length; k += 2) s += String.fromCharCode(b[k] << 8 | b[k + 1]);
220
+ return s;
221
+ }
222
+ return null;
223
+ };
224
+ const family = (get(16) ?? get(1) ?? "").replace(new RegExp(`\\s*\\b(${Object.values(WEIGHT_NAMES).join("|")})$`, "i"), "").trim() || get(1) || "Font";
225
+ const ps = get(6)?.replace(/-(\w+)$/, "") || family.replace(/\s+/g, "");
226
+ const strings = /* @__PURE__ */ new Map([
227
+ [1, family],
228
+ [2, word],
229
+ [3, (get(3) ?? "").replace(WEIGHT_WORD, word)],
230
+ [4, `${family} ${word}`],
231
+ [6, `${ps}-${word}`],
232
+ [16, family],
233
+ [17, word]
234
+ ]);
235
+ tables.set("name", setNameStrings(nm, strings));
236
+ }
237
+ const os2 = tables.get("OS/2");
238
+ if (os2 && os2.length >= 6) {
239
+ const copy = os2.slice();
240
+ new DataView(copy.buffer).setUint16(4, weight);
241
+ tables.set("OS/2", copy);
242
+ }
243
+ }
27
244
  function createSubsetter(loadWasm) {
28
245
  let hbP = null;
29
246
  const hb = () => hbP || (hbP = (async () => {
30
247
  const bytes = await loadWasm();
31
- const { instance } = await WebAssembly.instantiate(bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes), {});
248
+ const u8 = bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes);
249
+ const src = (
250
+ /** @type {any} */
251
+ u8
252
+ );
253
+ const instance = (
254
+ /** @type {any} */
255
+ globalThis.process?.versions?.node ? new WebAssembly.Instance(new WebAssembly.Module(src), {}) : (await WebAssembly.instantiate(src, {})).instance
256
+ );
32
257
  const x = (
33
258
  /** @type {any} */
34
259
  instance.exports
@@ -39,6 +264,7 @@ function createSubsetter(loadWasm) {
39
264
  return async function subset(font, codePoints, opt = {}) {
40
265
  const x = await hb();
41
266
  const heap = () => new Uint8Array(x.memory.buffer);
267
+ const variable = sfntTables(font).has("fvar");
42
268
  const input = x.hb_subset_input_create_or_fail();
43
269
  if (!input) throw new Error("HarfBuzz: no subset input");
44
270
  const buf = x.malloc(font.byteLength);
@@ -67,10 +293,16 @@ function createSubsetter(loadWasm) {
67
293
  const res = x.hb_face_reference_blob(sub);
68
294
  const off = x.hb_blob_get_data(res, 0);
69
295
  const len = x.hb_blob_get_length(res);
70
- const out = heap().slice(off, off + len);
296
+ let out = heap().slice(off, off + len);
71
297
  x.hb_blob_destroy(res);
72
298
  x.hb_face_destroy(sub);
73
299
  if (!len) throw new Error("HarfBuzz: empty subset");
300
+ if (variable) {
301
+ const t = sfntTables(out);
302
+ for (const tg of ["fvar", "gvar", "avar", "cvar", "HVAR", "MVAR", "STAT"]) t.delete(tg);
303
+ renameForWeight(t, opt.weight ?? 400);
304
+ out = buildSfnt(out, t);
305
+ }
74
306
  return out;
75
307
  } finally {
76
308
  x.hb_subset_input_destroy(input);
@@ -135,10 +367,13 @@ var getFont = async (k) => {
135
367
  if (bundledFonts?.[k]) return b64ToBuffer(bundledFonts[k]);
136
368
  return (await fetchFont(k)).slice(0);
137
369
  };
138
- function fontStore() {
139
- if (!mainStore) mainStore = new FontStore(getFont);
140
- return mainStore;
370
+ var engineP = null;
371
+ var loadEngine = () => engineP || (engineP = import("./chunk-YIX3OJXU.js"));
372
+ async function loadFontStore() {
373
+ const { FontStore } = await loadEngine();
374
+ return mainStore || (mainStore = new FontStore(getFont));
141
375
  }
376
+ var parameterOptions = async (...a) => (await loadEngine()).parameterOptions(...a);
142
377
  var makeWorker = () => new Worker(new URL("./engine.worker.js", import.meta.url), { type: "module" });
143
378
  var fontList = null;
144
379
  function customFonts(refresh = false) {
@@ -153,7 +388,7 @@ function customFonts(refresh = false) {
153
388
  var faces = /* @__PURE__ */ new Map();
154
389
  function loadReportFonts(keys) {
155
390
  if (typeof document === "undefined" || !document.fonts || typeof FontFace === "undefined") return Promise.resolve([]);
156
- return Promise.all(keys.filter((k) => k !== SHAPER).map((k) => {
391
+ return Promise.all(keys.filter((k) => k !== SHAPER && !isStandard(k)).map((k) => {
157
392
  if (!faces.has(k)) {
158
393
  const bytes = bundledFonts?.[k] ? Promise.resolve(b64ToBuffer(bundledFonts[k])) : fetchFont(k).then((b) => b.slice(0));
159
394
  faces.set(k, bytes.then((src) => {
@@ -168,7 +403,13 @@ function loadReportFonts(keys) {
168
403
  return faces.get(k);
169
404
  })).then((results) => results.filter(Boolean));
170
405
  }
171
- var loadModelFonts = (model) => loadReportFonts([.../* @__PURE__ */ new Set([...ALL_FONT_KEYS, ...fontKeysOf(model)])]);
406
+ var loadModelFonts = (model) => loadReportFonts([.../* @__PURE__ */ new Set([CORE_FONT_KEY, ...fontKeysOf(model)])]);
407
+ var warned = false;
408
+ function workerFailed(reason) {
409
+ if (warned) return;
410
+ warned = true;
411
+ console.warn(`[reportwright] worker did not load (${reason}); rendering on the main thread`);
412
+ }
172
413
  function getWorker() {
173
414
  if (workerBroken || typeof Worker === "undefined" || bundledFonts || fetchPolicy().fetch || typeof window !== "undefined" && /** @type {any} */
174
415
  window.__pwSnapshot) return null;
@@ -201,16 +442,23 @@ function getWorker() {
201
442
  return;
202
443
  }
203
444
  waiting.delete(e.data.id);
445
+ if (e.data.mainThread) {
446
+ workerFailed(e.data.mainThread);
447
+ w.retry();
448
+ return;
449
+ }
204
450
  if (e.data.ok) w.resolve(e.data.model);
205
451
  else w.reject(Object.assign(new Error(e.data.error.message), e.data.error));
206
452
  };
207
- worker.onerror = () => {
453
+ worker.onerror = (ev) => {
454
+ workerFailed(ev?.message || "the worker file did not load: it was not found or could not be built");
208
455
  workerBroken = true;
209
456
  worker = null;
210
457
  for (const [, w] of waiting) w.retry();
211
458
  waiting.clear();
212
459
  };
213
- } catch {
460
+ } catch (err) {
461
+ workerFailed(err?.message || String(err));
214
462
  workerBroken = true;
215
463
  worker = null;
216
464
  }
@@ -229,8 +477,8 @@ var loadReport = async (rid) => {
229
477
  };
230
478
  var fetchReport = loadReport;
231
479
  async function renderMain(def, params, state, reportId, exportData = false, onRetry = void 0, dataOnly = false) {
232
- await customFonts();
233
- return render(def, { parameters: params, state, reportId, exportData, dataOnly, fontStore: fontStore(), baseUrl: origin(), loadReport, fetch: reportFetch(origin(), void 0, { onRetry }) });
480
+ const [{ render }, store] = await Promise.all([loadEngine(), loadFontStore(), customFonts()]);
481
+ return render(def, { parameters: params, state, reportId, exportData, dataOnly, fontStore: store, lazyFonts: true, baseUrl: origin(), loadReport, fetch: reportFetch(origin(), void 0, { onRetry }) });
234
482
  }
235
483
  async function renderReport(def, params = {}, state = {}, reportId = void 0, { onPartial, exportData = false, onRetry, dataOnly = false } = {}) {
236
484
  const policyKeys = policyKeysIn(def);
@@ -253,10 +501,10 @@ async function iccProfile() {
253
501
  return new Uint8Array(await r.arrayBuffer());
254
502
  }
255
503
  async function pdfBlob(model, title, o = {}) {
256
- const store = fontStore();
504
+ const store = await loadFontStore();
257
505
  await customFonts();
258
506
  await store.load(fontKeysOf(model));
259
- const { exportPdf } = await import("./chunk-TSC4RAH3.js");
507
+ const { exportPdf } = await import("./chunk-TZXEEVKE.js");
260
508
  const bytes = await exportPdf(model, store, {
261
509
  title,
262
510
  subset: subsetter,
@@ -461,15 +709,30 @@ function paramChoices(def, fetched) {
461
709
  }
462
710
  return out;
463
711
  }
712
+ function clearStaleParams(def, params, choices) {
713
+ let out = params;
714
+ for (const p of def?.parameters || []) {
715
+ const list = choices?.[p.name], v = params[p.name];
716
+ if (!p.optionsFrom || !Array.isArray(list) || v == null || v === "") continue;
717
+ const ok = new Set(list.map((o) => String(o.value)));
718
+ const fresh = ok.has(String(p.default)) ? String(p.default) : list.length ? String(list[0].value) : "";
719
+ const next = p.multi ? String(v).split(",").filter((x) => ok.has(x)).join(",") : ok.has(String(v)) ? v : fresh;
720
+ if (next !== v) out = { ...out, [p.name]: next };
721
+ }
722
+ return out;
723
+ }
464
724
 
465
725
  export {
726
+ setFetchPolicy,
727
+ reportFetch,
466
728
  setAssetBase,
467
729
  origin,
468
730
  setStandalone,
469
731
  fontsBase,
470
732
  subsetter,
471
733
  setBundledFonts,
472
- fontStore,
734
+ loadFontStore,
735
+ parameterOptions,
473
736
  customFonts,
474
737
  loadReportFonts,
475
738
  loadModelFonts,
@@ -489,6 +752,7 @@ export {
489
752
  exportOptionsFrom,
490
753
  pruneSnapshot,
491
754
  serverPdfUrl,
492
- paramChoices
755
+ paramChoices,
756
+ clearStaleParams
493
757
  };
494
- //# sourceMappingURL=chunk-BQFI3DHK.js.map
758
+ //# sourceMappingURL=chunk-CNDUJ7IV.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/viewer/dataFetch.js", "../../../src/exporters/subset.js", "../../../src/viewer/engineClient.js", "../../../src/viewer/logic.js"],
4
+ "mappings": "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",
5
+ "names": ["origin"]
6
+ }