@dxos/async 0.8.4-staging.ac66bdf99f → 0.9.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.
Files changed (32) hide show
  1. package/LICENSE +102 -5
  2. package/dist/lib/browser/index.mjs +28 -85
  3. package/dist/lib/browser/index.mjs.map +3 -3
  4. package/dist/lib/browser/meta.json +1 -1
  5. package/dist/lib/node-esm/index.mjs +28 -85
  6. package/dist/lib/node-esm/index.mjs.map +3 -3
  7. package/dist/lib/node-esm/meta.json +1 -1
  8. package/dist/types/src/callback.d.ts.map +1 -1
  9. package/dist/types/src/chain.d.ts.map +1 -1
  10. package/dist/types/src/cleanup.d.ts.map +1 -1
  11. package/dist/types/src/debounce.d.ts.map +1 -1
  12. package/dist/types/src/errors.d.ts.map +1 -1
  13. package/dist/types/src/event-emitter.d.ts.map +1 -1
  14. package/dist/types/src/events.d.ts.map +1 -1
  15. package/dist/types/src/mutex.d.ts.map +1 -1
  16. package/dist/types/src/observable-value.d.ts.map +1 -1
  17. package/dist/types/src/observable.d.ts.map +1 -1
  18. package/dist/types/src/persistent-lifecycle.d.ts +1 -0
  19. package/dist/types/src/persistent-lifecycle.d.ts.map +1 -1
  20. package/dist/types/src/stream-to-array.d.ts.map +1 -1
  21. package/dist/types/src/task-scheduling.d.ts.map +1 -1
  22. package/dist/types/src/test-stream.d.ts.map +1 -1
  23. package/dist/types/src/testing.d.ts.map +1 -1
  24. package/dist/types/src/timeout.d.ts.map +1 -1
  25. package/dist/types/src/timer.d.ts.map +1 -1
  26. package/dist/types/src/track-leaks.d.ts.map +1 -1
  27. package/dist/types/src/trigger.d.ts.map +1 -1
  28. package/dist/types/src/update-scheduler.d.ts.map +1 -1
  29. package/dist/types/tsconfig.tsbuildinfo +1 -1
  30. package/package.json +8 -11
  31. package/src/persistent-lifecycle.test.ts +36 -0
  32. package/src/persistent-lifecycle.ts +31 -4
