@volter/tabnode 0.2.14-volter.88 → 0.3.1

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 (226) hide show
  1. package/README.md +12 -5
  2. package/dist/assets/{runtime-worker-4MKaHFVb.js → runtime-worker-CUO9SNFs.js} +587 -233
  3. package/dist/code-transforms.d.ts +0 -1
  4. package/dist/config/cdn.d.ts +0 -1
  5. package/dist/create-runtime.d.ts +0 -1
  6. package/dist/host-globals.d.ts +0 -1
  7. package/dist/index.d.ts +0 -1
  8. package/dist/index.mjs +51 -21
  9. package/dist/node-internals.d.ts +0 -1
  10. package/dist/node-lib/binding/blob.d.ts +0 -1
  11. package/dist/node-lib/binding/buffer.d.ts +0 -1
  12. package/dist/node-lib/binding/cares_wrap.d.ts +0 -1
  13. package/dist/node-lib/binding/fds.d.ts +0 -1
  14. package/dist/node-lib/binding/fs.d.ts +2 -3
  15. package/dist/node-lib/binding/handles.d.ts +0 -1
  16. package/dist/node-lib/binding/http_parser.d.ts +0 -1
  17. package/dist/node-lib/binding/index.d.ts +0 -1
  18. package/dist/node-lib/binding/llhttp-wasm.d.ts +0 -1
  19. package/dist/node-lib/binding/misc.d.ts +0 -1
  20. package/dist/node-lib/binding/pipe_wrap.d.ts +0 -1
  21. package/dist/node-lib/binding/process_wrap.d.ts +0 -1
  22. package/dist/node-lib/binding/spawn_sync.d.ts +0 -1
  23. package/dist/node-lib/binding/stream_wrap.d.ts +0 -1
  24. package/dist/node-lib/binding/stubs.d.ts +0 -1
  25. package/dist/node-lib/binding/tcp_wrap.d.ts +0 -1
  26. package/dist/node-lib/binding/tty_wrap.d.ts +0 -1
  27. package/dist/node-lib/binding/util.d.ts +0 -1
  28. package/dist/node-lib/binding/uv.d.ts +0 -1
  29. package/dist/node-lib/binding/zlib-pako.d.ts +0 -1
  30. package/dist/node-lib/binding/zlib.d.ts +0 -1
  31. package/dist/node-lib/buffer-module.d.ts +0 -1
  32. package/dist/node-lib/child-process-module.d.ts +0 -1
  33. package/dist/node-lib/events-module.d.ts +0 -1
  34. package/dist/node-lib/fs-module.d.ts +0 -1
  35. package/dist/node-lib/http-bridge.d.ts +0 -1
  36. package/dist/node-lib/http-module.d.ts +0 -1
  37. package/dist/node-lib/internals/addresses.d.ts +0 -1
  38. package/dist/node-lib/internals/buffer-and-streams.d.ts +0 -1
  39. package/dist/node-lib/internals/child-process.d.ts +0 -1
  40. package/dist/node-lib/internals/events-util.d.ts +0 -1
  41. package/dist/node-lib/internals/index.d.ts +0 -1
  42. package/dist/node-lib/internals/modules.d.ts +0 -1
  43. package/dist/node-lib/internals/readline-access.d.ts +0 -1
  44. package/dist/node-lib/internals/runtime.d.ts +0 -1
  45. package/dist/node-lib/internals/util.d.ts +0 -1
  46. package/dist/node-lib/lazy.d.ts +0 -1
  47. package/dist/node-lib/load.d.ts +0 -1
  48. package/dist/node-lib/module-hooks.d.ts +0 -1
  49. package/dist/node-lib/net-module.d.ts +0 -1
  50. package/dist/node-lib/node-versions.d.ts +0 -1
  51. package/dist/node-lib/public-modules.d.ts +0 -1
  52. package/dist/node-lib/require-hook.d.ts +0 -1
  53. package/dist/node-lib/small-modules.d.ts +0 -1
  54. package/dist/node-lib/sources.d.ts +1 -2
  55. package/dist/node-lib/stream-module.d.ts +0 -1
  56. package/dist/node-lib/timers.d.ts +0 -1
  57. package/dist/node-lib/util-module.d.ts +0 -1
  58. package/dist/node-resolution.d.ts +0 -1
  59. package/dist/node-resolver.d.ts +0 -1
  60. package/dist/npm/index.d.ts +0 -1
  61. package/dist/npm/registry.d.ts +0 -1
  62. package/dist/npm/resolver.d.ts +0 -1
  63. package/dist/npm/tarball.d.ts +0 -1
  64. package/dist/process-tokens.d.ts +0 -1
  65. package/dist/punycode-source.d.ts +0 -1
  66. package/dist/runtime-interface.d.ts +0 -1
  67. package/dist/runtime.d.ts +0 -1
  68. package/dist/server-bridge.d.ts +0 -1
  69. package/dist/shims/async_hooks.d.ts +0 -1
  70. package/dist/shims/child_process.d.ts +0 -1
  71. package/dist/shims/cluster.d.ts +0 -1
  72. package/dist/shims/command-line.d.ts +0 -1
  73. package/dist/shims/constants.d.ts +0 -1
  74. package/dist/shims/crypto-constants.d.ts +0 -1
  75. package/dist/shims/crypto.d.ts +0 -1
  76. package/dist/shims/dgram.d.ts +0 -1
  77. package/dist/shims/dns.d.ts +0 -1
  78. package/dist/shims/domain.d.ts +0 -1
  79. package/dist/shims/esbuild.d.ts +0 -1
  80. package/dist/shims/fs.d.ts +0 -1
  81. package/dist/shims/http2.d.ts +0 -1
  82. package/dist/shims/inspector.d.ts +0 -1
  83. package/dist/shims/module.d.ts +0 -1
  84. package/dist/shims/os.d.ts +0 -1
  85. package/dist/shims/path.d.ts +0 -1
  86. package/dist/shims/perf_hooks.d.ts +0 -1
  87. package/dist/shims/process.d.ts +0 -1
  88. package/dist/shims/rollup.d.ts +0 -1
  89. package/dist/shims/string_decoder.d.ts +0 -1
  90. package/dist/shims/sync-child.d.ts +0 -1
  91. package/dist/shims/tls.d.ts +0 -1
  92. package/dist/shims/url.d.ts +0 -1
  93. package/dist/shims/v8.d.ts +0 -1
  94. package/dist/shims/vfs-adapter.d.ts +0 -1
  95. package/dist/shims/vm.d.ts +0 -1
  96. package/dist/shims/wasi.d.ts +0 -1
  97. package/dist/shims/worker_threads.d.ts +0 -1
  98. package/dist/shims/zlib-constants.d.ts +0 -1
  99. package/dist/shims/zlib.d.ts +0 -1
  100. package/dist/transform.d.ts +0 -1
  101. package/dist/types/package-json.d.ts +0 -1
  102. package/dist/utils/binary-encoding.d.ts +0 -1
  103. package/dist/utils/glob.d.ts +0 -1
  104. package/dist/utils/hash.d.ts +0 -1
  105. package/dist/virtual-fs.d.ts +0 -1
  106. package/dist/vite-plugin.d.ts +0 -1
  107. package/dist/vite-plugin.mjs +0 -1
  108. package/dist/worker/runtime-worker.d.ts +0 -1
  109. package/dist/worker-runtime.d.ts +0 -1
  110. package/package.json +11 -24
  111. package/src/node-lib/binding/fs.ts +25 -13
  112. package/src/node-lib/binding/zlib.ts +1 -1
  113. package/src/node-lib/sources.ts +1 -1
  114. package/src/virtual-fs.ts +13 -2
  115. package/dist/assets/runtime-worker-4MKaHFVb.js.map +0 -1
  116. package/dist/code-transforms.d.ts.map +0 -1
  117. package/dist/config/cdn.d.ts.map +0 -1
  118. package/dist/create-runtime.d.ts.map +0 -1
  119. package/dist/host-globals.d.ts.map +0 -1
  120. package/dist/index.cjs +0 -36021
  121. package/dist/index.cjs.map +0 -1
  122. package/dist/index.d.ts.map +0 -1
  123. package/dist/index.mjs.map +0 -1
  124. package/dist/node-internals.d.ts.map +0 -1
  125. package/dist/node-lib/binding/blob.d.ts.map +0 -1
  126. package/dist/node-lib/binding/buffer.d.ts.map +0 -1
  127. package/dist/node-lib/binding/cares_wrap.d.ts.map +0 -1
  128. package/dist/node-lib/binding/fds.d.ts.map +0 -1
  129. package/dist/node-lib/binding/fs.d.ts.map +0 -1
  130. package/dist/node-lib/binding/handles.d.ts.map +0 -1
  131. package/dist/node-lib/binding/http_parser.d.ts.map +0 -1
  132. package/dist/node-lib/binding/index.d.ts.map +0 -1
  133. package/dist/node-lib/binding/llhttp-wasm.d.ts.map +0 -1
  134. package/dist/node-lib/binding/misc.d.ts.map +0 -1
  135. package/dist/node-lib/binding/pipe_wrap.d.ts.map +0 -1
  136. package/dist/node-lib/binding/process_wrap.d.ts.map +0 -1
  137. package/dist/node-lib/binding/spawn_sync.d.ts.map +0 -1
  138. package/dist/node-lib/binding/stream_wrap.d.ts.map +0 -1
  139. package/dist/node-lib/binding/stubs.d.ts.map +0 -1
  140. package/dist/node-lib/binding/tcp_wrap.d.ts.map +0 -1
  141. package/dist/node-lib/binding/tty_wrap.d.ts.map +0 -1
  142. package/dist/node-lib/binding/util.d.ts.map +0 -1
  143. package/dist/node-lib/binding/uv.d.ts.map +0 -1
  144. package/dist/node-lib/binding/zlib-pako.d.ts.map +0 -1
  145. package/dist/node-lib/binding/zlib.d.ts.map +0 -1
  146. package/dist/node-lib/buffer-module.d.ts.map +0 -1
  147. package/dist/node-lib/child-process-module.d.ts.map +0 -1
  148. package/dist/node-lib/events-module.d.ts.map +0 -1
  149. package/dist/node-lib/fs-module.d.ts.map +0 -1
  150. package/dist/node-lib/http-bridge.d.ts.map +0 -1
  151. package/dist/node-lib/http-module.d.ts.map +0 -1
  152. package/dist/node-lib/internals/addresses.d.ts.map +0 -1
  153. package/dist/node-lib/internals/buffer-and-streams.d.ts.map +0 -1
  154. package/dist/node-lib/internals/child-process.d.ts.map +0 -1
  155. package/dist/node-lib/internals/events-util.d.ts.map +0 -1
  156. package/dist/node-lib/internals/index.d.ts.map +0 -1
  157. package/dist/node-lib/internals/modules.d.ts.map +0 -1
  158. package/dist/node-lib/internals/readline-access.d.ts.map +0 -1
  159. package/dist/node-lib/internals/runtime.d.ts.map +0 -1
  160. package/dist/node-lib/internals/util.d.ts.map +0 -1
  161. package/dist/node-lib/lazy.d.ts.map +0 -1
  162. package/dist/node-lib/load.d.ts.map +0 -1
  163. package/dist/node-lib/module-hooks.d.ts.map +0 -1
  164. package/dist/node-lib/net-module.d.ts.map +0 -1
  165. package/dist/node-lib/node-versions.d.ts.map +0 -1
  166. package/dist/node-lib/public-modules.d.ts.map +0 -1
  167. package/dist/node-lib/require-hook.d.ts.map +0 -1
  168. package/dist/node-lib/small-modules.d.ts.map +0 -1
  169. package/dist/node-lib/sources.d.ts.map +0 -1
  170. package/dist/node-lib/stream-module.d.ts.map +0 -1
  171. package/dist/node-lib/timers.d.ts.map +0 -1
  172. package/dist/node-lib/util-module.d.ts.map +0 -1
  173. package/dist/node-resolution.d.ts.map +0 -1
  174. package/dist/node-resolver.d.ts.map +0 -1
  175. package/dist/npm/index.d.ts.map +0 -1
  176. package/dist/npm/registry.d.ts.map +0 -1
  177. package/dist/npm/resolver.d.ts.map +0 -1
  178. package/dist/npm/tarball.d.ts.map +0 -1
  179. package/dist/process-tokens.d.ts.map +0 -1
  180. package/dist/punycode-source.d.ts.map +0 -1
  181. package/dist/runtime-interface.d.ts.map +0 -1
  182. package/dist/runtime.d.ts.map +0 -1
  183. package/dist/server-bridge.d.ts.map +0 -1
  184. package/dist/shims/async_hooks.d.ts.map +0 -1
  185. package/dist/shims/child_process.d.ts.map +0 -1
  186. package/dist/shims/cluster.d.ts.map +0 -1
  187. package/dist/shims/command-line.d.ts.map +0 -1
  188. package/dist/shims/constants.d.ts.map +0 -1
  189. package/dist/shims/crypto-constants.d.ts.map +0 -1
  190. package/dist/shims/crypto.d.ts.map +0 -1
  191. package/dist/shims/dgram.d.ts.map +0 -1
  192. package/dist/shims/dns.d.ts.map +0 -1
  193. package/dist/shims/domain.d.ts.map +0 -1
  194. package/dist/shims/esbuild.d.ts.map +0 -1
  195. package/dist/shims/fs.d.ts.map +0 -1
  196. package/dist/shims/http2.d.ts.map +0 -1
  197. package/dist/shims/inspector.d.ts.map +0 -1
  198. package/dist/shims/module.d.ts.map +0 -1
  199. package/dist/shims/os.d.ts.map +0 -1
  200. package/dist/shims/path.d.ts.map +0 -1
  201. package/dist/shims/perf_hooks.d.ts.map +0 -1
  202. package/dist/shims/process.d.ts.map +0 -1
  203. package/dist/shims/rollup.d.ts.map +0 -1
  204. package/dist/shims/string_decoder.d.ts.map +0 -1
  205. package/dist/shims/sync-child.d.ts.map +0 -1
  206. package/dist/shims/tls.d.ts.map +0 -1
  207. package/dist/shims/url.d.ts.map +0 -1
  208. package/dist/shims/v8.d.ts.map +0 -1
  209. package/dist/shims/vfs-adapter.d.ts.map +0 -1
  210. package/dist/shims/vm.d.ts.map +0 -1
  211. package/dist/shims/wasi.d.ts.map +0 -1
  212. package/dist/shims/worker_threads.d.ts.map +0 -1
  213. package/dist/shims/zlib-constants.d.ts.map +0 -1
  214. package/dist/shims/zlib.d.ts.map +0 -1
  215. package/dist/transform.d.ts.map +0 -1
  216. package/dist/types/package-json.d.ts.map +0 -1
  217. package/dist/utils/binary-encoding.d.ts.map +0 -1
  218. package/dist/utils/glob.d.ts.map +0 -1
  219. package/dist/utils/hash.d.ts.map +0 -1
  220. package/dist/virtual-fs.d.ts.map +0 -1
  221. package/dist/vite-plugin.cjs +0 -50
  222. package/dist/vite-plugin.cjs.map +0 -1
  223. package/dist/vite-plugin.d.ts.map +0 -1
  224. package/dist/vite-plugin.mjs.map +0 -1
  225. package/dist/worker/runtime-worker.d.ts.map +0 -1
  226. package/dist/worker-runtime.d.ts.map +0 -1
