@warp-drive/core 5.8.0-alpha.40 → 5.8.0-alpha.41
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/declarations/configure.d.ts +1 -1
- package/declarations/reactive/-private/default-mode.d.ts +1 -1
- package/declarations/reactive/-private/fields/extension.d.ts +1 -1
- package/declarations/reactive/-private/fields/managed-array.d.ts +2 -2
- package/declarations/reactive/-private/fields/managed-object.d.ts +1 -1
- package/declarations/reactive.d.ts +2 -3
- package/declarations/signals/-leaked.d.ts +2 -0
- package/declarations/signals/-private.d.ts +6 -0
- package/declarations/{store/-private/new-core-tmp → signals}/promise-state.d.ts +1 -1
- package/declarations/{store/-private/new-core-tmp → signals}/request-state.d.ts +5 -5
- package/declarations/{store/-private/new-core-tmp → signals}/request-subscription.d.ts +4 -4
- package/declarations/store/-private/cache-handler/types.d.ts +2 -16
- package/declarations/store/-private/managers/cache-manager.d.ts +1 -14
- package/declarations/store/-private/record-arrays/legacy-many-array.d.ts +1 -1
- package/declarations/store/-private/record-arrays/resource-array.d.ts +1 -1
- package/declarations/store/-private.d.ts +0 -5
- package/declarations/store/deprecated/-private.d.ts +1 -1
- package/declarations/types/schema/fields.d.ts +4 -4
- package/dist/configure-DPUFCemT.js +1940 -0
- package/dist/configure.js +2 -1
- package/dist/{request-oqoLC9rz.js → future-BKkJJkj7.js} +1 -48
- package/dist/graph/-private.js +3 -2
- package/dist/{index-BKcD4JZK.js → index-CQP2NSqg.js} +58 -1826
- package/dist/index.js +5 -5
- package/dist/reactive/-private.js +1 -1
- package/dist/reactive.js +4 -129
- package/dist/request.js +49 -1
- package/dist/signals/-leaked.js +1 -0
- package/dist/store/-private.js +1 -2
- package/dist/types/-private.js +1 -1
- package/dist/unpkg/dev/-leaked-Co0EI6Go.js +1939 -0
- package/dist/unpkg/dev/configure.js +1 -1
- package/dist/unpkg/dev/{request-CA9K0gXq.js → future-DFfOzSoe.js} +1 -48
- package/dist/unpkg/dev/graph/-private.js +3 -2
- package/dist/unpkg/dev/{index-DqhXrNZ_.js → index-CepUPZlc.js} +57 -1825
- package/dist/unpkg/dev/index.js +4 -4
- package/dist/unpkg/dev/reactive/-private.js +1 -1
- package/dist/unpkg/dev/reactive.js +3 -127
- package/dist/unpkg/dev/request.js +49 -1
- package/dist/unpkg/dev/signals/-leaked.js +1 -0
- package/dist/unpkg/dev/store/-private.js +2 -3
- package/dist/unpkg/dev/types/-private.js +1 -1
- package/dist/unpkg/dev-deprecated/-leaked-DjMeRqdU.js +1939 -0
- package/dist/unpkg/dev-deprecated/configure.js +1 -1
- package/dist/unpkg/dev-deprecated/{request-CA9K0gXq.js → future-DFfOzSoe.js} +1 -48
- package/dist/unpkg/dev-deprecated/graph/-private.js +3 -2
- package/dist/unpkg/dev-deprecated/{index-BBlq5is_.js → index-C_EEmn_3.js} +56 -1824
- package/dist/unpkg/dev-deprecated/index.js +2 -2
- package/dist/unpkg/dev-deprecated/reactive.js +2 -126
- package/dist/unpkg/dev-deprecated/request.js +49 -1
- package/dist/unpkg/dev-deprecated/signals/-leaked.js +1 -0
- package/dist/unpkg/dev-deprecated/store/-private.js +1 -2
- package/dist/unpkg/dev-deprecated/types/-private.js +1 -1
- package/dist/unpkg/prod/-leaked-DUONXQDB.js +1676 -0
- package/dist/unpkg/prod/{-private-3C1OkYtZ.js → -private-sql1_mdx.js} +1 -1
- package/dist/unpkg/prod/configure.js +2 -1
- package/dist/unpkg/prod/graph/-private.js +3 -2
- package/dist/unpkg/prod/{handler-LAyD1Y5l.js → handler-EU_8ncB2.js} +2 -2
- package/dist/unpkg/prod/index.js +7 -5
- package/dist/unpkg/prod/promise-cache-DIT8Ypjq.js +19 -0
- package/dist/unpkg/prod/reactive/-private.js +1 -1
- package/dist/unpkg/prod/reactive.js +26 -123
- package/dist/unpkg/prod/{request-CN2LxbYX.js → request-BrJSCG6r.js} +3 -19
- package/dist/unpkg/prod/request.js +2 -1
- package/dist/unpkg/prod/{promise-state-ipG60SdD.js → schema-BSkHyoWz.js} +53 -1572
- package/dist/unpkg/prod/signals/-leaked.js +1 -0
- package/dist/unpkg/prod/store/-private.js +3 -4
- package/dist/unpkg/prod/types/-private.js +1 -1
- package/dist/unpkg/prod-deprecated/-leaked-DRNv9VIX.js +1676 -0
- package/dist/unpkg/prod-deprecated/configure.js +2 -1
- package/dist/unpkg/prod-deprecated/graph/-private.js +3 -2
- package/dist/unpkg/prod-deprecated/{handler-D639oFvl.js → handler-CCIu4sQ3.js} +1 -1
- package/dist/unpkg/prod-deprecated/{hooks-DGvi9teJ.js → hooks-Dv4Np0MY.js} +1 -1
- package/dist/unpkg/prod-deprecated/index.js +7 -5
- package/dist/unpkg/prod-deprecated/promise-cache-DIT8Ypjq.js +19 -0
- package/dist/unpkg/prod-deprecated/reactive.js +4 -125
- package/dist/unpkg/prod-deprecated/{request-CN2LxbYX.js → request-BrJSCG6r.js} +3 -19
- package/dist/unpkg/prod-deprecated/request.js +2 -1
- package/dist/unpkg/prod-deprecated/{promise-state-CYvoIPna.js → schema-CJcjHv0E.js} +52 -1571
- package/dist/unpkg/prod-deprecated/signals/-leaked.js +1 -0
- package/dist/unpkg/prod-deprecated/store/-private.js +2 -3
- package/dist/unpkg/prod-deprecated/types/-private.js +1 -1
- package/package.json +3 -3
- package/declarations/store/-private/new-core-tmp/expensive-subscription.d.ts +0 -24
- package/dist/configure-C3x8YXzL.js +0 -181
- package/dist/unpkg/dev/configure-BC66sfNO.js +0 -183
- package/dist/unpkg/dev-deprecated/configure-BC66sfNO.js +0 -183
- package/dist/unpkg/prod/configure-C0C1LpG6.js +0 -158
- package/dist/unpkg/prod/hooks-BfiqDg3O.js +0 -26
- package/dist/unpkg/prod-deprecated/configure-BQ8CpIcW.js +0 -158
- /package/declarations/{store/-private/new-core-tmp → signals}/reactivity/configure.d.ts +0 -0
- /package/declarations/{store/-private/new-core-tmp → signals}/reactivity/internal.d.ts +0 -0
- /package/declarations/{store/-private/new-core-tmp → signals}/reactivity/signal.d.ts +0 -0
- /package/dist/{unpkg/dev/-private-3C1OkYtZ.js → symbols-3C1OkYtZ.js} +0 -0
- /package/dist/{symbols-sql1_mdx.js → unpkg/dev/-private-sql1_mdx.js} +0 -0
package/dist/unpkg/dev/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { C as CacheHandler,
|
|
2
|
-
import "./-private-
|
|
3
|
-
import
|
|
4
|
-
import "./configure-BC66sfNO.js";
|
|
1
|
+
export { C as CacheHandler, F as Fetch, y as RequestManager, S as Store, r as cacheKeyFor, r as recordIdentifierFor, D as setIdentifierForgetMethod, A as setIdentifierGenerationMethod, E as setIdentifierResetMethod, B as setIdentifierUpdateMethod, G as setKeyInfoForResource, s as storeFor, z as useRecommendedStore } from "./index-CepUPZlc.js";
|
|
2
|
+
import "./-private-sql1_mdx.js";
|
|
3
|
+
import "./-leaked-Co0EI6Go.js";
|
|
5
4
|
import './store.js';
|
|
5
|
+
import './types/request.js';
|
|
6
6
|
import './types/runtime.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { C as Context } from "../-private-sql1_mdx.js";
|
|
@@ -1,127 +1,3 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
|
|
4
|
-
import "./runtime-DGG4CvlW.js";
|
|
5
|
-
import "./configure-BC66sfNO.js";
|
|
6
|
-
const Subscriptions = new WeakMap();
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* `ExpensiveSubscription` is a mechanism for non-reactive
|
|
10
|
-
* frameworks such as `react` to integrate with WarpDrive.
|
|
11
|
-
*
|
|
12
|
-
* This mechanism should never be used by frameworks or libraries
|
|
13
|
-
* that support fine-grained reactivity.
|
|
14
|
-
*
|
|
15
|
-
* ExpensiveSubscription is expensive *because* it doubles the number
|
|
16
|
-
* of notification callbacks required for each resource contained in
|
|
17
|
-
* the request being subscribed to. The more requests in-use, the more
|
|
18
|
-
* this cost adds up.
|
|
19
|
-
*/
|
|
20
|
-
class ExpensiveSubscription {
|
|
21
|
-
constructor(store, request) {
|
|
22
|
-
this._store = store;
|
|
23
|
-
this._request = request;
|
|
24
|
-
this._callbacks = new Set();
|
|
25
|
-
this._resources = new Map();
|
|
26
|
-
this._subscription = store.notifications.subscribe(request, this._notifyRequestChange);
|
|
27
|
-
this._updateResourceCallbacks();
|
|
28
|
-
}
|
|
29
|
-
_updateResourceCallbacks() {
|
|
30
|
-
const request = this._request;
|
|
31
|
-
const store = this._store;
|
|
32
|
-
const {
|
|
33
|
-
notifications
|
|
34
|
-
} = store;
|
|
35
|
-
const req = store.cache.peek(request);
|
|
36
|
-
const resources = this._resources;
|
|
37
|
-
const isInitialSubscription = resources.size === 0;
|
|
38
|
-
if (req && 'data' in req) {
|
|
39
|
-
if (Array.isArray(req.data)) {
|
|
40
|
-
for (const resourceKey of req.data) {
|
|
41
|
-
if (isInitialSubscription || !resources.has(resourceKey)) {
|
|
42
|
-
resources.set(resourceKey, notifications.subscribe(resourceKey, this._scheduleNotify));
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
} else if (req.data) {
|
|
46
|
-
if (isInitialSubscription || !resources.has(req.data)) {
|
|
47
|
-
resources.set(req.data, notifications.subscribe(req.data, this._scheduleNotify));
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
if (req && 'included' in req && Array.isArray(req.included)) {
|
|
52
|
-
for (const resourceKey of req.included) {
|
|
53
|
-
if (isInitialSubscription || !resources.has(resourceKey)) {
|
|
54
|
-
resources.set(resourceKey, notifications.subscribe(resourceKey, this._scheduleNotify));
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
_notifyRequestChange = () => {
|
|
60
|
-
this._updateResourceCallbacks();
|
|
61
|
-
this._scheduleNotify();
|
|
62
|
-
};
|
|
63
|
-
_scheduleNotify = () => {
|
|
64
|
-
this._notify = this._notify || Promise.resolve().then(() => {
|
|
65
|
-
for (const callback of this._callbacks) {
|
|
66
|
-
callback();
|
|
67
|
-
}
|
|
68
|
-
this._notify = null;
|
|
69
|
-
});
|
|
70
|
-
};
|
|
71
|
-
addWatcher(callback) {
|
|
72
|
-
this._callbacks.add(callback);
|
|
73
|
-
}
|
|
74
|
-
removeWatcher(callback) {
|
|
75
|
-
this._callbacks.delete(callback);
|
|
76
|
-
if (this._callbacks.size === 0) {
|
|
77
|
-
this.destroy();
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
destroy() {
|
|
81
|
-
Subscriptions.delete(this._request);
|
|
82
|
-
const {
|
|
83
|
-
notifications
|
|
84
|
-
} = this._store;
|
|
85
|
-
if (this._subscription) {
|
|
86
|
-
notifications.unsubscribe(this._subscription);
|
|
87
|
-
}
|
|
88
|
-
for (const token of this._resources.values()) {
|
|
89
|
-
notifications.unsubscribe(token);
|
|
90
|
-
}
|
|
91
|
-
this._callbacks.clear();
|
|
92
|
-
this._resources.clear();
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Creates an {@link ExpensiveSubscription} for the {@link RequestKey}
|
|
98
|
-
* if one does not already exist and adds a watcher to it.
|
|
99
|
-
*
|
|
100
|
-
* Returns a cleanup function. This should be called on-mount by a component
|
|
101
|
-
* that wants to subscribe to a request and cleanup should be called on dismount.
|
|
102
|
-
*
|
|
103
|
-
* ::: warning ⚠️ Avoid Using If Your App Supports Fine-grained Reactivity
|
|
104
|
-
* This mechanism should never be used by frameworks or libraries
|
|
105
|
-
* that support fine-grained reactivity.
|
|
106
|
-
* :::
|
|
107
|
-
*
|
|
108
|
-
* `ExpensiveSubscription` is a mechanism for non-reactive
|
|
109
|
-
* frameworks such as `react` to integrate with WarpDrive, for instance
|
|
110
|
-
* by treating a request as an [external store](https://react.dev/reference/react/useSyncExternalStore)
|
|
111
|
-
*
|
|
112
|
-
* `ExpensiveSubscription` is expensive *because* it doubles the number
|
|
113
|
-
* of notification callbacks required for each resource contained in
|
|
114
|
-
* the request being subscribed to. The more requests in-use, the more
|
|
115
|
-
* this cost adds up.
|
|
116
|
-
*/
|
|
117
|
-
function getExpensiveRequestSubscription(store, requestKey, callback) {
|
|
118
|
-
let subscription = Subscriptions.get(requestKey);
|
|
119
|
-
if (!subscription) {
|
|
120
|
-
subscription = new ExpensiveSubscription(store, requestKey);
|
|
121
|
-
}
|
|
122
|
-
subscription.addWatcher(callback);
|
|
123
|
-
return () => {
|
|
124
|
-
subscription.removeWatcher(callback);
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
export { getExpensiveRequestSubscription };
|
|
1
|
+
export { q as SchemaService, o as checkout, x as commit, u as fromIdentity, p as instantiateRecord, v as registerDerivations, t as teardownRecord, w as withDefaults } from "./index-CepUPZlc.js";
|
|
2
|
+
export { a as Checkout } from "./-private-sql1_mdx.js";
|
|
3
|
+
export { k as createRequestSubscription, m as getPromiseState, l as getRequestState } from "./-leaked-Co0EI6Go.js";
|
|
@@ -1 +1,49 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { c as createDeferred, g as getPromiseResult, s as setPromiseResult } from "./future-DFfOzSoe.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Brands the supplied object with the supplied response type.
|
|
5
|
+
*
|
|
6
|
+
* ```ts
|
|
7
|
+
* import type { ReactiveDataDocument } from '@warp-drive/core/reactive';
|
|
8
|
+
* import { withResponseType } from '@warp-drive/core/request';
|
|
9
|
+
* import type { User } from '#/data/user.ts'
|
|
10
|
+
*
|
|
11
|
+
* const result = await store.request(
|
|
12
|
+
* withResponseType<ReactiveDataDocument<User>>({ url: '/users/1' })
|
|
13
|
+
* );
|
|
14
|
+
*
|
|
15
|
+
* result.content.data; // will have type User
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
function withResponseType(obj) {
|
|
20
|
+
return obj;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Brands the supplied object with the supplied response type
|
|
25
|
+
* wrapped in {@link ReactiveDataDocument}. This is a convenience for
|
|
26
|
+
* the common case of using {@link withResponseType} with `ReactiveDataDocument`.
|
|
27
|
+
*
|
|
28
|
+
* ```ts
|
|
29
|
+
* import { withReactiveResponse } from '@warp-drive/core/request';
|
|
30
|
+
* import type { User } from '#/data/user.ts'
|
|
31
|
+
*
|
|
32
|
+
* const result = await store.request(
|
|
33
|
+
* withReactiveResponse<User>({ url: '/users/1' })
|
|
34
|
+
* );
|
|
35
|
+
*
|
|
36
|
+
* result.content.data; // will have type User
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* @public
|
|
40
|
+
*/
|
|
41
|
+
function withReactiveResponse(obj) {
|
|
42
|
+
return obj;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* @deprecated use {@link withResponseType} instead
|
|
47
|
+
*/
|
|
48
|
+
const withBrand = withResponseType;
|
|
49
|
+
export { withBrand, withReactiveResponse, withResponseType };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { D as DISPOSE, d as defineGate, q as defineNonEnumerableSignal, f as defineSignal, h as entangleSignal, t as gate, u as memoized, n as notifyInternalSignal, p as peekInternalSignal, r as signal, o as waitFor, w as withSignalStore } from "../-leaked-Co0EI6Go.js";
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import '../types/request.js';
|
|
2
|
-
import {
|
|
3
|
-
export { C as CacheHandler,
|
|
4
|
-
export { A as ARRAY_SIGNAL, O as OBJECT_SIGNAL, w as waitFor } from "../configure-BC66sfNO.js";
|
|
2
|
+
import { i as isResourceKey, c as coerceId } from "../index-CepUPZlc.js";
|
|
3
|
+
export { C as CacheHandler, R as RecordArrayManager, S as Store, j as StoreMap, _ as _clearCaches, n as _deprecatingNormalize, g as assertPrivateCapabilities, b as assertPrivateStore, k as createLegacyManyArray, e as ensureStringId, f as fastPush, d as isPrivateStore, a as isRequestKey, l as log, m as logGroup, r as recordIdentifierFor, h as setRecordIdentifier, s as storeFor } from "../index-CepUPZlc.js";
|
|
5
4
|
function isNonEmptyString(str) {
|
|
6
5
|
return Boolean(str && typeof str === 'string');
|
|
7
6
|
}
|