@vizhub/runtime 4.2.0 → 4.4.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/README.md +20 -3
- package/dist/build/build.d.ts.map +1 -1
- package/dist/build-4ni0mWxG.cjs +317 -0
- package/dist/build-4ni0mWxG.cjs.map +1 -0
- package/dist/{build-DnPT2Qew.js → build-B7w6NcTo.js} +510 -299
- package/dist/build-B7w6NcTo.js.map +1 -0
- package/dist/common/imageSupport.d.ts +23 -0
- package/dist/common/imageSupport.d.ts.map +1 -0
- package/dist/common/imageSupport.test.d.ts +2 -0
- package/dist/common/imageSupport.test.d.ts.map +1 -0
- package/dist/common/runtimeErrorHandling.d.ts.map +1 -1
- package/dist/common/virtualFileSystem.d.ts.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +55 -51
- package/dist/index.js.map +1 -1
- package/dist/orchestration/createRuntime.d.ts.map +1 -1
- package/dist/orchestration/types.d.ts +1 -0
- package/dist/orchestration/types.d.ts.map +1 -1
- package/dist/orchestration/worker.d.ts.map +1 -1
- package/dist/test/fixtures/v1/imageSupport.d.ts +18 -0
- package/dist/test/fixtures/v1/imageSupport.d.ts.map +1 -0
- package/dist/test/fixtures/v1/index.d.ts +1 -0
- package/dist/test/fixtures/v1/index.d.ts.map +1 -1
- package/dist/test/fixtures/v2/imageSupport.d.ts +13 -0
- package/dist/test/fixtures/v2/imageSupport.d.ts.map +1 -0
- package/dist/test/fixtures/v2/index.d.ts +1 -0
- package/dist/test/fixtures/v2/index.d.ts.map +1 -1
- package/dist/test/fixtures/v3/basicIndexJSWithViz.d.ts +4 -0
- package/dist/test/fixtures/v3/basicIndexJSWithViz.d.ts.map +1 -0
- package/dist/test/fixtures/v3/index.d.ts +1 -0
- package/dist/test/fixtures/v3/index.d.ts.map +1 -1
- package/dist/test/imageSupport.test.d.ts +2 -0
- package/dist/test/imageSupport.test.d.ts.map +1 -0
- package/dist/test/v3BuildIntegrationViz.test.d.ts +2 -0
- package/dist/test/v3BuildIntegrationViz.test.d.ts.map +1 -0
- package/dist/test/v4HotReload.test.d.ts +2 -0
- package/dist/test/v4HotReload.test.d.ts.map +1 -0
- package/dist/test/v4HotReloadIntegration.test.d.ts +2 -0
- package/dist/test/v4HotReloadIntegration.test.d.ts.map +1 -0
- package/dist/test/vizExportSupport.test.d.ts +2 -0
- package/dist/test/vizExportSupport.test.d.ts.map +1 -0
- package/dist/test/vizPriorityTest.test.d.ts +2 -0
- package/dist/test/vizPriorityTest.test.d.ts.map +1 -0
- package/dist/v2/getComputedIndexHtml.d.ts.map +1 -1
- package/dist/v3/computeBundleJSV3.d.ts.map +1 -1
- package/dist/v3/transformSvelte.d.ts +1 -1
- package/dist/v3/transformSvelte.d.ts.map +1 -1
- package/dist/v3/vizLoad.d.ts.map +1 -1
- package/dist/v3/vizResolve.d.ts.map +1 -1
- package/dist/v4/extractEntryPoints.d.ts.map +1 -1
- package/dist/v4/hotReloadScript.d.ts +6 -0
- package/dist/v4/hotReloadScript.d.ts.map +1 -0
- package/dist/v4/index.d.ts +12 -0
- package/dist/v4/index.d.ts.map +1 -1
- package/dist/v4/updateHTML.d.ts +1 -1
- package/dist/v4/updateHTML.d.ts.map +1 -1
- package/dist/worker.cjs +1 -1
- package/dist/worker.cjs.map +1 -1
- package/dist/worker.js +1 -1
- package/dist/worker.js.map +1 -1
- package/package.json +10 -10
- package/dist/build-BXOhZlRS.cjs +0 -256
- package/dist/build-BXOhZlRS.cjs.map +0 -1
- package/dist/build-DnPT2Qew.js.map +0 -1
package/dist/worker.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"worker.cjs","sources":["../src/orchestration/worker.ts"],"sourcesContent":["import { rollup } from \"@rollup/browser\";\nimport { VizContent, VizId } from \"@vizhub/viz-types\";\nimport type { RollupBuild, RollupOptions } from \"rollup\";\nimport {\n svelteCompilerUrl,\n createVizCache,\n createSlugCache,\n} from \"../v3\";\nimport { generateRequestId } from \"./generateRequestId\";\nimport { BuildWorkerMessage } from \"./types\";\nimport { build } from \"../build\";\
|
1
|
+
{"version":3,"file":"worker.cjs","sources":["../src/orchestration/worker.ts"],"sourcesContent":["import { rollup } from \"@rollup/browser\";\nimport { VizContent, VizId } from \"@vizhub/viz-types\";\nimport type { RollupBuild, RollupOptions } from \"rollup\";\nimport {\n svelteCompilerUrl,\n createVizCache,\n createSlugCache,\n} from \"../v3\";\nimport { generateRequestId } from \"./generateRequestId\";\nimport { BuildWorkerMessage } from \"./types\";\nimport { build } from \"../build\";\n\n// Flag for debugging\nconst DEBUG = false;\n\nexport const initWorker = () => {\n DEBUG && console.log(\"[worker] initializing...\");\n // Inspired by\n // https://github.com/sveltejs/sites/blob/master/packages/repl/src/lib/workers/bundler/index.js#L44\n // unpkg doesn't set the correct MIME type for .cjs files\n // https://github.com/mjackson/unpkg/issues/355\n const getSvelteCompiler = async () => {\n const compiler = await fetch(svelteCompilerUrl).then(\n (r) => r.text(),\n );\n (0, eval)(compiler);\n\n // @ts-ignore\n return self.svelte.compile;\n };\n\n // Tracks pending promises for 'contentResponse' messages\n const pendingContentResponsePromises = new Map();\n\n // Tracks pending promises for 'resolveSlugResponse' messages\n const pendingResolveSlugResponsePromises = new Map();\n\n // Create a viz cache that's backed by the main thread\n const vizCache = createVizCache({\n initialContents: [],\n handleCacheMiss: async (\n vizId: VizId,\n ): Promise<VizContent> => {\n const message = {\n type: \"contentRequest\",\n vizId,\n };\n\n if (DEBUG) {\n console.log(\n \"[worker] sending content request message to main thread\",\n message,\n );\n }\n postMessage(message);\n\n return new Promise((resolve) => {\n pendingContentResponsePromises.set(vizId, resolve);\n });\n },\n });\n\n // Create a slug cache that's backed by the main thread\n const slugCache = createSlugCache({\n initialMappings: {},\n handleCacheMiss: async (slug) => {\n const requestId = generateRequestId();\n const message = {\n type: \"resolveSlugRequest\",\n slugKey: slug,\n requestId,\n };\n\n if (DEBUG) {\n console.log(\n \"[worker] sending resolve slug request message to main thread\",\n message,\n );\n }\n postMessage(message);\n\n return new Promise((resolve) => {\n pendingResolveSlugResponsePromises.set(\n requestId,\n resolve,\n );\n });\n },\n });\n\n // Handle messages from the main thread\n addEventListener(\"message\", async (event) => {\n const data: BuildWorkerMessage = event.data;\n\n DEBUG &&\n console.log(\n \"[worker] received message:\",\n JSON.stringify(data, null, 2).substring(0, 1000),\n );\n\n switch (data.type) {\n case \"buildRequest\": {\n const { files, enableSourcemap, requestId, vizId } =\n data;\n\n try {\n // Build HTML from the files\n const buildResult = await build({\n files,\n enableSourcemap,\n rollup: rollup as (\n options: RollupOptions,\n ) => Promise<RollupBuild>,\n getSvelteCompiler,\n vizCache,\n vizId,\n slugCache,\n });\n const message: BuildWorkerMessage = {\n type: \"buildResponse\",\n buildResult,\n requestId,\n };\n // Send the built HTML back to the main thread\n postMessage(message);\n } catch (error) {\n DEBUG &&\n console.log(\"[worker] build error:\", error);\n\n const message: BuildWorkerMessage = {\n type: \"buildResponse\",\n error: \"\" + error,\n requestId,\n };\n\n // Send the error back to the main thread\n postMessage(message);\n }\n break;\n }\n\n case \"contentResponse\": {\n // Resolve pending promises for content snapshots\n const resolver = pendingContentResponsePromises.get(\n data.vizId,\n );\n if (resolver) {\n resolver(data.content);\n pendingContentResponsePromises.delete(data.vizId);\n }\n break;\n }\n\n case \"invalidateVizCacheRequest\": {\n if (DEBUG) {\n console.log(\n \"[worker] received invalidateVizCacheRequest\",\n data,\n );\n }\n const { changedVizIds } = data;\n\n // Invalidate the viz cache for the changed vizzes\n for (const vizId of changedVizIds) {\n vizCache.invalidate(vizId);\n }\n\n postMessage({\n type: \"invalidateVizCacheResponse\",\n });\n break;\n }\n\n case \"resolveSlugResponse\": {\n // Resolve pending promises for slug resolution\n const resolver =\n pendingResolveSlugResponsePromises.get(\n data.requestId,\n );\n if (resolver) {\n resolver(data.vizId);\n pendingResolveSlugResponsePromises.delete(\n data.requestId,\n );\n }\n break;\n }\n }\n });\n};\n"],"names":["initWorker","getSvelteCompiler","compiler","svelteCompilerUrl","r","pendingContentResponsePromises","pendingResolveSlugResponsePromises","vizCache","createVizCache","vizId","resolve","slugCache","createSlugCache","slug","requestId","generateRequestId","event","data","files","enableSourcemap","message","build","rollup","error","resolver","changedVizIds"],"mappings":"2MAeaA,EAAa,IAAM,CAM9B,MAAMC,EAAoB,SAAY,CACpC,MAAMC,EAAW,MAAM,MAAMC,EAAAA,iBAAiB,EAAE,KAC7CC,GAAMA,EAAE,KAAA,CAAK,EAEhB,SAAI,MAAMF,CAAQ,EAGX,KAAK,OAAO,OACrB,EAGMG,MAAqC,IAGrCC,MAAyC,IAGzCC,EAAWC,EAAAA,eAAe,CAC9B,gBAAiB,CAAA,EACjB,gBAAiB,MACfC,IAaA,YAXgB,CACd,KAAM,iBACN,MAAAA,CAAA,CASiB,EAEZ,IAAI,QAASC,GAAY,CAC9BL,EAA+B,IAAII,EAAOC,CAAO,CACnD,CAAC,EACH,CACD,EAGKC,EAAYC,EAAAA,gBAAgB,CAChC,gBAAiB,CAAA,EACjB,gBAAiB,MAAOC,GAAS,CAC/B,MAAMC,EAAYC,EAAAA,kBAAA,EAalB,mBAZgB,CACd,KAAM,qBACN,QAASF,EACT,UAAAC,CAAA,CASiB,EAEZ,IAAI,QAASJ,GAAY,CAC9BJ,EAAmC,IACjCQ,EACAJ,CAAA,CAEJ,CAAC,CACH,CAAA,CACD,EAGD,iBAAiB,UAAW,MAAOM,GAAU,CAC3C,MAAMC,EAA2BD,EAAM,KAQvC,OAAQC,EAAK,KAAA,CACX,IAAK,eAAgB,CACnB,KAAM,CAAE,MAAAC,EAAO,gBAAAC,EAAiB,UAAAL,EAAW,MAAAL,GACzCQ,EAEF,GAAI,CAaF,MAAMG,EAA8B,CAClC,KAAM,gBACN,YAbkB,MAAMC,QAAM,CAC9B,MAAAH,EACA,gBAAAC,EAAA,OACAG,EAAAA,OAGA,kBAAArB,EACA,SAAAM,EACA,MAAAE,EACA,UAAAE,CAAA,CACD,EAIC,UAAAG,CAAA,EAGF,YAAYM,CAAO,CACrB,OAASG,EAAO,CAId,MAAMH,EAA8B,CAClC,KAAM,gBACN,MAAO,GAAKG,EACZ,UAAAT,CAAA,EAIF,YAAYM,CAAO,CACrB,CACA,KACF,CAEA,IAAK,kBAAmB,CAEtB,MAAMI,EAAWnB,EAA+B,IAC9CY,EAAK,KAAA,EAEHO,IACFA,EAASP,EAAK,OAAO,EACrBZ,EAA+B,OAAOY,EAAK,KAAK,GAElD,KACF,CAEA,IAAK,4BAA6B,CAOhC,KAAM,CAAE,cAAAQ,GAAkBR,EAG1B,UAAWR,KAASgB,EAClBlB,EAAS,WAAWE,CAAK,EAG3B,YAAY,CACV,KAAM,4BAAA,CACP,EACD,KACF,CAEA,IAAK,sBAAuB,CAE1B,MAAMe,EACJlB,EAAmC,IACjCW,EAAK,SAAA,EAELO,IACFA,EAASP,EAAK,KAAK,EACnBX,EAAmC,OACjCW,EAAK,SAAA,GAGT,KACF,CAAA,CAEJ,CAAC,CACH"}
|
package/dist/worker.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import { rollup as g } from "@rollup/browser";
|
2
2
|
import "@vizhub/viz-utils";
|
3
3
|
import "sucrase";
|
4
|
-
import { a as m, b as v, e as h, g as R, s as b } from "./build-
|
4
|
+
import { a as m, b as v, e as h, g as R, s as b } from "./build-B7w6NcTo.js";
|
5
5
|
const f = () => {
|
6
6
|
const p = async () => {
|
7
7
|
const t = await fetch(b).then(
|
package/dist/worker.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"worker.js","sources":["../src/orchestration/worker.ts"],"sourcesContent":["import { rollup } from \"@rollup/browser\";\nimport { VizContent, VizId } from \"@vizhub/viz-types\";\nimport type { RollupBuild, RollupOptions } from \"rollup\";\nimport {\n svelteCompilerUrl,\n createVizCache,\n createSlugCache,\n} from \"../v3\";\nimport { generateRequestId } from \"./generateRequestId\";\nimport { BuildWorkerMessage } from \"./types\";\nimport { build } from \"../build\";\
|
1
|
+
{"version":3,"file":"worker.js","sources":["../src/orchestration/worker.ts"],"sourcesContent":["import { rollup } from \"@rollup/browser\";\nimport { VizContent, VizId } from \"@vizhub/viz-types\";\nimport type { RollupBuild, RollupOptions } from \"rollup\";\nimport {\n svelteCompilerUrl,\n createVizCache,\n createSlugCache,\n} from \"../v3\";\nimport { generateRequestId } from \"./generateRequestId\";\nimport { BuildWorkerMessage } from \"./types\";\nimport { build } from \"../build\";\n\n// Flag for debugging\nconst DEBUG = false;\n\nexport const initWorker = () => {\n DEBUG && console.log(\"[worker] initializing...\");\n // Inspired by\n // https://github.com/sveltejs/sites/blob/master/packages/repl/src/lib/workers/bundler/index.js#L44\n // unpkg doesn't set the correct MIME type for .cjs files\n // https://github.com/mjackson/unpkg/issues/355\n const getSvelteCompiler = async () => {\n const compiler = await fetch(svelteCompilerUrl).then(\n (r) => r.text(),\n );\n (0, eval)(compiler);\n\n // @ts-ignore\n return self.svelte.compile;\n };\n\n // Tracks pending promises for 'contentResponse' messages\n const pendingContentResponsePromises = new Map();\n\n // Tracks pending promises for 'resolveSlugResponse' messages\n const pendingResolveSlugResponsePromises = new Map();\n\n // Create a viz cache that's backed by the main thread\n const vizCache = createVizCache({\n initialContents: [],\n handleCacheMiss: async (\n vizId: VizId,\n ): Promise<VizContent> => {\n const message = {\n type: \"contentRequest\",\n vizId,\n };\n\n if (DEBUG) {\n console.log(\n \"[worker] sending content request message to main thread\",\n message,\n );\n }\n postMessage(message);\n\n return new Promise((resolve) => {\n pendingContentResponsePromises.set(vizId, resolve);\n });\n },\n });\n\n // Create a slug cache that's backed by the main thread\n const slugCache = createSlugCache({\n initialMappings: {},\n handleCacheMiss: async (slug) => {\n const requestId = generateRequestId();\n const message = {\n type: \"resolveSlugRequest\",\n slugKey: slug,\n requestId,\n };\n\n if (DEBUG) {\n console.log(\n \"[worker] sending resolve slug request message to main thread\",\n message,\n );\n }\n postMessage(message);\n\n return new Promise((resolve) => {\n pendingResolveSlugResponsePromises.set(\n requestId,\n resolve,\n );\n });\n },\n });\n\n // Handle messages from the main thread\n addEventListener(\"message\", async (event) => {\n const data: BuildWorkerMessage = event.data;\n\n DEBUG &&\n console.log(\n \"[worker] received message:\",\n JSON.stringify(data, null, 2).substring(0, 1000),\n );\n\n switch (data.type) {\n case \"buildRequest\": {\n const { files, enableSourcemap, requestId, vizId } =\n data;\n\n try {\n // Build HTML from the files\n const buildResult = await build({\n files,\n enableSourcemap,\n rollup: rollup as (\n options: RollupOptions,\n ) => Promise<RollupBuild>,\n getSvelteCompiler,\n vizCache,\n vizId,\n slugCache,\n });\n const message: BuildWorkerMessage = {\n type: \"buildResponse\",\n buildResult,\n requestId,\n };\n // Send the built HTML back to the main thread\n postMessage(message);\n } catch (error) {\n DEBUG &&\n console.log(\"[worker] build error:\", error);\n\n const message: BuildWorkerMessage = {\n type: \"buildResponse\",\n error: \"\" + error,\n requestId,\n };\n\n // Send the error back to the main thread\n postMessage(message);\n }\n break;\n }\n\n case \"contentResponse\": {\n // Resolve pending promises for content snapshots\n const resolver = pendingContentResponsePromises.get(\n data.vizId,\n );\n if (resolver) {\n resolver(data.content);\n pendingContentResponsePromises.delete(data.vizId);\n }\n break;\n }\n\n case \"invalidateVizCacheRequest\": {\n if (DEBUG) {\n console.log(\n \"[worker] received invalidateVizCacheRequest\",\n data,\n );\n }\n const { changedVizIds } = data;\n\n // Invalidate the viz cache for the changed vizzes\n for (const vizId of changedVizIds) {\n vizCache.invalidate(vizId);\n }\n\n postMessage({\n type: \"invalidateVizCacheResponse\",\n });\n break;\n }\n\n case \"resolveSlugResponse\": {\n // Resolve pending promises for slug resolution\n const resolver =\n pendingResolveSlugResponsePromises.get(\n data.requestId,\n );\n if (resolver) {\n resolver(data.vizId);\n pendingResolveSlugResponsePromises.delete(\n data.requestId,\n );\n }\n break;\n }\n }\n });\n};\n"],"names":["initWorker","getSvelteCompiler","compiler","svelteCompilerUrl","r","pendingContentResponsePromises","pendingResolveSlugResponsePromises","vizCache","createVizCache","vizId","resolve","slugCache","createSlugCache","slug","requestId","generateRequestId","event","data","files","enableSourcemap","message","build","rollup","error","resolver","changedVizIds"],"mappings":";;;;AAeO,MAAMA,IAAa,MAAM;AAM9B,QAAMC,IAAoB,YAAY;AACpC,UAAMC,IAAW,MAAM,MAAMC,CAAiB,EAAE;AAAA,MAC9C,CAACC,MAAMA,EAAE,KAAA;AAAA,IAAK;AAEhB,eAAI,MAAMF,CAAQ,GAGX,KAAK,OAAO;AAAA,EACrB,GAGMG,wBAAqC,IAAA,GAGrCC,wBAAyC,IAAA,GAGzCC,IAAWC,EAAe;AAAA,IAC9B,iBAAiB,CAAA;AAAA,IACjB,iBAAiB,OACfC,OAaA,YAXgB;AAAA,MACd,MAAM;AAAA,MACN,OAAAA;AAAA,IAAA,CASiB,GAEZ,IAAI,QAAQ,CAACC,MAAY;AAC9B,MAAAL,EAA+B,IAAII,GAAOC,CAAO;AAAA,IACnD,CAAC;AAAA,EACH,CACD,GAGKC,IAAYC,EAAgB;AAAA,IAChC,iBAAiB,CAAA;AAAA,IACjB,iBAAiB,OAAOC,MAAS;AAC/B,YAAMC,IAAYC,EAAA;AAalB,yBAZgB;AAAA,QACd,MAAM;AAAA,QACN,SAASF;AAAA,QACT,WAAAC;AAAA,MAAA,CASiB,GAEZ,IAAI,QAAQ,CAACJ,MAAY;AAC9B,QAAAJ,EAAmC;AAAA,UACjCQ;AAAA,UACAJ;AAAA,QAAA;AAAA,MAEJ,CAAC;AAAA,IACH;AAAA,EAAA,CACD;AAGD,mBAAiB,WAAW,OAAOM,MAAU;AAC3C,UAAMC,IAA2BD,EAAM;AAQvC,YAAQC,EAAK,MAAA;AAAA,MACX,KAAK,gBAAgB;AACnB,cAAM,EAAE,OAAAC,GAAO,iBAAAC,GAAiB,WAAAL,GAAW,OAAAL,MACzCQ;AAEF,YAAI;AAaF,gBAAMG,IAA8B;AAAA,YAClC,MAAM;AAAA,YACN,aAbkB,MAAMC,EAAM;AAAA,cAC9B,OAAAH;AAAA,cACA,iBAAAC;AAAA,cACA,QAAAG;AAAA,cAGA,mBAAArB;AAAA,cACA,UAAAM;AAAA,cACA,OAAAE;AAAA,cACA,WAAAE;AAAA,YAAA,CACD;AAAA,YAIC,WAAAG;AAAA,UAAA;AAGF,sBAAYM,CAAO;AAAA,QACrB,SAASG,GAAO;AAId,gBAAMH,IAA8B;AAAA,YAClC,MAAM;AAAA,YACN,OAAO,KAAKG;AAAA,YACZ,WAAAT;AAAA,UAAA;AAIF,sBAAYM,CAAO;AAAA,QACrB;AACA;AAAA,MACF;AAAA,MAEA,KAAK,mBAAmB;AAEtB,cAAMI,IAAWnB,EAA+B;AAAA,UAC9CY,EAAK;AAAA,QAAA;AAEP,QAAIO,MACFA,EAASP,EAAK,OAAO,GACrBZ,EAA+B,OAAOY,EAAK,KAAK;AAElD;AAAA,MACF;AAAA,MAEA,KAAK,6BAA6B;AAOhC,cAAM,EAAE,eAAAQ,MAAkBR;AAG1B,mBAAWR,KAASgB;AAClB,UAAAlB,EAAS,WAAWE,CAAK;AAG3B,oBAAY;AAAA,UACV,MAAM;AAAA,QAAA,CACP;AACD;AAAA,MACF;AAAA,MAEA,KAAK,uBAAuB;AAE1B,cAAMe,IACJlB,EAAmC;AAAA,UACjCW,EAAK;AAAA,QAAA;AAET,QAAIO,MACFA,EAASP,EAAK,KAAK,GACnBX,EAAmC;AAAA,UACjCW,EAAK;AAAA,QAAA;AAGT;AAAA,MACF;AAAA,IAAA;AAAA,EAEJ,CAAC;AACH;"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@vizhub/runtime",
|
3
|
-
"version": "4.
|
3
|
+
"version": "4.4.0",
|
4
4
|
"description": "Flexible runtime environment for data visualization sandboxes",
|
5
5
|
"type": "module",
|
6
6
|
"main": "./dist/index.cjs",
|
@@ -46,22 +46,22 @@
|
|
46
46
|
"homepage": "https://github.com/vizhub-core/vizhub-runtime#readme",
|
47
47
|
"devDependencies": {
|
48
48
|
"@types/jsdom": "^21.1.7",
|
49
|
-
"@types/node": "^24.1
|
49
|
+
"@types/node": "^24.2.1",
|
50
50
|
"@types/uuid": "^10.0.0",
|
51
51
|
"jsdom": "^26.1.0",
|
52
52
|
"npm-check-updates": "^18.0.2",
|
53
53
|
"prettier": "^3.6.2",
|
54
|
-
"puppeteer": "^24.
|
55
|
-
"rollup": "^4.46.
|
56
|
-
"svelte": "^5.
|
57
|
-
"typescript": "^5.
|
58
|
-
"vite": "^7.
|
54
|
+
"puppeteer": "^24.16.1",
|
55
|
+
"rollup": "^4.46.2",
|
56
|
+
"svelte": "^5.38.1",
|
57
|
+
"typescript": "^5.9.2",
|
58
|
+
"vite": "^7.1.2",
|
59
59
|
"vitest": "^3.2.4"
|
60
60
|
},
|
61
61
|
"dependencies": {
|
62
|
-
"@rollup/browser": "^4.46.
|
63
|
-
"@vizhub/viz-types": "^0.
|
64
|
-
"@vizhub/viz-utils": "^1.
|
62
|
+
"@rollup/browser": "^4.46.2",
|
63
|
+
"@vizhub/viz-types": "^0.4.0",
|
64
|
+
"@vizhub/viz-utils": "^1.4.0",
|
65
65
|
"magic-sandbox": "^2.3.0",
|
66
66
|
"sucrase": "^3.35.0",
|
67
67
|
"vizhub-libraries": "^1.8.0"
|
package/dist/build-BXOhZlRS.cjs
DELETED
@@ -1,256 +0,0 @@
|
|
1
|
-
"use strict";const I=require("magic-sandbox"),v=require("@vizhub/viz-utils"),X=require("sucrase"),Z=()=>(Math.random()+"").slice(2);function M(e={}){return{name:"sucrase",transform(t,n){if(!n.match(/\.(?:js|[jt]sx)$/))return null;const r=X.transform(t,{transforms:["jsx","typescript"],filePath:n,sourceMapOptions:{compiledFilename:"bundle.js"},production:!0,...e});return{code:r.code,map:r.sourceMap}}}}const L={dependencies:{},vizhub:{},license:"MIT"},K=!1,j=e=>{const t=e["package.json"];try{const n=t?JSON.parse(t):L;return K&&console.log("[packageJSON] pkg:",JSON.stringify(n,null,2)),n}catch{return L}},z=e=>j(e).dependencies||{},F=e=>(j(e).vizhub||{}).libraries||{},V=({name:e,version:t},n,r="jsdelivr")=>{const o=n[e]&&n[e].path||"";return r==="jsdelivr"?`https://cdn.jsdelivr.net/npm/${e}@${t}${o}`:`https://unpkg.com/${e}@${t}${o}`},ee=e=>{const t=e?.vizhub?.libraries;return t?Object.entries(t).reduce((n,[r,o])=>(o.global&&(n[r]=o.global),n),{}):{}},te={d3:"d3",react:"React","react-dom":"ReactDOM"},B=e=>{const t=ee(e);return{...te,...t}},y=e=>{const[t,...n]=e.split("/"),r=n.join("/");return{vizId:t,fileName:r}},ne=`var EOL = {},
|
2
|
-
EOF = {},
|
3
|
-
QUOTE = 34,
|
4
|
-
NEWLINE = 10,
|
5
|
-
RETURN = 13;
|
6
|
-
|
7
|
-
function objectConverter(columns) {
|
8
|
-
return new Function(
|
9
|
-
'd',
|
10
|
-
'return {' +
|
11
|
-
columns
|
12
|
-
.map(function (name, i) {
|
13
|
-
return (
|
14
|
-
JSON.stringify(name) + ': d[' + i + '] || ""'
|
15
|
-
);
|
16
|
-
})
|
17
|
-
.join(',') +
|
18
|
-
'}',
|
19
|
-
);
|
20
|
-
}
|
21
|
-
|
22
|
-
function customConverter(columns, f) {
|
23
|
-
var object = objectConverter(columns);
|
24
|
-
return function (row, i) {
|
25
|
-
return f(object(row), i, columns);
|
26
|
-
};
|
27
|
-
}
|
28
|
-
|
29
|
-
function dsv(delimiter) {
|
30
|
-
var DELIMITER = delimiter.charCodeAt(0);
|
31
|
-
|
32
|
-
function parse(text, f) {
|
33
|
-
var convert,
|
34
|
-
columns,
|
35
|
-
rows = parseRows(text, function (row, i) {
|
36
|
-
if (convert) return convert(row, i - 1);
|
37
|
-
(columns = row),
|
38
|
-
(convert = f
|
39
|
-
? customConverter(row, f)
|
40
|
-
: objectConverter(row));
|
41
|
-
});
|
42
|
-
rows.columns = columns || [];
|
43
|
-
return rows;
|
44
|
-
}
|
45
|
-
|
46
|
-
function parseRows(text, f) {
|
47
|
-
var rows = [], // output rows
|
48
|
-
N = text.length,
|
49
|
-
I = 0, // current character index
|
50
|
-
n = 0, // current line number
|
51
|
-
t, // current token
|
52
|
-
eof = N <= 0, // current token followed by EOF?
|
53
|
-
eol = false; // current token followed by EOL?
|
54
|
-
|
55
|
-
// Strip the trailing newline.
|
56
|
-
if (text.charCodeAt(N - 1) === NEWLINE) --N;
|
57
|
-
if (text.charCodeAt(N - 1) === RETURN) --N;
|
58
|
-
|
59
|
-
function token() {
|
60
|
-
if (eof) return EOF;
|
61
|
-
if (eol) return (eol = false), EOL;
|
62
|
-
|
63
|
-
// Unescape quotes.
|
64
|
-
var i,
|
65
|
-
j = I,
|
66
|
-
c;
|
67
|
-
if (text.charCodeAt(j) === QUOTE) {
|
68
|
-
while (
|
69
|
-
(I++ < N && text.charCodeAt(I) !== QUOTE) ||
|
70
|
-
text.charCodeAt(++I) === QUOTE
|
71
|
-
);
|
72
|
-
if ((i = I) >= N) eof = true;
|
73
|
-
else if ((c = text.charCodeAt(I++)) === NEWLINE)
|
74
|
-
eol = true;
|
75
|
-
else if (c === RETURN) {
|
76
|
-
eol = true;
|
77
|
-
if (text.charCodeAt(I) === NEWLINE) ++I;
|
78
|
-
}
|
79
|
-
return text.slice(j + 1, i - 1).replace(/""/g, '"');
|
80
|
-
}
|
81
|
-
|
82
|
-
// Find next delimiter or newline.
|
83
|
-
while (I < N) {
|
84
|
-
if ((c = text.charCodeAt((i = I++))) === NEWLINE)
|
85
|
-
eol = true;
|
86
|
-
else if (c === RETURN) {
|
87
|
-
eol = true;
|
88
|
-
if (text.charCodeAt(I) === NEWLINE) ++I;
|
89
|
-
} else if (c !== DELIMITER) continue;
|
90
|
-
return text.slice(j, i);
|
91
|
-
}
|
92
|
-
|
93
|
-
// Return last token before EOF.
|
94
|
-
return (eof = true), text.slice(j, N);
|
95
|
-
}
|
96
|
-
|
97
|
-
while ((t = token()) !== EOF) {
|
98
|
-
var row = [];
|
99
|
-
while (t !== EOL && t !== EOF)
|
100
|
-
row.push(t), (t = token());
|
101
|
-
if (f && (row = f(row, n++)) == null) continue;
|
102
|
-
rows.push(row);
|
103
|
-
}
|
104
|
-
|
105
|
-
return rows;
|
106
|
-
}
|
107
|
-
|
108
|
-
return {
|
109
|
-
parse: parse,
|
110
|
-
};
|
111
|
-
}
|
112
|
-
|
113
|
-
var csv = dsv(',');
|
114
|
-
|
115
|
-
var csvParse = csv.parse;
|
116
|
-
|
117
|
-
var tsv = dsv(' ');
|
118
|
-
|
119
|
-
var tsvParse = tsv.parse;
|
120
|
-
|
121
|
-
export { csvParse, tsvParse };`,re=e=>e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),se=()=>({name:"transformDSV",transform:async(e,t)=>{const{fileName:n}=y(t),r=n.endsWith(".csv"),o=n.endsWith(".tsv");if(r||o)return{code:`
|
122
|
-
${ne}
|
123
|
-
const data = ${r?"csvParse":"tsvParse"}(\`${re(e)}\`);
|
124
|
-
export default data;
|
125
|
-
`,map:{mappings:""}}}}),oe=e=>{const t=/^@([a-zA-Z0-9_-]+)\/([a-zA-Z0-9_-]+)$/,n=e.match(t);return n?{userName:n[1],idOrSlug:n[2]}:null},ie=({vizId:e,slugCache:t})=>({name:"vizResolve",resolveId:async(n,r)=>{if(n.startsWith("./")&&!r?.startsWith("https://")){let s=n.substring(2);if(!s.endsWith(".js")&&!s.endsWith(".css")&&!s.endsWith(".csv")&&!s.endsWith(".svelte")&&(s+=".js"),r){const{vizId:c,fileName:i}=y(r),a=i.split("/").slice(0,-1).join("/"),d=a?`${a}/${s}`:s;return`${c}/${d}`}return e+"/"+s}const o=oe(n);if(o){let s;if(v.isVizId(o.idOrSlug))s=o.idOrSlug;else{if(!t)throw new Error("slugCache is required to import by slug in v3 runtime");s=await t.get(`${o.userName}/${o.idOrSlug}`)}return s+"/index.js"}}}),ce=({vizCache:e,trackCSSImport:t,vizId:n,files:r})=>({name:"vizLoad",load:async o=>{const s=y(o),c=s.vizId,i=s.fileName;if(i.endsWith(".css"))return t(o),"";let a=null;if(c===n&&r)a=r[i]||null;else{const d=await e.get(c);a=v.getFileText(d,i)}if(a===null)throw new Error(`Imported file "${i}" not found.`);return a}}),P=new Map;let R;const E="https://cdn.jsdelivr.net/npm/svelte@5",ae=`${E}/compiler.cjs`,de=({getSvelteCompiler:e})=>({name:"transformSvelte",load:async t=>{if(!t.startsWith(E))return;const n=P.get(t);if(n)return n;const r=await fetch(t).then(o=>o.text());return P.set(t,r),r},resolveId:async(t,n)=>{if(t==="svelte")return`${E}/src/runtime/index.js`;if(t.startsWith("svelte/")){const r=t.slice(7);return`${E}/src/runtime/${r}/index.js`}if(/^https?:/.test(t))return t;if(t.startsWith(".")&&n&&n.startsWith(E)){const r=new URL(t,n).href;return new URL(t,n).href,r}},transform:async(t,n)=>{const{fileName:r}=y(n);if(r.endsWith(".svelte")){if(!R){if(!e)throw new Error("Svelte compiler not available");R=await e()}const s=R(t,{filename:r,generate:"client",css:"external",dev:!1});let c=s.js.code;return s.css&&s.css.code&&(c=`
|
126
|
-
// Auto-inject CSS for Svelte component
|
127
|
-
(function() {
|
128
|
-
if (typeof document !== 'undefined') {
|
129
|
-
const style = document.createElement('style');
|
130
|
-
style.textContent = ${JSON.stringify(s.css.code)};
|
131
|
-
document.head.appendChild(style);
|
132
|
-
}
|
133
|
-
})();
|
134
|
-
`+c),c}}}),A=async({files:e,rollup:t,enableSourcemap:n=!0,vizCache:r,vizId:o,slugCache:s,getSvelteCompiler:c})=>{const i=new Set,a=u=>{i.add(u)};if(!e["index.js"])throw new Error("Missing index.js");const l={input:"./index.js",plugins:[...o?[ie({vizId:o,slugCache:s})]:[],se(),M(),de({getSvelteCompiler:c}),...r?[ce({vizCache:r,trackCSSImport:a,vizId:o,files:e})]:[]],onwarn(u,g){u.code!=="UNRESOLVED_IMPORT"&&g(u)}},p={format:"umd",name:"Viz",sourcemap:!!n,compact:!0},m=j(e);if(m){const u=B(m);u&&(l.external=Object.keys(u),p.globals=u)}const x=await t(l),{output:h}=await x.generate(p);return{src:h[0].code,cssFiles:Array.from(i)}},le=e=>{if(e instanceof Error){const t=e.stack||"",n=e.message||"Unknown error";return`${e.name||"Error"}: ${n}
|
135
|
-
${t}`}else if("error"in e&&e.error instanceof Error){const t=e.error,n=t.stack||"",r=t.message||"Unknown error",o="filename"in e?e.filename:"",s="lineno"in e?e.lineno:"",c="colno"in e?e.colno:"";let i="";return o&&s&&(i=` at ${o}:${s}`,c&&(i+=`:${c}`)),`${t.name||"Error"}: ${r}${i}
|
136
|
-
${n}`}else if("reason"in e){const t=e.reason;if(t instanceof Error){const n=t.stack||"",r=t.message||"Unknown error";return`Unhandled Promise Rejection - ${t.name||"Error"}: ${r}
|
137
|
-
${n}`}else return`Unhandled Promise Rejection: ${String(t)}`}else return`Unknown runtime error: ${String(e)}`},C=()=>`
|
138
|
-
// Global error handling for runtime errors
|
139
|
-
(() => {
|
140
|
-
const formatRuntimeError = ${le.toString()};
|
141
|
-
|
142
|
-
// Handle uncaught JavaScript errors
|
143
|
-
window.addEventListener('error', (event) => {
|
144
|
-
const formattedErrorMessage = formatRuntimeError(event);
|
145
|
-
parent.postMessage({
|
146
|
-
type: 'runtimeError',
|
147
|
-
formattedErrorMessage
|
148
|
-
}, "*");
|
149
|
-
});
|
150
|
-
|
151
|
-
// Handle unhandled promise rejections
|
152
|
-
window.addEventListener('unhandledrejection', (event) => {
|
153
|
-
const formattedErrorMessage = formatRuntimeError(event);
|
154
|
-
parent.postMessage({
|
155
|
-
type: 'runtimeError',
|
156
|
-
formattedErrorMessage
|
157
|
-
}, "*");
|
158
|
-
});
|
159
|
-
})();
|
160
|
-
`;function ue(){return Math.random().toString().slice(2,7)}const pe=({cdn:e,src:t,styles:n})=>{const o=`viz-container-${ue()}`;return`<!DOCTYPE html>
|
161
|
-
<html>
|
162
|
-
<head>
|
163
|
-
<meta charset="utf-8">${e}${n}
|
164
|
-
<style>
|
165
|
-
body {
|
166
|
-
margin: 0;
|
167
|
-
overflow: hidden;
|
168
|
-
}
|
169
|
-
#${o} {
|
170
|
-
height: 100vh;
|
171
|
-
}
|
172
|
-
</style>
|
173
|
-
</head>
|
174
|
-
<body>
|
175
|
-
<div id="${o}"></div>
|
176
|
-
<script>${C()}<\/script>
|
177
|
-
<script id="injected-script">${t}<\/script>
|
178
|
-
<script>
|
179
|
-
(() => {
|
180
|
-
let cleanup;
|
181
|
-
const render = () => {
|
182
|
-
const container = document.getElementById('${o}');
|
183
|
-
typeof cleanup === 'function' && cleanup();
|
184
|
-
cleanup = Viz.main(container, { state: window.state, setState, writeFile });
|
185
|
-
};
|
186
|
-
const setState = (next) => {
|
187
|
-
window.state = next(window.state);
|
188
|
-
render();
|
189
|
-
};
|
190
|
-
const writeFile = (fileName, content) => {
|
191
|
-
parent.postMessage({ type: 'writeFile', fileName, content }, "*");
|
192
|
-
};
|
193
|
-
const run = () => {
|
194
|
-
try {
|
195
|
-
setState((state) => state || {});
|
196
|
-
} catch (error) {
|
197
|
-
console.error(error);
|
198
|
-
parent.postMessage({ type: 'runError', error }, "*");
|
199
|
-
}
|
200
|
-
}
|
201
|
-
run();
|
202
|
-
const runJS = (src) => {
|
203
|
-
document.getElementById('injected-script')?.remove();
|
204
|
-
const script = document.createElement('script');
|
205
|
-
script.textContent = src;
|
206
|
-
script.id = 'injected-script';
|
207
|
-
document.body.appendChild(script);
|
208
|
-
run();
|
209
|
-
};
|
210
|
-
const runCSS = (css) => {
|
211
|
-
let style = document.getElementById('injected-style');
|
212
|
-
if (!style) {
|
213
|
-
style = document.createElement('style');
|
214
|
-
style.type = 'text/css';
|
215
|
-
style.id = 'injected-style';
|
216
|
-
document.head.appendChild(style);
|
217
|
-
}
|
218
|
-
style.textContent = css;
|
219
|
-
};
|
220
|
-
onmessage = (message) => {
|
221
|
-
switch (message.data.type) {
|
222
|
-
case 'runJS':
|
223
|
-
runJS(message.data.js);
|
224
|
-
parent.postMessage({ type: 'runDone' }, "*");
|
225
|
-
break;
|
226
|
-
case 'runCSS':
|
227
|
-
runCSS(message.data.css);
|
228
|
-
break;
|
229
|
-
case 'ping':
|
230
|
-
parent.postMessage({ type: 'pong' }, "*");
|
231
|
-
break;
|
232
|
-
default:
|
233
|
-
break;
|
234
|
-
}
|
235
|
-
}
|
236
|
-
})();
|
237
|
-
<\/script>
|
238
|
-
</body>
|
239
|
-
</html>`},q=async({files:e,rollup:t,enableSourcemap:n=!0,vizCache:r,vizId:o,slugCache:s,getSvelteCompiler:c})=>{const{src:i,cssFiles:a}=await A({files:e,rollup:t,enableSourcemap:n,vizCache:r,vizId:o,slugCache:s,getSvelteCompiler:c});let d=[];if(a.length>0)for(let h=0;h<a.length;h++){const u=a[h],g=y(u),S=g.vizId,$=g.fileName;let w=null;if(S===o&&e)w=e[$]||null;else{const Q=await r.get(S);w=v.getFileText(Q,$)}w&&d.push(w)}const l=d.join(`
|
240
|
-
`),p=`
|
241
|
-
<style id="injected-style">${l}</style>`;let m="";const x=Object.entries(z(e));if(x.length>0){const h=F(e);m=x.map(([u,g],S)=>{const $=V({name:u,version:g},h);return`${S>0?" ":`
|
242
|
-
`}<script src="${$}"><\/script>`}).join("")}return{html:pe({cdn:m,src:i,styles:p}),css:l,js:i,runtimeVersion:"v3"}},_=({initialContents:e,handleCacheMiss:t})=>{const n=new Map(e.map(c=>[c.id,c]));return{get:async c=>{const i=n.get(c);if(i!==void 0)return i;if(!t)throw new Error(`Unresolved import from vizId ${c}, cache miss handler not provided.`);const a=await t(c);if(a)return n.set(c,a),a;throw new Error(`Unresolved import from vizId ${c}`)},set:c=>{n.set(c.id,c)},invalidate:c=>{n.delete(c)}}},me=({initialMappings:e={},handleCacheMiss:t})=>({get:async s=>{const c=e[s];if(c!==void 0)return c;if(!t)throw new Error(`Unresolved slug ${s}, cache miss handler not provided.`);const i=await t(s);if(i)return e[s]=i,i;throw new Error(`Unresolved slug ${s}`)},set:(s,c)=>{e[s]=c},invalidate:s=>{delete e[s]}}),H=(e,t="Sample Content for Exporting",n=v.generateVizId())=>({id:n,files:v.fileCollectionToVizFiles(e),title:t}),G=e=>{if(Object.keys(e).length===0)return null;const t="index.html"in e,n="index.js"in e,r="index.jsx"in e;return t?e["index.html"].includes('type="module"')?"v4":n||r?"v2":"v1":!t&&n?"v3":null},O=(e,t)=>new RegExp(`<${t}\\b`,"i").test(e)&&new RegExp(`</${t}>`,"i").test(e),fe=e=>{const t=e.trim();return O(t,"html")&&O(t,"head")&&O(t,"body")?t:`<html><head></head><body>${t}</body></html>`},he=(e,t)=>e.replace(new RegExp(`<script[^>]*src=["'][^"']*${t.source}[^"']*["'][^>]*>\\s*<\/script>`,"gi"),""),N=(e,t,n)=>e.replace(new RegExp(t,"i"),`${n}${t}`),ge=(e,t)=>{let n=fe(e);const r=Object.entries(z(t));if(r.length){const c=F(t);r.forEach(([a])=>{n=he(n,new RegExp(`${a}@`))});const i=r.map(([a,d])=>V({name:a,version:d},c)).map(a=>`<script src="${a}"><\/script>`).join(`
|
243
|
-
`);n=N(n,"</head>",i+`
|
244
|
-
`)}if(t["bundle.js"]!==void 0||t["index.js"]!==void 0){const c='<script src="bundle.js"><\/script>',i=/<script\b[^>]*\bsrc=["']bundle\.js["'][^>]*>\s*<\/script>/gi,a=[...n.matchAll(i)];a.length===1&&(()=>{const l=a[0].index??-1;if(l===-1)return!1;const p=n.search(/<body\b[^>]*>/i),m=n.search(/<\/body>/i);return p!==-1&&m!==-1&&l>p&&l<m})()||(n=n.replace(i,""),n=N(n,"</body>",c))}const s=`<script>${C()}<\/script>
|
245
|
-
`;return n=N(n,"</head>",s),/^\s*<!DOCTYPE/i.test(n)?n:`<!DOCTYPE html>${n}`},ve=e=>{const t=e["index.html"];return!t&&!e["index.js"]&&!e["bundle.js"]?"":ge(t||"<!DOCTYPE html><html><head></head><body></body></html>",e)};function we(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var T,U;function be(){return U||(U=1,T={d3:"d3","d3-array":"d3","d3-axis":"d3","d3-brush":"d3","d3-chord":"d3","d3-collection":"d3","d3-color":"d3","d3-contour":"d3","d3-dispatch":"d3","d3-drag":"d3","d3-dsv":"d3","d3-ease":"d3","d3-fetch":"d3","d3-force":"d3","d3-format":"d3","d3-geo":"d3","d3-hierarchy":"d3","d3-interpolate":"d3","d3-path":"d3","d3-polygon":"d3","d3-quadtree":"d3","d3-random":"d3","d3-scale":"d3","d3-scale-chromatic":"d3","d3-selection":"d3","d3-shape":"d3","d3-tile":"d3","d3-time":"d3","d3-time-format":"d3","d3-timer":"d3","d3-transition":"d3","d3-voronoi":"d3","d3-zoom":"d3",react:"React","react-dom":"ReactDOM","react-dropdown-browser":"ReactDropdown","react-dropdown":"ReactDropdown",three:"THREE",vega:"vega","vega-embed":"vegaEmbed","vega-lite":"vegaLite","vega-lite-api":"vl","vega-tooltip":"vegaTooltip","vega-themes":"vegaThemes","vizhub-vega-lite-config":"vizhubVegaLiteConfig",semiotic:"Semiotic","viz.js":"Viz"}),T}var Ee=be();const ye=we(Ee),f="\0virtual:",W=e=>{let t=e.replace(/^\.\//,"");return t=t.replace(/\/+/g,"/"),t=t.replace(/\/$/,""),t},xe=(e,t)=>{const n=e.includes("/")?e.slice(0,e.lastIndexOf("/")):"",r=t.split("/"),o=n?n.split("/"):[];for(const s of r)s===".."?o.pop():s!=="."&&s!==""&&o.push(s);return o.join("/")},Y=e=>({name:"virtual-file-system",resolveId(t,n){const r=n?.startsWith(f)?n.slice(f.length):n;if(t.startsWith("./")||t.startsWith("../")){const s=W(r?xe(r,t):t);if(e[s])return f+s;const c=[".js",".jsx",".ts",".tsx"];for(const i of c){const a=s+i;if(e[a])return f+a}}if(e[t])return f+t;const o=[".js",".jsx",".ts",".tsx"];for(const s of o){const c=t+s;if(e[c])return f+c}return null},load(t){if(t.startsWith(f)){const n=t.slice(f.length);if(e[n])return e[n]}return null}}),Se=async({files:e,rollup:t,enableSourcemap:n=!0})=>{let r="index.js";if(!e[r]&&(r="index.jsx",!e[r]))throw new Error("Missing entry point, can't find index.js or index.jsx");const s={input:"./"+r,plugins:[Y(e),M()],onwarn(l,p){l.code!=="UNRESOLVED_IMPORT"&&p(l)}},c={format:"iife",sourcemap:n},i=j(e);if(i){const l={...ye,...B(i)};l&&(s.external=Object.keys(l),c.globals=l)}const a=await t(s),{output:d}=await a.generate(c);return d[0].code},$e=async({files:e,rollup:t,enableSourcemap:n})=>({...e,"bundle.js":await Se({files:e,rollup:t,enableSourcemap:n}),"index.html":ve(e)}),je=e=>{const t=[],n=[],r=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi;let o,s=0;for(;(o=r.exec(e))!==null;){const c=o[1],i=o[2];if(!/\btype\s*=\s*["']module["']/i.test(c))continue;const a=c.match(/\bsrc\s*=\s*["']([^"']+)["']/i);if(a)t.push(a[1]);else if(i.trim()){const d=`__inline_script_${s++}.js`;n.push({id:d,content:i.trim()}),t.push(d)}}return{entryPoints:t,inlineScripts:n}},Ce=()=>({name:"catch-all-prevent-fs",resolveId(e,t){return{id:e,external:!0}}}),Ie=async({entryPoint:e,files:t,rollup:n,enableSourcemap:r=!0})=>{const s={input:e.startsWith("./")?e:`./${e}`,plugins:[Y(t),M({jsxRuntime:"automatic"}),Ce()],onwarn(a,d){}},c=await n(s),{output:i}=await c.generate({format:"es",sourcemap:r});return i[0].code},k=(e,t)=>new RegExp(`<${t}\\b`,"i").test(e)&&new RegExp(`</${t}>`,"i").test(e),Re=e=>{const t=e.trim();return k(t,"html")&&k(t,"head")&&k(t,"body")?t:`<html><head></head><body>${t}</body></html>`},J=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),D=(e,t,n)=>e.replace(new RegExp(t,"i"),`${n}${t}`),Oe=e=>{const t=z(e);if(Object.keys(t).length===0)return null;const n=F(e),r={};for(const[o,s]of Object.entries(t))r[o]=V({name:o,version:s},n);return JSON.stringify({imports:r},null,2)},Ne=(e,t,n=[])=>{if(!e["index.html"])return"";let r=Re(e["index.html"]);t.forEach((c,i)=>{if(n.some(d=>d.id===i)){const d=n.find(m=>m.id===i)?.content||"",l=J(d),p=new RegExp(`<script\\b[^>]*\\btype=["']module["'][^>]*>\\s*${l}\\s*<\/script>`,"gi");r=r.replace(p,`<script type="module">
|
246
|
-
${c}
|
247
|
-
<\/script>`)}else{const d=new RegExp(`<script\\b[^>]*\\bsrc=["']${J(i)}["'][^>]*>[^<]*<\/script>`,"gi");r=r.replace(d,`<script type="module">
|
248
|
-
${c}
|
249
|
-
<\/script>`)}});const o=Oe(e);if(o&&!/<script\b[^>]*type=["']importmap["'][^>]*>/i.test(r)){const i=`<script type="importmap">
|
250
|
-
${o}
|
251
|
-
<\/script>
|
252
|
-
`;r=D(r,"</head>",i)}const s=`<script>${C()}<\/script>
|
253
|
-
`;return r=D(r,"</head>",s),/^\s*<!DOCTYPE/i.test(r)?r:`<!DOCTYPE html>${r}`},Te=async({files:e,rollup:t,enableSourcemap:n=!0})=>{const r=e["index.html"]||"",{entryPoints:o,inlineScripts:s}=je(r);if(o.length===0)return e;const c={...e};for(const d of s)c[d.id]=d.content;const i=new Map;for(const d of o){const l=await Ie({entryPoint:d,files:c,rollup:t,enableSourcemap:n});i.set(d,l)}const a=Ne(c,i,s);return{...e,"index.html":a}},b=!1,ke=e=>{const t=`<script>${C()}<\/script>`;return e.includes("</head>")?e.replace("</head>",`${t}
|
254
|
-
</head>`):e.includes("</body>")?e.replace("</body>",`${t}
|
255
|
-
</body>`):e+t},Me=async({files:e,rollup:t,enableSourcemap:n=!0,vizCache:r,vizId:o,slugCache:s,getSvelteCompiler:c})=>{try{if(b&&console.log("[build] files:",e?JSON.stringify(e).substring(0,100):void 0),b&&console.log("[build] vizCache:",r),b&&console.log("[build] vizId:",o),!e&&!r)throw new Error("Either files or vizCache is required");if(!e&&r&&!o)throw new Error("vizId is required when using vizCache");if(!e&&r&&o&&(e=v.vizFilesToFileCollection((await r.get(o))?.files)),!e)throw new Error("Upable to extract viz files");const i=G(e);if(b&&console.log("[build] version:",i),i==="v1")return{html:ke(I.magicSandbox(e)),runtimeVersion:i};if(i==="v2"){if(!t)throw new Error("Rollup is required for v2 runtime");return{html:I.magicSandbox(await $e({files:e,rollup:t,enableSourcemap:n})),runtimeVersion:i}}if(i==="v3"){if(!t)throw new Error("Rollup is required for v3 runtime");if(!r&&!o){const a=H(e);o=a.id,r=_({initialContents:[a],handleCacheMiss:async()=>{throw new Error("Cache miss handler not implemented")}})}if(!r)throw new Error("vizCache is required for v3 runtime");if(!o)throw new Error("vizId is required for v3 runtime if vizCache is provided");return await q({files:e,rollup:t,vizCache:r,vizId:o,slugCache:s,getSvelteCompiler:c})}if(i==="v4"){if(!t)throw new Error("Rollup is required for v4 runtime");return b&&console.log("[build] v4Build",{files:e,rollup:t,enableSourcemap:n}),{html:I.magicSandbox(await Te({files:e,rollup:t,enableSourcemap:n})),runtimeVersion:i}}throw new Error(`Unsupported runtime version: ${i}`)}catch(i){throw i instanceof Error&&i.message.indexOf(f)&&(i.message=i.message.replace(f,"")),i}};exports.build=Me;exports.computeBundleJSV3=A;exports.createSlugCache=me;exports.createVizCache=_;exports.createVizContent=H;exports.determineRuntimeVersion=G;exports.generateRequestId=Z;exports.svelteCompilerUrl=ae;exports.v3Build=q;
|
256
|
-
//# sourceMappingURL=build-BXOhZlRS.cjs.map
|