@vizhub/runtime 4.0.1 → 4.0.3

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.
@@ -1,14 +1,14 @@
1
1
  import { magicSandbox as $ } from "magic-sandbox";
2
- import { isVizId as V, 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 = {}) {
2
+ import { isVizId as B, getFileText as k, generateVizId as A, fileCollectionToVizFiles as q, vizFilesToFileCollection as _ } from "@vizhub/viz-utils";
3
+ import { transform as G } from "sucrase";
4
+ const Lt = () => (Math.random() + "").slice(2);
5
+ function R(t = {}) {
6
6
  return {
7
7
  name: "sucrase",
8
8
  transform(e, n) {
9
9
  if (!n.match(/\.(?:js|[jt]sx)$/))
10
10
  return null;
11
- const r = q(e, {
11
+ const r = G(e, {
12
12
  transforms: ["jsx", "typescript"],
13
13
  // For source maps
14
14
  filePath: n,
@@ -25,45 +25,45 @@ function C(t = {}) {
25
25
  }
26
26
  };
27
27
  }
28
- const P = {
28
+ const L = {
29
29
  dependencies: {},
30
30
  vizhub: {},
31
31
  license: "MIT"
32
- }, _ = !1, S = (t) => {
32
+ }, Y = !1, S = (t) => {
33
33
  const e = t["package.json"];
34
34
  try {
35
- const n = e ? JSON.parse(e) : P;
36
- return _ && console.log(
35
+ const n = e ? JSON.parse(e) : L;
36
+ return Y && console.log(
37
37
  "[packageJSON] pkg:",
38
38
  JSON.stringify(n, null, 2)
39
39
  ), n;
40
40
  } catch {
41
- return P;
41
+ return L;
42
42
  }
43
- }, R = (t) => S(t).dependencies || {}, T = (t) => (S(t).vizhub || {}).libraries || {}, F = ({ name: t, version: e }, n, r = "jsdelivr") => {
43
+ }, T = (t) => S(t).dependencies || {}, z = (t) => (S(t).vizhub || {}).libraries || {}, F = ({ name: t, version: e }, n, r = "jsdelivr") => {
44
44
  const o = n[t] && n[t].path || "";
45
45
  return r === "jsdelivr" ? `https://cdn.jsdelivr.net/npm/${t}@${e}${o}` : `https://unpkg.com/${t}@${e}${o}`;
46
- }, G = (t) => {
46
+ }, H = (t) => {
47
47
  var n;
48
48
  const e = (n = t == null ? void 0 : t.vizhub) == null ? void 0 : n.libraries;
49
49
  return e ? Object.entries(e).reduce(
50
50
  (r, [o, s]) => (s.global && (r[o] = s.global), r),
51
51
  {}
52
52
  ) : {};
53
- }, Y = {
53
+ }, Q = {
54
54
  d3: "d3",
55
55
  react: "React",
56
56
  "react-dom": "ReactDOM"
57
57
  }, U = (t) => {
58
- const e = G(t);
58
+ const e = H(t);
59
59
  return {
60
- ...Y,
60
+ ...Q,
61
61
  ...e
62
62
  };
63
- }, b = (t) => {
63
+ }, x = (t) => {
64
64
  const [e, ...n] = t.split("/"), r = n.join("/");
65
65
  return { vizId: e, fileName: r };
66
- }, H = `var EOL = {},
66
+ }, X = `var EOL = {},
67
67
  EOF = {},
68
68
  QUOTE = 34,
69
69
  NEWLINE = 10,
@@ -183,32 +183,32 @@ var tsv = dsv(' ');
183
183
 
184
184
  var tsvParse = tsv.parse;
185
185
 
186
- export { csvParse, tsvParse };`, Q = (t) => (
186
+ export { csvParse, tsvParse };`, Z = (t) => (
187
187
  // str.replace(/`/g, '\\`');
188
188
  t.replace(/\\/g, "\\\\").replace(/`/g, "\\`")
189
- ), X = () => ({
189
+ ), K = () => ({
190
190
  name: "transformDSV",
191
191
  // `id` here is of the form
192
192
  // `{vizId}/{fileName}`
193
193
  transform: async (t, e) => {
194
- const { fileName: n } = b(e), r = n.endsWith(".csv"), o = n.endsWith(".tsv");
194
+ const { fileName: n } = x(e), r = n.endsWith(".csv"), o = n.endsWith(".tsv");
195
195
  if (r || o)
196
196
  return {
197
197
  code: `
198
- ${H}
199
- const data = ${r ? "csvParse" : "tsvParse"}(\`${Q(t)}\`);
198
+ ${X}
199
+ const data = ${r ? "csvParse" : "tsvParse"}(\`${Z(t)}\`);
200
200
  export default data;
201
201
  `,
202
202
  map: { mappings: "" }
203
203
  };
204
204
  }
205
- }), Z = (t) => {
205
+ }), tt = (t) => {
206
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
- }, K = ({
211
+ }, et = ({
212
212
  vizId: t,
213
213
  slugCache: e
214
214
  }) => ({
@@ -219,16 +219,16 @@ export { csvParse, tsvParse };`, Q = (t) => (
219
219
  if (!s.endsWith(".js") && !s.endsWith(".css") && !s.endsWith(".csv") && !s.endsWith(".svelte") && (s += ".js"), r) {
220
220
  const {
221
221
  vizId: i,
222
- fileName: c
223
- } = b(r), a = c.split("/").slice(0, -1).join("/"), l = a ? `${a}/${s}` : s;
224
- return `${i}/${l}`;
222
+ fileName: a
223
+ } = x(r), c = a.split("/").slice(0, -1).join("/"), d = c ? `${c}/${s}` : s;
224
+ return `${i}/${d}`;
225
225
  }
226
226
  return t + "/" + s;
227
227
  }
228
- const o = Z(n);
228
+ const o = tt(n);
229
229
  if (o) {
230
230
  let s;
231
- if (V(o.idOrSlug))
231
+ if (B(o.idOrSlug))
232
232
  s = o.idOrSlug;
233
233
  else {
234
234
  if (!e)
@@ -242,7 +242,7 @@ export { csvParse, tsvParse };`, Q = (t) => (
242
242
  return s + "/index.js";
243
243
  }
244
244
  }
245
- }), tt = ({
245
+ }), nt = ({
246
246
  vizCache: t,
247
247
  trackCSSImport: e,
248
248
  vizId: n,
@@ -252,30 +252,30 @@ export { csvParse, tsvParse };`, Q = (t) => (
252
252
  // `id` here is of the form
253
253
  // `{vizId}/{fileName}`
254
254
  load: async (o) => {
255
- const s = b(o), i = s.vizId, c = s.fileName;
256
- if (c.endsWith(".css"))
255
+ const s = x(o), i = s.vizId, a = s.fileName;
256
+ if (a.endsWith(".css"))
257
257
  return e(o), "";
258
- let a = null;
258
+ let c = null;
259
259
  if (i === n && r)
260
- a = r[c] || null;
260
+ c = r[a] || null;
261
261
  else {
262
- const l = await t.get(i);
263
- a = L(l, c);
262
+ const d = await t.get(i);
263
+ c = k(d, a);
264
264
  }
265
- if (a === null)
265
+ if (c === null)
266
266
  throw new Error(
267
- `Imported file "${c}" not found.`
267
+ `Imported file "${a}" not found.`
268
268
  );
269
- return a;
269
+ return c;
270
270
  }
271
271
  }), M = /* @__PURE__ */ new Map();
272
272
  let I;
273
- const x = "https://cdn.jsdelivr.net/npm/svelte@4.2.9", Ct = `${x}/compiler.cjs`, et = ({
273
+ const b = "https://cdn.jsdelivr.net/npm/svelte@4.2.9", Mt = `${b}/compiler.cjs`, rt = ({
274
274
  getSvelteCompiler: t
275
275
  }) => ({
276
276
  name: "transformSvelte",
277
277
  load: async (e) => {
278
- if (!e.startsWith(x))
278
+ if (!e.startsWith(b))
279
279
  return;
280
280
  const n = M.get(e);
281
281
  if (n) return n;
@@ -287,19 +287,19 @@ const x = "https://cdn.jsdelivr.net/npm/svelte@4.2.9", Ct = `${x}/compiler.cjs`,
287
287
  // From https://github.com/sveltejs/sites/blob/master/packages/repl/src/lib/workers/bundler/index.js#L255C2-L271C5
288
288
  resolveId: async (e, n) => {
289
289
  if (e === "svelte")
290
- return `${x}/src/runtime/index.js`;
290
+ return `${b}/src/runtime/index.js`;
291
291
  if (e.startsWith("svelte/")) {
292
292
  const r = e.slice(7);
293
- return `${x}/src/runtime/${r}/index.js`;
293
+ return `${b}/src/runtime/${r}/index.js`;
294
294
  }
295
295
  if (/^https?:/.test(e)) return e;
296
- if (e.startsWith(".") && n && n.startsWith(x)) {
296
+ if (e.startsWith(".") && n && n.startsWith(b)) {
297
297
  const r = new URL(e, n).href;
298
298
  return new URL(e, n).href, r;
299
299
  }
300
300
  },
301
301
  transform: async (e, n) => {
302
- const { fileName: r } = b(n);
302
+ const { fileName: r } = x(n);
303
303
  if (r.endsWith(".svelte")) {
304
304
  if (!I) {
305
305
  if (!t)
@@ -312,7 +312,7 @@ const x = "https://cdn.jsdelivr.net/npm/svelte@4.2.9", Ct = `${x}/compiler.cjs`,
312
312
  }).js;
313
313
  }
314
314
  }
315
- }), nt = async ({
315
+ }), st = async ({
316
316
  files: t,
317
317
  rollup: e,
318
318
  enableSourcemap: n = !0,
@@ -321,55 +321,55 @@ const x = "https://cdn.jsdelivr.net/npm/svelte@4.2.9", Ct = `${x}/compiler.cjs`,
321
321
  slugCache: s,
322
322
  getSvelteCompiler: i
323
323
  }) => {
324
- const c = /* @__PURE__ */ new Set(), a = (d) => {
325
- c.add(d);
324
+ const a = /* @__PURE__ */ new Set(), c = (u) => {
325
+ a.add(u);
326
326
  };
327
327
  if (!t["index.js"])
328
328
  throw new Error("Missing index.js");
329
- const u = {
329
+ const l = {
330
330
  input: "./index.js",
331
331
  plugins: [
332
- ...o ? [K({ vizId: o, slugCache: s })] : [],
333
- X(),
334
- C(),
335
- et({ getSvelteCompiler: i }),
332
+ ...o ? [et({ vizId: o, slugCache: s })] : [],
333
+ K(),
334
+ R(),
335
+ rt({ getSvelteCompiler: i }),
336
336
  ...r ? [
337
- tt({
337
+ nt({
338
338
  vizCache: r,
339
- trackCSSImport: a,
339
+ trackCSSImport: c,
340
340
  vizId: o,
341
341
  files: t
342
342
  })
343
343
  ] : []
344
344
  ],
345
- onwarn(d, h) {
346
- d.code !== "UNRESOLVED_IMPORT" && h(d);
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
- }, w = S(t);
354
- if (w) {
355
- const d = U(w);
356
- d && (u.external = Object.keys(d), m.globals = d);
353
+ }, v = S(t);
354
+ if (v) {
355
+ const u = U(v);
356
+ u && (l.external = Object.keys(u), m.globals = u);
357
357
  }
358
- const y = await e(u), { output: f } = await y.generate(m);
358
+ const y = await e(l), { output: h } = await y.generate(m);
359
359
  return {
360
- src: f[0].code,
361
- cssFiles: Array.from(c)
360
+ src: h[0].code,
361
+ cssFiles: Array.from(a)
362
362
  };
363
363
  };
364
- function rt() {
364
+ function ot() {
365
365
  return Math.random().toString().slice(2, 7);
366
366
  }
367
- const st = ({
367
+ const it = ({
368
368
  cdn: t,
369
369
  src: e,
370
370
  styles: n
371
371
  }) => {
372
- const o = `viz-container-${rt()}`;
372
+ const o = `viz-container-${ot()}`;
373
373
  return `<!DOCTYPE html>
374
374
  <html>
375
375
  <head>
@@ -449,7 +449,7 @@ const st = ({
449
449
  <\/script>
450
450
  </body>
451
451
  </html>`;
452
- }, ot = async ({
452
+ }, ct = async ({
453
453
  files: t,
454
454
  rollup: e,
455
455
  enableSourcemap: n = !0,
@@ -458,7 +458,7 @@ const st = ({
458
458
  slugCache: s,
459
459
  getSvelteCompiler: i
460
460
  }) => {
461
- const { src: c, cssFiles: a } = await nt({
461
+ const { src: a, cssFiles: c } = await st({
462
462
  files: t,
463
463
  rollup: e,
464
464
  enableSourcemap: n,
@@ -467,43 +467,44 @@ const st = ({
467
467
  slugCache: s,
468
468
  getSvelteCompiler: i
469
469
  });
470
- let l = [];
471
- if (a.length > 0)
472
- for (let f = 0; f < a.length; f++) {
473
- const d = a[f], h = b(d), E = h.vizId, j = h.fileName;
474
- let v = null;
470
+ let d = [];
471
+ if (c.length > 0)
472
+ for (let h = 0; h < c.length; h++) {
473
+ const u = c[h], f = x(u), E = f.vizId, j = f.fileName;
474
+ let g = null;
475
475
  if (E === o && t)
476
- v = t[j] || null;
476
+ g = t[j] || null;
477
477
  else {
478
478
  const J = await r.get(E);
479
- v = L(J, j);
479
+ g = k(J, j);
480
480
  }
481
- v && l.push(v);
481
+ g && d.push(g);
482
482
  }
483
- const u = l.join(`
483
+ const l = d.join(`
484
484
  `), m = `
485
- <style id="injected-style">${u}</style>`;
486
- let w = "";
485
+ <style id="injected-style">${l}</style>`;
486
+ let v = "";
487
487
  const y = Object.entries(
488
- R(t)
488
+ T(t)
489
489
  );
490
490
  if (y.length > 0) {
491
- const f = T(t);
492
- w = y.map(([d, h], E) => {
491
+ const h = z(t);
492
+ v = y.map(([u, f], E) => {
493
493
  const j = F(
494
- { name: d, version: h },
495
- f
494
+ { name: u, version: f },
495
+ h
496
496
  );
497
497
  return `${E > 0 ? " " : `
498
498
  `}<script src="${j}"><\/script>`;
499
499
  }).join("");
500
500
  }
501
501
  return {
502
- html: st({ cdn: w, src: c, styles: m }),
503
- css: u,
504
- js: c
502
+ html: it({ cdn: v, src: a, styles: m }),
503
+ css: l,
504
+ js: a,
505
+ runtimeVersion: "v3"
505
506
  };
506
- }, it = ({
507
+ }, at = ({
507
508
  initialContents: t,
508
509
  handleCacheMiss: e
509
510
  }) => {
@@ -511,16 +512,16 @@ const st = ({
511
512
  t.map((i) => [i.id, i])
512
513
  );
513
514
  return { get: async (i) => {
514
- const c = n.get(i);
515
- if (c !== void 0)
516
- return c;
515
+ const a = n.get(i);
516
+ if (a !== void 0)
517
+ return a;
517
518
  if (!e)
518
519
  throw new Error(
519
520
  `Unresolved import from vizId ${i}, cache miss handler not provided.`
520
521
  );
521
- const a = await e(i);
522
- if (a)
523
- return n.set(i, a), a;
522
+ const c = await e(i);
523
+ if (c)
524
+ return n.set(i, c), c;
524
525
  throw new Error(
525
526
  `Unresolved import from vizId ${i}`
526
527
  );
@@ -529,7 +530,7 @@ const st = ({
529
530
  }, invalidate: (i) => {
530
531
  n.delete(i);
531
532
  } };
532
- }, Rt = ({
533
+ }, Pt = ({
533
534
  initialMappings: t = {},
534
535
  handleCacheMiss: e
535
536
  }) => ({ get: async (s) => {
@@ -540,48 +541,48 @@ const st = ({
540
541
  throw new Error(
541
542
  `Unresolved slug ${s}, cache miss handler not provided.`
542
543
  );
543
- const c = await e(s);
544
- if (c)
545
- return t[s] = c, c;
544
+ const a = await e(s);
545
+ if (a)
546
+ return t[s] = a, a;
546
547
  throw new Error(`Unresolved slug ${s}`);
547
548
  }, set: (s, i) => {
548
549
  t[s] = i;
549
550
  }, invalidate: (s) => {
550
551
  delete t[s];
551
- } }), ct = (t, e = "Sample Content for Exporting", n = D()) => ({
552
+ } }), dt = (t, e = "Sample Content for Exporting", n = A()) => ({
552
553
  id: n,
553
- files: B(t),
554
+ files: q(t),
554
555
  title: e
555
- }), at = (t) => {
556
+ }), lt = (t) => {
556
557
  if (Object.keys(t).length === 0)
557
558
  return null;
558
559
  const e = "index.html" in t, n = "index.js" in t, r = "index.jsx" in t;
559
560
  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
+ }, O = (t, e) => new RegExp(`<${e}\\b`, "i").test(t) && new RegExp(`</${e}>`, "i").test(t), ut = (t) => {
561
562
  const e = t.trim();
562
563
  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
+ }, pt = (t, e) => t.replace(
564
565
  new RegExp(
565
566
  `<script[^>]*src=["'][^"']*${e.source}[^"']*["'][^>]*>\\s*<\/script>`,
566
567
  "gi"
567
568
  ),
568
569
  ""
569
- ), W = (t, e, n) => t.replace(
570
+ ), P = (t, e, n) => t.replace(
570
571
  new RegExp(e, "i"),
571
572
  `${n}${e}`
572
- ), dt = (t, e) => {
573
- let n = lt(t);
574
- const r = Object.entries(R(e));
573
+ ), mt = (t, e) => {
574
+ let n = ut(t);
575
+ const r = Object.entries(T(e));
575
576
  if (r.length) {
576
- const s = T(e);
577
- r.forEach(([c]) => {
578
- n = ut(n, new RegExp(`${c}@`));
577
+ const s = z(e);
578
+ r.forEach(([a]) => {
579
+ n = pt(n, new RegExp(`${a}@`));
579
580
  });
580
581
  const i = r.map(
581
- ([c, a]) => F({ name: c, version: a }, s)
582
- ).map((c) => `<script src="${c}"><\/script>`).join(`
582
+ ([a, c]) => F({ name: a, version: c }, s)
583
+ ).map((a) => `<script src="${a}"><\/script>`).join(`
583
584
  `);
584
- n = W(
585
+ n = P(
585
586
  n,
586
587
  "</head>",
587
588
  i + `
@@ -589,41 +590,98 @@ const st = ({
589
590
  );
590
591
  }
591
592
  if (e["bundle.js"] !== void 0 || e["index.js"] !== void 0) {
592
- const s = '<script src="bundle.js"><\/script>', i = /<script\b[^>]*\bsrc=["']bundle\.js["'][^>]*>\s*<\/script>/gi, c = [...n.matchAll(i)];
593
- c.length === 1 && (() => {
594
- const l = c[0].index ?? -1;
595
- if (l === -1) return !1;
596
- const u = n.search(/<body\b[^>]*>/i), m = n.search(/<\/body>/i);
597
- return u !== -1 && m !== -1 && l > u && l < m;
598
- })() || (n = n.replace(i, ""), n = W(n, "</body>", s));
593
+ const s = '<script src="bundle.js"><\/script>', i = /<script\b[^>]*\bsrc=["']bundle\.js["'][^>]*>\s*<\/script>/gi, a = [...n.matchAll(i)];
594
+ a.length === 1 && (() => {
595
+ const d = a[0].index ?? -1;
596
+ if (d === -1) return !1;
597
+ const l = n.search(/<body\b[^>]*>/i), m = n.search(/<\/body>/i);
598
+ return l !== -1 && m !== -1 && d > l && d < m;
599
+ })() || (n = n.replace(i, ""), n = P(n, "</body>", s));
599
600
  }
600
601
  return /^\s*<!DOCTYPE/i.test(n) ? n : `<!DOCTYPE html>${n}`;
601
- }, pt = (t) => {
602
+ }, ht = (t) => {
602
603
  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) => {
604
+ return !e && !t["index.js"] && !t["bundle.js"] ? "" : mt(e || "<!DOCTYPE html><html><head></head><body></body></html>", t);
605
+ };
606
+ function ft(t) {
607
+ return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
608
+ }
609
+ var C, V;
610
+ function vt() {
611
+ return V || (V = 1, C = {
612
+ d3: "d3",
613
+ "d3-array": "d3",
614
+ "d3-axis": "d3",
615
+ "d3-brush": "d3",
616
+ "d3-chord": "d3",
617
+ "d3-collection": "d3",
618
+ "d3-color": "d3",
619
+ "d3-contour": "d3",
620
+ "d3-dispatch": "d3",
621
+ "d3-drag": "d3",
622
+ "d3-dsv": "d3",
623
+ "d3-ease": "d3",
624
+ "d3-fetch": "d3",
625
+ "d3-force": "d3",
626
+ "d3-format": "d3",
627
+ "d3-geo": "d3",
628
+ "d3-hierarchy": "d3",
629
+ "d3-interpolate": "d3",
630
+ "d3-path": "d3",
631
+ "d3-polygon": "d3",
632
+ "d3-quadtree": "d3",
633
+ "d3-random": "d3",
634
+ "d3-scale": "d3",
635
+ "d3-scale-chromatic": "d3",
636
+ "d3-selection": "d3",
637
+ "d3-shape": "d3",
638
+ "d3-tile": "d3",
639
+ "d3-time": "d3",
640
+ "d3-time-format": "d3",
641
+ "d3-timer": "d3",
642
+ "d3-transition": "d3",
643
+ "d3-voronoi": "d3",
644
+ "d3-zoom": "d3",
645
+ react: "React",
646
+ "react-dom": "ReactDOM",
647
+ "react-dropdown-browser": "ReactDropdown",
648
+ "react-dropdown": "ReactDropdown",
649
+ three: "THREE",
650
+ vega: "vega",
651
+ "vega-embed": "vegaEmbed",
652
+ "vega-lite": "vegaLite",
653
+ "vega-lite-api": "vl",
654
+ "vega-tooltip": "vegaTooltip",
655
+ "vega-themes": "vegaThemes",
656
+ "vizhub-vega-lite-config": "vizhubVegaLiteConfig",
657
+ semiotic: "Semiotic",
658
+ "viz.js": "Viz"
659
+ }), C;
660
+ }
661
+ var gt = vt();
662
+ const wt = /* @__PURE__ */ ft(gt), p = "\0virtual:", W = (t) => {
605
663
  let e = t.replace(/^\.\//, "");
606
664
  return e = e.replace(/\/+/g, "/"), e = e.replace(/\/$/, ""), e;
607
- }, mt = (t, e) => {
665
+ }, bt = (t, e) => {
608
666
  const n = t.includes("/") ? t.slice(0, t.lastIndexOf("/")) : "", r = e.split("/"), o = n ? n.split("/") : [];
609
667
  for (const s of r)
610
668
  s === ".." ? o.pop() : s !== "." && s !== "" && o.push(s);
611
669
  return o.join("/");
612
- }, z = (t) => ({
670
+ }, D = (t) => ({
613
671
  name: "virtual-file-system",
614
672
  resolveId(e, n) {
615
673
  const r = n != null && n.startsWith(
616
674
  p
617
675
  ) ? n.slice(p.length) : n;
618
676
  if (e.startsWith("./") || e.startsWith("../")) {
619
- const s = k(r ? mt(r, e) : e);
677
+ const s = W(r ? bt(r, e) : e);
620
678
  if (t[s])
621
679
  return p + s;
622
680
  const i = [".js", ".jsx", ".ts", ".tsx"];
623
- for (const c of i) {
624
- const a = s + c;
625
- if (t[a])
626
- return p + a;
681
+ for (const a of i) {
682
+ const c = s + a;
683
+ if (t[c])
684
+ return p + c;
627
685
  }
628
686
  }
629
687
  if (t[e])
@@ -644,7 +702,7 @@ const st = ({
644
702
  }
645
703
  return null;
646
704
  }
647
- }), ft = async ({
705
+ }), xt = async ({
648
706
  files: t,
649
707
  rollup: e,
650
708
  enableSourcemap: n = !0
@@ -656,33 +714,38 @@ const st = ({
656
714
  );
657
715
  const s = {
658
716
  input: "./" + r,
659
- plugins: [z(t), C()],
660
- onwarn(u, m) {
661
- u.code !== "UNRESOLVED_IMPORT" && m(u);
717
+ plugins: [D(t), R()],
718
+ onwarn(l, m) {
719
+ l.code !== "UNRESOLVED_IMPORT" && m(l);
662
720
  }
663
721
  }, i = {
664
722
  format: "iife",
665
723
  sourcemap: n
666
- }, c = S(t);
667
- if (c) {
668
- const u = U(c);
669
- u && (s.external = Object.keys(u), i.globals = u);
724
+ }, a = S(t);
725
+ if (a) {
726
+ const l = {
727
+ // Pre-configured globals for v2 only
728
+ ...wt,
729
+ // Libraries from package.json
730
+ ...U(a)
731
+ };
732
+ l && (s.external = Object.keys(l), i.globals = l);
670
733
  }
671
- const a = await e(s), { output: l } = await a.generate(i);
672
- return l[0].code;
673
- }, ht = async ({
734
+ const c = await e(s), { output: d } = await c.generate(i);
735
+ return d[0].code;
736
+ }, yt = async ({
674
737
  files: t,
675
738
  rollup: e,
676
739
  enableSourcemap: n
677
740
  }) => ({
678
741
  ...t,
679
- "bundle.js": await ft({
742
+ "bundle.js": await xt({
680
743
  files: t,
681
744
  rollup: e,
682
745
  enableSourcemap: n
683
746
  }),
684
- "index.html": pt(t)
685
- }), wt = (t) => {
747
+ "index.html": ht(t)
748
+ }), Et = (t) => {
686
749
  const e = [], n = /<script\b([^>]*)>[\s\S]*?<\/script>/gi;
687
750
  let r;
688
751
  for (; (r = n.exec(t)) !== null; ) {
@@ -695,12 +758,12 @@ const st = ({
695
758
  s && e.push(s[1]);
696
759
  }
697
760
  return e;
698
- }, vt = () => ({
761
+ }, jt = () => ({
699
762
  name: "catch-all-prevent-fs",
700
763
  resolveId(t, e) {
701
764
  return { id: t, external: !0 };
702
765
  }
703
- }), gt = async ({
766
+ }), St = async ({
704
767
  entryPoint: t,
705
768
  files: e,
706
769
  rollup: n,
@@ -709,14 +772,14 @@ const st = ({
709
772
  const s = {
710
773
  input: t.startsWith("./") ? t : `./${t}`,
711
774
  plugins: [
712
- z(e),
713
- C({
775
+ D(e),
776
+ R({
714
777
  // Enable JSX runtime
715
778
  // so we don't need to import React
716
779
  // in every file that uses JSX
717
780
  jsxRuntime: "automatic"
718
781
  }),
719
- vt()
782
+ jt()
720
783
  ],
721
784
  // external: (source: string) => {
722
785
  // DEBUG && console.log("external", source);
@@ -728,35 +791,35 @@ const st = ({
728
791
  // DEBUG && console.log("isExternal", isExternal);
729
792
  // return isExternal;
730
793
  // },
731
- onwarn(a, l) {
794
+ onwarn(c, d) {
732
795
  }
733
- }, i = await n(s), { output: c } = await i.generate({
796
+ }, i = await n(s), { output: a } = await i.generate({
734
797
  format: "es",
735
798
  sourcemap: r
736
799
  });
737
- return c[0].code;
738
- }, N = (t, e) => new RegExp(`<${e}\\b`, "i").test(t) && new RegExp(`</${e}>`, "i").test(t), xt = (t) => {
800
+ return a[0].code;
801
+ }, N = (t, e) => new RegExp(`<${e}\\b`, "i").test(t) && new RegExp(`</${e}>`, "i").test(t), $t = (t) => {
739
802
  const e = t.trim();
740
803
  return N(e, "html") && N(e, "head") && N(e, "body") ? e : `<html><head></head><body>${e}</body></html>`;
741
- }, bt = (t) => t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), yt = (t, e, n) => t.replace(
804
+ }, It = (t) => t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), Ot = (t, e, n) => t.replace(
742
805
  new RegExp(e, "i"),
743
806
  `${n}${e}`
744
- ), Et = (t) => {
745
- const e = R(t);
807
+ ), Ct = (t) => {
808
+ const e = T(t);
746
809
  if (Object.keys(e).length === 0) return null;
747
- const n = T(t), r = {};
810
+ const n = z(t), r = {};
748
811
  for (const [o, s] of Object.entries(e))
749
812
  r[o] = F(
750
813
  { name: o, version: s },
751
814
  n
752
815
  );
753
816
  return JSON.stringify({ imports: r }, null, 2);
754
- }, jt = (t, e) => {
817
+ }, Nt = (t, e) => {
755
818
  if (!t["index.html"]) return "";
756
- let n = xt(t["index.html"]);
819
+ let n = $t(t["index.html"]);
757
820
  e.forEach((o, s) => {
758
821
  const i = new RegExp(
759
- `<script\\b[^>]*\\bsrc=["']${bt(s)}["'][^>]*>[^<]*<\/script>`,
822
+ `<script\\b[^>]*\\bsrc=["']${It(s)}["'][^>]*>[^<]*<\/script>`,
760
823
  "gi"
761
824
  );
762
825
  n = n.replace(
@@ -766,7 +829,7 @@ ${o}
766
829
  <\/script>`
767
830
  );
768
831
  });
769
- const r = Et(t);
832
+ const r = Ct(t);
770
833
  if (r && !/<script\b[^>]*type=["']importmap["'][^>]*>/i.test(
771
834
  n
772
835
  )) {
@@ -774,37 +837,37 @@ ${o}
774
837
  ${r}
775
838
  <\/script>
776
839
  `;
777
- n = yt(
840
+ n = Ot(
778
841
  n,
779
842
  "</head>",
780
843
  s
781
844
  );
782
845
  }
783
846
  return /^\s*<!DOCTYPE/i.test(n) ? n : `<!DOCTYPE html>${n}`;
784
- }, St = async ({
847
+ }, Rt = async ({
785
848
  files: t,
786
849
  rollup: e,
787
850
  enableSourcemap: n = !0
788
851
  }) => {
789
- const r = t["index.html"] || "", o = wt(r);
852
+ const r = t["index.html"] || "", o = Et(r);
790
853
  if (o.length === 0)
791
854
  return t;
792
855
  const s = /* @__PURE__ */ new Map();
793
- for (const c of o) {
794
- const a = await gt({
795
- entryPoint: c,
856
+ for (const a of o) {
857
+ const c = await St({
858
+ entryPoint: a,
796
859
  files: t,
797
860
  rollup: e,
798
861
  enableSourcemap: n
799
862
  });
800
- s.set(c, a);
863
+ s.set(a, c);
801
864
  }
802
- const i = jt(t, s);
865
+ const i = Nt(t, s);
803
866
  return {
804
867
  ...t,
805
868
  "index.html": i
806
869
  };
807
- }, g = !1, Tt = async ({
870
+ }, w = !1, Vt = async ({
808
871
  files: t,
809
872
  rollup: e,
810
873
  enableSourcemap: n = !0,
@@ -813,12 +876,12 @@ ${r}
813
876
  slugCache: s,
814
877
  getSvelteCompiler: i
815
878
  }) => {
816
- var c;
879
+ var a;
817
880
  try {
818
- if (g && console.log(
881
+ if (w && console.log(
819
882
  "[build] files:",
820
883
  t ? JSON.stringify(t).substring(0, 100) : void 0
821
- ), g && console.log("[build] vizCache:", r), g && console.log("[build] vizId:", o), !t && !r)
884
+ ), w && console.log("[build] vizCache:", r), w && console.log("[build] vizId:", o), !t && !r)
822
885
  throw new Error(
823
886
  "Either files or vizCache is required"
824
887
  );
@@ -826,35 +889,37 @@ ${r}
826
889
  throw new Error(
827
890
  "vizId is required when using vizCache"
828
891
  );
829
- if (!t && r && o && (t = A(
830
- (c = await r.get(o)) == null ? void 0 : c.files
892
+ if (!t && r && o && (t = _(
893
+ (a = await r.get(o)) == null ? void 0 : a.files
831
894
  )), !t)
832
895
  throw new Error("Upable to extract viz files");
833
- const a = at(t);
834
- if (g && console.log("[build] version:", a), a === "v1")
896
+ const c = lt(t);
897
+ if (w && console.log("[build] version:", c), c === "v1")
835
898
  return {
836
- html: $(t)
899
+ html: $(t),
900
+ runtimeVersion: c
837
901
  };
838
- if (a === "v2") {
902
+ if (c === "v2") {
839
903
  if (!e)
840
904
  throw new Error(
841
905
  "Rollup is required for v2 runtime"
842
906
  );
843
907
  return {
844
908
  html: $(
845
- await ht({ files: t, rollup: e, enableSourcemap: n })
846
- )
909
+ await yt({ files: t, rollup: e, enableSourcemap: n })
910
+ ),
911
+ runtimeVersion: c
847
912
  };
848
913
  }
849
- if (a === "v3") {
914
+ if (c === "v3") {
850
915
  if (!e)
851
916
  throw new Error(
852
917
  "Rollup is required for v3 runtime"
853
918
  );
854
919
  if (!r && !o) {
855
- const l = ct(t);
856
- o = l.id, r = it({
857
- initialContents: [l],
920
+ const d = dt(t);
921
+ o = d.id, r = at({
922
+ initialContents: [d],
858
923
  handleCacheMiss: async () => {
859
924
  throw new Error(
860
925
  "Cache miss handler not implemented"
@@ -870,7 +935,7 @@ ${r}
870
935
  throw new Error(
871
936
  "vizId is required for v3 runtime if vizCache is provided"
872
937
  );
873
- return await ot({
938
+ return await ct({
874
939
  files: t,
875
940
  rollup: e,
876
941
  vizCache: r,
@@ -879,40 +944,41 @@ ${r}
879
944
  getSvelteCompiler: i
880
945
  });
881
946
  }
882
- if (a === "v4") {
947
+ if (c === "v4") {
883
948
  if (!e)
884
949
  throw new Error(
885
950
  "Rollup is required for v4 runtime"
886
951
  );
887
- return g && console.log("[build] v4Build", {
952
+ return w && console.log("[build] v4Build", {
888
953
  files: t,
889
954
  rollup: e,
890
955
  enableSourcemap: n
891
956
  }), {
892
957
  html: $(
893
- await St({ files: t, rollup: e, enableSourcemap: n })
894
- )
958
+ await Rt({ files: t, rollup: e, enableSourcemap: n })
959
+ ),
960
+ runtimeVersion: c
895
961
  };
896
962
  }
897
963
  throw new Error(
898
- `Unsupported runtime version: ${a}`
964
+ `Unsupported runtime version: ${c}`
899
965
  );
900
- } catch (a) {
901
- throw a instanceof Error && a.message.indexOf(p) && (a.message = a.message.replace(
966
+ } catch (c) {
967
+ throw c instanceof Error && c.message.indexOf(p) && (c.message = c.message.replace(
902
968
  p,
903
969
  ""
904
- )), a;
970
+ )), c;
905
971
  }
906
972
  };
907
973
  export {
908
- it as a,
909
- Tt as b,
910
- nt as c,
911
- at as d,
912
- Rt as e,
913
- ct as f,
914
- Nt as g,
915
- Ct as s,
916
- ot as v
974
+ at as a,
975
+ Vt as b,
976
+ st as c,
977
+ lt as d,
978
+ Pt as e,
979
+ dt as f,
980
+ Lt as g,
981
+ Mt as s,
982
+ ct as v
917
983
  };
918
- //# sourceMappingURL=build-C3ij8Dz4.js.map
984
+ //# sourceMappingURL=build-D8ObHgQc.js.map