package/dist/runtime.d.ts CHANGED
@@ -141,4 +141,3 @@ export declare function execute(code: string, vfs: VirtualFS, options?: RuntimeO
141
141
  };
142
142
  export type { IRuntime, IExecuteResult, IRuntimeOptions } from './runtime-interface';
143
143
  export default Runtime;
144
- //# sourceMappingURL=runtime.d.ts.map
@@ -144,4 +144,3 @@ export declare function getServerBridge(options?: BridgeOptions): ServerBridge;
144
144
  */
145
145
  export declare function resetServerBridge(): void;
146
146
  export default ServerBridge;
147
- //# sourceMappingURL=server-bridge.d.ts.map
@@ -47,4 +47,3 @@ declare const _default: {
47
47
  triggerAsyncId: typeof triggerAsyncId;
48
48
  };
49
49
  export default _default;
50
- //# sourceMappingURL=async_hooks.d.ts.map
@@ -101,4 +101,3 @@ declare const _default: {
101
101
  sendStdin: typeof sendStdin;
102
102
  };
103
103
  export default _default;
104
- //# sourceMappingURL=child_process.d.ts.map
@@ -49,4 +49,3 @@ declare const _default: {
49
49
  removeListener: (event: string, listener: (...args: any[]) => void) => unknown;
50
50
  };
