@darajs/core 1.7.0 → 1.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/dist/{dara_core-1.7.0-py3-none-any.whl → dara_core-1.7.2-py3-none-any.whl} +0 -0
- package/dist/shared/interactivity/persistence.d.ts.map +1 -1
- package/dist/shared/interactivity/persistence.js +17 -28
- package/dist/shared/interactivity/persistence.js.map +1 -1
- package/dist/shared/interactivity/plain-variable.d.ts.map +1 -1
- package/dist/shared/interactivity/plain-variable.js +79 -20
- package/dist/shared/interactivity/plain-variable.js.map +1 -1
- package/dist/umd/dara.core.umd.js +815 -234
- package/package.json +9 -9
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/persistence.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAMpC,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAW,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAgB,gBAAgB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/persistence.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAMpC,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAW,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAgB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AA4G9D;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CASxE;AAuGD,UAAU,SAAS;IACf,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE,GAAG,GAAG,CAAC,OAAO,CAAC;CACvD;AAED,UAAU,MAAM,CAAC,CAAC,GAAG,GAAG;IACpB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,yBAAyB,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;CAC1F;AAED,eAAO,MAAM,MAAM,EAAE,MAAM,CACvB,MAAM,EACN;IACI,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;CACnB,CAUJ,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,MAAM,GAAG,IAAI,CAQxF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAOvF"}
|
|
@@ -16,6 +16,10 @@ import { handleAuthErrors } from '../../api';
|
|
|
16
16
|
import { request } from '../../api/http';
|
|
17
17
|
import { WebSocketCtx, useRequestExtras } from '../context';
|
|
18
18
|
import { isEmbedded } from '../utils/embed';
|
|
19
|
+
/**
|
|
20
|
+
* Global map to store the extras for each store uid
|
|
21
|
+
*/
|
|
22
|
+
const STORE_EXTRAS_MAP = new Map();
|
|
19
23
|
/**
|
|
20
24
|
* RecoilSync implementation for BackendStore
|
|
21
25
|
*
|
|
@@ -25,37 +29,34 @@ import { isEmbedded } from '../utils/embed';
|
|
|
25
29
|
*/
|
|
26
30
|
function BackendStoreSync({ children }) {
|
|
27
31
|
const { client } = React.useContext(WebSocketCtx);
|
|
28
|
-
const extras = useRequestExtras();
|
|
29
32
|
const getStoreValue = React.useCallback((itemKey) => __awaiter(this, void 0, void 0, function* () {
|
|
30
|
-
const
|
|
33
|
+
const serializableExtras = STORE_EXTRAS_MAP.get(itemKey);
|
|
34
|
+
const response = yield request(`/api/core/store/${itemKey}`, {}, serializableExtras.extras);
|
|
31
35
|
yield handleAuthErrors(response, true);
|
|
32
36
|
yield validateResponse(response, `Failed to fetch the store value for key: ${itemKey}`);
|
|
33
37
|
const val = yield response.json();
|
|
34
38
|
return val;
|
|
35
|
-
}), [
|
|
39
|
+
}), []);
|
|
36
40
|
const syncStoreValues = React.useCallback(({ diff }) => __awaiter(this, void 0, void 0, function* () {
|
|
37
41
|
// keep track of extras -> diff to send each set of extras as a separate request
|
|
38
42
|
const extrasMap = new Map();
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const { serializedExtras, store_uid } = JSON.parse(encodedKey);
|
|
44
|
-
if (!extrasMap.has(serializedExtras)) {
|
|
45
|
-
extrasMap.set(serializedExtras, {});
|
|
43
|
+
for (const [itemKey, value] of diff.entries()) {
|
|
44
|
+
const extras = STORE_EXTRAS_MAP.get(itemKey);
|
|
45
|
+
if (!extrasMap.has(extras)) {
|
|
46
|
+
extrasMap.set(extras, {});
|
|
46
47
|
}
|
|
47
48
|
// store the value in the extras map
|
|
48
|
-
extrasMap.get(
|
|
49
|
+
extrasMap.get(extras)[itemKey] = value;
|
|
49
50
|
}
|
|
50
|
-
function sendRequest(
|
|
51
|
+
function sendRequest(serializableExtras, storeDiff) {
|
|
51
52
|
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
-
const response = yield request(`/api/core/store`, { body: JSON.stringify(storeDiff), method: 'POST' },
|
|
53
|
+
const response = yield request(`/api/core/store`, { body: JSON.stringify(storeDiff), method: 'POST' }, serializableExtras.extras);
|
|
53
54
|
yield handleAuthErrors(response, true);
|
|
54
55
|
yield validateResponse(response, `Failed to sync the store values`);
|
|
55
56
|
});
|
|
56
57
|
}
|
|
57
58
|
// Send a request with each different set of extras
|
|
58
|
-
yield Promise.allSettled(Array.from(extrasMap.entries()).map(([
|
|
59
|
+
yield Promise.allSettled(Array.from(extrasMap.entries()).map(([serializableExtras, storeDiff]) => sendRequest(serializableExtras, storeDiff)));
|
|
59
60
|
}), []);
|
|
60
61
|
const listenToStoreChanges = React.useCallback(({ updateItem }) => {
|
|
61
62
|
if (!client) {
|
|
@@ -75,25 +76,13 @@ function BackendStoreSync({ children }) {
|
|
|
75
76
|
* @param requestExtras extras object to create the effect for; used to pass through correct extras to write requests
|
|
76
77
|
*/
|
|
77
78
|
function backendStoreEffect(variable, requestExtras) {
|
|
79
|
+
// Assumption: the set of extras is unique to the store, i.e. the variable will not be used under different sets of extras
|
|
80
|
+
STORE_EXTRAS_MAP.set(variable.store.uid, requestExtras);
|
|
78
81
|
return syncEffect({
|
|
79
82
|
/** Use store uid as the unique identifier */
|
|
80
83
|
itemKey: variable.store.uid,
|
|
81
84
|
refine: mixed(),
|
|
82
85
|
storeKey: 'BackendStore',
|
|
83
|
-
/**
|
|
84
|
-
* This customizes how the value is written to the diff object then passed to the write function in the sync component.
|
|
85
|
-
*/
|
|
86
|
-
write: ({ write }, newValue) => {
|
|
87
|
-
/*
|
|
88
|
-
Encode the request extras into the key used so they can be passed through to the request.
|
|
89
|
-
This is needed as we need to read the correct extras to use for the request in the BackendStoreSync component which receives
|
|
90
|
-
the diff created with this `write` function.
|
|
91
|
-
*/
|
|
92
|
-
write(JSON.stringify({
|
|
93
|
-
serializedExtras: requestExtras.toJSON(),
|
|
94
|
-
store_uid: variable.store.uid,
|
|
95
|
-
}), newValue);
|
|
96
|
-
},
|
|
97
86
|
});
|
|
98
87
|
}
|
|
99
88
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../js/shared/interactivity/persistence.tsx"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAA2B,UAAU,EAAc,UAAU,EAAE,MAAM,aAAa,CAAC;AAE1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAA4C,OAAO,EAAE,MAAM,YAAY,CAAC;AAI/E,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,EAAE,QAAQ,EAAiC;IACjE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../js/shared/interactivity/persistence.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plain-variable.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/plain-variable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,WAAW,EAA8B,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"plain-variable.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/plain-variable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,WAAW,EAA8B,MAAM,QAAQ,CAAC;AAG7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,aAAa,EAA6B,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEzE,OAAO,EAAmB,cAAc,EAAqB,MAAM,SAAS,CAAC;AAsG7E;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EACxC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,EAC3B,QAAQ,EAAE,wBAAwB,EAClC,WAAW,EAAE,iBAAiB,EAC9B,MAAM,EAAE,aAAa,GACtB,WAAW,CAAC,CAAC,CAAC,CAoJhB"}
|
|
@@ -9,8 +9,9 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
10
10
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
11
11
|
};
|
|
12
|
-
var _a, _StateSynchronizer_instance,
|
|
12
|
+
var _a, _StateSynchronizer_instance, _StateSynchronizer_observers;
|
|
13
13
|
import { atomFamily, selectorFamily } from 'recoil';
|
|
14
|
+
import { BehaviorSubject } from 'rxjs';
|
|
14
15
|
import { RequestExtrasSerializable } from '../../api/http';
|
|
15
16
|
import { isEmbedded } from '../../shared/utils/embed';
|
|
16
17
|
import { isDerivedVariable } from '../../types';
|
|
@@ -26,7 +27,7 @@ import { atomFamilyMembersRegistry, atomFamilyRegistry, getRegistryKey, selector
|
|
|
26
27
|
class StateSynchronizer {
|
|
27
28
|
// eslint-disable-next-line no-useless-constructor, no-empty-function
|
|
28
29
|
constructor() {
|
|
29
|
-
|
|
30
|
+
_StateSynchronizer_observers.set(this, new Map());
|
|
30
31
|
}
|
|
31
32
|
static getInstance() {
|
|
32
33
|
if (!__classPrivateFieldGet(_a, _a, "f", _StateSynchronizer_instance)) {
|
|
@@ -34,34 +35,70 @@ class StateSynchronizer {
|
|
|
34
35
|
}
|
|
35
36
|
return __classPrivateFieldGet(_a, _a, "f", _StateSynchronizer_instance);
|
|
36
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Register a key in the state synchronizer
|
|
40
|
+
*
|
|
41
|
+
* @param key key to register
|
|
42
|
+
* @param defaultValue value to register
|
|
43
|
+
*/
|
|
44
|
+
register(key, defaultValue) {
|
|
45
|
+
if (!__classPrivateFieldGet(this, _StateSynchronizer_observers, "f").has(key)) {
|
|
46
|
+
__classPrivateFieldGet(this, _StateSynchronizer_observers, "f").set(key, new BehaviorSubject({ type: 'initial', value: defaultValue }));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Check if a given key is registered in the state synchronizer
|
|
51
|
+
*
|
|
52
|
+
* @param key key to check if registered
|
|
53
|
+
*/
|
|
54
|
+
isRegistered(key) {
|
|
55
|
+
return __classPrivateFieldGet(this, _StateSynchronizer_observers, "f").has(key);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get the current state for a given key
|
|
59
|
+
*
|
|
60
|
+
* @param key key to get the current value for
|
|
61
|
+
*/
|
|
62
|
+
getCurrentState(key) {
|
|
63
|
+
if (!this.isRegistered(key)) {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
return __classPrivateFieldGet(this, _StateSynchronizer_observers, "f").get(key).getValue();
|
|
67
|
+
}
|
|
37
68
|
/**
|
|
38
69
|
* Subscribe to changes on a given key
|
|
39
70
|
*
|
|
40
71
|
* @param key key to subscribe to
|
|
41
|
-
* @param listener listener to invoke on change
|
|
42
|
-
* @returns a cleanup function to unsubscribe
|
|
43
72
|
*/
|
|
44
|
-
subscribe(key,
|
|
45
|
-
|
|
46
|
-
|
|
73
|
+
subscribe(key, subscription) {
|
|
74
|
+
// If somehow the ended up with no listener here, register it with null value
|
|
75
|
+
if (!this.isRegistered(key)) {
|
|
76
|
+
this.register(key, null);
|
|
47
77
|
}
|
|
48
|
-
__classPrivateFieldGet(this,
|
|
78
|
+
const sub = __classPrivateFieldGet(this, _StateSynchronizer_observers, "f").get(key).subscribe(subscription);
|
|
49
79
|
return () => {
|
|
50
|
-
|
|
80
|
+
sub.unsubscribe();
|
|
81
|
+
// if no more observers, remove the listener
|
|
82
|
+
if (__classPrivateFieldGet(this, _StateSynchronizer_observers, "f").get(key).observers.length === 0) {
|
|
83
|
+
__classPrivateFieldGet(this, _StateSynchronizer_observers, "f").delete(key);
|
|
84
|
+
}
|
|
51
85
|
};
|
|
52
86
|
}
|
|
53
87
|
/**
|
|
54
88
|
* Notify listeners for a given key
|
|
55
89
|
*
|
|
56
90
|
* @param key key to notify listeners for
|
|
57
|
-
* @param
|
|
91
|
+
* @param update update to notify about
|
|
58
92
|
*/
|
|
59
|
-
notify(key,
|
|
60
|
-
|
|
61
|
-
|
|
93
|
+
notify(key, update) {
|
|
94
|
+
// If somehow the ended up with no listener here, register it with null value
|
|
95
|
+
if (!this.isRegistered(key)) {
|
|
96
|
+
this.register(key, null);
|
|
97
|
+
}
|
|
98
|
+
__classPrivateFieldGet(this, _StateSynchronizer_observers, "f").get(key).next(update);
|
|
62
99
|
}
|
|
63
100
|
}
|
|
64
|
-
_a = StateSynchronizer,
|
|
101
|
+
_a = StateSynchronizer, _StateSynchronizer_observers = new WeakMap();
|
|
65
102
|
_StateSynchronizer_instance = { value: void 0 };
|
|
66
103
|
/**
|
|
67
104
|
* Get a plain variable from the atom or selector registry (based on nested property),
|
|
@@ -91,23 +128,45 @@ export function getOrRegisterPlainVariable(variable, wsClient, taskContext, extr
|
|
|
91
128
|
: variable.default,
|
|
92
129
|
effects: (extrasSerializable) => {
|
|
93
130
|
const familySync = ({ onSet, setSelf, resetSelf, node }) => {
|
|
131
|
+
// Register the atom in the state synchronizer if not already registered
|
|
132
|
+
if (!StateSynchronizer.getInstance().isRegistered(variable.uid)) {
|
|
133
|
+
StateSynchronizer.getInstance().register(variable.uid, variable.default);
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
const currentState = StateSynchronizer.getInstance().getCurrentState(variable.uid);
|
|
137
|
+
if (!isDefaultDerived || (currentState === null || currentState === void 0 ? void 0 : currentState.type) !== 'initial') {
|
|
138
|
+
// Otherwise synchronize the initial value,
|
|
139
|
+
// unless the default is a DerivedVariable and the current state is initial
|
|
140
|
+
// because in that case the default will be linked to the selector which needs to be resolved
|
|
141
|
+
setSelf(currentState === null || currentState === void 0 ? void 0 : currentState.value);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
94
144
|
// Synchronize changes across atoms of the same family
|
|
95
|
-
const unsub = StateSynchronizer.getInstance().subscribe(variable.uid, (
|
|
145
|
+
const unsub = StateSynchronizer.getInstance().subscribe(variable.uid, (update) => {
|
|
146
|
+
if (update.type === 'initial') {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
96
149
|
// skip updates from the same atom
|
|
97
|
-
if (nodeKey === node.key) {
|
|
150
|
+
if (update.nodeKey === node.key) {
|
|
98
151
|
return;
|
|
99
152
|
}
|
|
100
|
-
if (isReset) {
|
|
153
|
+
if (update.isReset) {
|
|
101
154
|
resetSelf();
|
|
102
155
|
}
|
|
103
156
|
else {
|
|
104
|
-
setSelf(
|
|
157
|
+
setSelf(update.value);
|
|
105
158
|
}
|
|
106
159
|
});
|
|
107
160
|
onSet((newValue, oldValue, isReset) => {
|
|
108
|
-
StateSynchronizer.getInstance().notify(variable.uid,
|
|
161
|
+
StateSynchronizer.getInstance().notify(variable.uid, {
|
|
162
|
+
isReset,
|
|
163
|
+
nodeKey: node.key,
|
|
164
|
+
oldValue,
|
|
165
|
+
type: 'update',
|
|
166
|
+
value: newValue,
|
|
167
|
+
});
|
|
109
168
|
});
|
|
110
|
-
return
|
|
169
|
+
return unsub;
|
|
111
170
|
};
|
|
112
171
|
const effects = [familySync];
|
|
113
172
|
// add an effect to handle backend store updates
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plain-variable.js","sourceRoot":"","sources":["../../../js/shared/interactivity/plain-variable.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAA2B,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"plain-variable.js","sourceRoot":"","sources":["../../../js/shared/interactivity/plain-variable.tsx"],"names":[],"mappings":"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"}
|