@signaltree/core 9.2.2 → 9.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.
Files changed (76) hide show
  1. package/README.md +42 -27
  2. package/dist/Action.js +15 -0
  3. package/dist/AsyncAction.js +91 -0
  4. package/dist/AsyncScheduler.js +37 -0
  5. package/dist/ObjectUnsubscribedError.js +11 -0
  6. package/dist/Observable.js +103 -0
  7. package/dist/OperatorSubscriber.js +62 -0
  8. package/dist/Scheduler.js +17 -0
  9. package/dist/Subject.js +162 -0
  10. package/dist/Subscriber.js +153 -0
  11. package/dist/Subscription.js +144 -0
  12. package/dist/UnsubscriptionError.js +14 -0
  13. package/dist/args.js +10 -0
  14. package/dist/arrRemove.js +8 -0
  15. package/dist/async.js +6 -0
  16. package/dist/config.js +4 -0
  17. package/dist/createErrorClass.js +12 -0
  18. package/dist/dateTimestampProvider.js +6 -0
  19. package/dist/debounceTime.js +46 -0
  20. package/dist/distinctUntilChanged.js +25 -0
  21. package/dist/enhancers/devtools/devtools.js +11 -5
  22. package/dist/enhancers/time-travel/time-travel.js +11 -5
  23. package/dist/errorContext.js +7 -0
  24. package/dist/executeSchedule.js +19 -0
  25. package/dist/filter.js +11 -0
  26. package/dist/from.js +8 -0
  27. package/dist/identity.js +5 -0
  28. package/dist/index.js +4 -0
  29. package/dist/innerFrom.js +145 -0
  30. package/dist/intervalProvider.js +17 -0
  31. package/dist/isArrayLike.js +3 -0
  32. package/dist/isAsyncIterable.js +7 -0
  33. package/dist/isFunction.js +5 -0
  34. package/dist/isInteropObservable.js +8 -0
  35. package/dist/isIterable.js +8 -0
  36. package/dist/isObservable.js +8 -0
  37. package/dist/isPromise.js +7 -0
  38. package/dist/isReadableStreamLike.js +40 -0
  39. package/dist/isScheduler.js +7 -0
  40. package/dist/iterator.js +9 -0
  41. package/dist/lib/internals/intercept-leaf-signals.js +4 -2
  42. package/dist/lib/markers/async-query.js +134 -0
  43. package/dist/lib/markers/async-source.js +122 -0
  44. package/dist/lib/rxjs-interop/rx-method.js +50 -0
  45. package/dist/lib/write-context.js +15 -0
  46. package/dist/lift.js +22 -0
  47. package/dist/noop.js +3 -0
  48. package/dist/observable2.js +3 -0
  49. package/dist/observeOn.js +12 -0
  50. package/dist/of.js +13 -0
  51. package/dist/pipe.js +15 -0
  52. package/dist/reportUnhandledError.js +11 -0
  53. package/dist/rxjs-interop.js +1 -0
  54. package/dist/scheduleArray.js +20 -0
  55. package/dist/scheduleAsyncIterable.js +25 -0
  56. package/dist/scheduleIterable.js +34 -0
  57. package/dist/scheduleObservable.js +9 -0
  58. package/dist/schedulePromise.js +9 -0
  59. package/dist/scheduleReadableStreamLike.js +8 -0
  60. package/dist/scheduled.js +39 -0
  61. package/dist/subscribeOn.js +10 -0
  62. package/dist/switchMap.js +26 -0
  63. package/dist/tap.js +42 -0
  64. package/dist/throwUnobservableError.js +5 -0
  65. package/dist/timeoutProvider.js +17 -0
  66. package/package.json +6 -1
  67. package/src/index.d.ts +5 -1
  68. package/src/lib/internals/intercept-leaf-signals.d.ts +4 -1
  69. package/src/lib/markers/async-query.d.ts +31 -0
  70. package/src/lib/markers/async-source.d.ts +27 -0
  71. package/src/lib/markers/index.d.ts +2 -0
  72. package/src/lib/rxjs-interop/index.d.ts +1 -0
  73. package/src/lib/rxjs-interop/rx-method.d.ts +11 -0
  74. package/src/lib/types.d.ts +8 -0
  75. package/src/lib/write-context.d.ts +3 -0
  76. package/src/rxjs-interop.d.ts +1 -0
