@capsule-run/sdk 0.7.0 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/polyfills/fs.d.ts +55 -0
- package/dist/polyfills/fs.d.ts.map +1 -1
- package/dist/polyfills/fs.js +211 -10
- package/dist/polyfills/fs.js.map +1 -1
- package/dist/run.d.ts +1 -0
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +3 -2
- package/dist/run.js.map +1 -1
- package/dist/task.js +1 -1
- package/dist/task.js.map +1 -1
- package/package.json +1 -1
- package/src/polyfills/fs.ts +258 -12
- package/src/run.ts +4 -2
- package/src/task.ts +1 -1
package/README.md
CHANGED
|
@@ -174,7 +174,7 @@ Every task returns a structured JSON envelope containing both the result and exe
|
|
|
174
174
|
| `timeout` | Maximum execution time | `string` or `number` | unlimited | `"30s"`, `"5m"` |
|
|
175
175
|
| `maxRetries` | Retry attempts on failure | `number` | `0` | `3` |
|
|
176
176
|
| `allowedFiles` | Folders accessible in the sandbox (with optional access mode) | `(string \| AllowedFile)[]` | `[]` | `["./data"]`, `[{ path: "./data", mode: "ro" }]` |
|
|
177
|
-
| `allowedHosts` | Domains accessible in the sandbox | `string[]` | `[
|
|
177
|
+
| `allowedHosts` | Domains accessible in the sandbox | `string[]` | `[]` | `["api.openai.com", "*.anthropic.com"]` |
|
|
178
178
|
| `envVariables` | Environment variables accessible in the sandbox | `string[]` | `[]` | `["API_KEY"]` |
|
|
179
179
|
|
|
180
180
|
### Compute Levels
|
|
@@ -233,7 +233,7 @@ Plain strings are still accepted: `allowedFiles: ["./output"]` defaults to read-
|
|
|
233
233
|
|
|
234
234
|
### Network Access
|
|
235
235
|
|
|
236
|
-
Tasks can make HTTP requests to domains specified in `allowedHosts`. By default,
|
|
236
|
+
Tasks can make HTTP requests to domains specified in `allowedHosts`. By default, no outbound requests are allowed (`[]`). Provide an allowlist of domains to grant access, or use `["*"]` to allow all domains.
|
|
237
237
|
|
|
238
238
|
> Wildcards are supported: `*.example.com` matches all subdomains of `example.com`.
|
|
239
239
|
|
package/dist/polyfills/fs.d.ts
CHANGED
|
@@ -49,6 +49,43 @@ export declare function readdir(path: string, optionsOrCallback: any | ((err: Er
|
|
|
49
49
|
* Check if file/directory exists (sync-style, limited in WASM)
|
|
50
50
|
*/
|
|
51
51
|
export declare function existsSync(_path: string): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Delete a file.
|
|
54
|
+
*/
|
|
55
|
+
export declare function unlink(path: string): Promise<void>;
|
|
56
|
+
export interface RmdirOptions {
|
|
57
|
+
recursive?: boolean;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Delete a directory. Pass `{ recursive: true }` to remove it and all its contents.
|
|
61
|
+
*/
|
|
62
|
+
export declare function rmdir(path: string, options?: RmdirOptions): Promise<void>;
|
|
63
|
+
export interface RmOptions {
|
|
64
|
+
recursive?: boolean;
|
|
65
|
+
force?: boolean;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Remove a file or directory. Supports `{ recursive, force }` options.
|
|
69
|
+
*/
|
|
70
|
+
export declare function rm(path: string, options?: RmOptions): Promise<void>;
|
|
71
|
+
export interface MkdirOptions {
|
|
72
|
+
recursive?: boolean;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Create a directory. Pass `{ recursive: true }` to create intermediate directories.
|
|
76
|
+
*/
|
|
77
|
+
export declare function mkdir(path: string, options?: MkdirOptions): Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Copy a file from src to dest.
|
|
80
|
+
*/
|
|
81
|
+
export declare function copyFile(src: string, dest: string): Promise<void>;
|
|
82
|
+
export interface CpOptions {
|
|
83
|
+
recursive?: boolean;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Copy a file or directory. Pass `{ recursive: true }` to copy directories.
|
|
87
|
+
*/
|
|
88
|
+
export declare function cp(src: string, dest: string, options?: CpOptions): Promise<void>;
|
|
52
89
|
/**
|
|
53
90
|
* Promises API
|
|
54
91
|
*/
|
|
@@ -57,25 +94,43 @@ export declare const promises: {
|
|
|
57
94
|
writeFile(path: string, data: string | Uint8Array): Promise<void>;
|
|
58
95
|
readdir(path: string): Promise<string[]>;
|
|
59
96
|
access(path: string): Promise<void>;
|
|
97
|
+
unlink(path: string): Promise<void>;
|
|
60
98
|
stat(path: string): Promise<{
|
|
61
99
|
isFile: () => boolean;
|
|
62
100
|
isDirectory: () => boolean;
|
|
63
101
|
}>;
|
|
102
|
+
rmdir(path: string, options?: RmdirOptions): Promise<void>;
|
|
103
|
+
rm(path: string, options?: RmOptions): Promise<void>;
|
|
104
|
+
mkdir(path: string, options?: MkdirOptions): Promise<void>;
|
|
105
|
+
copyFile(src: string, dest: string): Promise<void>;
|
|
106
|
+
cp(src: string, dest: string, options?: CpOptions): Promise<void>;
|
|
64
107
|
};
|
|
65
108
|
declare const fs: {
|
|
66
109
|
readFile: typeof readFile;
|
|
67
110
|
writeFile: typeof writeFile;
|
|
68
111
|
readdir: typeof readdir;
|
|
69
112
|
existsSync: typeof existsSync;
|
|
113
|
+
unlink: typeof unlink;
|
|
114
|
+
rmdir: typeof rmdir;
|
|
115
|
+
rm: typeof rm;
|
|
116
|
+
mkdir: typeof mkdir;
|
|
117
|
+
copyFile: typeof copyFile;
|
|
118
|
+
cp: typeof cp;
|
|
70
119
|
promises: {
|
|
71
120
|
readFile(path: string, options?: ReadFileOptions | Encoding): Promise<string | Uint8Array>;
|
|
72
121
|
writeFile(path: string, data: string | Uint8Array): Promise<void>;
|
|
73
122
|
readdir(path: string): Promise<string[]>;
|
|
74
123
|
access(path: string): Promise<void>;
|
|
124
|
+
unlink(path: string): Promise<void>;
|
|
75
125
|
stat(path: string): Promise<{
|
|
76
126
|
isFile: () => boolean;
|
|
77
127
|
isDirectory: () => boolean;
|
|
78
128
|
}>;
|
|
129
|
+
rmdir(path: string, options?: RmdirOptions): Promise<void>;
|
|
130
|
+
rm(path: string, options?: RmOptions): Promise<void>;
|
|
131
|
+
mkdir(path: string, options?: MkdirOptions): Promise<void>;
|
|
132
|
+
copyFile(src: string, dest: string): Promise<void>;
|
|
133
|
+
cp(src: string, dest: string, options?: CpOptions): Promise<void>;
|
|
79
134
|
};
|
|
80
135
|
};
|
|
81
136
|
export default fs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/polyfills/fs.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/polyfills/fs.ts"],"names":[],"mappings":"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"}
|
package/dist/polyfills/fs.js
CHANGED
|
@@ -39,10 +39,13 @@ function resolvePath(path) {
|
|
|
39
39
|
if (preopens.length === 0)
|
|
40
40
|
return null;
|
|
41
41
|
const normalizedPath = normalizePath(path);
|
|
42
|
+
let catchAll = null;
|
|
42
43
|
for (const { descriptor, guestPath } of preopens) {
|
|
43
44
|
const normalizedGuest = normalizePath(guestPath);
|
|
44
45
|
if (normalizedGuest === '.' || normalizedGuest === '') {
|
|
45
|
-
|
|
46
|
+
if (!catchAll)
|
|
47
|
+
catchAll = { dir: descriptor, relativePath: normalizedPath };
|
|
48
|
+
continue;
|
|
46
49
|
}
|
|
47
50
|
if (normalizedPath.startsWith(normalizedGuest + '/')) {
|
|
48
51
|
const relativePath = normalizedPath.slice(normalizedGuest.length + 1);
|
|
@@ -52,7 +55,7 @@ function resolvePath(path) {
|
|
|
52
55
|
return { dir: descriptor, relativePath: '.' };
|
|
53
56
|
}
|
|
54
57
|
}
|
|
55
|
-
return { dir: preopens[0].descriptor, relativePath: normalizedPath };
|
|
58
|
+
return catchAll ?? { dir: preopens[0].descriptor, relativePath: normalizedPath };
|
|
56
59
|
}
|
|
57
60
|
/**
|
|
58
61
|
* Read a file as text.
|
|
@@ -67,7 +70,7 @@ export async function readText(path) {
|
|
|
67
70
|
export async function readBytes(path) {
|
|
68
71
|
const resolved = resolvePath(path);
|
|
69
72
|
if (!resolved) {
|
|
70
|
-
throw new Error("
|
|
73
|
+
throw new Error("File not found.");
|
|
71
74
|
}
|
|
72
75
|
try {
|
|
73
76
|
const pathFlags = { symlinkFollow: false };
|
|
@@ -95,12 +98,12 @@ export async function writeText(path, content) {
|
|
|
95
98
|
export async function writeBytes(path, data) {
|
|
96
99
|
const resolved = resolvePath(path);
|
|
97
100
|
if (!resolved) {
|
|
98
|
-
throw new Error("
|
|
101
|
+
throw new Error("File not found.");
|
|
99
102
|
}
|
|
100
103
|
try {
|
|
101
104
|
const pathFlags = { symlinkFollow: false };
|
|
102
105
|
const openFlags = { create: true, truncate: true };
|
|
103
|
-
const descriptorFlags = { write: true };
|
|
106
|
+
const descriptorFlags = { write: true, mutateDirectory: true };
|
|
104
107
|
const fd = resolved.dir.openAt(pathFlags, resolved.relativePath, openFlags, descriptorFlags);
|
|
105
108
|
fd.write(data, BigInt(0));
|
|
106
109
|
}
|
|
@@ -114,7 +117,7 @@ export async function writeBytes(path, data) {
|
|
|
114
117
|
export async function list(path = ".") {
|
|
115
118
|
const resolved = resolvePath(path);
|
|
116
119
|
if (!resolved) {
|
|
117
|
-
throw new Error("
|
|
120
|
+
throw new Error("Path not found.");
|
|
118
121
|
}
|
|
119
122
|
try {
|
|
120
123
|
let targetDir = resolved.dir;
|
|
@@ -209,6 +212,180 @@ export function existsSync(_path) {
|
|
|
209
212
|
console.warn('fs.existsSync: Cannot implement true sync in WASM. Use fs.access instead.');
|
|
210
213
|
return false;
|
|
211
214
|
}
|
|
215
|
+
/**
|
|
216
|
+
* Delete a file.
|
|
217
|
+
*/
|
|
218
|
+
export async function unlink(path) {
|
|
219
|
+
const resolved = resolvePath(path);
|
|
220
|
+
if (!resolved) {
|
|
221
|
+
throw new Error("File not found.");
|
|
222
|
+
}
|
|
223
|
+
const fs = getFsBindings();
|
|
224
|
+
if (!fs) {
|
|
225
|
+
throw new Error("File not found.");
|
|
226
|
+
}
|
|
227
|
+
try {
|
|
228
|
+
resolved.dir.unlinkFileAt(resolved.relativePath);
|
|
229
|
+
}
|
|
230
|
+
catch (e) {
|
|
231
|
+
throw new Error(`Failed to delete file '${path}': ${e}`);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Returns 'file', 'directory', or 'notfound' for a given path.
|
|
236
|
+
*/
|
|
237
|
+
async function statPath(path) {
|
|
238
|
+
const resolved = resolvePath(path);
|
|
239
|
+
if (!resolved)
|
|
240
|
+
return 'notfound';
|
|
241
|
+
try {
|
|
242
|
+
const fd = resolved.dir.openAt({ symlinkFollow: false }, resolved.relativePath, {}, { read: true });
|
|
243
|
+
const s = fd.stat();
|
|
244
|
+
if (s.type === 'directory')
|
|
245
|
+
return 'directory';
|
|
246
|
+
return 'file';
|
|
247
|
+
}
|
|
248
|
+
catch {
|
|
249
|
+
return 'notfound';
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Recursively delete a directory and all its contents.
|
|
254
|
+
*/
|
|
255
|
+
async function removeRecursive(path) {
|
|
256
|
+
const resolved = resolvePath(path);
|
|
257
|
+
if (!resolved)
|
|
258
|
+
throw new Error(`Path not found: '${path}'`);
|
|
259
|
+
const fd = resolved.dir.openAt({ symlinkFollow: false }, resolved.relativePath, { directory: true }, { read: true, mutateDirectory: true });
|
|
260
|
+
const stream = fd.readDirectory();
|
|
261
|
+
let entry;
|
|
262
|
+
while ((entry = stream.readDirectoryEntry()) && entry) {
|
|
263
|
+
if (!entry.name)
|
|
264
|
+
continue;
|
|
265
|
+
const childPath = path.replace(/\/$/, '') + '/' + entry.name;
|
|
266
|
+
if (entry.type === 'directory') {
|
|
267
|
+
await removeRecursive(childPath);
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
await unlink(childPath);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
resolved.dir.removeDirectoryAt(resolved.relativePath);
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Delete a directory. Pass `{ recursive: true }` to remove it and all its contents.
|
|
277
|
+
*/
|
|
278
|
+
export async function rmdir(path, options) {
|
|
279
|
+
const resolved = resolvePath(path);
|
|
280
|
+
if (!resolved) {
|
|
281
|
+
throw new Error("Folder not found.");
|
|
282
|
+
}
|
|
283
|
+
try {
|
|
284
|
+
if (options?.recursive) {
|
|
285
|
+
await removeRecursive(path);
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
resolved.dir.removeDirectoryAt(resolved.relativePath);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
catch (e) {
|
|
292
|
+
if (e instanceof Error && e.message.startsWith('Failed to remove'))
|
|
293
|
+
throw e;
|
|
294
|
+
throw new Error(`Failed to remove directory '${path}': ${e}`);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Remove a file or directory. Supports `{ recursive, force }` options.
|
|
299
|
+
*/
|
|
300
|
+
export async function rm(path, options) {
|
|
301
|
+
const kind = await statPath(path);
|
|
302
|
+
if (kind === 'notfound') {
|
|
303
|
+
if (options?.force)
|
|
304
|
+
return;
|
|
305
|
+
throw new Error(`ENOENT: no such file or directory, rm '${path}'`);
|
|
306
|
+
}
|
|
307
|
+
if (kind === 'directory') {
|
|
308
|
+
if (!options?.recursive) {
|
|
309
|
+
throw new Error(`EISDIR: illegal operation on a directory, rm '${path}' (use { recursive: true })`);
|
|
310
|
+
}
|
|
311
|
+
await removeRecursive(path);
|
|
312
|
+
}
|
|
313
|
+
else {
|
|
314
|
+
await unlink(path);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Create a directory. Pass `{ recursive: true }` to create intermediate directories.
|
|
319
|
+
*/
|
|
320
|
+
export async function mkdir(path, options) {
|
|
321
|
+
if (options?.recursive) {
|
|
322
|
+
const normalized = normalizePath(path);
|
|
323
|
+
const parts = normalized.split('/').filter(Boolean);
|
|
324
|
+
for (let i = 1; i <= parts.length; i++) {
|
|
325
|
+
const partial = parts.slice(0, i).join('/');
|
|
326
|
+
const resolved = resolvePath(partial);
|
|
327
|
+
if (!resolved)
|
|
328
|
+
continue;
|
|
329
|
+
try {
|
|
330
|
+
resolved.dir.createDirectoryAt(resolved.relativePath);
|
|
331
|
+
}
|
|
332
|
+
catch {
|
|
333
|
+
// Directory may already exist, continue
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
else {
|
|
338
|
+
const resolved = resolvePath(path);
|
|
339
|
+
if (!resolved)
|
|
340
|
+
throw new Error(`Cannot resolve path: '${path}'`);
|
|
341
|
+
try {
|
|
342
|
+
resolved.dir.createDirectoryAt(resolved.relativePath);
|
|
343
|
+
}
|
|
344
|
+
catch (e) {
|
|
345
|
+
throw new Error(`Failed to create directory '${path}': ${e}`);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Copy a file from src to dest.
|
|
351
|
+
*/
|
|
352
|
+
export async function copyFile(src, dest) {
|
|
353
|
+
const data = await readBytes(src);
|
|
354
|
+
await writeBytes(dest, data);
|
|
355
|
+
}
|
|
356
|
+
async function copyDirRecursive(src, dest) {
|
|
357
|
+
await mkdir(dest, { recursive: true });
|
|
358
|
+
const entries = await list(src);
|
|
359
|
+
for (const entry of entries) {
|
|
360
|
+
const srcEntry = src.replace(/\/$/, '') + '/' + entry;
|
|
361
|
+
const destEntry = dest.replace(/\/$/, '') + '/' + entry;
|
|
362
|
+
const kind = await statPath(srcEntry);
|
|
363
|
+
if (kind === 'directory') {
|
|
364
|
+
await copyDirRecursive(srcEntry, destEntry);
|
|
365
|
+
}
|
|
366
|
+
else {
|
|
367
|
+
await copyFile(srcEntry, destEntry);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Copy a file or directory. Pass `{ recursive: true }` to copy directories.
|
|
373
|
+
*/
|
|
374
|
+
export async function cp(src, dest, options) {
|
|
375
|
+
const kind = await statPath(src);
|
|
376
|
+
if (kind === 'notfound') {
|
|
377
|
+
throw new Error(`ENOENT: no such file or directory '${src}'`);
|
|
378
|
+
}
|
|
379
|
+
if (kind === 'directory') {
|
|
380
|
+
if (!options?.recursive) {
|
|
381
|
+
throw new Error(`EISDIR: illegal operation on a directory '${src}' (use { recursive: true })`);
|
|
382
|
+
}
|
|
383
|
+
await copyDirRecursive(src, dest);
|
|
384
|
+
}
|
|
385
|
+
else {
|
|
386
|
+
await copyFile(src, dest);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
212
389
|
/**
|
|
213
390
|
* Promises API
|
|
214
391
|
*/
|
|
@@ -235,22 +412,46 @@ export const promises = {
|
|
|
235
412
|
throw new Error(`ENOENT: no such file or directory, access '${path}'`);
|
|
236
413
|
}
|
|
237
414
|
},
|
|
415
|
+
async unlink(path) {
|
|
416
|
+
await unlink(path);
|
|
417
|
+
},
|
|
238
418
|
async stat(path) {
|
|
239
|
-
const
|
|
240
|
-
if (
|
|
419
|
+
const kind = await statPath(path);
|
|
420
|
+
if (kind === 'notfound') {
|
|
241
421
|
throw new Error(`ENOENT: no such file or directory, stat '${path}'`);
|
|
242
422
|
}
|
|
243
423
|
return {
|
|
244
|
-
isFile: () =>
|
|
245
|
-
isDirectory: () =>
|
|
424
|
+
isFile: () => kind === 'file',
|
|
425
|
+
isDirectory: () => kind === 'directory',
|
|
246
426
|
};
|
|
247
427
|
},
|
|
428
|
+
async rmdir(path, options) {
|
|
429
|
+
await rmdir(path, options);
|
|
430
|
+
},
|
|
431
|
+
async rm(path, options) {
|
|
432
|
+
await rm(path, options);
|
|
433
|
+
},
|
|
434
|
+
async mkdir(path, options) {
|
|
435
|
+
await mkdir(path, options);
|
|
436
|
+
},
|
|
437
|
+
async copyFile(src, dest) {
|
|
438
|
+
await copyFile(src, dest);
|
|
439
|
+
},
|
|
440
|
+
async cp(src, dest, options) {
|
|
441
|
+
await cp(src, dest, options);
|
|
442
|
+
},
|
|
248
443
|
};
|
|
249
444
|
const fs = {
|
|
250
445
|
readFile,
|
|
251
446
|
writeFile,
|
|
252
447
|
readdir,
|
|
253
448
|
existsSync,
|
|
449
|
+
unlink,
|
|
450
|
+
rmdir,
|
|
451
|
+
rm,
|
|
452
|
+
mkdir,
|
|
453
|
+
copyFile,
|
|
454
|
+
cp,
|
|
254
455
|
promises,
|
|
255
456
|
};
|
|
256
457
|
export default fs;
|
package/dist/polyfills/fs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/polyfills/fs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/polyfills/fs.ts"],"names":[],"mappings":"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"}
|
package/dist/run.d.ts
CHANGED
package/dist/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IAClD,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACtD,SAAS,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAcD;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IAClD,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACtD,SAAS,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAcD;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAkDjE"}
|
package/dist/run.js
CHANGED
|
@@ -24,7 +24,7 @@ function getCapsuleCommand(capsulePath) {
|
|
|
24
24
|
* @returns Promise with the runner result
|
|
25
25
|
*/
|
|
26
26
|
export function run(options) {
|
|
27
|
-
const { file, args = [], cwd, capsulePath = 'capsule' } = options;
|
|
27
|
+
const { file, args = [], mounts = [], cwd, capsulePath = 'capsule' } = options;
|
|
28
28
|
const command = getCapsuleCommand(capsulePath);
|
|
29
29
|
const resolvedFile = resolve(cwd || process.cwd(), file);
|
|
30
30
|
const ext = extname(resolvedFile).toLowerCase();
|
|
@@ -37,7 +37,8 @@ export function run(options) {
|
|
|
37
37
|
}
|
|
38
38
|
const subcommand = isWasm ? 'exec' : 'run';
|
|
39
39
|
return new Promise((resolve, reject) => {
|
|
40
|
-
const
|
|
40
|
+
const mountFlags = mounts.flatMap(m => ['--mount', m]);
|
|
41
|
+
const cmdArgs = [subcommand, resolvedFile, '--json', ...mountFlags, ...args];
|
|
41
42
|
let executable = command;
|
|
42
43
|
let executionArgs = cmdArgs;
|
|
43
44
|
if (process.platform === 'win32') {
|
package/dist/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
package/dist/task.js
CHANGED
|
@@ -69,7 +69,7 @@ function normalizeAllowedFile(entry) {
|
|
|
69
69
|
export function task(options, fn) {
|
|
70
70
|
const taskName = options.name;
|
|
71
71
|
let compute = options.compute?.toString().toUpperCase() ?? "MEDIUM";
|
|
72
|
-
let allowedHosts = options.allowedHosts ?? [
|
|
72
|
+
let allowedHosts = options.allowedHosts ?? [];
|
|
73
73
|
const taskConfig = {
|
|
74
74
|
name: taskName,
|
|
75
75
|
compute,
|
package/dist/task.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.js","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAmB,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAoDpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,OAAyB;IACjD,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,IAAI,CAAC;IACxB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAA2B;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,SAAS,CAAC;QACf,KAAK,IAAI,CAAC;QACV,KAAK,YAAY;YACf,OAAO,KAAK,CAAC,IAAI,CAAC;QACpB,KAAK,IAAI,CAAC;QACV,KAAK,WAAW;YACd,OAAO,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC;QAC5B;YACE,MAAM,IAAI,KAAK,CACb,+BAAgC,KAAa,CAAC,IAAI,eAAe,KAAK,CAAC,IAAI,KAAK;gBAChF,kCAAkC,CACnC,CAAC;IACN,CAAC;AACH,CAAC;AAED,MAAM,UAAU,IAAI,CAClB,OAAoB,EACpB,EAA+B;IAE/B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9B,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC;IACpE,IAAI,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,
|
|
1
|
+
{"version":3,"file":"task.js","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/polyfills/fs.ts
CHANGED
|
@@ -8,11 +8,28 @@ declare const globalThis: {
|
|
|
8
8
|
'wasi:filesystem/preopens': any;
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
+
interface DescriptorStat {
|
|
12
|
+
size: bigint;
|
|
13
|
+
type?: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
interface DirectoryEntry {
|
|
17
|
+
name: string;
|
|
18
|
+
type?: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
interface DirectoryStream {
|
|
22
|
+
readDirectoryEntry(): DirectoryEntry | null;
|
|
23
|
+
}
|
|
24
|
+
|
|
11
25
|
interface Descriptor {
|
|
12
26
|
read(length: bigint, offset: bigint): [Uint8Array, boolean];
|
|
13
27
|
write(buffer: Uint8Array, offset: bigint): bigint;
|
|
14
|
-
stat():
|
|
15
|
-
readDirectory():
|
|
28
|
+
stat(): DescriptorStat;
|
|
29
|
+
readDirectory(): DirectoryStream;
|
|
30
|
+
unlinkFileAt(path: string): void;
|
|
31
|
+
removeDirectoryAt(path: string): void;
|
|
32
|
+
createDirectoryAt(path: string): void;
|
|
16
33
|
openAt(
|
|
17
34
|
pathFlags: { symlinkFollow?: boolean },
|
|
18
35
|
path: string,
|
|
@@ -65,11 +82,14 @@ function resolvePath(path: string): { dir: Descriptor; relativePath: string } |
|
|
|
65
82
|
|
|
66
83
|
const normalizedPath = normalizePath(path);
|
|
67
84
|
|
|
85
|
+
let catchAll: { dir: Descriptor; relativePath: string } | null = null;
|
|
86
|
+
|
|
68
87
|
for (const { descriptor, guestPath } of preopens) {
|
|
69
88
|
const normalizedGuest = normalizePath(guestPath);
|
|
70
89
|
|
|
71
90
|
if (normalizedGuest === '.' || normalizedGuest === '') {
|
|
72
|
-
|
|
91
|
+
if (!catchAll) catchAll = { dir: descriptor, relativePath: normalizedPath };
|
|
92
|
+
continue;
|
|
73
93
|
}
|
|
74
94
|
|
|
75
95
|
if (normalizedPath.startsWith(normalizedGuest + '/')) {
|
|
@@ -82,7 +102,7 @@ function resolvePath(path: string): { dir: Descriptor; relativePath: string } |
|
|
|
82
102
|
}
|
|
83
103
|
}
|
|
84
104
|
|
|
85
|
-
return { dir: preopens[0].descriptor, relativePath: normalizedPath };
|
|
105
|
+
return catchAll ?? { dir: preopens[0].descriptor, relativePath: normalizedPath };
|
|
86
106
|
}
|
|
87
107
|
|
|
88
108
|
/**
|
|
@@ -99,7 +119,7 @@ export async function readText(path: string): Promise<string> {
|
|
|
99
119
|
export async function readBytes(path: string): Promise<Uint8Array> {
|
|
100
120
|
const resolved = resolvePath(path);
|
|
101
121
|
if (!resolved) {
|
|
102
|
-
throw new Error("
|
|
122
|
+
throw new Error("File not found.");
|
|
103
123
|
}
|
|
104
124
|
|
|
105
125
|
try {
|
|
@@ -130,13 +150,13 @@ export async function writeText(path: string, content: string): Promise<void> {
|
|
|
130
150
|
export async function writeBytes(path: string, data: Uint8Array): Promise<void> {
|
|
131
151
|
const resolved = resolvePath(path);
|
|
132
152
|
if (!resolved) {
|
|
133
|
-
throw new Error("
|
|
153
|
+
throw new Error("File not found.");
|
|
134
154
|
}
|
|
135
155
|
|
|
136
156
|
try {
|
|
137
157
|
const pathFlags = { symlinkFollow: false };
|
|
138
158
|
const openFlags = { create: true, truncate: true };
|
|
139
|
-
const descriptorFlags = { write: true };
|
|
159
|
+
const descriptorFlags = { write: true, mutateDirectory: true };
|
|
140
160
|
|
|
141
161
|
const fd = resolved.dir.openAt(pathFlags, resolved.relativePath, openFlags, descriptorFlags);
|
|
142
162
|
fd.write(data, BigInt(0));
|
|
@@ -151,7 +171,7 @@ export async function writeBytes(path: string, data: Uint8Array): Promise<void>
|
|
|
151
171
|
export async function list(path: string = "."): Promise<string[]> {
|
|
152
172
|
const resolved = resolvePath(path);
|
|
153
173
|
if (!resolved) {
|
|
154
|
-
throw new Error("
|
|
174
|
+
throw new Error("Path not found.");
|
|
155
175
|
}
|
|
156
176
|
|
|
157
177
|
try {
|
|
@@ -284,6 +304,202 @@ export function existsSync(_path: string): boolean {
|
|
|
284
304
|
return false;
|
|
285
305
|
}
|
|
286
306
|
|
|
307
|
+
/**
|
|
308
|
+
* Delete a file.
|
|
309
|
+
*/
|
|
310
|
+
export async function unlink(path: string): Promise<void> {
|
|
311
|
+
const resolved = resolvePath(path);
|
|
312
|
+
if (!resolved) {
|
|
313
|
+
throw new Error("File not found.");
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
const fs = getFsBindings();
|
|
317
|
+
if (!fs) {
|
|
318
|
+
throw new Error("File not found.");
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
try {
|
|
322
|
+
resolved.dir.unlinkFileAt(resolved.relativePath);
|
|
323
|
+
} catch (e) {
|
|
324
|
+
throw new Error(`Failed to delete file '${path}': ${e}`);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
/**
|
|
329
|
+
* Returns 'file', 'directory', or 'notfound' for a given path.
|
|
330
|
+
*/
|
|
331
|
+
async function statPath(path: string): Promise<'file' | 'directory' | 'notfound'> {
|
|
332
|
+
const resolved = resolvePath(path);
|
|
333
|
+
if (!resolved) return 'notfound';
|
|
334
|
+
|
|
335
|
+
try {
|
|
336
|
+
const fd = resolved.dir.openAt({ symlinkFollow: false }, resolved.relativePath, {}, { read: true });
|
|
337
|
+
const s = fd.stat();
|
|
338
|
+
if (s.type === 'directory') return 'directory';
|
|
339
|
+
return 'file';
|
|
340
|
+
} catch {
|
|
341
|
+
return 'notfound';
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
/**
|
|
346
|
+
* Recursively delete a directory and all its contents.
|
|
347
|
+
*/
|
|
348
|
+
async function removeRecursive(path: string): Promise<void> {
|
|
349
|
+
const resolved = resolvePath(path);
|
|
350
|
+
if (!resolved) throw new Error(`Path not found: '${path}'`);
|
|
351
|
+
|
|
352
|
+
const fd = resolved.dir.openAt(
|
|
353
|
+
{ symlinkFollow: false },
|
|
354
|
+
resolved.relativePath,
|
|
355
|
+
{ directory: true },
|
|
356
|
+
{ read: true, mutateDirectory: true }
|
|
357
|
+
);
|
|
358
|
+
|
|
359
|
+
const stream = fd.readDirectory();
|
|
360
|
+
let entry: DirectoryEntry | null | undefined;
|
|
361
|
+
|
|
362
|
+
while ((entry = stream.readDirectoryEntry()) && entry) {
|
|
363
|
+
if (!entry.name) continue;
|
|
364
|
+
const childPath = path.replace(/\/$/, '') + '/' + entry.name;
|
|
365
|
+
if (entry.type === 'directory') {
|
|
366
|
+
await removeRecursive(childPath);
|
|
367
|
+
} else {
|
|
368
|
+
await unlink(childPath);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
resolved.dir.removeDirectoryAt(resolved.relativePath);
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
export interface RmdirOptions {
|
|
376
|
+
recursive?: boolean;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* Delete a directory. Pass `{ recursive: true }` to remove it and all its contents.
|
|
381
|
+
*/
|
|
382
|
+
export async function rmdir(path: string, options?: RmdirOptions): Promise<void> {
|
|
383
|
+
const resolved = resolvePath(path);
|
|
384
|
+
if (!resolved) {
|
|
385
|
+
throw new Error("Folder not found.");
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
try {
|
|
389
|
+
if (options?.recursive) {
|
|
390
|
+
await removeRecursive(path);
|
|
391
|
+
} else {
|
|
392
|
+
resolved.dir.removeDirectoryAt(resolved.relativePath);
|
|
393
|
+
}
|
|
394
|
+
} catch (e) {
|
|
395
|
+
if (e instanceof Error && e.message.startsWith('Failed to remove')) throw e;
|
|
396
|
+
throw new Error(`Failed to remove directory '${path}': ${e}`);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
export interface RmOptions {
|
|
401
|
+
recursive?: boolean;
|
|
402
|
+
force?: boolean;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
/**
|
|
406
|
+
* Remove a file or directory. Supports `{ recursive, force }` options.
|
|
407
|
+
*/
|
|
408
|
+
export async function rm(path: string, options?: RmOptions): Promise<void> {
|
|
409
|
+
const kind = await statPath(path);
|
|
410
|
+
|
|
411
|
+
if (kind === 'notfound') {
|
|
412
|
+
if (options?.force) return;
|
|
413
|
+
throw new Error(`ENOENT: no such file or directory, rm '${path}'`);
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
if (kind === 'directory') {
|
|
417
|
+
if (!options?.recursive) {
|
|
418
|
+
throw new Error(`EISDIR: illegal operation on a directory, rm '${path}' (use { recursive: true })`);
|
|
419
|
+
}
|
|
420
|
+
await removeRecursive(path);
|
|
421
|
+
} else {
|
|
422
|
+
await unlink(path);
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
export interface MkdirOptions {
|
|
427
|
+
recursive?: boolean;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
/**
|
|
431
|
+
* Create a directory. Pass `{ recursive: true }` to create intermediate directories.
|
|
432
|
+
*/
|
|
433
|
+
export async function mkdir(path: string, options?: MkdirOptions): Promise<void> {
|
|
434
|
+
if (options?.recursive) {
|
|
435
|
+
const normalized = normalizePath(path);
|
|
436
|
+
const parts = normalized.split('/').filter(Boolean);
|
|
437
|
+
for (let i = 1; i <= parts.length; i++) {
|
|
438
|
+
const partial = parts.slice(0, i).join('/');
|
|
439
|
+
const resolved = resolvePath(partial);
|
|
440
|
+
if (!resolved) continue;
|
|
441
|
+
try {
|
|
442
|
+
resolved.dir.createDirectoryAt(resolved.relativePath);
|
|
443
|
+
} catch {
|
|
444
|
+
// Directory may already exist, continue
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
} else {
|
|
448
|
+
const resolved = resolvePath(path);
|
|
449
|
+
if (!resolved) throw new Error(`Cannot resolve path: '${path}'`);
|
|
450
|
+
try {
|
|
451
|
+
resolved.dir.createDirectoryAt(resolved.relativePath);
|
|
452
|
+
} catch (e) {
|
|
453
|
+
throw new Error(`Failed to create directory '${path}': ${e}`);
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
/**
|
|
459
|
+
* Copy a file from src to dest.
|
|
460
|
+
*/
|
|
461
|
+
export async function copyFile(src: string, dest: string): Promise<void> {
|
|
462
|
+
const data = await readBytes(src);
|
|
463
|
+
await writeBytes(dest, data);
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
async function copyDirRecursive(src: string, dest: string): Promise<void> {
|
|
467
|
+
await mkdir(dest, { recursive: true });
|
|
468
|
+
const entries = await list(src);
|
|
469
|
+
for (const entry of entries) {
|
|
470
|
+
const srcEntry = src.replace(/\/$/, '') + '/' + entry;
|
|
471
|
+
const destEntry = dest.replace(/\/$/, '') + '/' + entry;
|
|
472
|
+
const kind = await statPath(srcEntry);
|
|
473
|
+
if (kind === 'directory') {
|
|
474
|
+
await copyDirRecursive(srcEntry, destEntry);
|
|
475
|
+
} else {
|
|
476
|
+
await copyFile(srcEntry, destEntry);
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
export interface CpOptions {
|
|
482
|
+
recursive?: boolean;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
/**
|
|
486
|
+
* Copy a file or directory. Pass `{ recursive: true }` to copy directories.
|
|
487
|
+
*/
|
|
488
|
+
export async function cp(src: string, dest: string, options?: CpOptions): Promise<void> {
|
|
489
|
+
const kind = await statPath(src);
|
|
490
|
+
if (kind === 'notfound') {
|
|
491
|
+
throw new Error(`ENOENT: no such file or directory '${src}'`);
|
|
492
|
+
}
|
|
493
|
+
if (kind === 'directory') {
|
|
494
|
+
if (!options?.recursive) {
|
|
495
|
+
throw new Error(`EISDIR: illegal operation on a directory '${src}' (use { recursive: true })`);
|
|
496
|
+
}
|
|
497
|
+
await copyDirRecursive(src, dest);
|
|
498
|
+
} else {
|
|
499
|
+
await copyFile(src, dest);
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
|
|
287
503
|
/**
|
|
288
504
|
* Promises API
|
|
289
505
|
*/
|
|
@@ -313,16 +529,40 @@ export const promises = {
|
|
|
313
529
|
}
|
|
314
530
|
},
|
|
315
531
|
|
|
532
|
+
async unlink(path: string): Promise<void> {
|
|
533
|
+
await unlink(path);
|
|
534
|
+
},
|
|
535
|
+
|
|
316
536
|
async stat(path: string): Promise<{ isFile: () => boolean; isDirectory: () => boolean }> {
|
|
317
|
-
const
|
|
318
|
-
if (
|
|
537
|
+
const kind = await statPath(path);
|
|
538
|
+
if (kind === 'notfound') {
|
|
319
539
|
throw new Error(`ENOENT: no such file or directory, stat '${path}'`);
|
|
320
540
|
}
|
|
321
541
|
return {
|
|
322
|
-
isFile: () =>
|
|
323
|
-
isDirectory: () =>
|
|
542
|
+
isFile: () => kind === 'file',
|
|
543
|
+
isDirectory: () => kind === 'directory',
|
|
324
544
|
};
|
|
325
545
|
},
|
|
546
|
+
|
|
547
|
+
async rmdir(path: string, options?: RmdirOptions): Promise<void> {
|
|
548
|
+
await rmdir(path, options);
|
|
549
|
+
},
|
|
550
|
+
|
|
551
|
+
async rm(path: string, options?: RmOptions): Promise<void> {
|
|
552
|
+
await rm(path, options);
|
|
553
|
+
},
|
|
554
|
+
|
|
555
|
+
async mkdir(path: string, options?: MkdirOptions): Promise<void> {
|
|
556
|
+
await mkdir(path, options);
|
|
557
|
+
},
|
|
558
|
+
|
|
559
|
+
async copyFile(src: string, dest: string): Promise<void> {
|
|
560
|
+
await copyFile(src, dest);
|
|
561
|
+
},
|
|
562
|
+
|
|
563
|
+
async cp(src: string, dest: string, options?: CpOptions): Promise<void> {
|
|
564
|
+
await cp(src, dest, options);
|
|
565
|
+
},
|
|
326
566
|
};
|
|
327
567
|
|
|
328
568
|
const fs = {
|
|
@@ -330,6 +570,12 @@ const fs = {
|
|
|
330
570
|
writeFile,
|
|
331
571
|
readdir,
|
|
332
572
|
existsSync,
|
|
573
|
+
unlink,
|
|
574
|
+
rmdir,
|
|
575
|
+
rm,
|
|
576
|
+
mkdir,
|
|
577
|
+
copyFile,
|
|
578
|
+
cp,
|
|
333
579
|
promises,
|
|
334
580
|
};
|
|
335
581
|
|
package/src/run.ts
CHANGED
|
@@ -12,6 +12,7 @@ import { existsSync } from 'fs';
|
|
|
12
12
|
export interface RunnerOptions {
|
|
13
13
|
file: string;
|
|
14
14
|
args?: string[];
|
|
15
|
+
mounts?: string[];
|
|
15
16
|
cwd?: string;
|
|
16
17
|
capsulePath?: string;
|
|
17
18
|
}
|
|
@@ -47,7 +48,7 @@ function getCapsuleCommand(capsulePath: string): string {
|
|
|
47
48
|
* @returns Promise with the runner result
|
|
48
49
|
*/
|
|
49
50
|
export function run(options: RunnerOptions): Promise<RunnerResult> {
|
|
50
|
-
const { file, args = [], cwd, capsulePath = 'capsule' } = options;
|
|
51
|
+
const { file, args = [], mounts = [], cwd, capsulePath = 'capsule' } = options;
|
|
51
52
|
const command = getCapsuleCommand(capsulePath);
|
|
52
53
|
|
|
53
54
|
const resolvedFile = resolve(cwd || process.cwd(), file);
|
|
@@ -64,7 +65,8 @@ export function run(options: RunnerOptions): Promise<RunnerResult> {
|
|
|
64
65
|
const subcommand = isWasm ? 'exec' : 'run';
|
|
65
66
|
|
|
66
67
|
return new Promise((resolve, reject) => {
|
|
67
|
-
const
|
|
68
|
+
const mountFlags = mounts.flatMap(m => ['--mount', m]);
|
|
69
|
+
const cmdArgs = [subcommand, resolvedFile, '--json', ...mountFlags, ...args];
|
|
68
70
|
|
|
69
71
|
let executable = command;
|
|
70
72
|
let executionArgs = cmdArgs;
|
package/src/task.ts
CHANGED
|
@@ -127,7 +127,7 @@ export function task<TArgs extends any[], TReturn>(
|
|
|
127
127
|
): (...args: TArgs) => TaskReturnType<TReturn> {
|
|
128
128
|
const taskName = options.name;
|
|
129
129
|
let compute = options.compute?.toString().toUpperCase() ?? "MEDIUM";
|
|
130
|
-
let allowedHosts = options.allowedHosts ?? [
|
|
130
|
+
let allowedHosts = options.allowedHosts ?? [];
|
|
131
131
|
|
|
132
132
|
const taskConfig: TaskConfig = {
|
|
133
133
|
name: taskName,
|