@vizhub/runtime 0.3.0 → 0.3.2

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 (260) hide show
  1. package/dist/cjs/buildHTML.js +71 -0
  2. package/dist/cjs/common/packageJson.js +81 -0
  3. package/dist/cjs/common/packageJson.test.js +148 -0
  4. package/dist/cjs/common/sucrasePlugin.js +27 -0
  5. package/dist/cjs/common/virtualFileSystem.js +79 -0
  6. package/dist/cjs/determineRuntimeVersion.js +26 -0
  7. package/dist/cjs/determineRuntimeVersion.test.js +103 -0
  8. package/dist/cjs/index.js +9 -0
  9. package/dist/cjs/package.json +1 -0
  10. package/dist/cjs/test/fixtures/v1/basicHTML.js +18 -0
  11. package/dist/cjs/test/fixtures/v1/fetchProxy.js +15 -0
  12. package/dist/cjs/test/fixtures/v1/index.js +15 -0
  13. package/dist/cjs/test/fixtures/v1/jsScriptTag.js +12 -0
  14. package/dist/cjs/test/fixtures/v1/protocolTest.js +18 -0
  15. package/dist/cjs/test/fixtures/v1/styleTest.js +18 -0
  16. package/dist/cjs/test/fixtures/v1/xmlTest.js +22 -0
  17. package/dist/cjs/test/fixtures/v2/basicBundle.js +8 -0
  18. package/dist/cjs/test/fixtures/v2/basicBundleNoExtension.js +8 -0
  19. package/dist/cjs/test/fixtures/v2/d3Import.js +10 -0
  20. package/dist/cjs/test/fixtures/v2/d3ImportPkg.js +22 -0
  21. package/dist/cjs/test/fixtures/v2/d3RosettaImportPkg.js +22 -0
  22. package/dist/cjs/test/fixtures/v2/es6Preserve.js +9 -0
  23. package/dist/cjs/test/fixtures/v2/generatorSupport.js +9 -0
  24. package/dist/cjs/test/fixtures/v2/index.js +45 -0
  25. package/dist/cjs/test/fixtures/v2/jsxTranspile.js +9 -0
  26. package/dist/cjs/test/fixtures/v2/reactDomImport.js +11 -0
  27. package/dist/cjs/test/fixtures/v2/reactDomImportPkg.js +27 -0
  28. package/dist/cjs/test/fixtures/v2/reactImport.js +10 -0
  29. package/dist/cjs/test/fixtures/v2/reactImportPkg.js +20 -0
  30. package/dist/cjs/test/fixtures/v2/sourceMapErrorFixture.js +22 -0
  31. package/dist/cjs/test/fixtures/v2/unicodeSupport.js +9 -0
  32. package/dist/cjs/test/fixtures/v3/basicIndexJS.js +10 -0
  33. package/dist/cjs/test/fixtures/v3/cssImport.js +12 -0
  34. package/dist/cjs/test/fixtures/v3/csvImport.js +14 -0
  35. package/dist/cjs/test/fixtures/v3/csvStrangeChars.js +15 -0
  36. package/dist/cjs/test/fixtures/v3/index.js +25 -0
  37. package/dist/cjs/test/fixtures/v3/jsExport.js +13 -0
  38. package/dist/cjs/test/fixtures/v3/sourcemap.js +13 -0
  39. package/dist/cjs/test/fixtures/v3/svelte.js +21 -0
  40. package/dist/cjs/test/fixtures/v3/vizContent.js +14 -0
  41. package/dist/cjs/test/fixtures/v3/vizImport.js +88 -0
  42. package/dist/cjs/test/fixtures/v4/d3Usage.js +34 -0
  43. package/dist/cjs/test/fixtures/v4/esmBuild.js +21 -0
  44. package/dist/cjs/test/fixtures/v4/fetchInterception.js +21 -0
  45. package/dist/cjs/test/fixtures/v4/index.js +21 -0
  46. package/dist/cjs/test/fixtures/v4/jsScriptTagTypeModule.js +21 -0
  47. package/dist/cjs/test/fixtures/v4/jsScriptTagTypeModules.js +15 -0
  48. package/dist/cjs/test/fixtures/v4/reactHooks.js +50 -0
  49. package/dist/cjs/test/fixtures/v4/reactJsx.js +37 -0
  50. package/dist/cjs/test/fixtures/v4/threeJsUsage.js +27 -0
  51. package/dist/cjs/test/fixtures/v4/typeScriptSupport.js +32 -0
  52. package/dist/cjs/test/testInBrowser.js +50 -0
  53. package/dist/cjs/test/testStackTrace.js +58 -0
  54. package/dist/cjs/test/v1.test.js +70 -0
  55. package/dist/cjs/test/v2.test.js +124 -0
  56. package/dist/cjs/test/v3.test.js +119 -0
  57. package/dist/cjs/test/v4.test.js +105 -0
  58. package/dist/cjs/types.js +2 -0
  59. package/dist/cjs/utils/vizContentToFileCollection.js +23 -0
  60. package/dist/cjs/utils/vizContentToFileCollection.test.js +77 -0
  61. package/dist/cjs/v2/computeBundleJSV2.js +33 -0
  62. package/dist/cjs/v2/getComputedIndexHtml.js +86 -0
  63. package/dist/cjs/v2/getComputedIndexHtml.test.js +136 -0
  64. package/dist/cjs/v2/index.js +5 -0
  65. package/dist/cjs/v2/v2Build.js +15 -0
  66. package/dist/cjs/v3/cleanRollupErrorMessage.js +13 -0
  67. package/dist/cjs/v3/computeBundleJSV3.js +52 -0
  68. package/dist/cjs/v3/createVizContent.js +27 -0
  69. package/dist/cjs/v3/extractVizImport.js +27 -0
  70. package/dist/cjs/v3/extractVizImport.test.js +32 -0
  71. package/dist/cjs/v3/htmlTemplate.js +93 -0
  72. package/dist/cjs/v3/index.js +5 -0
  73. package/dist/cjs/v3/parseId.js +9 -0
  74. package/dist/cjs/v3/parseId.test.js +27 -0
  75. package/dist/cjs/v3/setupV3Runtime.js +345 -0
  76. package/dist/cjs/v3/slugCache.js +39 -0
  77. package/dist/cjs/v3/slugCache.test.js +107 -0
  78. package/dist/cjs/v3/transformDSV/dsvParseSrc.js +124 -0
  79. package/dist/cjs/v3/transformDSV/index.js +44 -0
  80. package/dist/cjs/v3/transformSvelte.js +81 -0
  81. package/dist/cjs/v3/types.js +2 -0
  82. package/dist/cjs/v3/v3Build.js +34 -0
  83. package/dist/cjs/v3/vizCache.js +40 -0
  84. package/dist/cjs/v3/vizCache.test.js +100 -0
  85. package/dist/cjs/v3/vizLoad.js +50 -0
  86. package/dist/cjs/v3/vizResolve.js +73 -0
  87. package/dist/cjs/v4/index.js +138 -0
  88. package/dist/esm/buildHTML.js +67 -0
  89. package/dist/esm/common/packageJson.js +71 -0
  90. package/dist/esm/common/packageJson.test.js +146 -0
  91. package/dist/esm/common/sucrasePlugin.js +24 -0
  92. package/dist/esm/common/virtualFileSystem.js +75 -0
  93. package/dist/esm/determineRuntimeVersion.js +22 -0
  94. package/dist/esm/determineRuntimeVersion.test.js +101 -0
  95. package/dist/esm/index.js +3 -0
  96. package/dist/esm/test/fixtures/v1/basicHTML.js +15 -0
  97. package/dist/esm/test/fixtures/v1/fetchProxy.js +12 -0
  98. package/dist/esm/test/fixtures/v1/index.js +6 -0
  99. package/dist/esm/test/fixtures/v1/jsScriptTag.js +9 -0
  100. package/dist/esm/test/fixtures/v1/protocolTest.js +15 -0
  101. package/dist/esm/test/fixtures/v1/styleTest.js +15 -0
  102. package/dist/esm/test/fixtures/v1/xmlTest.js +19 -0
  103. package/dist/esm/test/fixtures/v2/basicBundle.js +5 -0
  104. package/dist/esm/test/fixtures/v2/basicBundleNoExtension.js +5 -0
  105. package/dist/esm/test/fixtures/v2/d3Import.js +7 -0
  106. package/dist/esm/test/fixtures/v2/d3ImportPkg.js +19 -0
  107. package/dist/esm/test/fixtures/v2/d3RosettaImportPkg.js +19 -0
  108. package/dist/esm/test/fixtures/v2/es6Preserve.js +6 -0
  109. package/dist/esm/test/fixtures/v2/generatorSupport.js +6 -0
  110. package/dist/esm/test/fixtures/v2/index.js +15 -0
  111. package/dist/esm/test/fixtures/v2/jsxTranspile.js +6 -0
  112. package/dist/esm/test/fixtures/v2/reactDomImport.js +8 -0
  113. package/dist/esm/test/fixtures/v2/reactDomImportPkg.js +24 -0
  114. package/dist/esm/test/fixtures/v2/reactImport.js +7 -0
  115. package/dist/esm/test/fixtures/v2/reactImportPkg.js +17 -0
  116. package/dist/esm/test/fixtures/v2/sourceMapErrorFixture.js +19 -0
  117. package/dist/esm/test/fixtures/v2/unicodeSupport.js +6 -0
  118. package/dist/esm/test/fixtures/v3/basicIndexJS.js +7 -0
  119. package/dist/esm/test/fixtures/v3/cssImport.js +9 -0
  120. package/dist/esm/test/fixtures/v3/csvImport.js +11 -0
  121. package/dist/esm/test/fixtures/v3/csvStrangeChars.js +12 -0
  122. package/dist/esm/test/fixtures/v3/index.js +9 -0
  123. package/dist/esm/test/fixtures/v3/jsExport.js +10 -0
  124. package/dist/esm/test/fixtures/v3/sourcemap.js +10 -0
  125. package/dist/esm/test/fixtures/v3/svelte.js +18 -0
  126. package/dist/esm/test/fixtures/v3/vizContent.js +11 -0
  127. package/dist/esm/test/fixtures/v3/vizImport.js +85 -0
  128. package/dist/esm/test/fixtures/v4/d3Usage.js +31 -0
  129. package/dist/esm/test/fixtures/v4/esmBuild.js +18 -0
  130. package/dist/esm/test/fixtures/v4/fetchInterception.js +18 -0
  131. package/dist/esm/test/fixtures/v4/index.js +9 -0
  132. package/dist/esm/test/fixtures/v4/jsScriptTagTypeModule.js +18 -0
  133. package/dist/esm/test/fixtures/v4/jsScriptTagTypeModules.js +12 -0
  134. package/dist/esm/test/fixtures/v4/reactHooks.js +47 -0
  135. package/dist/esm/test/fixtures/v4/reactJsx.js +34 -0
  136. package/dist/esm/test/fixtures/v4/threeJsUsage.js +24 -0
  137. package/dist/esm/test/fixtures/v4/typeScriptSupport.js +29 -0
  138. package/dist/esm/test/testInBrowser.js +47 -0
  139. package/dist/esm/test/testStackTrace.js +55 -0
  140. package/dist/esm/test/v1.test.js +65 -0
  141. package/dist/esm/test/v2.test.js +121 -0
  142. package/dist/esm/test/v3.test.js +114 -0
  143. package/dist/esm/test/v4.test.js +100 -0
  144. package/dist/esm/types.js +1 -0
  145. package/dist/esm/utils/vizContentToFileCollection.js +19 -0
  146. package/dist/esm/utils/vizContentToFileCollection.test.js +75 -0
  147. package/dist/esm/v2/computeBundleJSV2.js +29 -0
  148. package/dist/esm/v2/getComputedIndexHtml.js +81 -0
  149. package/dist/esm/v2/getComputedIndexHtml.test.js +134 -0
  150. package/dist/esm/v2/index.js +1 -0
  151. package/dist/esm/v2/v2Build.js +11 -0
  152. package/dist/esm/v3/cleanRollupErrorMessage.js +9 -0
  153. package/dist/esm/v3/computeBundleJSV3.js +48 -0
  154. package/dist/esm/v3/createVizContent.js +23 -0
  155. package/dist/esm/v3/extractVizImport.js +23 -0
  156. package/dist/esm/v3/extractVizImport.test.js +30 -0
  157. package/dist/esm/v3/htmlTemplate.js +89 -0
  158. package/dist/esm/v3/index.js +1 -0
  159. package/dist/esm/v3/parseId.js +5 -0
  160. package/dist/esm/v3/parseId.test.js +25 -0
  161. package/dist/esm/v3/setupV3Runtime.js +341 -0
  162. package/dist/esm/v3/slugCache.js +35 -0
  163. package/dist/esm/v3/slugCache.test.js +105 -0
  164. package/dist/esm/v3/transformDSV/dsvParseSrc.js +121 -0
  165. package/dist/esm/v3/transformDSV/index.js +40 -0
  166. package/dist/esm/v3/transformSvelte.js +77 -0
  167. package/dist/esm/v3/types.js +1 -0
  168. package/dist/esm/v3/v3Build.js +30 -0
  169. package/dist/esm/v3/vizCache.js +36 -0
  170. package/dist/esm/v3/vizCache.test.js +98 -0
  171. package/dist/esm/v3/vizLoad.js +46 -0
  172. package/dist/esm/v3/vizResolve.js +69 -0
  173. package/dist/esm/v4/index.js +134 -0
  174. package/dist/types/buildHTML.d.ts +14 -0
  175. package/dist/types/common/packageJson.d.ts +39 -0
  176. package/dist/types/common/packageJson.test.d.ts +1 -0
  177. package/dist/types/common/sucrasePlugin.d.ts +2 -0
  178. package/dist/types/common/virtualFileSystem.d.ts +3 -0
  179. package/dist/types/determineRuntimeVersion.d.ts +3 -0
  180. package/dist/types/determineRuntimeVersion.test.d.ts +1 -0
  181. package/dist/types/index.d.ts +3 -0
  182. package/dist/types/test/fixtures/v1/basicHTML.d.ts +3 -0
  183. package/dist/types/test/fixtures/v1/fetchProxy.d.ts +5 -0
  184. package/dist/types/test/fixtures/v1/index.d.ts +6 -0
  185. package/dist/types/test/fixtures/v1/jsScriptTag.d.ts +4 -0
  186. package/dist/types/test/fixtures/v1/protocolTest.d.ts +3 -0
  187. package/dist/types/test/fixtures/v1/styleTest.d.ts +4 -0
  188. package/dist/types/test/fixtures/v1/xmlTest.d.ts +4 -0
  189. package/dist/types/test/fixtures/v2/basicBundle.d.ts +5 -0
  190. package/dist/types/test/fixtures/v2/basicBundleNoExtension.d.ts +5 -0
  191. package/dist/types/test/fixtures/v2/d3Import.d.ts +4 -0
  192. package/dist/types/test/fixtures/v2/d3ImportPkg.d.ts +5 -0
  193. package/dist/types/test/fixtures/v2/d3RosettaImportPkg.d.ts +5 -0
  194. package/dist/types/test/fixtures/v2/es6Preserve.d.ts +4 -0
  195. package/dist/types/test/fixtures/v2/generatorSupport.d.ts +4 -0
  196. package/dist/types/test/fixtures/v2/index.d.ts +14 -0
  197. package/dist/types/test/fixtures/v2/jsxTranspile.d.ts +4 -0
  198. package/dist/types/test/fixtures/v2/reactDomImport.d.ts +4 -0
  199. package/dist/types/test/fixtures/v2/reactDomImportPkg.d.ts +5 -0
  200. package/dist/types/test/fixtures/v2/reactImport.d.ts +4 -0
  201. package/dist/types/test/fixtures/v2/reactImportPkg.d.ts +5 -0
  202. package/dist/types/test/fixtures/v2/sourceMapErrorFixture.d.ts +5 -0
  203. package/dist/types/test/fixtures/v2/unicodeSupport.d.ts +4 -0
  204. package/dist/types/test/fixtures/v3/basicIndexJS.d.ts +3 -0
  205. package/dist/types/test/fixtures/v3/cssImport.d.ts +4 -0
  206. package/dist/types/test/fixtures/v3/csvImport.d.ts +4 -0
  207. package/dist/types/test/fixtures/v3/csvStrangeChars.d.ts +4 -0
  208. package/dist/types/test/fixtures/v3/index.d.ts +9 -0
  209. package/dist/types/test/fixtures/v3/jsExport.d.ts +4 -0
  210. package/dist/types/test/fixtures/v3/sourcemap.d.ts +3 -0
  211. package/dist/types/test/fixtures/v3/svelte.d.ts +4 -0
  212. package/dist/types/test/fixtures/v3/vizContent.d.ts +2 -0
  213. package/dist/types/test/fixtures/v3/vizImport.d.ts +6 -0
  214. package/dist/types/test/fixtures/v4/d3Usage.d.ts +5 -0
  215. package/dist/types/test/fixtures/v4/esmBuild.d.ts +5 -0
  216. package/dist/types/test/fixtures/v4/fetchInterception.d.ts +5 -0
  217. package/dist/types/test/fixtures/v4/index.d.ts +9 -0
  218. package/dist/types/test/fixtures/v4/jsScriptTagTypeModule.d.ts +4 -0
  219. package/dist/types/test/fixtures/v4/jsScriptTagTypeModules.d.ts +5 -0
  220. package/dist/types/test/fixtures/v4/reactHooks.d.ts +6 -0
  221. package/dist/types/test/fixtures/v4/reactJsx.d.ts +6 -0
  222. package/dist/types/test/fixtures/v4/threeJsUsage.d.ts +4 -0
  223. package/dist/types/test/fixtures/v4/typeScriptSupport.d.ts +5 -0
  224. package/dist/types/test/testInBrowser.d.ts +15 -0
  225. package/dist/types/test/testStackTrace.d.ts +9 -0
  226. package/dist/types/test/v1.test.d.ts +1 -0
  227. package/dist/types/test/v2.test.d.ts +1 -0
  228. package/dist/types/test/v3.test.d.ts +1 -0
  229. package/dist/types/test/v4.test.d.ts +1 -0
  230. package/dist/types/types.d.ts +1 -0
  231. package/dist/types/utils/vizContentToFileCollection.d.ts +7 -0
  232. package/dist/types/utils/vizContentToFileCollection.test.d.ts +1 -0
  233. package/dist/types/v2/computeBundleJSV2.d.ts +7 -0
  234. package/dist/types/v2/getComputedIndexHtml.d.ts +4 -0
  235. package/dist/types/v2/getComputedIndexHtml.test.d.ts +1 -0
  236. package/dist/types/v2/index.d.ts +1 -0
  237. package/dist/types/v2/v2Build.d.ts +7 -0
  238. package/dist/types/v3/cleanRollupErrorMessage.d.ts +4 -0
  239. package/dist/types/v3/computeBundleJSV3.d.ts +17 -0
  240. package/dist/types/v3/createVizContent.d.ts +8 -0
  241. package/dist/types/v3/extractVizImport.d.ts +6 -0
  242. package/dist/types/v3/extractVizImport.test.d.ts +1 -0
  243. package/dist/types/v3/htmlTemplate.d.ts +5 -0
  244. package/dist/types/v3/index.d.ts +1 -0
  245. package/dist/types/v3/parseId.d.ts +6 -0
  246. package/dist/types/v3/parseId.test.d.ts +1 -0
  247. package/dist/types/v3/setupV3Runtime.d.ts +15 -0
  248. package/dist/types/v3/slugCache.d.ts +11 -0
  249. package/dist/types/v3/slugCache.test.d.ts +1 -0
  250. package/dist/types/v3/transformDSV/dsvParseSrc.d.ts +1 -0
  251. package/dist/types/v3/transformDSV/index.d.ts +2 -0
  252. package/dist/types/v3/transformSvelte.d.ts +8 -0
  253. package/dist/types/v3/types.d.ts +65 -0
  254. package/dist/types/v3/v3Build.d.ts +14 -0
  255. package/dist/types/v3/vizCache.d.ts +10 -0
  256. package/dist/types/v3/vizCache.test.d.ts +1 -0
  257. package/dist/types/v3/vizLoad.d.ts +7 -0
  258. package/dist/types/v3/vizResolve.d.ts +7 -0
  259. package/dist/types/v4/index.d.ts +10 -0
  260. package/package.json +14 -7
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.jsScriptTagTypeModules = void 0;
4
+ exports.jsScriptTagTypeModules = {
5
+ "index.html": `<!DOCTYPE html>
6
+ <html>
7
+ <head>
8
+ </head>
9
+ <body>
10
+ <script type="module" src="index.js"></script>
11
+ </body>
12
+ </html>`,
13
+ "index.js": `import { greeting } from './greeter.js';\nconsole.log(greeting);`,
14
+ "greeter.js": `export const greeting = "Hello, ES Module File!";`,
15
+ };
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reactHooks = void 0;
4
+ exports.reactHooks = {
5
+ "index.html": `<!DOCTYPE html>
6
+ <html>
7
+ <head>
8
+ <title>React Hooks Test</title>
9
+ </head>
10
+ <body>
11
+ <div id="root"></div>
12
+ <script type="module" src="index.jsx"></script>
13
+ </body>
14
+ </html>`,
15
+ "index.jsx": `import React from 'react';
16
+ import ReactDOM from 'react-dom/client';
17
+ import Counter from './Counter.jsx';
18
+
19
+ ReactDOM.createRoot(document.getElementById('root')).render(
20
+ <React.StrictMode>
21
+ <Counter />
22
+ </React.StrictMode>
23
+ );`,
24
+ "Counter.jsx": `import React, { useState, useEffect } from 'react';
25
+
26
+ function Counter() {
27
+ const [count, setCount] = useState(0);
28
+
29
+ useEffect(() => {
30
+ console.log('React Hooks working: count is ' + count);
31
+ }, [count]);
32
+
33
+ return (
34
+ <div>
35
+ <p>You clicked {count} times</p>
36
+ <button onClick={() => setCount(count + 1)}>
37
+ Click me
38
+ </button>
39
+ </div>
40
+ );
41
+ }
42
+
43
+ export default Counter;`,
44
+ "package.json": `{
45
+ "dependencies": {
46
+ "react": "^18.2.0",
47
+ "react-dom": "^18.2.0"
48
+ }
49
+ }`,
50
+ };
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reactJsx = void 0;
4
+ exports.reactJsx = {
5
+ "index.html": `<!DOCTYPE html>
6
+ <html>
7
+ <head>
8
+ <title>React JSX Test</title>
9
+ </head>
10
+ <body>
11
+ <div id="root"></div>
12
+ <script type="module" src="index.jsx"></script>
13
+ </body>
14
+ </html>`,
15
+ "index.jsx": `import React from 'react';
16
+ import ReactDOM from 'react-dom/client';
17
+ import App from './App.jsx';
18
+
19
+ ReactDOM.createRoot(document.getElementById('root')).render(
20
+ <React.StrictMode>
21
+ <App />
22
+ </React.StrictMode>
23
+ );`,
24
+ "App.jsx": `import React from 'react';
25
+
26
+ function App() {
27
+ return <div>Hello React JSX!</div>;
28
+ }
29
+
30
+ export default App;`,
31
+ "package.json": `{
32
+ "dependencies": {
33
+ "react": "^18.2.0",
34
+ "react-dom": "^18.2.0"
35
+ }
36
+ }`,
37
+ };
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.threeJsUsage = void 0;
4
+ exports.threeJsUsage = {
5
+ "index.html": `<!DOCTYPE html>
6
+ <html>
7
+ <head>
8
+ <title>Three.js Test</title>
9
+ <script type="importmap">
10
+ {
11
+ "imports": {
12
+ "three": "https://cdn.jsdelivr.net/npm/three@0.175.0/build/three.module.js",
13
+ "three/addons/": "https://cdn.jsdelivr.net/npm/three@0.175.0/examples/jsm/"
14
+ }
15
+ }
16
+ </script>
17
+ </head>
18
+ <body>
19
+ <script type="module" src="index.js"></script>
20
+ </body>
21
+ </html>`,
22
+ "index.js": `
23
+ import * as THREE from 'three';
24
+ import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
25
+ console.log('Three.js imports:', typeof THREE, typeof OrbitControls);
26
+ `,
27
+ };
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.typeScriptSupport = void 0;
4
+ exports.typeScriptSupport = {
5
+ "index.html": `<!DOCTYPE html>
6
+ <html>
7
+ <head>
8
+ <title>TypeScript Test</title>
9
+ </head>
10
+ <body>
11
+ <div id="app"></div>
12
+ <script type="module" src="index.ts"></script>
13
+ </body>
14
+ </html>`,
15
+ "index.ts": `import { Person } from './person';
16
+
17
+ const person: Person = {
18
+ name: 'John Doe',
19
+ age: 30
20
+ };
21
+
22
+ document.getElementById('app')!.innerHTML = \`
23
+ <h1>Hello, \${person.name}!</h1>
24
+ <p>You are \${person.age} years old.</p>
25
+ \`;
26
+
27
+ console.log('TypeScript is working');`,
28
+ "person.ts": `export interface Person {
29
+ name: string;
30
+ age: number;
31
+ }`,
32
+ };
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.testInBrowser = testInBrowser;
4
+ const rollup_1 = require("rollup");
5
+ const vitest_1 = require("vitest");
6
+ const index_1 = require("../index");
7
+ const DEBUG = false;
8
+ async function testInBrowser({ browser, files, vizCache, slugCache, vizId, expectedLog, evaluateInBrowser, getSvelteCompiler, }) {
9
+ const page = await browser.newPage();
10
+ try {
11
+ // Capture console.log output
12
+ const logs = [];
13
+ page.on("console", (message) => logs.push(message.text()));
14
+ // Capture page errors
15
+ page.on("pageerror", (error) => {
16
+ console.error("[testInBrowser] pageerror:", error);
17
+ });
18
+ // Load the HTML
19
+ const html = await (0, index_1.buildHTML)({
20
+ files,
21
+ vizCache,
22
+ slugCache,
23
+ vizId,
24
+ rollup: rollup_1.rollup,
25
+ getSvelteCompiler,
26
+ });
27
+ await page.setContent(html);
28
+ // Wait a bit for scripts to execute
29
+ await new Promise((resolve) => setTimeout(resolve, 100));
30
+ DEBUG && console.log("[testInBrowser] html:", html);
31
+ DEBUG && console.log("[testInBrowser] logs:", logs);
32
+ // Check console output
33
+ if (typeof expectedLog === "string") {
34
+ (0, vitest_1.expect)(logs).toContain(expectedLog);
35
+ }
36
+ else {
37
+ // If it's a RegExp, find a log that matches
38
+ const matchingLog = logs.find((log) => expectedLog.test(log));
39
+ (0, vitest_1.expect)(matchingLog).toBeDefined();
40
+ }
41
+ // If evaluateInBrowser is provided, run it and expect the result to be truthy
42
+ if (evaluateInBrowser) {
43
+ const result = await evaluateInBrowser(page);
44
+ (0, vitest_1.expect)(result).toBeTruthy();
45
+ }
46
+ }
47
+ finally {
48
+ await page.close();
49
+ }
50
+ }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.testStackTrace = testStackTrace;
4
+ const rollup_1 = require("rollup");
5
+ const vitest_1 = require("vitest");
6
+ const index_1 = require("../index");
7
+ const DEBUG = false;
8
+ // Invokes Puppeteer to test the HTML in a browser,
9
+ // and isolates the console.log output to check against expectedLog.
10
+ // Captures stack trace from an error in the page and validates that sourcemaps are working
11
+ async function testStackTrace({ browser, files, expectedLineNumber, }) {
12
+ const page = await browser.newPage();
13
+ let errorCaptured = false;
14
+ try {
15
+ // Enable sourcemaps for proper stack traces
16
+ const html = await (0, index_1.buildHTML)({
17
+ files,
18
+ rollup: rollup_1.rollup,
19
+ enableSourcemap: true,
20
+ });
21
+ // Capture page errors with their stack traces
22
+ page.on("pageerror", (error) => {
23
+ errorCaptured = true;
24
+ const stack = error.stack || "";
25
+ DEBUG &&
26
+ console.log("[testStackTrace] Error stack:", stack);
27
+ // Verify the error message contains the expected text
28
+ (0, vitest_1.expect)(error.message).toContain("Hello main!");
29
+ // Find any stack frame with a line number close to what we expect
30
+ // Different browsers format stack traces differently
31
+ const stackLines = stack.split("\n");
32
+ let foundExpectedLineNumber = false;
33
+ for (const line of stackLines) {
34
+ // Look for patterns like: at generateError (error.js:3:3) or at file:///path/bundle.js:20:3
35
+ const lineMatches = line.match(/:(\d+):/);
36
+ if (lineMatches && lineMatches[1]) {
37
+ const lineNumber = parseInt(lineMatches[1], 10);
38
+ DEBUG &&
39
+ console.log(`[testStackTrace] Found line number in stack: ${lineNumber}`);
40
+ // Check if this line number matches any of our expected line numbers
41
+ if (expectedLineNumber === lineNumber) {
42
+ foundExpectedLineNumber = true;
43
+ break;
44
+ }
45
+ }
46
+ }
47
+ (0, vitest_1.expect)(foundExpectedLineNumber, `Stack trace should contain expected line number(s): ${expectedLineNumber}`).toBe(true);
48
+ });
49
+ await page.setContent(html);
50
+ // Wait a bit for scripts to execute and error to be thrown
51
+ await new Promise((resolve) => setTimeout(resolve, 200));
52
+ // Verify that we actually captured an error
53
+ (0, vitest_1.expect)(errorCaptured, "An error should have been thrown").toBe(true);
54
+ }
55
+ finally {
56
+ await page.close();
57
+ }
58
+ }
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const puppeteer_1 = __importDefault(require("puppeteer"));
7
+ const vitest_1 = require("vitest");
8
+ const index_1 = require("../index");
9
+ const testInBrowser_1 = require("./testInBrowser");
10
+ const v1_1 = require("./fixtures/v1");
11
+ const getComputedIndexHtml_1 = require("../v2/getComputedIndexHtml");
12
+ const jsdom_1 = require("jsdom");
13
+ (0, getComputedIndexHtml_1.setJSDOM)(jsdom_1.JSDOM);
14
+ let browser;
15
+ (0, vitest_1.beforeAll)(async () => {
16
+ browser = await puppeteer_1.default.launch();
17
+ });
18
+ (0, vitest_1.afterAll)(async () => {
19
+ await browser.close();
20
+ });
21
+ (0, vitest_1.describe)("VizHub Runtime v1", () => {
22
+ (0, vitest_1.it)("should generate srcdoc HTML", async () => {
23
+ const srcdoc = await (0, index_1.buildHTML)({
24
+ files: v1_1.basicHTML,
25
+ });
26
+ (0, vitest_1.expect)(srcdoc).toContain("<!DOCTYPE html>");
27
+ (0, vitest_1.expect)(srcdoc).toContain("<title>My HTML Document</title>");
28
+ (0, vitest_1.expect)(srcdoc).toContain("Hello, World!");
29
+ });
30
+ (0, vitest_1.it)("basicHTML", async () => {
31
+ await (0, testInBrowser_1.testInBrowser)({
32
+ browser,
33
+ files: v1_1.basicHTML,
34
+ expectedLog: "Hello, World!",
35
+ });
36
+ });
37
+ (0, vitest_1.it)("jsScriptTag", async () => {
38
+ await (0, testInBrowser_1.testInBrowser)({
39
+ browser,
40
+ files: v1_1.jsScriptTag,
41
+ expectedLog: "Hello, JS!",
42
+ });
43
+ });
44
+ (0, vitest_1.it)("fetchProxy", async () => {
45
+ await (0, testInBrowser_1.testInBrowser)({
46
+ browser,
47
+ files: v1_1.fetchProxy,
48
+ expectedLog: "Hello, Fetch!",
49
+ });
50
+ });
51
+ (0, vitest_1.it)("should handle CSS file loading", async () => {
52
+ await (0, testInBrowser_1.testInBrowser)({
53
+ browser,
54
+ files: v1_1.styleTest,
55
+ expectedLog: "rgb(255, 0, 0)",
56
+ });
57
+ });
58
+ (0, vitest_1.it)("should handle XML file loading", async () => {
59
+ await (0, testInBrowser_1.testInBrowser)({
60
+ browser,
61
+ files: v1_1.xmlTest,
62
+ expectedLog: "root",
63
+ });
64
+ });
65
+ (0, vitest_1.it)("should convert protocol-less URLs to https", async () => {
66
+ const srcdoc = await (0, index_1.buildHTML)({ files: v1_1.protocolTest });
67
+ (0, vitest_1.expect)(srcdoc).toContain('href="https://fonts.googleapis.com');
68
+ (0, vitest_1.expect)(srcdoc).toContain('src="https://code.jquery.com');
69
+ });
70
+ });
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const puppeteer_1 = __importDefault(require("puppeteer"));
7
+ const rollup_1 = require("rollup");
8
+ const vitest_1 = require("vitest");
9
+ const index_1 = require("../index");
10
+ const testInBrowser_1 = require("./testInBrowser");
11
+ const v2_1 = require("./fixtures/v2");
12
+ const getComputedIndexHtml_1 = require("../v2/getComputedIndexHtml");
13
+ const jsdom_1 = require("jsdom");
14
+ (0, getComputedIndexHtml_1.setJSDOM)(jsdom_1.JSDOM);
15
+ let browser;
16
+ (0, vitest_1.beforeAll)(async () => {
17
+ browser = await puppeteer_1.default.launch();
18
+ });
19
+ (0, vitest_1.afterAll)(async () => {
20
+ await browser.close();
21
+ });
22
+ (0, vitest_1.describe)("VizHub Runtime v2", () => {
23
+ (0, vitest_1.it)("should bundle basic imports", async () => {
24
+ await (0, testInBrowser_1.testInBrowser)({
25
+ browser,
26
+ files: v2_1.basicBundle,
27
+ expectedLog: "bar",
28
+ });
29
+ });
30
+ (0, vitest_1.it)("should bundle basic imports missing .js extension", async () => {
31
+ await (0, testInBrowser_1.testInBrowser)({
32
+ browser,
33
+ files: v2_1.basicBundleNoExtension,
34
+ expectedLog: "bar",
35
+ });
36
+ });
37
+ (0, vitest_1.it)("should support d3 imports", async () => {
38
+ await (0, testInBrowser_1.testInBrowser)({
39
+ browser,
40
+ files: v2_1.d3Import,
41
+ expectedLog: "function",
42
+ });
43
+ });
44
+ (0, vitest_1.it)("should support d3 imports from packages", async () => {
45
+ await (0, testInBrowser_1.testInBrowser)({
46
+ browser,
47
+ files: v2_1.d3ImportPkg,
48
+ expectedLog: "function",
49
+ });
50
+ });
51
+ (0, vitest_1.it)("should support React imports", async () => {
52
+ await (0, testInBrowser_1.testInBrowser)({
53
+ browser,
54
+ files: v2_1.reactImport,
55
+ expectedLog: "object",
56
+ });
57
+ });
58
+ (0, vitest_1.it)("should support React imports from packages", async () => {
59
+ await (0, testInBrowser_1.testInBrowser)({
60
+ browser,
61
+ files: v2_1.reactImportPkg,
62
+ expectedLog: "object",
63
+ });
64
+ });
65
+ (0, vitest_1.it)("should support ReactDOM imports", async () => {
66
+ await (0, testInBrowser_1.testInBrowser)({
67
+ browser,
68
+ files: v2_1.reactDomImport,
69
+ expectedLog: "object",
70
+ });
71
+ });
72
+ (0, vitest_1.it)("should support ReactDOM imports from packages", async () => {
73
+ await (0, testInBrowser_1.testInBrowser)({
74
+ browser,
75
+ files: v2_1.reactDomImportPkg,
76
+ expectedLog: "object",
77
+ });
78
+ });
79
+ (0, vitest_1.it)("should transpile JSX", async () => {
80
+ const srcdoc = await (0, index_1.buildHTML)({
81
+ files: v2_1.jsxTranspile,
82
+ rollup: rollup_1.rollup,
83
+ });
84
+ (0, vitest_1.expect)(srcdoc).toContain("React.createElement");
85
+ });
86
+ (0, vitest_1.it)("should preserve ES6 syntax", async () => {
87
+ await (0, testInBrowser_1.testInBrowser)({
88
+ browser,
89
+ files: v2_1.es6Preserve,
90
+ expectedLog: "16", // 4 * 4 = 16
91
+ });
92
+ });
93
+ (0, vitest_1.it)("should support generator functions", async () => {
94
+ await (0, testInBrowser_1.testInBrowser)({
95
+ browser,
96
+ files: v2_1.generatorSupport,
97
+ expectedLog: "5",
98
+ });
99
+ });
100
+ (0, vitest_1.it)("should support unicode characters", async () => {
101
+ await (0, testInBrowser_1.testInBrowser)({
102
+ browser,
103
+ files: v2_1.unicodeSupport,
104
+ expectedLog: "Привет",
105
+ });
106
+ });
107
+ (0, vitest_1.it)("should handle globals config for arbitrary package d3-rosetta", async () => {
108
+ await (0, testInBrowser_1.testInBrowser)({
109
+ browser,
110
+ files: v2_1.d3RosettaImportPkg,
111
+ expectedLog: "function",
112
+ });
113
+ });
114
+ // it("should handle CSS imports", async () => {
115
+ // TODO: Add test for CSS imports
116
+ // });
117
+ // TODO get this working
118
+ // it("should provide sourcemaps with correct line numbers in stack traces", async () => {
119
+ // await testStackTrace(browser, sourceMapErrorFixture, {
120
+ // sourceFile: "error.js", // Note: The actual filename may not appear in stack traces
121
+ // sourceLine: 3,
122
+ // });
123
+ // });
124
+ });
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const puppeteer_1 = __importDefault(require("puppeteer"));
7
+ const vitest_1 = require("vitest");
8
+ const compiler_1 = require("svelte/compiler");
9
+ const testInBrowser_1 = require("./testInBrowser");
10
+ const v3_1 = require("./fixtures/v3");
11
+ const getComputedIndexHtml_1 = require("../v2/getComputedIndexHtml");
12
+ const jsdom_1 = require("jsdom");
13
+ const vizCache_1 = require("../v3/vizCache");
14
+ const slugCache_1 = require("../v3/slugCache");
15
+ const testStackTrace_1 = require("./testStackTrace");
16
+ (0, getComputedIndexHtml_1.setJSDOM)(jsdom_1.JSDOM);
17
+ let browser;
18
+ (0, vitest_1.beforeAll)(async () => {
19
+ browser = await puppeteer_1.default.launch();
20
+ });
21
+ (0, vitest_1.afterAll)(async () => {
22
+ await browser.close();
23
+ });
24
+ (0, vitest_1.describe)("VizHub Runtime v3", () => {
25
+ (0, vitest_1.it)("should run main without index.html", async () => {
26
+ await (0, testInBrowser_1.testInBrowser)({
27
+ browser,
28
+ files: v3_1.basicIndexJS,
29
+ expectedLog: "Hello main!",
30
+ });
31
+ });
32
+ (0, vitest_1.it)("should handle JS exports", async () => {
33
+ await (0, testInBrowser_1.testInBrowser)({
34
+ browser,
35
+ files: v3_1.jsExport,
36
+ expectedLog: "Outer Inner",
37
+ });
38
+ });
39
+ (0, vitest_1.it)("should handle CSS imports", async () => {
40
+ await (0, testInBrowser_1.testInBrowser)({
41
+ browser,
42
+ files: v3_1.cssImport,
43
+ expectedLog: "rgb(255, 0, 0)",
44
+ });
45
+ });
46
+ (0, vitest_1.it)("should handle CSV imports", async () => {
47
+ await (0, testInBrowser_1.testInBrowser)({
48
+ browser,
49
+ files: v3_1.csvImport,
50
+ expectedLog: "Setosa",
51
+ });
52
+ });
53
+ (0, vitest_1.it)("should handle CSV with strange characters", async () => {
54
+ await (0, testInBrowser_1.testInBrowser)({
55
+ browser,
56
+ files: v3_1.csvStrangeChars,
57
+ expectedLog: "Türkiye",
58
+ });
59
+ });
60
+ (0, vitest_1.it)("should handle viz imports", async () => {
61
+ await (0, testInBrowser_1.testInBrowser)({
62
+ browser,
63
+ expectedLog: "Imported from viz: Outer Inner",
64
+ vizCache: (0, vizCache_1.createVizCache)({
65
+ initialContents: [
66
+ v3_1.sampleContent,
67
+ v3_1.sampleContentVizImport,
68
+ ],
69
+ }),
70
+ vizId: v3_1.sampleContentVizImport.id,
71
+ });
72
+ });
73
+ (0, vitest_1.it)("should handle viz imports with slug", async () => {
74
+ await (0, testInBrowser_1.testInBrowser)({
75
+ browser,
76
+ expectedLog: "Imported from viz with slug: Outer Inner",
77
+ vizCache: (0, vizCache_1.createVizCache)({
78
+ initialContents: [
79
+ v3_1.sampleContent,
80
+ v3_1.sampleContentVizImportSlug,
81
+ ],
82
+ }),
83
+ vizId: v3_1.sampleContentVizImportSlug.id,
84
+ slugCache: (0, slugCache_1.createSlugCache)({
85
+ initialMappings: {
86
+ "joe/sample-content-slug": v3_1.sampleContent.id,
87
+ },
88
+ }),
89
+ });
90
+ });
91
+ (0, vitest_1.it)("should handle viz imports with CSS", async () => {
92
+ await (0, testInBrowser_1.testInBrowser)({
93
+ browser,
94
+ expectedLog: "rgb(255, 0, 0)",
95
+ vizCache: (0, vizCache_1.createVizCache)({
96
+ initialContents: [
97
+ v3_1.sampleContentWithCSS,
98
+ v3_1.sampleContentVizImportWithCSS,
99
+ ],
100
+ }),
101
+ vizId: v3_1.sampleContentVizImportWithCSS.id,
102
+ });
103
+ });
104
+ (0, vitest_1.it)("should handle Svelte components", async () => {
105
+ await (0, testInBrowser_1.testInBrowser)({
106
+ browser,
107
+ files: v3_1.svelte,
108
+ expectedLog: "Svelte",
109
+ getSvelteCompiler: async () => compiler_1.compile,
110
+ });
111
+ });
112
+ (0, vitest_1.it)("should provide sourcemaps with correct line numbers in stack traces", async () => {
113
+ await (0, testStackTrace_1.testStackTrace)({
114
+ browser,
115
+ files: v3_1.sourcemap,
116
+ expectedLineNumber: 6,
117
+ });
118
+ });
119
+ });