@vizhub/runtime 0.3.8 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (624) hide show
  1. package/README.md +33 -21
  2. package/dist/{buildHTML.d.ts → build/build.d.ts} +6 -6
  3. package/dist/build/build.d.ts.map +1 -0
  4. package/dist/{determineRuntimeVersion.d.ts → build/determineRuntimeVersion.d.ts} +1 -0
  5. package/dist/build/determineRuntimeVersion.d.ts.map +1 -0
  6. package/dist/build/determineRuntimeVersion.test.d.ts +2 -0
  7. package/dist/build/determineRuntimeVersion.test.d.ts.map +1 -0
  8. package/dist/build/index.d.ts +2 -0
  9. package/dist/build/index.d.ts.map +1 -0
  10. package/dist/build/types.d.ts +7 -0
  11. package/dist/build/types.d.ts.map +1 -0
  12. package/dist/common/packageJson.d.ts +1 -0
  13. package/dist/common/packageJson.d.ts.map +1 -0
  14. package/dist/common/packageJson.test.d.ts +1 -0
  15. package/dist/common/packageJson.test.d.ts.map +1 -0
  16. package/dist/common/sucrasePlugin.d.ts +1 -0
  17. package/dist/common/sucrasePlugin.d.ts.map +1 -0
  18. package/dist/common/virtualFileSystem.d.ts +1 -0
  19. package/dist/common/virtualFileSystem.d.ts.map +1 -0
  20. package/dist/createVizContent-BOSPq-Jv.cjs +207 -0
  21. package/dist/createVizContent-BOSPq-Jv.cjs.map +1 -0
  22. package/dist/createVizContent-DjJF2PT_.js +565 -0
  23. package/dist/createVizContent-DjJF2PT_.js.map +1 -0
  24. package/dist/index.cjs +2 -0
  25. package/dist/index.cjs.map +1 -0
  26. package/dist/index.d.ts +5 -3
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +193 -3
  29. package/dist/index.js.map +1 -0
  30. package/dist/old-implementation-reference/setupV3Runtime.d.ts +1 -0
  31. package/dist/old-implementation-reference/setupV3Runtime.d.ts.map +1 -0
  32. package/dist/old-implementation-reference/types.d.ts +1 -0
  33. package/dist/old-implementation-reference/types.d.ts.map +1 -0
  34. package/dist/old-implementation-reference/worker.d.ts +1 -0
  35. package/dist/old-implementation-reference/worker.d.ts.map +1 -0
  36. package/dist/orchestration/createRuntime.d.ts +11 -0
  37. package/dist/orchestration/createRuntime.d.ts.map +1 -0
  38. package/dist/orchestration/generateRequestId.d.ts +2 -0
  39. package/dist/orchestration/generateRequestId.d.ts.map +1 -0
  40. package/dist/orchestration/setupBuild.d.ts +10 -0
  41. package/dist/orchestration/setupBuild.d.ts.map +1 -0
  42. package/dist/orchestration/setupInvalidateVizCache.d.ts +3 -0
  43. package/dist/orchestration/setupInvalidateVizCache.d.ts.map +1 -0
  44. package/dist/orchestration/types.d.ts +66 -0
  45. package/dist/orchestration/types.d.ts.map +1 -0
  46. package/dist/orchestration/worker.d.ts +2 -0
  47. package/dist/orchestration/worker.d.ts.map +1 -0
  48. package/dist/test/end-to-end.test.d.ts +2 -0
  49. package/dist/test/end-to-end.test.d.ts.map +1 -0
  50. package/dist/test/fixtures/v1/basicHTML.d.ts +1 -0
  51. package/dist/test/fixtures/v1/basicHTML.d.ts.map +1 -0
  52. package/dist/test/fixtures/v1/fetchProxy.d.ts +1 -0
  53. package/dist/test/fixtures/v1/fetchProxy.d.ts.map +1 -0
  54. package/dist/test/fixtures/v1/index.d.ts +1 -0
  55. package/dist/test/fixtures/v1/index.d.ts.map +1 -0
  56. package/dist/test/fixtures/v1/jsScriptTag.d.ts +1 -0
  57. package/dist/test/fixtures/v1/jsScriptTag.d.ts.map +1 -0
  58. package/dist/test/fixtures/v1/protocolTest.d.ts +1 -0
  59. package/dist/test/fixtures/v1/protocolTest.d.ts.map +1 -0
  60. package/dist/test/fixtures/v1/styleTest.d.ts +1 -0
  61. package/dist/test/fixtures/v1/styleTest.d.ts.map +1 -0
  62. package/dist/test/fixtures/v1/xmlTest.d.ts +1 -0
  63. package/dist/test/fixtures/v1/xmlTest.d.ts.map +1 -0
  64. package/dist/test/fixtures/v2/basicBundle.d.ts +1 -0
  65. package/dist/test/fixtures/v2/basicBundle.d.ts.map +1 -0
  66. package/dist/test/fixtures/v2/basicBundleNoExtension.d.ts +1 -0
  67. package/dist/test/fixtures/v2/basicBundleNoExtension.d.ts.map +1 -0
  68. package/dist/test/fixtures/v2/d3Import.d.ts +1 -0
  69. package/dist/test/fixtures/v2/d3Import.d.ts.map +1 -0
  70. package/dist/test/fixtures/v2/d3ImportPkg.d.ts +1 -0
  71. package/dist/test/fixtures/v2/d3ImportPkg.d.ts.map +1 -0
  72. package/dist/test/fixtures/v2/d3RosettaImportPkg.d.ts +1 -0
  73. package/dist/test/fixtures/v2/d3RosettaImportPkg.d.ts.map +1 -0
  74. package/dist/test/fixtures/v2/es6Preserve.d.ts +1 -0
  75. package/dist/test/fixtures/v2/es6Preserve.d.ts.map +1 -0
  76. package/dist/test/fixtures/v2/generatorSupport.d.ts +1 -0
  77. package/dist/test/fixtures/v2/generatorSupport.d.ts.map +1 -0
  78. package/dist/test/fixtures/v2/index.d.ts +3 -1
  79. package/dist/test/fixtures/v2/index.d.ts.map +1 -0
  80. package/dist/test/fixtures/v2/jsxTranspile.d.ts +1 -0
  81. package/dist/test/fixtures/v2/jsxTranspile.d.ts.map +1 -0
  82. package/dist/test/fixtures/v2/reactDomImport.d.ts +1 -0
  83. package/dist/test/fixtures/v2/reactDomImport.d.ts.map +1 -0
  84. package/dist/test/fixtures/v2/reactDomImportPkg.d.ts +1 -0
  85. package/dist/test/fixtures/v2/reactDomImportPkg.d.ts.map +1 -0
  86. package/dist/test/fixtures/v2/reactImport.d.ts +1 -0
  87. package/dist/test/fixtures/v2/reactImport.d.ts.map +1 -0
  88. package/dist/test/fixtures/v2/reactImportPkg.d.ts +1 -0
  89. package/dist/test/fixtures/v2/reactImportPkg.d.ts.map +1 -0
  90. package/dist/test/fixtures/v2/sourceMapErrorFixture.d.ts +1 -0
  91. package/dist/test/fixtures/v2/sourceMapErrorFixture.d.ts.map +1 -0
  92. package/dist/test/fixtures/v2/syntaxError.d.ts +6 -0
  93. package/dist/test/fixtures/v2/syntaxError.d.ts.map +1 -0
  94. package/dist/test/fixtures/v2/unicodeSupport.d.ts +1 -0
  95. package/dist/test/fixtures/v2/unicodeSupport.d.ts.map +1 -0
  96. package/dist/test/fixtures/v3/basicIndexJS.d.ts +1 -0
  97. package/dist/test/fixtures/v3/basicIndexJS.d.ts.map +1 -0
  98. package/dist/test/fixtures/v3/cssImport.d.ts +1 -0
  99. package/dist/test/fixtures/v3/cssImport.d.ts.map +1 -0
  100. package/dist/test/fixtures/v3/csvImport.d.ts +1 -0
  101. package/dist/test/fixtures/v3/csvImport.d.ts.map +1 -0
  102. package/dist/test/fixtures/v3/csvStrangeChars.d.ts +1 -0
  103. package/dist/test/fixtures/v3/csvStrangeChars.d.ts.map +1 -0
  104. package/dist/test/fixtures/v3/d3Dependency.d.ts +5 -0
  105. package/dist/test/fixtures/v3/d3Dependency.d.ts.map +1 -0
  106. package/dist/test/fixtures/v3/index.d.ts +2 -0
  107. package/dist/test/fixtures/v3/index.d.ts.map +1 -0
  108. package/dist/test/fixtures/v3/jsExport.d.ts +1 -0
  109. package/dist/test/fixtures/v3/jsExport.d.ts.map +1 -0
  110. package/dist/test/fixtures/v3/sourcemap.d.ts +1 -0
  111. package/dist/test/fixtures/v3/sourcemap.d.ts.map +1 -0
  112. package/dist/test/fixtures/v3/svelte.d.ts +1 -0
  113. package/dist/test/fixtures/v3/svelte.d.ts.map +1 -0
  114. package/dist/test/fixtures/v3/vizContent.d.ts +1 -0
  115. package/dist/test/fixtures/v3/vizContent.d.ts.map +1 -0
  116. package/dist/test/fixtures/v3/vizImport.d.ts +1 -0
  117. package/dist/test/fixtures/v3/vizImport.d.ts.map +1 -0
  118. package/dist/test/fixtures/v4/d3Usage.d.ts +1 -0
  119. package/dist/test/fixtures/v4/d3Usage.d.ts.map +1 -0
  120. package/dist/test/fixtures/v4/esmBuild.d.ts +1 -0
  121. package/dist/test/fixtures/v4/esmBuild.d.ts.map +1 -0
  122. package/dist/test/fixtures/v4/fetchInterception.d.ts +1 -0
  123. package/dist/test/fixtures/v4/fetchInterception.d.ts.map +1 -0
  124. package/dist/test/fixtures/v4/index.d.ts +1 -0
  125. package/dist/test/fixtures/v4/index.d.ts.map +1 -0
  126. package/dist/test/fixtures/v4/jsScriptTagTypeModule.d.ts +1 -0
  127. package/dist/test/fixtures/v4/jsScriptTagTypeModule.d.ts.map +1 -0
  128. package/dist/test/fixtures/v4/jsScriptTagTypeModules.d.ts +1 -0
  129. package/dist/test/fixtures/v4/jsScriptTagTypeModules.d.ts.map +1 -0
  130. package/dist/test/fixtures/v4/reactHooks.d.ts +1 -0
  131. package/dist/test/fixtures/v4/reactHooks.d.ts.map +1 -0
  132. package/dist/test/fixtures/v4/reactJsx.d.ts +1 -0
  133. package/dist/test/fixtures/v4/reactJsx.d.ts.map +1 -0
  134. package/dist/test/fixtures/v4/threeJsUsage.d.ts +1 -0
  135. package/dist/test/fixtures/v4/threeJsUsage.d.ts.map +1 -0
  136. package/dist/test/fixtures/v4/typeScriptSupport.d.ts +1 -0
  137. package/dist/test/fixtures/v4/typeScriptSupport.d.ts.map +1 -0
  138. package/dist/test/orchestration.test.d.ts +2 -0
  139. package/dist/test/orchestration.test.d.ts.map +1 -0
  140. package/dist/test/testInBrowser.d.ts +5 -4
  141. package/dist/test/testInBrowser.d.ts.map +1 -0
  142. package/dist/test/testMockedIframeWithWorker.d.ts +28 -0
  143. package/dist/test/testMockedIframeWithWorker.d.ts.map +1 -0
  144. package/dist/test/testRuntimeWithWorker.d.ts +18 -0
  145. package/dist/test/testRuntimeWithWorker.d.ts.map +1 -0
  146. package/dist/test/testStackTrace.d.ts +1 -0
  147. package/dist/test/testStackTrace.d.ts.map +1 -0
  148. package/dist/test/v1.test.d.ts +1 -0
  149. package/dist/test/v1.test.d.ts.map +1 -0
  150. package/dist/test/v2.test.d.ts +1 -0
  151. package/dist/test/v2.test.d.ts.map +1 -0
  152. package/dist/test/v3.test.d.ts +1 -0
  153. package/dist/test/v3.test.d.ts.map +1 -0
  154. package/dist/test/v4.test.d.ts +1 -0
  155. package/dist/test/v4.test.d.ts.map +1 -0
  156. package/dist/v2/computeBundleJSV2.d.ts +1 -0
  157. package/dist/v2/computeBundleJSV2.d.ts.map +1 -0
  158. package/dist/v2/getComputedIndexHtml.d.ts +1 -2
  159. package/dist/v2/getComputedIndexHtml.d.ts.map +1 -0
  160. package/dist/v2/getComputedIndexHtml.test.d.ts +1 -0
  161. package/dist/v2/getComputedIndexHtml.test.d.ts.map +1 -0
  162. package/dist/v2/index.d.ts +1 -0
  163. package/dist/v2/index.d.ts.map +1 -0
  164. package/dist/v2/v2Build.d.ts +1 -0
  165. package/dist/v2/v2Build.d.ts.map +1 -0
  166. package/dist/v3/cleanRollupErrorMessage.d.ts +1 -0
  167. package/dist/v3/cleanRollupErrorMessage.d.ts.map +1 -0
  168. package/dist/v3/cleanRollupErrorMessage.test.d.ts +2 -0
  169. package/dist/v3/cleanRollupErrorMessage.test.d.ts.map +1 -0
  170. package/dist/v3/computeBundleJSV3.d.ts +6 -5
  171. package/dist/v3/computeBundleJSV3.d.ts.map +1 -0
  172. package/dist/v3/createVizContent.d.ts +1 -0
  173. package/dist/v3/createVizContent.d.ts.map +1 -0
  174. package/dist/v3/extractVizImport.d.ts +1 -0
  175. package/dist/v3/extractVizImport.d.ts.map +1 -0
  176. package/dist/v3/extractVizImport.test.d.ts +1 -0
  177. package/dist/v3/extractVizImport.test.d.ts.map +1 -0
  178. package/dist/v3/htmlTemplate.d.ts +1 -0
  179. package/dist/v3/htmlTemplate.d.ts.map +1 -0
  180. package/dist/v3/index.d.ts +10 -0
  181. package/dist/v3/index.d.ts.map +1 -0
  182. package/dist/v3/parseId.d.ts +3 -2
  183. package/dist/v3/parseId.d.ts.map +1 -0
  184. package/dist/v3/parseId.test.d.ts +1 -0
  185. package/dist/v3/parseId.test.d.ts.map +1 -0
  186. package/dist/v3/setupV3Runtime.d.ts +1 -15
  187. package/dist/v3/setupV3Runtime.d.ts.map +1 -0
  188. package/dist/v3/slugCache.d.ts +1 -0
  189. package/dist/v3/slugCache.d.ts.map +1 -0
  190. package/dist/v3/slugCache.test.d.ts +1 -0
  191. package/dist/v3/slugCache.test.d.ts.map +1 -0
  192. package/dist/v3/transformDSV/dsvParseSrc.d.ts +1 -0
  193. package/dist/v3/transformDSV/dsvParseSrc.d.ts.map +1 -0
  194. package/dist/v3/transformDSV/index.d.ts +1 -0
  195. package/dist/v3/transformDSV/index.d.ts.map +1 -0
  196. package/dist/v3/transformSvelte.d.ts +2 -1
  197. package/dist/v3/transformSvelte.d.ts.map +1 -0
  198. package/dist/v3/types.d.ts +2 -1
  199. package/dist/v3/types.d.ts.map +1 -0
  200. package/dist/v3/v3Build.d.ts +6 -4
  201. package/dist/v3/v3Build.d.ts.map +1 -0
  202. package/dist/v3/vizCache.d.ts +1 -0
  203. package/dist/v3/vizCache.d.ts.map +1 -0
  204. package/dist/v3/vizCache.test.d.ts +1 -0
  205. package/dist/v3/vizCache.test.d.ts.map +1 -0
  206. package/dist/v3/vizLoad.d.ts +3 -2
  207. package/dist/v3/vizLoad.d.ts.map +1 -0
  208. package/dist/v3/vizResolve.d.ts +2 -1
  209. package/dist/v3/vizResolve.d.ts.map +1 -0
  210. package/dist/v4/bundleModule.d.ts +12 -0
  211. package/dist/v4/bundleModule.d.ts.map +1 -0
  212. package/dist/v4/extractEntryPoints.d.ts +5 -0
  213. package/dist/v4/extractEntryPoints.d.ts.map +1 -0
  214. package/dist/v4/importMap.d.ts +6 -0
  215. package/dist/v4/importMap.d.ts.map +1 -0
  216. package/dist/v4/index.d.ts +4 -1
  217. package/dist/v4/index.d.ts.map +1 -0
  218. package/dist/v4/stringUtils.d.ts +17 -0
  219. package/dist/v4/stringUtils.d.ts.map +1 -0
  220. package/dist/v4/updateHTML.d.ts +6 -0
  221. package/dist/v4/updateHTML.d.ts.map +1 -0
  222. package/dist/worker.cjs +9 -0
  223. package/dist/worker.cjs.map +1 -0
  224. package/dist/worker.js +390 -0
  225. package/dist/worker.js.map +1 -0
  226. package/package.json +21 -16
  227. package/dist/buildHTML.js +0 -67
  228. package/dist/cjs/buildHTML.js +0 -71
  229. package/dist/cjs/common/packageJson.js +0 -81
  230. package/dist/cjs/common/packageJson.test.js +0 -148
  231. package/dist/cjs/common/sucrasePlugin.js +0 -27
  232. package/dist/cjs/common/virtualFileSystem.js +0 -79
  233. package/dist/cjs/determineRuntimeVersion.js +0 -26
  234. package/dist/cjs/determineRuntimeVersion.test.js +0 -103
  235. package/dist/cjs/index.js +0 -13
  236. package/dist/cjs/package.json +0 -1
  237. package/dist/cjs/test/fixtures/v1/basicHTML.js +0 -18
  238. package/dist/cjs/test/fixtures/v1/fetchProxy.js +0 -15
  239. package/dist/cjs/test/fixtures/v1/index.js +0 -15
  240. package/dist/cjs/test/fixtures/v1/jsScriptTag.js +0 -12
  241. package/dist/cjs/test/fixtures/v1/protocolTest.js +0 -18
  242. package/dist/cjs/test/fixtures/v1/styleTest.js +0 -18
  243. package/dist/cjs/test/fixtures/v1/xmlTest.js +0 -22
  244. package/dist/cjs/test/fixtures/v2/basicBundle.js +0 -8
  245. package/dist/cjs/test/fixtures/v2/basicBundleNoExtension.js +0 -8
  246. package/dist/cjs/test/fixtures/v2/d3Import.js +0 -10
  247. package/dist/cjs/test/fixtures/v2/d3ImportPkg.js +0 -22
  248. package/dist/cjs/test/fixtures/v2/d3RosettaImportPkg.js +0 -22
  249. package/dist/cjs/test/fixtures/v2/es6Preserve.js +0 -9
  250. package/dist/cjs/test/fixtures/v2/generatorSupport.js +0 -9
  251. package/dist/cjs/test/fixtures/v2/index.js +0 -45
  252. package/dist/cjs/test/fixtures/v2/jsxTranspile.js +0 -9
  253. package/dist/cjs/test/fixtures/v2/reactDomImport.js +0 -11
  254. package/dist/cjs/test/fixtures/v2/reactDomImportPkg.js +0 -27
  255. package/dist/cjs/test/fixtures/v2/reactImport.js +0 -10
  256. package/dist/cjs/test/fixtures/v2/reactImportPkg.js +0 -20
  257. package/dist/cjs/test/fixtures/v2/sourceMapErrorFixture.js +0 -22
  258. package/dist/cjs/test/fixtures/v2/unicodeSupport.js +0 -9
  259. package/dist/cjs/test/fixtures/v3/basicIndexJS.js +0 -10
  260. package/dist/cjs/test/fixtures/v3/cssImport.js +0 -12
  261. package/dist/cjs/test/fixtures/v3/csvImport.js +0 -14
  262. package/dist/cjs/test/fixtures/v3/csvStrangeChars.js +0 -15
  263. package/dist/cjs/test/fixtures/v3/index.js +0 -25
  264. package/dist/cjs/test/fixtures/v3/jsExport.js +0 -13
  265. package/dist/cjs/test/fixtures/v3/sourcemap.js +0 -13
  266. package/dist/cjs/test/fixtures/v3/svelte.js +0 -21
  267. package/dist/cjs/test/fixtures/v3/vizContent.js +0 -14
  268. package/dist/cjs/test/fixtures/v3/vizImport.js +0 -88
  269. package/dist/cjs/test/fixtures/v4/d3Usage.js +0 -34
  270. package/dist/cjs/test/fixtures/v4/esmBuild.js +0 -21
  271. package/dist/cjs/test/fixtures/v4/fetchInterception.js +0 -21
  272. package/dist/cjs/test/fixtures/v4/index.js +0 -21
  273. package/dist/cjs/test/fixtures/v4/jsScriptTagTypeModule.js +0 -21
  274. package/dist/cjs/test/fixtures/v4/jsScriptTagTypeModules.js +0 -15
  275. package/dist/cjs/test/fixtures/v4/reactHooks.js +0 -50
  276. package/dist/cjs/test/fixtures/v4/reactJsx.js +0 -37
  277. package/dist/cjs/test/fixtures/v4/threeJsUsage.js +0 -27
  278. package/dist/cjs/test/fixtures/v4/typeScriptSupport.js +0 -32
  279. package/dist/cjs/test/testInBrowser.js +0 -50
  280. package/dist/cjs/test/testStackTrace.js +0 -58
  281. package/dist/cjs/test/v1.test.js +0 -70
  282. package/dist/cjs/test/v2.test.js +0 -124
  283. package/dist/cjs/test/v3.test.js +0 -119
  284. package/dist/cjs/test/v4.test.js +0 -105
  285. package/dist/cjs/types.js +0 -2
  286. package/dist/cjs/utils/vizContentToFileCollection.js +0 -24
  287. package/dist/cjs/utils/vizContentToFileCollection.test.js +0 -77
  288. package/dist/cjs/v2/computeBundleJSV2.js +0 -33
  289. package/dist/cjs/v2/getComputedIndexHtml.js +0 -86
  290. package/dist/cjs/v2/getComputedIndexHtml.test.js +0 -136
  291. package/dist/cjs/v2/index.js +0 -5
  292. package/dist/cjs/v2/v2Build.js +0 -15
  293. package/dist/cjs/v3/cleanRollupErrorMessage.js +0 -13
  294. package/dist/cjs/v3/computeBundleJSV3.js +0 -52
  295. package/dist/cjs/v3/createVizContent.js +0 -27
  296. package/dist/cjs/v3/extractVizImport.js +0 -27
  297. package/dist/cjs/v3/extractVizImport.test.js +0 -32
  298. package/dist/cjs/v3/htmlTemplate.js +0 -93
  299. package/dist/cjs/v3/index.js +0 -5
  300. package/dist/cjs/v3/parseId.js +0 -9
  301. package/dist/cjs/v3/parseId.test.js +0 -27
  302. package/dist/cjs/v3/setupV3Runtime.js +0 -345
  303. package/dist/cjs/v3/slugCache.js +0 -39
  304. package/dist/cjs/v3/slugCache.test.js +0 -107
  305. package/dist/cjs/v3/transformDSV/dsvParseSrc.js +0 -124
  306. package/dist/cjs/v3/transformDSV/index.js +0 -44
  307. package/dist/cjs/v3/transformSvelte.js +0 -81
  308. package/dist/cjs/v3/types.js +0 -2
  309. package/dist/cjs/v3/v3Build.js +0 -34
  310. package/dist/cjs/v3/vizCache.js +0 -40
  311. package/dist/cjs/v3/vizCache.test.js +0 -100
  312. package/dist/cjs/v3/vizLoad.js +0 -50
  313. package/dist/cjs/v3/vizResolve.js +0 -73
  314. package/dist/cjs/v4/index.js +0 -138
  315. package/dist/common/packageJson.js +0 -71
  316. package/dist/common/packageJson.test.js +0 -146
  317. package/dist/common/sucrasePlugin.js +0 -24
  318. package/dist/common/virtualFileSystem.js +0 -75
  319. package/dist/determineRuntimeVersion.js +0 -22
  320. package/dist/determineRuntimeVersion.test.d.ts +0 -1
  321. package/dist/determineRuntimeVersion.test.js +0 -101
  322. package/dist/esm/buildHTML.js +0 -67
  323. package/dist/esm/common/packageJson.js +0 -71
  324. package/dist/esm/common/packageJson.test.js +0 -146
  325. package/dist/esm/common/sucrasePlugin.js +0 -24
  326. package/dist/esm/common/virtualFileSystem.js +0 -75
  327. package/dist/esm/determineRuntimeVersion.js +0 -22
  328. package/dist/esm/determineRuntimeVersion.test.js +0 -101
  329. package/dist/esm/index.js +0 -5
  330. package/dist/esm/test/fixtures/v1/basicHTML.js +0 -15
  331. package/dist/esm/test/fixtures/v1/fetchProxy.js +0 -12
  332. package/dist/esm/test/fixtures/v1/index.js +0 -6
  333. package/dist/esm/test/fixtures/v1/jsScriptTag.js +0 -9
  334. package/dist/esm/test/fixtures/v1/protocolTest.js +0 -15
  335. package/dist/esm/test/fixtures/v1/styleTest.js +0 -15
  336. package/dist/esm/test/fixtures/v1/xmlTest.js +0 -19
  337. package/dist/esm/test/fixtures/v2/basicBundle.js +0 -5
  338. package/dist/esm/test/fixtures/v2/basicBundleNoExtension.js +0 -5
  339. package/dist/esm/test/fixtures/v2/d3Import.js +0 -7
  340. package/dist/esm/test/fixtures/v2/d3ImportPkg.js +0 -19
  341. package/dist/esm/test/fixtures/v2/d3RosettaImportPkg.js +0 -19
  342. package/dist/esm/test/fixtures/v2/es6Preserve.js +0 -6
  343. package/dist/esm/test/fixtures/v2/generatorSupport.js +0 -6
  344. package/dist/esm/test/fixtures/v2/index.js +0 -15
  345. package/dist/esm/test/fixtures/v2/jsxTranspile.js +0 -6
  346. package/dist/esm/test/fixtures/v2/reactDomImport.js +0 -8
  347. package/dist/esm/test/fixtures/v2/reactDomImportPkg.js +0 -24
  348. package/dist/esm/test/fixtures/v2/reactImport.js +0 -7
  349. package/dist/esm/test/fixtures/v2/reactImportPkg.js +0 -17
  350. package/dist/esm/test/fixtures/v2/sourceMapErrorFixture.js +0 -19
  351. package/dist/esm/test/fixtures/v2/unicodeSupport.js +0 -6
  352. package/dist/esm/test/fixtures/v3/basicIndexJS.js +0 -7
  353. package/dist/esm/test/fixtures/v3/cssImport.js +0 -9
  354. package/dist/esm/test/fixtures/v3/csvImport.js +0 -11
  355. package/dist/esm/test/fixtures/v3/csvStrangeChars.js +0 -12
  356. package/dist/esm/test/fixtures/v3/index.js +0 -9
  357. package/dist/esm/test/fixtures/v3/jsExport.js +0 -10
  358. package/dist/esm/test/fixtures/v3/sourcemap.js +0 -10
  359. package/dist/esm/test/fixtures/v3/svelte.js +0 -18
  360. package/dist/esm/test/fixtures/v3/vizContent.js +0 -11
  361. package/dist/esm/test/fixtures/v3/vizImport.js +0 -85
  362. package/dist/esm/test/fixtures/v4/d3Usage.js +0 -31
  363. package/dist/esm/test/fixtures/v4/esmBuild.js +0 -18
  364. package/dist/esm/test/fixtures/v4/fetchInterception.js +0 -18
  365. package/dist/esm/test/fixtures/v4/index.js +0 -9
  366. package/dist/esm/test/fixtures/v4/jsScriptTagTypeModule.js +0 -18
  367. package/dist/esm/test/fixtures/v4/jsScriptTagTypeModules.js +0 -12
  368. package/dist/esm/test/fixtures/v4/reactHooks.js +0 -47
  369. package/dist/esm/test/fixtures/v4/reactJsx.js +0 -34
  370. package/dist/esm/test/fixtures/v4/threeJsUsage.js +0 -24
  371. package/dist/esm/test/fixtures/v4/typeScriptSupport.js +0 -29
  372. package/dist/esm/test/testInBrowser.js +0 -47
  373. package/dist/esm/test/testStackTrace.js +0 -55
  374. package/dist/esm/test/v1.test.js +0 -65
  375. package/dist/esm/test/v2.test.js +0 -121
  376. package/dist/esm/test/v3.test.js +0 -114
  377. package/dist/esm/test/v4.test.js +0 -100
  378. package/dist/esm/types.js +0 -1
  379. package/dist/esm/utils/vizContentToFileCollection.js +0 -20
  380. package/dist/esm/utils/vizContentToFileCollection.test.js +0 -75
  381. package/dist/esm/v2/computeBundleJSV2.js +0 -29
  382. package/dist/esm/v2/getComputedIndexHtml.js +0 -81
  383. package/dist/esm/v2/getComputedIndexHtml.test.js +0 -134
  384. package/dist/esm/v2/index.js +0 -1
  385. package/dist/esm/v2/v2Build.js +0 -11
  386. package/dist/esm/v3/cleanRollupErrorMessage.js +0 -9
  387. package/dist/esm/v3/computeBundleJSV3.js +0 -48
  388. package/dist/esm/v3/createVizContent.js +0 -23
  389. package/dist/esm/v3/extractVizImport.js +0 -23
  390. package/dist/esm/v3/extractVizImport.test.js +0 -30
  391. package/dist/esm/v3/htmlTemplate.js +0 -89
  392. package/dist/esm/v3/index.js +0 -1
  393. package/dist/esm/v3/parseId.js +0 -5
  394. package/dist/esm/v3/parseId.test.js +0 -25
  395. package/dist/esm/v3/setupV3Runtime.js +0 -341
  396. package/dist/esm/v3/slugCache.js +0 -35
  397. package/dist/esm/v3/slugCache.test.js +0 -105
  398. package/dist/esm/v3/transformDSV/dsvParseSrc.js +0 -121
  399. package/dist/esm/v3/transformDSV/index.js +0 -40
  400. package/dist/esm/v3/transformSvelte.js +0 -77
  401. package/dist/esm/v3/types.js +0 -1
  402. package/dist/esm/v3/v3Build.js +0 -30
  403. package/dist/esm/v3/vizCache.js +0 -36
  404. package/dist/esm/v3/vizCache.test.js +0 -98
  405. package/dist/esm/v3/vizLoad.js +0 -46
  406. package/dist/esm/v3/vizResolve.js +0 -69
  407. package/dist/esm/v4/index.js +0 -134
  408. package/dist/fixtures/basicHTML.d.ts +0 -2
  409. package/dist/fixtures/basicHTML.js +0 -22
  410. package/dist/fixtures/fetchProxy.d.ts +0 -2
  411. package/dist/fixtures/fetchProxy.js +0 -25
  412. package/dist/fixtures/index.d.ts +0 -3
  413. package/dist/fixtures/index.js +0 -9
  414. package/dist/fixtures/jsScriptTag.d.ts +0 -2
  415. package/dist/fixtures/jsScriptTag.js +0 -19
  416. package/dist/index.test.d.ts +0 -1
  417. package/dist/index.test.js +0 -50
  418. package/dist/magicSandbox/fixProtocollessUrls.d.ts +0 -4
  419. package/dist/magicSandbox/fixProtocollessUrls.js +0 -10
  420. package/dist/magicSandbox/generateInterceptorScript.d.ts +0 -4
  421. package/dist/magicSandbox/generateInterceptorScript.js +0 -178
  422. package/dist/magicSandbox/index.d.ts +0 -19
  423. package/dist/magicSandbox/index.js +0 -48
  424. package/dist/test/fixtures/basicHTML.d.ts +0 -2
  425. package/dist/test/fixtures/basicHTML.js +0 -19
  426. package/dist/test/fixtures/fetchProxy.d.ts +0 -2
  427. package/dist/test/fixtures/fetchProxy.js +0 -22
  428. package/dist/test/fixtures/index.d.ts +0 -6
  429. package/dist/test/fixtures/index.js +0 -6
  430. package/dist/test/fixtures/jsScriptTag.d.ts +0 -2
  431. package/dist/test/fixtures/jsScriptTag.js +0 -16
  432. package/dist/test/fixtures/magicSandbox/basicHTML.d.ts +0 -5
  433. package/dist/test/fixtures/magicSandbox/basicHTML.js +0 -17
  434. package/dist/test/fixtures/magicSandbox/fetchProxy.d.ts +0 -11
  435. package/dist/test/fixtures/magicSandbox/fetchProxy.js +0 -18
  436. package/dist/test/fixtures/magicSandbox/index.d.ts +0 -6
  437. package/dist/test/fixtures/magicSandbox/index.js +0 -6
  438. package/dist/test/fixtures/magicSandbox/jsScriptTag.d.ts +0 -8
  439. package/dist/test/fixtures/magicSandbox/jsScriptTag.js +0 -13
  440. package/dist/test/fixtures/magicSandbox/protocolTest.d.ts +0 -5
  441. package/dist/test/fixtures/magicSandbox/protocolTest.js +0 -17
  442. package/dist/test/fixtures/magicSandbox/styleTest.d.ts +0 -8
  443. package/dist/test/fixtures/magicSandbox/styleTest.js +0 -19
  444. package/dist/test/fixtures/magicSandbox/xmlTest.d.ts +0 -8
  445. package/dist/test/fixtures/magicSandbox/xmlTest.js +0 -23
  446. package/dist/test/fixtures/protocolTest.d.ts +0 -2
  447. package/dist/test/fixtures/protocolTest.js +0 -19
  448. package/dist/test/fixtures/styleTest.d.ts +0 -2
  449. package/dist/test/fixtures/styleTest.js +0 -22
  450. package/dist/test/fixtures/v1/basicHTML.js +0 -15
  451. package/dist/test/fixtures/v1/fetchProxy.js +0 -12
  452. package/dist/test/fixtures/v1/index.js +0 -6
  453. package/dist/test/fixtures/v1/jsScriptTag.js +0 -9
  454. package/dist/test/fixtures/v1/protocolTest.js +0 -15
  455. package/dist/test/fixtures/v1/styleTest.js +0 -15
  456. package/dist/test/fixtures/v1/xmlTest.js +0 -19
  457. package/dist/test/fixtures/v2/basicBundle.js +0 -5
  458. package/dist/test/fixtures/v2/basicBundleNoExtension.js +0 -5
  459. package/dist/test/fixtures/v2/d3Import.js +0 -7
  460. package/dist/test/fixtures/v2/d3ImportPkg.js +0 -19
  461. package/dist/test/fixtures/v2/d3RosettaImportPkg.js +0 -19
  462. package/dist/test/fixtures/v2/es6Preserve.js +0 -6
  463. package/dist/test/fixtures/v2/generatorSupport.js +0 -6
  464. package/dist/test/fixtures/v2/index.js +0 -15
  465. package/dist/test/fixtures/v2/jsxTranspile.js +0 -6
  466. package/dist/test/fixtures/v2/reactDomImport.js +0 -8
  467. package/dist/test/fixtures/v2/reactDomImportPkg.js +0 -24
  468. package/dist/test/fixtures/v2/reactImport.js +0 -7
  469. package/dist/test/fixtures/v2/reactImportPkg.js +0 -17
  470. package/dist/test/fixtures/v2/sourceMapErrorFixture.js +0 -19
  471. package/dist/test/fixtures/v2/unicodeSupport.js +0 -6
  472. package/dist/test/fixtures/v3/basicIndexJS.js +0 -7
  473. package/dist/test/fixtures/v3/cssImport.js +0 -9
  474. package/dist/test/fixtures/v3/csvImport.js +0 -11
  475. package/dist/test/fixtures/v3/csvStrangeChars.js +0 -12
  476. package/dist/test/fixtures/v3/index.js +0 -9
  477. package/dist/test/fixtures/v3/jsExport.js +0 -10
  478. package/dist/test/fixtures/v3/sourcemap.js +0 -10
  479. package/dist/test/fixtures/v3/svelte.js +0 -18
  480. package/dist/test/fixtures/v3/vizContent.js +0 -11
  481. package/dist/test/fixtures/v3/vizImport.js +0 -85
  482. package/dist/test/fixtures/v4/d3Usage.js +0 -31
  483. package/dist/test/fixtures/v4/esmBuild.js +0 -18
  484. package/dist/test/fixtures/v4/fetchInterception.js +0 -18
  485. package/dist/test/fixtures/v4/index.js +0 -9
  486. package/dist/test/fixtures/v4/jsScriptTagTypeModule.js +0 -18
  487. package/dist/test/fixtures/v4/jsScriptTagTypeModules.js +0 -12
  488. package/dist/test/fixtures/v4/reactHooks.js +0 -47
  489. package/dist/test/fixtures/v4/reactJsx.js +0 -34
  490. package/dist/test/fixtures/v4/threeJsUsage.js +0 -24
  491. package/dist/test/fixtures/v4/typeScriptSupport.js +0 -29
  492. package/dist/test/fixtures/xmlTest.d.ts +0 -2
  493. package/dist/test/fixtures/xmlTest.js +0 -26
  494. package/dist/test/index.test.d.ts +0 -1
  495. package/dist/test/index.test.js +0 -40
  496. package/dist/test/testInBrowser.js +0 -47
  497. package/dist/test/testStackTrace.js +0 -55
  498. package/dist/test/v1.test.js +0 -65
  499. package/dist/test/v2.test.js +0 -121
  500. package/dist/test/v3.test.js +0 -114
  501. package/dist/test/v4.test.js +0 -100
  502. package/dist/types/buildHTML.d.ts +0 -14
  503. package/dist/types/common/packageJson.d.ts +0 -39
  504. package/dist/types/common/packageJson.test.d.ts +0 -1
  505. package/dist/types/common/sucrasePlugin.d.ts +0 -2
  506. package/dist/types/common/virtualFileSystem.d.ts +0 -3
  507. package/dist/types/determineRuntimeVersion.d.ts +0 -3
  508. package/dist/types/determineRuntimeVersion.test.d.ts +0 -1
  509. package/dist/types/index.d.ts +0 -5
  510. package/dist/types/test/fixtures/v1/basicHTML.d.ts +0 -3
  511. package/dist/types/test/fixtures/v1/fetchProxy.d.ts +0 -5
  512. package/dist/types/test/fixtures/v1/index.d.ts +0 -6
  513. package/dist/types/test/fixtures/v1/jsScriptTag.d.ts +0 -4
  514. package/dist/types/test/fixtures/v1/protocolTest.d.ts +0 -3
  515. package/dist/types/test/fixtures/v1/styleTest.d.ts +0 -4
  516. package/dist/types/test/fixtures/v1/xmlTest.d.ts +0 -4
  517. package/dist/types/test/fixtures/v2/basicBundle.d.ts +0 -5
  518. package/dist/types/test/fixtures/v2/basicBundleNoExtension.d.ts +0 -5
  519. package/dist/types/test/fixtures/v2/d3Import.d.ts +0 -4
  520. package/dist/types/test/fixtures/v2/d3ImportPkg.d.ts +0 -5
  521. package/dist/types/test/fixtures/v2/d3RosettaImportPkg.d.ts +0 -5
  522. package/dist/types/test/fixtures/v2/es6Preserve.d.ts +0 -4
  523. package/dist/types/test/fixtures/v2/generatorSupport.d.ts +0 -4
  524. package/dist/types/test/fixtures/v2/index.d.ts +0 -14
  525. package/dist/types/test/fixtures/v2/jsxTranspile.d.ts +0 -4
  526. package/dist/types/test/fixtures/v2/reactDomImport.d.ts +0 -4
  527. package/dist/types/test/fixtures/v2/reactDomImportPkg.d.ts +0 -5
  528. package/dist/types/test/fixtures/v2/reactImport.d.ts +0 -4
  529. package/dist/types/test/fixtures/v2/reactImportPkg.d.ts +0 -5
  530. package/dist/types/test/fixtures/v2/sourceMapErrorFixture.d.ts +0 -5
  531. package/dist/types/test/fixtures/v2/unicodeSupport.d.ts +0 -4
  532. package/dist/types/test/fixtures/v3/basicIndexJS.d.ts +0 -3
  533. package/dist/types/test/fixtures/v3/cssImport.d.ts +0 -4
  534. package/dist/types/test/fixtures/v3/csvImport.d.ts +0 -4
  535. package/dist/types/test/fixtures/v3/csvStrangeChars.d.ts +0 -4
  536. package/dist/types/test/fixtures/v3/index.d.ts +0 -9
  537. package/dist/types/test/fixtures/v3/jsExport.d.ts +0 -4
  538. package/dist/types/test/fixtures/v3/sourcemap.d.ts +0 -3
  539. package/dist/types/test/fixtures/v3/svelte.d.ts +0 -4
  540. package/dist/types/test/fixtures/v3/vizContent.d.ts +0 -2
  541. package/dist/types/test/fixtures/v3/vizImport.d.ts +0 -6
  542. package/dist/types/test/fixtures/v4/d3Usage.d.ts +0 -5
  543. package/dist/types/test/fixtures/v4/esmBuild.d.ts +0 -5
  544. package/dist/types/test/fixtures/v4/fetchInterception.d.ts +0 -5
  545. package/dist/types/test/fixtures/v4/index.d.ts +0 -9
  546. package/dist/types/test/fixtures/v4/jsScriptTagTypeModule.d.ts +0 -4
  547. package/dist/types/test/fixtures/v4/jsScriptTagTypeModules.d.ts +0 -5
  548. package/dist/types/test/fixtures/v4/reactHooks.d.ts +0 -6
  549. package/dist/types/test/fixtures/v4/reactJsx.d.ts +0 -6
  550. package/dist/types/test/fixtures/v4/threeJsUsage.d.ts +0 -4
  551. package/dist/types/test/fixtures/v4/typeScriptSupport.d.ts +0 -5
  552. package/dist/types/test/testInBrowser.d.ts +0 -15
  553. package/dist/types/test/testStackTrace.d.ts +0 -9
  554. package/dist/types/test/v1.test.d.ts +0 -1
  555. package/dist/types/test/v2.test.d.ts +0 -1
  556. package/dist/types/test/v3.test.d.ts +0 -1
  557. package/dist/types/test/v4.test.d.ts +0 -1
  558. package/dist/types/types.d.ts +0 -1
  559. package/dist/types/utils/vizContentToFileCollection.d.ts +0 -8
  560. package/dist/types/utils/vizContentToFileCollection.test.d.ts +0 -1
  561. package/dist/types/v2/computeBundleJSV2.d.ts +0 -7
  562. package/dist/types/v2/getComputedIndexHtml.d.ts +0 -4
  563. package/dist/types/v2/getComputedIndexHtml.test.d.ts +0 -1
  564. package/dist/types/v2/index.d.ts +0 -1
  565. package/dist/types/v2/v2Build.d.ts +0 -7
  566. package/dist/types/v3/cleanRollupErrorMessage.d.ts +0 -4
  567. package/dist/types/v3/computeBundleJSV3.d.ts +0 -17
  568. package/dist/types/v3/createVizContent.d.ts +0 -8
  569. package/dist/types/v3/extractVizImport.d.ts +0 -6
  570. package/dist/types/v3/extractVizImport.test.d.ts +0 -1
  571. package/dist/types/v3/htmlTemplate.d.ts +0 -5
  572. package/dist/types/v3/index.d.ts +0 -1
  573. package/dist/types/v3/parseId.d.ts +0 -6
  574. package/dist/types/v3/parseId.test.d.ts +0 -1
  575. package/dist/types/v3/setupV3Runtime.d.ts +0 -15
  576. package/dist/types/v3/slugCache.d.ts +0 -11
  577. package/dist/types/v3/slugCache.test.d.ts +0 -1
  578. package/dist/types/v3/transformDSV/dsvParseSrc.d.ts +0 -1
  579. package/dist/types/v3/transformDSV/index.d.ts +0 -2
  580. package/dist/types/v3/transformSvelte.d.ts +0 -8
  581. package/dist/types/v3/types.d.ts +0 -65
  582. package/dist/types/v3/v3Build.d.ts +0 -14
  583. package/dist/types/v3/vizCache.d.ts +0 -10
  584. package/dist/types/v3/vizCache.test.d.ts +0 -1
  585. package/dist/types/v3/vizLoad.d.ts +0 -7
  586. package/dist/types/v3/vizResolve.d.ts +0 -7
  587. package/dist/types/v4/index.d.ts +0 -10
  588. package/dist/types.d.ts +0 -1
  589. package/dist/types.js +0 -1
  590. package/dist/utils/getFileText.d.ts +0 -2
  591. package/dist/utils/getFileText.js +0 -13
  592. package/dist/utils/getFileText.test.d.ts +0 -1
  593. package/dist/utils/getFileText.test.js +0 -72
  594. package/dist/utils/vizContentToFileCollection.d.ts +0 -7
  595. package/dist/utils/vizContentToFileCollection.js +0 -19
  596. package/dist/utils/vizContentToFileCollection.test.d.ts +0 -1
  597. package/dist/utils/vizContentToFileCollection.test.js +0 -75
  598. package/dist/v2/computeBundleJSV2.js +0 -29
  599. package/dist/v2/getComputedIndexHtml.js +0 -81
  600. package/dist/v2/getComputedIndexHtml.test.js +0 -134
  601. package/dist/v2/index.js +0 -1
  602. package/dist/v2/v2Build.js +0 -11
  603. package/dist/v3/cleanRollupErrorMessage.js +0 -9
  604. package/dist/v3/computeBundleJSV3.js +0 -48
  605. package/dist/v3/createVizContent.js +0 -23
  606. package/dist/v3/extractVizImport.js +0 -23
  607. package/dist/v3/extractVizImport.test.js +0 -30
  608. package/dist/v3/htmlTemplate.js +0 -89
  609. package/dist/v3/index.js +0 -1
  610. package/dist/v3/parseId.js +0 -5
  611. package/dist/v3/parseId.test.js +0 -25
  612. package/dist/v3/setupV3Runtime.js +0 -341
  613. package/dist/v3/slugCache.js +0 -35
  614. package/dist/v3/slugCache.test.js +0 -105
  615. package/dist/v3/transformDSV/dsvParseSrc.js +0 -121
  616. package/dist/v3/transformDSV/index.js +0 -40
  617. package/dist/v3/transformSvelte.js +0 -77
  618. package/dist/v3/types.js +0 -1
  619. package/dist/v3/v3Build.js +0 -30
  620. package/dist/v3/vizCache.js +0 -36
  621. package/dist/v3/vizCache.test.js +0 -98
  622. package/dist/v3/vizLoad.js +0 -46
  623. package/dist/v3/vizResolve.js +0 -69
  624. package/dist/v4/index.js +0 -134