51
51
  export default _default;
52
- //# sourceMappingURL=cluster.d.ts.map
@@ -40,4 +40,3 @@ export declare function setProgramResolver(resolve: (file: string, cwd?: string)
40
40
  * program and its words, each quoted.
41
41
  */
42
42
  export declare function __substrateLineFor(file: string, argv: string[], cwd?: string): string;
43
- //# sourceMappingURL=command-line.d.ts.map
@@ -219,4 +219,3 @@ type ConstantsBinding = {
219
219
  */
220
220
  export declare function constantsBinding(): ConstantsBinding;
221
221
  export {};
222
- //# sourceMappingURL=constants.d.ts.map
@@ -9,4 +9,3 @@ export declare const cryptoConstants: {
9
9
  RSA_PKCS1_OAEP_PADDING: number;
10
10
  RSA_PKCS1_PSS_PADDING: number;
11
11
  };
12
- //# sourceMappingURL=crypto-constants.d.ts.map
@@ -141,4 +141,3 @@ declare const _default: {
141
141
  createPrivateKey: typeof createPrivateKey;
142
142
  };
143
143
  export default _default;
144
- //# sourceMappingURL=crypto.d.ts.map
@@ -31,4 +31,3 @@ declare const _default: {
31
31
  createSocket: typeof createSocket;
32
32
  };
33
33
  export default _default;
34
- //# sourceMappingURL=dgram.d.ts.map
@@ -88,4 +88,3 @@ declare const _default: {
88
88
  ALL: number;
89
89
  };
90
90
  export default _default;
91
- //# sourceMappingURL=dns.d.ts.map
@@ -22,4 +22,3 @@ declare const _default: {
22
22
  active: null;
23
23
  };
24
24
  export default _default;
25
- //# sourceMappingURL=domain.d.ts.map
@@ -202,4 +202,3 @@ declare const _default: {
202
202
  analyzeMetafile: typeof analyzeMetafile;
203
203
  };
204
204
  export default _default;
205
- //# sourceMappingURL=esbuild.d.ts.map
@@ -22,4 +22,3 @@ export type FsShim = typeof import('node:fs');
22
22
  */
23
23
  export declare function createFsShim(tree: VirtualFS, _getCwd?: () => string): FsShim;
24
24
  export default createFsShim;
25
- //# sourceMappingURL=fs.d.ts.map
@@ -78,4 +78,3 @@ declare const _default: {
78
78
  sensitiveHeaders: symbol;
79
79
  };
80
80
  export default _default;
81
- //# sourceMappingURL=http2.d.ts.map
@@ -22,4 +22,3 @@ declare const _default: {
22
22
  console: Console;
23
23
  };
24
24
  export default _default;
25
- //# sourceMappingURL=inspector.d.ts.map
@@ -19,4 +19,3 @@ export declare const Module: {
19
19
  syncBuiltinESMExports: typeof syncBuiltinESMExports;
20
20
  };
21
21
  export default Module;
22
- //# sourceMappingURL=module.d.ts.map
@@ -156,4 +156,3 @@ declare const _default: {
156
156
  devNull: string;
157
157
  };
158
158
  export default _default;
159
- //# sourceMappingURL=os.d.ts.map
@@ -49,4 +49,3 @@ export declare const format: (pathObject: FormatInputPathObject) => string;
49
49
  export declare const toNamespacedPath: <T>(path: T) => T;
50
50
  export declare const matchesGlob: (path: string, pattern: string) => boolean;
51
51
  export default nodePath;
52
- //# sourceMappingURL=path.d.ts.map
@@ -47,4 +47,3 @@ declare const _default: {
47
47
  monitorEventLoopDelay: typeof monitorEventLoopDelay;
48
48
  };
49
49
  export default _default;
50
- //# sourceMappingURL=perf_hooks.d.ts.map
@@ -223,4 +223,3 @@ export declare function createProcess(options?: {
223
223
  tty?: boolean;
224
224
  }): Process;
225
225
  export {};
226
- //# sourceMappingURL=process.d.ts.map
@@ -68,4 +68,3 @@ declare const _default: {
68
68
  parseAstAsync: typeof parseAstAsync;
69
69
  };
70
70
  export default _default;
71
- //# sourceMappingURL=rollup.d.ts.map
@@ -38,4 +38,3 @@ declare const _default: {
38
38
  StringDecoder: StringDecoderConstructor;
39
39
  };
40
40
  export default _default;
41
- //# sourceMappingURL=string_decoder.d.ts.map
@@ -61,4 +61,3 @@ export declare function warmSyncChild(): void;
61
61
  * result Node gives for a child it could not start.
62
62
  */
63
63
  export declare function runSyncChild(request: SyncChildRequest): SyncChildResult;
64
- //# sourceMappingURL=sync-child.d.ts.map
@@ -50,4 +50,3 @@ declare const _default: {
50
50
  rootCertificates: string[];
51
51
  };
52
52
  export default _default;
53
- //# sourceMappingURL=tls.d.ts.map
@@ -81,4 +81,3 @@ declare const _default: {
81
81
  pathToFileURL: typeof pathToFileURL;
82
82
  };
83
83
  export default _default;
84
- //# sourceMappingURL=url.d.ts.map
@@ -70,4 +70,3 @@ declare const _default: {
70
70
  promiseHooks: typeof promiseHooks;
71
71
  };
72
72
  export default _default;
73
- //# sourceMappingURL=v8.d.ts.map
@@ -123,4 +123,3 @@ export declare class VirtualFSAdapter implements IFileSystem {
123
123
  utimes(path: string, _atime: Date, _mtime: Date): Promise<void>;
124
124
  }
125
125
  export {};
126
- //# sourceMappingURL=vfs-adapter.d.ts.map
@@ -49,4 +49,3 @@ declare const _default: {
49
49
  SyntheticModule: typeof SyntheticModule;
50
50
  };
51
51
  export default _default;
52
- //# sourceMappingURL=vm.d.ts.map
@@ -75,4 +75,3 @@ export interface WasiModule {
75
75
  };
76
76
  }
77
77
  export declare function createWasiModule(fs: WasiHostFs, process: WasiHostProcess): WasiModule;
78
- //# sourceMappingURL=wasi.d.ts.map
@@ -63,4 +63,3 @@ declare const _default: {
63
63
  setEnvironmentData: typeof setEnvironmentData;
64
64
  };
65
65
  export default _default;
66
- //# sourceMappingURL=worker_threads.d.ts.map
@@ -63,4 +63,3 @@ export declare const zlibConstants: {
63
63
  BROTLI_MIN_INPUT_BLOCK_BITS: number;
64
64
  BROTLI_MAX_INPUT_BLOCK_BITS: number;
65
65
  };
66
- //# sourceMappingURL=zlib-constants.d.ts.map
@@ -99,4 +99,3 @@ declare const _default: {
99
99
  };
100
100
  };
