@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.
- package/CHANGELOG.md +78 -0
- package/README.md +16 -1
- package/THIRD-PARTY-NOTICES.md +52 -0
- package/dist/{chunk-S2IUUI6N.js → chunk-BF7GCWZY.js} +67 -49
- package/dist/chunk-BF7GCWZY.js.map +6 -0
- package/dist/chunk-BR5K6SBL.js +324 -0
- package/dist/chunk-BR5K6SBL.js.map +6 -0
- package/dist/{peer/chunk-BQFI3DHK.js → chunk-CNDUJ7IV.js} +289 -25
- package/dist/chunk-CNDUJ7IV.js.map +6 -0
- package/dist/{chunk-VNOWPSE6.js → chunk-EK5CJY22.js} +1223 -899
- package/dist/chunk-EK5CJY22.js.map +6 -0
- package/dist/{chunk-2BPBQMH2.js → chunk-F5EPQTPF.js} +3 -3
- package/dist/chunk-FEM2QVOO.js +18 -0
- package/dist/{chunk-3D2KFKG2.js → chunk-IFYCJZNS.js} +8 -6
- package/dist/chunk-IFYCJZNS.js.map +6 -0
- package/dist/{chunk-NR2G4TMG.js → chunk-L6YEIVVD.js} +43 -22
- package/dist/chunk-L6YEIVVD.js.map +6 -0
- package/dist/{chunk-DPVJEFKP.js → chunk-PQNM6ET7.js} +4 -4
- package/dist/{chunk-DPVJEFKP.js.map → chunk-PQNM6ET7.js.map} +1 -1
- package/dist/{chunk-Z7MKH66Z.js → chunk-QFLVVM3H.js} +225 -11
- package/dist/chunk-QFLVVM3H.js.map +6 -0
- package/dist/{chunk-PGP3QA6L.js → chunk-TZXEEVKE.js} +1301 -70
- package/dist/chunk-TZXEEVKE.js.map +6 -0
- package/dist/{chunk-Q6MMPKQA.js → chunk-UHHURTSV.js} +11 -10
- package/dist/chunk-UHHURTSV.js.map +6 -0
- package/dist/{chunk-M6AYND5G.js → chunk-UJL7C2AS.js} +16 -7
- package/dist/chunk-UJL7C2AS.js.map +6 -0
- package/dist/chunk-YIX3OJXU.js +34 -0
- package/dist/designer.d.ts +11 -3
- package/dist/designer.js +587 -386
- package/dist/designer.js.map +3 -3
- package/dist/engine.worker.js +16729 -18
- package/dist/engine.worker.js.map +3 -3
- package/dist/peer/{chunk-6I2EAAVN.js → chunk-2CD5COHN.js} +43 -22
- package/dist/peer/chunk-2CD5COHN.js.map +6 -0
- package/dist/peer/{chunk-BMAXIBP2.js → chunk-3CBV5SAI.js} +4 -4
- package/dist/peer/{chunk-BMAXIBP2.js.map → chunk-3CBV5SAI.js.map} +1 -1
- package/dist/peer/{chunk-WSNRD2AQ.js → chunk-45GVDKP5.js} +11 -10
- package/dist/{chunk-Q6MMPKQA.js.map → peer/chunk-45GVDKP5.js.map} +1 -1
- package/dist/peer/{chunk-R4VX5UC7.js → chunk-LWXQX3NJ.js} +3 -3
- package/dist/{chunk-6TPZ7G74.js → peer/chunk-MKY3SDXU.js} +289 -25
- package/dist/peer/chunk-MKY3SDXU.js.map +6 -0
- package/dist/peer/chunk-S6LSPHSU.js +17 -0
- package/dist/peer/chunk-S6LSPHSU.js.map +6 -0
- package/dist/peer/{chunk-TSC4RAH3.js → chunk-VZHHNQYB.js} +1301 -70
- package/dist/peer/chunk-VZHHNQYB.js.map +6 -0
- package/dist/peer/{chunk-WQGENQZO.js → chunk-YITWGAR4.js} +8 -6
- package/dist/peer/chunk-YITWGAR4.js.map +6 -0
- package/dist/peer/chunk-Z5II55QT.js +33 -0
- package/dist/peer/chunk-Z5II55QT.js.map +6 -0
- package/dist/peer/designer.js +444 -243
- package/dist/peer/designer.js.map +3 -3
- package/dist/peer/engine.worker.js +16729 -17
- package/dist/peer/engine.worker.js.map +3 -3
- package/dist/peer/viewer.js +14 -11
- package/dist/peer/viewer.js.map +1 -1
- package/dist/viewer.d.ts +2 -1
- package/dist/viewer.js +14 -11
- package/dist/viewer.js.map +1 -1
- package/package.json +4 -2
- package/dist/chunk-3D2KFKG2.js.map +0 -6
- package/dist/chunk-6TPZ7G74.js.map +0 -6
- package/dist/chunk-BRB34AJ2.js +0 -16
- package/dist/chunk-M6AYND5G.js.map +0 -6
- package/dist/chunk-NR2G4TMG.js.map +0 -6
- package/dist/chunk-PGP3QA6L.js.map +0 -6
- package/dist/chunk-S2IUUI6N.js.map +0 -6
- package/dist/chunk-ULKEEARQ.js +0 -553
- package/dist/chunk-ULKEEARQ.js.map +0 -6
- package/dist/chunk-VNOWPSE6.js.map +0 -6
- package/dist/chunk-Z7MKH66Z.js.map +0 -6
- package/dist/peer/chunk-2FZTYEDE.js +0 -15
- package/dist/peer/chunk-6I2EAAVN.js.map +0 -6
- package/dist/peer/chunk-BQFI3DHK.js.map +0 -6
- package/dist/peer/chunk-TSC4RAH3.js.map +0 -6
- package/dist/peer/chunk-WQGENQZO.js.map +0 -6
- package/dist/peer/chunk-WSNRD2AQ.js.map +0 -6
- /package/dist/{chunk-2BPBQMH2.js.map → chunk-F5EPQTPF.js.map} +0 -0
- /package/dist/{chunk-BRB34AJ2.js.map → chunk-FEM2QVOO.js.map} +0 -0
- /package/dist/{peer/chunk-2FZTYEDE.js.map → chunk-YIX3OJXU.js.map} +0 -0
- /package/dist/peer/{chunk-R4VX5UC7.js.map → chunk-LWXQX3NJ.js.map} +0 -0
|
@@ -1,21 +1,103 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
render,
|
|
5
|
-
reportFetch,
|
|
2
|
+
guardedFetch,
|
|
3
|
+
redactUrl,
|
|
6
4
|
resolvePage
|
|
7
|
-
} from "
|
|
5
|
+
} from "./chunk-BR5K6SBL.js";
|
|
8
6
|
import {
|
|
9
7
|
fontFamilyCss,
|
|
10
8
|
fontKeysOf
|
|
11
|
-
} from "
|
|
9
|
+
} from "./chunk-UJL7C2AS.js";
|
|
12
10
|
import {
|
|
13
|
-
|
|
14
|
-
FontStore,
|
|
11
|
+
CORE_FONT_KEY,
|
|
15
12
|
SHAPER,
|
|
16
13
|
fontFile,
|
|
14
|
+
isStandard,
|
|
17
15
|
setCustomFonts
|
|
18
|
-
} from "
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
139
|
-
|
|
140
|
-
|
|
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([
|
|
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:
|
|
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 =
|
|
504
|
+
const store = await loadFontStore();
|
|
257
505
|
await customFonts();
|
|
258
506
|
await store.load(fontKeysOf(model));
|
|
259
|
-
const { exportPdf } = await import("./chunk-
|
|
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
|
-
|
|
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-
|
|
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
|
+
}
|