package/README.md CHANGED
@@ -18,20 +18,20 @@ The library automatically detects which runtime version to use based on the file
18
18
  - **v3**: When only `index.js` is present (no `index.html`)
19
19
  - **v4**: When `index.html` contains ES module scripts with import maps
20
20
 
21
- | Feature | **V1** | **V2** | **V3** | **V4** |
22
- | --------------------- | ----------------- | ------------------------------ | --------------------------------- | ---------------------------- |
23
- | **When Used** | Only `index.html` | `index.html` + `index.js/.jsx` | Only `index.js` (no `index.html`) | `index.html` with ES modules |
24
- | **`index.html`** | User-provided | User-provided | Auto-generated | User-provided |
25
- | **ES Modules** | | ✅ | ✅ | |
26
- | **UMD Libraries** | | | ✅ | ☐ |
27
- | **ESM Libraries** | | | | ✅ |
28
- | **JSX Support** | | | | ✅ |
29
- | **Svelte Support** | | | ✅ | |
30
- | **Cross-Viz Imports** | | | ✅ | |
31
- | **State Management** | | | ✅ | |
32
- | **Import from CSV** | | | ✅ | |
33
- | **`fetch` proxy** | | | | |
34
- | **Best For** | Simple HTML demos | React with CDN deps | Svelte / reusable D3 | Modern module-based apps |
21
+ | Feature | **V1** | **V2** | **V3** | **V4** |
22
+ | ----------------------- | ------ | ------ | ------ | ------ |
23
+ | **Custom `index.html`** | ✅ | | ⬜️ | |
24
+ | **Local ES Modules** | ⬜️ | | | |
25
+ | **UMD Libraries** | | ✅ | ✅ | ⬜️ |
26
+ | **ESM Libraries** | ⬜️ | ⬜️ | ⬜️ | ✅ |
27
+ | **React JSX** | ⬜️ | | ⬜️ | ✅ |
28
+ | **TypeScript** | ⬜️ | ⬜️ | ⬜️ | ✅ |
29
+ | **Svelte** | ⬜️ | ⬜️ | ✅ | ⬜️ |
30
+ | **Cross-Viz Imports** | ⬜️ | ⬜️ | ✅ | ⬜️ |
31
+ | **Hot Reloading** | ⬜️ | ⬜️ | ✅ | ⬜️ |
32
+ | **State Management** | ⬜️ | ⬜️ | ✅ | ⬜️ |
33
+ | **Import from CSV** | ⬜️ | ⬜️ | | ⬜️ |
34
+ | **`fetch` proxy** | | | ⬜️ | |
35
35
 