101
101
  export default _default;
102
- //# sourceMappingURL=zlib.d.ts.map
@@ -21,4 +21,3 @@ export declare function transformFile(code: string, filename: string): Promise<s
21
21
  * Transform all ESM files in a package directory to CJS
22
22
  */
23
23
  export declare function transformPackage(vfs: VirtualFS, pkgPath: string, onProgress?: (msg: string) => void): Promise<number>;
24
- //# sourceMappingURL=transform.d.ts.map
@@ -15,4 +15,3 @@ export interface PackageJson {
15
15
  scripts?: Record<string, string>;
16
16
  [key: string]: unknown;
17
17
  }
18
- //# sourceMappingURL=package-json.d.ts.map
@@ -10,4 +10,3 @@ export declare function base64ToUint8(base64: string): Uint8Array;
10
10
  export declare function uint8ToHex(bytes: Uint8Array): string;
11
11
  /** Convert Uint8Array to binary (latin1) string */
12
12
  export declare function uint8ToBinaryString(bytes: Uint8Array): string;
13
- //# sourceMappingURL=binary-encoding.d.ts.map
@@ -16,4 +16,3 @@
16
16
  * source system keeps its own semantics.
17
17
  */
18
18
  export declare function globToRegExp(glob: string, nocase?: boolean): RegExp;
