@osdk/client 2.2.1 → 2.3.0-beta.10
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/CHANGELOG.md +94 -134
- package/build/browser/Client.js +1 -1
- package/build/browser/Client.js.map +1 -1
- package/build/browser/__unstable/createBulkLinksAsyncIterFactory.js +6 -1
- package/build/browser/__unstable/createBulkLinksAsyncIterFactory.js.map +1 -1
- package/build/browser/actions/ActionValidationError.js.map +1 -1
- package/build/browser/actions/applyAction.js +9 -8
- package/build/browser/actions/applyAction.js.map +1 -1
- package/build/browser/createClient.js +8 -1
- package/build/browser/createClient.js.map +1 -1
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.js +41 -1
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.test.js +145 -12
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.test.js.map +1 -1
- package/build/browser/derivedProperties/derivedPropertyDefinitionFactory.js +93 -0
- package/build/browser/derivedProperties/derivedPropertyDefinitionFactory.js.map +1 -0
- package/build/browser/logger/BaseLogger.js +1 -1
- package/build/browser/logger/BaseLogger.js.map +1 -1
- package/build/browser/object/fetchPage.js +9 -7
- package/build/browser/object/fetchPage.js.map +1 -1
- package/build/browser/object/mediaUpload.js +3 -0
- package/build/browser/object/mediaUpload.js.map +1 -1
- package/build/browser/objectSet/ObjectSet.test.js +85 -106
- package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
- package/build/browser/objectSet/createObjectSet.js +1 -1
- package/build/browser/objectSet/createObjectSet.js.map +1 -1
- package/build/browser/observable/ObservableClient.js +17 -1
- package/build/browser/observable/ObservableClient.js.map +1 -1
- package/build/browser/observable/OptimisticBuilder.js.map +1 -1
- package/build/browser/observable/internal/ActionApplication.js +31 -30
- package/build/browser/observable/internal/ActionApplication.js.map +1 -1
- package/build/browser/observable/internal/Changes.js +5 -1
- package/build/browser/observable/internal/Changes.js.map +1 -1
- package/build/browser/observable/internal/ListQuery.js +24 -22
- package/build/browser/observable/internal/ListQuery.js.map +1 -1
- package/build/browser/observable/internal/ObjectQuery.js +30 -1
- package/build/browser/observable/internal/ObjectQuery.js.map +1 -1
- package/build/browser/observable/internal/ObservableClientImpl.js +1 -2
- package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
- package/build/browser/observable/internal/OptimisticJob.js +8 -0
- package/build/browser/observable/internal/OptimisticJob.js.map +1 -1
- package/build/browser/observable/internal/Query.js +2 -2
- package/build/browser/observable/internal/Query.js.map +1 -1
- package/build/browser/observable/internal/Store.js +4 -0
- package/build/browser/observable/internal/Store.js.map +1 -1
- package/build/browser/observable/internal/Store.test.js +45 -5
- package/build/browser/observable/internal/Store.test.js.map +1 -1
- package/build/browser/observable/internal/testUtils.js.map +1 -1
- package/build/browser/observable/internal/tombstone.js +18 -0
- package/build/browser/observable/internal/tombstone.js.map +1 -0
- package/build/browser/public/internal.js +1 -0
- package/build/browser/public/internal.js.map +1 -1
- package/build/browser/public-utils/hydrateObjectSetFromObjectRids.js +39 -0
- package/build/browser/public-utils/hydrateObjectSetFromObjectRids.js.map +1 -0
- package/build/browser/queries/applyQuery.js +8 -4
- package/build/browser/queries/applyQuery.js.map +1 -1
- package/build/browser/util/UserAgent.js +2 -1
- package/build/browser/util/UserAgent.js.map +1 -1
- package/build/browser/util/extractRdpDefinition.js +2 -0
- package/build/browser/util/extractRdpDefinition.js.map +1 -1
- package/build/browser/util/toDataValue.js +20 -10
- package/build/browser/util/toDataValue.js.map +1 -1
- package/build/browser/util/toDataValue.test.js +50 -11
- package/build/browser/util/toDataValue.test.js.map +1 -1
- package/build/cjs/chunk-VZ57PNLC.cjs +1808 -0
- package/build/cjs/chunk-VZ57PNLC.cjs.map +1 -0
- package/build/cjs/{chunk-LPYAXRWJ.cjs → chunk-YGJRXE4F.cjs} +757 -36
- package/build/cjs/chunk-YGJRXE4F.cjs.map +1 -0
- package/build/cjs/index.cjs +16 -1764
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +4 -3
- package/build/cjs/public/internal.cjs +22 -8
- package/build/cjs/public/internal.cjs.map +1 -1
- package/build/cjs/public/internal.d.cts +10 -1
- package/build/cjs/public/unstable-do-not-use.cjs +182 -123
- package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
- package/build/cjs/public/unstable-do-not-use.d.cts +2 -1
- package/build/esm/Client.js +1 -1
- package/build/esm/Client.js.map +1 -1
- package/build/esm/__unstable/createBulkLinksAsyncIterFactory.js +6 -1
- package/build/esm/__unstable/createBulkLinksAsyncIterFactory.js.map +1 -1
- package/build/esm/actions/ActionValidationError.js.map +1 -1
- package/build/esm/actions/applyAction.js +9 -8
- package/build/esm/actions/applyAction.js.map +1 -1
- package/build/esm/createClient.js +8 -1
- package/build/esm/createClient.js.map +1 -1
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.js +41 -1
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.test.js +145 -12
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.test.js.map +1 -1
- package/build/esm/derivedProperties/derivedPropertyDefinitionFactory.js +93 -0
- package/build/esm/derivedProperties/derivedPropertyDefinitionFactory.js.map +1 -0
- package/build/esm/logger/BaseLogger.js +1 -1
- package/build/esm/logger/BaseLogger.js.map +1 -1
- package/build/esm/object/fetchPage.js +9 -7
- package/build/esm/object/fetchPage.js.map +1 -1
- package/build/esm/object/mediaUpload.js +3 -0
- package/build/esm/object/mediaUpload.js.map +1 -1
- package/build/esm/objectSet/ObjectSet.test.js +85 -106
- package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
- package/build/esm/objectSet/createObjectSet.js +1 -1
- package/build/esm/objectSet/createObjectSet.js.map +1 -1
- package/build/esm/observable/ObservableClient.js +17 -1
- package/build/esm/observable/ObservableClient.js.map +1 -1
- package/build/esm/observable/OptimisticBuilder.js.map +1 -1
- package/build/esm/observable/internal/ActionApplication.js +31 -30
- package/build/esm/observable/internal/ActionApplication.js.map +1 -1
- package/build/esm/observable/internal/Changes.js +5 -1
- package/build/esm/observable/internal/Changes.js.map +1 -1
- package/build/esm/observable/internal/ListQuery.js +24 -22
- package/build/esm/observable/internal/ListQuery.js.map +1 -1
- package/build/esm/observable/internal/ObjectQuery.js +30 -1
- package/build/esm/observable/internal/ObjectQuery.js.map +1 -1
- package/build/esm/observable/internal/ObservableClientImpl.js +1 -2
- package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
- package/build/esm/observable/internal/OptimisticJob.js +8 -0
- package/build/esm/observable/internal/OptimisticJob.js.map +1 -1
- package/build/esm/observable/internal/Query.js +2 -2
- package/build/esm/observable/internal/Query.js.map +1 -1
- package/build/esm/observable/internal/Store.js +4 -0
- package/build/esm/observable/internal/Store.js.map +1 -1
- package/build/esm/observable/internal/Store.test.js +45 -5
- package/build/esm/observable/internal/Store.test.js.map +1 -1
- package/build/esm/observable/internal/testUtils.js.map +1 -1
- package/build/esm/observable/internal/tombstone.js +18 -0
- package/build/esm/observable/internal/tombstone.js.map +1 -0
- package/build/esm/public/internal.js +1 -0
- package/build/esm/public/internal.js.map +1 -1
- package/build/esm/public-utils/hydrateObjectSetFromObjectRids.js +39 -0
- package/build/esm/public-utils/hydrateObjectSetFromObjectRids.js.map +1 -0
- package/build/esm/queries/applyQuery.js +8 -4
- package/build/esm/queries/applyQuery.js.map +1 -1
- package/build/esm/util/UserAgent.js +2 -1
- package/build/esm/util/UserAgent.js.map +1 -1
- package/build/esm/util/extractRdpDefinition.js +2 -0
- package/build/esm/util/extractRdpDefinition.js.map +1 -1
- package/build/esm/util/toDataValue.js +20 -10
- package/build/esm/util/toDataValue.js.map +1 -1
- package/build/esm/util/toDataValue.test.js +50 -11
- package/build/esm/util/toDataValue.test.js.map +1 -1
- package/build/types/Client.d.ts +1 -1
- package/build/types/actions/ActionValidationError.d.ts +1 -1
- package/build/types/actions/ActionValidationError.d.ts.map +1 -1
- package/build/types/actions/applyAction.d.ts.map +1 -1
- package/build/types/createClient.d.ts.map +1 -1
- package/build/types/derivedProperties/derivedPropertyDefinitionFactory.d.ts +1 -0
- package/build/types/derivedProperties/derivedPropertyDefinitionFactory.d.ts.map +1 -0
- package/build/types/object/mediaUpload.d.ts +2 -1
- package/build/types/object/mediaUpload.d.ts.map +1 -1
- package/build/types/observable/ObservableClient.d.ts +2 -2
- package/build/types/observable/ObservableClient.d.ts.map +1 -1
- package/build/types/observable/OptimisticBuilder.d.ts +1 -0
- package/build/types/observable/OptimisticBuilder.d.ts.map +1 -1
- package/build/types/observable/internal/ActionApplication.d.ts +1 -1
- package/build/types/observable/internal/ActionApplication.d.ts.map +1 -1
- package/build/types/observable/internal/Changes.d.ts +2 -0
- package/build/types/observable/internal/Changes.d.ts.map +1 -1
- package/build/types/observable/internal/ListQuery.d.ts.map +1 -1
- package/build/types/observable/internal/ObjectQuery.d.ts +1 -0
- package/build/types/observable/internal/ObjectQuery.d.ts.map +1 -1
- package/build/types/observable/internal/OptimisticJob.d.ts.map +1 -1
- package/build/types/observable/internal/Store.d.ts +2 -1
- package/build/types/observable/internal/Store.d.ts.map +1 -1
- package/build/types/observable/internal/testUtils.d.ts +1 -1
- package/build/types/observable/internal/testUtils.d.ts.map +1 -1
- package/build/types/observable/internal/tombstone.d.ts +1 -0
- package/build/types/observable/internal/tombstone.d.ts.map +1 -0
- package/build/types/public/internal.d.ts +1 -0
- package/build/types/public/internal.d.ts.map +1 -1
- package/build/types/public-utils/hydrateObjectSetFromObjectRids.d.ts +10 -0
- package/build/types/public-utils/hydrateObjectSetFromObjectRids.d.ts.map +1 -0
- package/build/types/queries/applyQuery.d.ts.map +1 -1
- package/build/types/util/UserAgent.d.ts +1 -0
- package/build/types/util/UserAgent.d.ts.map +1 -1
- package/package.json +14 -14
- package/build/cjs/chunk-LPYAXRWJ.cjs.map +0 -1
- package/build/cjs/chunk-T4NIFYZS.cjs +0 -14
- package/build/cjs/chunk-T4NIFYZS.cjs.map +0 -1
- package/build/cjs/chunk-UCW7RLKM.cjs +0 -615
- package/build/cjs/chunk-UCW7RLKM.cjs.map +0 -1
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkVZ57PNLC_cjs = require('../chunk-VZ57PNLC.cjs');
|
|
4
|
+
var chunkYGJRXE4F_cjs = require('../chunk-YGJRXE4F.cjs');
|
|
5
|
+
var shared_net_fetch = require('@osdk/shared.net.fetch');
|
|
5
6
|
var rxjs = require('rxjs');
|
|
6
7
|
var invariant2 = require('tiny-invariant');
|
|
7
|
-
var mnemonist = require('mnemonist');
|
|
8
8
|
var trie = require('@wry/trie');
|
|
9
|
-
var
|
|
9
|
+
var mnemonist = require('mnemonist');
|
|
10
|
+
var deepEqual2 = require('fast-deep-equal');
|
|
10
11
|
var groupBy = require('object.groupby');
|
|
11
12
|
var shared_net_errors = require('@osdk/shared.net.errors');
|
|
12
13
|
|
|
13
14
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
15
|
|
|
15
16
|
var invariant2__default = /*#__PURE__*/_interopDefault(invariant2);
|
|
16
|
-
var
|
|
17
|
+
var deepEqual2__default = /*#__PURE__*/_interopDefault(deepEqual2);
|
|
17
18
|
var groupBy__default = /*#__PURE__*/_interopDefault(groupBy);
|
|
18
19
|
|
|
19
20
|
// src/observable/internal/ObservableClientImpl.ts
|
|
20
21
|
var ObservableClientImpl = class {
|
|
21
|
-
#store;
|
|
22
22
|
constructor(store) {
|
|
23
|
-
this
|
|
23
|
+
this.__experimentalStore = store;
|
|
24
24
|
this.observeObject = store.observeObject.bind(store);
|
|
25
25
|
this.observeList = store.observeList.bind(store);
|
|
26
26
|
this.applyAction = store.applyAction.bind(store);
|
|
@@ -87,63 +87,6 @@ function createDelay({
|
|
|
87
87
|
var delay = createDelay();
|
|
88
88
|
var delay_default = delay;
|
|
89
89
|
|
|
90
|
-
// src/observable/internal/CacheKey.ts
|
|
91
|
-
function DEBUG_ONLY__cacheKeyToString(x) {
|
|
92
|
-
if (process.env.NODE_ENV !== "production") {
|
|
93
|
-
return `${x.type}CacheKey<${x.otherKeys.map((xx) => JSON.stringify(xx)).join(", ")}>`.replaceAll('"', "'");
|
|
94
|
-
} else {
|
|
95
|
-
throw new Error("not implemented");
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
function DEBUG_ONLY__cacheKeysToString(x) {
|
|
99
|
-
if (process.env.NODE_ENV !== "production") {
|
|
100
|
-
return "\n - " + x.map(DEBUG_ONLY__cacheKeyToString).join("\n - ");
|
|
101
|
-
} else {
|
|
102
|
-
throw new Error("not implemented");
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
// src/observable/internal/Changes.ts
|
|
107
|
-
var Changes = class {
|
|
108
|
-
modifiedObjects = new mnemonist.MultiMap();
|
|
109
|
-
addedObjects = new mnemonist.MultiMap();
|
|
110
|
-
added = /* @__PURE__ */ new Set();
|
|
111
|
-
modified = /* @__PURE__ */ new Set();
|
|
112
|
-
registerObject = (cacheKey, data, isNew) => {
|
|
113
|
-
this[isNew ? "addedObjects" : "modifiedObjects"].set(data.$apiName, data);
|
|
114
|
-
this[isNew ? "added" : "modified"].add(cacheKey);
|
|
115
|
-
};
|
|
116
|
-
registerList = (key) => {
|
|
117
|
-
this.modified.add(key);
|
|
118
|
-
};
|
|
119
|
-
isEmpty() {
|
|
120
|
-
return this.modifiedObjects.size === 0 && this.addedObjects.size === 0 && this.added.size === 0 && this.modified.size === 0;
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
function createChangedObjects() {
|
|
124
|
-
return new Changes();
|
|
125
|
-
}
|
|
126
|
-
function DEBUG_ONLY__changesToString(changes) {
|
|
127
|
-
if (process.env.NODE_ENV !== "production") {
|
|
128
|
-
return JSON.stringify({
|
|
129
|
-
modifiedObjects: multimapHelper(changes.modifiedObjects),
|
|
130
|
-
addedObjects: multimapHelper(changes.addedObjects),
|
|
131
|
-
added: listHelper(changes.added),
|
|
132
|
-
modified: listHelper(changes.modified)
|
|
133
|
-
}, null, 2);
|
|
134
|
-
} else {
|
|
135
|
-
throw new Error("not implemented");
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
function listHelper(set) {
|
|
139
|
-
return Array.from(set).map(DEBUG_ONLY__cacheKeyToString);
|
|
140
|
-
}
|
|
141
|
-
function multimapHelper(multimap) {
|
|
142
|
-
return Object.fromEntries(Array.from(multimap.associations()).map(([type, objects]) => {
|
|
143
|
-
return [type, objects.map((o) => o.$primaryKey)];
|
|
144
|
-
}));
|
|
145
|
-
}
|
|
146
|
-
|
|
147
90
|
// src/observable/internal/OptimisticId.ts
|
|
148
91
|
function createOptimisticId() {
|
|
149
92
|
if (process.env.NODE_ENV !== "production") {
|
|
@@ -163,6 +106,7 @@ var OptimisticJob = class {
|
|
|
163
106
|
constructor(store, optimisticId) {
|
|
164
107
|
const updatedObjects = [];
|
|
165
108
|
const addedObjectPromises = [];
|
|
109
|
+
const deletedObjects = [];
|
|
166
110
|
this.getResult = () => {
|
|
167
111
|
return this.#result ??= (async () => {
|
|
168
112
|
const addedObjects = await Promise.allSettled(addedObjectPromises);
|
|
@@ -181,6 +125,9 @@ var OptimisticJob = class {
|
|
|
181
125
|
for (const obj of updatedObjects) {
|
|
182
126
|
store.getObjectQuery(obj.$objectType, obj.$primaryKey).writeToStore(obj, "loading", batch);
|
|
183
127
|
}
|
|
128
|
+
for (const obj of deletedObjects) {
|
|
129
|
+
store.getObjectQuery(obj.$objectType, obj.$primaryKey).deleteFromStore("loading", batch);
|
|
130
|
+
}
|
|
184
131
|
});
|
|
185
132
|
return batchResult.changes;
|
|
186
133
|
})();
|
|
@@ -191,7 +138,7 @@ var OptimisticJob = class {
|
|
|
191
138
|
return this;
|
|
192
139
|
},
|
|
193
140
|
createObject(type, pk, properties) {
|
|
194
|
-
const create = store.client[
|
|
141
|
+
const create = store.client[chunkYGJRXE4F_cjs.additionalContext].objectFactory2(store.client[chunkYGJRXE4F_cjs.additionalContext], [{
|
|
195
142
|
$primaryKey: pk,
|
|
196
143
|
$apiName: type.apiName,
|
|
197
144
|
$objectType: type.apiName,
|
|
@@ -201,6 +148,10 @@ var OptimisticJob = class {
|
|
|
201
148
|
});
|
|
202
149
|
addedObjectPromises.push(create);
|
|
203
150
|
return this;
|
|
151
|
+
},
|
|
152
|
+
deleteObject(value) {
|
|
153
|
+
deletedObjects.push(value);
|
|
154
|
+
return this;
|
|
204
155
|
}
|
|
205
156
|
};
|
|
206
157
|
}
|
|
@@ -238,6 +189,16 @@ var ActionApplication = class {
|
|
|
238
189
|
const removeOptimisticResult = runOptimisticJob(this.store, optimisticUpdate);
|
|
239
190
|
return await (async () => {
|
|
240
191
|
try {
|
|
192
|
+
if (Array.isArray(args)) {
|
|
193
|
+
if (process.env.NODE_ENV !== "production") {
|
|
194
|
+
logger?.debug("applying action to multiple args", args);
|
|
195
|
+
}
|
|
196
|
+
const results = await this.store.client(action).batchApplyAction(args, {
|
|
197
|
+
$returnEdits: true
|
|
198
|
+
});
|
|
199
|
+
await this.#invalidateActionEditResponse(results);
|
|
200
|
+
return results;
|
|
201
|
+
}
|
|
241
202
|
const actionResults = await this.store.client(action).applyAction(args, {
|
|
242
203
|
$returnEdits: true
|
|
243
204
|
});
|
|
@@ -258,40 +219,40 @@ var ActionApplication = class {
|
|
|
258
219
|
}
|
|
259
220
|
})();
|
|
260
221
|
};
|
|
261
|
-
#invalidateActionEditResponse = async (
|
|
262
|
-
|
|
222
|
+
#invalidateActionEditResponse = async ({
|
|
223
|
+
deletedObjects,
|
|
224
|
+
modifiedObjects,
|
|
225
|
+
addedObjects,
|
|
226
|
+
editedObjectTypes,
|
|
227
|
+
type
|
|
228
|
+
}) => {
|
|
263
229
|
let changes;
|
|
264
|
-
if (
|
|
230
|
+
if (type === "edits") {
|
|
265
231
|
const promisesToWait = [];
|
|
266
|
-
for (const
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
promisesToWait.push(this.store.invalidateObject(obj.objectType, obj.primaryKey));
|
|
271
|
-
typesToInvalidate.add(obj.objectType);
|
|
232
|
+
for (const list of [deletedObjects, modifiedObjects, addedObjects]) {
|
|
233
|
+
for (const obj of list ?? []) {
|
|
234
|
+
promisesToWait.push(this.store.invalidateObject(obj.objectType, obj.primaryKey));
|
|
235
|
+
}
|
|
272
236
|
}
|
|
273
|
-
|
|
274
|
-
const changes2 = createChangedObjects();
|
|
275
|
-
for (const changeType of ["addedObjects", "modifiedObjects"]) {
|
|
237
|
+
this.store.batch({}, (batch) => {
|
|
276
238
|
for (const {
|
|
277
239
|
objectType,
|
|
278
240
|
primaryKey
|
|
279
|
-
} of
|
|
241
|
+
} of deletedObjects ?? []) {
|
|
280
242
|
const cacheKey = this.store.getCacheKey("object", objectType, primaryKey);
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
243
|
+
this.store.peekQuery(cacheKey)?.deleteFromStore(
|
|
244
|
+
"loaded",
|
|
245
|
+
// this is probably not the best value to use
|
|
246
|
+
batch
|
|
247
|
+
);
|
|
286
248
|
}
|
|
287
|
-
}
|
|
249
|
+
});
|
|
250
|
+
await Promise.all(promisesToWait);
|
|
288
251
|
} else {
|
|
289
|
-
for (const apiName of
|
|
290
|
-
typesToInvalidate.add(apiName.toString());
|
|
252
|
+
for (const apiName of editedObjectTypes) {
|
|
291
253
|
await this.store.invalidateObjectType(apiName, changes);
|
|
292
254
|
}
|
|
293
255
|
}
|
|
294
|
-
return value;
|
|
295
256
|
};
|
|
296
257
|
};
|
|
297
258
|
var CacheKeys = class {
|
|
@@ -329,6 +290,67 @@ var CacheKeys = class {
|
|
|
329
290
|
}
|
|
330
291
|
};
|
|
331
292
|
|
|
293
|
+
// src/observable/internal/CacheKey.ts
|
|
294
|
+
function DEBUG_ONLY__cacheKeyToString(x) {
|
|
295
|
+
if (process.env.NODE_ENV !== "production") {
|
|
296
|
+
return `${x.type}CacheKey<${x.otherKeys.map((xx) => JSON.stringify(xx)).join(", ")}>`.replaceAll('"', "'");
|
|
297
|
+
} else {
|
|
298
|
+
throw new Error("not implemented");
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
function DEBUG_ONLY__cacheKeysToString(x) {
|
|
302
|
+
if (process.env.NODE_ENV !== "production") {
|
|
303
|
+
return "\n - " + x.map(DEBUG_ONLY__cacheKeyToString).join("\n - ");
|
|
304
|
+
} else {
|
|
305
|
+
throw new Error("not implemented");
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
// src/observable/internal/Changes.ts
|
|
310
|
+
var Changes = class {
|
|
311
|
+
modifiedObjects = new mnemonist.MultiMap();
|
|
312
|
+
addedObjects = new mnemonist.MultiMap();
|
|
313
|
+
added = /* @__PURE__ */ new Set();
|
|
314
|
+
modified = /* @__PURE__ */ new Set();
|
|
315
|
+
deleted = /* @__PURE__ */ new Set();
|
|
316
|
+
registerObject = (cacheKey, data, isNew) => {
|
|
317
|
+
this[isNew ? "addedObjects" : "modifiedObjects"].set(data.$apiName, data);
|
|
318
|
+
this[isNew ? "added" : "modified"].add(cacheKey);
|
|
319
|
+
};
|
|
320
|
+
deleteObject = (cacheKey) => {
|
|
321
|
+
this.deleted.add(cacheKey);
|
|
322
|
+
};
|
|
323
|
+
registerList = (key) => {
|
|
324
|
+
this.modified.add(key);
|
|
325
|
+
};
|
|
326
|
+
isEmpty() {
|
|
327
|
+
return this.modifiedObjects.size === 0 && this.addedObjects.size === 0 && this.added.size === 0 && this.modified.size === 0 && this.deleted.size === 0;
|
|
328
|
+
}
|
|
329
|
+
};
|
|
330
|
+
function createChangedObjects() {
|
|
331
|
+
return new Changes();
|
|
332
|
+
}
|
|
333
|
+
function DEBUG_ONLY__changesToString(changes) {
|
|
334
|
+
if (process.env.NODE_ENV !== "production") {
|
|
335
|
+
return JSON.stringify({
|
|
336
|
+
modifiedObjects: multimapHelper(changes.modifiedObjects),
|
|
337
|
+
addedObjects: multimapHelper(changes.addedObjects),
|
|
338
|
+
added: listHelper(changes.added),
|
|
339
|
+
modified: listHelper(changes.modified)
|
|
340
|
+
}, null, 2);
|
|
341
|
+
} else {
|
|
342
|
+
throw new Error("not implemented");
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
function listHelper(set) {
|
|
346
|
+
return Array.from(set).map(DEBUG_ONLY__cacheKeyToString);
|
|
347
|
+
}
|
|
348
|
+
function multimapHelper(multimap) {
|
|
349
|
+
return Object.fromEntries(Array.from(multimap.associations()).map(([type, objects]) => {
|
|
350
|
+
return [type, objects.map((o) => o.$primaryKey)];
|
|
351
|
+
}));
|
|
352
|
+
}
|
|
353
|
+
|
|
332
354
|
// src/observable/internal/WeakMapWithEntries.ts
|
|
333
355
|
var WeakMapWithEntries = class {
|
|
334
356
|
#map = /* @__PURE__ */ new WeakMap();
|
|
@@ -511,7 +533,7 @@ function is$not(whereClause) {
|
|
|
511
533
|
return "$not" in whereClause;
|
|
512
534
|
}
|
|
513
535
|
function objectSortaMatchesWhereClause(o, whereClause, strict) {
|
|
514
|
-
if (
|
|
536
|
+
if (deepEqual2__default.default({}, whereClause)) {
|
|
515
537
|
return true;
|
|
516
538
|
}
|
|
517
539
|
if (is$and(whereClause)) {
|
|
@@ -596,7 +618,7 @@ var BulkObjectLoader = class {
|
|
|
596
618
|
#maxEntries;
|
|
597
619
|
constructor(client, maxWait = 25, maxEntries = 100) {
|
|
598
620
|
this.#client = client;
|
|
599
|
-
this.#logger = client[
|
|
621
|
+
this.#logger = client[chunkYGJRXE4F_cjs.additionalContext].logger;
|
|
600
622
|
this.#maxWait = maxWait;
|
|
601
623
|
this.#maxEntries = maxEntries;
|
|
602
624
|
}
|
|
@@ -666,7 +688,7 @@ var Query = class {
|
|
|
666
688
|
this.cacheKey = cacheKey;
|
|
667
689
|
this.store = store;
|
|
668
690
|
this.#subject = observable;
|
|
669
|
-
this.logger = logger ?? (process.env.NODE_ENV === "production" ? store.client[
|
|
691
|
+
this.logger = logger ?? (process.env.NODE_ENV === "production" ? store.client[chunkYGJRXE4F_cjs.additionalContext].logger : store.client[chunkYGJRXE4F_cjs.additionalContext].logger?.child({}, {
|
|
670
692
|
msgPrefix: process.env.NODE_ENV !== "production" ? `Query<${cacheKey.type}, ${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>` : "Query"
|
|
671
693
|
}));
|
|
672
694
|
}
|
|
@@ -692,7 +714,7 @@ var Query = class {
|
|
|
692
714
|
}
|
|
693
715
|
if (this.pendingFetch) {
|
|
694
716
|
if (process.env.NODE_ENV !== "production") {
|
|
695
|
-
logger?.
|
|
717
|
+
logger?.debug("Fetch is already pending, using it");
|
|
696
718
|
}
|
|
697
719
|
await this.pendingFetch;
|
|
698
720
|
return;
|
|
@@ -715,7 +737,7 @@ var Query = class {
|
|
|
715
737
|
logger?.debug("calling _fetchAndStore()");
|
|
716
738
|
}
|
|
717
739
|
this.pendingFetch = this._fetchAndStore().finally(() => {
|
|
718
|
-
logger?.
|
|
740
|
+
logger?.debug("finally _fetchAndStore()");
|
|
719
741
|
this.pendingFetch = void 0;
|
|
720
742
|
});
|
|
721
743
|
await this.pendingFetch;
|
|
@@ -768,12 +790,15 @@ var Query = class {
|
|
|
768
790
|
*/
|
|
769
791
|
};
|
|
770
792
|
|
|
793
|
+
// src/observable/internal/tombstone.ts
|
|
794
|
+
var tombstone = void 0;
|
|
795
|
+
|
|
771
796
|
// src/observable/internal/ObjectQuery.ts
|
|
772
797
|
var ObjectQuery = class extends Query {
|
|
773
798
|
#apiName;
|
|
774
799
|
#pk;
|
|
775
800
|
constructor(store, subject, type, pk, cacheKey, opts) {
|
|
776
|
-
super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[
|
|
801
|
+
super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkYGJRXE4F_cjs.additionalContext].logger?.child({}, {
|
|
777
802
|
msgPrefix: `ObjectQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
|
|
778
803
|
}) : void 0);
|
|
779
804
|
this.#apiName = type;
|
|
@@ -800,7 +825,7 @@ var ObjectQuery = class extends Query {
|
|
|
800
825
|
if (process.env.NODE_ENV !== "production") {
|
|
801
826
|
this.logger?.child({
|
|
802
827
|
methodName: "_fetchAndStore"
|
|
803
|
-
}).
|
|
828
|
+
}).debug("calling _fetchAndStore");
|
|
804
829
|
}
|
|
805
830
|
const obj = await getBulkObjectLoader(this.store.client).fetch(this.#apiName, this.#pk);
|
|
806
831
|
this.store.batch({}, (batch) => {
|
|
@@ -809,7 +834,7 @@ var ObjectQuery = class extends Query {
|
|
|
809
834
|
}
|
|
810
835
|
writeToStore(data, status, batch) {
|
|
811
836
|
const entry = batch.read(this.cacheKey);
|
|
812
|
-
if (entry &&
|
|
837
|
+
if (entry && deepEqual2__default.default(data, entry.value)) {
|
|
813
838
|
if (process.env.NODE_ENV !== "production") {
|
|
814
839
|
this.logger?.child({
|
|
815
840
|
methodName: "writeToStore"
|
|
@@ -833,6 +858,30 @@ var ObjectQuery = class extends Query {
|
|
|
833
858
|
);
|
|
834
859
|
return ret;
|
|
835
860
|
}
|
|
861
|
+
deleteFromStore(status, batch) {
|
|
862
|
+
const entry = batch.read(this.cacheKey);
|
|
863
|
+
if (entry && deepEqual2__default.default(tombstone, entry.value)) {
|
|
864
|
+
if (process.env.NODE_ENV !== "production") {
|
|
865
|
+
this.logger?.child({
|
|
866
|
+
methodName: "deleteFromStore"
|
|
867
|
+
}).debug(`Object was deep equal, just setting status`);
|
|
868
|
+
}
|
|
869
|
+
return batch.write(this.cacheKey, entry.value, status);
|
|
870
|
+
}
|
|
871
|
+
if (process.env.NODE_ENV !== "production") {
|
|
872
|
+
this.logger?.child({
|
|
873
|
+
methodName: "deleteFromStore"
|
|
874
|
+
}).debug(JSON.stringify({
|
|
875
|
+
status
|
|
876
|
+
}));
|
|
877
|
+
}
|
|
878
|
+
if (!entry || !entry.value) {
|
|
879
|
+
return;
|
|
880
|
+
}
|
|
881
|
+
const ret = batch.delete(this.cacheKey, status);
|
|
882
|
+
batch.changes.deleteObject(this.cacheKey);
|
|
883
|
+
return ret;
|
|
884
|
+
}
|
|
836
885
|
};
|
|
837
886
|
function storeOsdkInstances(store, values, batch) {
|
|
838
887
|
return values.map((v) => {
|
|
@@ -875,7 +924,7 @@ var BaseListQuery = class extends Query {
|
|
|
875
924
|
}
|
|
876
925
|
writeToStore(data, status, batch) {
|
|
877
926
|
const entry = batch.read(this.cacheKey);
|
|
878
|
-
if (entry &&
|
|
927
|
+
if (entry && deepEqual2__default.default(data, entry.value)) {
|
|
879
928
|
if (process.env.NODE_ENV !== "production") {
|
|
880
929
|
this.logger?.child({
|
|
881
930
|
methodName: "writeToStore"
|
|
@@ -934,7 +983,7 @@ var ListQuery = class extends BaseListQuery {
|
|
|
934
983
|
#objectSet;
|
|
935
984
|
#sortFns;
|
|
936
985
|
constructor(store, subject, apiType, apiName, whereClause, orderBy, cacheKey, opts) {
|
|
937
|
-
super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[
|
|
986
|
+
super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkYGJRXE4F_cjs.additionalContext].logger?.child({}, {
|
|
938
987
|
msgPrefix: `ListQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
|
|
939
988
|
}) : void 0);
|
|
940
989
|
this.#type = apiType;
|
|
@@ -954,7 +1003,7 @@ var ListQuery = class extends BaseListQuery {
|
|
|
954
1003
|
return rxjs.connectable(subject.pipe(
|
|
955
1004
|
rxjs.switchMap((listEntry) => {
|
|
956
1005
|
return rxjs.combineLatest({
|
|
957
|
-
resolvedList: listEntry?.value?.data == null ? rxjs.of([]) : rxjs.combineLatest(listEntry.value.data.map((cacheKey) => this.store.getSubject(cacheKey).pipe(rxjs.map((objectEntry) => objectEntry?.value)))),
|
|
1006
|
+
resolvedList: listEntry?.value?.data == null || listEntry.value.data.length === 0 ? rxjs.of([]) : rxjs.combineLatest(listEntry.value.data.map((cacheKey) => this.store.getSubject(cacheKey).pipe(rxjs.map((objectEntry) => objectEntry?.value)))),
|
|
958
1007
|
isOptimistic: rxjs.of(listEntry.isOptimistic),
|
|
959
1008
|
fetchMore: rxjs.of(this.fetchMore),
|
|
960
1009
|
hasMore: rxjs.of(this.#nextPageToken != null),
|
|
@@ -976,7 +1025,7 @@ var ListQuery = class extends BaseListQuery {
|
|
|
976
1025
|
if (process.env.NODE_ENV !== "production") {
|
|
977
1026
|
this.logger?.child({
|
|
978
1027
|
methodName: "_fetchAndStore"
|
|
979
|
-
}).
|
|
1028
|
+
}).debug("fetching pages");
|
|
980
1029
|
}
|
|
981
1030
|
while (true) {
|
|
982
1031
|
const entry = await this.#fetchPageAndUpdate(this.#objectSet, "loading", this.abortController?.signal);
|
|
@@ -1099,9 +1148,6 @@ var ListQuery = class extends BaseListQuery {
|
|
|
1099
1148
|
changes.modified.add(this.cacheKey);
|
|
1100
1149
|
try {
|
|
1101
1150
|
const relevantObjects = this._extractRelevantObjects(changes);
|
|
1102
|
-
if (relevantObjects.added.all.length === 0 && relevantObjects.modified.all.length === 0) {
|
|
1103
|
-
return;
|
|
1104
|
-
}
|
|
1105
1151
|
const status = optimisticId || relevantObjects.added.sortaMatches.size > 0 || relevantObjects.modified.sortaMatches.size > 0 ? "loading" : "loaded";
|
|
1106
1152
|
const newList = [];
|
|
1107
1153
|
let needsRevalidation = false;
|
|
@@ -1114,7 +1160,7 @@ var ListQuery = class extends BaseListQuery {
|
|
|
1114
1160
|
// easy case. objects are new to the cache and they match this filter
|
|
1115
1161
|
relevantObjects.added.strictMatches
|
|
1116
1162
|
);
|
|
1117
|
-
const toRemove =
|
|
1163
|
+
const toRemove = new Set(changes.deleted);
|
|
1118
1164
|
for (const obj of relevantObjects.modified.all) {
|
|
1119
1165
|
if (relevantObjects.modified.strictMatches.has(obj)) {
|
|
1120
1166
|
const objectCacheKey = this.store.getCacheKey("object", obj.$objectType, obj.$primaryKey);
|
|
@@ -1159,30 +1205,33 @@ var ListQuery = class extends BaseListQuery {
|
|
|
1159
1205
|
}
|
|
1160
1206
|
}
|
|
1161
1207
|
};
|
|
1208
|
+
#matchType(obj) {
|
|
1209
|
+
if (objectSortaMatchesWhereClause(obj, this.#whereClause, true)) {
|
|
1210
|
+
return "strict";
|
|
1211
|
+
}
|
|
1212
|
+
if (objectSortaMatchesWhereClause(obj, this.#whereClause, false)) {
|
|
1213
|
+
return "sorta";
|
|
1214
|
+
}
|
|
1215
|
+
return false;
|
|
1216
|
+
}
|
|
1162
1217
|
_extractRelevantObjects(changes) {
|
|
1163
1218
|
const relevantObjects = this.#type === "object" ? this.#extractRelevantObjectsForTypeObject(changes) : this.#extractRelevantObjectsForTypeInterface(changes);
|
|
1164
1219
|
for (const group of Object.values(relevantObjects)) {
|
|
1165
1220
|
for (const obj of group.all ?? []) {
|
|
1166
|
-
const
|
|
1167
|
-
if (
|
|
1168
|
-
group.
|
|
1169
|
-
} else {
|
|
1170
|
-
const sortaMatch = objectSortaMatchesWhereClause(obj, this.#whereClause, false);
|
|
1171
|
-
if (sortaMatch) {
|
|
1172
|
-
group.sortaMatches.add(obj);
|
|
1173
|
-
}
|
|
1221
|
+
const matchType = this.#matchType(obj);
|
|
1222
|
+
if (matchType) {
|
|
1223
|
+
group[`${matchType}Matches`].add(obj);
|
|
1174
1224
|
}
|
|
1175
1225
|
}
|
|
1176
1226
|
}
|
|
1177
1227
|
return relevantObjects;
|
|
1178
1228
|
}
|
|
1179
1229
|
#extractRelevantObjectsForTypeInterface(changes) {
|
|
1180
|
-
const
|
|
1181
|
-
return this.#apiName in object[
|
|
1182
|
-
}
|
|
1183
|
-
const
|
|
1184
|
-
|
|
1185
|
-
}).map(([, object]) => object.$as(this.#apiName));
|
|
1230
|
+
const matchesApiName = ([, object]) => {
|
|
1231
|
+
return this.#apiName in object[chunkVZ57PNLC_cjs.ObjectDefRef].interfaceMap;
|
|
1232
|
+
};
|
|
1233
|
+
const added = Array.from(changes.addedObjects).filter(matchesApiName).map(([, object]) => object.$as(this.#apiName));
|
|
1234
|
+
const modified = Array.from(changes.modifiedObjects).filter(matchesApiName).map(([, object]) => object.$as(this.#apiName));
|
|
1186
1235
|
return {
|
|
1187
1236
|
added: {
|
|
1188
1237
|
all: added,
|
|
@@ -1259,7 +1308,7 @@ var ListQuery = class extends BaseListQuery {
|
|
|
1259
1308
|
if (process.env.NODE_ENV !== "production") {
|
|
1260
1309
|
this.logger?.child({
|
|
1261
1310
|
methodName: "onOutOfDate"
|
|
1262
|
-
}).
|
|
1311
|
+
}).debug("");
|
|
1263
1312
|
}
|
|
1264
1313
|
}
|
|
1265
1314
|
#onOswError(errors) {
|
|
@@ -1355,7 +1404,7 @@ function createOrderBySortFns(orderBy) {
|
|
|
1355
1404
|
async function reloadDataAsFullObjects(client, data) {
|
|
1356
1405
|
const groups = groupBy__default.default(data, (x) => x.$objectType);
|
|
1357
1406
|
const objectTypeToPrimaryKeyToObject = Object.fromEntries(await Promise.all(Object.entries(groups).map(async ([apiName, objects]) => {
|
|
1358
|
-
const objectDef = objects[0][
|
|
1407
|
+
const objectDef = objects[0][chunkVZ57PNLC_cjs.UnderlyingOsdkObject][chunkVZ57PNLC_cjs.ObjectDefRef];
|
|
1359
1408
|
const where = {
|
|
1360
1409
|
[objectDef.primaryKeyApiName]: {
|
|
1361
1410
|
$in: objects.map((x) => x.$primaryKey)
|
|
@@ -1504,7 +1553,7 @@ var WhereClauseCanonicalizer = class {
|
|
|
1504
1553
|
options: []
|
|
1505
1554
|
};
|
|
1506
1555
|
this.#existingOptions.set(cacheKey, lookupEntry);
|
|
1507
|
-
const canon = lookupEntry.options.find((ref) =>
|
|
1556
|
+
const canon = lookupEntry.options.find((ref) => deepEqual2__default.default(ref.deref(), calculatedCanon))?.deref() ?? calculatedCanon;
|
|
1508
1557
|
if (canon === calculatedCanon) {
|
|
1509
1558
|
lookupEntry.options.push(new WeakRef(canon));
|
|
1510
1559
|
}
|
|
@@ -1563,7 +1612,7 @@ var Store = class {
|
|
|
1563
1612
|
#finalizationRegistry;
|
|
1564
1613
|
constructor(client) {
|
|
1565
1614
|
this.client = client;
|
|
1566
|
-
this.logger = client[
|
|
1615
|
+
this.logger = client[chunkYGJRXE4F_cjs.additionalContext].logger?.child({}, {
|
|
1567
1616
|
msgPrefix: "Store"
|
|
1568
1617
|
});
|
|
1569
1618
|
this.#topLayer = this.#truthLayer;
|
|
@@ -1757,6 +1806,9 @@ var Store = class {
|
|
|
1757
1806
|
}
|
|
1758
1807
|
return newValue;
|
|
1759
1808
|
},
|
|
1809
|
+
delete: (cacheKey, status) => {
|
|
1810
|
+
return batchContext.write(cacheKey, tombstone, status);
|
|
1811
|
+
},
|
|
1760
1812
|
read: (cacheKey) => {
|
|
1761
1813
|
return optimisticId ? this.#topLayer.get(cacheKey) : this.#truthLayer.get(cacheKey);
|
|
1762
1814
|
}
|
|
@@ -1854,7 +1906,14 @@ var Store = class {
|
|
|
1854
1906
|
|
|
1855
1907
|
// src/observable/ObservableClient.ts
|
|
1856
1908
|
function createObservableClient(client) {
|
|
1857
|
-
|
|
1909
|
+
const tweakedClient = chunkVZ57PNLC_cjs.createClientFromContext({
|
|
1910
|
+
...client[chunkYGJRXE4F_cjs.additionalContext],
|
|
1911
|
+
fetch: shared_net_fetch.createFetchHeaderMutator(client[chunkYGJRXE4F_cjs.additionalContext].fetch, (headers) => {
|
|
1912
|
+
headers.set("Fetch-User-Agent", [headers.get("Fetch-User-Agent"), chunkVZ57PNLC_cjs.OBSERVABLE_USER_AGENT].filter((x) => x && x?.length > 0).join(" "));
|
|
1913
|
+
return headers;
|
|
1914
|
+
})
|
|
1915
|
+
});
|
|
1916
|
+
return new ObservableClientImpl(new Store(tweakedClient));
|
|
1858
1917
|
}
|
|
1859
1918
|
|
|
1860
1919
|
// src/public-utils/osdkConfig.ts
|
|
@@ -1893,7 +1952,7 @@ function getOsdkConfig(ontologyRid) {
|
|
|
1893
1952
|
|
|
1894
1953
|
Object.defineProperty(exports, "augment", {
|
|
1895
1954
|
enumerable: true,
|
|
1896
|
-
get: function () { return
|
|
1955
|
+
get: function () { return chunkYGJRXE4F_cjs.augment; }
|
|
1897
1956
|
});
|
|
1898
1957
|
exports.createObservableClient = createObservableClient;
|
|
1899
1958
|
exports.getMetaTagContent = getMetaTagContent;
|