@@ -0,0 +1,153 @@
1
+ import { __extends } from 'tslib';
2
+ import { isFunction } from './isFunction.js';
3
+ import { isSubscription, Subscription } from './Subscription.js';
4
+ import { reportUnhandledError } from './reportUnhandledError.js';
5
+ import { noop } from './noop.js';
6
+
7
+ var Subscriber = (function (_super) {
8
+ __extends(Subscriber, _super);
9
+ function Subscriber(destination) {
10
+ var _this = _super.call(this) || this;
11
+ _this.isStopped = false;
12
+ if (destination) {
13
+ _this.destination = destination;
14
+ if (isSubscription(destination)) {
15
+ destination.add(_this);
16
+ }
17
+ }
18
+ else {
19
+ _this.destination = EMPTY_OBSERVER;
20
+ }
21
+ return _this;
22
+ }
23
+ Subscriber.create = function (next, error, complete) {
24
+ return new SafeSubscriber(next, error, complete);
25
+ };
26
+ Subscriber.prototype.next = function (value) {
27
+ if (this.isStopped) ;
28
+ else {
29
+ this._next(value);
30
+ }
31
+ };
32
+ Subscriber.prototype.error = function (err) {
33
+ if (this.isStopped) ;
34
+ else {
35
+ this.isStopped = true;
36
+ this._error(err);
37
+ }
38
+ };
39
+ Subscriber.prototype.complete = function () {
40
+ if (this.isStopped) ;
41
+ else {
42
+ this.isStopped = true;
43
+ this._complete();
44
+ }
45
+ };
46
+ Subscriber.prototype.unsubscribe = function () {
47
+ if (!this.closed) {
48
+ this.isStopped = true;
49
+ _super.prototype.unsubscribe.call(this);
50
+ this.destination = null;
51
+ }
52
+ };
53
+ Subscriber.prototype._next = function (value) {
54
+ this.destination.next(value);
55
+ };
56
+ Subscriber.prototype._error = function (err) {
57
+ try {
58
+ this.destination.error(err);
59
+ }
60
+ finally {
61
+ this.unsubscribe();
62
+ }
63
+ };
64
+ Subscriber.prototype._complete = function () {
65
+ try {
66
+ this.destination.complete();
67
+ }
68
+ finally {
69
+ this.unsubscribe();
70
+ }
71
+ };
72
+ return Subscriber;
73
+ }(Subscription));
74
+ var ConsumerObserver = (function () {
75
+ function ConsumerObserver(partialObserver) {
76
+ this.partialObserver = partialObserver;
77
+ }
78
+ ConsumerObserver.prototype.next = function (value) {
79
+ var partialObserver = this.partialObserver;
80
+ if (partialObserver.next) {
81
+ try {
82
+ partialObserver.next(value);
83
+ }
84
+ catch (error) {
85
+ handleUnhandledError(error);
86
+ }
87
+ }
88
+ };
89
+ ConsumerObserver.prototype.error = function (err) {
90
+ var partialObserver = this.partialObserver;
91
+ if (partialObserver.error) {
92
+ try {
93
+ partialObserver.error(err);
94
+ }
95
+ catch (error) {
96
+ handleUnhandledError(error);
97
+ }
98
+ }
99
+ else {
100
+ handleUnhandledError(err);
101
+ }
102
+ };
103
+ ConsumerObserver.prototype.complete = function () {
104
+ var partialObserver = this.partialObserver;
105
+ if (partialObserver.complete) {
106
+ try {
107
+ partialObserver.complete();
108
+ }
109
+ catch (error) {
110
+ handleUnhandledError(error);
111
+ }
112
+ }
113
+ };
114
+ return ConsumerObserver;
115
+ }());
116
+ var SafeSubscriber = (function (_super) {
117
+ __extends(SafeSubscriber, _super);
118
+ function SafeSubscriber(observerOrNext, error, complete) {
119
+ var _this = _super.call(this) || this;
120
+ var partialObserver;
121
+ if (isFunction(observerOrNext) || !observerOrNext) {
122
+ partialObserver = {
123
+ next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),
124
+ error: error !== null && error !== void 0 ? error : undefined,
125
+ complete: complete !== null && complete !== void 0 ? complete : undefined,
126
+ };
127
+ }
128
+ else {
129
+ {
130
+ partialObserver = observerOrNext;
131
+ }
132
+ }
133
+ _this.destination = new ConsumerObserver(partialObserver);
134
+ return _this;
135
+ }
136
+ return SafeSubscriber;
137
+ }(Subscriber));
138
+ function handleUnhandledError(error) {
139
+ {
140
+ reportUnhandledError(error);
141
+ }
142
+ }
143
+ function defaultErrorHandler(err) {
144
+ throw err;
145
+ }
146
+ var EMPTY_OBSERVER = {
147
+ closed: true,
148
+ next: noop,
149
+ error: defaultErrorHandler,
150
+ complete: noop,
151
+ };
152
+
153
+ export { EMPTY_OBSERVER, SafeSubscriber, Subscriber };
@@ -0,0 +1,144 @@
1
+ import { __values, __spreadArray, __read } from 'tslib';
2
+ import { isFunction } from './isFunction.js';
3
+ import { UnsubscriptionError } from './UnsubscriptionError.js';
4
+ import { arrRemove } from './arrRemove.js';
5
+
6
+ var Subscription = (function () {
7
+ function Subscription(initialTeardown) {
8
+ this.initialTeardown = initialTeardown;
9
+ this.closed = false;
10
+ this._parentage = null;
11
+ this._finalizers = null;
12
+ }
13
+ Subscription.prototype.unsubscribe = function () {
14
+ var e_1, _a, e_2, _b;
15
+ var errors;
16
+ if (!this.closed) {
17
+ this.closed = true;
18
+ var _parentage = this._parentage;
19
+ if (_parentage) {
20
+ this._parentage = null;
21
+ if (Array.isArray(_parentage)) {
22
+ try {
23
+ for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {
24
+ var parent_1 = _parentage_1_1.value;
25
+ parent_1.remove(this);
26
+ }
27
+ }
28
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
29
+ finally {
30
+ try {
31
+ if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);
32
+ }
33
+ finally { if (e_1) throw e_1.error; }
34
+ }
35
+ }
36
+ else {
37
+ _parentage.remove(this);
38
+ }
39
+ }
40
+ var initialFinalizer = this.initialTeardown;
41
+ if (isFunction(initialFinalizer)) {
42
+ try {
43
+ initialFinalizer();
44
+ }
45
+ catch (e) {
46
+ errors = e instanceof UnsubscriptionError ? e.errors : [e];
47
+ }
48
+ }
49
+ var _finalizers = this._finalizers;
50
+ if (_finalizers) {
51
+ this._finalizers = null;
52
+ try {
53
+ for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {
54
+ var finalizer = _finalizers_1_1.value;
55
+ try {
56
+ execFinalizer(finalizer);
57
+ }
58
+ catch (err) {
59
+ errors = errors !== null && errors !== void 0 ? errors : [];
60
+ if (err instanceof UnsubscriptionError) {
61
+ errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));
62
+ }
63
+ else {
64
+ errors.push(err);
65
+ }
66
+ }
67
+ }
68
+ }
69
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
70
+ finally {
71
+ try {
72
+ if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);
73
+ }
74
+ finally { if (e_2) throw e_2.error; }
75
+ }
76
+ }
77
+ if (errors) {
78
+ throw new UnsubscriptionError(errors);
79
+ }
80
+ }
81
+ };
82
+ Subscription.prototype.add = function (teardown) {
83
+ var _a;
84
+ if (teardown && teardown !== this) {
85
+ if (this.closed) {
86
+ execFinalizer(teardown);
87
+ }
88
+ else {
89
+ if (teardown instanceof Subscription) {
90
+ if (teardown.closed || teardown._hasParent(this)) {
91
+ return;
92
+ }
93
+ teardown._addParent(this);
94
+ }
95
+ (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);
96
+ }
97
+ }
98
+ };
99
+ Subscription.prototype._hasParent = function (parent) {
100
+ var _parentage = this._parentage;
101
+ return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));
102
+ };
103
+ Subscription.prototype._addParent = function (parent) {
104
+ var _parentage = this._parentage;
105
+ this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;
106
+ };
107
+ Subscription.prototype._removeParent = function (parent) {
108
+ var _parentage = this._parentage;
109
+ if (_parentage === parent) {
110
+ this._parentage = null;
111
+ }
112
+ else if (Array.isArray(_parentage)) {
113
+ arrRemove(_parentage, parent);
114
+ }
115
+ };
116
+ Subscription.prototype.remove = function (teardown) {
117
+ var _finalizers = this._finalizers;
118
+ _finalizers && arrRemove(_finalizers, teardown);
119
+ if (teardown instanceof Subscription) {
120
+ teardown._removeParent(this);
121
+ }
122
+ };
123
+ Subscription.EMPTY = (function () {
124
+ var empty = new Subscription();
125
+ empty.closed = true;
126
+ return empty;
127
+ })();
128
+ return Subscription;
129
+ }());
130
+ var EMPTY_SUBSCRIPTION = Subscription.EMPTY;
131
+ function isSubscription(value) {
132
+ return (value instanceof Subscription ||
133
+ (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));
134
+ }
135
+ function execFinalizer(finalizer) {
136
+ if (isFunction(finalizer)) {
137
+ finalizer();
138
+ }
139
+ else {
140
+ finalizer.unsubscribe();
141
+ }
142
+ }
143
+
144
+ export { EMPTY_SUBSCRIPTION, Subscription, isSubscription };
@@ -0,0 +1,14 @@
1
+ import { createErrorClass } from './createErrorClass.js';
2
+
3
+ var UnsubscriptionError = createErrorClass(function (_super) {
4
+ return function UnsubscriptionErrorImpl(errors) {
5
+ _super(this);
6
+ this.message = errors
7
+ ? errors.length + " errors occurred during unsubscription:\n" + errors.map(function (err, i) { return i + 1 + ") " + err.toString(); }).join('\n ')
8
+ : '';
9
+ this.name = 'UnsubscriptionError';
10
+ this.errors = errors;
11
+ };
12
+ });
13
+
14
+ export { UnsubscriptionError };
package/dist/args.js ADDED
@@ -0,0 +1,10 @@
1
+ import { isScheduler } from './isScheduler.js';
2
+
3
+ function last(arr) {
4
+ return arr[arr.length - 1];
5
+ }
6
+ function popScheduler(args) {
7
+ return isScheduler(last(args)) ? args.pop() : undefined;
8
+ }
9
+
10
+ export { popScheduler };
@@ -0,0 +1,8 @@
1
+ function arrRemove(arr, item) {
2
+ if (arr) {
3
+ var index = arr.indexOf(item);
4
+ 0 <= index && arr.splice(index, 1);
5
+ }
6
+ }
7
+
8
+ export { arrRemove };
package/dist/async.js ADDED
@@ -0,0 +1,6 @@
1
+ import { AsyncAction } from './AsyncAction.js';
2
+ import { AsyncScheduler } from './AsyncScheduler.js';
3
+
4
+ var asyncScheduler = new AsyncScheduler(AsyncAction);
5
+
6
+ export { asyncScheduler };
package/dist/config.js ADDED
@@ -0,0 +1,4 @@
1
+ var config = {
2
+ Promise: undefined};
3
+
4
+ export { config };
@@ -0,0 +1,12 @@
1
+ function createErrorClass(createImpl) {
2
+ var _super = function (instance) {
3
+ Error.call(instance);
4
+ instance.stack = new Error().stack;
5
+ };
6
+ var ctorFunc = createImpl(_super);
7
+ ctorFunc.prototype = Object.create(Error.prototype);
8
+ ctorFunc.prototype.constructor = ctorFunc;
9
+ return ctorFunc;
10
+ }
11
+
12
+ export { createErrorClass };
@@ -0,0 +1,6 @@
1
+ var dateTimestampProvider = {
2
+ now: function () {
3
+ return (Date).now();
4
+ }};
5
+
6
+ export { dateTimestampProvider };
@@ -0,0 +1,46 @@
1
+ import { asyncScheduler } from './async.js';
2
+ import { operate } from './lift.js';
3
+ import { createOperatorSubscriber } from './OperatorSubscriber.js';
4
+
5
+ function debounceTime(dueTime, scheduler) {
6
+ if (scheduler === void 0) { scheduler = asyncScheduler; }
7
+ return operate(function (source, subscriber) {
8
+ var activeTask = null;
9
+ var lastValue = null;
10
+ var lastTime = null;
11
+ var emit = function () {
12
+ if (activeTask) {
13
+ activeTask.unsubscribe();
14
+ activeTask = null;
15
+ var value = lastValue;
16
+ lastValue = null;
17
+ subscriber.next(value);
18
+ }
19
+ };
20
+ function emitWhenIdle() {
21
+ var targetTime = lastTime + dueTime;
22
+ var now = scheduler.now();
23
+ if (now < targetTime) {
24
+ activeTask = this.schedule(undefined, targetTime - now);
25
+ subscriber.add(activeTask);
26
+ return;
27
+ }
28
+ emit();
29
+ }
30
+ source.subscribe(createOperatorSubscriber(subscriber, function (value) {
31
+ lastValue = value;
32
+ lastTime = scheduler.now();
33
+ if (!activeTask) {
34
+ activeTask = scheduler.schedule(emitWhenIdle, dueTime);
35
+ subscriber.add(activeTask);
36
+ }
37
+ }, function () {
38
+ emit();
39
+ subscriber.complete();
40
+ }, undefined, function () {
41
+ lastValue = activeTask = null;
42
+ }));
43
+ });
44
+ }
45
+
46
+ export { debounceTime };
@@ -0,0 +1,25 @@
1
+ import { identity } from './identity.js';
2
+ import { operate } from './lift.js';
3
+ import { createOperatorSubscriber } from './OperatorSubscriber.js';
4
+
5
+ function distinctUntilChanged(comparator, keySelector) {
6
+ if (keySelector === void 0) { keySelector = identity; }
7
+ comparator = comparator !== null && comparator !== void 0 ? comparator : defaultCompare;
8
+ return operate(function (source, subscriber) {
9
+ var previousKey;
10
+ var first = true;
11
+ source.subscribe(createOperatorSubscriber(subscriber, function (value) {
12
+ var currentKey = keySelector(value);
13
+ if (first || !comparator(previousKey, currentKey)) {
14
+ first = false;
15
+ previousKey = currentKey;
16
+ subscriber.next(value);
17
+ }
18
+ }));
19
+ });
20
+ }
21
+ function defaultCompare(a, b) {
22
+ return a === b;
23
+ }
24
+
25
+ export { distinctUntilChanged };
@@ -3,6 +3,7 @@ import { copyTreeProperties } from '../utils/copy-tree-properties.js';
3
3
  import { applyState, snapshotState } from '../../lib/utils.js';