19
- //# sourceMappingURL=glob.d.ts.map
@@ -3,4 +3,3 @@
3
3
  * Uses djb2-style hashing for fast string hashing.
4
4
  */
5
5
  export declare function simpleHash(str: string): string;
6
- //# sourceMappingURL=hash.d.ts.map
@@ -256,4 +256,3 @@ export declare class VirtualFS {
256
256
  };
257
257
  }
258
258
  export {};
259
- //# sourceMappingURL=virtual-fs.d.ts.map
@@ -33,4 +33,3 @@ export interface TabnodePluginOptions {
33
33
  */
34
34
  export declare function tabnodePlugin(options?: TabnodePluginOptions): Plugin;
35
35
  export default tabnodePlugin;
36
- //# sourceMappingURL=vite-plugin.d.ts.map
@@ -28,4 +28,3 @@ export {
28
28
  tabnodePlugin as default,
29
29
  tabnodePlugin
30
30
  };
31
- //# sourceMappingURL=vite-plugin.mjs.map
@@ -5,4 +5,3 @@
5
5
  * and runs them in isolation, preventing UI blocking.
6
6
  */
7
7
  export {};
8
- //# sourceMappingURL=runtime-worker.d.ts.map
@@ -47,4 +47,3 @@ export declare class WorkerRuntime implements IRuntime {
47
47
  */
48
48
  terminate(): void;
49
49
  }
50
- //# sourceMappingURL=worker-runtime.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volter/tabnode",
3
- "version": "0.2.14-volter.88",
3
+ "version": "0.3.1",
4
4
  "description": "Node's own library, in a browser tab.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -14,7 +14,7 @@
14
14
  ],
