@osdk/client 2.2.0-beta.8 → 2.2.0-beta.9
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 +18 -0
- package/build/browser/createMinimalClient.js +2 -2
- package/build/browser/createMinimalClient.js.map +1 -1
- package/build/browser/object/SimpleOsdkProperties.js +2 -0
- package/build/browser/object/SimpleOsdkProperties.js.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js +2 -0
- package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/ObjectHolder.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js +10 -3
- package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/getDollarAs.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects.js +4 -2
- package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
- package/build/browser/object/fetchPage.js +13 -1
- package/build/browser/object/fetchPage.js.map +1 -1
- package/build/browser/object/fetchPage.test.js +56 -2
- package/build/browser/object/fetchPage.test.js.map +1 -1
- package/build/browser/object/object.test.js.map +1 -1
- package/build/browser/objectSet/InterfaceObjectSet.test.js +18 -2
- package/build/browser/objectSet/InterfaceObjectSet.test.js.map +1 -1
- package/build/browser/objectSet/ObjectSet.test.js +92 -102
- package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.js +18 -14
- package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
- package/build/browser/objectSet/createObjectSet.js.map +1 -1
- package/build/browser/observable/ListPayload.js.map +1 -1
- package/build/browser/observable/ObjectPayload.js.map +1 -1
- package/build/browser/observable/ObservableClient.js.map +1 -1
- package/build/browser/observable/internal/ActionApplication.js +29 -29
- package/build/browser/observable/internal/ActionApplication.js.map +1 -1
- package/build/browser/observable/internal/CacheKey.js +1 -1
- package/build/browser/observable/internal/CacheKey.js.map +1 -1
- package/build/browser/observable/internal/CacheKeys.js +2 -2
- package/build/browser/observable/internal/CacheKeys.js.map +1 -1
- package/build/browser/observable/internal/{ChangedObjects.js → Changes.js} +20 -9
- package/build/browser/observable/internal/Changes.js.map +1 -0
- package/build/browser/observable/internal/Layer.js +3 -0
- package/build/browser/observable/internal/Layer.js.map +1 -1
- package/build/browser/observable/internal/ListQuery.js +411 -170
- package/build/browser/observable/internal/ListQuery.js.map +1 -1
- package/build/browser/observable/internal/ObjectQuery.js +32 -16
- package/build/browser/observable/internal/ObjectQuery.js.map +1 -1
- package/build/browser/observable/internal/ObservableClientImpl.js +4 -12
- package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
- package/build/browser/observable/internal/OptimisticJob.js.map +1 -1
- package/build/browser/observable/internal/OrderByCanonicalizer.js +73 -0
- package/build/browser/observable/internal/OrderByCanonicalizer.js.map +1 -0
- package/build/browser/observable/internal/OrderByCanonicalizer.test.js +78 -0
- package/build/browser/observable/internal/OrderByCanonicalizer.test.js.map +1 -0
- package/build/browser/observable/internal/Query.js +64 -31
- package/build/browser/observable/internal/Query.js.map +1 -1
- package/build/browser/observable/internal/RefCounts.js +7 -2
- package/build/browser/observable/internal/RefCounts.js.map +1 -1
- package/build/browser/observable/internal/SimpleWhereClause.js +2 -0
- package/build/browser/observable/internal/SimpleWhereClause.js.map +1 -0
- package/build/browser/observable/internal/Store.js +84 -267
- package/build/browser/observable/internal/Store.js.map +1 -1
- package/build/browser/observable/internal/Store.test.js +264 -247
- package/build/browser/observable/internal/Store.test.js.map +1 -1
- package/build/browser/observable/internal/WhereClauseCanonicalizer.js +11 -3
- package/build/browser/observable/internal/WhereClauseCanonicalizer.js.map +1 -1
- package/build/browser/observable/internal/objectMatchesWhereClause.js.map +1 -1
- package/build/browser/observable/internal/objectMatchesWhereClause.test.js.map +1 -1
- package/build/browser/observable/internal/testUtils.js +82 -18
- package/build/browser/observable/internal/testUtils.js.map +1 -1
- package/build/browser/public/unstable-do-not-use.js.map +1 -1
- package/build/browser/util/UserAgent.js +1 -1
- package/build/cjs/{chunk-JPENHIJB.cjs → chunk-EY52J5Z4.cjs} +25 -15
- package/build/cjs/chunk-EY52J5Z4.cjs.map +1 -0
- package/build/cjs/{chunk-IU47QMYO.cjs → chunk-MCQVHD2F.cjs} +32 -28
- package/build/cjs/chunk-MCQVHD2F.cjs.map +1 -0
- package/build/cjs/chunk-T4NIFYZS.cjs +14 -0
- package/build/cjs/chunk-T4NIFYZS.cjs.map +1 -0
- package/build/cjs/index.cjs +69 -72
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/public/internal.cjs +6 -6
- package/build/cjs/public/unstable-do-not-use.cjs +683 -539
- package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
- package/build/cjs/public/unstable-do-not-use.d.cts +27 -26
- package/build/esm/createMinimalClient.js +2 -2
- package/build/esm/createMinimalClient.js.map +1 -1
- package/build/esm/object/SimpleOsdkProperties.js +2 -0
- package/build/esm/object/SimpleOsdkProperties.js.map +1 -0
- package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js +2 -0
- package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -0
- package/build/esm/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/ObjectHolder.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js +10 -3
- package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/getDollarAs.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects.js +4 -2
- package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
- package/build/esm/object/fetchPage.js +13 -1
- package/build/esm/object/fetchPage.js.map +1 -1
- package/build/esm/object/fetchPage.test.js +56 -2
- package/build/esm/object/fetchPage.test.js.map +1 -1
- package/build/esm/object/object.test.js.map +1 -1
- package/build/esm/objectSet/InterfaceObjectSet.test.js +18 -2
- package/build/esm/objectSet/InterfaceObjectSet.test.js.map +1 -1
- package/build/esm/objectSet/ObjectSet.test.js +92 -102
- package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.js +18 -14
- package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
- package/build/esm/objectSet/createObjectSet.js.map +1 -1
- package/build/esm/observable/ListPayload.js.map +1 -1
- package/build/esm/observable/ObjectPayload.js.map +1 -1
- package/build/esm/observable/ObservableClient.js.map +1 -1
- package/build/esm/observable/internal/ActionApplication.js +29 -29
- package/build/esm/observable/internal/ActionApplication.js.map +1 -1
- package/build/esm/observable/internal/CacheKey.js +1 -1
- package/build/esm/observable/internal/CacheKey.js.map +1 -1
- package/build/esm/observable/internal/CacheKeys.js +2 -2
- package/build/esm/observable/internal/CacheKeys.js.map +1 -1
- package/build/esm/observable/internal/{ChangedObjects.js → Changes.js} +20 -9
- package/build/esm/observable/internal/Changes.js.map +1 -0
- package/build/esm/observable/internal/Layer.js +3 -0
- package/build/esm/observable/internal/Layer.js.map +1 -1
- package/build/esm/observable/internal/ListQuery.js +411 -170
- package/build/esm/observable/internal/ListQuery.js.map +1 -1
- package/build/esm/observable/internal/ObjectQuery.js +32 -16
- package/build/esm/observable/internal/ObjectQuery.js.map +1 -1
- package/build/esm/observable/internal/ObservableClientImpl.js +4 -12
- package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
- package/build/esm/observable/internal/OptimisticJob.js.map +1 -1
- package/build/esm/observable/internal/OrderByCanonicalizer.js +73 -0
- package/build/esm/observable/internal/OrderByCanonicalizer.js.map +1 -0
- package/build/esm/observable/internal/OrderByCanonicalizer.test.js +78 -0
- package/build/esm/observable/internal/OrderByCanonicalizer.test.js.map +1 -0
- package/build/esm/observable/internal/Query.js +64 -31
- package/build/esm/observable/internal/Query.js.map +1 -1
- package/build/esm/observable/internal/RefCounts.js +7 -2
- package/build/esm/observable/internal/RefCounts.js.map +1 -1
- package/build/esm/observable/internal/SimpleWhereClause.js +2 -0
- package/build/esm/observable/internal/SimpleWhereClause.js.map +1 -0
- package/build/esm/observable/internal/Store.js +84 -267
- package/build/esm/observable/internal/Store.js.map +1 -1
- package/build/esm/observable/internal/Store.test.js +264 -247
- package/build/esm/observable/internal/Store.test.js.map +1 -1
- package/build/esm/observable/internal/WhereClauseCanonicalizer.js +11 -3
- package/build/esm/observable/internal/WhereClauseCanonicalizer.js.map +1 -1
- package/build/esm/observable/internal/objectMatchesWhereClause.js.map +1 -1
- package/build/esm/observable/internal/objectMatchesWhereClause.test.js.map +1 -1
- package/build/esm/observable/internal/testUtils.js +82 -18
- package/build/esm/observable/internal/testUtils.js.map +1 -1
- package/build/esm/public/unstable-do-not-use.js.map +1 -1
- package/build/esm/util/UserAgent.js +1 -1
- package/build/types/object/SimpleOsdkProperties.d.ts +1 -0
- package/build/types/object/SimpleOsdkProperties.d.ts.map +1 -0
- package/build/types/object/convertWireToOsdkObjects/BaseHolder.d.ts +1 -0
- package/build/types/object/convertWireToOsdkObjects/BaseHolder.d.ts.map +1 -0
- package/build/types/object/convertWireToOsdkObjects.d.ts +8 -1
- package/build/types/object/convertWireToOsdkObjects.d.ts.map +1 -1
- package/build/types/observable/ListPayload.d.ts +5 -9
- package/build/types/observable/ListPayload.d.ts.map +1 -1
- package/build/types/observable/ObjectPayload.d.ts +4 -7
- package/build/types/observable/ObjectPayload.d.ts.map +1 -1
- package/build/types/observable/ObservableClient.d.ts +27 -11
- package/build/types/observable/ObservableClient.d.ts.map +1 -1
- package/build/types/observable/internal/ActionApplication.d.ts.map +1 -1
- package/build/types/observable/internal/CacheKeys.d.ts +1 -1
- package/build/types/observable/internal/CacheKeys.d.ts.map +1 -1
- package/build/types/observable/internal/Changes.d.ts +15 -0
- package/build/types/observable/internal/Changes.d.ts.map +1 -0
- package/build/types/observable/internal/Layer.d.ts +1 -0
- package/build/types/observable/internal/Layer.d.ts.map +1 -1
- package/build/types/observable/internal/ListQuery.d.ts +59 -14
- package/build/types/observable/internal/ListQuery.d.ts.map +1 -1
- package/build/types/observable/internal/ObjectQuery.d.ts +5 -6
- package/build/types/observable/internal/ObjectQuery.d.ts.map +1 -1
- package/build/types/observable/internal/OptimisticJob.d.ts +1 -1
- package/build/types/observable/internal/OptimisticJob.d.ts.map +1 -1
- package/build/types/observable/internal/OrderByCanonicalizer.d.ts +12 -0
- package/build/types/observable/internal/OrderByCanonicalizer.d.ts.map +1 -0
- package/build/types/observable/internal/OrderByCanonicalizer.test.d.ts +1 -0
- package/build/types/observable/internal/OrderByCanonicalizer.test.d.ts.map +1 -0
- package/build/types/observable/internal/Query.d.ts +39 -4
- package/build/types/observable/internal/Query.d.ts.map +1 -1
- package/build/types/observable/internal/RefCounts.d.ts.map +1 -1
- package/build/types/observable/internal/SimpleWhereClause.d.ts +2 -0
- package/build/types/observable/internal/SimpleWhereClause.d.ts.map +1 -0
- package/build/types/observable/internal/Store.d.ts +19 -43
- package/build/types/observable/internal/Store.d.ts.map +1 -1
- package/build/types/observable/internal/WhereClauseCanonicalizer.d.ts +2 -1
- package/build/types/observable/internal/WhereClauseCanonicalizer.d.ts.map +1 -1
- package/build/types/observable/internal/objectMatchesWhereClause.d.ts +4 -2
- package/build/types/observable/internal/objectMatchesWhereClause.d.ts.map +1 -1
- package/build/types/observable/internal/testUtils.d.ts +39 -9
- package/build/types/observable/internal/testUtils.d.ts.map +1 -1
- package/build/types/public/unstable-do-not-use.d.ts +1 -4
- package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
- package/package.json +12 -10
- package/build/browser/observable/internal/ChangedObjects.js.map +0 -1
- package/build/cjs/chunk-IU47QMYO.cjs.map +0 -1
- package/build/cjs/chunk-JPENHIJB.cjs.map +0 -1
- package/build/esm/observable/internal/ChangedObjects.js.map +0 -1
- package/build/types/observable/internal/ChangedObjects.d.ts +0 -11
- package/build/types/observable/internal/ChangedObjects.d.ts.map +0 -1
|
@@ -19,6 +19,7 @@ import pDefer from "p-defer";
|
|
|
19
19
|
import invariant from "tiny-invariant";
|
|
20
20
|
import { afterEach, beforeEach, expect, vi, vitest } from "vitest";
|
|
21
21
|
import { additionalContext } from "../../Client.js";
|
|
22
|
+
import { storeOsdkInstances } from "./ObjectQuery.js";
|
|
22
23
|
const chalk = new Chalk(); // new Chalk({ level: 3 });
|
|
23
24
|
|
|
24
25
|
function mockLog(...args) {
|
|
@@ -41,12 +42,12 @@ export function createTestLogger(bindings, options) {
|
|
|
41
42
|
};
|
|
42
43
|
function createLogMethod(name) {
|
|
43
44
|
return vi.fn((...args) => {
|
|
44
|
-
const hasData = typeof args[0] !== "string";
|
|
45
|
+
const hasData = args.length > 0 && typeof args[0] !== "string";
|
|
45
46
|
const obj = hasData ? args[0] : {};
|
|
46
47
|
const more = hasData ? args.slice(1) : args.slice(0);
|
|
47
48
|
|
|
48
49
|
// eslint-disable-next-line no-console
|
|
49
|
-
console.log(`${colors[name][1](name)}${options?.msgPrefix ? " " + colors[name][0](options.msgPrefix) : ""}${obj
|
|
50
|
+
console.log(`${colors[name][1](name)}${options?.msgPrefix ? " " + colors[name][0](options.msgPrefix) : ""}${obj?.methodName ? ` .${chalk.magenta(obj.methodName)}()` : ""}`, ...more);
|
|
50
51
|
if (bindings && Object.keys(bindings).length > 0) {
|
|
51
52
|
// eslint-disable-next-line no-console
|
|
52
53
|
console.log(bindings);
|
|
@@ -149,10 +150,8 @@ export function createClientMockHelper() {
|
|
|
149
150
|
mockLog("fetchOne", a);
|
|
150
151
|
!(expectedId === undefined || a === expectedId) ? process.env.NODE_ENV !== "production" ? invariant(false, "expected id to match") : invariant(false) : void 0;
|
|
151
152
|
const r = await d.promise;
|
|
152
|
-
return {
|
|
153
|
-
|
|
154
|
-
$primaryKey: a
|
|
155
|
-
};
|
|
153
|
+
!(r.$primaryKey === a) ? process.env.NODE_ENV !== "production" ? invariant(false, `expected id to match. Got ${a} but object to return was ${r.$primaryKey}`) : invariant(false) : void 0;
|
|
154
|
+
return r;
|
|
156
155
|
}
|
|
157
156
|
});
|
|
158
157
|
return d;
|
|
@@ -203,20 +202,23 @@ export function expectSingleListCallAndClear(subFn, resolvedList, payloadOptions
|
|
|
203
202
|
if (vitest.isFakeTimers()) {
|
|
204
203
|
vitest.runOnlyPendingTimers();
|
|
205
204
|
}
|
|
206
|
-
expect(subFn).toHaveBeenCalledExactlyOnceWith(listPayloadContaining({
|
|
205
|
+
expect(subFn.next).toHaveBeenCalledExactlyOnceWith(listPayloadContaining({
|
|
207
206
|
...payloadOptions,
|
|
208
|
-
resolvedList
|
|
207
|
+
resolvedList: resolvedList
|
|
209
208
|
}));
|
|
210
|
-
subFn.mockClear();
|
|
209
|
+
subFn.next.mockClear();
|
|
211
210
|
}
|
|
212
211
|
export function expectSingleObjectCallAndClear(subFn, object, status) {
|
|
213
|
-
expect(subFn).toHaveBeenCalledExactlyOnceWith(expect.objectContaining({
|
|
212
|
+
expect(subFn.next).toHaveBeenCalledExactlyOnceWith(expect.objectContaining({
|
|
214
213
|
object,
|
|
215
214
|
status: status ?? expect.any(String)
|
|
216
215
|
}));
|
|
217
|
-
subFn.mockClear();
|
|
216
|
+
subFn.next.mockClear();
|
|
218
217
|
}
|
|
219
218
|
export async function waitForCall(subFn, times = 1) {
|
|
219
|
+
if ("next" in subFn && "error" in subFn && "complete" in subFn) {
|
|
220
|
+
subFn = subFn.next;
|
|
221
|
+
}
|
|
220
222
|
try {
|
|
221
223
|
await vi.waitFor(() => {
|
|
222
224
|
expect(subFn).toHaveBeenCalledTimes(times);
|
|
@@ -229,9 +231,13 @@ export async function waitForCall(subFn, times = 1) {
|
|
|
229
231
|
}
|
|
230
232
|
expect(subFn).toHaveBeenCalledTimes(times);
|
|
231
233
|
}
|
|
234
|
+
export function expectNoMoreCalls(observer) {
|
|
235
|
+
expect(observer.next).not.toHaveBeenCalled();
|
|
236
|
+
expect(observer.error).not.toHaveBeenCalled();
|
|
237
|
+
}
|
|
232
238
|
function createSubscriptionHelper() {}
|
|
233
239
|
export function mockSingleSubCallback() {
|
|
234
|
-
const ret =
|
|
240
|
+
const ret = mockObserver();
|
|
235
241
|
|
|
236
242
|
// async function expectLoaded(value: unknown) {
|
|
237
243
|
// await waitForCall(ret);
|
|
@@ -261,18 +267,26 @@ export function mockSingleSubCallback() {
|
|
|
261
267
|
// expectLoaded,
|
|
262
268
|
// expectLoading,
|
|
263
269
|
expectLoadingAndLoaded: async q => {
|
|
264
|
-
await waitForCall(ret, 2);
|
|
270
|
+
await waitForCall(ret.next, 2);
|
|
265
271
|
|
|
266
272
|
// as long as we get the loaded call we are happy
|
|
267
|
-
expect(ret).toHaveBeenNthCalledWith(1, q.loading);
|
|
268
|
-
expect(ret).toHaveBeenNthCalledWith(2, q.loaded);
|
|
269
|
-
expect(ret).toHaveBeenCalledTimes(2);
|
|
270
|
-
ret.mockClear();
|
|
273
|
+
expect(ret.next).toHaveBeenNthCalledWith(1, q.loading);
|
|
274
|
+
expect(ret.next).toHaveBeenNthCalledWith(2, q.loaded);
|
|
275
|
+
expect(ret.next).toHaveBeenCalledTimes(2);
|
|
276
|
+
ret.next.mockClear();
|
|
271
277
|
}
|
|
272
278
|
});
|
|
273
279
|
}
|
|
280
|
+
export function mockObserver() {
|
|
281
|
+
return {
|
|
282
|
+
next: vitest.fn(),
|
|
283
|
+
// error: vitest.fn((x) => console.error(x)),
|
|
284
|
+
error: vitest.fn(),
|
|
285
|
+
complete: vitest.fn()
|
|
286
|
+
};
|
|
287
|
+
}
|
|
274
288
|
export function mockListSubCallback() {
|
|
275
|
-
return
|
|
289
|
+
return mockObserver();
|
|
276
290
|
}
|
|
277
291
|
export function cacheEntryContaining(x) {
|
|
278
292
|
return {
|
|
@@ -313,4 +327,54 @@ export function applyCustomMatchers() {
|
|
|
313
327
|
}
|
|
314
328
|
});
|
|
315
329
|
}
|
|
330
|
+
/**
|
|
331
|
+
* Updates the internal state of a list and will create a new internal query if needed.
|
|
332
|
+
*
|
|
333
|
+
* Helper method only for tests right now. May be removed later.
|
|
334
|
+
*
|
|
335
|
+
* @param apiName
|
|
336
|
+
* @param where
|
|
337
|
+
* @param orderBy
|
|
338
|
+
* @param objects
|
|
339
|
+
* @param param4
|
|
340
|
+
* @param opts
|
|
341
|
+
*/
|
|
342
|
+
export function updateList(store, {
|
|
343
|
+
type,
|
|
344
|
+
where,
|
|
345
|
+
orderBy
|
|
346
|
+
}, objects, {
|
|
347
|
+
optimisticId
|
|
348
|
+
} = {}, opts = {
|
|
349
|
+
dedupeInterval: 0
|
|
350
|
+
}) {
|
|
351
|
+
if (process.env.NODE_ENV !== "production") {
|
|
352
|
+
store.logger?.child({
|
|
353
|
+
methodName: "updateList"
|
|
354
|
+
}).info("", {
|
|
355
|
+
optimisticId
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
const query = store.getListQuery(type, where ?? {}, orderBy ?? {}, opts);
|
|
359
|
+
store.batch({
|
|
360
|
+
optimisticId
|
|
361
|
+
}, batch => {
|
|
362
|
+
const objectCacheKeys = storeOsdkInstances(store, objects, batch);
|
|
363
|
+
query._updateList(objectCacheKeys, false, "loaded", batch);
|
|
364
|
+
});
|
|
365
|
+
}
|
|
366
|
+
export function getObject(store, type, pk) {
|
|
367
|
+
return store.getValue(store.getCacheKey("object", type, pk))?.value;
|
|
368
|
+
}
|
|
369
|
+
export function updateObject(store, value, {
|
|
370
|
+
optimisticId
|
|
371
|
+
} = {}) {
|
|
372
|
+
const query = store.getObjectQuery(value.$apiName, value.$primaryKey);
|
|
373
|
+
store.batch({
|
|
374
|
+
optimisticId
|
|
375
|
+
}, batch => {
|
|
376
|
+
return query.writeToStore(value, "loaded", batch);
|
|
377
|
+
});
|
|
378
|
+
return value;
|
|
379
|
+
}
|
|
316
380
|
//# sourceMappingURL=testUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testUtils.js","names":["Chalk","pDefer","invariant","afterEach","beforeEach","expect","vi","vitest","additionalContext","chalk","mockLog","args","console","log","yellow","createTestLogger","bindings","options","colors","debug","cyan","bgCyan","info","green","bgGreen","trace","gray","bgGray","error","red","bgRed","warn","bgYellow","fatal","redBright","bgRedBright","createLogMethod","name","fn","hasData","obj","more","slice","msgPrefix","methodName","magenta","Object","keys","length","child","theseBindings","theseOptions","level","undefined","isLevelEnabled","createClientMockHelper","client","logger","mockImplementation","localLogger","Error","e","where","deadObjectSet","whereArgs","fetchPage","fetchArgs","fetchOne","baseUrl","ontologyRid","objectFactory","objectFactory2","ontologyProvider","getActionDefinition","getInterfaceDefinition","getObjectDefinition","getQueryDefinition","tokenProvider","objectSetFactory","fetch","clientCacheKey","requestContext","mockApplyActionOnce","d","mockReturnValueOnce","applyAction","x","promise","type","addedLinks","addedObjects","deletedObjects","deletedLinks","deletedLinksCount","deletedObjectsCount","editedObjectTypes","modifiedObjects","mockFetchOneOnce","expectedId","a","process","env","NODE_ENV","r","$primaryKey","mockObjectFactory2Once","mocked","mockFetchPageOnce","objectSet","fetchPageArgs","clause","createDefer","subscriptions","s","unsubscribe","push","expectSingleListCallAndClear","subFn","resolvedList","payloadOptions","isFakeTimers","runOnlyPendingTimers","toHaveBeenCalledExactlyOnceWith","listPayloadContaining","mockClear","expectSingleObjectCallAndClear","object","status","objectContaining","any","String","waitForCall","times","waitFor","toHaveBeenCalledTimes","createSubscriptionHelper","mockSingleSubCallback","ret","assign","expectLoadingAndLoaded","q","toHaveBeenNthCalledWith","loading","loaded","mockListSubCallback","cacheEntryContaining","cacheKey","value","toBeOneOf","anything","lastUpdated","nonOptionalValue","src","key","objectPayloadContaining","isOptimistic","Boolean","fetchMore","Function","hasMore","applyCustomMatchers","extend","toBeGreaterThan","pass","message"],"sources":["testUtils.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ActionDefinition,\n ActionEditResponse,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n OsdkBase,\n PageResult,\n WhereClause,\n} from \"@osdk/api\";\nimport { Chalk } from \"chalk\";\nimport type { DeferredPromise } from \"p-defer\";\nimport pDefer from \"p-defer\";\nimport invariant from \"tiny-invariant\";\nimport type { Mock } from \"vitest\";\nimport { afterEach, beforeEach, expect, vi, vitest } from \"vitest\";\nimport type { ActionSignatureFromDef } from \"../../actions/applyAction.js\";\nimport type { Client } from \"../../Client.js\";\nimport { additionalContext } from \"../../Client.js\";\nimport type { LogFn, Logger } from \"../../Logger.js\";\nimport type { ListPayload } from \"../ListPayload.js\";\nimport type { ObjectPayload } from \"../ObjectPayload.js\";\nimport type { Status, Unsubscribable } from \"../ObservableClient.js\";\nimport type { Entry } from \"./Layer.js\";\n\nconst chalk = new Chalk(); // new Chalk({ level: 3 });\n\nexport interface MockClientHelper {\n client: Mock<Client> & Client;\n\n mockApplyActionOnce: () => DeferredPromise<Partial<ActionEditResponse>>;\n\n mockFetchOneOnce: <Q extends ObjectTypeDefinition>(\n expectedId?: string | number | boolean,\n ) => DeferredPromise<\n Partial<\n Osdk.Instance<Q>\n >\n >;\n\n mockObjectFactory2Once: () => DeferredPromise<\n Osdk.Instance<ObjectOrInterfaceDefinition, never, any, {}>[]\n >;\n\n mockFetchPageOnce: <\n Q extends ObjectTypeDefinition,\n >(\n expected?: {\n where: WhereClause<any>;\n orderBy: Record<string, \"asc\" | \"desc\" | undefined>;\n },\n ) => DeferredPromise<\n PageResult<Partial<Osdk.Instance<Q>>>\n >;\n}\n\nfunction mockLog(...args: any[]) {\n // eslint-disable-next-line no-console\n console.log(\n chalk.yellow(\"mockClient\"),\n ...args,\n );\n}\n// interface LogFn {\n// (obj: unknown, msg?: string, ...args: any[]): void;\n// (msg: string, ...args: any[]): void;\n// }\n\nexport function createTestLogger(\n bindings: Record<string, any>,\n options?: { level?: string; msgPrefix?: string },\n): Logger {\n const colors = {\n debug: [chalk.cyan, chalk.bgCyan],\n info: [chalk.green, chalk.bgGreen],\n trace: [chalk.gray, chalk.bgGray],\n error: [chalk.red, chalk.bgRed],\n warn: [chalk.yellow, chalk.bgYellow],\n fatal: [chalk.redBright, chalk.bgRedBright],\n } as const;\n function createLogMethod(\n name: \"debug\" | \"error\" | \"info\" | \"warn\" | \"fatal\" | \"trace\",\n ) {\n return vi.fn<LogFn>(\n (\n ...args: [\n obj: unknown,\n ...args1: any[],\n ] | [\n ...args2: any[],\n ]\n ) => {\n const hasData = typeof args[0] !== \"string\";\n const obj: Record<string, unknown> = hasData ? args[0] as any : {};\n const more: any[] = hasData ? args.slice(1) : args.slice(0);\n\n // eslint-disable-next-line no-console\n console.log(\n `${colors[name][1](name)}${\n options?.msgPrefix ? \" \" + colors[name][0](options.msgPrefix) : \"\"\n }${obj.methodName ? ` .${chalk.magenta(obj.methodName)}()` : \"\"}`,\n ...more,\n );\n if (bindings && Object.keys(bindings).length > 0) {\n // eslint-disable-next-line no-console\n console.log(bindings);\n }\n },\n ) as LogFn;\n }\n return {\n debug: createLogMethod(\"debug\"),\n error: createLogMethod(\"error\"),\n info: createLogMethod(\"info\"),\n warn: createLogMethod(\"warn\"),\n fatal: createLogMethod(\"fatal\"),\n child: vi.fn<Logger[\"child\"]>((theseBindings, theseOptions) =>\n createTestLogger({\n ...bindings,\n ...theseBindings,\n }, {\n level: (theseOptions ?? options)?.level,\n msgPrefix: options?.msgPrefix || theseOptions?.msgPrefix\n ? `${options?.msgPrefix ? `${options.msgPrefix} ` : \"\"}${\n theseOptions?.msgPrefix || \"\"\n }`\n : undefined,\n })\n ),\n trace: createLogMethod(\"trace\"),\n isLevelEnabled: vi.fn((args) => true),\n };\n}\n\nexport function createClientMockHelper(): MockClientHelper {\n const client = vitest.fn<typeof client>() as unknown as Mock<Client> & Client;\n\n const logger = createTestLogger({});\n\n // this is just a fallback for when there is nothing set so we can track whats up\n client.mockImplementation((...args: any[]) => {\n const localLogger = logger.child({}, { msgPrefix: \"fallback mock client\" });\n try {\n throw new Error(\"IN THE FALLBACK MOCK CLIENT IMPLEMENTATION\");\n } catch (e) {\n localLogger.error(\"Just for the stack trace\", e);\n }\n\n let where;\n const deadObjectSet = {\n where: (...whereArgs: any[]) => {\n localLogger.trace(\"where\", whereArgs);\n where = whereArgs;\n return deadObjectSet;\n },\n fetchPage: (...fetchArgs: any[]) => {\n localLogger.trace(\"etchPage\", where!, fetchArgs);\n throw new Error(\"NO\");\n },\n fetchOne: (...fetchArgs: any[]) => {\n localLogger.trace(\"fetchOne\", fetchArgs);\n\n throw new Error(\"NO\");\n },\n };\n return deadObjectSet;\n });\n\n client[additionalContext] = {\n baseUrl: \"http://localhost:8080\",\n ontologyRid: \"ri.something\",\n objectFactory: vitest.fn(),\n objectFactory2: vitest.fn(),\n ontologyProvider: {\n getActionDefinition: vitest.fn(),\n getInterfaceDefinition: vitest.fn(),\n getObjectDefinition: vitest.fn(),\n getQueryDefinition: vitest.fn(),\n },\n tokenProvider: vitest.fn(),\n objectSetFactory: vitest.fn(),\n fetch: vitest.fn(),\n clientCacheKey: {} as any,\n requestContext: {},\n logger,\n };\n\n function mockObjectFactory2Once() {\n const d = pDefer<\n Osdk.Instance<ObjectOrInterfaceDefinition, never, any, {}>[]\n >();\n vi.mocked(client[additionalContext].objectFactory2).mockReturnValueOnce(\n d.promise,\n );\n return d;\n }\n\n function mockFetchPageOnce<\n X extends PageResult<\n Osdk.Instance<ObjectTypeDefinition>\n >,\n >(): DeferredPromise<X> {\n const d = pDefer<X>();\n\n const objectSet: ObjectSet<ObjectTypeDefinition> = {\n fetchPage: async (fetchPageArgs) => {\n mockLog(\"fetchPage\", fetchPageArgs);\n const r = await d.promise;\n return { ...r, $primaryKey: fetchPageArgs };\n },\n where: (clause) => {\n mockLog(\"where\", clause);\n return objectSet;\n },\n } as Pick<\n ObjectSet<ObjectTypeDefinition>,\n \"fetchPage\" | \"where\"\n > as ObjectSet<ObjectTypeDefinition>;\n\n client.mockReturnValueOnce(objectSet);\n return d;\n }\n\n function mockFetchOneOnce<\n X extends Partial<OsdkBase<any>>,\n >(expectedId?: string | number | boolean): DeferredPromise<X> {\n const d = pDefer<X>();\n\n client.mockReturnValueOnce(\n {\n fetchOne: async (a) => {\n mockLog(\"fetchOne\", a);\n invariant(\n expectedId === undefined || a === expectedId,\n \"expected id to match\",\n );\n const r = await d.promise;\n return { ...r, $primaryKey: a };\n },\n } as Pick<ObjectSet<ObjectTypeDefinition>, \"fetchOne\">,\n );\n return d;\n }\n\n function mockApplyActionOnce(): DeferredPromise<\n Partial<ActionEditResponse>\n > {\n const d = pDefer<Partial<ActionEditResponse>>();\n\n client.mockReturnValueOnce(\n {\n applyAction: async (_args): Promise<ActionEditResponse> => {\n const x = await d.promise;\n return {\n type: \"edits\",\n addedLinks: x.addedLinks ?? [],\n addedObjects: x.addedObjects ?? [],\n deletedObjects: x.deletedObjects ?? [],\n deletedLinks: x.deletedLinks ?? [],\n deletedLinksCount: x.deletedLinksCount ?? 0,\n deletedObjectsCount: x.deletedObjectsCount ?? 0,\n editedObjectTypes: x.editedObjectTypes ?? [],\n modifiedObjects: x.modifiedObjects ?? [],\n };\n },\n } as Pick<\n ActionSignatureFromDef<ActionDefinition>,\n \"applyAction\"\n >,\n );\n return d;\n }\n\n return {\n client,\n mockApplyActionOnce,\n mockFetchOneOnce,\n mockObjectFactory2Once,\n mockFetchPageOnce,\n };\n}\n\nexport function createDefer() {\n let subscriptions: Unsubscribable[];\n\n beforeEach(() => {\n subscriptions = [];\n });\n\n afterEach(() => {\n for (const s of subscriptions) {\n s.unsubscribe();\n }\n subscriptions = [];\n });\n\n return function defer(x: Unsubscribable): Unsubscribable {\n subscriptions.push(x);\n return x;\n };\n}\n\nexport function expectSingleListCallAndClear<T extends ObjectTypeDefinition>(\n subFn: Mock<(e: ListPayload | undefined) => void>,\n resolvedList: Osdk.Instance<T>[],\n payloadOptions: Omit<Partial<ListPayload>, \"resolvedList\"> = {},\n): void {\n if (vitest.isFakeTimers()) {\n vitest.runOnlyPendingTimers();\n }\n expect(subFn).toHaveBeenCalledExactlyOnceWith(\n listPayloadContaining({\n ...payloadOptions,\n resolvedList,\n }),\n );\n subFn.mockClear();\n}\n\nexport function expectSingleObjectCallAndClear<T extends ObjectTypeDefinition>(\n subFn: Mock<(e: ObjectPayload | undefined) => void>,\n object: Osdk.Instance<T>,\n status?: Status,\n): void {\n expect(subFn).toHaveBeenCalledExactlyOnceWith(\n expect.objectContaining({\n object,\n status: status ?? expect.any(String),\n }),\n );\n subFn.mockClear();\n}\n\nexport async function waitForCall(\n subFn: Mock<(e: any) => void>,\n times: number = 1,\n): Promise<void> {\n try {\n await vi.waitFor(() => {\n expect(subFn).toHaveBeenCalledTimes(times);\n });\n } catch (e) {\n // we don't need the error, it will retrigger on the next line\n // and that provides better behavior in the vitest vscode\n // plugin. This places the error in the test itself instead of\n // only in this file\n }\n expect(subFn).toHaveBeenCalledTimes(times);\n}\n\nfunction createSubscriptionHelper() {\n}\n\nexport function mockSingleSubCallback():\n & Mock<\n (e: ObjectPayload | undefined) => void\n >\n & {\n // expectLoaded: (value: unknown) => Promise<void>;\n // expectLoading: (value: unknown) => Promise<void>;\n expectLoadingAndLoaded: (q: {\n loading?: unknown;\n loaded: unknown;\n }) => Promise<void>;\n }\n{\n const ret = vitest.fn((e: ObjectPayload | undefined) => {});\n\n // async function expectLoaded(value: unknown) {\n // await waitForCall(ret);\n // // as long as we get the loaded call we are happy\n // expect(ret).toHaveBeenLastCalledWith(\n // cacheEntryContaining({\n // value,\n // status: \"loaded\",\n // }),\n // );\n // ret.mockClear();\n // }\n\n // async function expectLoading(value: unknown) {\n // await waitForCall(ret);\n // // as long as we get the loaded call we are happy\n // expect(ret).toHaveBeenCalledExactlyOnceWith(\n // cacheEntryContaining({\n // value,\n // status: \"loading\",\n // }),\n // );\n // ret.mockClear();\n // }\n\n return Object.assign(ret, {\n // expectLoaded,\n // expectLoading,\n expectLoadingAndLoaded: async (\n q: { loading?: unknown; loaded: unknown },\n ) => {\n await waitForCall(ret, 2);\n\n // as long as we get the loaded call we are happy\n expect(ret).toHaveBeenNthCalledWith(\n 1,\n q.loading,\n );\n expect(ret).toHaveBeenNthCalledWith(\n 2,\n q.loaded,\n );\n expect(ret).toHaveBeenCalledTimes(2);\n ret.mockClear();\n },\n });\n}\n\nexport function mockListSubCallback(): Mock<\n (x: ListPayload | undefined) => void\n> {\n return vitest.fn(\n (x: ListPayload | undefined) => {},\n );\n}\n\nexport function cacheEntryContaining(x: Partial<Entry<any>>): Entry<any> {\n return {\n cacheKey: x.cacheKey ?? expect.any(Object),\n value: \"value\" in x\n ? x.value\n : expect.toBeOneOf([expect.anything(), undefined]),\n status: x.status ?? expect.anything(),\n lastUpdated: x.lastUpdated ?? expect.anything(),\n };\n}\n\nfunction nonOptionalValue<T extends object, K extends keyof T>(\n src: T,\n key: K,\n): NonNullable<T[K]> {\n return key in src\n ? src[key]\n : expect.toBeOneOf([expect.anything(), undefined]);\n}\n\nexport function objectPayloadContaining(\n x: Partial<ObjectPayload>,\n): ObjectPayload {\n return {\n object: nonOptionalValue(x, \"object\"),\n isOptimistic: expect.any(Boolean),\n status: x.status ?? expect.anything(),\n lastUpdated: x.lastUpdated ?? expect.anything(),\n };\n}\n\nexport function listPayloadContaining(\n x: Partial<ListPayload>,\n): ListPayload {\n return {\n fetchMore: x.fetchMore ?? expect.any(Function),\n hasMore: x.hasMore ?? expect.any(Boolean),\n resolvedList: x.resolvedList ?? expect.anything(),\n isOptimistic: expect.any(Boolean),\n status: x.status ?? expect.anything(),\n lastUpdated: x.lastUpdated ?? expect.anything(),\n };\n}\n\nexport function applyCustomMatchers(): void {\n expect.extend({\n toBeGreaterThan: (r: number, e: number) => {\n return {\n pass: r > e,\n message: () => `expected ${r} to be greater than ${e} (lastUpdated)`,\n };\n },\n });\n}\n\ninterface CustomMatchers<R = any> {\n toBeGreaterThan: (n: number) => R;\n}\n\ninterface CustomAsymmetricMatchers<R = any> {\n toBeGreaterThan: (n: number) => R;\n}\n\ndeclare module \"vitest\" {\n interface Assertion<T = any> extends CustomMatchers<T> {}\n interface AsymmetricMatchersContaining extends CustomAsymmetricMatchers {}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"testUtils.js","names":["Chalk","pDefer","invariant","afterEach","beforeEach","expect","vi","vitest","additionalContext","storeOsdkInstances","chalk","mockLog","args","console","log","yellow","createTestLogger","bindings","options","colors","debug","cyan","bgCyan","info","green","bgGreen","trace","gray","bgGray","error","red","bgRed","warn","bgYellow","fatal","redBright","bgRedBright","createLogMethod","name","fn","hasData","length","obj","more","slice","msgPrefix","methodName","magenta","Object","keys","child","theseBindings","theseOptions","level","undefined","isLevelEnabled","createClientMockHelper","client","logger","mockImplementation","localLogger","Error","e","where","deadObjectSet","whereArgs","fetchPage","fetchArgs","fetchOne","baseUrl","ontologyRid","objectFactory","objectFactory2","ontologyProvider","getActionDefinition","getInterfaceDefinition","getObjectDefinition","getQueryDefinition","tokenProvider","objectSetFactory","fetch","clientCacheKey","requestContext","mockApplyActionOnce","d","mockReturnValueOnce","applyAction","x","promise","type","addedLinks","addedObjects","deletedObjects","deletedLinks","deletedLinksCount","deletedObjectsCount","editedObjectTypes","modifiedObjects","mockFetchOneOnce","expectedId","a","process","env","NODE_ENV","r","$primaryKey","mockObjectFactory2Once","mocked","mockFetchPageOnce","objectSet","fetchPageArgs","clause","createDefer","subscriptions","s","unsubscribe","push","expectSingleListCallAndClear","subFn","resolvedList","payloadOptions","isFakeTimers","runOnlyPendingTimers","next","toHaveBeenCalledExactlyOnceWith","listPayloadContaining","mockClear","expectSingleObjectCallAndClear","object","status","objectContaining","any","String","waitForCall","times","waitFor","toHaveBeenCalledTimes","expectNoMoreCalls","observer","not","toHaveBeenCalled","createSubscriptionHelper","mockSingleSubCallback","ret","mockObserver","assign","expectLoadingAndLoaded","q","toHaveBeenNthCalledWith","loading","loaded","complete","mockListSubCallback","cacheEntryContaining","cacheKey","value","toBeOneOf","anything","lastUpdated","nonOptionalValue","src","key","objectPayloadContaining","isOptimistic","Boolean","fetchMore","Function","hasMore","applyCustomMatchers","extend","toBeGreaterThan","pass","message","updateList","store","orderBy","objects","optimisticId","opts","dedupeInterval","query","getListQuery","batch","objectCacheKeys","_updateList","getObject","pk","getValue","getCacheKey","updateObject","getObjectQuery","$apiName","writeToStore"],"sources":["testUtils.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ActionDefinition,\n ActionEditResponse,\n InterfaceDefinition,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n OsdkBase,\n PageResult,\n WhereClause,\n} from \"@osdk/api\";\nimport { Chalk } from \"chalk\";\nimport type { DeferredPromise } from \"p-defer\";\nimport pDefer from \"p-defer\";\nimport type { Observer } from \"rxjs\";\nimport invariant from \"tiny-invariant\";\nimport type { Mock, MockedObject } from \"vitest\";\nimport { afterEach, beforeEach, expect, vi, vitest } from \"vitest\";\nimport type { ActionSignatureFromDef } from \"../../actions/applyAction.js\";\nimport type { Client } from \"../../Client.js\";\nimport { additionalContext } from \"../../Client.js\";\nimport type { LogFn, Logger } from \"../../Logger.js\";\nimport type { ObjectHolder } from \"../../object/convertWireToOsdkObjects/ObjectHolder.js\";\nimport type { ListPayload } from \"../ListPayload.js\";\nimport type { ObjectPayload } from \"../ObjectPayload.js\";\nimport type { OrderBy, Status, Unsubscribable } from \"../ObservableClient.js\";\nimport type { Entry } from \"./Layer.js\";\nimport type { ListQueryOptions } from \"./ListQuery.js\";\nimport type { ObjectCacheKey } from \"./ObjectQuery.js\";\nimport { storeOsdkInstances } from \"./ObjectQuery.js\";\nimport type { OptimisticId } from \"./OptimisticId.js\";\nimport type { Store } from \"./Store.js\";\n\nconst chalk = new Chalk(); // new Chalk({ level: 3 });\n\nexport interface MockClientHelper {\n client: Mock<Client> & Client;\n\n mockApplyActionOnce: () => DeferredPromise<Partial<ActionEditResponse>>;\n\n mockFetchOneOnce: <Q extends ObjectTypeDefinition>(\n expectedId?: string | number | boolean,\n ) => DeferredPromise<\n Partial<\n Osdk.Instance<Q>\n >\n >;\n\n mockObjectFactory2Once: () => DeferredPromise<\n Array<\n | Osdk.Instance<ObjectOrInterfaceDefinition, never, any, {}>\n | ObjectHolder\n >\n >;\n\n mockFetchPageOnce: <\n Q extends ObjectTypeDefinition,\n >(\n expected?: {\n where: WhereClause<any>;\n orderBy: Record<string, \"asc\" | \"desc\" | undefined>;\n },\n ) => DeferredPromise<\n PageResult<Partial<Osdk.Instance<Q>>>\n >;\n}\n\nfunction mockLog(...args: any[]) {\n // eslint-disable-next-line no-console\n console.log(\n chalk.yellow(\"mockClient\"),\n ...args,\n );\n}\n// interface LogFn {\n// (obj: unknown, msg?: string, ...args: any[]): void;\n// (msg: string, ...args: any[]): void;\n// }\n\nexport function createTestLogger(\n bindings: Record<string, any>,\n options?: { level?: string; msgPrefix?: string },\n): Logger {\n const colors = {\n debug: [chalk.cyan, chalk.bgCyan],\n info: [chalk.green, chalk.bgGreen],\n trace: [chalk.gray, chalk.bgGray],\n error: [chalk.red, chalk.bgRed],\n warn: [chalk.yellow, chalk.bgYellow],\n fatal: [chalk.redBright, chalk.bgRedBright],\n } as const;\n function createLogMethod(\n name: \"debug\" | \"error\" | \"info\" | \"warn\" | \"fatal\" | \"trace\",\n ) {\n return vi.fn<LogFn>(\n (\n ...args: [\n obj: unknown,\n ...args1: any[],\n ] | [\n ...args2: any[],\n ]\n ) => {\n const hasData = args.length > 0 && typeof args[0] !== \"string\";\n const obj: Record<string, unknown> = hasData ? args[0] as any : {};\n const more: any[] = hasData ? args.slice(1) : args.slice(0);\n\n // eslint-disable-next-line no-console\n console.log(\n `${colors[name][1](name)}${\n options?.msgPrefix ? \" \" + colors[name][0](options.msgPrefix) : \"\"\n }${obj?.methodName ? ` .${chalk.magenta(obj.methodName)}()` : \"\"}`,\n ...more,\n );\n if (bindings && Object.keys(bindings).length > 0) {\n // eslint-disable-next-line no-console\n console.log(bindings);\n }\n },\n ) as LogFn;\n }\n return {\n debug: createLogMethod(\"debug\"),\n error: createLogMethod(\"error\"),\n info: createLogMethod(\"info\"),\n warn: createLogMethod(\"warn\"),\n fatal: createLogMethod(\"fatal\"),\n child: vi.fn<Logger[\"child\"]>((theseBindings, theseOptions) =>\n createTestLogger({\n ...bindings,\n ...theseBindings,\n }, {\n level: (theseOptions ?? options)?.level,\n msgPrefix: options?.msgPrefix || theseOptions?.msgPrefix\n ? `${options?.msgPrefix ? `${options.msgPrefix} ` : \"\"}${\n theseOptions?.msgPrefix || \"\"\n }`\n : undefined,\n })\n ),\n trace: createLogMethod(\"trace\"),\n isLevelEnabled: vi.fn((args) => true),\n };\n}\n\nexport function createClientMockHelper(): MockClientHelper {\n const client = vitest.fn<typeof client>() as unknown as Mock<Client> & Client;\n\n const logger = createTestLogger({});\n\n // this is just a fallback for when there is nothing set so we can track whats up\n client.mockImplementation((...args: any[]) => {\n const localLogger = logger.child({}, { msgPrefix: \"fallback mock client\" });\n try {\n throw new Error(\"IN THE FALLBACK MOCK CLIENT IMPLEMENTATION\");\n } catch (e) {\n localLogger.error(\"Just for the stack trace\", e);\n }\n\n let where;\n const deadObjectSet = {\n where: (...whereArgs: any[]) => {\n localLogger.trace(\"where\", whereArgs);\n where = whereArgs;\n return deadObjectSet;\n },\n fetchPage: (...fetchArgs: any[]) => {\n localLogger.trace(\"etchPage\", where!, fetchArgs);\n throw new Error(\"NO\");\n },\n fetchOne: (...fetchArgs: any[]) => {\n localLogger.trace(\"fetchOne\", fetchArgs);\n\n throw new Error(\"NO\");\n },\n };\n return deadObjectSet;\n });\n\n client[additionalContext] = {\n baseUrl: \"http://localhost:8080\",\n ontologyRid: \"ri.something\",\n objectFactory: vitest.fn(),\n objectFactory2: vitest.fn(),\n ontologyProvider: {\n getActionDefinition: vitest.fn(),\n getInterfaceDefinition: vitest.fn(),\n getObjectDefinition: vitest.fn(),\n getQueryDefinition: vitest.fn(),\n },\n tokenProvider: vitest.fn(),\n objectSetFactory: vitest.fn(),\n fetch: vitest.fn(),\n clientCacheKey: {} as any,\n requestContext: {},\n logger,\n };\n\n function mockObjectFactory2Once() {\n const d = pDefer<\n (\n | Osdk.Instance<ObjectOrInterfaceDefinition, never, any, {}>\n | ObjectHolder\n )[]\n >();\n vi.mocked(client[additionalContext].objectFactory2).mockReturnValueOnce(\n d.promise as Promise<ObjectHolder[]>,\n );\n return d;\n }\n\n function mockFetchPageOnce<\n X extends PageResult<\n Osdk.Instance<ObjectTypeDefinition>\n >,\n >(): DeferredPromise<X> {\n const d = pDefer<X>();\n\n const objectSet: ObjectSet<ObjectTypeDefinition> = {\n fetchPage: async (fetchPageArgs) => {\n mockLog(\"fetchPage\", fetchPageArgs);\n const r = await d.promise;\n return { ...r, $primaryKey: fetchPageArgs };\n },\n where: (clause) => {\n mockLog(\"where\", clause);\n return objectSet;\n },\n } as Pick<\n ObjectSet<ObjectTypeDefinition>,\n \"fetchPage\" | \"where\"\n > as ObjectSet<ObjectTypeDefinition>;\n\n client.mockReturnValueOnce(objectSet);\n return d;\n }\n\n function mockFetchOneOnce<\n X extends Partial<OsdkBase<any>>,\n >(expectedId?: string | number | boolean): DeferredPromise<X> {\n const d = pDefer<X>();\n\n client.mockReturnValueOnce(\n {\n fetchOne: async (a) => {\n mockLog(\"fetchOne\", a);\n invariant(\n expectedId === undefined || a === expectedId,\n \"expected id to match\",\n );\n const r = await d.promise;\n invariant(\n r.$primaryKey === a,\n `expected id to match. Got ${a} but object to return was ${r.$primaryKey}`,\n );\n return r;\n },\n } as Pick<ObjectSet<ObjectTypeDefinition>, \"fetchOne\">,\n );\n return d;\n }\n\n function mockApplyActionOnce(): DeferredPromise<\n Partial<ActionEditResponse>\n > {\n const d = pDefer<Partial<ActionEditResponse>>();\n\n client.mockReturnValueOnce(\n {\n applyAction: async (_args): Promise<ActionEditResponse> => {\n const x = await d.promise;\n return {\n type: \"edits\",\n addedLinks: x.addedLinks ?? [],\n addedObjects: x.addedObjects ?? [],\n deletedObjects: x.deletedObjects ?? [],\n deletedLinks: x.deletedLinks ?? [],\n deletedLinksCount: x.deletedLinksCount ?? 0,\n deletedObjectsCount: x.deletedObjectsCount ?? 0,\n editedObjectTypes: x.editedObjectTypes ?? [],\n modifiedObjects: x.modifiedObjects ?? [],\n };\n },\n } as Pick<\n ActionSignatureFromDef<ActionDefinition>,\n \"applyAction\"\n >,\n );\n return d;\n }\n\n return {\n client,\n mockApplyActionOnce,\n mockFetchOneOnce,\n mockObjectFactory2Once,\n mockFetchPageOnce,\n };\n}\n\nexport function createDefer() {\n let subscriptions: Unsubscribable[];\n\n beforeEach(() => {\n subscriptions = [];\n });\n\n afterEach(() => {\n for (const s of subscriptions) {\n s.unsubscribe();\n }\n subscriptions = [];\n });\n\n return function defer(x: Unsubscribable): Unsubscribable {\n subscriptions.push(x);\n return x;\n };\n}\n\nexport function expectSingleListCallAndClear<T extends ObjectTypeDefinition>(\n subFn: MockedObject<Observer<ListPayload | undefined>>,\n resolvedList: ObjectHolder[] | Osdk.Instance<T>[],\n payloadOptions: Omit<Partial<ListPayload>, \"resolvedList\"> = {},\n): void {\n if (vitest.isFakeTimers()) {\n vitest.runOnlyPendingTimers();\n }\n expect(subFn.next).toHaveBeenCalledExactlyOnceWith(\n listPayloadContaining({\n ...payloadOptions,\n resolvedList: resolvedList as unknown as Array<\n ObjectHolder\n >,\n }),\n );\n subFn.next.mockClear();\n}\n\nexport function expectSingleObjectCallAndClear<T extends ObjectTypeDefinition>(\n subFn: MockedObject<Observer<ObjectPayload | undefined>>,\n object: Osdk.Instance<T>,\n status?: Status,\n): void {\n expect(subFn.next).toHaveBeenCalledExactlyOnceWith(\n expect.objectContaining({\n object,\n status: status ?? expect.any(String),\n }),\n );\n subFn.next.mockClear();\n}\n\nexport async function waitForCall(\n subFn: Mock<(e: any) => void> | MockedObject<Observer<any>>,\n times: number = 1,\n): Promise<void> {\n if (\"next\" in subFn && \"error\" in subFn && \"complete\" in subFn) {\n subFn = subFn.next;\n }\n try {\n await vi.waitFor(() => {\n expect(subFn).toHaveBeenCalledTimes(times);\n });\n } catch (e) {\n // we don't need the error, it will retrigger on the next line\n // and that provides better behavior in the vitest vscode\n // plugin. This places the error in the test itself instead of\n // only in this file\n }\n expect(subFn).toHaveBeenCalledTimes(times);\n}\n\nexport function expectNoMoreCalls(\n observer: MockedObject<\n Observer<any>\n >,\n): void {\n expect(observer.next).not.toHaveBeenCalled();\n expect(observer.error).not.toHaveBeenCalled();\n}\n\nfunction createSubscriptionHelper() {\n}\n\nexport function mockSingleSubCallback():\n & MockedObject<\n Observer<ObjectPayload | undefined>\n >\n & {\n // expectLoaded: (value: unknown) => Promise<void>;\n // expectLoading: (value: unknown) => Promise<void>;\n expectLoadingAndLoaded: (q: {\n loading?: unknown;\n loaded: unknown;\n }) => Promise<void>;\n }\n{\n const ret = mockObserver<ObjectPayload | undefined>();\n\n // async function expectLoaded(value: unknown) {\n // await waitForCall(ret);\n // // as long as we get the loaded call we are happy\n // expect(ret).toHaveBeenLastCalledWith(\n // cacheEntryContaining({\n // value,\n // status: \"loaded\",\n // }),\n // );\n // ret.mockClear();\n // }\n\n // async function expectLoading(value: unknown) {\n // await waitForCall(ret);\n // // as long as we get the loaded call we are happy\n // expect(ret).toHaveBeenCalledExactlyOnceWith(\n // cacheEntryContaining({\n // value,\n // status: \"loading\",\n // }),\n // );\n // ret.mockClear();\n // }\n\n return Object.assign(ret, {\n // expectLoaded,\n // expectLoading,\n expectLoadingAndLoaded: async (\n q: { loading?: unknown; loaded: unknown },\n ) => {\n await waitForCall(ret.next, 2);\n\n // as long as we get the loaded call we are happy\n expect(ret.next).toHaveBeenNthCalledWith(\n 1,\n q.loading,\n );\n expect(ret.next).toHaveBeenNthCalledWith(\n 2,\n q.loaded,\n );\n expect(ret.next).toHaveBeenCalledTimes(2);\n ret.next.mockClear();\n },\n });\n}\n\nexport function mockObserver<T>(): MockedObject<Observer<T>> {\n return {\n next: vitest.fn(),\n\n // error: vitest.fn((x) => console.error(x)),\n error: vitest.fn(),\n complete: vitest.fn(),\n };\n}\n\nexport function mockListSubCallback(): MockedObject<\n Observer<ListPayload | undefined>\n> {\n return mockObserver<ListPayload | undefined>();\n}\n\nexport function cacheEntryContaining(x: Partial<Entry<any>>): Entry<any> {\n return {\n cacheKey: x.cacheKey ?? expect.any(Object),\n value: \"value\" in x\n ? x.value\n : expect.toBeOneOf([expect.anything(), undefined]),\n status: x.status ?? expect.anything(),\n lastUpdated: x.lastUpdated ?? expect.anything(),\n };\n}\n\nfunction nonOptionalValue<T extends object, K extends keyof T>(\n src: T,\n key: K,\n): NonNullable<T[K]> {\n return key in src\n ? src[key]\n : expect.toBeOneOf([expect.anything(), undefined]);\n}\n\nexport function objectPayloadContaining(\n x: Partial<ObjectPayload>,\n): ObjectPayload {\n return {\n object: nonOptionalValue(x, \"object\"),\n isOptimistic: expect.any(Boolean),\n status: x.status ?? expect.anything(),\n lastUpdated: x.lastUpdated ?? expect.anything(),\n };\n}\n\nexport function listPayloadContaining(\n x: Partial<ListPayload>,\n): ListPayload {\n return {\n fetchMore: x.fetchMore ?? expect.any(Function),\n hasMore: x.hasMore ?? expect.any(Boolean),\n resolvedList: x.resolvedList ?? expect.anything(),\n isOptimistic: expect.any(Boolean),\n status: x.status ?? expect.anything(),\n lastUpdated: x.lastUpdated ?? expect.anything(),\n };\n}\n\nexport function applyCustomMatchers(): void {\n expect.extend({\n toBeGreaterThan: (r: number, e: number) => {\n return {\n pass: r > e,\n message: () => `expected ${r} to be greater than ${e} (lastUpdated)`,\n };\n },\n });\n}\n\ninterface CustomMatchers<R = any> {\n toBeGreaterThan: (n: number) => R;\n}\n\ninterface CustomAsymmetricMatchers<R = any> {\n toBeGreaterThan: (n: number) => R;\n}\n\ndeclare module \"vitest\" {\n interface Assertion<T = any> extends CustomMatchers<T> {}\n interface AsymmetricMatchersContaining extends CustomAsymmetricMatchers {}\n}\n\n/**\n * Updates the internal state of a list and will create a new internal query if needed.\n *\n * Helper method only for tests right now. May be removed later.\n *\n * @param apiName\n * @param where\n * @param orderBy\n * @param objects\n * @param param4\n * @param opts\n */\nexport function updateList<\n T extends ObjectTypeDefinition | InterfaceDefinition,\n>(\n store: Store,\n {\n type,\n where,\n orderBy,\n }: {\n type: Pick<T, \"apiName\" | \"type\">;\n where: WhereClause<T>;\n orderBy: OrderBy<T>;\n },\n objects: ObjectHolder[] | Osdk.Instance<T>[],\n { optimisticId }: { optimisticId?: OptimisticId } = {},\n opts: ListQueryOptions = { dedupeInterval: 0 },\n): void {\n if (process.env.NODE_ENV !== \"production\") {\n store.logger?.child({ methodName: \"updateList\" }).info(\n \"\",\n { optimisticId },\n );\n }\n\n const query = store.getListQuery(\n type,\n where ?? {},\n orderBy ?? {},\n opts,\n );\n\n store.batch({ optimisticId }, (batch) => {\n const objectCacheKeys = storeOsdkInstances(store, objects, batch);\n query._updateList(objectCacheKeys, false, \"loaded\", batch);\n });\n}\n\nexport function getObject(\n store: Store,\n type: string,\n pk: number,\n): ObjectHolder | undefined {\n return store.getValue(store.getCacheKey<ObjectCacheKey>(\"object\", type, pk))\n ?.value;\n}\n\nexport function updateObject<T extends ObjectOrInterfaceDefinition>(\n store: Store,\n value: Osdk.Instance<T>,\n { optimisticId }: { optimisticId?: OptimisticId } = {},\n): Osdk.Instance<T> {\n const query = store.getObjectQuery(value.$apiName, value.$primaryKey);\n\n store.batch({ optimisticId }, (batch) => {\n return query.writeToStore(\n value as unknown as ObjectHolder<typeof value>,\n \"loaded\",\n batch,\n );\n });\n\n return value;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unstable-do-not-use.js","names":["augment","createObservableClient"],"sources":["unstable-do-not-use.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { augment } from \"../object/fetchPage.js\";\n\n// THIS IS NOT THE FINAL NAME DO NOT SHIP LIKE THIS\nexport type { ActionSignatureFromDef } from \"../actions/applyAction.js\";\nexport
|
|
1
|
+
{"version":3,"file":"unstable-do-not-use.js","names":["augment","createObservableClient"],"sources":["unstable-do-not-use.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { augment } from \"../object/fetchPage.js\";\n\n// THIS IS NOT THE FINAL NAME DO NOT SHIP LIKE THIS\nexport type { ActionSignatureFromDef } from \"../actions/applyAction.js\";\nexport { createObservableClient } from \"../observable/ObservableClient.js\";\nexport type {\n ObservableClient,\n ObserveObjectArgs,\n ObserveObjectsArgs,\n Observer,\n Unsubscribable,\n} from \"../observable/ObservableClient.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAQ,wBAAwB;;AAEhD;;AAEA,SAASC,sBAAsB,QAAQ,mCAAmC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"","names":[],"sources":["../../../src/object/SimpleOsdkProperties.ts"],"version":3,"file":"SimpleOsdkProperties.d.ts"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"","names":[],"sources":["../../../../src/object/convertWireToOsdkObjects/BaseHolder.ts"],"version":3,"file":"BaseHolder.d.ts"}
|
|
@@ -1 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import type { NullabilityAdherence } from "@osdk/api";
|
|
2
|
+
import type { InterfaceToObjectTypeMappings, InterfaceTypeApiName, OntologyObjectV2 } from "@osdk/foundry.ontologies";
|
|
3
|
+
import type { MinimalClient } from "../MinimalClientContext.js";
|
|
4
|
+
import type { InterfaceHolder } from "./convertWireToOsdkObjects/InterfaceHolder.js";
|
|
5
|
+
import type { ObjectHolder } from "./convertWireToOsdkObjects/ObjectHolder.js";
|
|
6
|
+
export declare function convertWireToOsdkObjects2(client: MinimalClient, objects: OntologyObjectV2[], interfaceApiName: string, forceRemoveRid?: boolean, selectedProps?: ReadonlyArray<string>, strictNonNull?: NullabilityAdherence, interfaceToObjectTypeMappings?: Record<InterfaceTypeApiName, InterfaceToObjectTypeMappings>): Promise<Array<InterfaceHolder>>;
|
|
7
|
+
export declare function convertWireToOsdkObjects2(client: MinimalClient, objects: OntologyObjectV2[], interfaceApiName: undefined, forceRemoveRid?: boolean, selectedProps?: ReadonlyArray<string>, strictNonNull?: NullabilityAdherence, interfaceToObjectTypeMappings?: Record<InterfaceTypeApiName, InterfaceToObjectTypeMappings>): Promise<Array<ObjectHolder>>;
|
|
8
|
+
export declare function convertWireToOsdkObjects2(client: MinimalClient, objects: OntologyObjectV2[], interfaceApiName: string | undefined, forceRemoveRid?: boolean, selectedProps?: ReadonlyArray<string>, strictNonNull?: NullabilityAdherence, interfaceToObjectTypeMappings?: Record<InterfaceTypeApiName, InterfaceToObjectTypeMappings>): Promise<Array<ObjectHolder | InterfaceHolder>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"","names":[],"sources":["../../../src/object/convertWireToOsdkObjects.ts"],"version":3,"file":"convertWireToOsdkObjects.d.ts"}
|
|
1
|
+
{"mappings":"AAgBA,cAEE,4BAEK,WAAY;AACnB,cACE,+BACA,sBACA,wBACK,0BAA2B;AAElC,cAAc,qBAAqB,4BAA6B;AAKhE,cAAc,uBAAuB,+CAAgD;AACrF,cAAc,oBAAoB,4CAA6C;AA6F/E,OAAO,iBAAe,0BACpBA,QAAQ,eACRC,SAAS,oBACTC,0BACAC,0BACAC,gBAAgB,uBAChBC,gBAAgB,sBAChBC,gCAAgC,OAC9B,sBACA,iCAED,QAAQ,MAAM;AACjB,OAAO,iBAAe,0BACpBN,QAAQ,eACRC,SAAS,oBACTM,6BACAJ,0BACAC,gBAAgB,uBAChBC,gBAAgB,sBAChBC,gCAAgC,OAC9B,sBACA,iCAED,QAAQ,MAAM;AACjB,OAAO,iBAAe,0BACpBN,QAAQ,eACRC,SAAS,oBACTO,sCACAL,0BACAC,gBAAgB,uBAChBC,gBAAgB,sBAChBC,gCAAgC,OAC9B,sBACA,iCAED,QAAQ,MAAM,eAAe","names":["client: MinimalClient","objects: OntologyObjectV2[]","interfaceApiName: string","forceRemoveRid?: boolean","selectedProps?: ReadonlyArray<string>","strictNonNull?: NullabilityAdherence","interfaceToObjectTypeMappings?: Record<\n InterfaceTypeApiName,\n InterfaceToObjectTypeMappings\n >","interfaceApiName: undefined","interfaceApiName: string | undefined"],"sources":["../../../src/object/convertWireToOsdkObjects.ts"],"version":3,"file":"convertWireToOsdkObjects.d.ts"}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
lastUpdated: number;
|
|
7
|
-
fetchMore: () => Promise<unknown>;
|
|
8
|
-
hasMore: boolean;
|
|
9
|
-
status: Status;
|
|
1
|
+
import type { InterfaceHolder } from "../object/convertWireToOsdkObjects/InterfaceHolder.js";
|
|
2
|
+
import type { ObjectHolder } from "../object/convertWireToOsdkObjects/ObjectHolder.js";
|
|
3
|
+
import type { ObserveObjectsArgs } from "./ObservableClient.js";
|
|
4
|
+
export interface ListPayload extends Omit<ObserveObjectsArgs<any>, "resolvedList"> {
|
|
5
|
+
resolvedList: Array<ObjectHolder | InterfaceHolder>;
|
|
10
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"AAgBA,cAAc,
|
|
1
|
+
{"mappings":"AAgBA,cAAc,uBAAuB,uDAAwD;AAC7F,cAAc,oBAAoB,oDAAqD;AACvF,cAAc,0BAA0B,uBAAwB;AAEhE,iBAAiB,oBACP,KAAK,yBAAyB,gBACxC;CACE,cAAc,MAAM,eAAe;AACpC","names":[],"sources":["../../../src/observable/ListPayload.ts"],"version":3,"file":"ListPayload.d.ts"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
export interface ObjectPayload {
|
|
4
|
-
object:
|
|
5
|
-
isOptimistic: boolean;
|
|
6
|
-
status: Status;
|
|
7
|
-
lastUpdated: number;
|
|
1
|
+
import type { ObjectHolder } from "../object/convertWireToOsdkObjects/ObjectHolder.js";
|
|
2
|
+
import type { ObserveObjectArgs } from "./ObservableClient.js";
|
|
3
|
+
export interface ObjectPayload extends Omit<ObserveObjectArgs<any>, "object"> {
|
|
4
|
+
object: ObjectHolder | undefined;
|
|
8
5
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"AAgBA,cAAc,
|
|
1
|
+
{"mappings":"AAgBA,cAAc,oBAAoB,oDAAqD;AACvF,cAAc,yBAAyB,uBAAwB;AAE/D,iBAAiB,sBAAsB,KAAK,wBAAwB,UAAU;CAC5E,QAAQ;AACT","names":[],"sources":["../../../src/observable/ObjectPayload.ts"],"version":3,"file":"ObjectPayload.d.ts"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import type { ActionDefinition, ObjectTypeDefinition, PrimaryKeyType, PropertyKeys, WhereClause } from "@osdk/api";
|
|
1
|
+
import type { ActionDefinition, InterfaceDefinition, ObjectTypeDefinition, Osdk, PrimaryKeyType, PropertyKeys, WhereClause } from "@osdk/api";
|
|
2
2
|
import type { ActionSignatureFromDef } from "../actions/applyAction.js";
|
|
3
3
|
import type { Client } from "../Client.js";
|
|
4
4
|
import type { Canonical } from "./internal/Canonical.js";
|
|
5
|
-
import type { ListPayload } from "./ListPayload.js";
|
|
6
|
-
import type { ObjectPayload } from "./ObjectPayload.js";
|
|
7
5
|
import type { OptimisticBuilder } from "./OptimisticBuilder.js";
|
|
8
|
-
import type { SubFn } from "./types.js";
|
|
9
6
|
export type Status = "init" | "loading" | "loaded" | "error";
|
|
7
|
+
export interface Observer<T> {
|
|
8
|
+
next: (value: T) => void;
|
|
9
|
+
error: (err: any) => void;
|
|
10
|
+
complete: () => void;
|
|
11
|
+
}
|
|
10
12
|
export declare namespace ObservableClient {
|
|
11
13
|
interface ApplyActionOptions {
|
|
12
14
|
optimisticUpdate?: (ctx: OptimisticBuilder) => void;
|
|
@@ -18,12 +20,12 @@ export interface CommonObserveOptions {
|
|
|
18
20
|
export interface ObserveOptions {
|
|
19
21
|
mode?: "offline" | "force";
|
|
20
22
|
}
|
|
21
|
-
export interface ObserveObjectOptions<T extends ObjectTypeDefinition> extends ObserveOptions {
|
|
23
|
+
export interface ObserveObjectOptions<T extends ObjectTypeDefinition | InterfaceDefinition> extends ObserveOptions {
|
|
22
24
|
select?: PropertyKeys<T>[];
|
|
23
25
|
}
|
|
24
|
-
export type OrderBy<Q extends ObjectTypeDefinition> = { [K in PropertyKeys<Q>]? : "asc" | "desc" | undefined };
|
|
25
|
-
export interface ObserveListOptions<Q extends ObjectTypeDefinition> extends CommonObserveOptions, ObserveOptions {
|
|
26
|
-
|
|
26
|
+
export type OrderBy<Q extends ObjectTypeDefinition | InterfaceDefinition> = { [K in PropertyKeys<Q>]? : "asc" | "desc" | undefined };
|
|
27
|
+
export interface ObserveListOptions<Q extends ObjectTypeDefinition | InterfaceDefinition> extends CommonObserveOptions, ObserveOptions {
|
|
28
|
+
type: Pick<Q, "apiName" | "type">;
|
|
27
29
|
where?: WhereClause<Q>;
|
|
28
30
|
pageSize?: number;
|
|
29
31
|
orderBy?: OrderBy<Q>;
|
|
@@ -31,11 +33,25 @@ export interface ObserveListOptions<Q extends ObjectTypeDefinition> extends Comm
|
|
|
31
33
|
expectedLength?: number;
|
|
32
34
|
streamUpdates?: boolean;
|
|
33
35
|
}
|
|
36
|
+
export interface ObserveObjectArgs<T extends ObjectTypeDefinition> {
|
|
37
|
+
object: Osdk.Instance<T> | undefined;
|
|
38
|
+
isOptimistic: boolean;
|
|
39
|
+
status: Status;
|
|
40
|
+
lastUpdated: number;
|
|
41
|
+
}
|
|
42
|
+
export interface ObserveObjectsArgs<T extends ObjectTypeDefinition | InterfaceDefinition> {
|
|
43
|
+
resolvedList: Array<Osdk.Instance<T>>;
|
|
44
|
+
isOptimistic: boolean;
|
|
45
|
+
lastUpdated: number;
|
|
46
|
+
fetchMore: () => Promise<unknown>;
|
|
47
|
+
hasMore: boolean;
|
|
48
|
+
status: Status;
|
|
49
|
+
}
|
|
34
50
|
export interface ObservableClient {
|
|
35
|
-
observeObject<T extends ObjectTypeDefinition>(apiName: T["apiName"] | T, pk: PrimaryKeyType<T>, options: ObserveOptions, subFn:
|
|
36
|
-
observeList<T extends ObjectTypeDefinition>(options: ObserveListOptions<T>, subFn:
|
|
51
|
+
observeObject<T extends ObjectTypeDefinition>(apiName: T["apiName"] | T, pk: PrimaryKeyType<T>, options: ObserveOptions, subFn: Observer<ObserveObjectArgs<T>>): Unsubscribable;
|
|
52
|
+
observeList<T extends ObjectTypeDefinition | InterfaceDefinition>(options: ObserveListOptions<T>, subFn: Observer<ObserveObjectsArgs<T>>): Unsubscribable;
|
|
37
53
|
applyAction: <Q extends ActionDefinition<any>>(action: Q, args: Parameters<ActionSignatureFromDef<Q>["applyAction"]>[0], opts?: ObservableClient.ApplyActionOptions) => Promise<unknown>;
|
|
38
|
-
canonicalizeWhereClause: <T extends ObjectTypeDefinition>(where: WhereClause<T>) => Canonical<WhereClause<T>>;
|
|
54
|
+
canonicalizeWhereClause: <T extends ObjectTypeDefinition | InterfaceDefinition>(where: WhereClause<T>) => Canonical<WhereClause<T>>;
|
|
39
55
|
}
|
|
40
56
|
export declare function createObservableClient(client: Client): ObservableClient;
|
|
41
57
|
export interface Unsubscribable {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"AAgBA,cACE,kBACA,sBACA,gBACA,cACA,mBACK,WAAY;AACnB,cAAc,8BAA8B,2BAA4B;AACxE,cAAc,cAAc,cAAe;AAC3C,cAAc,iBAAiB,yBAA0B;AAGzD,cAAc,
|
|
1
|
+
{"mappings":"AAgBA,cACE,kBACA,qBACA,sBACA,MACA,gBACA,cACA,mBACK,WAAY;AACnB,cAAc,8BAA8B,2BAA4B;AACxE,cAAc,cAAc,cAAe;AAC3C,cAAc,iBAAiB,yBAA0B;AAGzD,cAAc,yBAAyB,wBAAyB;AAEhE,YAAY,SAAS,SAAS,YAAY,WAAW;AAErD,iBAAiB,SAAS,GAAG;CAC3B,OAAOA,OAAO;CACd,QAAQC;CACR;AACD;AAED,yBAAiB;WACE,mBAAmB;EAClC,oBAAoBC,KAAK;CAC1B;;AAGH,iBAAiB,qBAAqB;CACpC;AACD;AAED,iBAAiB,eAAe;CAC9B,OAAO,YAAY;AACpB;AAED,iBAAiB,qBACf,UAAU,uBAAuB,6BACzB,eAAe;CACvB,SAAS,aAAa;AACvB;AAED,YAAY,QAAQ,UAAU,uBAAuB,0BAClD,KAAK,aAAa,OAAM,QAAQ;AAGnC,iBAAiB,mBACf,UAAU,uBAAuB,6BACzB,sBAAsB,eAAe;CAC7C,MAAM,KAAK,GAAG,YAAY;CAC1B,QAAQ,YAAY;CACpB;CACA,UAAU,QAAQ;CAClB,mBAAmB,aAAa,SAAS;CACzC;CACA;AACD;AAED,iBAAiB,kBAAkB,UAAU,sBAAsB;CACjE,QAAQ,KAAK,SAAS;CACtB;CACA,QAAQ;CACR;AACD;AAED,iBAAiB,mBACf,UAAU,uBAAuB,qBACjC;CACA,cAAc,MAAM,KAAK,SAAS;CAClC;CACA;CACA,iBAAiB;CACjB;CACA,QAAQ;AACT;AAED,iBAAiB,iBAAiB;CAChC,cAAc,UAAU,sBACtBC,SAAS,EAAE,aAAa,GACxBC,IAAI,eAAe,IACnBC,SAAS,gBACTC,OAAO,SAAS,kBAAkB,MACjC;CAEH,YAAY,UAAU,uBAAuB,qBAC3CC,SAAS,mBAAmB,IAC5BC,OAAO,SAAS,mBAAmB,MAClC;CAEH,cAAc,UAAU,uBACtBC,QAAQ,GACRC,MAAM,WAAW,uBAAuB,GAAG,gBAAgB,IAC3DC,OAAO,iBAAiB,uBACrB;CAEL,0BACE,UAAU,uBAAuB,qBAEjCC,OAAO,YAAY,OAChB,UAAU,YAAY;AAC5B;AAED,OAAO,iBAAS,uBAAuBC,QAAQ,SAAS;AAIxD,iBAAiB,eAAe;CAC9B;AACD","names":["value: T","err: any","ctx: OptimisticBuilder","apiName: T[\"apiName\"] | T","pk: PrimaryKeyType<T>","options: ObserveOptions","subFn: Observer<ObserveObjectArgs<T>>","options: ObserveListOptions<T>","subFn: Observer<ObserveObjectsArgs<T>>","action: Q","args: Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]","opts?: ObservableClient.ApplyActionOptions","where: WhereClause<T>","client: Client"],"sources":["../../../src/observable/ObservableClient.ts"],"version":3,"file":"ObservableClient.d.ts"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"AAgBA,cAAc,wBAA4C,WAAY;AAEtE,cAAc,8BAA8B,8BAA+B;AAI3E,cAAc,aAAa,YAAa;AAIxC,OAAO,cAAM,kBAAkB;;CACjB;CAAZ,YAAoBA,OAAO;CAE3B,cAAc,UAAU,uBACtBC,QAAQ,GACRC,MAAM,WAAW,uBAAuB,GAAG,gBAAgB,IAC3DC,OAAO,MAAM,uBACV;
|
|
1
|
+
{"mappings":"AAgBA,cAAc,wBAA4C,WAAY;AAEtE,cAAc,8BAA8B,8BAA+B;AAI3E,cAAc,aAAa,YAAa;AAIxC,OAAO,cAAM,kBAAkB;;CACjB;CAAZ,YAAoBA,OAAO;CAE3B,cAAc,UAAU,uBACtBC,QAAQ,GACRC,MAAM,WAAW,uBAAuB,GAAG,gBAAgB,IAC3DC,OAAO,MAAM,uBACV;AA8FN","names":["store: Store","action: Q","args: Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]","opts?: Store.ApplyActionOptions"],"sources":["../../../../src/observable/internal/ActionApplication.ts"],"version":3,"file":"ActionApplication.d.ts"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CacheKey } from "./CacheKey.js";
|
|
2
|
-
import type { OrderByCanonicalizer } from "./
|
|
2
|
+
import type { OrderByCanonicalizer } from "./OrderByCanonicalizer.js";
|
|
3
3
|
import type { WhereClauseCanonicalizer } from "./WhereClauseCanonicalizer.js";
|
|
4
4
|
export declare class CacheKeys {
|
|
5
5
|
#private;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"AAmBA,cAAc,gBAAgB,eAAgB;AAG9C,cAAc,4BAA4B,
|
|
1
|
+
{"mappings":"AAmBA,cAAc,gBAAgB,eAAgB;AAG9C,cAAc,4BAA4B,2BAA4B;AACtE,cAAc,gCAAgC,+BAAgC;AAI9E,OAAO,cAAM,UAAU;;CAgBrB,YACEA,oBAAoB,0BACpBC,sBAAsB,sBACtBC,WAAWC,UAAU;CA6DvB,IAAI,UAAU,4BACZC,MAAM,EAAE,SACR,GAAG,MAAM,EAAE,cAAc,UACxB;CAMH,OAAO,UAAU,4BACfC,UAAU;AAIb","names":["whereCanonicalizer: WhereClauseCanonicalizer","orderByCanonicalizer: OrderByCanonicalizer","onCreate: (cacheKey: CacheKey) => void","cacheKey: CacheKey","type: K[\"type\"]","cacheKey: K"],"sources":["../../../../src/observable/internal/CacheKeys.ts"],"version":3,"file":"CacheKeys.d.ts"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { MultiMap } from "mnemonist";
|
|
2
|
+
import type { ObjectHolder } from "../../object/convertWireToOsdkObjects/ObjectHolder.js";
|
|
3
|
+
import type { ListCacheKey } from "./ListQuery.js";
|
|
4
|
+
import type { ObjectCacheKey } from "./ObjectQuery.js";
|
|
5
|
+
export declare class Changes {
|
|
6
|
+
modifiedObjects: MultiMap<string, ObjectHolder>;
|
|
7
|
+
addedObjects: MultiMap<string, ObjectHolder>;
|
|
8
|
+
added: Set<ListCacheKey | ObjectCacheKey>;
|
|
9
|
+
modified: Set<ListCacheKey | ObjectCacheKey>;
|
|
10
|
+
registerObject: (cacheKey: ObjectCacheKey, data: ObjectHolder, isNew: boolean) => void;
|
|
11
|
+
registerList: (key: ListCacheKey) => void;
|
|
12
|
+
isEmpty(): boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function createChangedObjects(): Changes;
|
|
15
|
+
export declare function DEBUG_ONLY__changesToString(changes: Changes): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"AAgBA,SAAS,gBAAgB,WAAY;AACrC,cAAc,oBAAoB,uDAAwD;AAG1F,cAAc,oBAAoB,gBAAiB;AACnD,cAAc,sBAAsB,kBAAmB;AAEvD,OAAO,cAAM,QAAQ;CACnB,iBAAiB,iBAAiB;CAClC,cAAc,iBAAiB;CAE/B,OAAO,IAAI,eAAe;CAC1B,UAAU,IAAI,eAAe;CAE7B,iBACEA,UAAU,gBACVC,MAAM,cACNC;CAMF,eAAgBC,KAAK;CAIrB;AAQD;AAED,OAAO,iBAAS,wBAAwB;AAIxC,OAAO,iBAAS,4BAA4BC,SAAS","names":["cacheKey: ObjectCacheKey","data: ObjectHolder","isNew: boolean","key: ListCacheKey","changes: Changes"],"sources":["../../../../src/observable/internal/Changes.ts"],"version":3,"file":"Changes.d.ts"}
|
|
@@ -7,6 +7,7 @@ export declare class Layer {
|
|
|
7
7
|
addLayer(layerId: unknown): Layer;
|
|
8
8
|
removeLayer(layerId: unknown): Layer;
|
|
9
9
|
entries(): IterableIterator<[CacheKey<string, any, any>, Entry<any>]>;
|
|
10
|
+
keys(): IterableIterator<CacheKey<string, any, any>>;
|
|
10
11
|
get<K extends CacheKey<string, unknown, any>>(cacheKey: K): Entry<K> | undefined;
|
|
11
12
|
set<K extends CacheKey<string, unknown, any>>(cacheKey: K, value: Entry<K>): void;
|
|
12
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"AAgBA,cAAc,gBAAgB,eAAgB;AAc9C,OAAO,cAAM,MAAM;;CAKjB,YAAYA,QAAQ,mBAAmBC;CAKvC,IAAI,eAAe;CAInB,IAAI;CAIJ,SAASA,mBAAmB;CAI5B,YAAYA,mBAAmB;CAc/B,WAAW,kBAAkB,4BAA4B;CAIzD,AAAO,IAAI,UAAU,gCACnBC,UAAU,IACT,MAAM;CAKT,AAAO,IAAI,UAAU,gCACnBA,UAAU,GACVC,OAAO,MAAM;AAIhB;AAED,OAAO,cAAM,MAAM,UAAU,yBAAyB;CACpD,SAAS,UAAU;CACnB,OAAO,EAAE,cAAc;CACvB;CACA,QAAQ,SAAS,YAAY,WAAW;CAExC,YACED,UAAU,GACVE,OAAO,EAAE,cAAc,UACvBC,qBACAC,SAAQ,SAAS,YAAY,WAAW;AAO3C","names":["parent: Layer | undefined","layerId: unknown","cacheKey: K","value: Entry<K>","value: K[\"__cacheKey\"][\"value\"]","lastUpdated: number","status: \"init\" | \"loading\" | \"loaded\" | \"error\""],"sources":["../../../../src/observable/internal/Layer.ts"],"version":3,"file":"Layer.d.ts"}
|
|
1
|
+
{"mappings":"AAgBA,cAAc,gBAAgB,eAAgB;AAc9C,OAAO,cAAM,MAAM;;CAKjB,YAAYA,QAAQ,mBAAmBC;CAKvC,IAAI,eAAe;CAInB,IAAI;CAIJ,SAASA,mBAAmB;CAI5B,YAAYA,mBAAmB;CAc/B,WAAW,kBAAkB,4BAA4B;CAIzD,QAAQ,iBAAiB;CAIzB,AAAO,IAAI,UAAU,gCACnBC,UAAU,IACT,MAAM;CAKT,AAAO,IAAI,UAAU,gCACnBA,UAAU,GACVC,OAAO,MAAM;AAIhB;AAED,OAAO,cAAM,MAAM,UAAU,yBAAyB;CACpD,SAAS,UAAU;CACnB,OAAO,EAAE,cAAc;CACvB;CACA,QAAQ,SAAS,YAAY,WAAW;CAExC,YACED,UAAU,GACVE,OAAO,EAAE,cAAc,UACvBC,qBACAC,SAAQ,SAAS,YAAY,WAAW;AAO3C","names":["parent: Layer | undefined","layerId: unknown","cacheKey: K","value: Entry<K>","value: K[\"__cacheKey\"][\"value\"]","lastUpdated: number","status: \"init\" | \"loading\" | \"loaded\" | \"error\""],"sources":["../../../../src/observable/internal/Layer.ts"],"version":3,"file":"Layer.d.ts"}
|