@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.
Files changed (202) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/build/browser/createMinimalClient.js +2 -2
  3. package/build/browser/createMinimalClient.js.map +1 -1
  4. package/build/browser/object/SimpleOsdkProperties.js +2 -0
  5. package/build/browser/object/SimpleOsdkProperties.js.map +1 -0
  6. package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js +2 -0
  7. package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -0
  8. package/build/browser/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -1
  9. package/build/browser/object/convertWireToOsdkObjects/ObjectHolder.js.map +1 -1
  10. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  11. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js +10 -3
  12. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  13. package/build/browser/object/convertWireToOsdkObjects/getDollarAs.js.map +1 -1
  14. package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  15. package/build/browser/object/convertWireToOsdkObjects.js +4 -2
  16. package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
  17. package/build/browser/object/fetchPage.js +13 -1
  18. package/build/browser/object/fetchPage.js.map +1 -1
  19. package/build/browser/object/fetchPage.test.js +56 -2
  20. package/build/browser/object/fetchPage.test.js.map +1 -1
  21. package/build/browser/object/object.test.js.map +1 -1
  22. package/build/browser/objectSet/InterfaceObjectSet.test.js +18 -2
  23. package/build/browser/objectSet/InterfaceObjectSet.test.js.map +1 -1
  24. package/build/browser/objectSet/ObjectSet.test.js +92 -102
  25. package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
  26. package/build/browser/objectSet/ObjectSetListenerWebsocket.js +18 -14
  27. package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  28. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  29. package/build/browser/observable/ListPayload.js.map +1 -1
  30. package/build/browser/observable/ObjectPayload.js.map +1 -1
  31. package/build/browser/observable/ObservableClient.js.map +1 -1
  32. package/build/browser/observable/internal/ActionApplication.js +29 -29
  33. package/build/browser/observable/internal/ActionApplication.js.map +1 -1
  34. package/build/browser/observable/internal/CacheKey.js +1 -1
  35. package/build/browser/observable/internal/CacheKey.js.map +1 -1
  36. package/build/browser/observable/internal/CacheKeys.js +2 -2
  37. package/build/browser/observable/internal/CacheKeys.js.map +1 -1
  38. package/build/browser/observable/internal/{ChangedObjects.js → Changes.js} +20 -9
  39. package/build/browser/observable/internal/Changes.js.map +1 -0
  40. package/build/browser/observable/internal/Layer.js +3 -0
  41. package/build/browser/observable/internal/Layer.js.map +1 -1
  42. package/build/browser/observable/internal/ListQuery.js +411 -170
  43. package/build/browser/observable/internal/ListQuery.js.map +1 -1
  44. package/build/browser/observable/internal/ObjectQuery.js +32 -16
  45. package/build/browser/observable/internal/ObjectQuery.js.map +1 -1
  46. package/build/browser/observable/internal/ObservableClientImpl.js +4 -12
  47. package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
  48. package/build/browser/observable/internal/OptimisticJob.js.map +1 -1
  49. package/build/browser/observable/internal/OrderByCanonicalizer.js +73 -0
  50. package/build/browser/observable/internal/OrderByCanonicalizer.js.map +1 -0
  51. package/build/browser/observable/internal/OrderByCanonicalizer.test.js +78 -0
  52. package/build/browser/observable/internal/OrderByCanonicalizer.test.js.map +1 -0
  53. package/build/browser/observable/internal/Query.js +64 -31
  54. package/build/browser/observable/internal/Query.js.map +1 -1
  55. package/build/browser/observable/internal/RefCounts.js +7 -2
  56. package/build/browser/observable/internal/RefCounts.js.map +1 -1
  57. package/build/browser/observable/internal/SimpleWhereClause.js +2 -0
  58. package/build/browser/observable/internal/SimpleWhereClause.js.map +1 -0
  59. package/build/browser/observable/internal/Store.js +84 -267
  60. package/build/browser/observable/internal/Store.js.map +1 -1
  61. package/build/browser/observable/internal/Store.test.js +264 -247
  62. package/build/browser/observable/internal/Store.test.js.map +1 -1
  63. package/build/browser/observable/internal/WhereClauseCanonicalizer.js +11 -3
  64. package/build/browser/observable/internal/WhereClauseCanonicalizer.js.map +1 -1
  65. package/build/browser/observable/internal/objectMatchesWhereClause.js.map +1 -1
  66. package/build/browser/observable/internal/objectMatchesWhereClause.test.js.map +1 -1
  67. package/build/browser/observable/internal/testUtils.js +82 -18
  68. package/build/browser/observable/internal/testUtils.js.map +1 -1
  69. package/build/browser/public/unstable-do-not-use.js.map +1 -1
  70. package/build/browser/util/UserAgent.js +1 -1
  71. package/build/cjs/{chunk-JPENHIJB.cjs → chunk-EY52J5Z4.cjs} +25 -15
  72. package/build/cjs/chunk-EY52J5Z4.cjs.map +1 -0
  73. package/build/cjs/{chunk-IU47QMYO.cjs → chunk-MCQVHD2F.cjs} +32 -28
  74. package/build/cjs/chunk-MCQVHD2F.cjs.map +1 -0
  75. package/build/cjs/chunk-T4NIFYZS.cjs +14 -0
  76. package/build/cjs/chunk-T4NIFYZS.cjs.map +1 -0
  77. package/build/cjs/index.cjs +69 -72
  78. package/build/cjs/index.cjs.map +1 -1
  79. package/build/cjs/public/internal.cjs +6 -6
  80. package/build/cjs/public/unstable-do-not-use.cjs +683 -539
  81. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  82. package/build/cjs/public/unstable-do-not-use.d.cts +27 -26
  83. package/build/esm/createMinimalClient.js +2 -2
  84. package/build/esm/createMinimalClient.js.map +1 -1
  85. package/build/esm/object/SimpleOsdkProperties.js +2 -0
  86. package/build/esm/object/SimpleOsdkProperties.js.map +1 -0
  87. package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js +2 -0
  88. package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -0
  89. package/build/esm/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -1
  90. package/build/esm/object/convertWireToOsdkObjects/ObjectHolder.js.map +1 -1
  91. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  92. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js +10 -3
  93. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  94. package/build/esm/object/convertWireToOsdkObjects/getDollarAs.js.map +1 -1
  95. package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  96. package/build/esm/object/convertWireToOsdkObjects.js +4 -2
  97. package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
  98. package/build/esm/object/fetchPage.js +13 -1
  99. package/build/esm/object/fetchPage.js.map +1 -1
  100. package/build/esm/object/fetchPage.test.js +56 -2
  101. package/build/esm/object/fetchPage.test.js.map +1 -1
  102. package/build/esm/object/object.test.js.map +1 -1
  103. package/build/esm/objectSet/InterfaceObjectSet.test.js +18 -2
  104. package/build/esm/objectSet/InterfaceObjectSet.test.js.map +1 -1
  105. package/build/esm/objectSet/ObjectSet.test.js +92 -102
  106. package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
  107. package/build/esm/objectSet/ObjectSetListenerWebsocket.js +18 -14
  108. package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  109. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  110. package/build/esm/observable/ListPayload.js.map +1 -1
  111. package/build/esm/observable/ObjectPayload.js.map +1 -1
  112. package/build/esm/observable/ObservableClient.js.map +1 -1
  113. package/build/esm/observable/internal/ActionApplication.js +29 -29
  114. package/build/esm/observable/internal/ActionApplication.js.map +1 -1
  115. package/build/esm/observable/internal/CacheKey.js +1 -1
  116. package/build/esm/observable/internal/CacheKey.js.map +1 -1
  117. package/build/esm/observable/internal/CacheKeys.js +2 -2
  118. package/build/esm/observable/internal/CacheKeys.js.map +1 -1
  119. package/build/esm/observable/internal/{ChangedObjects.js → Changes.js} +20 -9
  120. package/build/esm/observable/internal/Changes.js.map +1 -0
  121. package/build/esm/observable/internal/Layer.js +3 -0
  122. package/build/esm/observable/internal/Layer.js.map +1 -1
  123. package/build/esm/observable/internal/ListQuery.js +411 -170
  124. package/build/esm/observable/internal/ListQuery.js.map +1 -1
  125. package/build/esm/observable/internal/ObjectQuery.js +32 -16
  126. package/build/esm/observable/internal/ObjectQuery.js.map +1 -1
  127. package/build/esm/observable/internal/ObservableClientImpl.js +4 -12
  128. package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
  129. package/build/esm/observable/internal/OptimisticJob.js.map +1 -1
  130. package/build/esm/observable/internal/OrderByCanonicalizer.js +73 -0
  131. package/build/esm/observable/internal/OrderByCanonicalizer.js.map +1 -0
  132. package/build/esm/observable/internal/OrderByCanonicalizer.test.js +78 -0
  133. package/build/esm/observable/internal/OrderByCanonicalizer.test.js.map +1 -0
  134. package/build/esm/observable/internal/Query.js +64 -31
  135. package/build/esm/observable/internal/Query.js.map +1 -1
  136. package/build/esm/observable/internal/RefCounts.js +7 -2
  137. package/build/esm/observable/internal/RefCounts.js.map +1 -1
  138. package/build/esm/observable/internal/SimpleWhereClause.js +2 -0
  139. package/build/esm/observable/internal/SimpleWhereClause.js.map +1 -0
  140. package/build/esm/observable/internal/Store.js +84 -267
  141. package/build/esm/observable/internal/Store.js.map +1 -1
  142. package/build/esm/observable/internal/Store.test.js +264 -247
  143. package/build/esm/observable/internal/Store.test.js.map +1 -1
  144. package/build/esm/observable/internal/WhereClauseCanonicalizer.js +11 -3
  145. package/build/esm/observable/internal/WhereClauseCanonicalizer.js.map +1 -1
  146. package/build/esm/observable/internal/objectMatchesWhereClause.js.map +1 -1
  147. package/build/esm/observable/internal/objectMatchesWhereClause.test.js.map +1 -1
  148. package/build/esm/observable/internal/testUtils.js +82 -18
  149. package/build/esm/observable/internal/testUtils.js.map +1 -1
  150. package/build/esm/public/unstable-do-not-use.js.map +1 -1
  151. package/build/esm/util/UserAgent.js +1 -1
  152. package/build/types/object/SimpleOsdkProperties.d.ts +1 -0
  153. package/build/types/object/SimpleOsdkProperties.d.ts.map +1 -0
  154. package/build/types/object/convertWireToOsdkObjects/BaseHolder.d.ts +1 -0
  155. package/build/types/object/convertWireToOsdkObjects/BaseHolder.d.ts.map +1 -0
  156. package/build/types/object/convertWireToOsdkObjects.d.ts +8 -1
  157. package/build/types/object/convertWireToOsdkObjects.d.ts.map +1 -1
  158. package/build/types/observable/ListPayload.d.ts +5 -9
  159. package/build/types/observable/ListPayload.d.ts.map +1 -1
  160. package/build/types/observable/ObjectPayload.d.ts +4 -7
  161. package/build/types/observable/ObjectPayload.d.ts.map +1 -1
  162. package/build/types/observable/ObservableClient.d.ts +27 -11
  163. package/build/types/observable/ObservableClient.d.ts.map +1 -1
  164. package/build/types/observable/internal/ActionApplication.d.ts.map +1 -1
  165. package/build/types/observable/internal/CacheKeys.d.ts +1 -1
  166. package/build/types/observable/internal/CacheKeys.d.ts.map +1 -1
  167. package/build/types/observable/internal/Changes.d.ts +15 -0
  168. package/build/types/observable/internal/Changes.d.ts.map +1 -0
  169. package/build/types/observable/internal/Layer.d.ts +1 -0
  170. package/build/types/observable/internal/Layer.d.ts.map +1 -1
  171. package/build/types/observable/internal/ListQuery.d.ts +59 -14
  172. package/build/types/observable/internal/ListQuery.d.ts.map +1 -1
  173. package/build/types/observable/internal/ObjectQuery.d.ts +5 -6
  174. package/build/types/observable/internal/ObjectQuery.d.ts.map +1 -1
  175. package/build/types/observable/internal/OptimisticJob.d.ts +1 -1
  176. package/build/types/observable/internal/OptimisticJob.d.ts.map +1 -1
  177. package/build/types/observable/internal/OrderByCanonicalizer.d.ts +12 -0
  178. package/build/types/observable/internal/OrderByCanonicalizer.d.ts.map +1 -0
  179. package/build/types/observable/internal/OrderByCanonicalizer.test.d.ts +1 -0
  180. package/build/types/observable/internal/OrderByCanonicalizer.test.d.ts.map +1 -0
  181. package/build/types/observable/internal/Query.d.ts +39 -4
  182. package/build/types/observable/internal/Query.d.ts.map +1 -1
  183. package/build/types/observable/internal/RefCounts.d.ts.map +1 -1
  184. package/build/types/observable/internal/SimpleWhereClause.d.ts +2 -0
  185. package/build/types/observable/internal/SimpleWhereClause.d.ts.map +1 -0
  186. package/build/types/observable/internal/Store.d.ts +19 -43
  187. package/build/types/observable/internal/Store.d.ts.map +1 -1
  188. package/build/types/observable/internal/WhereClauseCanonicalizer.d.ts +2 -1
  189. package/build/types/observable/internal/WhereClauseCanonicalizer.d.ts.map +1 -1
  190. package/build/types/observable/internal/objectMatchesWhereClause.d.ts +4 -2
  191. package/build/types/observable/internal/objectMatchesWhereClause.d.ts.map +1 -1
  192. package/build/types/observable/internal/testUtils.d.ts +39 -9
  193. package/build/types/observable/internal/testUtils.d.ts.map +1 -1
  194. package/build/types/public/unstable-do-not-use.d.ts +1 -4
  195. package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
  196. package/package.json +12 -10
  197. package/build/browser/observable/internal/ChangedObjects.js.map +0 -1
  198. package/build/cjs/chunk-IU47QMYO.cjs.map +0 -1
  199. package/build/cjs/chunk-JPENHIJB.cjs.map +0 -1
  200. package/build/esm/observable/internal/ChangedObjects.js.map +0 -1
  201. package/build/types/observable/internal/ChangedObjects.d.ts +0 -11
  202. 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.methodName ? ` .${chalk.magenta(obj.methodName)}()` : ""}`, ...more);
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
- ...r,
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 = vitest.fn(() => {});
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 vitest.fn(() => {});
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 type { ListPayload } from \"../observable/ListPayload.js\";\nexport type { ObjectPayload } from \"../observable/ObjectPayload.js\";\nexport type { Unsubscribable } from \"../observable/ObservableClient.js\";\nexport type { ObservableClient } from \"../observable/ObservableClient.js\";\nexport { createObservableClient } 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;;AAMA,SAASC,sBAAsB,QAAQ,mCAAmC","ignoreList":[]}
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":[]}
@@ -14,5 +14,5 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- export const USER_AGENT = `osdk-client/${"2.2.0-beta.8"}`;
17
+ export const USER_AGENT = `osdk-client/${"2.2.0-beta.9"}`;
18
18
  //# sourceMappingURL=UserAgent.js.map
@@ -4,7 +4,7 @@ var chunkQ7SFCCGT_cjs = require('./chunk-Q7SFCCGT.cjs');
4
4
  var shared_net_errors = require('@osdk/shared.net.errors');
5
5
  var shared_net_fetch = require('@osdk/shared.net.fetch');
6
6
 
7
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.15.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Action.js
7
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.16.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Action.js
8
8
  var Action_exports = {};
9
9
  chunkQ7SFCCGT_cjs.__export(Action_exports, {
10
10
  apply: () => apply,
@@ -77,7 +77,7 @@ function parseUrl(baseUrl, endpointPath) {
77
77
  return new URL(`api${endpointPath}`, baseUrl);
78
78
  }
79
79
 
80
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.15.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Action.js
80
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.16.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Action.js
81
81
  var _apply = [1, "/v2/ontologies/{0}/actions/{1}/apply", 3];
82
82
  function apply($ctx, ...args) {
83
83
  return foundryPlatformFetch($ctx, _apply, ...args);
@@ -91,7 +91,7 @@ function applyBatch($ctx, ...args) {
91
91
  return foundryPlatformFetch($ctx, _applyBatch, ...args);
92
92
  }
93
93
 
94
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.15.0/node_modules/@osdk/foundry.ontologies/build/esm/public/ActionTypeV2.js
94
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.16.0/node_modules/@osdk/foundry.ontologies/build/esm/public/ActionTypeV2.js
95
95
  var ActionTypeV2_exports = {};
96
96
  chunkQ7SFCCGT_cjs.__export(ActionTypeV2_exports, {
97
97
  get: () => get,
@@ -106,7 +106,7 @@ function get($ctx, ...args) {
106
106
  return foundryPlatformFetch($ctx, _get, ...args);
107
107
  }
108
108
 
109
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.15.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Attachment.js
109
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.16.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Attachment.js
110
110
  var Attachment_exports = {};
111
111
  chunkQ7SFCCGT_cjs.__export(Attachment_exports, {
112
112
  get: () => get2,
@@ -131,7 +131,7 @@ function get2($ctx, ...args) {
131
131
  return foundryPlatformFetch($ctx, _get2, ...args);
132
132
  }
133
133
 
134
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.15.0/node_modules/@osdk/foundry.ontologies/build/esm/public/MediaReferenceProperty.js
134
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.16.0/node_modules/@osdk/foundry.ontologies/build/esm/public/MediaReferenceProperty.js
135
135
  var MediaReferenceProperty_exports = {};
136
136
  chunkQ7SFCCGT_cjs.__export(MediaReferenceProperty_exports, {
137
137
  getMediaContent: () => getMediaContent,
@@ -151,7 +151,7 @@ function upload2($ctx, ...args) {
151
151
  return foundryPlatformFetch($ctx, _upload2, ...args);
152
152
  }
153
153
 
154
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.15.0/node_modules/@osdk/foundry.ontologies/build/esm/public/ObjectTypeV2.js
154
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.16.0/node_modules/@osdk/foundry.ontologies/build/esm/public/ObjectTypeV2.js
155
155
  var ObjectTypeV2_exports = {};
156
156
  chunkQ7SFCCGT_cjs.__export(ObjectTypeV2_exports, {
157
157
  get: () => get3,
@@ -181,7 +181,7 @@ function getOutgoingLinkType($ctx, ...args) {
181
181
  return foundryPlatformFetch($ctx, _getOutgoingLinkType, ...args);
182
182
  }
183
183
 
184
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.15.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyInterface.js
184
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.16.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyInterface.js
185
185
  var OntologyInterface_exports = {};
186
186
  chunkQ7SFCCGT_cjs.__export(OntologyInterface_exports, {
187
187
  aggregate: () => aggregate,
@@ -206,7 +206,7 @@ function aggregate($ctx, ...args) {
206
206
  return foundryPlatformFetch($ctx, _aggregate, ...args);
207
207
  }
208
208
 
209
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.15.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyObjectSet.js
209
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.16.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyObjectSet.js
210
210
  var OntologyObjectSet_exports = {};
211
211
  chunkQ7SFCCGT_cjs.__export(OntologyObjectSet_exports, {
212
212
  aggregate: () => aggregate2,
@@ -241,7 +241,7 @@ function aggregate2($ctx, ...args) {
241
241
  return foundryPlatformFetch($ctx, _aggregate2, ...args);
242
242
  }
243
243
 
244
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.15.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Query.js
244
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.16.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Query.js
245
245
  var Query_exports = {};
246
246
  chunkQ7SFCCGT_cjs.__export(Query_exports, {
247
247
  execute: () => execute
@@ -251,7 +251,7 @@ function execute($ctx, ...args) {
251
251
  return foundryPlatformFetch($ctx, _execute, ...args);
252
252
  }
253
253
 
254
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.15.0/node_modules/@osdk/foundry.ontologies/build/esm/public/QueryType.js
254
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.16.0/node_modules/@osdk/foundry.ontologies/build/esm/public/QueryType.js
255
255
  var QueryType_exports = {};
256
256
  chunkQ7SFCCGT_cjs.__export(QueryType_exports, {
257
257
  get: () => get6,
@@ -266,7 +266,7 @@ function get6($ctx, ...args) {
266
266
  return foundryPlatformFetch($ctx, _get6, ...args);
267
267
  }
268
268
 
269
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.15.0/node_modules/@osdk/foundry.ontologies/build/esm/public/TimeSeriesPropertyV2.js
269
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.16.0/node_modules/@osdk/foundry.ontologies/build/esm/public/TimeSeriesPropertyV2.js
270
270
  var TimeSeriesPropertyV2_exports = {};
271
271
  chunkQ7SFCCGT_cjs.__export(TimeSeriesPropertyV2_exports, {
272
272
  getFirstPoint: () => getFirstPoint,
@@ -286,7 +286,7 @@ function streamPoints($ctx, ...args) {
286
286
  return foundryPlatformFetch($ctx, _streamPoints, ...args);
287
287
  }
288
288
 
289
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.15.0/node_modules/@osdk/foundry.ontologies/build/esm/public/TimeSeriesValueBankProperty.js
289
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.16.0/node_modules/@osdk/foundry.ontologies/build/esm/public/TimeSeriesValueBankProperty.js
290
290
  var TimeSeriesValueBankProperty_exports = {};
291
291
  chunkQ7SFCCGT_cjs.__export(TimeSeriesValueBankProperty_exports, {
292
292
  getLatestValue: () => getLatestValue,
@@ -346,6 +346,16 @@ function objectSetToSearchJsonV2(objectSet, expectedApiName, existingWhere = und
346
346
  }
347
347
  throw new Error(`Unsupported objectSet type: ${objectSet.type}`);
348
348
  }
349
+ function resolveInterfaceObjectSet(objectSet, interfaceTypeApiName, args) {
350
+ return args?.$includeAllBaseObjectProperties ? {
351
+ type: "intersect",
352
+ objectSets: [objectSet, {
353
+ type: "interfaceBase",
354
+ interfaceType: interfaceTypeApiName,
355
+ includeAllBaseObjectProperties: true
356
+ }]
357
+ } : objectSet;
358
+ }
349
359
  async function fetchInterfacePage(client, interfaceType, args, objectSet) {
350
360
  if (args.$__UNSTABLE_useOldInterfaceApis) {
351
361
  const result2 = await OntologyInterface_exports.search(addUserAgentAndRequestContextHeaders(client, interfaceType), await client.ontologyRid, interfaceType.apiName, applyFetchArgs(args, {
@@ -368,7 +378,7 @@ async function fetchInterfacePage(client, interfaceType, args, objectSet) {
368
378
  return result2;
369
379
  }
370
380
  const result = await OntologyObjectSet_exports.loadMultipleObjectTypes(addUserAgentAndRequestContextHeaders(client, interfaceType), await client.ontologyRid, applyFetchArgs(args, {
371
- objectSet,
381
+ objectSet: resolveInterfaceObjectSet(objectSet, interfaceType.apiName, args),
372
382
  select: args?.$select ?? [],
373
383
  excludeRid: !args?.$includeRid
374
384
  }), {
@@ -461,5 +471,5 @@ exports.fetchPageInternal = fetchPageInternal;
461
471
  exports.fetchPageWithErrorsInternal = fetchPageWithErrorsInternal;
462
472
  exports.resolveBaseObjectSetType = resolveBaseObjectSetType;
463
473
  exports.symbolClientContext = symbolClientContext;
464
- //# sourceMappingURL=chunk-JPENHIJB.cjs.map
465
- //# sourceMappingURL=chunk-JPENHIJB.cjs.map
474
+ //# sourceMappingURL=chunk-EY52J5Z4.cjs.map
475
+ //# sourceMappingURL=chunk-EY52J5Z4.cjs.map