@capsule-run/sdk 0.4.2 → 0.5.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.
- package/README.md +13 -24
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/polyfills/buffer.d.ts +8 -0
- package/dist/polyfills/buffer.d.ts.map +1 -0
- package/dist/polyfills/buffer.js +9 -0
- package/dist/polyfills/buffer.js.map +1 -0
- package/dist/polyfills/events.d.ts +8 -0
- package/dist/polyfills/events.d.ts.map +1 -0
- package/dist/polyfills/events.js +9 -0
- package/dist/polyfills/events.js.map +1 -0
- package/dist/polyfills/fs-promises.d.ts +7 -0
- package/dist/polyfills/fs-promises.d.ts.map +1 -0
- package/dist/polyfills/fs-promises.js +7 -0
- package/dist/polyfills/fs-promises.js.map +1 -0
- package/dist/polyfills/fs.d.ts +82 -0
- package/dist/polyfills/fs.d.ts.map +1 -0
- package/dist/{files.js → polyfills/fs.js} +100 -20
- package/dist/polyfills/fs.js.map +1 -0
- package/dist/polyfills/os.d.ts +150 -0
- package/dist/polyfills/os.d.ts.map +1 -0
- package/dist/polyfills/os.js +151 -0
- package/dist/polyfills/os.js.map +1 -0
- package/dist/polyfills/path.d.ts +8 -0
- package/dist/polyfills/path.d.ts.map +1 -0
- package/dist/polyfills/path.js +8 -0
- package/dist/polyfills/path.js.map +1 -0
- package/dist/polyfills/process.d.ts +109 -0
- package/dist/polyfills/process.d.ts.map +1 -0
- package/dist/polyfills/process.js +224 -0
- package/dist/polyfills/process.js.map +1 -0
- package/dist/polyfills/stream-web.d.ts +74 -0
- package/dist/polyfills/stream-web.d.ts.map +1 -0
- package/dist/polyfills/stream-web.js +23 -0
- package/dist/polyfills/stream-web.js.map +1 -0
- package/dist/polyfills/stream.d.ts +16 -0
- package/dist/polyfills/stream.d.ts.map +1 -0
- package/dist/polyfills/stream.js +16 -0
- package/dist/polyfills/stream.js.map +1 -0
- package/dist/polyfills/url.d.ts +47 -0
- package/dist/polyfills/url.d.ts.map +1 -0
- package/dist/polyfills/url.js +68 -0
- package/dist/polyfills/url.js.map +1 -0
- package/package.json +18 -1
- package/src/index.ts +4 -2
- package/src/polyfills/buffer.ts +11 -0
- package/src/polyfills/events.ts +11 -0
- package/src/polyfills/fs-promises.ts +7 -0
- package/src/polyfills/fs.ts +336 -0
- package/src/polyfills/os.ts +222 -0
- package/src/polyfills/path.ts +21 -0
- package/src/polyfills/process.ts +286 -0
- package/src/polyfills/stream-web.ts +24 -0
- package/src/polyfills/stream.ts +28 -0
- package/src/polyfills/url.ts +73 -0
- package/dist/env.d.ts +0 -22
- package/dist/env.d.ts.map +0 -1
- package/dist/env.js +0 -61
- package/dist/env.js.map +0 -1
- package/dist/files.d.ts +0 -46
- package/dist/files.d.ts.map +0 -1
- package/dist/files.js.map +0 -1
- package/src/env.ts +0 -67
- package/src/files.ts +0 -217
package/README.md
CHANGED
|
@@ -144,60 +144,49 @@ Task-level options always override these defaults.
|
|
|
144
144
|
|
|
145
145
|
Tasks can read and write files within directories specified in `allowedFiles`. Any attempt to access files outside these directories is not possible.
|
|
146
146
|
|
|
147
|
-
Node.js built-ins
|
|
147
|
+
Common Node.js built-ins are available. Use the standard `fs` module:
|
|
148
148
|
|
|
149
149
|
```typescript
|
|
150
|
-
import { task
|
|
150
|
+
import { task } from "@capsule-run/sdk";
|
|
151
|
+
import fs from "fs/promises";
|
|
151
152
|
|
|
152
153
|
export const restrictedWriter = task({
|
|
153
154
|
name: "restricted_writer",
|
|
154
155
|
allowedFiles: ["./output"]
|
|
155
156
|
}, async () => {
|
|
156
|
-
await
|
|
157
|
+
await fs.writeFile("./output/result.txt", "result");
|
|
157
158
|
});
|
|
158
159
|
|
|
159
|
-
export const main = task({ name: "main" }, async () => {
|
|
160
|
+
export const main = task({ name: "main", allowedFiles: ["./data"] }, async () => {
|
|
160
161
|
await restrictedWriter();
|
|
161
|
-
return await
|
|
162
|
+
return await fs.readFile("./data/input.txt", "utf8");
|
|
162
163
|
});
|
|
163
164
|
```
|
|
164
165
|
|
|
165
|
-
Available methods:
|
|
166
|
-
- `files.readText(path)` — Read file as string
|
|
167
|
-
- `files.readBytes(path)` — Read file as `Uint8Array`
|
|
168
|
-
- `files.writeText(path, content)` — Write string to file
|
|
169
|
-
- `files.writeBytes(path, data)` — Write bytes to file
|
|
170
|
-
- `files.list(path)` — List directory contents
|
|
171
|
-
- `files.exists(path)` — Check if file exists
|
|
172
|
-
|
|
173
166
|
### Environment Variables
|
|
174
167
|
|
|
175
|
-
Tasks can access environment variables to read configuration, API keys, or other runtime settings. Use the `env
|
|
168
|
+
Tasks can access environment variables to read configuration, API keys, or other runtime settings. Use the standard `process.env`:
|
|
176
169
|
|
|
177
170
|
```typescript
|
|
178
|
-
import { task
|
|
171
|
+
import { task } from "@capsule-run/sdk";
|
|
179
172
|
|
|
180
173
|
export const main = task({
|
|
181
174
|
name: "main",
|
|
182
175
|
envVariables: ["API_KEY"]
|
|
183
176
|
}, () => {
|
|
184
|
-
const apiKey = env.
|
|
177
|
+
const apiKey = process.env.API_KEY;
|
|
185
178
|
return { apiKeySet: apiKey !== undefined };
|
|
186
179
|
});
|
|
187
180
|
```
|
|
188
181
|
|
|
189
|
-
Available methods:
|
|
190
|
-
- `env.get(key)` — Get a specific environment variable (returns `undefined` if not found)
|
|
191
|
-
- `env.has(key)` — Check if an environment variable exists
|
|
192
|
-
- `env.getAll()` — Get all environment variables as an object
|
|
193
|
-
|
|
194
182
|
## Compatibility
|
|
195
183
|
|
|
196
184
|
✅ **Supported:**
|
|
197
|
-
- npm packages and ES modules
|
|
185
|
+
- npm packages and ES modules
|
|
186
|
+
- Common Node.js built-ins. If you have any trouble with a built-in do not hesitate to open an issue.
|
|
198
187
|
|
|
199
|
-
⚠️ **Not
|
|
200
|
-
- Node.js
|
|
188
|
+
⚠️ **Not supported:**
|
|
189
|
+
- Native Node.js addons (C++ bindings)
|
|
201
190
|
|
|
202
191
|
## Links
|
|
203
192
|
|
package/dist/index.d.ts
CHANGED
|
@@ -15,7 +15,9 @@
|
|
|
15
15
|
*/
|
|
16
16
|
export { task, type TaskOptions } from "./task.js";
|
|
17
17
|
export { TaskRunner, exports, type TaskConfig } from "./app.js";
|
|
18
|
-
export
|
|
19
|
-
export * as env from "./env.js";
|
|
18
|
+
export { default as fs } from "./polyfills/fs.js";
|
|
20
19
|
export { isWasmMode } from "./hostApi.js";
|
|
20
|
+
export { default as path } from "./polyfills/path.js";
|
|
21
|
+
export { default as os } from "./polyfills/os.js";
|
|
22
|
+
export { default as process } from "./polyfills/process.js";
|
|
21
23
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,9 @@
|
|
|
15
15
|
*/
|
|
16
16
|
export { task } from "./task.js";
|
|
17
17
|
export { TaskRunner, exports } from "./app.js";
|
|
18
|
-
export
|
|
19
|
-
export * as env from "./env.js";
|
|
18
|
+
export { default as fs } from "./polyfills/fs.js";
|
|
20
19
|
export { isWasmMode } from "./hostApi.js";
|
|
20
|
+
export { default as path } from "./polyfills/path.js";
|
|
21
|
+
export { default as os } from "./polyfills/os.js";
|
|
22
|
+
export { default as process } from "./polyfills/process.js";
|
|
21
23
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAoB,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAmB,MAAM,UAAU,CAAC;AAChE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAoB,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAmB,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Buffer polyfill for WASI environment
|
|
3
|
+
* Provides Node.js-compatible Buffer class using the buffer package
|
|
4
|
+
*/
|
|
5
|
+
import { Buffer as BufferPolyfill } from 'buffer';
|
|
6
|
+
export declare const Buffer: BufferConstructor;
|
|
7
|
+
export default BufferPolyfill;
|
|
8
|
+
//# sourceMappingURL=buffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../../src/polyfills/buffer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,QAAQ,CAAC;AAIlD,eAAO,MAAM,MAAM,mBAAiB,CAAC;AACrC,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Buffer polyfill for WASI environment
|
|
3
|
+
* Provides Node.js-compatible Buffer class using the buffer package
|
|
4
|
+
*/
|
|
5
|
+
import { Buffer as BufferPolyfill } from 'buffer';
|
|
6
|
+
globalThis.Buffer = BufferPolyfill;
|
|
7
|
+
export const Buffer = BufferPolyfill;
|
|
8
|
+
export default BufferPolyfill;
|
|
9
|
+
//# sourceMappingURL=buffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buffer.js","sourceRoot":"","sources":["../../src/polyfills/buffer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEjD,UAAkB,CAAC,MAAM,GAAG,cAAc,CAAC;AAE5C,MAAM,CAAC,MAAM,MAAM,GAAG,cAAc,CAAC;AACrC,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/polyfills/events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,YAAY,MAAM,QAAQ,CAAC;AAIlC,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Events polyfill for WASI environment
|
|
3
|
+
* Provides Node.js-compatible EventEmitter using the events package
|
|
4
|
+
*/
|
|
5
|
+
import EventEmitter from 'events';
|
|
6
|
+
globalThis.EventEmitter = EventEmitter;
|
|
7
|
+
export { EventEmitter };
|
|
8
|
+
export default EventEmitter;
|
|
9
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/polyfills/events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,YAAY,MAAM,QAAQ,CAAC;AAEjC,UAAkB,CAAC,YAAY,GAAG,YAAY,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs-promises.d.ts","sourceRoot":"","sources":["../../src/polyfills/fs-promises.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,SAAS,CAAC;AAC9C,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs-promises.js","sourceRoot":"","sources":["../../src/polyfills/fs-promises.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,SAAS,CAAC;AAC9C,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node.js fs polyfill for WASI environment
|
|
3
|
+
* Provides both Node.js fs API
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Read a file as text.
|
|
7
|
+
*/
|
|
8
|
+
export declare function readText(path: string): Promise<string>;
|
|
9
|
+
/**
|
|
10
|
+
* Read a file as bytes.
|
|
11
|
+
*/
|
|
12
|
+
export declare function readBytes(path: string): Promise<Uint8Array>;
|
|
13
|
+
/**
|
|
14
|
+
* Write text content to a file.
|
|
15
|
+
*/
|
|
16
|
+
export declare function writeText(path: string, content: string): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Write bytes to a file.
|
|
19
|
+
*/
|
|
20
|
+
export declare function writeBytes(path: string, data: Uint8Array): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* List files/directories at a path.
|
|
23
|
+
*/
|
|
24
|
+
export declare function list(path?: string): Promise<string[]>;
|
|
25
|
+
/**
|
|
26
|
+
* Check if a file or directory exists.
|
|
27
|
+
*/
|
|
28
|
+
export declare function exists(path: string): Promise<boolean>;
|
|
29
|
+
type Encoding = 'utf8' | 'utf-8' | 'buffer' | null | undefined;
|
|
30
|
+
interface ReadFileOptions {
|
|
31
|
+
encoding?: Encoding;
|
|
32
|
+
}
|
|
33
|
+
interface WriteFileOptions {
|
|
34
|
+
encoding?: Encoding;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Read file contents (async/callback style)
|
|
38
|
+
*/
|
|
39
|
+
export declare function readFile(path: string, optionsOrCallback: ReadFileOptions | Encoding | ((err: Error | null, data?: string | Uint8Array) => void), callback?: (err: Error | null, data?: string | Uint8Array) => void): void;
|
|
40
|
+
/**
|
|
41
|
+
* Write file contents (async/callback style)
|
|
42
|
+
*/
|
|
43
|
+
export declare function writeFile(path: string, data: string | Uint8Array, optionsOrCallback: WriteFileOptions | Encoding | ((err: Error | null) => void), callback?: (err: Error | null) => void): void;
|
|
44
|
+
/**
|
|
45
|
+
* Read directory contents (async/callback style)
|
|
46
|
+
*/
|
|
47
|
+
export declare function readdir(path: string, optionsOrCallback: any | ((err: Error | null, files?: string[]) => void), callback?: (err: Error | null, files?: string[]) => void): void;
|
|
48
|
+
/**
|
|
49
|
+
* Check if file/directory exists (sync-style, limited in WASM)
|
|
50
|
+
*/
|
|
51
|
+
export declare function existsSync(_path: string): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Promises API
|
|
54
|
+
*/
|
|
55
|
+
export declare const promises: {
|
|
56
|
+
readFile(path: string, options?: ReadFileOptions | Encoding): Promise<string | Uint8Array>;
|
|
57
|
+
writeFile(path: string, data: string | Uint8Array): Promise<void>;
|
|
58
|
+
readdir(path: string): Promise<string[]>;
|
|
59
|
+
access(path: string): Promise<void>;
|
|
60
|
+
stat(path: string): Promise<{
|
|
61
|
+
isFile: () => boolean;
|
|
62
|
+
isDirectory: () => boolean;
|
|
63
|
+
}>;
|
|
64
|
+
};
|
|
65
|
+
declare const fs: {
|
|
66
|
+
readFile: typeof readFile;
|
|
67
|
+
writeFile: typeof writeFile;
|
|
68
|
+
readdir: typeof readdir;
|
|
69
|
+
existsSync: typeof existsSync;
|
|
70
|
+
promises: {
|
|
71
|
+
readFile(path: string, options?: ReadFileOptions | Encoding): Promise<string | Uint8Array>;
|
|
72
|
+
writeFile(path: string, data: string | Uint8Array): Promise<void>;
|
|
73
|
+
readdir(path: string): Promise<string[]>;
|
|
74
|
+
access(path: string): Promise<void>;
|
|
75
|
+
stat(path: string): Promise<{
|
|
76
|
+
isFile: () => boolean;
|
|
77
|
+
isDirectory: () => boolean;
|
|
78
|
+
}>;
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
export default fs;
|
|
82
|
+
//# sourceMappingURL=fs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/polyfills/fs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Node.js fs polyfill for WASI environment
|
|
3
|
+
* Provides both Node.js fs API
|
|
3
4
|
*/
|
|
4
5
|
function getFsBindings() {
|
|
5
6
|
try {
|
|
@@ -55,9 +56,6 @@ function resolvePath(path) {
|
|
|
55
56
|
}
|
|
56
57
|
/**
|
|
57
58
|
* Read a file as text.
|
|
58
|
-
*
|
|
59
|
-
* @param path - The path to read.
|
|
60
|
-
* @returns A promise that resolves to a string containing the file contents.
|
|
61
59
|
*/
|
|
62
60
|
export async function readText(path) {
|
|
63
61
|
const bytes = await readBytes(path);
|
|
@@ -65,9 +63,6 @@ export async function readText(path) {
|
|
|
65
63
|
}
|
|
66
64
|
/**
|
|
67
65
|
* Read a file as bytes.
|
|
68
|
-
*
|
|
69
|
-
* @param path - The path to read.
|
|
70
|
-
* @returns A promise that resolves to a Uint8Array containing the file contents.
|
|
71
66
|
*/
|
|
72
67
|
export async function readBytes(path) {
|
|
73
68
|
const resolved = resolvePath(path);
|
|
@@ -89,9 +84,6 @@ export async function readBytes(path) {
|
|
|
89
84
|
}
|
|
90
85
|
/**
|
|
91
86
|
* Write text content to a file.
|
|
92
|
-
*
|
|
93
|
-
* @param path - The path to write.
|
|
94
|
-
* @param content - The text content to write.
|
|
95
87
|
*/
|
|
96
88
|
export async function writeText(path, content) {
|
|
97
89
|
const bytes = new TextEncoder().encode(content);
|
|
@@ -99,9 +91,6 @@ export async function writeText(path, content) {
|
|
|
99
91
|
}
|
|
100
92
|
/**
|
|
101
93
|
* Write bytes to a file.
|
|
102
|
-
*
|
|
103
|
-
* @param path - The path to write.
|
|
104
|
-
* @param data - The bytes to write.
|
|
105
94
|
*/
|
|
106
95
|
export async function writeBytes(path, data) {
|
|
107
96
|
const resolved = resolvePath(path);
|
|
@@ -121,9 +110,6 @@ export async function writeBytes(path, data) {
|
|
|
121
110
|
}
|
|
122
111
|
/**
|
|
123
112
|
* List files/directories at a path.
|
|
124
|
-
*
|
|
125
|
-
* @param path - The path to list.
|
|
126
|
-
* @returns A promise that resolves to an array of strings representing the files and directories at the specified path.
|
|
127
113
|
*/
|
|
128
114
|
export async function list(path = ".") {
|
|
129
115
|
const resolved = resolvePath(path);
|
|
@@ -154,9 +140,6 @@ export async function list(path = ".") {
|
|
|
154
140
|
}
|
|
155
141
|
/**
|
|
156
142
|
* Check if a file or directory exists.
|
|
157
|
-
*
|
|
158
|
-
* @param path - The path to check.
|
|
159
|
-
* @returns A promise that resolves to a boolean indicating whether the file or directory exists.
|
|
160
143
|
*/
|
|
161
144
|
export async function exists(path) {
|
|
162
145
|
const resolved = resolvePath(path);
|
|
@@ -174,4 +157,101 @@ export async function exists(path) {
|
|
|
174
157
|
return false;
|
|
175
158
|
}
|
|
176
159
|
}
|
|
177
|
-
|
|
160
|
+
/**
|
|
161
|
+
* Read file contents (async/callback style)
|
|
162
|
+
*/
|
|
163
|
+
export function readFile(path, optionsOrCallback, callback) {
|
|
164
|
+
let options = {};
|
|
165
|
+
let cb;
|
|
166
|
+
if (typeof optionsOrCallback === 'function') {
|
|
167
|
+
cb = optionsOrCallback;
|
|
168
|
+
}
|
|
169
|
+
else if (typeof optionsOrCallback === 'string') {
|
|
170
|
+
options = { encoding: optionsOrCallback };
|
|
171
|
+
cb = callback;
|
|
172
|
+
}
|
|
173
|
+
else if (optionsOrCallback) {
|
|
174
|
+
options = optionsOrCallback;
|
|
175
|
+
cb = callback;
|
|
176
|
+
}
|
|
177
|
+
const encoding = options.encoding;
|
|
178
|
+
const isText = encoding === 'utf8' || encoding === 'utf-8';
|
|
179
|
+
const promise = isText ? readText(path) : readBytes(path);
|
|
180
|
+
promise
|
|
181
|
+
.then((data) => cb?.(null, data))
|
|
182
|
+
.catch((err) => cb?.(err instanceof Error ? err : new Error(String(err))));
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Write file contents (async/callback style)
|
|
186
|
+
*/
|
|
187
|
+
export function writeFile(path, data, optionsOrCallback, callback) {
|
|
188
|
+
const cb = typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;
|
|
189
|
+
const promise = typeof data === 'string'
|
|
190
|
+
? writeText(path, data)
|
|
191
|
+
: writeBytes(path, data);
|
|
192
|
+
promise
|
|
193
|
+
.then(() => cb?.(null))
|
|
194
|
+
.catch((err) => cb?.(err instanceof Error ? err : new Error(String(err))));
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Read directory contents (async/callback style)
|
|
198
|
+
*/
|
|
199
|
+
export function readdir(path, optionsOrCallback, callback) {
|
|
200
|
+
const cb = typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;
|
|
201
|
+
list(path)
|
|
202
|
+
.then((files) => cb?.(null, files))
|
|
203
|
+
.catch((err) => cb?.(err instanceof Error ? err : new Error(String(err))));
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Check if file/directory exists (sync-style, limited in WASM)
|
|
207
|
+
*/
|
|
208
|
+
export function existsSync(_path) {
|
|
209
|
+
console.warn('fs.existsSync: Cannot implement true sync in WASM. Use fs.access instead.');
|
|
210
|
+
return false;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Promises API
|
|
214
|
+
*/
|
|
215
|
+
export const promises = {
|
|
216
|
+
async readFile(path, options) {
|
|
217
|
+
const encoding = typeof options === 'string' ? options : options?.encoding;
|
|
218
|
+
const isText = encoding === 'utf8' || encoding === 'utf-8';
|
|
219
|
+
return isText ? readText(path) : readBytes(path);
|
|
220
|
+
},
|
|
221
|
+
async writeFile(path, data) {
|
|
222
|
+
if (typeof data === 'string') {
|
|
223
|
+
await writeText(path, data);
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
await writeBytes(path, data);
|
|
227
|
+
}
|
|
228
|
+
},
|
|
229
|
+
async readdir(path) {
|
|
230
|
+
return list(path);
|
|
231
|
+
},
|
|
232
|
+
async access(path) {
|
|
233
|
+
const fileExists = await exists(path);
|
|
234
|
+
if (!fileExists) {
|
|
235
|
+
throw new Error(`ENOENT: no such file or directory, access '${path}'`);
|
|
236
|
+
}
|
|
237
|
+
},
|
|
238
|
+
async stat(path) {
|
|
239
|
+
const fileExists = await exists(path);
|
|
240
|
+
if (!fileExists) {
|
|
241
|
+
throw new Error(`ENOENT: no such file or directory, stat '${path}'`);
|
|
242
|
+
}
|
|
243
|
+
return {
|
|
244
|
+
isFile: () => true,
|
|
245
|
+
isDirectory: () => false,
|
|
246
|
+
};
|
|
247
|
+
},
|
|
248
|
+
};
|
|
249
|
+
const fs = {
|
|
250
|
+
readFile,
|
|
251
|
+
writeFile,
|
|
252
|
+
readdir,
|
|
253
|
+
existsSync,
|
|
254
|
+
promises,
|
|
255
|
+
};
|
|
256
|
+
export default fs;
|
|
257
|
+
//# sourceMappingURL=fs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/polyfills/fs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OS polyfill
|
|
3
|
+
* Provides Node.js-compatible os object
|
|
4
|
+
*/
|
|
5
|
+
interface CpuInfo {
|
|
6
|
+
model: string;
|
|
7
|
+
speed: number;
|
|
8
|
+
times: {
|
|
9
|
+
user: number;
|
|
10
|
+
nice: number;
|
|
11
|
+
sys: number;
|
|
12
|
+
idle: number;
|
|
13
|
+
irq: number;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
interface NetworkInterface {
|
|
17
|
+
address: string;
|
|
18
|
+
netmask: string;
|
|
19
|
+
family: string;
|
|
20
|
+
mac: string;
|
|
21
|
+
internal: boolean;
|
|
22
|
+
cidr: string | null;
|
|
23
|
+
}
|
|
24
|
+
declare const os: {
|
|
25
|
+
/**
|
|
26
|
+
* Returns the operating system platform
|
|
27
|
+
* WASI is POSIX-like, so we return 'linux'
|
|
28
|
+
*/
|
|
29
|
+
platform(): "aix" | "darwin" | "freebsd" | "linux" | "openbsd" | "sunos" | "win32";
|
|
30
|
+
/**
|
|
31
|
+
* Returns the CPU architecture
|
|
32
|
+
* WASM runs on wasm32 architecture
|
|
33
|
+
*/
|
|
34
|
+
arch(): string;
|
|
35
|
+
/**
|
|
36
|
+
* Returns the operating system's default directory for temporary files
|
|
37
|
+
*/
|
|
38
|
+
tmpdir(): string;
|
|
39
|
+
/**
|
|
40
|
+
* Returns the home directory of the current user
|
|
41
|
+
*/
|
|
42
|
+
homedir(): string;
|
|
43
|
+
/**
|
|
44
|
+
* Returns the system uptime in seconds
|
|
45
|
+
* Not available in WASI, returns 0
|
|
46
|
+
*/
|
|
47
|
+
uptime(): number;
|
|
48
|
+
/**
|
|
49
|
+
* Returns the amount of free system memory in bytes
|
|
50
|
+
* Not available in WASI, returns 0
|
|
51
|
+
*/
|
|
52
|
+
freemem(): number;
|
|
53
|
+
/**
|
|
54
|
+
* Returns the total amount of system memory in bytes
|
|
55
|
+
* Not available in WASI, returns 0
|
|
56
|
+
*/
|
|
57
|
+
totalmem(): number;
|
|
58
|
+
/**
|
|
59
|
+
* Returns an array of objects containing information about each CPU/core
|
|
60
|
+
* Not available in WASI, returns empty array
|
|
61
|
+
*/
|
|
62
|
+
cpus(): CpuInfo[];
|
|
63
|
+
/**
|
|
64
|
+
* Returns the hostname of the operating system
|
|
65
|
+
*/
|
|
66
|
+
hostname(): string;
|
|
67
|
+
/**
|
|
68
|
+
* Returns the operating system release
|
|
69
|
+
*/
|
|
70
|
+
release(): string;
|
|
71
|
+
/**
|
|
72
|
+
* Returns the operating system type
|
|
73
|
+
*/
|
|
74
|
+
type(): string;
|
|
75
|
+
/**
|
|
76
|
+
* Returns the endianness of the CPU
|
|
77
|
+
* WASM is little-endian
|
|
78
|
+
*/
|
|
79
|
+
endianness(): "BE" | "LE";
|
|
80
|
+
/**
|
|
81
|
+
* Returns an object containing network interfaces
|
|
82
|
+
* Not available in WASI, returns empty object
|
|
83
|
+
*/
|
|
84
|
+
networkInterfaces(): {
|
|
85
|
+
[index: string]: NetworkInterface[];
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Returns the operating system's default directory for user data
|
|
89
|
+
*/
|
|
90
|
+
userInfo(options?: {
|
|
91
|
+
encoding: "buffer";
|
|
92
|
+
}): {
|
|
93
|
+
username: string;
|
|
94
|
+
uid: number;
|
|
95
|
+
gid: number;
|
|
96
|
+
shell: string | null;
|
|
97
|
+
homedir: string;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Returns an array of objects containing information about the load average
|
|
101
|
+
* Not available in WASI, returns [0, 0, 0]
|
|
102
|
+
*/
|
|
103
|
+
loadavg(): number[];
|
|
104
|
+
/**
|
|
105
|
+
* Returns the operating system's version
|
|
106
|
+
*/
|
|
107
|
+
version(): string;
|
|
108
|
+
/**
|
|
109
|
+
* Returns the machine type
|
|
110
|
+
*/
|
|
111
|
+
machine(): string;
|
|
112
|
+
/**
|
|
113
|
+
* Platform-specific path segment separator
|
|
114
|
+
*/
|
|
115
|
+
readonly EOL: string;
|
|
116
|
+
/**
|
|
117
|
+
* Platform-specific constants
|
|
118
|
+
*/
|
|
119
|
+
constants: {
|
|
120
|
+
signals: {};
|
|
121
|
+
errno: {};
|
|
122
|
+
priority: {};
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Returns the number of logical CPU cores
|
|
126
|
+
* Not available in WASI, returns 1
|
|
127
|
+
*/
|
|
128
|
+
availableParallelism(): number;
|
|
129
|
+
/**
|
|
130
|
+
* Returns the string path of the current user's home directory
|
|
131
|
+
*/
|
|
132
|
+
devNull: string;
|
|
133
|
+
};
|
|
134
|
+
export default os;
|
|
135
|
+
export declare const platform: () => "aix" | "darwin" | "freebsd" | "linux" | "openbsd" | "sunos" | "win32", arch: () => string, tmpdir: () => string, homedir: () => string, uptime: () => number, freemem: () => number, totalmem: () => number, cpus: () => CpuInfo[], hostname: () => string, release: () => string, type: () => string, endianness: () => "BE" | "LE", networkInterfaces: () => {
|
|
136
|
+
[index: string]: NetworkInterface[];
|
|
137
|
+
}, userInfo: (options?: {
|
|
138
|
+
encoding: "buffer";
|
|
139
|
+
}) => {
|
|
140
|
+
username: string;
|
|
141
|
+
uid: number;
|
|
142
|
+
gid: number;
|
|
143
|
+
shell: string | null;
|
|
144
|
+
homedir: string;
|
|
145
|
+
}, loadavg: () => number[], version: () => string, machine: () => string, EOL: string, constants: {
|
|
146
|
+
signals: {};
|
|
147
|
+
errno: {};
|
|
148
|
+
priority: {};
|
|
149
|
+
}, availableParallelism: () => number, devNull: string;
|
|
150
|
+
//# sourceMappingURL=os.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"os.d.ts","sourceRoot":"","sources":["../../src/polyfills/os.ts"],"names":[],"mappings":"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"}
|