15
15
  "repository": {
16
16
  "type": "git",
17
- "url": "https://github.com/volter-ai/tabnode.git"
17
+ "url": "git+https://github.com/volter-ai/tabnode.git"
18
18
  },
19
19
  "homepage": "https://github.com/volter-ai/tabnode#readme",
20
20
  "bugs": {
@@ -22,31 +22,17 @@
22
22
  },
23
23
  "author": "Aaron <aaron@volter.ai>",
24
24
  "engines": {
25
- "node": ">=20.0.0"
25
+ "node": ">=20.19.0"
26
26
  },
27
- "main": "./dist/index.cjs",
28
- "module": "./dist/index.mjs",
29
27
  "types": "./dist/index.d.ts",
30
28
  "exports": {
31
29
  ".": {
32
- "import": {
33
- "types": "./dist/index.d.ts",
34
- "default": "./dist/index.mjs"
35
- },
36
- "require": {
37
- "types": "./dist/index.d.ts",
38
- "default": "./dist/index.cjs"
39
- }
30
+ "types": "./dist/index.d.ts",
31
+ "default": "./dist/index.mjs"
40
32
  },
41
33
  "./vite": {
42
- "import": {
43
- "types": "./dist/vite-plugin.d.ts",
44
- "default": "./dist/vite-plugin.mjs"
45
- },
46
- "require": {
47
- "types": "./dist/vite-plugin.d.ts",
48
- "default": "./dist/vite-plugin.cjs"
49
- }
34
+ "types": "./dist/vite-plugin.d.ts",
35
+ "default": "./dist/vite-plugin.mjs"
50
36
  }
51
37
  },
