@capsule-run/sdk 0.4.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -2
- package/dist/app.d.ts +1 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- 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/dist/task.d.ts +17 -1
- package/dist/task.d.ts.map +1 -1
- package/dist/task.js +26 -1
- package/dist/task.js.map +1 -1
- package/package.json +18 -1
- package/src/app.ts +1 -0
- package/src/index.ts +4 -1
- 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/src/task.ts +53 -9
- package/dist/files.d.ts +0 -46
- package/dist/files.d.ts.map +0 -1
- package/dist/files.js.map +0 -1
- package/src/files.ts +0 -217
package/README.md
CHANGED
|
@@ -42,7 +42,6 @@ Run it:
|
|
|
42
42
|
capsule run hello.ts
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
> [!TIP]
|
|
46
45
|
> Use `--verbose` to display real-time task execution details.
|
|
47
46
|
|
|
48
47
|
## How It Works
|
|
@@ -71,7 +70,6 @@ export const main = task({
|
|
|
71
70
|
});
|
|
72
71
|
```
|
|
73
72
|
|
|
74
|
-
> [!NOTE]
|
|
75
73
|
> The runtime requires a task named `"main"` as the entry point.
|
|
76
74
|
|
|
77
75
|
When you run `capsule run main.ts`, your code is compiled into a WebAssembly module and executed in a dedicated sandbox.
|
|
@@ -115,6 +113,7 @@ Every task returns a structured JSON envelope containing both the result and exe
|
|
|
115
113
|
| `timeout` | Maximum execution time | `string` or `number` | unlimited | `"30s"`, `"5m"` |
|
|
116
114
|
| `maxRetries` | Retry attempts on failure | `number` | `0` | `3` |
|
|
117
115
|
| `allowedFiles` | Folders accessible in the sandbox | `string[]` | `[]` | `["./data", "./output"]` |
|
|
116
|
+
| `envVariables` | Environment variables accessible in the sandbox | `string[]` | `[]` | `["API_KEY"]` |
|
|
118
117
|
|
|
119
118
|
### Compute Levels
|
|
120
119
|
|
|
@@ -171,6 +170,27 @@ Available methods:
|
|
|
171
170
|
- `files.list(path)` — List directory contents
|
|
172
171
|
- `files.exists(path)` — Check if file exists
|
|
173
172
|
|
|
173
|
+
### Environment Variables
|
|
174
|
+
|
|
175
|
+
Tasks can access environment variables to read configuration, API keys, or other runtime settings. Use the `env` API provided by the SDK:
|
|
176
|
+
|
|
177
|
+
```typescript
|
|
178
|
+
import { task, env } from "@capsule-run/sdk";
|
|
179
|
+
|
|
180
|
+
export const main = task({
|
|
181
|
+
name: "main",
|
|
182
|
+
envVariables: ["API_KEY"]
|
|
183
|
+
}, () => {
|
|
184
|
+
const apiKey = env.get("API_KEY");
|
|
185
|
+
return { apiKeySet: apiKey !== undefined };
|
|
186
|
+
});
|
|
187
|
+
```
|
|
188
|
+
|
|
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
|
+
|
|
174
194
|
## Compatibility
|
|
175
195
|
|
|
176
196
|
✅ **Supported:**
|
package/dist/app.d.ts
CHANGED
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;IACzD,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAID;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAC5D,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,UAAU,GACjB,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,SAAS,CAE3E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAElE;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAEvC;AAQD;;;;;GAKG;AACH,qBAAa,UAAU;IACrB;;;OAGG;IACG,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAuC7C;AAED,eAAO,MAAM,OAAO,YAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;IACzD,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAID;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAC5D,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,UAAU,GACjB,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,SAAS,CAE3E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAElE;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAEvC;AAQD;;;;;GAKG;AACH,qBAAa,UAAU;IACrB;;;OAGG;IACG,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAuC7C;AAED,eAAO,MAAM,OAAO,YAAmB,CAAC"}
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiBH,MAAM,KAAK,GAA+B,IAAI,GAAG,EAAE,CAAC;AAEpD;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAY,EACZ,IAAO,EACP,MAAkB;IAElB,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AAClC,CAAC;AAQD;;;;;GAKG;AACH,MAAM,OAAO,UAAU;IACrB;;;OAGG;IACH,KAAK,CAAC,GAAG,CAAC,QAAgB;QACxB,IAAI,CAAC;YACH,MAAM,IAAI,GAAa,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;YAEjC,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEjC,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACrC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;YAED,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;gBAChD,IAAI,aAAa,EAAE,CAAC;oBAClB,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;YAED,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,uDAAuD,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3F,CAAC;YAED,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;YAEzC,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;gBAC9B,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC;gBACjC,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,IAAI,IAAI,EAAE,CAAC,CAAC;YACzD,CAAC;YAED,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,QAAQ,GAAG,CAAC,YAAY,KAAK;gBACjC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE;gBAClC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACd,MAAM,QAAQ,CAAC;QACjB,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,6 +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
|
|
18
|
+
export { default as fs } from "./polyfills/fs.js";
|
|
19
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";
|
|
20
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,6 +15,9 @@
|
|
|
15
15
|
*/
|
|
16
16
|
export { task } from "./task.js";
|
|
17
17
|
export { TaskRunner, exports } from "./app.js";
|
|
18
|
-
export
|
|
18
|
+
export { default as fs } from "./polyfills/fs.js";
|
|
19
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";
|
|
20
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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"}
|