@@ -1 +1 @@
1
- {"inputs":{"src/callback.ts":{"bytes":1595,"imports":[],"format":"esm"},"src/chain.ts":{"bytes":1619,"imports":[],"format":"esm"},"src/cleanup.ts":{"bytes":6807,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/debounce.ts":{"bytes":9168,"imports":[],"format":"esm"},"src/errors.ts":{"bytes":2911,"imports":[],"format":"esm"},"src/timeout.ts":{"bytes":7598,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"src/errors.ts","kind":"import-statement","original":"./errors"}],"format":"esm"},"src/event-emitter.ts":{"bytes":4155,"imports":[{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"src/events.ts":{"bytes":39464,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true}],"format":"esm"},"src/mutex.ts":{"bytes":12647,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"format":"esm"},"src/trigger.ts":{"bytes":14052,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"src/errors.ts","kind":"import-statement","original":"./errors"},{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"src/observable.ts":{"bytes":17824,"imports":[{"path":"zen-observable","kind":"import-statement","external":true},{"path":"zen-push","kind":"import-statement","external":true},{"path":"src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"src/observable-value.ts":{"bytes":6444,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/track-leaks.ts":{"bytes":8414,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/task-scheduling.ts":{"bytes":23503,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"src/track-leaks.ts","kind":"import-statement","original":"./track-leaks"},{"path":"src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"src/persistent-lifecycle.ts":{"bytes":12773,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/mutex.ts","kind":"import-statement","original":"./mutex"},{"path":"src/task-scheduling.ts","kind":"import-statement","original":"./task-scheduling"},{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"src/push-iterable.ts":{"bytes":5922,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"src/stream-to-array.ts":{"bytes":4935,"imports":[],"format":"esm"},"src/test-stream.ts":{"bytes":5038,"imports":[{"path":"@dxos/node-std/stream","kind":"import-statement","external":true},{"path":"src/events.ts","kind":"import-statement","original":"./events"},{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"src/testing.ts":{"bytes":8388,"imports":[{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"},{"path":"src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"src/timer.ts":{"bytes":5879,"imports":[{"path":"src/events.ts","kind":"import-statement","original":"./events"}],"format":"esm"},"src/update-scheduler.ts":{"bytes":9706,"imports":[{"path":"src/task-scheduling.ts","kind":"import-statement","original":"./task-scheduling"}],"format":"esm"},"src/index.ts":{"bytes":2335,"imports":[{"path":"src/callback.ts","kind":"import-statement","original":"./callback"},{"path":"src/chain.ts","kind":"import-statement","original":"./chain"},{"path":"src/cleanup.ts","kind":"import-statement","original":"./cleanup"},{"path":"src/debounce.ts","kind":"import-statement","original":"./debounce"},{"path":"src/errors.ts","kind":"import-statement","original":"./errors"},{"path":"src/event-emitter.ts","kind":"import-statement","original":"./event-emitter"},{"path":"src/events.ts","kind":"import-statement","original":"./events"},{"path":"src/mutex.ts","kind":"import-statement","original":"./mutex"},{"path":"src/observable.ts","kind":"import-statement","original":"./observable"},{"path":"src/observable-value.ts","kind":"import-statement","original":"./observable-value"},{"path":"src/persistent-lifecycle.ts","kind":"import-statement","original":"./persistent-lifecycle"},{"path":"src/push-iterable.ts","kind":"import-statement","original":"./push-iterable"},{"path":"src/stream-to-array.ts","kind":"import-statement","original":"./stream-to-array"},{"path":"src/task-scheduling.ts","kind":"import-statement","original":"./task-scheduling"},{"path":"src/test-stream.ts","kind":"import-statement","original":"./test-stream"},{"path":"src/testing.ts","kind":"import-statement","original":"./testing"},{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"},{"path":"src/timer.ts","kind":"import-statement","original":"./timer"},{"path":"src/track-leaks.ts","kind":"import-statement","original":"./track-leaks"},{"path":"src/trigger.ts","kind":"import-statement","original":"./trigger"},{"path":"src/update-scheduler.ts","kind":"import-statement","original":"./update-scheduler"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":104247},"dist/lib/browser/index.mjs":{"imports":[{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"zen-observable","kind":"import-statement","external":true},{"path":"zen-push","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/node-std/stream","kind":"import-statement","external":true}],"exports":["AsyncTask","CancellableObservableProvider","DeferredTask","Event","MulticastObservable","Mutex","MutexGuard","Observable","ObservableProvider","PersistentLifecycle","PushStream","SubscriptionList","SubscriptionSet","TestStream","TimeoutError","Timer","Trigger","TriggerState","UpdateScheduler","addEventListener","addListener","asyncReturn","asyncTimeout","chain","combine","debounce","debounceAndThrottle","delay","dumpLeaks","interval","latch","makePushIterable","observableError","onEvent","promiseFromCallback","runInContext","runInContextAsync","scheduleExponentialBackoffTaskInterval","scheduleMicroTask","scheduleTask","scheduleTaskInterval","sleep","sleepWithContext","streamToArray","synchronized","throttle","timeout","toError","trackLeaks","trackResource","trigger","unrefTimeout","until","untilError","untilPromise","waitForCondition","waitForEvent"],"entryPoint":"src/index.ts","inputs":{"src/callback.ts":{"bytesInOutput":185},"src/index.ts":{"bytesInOutput":0},"src/chain.ts":{"bytesInOutput":216},"src/cleanup.ts":{"bytesInOutput":1090},"src/debounce.ts":{"bytesInOutput":1032},"src/errors.ts":{"bytesInOutput":476},"src/timeout.ts":{"bytesInOutput":1479},"src/event-emitter.ts":{"bytesInOutput":697},"src/events.ts":{"bytesInOutput":8703},"src/mutex.ts":{"bytesInOutput":2429},"src/observable.ts":{"bytesInOutput":3691},"src/trigger.ts":{"bytesInOutput":3014},"src/observable-value.ts":{"bytesInOutput":951},"src/persistent-lifecycle.ts":{"bytesInOutput":3536},"src/task-scheduling.ts":{"bytesInOutput":5099},"src/track-leaks.ts":{"bytesInOutput":2152},"src/push-iterable.ts":{"bytesInOutput":1389},"src/stream-to-array.ts":{"bytesInOutput":967},"src/test-stream.ts":{"bytesInOutput":915},"src/testing.ts":{"bytesInOutput":1419},"src/timer.ts":{"bytesInOutput":1065},"src/update-scheduler.ts":{"bytesInOutput":1952}},"bytes":43966}}}
1
+ {"inputs":{"src/callback.ts":{"bytes":1516,"imports":[],"format":"esm"},"src/chain.ts":{"bytes":1547,"imports":[],"format":"esm"},"src/cleanup.ts":{"bytes":6733,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/debounce.ts":{"bytes":9093,"imports":[],"format":"esm"},"src/errors.ts":{"bytes":2838,"imports":[],"format":"esm"},"src/timeout.ts":{"bytes":7524,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"src/errors.ts","kind":"import-statement","original":"./errors"}],"format":"esm"},"src/event-emitter.ts":{"bytes":4075,"imports":[{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"src/events.ts":{"bytes":39225,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true}],"format":"esm"},"src/mutex.ts":{"bytes":12575,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"format":"esm"},"src/trigger.ts":{"bytes":13827,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"src/errors.ts","kind":"import-statement","original":"./errors"},{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"src/observable.ts":{"bytes":17747,"imports":[{"path":"zen-observable","kind":"import-statement","external":true},{"path":"zen-push","kind":"import-statement","external":true},{"path":"src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"src/observable-value.ts":{"bytes":6361,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/track-leaks.ts":{"bytes":7844,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/task-scheduling.ts":{"bytes":23346,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"src/track-leaks.ts","kind":"import-statement","original":"./track-leaks"},{"path":"src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"src/persistent-lifecycle.ts":{"bytes":15479,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/mutex.ts","kind":"import-statement","original":"./mutex"},{"path":"src/task-scheduling.ts","kind":"import-statement","original":"./task-scheduling"},{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"src/push-iterable.ts":{"bytes":5570,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"src/stream-to-array.ts":{"bytes":4853,"imports":[],"format":"esm"},"src/test-stream.ts":{"bytes":4960,"imports":[{"path":"@dxos/node-std/stream","kind":"import-statement","external":true},{"path":"src/events.ts","kind":"import-statement","original":"./events"},{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"src/testing.ts":{"bytes":8314,"imports":[{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"},{"path":"src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"src/timer.ts":{"bytes":5803,"imports":[{"path":"src/events.ts","kind":"import-statement","original":"./events"}],"format":"esm"},"src/update-scheduler.ts":{"bytes":9619,"imports":[{"path":"src/task-scheduling.ts","kind":"import-statement","original":"./task-scheduling"}],"format":"esm"},"src/index.ts":{"bytes":2259,"imports":[{"path":"src/callback.ts","kind":"import-statement","original":"./callback"},{"path":"src/chain.ts","kind":"import-statement","original":"./chain"},{"path":"src/cleanup.ts","kind":"import-statement","original":"./cleanup"},{"path":"src/debounce.ts","kind":"import-statement","original":"./debounce"},{"path":"src/errors.ts","kind":"import-statement","original":"./errors"},{"path":"src/event-emitter.ts","kind":"import-statement","original":"./event-emitter"},{"path":"src/events.ts","kind":"import-statement","original":"./events"},{"path":"src/mutex.ts","kind":"import-statement","original":"./mutex"},{"path":"src/observable.ts","kind":"import-statement","original":"./observable"},{"path":"src/observable-value.ts","kind":"import-statement","original":"./observable-value"},{"path":"src/persistent-lifecycle.ts","kind":"import-statement","original":"./persistent-lifecycle"},{"path":"src/push-iterable.ts","kind":"import-statement","original":"./push-iterable"},{"path":"src/stream-to-array.ts","kind":"import-statement","original":"./stream-to-array"},{"path":"src/task-scheduling.ts","kind":"import-statement","original":"./task-scheduling"},{"path":"src/test-stream.ts","kind":"import-statement","original":"./test-stream"},{"path":"src/testing.ts","kind":"import-statement","original":"./testing"},{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"},{"path":"src/timer.ts","kind":"import-statement","original":"./timer"},{"path":"src/track-leaks.ts","kind":"import-statement","original":"./track-leaks"},{"path":"src/trigger.ts","kind":"import-statement","original":"./trigger"},{"path":"src/update-scheduler.ts","kind":"import-statement","original":"./update-scheduler"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":105548},"dist/lib/browser/index.mjs":{"imports":[{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"zen-observable","kind":"import-statement","external":true},{"path":"zen-push","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/node-std/stream","kind":"import-statement","external":true}],"exports":["AsyncTask","CancellableObservableProvider","DeferredTask","Event","MulticastObservable","Mutex","MutexGuard","Observable","ObservableProvider","PersistentLifecycle","PushStream","SubscriptionList","SubscriptionSet","TestStream","TimeoutError","Timer","Trigger","TriggerState","UpdateScheduler","addEventListener","addListener","asyncReturn","asyncTimeout","chain","combine","debounce","debounceAndThrottle","delay","dumpLeaks","interval","latch","makePushIterable","observableError","onEvent","promiseFromCallback","runInContext","runInContextAsync","scheduleExponentialBackoffTaskInterval","scheduleMicroTask","scheduleTask","scheduleTaskInterval","sleep","sleepWithContext","streamToArray","synchronized","throttle","timeout","toError","trackLeaks","trackResource","trigger","unrefTimeout","until","untilError","untilPromise","waitForCondition","waitForEvent"],"entryPoint":"src/index.ts","inputs":{"src/callback.ts":{"bytesInOutput":185},"src/index.ts":{"bytesInOutput":0},"src/chain.ts":{"bytesInOutput":216},"src/cleanup.ts":{"bytesInOutput":1090},"src/debounce.ts":{"bytesInOutput":1032},"src/errors.ts":{"bytesInOutput":476},"src/timeout.ts":{"bytesInOutput":1479},"src/event-emitter.ts":{"bytesInOutput":697},"src/events.ts":{"bytesInOutput":8516},"src/mutex.ts":{"bytesInOutput":2429},"src/observable.ts":{"bytesInOutput":3691},"src/trigger.ts":{"bytesInOutput":2831},"src/observable-value.ts":{"bytesInOutput":951},"src/persistent-lifecycle.ts":{"bytesInOutput":3433},"src/task-scheduling.ts":{"bytesInOutput":4964},"src/track-leaks.ts":{"bytesInOutput":1691},"src/push-iterable.ts":{"bytesInOutput":1145},"src/stream-to-array.ts":{"bytesInOutput":967},"src/test-stream.ts":{"bytesInOutput":915},"src/testing.ts":{"bytesInOutput":1419},"src/timer.ts":{"bytesInOutput":1065},"src/update-scheduler.ts":{"bytesInOutput":1952}},"bytes":42653}}}
@@ -217,7 +217,6 @@ var waitForEvent = (eventEmitter, eventName, test, timeout2, error) => {
217
217
 
218
218
  // src/events.ts
219
219
  import { Context } from "@dxos/context";
220
- var __dxlog_file = "/__w/dxos/dxos/packages/common/async/src/events.ts";
221
220
  var DO_NOT_ERROR_ON_ASYNC_CALLBACK = true;
222
221
  var Event = class _Event {
223
222
  /**
@@ -272,10 +271,7 @@ var Event = class _Event {
272
271
  _ctx,
273
272
  _callback
274
273
  ] : [
275
- new Context(void 0, {
276
- F: __dxlog_file,
277
- L: 132
278
- }),
274
+ new Context(),
279
275
  _ctx
280
276
  ];
281
277
  const weak = !!options?.weak;
@@ -305,10 +301,7 @@ var Event = class _Event {
305
301
  _ctx,
306
302
  _callback
307
303
  ] : [
308
- new Context(void 0, {
309
- F: __dxlog_file,
310
- L: 169
311
- }),
304
+ new Context(),
312
305
  _ctx
313
306
  ];
314
307
  const listener = new EventListener(this, callback, ctx, true, false);
@@ -642,7 +635,6 @@ import PushStream from "zen-push";
642
635
 
643
636
  // src/trigger.ts
644
637
  import { invariant } from "@dxos/invariant";
645
- var __dxlog_file2 = "/__w/dxos/dxos/packages/common/async/src/trigger.ts";
646
638
  var trigger = (timeout2) => {
647
639
  let callback;
648
640
  const promise = new Promise((resolve, reject) => {
@@ -734,15 +726,7 @@ var Trigger = class {
734
726
  }
735
727
  };
736
728
  var latch = ({ count = 1, timeout: timeout2 } = {}) => {
737
- invariant(count >= 0, void 0, {
738
- F: __dxlog_file2,
739
- L: 139,
740
- S: void 0,
741
- A: [
742
- "count >= 0",
743
- ""
744
- ]
745
- });
729
+ invariant(count >= 0);
746
730
  let t;
747
731
  let doResolve;
748
732
  let doReject;
@@ -945,7 +929,6 @@ import { StackTrace as StackTrace2 } from "@dxos/debug";
945
929
  // src/track-leaks.ts
946
930
  import { StackTrace } from "@dxos/debug";
947
931
  import { log } from "@dxos/log";
948
- var __dxlog_file3 = "/__w/dxos/dxos/packages/common/async/src/track-leaks.ts";
949
932
  var enabled = typeof process !== "undefined" && !!process.env.DX_TRACK_LEAKS;
950
933
  var openResources = /* @__PURE__ */ new Set();
951
934
  var handleSymbol = /* @__PURE__ */ Symbol("checkLeaksHandle");
@@ -995,31 +978,11 @@ var dumpLeaks = () => {
995
978
  if (!enabled) {
996
979
  return;
997
980
  }
998
- log.info(`Leaked resources ${openResources.size}:`, void 0, {
999
- F: __dxlog_file3,
1000
- L: 82,
1001
- S: void 0,
1002
- C: (f, a) => f(...a)
1003
- });
981
+ log.info(`Leaked resources ${openResources.size}:`);
1004
982
  for (const resource of openResources) {
1005
- log.info(`- ${resource.name} at`, void 0, {
1006
- F: __dxlog_file3,
1007
- L: 84,
1008
- S: void 0,
1009
- C: (f, a) => f(...a)
1010
- });
1011
- log.info(resource.openStack.getStack(1), void 0, {
1012
- F: __dxlog_file3,
1013
- L: 85,
1014
- S: void 0,
1015
- C: (f, a) => f(...a)
1016
- });
1017
- log.info("\n", void 0, {
1018
- F: __dxlog_file3,
1019
- L: 86,
1020
- S: void 0,
1021
- C: (f, a) => f(...a)
1022
- });
983
+ log.info(`- ${resource.name} at`);
984
+ log.info(resource.openStack.getStack(1));
985
+ log.info("\n");
1023
986
  }
1024
987
  };
1025
988
  if (enabled) {
@@ -1027,7 +990,6 @@ if (enabled) {
1027
990
  }
1028
991
 
1029
992
  // src/task-scheduling.ts
1030
- var __dxlog_file4 = "/__w/dxos/dxos/packages/common/async/src/task-scheduling.ts";
1031
993
  var DeferredTask = class {
1032
994
  _ctx;
1033
995
  _callback;
@@ -1094,10 +1056,7 @@ var AsyncTask = class {
1094
1056
  * When the context is disposed, the task is cancelled and cannot be scheduled again.
1095
1057
  */
1096
1058
  open() {
1097
- this.#ctx = new Context2(void 0, {
1098
- F: __dxlog_file4,
1099
- L: 102
1100
- });
1059
+ this.#ctx = new Context2();
1101
1060
  }
1102
1061
  /**
1103
1062
  * Closes the task and waits for it to finish if it is running.
@@ -1238,9 +1197,9 @@ function _ts_decorate(decorators, target, key, desc) {
1238
1197
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1239
1198
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1240
1199
  }
1241
- var __dxlog_file5 = "/__w/dxos/dxos/packages/common/async/src/persistent-lifecycle.ts";
1242
1200
  var INIT_RESTART_DELAY = 100;
1243
1201
  var DEFAULT_MAX_RESTART_DELAY = 5e3;
1202
+ var STABLE_CONNECTION_THRESHOLD = 5e3;
1244
1203
  var PersistentLifecycle = class extends Resource {
1245
1204
  _start;
1246
1205
  _stop;
@@ -1249,6 +1208,7 @@ var PersistentLifecycle = class extends Resource {
1249
1208
  _currentState = void 0;
1250
1209
  _restartTask = void 0;
1251
1210
  _restartAfter = 0;
1211
+ _connectedAt = void 0;
1252
1212
  constructor({ start, stop, onRestart, maxRestartDelay = DEFAULT_MAX_RESTART_DELAY }) {
1253
1213
  super();
1254
1214
  this._start = start;
@@ -1264,29 +1224,27 @@ var PersistentLifecycle = class extends Resource {
1264
1224
  try {
1265
1225
  await this._restart();
1266
1226
  } catch (err) {
1227
+ if (this._ctx?.disposed) {
1228
+ return;
1229
+ }
1267
1230
  log2.warn("Restart failed", {
1268
1231
  err
1269
- }, {
1270
- F: __dxlog_file5,
1271
- L: 72,
1272
- S: this,
1273
- C: (f, a) => f(...a)
1274
1232
  });
1275
1233
  this._restartTask?.schedule();
1276
1234
  }
1277
1235
  });
1278
- this._currentState = await this._start().catch((err) => {
1236
+ try {
1237
+ this._currentState = await this._start();
1238
+ this._connectedAt = Date.now();
1239
+ } catch (err) {
1240
+ if (this._ctx?.disposed) {
1241
+ return;
1242
+ }
1279
1243
  log2.warn("Start failed", {
1280
1244
  err
1281
- }, {
1282
- F: __dxlog_file5,
1283
- L: 78,
1284
- S: this,
1285
- C: (f, a) => f(...a)
1286
1245
  });
1287
1246
  this._restartTask?.schedule();
1288
- return void 0;
1289
- });
1247
+ }
1290
1248
  }
1291
1249
  async _close() {
1292
1250
  await this._restartTask?.join();
@@ -1296,12 +1254,11 @@ var PersistentLifecycle = class extends Resource {
1296
1254
  async _restart() {
1297
1255
  log2(`restarting in ${this._restartAfter}ms`, {
1298
1256
  state: this._lifecycleState
1299
- }, {
1300
- F: __dxlog_file5,
1301
- L: 91,
1302
- S: this,
1303
- C: (f, a) => f(...a)
1304
1257
  });
1258
+ if (this._connectedAt !== void 0 && Date.now() - this._connectedAt >= STABLE_CONNECTION_THRESHOLD) {
1259
+ this._restartAfter = 0;
1260
+ }
1261
+ this._connectedAt = void 0;
1305
1262
  await this._stopCurrentState();
1306
1263
  if (this._lifecycleState !== LifecycleState.OPEN) {
1307
1264
  return;
@@ -1311,7 +1268,7 @@ var PersistentLifecycle = class extends Resource {
1311
1268
  await warnAfterTimeout2(5e3, "Connection establishment takes too long", async () => {
1312
1269
  this._currentState = await this._start();
1313
1270
  });
1314
- this._restartAfter = 0;
1271
+ this._connectedAt = Date.now();
1315
1272
  await this._onRestart?.();
1316
1273
  }
1317
1274
  async _stopCurrentState() {
@@ -1319,12 +1276,7 @@ var PersistentLifecycle = class extends Resource {
1319
1276
  try {
1320
1277
  await this._stop(this._currentState);
1321
1278
  } catch (err) {
1322
- log2.catch(err, void 0, {
1323
- F: __dxlog_file5,
1324
- L: 113,
1325
- S: this,
1326
- C: (f, a) => f(...a)
1327
- });
1279
+ log2.catch(err);
1328
1280
  }
1329
1281
  this._currentState = void 0;
1330
1282
  }
@@ -1348,7 +1300,6 @@ _ts_decorate([
1348
1300
 
1349
1301
  // src/push-iterable.ts
1350
1302
  import { invariant as invariant2 } from "@dxos/invariant";
1351
- var __dxlog_file6 = "/__w/dxos/dxos/packages/common/async/src/push-iterable.ts";
1352
1303
  var makePushIterable = () => {
1353
1304
  const buf = [];
1354
1305
  const trigger2 = new Trigger({
@@ -1362,15 +1313,7 @@ var makePushIterable = () => {
1362
1313
  await trigger2.wait();
1363
1314
  }
1364
1315
  const item = buf.shift();
1365
- invariant2(item, void 0, {
1366
- F: __dxlog_file6,
1367
- L: 42,
1368
- S: this,
1369
- A: [
1370
- "item",
1371
- ""
1372
- ]
1373
- });
1316
+ invariant2(item);
1374
1317
  switch (item.kind) {
1375
1318
  case "next":
1376
1319
  return {