almostnode 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +731 -0
- package/dist/__sw__.js +394 -0
- package/dist/ai-chatbot-demo-entry.d.ts +6 -0
- package/dist/ai-chatbot-demo-entry.d.ts.map +1 -0
- package/dist/ai-chatbot-demo.d.ts +42 -0
- package/dist/ai-chatbot-demo.d.ts.map +1 -0
- package/dist/assets/runtime-worker-D9x_Ddwz.js +60543 -0
- package/dist/assets/runtime-worker-D9x_Ddwz.js.map +1 -0
- package/dist/convex-app-demo-entry.d.ts +6 -0
- package/dist/convex-app-demo-entry.d.ts.map +1 -0
- package/dist/convex-app-demo.d.ts +68 -0
- package/dist/convex-app-demo.d.ts.map +1 -0
- package/dist/cors-proxy.d.ts +46 -0
- package/dist/cors-proxy.d.ts.map +1 -0
- package/dist/create-runtime.d.ts +42 -0
- package/dist/create-runtime.d.ts.map +1 -0
- package/dist/demo.d.ts +6 -0
- package/dist/demo.d.ts.map +1 -0
- package/dist/dev-server.d.ts +97 -0
- package/dist/dev-server.d.ts.map +1 -0
- package/dist/frameworks/next-dev-server.d.ts +202 -0
- package/dist/frameworks/next-dev-server.d.ts.map +1 -0
- package/dist/frameworks/vite-dev-server.d.ts +85 -0
- package/dist/frameworks/vite-dev-server.d.ts.map +1 -0
- package/dist/index.cjs +14965 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +71 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +14867 -0
- package/dist/index.mjs.map +1 -0
- package/dist/next-demo.d.ts +49 -0
- package/dist/next-demo.d.ts.map +1 -0
- package/dist/npm/index.d.ts +71 -0
- package/dist/npm/index.d.ts.map +1 -0
- package/dist/npm/registry.d.ts +66 -0
- package/dist/npm/registry.d.ts.map +1 -0
- package/dist/npm/resolver.d.ts +52 -0
- package/dist/npm/resolver.d.ts.map +1 -0
- package/dist/npm/tarball.d.ts +29 -0
- package/dist/npm/tarball.d.ts.map +1 -0
- package/dist/runtime-interface.d.ts +90 -0
- package/dist/runtime-interface.d.ts.map +1 -0
- package/dist/runtime.d.ts +103 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/sandbox-helpers.d.ts +43 -0
- package/dist/sandbox-helpers.d.ts.map +1 -0
- package/dist/sandbox-runtime.d.ts +65 -0
- package/dist/sandbox-runtime.d.ts.map +1 -0
- package/dist/server-bridge.d.ts +89 -0
- package/dist/server-bridge.d.ts.map +1 -0
- package/dist/shims/assert.d.ts +51 -0
- package/dist/shims/assert.d.ts.map +1 -0
- package/dist/shims/async_hooks.d.ts +37 -0
- package/dist/shims/async_hooks.d.ts.map +1 -0
- package/dist/shims/buffer.d.ts +20 -0
- package/dist/shims/buffer.d.ts.map +1 -0
- package/dist/shims/child_process-browser.d.ts +92 -0
- package/dist/shims/child_process-browser.d.ts.map +1 -0
- package/dist/shims/child_process.d.ts +93 -0
- package/dist/shims/child_process.d.ts.map +1 -0
- package/dist/shims/chokidar.d.ts +55 -0
- package/dist/shims/chokidar.d.ts.map +1 -0
- package/dist/shims/cluster.d.ts +52 -0
- package/dist/shims/cluster.d.ts.map +1 -0
- package/dist/shims/crypto.d.ts +122 -0
- package/dist/shims/crypto.d.ts.map +1 -0
- package/dist/shims/dgram.d.ts +34 -0
- package/dist/shims/dgram.d.ts.map +1 -0
- package/dist/shims/diagnostics_channel.d.ts +80 -0
- package/dist/shims/diagnostics_channel.d.ts.map +1 -0
- package/dist/shims/dns.d.ts +87 -0
- package/dist/shims/dns.d.ts.map +1 -0
- package/dist/shims/domain.d.ts +25 -0
- package/dist/shims/domain.d.ts.map +1 -0
- package/dist/shims/esbuild.d.ts +105 -0
- package/dist/shims/esbuild.d.ts.map +1 -0
- package/dist/shims/events.d.ts +37 -0
- package/dist/shims/events.d.ts.map +1 -0
- package/dist/shims/fs.d.ts +115 -0
- package/dist/shims/fs.d.ts.map +1 -0
- package/dist/shims/fsevents.d.ts +67 -0
- package/dist/shims/fsevents.d.ts.map +1 -0
- package/dist/shims/http.d.ts +217 -0
- package/dist/shims/http.d.ts.map +1 -0
- package/dist/shims/http2.d.ts +81 -0
- package/dist/shims/http2.d.ts.map +1 -0
- package/dist/shims/https.d.ts +36 -0
- package/dist/shims/https.d.ts.map +1 -0
- package/dist/shims/inspector.d.ts +25 -0
- package/dist/shims/inspector.d.ts.map +1 -0
- package/dist/shims/module.d.ts +22 -0
- package/dist/shims/module.d.ts.map +1 -0
- package/dist/shims/net.d.ts +100 -0
- package/dist/shims/net.d.ts.map +1 -0
- package/dist/shims/os.d.ts +159 -0
- package/dist/shims/os.d.ts.map +1 -0
- package/dist/shims/path.d.ts +72 -0
- package/dist/shims/path.d.ts.map +1 -0
- package/dist/shims/perf_hooks.d.ts +50 -0
- package/dist/shims/perf_hooks.d.ts.map +1 -0
- package/dist/shims/process.d.ts +93 -0
- package/dist/shims/process.d.ts.map +1 -0
- package/dist/shims/querystring.d.ts +23 -0
- package/dist/shims/querystring.d.ts.map +1 -0
- package/dist/shims/readdirp.d.ts +52 -0
- package/dist/shims/readdirp.d.ts.map +1 -0
- package/dist/shims/readline.d.ts +62 -0
- package/dist/shims/readline.d.ts.map +1 -0
- package/dist/shims/rollup.d.ts +34 -0
- package/dist/shims/rollup.d.ts.map +1 -0
- package/dist/shims/sentry.d.ts +163 -0
- package/dist/shims/sentry.d.ts.map +1 -0
- package/dist/shims/stream.d.ts +181 -0
- package/dist/shims/stream.d.ts.map +1 -0
- package/dist/shims/tls.d.ts +53 -0
- package/dist/shims/tls.d.ts.map +1 -0
- package/dist/shims/tty.d.ts +30 -0
- package/dist/shims/tty.d.ts.map +1 -0
- package/dist/shims/url.d.ts +64 -0
- package/dist/shims/url.d.ts.map +1 -0
- package/dist/shims/util.d.ts +106 -0
- package/dist/shims/util.d.ts.map +1 -0
- package/dist/shims/v8.d.ts +73 -0
- package/dist/shims/v8.d.ts.map +1 -0
- package/dist/shims/vfs-adapter.d.ts +126 -0
- package/dist/shims/vfs-adapter.d.ts.map +1 -0
- package/dist/shims/vm.d.ts +45 -0
- package/dist/shims/vm.d.ts.map +1 -0
- package/dist/shims/worker_threads.d.ts +66 -0
- package/dist/shims/worker_threads.d.ts.map +1 -0
- package/dist/shims/ws.d.ts +66 -0
- package/dist/shims/ws.d.ts.map +1 -0
- package/dist/shims/zlib.d.ts +161 -0
- package/dist/shims/zlib.d.ts.map +1 -0
- package/dist/transform.d.ts +24 -0
- package/dist/transform.d.ts.map +1 -0
- package/dist/virtual-fs.d.ts +226 -0
- package/dist/virtual-fs.d.ts.map +1 -0
- package/dist/vite-demo.d.ts +35 -0
- package/dist/vite-demo.d.ts.map +1 -0
- package/dist/vite-sw.js +132 -0
- package/dist/worker/runtime-worker.d.ts +8 -0
- package/dist/worker/runtime-worker.d.ts.map +1 -0
- package/dist/worker-runtime.d.ts +50 -0
- package/dist/worker-runtime.d.ts.map +1 -0
- package/package.json +85 -0
- package/src/ai-chatbot-demo-entry.ts +244 -0
- package/src/ai-chatbot-demo.ts +509 -0
- package/src/convex-app-demo-entry.ts +1107 -0
- package/src/convex-app-demo.ts +1316 -0
- package/src/cors-proxy.ts +81 -0
- package/src/create-runtime.ts +147 -0
- package/src/demo.ts +304 -0
- package/src/dev-server.ts +274 -0
- package/src/frameworks/next-dev-server.ts +2224 -0
- package/src/frameworks/vite-dev-server.ts +702 -0
- package/src/index.ts +101 -0
- package/src/next-demo.ts +1784 -0
- package/src/npm/index.ts +347 -0
- package/src/npm/registry.ts +152 -0
- package/src/npm/resolver.ts +385 -0
- package/src/npm/tarball.ts +209 -0
- package/src/runtime-interface.ts +103 -0
- package/src/runtime.ts +1046 -0
- package/src/sandbox-helpers.ts +173 -0
- package/src/sandbox-runtime.ts +252 -0
- package/src/server-bridge.ts +426 -0
- package/src/shims/assert.ts +664 -0
- package/src/shims/async_hooks.ts +86 -0
- package/src/shims/buffer.ts +75 -0
- package/src/shims/child_process-browser.ts +217 -0
- package/src/shims/child_process.ts +463 -0
- package/src/shims/chokidar.ts +313 -0
- package/src/shims/cluster.ts +67 -0
- package/src/shims/crypto.ts +830 -0
- package/src/shims/dgram.ts +47 -0
- package/src/shims/diagnostics_channel.ts +196 -0
- package/src/shims/dns.ts +172 -0
- package/src/shims/domain.ts +58 -0
- package/src/shims/esbuild.ts +805 -0
- package/src/shims/events.ts +195 -0
- package/src/shims/fs.ts +803 -0
- package/src/shims/fsevents.ts +63 -0
- package/src/shims/http.ts +904 -0
- package/src/shims/http2.ts +96 -0
- package/src/shims/https.ts +86 -0
- package/src/shims/inspector.ts +30 -0
- package/src/shims/module.ts +82 -0
- package/src/shims/net.ts +359 -0
- package/src/shims/os.ts +195 -0
- package/src/shims/path.ts +199 -0
- package/src/shims/perf_hooks.ts +92 -0
- package/src/shims/process.ts +346 -0
- package/src/shims/querystring.ts +97 -0
- package/src/shims/readdirp.ts +228 -0
- package/src/shims/readline.ts +110 -0
- package/src/shims/rollup.ts +80 -0
- package/src/shims/sentry.ts +133 -0
- package/src/shims/stream.ts +1126 -0
- package/src/shims/tls.ts +95 -0
- package/src/shims/tty.ts +64 -0
- package/src/shims/url.ts +171 -0
- package/src/shims/util.ts +312 -0
- package/src/shims/v8.ts +113 -0
- package/src/shims/vfs-adapter.ts +402 -0
- package/src/shims/vm.ts +83 -0
- package/src/shims/worker_threads.ts +111 -0
- package/src/shims/ws.ts +382 -0
- package/src/shims/zlib.ts +289 -0
- package/src/transform.ts +313 -0
- package/src/types/external.d.ts +67 -0
- package/src/virtual-fs.ts +903 -0
- package/src/vite-demo.ts +577 -0
- package/src/worker/runtime-worker.ts +128 -0
- package/src/worker-runtime.ts +145 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Virtual File System - In-memory file tree with POSIX-like operations
|
|
3
|
+
*/
|
|
4
|
+
import type { VFSSnapshot } from './runtime-interface';
|
|
5
|
+
export interface FSNode {
|
|
6
|
+
type: 'file' | 'directory';
|
|
7
|
+
content?: Uint8Array;
|
|
8
|
+
children?: Map<string, FSNode>;
|
|
9
|
+
}
|
|
10
|
+
type VFSChangeListener = (path: string, content: string) => void;
|
|
11
|
+
type VFSDeleteListener = (path: string) => void;
|
|
12
|
+
export interface Stats {
|
|
13
|
+
isFile(): boolean;
|
|
14
|
+
isDirectory(): boolean;
|
|
15
|
+
isSymbolicLink(): boolean;
|
|
16
|
+
isBlockDevice(): boolean;
|
|
17
|
+
isCharacterDevice(): boolean;
|
|
18
|
+
isFIFO(): boolean;
|
|
19
|
+
isSocket(): boolean;
|
|
20
|
+
size: number;
|
|
21
|
+
mode: number;
|
|
22
|
+
mtime: Date;
|
|
23
|
+
atime: Date;
|
|
24
|
+
ctime: Date;
|
|
25
|
+
birthtime: Date;
|
|
26
|
+
mtimeMs: number;
|
|
27
|
+
atimeMs: number;
|
|
28
|
+
ctimeMs: number;
|
|
29
|
+
birthtimeMs: number;
|
|
30
|
+
nlink: number;
|
|
31
|
+
uid: number;
|
|
32
|
+
gid: number;
|
|
33
|
+
dev: number;
|
|
34
|
+
ino: number;
|
|
35
|
+
rdev: number;
|
|
36
|
+
blksize: number;
|
|
37
|
+
blocks: number;
|
|
38
|
+
}
|
|
39
|
+
export type WatchEventType = 'change' | 'rename';
|
|
40
|
+
export type WatchListener = (eventType: WatchEventType, filename: string | null) => void;
|
|
41
|
+
export interface FSWatcher {
|
|
42
|
+
close(): void;
|
|
43
|
+
ref(): this;
|
|
44
|
+
unref(): this;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Create a Node.js-style error with code property
|
|
48
|
+
*/
|
|
49
|
+
export interface NodeError extends Error {
|
|
50
|
+
code: string;
|
|
51
|
+
errno: number;
|
|
52
|
+
syscall: string;
|
|
53
|
+
path?: string;
|
|
54
|
+
}
|
|
55
|
+
export declare function createNodeError(code: 'ENOENT' | 'ENOTDIR' | 'EISDIR' | 'EEXIST' | 'ENOTEMPTY', syscall: string, path: string, message?: string): NodeError;
|
|
56
|
+
export declare class VirtualFS {
|
|
57
|
+
private root;
|
|
58
|
+
private encoder;
|
|
59
|
+
private decoder;
|
|
60
|
+
private watchers;
|
|
61
|
+
private eventListeners;
|
|
62
|
+
constructor();
|
|
63
|
+
/**
|
|
64
|
+
* Add event listener (for change notifications to workers)
|
|
65
|
+
*/
|
|
66
|
+
on(event: 'change', listener: VFSChangeListener): this;
|
|
67
|
+
on(event: 'delete', listener: VFSDeleteListener): this;
|
|
68
|
+
/**
|
|
69
|
+
* Remove event listener
|
|
70
|
+
*/
|
|
71
|
+
off(event: 'change', listener: VFSChangeListener): this;
|
|
72
|
+
off(event: 'delete', listener: VFSDeleteListener): this;
|
|
73
|
+
/**
|
|
74
|
+
* Emit event to listeners
|
|
75
|
+
*/
|
|
76
|
+
private emit;
|
|
77
|
+
/**
|
|
78
|
+
* Serialize the entire file tree to a snapshot (for worker transfer)
|
|
79
|
+
*/
|
|
80
|
+
toSnapshot(): VFSSnapshot;
|
|
81
|
+
private serializeNode;
|
|
82
|
+
/**
|
|
83
|
+
* Create a VirtualFS from a snapshot
|
|
84
|
+
*/
|
|
85
|
+
static fromSnapshot(snapshot: VFSSnapshot): VirtualFS;
|
|
86
|
+
/**
|
|
87
|
+
* Internal write that optionally emits events
|
|
88
|
+
*/
|
|
89
|
+
private writeFileSyncInternal;
|
|
90
|
+
/**
|
|
91
|
+
* Normalize path - resolve . and .. segments, ensure leading /
|
|
92
|
+
*/
|
|
93
|
+
private normalizePath;
|
|
94
|
+
/**
|
|
95
|
+
* Get path segments from normalized path
|
|
96
|
+
*/
|
|
97
|
+
private getPathSegments;
|
|
98
|
+
/**
|
|
99
|
+
* Get parent directory path
|
|
100
|
+
*/
|
|
101
|
+
private getParentPath;
|
|
102
|
+
/**
|
|
103
|
+
* Get basename from path
|
|
104
|
+
*/
|
|
105
|
+
private getBasename;
|
|
106
|
+
/**
|
|
107
|
+
* Get node at path, returns undefined if not found
|
|
108
|
+
*/
|
|
109
|
+
private getNode;
|
|
110
|
+
/**
|
|
111
|
+
* Get or create directory at path (for mkdir -p behavior)
|
|
112
|
+
*/
|
|
113
|
+
private ensureDirectory;
|
|
114
|
+
/**
|
|
115
|
+
* Check if path exists
|
|
116
|
+
*/
|
|
117
|
+
existsSync(path: string): boolean;
|
|
118
|
+
/**
|
|
119
|
+
* Get stats for path
|
|
120
|
+
*/
|
|
121
|
+
statSync(path: string): Stats;
|
|
122
|
+
/**
|
|
123
|
+
* lstatSync - same as statSync for our virtual FS (no symlinks)
|
|
124
|
+
*/
|
|
125
|
+
lstatSync(path: string): Stats;
|
|
126
|
+
/**
|
|
127
|
+
* Read file contents as Uint8Array
|
|
128
|
+
*/
|
|
129
|
+
readFileSync(path: string): Uint8Array;
|
|
130
|
+
readFileSync(path: string, encoding: 'utf8' | 'utf-8'): string;
|
|
131
|
+
/**
|
|
132
|
+
* Write data to file, creating parent directories as needed
|
|
133
|
+
*/
|
|
134
|
+
writeFileSync(path: string, data: string | Uint8Array): void;
|
|
135
|
+
/**
|
|
136
|
+
* Create directory, optionally with recursive parent creation
|
|
137
|
+
*/
|
|
138
|
+
mkdirSync(path: string, options?: {
|
|
139
|
+
recursive?: boolean;
|
|
140
|
+
}): void;
|
|
141
|
+
/**
|
|
142
|
+
* Read directory contents
|
|
143
|
+
*/
|
|
144
|
+
readdirSync(path: string): string[];
|
|
145
|
+
/**
|
|
146
|
+
* Remove file
|
|
147
|
+
*/
|
|
148
|
+
unlinkSync(path: string): void;
|
|
149
|
+
/**
|
|
150
|
+
* Remove directory (must be empty)
|
|
151
|
+
*/
|
|
152
|
+
rmdirSync(path: string): void;
|
|
153
|
+
/**
|
|
154
|
+
* Rename/move file or directory
|
|
155
|
+
*/
|
|
156
|
+
renameSync(oldPath: string, newPath: string): void;
|
|
157
|
+
/**
|
|
158
|
+
* Read file with optional options parameter
|
|
159
|
+
*/
|
|
160
|
+
readFile(path: string, optionsOrCallback?: {
|
|
161
|
+
encoding?: string;
|
|
162
|
+
} | ((err: Error | null, data?: Uint8Array | string) => void), callback?: (err: Error | null, data?: Uint8Array | string) => void): void;
|
|
163
|
+
/**
|
|
164
|
+
* Async stat
|
|
165
|
+
*/
|
|
166
|
+
stat(path: string, callback: (err: Error | null, stats?: Stats) => void): void;
|
|
167
|
+
/**
|
|
168
|
+
* Async lstat
|
|
169
|
+
*/
|
|
170
|
+
lstat(path: string, callback: (err: Error | null, stats?: Stats) => void): void;
|
|
171
|
+
/**
|
|
172
|
+
* Async readdir
|
|
173
|
+
*/
|
|
174
|
+
readdir(path: string, optionsOrCallback?: {
|
|
175
|
+
withFileTypes?: boolean;
|
|
176
|
+
} | ((err: Error | null, files?: string[]) => void), callback?: (err: Error | null, files?: string[]) => void): void;
|
|
177
|
+
/**
|
|
178
|
+
* Async realpath
|
|
179
|
+
*/
|
|
180
|
+
realpath(path: string, callback: (err: Error | null, resolvedPath?: string) => void): void;
|
|
181
|
+
/**
|
|
182
|
+
* Sync realpath - in our VFS, just normalize the path
|
|
183
|
+
*/
|
|
184
|
+
realpathSync(path: string): string;
|
|
185
|
+
/**
|
|
186
|
+
* Watch for file changes
|
|
187
|
+
*/
|
|
188
|
+
watch(filename: string, optionsOrListener?: {
|
|
189
|
+
persistent?: boolean;
|
|
190
|
+
recursive?: boolean;
|
|
191
|
+
encoding?: string;
|
|
192
|
+
} | WatchListener, listener?: WatchListener): FSWatcher;
|
|
193
|
+
/**
|
|
194
|
+
* Notify watchers of file changes
|
|
195
|
+
*/
|
|
196
|
+
private notifyWatchers;
|
|
197
|
+
/**
|
|
198
|
+
* Access check - in our VFS, always succeeds if file exists
|
|
199
|
+
*/
|
|
200
|
+
accessSync(path: string, mode?: number): void;
|
|
201
|
+
/**
|
|
202
|
+
* Async access
|
|
203
|
+
*/
|
|
204
|
+
access(path: string, modeOrCallback?: number | ((err: Error | null) => void), callback?: (err: Error | null) => void): void;
|
|
205
|
+
/**
|
|
206
|
+
* Copy file
|
|
207
|
+
*/
|
|
208
|
+
copyFileSync(src: string, dest: string): void;
|
|
209
|
+
/**
|
|
210
|
+
* Create read stream - simplified implementation
|
|
211
|
+
*/
|
|
212
|
+
createReadStream(path: string): {
|
|
213
|
+
on: (event: string, cb: (...args: unknown[]) => void) => void;
|
|
214
|
+
pipe: (dest: unknown) => unknown;
|
|
215
|
+
};
|
|
216
|
+
/**
|
|
217
|
+
* Create write stream - simplified implementation
|
|
218
|
+
*/
|
|
219
|
+
createWriteStream(path: string): {
|
|
220
|
+
write: (data: string | Uint8Array) => boolean;
|
|
221
|
+
end: (data?: string | Uint8Array) => void;
|
|
222
|
+
on: (event: string, cb: (...args: unknown[]) => void) => void;
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
export {};
|
|
226
|
+
//# sourceMappingURL=virtual-fs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"virtual-fs.d.ts","sourceRoot":"","sources":["../src/virtual-fs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vite Demo - Running Vite in the browser using our Node.js shims
|
|
3
|
+
*/
|
|
4
|
+
import { VirtualFS } from './virtual-fs';
|
|
5
|
+
import { Runtime } from './runtime';
|
|
6
|
+
import { PackageManager } from './npm';
|
|
7
|
+
import { ViteDevServer } from './frameworks/vite-dev-server';
|
|
8
|
+
export declare function createViteProject(vfs: VirtualFS): void;
|
|
9
|
+
export declare function initViteDemo(outputElement: HTMLElement, iframeElement: HTMLIFrameElement | null): Promise<{
|
|
10
|
+
vfs: VirtualFS;
|
|
11
|
+
runtime: Runtime;
|
|
12
|
+
npm: PackageManager;
|
|
13
|
+
}>;
|
|
14
|
+
/**
|
|
15
|
+
* Install Vite into the virtual file system
|
|
16
|
+
*/
|
|
17
|
+
export declare function installVite(npm: PackageManager, log: (message: string) => void): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Try to run Vite's createServer
|
|
20
|
+
*/
|
|
21
|
+
export declare function runVite(runtime: Runtime, log: (message: string) => void): Promise<unknown>;
|
|
22
|
+
/**
|
|
23
|
+
* Start the dev server using Service Worker approach
|
|
24
|
+
* This is the recommended way to run the preview - no npm install required!
|
|
25
|
+
*/
|
|
26
|
+
export declare function startDevServer(vfs: VirtualFS, options?: {
|
|
27
|
+
port?: number;
|
|
28
|
+
log?: (message: string) => void;
|
|
29
|
+
}): Promise<{
|
|
30
|
+
server: ViteDevServer;
|
|
31
|
+
url: string;
|
|
32
|
+
stop: () => void;
|
|
33
|
+
}>;
|
|
34
|
+
export { VirtualFS, Runtime, PackageManager, ViteDevServer };
|
|
35
|
+
//# sourceMappingURL=vite-demo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite-demo.d.ts","sourceRoot":"","sources":["../src/vite-demo.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAK7D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAwTtD;AAGD,wBAAsB,YAAY,CAChC,aAAa,EAAE,WAAW,EAC1B,aAAa,EAAE,iBAAiB,GAAG,IAAI,GACtC,OAAO,CAAC;IAAE,GAAG,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,cAAc,CAAA;CAAE,CAAC,CAyCpE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAC7B,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;GAEG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAC7B,OAAO,CAAC,OAAO,CAAC,CAuDlB;AAyBD;;;GAGG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,SAAS,EACd,OAAO,GAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B,GACL,OAAO,CAAC;IACT,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC,CAqDD;AA0BD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC"}
|
package/dist/vite-sw.js
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service Worker for Vite dev server in browser
|
|
3
|
+
* Intercepts requests to the virtual Vite server and forwards them to the main thread
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
const VITE_ORIGIN = self.location.origin;
|
|
7
|
+
const CACHE_NAME = 'vite-sw-v1';
|
|
8
|
+
|
|
9
|
+
// Map of pending requests
|
|
10
|
+
const pendingRequests = new Map();
|
|
11
|
+
let requestId = 0;
|
|
12
|
+
|
|
13
|
+
// BroadcastChannel for communication with main thread
|
|
14
|
+
const channel = new BroadcastChannel('vite-server');
|
|
15
|
+
|
|
16
|
+
// Listen for messages from main thread
|
|
17
|
+
channel.addEventListener('message', (event) => {
|
|
18
|
+
const { type, requestId: reqId, response, error } = event.data;
|
|
19
|
+
|
|
20
|
+
if (type === 'response' && pendingRequests.has(reqId)) {
|
|
21
|
+
const { resolve, reject } = pendingRequests.get(reqId);
|
|
22
|
+
pendingRequests.delete(reqId);
|
|
23
|
+
|
|
24
|
+
if (error) {
|
|
25
|
+
reject(new Error(error));
|
|
26
|
+
} else {
|
|
27
|
+
resolve(
|
|
28
|
+
new Response(response.body, {
|
|
29
|
+
status: response.status || 200,
|
|
30
|
+
statusText: response.statusText || 'OK',
|
|
31
|
+
headers: new Headers(response.headers || {}),
|
|
32
|
+
})
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
// Install event - take control immediately
|
|
39
|
+
self.addEventListener('install', (event) => {
|
|
40
|
+
event.waitUntil(self.skipWaiting());
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
// Activate event - claim all clients
|
|
44
|
+
self.addEventListener('activate', (event) => {
|
|
45
|
+
event.waitUntil(
|
|
46
|
+
Promise.all([
|
|
47
|
+
self.clients.claim(),
|
|
48
|
+
// Clear old caches
|
|
49
|
+
caches.keys().then((cacheNames) =>
|
|
50
|
+
Promise.all(
|
|
51
|
+
cacheNames
|
|
52
|
+
.filter((name) => name !== CACHE_NAME)
|
|
53
|
+
.map((name) => caches.delete(name))
|
|
54
|
+
)
|
|
55
|
+
),
|
|
56
|
+
])
|
|
57
|
+
);
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
// Fetch event - intercept requests to Vite dev server paths
|
|
61
|
+
self.addEventListener('fetch', (event) => {
|
|
62
|
+
const url = new URL(event.request.url);
|
|
63
|
+
|
|
64
|
+
// Only intercept requests to our origin
|
|
65
|
+
if (url.origin !== VITE_ORIGIN) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Check if this is a Vite-related path
|
|
70
|
+
const vitePatterns = [
|
|
71
|
+
/^\/@vite\//,
|
|
72
|
+
/^\/@id\//,
|
|
73
|
+
/^\/@fs\//,
|
|
74
|
+
/^\/node_modules\/.vite\//,
|
|
75
|
+
/^\/src\//,
|
|
76
|
+
/\.(js|ts|jsx|tsx|css|scss|sass|less|vue|svelte)(\?.*)?$/,
|
|
77
|
+
/^\/\?.*$/,
|
|
78
|
+
/^\/__vite_/,
|
|
79
|
+
];
|
|
80
|
+
|
|
81
|
+
const isViteRequest = vitePatterns.some((pattern) => pattern.test(url.pathname));
|
|
82
|
+
|
|
83
|
+
if (!isViteRequest) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
event.respondWith(handleViteRequest(event.request, url));
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
async function handleViteRequest(request, url) {
|
|
91
|
+
const reqId = ++requestId;
|
|
92
|
+
|
|
93
|
+
// Create a promise that will be resolved when we get a response
|
|
94
|
+
const responsePromise = new Promise((resolve, reject) => {
|
|
95
|
+
pendingRequests.set(reqId, { resolve, reject });
|
|
96
|
+
|
|
97
|
+
// Timeout after 30 seconds
|
|
98
|
+
setTimeout(() => {
|
|
99
|
+
if (pendingRequests.has(reqId)) {
|
|
100
|
+
pendingRequests.delete(reqId);
|
|
101
|
+
reject(new Error('Request timeout'));
|
|
102
|
+
}
|
|
103
|
+
}, 30000);
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
// Send request to main thread
|
|
107
|
+
channel.postMessage({
|
|
108
|
+
type: 'request',
|
|
109
|
+
requestId: reqId,
|
|
110
|
+
url: url.href,
|
|
111
|
+
method: request.method,
|
|
112
|
+
headers: Object.fromEntries(request.headers.entries()),
|
|
113
|
+
// Note: We can't easily clone the body in all cases, handle in main thread
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
try {
|
|
117
|
+
return await responsePromise;
|
|
118
|
+
} catch (error) {
|
|
119
|
+
console.error('[vite-sw] Request failed:', error);
|
|
120
|
+
return new Response(`Service Worker Error: ${error.message}`, {
|
|
121
|
+
status: 500,
|
|
122
|
+
headers: { 'Content-Type': 'text/plain' },
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// Handle messages from clients (pages)
|
|
128
|
+
self.addEventListener('message', (event) => {
|
|
129
|
+
if (event.data === 'skipWaiting') {
|
|
130
|
+
self.skipWaiting();
|
|
131
|
+
}
|
|
132
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-worker.d.ts","sourceRoot":"","sources":["../../src/worker/runtime-worker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WorkerRuntime - Runs code in a Web Worker for non-blocking execution
|
|
3
|
+
*
|
|
4
|
+
* This class provides the same IRuntime interface as Runtime,
|
|
5
|
+
* but executes code in a separate Web Worker thread.
|
|
6
|
+
*/
|
|
7
|
+
import type { VirtualFS } from './virtual-fs';
|
|
8
|
+
import type { IRuntime, IExecuteResult, IRuntimeOptions } from './runtime-interface';
|
|
9
|
+
/**
|
|
10
|
+
* WorkerRuntime - Executes code in a Web Worker
|
|
11
|
+
*/
|
|
12
|
+
export declare class WorkerRuntime implements IRuntime {
|
|
13
|
+
private worker;
|
|
14
|
+
private workerApi;
|
|
15
|
+
private vfs;
|
|
16
|
+
private options;
|
|
17
|
+
private initialized;
|
|
18
|
+
private changeListener;
|
|
19
|
+
private deleteListener;
|
|
20
|
+
constructor(vfs: VirtualFS, options?: IRuntimeOptions);
|
|
21
|
+
/**
|
|
22
|
+
* Initialize the worker with VFS snapshot and options
|
|
23
|
+
*/
|
|
24
|
+
private initWorker;
|
|
25
|
+
/**
|
|
26
|
+
* Set up listeners for VFS changes to sync to worker
|
|
27
|
+
*/
|
|
28
|
+
private setupVFSListeners;
|
|
29
|
+
/**
|
|
30
|
+
* Execute code in the worker
|
|
31
|
+
*/
|
|
32
|
+
execute(code: string, filename?: string): Promise<IExecuteResult>;
|
|
33
|
+
/**
|
|
34
|
+
* Run a file from the VFS in the worker
|
|
35
|
+
*/
|
|
36
|
+
runFile(filename: string): Promise<IExecuteResult>;
|
|
37
|
+
/**
|
|
38
|
+
* Clear the module cache in the worker
|
|
39
|
+
*/
|
|
40
|
+
clearCache(): void;
|
|
41
|
+
/**
|
|
42
|
+
* Get the VFS (main thread instance)
|
|
43
|
+
*/
|
|
44
|
+
getVFS(): VirtualFS;
|
|
45
|
+
/**
|
|
46
|
+
* Terminate the worker
|
|
47
|
+
*/
|
|
48
|
+
terminate(): void;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=worker-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-runtime.d.ts","sourceRoot":"","sources":["../src/worker-runtime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAe,MAAM,qBAAqB,CAAC;AAelG;;GAEG;AACH,qBAAa,aAAc,YAAW,QAAQ;IAC5C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,cAAc,CAA0D;IAChF,OAAO,CAAC,cAAc,CAAyC;gBAEnD,GAAG,EAAE,SAAS,EAAE,OAAO,GAAE,eAAoB;IAqBzD;;OAEG;YACW,UAAU;IAqBxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAKvE;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAKxD;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,MAAM,IAAI,SAAS;IAInB;;OAEG;IACH,SAAS,IAAI,IAAI;CAalB"}
|
package/package.json
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "almostnode",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Node.js in your browser. Just like that.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"node",
|
|
9
|
+
"browser",
|
|
10
|
+
"runtime",
|
|
11
|
+
"virtual-filesystem",
|
|
12
|
+
"sandbox",
|
|
13
|
+
"vite",
|
|
14
|
+
"nextjs",
|
|
15
|
+
"hmr",
|
|
16
|
+
"typescript"
|
|
17
|
+
],
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "https://github.com/user/almostnode.git"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://github.com/user/almostnode#readme",
|
|
23
|
+
"bugs": {
|
|
24
|
+
"url": "https://github.com/user/almostnode/issues"
|
|
25
|
+
},
|
|
26
|
+
"author": "",
|
|
27
|
+
"engines": {
|
|
28
|
+
"node": ">=20.0.0"
|
|
29
|
+
},
|
|
30
|
+
"main": "./dist/index.cjs",
|
|
31
|
+
"module": "./dist/index.mjs",
|
|
32
|
+
"types": "./dist/index.d.ts",
|
|
33
|
+
"exports": {
|
|
34
|
+
".": {
|
|
35
|
+
"import": {
|
|
36
|
+
"types": "./dist/index.d.ts",
|
|
37
|
+
"default": "./dist/index.mjs"
|
|
38
|
+
},
|
|
39
|
+
"require": {
|
|
40
|
+
"types": "./dist/index.d.ts",
|
|
41
|
+
"default": "./dist/index.cjs"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"files": [
|
|
46
|
+
"src",
|
|
47
|
+
"dist"
|
|
48
|
+
],
|
|
49
|
+
"sideEffects": false,
|
|
50
|
+
"scripts": {
|
|
51
|
+
"dev": "vite",
|
|
52
|
+
"build": "vite build",
|
|
53
|
+
"build:lib": "vite build --config vite.lib.config.js",
|
|
54
|
+
"build:types": "tsc --project tsconfig.build.json",
|
|
55
|
+
"build:publish": "npm run build:lib && npm run build:types",
|
|
56
|
+
"preview": "vite preview",
|
|
57
|
+
"test": "vitest",
|
|
58
|
+
"test:run": "vitest run",
|
|
59
|
+
"test:e2e": "playwright test",
|
|
60
|
+
"test:e2e:ui": "playwright test --ui",
|
|
61
|
+
"test:e2e:debug": "playwright test --debug",
|
|
62
|
+
"sandbox": "vite --port 3002 --config vite.sandbox.config.js",
|
|
63
|
+
"sandbox:demo": "echo 'Run in two terminals:\\n Terminal 1: npm run sandbox (serves sandbox on port 3002)\\n Terminal 2: npm run dev (serves main app on port 5173)\\nThen open: http://localhost:5173/examples/sandbox-next-demo.html'",
|
|
64
|
+
"prepublishOnly": "npm run test:run && npm run build:publish"
|
|
65
|
+
},
|
|
66
|
+
"dependencies": {
|
|
67
|
+
"brotli": "^1.3.3",
|
|
68
|
+
"brotli-wasm": "^3.0.1",
|
|
69
|
+
"comlink": "^4.4.2",
|
|
70
|
+
"just-bash": "^2.7.0",
|
|
71
|
+
"pako": "^2.1.0",
|
|
72
|
+
"resolve.exports": "^2.0.3",
|
|
73
|
+
"vite-plugin-top-level-await": "^1.6.0",
|
|
74
|
+
"vite-plugin-wasm": "^3.5.0"
|
|
75
|
+
},
|
|
76
|
+
"devDependencies": {
|
|
77
|
+
"@playwright/test": "^1.58.0",
|
|
78
|
+
"@types/node": "^25.0.10",
|
|
79
|
+
"@types/pako": "^2.0.4",
|
|
80
|
+
"jsdom": "^27.4.0",
|
|
81
|
+
"typescript": "^5.9.3",
|
|
82
|
+
"vite": "^5.4.0",
|
|
83
|
+
"vitest": "^4.0.18"
|
|
84
|
+
}
|
|
85
|
+
}
|