@phpsandbox/sdk 0.1.2 → 0.1.4

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.
@@ -12,6 +12,32 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
12
12
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
13
13
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
14
14
 
15
+ // src/errors/index.ts
16
+ var PromiseTimeoutError = class extends Error {
17
+ constructor(message, time3) {
18
+ super(message);
19
+ this.time = time3;
20
+ }
21
+ };
22
+ var SendTimeoutError = class _SendTimeoutError extends PromiseTimeoutError {
23
+ static fromPromiseTimeoutError(error51) {
24
+ return new _SendTimeoutError(error51.message, error51.time);
25
+ }
26
+ };
27
+ var NotebookUnavailableError = class extends Error {
28
+ constructor(message = "Notebook is no longer available", raw = {}) {
29
+ super(message);
30
+ this.raw = raw;
31
+ this.name = "NotebookUnavailableError";
32
+ }
33
+ };
34
+ var UnsupportedRuntimeTransportError = class extends Error {
35
+ constructor(message) {
36
+ super(message);
37
+ this.name = "UnsupportedRuntimeTransportError";
38
+ }
39
+ };
40
+
15
41
  // src/types.ts
16
42
  var ErrorEvent = class extends Error {
17
43
  constructor(code, message, raw = {}) {
@@ -226,6 +252,77 @@ var Filesystem = class {
226
252
  }
227
253
  });
228
254
  }
255
+ follow(path, options = {}) {
256
+ if (this.okra.runtimeTransport === "rest") {
257
+ return new ReadableStream({
258
+ start(controller) {
259
+ controller.error(new UnsupportedRuntimeTransportError("Following files requires the realtime transport."));
260
+ }
261
+ });
262
+ }
263
+ const id = nanoid();
264
+ let disposable = null;
265
+ let abort = null;
266
+ let started = false;
267
+ let closed = false;
268
+ const stop = async () => {
269
+ if (closed) {
270
+ return;
271
+ }
272
+ closed = true;
273
+ disposable?.dispose();
274
+ disposable = null;
275
+ if (abort && options.signal) {
276
+ options.signal.removeEventListener("abort", abort);
277
+ }
278
+ abort = null;
279
+ if (started) {
280
+ await this.okra.invoke("fs.cancelFollow", { id }).catch(() => false);
281
+ }
282
+ };
283
+ return new ReadableStream({
284
+ start: (controller) => {
285
+ disposable = this.okra.listen(`fs.follow.${id}`, (event) => {
286
+ if (!closed) {
287
+ controller.enqueue(event.data);
288
+ }
289
+ });
290
+ if (options.signal) {
291
+ abort = () => {
292
+ void stop().finally(() => controller.error(options.signal?.reason ?? new Error("Aborted")));
293
+ };
294
+ if (options.signal.aborted) {
295
+ abort();
296
+ return;
297
+ }
298
+ options.signal.addEventListener("abort", abort, { once: true });
299
+ }
300
+ started = true;
301
+ void this.okra.invoke("fs.follow", { id, path, lines: options.lines ?? 10 }).then(() => {
302
+ if (!closed) {
303
+ closed = true;
304
+ disposable?.dispose();
305
+ if (abort && options.signal) {
306
+ options.signal.removeEventListener("abort", abort);
307
+ }
308
+ abort = null;
309
+ controller.close();
310
+ }
311
+ }).catch((error51) => {
312
+ if (!closed) {
313
+ closed = true;
314
+ disposable?.dispose();
315
+ if (abort && options.signal) {
316
+ options.signal.removeEventListener("abort", abort);
317
+ }
318
+ abort = null;
319
+ controller.error(error51);
320
+ }
321
+ });
322
+ },
323
+ cancel: stop
324
+ });
325
+ }
229
326
  find(query, options = {
230
327
  useIgnoreFiles: false,
231
328
  followSymlinks: false,
@@ -408,32 +505,6 @@ async function collectBytes(stream) {
408
505
  return output;
409
506
  }
410
507
 
411
- // src/errors/index.ts
412
- var PromiseTimeoutError = class extends Error {
413
- constructor(message, time3) {
414
- super(message);
415
- this.time = time3;
416
- }
417
- };
418
- var SendTimeoutError = class _SendTimeoutError extends PromiseTimeoutError {
419
- static fromPromiseTimeoutError(error51) {
420
- return new _SendTimeoutError(error51.message, error51.time);
421
- }
422
- };
423
- var NotebookUnavailableError = class extends Error {
424
- constructor(message = "Notebook is no longer available", raw = {}) {
425
- super(message);
426
- this.raw = raw;
427
- this.name = "NotebookUnavailableError";
428
- }
429
- };
430
- var UnsupportedRuntimeTransportError = class extends Error {
431
- constructor(message) {
432
- super(message);
433
- this.name = "UnsupportedRuntimeTransportError";
434
- }
435
- };
436
-
437
508
  // src/utils/promise.ts
438
509
  var timeout = (prom, time3) => {
439
510
  let timer;