36
36
  ## V1 Runtime
37
37
 
@@ -288,11 +288,11 @@ npm install @vizhub/runtime
288
288
  ### Basic Usage
289
289
 
290
290
  ```javascript
291
- import { buildHTML } from "@vizhub/runtime";
291
+ import { build } from "@vizhub/runtime";
292
292
  import { rollup } from "rollup";
293
293
 
294
294
  // Simple v1 runtime (HTML only)
295
- const html = await buildHTML({
295
+ const html = await build({
296
296
  files: {
297
297
  "index.html":
298
298
  "<html><body><h1>Hello World</h1></body></html>",
@@ -300,7 +300,7 @@ const html = await buildHTML({
300
300
  });
301
301
 
302
302
  // v2 runtime with bundling
303
- const html = await buildHTML({
303
+ const html = await build({
304
304
  files: {
305
305
  "index.html":
306
306
  '<html><body><div id="root"></div><script src="bundle.js"></script></body></html>',
@@ -322,7 +322,7 @@ document.body.appendChild(iframe);
322
322
 
323
323
  ```javascript
324
324
  import {
325
- buildHTML,
325
+ build,
326
326
  createVizCache,
327
327
  createSlugCache,
328
328
  } from "@vizhub/runtime";
@@ -359,7 +359,7 @@ const slugCache = createSlugCache({
359
359
  });
