@vizhub/runtime 3.0.0 → 4.0.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/dist/build-Bs6tMyxS.cjs +214 -0
- package/dist/build-Bs6tMyxS.cjs.map +1 -0
- package/dist/{build-B2oXi2Mv.js → build-H5Rfq113.js} +382 -245
- package/dist/build-H5Rfq113.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +2 -2
- package/dist/worker.cjs +1 -1
- package/dist/worker.js +1 -1
- package/package.json +1 -1
- package/dist/build-B2oXi2Mv.js.map +0 -1
- package/dist/build-D837b50T.cjs +0 -209
- package/dist/build-D837b50T.cjs.map +0 -1
@@ -1,14 +1,14 @@
|
|
1
|
-
import { magicSandbox as
|
2
|
-
import { isVizId as
|
3
|
-
import { transform as
|
4
|
-
const
|
5
|
-
function
|
1
|
+
import { magicSandbox as $ } from "magic-sandbox";
|
2
|
+
import { isVizId as J, getFileText as L, generateVizId as D, fileCollectionToVizFiles as B, vizFilesToFileCollection as A } from "@vizhub/viz-utils";
|
3
|
+
import { transform as q } from "sucrase";
|
4
|
+
const Nt = () => (Math.random() + "").slice(2);
|
5
|
+
function C(t = {}) {
|
6
6
|
return {
|
7
7
|
name: "sucrase",
|
8
|
-
transform(
|
8
|
+
transform(e, n) {
|
9
9
|
if (!n.match(/\.(?:js|[jt]sx)$/))
|
10
10
|
return null;
|
11
|
-
const r =
|
11
|
+
const r = q(e, {
|
12
12
|
transforms: ["jsx", "typescript"],
|
13
13
|
// For source maps
|
14
14
|
filePath: n,
|
@@ -16,7 +16,7 @@ function W(e = {}) {
|
|
16
16
|
compiledFilename: "bundle.js"
|
17
17
|
},
|
18
18
|
production: !0,
|
19
|
-
...
|
19
|
+
...t
|
20
20
|
});
|
21
21
|
return {
|
22
22
|
code: r.code,
|
@@ -25,45 +25,45 @@ function W(e = {}) {
|
|
25
25
|
}
|
26
26
|
};
|
27
27
|
}
|
28
|
-
const
|
28
|
+
const M = {
|
29
29
|
dependencies: {},
|
30
30
|
vizhub: {},
|
31
31
|
license: "MIT"
|
32
|
-
},
|
33
|
-
const
|
32
|
+
}, _ = !1, S = (t) => {
|
33
|
+
const e = t["package.json"];
|
34
34
|
try {
|
35
|
-
const n =
|
36
|
-
return
|
35
|
+
const n = e ? JSON.parse(e) : M;
|
36
|
+
return _ && console.log(
|
37
37
|
"[packageJSON] pkg:",
|
38
38
|
JSON.stringify(n, null, 2)
|
39
39
|
), n;
|
40
40
|
} catch {
|
41
|
-
return
|
41
|
+
return M;
|
42
42
|
}
|
43
|
-
},
|
44
|
-
const o = n[
|
45
|
-
return r === "jsdelivr" ? `https://cdn.jsdelivr.net/npm/${
|
46
|
-
},
|
43
|
+
}, R = (t) => S(t).dependencies || {}, T = (t) => (S(t).vizhub || {}).libraries || {}, F = ({ name: t, version: e }, n, r = "jsdelivr") => {
|
44
|
+
const o = n[t] && n[t].path || "";
|
45
|
+
return r === "jsdelivr" ? `https://cdn.jsdelivr.net/npm/${t}@${e}${o}` : `https://unpkg.com/${t}@${e}${o}`;
|
46
|
+
}, G = (t) => {
|
47
47
|
var n;
|
48
|
-
const
|
49
|
-
return
|
48
|
+
const e = (n = t == null ? void 0 : t.vizhub) == null ? void 0 : n.libraries;
|
49
|
+
return e ? Object.entries(e).reduce(
|
50
50
|
(r, [o, s]) => (s.global && (r[o] = s.global), r),
|
51
51
|
{}
|
52
52
|
) : {};
|
53
|
-
},
|
53
|
+
}, Y = {
|
54
54
|
d3: "d3",
|
55
55
|
react: "React",
|
56
56
|
"react-dom": "ReactDOM"
|
57
|
-
},
|
58
|
-
const
|
57
|
+
}, U = (t) => {
|
58
|
+
const e = G(t);
|
59
59
|
return {
|
60
|
-
...
|
61
|
-
...
|
60
|
+
...Y,
|
61
|
+
...e
|
62
62
|
};
|
63
|
-
},
|
64
|
-
const [
|
65
|
-
return { vizId:
|
66
|
-
},
|
63
|
+
}, b = (t) => {
|
64
|
+
const [e, ...n] = t.split("/"), r = n.join("/");
|
65
|
+
return { vizId: e, fileName: r };
|
66
|
+
}, H = `var EOL = {},
|
67
67
|
EOF = {},
|
68
68
|
QUOTE = 34,
|
69
69
|
NEWLINE = 10,
|
@@ -183,34 +183,34 @@ var tsv = dsv(' ');
|
|
183
183
|
|
184
184
|
var tsvParse = tsv.parse;
|
185
185
|
|
186
|
-
export { csvParse, tsvParse };`,
|
186
|
+
export { csvParse, tsvParse };`, Q = (t) => (
|
187
187
|
// str.replace(/`/g, '\\`');
|
188
|
-
|
189
|
-
),
|
188
|
+
t.replace(/\\/g, "\\\\").replace(/`/g, "\\`")
|
189
|
+
), X = () => ({
|
190
190
|
name: "transformDSV",
|
191
191
|
// `id` here is of the form
|
192
192
|
// `{vizId}/{fileName}`
|
193
|
-
transform: async (
|
194
|
-
const { fileName: n } =
|
193
|
+
transform: async (t, e) => {
|
194
|
+
const { fileName: n } = b(e), r = n.endsWith(".csv"), o = n.endsWith(".tsv");
|
195
195
|
if (r || o)
|
196
196
|
return {
|
197
197
|
code: `
|
198
|
-
${
|
199
|
-
const data = ${r ? "csvParse" : "tsvParse"}(\`${
|
198
|
+
${H}
|
199
|
+
const data = ${r ? "csvParse" : "tsvParse"}(\`${Q(t)}\`);
|
200
200
|
export default data;
|
201
201
|
`,
|
202
202
|
map: { mappings: "" }
|
203
203
|
};
|
204
204
|
}
|
205
|
-
}),
|
206
|
-
const
|
205
|
+
}), Z = (t) => {
|
206
|
+
const e = /^@([a-zA-Z0-9_-]+)\/([a-zA-Z0-9_-]+)$/, n = t.match(e);
|
207
207
|
return n ? {
|
208
208
|
userName: n[1],
|
209
209
|
idOrSlug: n[2]
|
210
210
|
} : null;
|
211
|
-
},
|
212
|
-
vizId:
|
213
|
-
slugCache:
|
211
|
+
}, K = ({
|
212
|
+
vizId: t,
|
213
|
+
slugCache: e
|
214
214
|
}) => ({
|
215
215
|
name: "vizResolve",
|
216
216
|
resolveId: async (n, r) => {
|
@@ -220,31 +220,31 @@ export { csvParse, tsvParse };`, Y = (e) => (
|
|
220
220
|
const {
|
221
221
|
vizId: i,
|
222
222
|
fileName: a
|
223
|
-
} =
|
223
|
+
} = b(r), c = a.split("/").slice(0, -1).join("/"), l = c ? `${c}/${s}` : s;
|
224
224
|
return `${i}/${l}`;
|
225
225
|
}
|
226
|
-
return
|
226
|
+
return t + "/" + s;
|
227
227
|
}
|
228
|
-
const o =
|
228
|
+
const o = Z(n);
|
229
229
|
if (o) {
|
230
230
|
let s;
|
231
|
-
if (
|
231
|
+
if (J(o.idOrSlug))
|
232
232
|
s = o.idOrSlug;
|
233
233
|
else {
|
234
|
-
if (!
|
234
|
+
if (!e)
|
235
235
|
throw new Error(
|
236
236
|
"slugCache is required to import by slug in v3 runtime"
|
237
237
|
);
|
238
|
-
s = await
|
238
|
+
s = await e.get(
|
239
239
|
`${o.userName}/${o.idOrSlug}`
|
240
240
|
);
|
241
241
|
}
|
242
242
|
return s + "/index.js";
|
243
243
|
}
|
244
244
|
}
|
245
|
-
}),
|
246
|
-
vizCache:
|
247
|
-
trackCSSImport:
|
245
|
+
}), tt = ({
|
246
|
+
vizCache: t,
|
247
|
+
trackCSSImport: e,
|
248
248
|
vizId: n,
|
249
249
|
files: r
|
250
250
|
}) => ({
|
@@ -252,15 +252,15 @@ export { csvParse, tsvParse };`, Y = (e) => (
|
|
252
252
|
// `id` here is of the form
|
253
253
|
// `{vizId}/{fileName}`
|
254
254
|
load: async (o) => {
|
255
|
-
const s =
|
255
|
+
const s = b(o), i = s.vizId, a = s.fileName;
|
256
256
|
if (a.endsWith(".css"))
|
257
|
-
return
|
257
|
+
return e(o), "";
|
258
258
|
let c = null;
|
259
259
|
if (i === n && r)
|
260
260
|
c = r[a] || null;
|
261
261
|
else {
|
262
|
-
const l = await
|
263
|
-
c =
|
262
|
+
const l = await t.get(i);
|
263
|
+
c = L(l, a);
|
264
264
|
}
|
265
265
|
if (c === null)
|
266
266
|
throw new Error(
|
@@ -268,112 +268,112 @@ export { csvParse, tsvParse };`, Y = (e) => (
|
|
268
268
|
);
|
269
269
|
return c;
|
270
270
|
}
|
271
|
-
}),
|
271
|
+
}), P = /* @__PURE__ */ new Map();
|
272
272
|
let I;
|
273
|
-
const
|
274
|
-
getSvelteCompiler:
|
273
|
+
const x = "https://cdn.jsdelivr.net/npm/svelte@4.2.9", Ct = `${x}/compiler.cjs`, et = ({
|
274
|
+
getSvelteCompiler: t
|
275
275
|
}) => ({
|
276
276
|
name: "transformSvelte",
|
277
|
-
load: async (
|
278
|
-
if (!
|
277
|
+
load: async (e) => {
|
278
|
+
if (!e.startsWith(x))
|
279
279
|
return;
|
280
|
-
const n =
|
280
|
+
const n = P.get(e);
|
281
281
|
if (n) return n;
|
282
|
-
const r = await fetch(
|
282
|
+
const r = await fetch(e).then(
|
283
283
|
(o) => o.text()
|
284
284
|
);
|
285
|
-
return
|
285
|
+
return P.set(e, r), r;
|
286
286
|
},
|
287
287
|
// From https://github.com/sveltejs/sites/blob/master/packages/repl/src/lib/workers/bundler/index.js#L255C2-L271C5
|
288
|
-
resolveId: async (
|
289
|
-
if (
|
290
|
-
return `${
|
291
|
-
if (
|
292
|
-
const r =
|
293
|
-
return `${
|
288
|
+
resolveId: async (e, n) => {
|
289
|
+
if (e === "svelte")
|
290
|
+
return `${x}/src/runtime/index.js`;
|
291
|
+
if (e.startsWith("svelte/")) {
|
292
|
+
const r = e.slice(7);
|
293
|
+
return `${x}/src/runtime/${r}/index.js`;
|
294
294
|
}
|
295
|
-
if (/^https?:/.test(
|
296
|
-
if (
|
297
|
-
const r = new URL(
|
298
|
-
return new URL(
|
295
|
+
if (/^https?:/.test(e)) return e;
|
296
|
+
if (e.startsWith(".") && n && n.startsWith(x)) {
|
297
|
+
const r = new URL(e, n).href;
|
298
|
+
return new URL(e, n).href, r;
|
299
299
|
}
|
300
300
|
},
|
301
|
-
transform: async (
|
302
|
-
const { fileName: r } =
|
301
|
+
transform: async (e, n) => {
|
302
|
+
const { fileName: r } = b(n);
|
303
303
|
if (r.endsWith(".svelte")) {
|
304
304
|
if (!I) {
|
305
|
-
if (!
|
305
|
+
if (!t)
|
306
306
|
throw new Error("Svelte compiler not available");
|
307
|
-
I = await
|
307
|
+
I = await t();
|
308
308
|
}
|
309
|
-
return I(
|
309
|
+
return I(e, {
|
310
310
|
filename: r,
|
311
311
|
hydratable: !0
|
312
312
|
}).js;
|
313
313
|
}
|
314
314
|
}
|
315
|
-
}),
|
316
|
-
files:
|
317
|
-
rollup:
|
315
|
+
}), nt = async ({
|
316
|
+
files: t,
|
317
|
+
rollup: e,
|
318
318
|
enableSourcemap: n = !0,
|
319
319
|
vizCache: r,
|
320
320
|
vizId: o,
|
321
321
|
slugCache: s,
|
322
322
|
getSvelteCompiler: i
|
323
323
|
}) => {
|
324
|
-
const a = /* @__PURE__ */ new Set(), c = (
|
325
|
-
a.add(
|
324
|
+
const a = /* @__PURE__ */ new Set(), c = (u) => {
|
325
|
+
a.add(u);
|
326
326
|
};
|
327
|
-
if (!
|
327
|
+
if (!t["index.js"])
|
328
328
|
throw new Error("Missing index.js");
|
329
|
-
const
|
329
|
+
const d = {
|
330
330
|
input: "./index.js",
|
331
331
|
plugins: [
|
332
|
-
...o ? [
|
333
|
-
|
334
|
-
|
335
|
-
|
332
|
+
...o ? [K({ vizId: o, slugCache: s })] : [],
|
333
|
+
X(),
|
334
|
+
C(),
|
335
|
+
et({ getSvelteCompiler: i }),
|
336
336
|
...r ? [
|
337
|
-
|
337
|
+
tt({
|
338
338
|
vizCache: r,
|
339
339
|
trackCSSImport: c,
|
340
340
|
vizId: o,
|
341
|
-
files:
|
341
|
+
files: t
|
342
342
|
})
|
343
343
|
] : []
|
344
344
|
],
|
345
|
-
onwarn(
|
346
|
-
|
345
|
+
onwarn(u, f) {
|
346
|
+
u.code !== "UNRESOLVED_IMPORT" && f(u);
|
347
347
|
}
|
348
|
-
},
|
348
|
+
}, m = {
|
349
349
|
format: "umd",
|
350
350
|
name: "Viz",
|
351
351
|
sourcemap: !!n,
|
352
352
|
compact: !0
|
353
|
-
},
|
354
|
-
if (
|
355
|
-
const
|
356
|
-
|
353
|
+
}, w = S(t);
|
354
|
+
if (w) {
|
355
|
+
const u = U(w);
|
356
|
+
u && (d.external = Object.keys(u), m.globals = u);
|
357
357
|
}
|
358
|
-
const
|
358
|
+
const y = await e(d), { output: h } = await y.generate(m);
|
359
359
|
return {
|
360
360
|
src: h[0].code,
|
361
361
|
cssFiles: Array.from(a)
|
362
362
|
};
|
363
363
|
};
|
364
|
-
function
|
364
|
+
function rt() {
|
365
365
|
return Math.random().toString().slice(2, 7);
|
366
366
|
}
|
367
|
-
const
|
368
|
-
cdn:
|
369
|
-
src:
|
367
|
+
const st = ({
|
368
|
+
cdn: t,
|
369
|
+
src: e,
|
370
370
|
styles: n
|
371
371
|
}) => {
|
372
|
-
const o = `viz-container-${
|
372
|
+
const o = `viz-container-${rt()}`;
|
373
373
|
return `<!DOCTYPE html>
|
374
374
|
<html>
|
375
375
|
<head>
|
376
|
-
<meta charset="utf-8">${
|
376
|
+
<meta charset="utf-8">${t}${n}
|
377
377
|
<style>
|
378
378
|
body {
|
379
379
|
margin: 0;
|
@@ -386,7 +386,7 @@ const ne = ({
|
|
386
386
|
</head>
|
387
387
|
<body>
|
388
388
|
<div id="${o}"></div>
|
389
|
-
<script id="injected-script">${
|
389
|
+
<script id="injected-script">${e}<\/script>
|
390
390
|
<script>
|
391
391
|
(() => {
|
392
392
|
let cleanup;
|
@@ -449,18 +449,18 @@ const ne = ({
|
|
449
449
|
<\/script>
|
450
450
|
</body>
|
451
451
|
</html>`;
|
452
|
-
},
|
453
|
-
files:
|
454
|
-
rollup:
|
452
|
+
}, ot = async ({
|
453
|
+
files: t,
|
454
|
+
rollup: e,
|
455
455
|
enableSourcemap: n = !0,
|
456
456
|
vizCache: r,
|
457
457
|
vizId: o,
|
458
458
|
slugCache: s,
|
459
459
|
getSvelteCompiler: i
|
460
460
|
}) => {
|
461
|
-
const { src: a, cssFiles: c } = await
|
462
|
-
files:
|
463
|
-
rollup:
|
461
|
+
const { src: a, cssFiles: c } = await nt({
|
462
|
+
files: t,
|
463
|
+
rollup: e,
|
464
464
|
enableSourcemap: n,
|
465
465
|
vizCache: r,
|
466
466
|
vizId: o,
|
@@ -470,55 +470,55 @@ const ne = ({
|
|
470
470
|
let l = [];
|
471
471
|
if (c.length > 0)
|
472
472
|
for (let h = 0; h < c.length; h++) {
|
473
|
-
const
|
474
|
-
let
|
475
|
-
if (
|
476
|
-
|
473
|
+
const u = c[h], f = b(u), E = f.vizId, j = f.fileName;
|
474
|
+
let v = null;
|
475
|
+
if (E === o && t)
|
476
|
+
v = t[j] || null;
|
477
477
|
else {
|
478
|
-
const V = await r.get(
|
479
|
-
|
478
|
+
const V = await r.get(E);
|
479
|
+
v = L(V, j);
|
480
480
|
}
|
481
|
-
|
481
|
+
v && l.push(v);
|
482
482
|
}
|
483
|
-
const
|
484
|
-
`),
|
485
|
-
<style id="injected-style">${
|
486
|
-
let
|
487
|
-
const
|
488
|
-
|
483
|
+
const d = l.join(`
|
484
|
+
`), m = `
|
485
|
+
<style id="injected-style">${d}</style>`;
|
486
|
+
let w = "";
|
487
|
+
const y = Object.entries(
|
488
|
+
R(t)
|
489
489
|
);
|
490
|
-
if (
|
491
|
-
const h =
|
492
|
-
|
493
|
-
const
|
494
|
-
{ name:
|
490
|
+
if (y.length > 0) {
|
491
|
+
const h = T(t);
|
492
|
+
w = y.map(([u, f], E) => {
|
493
|
+
const j = F(
|
494
|
+
{ name: u, version: f },
|
495
495
|
h
|
496
496
|
);
|
497
|
-
return `${
|
498
|
-
`}<script src="${
|
497
|
+
return `${E > 0 ? " " : `
|
498
|
+
`}<script src="${j}"><\/script>`;
|
499
499
|
}).join("");
|
500
500
|
}
|
501
501
|
return {
|
502
|
-
html:
|
503
|
-
css:
|
502
|
+
html: st({ cdn: w, src: a, styles: m }),
|
503
|
+
css: d,
|
504
504
|
js: a
|
505
505
|
};
|
506
|
-
},
|
507
|
-
initialContents:
|
508
|
-
handleCacheMiss:
|
506
|
+
}, it = ({
|
507
|
+
initialContents: t,
|
508
|
+
handleCacheMiss: e
|
509
509
|
}) => {
|
510
510
|
const n = new Map(
|
511
|
-
|
511
|
+
t.map((i) => [i.id, i])
|
512
512
|
);
|
513
513
|
return { get: async (i) => {
|
514
514
|
const a = n.get(i);
|
515
515
|
if (a !== void 0)
|
516
516
|
return a;
|
517
|
-
if (!
|
517
|
+
if (!e)
|
518
518
|
throw new Error(
|
519
519
|
`Unresolved import from vizId ${i}, cache miss handler not provided.`
|
520
520
|
);
|
521
|
-
const c = await
|
521
|
+
const c = await e(i);
|
522
522
|
if (c)
|
523
523
|
return n.set(i, c), c;
|
524
524
|
throw new Error(
|
@@ -529,159 +529,281 @@ const ne = ({
|
|
529
529
|
}, invalidate: (i) => {
|
530
530
|
n.delete(i);
|
531
531
|
} };
|
532
|
-
},
|
533
|
-
initialMappings:
|
534
|
-
handleCacheMiss:
|
532
|
+
}, Rt = ({
|
533
|
+
initialMappings: t = {},
|
534
|
+
handleCacheMiss: e
|
535
535
|
}) => ({ get: async (s) => {
|
536
|
-
const i =
|
536
|
+
const i = t[s];
|
537
537
|
if (i !== void 0)
|
538
538
|
return i;
|
539
|
-
if (!
|
539
|
+
if (!e)
|
540
540
|
throw new Error(
|
541
541
|
`Unresolved slug ${s}, cache miss handler not provided.`
|
542
542
|
);
|
543
|
-
const a = await
|
543
|
+
const a = await e(s);
|
544
544
|
if (a)
|
545
|
-
return
|
545
|
+
return t[s] = a, a;
|
546
546
|
throw new Error(`Unresolved slug ${s}`);
|
547
547
|
}, set: (s, i) => {
|
548
|
-
|
548
|
+
t[s] = i;
|
549
549
|
}, invalidate: (s) => {
|
550
|
-
delete
|
551
|
-
} }),
|
550
|
+
delete t[s];
|
551
|
+
} }), ct = (t, e = "Sample Content for Exporting", n = D()) => ({
|
552
552
|
id: n,
|
553
|
-
files:
|
554
|
-
title:
|
555
|
-
}),
|
556
|
-
if (Object.keys(
|
553
|
+
files: B(t),
|
554
|
+
title: e
|
555
|
+
}), at = (t) => {
|
556
|
+
if (Object.keys(t).length === 0)
|
557
557
|
return null;
|
558
|
-
const
|
559
|
-
return
|
560
|
-
},
|
561
|
-
const
|
562
|
-
return
|
563
|
-
},
|
558
|
+
const e = "index.html" in t, n = "index.js" in t, r = "index.jsx" in t;
|
559
|
+
return e ? t["index.html"].includes('type="module"') ? "v4" : n || r ? "v2" : "v1" : !e && n ? "v3" : null;
|
560
|
+
}, O = (t, e) => new RegExp(`<${e}\\b`, "i").test(t) && new RegExp(`</${e}>`, "i").test(t), lt = (t) => {
|
561
|
+
const e = t.trim();
|
562
|
+
return O(e, "html") && O(e, "head") && O(e, "body") ? e : `<html><head></head><body>${e}</body></html>`;
|
563
|
+
}, ut = (t, e) => t.replace(
|
564
564
|
new RegExp(
|
565
|
-
`<script[^>]*src=["'][^"']*${
|
565
|
+
`<script[^>]*src=["'][^"']*${e.source}[^"']*["'][^>]*>\\s*<\/script>`,
|
566
566
|
"gi"
|
567
567
|
),
|
568
568
|
""
|
569
|
-
),
|
570
|
-
new RegExp(
|
571
|
-
`${n}${
|
572
|
-
),
|
573
|
-
let n =
|
574
|
-
const r = Object.entries(
|
569
|
+
), W = (t, e, n) => t.replace(
|
570
|
+
new RegExp(e, "i"),
|
571
|
+
`${n}${e}`
|
572
|
+
), dt = (t, e) => {
|
573
|
+
let n = lt(t);
|
574
|
+
const r = Object.entries(R(e));
|
575
575
|
if (r.length) {
|
576
|
-
const s =
|
576
|
+
const s = T(e);
|
577
577
|
r.forEach(([a]) => {
|
578
|
-
n =
|
578
|
+
n = ut(n, new RegExp(`${a}@`));
|
579
579
|
});
|
580
580
|
const i = r.map(
|
581
|
-
([a, c]) =>
|
581
|
+
([a, c]) => F({ name: a, version: c }, s)
|
582
582
|
).map((a) => `<script src="${a}"><\/script>`).join(`
|
583
583
|
`);
|
584
|
-
n =
|
584
|
+
n = W(
|
585
585
|
n,
|
586
586
|
"</head>",
|
587
587
|
i + `
|
588
588
|
`
|
589
589
|
);
|
590
590
|
}
|
591
|
-
if (
|
591
|
+
if (e["bundle.js"] !== void 0 || e["index.js"] !== void 0) {
|
592
592
|
const s = '<script src="bundle.js"><\/script>', i = /<script\b[^>]*\bsrc=["']bundle\.js["'][^>]*>\s*<\/script>/gi, a = [...n.matchAll(i)];
|
593
593
|
a.length === 1 && (() => {
|
594
594
|
const l = a[0].index ?? -1;
|
595
595
|
if (l === -1) return !1;
|
596
|
-
const
|
597
|
-
return
|
598
|
-
})() || (n = n.replace(i, ""), n =
|
596
|
+
const d = n.search(/<body\b[^>]*>/i), m = n.search(/<\/body>/i);
|
597
|
+
return d !== -1 && m !== -1 && l > d && l < m;
|
598
|
+
})() || (n = n.replace(i, ""), n = W(n, "</body>", s));
|
599
599
|
}
|
600
600
|
return /^\s*<!DOCTYPE/i.test(n) ? n : `<!DOCTYPE html>${n}`;
|
601
|
-
},
|
602
|
-
const
|
603
|
-
return !
|
604
|
-
}, p = "\0virtual:",
|
605
|
-
let
|
606
|
-
return
|
607
|
-
},
|
608
|
-
const n =
|
601
|
+
}, pt = (t) => {
|
602
|
+
const e = t["index.html"];
|
603
|
+
return !e && !t["index.js"] && !t["bundle.js"] ? "" : dt(e || "<!DOCTYPE html><html><head></head><body></body></html>", t);
|
604
|
+
}, p = "\0virtual:", k = (t) => {
|
605
|
+
let e = t.replace(/^\.\//, "");
|
606
|
+
return e = e.replace(/\/+/g, "/"), e = e.replace(/\/$/, ""), e;
|
607
|
+
}, mt = (t, e) => {
|
608
|
+
const n = t.includes("/") ? t.slice(0, t.lastIndexOf("/")) : "", r = e.split("/"), o = n ? n.split("/") : [];
|
609
609
|
for (const s of r)
|
610
610
|
s === ".." ? o.pop() : s !== "." && s !== "" && o.push(s);
|
611
611
|
return o.join("/");
|
612
|
-
},
|
612
|
+
}, z = (t) => ({
|
613
613
|
name: "virtual-file-system",
|
614
|
-
resolveId(
|
614
|
+
resolveId(e, n) {
|
615
615
|
const r = n != null && n.startsWith(
|
616
616
|
p
|
617
617
|
) ? n.slice(p.length) : n;
|
618
|
-
if (
|
619
|
-
const s =
|
620
|
-
if (
|
618
|
+
if (e.startsWith("./") || e.startsWith("../")) {
|
619
|
+
const s = k(r ? mt(r, e) : e);
|
620
|
+
if (t[s])
|
621
621
|
return p + s;
|
622
622
|
const i = [".js", ".jsx", ".ts", ".tsx"];
|
623
623
|
for (const a of i) {
|
624
624
|
const c = s + a;
|
625
|
-
if (
|
625
|
+
if (t[c])
|
626
626
|
return p + c;
|
627
627
|
}
|
628
628
|
}
|
629
|
-
if (e
|
630
|
-
return p +
|
629
|
+
if (t[e])
|
630
|
+
return p + e;
|
631
631
|
const o = [".js", ".jsx", ".ts", ".tsx"];
|
632
632
|
for (const s of o) {
|
633
|
-
const i =
|
634
|
-
if (
|
633
|
+
const i = e + s;
|
634
|
+
if (t[i])
|
635
635
|
return p + i;
|
636
636
|
}
|
637
637
|
return null;
|
638
638
|
},
|
639
|
-
load(
|
640
|
-
if (
|
641
|
-
const n =
|
642
|
-
if (
|
643
|
-
return
|
639
|
+
load(e) {
|
640
|
+
if (e.startsWith(p)) {
|
641
|
+
const n = e.slice(p.length);
|
642
|
+
if (t[n])
|
643
|
+
return t[n];
|
644
644
|
}
|
645
645
|
return null;
|
646
646
|
}
|
647
|
-
}),
|
648
|
-
files:
|
649
|
-
rollup:
|
647
|
+
}), ht = async ({
|
648
|
+
files: t,
|
649
|
+
rollup: e,
|
650
650
|
enableSourcemap: n = !0
|
651
651
|
}) => {
|
652
|
-
if (!
|
652
|
+
if (!t["index.js"])
|
653
653
|
throw new Error("Missing index.js");
|
654
654
|
const o = {
|
655
655
|
input: "./index.js",
|
656
|
-
plugins: [
|
657
|
-
onwarn(l,
|
658
|
-
l.code !== "UNRESOLVED_IMPORT" &&
|
656
|
+
plugins: [z(t), C()],
|
657
|
+
onwarn(l, d) {
|
658
|
+
l.code !== "UNRESOLVED_IMPORT" && d(l);
|
659
659
|
}
|
660
660
|
}, s = {
|
661
661
|
format: "iife",
|
662
662
|
sourcemap: n
|
663
|
-
}, i = S(
|
663
|
+
}, i = S(t);
|
664
664
|
if (i) {
|
665
|
-
const l =
|
665
|
+
const l = U(i);
|
666
666
|
l && (o.external = Object.keys(l), s.globals = l);
|
667
667
|
}
|
668
|
-
const a = await
|
668
|
+
const a = await e(o), { output: c } = await a.generate(s);
|
669
669
|
return c[0].code;
|
670
|
-
},
|
671
|
-
files:
|
672
|
-
rollup:
|
670
|
+
}, ft = async ({
|
671
|
+
files: t,
|
672
|
+
rollup: e,
|
673
673
|
enableSourcemap: n
|
674
674
|
}) => ({
|
675
|
-
...
|
676
|
-
"bundle.js": await
|
677
|
-
files:
|
678
|
-
rollup:
|
675
|
+
...t,
|
676
|
+
"bundle.js": await ht({
|
677
|
+
files: t,
|
678
|
+
rollup: e,
|
679
679
|
enableSourcemap: n
|
680
680
|
}),
|
681
|
-
"index.html":
|
682
|
-
}),
|
681
|
+
"index.html": pt(t)
|
682
|
+
}), wt = (t) => {
|
683
|
+
const e = [], n = /<script\b([^>]*)>[\s\S]*?<\/script>/gi;
|
684
|
+
let r;
|
685
|
+
for (; (r = n.exec(t)) !== null; ) {
|
686
|
+
const o = r[1];
|
687
|
+
if (!/\btype\s*=\s*["']module["']/i.test(o))
|
688
|
+
continue;
|
689
|
+
const s = o.match(
|
690
|
+
/\bsrc\s*=\s*["']([^"']+)["']/i
|
691
|
+
);
|
692
|
+
s && e.push(s[1]);
|
693
|
+
}
|
694
|
+
return e;
|
695
|
+
}, vt = () => ({
|
696
|
+
name: "catch-all-prevent-fs",
|
697
|
+
resolveId(t, e) {
|
698
|
+
return { id: t, external: !0 };
|
699
|
+
}
|
700
|
+
}), gt = async ({
|
701
|
+
entryPoint: t,
|
683
702
|
files: e,
|
684
|
-
rollup:
|
703
|
+
rollup: n,
|
704
|
+
enableSourcemap: r = !0
|
705
|
+
}) => {
|
706
|
+
const s = {
|
707
|
+
input: t.startsWith("./") ? t : `./${t}`,
|
708
|
+
plugins: [
|
709
|
+
z(e),
|
710
|
+
C({
|
711
|
+
// Enable JSX runtime
|
712
|
+
// so we don't need to import React
|
713
|
+
// in every file that uses JSX
|
714
|
+
jsxRuntime: "automatic"
|
715
|
+
}),
|
716
|
+
vt()
|
717
|
+
],
|
718
|
+
// external: (source: string) => {
|
719
|
+
// DEBUG && console.log("external", source);
|
720
|
+
// // Handle strings resolved by `virtualFileSystem`.
|
721
|
+
// const isVirtualFile = source.startsWith("./");
|
722
|
+
// // Handle external dependencies, e.g. from import maps.
|
723
|
+
// const isLibrary = !source.startsWith("./");
|
724
|
+
// const isExternal = !isVirtualFile || isLibrary;
|
725
|
+
// DEBUG && console.log("isExternal", isExternal);
|
726
|
+
// return isExternal;
|
727
|
+
// },
|
728
|
+
onwarn(c, l) {
|
729
|
+
}
|
730
|
+
}, i = await n(s), { output: a } = await i.generate({
|
731
|
+
format: "es",
|
732
|
+
sourcemap: r
|
733
|
+
});
|
734
|
+
return a[0].code;
|
735
|
+
}, N = (t, e) => new RegExp(`<${e}\\b`, "i").test(t) && new RegExp(`</${e}>`, "i").test(t), xt = (t) => {
|
736
|
+
const e = t.trim();
|
737
|
+
return N(e, "html") && N(e, "head") && N(e, "body") ? e : `<html><head></head><body>${e}</body></html>`;
|
738
|
+
}, bt = (t) => t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), yt = (t, e, n) => t.replace(
|
739
|
+
new RegExp(e, "i"),
|
740
|
+
`${n}${e}`
|
741
|
+
), Et = (t) => {
|
742
|
+
const e = R(t);
|
743
|
+
if (Object.keys(e).length === 0) return null;
|
744
|
+
const n = T(t), r = {};
|
745
|
+
for (const [o, s] of Object.entries(e))
|
746
|
+
r[o] = F(
|
747
|
+
{ name: o, version: s },
|
748
|
+
n
|
749
|
+
);
|
750
|
+
return JSON.stringify({ imports: r }, null, 2);
|
751
|
+
}, jt = (t, e) => {
|
752
|
+
if (!t["index.html"]) return "";
|
753
|
+
let n = xt(t["index.html"]);
|
754
|
+
e.forEach((o, s) => {
|
755
|
+
const i = new RegExp(
|
756
|
+
`<script\\b[^>]*\\bsrc=["']${bt(s)}["'][^>]*>[^<]*<\/script>`,
|
757
|
+
"gi"
|
758
|
+
);
|
759
|
+
n = n.replace(
|
760
|
+
i,
|
761
|
+
`<script type="module">
|
762
|
+
${o}
|
763
|
+
<\/script>`
|
764
|
+
);
|
765
|
+
});
|
766
|
+
const r = Et(t);
|
767
|
+
if (r && !/<script\b[^>]*type=["']importmap["'][^>]*>/i.test(
|
768
|
+
n
|
769
|
+
)) {
|
770
|
+
const s = `<script type="importmap">
|
771
|
+
${r}
|
772
|
+
<\/script>
|
773
|
+
`;
|
774
|
+
n = yt(
|
775
|
+
n,
|
776
|
+
"</head>",
|
777
|
+
s
|
778
|
+
);
|
779
|
+
}
|
780
|
+
return /^\s*<!DOCTYPE/i.test(n) ? n : `<!DOCTYPE html>${n}`;
|
781
|
+
}, St = async ({
|
782
|
+
files: t,
|
783
|
+
rollup: e,
|
784
|
+
enableSourcemap: n = !0
|
785
|
+
}) => {
|
786
|
+
const r = t["index.html"] || "", o = wt(r);
|
787
|
+
if (o.length === 0)
|
788
|
+
return t;
|
789
|
+
const s = /* @__PURE__ */ new Map();
|
790
|
+
for (const a of o) {
|
791
|
+
const c = await gt({
|
792
|
+
entryPoint: a,
|
793
|
+
files: t,
|
794
|
+
rollup: e,
|
795
|
+
enableSourcemap: n
|
796
|
+
});
|
797
|
+
s.set(a, c);
|
798
|
+
}
|
799
|
+
const i = jt(t, s);
|
800
|
+
return {
|
801
|
+
...t,
|
802
|
+
"index.html": i
|
803
|
+
};
|
804
|
+
}, g = !1, Tt = async ({
|
805
|
+
files: t,
|
806
|
+
rollup: e,
|
685
807
|
enableSourcemap: n = !0,
|
686
808
|
vizCache: r,
|
687
809
|
vizId: o,
|
@@ -690,45 +812,45 @@ const ne = ({
|
|
690
812
|
}) => {
|
691
813
|
var a;
|
692
814
|
try {
|
693
|
-
if (
|
815
|
+
if (g && console.log(
|
694
816
|
"[build] files:",
|
695
|
-
|
696
|
-
),
|
817
|
+
t ? JSON.stringify(t).substring(0, 100) : void 0
|
818
|
+
), g && console.log("[build] vizCache:", r), g && console.log("[build] vizId:", o), !t && !r)
|
697
819
|
throw new Error(
|
698
820
|
"Either files or vizCache is required"
|
699
821
|
);
|
700
|
-
if (!
|
822
|
+
if (!t && r && !o)
|
701
823
|
throw new Error(
|
702
824
|
"vizId is required when using vizCache"
|
703
825
|
);
|
704
|
-
if (!
|
826
|
+
if (!t && r && o && (t = A(
|
705
827
|
(a = await r.get(o)) == null ? void 0 : a.files
|
706
|
-
)), !
|
828
|
+
)), !t)
|
707
829
|
throw new Error("Upable to extract viz files");
|
708
|
-
const c =
|
709
|
-
if (
|
830
|
+
const c = at(t);
|
831
|
+
if (g && console.log("[build] version:", c), c === "v1")
|
710
832
|
return {
|
711
|
-
html:
|
833
|
+
html: $(t)
|
712
834
|
};
|
713
835
|
if (c === "v2") {
|
714
|
-
if (!
|
836
|
+
if (!e)
|
715
837
|
throw new Error(
|
716
838
|
"Rollup is required for v2 runtime"
|
717
839
|
);
|
718
840
|
return {
|
719
|
-
html:
|
720
|
-
await
|
841
|
+
html: $(
|
842
|
+
await ft({ files: t, rollup: e, enableSourcemap: n })
|
721
843
|
)
|
722
844
|
};
|
723
845
|
}
|
724
846
|
if (c === "v3") {
|
725
|
-
if (!
|
847
|
+
if (!e)
|
726
848
|
throw new Error(
|
727
849
|
"Rollup is required for v3 runtime"
|
728
850
|
);
|
729
851
|
if (!r && !o) {
|
730
|
-
const l =
|
731
|
-
o = l.id, r =
|
852
|
+
const l = ct(t);
|
853
|
+
o = l.id, r = it({
|
732
854
|
initialContents: [l],
|
733
855
|
handleCacheMiss: async () => {
|
734
856
|
throw new Error(
|
@@ -745,15 +867,30 @@ const ne = ({
|
|
745
867
|
throw new Error(
|
746
868
|
"vizId is required for v3 runtime if vizCache is provided"
|
747
869
|
);
|
748
|
-
return await
|
749
|
-
files:
|
750
|
-
rollup:
|
870
|
+
return await ot({
|
871
|
+
files: t,
|
872
|
+
rollup: e,
|
751
873
|
vizCache: r,
|
752
874
|
vizId: o,
|
753
875
|
slugCache: s,
|
754
876
|
getSvelteCompiler: i
|
755
877
|
});
|
756
878
|
}
|
879
|
+
if (c === "v4") {
|
880
|
+
if (!e)
|
881
|
+
throw new Error(
|
882
|
+
"Rollup is required for v4 runtime"
|
883
|
+
);
|
884
|
+
return g && console.log("[build] v4Build", {
|
885
|
+
files: t,
|
886
|
+
rollup: e,
|
887
|
+
enableSourcemap: n
|
888
|
+
}), {
|
889
|
+
html: $(
|
890
|
+
await St({ files: t, rollup: e, enableSourcemap: n })
|
891
|
+
)
|
892
|
+
};
|
893
|
+
}
|
757
894
|
throw new Error(
|
758
895
|
`Unsupported runtime version: ${c}`
|
759
896
|
);
|
@@ -765,14 +902,14 @@ const ne = ({
|
|
765
902
|
}
|
766
903
|
};
|
767
904
|
export {
|
768
|
-
|
769
|
-
|
770
|
-
|
771
|
-
|
772
|
-
|
773
|
-
|
774
|
-
|
775
|
-
|
776
|
-
|
905
|
+
it as a,
|
906
|
+
Tt as b,
|
907
|
+
nt as c,
|
908
|
+
at as d,
|
909
|
+
Rt as e,
|
910
|
+
ct as f,
|
911
|
+
Nt as g,
|
912
|
+
Ct as s,
|
913
|
+
ot as v
|
777
914
|
};
|
778
|
-
//# sourceMappingURL=build-
|
915
|
+
//# sourceMappingURL=build-H5Rfq113.js.map
|