4
4
  import { interceptLeafSignals } from '../../lib/internals/intercept-leaf-signals.js';
5
5
  import { getPathNotifier } from '../../lib/path-notifier.js';
6
+ import { withWriteContext } from '../../lib/write-context.js';
6
7
  import { ENHANCER_META } from '../../lib/types.js';
7
8
 
8
9
  function createActivityTracker(options) {
@@ -904,11 +905,16 @@ function devTools(config = {}) {
904
905
  if (state === undefined || state === null) return;
905
906
  isApplyingExternalState = true;
906
907
  try {
907
- if ('$' in tree) {
908
- applyState(tree.$, state);
909
- } else {
910
- originalTreeCall(state);
911
- }
908
+ withWriteContext({
909
+ intent: 'system',
910
+ source: 'time-travel'
911
+ }, () => {
912
+ if ('$' in tree) {
913
+ applyState(tree.$, state);
914
+ } else {
915
+ originalTreeCall(state);
916
+ }
917
+ });
912
918
  } finally {
913
919
  isApplyingExternalState = false;
914
920
  lastSnapshot = readSnapshot();
@@ -1,6 +1,7 @@
1
1
  import { snapshotState } from '../../lib/utils.js';
2
2
  import { interceptLeafSignals } from '../../lib/internals/intercept-leaf-signals.js';
3
3
  import { getPathNotifier } from '../../lib/path-notifier.js';
4
+ import { withWriteContext } from '../../lib/write-context.js';
4
5
  import { deepEqual, deepClone } from './utils.js';
5
6
  import { ENHANCER_META } from '../../lib/types.js';
6
7
 
@@ -122,11 +123,16 @@ class TimeTravelManager {
122
123
  return this.currentIndex < this.history.length - 1;
123
124
  }
124
125
  restoreState(state) {
125
- if (this.restoreStateFn) {
126
- this.restoreStateFn(state);
127
- } else {
128
- this.tree(state);
129
- }
126
+ withWriteContext({
127
+ intent: 'system',
128
+ source: 'time-travel'
129
+ }, () => {
130
+ if (this.restoreStateFn) {
131
+ this.restoreStateFn(state);
132
+ } else {
133
+ this.tree(state);
134
+ }
135
+ });
130
136
  }
131
137
  }
132
138
  function timeTravel(config = {}) {
@@ -0,0 +1,7 @@
1
+ function errorContext(cb) {
2
+ {
3
+ cb();
4
+ }
5
+ }
6
+
7
+ export { errorContext };
@@ -0,0 +1,19 @@
1
+ function executeSchedule(parentSubscription, scheduler, work, delay, repeat) {
2
+ if (delay === void 0) { delay = 0; }
3
+ if (repeat === void 0) { repeat = false; }
4
+ var scheduleSubscription = scheduler.schedule(function () {
5
+ work();
6
+ if (repeat) {
7
+ parentSubscription.add(this.schedule(null, delay));
8
+ }
9
+ else {
10
+ this.unsubscribe();
11
+ }
12
+ }, delay);
13
+ parentSubscription.add(scheduleSubscription);
14
+ if (!repeat) {
15
+ return scheduleSubscription;
16
+ }
17
+ }
18
+
19
+ export { executeSchedule };
package/dist/filter.js ADDED
@@ -0,0 +1,11 @@
1
+ import { operate } from './lift.js';
2
+ import { createOperatorSubscriber } from './OperatorSubscriber.js';
3
+
4
+ function filter(predicate, thisArg) {
5
+ return operate(function (source, subscriber) {
6
+ var index = 0;
7
+ source.subscribe(createOperatorSubscriber(subscriber, function (value) { return predicate.call(thisArg, value, index++) && subscriber.next(value); }));
8
+ });
9
+ }
10
+
11
+ export { filter };
package/dist/from.js ADDED
@@ -0,0 +1,8 @@
1
+ import { scheduled } from './scheduled.js';
2
+ import { innerFrom } from './innerFrom.js';
3
+
4
+ function from(input, scheduler) {
5
+ return scheduler ? scheduled(input, scheduler) : innerFrom(input);
6
+ }
7
+
8
+ export { from };
@@ -0,0 +1,5 @@
1
+ function identity(x) {
2
+ return x;
3
+ }
4
+
5
+ export { identity };
package/dist/index.js CHANGED
@@ -1,10 +1,14 @@
1
1
  export { signalTree } from './lib/signal-tree.js';
2
+ export { getActiveWriteContext, withWriteContext } from './lib/write-context.js';
3
+ export { interceptLeafSignals } from './lib/internals/intercept-leaf-signals.js';
2
4
  export { ENHANCER_META } from './lib/types.js';
3
5
  export { derivedFrom, externalDerived } from './lib/internals/derived-types.js';
4
6
  export { isDerivedMarker } from './lib/markers/derived.js';
5
7
  export { LoadingState, isStatusMarker, status } from './lib/markers/status.js';
6
8
  export { clearStoragePrefix, createStorageKeys, isStoredMarker, stored } from './lib/markers/stored.js';
7
9
  export { FORM_MARKER, createFormSignal, form, isFormMarker, validators } from './lib/markers/form.js';
10
+ export { ASYNC_SOURCE_MARKER, asyncSource, createAsyncSourceSignal, isAsyncSourceMarker } from './lib/markers/async-source.js';
11
+ export { ASYNC_QUERY_MARKER, asyncQuery, createAsyncQuerySignal, isAsyncQueryMarker } from './lib/markers/async-query.js';
8
12
  export { registerMarkerProcessor } from './lib/internals/materialize-markers.js';
9
13
  export { composeEnhancers, isAnySignal, isNodeAccessor, toWritableSignal } from './lib/utils.js';
10
14
  export { getPathNotifier } from './lib/path-notifier.js';