360
360
 
361
361
  // Build HTML with cross-viz imports
362
- const html = await buildHTML({
362
+ const html = await build({
363
363
  files: {
364
364
  "index.js":
365
365
  'import { value } from "@username/my-viz"; console.log(value);',
@@ -374,7 +374,7 @@ const html = await buildHTML({
374
374
 
375
375
  ## API Reference
376
376
 
377
- ### buildHTML(options)
377
+ ### build(options)
378
378
 
379
379
  Builds HTML that can be used as the `srcdoc` of an iframe.
380
380
 
@@ -448,7 +448,19 @@ Contributions are welcome! Please feel free to submit a Pull Request.
448
448
  2. Create your feature branch (`git checkout -b feature/amazing-feature`)
449
449
  3. Commit your changes (`git commit -m 'Add some amazing feature'`)
450
450
  4. Push to the branch (`git push origin feature/amazing-feature`)
451
- 5. Open a Pull Request
451
+ 5. Open a Draft Pull Request
452
+ 6. Perform the Preflight Check
453
+ 7. Double check if the README needs to be updated with any new changes
454
+ 8. Ensure `DEBUG = true` is set back to `DEBUG = false` in the code
455
+ 9. Once everything is ready, mark the PR as ready for review
456
+ 10. Once approved, we will merge your PR!
457
+
458
+ ### Preflight Check
459
+
460
+ Before finalizing a PR and marking it ready for review, please ensure that:
461
+
462
+ - Running `npm run preflight` passes without errors
463
+ - The demo app is still working - run `npm run demo` and click through the green buttons to see if everything still works
452
464
 
453
465
  ## License
454
466
 
@@ -1,9 +1,8 @@
1
- import type { RollupBuild, RollupOptions } from "rollup";
2
- import { VizCache } from "./v3/vizCache";
3
- import { SlugCache } from "./v3/slugCache";
4
- import { SvelteCompiler } from "./v3/transformSvelte";
5
1
  import { FileCollection } from "@vizhub/viz-types";
6
- export declare const buildHTML: ({ files, rollup, enableSourcemap, vizCache, vizId, slugCache, getSvelteCompiler, }: {
2
+ import type { RollupBuild, RollupOptions } from "rollup";
3
+ import { SlugCache, SvelteCompiler, VizCache } from "../v3";
4
+ import { BuildResult } from "./types";
5
+ export declare const build: ({ files, rollup, enableSourcemap, vizCache, vizId, slugCache, getSvelteCompiler, }: {
7
6
  files?: FileCollection;
8
7
  rollup?: (options: RollupOptions) => Promise<RollupBuild>;
9
8
  enableSourcemap?: boolean;
@@ -11,4 +10,5 @@ export declare const buildHTML: ({ files, rollup, enableSourcemap, vizCache, viz
11
10
  vizId?: string;
12
11
  slugCache?: SlugCache;
13
12
  getSvelteCompiler?: () => Promise<SvelteCompiler>;
14
- }) => Promise<string>;
13
+ }) => Promise<BuildResult>;
14
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/build/build.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAGL,SAAS,EACT,cAAc,EAEd,QAAQ,EACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAStC,eAAO,MAAM,KAAK,GAAU,oFAQzB;IAGD,KAAK,CAAC,EAAE,cAAc,CAAC;IAGvB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAQ1D,eAAe,CAAC,EAAE,OAAO,CAAC;IAI1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAGpB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,SAAS,CAAC,EAAE,SAAS,CAAC;IAGtB,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;CACnD,KAAG,OAAO,CAAC,WAAW,CA4GtB,CAAC"}
@@ -1,3 +1,4 @@
1
1
  import { FileCollection } from "@vizhub/viz-types";
2
2
  import { runtimeVersion } from "./types";
3
3
  export declare const determineRuntimeVersion: (files: FileCollection) => runtimeVersion | null;
4
+ //# sourceMappingURL=determineRuntimeVersion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"determineRuntimeVersion.d.ts","sourceRoot":"","sources":["../../src/build/determineRuntimeVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,eAAO,MAAM,uBAAuB,GAClC,OAAO,cAAc,KACpB,cAAc,GAAG,IA4BnB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=determineRuntimeVersion.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"determineRuntimeVersion.test.d.ts","sourceRoot":"","sources":["../../src/build/determineRuntimeVersion.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export { build } from "./build";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/build/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,7 @@
1
+ export type runtimeVersion = "v1" | "v2" | "v3" | "v4";
2
+ export type BuildResult = {
3
+ html: string;
4
+ css?: string;
5
+ js?: string;
6
+ };
7
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/build/types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAGvD,MAAM,MAAM,WAAW,GAAG;IAKxB,IAAI,EAAE,MAAM,CAAC;IAIb,GAAG,CAAC,EAAE,MAAM,CAAC;IAIb,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC"}
@@ -37,3 +37,4 @@ export declare const getLicense: (files: FileCollection) => string | {
37
37
  } | undefined;
38
38
  export declare const getConfiguredGlobals: (pkg: PackageJson) => Record<string, string>;
39
39
  export declare const getGlobals: (pkg: PackageJson) => Record<string, string>;
40
+ //# sourceMappingURL=packageJson.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packageJson.d.ts","sourceRoot":"","sources":["../../src/common/packageJson.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,WAAW;IAC1B,YAAY,CAAC,EAAE;QACb,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC;IACF,MAAM,CAAC,EAAE;QACP,SAAS,CAAC,EAAE;YACV,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAAC;SACpC,CAAC;KACH,CAAC;IACF,OAAO,CAAC,EAAE,OAAO,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACtC;AAQD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAAC;CACpC;AAID,eAAO,MAAM,WAAW,GACtB,OAAO,cAAc,KACpB,WAwBF,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,OAAO,cAAc;;CACX,CAAC;AAExC,eAAO,MAAM,sBAAsB,GACjC,OAAO,cAAc;;CAItB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,mBAAmB,UAAU,EAC7B,WAAW,oBAAoB,EAC/B,YAAgB,WAUjB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,cAAc;UA9ElB,MAAM;aAwFnC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,KAAK,WAAW,KACf,MAAM,CAAC,MAAM,EAAE,MAAM,CAcvB,CAAC;AAQF,eAAO,MAAM,UAAU,GACrB,KAAK,WAAW,KACf,MAAM,CAAC,MAAM,EAAE,MAAM,CAOvB,CAAC"}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=packageJson.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packageJson.test.d.ts","sourceRoot":"","sources":["../../src/common/packageJson.test.ts"],"names":[],"mappings":""}
@@ -1,2 +1,3 @@
1
1
  import type { Plugin } from "rollup";
2
2
  export declare function sucrasePlugin(): Plugin;
3
+ //# sourceMappingURL=sucrasePlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sucrasePlugin.d.ts","sourceRoot":"","sources":["../../src/common/sucrasePlugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,wBAAgB,aAAa,IAAI,MAAM,CAwBtC"}
@@ -1,3 +1,4 @@
1
1
  import { FileCollection } from "@vizhub/viz-types";
2
2
  import { Plugin } from "rollup";
3
3
  export declare const virtualFileSystem: (files: FileCollection) => Plugin;
4
+ //# sourceMappingURL=virtualFileSystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtualFileSystem.d.ts","sourceRoot":"","sources":["../../src/common/virtualFileSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAsChC,eAAO,MAAM,iBAAiB,GAC5B,OAAO,cAAc,KACpB,MAuDF,CAAC"}
@@ -0,0 +1,207 @@
1
+ "use strict";const y=require("@vizhub/viz-utils"),T=require("sucrase"),U=()=>(Math.random()+"").slice(2);function C(){return{name:"sucrase",transform(n,e){if(!e.match(/\.(?:js|[jt]sx)$/))return null;const t=T.transform(n,{transforms:["jsx","typescript"],filePath:e,sourceMapOptions:{compiledFilename:"bundle.js"},production:!0});return{code:t.code,map:t.sourceMap}}}}const N={dependencies:{},vizhub:{},license:"MIT"},k=!1,E=n=>{const e=n["package.json"];try{const t=e?JSON.parse(e):N;return k&&console.log("[packageJSON] pkg:",JSON.stringify(t,null,2)),t}catch{return N}},O=n=>E(n).dependencies||{},$=n=>(E(n).vizhub||{}).libraries||{},z=({name:n,version:e},t,r="jsdelivr")=>{const o=t[n]&&t[n].path||"";return r==="jsdelivr"?`https://cdn.jsdelivr.net/npm/${n}@${e}${o}`:`https://unpkg.com/${n}@${e}${o}`},L=n=>{var t;const e=(t=n==null?void 0:n.vizhub)==null?void 0:t.libraries;return e?Object.entries(e).reduce((r,[o,c])=>(c.global&&(r[o]=c.global),r),{}):{}},M={d3:"d3",react:"React","react-dom":"ReactDOM"},F=n=>{const e=L(n);return{...M,...e}},v=n=>{const[e,...t]=n.split("/"),r=t.join("/");return{vizId:e,fileName:r}},W=`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 };`,V=n=>n.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),J=()=>({name:"transformDSV",transform:async(n,e)=>{const{fileName:t}=v(e),r=t.endsWith(".csv"),o=t.endsWith(".tsv");if(r||o)return{code:`
122
+ ${W}
123
+ const data = ${r?"csvParse":"tsvParse"}(\`${V(n)}\`);
124
+ export default data;
125
+ `,map:{mappings:""}}}}),P=n=>{const e=/^@([a-zA-Z0-9_-]+)\/([a-zA-Z0-9_-]+)$/,t=n.match(e);return t?{userName:t[1],idOrSlug:t[2]}:null},A=({vizId:n,slugCache:e})=>({name:"vizResolve",resolveId:async(t,r)=>{if(t.startsWith("./")&&!(r!=null&&r.startsWith("https://"))){let c=t.substring(2);if(!c.endsWith(".js")&&!c.endsWith(".css")&&!c.endsWith(".csv")&&!c.endsWith(".svelte")&&(c+=".js"),r){const{vizId:s,fileName:a}=v(r),i=a.split("/").slice(0,-1).join("/"),d=i?`${i}/${c}`:c;return`${s}/${d}`}return n+"/"+c}const o=P(t);if(o){let c;if(y.isVizId(o.idOrSlug))c=o.idOrSlug;else{if(!e)throw new Error("slugCache is required to import by slug in v3 runtime");c=await e.get(`${o.userName}/${o.idOrSlug}`)}return c+"/index.js"}}}),D=({vizCache:n,trackCSSImport:e})=>({name:"vizLoad",load:async t=>{const{vizId:r,fileName:o}=v(t);if(o.endsWith(".css"))return e(t),"";const c=await n.get(r),s=y.getFileText(c,o);if(s===null)throw new Error(`Imported file "${o}" not found.`);return s}}),j=new Map;let I;const h="https://cdn.jsdelivr.net/npm/svelte@4.2.9",B=`${h}/compiler.cjs`,G=({getSvelteCompiler:n})=>({name:"transformSvelte",load:async e=>{if(!e.startsWith(h))return;const t=j.get(e);if(t)return t;const r=await fetch(e).then(o=>o.text());return j.set(e,r),r},resolveId:async(e,t)=>{if(e==="svelte")return`${h}/src/runtime/index.js`;if(e.startsWith("svelte/")){const r=e.slice(7);return`${h}/src/runtime/${r}/index.js`}if(/^https?:/.test(e))return e;if(e.startsWith(".")&&t&&t.startsWith(h)){const r=new URL(e,t).href;return new URL(e,t).href,r}},transform:async(e,t)=>{const{fileName:r}=v(t);if(r.endsWith(".svelte")){if(!I){if(!n)throw new Error("Svelte compiler not available");I=await n()}return I(e,{filename:r,hydratable:!0}).js}}}),R=async({files:n,rollup:e,enableSourcemap:t=!0,vizCache:r,vizId:o,slugCache:c,getSvelteCompiler:s})=>{const a=new Set,i=l=>{a.add(l)};if(!n["index.js"])throw new Error("Missing index.js");const f={input:"./index.js",plugins:[...o?[A({vizId:o,slugCache:c})]:[],J(),C(),G({getSvelteCompiler:s}),...r?[D({vizCache:r,trackCSSImport:i})]:[]],onwarn(l,m){l.code!=="UNRESOLVED_IMPORT"&&m(l)}},g={format:"umd",name:"Viz",sourcemap:!!t,compact:!0},p=E(n);if(p){const l=F(p);l&&(f.external=Object.keys(l),g.globals=l)}const w=await e(f),{output:u}=await w.generate(g);return{src:u[0].code,cssFiles:Array.from(a)}};function q(){return Math.random().toString().slice(2,7)}const _=({cdn:n,src:e,styles:t})=>{const o=`viz-container-${q()}`;return`<!DOCTYPE html>
126
+ <html>
127
+ <head>
128
+ <meta charset="utf-8">${n}${t}
129
+ <style>
130
+ body {
131
+ margin: 0;
132
+ overflow: hidden;
133
+ }
134
+ #${o} {
135
+ height: 100vh;
136
+ }
137
+ </style>
138
+ </head>
139
+ <body>
140
+ <div id="${o}"></div>
141
+ <script id="injected-script">${e}<\/script>
142
+ <script>
143
+ (() => {
144
+ let cleanup;
145
+ const render = () => {
146
+ const container = document.getElementById('${o}');
147
+ typeof cleanup === 'function' && cleanup();
148
+ cleanup = Viz.main(container, { state: window.state, setState, writeFile });
149
+ };
150
+ const setState = (next) => {
151
+ window.state = next(window.state);
152
+ render();
153
+ };
154
+ const writeFile = (fileName, content) => {
155
+ parent.postMessage({ type: 'writeFile', fileName, content }, "*");
156
+ };
157
+ const run = () => {
158
+ try {
159
+ setState((state) => state || {});
160
+ } catch (error) {
161
+ console.error(error);
162
+ parent.postMessage({ type: 'runError', error }, "*");
163
+ }
164
+ }
165
+ run();
166
+ const runJS = (src) => {
167
+ document.getElementById('injected-script')?.remove();
168
+ const script = document.createElement('script');
169
+ script.textContent = src;
170
+ script.id = 'injected-script';
171
+ document.body.appendChild(script);
172
+ run();
173
+ };
174
+ const runCSS = (css) => {
175
+ let style = document.getElementById('injected-style');
176
+ if (!style) {
177
+ style = document.createElement('style');
178
+ style.type = 'text/css';
179
+ style.id = 'injected-style';
180
+ document.head.appendChild(style);
181
+ }
182
+ style.textContent = css;
183
+ };
184
+ onmessage = (message) => {
185
+ switch (message.data.type) {
186
+ case 'runJS':
187
+ runJS(message.data.js);
188
+ parent.postMessage({ type: 'runDone' }, "*");
189
+ break;
190
+ case 'runCSS':
191
+ runCSS(message.data.css);
192
+ break;
193
+ case 'ping':
194
+ parent.postMessage({ type: 'pong' }, "*");
195
+ break;
196
+ default:
197
+ break;
198
+ }
199
+ }
200
+ })();
201
+ <\/script>
202
+ </body>
203
+ </html>`},Q=async({files:n,rollup:e,enableSourcemap:t=!0,vizCache:r,vizId:o,slugCache:c,getSvelteCompiler:s})=>{const{src:a,cssFiles:i}=await R({files:n,rollup:e,enableSourcemap:t,vizCache:r,vizId:o,slugCache:c,getSvelteCompiler:s});let d=[];if(i.length>0)for(let u=0;u<i.length;u++){const l=i[u],{vizId:m,fileName:S}=v(l),b=await r.get(m),x=y.getFileText(b,S);x&&d.push(x)}const f=d.join(`
204
+ `),g=`
205
+ <style id="injected-style">${f}</style>`;let p="";const w=Object.entries(O(n));if(w.length>0){const u=$(n);p=w.map(([l,m],S)=>{const b=z({name:l,version:m},u);return`${S>0?" ":`
206
+ `}<script src="${b}"><\/script>`}).join("")}return{html:_({cdn:p,src:a,styles:g}),css:f,js:a}},Y=({initialContents:n,handleCacheMiss:e})=>{const t=new Map(n.map(s=>[s.id,s]));return{get:async s=>{const a=t.get(s);if(a!==void 0)return a;if(!e)throw new Error(`Unresolved import from vizId ${s}, cache miss handler not provided.`);const i=await e(s);if(i)return t.set(s,i),i;throw new Error(`Unresolved import from vizId ${s}`)},set:s=>{t.set(s.id,s)},invalidate:s=>{t.delete(s)}}},Z=({initialMappings:n={},handleCacheMiss:e})=>{const t=new Map(Object.entries(n));return{get:async s=>{const a=t.get(s);if(a!==void 0)return a;if(!e)throw new Error(`Unresolved slug ${s}, cache miss handler not provided.`);const i=await e(s);if(i)return t.set(s,i),i;throw new Error(`Unresolved slug ${s}`)},set:(s,a)=>{t.set(s,a)},invalidate:s=>{t.delete(s)}}},K=(n,e="Sample Content for Exporting")=>{const t=y.generateVizId(),r={};return Object.entries(n).forEach(([o,c])=>{const s=Math.floor(Math.random()*1e7).toString();r[s]={name:o,text:c}}),{id:t,files:r,title:e}};exports.computeBundleJSV3=R;exports.createSlugCache=Z;exports.createVizCache=Y;exports.createVizContent=K;exports.dependencies=O;exports.dependencySource=z;exports.generateRequestId=U;exports.getConfiguredLibraries=$;exports.getGlobals=F;exports.packageJSON=E;exports.sucrasePlugin=C;exports.svelteCompilerUrl=B;exports.v3Build=Q;
207
+ //# sourceMappingURL=createVizContent-BOSPq-Jv.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createVizContent-BOSPq-Jv.cjs","sources":["../src/orchestration/generateRequestId.ts","../src/common/sucrasePlugin.ts","../src/common/packageJson.ts","../src/v3/parseId.ts","../src/v3/transformDSV/dsvParseSrc.ts","../src/v3/transformDSV/index.ts","../src/v3/extractVizImport.ts","../src/v3/vizResolve.ts","../src/v3/vizLoad.ts","../src/v3/transformSvelte.ts","../src/v3/computeBundleJSV3.ts","../src/v3/htmlTemplate.ts","../src/v3/v3Build.ts","../src/v3/vizCache.ts","../src/v3/slugCache.ts","../src/v3/createVizContent.ts"],"sourcesContent":["// Generate a unique request ID,\n// for uniquely identifying messages\n// sent to the worker or iframe from the\n// main thread.\nexport const generateRequestId = (): string =>\n (Math.random() + \"\").slice(2);\n","import { transform } from \"sucrase\";\nimport type { Plugin } from \"rollup\";\n\nexport function sucrasePlugin(): Plugin {\n return {\n name: \"sucrase\",\n transform(code, id) {\n // Transform .js, .jsx, and .tsx files\n if (!id.match(/\\.(?:js|[jt]sx)$/)) {\n return null;\n }\n\n const result = transform(code, {\n transforms: [\"jsx\", \"typescript\"],\n filePath: id, // For source maps\n sourceMapOptions: {\n compiledFilename: \"bundle.js\",\n },\n production: true,\n });\n\n return {\n code: result.code,\n map: result.sourceMap,\n };\n },\n };\n}\n","import { FileCollection } from \"@vizhub/viz-types\";\n\nexport type Licence = string;\n\nexport interface PackageJson {\n dependencies?: {\n [key: string]: string;\n };\n vizhub?: {\n libraries?: {\n [key: string]: VizHubLibraryConfig;\n };\n };\n license?: Licence | { type: string };\n}\n\nconst EMPTY_PKG_JSON: PackageJson = {\n dependencies: {},\n vizhub: {},\n license: \"MIT\",\n};\n\nexport interface Dependency {\n name: string;\n version: string;\n}\n\nexport interface VizHubLibraryConfig {\n path?: string;\n global?: string;\n}\n\nexport interface VizHubLibraryConfigs {\n [key: string]: VizHubLibraryConfig;\n}\n\nconst DEBUG = false;\n\nexport const packageJSON = (\n files: FileCollection,\n): PackageJson => {\n const packageJsonText = files[\"package.json\"];\n DEBUG &&\n console.log(\n \"[packageJSON] packageJsonText:\",\n packageJsonText,\n );\n try {\n const pkg = packageJsonText\n ? JSON.parse(packageJsonText)\n : EMPTY_PKG_JSON;\n DEBUG &&\n console.log(\n \"[packageJSON] pkg:\",\n JSON.stringify(pkg, null, 2),\n );\n return pkg;\n } catch {\n DEBUG &&\n console.log(\n \"[packageJSON] Error parsing package.json\",\n );\n return EMPTY_PKG_JSON;\n }\n};\n\nexport const dependencies = (files: FileCollection) =>\n packageJSON(files).dependencies || {};\n\nexport const getConfiguredLibraries = (\n files: FileCollection,\n) => {\n const vizhubConfig = packageJSON(files).vizhub || {};\n return vizhubConfig.libraries || {};\n};\n\nexport const dependencySource = (\n { name, version }: Dependency,\n libraries: VizHubLibraryConfigs,\n cdn = \"jsdelivr\",\n) => {\n const path = libraries[name]\n ? libraries[name].path || \"\"\n : \"\";\n const src =\n cdn === \"jsdelivr\"\n ? `https://cdn.jsdelivr.net/npm/${name}@${version}${path}`\n : `https://unpkg.com/${name}@${version}${path}`;\n return src;\n};\n\nexport const getLicense = (files: FileCollection) => {\n const license = packageJSON(files).license;\n if (\n typeof license === \"object\" &&\n license !== null &&\n \"type\" in license\n ) {\n return license.type;\n }\n return license || EMPTY_PKG_JSON.license;\n};\n\nexport const getConfiguredGlobals = (\n pkg: PackageJson,\n): Record<string, string> => {\n const libraries = pkg?.vizhub?.libraries;\n if (libraries) {\n return Object.entries(libraries).reduce(\n (accumulator, [packageName, config]) => {\n if (config.global) {\n accumulator[packageName] = config.global;\n }\n return accumulator;\n },\n {} as Record<string, string>,\n );\n }\n return {};\n};\n\nconst defaultGlobals = {\n d3: \"d3\",\n react: \"React\",\n \"react-dom\": \"ReactDOM\",\n};\n\nexport const getGlobals = (\n pkg: PackageJson,\n): Record<string, string> => {\n const configuredGlobals = getConfiguredGlobals(pkg);\n\n return {\n ...defaultGlobals,\n ...configuredGlobals,\n };\n};\n","import type { VizId } from \"@vizhub/viz-types\";\nimport type { ResolvedVizFileId } from \"./types\";\n\nexport const parseId = (\n id: ResolvedVizFileId,\n): {\n vizId: VizId;\n fileName: string;\n} => {\n const [vizId, ...fileNameParts] = id.split(\"/\");\n const fileName = fileNameParts.join(\"/\");\n return { vizId, fileName };\n};\n","export const dsvParseSrc = `var EOL = {},\n EOF = {},\n QUOTE = 34,\n NEWLINE = 10,\n RETURN = 13;\n\nfunction objectConverter(columns) {\n return new Function(\n 'd',\n 'return {' +\n columns\n .map(function (name, i) {\n return (\n JSON.stringify(name) + ': d[' + i + '] || \"\"'\n );\n })\n .join(',') +\n '}',\n );\n}\n\nfunction customConverter(columns, f) {\n var object = objectConverter(columns);\n return function (row, i) {\n return f(object(row), i, columns);\n };\n}\n\nfunction dsv(delimiter) {\n var DELIMITER = delimiter.charCodeAt(0);\n\n function parse(text, f) {\n var convert,\n columns,\n rows = parseRows(text, function (row, i) {\n if (convert) return convert(row, i - 1);\n (columns = row),\n (convert = f\n ? customConverter(row, f)\n : objectConverter(row));\n });\n rows.columns = columns || [];\n return rows;\n }\n\n function parseRows(text, f) {\n var rows = [], // output rows\n N = text.length,\n I = 0, // current character index\n n = 0, // current line number\n t, // current token\n eof = N <= 0, // current token followed by EOF?\n eol = false; // current token followed by EOL?\n\n // Strip the trailing newline.\n if (text.charCodeAt(N - 1) === NEWLINE) --N;\n if (text.charCodeAt(N - 1) === RETURN) --N;\n\n function token() {\n if (eof) return EOF;\n if (eol) return (eol = false), EOL;\n\n // Unescape quotes.\n var i,\n j = I,\n c;\n if (text.charCodeAt(j) === QUOTE) {\n while (\n (I++ < N && text.charCodeAt(I) !== QUOTE) ||\n text.charCodeAt(++I) === QUOTE\n );\n if ((i = I) >= N) eof = true;\n else if ((c = text.charCodeAt(I++)) === NEWLINE)\n eol = true;\n else if (c === RETURN) {\n eol = true;\n if (text.charCodeAt(I) === NEWLINE) ++I;\n }\n return text.slice(j + 1, i - 1).replace(/\"\"/g, '\"');\n }\n\n // Find next delimiter or newline.\n while (I < N) {\n if ((c = text.charCodeAt((i = I++))) === NEWLINE)\n eol = true;\n else if (c === RETURN) {\n eol = true;\n if (text.charCodeAt(I) === NEWLINE) ++I;\n } else if (c !== DELIMITER) continue;\n return text.slice(j, i);\n }\n\n // Return last token before EOF.\n return (eof = true), text.slice(j, N);\n }\n\n while ((t = token()) !== EOF) {\n var row = [];\n while (t !== EOL && t !== EOF)\n row.push(t), (t = token());\n if (f && (row = f(row, n++)) == null) continue;\n rows.push(row);\n }\n\n return rows;\n }\n\n return {\n parse: parse,\n };\n}\n\nvar csv = dsv(',');\n\nvar csvParse = csv.parse;\n\nvar tsv = dsv('\\t');\n\nvar tsvParse = tsv.parse;\n\nexport { csvParse, tsvParse };`;\n","import { InputPluginOption } from \"rollup\";\nimport type { ResolvedVizFileId } from \"../types\";\nimport { parseId } from \"../parseId\";\nimport { dsvParseSrc } from \"./dsvParseSrc.js\";\n\nconst DEBUG = false;\n\n// Escape backticks in a string so that it can be\n// used in a template literal. Also need to escape backslashes.\nconst escapeBackticks = (str: string) =>\n // str.replace(/`/g, '\\\\`');\n str.replace(/\\\\/g, \"\\\\\\\\\").replace(/`/g, \"\\\\`\");\n\n// Responsible for loading CSV and TSV files, which are\n// in general called Delimiter-Separated Values (DSV).\nexport const transformDSV = (): InputPluginOption => ({\n name: \"transformDSV\",\n\n // `id` here is of the form\n // `{vizId}/{fileName}`\n transform: async (\n text: string,\n id: ResolvedVizFileId,\n ) => {\n DEBUG && console.log(\"[transformDSV]: load() \" + id);\n const { vizId, fileName } = parseId(id);\n\n DEBUG &&\n console.log(\" [transformDSV] vizId: \" + vizId);\n DEBUG &&\n console.log(\" [transformDSV] fileName: \" + fileName);\n const isCSV = fileName.endsWith(\".csv\");\n const isTSV = fileName.endsWith(\".tsv\");\n if (isCSV || isTSV) {\n DEBUG &&\n console.log(\n \" [transformDSV] tracking DSV import for \" +\n id,\n );\n\n const parseFunction = isCSV ? \"csvParse\" : \"tsvParse\";\n\n return {\n code: `\n ${dsvParseSrc}\n const data = ${parseFunction}(\\`${escapeBackticks(text)}\\`);\n export default data;\n `,\n map: { mappings: \"\" },\n };\n }\n return undefined;\n },\n});\n","import { VizId } from \"@vizhub/viz-types\";\n\nexport type VizImport = {\n userName: string;\n idOrSlug: VizId | string;\n};\n\nexport const extractVizImport = (\n str: string,\n): VizImport | null => {\n // Updated regular expression pattern\n // Username: Alphanumeric characters, including underscores and hyphens\n // ID: Alphanumeric characters, including underscores, hyphens, and possibly other special characters\n const pattern = /^@([a-zA-Z0-9_-]+)\\/([a-zA-Z0-9_-]+)$/;\n const match = str.match(pattern);\n\n if (match) {\n // Extract the username and id\n return {\n userName: match[1],\n idOrSlug: match[2],\n };\n } else {\n // Return null if the string does not match\n return null;\n }\n};\n\n// // Example usages\n// const result1 = extractDetails(\"@curran/21f72bf74ef04ea0b9c9b82aaaec859a\");\n// console.log(result1); // { username: \"curran\", id: \"21f72bf74ef04ea0b9c9b82aaaec859a\" }\n\n// const result2 = extractDetails(\"@curran/scatter-plot\");\n// console.log(result2); // { username: \"curran\", id: \"scatter-plot\" }\n","// A custom Rollup plugin to:\n// * Implement a virtual file system\n// * Support importing across vizzes\n// Unified Rollup plugin for virtual file system and viz imports\n// Combines functionalities of 'virtual' and 'importFromViz' plugins\nimport { InputPluginOption } from \"rollup\";\nimport { VizId } from \"@vizhub/viz-types\";\nimport { isVizId } from \"@vizhub/viz-utils\";\nimport { extractVizImport } from \"./extractVizImport.js\";\nimport type { ResolvedVizFileId } from \"./types.js\";\nimport { parseId } from \"./parseId\";\nimport { SlugCache } from \"./slugCache.js\";\n\nconst debug = false;\n\nexport const vizResolve = ({\n vizId,\n slugCache,\n}: {\n vizId: VizId;\n slugCache?: SlugCache;\n}): InputPluginOption => ({\n name: \"vizResolve\",\n resolveId: async (\n id: string,\n importer: string | undefined,\n ): Promise<ResolvedVizFileId | undefined> => {\n if (debug) {\n console.log(\"[vizIdResolve] resolveId() \" + id);\n console.log(\" importer: \" + importer);\n }\n\n // Handle virtual file system resolution\n // .e.g. `import { foo } from './foo.js'`\n // .e.g. `import { foo } from './foo'`\n if (\n id.startsWith(\"./\") &&\n !importer?.startsWith(\"https://\")\n ) {\n let fileName = id.substring(2);\n\n // Handle CSS files\n // e.g. `import './styles.css'`\n // Handle JS files\n // e.g. `import { foo } from './foo.js'`\n // e.g. `import { foo } from './foo'`\n if (\n !fileName.endsWith(\".js\") &&\n !fileName.endsWith(\".css\") &&\n !fileName.endsWith(\".csv\") &&\n !fileName.endsWith(\".svelte\")\n ) {\n fileName += \".js\";\n }\n\n // const js = (name: string) =>\n // name.endsWith('.js') ? name : name + '.js';\n\n // If there is an importer, then the file is not part of\n // the entry point, so it should be resolved relative\n // to the importer's directory\n if (importer) {\n const {\n vizId: importerVizId,\n fileName: importerFileName,\n } = parseId(importer);\n // Get the directory of the importing file\n const importerDir = importerFileName\n .split(\"/\")\n .slice(0, -1)\n .join(\"/\");\n // Combine the directory with the imported file name\n const resolvedFileName = importerDir\n ? `${importerDir}/${fileName}`\n : fileName;\n return `${importerVizId}/${resolvedFileName}`;\n }\n return vizId + \"/\" + fileName;\n }\n\n // Handle viz import resolution\n // e.g. `import { foo } from '@curran/98e6d6509a1e407897d4f238a330efec'`\n // e.g. `import { foo } from '@curran/scatter-plot'`\n const vizImport = extractVizImport(id);\n if (vizImport) {\n let vizId: VizId;\n if (isVizId(vizImport.idOrSlug)) {\n vizId = vizImport.idOrSlug;\n } else {\n if (!slugCache) {\n throw new Error(\n \"slugCache is required to import by slug in v3 runtime\",\n );\n }\n\n vizId = await slugCache.get(\n `${vizImport.userName}/${vizImport.idOrSlug}`,\n );\n }\n return vizId + \"/index.js\";\n }\n\n // If neither condition is met, return undefined.\n return undefined;\n },\n});\n","import { InputPluginOption } from \"rollup\";\nimport { VizContent } from \"@vizhub/viz-types\";\nimport { getFileText } from \"@vizhub/viz-utils\";\nimport type { ResolvedVizFileId } from \"./types\";\nimport { parseId } from \"./parseId\";\nimport { VizCache } from \"./vizCache.js\";\n\nconst debug = false;\n\n// Responsible for loading all imports and\n// tracking which CSS files are imported.\n// Throws an error if a file is imported but not found.\nexport const vizLoad = ({\n vizCache,\n trackCSSImport,\n}: {\n vizCache: VizCache;\n trackCSSImport: (cssFile: ResolvedVizFileId) => void;\n}): InputPluginOption => ({\n name: \"vizLoad\",\n\n // `id` here is of the form\n // `{vizId}/{fileName}`\n load: async (id: ResolvedVizFileId) => {\n if (debug) {\n console.log(\"[vizLoadCSS]: load() \" + id);\n }\n\n const { vizId, fileName } = parseId(id);\n\n if (debug) {\n console.log(\" [vizLoadCSS] vizId: \" + vizId);\n console.log(\" [vizLoadCSS] fileName: \" + fileName);\n }\n\n // For CSS imports, all we need to do here is\n // keep track of them so they can be injected\n // into the IFrame later.\n if (fileName.endsWith(\".css\")) {\n if (debug) {\n console.log(\n \" [vizResolve] tracking CSS import for \" + id,\n );\n }\n // The import is tracked here so that it can be\n // injected into the IFrame later, external to the\n // Rollup build.\n trackCSSImport(id);\n // TODO consider using Rollup's `emitFile` to emit a CSS file.\n return \"\";\n }\n\n const content: VizContent = await vizCache.get(vizId);\n const fileText = getFileText(content, fileName);\n\n // If a file is imported but not found, throw an error.\n if (fileText === null) {\n throw new Error(\n `Imported file \"${fileName}\" not found.`,\n );\n // TODO ideally show username/slug instead of vizId\n // `Imported file \"${fileName}\" not found in viz ${vizId}`,\n // `Imported file \"${fileName}\" not found.`,\n // );\n }\n\n return fileText;\n },\n});\n","import type { InputPluginOption } from \"rollup\";\nimport { parseId } from \"./parseId\";\nimport type { ResolvedVizFileId } from \"./types\";\n\nconst debug = false;\n\n// The cache of fetched files.\nconst fetchedFileCache = new Map<string, string>();\n\n// The Svelte compiler.\nexport type SvelteCompiler = (\n code: string,\n options: any,\n) => { js: string };\nlet compile: SvelteCompiler;\n\nconst svelteURL =\n \"https://cdn.jsdelivr.net/npm/svelte@4.2.9\";\n\nexport const svelteCompilerUrl = `${svelteURL}/compiler.cjs`;\n\n// Responsible for transforming Svelte files.\n// Inspired by:\n// * https://github.com/sveltejs/sites/blob/master/packages/repl/src/lib/workers/compiler/index.js#L2\n// * https://github.com/sveltejs/sites/blob/master/packages/repl/src/lib/workers/bundler/index.js#L358\n// * https://github.com/sveltejs/rollup-plugin-svelte/blob/master/index.js#L146C4-L146C51\nexport const transformSvelte = ({\n getSvelteCompiler,\n}: {\n getSvelteCompiler?: () => Promise<any>;\n}): InputPluginOption => ({\n name: \"transformSvelte\",\n\n load: async (resolved: string) => {\n if (!resolved.startsWith(svelteURL)) {\n return;\n }\n if (debug) {\n console.log(\"[transformSvelte]: load() \" + resolved);\n }\n\n const cachedFile = fetchedFileCache.get(resolved);\n if (cachedFile) return cachedFile;\n\n const fetchedFile = await fetch(resolved).then((res) =>\n res.text(),\n );\n\n fetchedFileCache.set(resolved, fetchedFile);\n\n return fetchedFile;\n },\n\n // From https://github.com/sveltejs/sites/blob/master/packages/repl/src/lib/workers/bundler/index.js#L255C2-L271C5\n resolveId: async (importee, importer) => {\n if (debug) {\n console.log(\n \"[transformSvelte] resolveId() \" + importee,\n );\n console.log(\"importee: \" + importee);\n console.log(\"importer: \" + importer);\n }\n // importing from Svelte\n if (importee === `svelte`) {\n return `${svelteURL}/src/runtime/index.js`;\n }\n if (importee.startsWith(`svelte/`)) {\n const sub_path = importee.slice(7);\n return `${svelteURL}/src/runtime/${sub_path}/index.js`;\n }\n\n // importing from a URL\n if (/^https?:/.test(importee)) return importee;\n\n // Relative imports\n if (importee.startsWith(\".\")) {\n if (importer && importer.startsWith(svelteURL)) {\n const resolved = new URL(importee, importer).href;\n const url = new URL(importee, importer).href;\n if (debug) {\n console.log(\n \"[transformSvelte] resolveId() \" + resolved,\n );\n }\n return resolved;\n }\n }\n },\n\n transform: async (\n code: string,\n id: ResolvedVizFileId,\n ) => {\n const { fileName } = parseId(id);\n\n const isSvelte = fileName.endsWith(\".svelte\");\n\n if (isSvelte) {\n if (!compile) {\n if (!getSvelteCompiler) {\n throw new Error(\"Svelte compiler not available\");\n }\n compile = await getSvelteCompiler();\n }\n\n const compiled = compile(code, {\n filename: fileName,\n hydratable: true,\n });\n\n return compiled.js;\n }\n return undefined;\n },\n});\n","import { sucrasePlugin } from \"../common/sucrasePlugin\";\nimport type {\n RollupBuild,\n RollupOptions,\n OutputOptions,\n} from \"rollup\";\nimport { FileCollection, VizId } from \"@vizhub/viz-types\";\nimport {\n getGlobals,\n packageJSON,\n} from \"../common/packageJson.js\";\nimport { transformDSV } from \"./transformDSV/index.js\";\nimport { vizResolve } from \"./vizResolve.js\";\nimport { VizCache } from \"./vizCache.js\";\nimport { vizLoad } from \"./vizLoad.js\";\nimport { SlugCache } from \"./slugCache.js\";\nimport {\n SvelteCompiler,\n transformSvelte,\n} from \"./transformSvelte.js\";\n\nexport const computeBundleJSV3 = async ({\n files,\n rollup,\n enableSourcemap = true,\n vizCache,\n vizId,\n slugCache,\n getSvelteCompiler,\n}: {\n files: FileCollection;\n rollup: (options: RollupOptions) => Promise<RollupBuild>;\n enableSourcemap?: boolean;\n vizCache?: VizCache;\n vizId?: VizId;\n slugCache?: SlugCache;\n getSvelteCompiler?: () => Promise<SvelteCompiler>;\n}): Promise<{ src: string; cssFiles: string[] }> => {\n // Track CSS imports\n const cssFilesSet = new Set<string>();\n const trackCSSImport = (cssFile: string) => {\n cssFilesSet.add(cssFile);\n };\n const indexJSContent = files[\"index.js\"];\n if (!indexJSContent) {\n throw new Error(\"Missing index.js\");\n }\n\n const inputOptions: RollupOptions = {\n input: \"./index.js\",\n plugins: [\n ...(vizId ? [vizResolve({ vizId, slugCache })] : []),\n transformDSV(),\n sucrasePlugin(),\n transformSvelte({ getSvelteCompiler }),\n ...(vizCache\n ? [vizLoad({ vizCache, trackCSSImport })]\n : []),\n ],\n onwarn(warning, warn) {\n // Suppress \"treating module as external dependency\" warnings\n if (warning.code === \"UNRESOLVED_IMPORT\") return;\n warn(warning);\n },\n };\n\n const outputOptions: OutputOptions = {\n format: \"umd\",\n name: \"Viz\",\n sourcemap: enableSourcemap ? true : false,\n compact: true,\n };\n\n const pkg = packageJSON(files);\n if (pkg) {\n const globals = getGlobals(pkg);\n if (globals) {\n inputOptions.external = Object.keys(globals);\n outputOptions.globals = globals;\n }\n }\n\n const bundle = await rollup(inputOptions);\n\n const { output } = await bundle.generate(outputOptions);\n return {\n src: output[0].code,\n cssFiles: Array.from(cssFilesSet),\n };\n};\n","function randomDigits() {\n return Math.random().toString().slice(2, 7);\n}\n\nexport const htmlTemplate = ({\n cdn,\n src,\n styles,\n}: {\n cdn: string;\n src: string;\n styles: string;\n}) => {\n // Random container id to avoid conflicts and guarantee\n // the code is portable.\n const containerSuffix = randomDigits();\n\n const vizContainerId = `viz-container-${containerSuffix}`;\n\n return `<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"utf-8\">${cdn}${styles}\n <style>\n body {\n margin: 0;\n overflow: hidden;\n }\n #${vizContainerId} {\n height: 100vh;\n }\n </style>\n</head>\n<body>\n <div id=\"${vizContainerId}\"></div>\n <script id=\"injected-script\">${src}</script>\n <script>\n (() => {\n let cleanup;\n const render = () => {\n const container = document.getElementById('${vizContainerId}');\n typeof cleanup === 'function' && cleanup();\n cleanup = Viz.main(container, { state: window.state, setState, writeFile });\n };\n const setState = (next) => {\n window.state = next(window.state);\n render();\n };\n const writeFile = (fileName, content) => {\n parent.postMessage({ type: 'writeFile', fileName, content }, \"*\");\n };\n const run = () => {\n try {\n setState((state) => state || {});\n } catch (error) {\n console.error(error);\n parent.postMessage({ type: 'runError', error }, \"*\");\n }\n }\n run();\n const runJS = (src) => {\n document.getElementById('injected-script')?.remove();\n const script = document.createElement('script');\n script.textContent = src;\n script.id = 'injected-script';\n document.body.appendChild(script);\n run();\n };\n const runCSS = (css) => {\n let style = document.getElementById('injected-style');\n if (!style) {\n style = document.createElement('style');\n style.type = 'text/css';\n style.id = 'injected-style';\n document.head.appendChild(style);\n }\n style.textContent = css;\n };\n onmessage = (message) => {\n switch (message.data.type) {\n case 'runJS':\n runJS(message.data.js);\n parent.postMessage({ type: 'runDone' }, \"*\");\n break;\n case 'runCSS':\n runCSS(message.data.css);\n break;\n case 'ping':\n parent.postMessage({ type: 'pong' }, \"*\");\n break;\n default:\n break;\n }\n }\n })();\n </script>\n</body>\n</html>`;\n};\n","import { RollupBuild, RollupOptions } from \"rollup\";\nimport { getFileText } from \"@vizhub/viz-utils\";\nimport { computeBundleJSV3 } from \"./computeBundleJSV3\";\nimport { htmlTemplate } from \"./htmlTemplate\";\nimport { VizCache } from \"./vizCache.js\";\nimport { FileCollection, VizId } from \"@vizhub/viz-types\";\nimport { parseId } from \"./parseId.js\";\nimport { ResolvedVizFileId } from \"./types.js\";\nimport { SlugCache } from \"./slugCache.js\";\nimport { SvelteCompiler } from \"./transformSvelte.js\";\nimport {\n dependencies,\n getConfiguredLibraries,\n dependencySource,\n} from \"../common/packageJson\";\nimport { BuildResult } from \"../build/types\";\n\nexport const v3Build = async ({\n files,\n rollup,\n enableSourcemap = true,\n vizCache,\n vizId,\n slugCache,\n getSvelteCompiler,\n}: {\n files: FileCollection;\n rollup: (options: RollupOptions) => Promise<RollupBuild>;\n enableSourcemap?: boolean;\n vizCache: VizCache;\n vizId: VizId;\n slugCache?: SlugCache;\n getSvelteCompiler?: () => Promise<SvelteCompiler>;\n}): Promise<BuildResult> => {\n const { src, cssFiles } = await computeBundleJSV3({\n files,\n rollup,\n enableSourcemap,\n vizCache,\n vizId,\n slugCache,\n getSvelteCompiler,\n });\n\n // Generate CSS styles from imported CSS files\n let cssFileTextArray: string[] = [];\n\n // Inject CSS files.\n if (cssFiles.length > 0) {\n for (let i = 0; i < cssFiles.length; i++) {\n const id: ResolvedVizFileId = cssFiles[i];\n const { vizId, fileName } = parseId(id);\n const content = await vizCache.get(vizId);\n const cssFileText = getFileText(content, fileName);\n if (cssFileText) {\n cssFileTextArray.push(cssFileText);\n }\n }\n }\n\n // The concatenated CSS text.\n const css = cssFileTextArray.join(\"\\n\");\n\n const styles = `\\n <style id=\"injected-style\">${css}</style>`;\n // Generate CDN script tags for dependencies\n let cdn = \"\";\n const deps: [string, string][] = Object.entries(\n dependencies(files),\n );\n if (deps.length > 0) {\n const libraries = getConfiguredLibraries(files);\n cdn = deps\n .map(([name, version], i) => {\n const dependencySrc = dependencySource(\n { name, version },\n libraries,\n );\n const indent = i > 0 ? \" \" : \"\\n \";\n return `${indent}<script src=\"${dependencySrc}\"></script>`;\n })\n .join(\"\");\n }\n\n return {\n html: htmlTemplate({ cdn, src, styles }),\n css,\n js: src,\n };\n};\n","import { VizContent, VizId } from \"@vizhub/viz-types\";\n\nexport type VizCache = {\n get: (vizId: string) => Promise<VizContent>;\n set: (content: VizContent) => void;\n invalidate: (vizId: string) => void;\n};\n\n// A cache of viz content.\n// For use in resolving imports from other vizzes.\n// Runs both on the server and in the browser.\nexport const createVizCache = ({\n initialContents,\n handleCacheMiss,\n}: {\n initialContents: Array<VizContent>;\n handleCacheMiss?: (vizId: VizId) => Promise<VizContent>;\n}): VizCache => {\n // Track the content of cached vizzes.\n const contentMap = new Map<VizId, VizContent>(\n initialContents.map((content) => [content.id, content]),\n );\n\n // Gets the content of a viz.\n // Returns the cached content if it exists.\n // Otherwise, calls handleCacheMiss to fetch the content.\n const get = async (\n vizId: string,\n ): Promise<VizContent> => {\n const cachedContent: VizContent | undefined =\n contentMap.get(vizId);\n\n // Cache hit\n if (cachedContent !== undefined) {\n return cachedContent;\n }\n\n // Cache miss\n if (!handleCacheMiss) {\n throw new Error(\n `Unresolved import from vizId ${vizId}, cache miss handler not provided.`,\n );\n }\n const freshContent = await handleCacheMiss(vizId);\n\n if (freshContent) {\n contentMap.set(vizId, freshContent);\n return freshContent;\n }\n\n // TODO surface this error to the user\n throw new Error(\n `Unresolved import from vizId ${vizId}`,\n );\n };\n\n // Updates the content of a viz in the cache.\n const set = (content: VizContent) => {\n contentMap.set(content.id, content);\n };\n\n const invalidate = (vizId: VizId) => {\n contentMap.delete(vizId);\n };\n\n return { get, set, invalidate };\n};\n","import { VizId } from \"@vizhub/viz-types\";\n\nexport type SlugIdentifier = `${string}/${string}`;\n\nexport type SlugCache = {\n get: (slug: SlugIdentifier) => Promise<VizId>;\n set: (slug: SlugIdentifier, vizId: VizId) => void;\n invalidate: (slug: SlugIdentifier) => void;\n};\n\n// A cache of viz IDs for slug resolution.\n// Maps slug strings (username/slug) to viz IDs.\nexport const createSlugCache = ({\n initialMappings = {},\n handleCacheMiss,\n}: {\n initialMappings?: Record<SlugIdentifier, VizId>;\n handleCacheMiss?: (\n slug: SlugIdentifier,\n ) => Promise<VizId>;\n}): SlugCache => {\n // Track the mapping of slugs to viz IDs\n const slugMap = new Map<SlugIdentifier, VizId>(\n Object.entries(initialMappings) as [\n SlugIdentifier,\n VizId,\n ][],\n );\n\n // Gets the viz ID for a slug.\n // Returns the cached ID if it exists.\n // Otherwise, calls handleCacheMiss to resolve the slug.\n const get = async (\n slug: SlugIdentifier,\n ): Promise<VizId> => {\n const cachedVizId: VizId | undefined =\n slugMap.get(slug);\n\n // Cache hit\n if (cachedVizId !== undefined) {\n return cachedVizId;\n }\n\n // Cache miss\n if (!handleCacheMiss) {\n throw new Error(\n `Unresolved slug ${slug}, cache miss handler not provided.`,\n );\n }\n\n const resolvedVizId = await handleCacheMiss(slug);\n\n if (resolvedVizId) {\n slugMap.set(slug, resolvedVizId);\n return resolvedVizId;\n }\n\n throw new Error(`Unresolved slug ${slug}`);\n };\n\n // Updates the mapping of a slug to a viz ID in the cache.\n const set = (slug: SlugIdentifier, vizId: VizId) => {\n slugMap.set(slug, vizId);\n };\n\n // Removes a slug mapping from the cache.\n const invalidate = (slug: SlugIdentifier) => {\n slugMap.delete(slug);\n };\n\n return { get, set, invalidate };\n};\n","import {\n FileCollection,\n VizContent,\n} from \"@vizhub/viz-types\";\nimport { generateVizId } from \"@vizhub/viz-utils\";\n\n/**\n * Creates a VizContent object with the given files\n * @param files An object with file names as keys and file content as values\n * @param title Optional title for the content\n * @returns A VizContent object with randomly generated IDs\n */\nexport const createVizContent = (\n files: FileCollection,\n title = \"Sample Content for Exporting\",\n): VizContent => {\n const contentId = generateVizId();\n\n const contentFiles: Record<\n string,\n { name: string; text: string }\n > = {};\n\n Object.entries(files).forEach(\n ([fileName, fileContent]) => {\n const fileId = Math.floor(\n Math.random() * 10000000,\n ).toString();\n contentFiles[fileId] = {\n name: fileName,\n text: fileContent,\n };\n },\n );\n\n return {\n id: contentId,\n files: contentFiles,\n title,\n };\n};\n"],"names":["generateRequestId","sucrasePlugin","code","id","result","transform","EMPTY_PKG_JSON","DEBUG","packageJSON","files","packageJsonText","pkg","dependencies","getConfiguredLibraries","dependencySource","name","version","libraries","cdn","path","getConfiguredGlobals","_a","accumulator","packageName","config","defaultGlobals","getGlobals","configuredGlobals","parseId","vizId","fileNameParts","fileName","dsvParseSrc","escapeBackticks","str","transformDSV","text","isCSV","isTSV","extractVizImport","pattern","match","vizResolve","slugCache","importer","importerVizId","importerFileName","importerDir","resolvedFileName","vizImport","isVizId","vizLoad","vizCache","trackCSSImport","content","fileText","getFileText","fetchedFileCache","compile","svelteURL","svelteCompilerUrl","transformSvelte","getSvelteCompiler","resolved","cachedFile","fetchedFile","res","importee","sub_path","computeBundleJSV3","rollup","enableSourcemap","cssFilesSet","cssFile","inputOptions","warning","warn","outputOptions","globals","bundle","output","randomDigits","htmlTemplate","src","styles","vizContainerId","v3Build","cssFiles","cssFileTextArray","i","cssFileText","css","deps","dependencySrc","createVizCache","initialContents","handleCacheMiss","contentMap","cachedContent","freshContent","createSlugCache","initialMappings","slugMap","slug","cachedVizId","resolvedVizId","createVizContent","title","contentId","generateVizId","contentFiles","fileContent","fileId"],"mappings":"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"}