52
38
  "files": [
@@ -59,9 +45,8 @@
59
45
  "access": "public"
60
46
  },
61
47
  "scripts": {
62
- "build:lib": "vite build --config vite.lib.config.js && (tsc -p tsconfig.build.json || true)",
63
- "build:types": "tsc --project tsconfig.build.json",
64
- "build:publish": "npm run build:lib && npm run build:types",
48
+ "build:lib": "vite build --config vite.lib.config.js && tsc -p tsconfig.build.json",
49
+ "docs:api": "typedoc",
65
50
  "test": "vitest run",
66
51
  "type-check": "tsc --noEmit"
67
52
  },
@@ -81,6 +66,8 @@
81
66
  "devDependencies": {
82
67
  "@types/node": "^25.0.10",
83
68
  "@types/pako": "^2.0.4",
69
+ "typedoc": "^0.28.20",
70
+ "typedoc-plugin-markdown": "^4.13.1",
84
71
  "typescript": "^5.9.3",
85
72
  "vite": "^5.4.0",
86
73
  "vitest": "^4.0.18"
@@ -469,6 +469,9 @@ export const fsBinding = {
469
469
  if ((flags & bits.excl) !== 0 && (flags & bits.create) !== 0 && exists) throw createNodeError('EEXIST', 'open', name);
470
470
  if (!exists) {
471
471
  if ((flags & bits.create) === 0) throw createNodeError('ENOENT', 'open', name);
472
+ // VirtualFS writes create parents for image loading; open(2) does not.
473
+ const parent = name.slice(0, name.lastIndexOf('/')) || '/';
474
+ if (!tree.statSync(parent).isDirectory()) throw createNodeError('ENOTDIR', 'open', name);
472
475
  tree.writeFileSync(name, '');
473
476
  } else if ((flags & bits.truncate) !== 0) {
474
477
  tree.writeFileSync(name, '');
@@ -481,13 +484,14 @@ export const fsBinding = {
481
484
  },
482
485
 
483
486
  close(fd: number, req?: FSReq): undefined {
484
- return answer(req, () => { openFiles.delete(fd); return undefined; });
487
+ return answer(req, () => { fileFor(fd); openFiles.delete(fd); return undefined; });
485
488
  },
486
489
 
487
490
  // ---- reading ------------------------------------------------------------
488
491
  read(fd: number, buffer: Uint8Array, offset: number, length: number, position: number, req?: FSReq): number | undefined {
489
492
  return answer(req, () => {
490
493
  const file = fileFor(fd);
494
+ if ((file.flags & 3) === 1) throw createNodeError('EBADF', 'read', file.path);
491
495
  if (file.cached === undefined) file.cached = file.tree.readFileSync(file.path) as Uint8Array;
492
496
  const bytes = file.cached;
493
497
  const from = position === null || position === undefined || position < 0 ? file.position : position;
@@ -512,18 +516,27 @@ export const fsBinding = {
512
516
  },
513
517
 
514
518
  /** Node's fast path for `readFile` with an encoding it can decode itself. */
515
- readFileUtf8(path: unknown, _flags: number): string {
516
- return vfs().readFileSync(asPath(path), 'utf8') as string;
519
+ readFileUtf8(path: unknown, flags: number): string {
520
+ const owned = typeof path !== 'number';
521
+ const fd = owned ? fsBinding.open(path, flags, 0o666) as number : path as number;
522
+ try {
523
+ const file = fileFor(fd);
524
+ const bytes = new Uint8Array(file.tree.statSync(file.path).size);
525
+ const length = fsBinding.read(fd, bytes, 0, bytes.length, -1) as number;
526
+ return new TextDecoder().decode(bytes.subarray(0, length));
527
+ } finally { if (owned) fsBinding.close(fd); }
517
528
  },
518
529
 
519
530
  // ---- writing ------------------------------------------------------------
520
531
  writeBuffer(fd: number, buffer: Uint8Array, offset: number, length: number, position: number | null, req?: FSReq): number | undefined {
521
532
  return answer(req, () => {
522
533
  const file = fileFor(fd);
534
+ if ((file.flags & 3) === 0) throw createNodeError('EBADF', 'write', file.path);
523
535
  const tree = file.tree;
524
536
  const slice = buffer.subarray(offset, offset + length);
525
537
  const existing = file.cached ?? (tree.existsSync(file.path) ? tree.readFileSync(file.path) as Uint8Array : new Uint8Array(0));
526
- const at = position === null || position === undefined || position < 0 ? file.position : position;
538
+ const at = (file.flags & flagBits().append) !== 0 ? existing.length
539
+ : position === null || position === undefined || position < 0 ? file.position : position;
527
540
  const size = Math.max(existing.length, at + slice.length);
528
541
  const next = new Uint8Array(size);
529
542
  next.set(existing, 0);
@@ -553,15 +566,13 @@ export const fsBinding = {
553
566
  return fsBinding.writeBuffer(fd, bytes, 0, bytes.length, position ?? null, req);
554
567
  },
555
568
 
556
- writeFileUtf8(path: unknown, data: string, flags: number, _mode: number): undefined {
557
- const tree = vfs();
558
- const name = asPath(path);
559
- if ((flags & flagBits().append) !== 0 && tree.existsSync(name)) {
560
- const existing = tree.readFileSync(name, 'utf8') as string;
561
- tree.writeFileSync(name, existing + data);
562
- return undefined;
563
- }
564
- tree.writeFileSync(name, data);
569
+ writeFileUtf8(path: unknown, data: string, flags: number, mode: number): undefined {
570
+ // Node's UTF-8 fast path accepts a path OR an already-open descriptor.
571
+ // Reuse open/write so flags, offsets and errors match the buffer path.
572
+ const owned = typeof path !== 'number';
573
+ const fd = owned ? fsBinding.open(path, flags, mode) as number : path as number;
574
+ try { fsBinding.writeString(fd, data, null, 'utf8'); }
575
+ finally { if (owned) fsBinding.close(fd); }
565
576
  return undefined;
566
577
  },
567
578
 
@@ -843,6 +854,7 @@ export const fsBinding = {
843
854
  ftruncate(fd: number, length: number, req?: FSReq): undefined {
844
855
  return answer(req, () => {
845
856
  const file = fileFor(fd);
857
+ if ((file.flags & 3) === 0) throw createNodeError('EBADF', 'ftruncate', file.path);
846
858
  const tree = file.tree;
847
859
  const bytes = file.cached ?? (tree.readFileSync(file.path) as Uint8Array);
848
860
  const next = new Uint8Array(length);
@@ -25,7 +25,7 @@
25
25
  * `http`, and there is none to vendor: no zlib wasm exists anywhere on this
26
26
  * box, npm's `zlib-wasm` is one maintainer, two versions, and depends on pako
27
27
  * itself, and compiling `deps/zlib` here would mean running a C toolchain,
28
- * which this product does not do. The row in FORK.md says the same.
28
+ * which this product does not do. The row in BUILTINS.md says the same.
29
29
  */
30
30
  import { zstream, inflateModule, deflateModule, zlibConstants } from './zlib-pako';
31
31
 
@@ -101,7 +101,7 @@ import INTERNAL_UTIL_COLORS from './internal/util/colors.js?raw';
101
101
  import INTERNAL_FIXED_QUEUE from './internal/fixed_queue.js?raw';
102
102
  import INTERNAL_EVENTS_SYMBOLS from './internal/events/symbols.js?raw';
103
103
 
104
- /** The Node the vendored files come from, reported in `FORK.md`'s table. */
104
+ /** The Node the vendored files come from, reported in `BUILTINS.md`. */
105
105
  export const NODE_LIB_VERSION = 'v22.18.0';
106
106
 
107
107
  export const NODE_LIB_SOURCES: Record<string, string> = {
package/src/virtual-fs.ts CHANGED
@@ -45,6 +45,17 @@ export interface FSNode {
45
45
  atime?: number;
46
46
  }
47
47
 
48
+ // Identity belongs to the node, so writes and renames preserve it while an
49
+ // unlink followed by recreation receives a different inode. Weak keys do not
50
+ // retain deleted trees, and snapshots receive new identities when restored.
51
+ const nodeInodes = new WeakMap<FSNode, number>();
52
+ let nextInode = 1;
53
+ function inodeFor(node: FSNode): number {
54
+ let inode = nodeInodes.get(node);
55
+ if (inode === undefined) { inode = nextInode++; nodeInodes.set(node, inode); }
56
+ return inode;
57
+ }
58
+
48
59
  // Simple EventEmitter for VFS change notifications
49
60
  type VFSChangeListener = (path: string, content: string) => void;
50
61
  type VFSDeleteListener = (path: string) => void;
@@ -491,7 +502,7 @@ export class VirtualFS {
491
502
  uid: 1000,
492
503
  gid: 1000,
493
504
  dev: 0,
494
- ino: 0,
505
+ ino: inodeFor(node),
495
506
  rdev: 0,
496
507
  blksize: 4096,
497
508
  blocks: Math.ceil(size / 512),
@@ -531,7 +542,7 @@ export class VirtualFS {
531
542
  uid: 1000,
532
543
  gid: 1000,
533
544
  dev: 0,
534
- ino: 0,
545
+ ino: inodeFor(node),
535
546
  rdev: 0,
536
547
  blksize: 4096,
537
548
  blocks: 0