@osdk/client 2.2.0-beta.7 → 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 (253) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/build/browser/Client.js.map +1 -1
  3. package/build/browser/createClient.js +11 -4
  4. package/build/browser/createClient.js.map +1 -1
  5. package/build/browser/createMinimalClient.js +2 -2
  6. package/build/browser/createMinimalClient.js.map +1 -1
  7. package/build/browser/index.js +1 -0
  8. package/build/browser/index.js.map +1 -1
  9. package/build/browser/object/SimpleOsdkProperties.js +2 -0
  10. package/build/browser/object/SimpleOsdkProperties.js.map +1 -0
  11. package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js +2 -0
  12. package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -0
  13. package/build/browser/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -1
  14. package/build/browser/object/convertWireToOsdkObjects/ObjectHolder.js.map +1 -1
  15. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js +25 -0
  16. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  17. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js +10 -3
  18. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  19. package/build/browser/object/convertWireToOsdkObjects/getDollarAs.js.map +1 -1
  20. package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  21. package/build/browser/object/convertWireToOsdkObjects.js +12 -3
  22. package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
  23. package/build/browser/object/convertWireToOsdkObjects.test.js +7 -3
  24. package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
  25. package/build/browser/object/createObjectSpecifierFromPrimaryKey.js +20 -0
  26. package/build/browser/object/createObjectSpecifierFromPrimaryKey.js.map +1 -0
  27. package/build/browser/object/fetchPage.js +13 -1
  28. package/build/browser/object/fetchPage.js.map +1 -1
  29. package/build/browser/object/fetchPage.test.js +56 -2
  30. package/build/browser/object/fetchPage.test.js.map +1 -1
  31. package/build/browser/object/object.test.js +109 -0
  32. package/build/browser/object/object.test.js.map +1 -1
  33. package/build/browser/objectSet/InterfaceObjectSet.test.js +18 -2
  34. package/build/browser/objectSet/InterfaceObjectSet.test.js.map +1 -1
  35. package/build/browser/objectSet/ObjectSet.test.js +104 -100
  36. package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
  37. package/build/browser/objectSet/ObjectSetListenerWebsocket.js +18 -14
  38. package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  39. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +2 -0
  40. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  41. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  42. package/build/browser/observable/ListPayload.js.map +1 -1
  43. package/build/browser/observable/ObjectPayload.js.map +1 -1
  44. package/build/browser/observable/ObservableClient.js.map +1 -1
  45. package/build/browser/observable/internal/ActionApplication.js +29 -29
  46. package/build/browser/observable/internal/ActionApplication.js.map +1 -1
  47. package/build/browser/observable/internal/CacheKey.js +1 -1
  48. package/build/browser/observable/internal/CacheKey.js.map +1 -1
  49. package/build/browser/observable/internal/CacheKeys.js +2 -2
  50. package/build/browser/observable/internal/CacheKeys.js.map +1 -1
  51. package/build/browser/observable/internal/{ChangedObjects.js → Changes.js} +20 -9
  52. package/build/browser/observable/internal/Changes.js.map +1 -0
  53. package/build/browser/observable/internal/Layer.js +3 -0
  54. package/build/browser/observable/internal/Layer.js.map +1 -1
  55. package/build/browser/observable/internal/ListQuery.js +411 -170
  56. package/build/browser/observable/internal/ListQuery.js.map +1 -1
  57. package/build/browser/observable/internal/ObjectQuery.js +32 -16
  58. package/build/browser/observable/internal/ObjectQuery.js.map +1 -1
  59. package/build/browser/observable/internal/ObservableClientImpl.js +4 -12
  60. package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
  61. package/build/browser/observable/internal/OptimisticJob.js.map +1 -1
  62. package/build/browser/observable/internal/OrderByCanonicalizer.js +73 -0
  63. package/build/browser/observable/internal/OrderByCanonicalizer.js.map +1 -0
  64. package/build/browser/observable/internal/OrderByCanonicalizer.test.js +78 -0
  65. package/build/browser/observable/internal/OrderByCanonicalizer.test.js.map +1 -0
  66. package/build/browser/observable/internal/Query.js +64 -31
  67. package/build/browser/observable/internal/Query.js.map +1 -1
  68. package/build/browser/observable/internal/RefCounts.js +7 -2
  69. package/build/browser/observable/internal/RefCounts.js.map +1 -1
  70. package/build/browser/observable/internal/SimpleWhereClause.js +2 -0
  71. package/build/browser/observable/internal/SimpleWhereClause.js.map +1 -0
  72. package/build/browser/observable/internal/Store.js +84 -267
  73. package/build/browser/observable/internal/Store.js.map +1 -1
  74. package/build/browser/observable/internal/Store.test.js +264 -247
  75. package/build/browser/observable/internal/Store.test.js.map +1 -1
  76. package/build/browser/observable/internal/WhereClauseCanonicalizer.js +11 -3
  77. package/build/browser/observable/internal/WhereClauseCanonicalizer.js.map +1 -1
  78. package/build/browser/observable/internal/objectMatchesWhereClause.js.map +1 -1
  79. package/build/browser/observable/internal/objectMatchesWhereClause.test.js.map +1 -1
  80. package/build/browser/observable/internal/testUtils.js +82 -18
  81. package/build/browser/observable/internal/testUtils.js.map +1 -1
  82. package/build/browser/public/unstable-do-not-use.js.map +1 -1
  83. package/build/browser/queries/applyQuery.js +33 -1
  84. package/build/browser/queries/applyQuery.js.map +1 -1
  85. package/build/browser/queries/queries.test.js +26 -5
  86. package/build/browser/queries/queries.test.js.map +1 -1
  87. package/build/browser/util/UserAgent.js +1 -1
  88. package/build/browser/util/toDataValueQueries.js +17 -0
  89. package/build/browser/util/toDataValueQueries.js.map +1 -1
  90. package/build/cjs/{Client-C8K3E1vH.d.cts → Client-DBTcM9gB.d.cts} +1 -1
  91. package/build/cjs/{chunk-JPENHIJB.cjs → chunk-EY52J5Z4.cjs} +25 -15
  92. package/build/cjs/chunk-EY52J5Z4.cjs.map +1 -0
  93. package/build/cjs/{chunk-IU47QMYO.cjs → chunk-MCQVHD2F.cjs} +32 -28
  94. package/build/cjs/chunk-MCQVHD2F.cjs.map +1 -0
  95. package/build/cjs/chunk-T4NIFYZS.cjs +14 -0
  96. package/build/cjs/chunk-T4NIFYZS.cjs.map +1 -0
  97. package/build/cjs/index.cjs +154 -73
  98. package/build/cjs/index.cjs.map +1 -1
  99. package/build/cjs/index.d.cts +6 -4
  100. package/build/cjs/public/internal.cjs +6 -6
  101. package/build/cjs/public/internal.d.cts +1 -1
  102. package/build/cjs/public/unstable-do-not-use.cjs +683 -539
  103. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  104. package/build/cjs/public/unstable-do-not-use.d.cts +28 -27
  105. package/build/esm/Client.js.map +1 -1
  106. package/build/esm/createClient.js +11 -4
  107. package/build/esm/createClient.js.map +1 -1
  108. package/build/esm/createMinimalClient.js +2 -2
  109. package/build/esm/createMinimalClient.js.map +1 -1
  110. package/build/esm/index.js +1 -0
  111. package/build/esm/index.js.map +1 -1
  112. package/build/esm/object/SimpleOsdkProperties.js +2 -0
  113. package/build/esm/object/SimpleOsdkProperties.js.map +1 -0
  114. package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js +2 -0
  115. package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -0
  116. package/build/esm/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -1
  117. package/build/esm/object/convertWireToOsdkObjects/ObjectHolder.js.map +1 -1
  118. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js +25 -0
  119. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  120. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js +10 -3
  121. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  122. package/build/esm/object/convertWireToOsdkObjects/getDollarAs.js.map +1 -1
  123. package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  124. package/build/esm/object/convertWireToOsdkObjects.js +12 -3
  125. package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
  126. package/build/esm/object/convertWireToOsdkObjects.test.js +7 -3
  127. package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
  128. package/build/esm/object/createObjectSpecifierFromPrimaryKey.js +20 -0
  129. package/build/esm/object/createObjectSpecifierFromPrimaryKey.js.map +1 -0
  130. package/build/esm/object/fetchPage.js +13 -1
  131. package/build/esm/object/fetchPage.js.map +1 -1
  132. package/build/esm/object/fetchPage.test.js +56 -2
  133. package/build/esm/object/fetchPage.test.js.map +1 -1
  134. package/build/esm/object/object.test.js +109 -0
  135. package/build/esm/object/object.test.js.map +1 -1
  136. package/build/esm/objectSet/InterfaceObjectSet.test.js +18 -2
  137. package/build/esm/objectSet/InterfaceObjectSet.test.js.map +1 -1
  138. package/build/esm/objectSet/ObjectSet.test.js +104 -100
  139. package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
  140. package/build/esm/objectSet/ObjectSetListenerWebsocket.js +18 -14
  141. package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  142. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +2 -0
  143. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  144. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  145. package/build/esm/observable/ListPayload.js.map +1 -1
  146. package/build/esm/observable/ObjectPayload.js.map +1 -1
  147. package/build/esm/observable/ObservableClient.js.map +1 -1
  148. package/build/esm/observable/internal/ActionApplication.js +29 -29
  149. package/build/esm/observable/internal/ActionApplication.js.map +1 -1
  150. package/build/esm/observable/internal/CacheKey.js +1 -1
  151. package/build/esm/observable/internal/CacheKey.js.map +1 -1
  152. package/build/esm/observable/internal/CacheKeys.js +2 -2
  153. package/build/esm/observable/internal/CacheKeys.js.map +1 -1
  154. package/build/esm/observable/internal/{ChangedObjects.js → Changes.js} +20 -9
  155. package/build/esm/observable/internal/Changes.js.map +1 -0
  156. package/build/esm/observable/internal/Layer.js +3 -0
  157. package/build/esm/observable/internal/Layer.js.map +1 -1
  158. package/build/esm/observable/internal/ListQuery.js +411 -170
  159. package/build/esm/observable/internal/ListQuery.js.map +1 -1
  160. package/build/esm/observable/internal/ObjectQuery.js +32 -16
  161. package/build/esm/observable/internal/ObjectQuery.js.map +1 -1
  162. package/build/esm/observable/internal/ObservableClientImpl.js +4 -12
  163. package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
  164. package/build/esm/observable/internal/OptimisticJob.js.map +1 -1
  165. package/build/esm/observable/internal/OrderByCanonicalizer.js +73 -0
  166. package/build/esm/observable/internal/OrderByCanonicalizer.js.map +1 -0
  167. package/build/esm/observable/internal/OrderByCanonicalizer.test.js +78 -0
  168. package/build/esm/observable/internal/OrderByCanonicalizer.test.js.map +1 -0
  169. package/build/esm/observable/internal/Query.js +64 -31
  170. package/build/esm/observable/internal/Query.js.map +1 -1
  171. package/build/esm/observable/internal/RefCounts.js +7 -2
  172. package/build/esm/observable/internal/RefCounts.js.map +1 -1
  173. package/build/esm/observable/internal/SimpleWhereClause.js +2 -0
  174. package/build/esm/observable/internal/SimpleWhereClause.js.map +1 -0
  175. package/build/esm/observable/internal/Store.js +84 -267
  176. package/build/esm/observable/internal/Store.js.map +1 -1
  177. package/build/esm/observable/internal/Store.test.js +264 -247
  178. package/build/esm/observable/internal/Store.test.js.map +1 -1
  179. package/build/esm/observable/internal/WhereClauseCanonicalizer.js +11 -3
  180. package/build/esm/observable/internal/WhereClauseCanonicalizer.js.map +1 -1
  181. package/build/esm/observable/internal/objectMatchesWhereClause.js.map +1 -1
  182. package/build/esm/observable/internal/objectMatchesWhereClause.test.js.map +1 -1
  183. package/build/esm/observable/internal/testUtils.js +82 -18
  184. package/build/esm/observable/internal/testUtils.js.map +1 -1
  185. package/build/esm/public/unstable-do-not-use.js.map +1 -1
  186. package/build/esm/queries/applyQuery.js +33 -1
  187. package/build/esm/queries/applyQuery.js.map +1 -1
  188. package/build/esm/queries/queries.test.js +26 -5
  189. package/build/esm/queries/queries.test.js.map +1 -1
  190. package/build/esm/util/UserAgent.js +1 -1
  191. package/build/esm/util/toDataValueQueries.js +17 -0
  192. package/build/esm/util/toDataValueQueries.js.map +1 -1
  193. package/build/types/Client.d.ts +1 -1
  194. package/build/types/Client.d.ts.map +1 -1
  195. package/build/types/createClient.d.ts.map +1 -1
  196. package/build/types/index.d.ts +2 -1
  197. package/build/types/index.d.ts.map +1 -1
  198. package/build/types/object/SimpleOsdkProperties.d.ts +1 -0
  199. package/build/types/object/SimpleOsdkProperties.d.ts.map +1 -0
  200. package/build/types/object/convertWireToOsdkObjects/BaseHolder.d.ts +1 -0
  201. package/build/types/object/convertWireToOsdkObjects/BaseHolder.d.ts.map +1 -0
  202. package/build/types/object/convertWireToOsdkObjects.d.ts +8 -1
  203. package/build/types/object/convertWireToOsdkObjects.d.ts.map +1 -1
  204. package/build/types/object/createObjectSpecifierFromPrimaryKey.d.ts +2 -0
  205. package/build/types/object/createObjectSpecifierFromPrimaryKey.d.ts.map +1 -0
  206. package/build/types/object/object.test.d.ts.map +1 -1
  207. package/build/types/objectSet/ObjectSet.test.d.ts.map +1 -1
  208. package/build/types/observable/ListPayload.d.ts +5 -9
  209. package/build/types/observable/ListPayload.d.ts.map +1 -1
  210. package/build/types/observable/ObjectPayload.d.ts +4 -7
  211. package/build/types/observable/ObjectPayload.d.ts.map +1 -1
  212. package/build/types/observable/ObservableClient.d.ts +27 -11
  213. package/build/types/observable/ObservableClient.d.ts.map +1 -1
  214. package/build/types/observable/internal/ActionApplication.d.ts.map +1 -1
  215. package/build/types/observable/internal/CacheKeys.d.ts +1 -1
  216. package/build/types/observable/internal/CacheKeys.d.ts.map +1 -1
  217. package/build/types/observable/internal/Changes.d.ts +15 -0
  218. package/build/types/observable/internal/Changes.d.ts.map +1 -0
  219. package/build/types/observable/internal/Layer.d.ts +1 -0
  220. package/build/types/observable/internal/Layer.d.ts.map +1 -1
  221. package/build/types/observable/internal/ListQuery.d.ts +59 -14
  222. package/build/types/observable/internal/ListQuery.d.ts.map +1 -1
  223. package/build/types/observable/internal/ObjectQuery.d.ts +5 -6
  224. package/build/types/observable/internal/ObjectQuery.d.ts.map +1 -1
  225. package/build/types/observable/internal/OptimisticJob.d.ts +1 -1
  226. package/build/types/observable/internal/OptimisticJob.d.ts.map +1 -1
  227. package/build/types/observable/internal/OrderByCanonicalizer.d.ts +12 -0
  228. package/build/types/observable/internal/OrderByCanonicalizer.d.ts.map +1 -0
  229. package/build/types/observable/internal/OrderByCanonicalizer.test.d.ts +1 -0
  230. package/build/types/observable/internal/OrderByCanonicalizer.test.d.ts.map +1 -0
  231. package/build/types/observable/internal/Query.d.ts +39 -4
  232. package/build/types/observable/internal/Query.d.ts.map +1 -1
  233. package/build/types/observable/internal/RefCounts.d.ts.map +1 -1
  234. package/build/types/observable/internal/SimpleWhereClause.d.ts +2 -0
  235. package/build/types/observable/internal/SimpleWhereClause.d.ts.map +1 -0
  236. package/build/types/observable/internal/Store.d.ts +19 -43
  237. package/build/types/observable/internal/Store.d.ts.map +1 -1
  238. package/build/types/observable/internal/WhereClauseCanonicalizer.d.ts +2 -1
  239. package/build/types/observable/internal/WhereClauseCanonicalizer.d.ts.map +1 -1
  240. package/build/types/observable/internal/objectMatchesWhereClause.d.ts +4 -2
  241. package/build/types/observable/internal/objectMatchesWhereClause.d.ts.map +1 -1
  242. package/build/types/observable/internal/testUtils.d.ts +39 -9
  243. package/build/types/observable/internal/testUtils.d.ts.map +1 -1
  244. package/build/types/public/unstable-do-not-use.d.ts +1 -4
  245. package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
  246. package/build/types/queries/applyQuery.d.ts.map +1 -1
  247. package/package.json +13 -11
  248. package/build/browser/observable/internal/ChangedObjects.js.map +0 -1
  249. package/build/cjs/chunk-IU47QMYO.cjs.map +0 -1
  250. package/build/cjs/chunk-JPENHIJB.cjs.map +0 -1
  251. package/build/esm/observable/internal/ChangedObjects.js.map +0 -1
  252. package/build/types/observable/internal/ChangedObjects.d.ts +0 -11
  253. package/build/types/observable/internal/ChangedObjects.d.ts.map +0 -1
@@ -15,7 +15,7 @@
15
15
  */
16
16
 
17
17
  import { isOk } from "@osdk/api";
18
- import { __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid } from "@osdk/api/unstable";
18
+ import { __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid, __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid } from "@osdk/api/unstable";
19
19
  import { $ontologyRid, BarInterface, BgaoNflPlayer, Employee, FooInterface, Office } from "@osdk/client.test.ontology";
20
20
  import { apiServer, stubData } from "@osdk/shared.test";
21
21
  import { afterAll, beforeAll, describe, expect, expectTypeOf, it } from "vitest";
@@ -46,15 +46,20 @@ describe("ObjectSet", () => {
46
46
  it("objects set union", async () => {
47
47
  const objectSet = client(Employee);
48
48
  const unionedObjectSet = objectSet.union(objectSet);
49
- let iter = 0;
50
49
  const {
51
50
  data: employees
52
51
  } = await unionedObjectSet.fetchPage();
52
+ const pks = new Set();
53
53
  for (const emp of employees) {
54
- expect(emp.employeeId).toEqual(50030 + iter);
55
- iter += 1;
54
+ pks.add(emp.$primaryKey);
56
55
  }
57
- expect(iter).toEqual(2);
56
+ expect(pks.size).toEqual(6);
57
+ expect(pks.has(stubData.employee1.employeeId)).toBe(true);
58
+ expect(pks.has(stubData.employee2.employeeId)).toBe(true);
59
+ expect(pks.has(stubData.employee3.employeeId)).toBe(true);
60
+ expect(pks.has(stubData.employee4withDerived.employeeId)).toBe(true);
61
+ expect(pks.has(stubData.employeeFailsStrict.__primaryKey)).toBe(true);
62
+ expect(pks.has(stubData.employee50050.employeeId)).toBe(true);
58
63
  });
59
64
  it("objects set subtract", async () => {
60
65
  const objectSet = client(Employee);
@@ -62,76 +67,44 @@ describe("ObjectSet", () => {
62
67
  employeeId: 50030
63
68
  });
64
69
  const subtractedObjectSet = objectSet.subtract(objectSet2);
65
- let iter = 0;
66
- const {
67
- data: employees
68
- } = await subtractedObjectSet.fetchPage();
69
- for (const emp of employees) {
70
- expect(emp.employeeId).toEqual(50031 + iter);
71
- iter += 1;
72
- }
73
- expect(iter).toEqual(2);
70
+ const objectSetResults = await objectSet.fetchPage();
71
+ const objectSet2Results = await objectSet2.fetchPage();
72
+ const subtractedObjectSetResults = await subtractedObjectSet.fetchPage();
73
+ expect(objectSet2Results.data).toHaveLength(1);
74
+ expect(subtractedObjectSetResults.data).toHaveLength(objectSetResults.data.length - objectSet2Results.data.length);
75
+ expect(subtractedObjectSetResults.data.find(x => x.$primaryKey === 50030)).toBeUndefined();
74
76
  });
75
77
  it("objects set intersect", async () => {
76
78
  const objectSet = client(Employee);
77
79
  const intersectedObjectSet = objectSet.intersect(objectSet);
78
- let iter = 0;
79
80
  const {
80
81
  data: employees
81
82
  } = await intersectedObjectSet.fetchPage();
83
+ const pks = new Set();
82
84
  for (const emp of employees) {
83
- expect(emp.employeeId).toEqual(50032);
84
- iter += 1;
85
+ pks.add(emp.$primaryKey);
85
86
  }
86
- expect(iter).toEqual(1);
87
+ expect(pks.size).toEqual(6);
88
+ expect(pks.has(stubData.employee1.employeeId)).toBe(true);
89
+ expect(pks.has(stubData.employee2.employeeId)).toBe(true);
90
+ expect(pks.has(stubData.employee3.employeeId)).toBe(true);
91
+ expect(pks.has(stubData.employee4withDerived.employeeId)).toBe(true);
92
+ expect(pks.has(stubData.employeeFailsStrict.__primaryKey)).toBe(true);
93
+ expect(pks.has(stubData.employee50050.employeeId)).toBe(true);
87
94
  });
88
95
  it("orders objects in ascending order without a filter, and returns all results", async () => {
89
96
  const {
90
97
  data: employees
91
- } = await client(Employee).fetchPage({
98
+ } = await client(Employee).where({
99
+ employeeId: {
100
+ $isNull: false
101
+ }
102
+ }).fetchPage({
92
103
  $orderBy: {
93
104
  "employeeId": "asc"
94
105
  }
95
106
  });
96
- expect(employees).toMatchObject([{
97
- $apiName: "Employee",
98
- $objectType: "Employee",
99
- $primaryKey: 50030,
100
- class: "Red",
101
- employeeId: 50030,
102
- employeeStatus: expect.anything(),
103
- employeeSensor: expect.anything(),
104
- fullName: "John Doe",
105
- office: "NYC",
106
- startDate: "2019-01-01",
107
- employeeLocation: expect.anything()
108
- }, {
109
- $apiName: "Employee",
110
- $objectType: "Employee",
111
- $primaryKey: 50031,
112
- $title: "Jane Doe",
113
- class: "Blue",
114
- employeeId: 50031,
115
- employeeStatus: expect.anything(),
116
- employeeSensor: expect.anything(),
117
- fullName: "Jane Doe",
118
- office: "SEA",
119
- startDate: "2012-02-12",
120
- employeeLocation: expect.anything()
121
- }, {
122
- $apiName: "Employee",
123
- $objectType: "Employee",
124
- $primaryKey: 50032,
125
- $title: "Jack Smith",
126
- class: "Red",
127
- employeeId: 50032,
128
- employeeStatus: expect.anything(),
129
- employeeSensor: expect.anything(),
130
- fullName: "Jack Smith",
131
- office: "LON",
132
- startDate: "2015-05-15",
133
- employeeLocation: expect.anything()
134
- }]);
107
+ expect(employees.map(e => e.$primaryKey)).toEqual([50030, 50031, 50032, 50035, stubData.employee50050.employeeId]);
135
108
  });
136
109
  it("allows fetching by PK from a base object set - fetchOne", async () => {
137
110
  const employee = await client(Employee).fetchOne(stubData.employee1.employeeId);
@@ -139,17 +112,31 @@ describe("ObjectSet", () => {
139
112
  expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);
140
113
  });
141
114
  it("allows fetching by rid with experimental function", async () => {
142
- const employee = await client(__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid).fetchOneByRid(Employee, "ri.employee.i.look.for");
115
+ const employee = await client(__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid).fetchOneByRid(Employee, stubData.employee1.__rid);
143
116
  expectTypeOf().toMatchTypeOf;
144
117
  expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);
145
118
  });
119
+ it("allows fetching page of rids with experimental function", async () => {
120
+ const employees = await client(__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid).fetchPageByRid(Employee, [stubData.employee1.__rid, stubData.employee2.__rid], {});
121
+ expectTypeOf().toMatchTypeOf;
122
+ expect(employees.data[0].$primaryKey).toBe(stubData.employee1.employeeId);
123
+ expect(employees.data[1].$primaryKey).toBe(stubData.employee2.employeeId);
124
+ });
146
125
  it("allows fetching by rid with experimental function, with select", async () => {
147
- const employee = await client(__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid).fetchOneByRid(Employee, "ri.employee.i.look.for", {
126
+ const employee = await client(__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid).fetchOneByRid(Employee, stubData.employee2.__rid, {
148
127
  $select: ["fullName"]
149
128
  });
150
129
  expectTypeOf().toMatchTypeOf;
151
130
  expect(employee.$primaryKey).toBe(stubData.employee2.employeeId);
152
131
  });
132
+ it("allows fetching by rid with experimental function, with select 2", async () => {
133
+ const employees = await client(__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid).fetchPageByRid(Employee, [stubData.employee2.__rid, stubData.employee3.__rid], {
134
+ $select: ["fullName"]
135
+ });
136
+ expectTypeOf().toMatchTypeOf;
137
+ expect(employees.data[0].$primaryKey).toBe(stubData.employee2.employeeId);
138
+ expect(employees.data[1].$primaryKey).toBe(stubData.employee3.employeeId);
139
+ });
153
140
  it("check struct parsing", async () => {
154
141
  const player = await client(BgaoNflPlayer).fetchOne("tkelce");
155
142
  expectTypeOf().toMatchTypeOf;
@@ -223,16 +210,18 @@ describe("ObjectSet", () => {
223
210
  it(" object set union works with fetchPageWithErrors", async () => {
224
211
  const objectSet = client(Employee);
225
212
  const unionedObjectSet = objectSet.union(objectSet);
226
- let iter = 0;
227
213
  const result = await unionedObjectSet.fetchPageWithErrors();
228
- if (isOk(result)) {
229
- const employees = result.value.data;
230
- for (const emp of employees) {
231
- expect(emp.employeeId).toEqual(50030 + iter);
232
- iter += 1;
233
- }
234
- expect(iter).toEqual(2);
214
+ const pks = new Set();
215
+ for (const emp of result.value.data) {
216
+ pks.add(emp.$primaryKey);
235
217
  }
218
+ expect(pks.size).toEqual(6);
219
+ expect(pks.has(stubData.employee1.employeeId)).toBe(true);
220
+ expect(pks.has(stubData.employee2.employeeId)).toBe(true);
221
+ expect(pks.has(stubData.employee3.employeeId)).toBe(true);
222
+ expect(pks.has(stubData.employee4withDerived.employeeId)).toBe(true);
223
+ expect(pks.has(stubData.employeeFailsStrict.__primaryKey)).toBe(true);
224
+ expect(pks.has(stubData.employee50050.employeeId)).toBe(true);
236
225
  });
237
226
  it("allows $in filter with ReadonlyArrays", () => {
238
227
  const objectSet = client(Employee).where({
@@ -394,7 +383,7 @@ describe("ObjectSet", () => {
394
383
  $includeRid: true
395
384
  };
396
385
  const result = k === "fetchPage" ? await client(Employee).fetchPage(opts) : (await client(Employee).fetchPageWithErrors(opts)).value;
397
- expect(result.data).toHaveLength(4);
386
+ expect(result.data).toHaveLength(6);
398
387
  expectTypeOf(result.data[0]).branded.toEqualTypeOf();
399
388
  });
400
389
  });
@@ -404,7 +393,7 @@ describe("ObjectSet", () => {
404
393
  $includeRid: false
405
394
  };
406
395
  const result = k === "fetchPage" ? await client(Employee).fetchPage(opts) : (await client(Employee).fetchPageWithErrors(opts)).value;
407
- expect(result.data).toHaveLength(4);
396
+ expect(result.data).toHaveLength(6);
408
397
  expectTypeOf(result.data[0]).branded.toEqualTypeOf();
409
398
  });
410
399
  });
@@ -600,44 +589,58 @@ describe("ObjectSet", () => {
600
589
  it("allows fetching derived properties with correctly typed Osdk.Instance types", async () => {
601
590
  const objectWithRdp = await client(Employee).withProperties({
602
591
  "derivedPropertyName": base => base.pivotTo("lead").selectProperty("employeeId")
603
- }).fetchOne(50035);
592
+ }).fetchOne(stubData.employee1.employeeId);
604
593
  expectTypeOf(objectWithRdp.derivedPropertyName).toEqualTypeOf();
605
- expect(objectWithRdp.derivedPropertyName).toBe(1);
594
+ expect(objectWithRdp.derivedPropertyName).toBe(stubData.employee2.__primaryKey);
606
595
  const objectWithUndefinedRdp = await client(Employee).withProperties({
607
596
  "derivedPropertyName": base => base.pivotTo("lead").selectProperty("employeeId")
608
- }).fetchOne(50036, {
597
+ }).fetchOne(stubData.employee2.employeeId, {
609
598
  $select: ["derivedPropertyName"]
610
599
  });
611
600
  expect(objectWithUndefinedRdp.derivedPropertyName).toBeUndefined();
612
601
  });
613
602
  });
614
- describe.each(["fetchOne", "fetchOneWithErrors"])("%s", k => {
615
- describe("strictNonNull: false", () => {
616
- describe("includeRid: true", () => {
617
- it("returns bad data", async () => {
618
- // Look at this
619
- const opts = {
620
- $__EXPERIMENTAL_strictNonNull: false,
621
- $includeRid: true
622
- };
623
- const result = k === "fetchOne" ? await client(Employee).fetchOne(50033, opts) : (await client(Employee).fetchOneWithErrors(50033, opts)).value;
624
- expect(result).not.toBeUndefined();
625
- expectTypeOf(result).branded.toEqualTypeOf();
626
- });
627
- });
628
- describe("includeRid: false", () => {
629
- it("returns bad data", async () => {
630
- const opts = {
631
- $__EXPERIMENTAL_strictNonNull: false,
632
- $includeRid: false
633
- };
634
- const result = k === "fetchOne" ? await client(Employee).fetchOne(50033, opts) : (await client(Employee).fetchOneWithErrors(50033, opts)).value;
635
- expect(result).not.toBeUndefined();
636
- expectTypeOf(result).branded.toEqualTypeOf();
637
- });
638
- });
639
- });
640
- });
603
+
604
+ // Can't run these tests because we can't load by primary key!
605
+ // describe.each(["fetchOne", "fetchOneWithErrors"] as const)("%s", (k) => {
606
+ // describe("strictNonNull: false", () => {
607
+ // describe("includeRid: true", () => {
608
+ // it("returns bad data", async () => {
609
+ // // Look at this
610
+ // const opts = {
611
+ // $__EXPERIMENTAL_strictNonNull: false,
612
+ // $includeRid: true,
613
+ // } as const;
614
+ // const result = k === "fetchOne"
615
+ // ? await client(Employee).fetchOne(50033, opts)
616
+ // : (await client(Employee).fetchOneWithErrors(50033, opts)).value!;
617
+
618
+ // expect(result).not.toBeUndefined();
619
+ // expectTypeOf(result).branded.toEqualTypeOf<
620
+ // Osdk<Employee, "$all" | "$notStrict" | "$rid">
621
+ // >();
622
+ // });
623
+ // });
624
+
625
+ // describe("includeRid: false", () => {
626
+ // it("returns bad data", async () => {
627
+ // const opts = {
628
+ // $__EXPERIMENTAL_strictNonNull: false,
629
+ // $includeRid: false,
630
+ // } as const;
631
+ // const result = k === "fetchOne"
632
+ // ? await client(Employee).fetchOne(50033, opts)
633
+ // : (await client(Employee).fetchOneWithErrors(50033, opts)).value!;
634
+
635
+ // expect(result).not.toBeUndefined();
636
+ // expectTypeOf(result).branded.toEqualTypeOf<
637
+ // Osdk<Employee, "$all" | "$notStrict">
638
+ // >();
639
+ // });
640
+ // });
641
+ // });
642
+ // });
643
+
641
644
  describe("conversions", () => {
642
645
  describe("strictNonNull: false", () => {
643
646
  it("returns bad data", async () => {
@@ -656,6 +659,7 @@ describe("ObjectSet", () => {
656
659
  expectTypeOf().toEqualTypeOf();
657
660
  expectTypeOf().toEqualTypeOf();
658
661
  expectTypeOf().toEqualTypeOf();
662
+ expectTypeOf().toEqualTypeOf();
659
663
 
660
664
  // We don't have a proper definition that has
661
665
  // a non-null property on an interface so
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectSet.test.js","names":["isOk","__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid","$ontologyRid","BarInterface","BgaoNflPlayer","Employee","FooInterface","Office","apiServer","stubData","afterAll","beforeAll","describe","expect","expectTypeOf","it","createClient","client","listen","close","employeeObjectSet","officeObjectSet","union","subtract","intersect","objectSet","unionedObjectSet","iter","data","employees","fetchPage","emp","employeeId","toEqual","objectSet2","where","subtractedObjectSet","intersectedObjectSet","$orderBy","toMatchObject","$apiName","$objectType","$primaryKey","class","employeeStatus","anything","employeeSensor","fullName","office","startDate","employeeLocation","$title","employee","fetchOne","employee1","toMatchTypeOf","toBe","fetchOneByRid","$select","employee2","player","address1","address","addressLine1","address2","addressLine2","city","state","zipCode","travisPlayer","__primaryKey","employeeResult","fetchOneWithErrors","value","branded","toEqualTypeOf","rejects","toThrow","pivotTo","result","fetchPageWithErrors","$in","toBeDefined","employeeIdNonExistent","nonExistentProp","$or","$containsAllTerms","term","fuzzySearch","$containsAnyTerm","toBeCallableWith","$and","$eq","$gte","$containsAllTermsInOrder","each","k","opts","$__EXPERIMENTAL_strictNonNull","$includeRid","toHaveLength","withProperties","base","aggregate","selectProperty","derivedPropertyName2","incorrect","fails","limit","percentile","numericAggregationObjectSet","setAggregationObjectSet","selectPropertyObjectSet","objectWithRdp","derivedPropertyName","objectWithUndefinedRdp","toBeUndefined","not","empNotStrict","cheesedFooNotStrict","$as","fooSpt"],"sources":["ObjectSet.test.ts"],"sourcesContent":["/*\n * Copyright 2024 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 CompileTimeMetadata,\n ConvertProps,\n InterfaceDefinition,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n PropertyKeys,\n Result,\n} from \"@osdk/api\";\nimport { isOk } from \"@osdk/api\";\nimport { __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid } from \"@osdk/api/unstable\";\nimport {\n $ontologyRid,\n BarInterface,\n BgaoNflPlayer,\n Employee,\n FooInterface,\n Office,\n} from \"@osdk/client.test.ontology\";\nimport { apiServer, stubData } from \"@osdk/shared.test\";\nimport {\n afterAll,\n beforeAll,\n describe,\n expect,\n expectTypeOf,\n it,\n} from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\n\ntype ApiNameAsString<\n T extends ObjectOrInterfaceDefinition,\n> = CompileTimeMetadata<T>[\"apiName\"];\n\ntype JustProps<\n T extends ObjectOrInterfaceDefinition,\n P extends ValidOsdkPropParams<T>,\n> = P extends \"$all\" ? PropertyKeys<T>\n : Exclude<P, SpecialOsdkPropParams>;\n\ntype SpecialOsdkPropParams =\n | \"$all\"\n | \"$rid\"\n | \"$strict\"\n | \"$notStrict\";\n\ntype ValidOsdkPropParams<Q extends ObjectOrInterfaceDefinition> =\n | SpecialOsdkPropParams\n | PropertyKeys<Q>;\n\ntype PropMapToInterface<\n FROM extends ObjectTypeDefinition,\n TO extends InterfaceDefinition,\n> = NonNullable<\n CompileTimeMetadata<FROM>[\"inverseInterfaceMap\"]\n>[ApiNameAsString<TO>];\n\nexport type PropMapToObject<\n FROM extends ObjectOrInterfaceDefinition,\n TO extends ObjectTypeDefinition,\n> = NonNullable<CompileTimeMetadata<TO>[\"interfaceMap\"]>[ApiNameAsString<FROM>];\n\ndescribe(\"ObjectSet\", () => {\n let client: Client;\n\n beforeAll(async () => {\n apiServer.listen();\n client = createClient(\n \"https://stack.palantir.com\",\n $ontologyRid,\n async () => \"myAccessToken\",\n );\n });\n\n afterAll(() => {\n apiServer.close();\n });\n\n it(\"does not allow intersect/union/subtract with different object types\", () => {\n const employeeObjectSet = client(Employee);\n const officeObjectSet = client(Office);\n\n // @ts-expect-error\n employeeObjectSet.union(officeObjectSet);\n\n // @ts-expect-error\n employeeObjectSet.subtract(officeObjectSet);\n\n // @ts-expect-error\n employeeObjectSet.intersect(officeObjectSet);\n });\n\n it(\"can be cast bidirectionally\", () => {\n function takesOldStyleObjectSet(os: ObjectSet<Employee>) {\n return os;\n }\n\n function takesNewStyleObjectSet(os: Employee.ObjectSet) {\n return os;\n }\n\n function maybe() {\n const newStyleObjectSet: Employee.ObjectSet = client(Employee);\n const oldStyleObjectSet: ObjectSet<Employee> = newStyleObjectSet;\n\n takesOldStyleObjectSet(newStyleObjectSet);\n takesNewStyleObjectSet(newStyleObjectSet);\n\n takesOldStyleObjectSet(oldStyleObjectSet);\n takesNewStyleObjectSet(oldStyleObjectSet);\n }\n\n if (false) {\n // here for a simple type check\n maybe();\n }\n });\n\n it(\"objects set union\", async () => {\n const objectSet = client(Employee);\n const unionedObjectSet = objectSet.union(objectSet);\n let iter = 0;\n const { data: employees } = await unionedObjectSet.fetchPage();\n for (const emp of employees) {\n expect(emp.employeeId).toEqual(50030 + iter);\n iter += 1;\n }\n expect(iter).toEqual(2);\n });\n\n it(\"objects set subtract\", async () => {\n const objectSet = client(Employee);\n const objectSet2 = client(Employee).where({\n employeeId: 50030,\n });\n const subtractedObjectSet = objectSet.subtract(objectSet2);\n let iter = 0;\n const { data: employees } = await subtractedObjectSet.fetchPage();\n for (const emp of employees) {\n expect(emp.employeeId).toEqual(50031 + iter);\n iter += 1;\n }\n expect(iter).toEqual(2);\n });\n\n it(\"objects set intersect\", async () => {\n const objectSet = client(Employee);\n const intersectedObjectSet = objectSet.intersect(objectSet);\n let iter = 0;\n const { data: employees } = await intersectedObjectSet.fetchPage();\n for (const emp of employees) {\n expect(emp.employeeId).toEqual(50032);\n iter += 1;\n }\n expect(iter).toEqual(1);\n });\n\n it(\"orders objects in ascending order without a filter, and returns all results\", async () => {\n const { data: employees } = await client(Employee)\n .fetchPage({\n $orderBy: { \"employeeId\": \"asc\" },\n });\n expect(employees).toMatchObject([\n {\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50030,\n class: \"Red\",\n employeeId: 50030,\n employeeStatus: expect.anything(),\n employeeSensor: expect.anything(),\n fullName: \"John Doe\",\n office: \"NYC\",\n startDate: \"2019-01-01\",\n employeeLocation: expect.anything(),\n },\n {\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50031,\n $title: \"Jane Doe\",\n class: \"Blue\",\n employeeId: 50031,\n employeeStatus: expect.anything(),\n employeeSensor: expect.anything(),\n fullName: \"Jane Doe\",\n office: \"SEA\",\n startDate: \"2012-02-12\",\n employeeLocation: expect.anything(),\n },\n {\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50032,\n $title: \"Jack Smith\",\n class: \"Red\",\n employeeId: 50032,\n employeeStatus: expect.anything(),\n employeeSensor: expect.anything(),\n fullName: \"Jack Smith\",\n office: \"LON\",\n startDate: \"2015-05-15\",\n employeeLocation: expect.anything(),\n },\n ]);\n });\n\n it(\"allows fetching by PK from a base object set - fetchOne\", async () => {\n const employee = await client(Employee).fetchOne(\n stubData.employee1.employeeId,\n );\n expectTypeOf<typeof employee>().toMatchTypeOf<\n Osdk<Employee, PropertyKeys<Employee>>\n >;\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n });\n\n it(\"allows fetching by rid with experimental function\", async () => {\n const employee = await client(\n __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid,\n ).fetchOneByRid(\n Employee,\n \"ri.employee.i.look.for\",\n );\n expectTypeOf<typeof employee>().toMatchTypeOf<\n Osdk<Employee, PropertyKeys<Employee>>\n >;\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n });\n\n it(\"allows fetching by rid with experimental function, with select\", async () => {\n const employee = await client(\n __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid,\n ).fetchOneByRid(\n Employee,\n \"ri.employee.i.look.for\",\n { $select: [\"fullName\"] },\n );\n expectTypeOf<typeof employee>().toMatchTypeOf<\n Osdk<Employee, \"fullName\">\n >;\n expect(employee.$primaryKey).toBe(stubData.employee2.employeeId);\n });\n it(\"check struct parsing\", async () => {\n const player = await client(BgaoNflPlayer).fetchOne(\n \"tkelce\",\n );\n expectTypeOf<typeof player>().toMatchTypeOf<\n Osdk<BgaoNflPlayer, PropertyKeys<BgaoNflPlayer>>\n >;\n expectTypeOf<typeof player.address>().toMatchTypeOf<\n {\n addressLine1: string | undefined;\n addressLine2: string | undefined;\n city: string | undefined;\n state: string | undefined;\n zipCode: number | undefined;\n } | undefined\n >;\n\n const address1 = player.address!.addressLine1;\n expectTypeOf<typeof address1>().toMatchTypeOf<\n string | undefined\n >;\n expect(address1).toEqual(\"15 Muppets Lane\");\n\n const address2 = player.address?.addressLine2;\n expectTypeOf<typeof address2>().toMatchTypeOf<\n string | undefined\n >;\n expect(address2).toEqual(\"Resort No 4\");\n\n const city = player.address?.city;\n expectTypeOf<typeof city>().toMatchTypeOf<\n string | undefined\n >;\n expect(city).toEqual(\"Memphis\");\n\n const state = player.address?.state;\n expectTypeOf<typeof state>().toMatchTypeOf<\n string | undefined\n >;\n expect(state).toEqual(\"TN\");\n\n const zipCode = player.address?.zipCode;\n expectTypeOf<typeof zipCode>().toMatchTypeOf<\n number | undefined\n >;\n expect(zipCode).toEqual(11100);\n\n expect(player.$primaryKey).toEqual(stubData.travisPlayer.__primaryKey);\n expect(player.address).toEqual(stubData.travisPlayer.address);\n });\n\n it(\"allows fetching by PK from a base object set - fetchOneWithErrors\", async () => {\n const employeeResult = await client(Employee)\n .fetchOneWithErrors(\n stubData.employee1.employeeId,\n );\n expectTypeOf<typeof employeeResult>().toMatchTypeOf<\n Result<Osdk<Employee, PropertyKeys<Employee>>>\n >;\n\n if (isOk(employeeResult)) {\n const employee = employeeResult.value;\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n }\n });\n\n it(\"allows fetching by PK from a base object set with selected properties - fetchOne\", async () => {\n const employee = await client(Employee).fetchOne(\n stubData.employee1.employeeId,\n { $select: [\"fullName\"] },\n );\n expectTypeOf<typeof employee>().branded.toEqualTypeOf<\n Osdk<Employee, \"fullName\">\n >;\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n });\n\n it(\"allows fetching by PK from a base object set with selected properties - fetchOneWithErrors\", async () => {\n const employeeResult = await client(Employee)\n .fetchOneWithErrors(\n stubData.employee1.employeeId,\n { $select: [\"fullName\"] },\n );\n expectTypeOf<typeof employeeResult>().branded.toEqualTypeOf<\n Result<Osdk<Employee, \"fullName\">>\n >;\n\n if (isOk(employeeResult)) {\n const employee = employeeResult.value;\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n }\n });\n\n it(\"throws when fetching by PK with an object that does not exist - fetchOne\", async () => {\n await expect(client(Employee).fetchOne(-1)).rejects\n .toThrow();\n });\n\n it(\"throws when fetching by PK with an object that does not exist - fetchOneWithErrors\", async () => {\n const employeeResult = await client(Employee)\n .fetchOneWithErrors(-1);\n\n expectTypeOf<typeof employeeResult>().branded.toEqualTypeOf<\n Result<Osdk<Employee>>\n >;\n\n expect(\"error\" in employeeResult);\n });\n\n it(\"allows fetching by PK from a pivoted object set - fetchOne\", async () => {\n const employee = await client(Employee).where({\n employeeId: stubData.employee2.employeeId,\n })\n .pivotTo(\"peeps\").fetchOne(stubData.employee1.employeeId);\n\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n });\n\n it(\"allows fetching by PK from a pivoted object set - fetchOneWithErrors\", async () => {\n const employeeResult = await client(Employee).where({\n employeeId: stubData.employee2.employeeId,\n })\n .pivotTo(\"peeps\").fetchOneWithErrors(stubData.employee1.employeeId);\n\n if (isOk(employeeResult)) {\n const employee = employeeResult.value;\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n }\n });\n\n it(\" object set union works with fetchPageWithErrors\", async () => {\n const objectSet = client(Employee);\n const unionedObjectSet = objectSet.union(objectSet);\n let iter = 0;\n const result = await unionedObjectSet.fetchPageWithErrors();\n if (isOk(result)) {\n const employees = result.value.data;\n for (const emp of employees) {\n expect(emp.employeeId).toEqual(50030 + iter);\n iter += 1;\n }\n expect(iter).toEqual(2);\n }\n });\n\n it(\"allows $in filter with ReadonlyArrays\", () => {\n const ids: ReadonlyArray<number> = [50030, 50031];\n const objectSet = client(Employee).where({\n employeeId: { $in: ids },\n });\n expect(objectSet).toBeDefined();\n });\n\n it(\"does not allow arbitrary keys when no properties\", () => {\n const ids: ReadonlyArray<number> = [50030, 50031];\n client(Employee).where({\n // @ts-expect-error\n employeeIdNonExistent: { $in: ids },\n });\n\n client(BarInterface).where({\n // @ts-expect-error\n nonExistentProp: \"\",\n });\n });\n\n it(\"type checking containsallterm and containsanyterm\", () => {\n const ids: ReadonlyArray<number> = [50030, 50031];\n client(Employee).where({\n $or: [{ fullName: { $containsAllTerms: \"John Smith\" } }, {\n office: { $containsAllTerms: { term: \"NYC DC\" } },\n }, {\n fullName: {\n $containsAllTerms: { term: \"John Smith\", fuzzySearch: false },\n },\n }, {\n // @ts-expect-error\n fullName: { $containsAllTerms: { fuzzySearch: false } },\n }],\n });\n\n client(Employee).where({\n $or: [{ fullName: { $containsAnyTerm: \"John Smith\" } }, {\n office: { $containsAnyTerm: { term: \"NYC DC\" } },\n }, {\n fullName: {\n $containsAnyTerm: { term: \"John Smith\", fuzzySearch: false },\n },\n }, {\n // @ts-expect-error\n fullName: { $containsAnyTerm: { fuzzySearch: false } },\n }],\n });\n\n client(BarInterface).where({\n // @ts-expect-error\n nonExistentProp: \"\",\n });\n });\n\n it(\"type checking struct where clauses\", () => {\n expectTypeOf(client(BgaoNflPlayer).where).toBeCallableWith({\n $and: [{ address: { city: { $eq: \"NYC\" } } }, {\n address: { zipCode: { $gte: 55555 } },\n }],\n });\n expectTypeOf(client(BgaoNflPlayer).where).toBeCallableWith({\n address: {\n addressLine1: { $containsAllTerms: \"BLVD\" },\n // @ts-expect-error\n addressLine2: { $containsAllTermsInOrder: \"Apartment Number\" },\n },\n });\n });\n\n describe.each([\"fetchPage\", \"fetchPageWithErrors\"] as const)(\"%s\", (k) => {\n // describe(\"strictNonNull: \\\"drop\\\"\", () => {\n // describe(\"includeRid: true\", () => {\n // it(\"drops bad data\", async () => {\n // const opts = {\n // $__EXPERIMENTAL_strictNonNull: \"drop\",\n // $includeRid: true,\n // } as const;\n // const result = k === \"fetchPage\"\n // ? await client(Employee).fetchPage(opts)\n // : (await client(Employee).fetchPageWithErrors(opts)).value!;\n\n // expect(result.data).toHaveLength(3);\n // expectTypeOf(result.data[0]).branded.toEqualTypeOf<\n // Osdk<Employee, \"$rid\" | \"$all\">\n // >();\n // expectTypeOf(result.data[0]).branded.toEqualTypeOf<\n // Employee.OsdkObject<\"$rid\">\n // >();\n // });\n // });\n\n // describe(\"includeRid: false\", () => {\n // it(\"drops bad data\", async () => {\n // const opts = {\n // $__EXPERIMENTAL_strictNonNull: \"drop\",\n // $includeRid: false,\n // } as const;\n // const result = k === \"fetchPage\"\n // ? await client(Employee).fetchPage(opts)\n // : (await client(Employee).fetchPageWithErrors(opts)).value!;\n\n // expect(result.data).toHaveLength(3);\n // expectTypeOf(result.data[0]).branded.toEqualTypeOf<Osdk<Employee>>();\n // expectTypeOf(result.data[0]).branded.toEqualTypeOf<\n // Employee.OsdkObject\n // >();\n // expectTypeOf(result.data[0]).branded.toEqualTypeOf<\n // Employee.OsdkObject<never>\n // >();\n // });\n // });\n // });\n\n describe(\"strictNonNull: false\", () => {\n describe(\"includeRid: true\", () => {\n it(\"returns bad data\", async () => {\n const opts = {\n $__EXPERIMENTAL_strictNonNull: false,\n $includeRid: true,\n } as const;\n const result = k === \"fetchPage\"\n ? await client(Employee).fetchPage(opts)\n : (await client(Employee).fetchPageWithErrors(opts)).value!;\n\n expect(result.data).toHaveLength(4);\n expectTypeOf(result.data[0]).branded.toEqualTypeOf<\n Osdk<Employee, \"$all\" | \"$notStrict\" | \"$rid\">\n >();\n });\n });\n\n describe(\"includeRid: false\", () => {\n it(\"returns bad data\", async () => {\n const opts = {\n $includeRid: false,\n } as const;\n const result = k === \"fetchPage\"\n ? await client(Employee).fetchPage(opts)\n : (await client(Employee).fetchPageWithErrors(opts)).value!;\n\n expect(result.data).toHaveLength(4);\n expectTypeOf(result.data[0]).branded.toEqualTypeOf<\n Osdk<Employee, \"$all\" | \"$notStrict\">\n >();\n });\n });\n });\n });\n\n describe(\"Derived Properties Object Set\", () => {\n it(\"does not allow aggregate or selectProperty before a link type is selected\", () => {\n client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n // @ts-expect-error\n base.aggregate(\"employeeId:exactDistinct\"),\n });\n\n client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n // @ts-expect-error\n base.selectProperty(\"employeeId\"),\n });\n });\n\n it(\"does not allow selectProperty when a many link was selected at any point\", () => {\n client(Employee).withProperties({\n \"derivedPropertyName\": (base) => {\n // @ts-expect-error\n base.pivotTo(\"peeps\").selectProperty(\"employeeId\");\n\n // @ts-expect-error\n base.pivotTo(\"lead\").pivotTo(\"peeps\").selectProperty(\"employeeId\");\n\n return base.pivotTo(\"lead\").selectProperty(\"employeeId\");\n },\n });\n });\n\n it(\"enforces a return only of correct type\", () => {\n client(Employee).withProperties({\n // @ts-expect-error\n \"derivedPropertyName\": (base) => {\n return base.pivotTo(\"peeps\");\n },\n // @ts-expect-error\n \"derivedPropertyName2\": (base) => {\n return { incorrect: \"type\" };\n },\n });\n });\n\n // Executed code fails since we're providing bad strings to the function\n it.fails(\"correctly narrows types of aggregate function\", () => {\n client(Employee).withProperties({\n \"derivedPropertyName\": (base) => {\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"notAProperty:sum\");\n\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\":avg\");\n\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"employeeId:notAnOp\");\n\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"\");\n\n base.pivotTo(\"lead\").aggregate(\"employeeId:collectList\");\n\n return base.pivotTo(\"lead\").aggregate(\"employeeId:sum\");\n },\n });\n });\n\n // Executed code fails since we're providing bad strings to the function\n it(\"correctly narrows types of options for aggregate functions\", () => {\n const objectSet = client(Employee).withProperties({\n \"derivedPropertyName\": (base) => {\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"employeeId:approximateDistinct\", {\n limit: 1,\n });\n\n base.pivotTo(\"lead\").aggregate(\"employeeId:collectList\", {\n limit: 1,\n });\n\n base.pivotTo(\"lead\").aggregate(\"employeeId:collectSet\", { limit: 1 });\n\n base.pivotTo(\"lead\").aggregate(\"employeeId:collectList\", {\n // @ts-expect-error\n percentile: 1,\n });\n\n return base.pivotTo(\"lead\").aggregate(\n \"employeeId:approximatePercentile\",\n { percentile: 0.5 },\n );\n },\n });\n\n expectTypeOf(objectSet).branded.toEqualTypeOf<\n ObjectSet<\n Employee,\n { derivedPropertyName: \"double\" | undefined }\n >\n >();\n });\n\n it(\"correctly narrows types of selectProperty function\", () => {\n client(Employee).withProperties({\n \"derivedPropertyName\": (base) => {\n // @ts-expect-error\n base.pivotTo(\"lead\").selectProperty(\"notAProperty\");\n\n return base.pivotTo(\"lead\").selectProperty(\"employeeStatus\");\n },\n }) satisfies ObjectSet<\n Employee,\n {\n \"derivedPropertyName\": \"stringTimeseries\" | undefined;\n }\n >;\n });\n\n it(\"propagates derived property type to future object set operations with correct types\", () => {\n client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"employeeId:sum\"),\n // @ts-expect-error\n }).where({ \"notAProperty\": { \"$eq\": 3 } });\n\n const numericAggregationObjectSet = client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"employeeId:sum\"),\n }).where({ \"derivedPropertyName\": { \"$eq\": 3 } });\n\n expectTypeOf(numericAggregationObjectSet).toEqualTypeOf<\n ObjectSet<Employee, {\n derivedPropertyName: \"double\" | undefined;\n }>\n >();\n\n client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"employeeId:collectList\"),\n }).where({ \"derivedPropertyName\": { \"$isNull\": false } })\n // @ts-expect-error\n .where({ \"derivedPropertyName\": { \"$eq\": [1, 2] } });\n\n const setAggregationObjectSet = client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"fullName:collectSet\"),\n });\n setAggregationObjectSet.where({\n \"derivedPropertyName\": { \"$isNull\": false },\n });\n\n setAggregationObjectSet.where({\n // @ts-expect-error\n \"derivedPropertyName\": { \"$eq\": [1, 2] },\n });\n expectTypeOf(setAggregationObjectSet).toEqualTypeOf<\n ObjectSet<Employee, {\n derivedPropertyName: \"string\"[] | undefined;\n }>\n >();\n\n const selectPropertyObjectSet = client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").selectProperty(\"employeeId\"),\n }).where({ \"derivedPropertyName\": { \"$eq\": 3 } });\n\n expectTypeOf(selectPropertyObjectSet).toEqualTypeOf<\n ObjectSet<Employee, {\n derivedPropertyName: \"integer\";\n }>\n >();\n\n client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").selectProperty(\"startDate\"),\n }).where({ \"derivedPropertyName\": { \"$eq\": \"datetimeFilter\" } });\n });\n\n it(\"correctly types multiple property definitions in one clause\", () => {\n const objectSet = client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"employeeId:sum\"),\n \"derivedPropertyName2\": (base) =>\n base.pivotTo(\"lead\").selectProperty(\"fullName\"),\n }).where({ \"derivedPropertyName\": { \"$eq\": 3 } })\n .where({ \"derivedPropertyName2\": { \"$eq\": \"name\" } });\n\n expectTypeOf(objectSet).toEqualTypeOf<\n ObjectSet<Employee, {\n derivedPropertyName: \"double\" | undefined;\n derivedPropertyName2: \"string\" | undefined;\n }>\n >();\n });\n\n it(\"ensures other properties are consistently typed\", () => {\n client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").selectProperty(\"employeeId\"),\n }).where({ \"fullName\": { \"$eq\": \"A\" } });\n\n client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").selectProperty(\"employeeId\"),\n }).where({ \"employeeId\": { \"$eq\": 2 } });\n });\n\n it(\"allows fetching derived properties with correctly typed Osdk.Instance types\", async () => {\n const objectWithRdp = await client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").selectProperty(\"employeeId\"),\n }).fetchOne(50035);\n\n expectTypeOf(objectWithRdp.derivedPropertyName).toEqualTypeOf<\n number\n >();\n expect(objectWithRdp.derivedPropertyName).toBe(1);\n\n const objectWithUndefinedRdp = await client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").selectProperty(\"employeeId\"),\n }).fetchOne(50036, { $select: [\"derivedPropertyName\"] });\n\n expect(objectWithUndefinedRdp.derivedPropertyName).toBeUndefined();\n });\n });\n\n describe.each([\"fetchOne\", \"fetchOneWithErrors\"] as const)(\"%s\", (k) => {\n describe(\"strictNonNull: false\", () => {\n describe(\"includeRid: true\", () => {\n it(\"returns bad data\", async () => {\n // Look at this\n const opts = {\n $__EXPERIMENTAL_strictNonNull: false,\n $includeRid: true,\n } as const;\n const result = k === \"fetchOne\"\n ? await client(Employee).fetchOne(50033, opts)\n : (await client(Employee).fetchOneWithErrors(50033, opts)).value!;\n\n expect(result).not.toBeUndefined();\n expectTypeOf(result).branded.toEqualTypeOf<\n Osdk<Employee, \"$all\" | \"$notStrict\" | \"$rid\">\n >();\n });\n });\n\n describe(\"includeRid: false\", () => {\n it(\"returns bad data\", async () => {\n const opts = {\n $__EXPERIMENTAL_strictNonNull: false,\n $includeRid: false,\n } as const;\n const result = k === \"fetchOne\"\n ? await client(Employee).fetchOne(50033, opts)\n : (await client(Employee).fetchOneWithErrors(50033, opts)).value!;\n\n expect(result).not.toBeUndefined();\n expectTypeOf(result).branded.toEqualTypeOf<\n Osdk<Employee, \"$all\" | \"$notStrict\">\n >();\n });\n });\n });\n });\n\n describe(\"conversions\", () => {\n describe(\"strictNonNull: false\", () => {\n it(\"returns bad data\", async () => {\n const result = await client(Employee).fetchPage({});\n\n const empNotStrict = result.data[0];\n const empNotStrict2: Osdk<Employee, \"$all\" | \"$notStrict\"> =\n empNotStrict;\n expectTypeOf(empNotStrict).branded.toEqualTypeOf<\n Osdk<Employee, \"$all\" | \"$notStrict\">\n >();\n expectTypeOf(empNotStrict).branded.toEqualTypeOf<\n Employee.OsdkObject<never, Employee.PropertyKeys>\n >();\n expectTypeOf(empNotStrict).branded.toEqualTypeOf<\n Employee.OsdkObject<never>\n >();\n\n expectTypeOf(empNotStrict.employeeId).toEqualTypeOf<\n number\n >();\n\n expectTypeOf(empNotStrict2.employeeId).toEqualTypeOf<\n number\n >();\n\n expectTypeOf<ApiNameAsString<FooInterface>>()\n .toEqualTypeOf<\"FooInterface\">();\n\n expectTypeOf<\n NonNullable<CompileTimeMetadata<Employee>[\"interfaceMap\"]>\n >()\n .toEqualTypeOf<{\n FooInterface: {\n fooSpt: \"fullName\";\n };\n }>();\n\n expectTypeOf<PropMapToInterface<Employee, FooInterface>>()\n .toEqualTypeOf<{ fullName: \"fooSpt\" }>();\n\n expectTypeOf<PropMapToObject<FooInterface, Employee>>()\n .toEqualTypeOf<{ fooSpt: \"fullName\" }>();\n\n expectTypeOf<ConvertProps<Employee, FooInterface, \"fullName\">>()\n .toEqualTypeOf<\"fooSpt\">();\n\n expectTypeOf<JustProps<Employee, \"$all\">>()\n .toEqualTypeOf<\n | \"class\"\n | \"fullName\"\n | \"office\"\n | \"employeeId\"\n | \"employeeStatus\"\n | \"startDate\"\n | \"employeeLocation\"\n | \"employeeSensor\"\n >();\n\n expectTypeOf<\n ConvertProps<Employee, FooInterface, \"fullName\" | \"office\">\n >()\n .toEqualTypeOf<\"fooSpt\">();\n\n expectTypeOf<ConvertProps<FooInterface, Employee, \"fooSpt\">>()\n .toEqualTypeOf<\"fullName\">();\n\n // We don't have a proper definition that has\n // a non-null property on an interface so\n // we cheese it here to be sure the types work\n type CheesedProp<\n T extends InterfaceDefinition,\n K extends PropertyKeys<T>,\n > = T & { properties: { [KK in K]: { nullable: false } } };\n\n type CheesedFoo = CheesedProp<FooInterface, \"fooSpt\">;\n const CheesedFoo: CheesedFoo = FooInterface as CheesedFoo;\n\n type T = ConvertProps<Employee, CheesedFoo, \"fullName\">;\n\n const cheesedFooNotStrict = result.data[0].$as(CheesedFoo);\n expectTypeOf(cheesedFooNotStrict).branded.toEqualTypeOf<\n Osdk<CheesedFoo, \"$all\" | \"$notStrict\">\n >();\n\n cheesedFooNotStrict.fooSpt;\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ObjectSet.test.js","names":["isOk","__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid","__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid","$ontologyRid","BarInterface","BgaoNflPlayer","Employee","FooInterface","Office","apiServer","stubData","afterAll","beforeAll","describe","expect","expectTypeOf","it","createClient","client","listen","close","employeeObjectSet","officeObjectSet","union","subtract","intersect","objectSet","unionedObjectSet","data","employees","fetchPage","pks","Set","emp","add","$primaryKey","size","toEqual","has","employee1","employeeId","toBe","employee2","employee3","employee4withDerived","employeeFailsStrict","__primaryKey","employee50050","objectSet2","where","subtractedObjectSet","objectSetResults","objectSet2Results","subtractedObjectSetResults","toHaveLength","length","find","x","toBeUndefined","intersectedObjectSet","$isNull","$orderBy","map","e","employee","fetchOne","toMatchTypeOf","fetchOneByRid","__rid","fetchPageByRid","$select","player","address1","address","addressLine1","address2","addressLine2","city","state","zipCode","travisPlayer","employeeResult","fetchOneWithErrors","value","branded","toEqualTypeOf","rejects","toThrow","pivotTo","result","fetchPageWithErrors","$in","toBeDefined","employeeIdNonExistent","nonExistentProp","$or","fullName","$containsAllTerms","office","term","fuzzySearch","$containsAnyTerm","toBeCallableWith","$and","$eq","$gte","$containsAllTermsInOrder","each","k","opts","$__EXPERIMENTAL_strictNonNull","$includeRid","withProperties","base","aggregate","selectProperty","derivedPropertyName2","incorrect","fails","limit","percentile","numericAggregationObjectSet","setAggregationObjectSet","selectPropertyObjectSet","objectWithRdp","derivedPropertyName","objectWithUndefinedRdp","empNotStrict","cheesedFooNotStrict","$as","fooSpt"],"sources":["ObjectSet.test.ts"],"sourcesContent":["/*\n * Copyright 2024 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 CompileTimeMetadata,\n ConvertProps,\n FetchPageResult,\n InterfaceDefinition,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n PropertyKeys,\n Result,\n} from \"@osdk/api\";\nimport { isOk } from \"@osdk/api\";\nimport {\n __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid,\n __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid,\n} from \"@osdk/api/unstable\";\nimport {\n $ontologyRid,\n BarInterface,\n BgaoNflPlayer,\n Employee,\n FooInterface,\n Office,\n} from \"@osdk/client.test.ontology\";\nimport { apiServer, stubData } from \"@osdk/shared.test\";\nimport {\n afterAll,\n beforeAll,\n describe,\n expect,\n expectTypeOf,\n it,\n} from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\n\ntype ApiNameAsString<\n T extends ObjectOrInterfaceDefinition,\n> = CompileTimeMetadata<T>[\"apiName\"];\n\ntype JustProps<\n T extends ObjectOrInterfaceDefinition,\n P extends ValidOsdkPropParams<T>,\n> = P extends \"$all\" ? PropertyKeys<T>\n : Exclude<P, SpecialOsdkPropParams>;\n\ntype SpecialOsdkPropParams =\n | \"$all\"\n | \"$rid\"\n | \"$strict\"\n | \"$notStrict\";\n\ntype ValidOsdkPropParams<Q extends ObjectOrInterfaceDefinition> =\n | SpecialOsdkPropParams\n | PropertyKeys<Q>;\n\ntype PropMapToInterface<\n FROM extends ObjectTypeDefinition,\n TO extends InterfaceDefinition,\n> = NonNullable<\n CompileTimeMetadata<FROM>[\"inverseInterfaceMap\"]\n>[ApiNameAsString<TO>];\n\nexport type PropMapToObject<\n FROM extends ObjectOrInterfaceDefinition,\n TO extends ObjectTypeDefinition,\n> = NonNullable<CompileTimeMetadata<TO>[\"interfaceMap\"]>[ApiNameAsString<FROM>];\n\ndescribe(\"ObjectSet\", () => {\n let client: Client;\n\n beforeAll(async () => {\n apiServer.listen();\n client = createClient(\n \"https://stack.palantir.com\",\n $ontologyRid,\n async () => \"myAccessToken\",\n );\n });\n\n afterAll(() => {\n apiServer.close();\n });\n\n it(\"does not allow intersect/union/subtract with different object types\", () => {\n const employeeObjectSet = client(Employee);\n const officeObjectSet = client(Office);\n\n // @ts-expect-error\n employeeObjectSet.union(officeObjectSet);\n\n // @ts-expect-error\n employeeObjectSet.subtract(officeObjectSet);\n\n // @ts-expect-error\n employeeObjectSet.intersect(officeObjectSet);\n });\n\n it(\"can be cast bidirectionally\", () => {\n function takesOldStyleObjectSet(os: ObjectSet<Employee>) {\n return os;\n }\n\n function takesNewStyleObjectSet(os: Employee.ObjectSet) {\n return os;\n }\n\n function maybe() {\n const newStyleObjectSet: Employee.ObjectSet = client(Employee);\n const oldStyleObjectSet: ObjectSet<Employee> = newStyleObjectSet;\n\n takesOldStyleObjectSet(newStyleObjectSet);\n takesNewStyleObjectSet(newStyleObjectSet);\n\n takesOldStyleObjectSet(oldStyleObjectSet);\n takesNewStyleObjectSet(oldStyleObjectSet);\n }\n\n if (false) {\n // here for a simple type check\n maybe();\n }\n });\n\n it(\"objects set union\", async () => {\n const objectSet = client(Employee);\n const unionedObjectSet = objectSet.union(objectSet);\n const { data: employees } = await unionedObjectSet.fetchPage();\n const pks = new Set<number>();\n for (const emp of employees) {\n pks.add(emp.$primaryKey);\n }\n\n expect(pks.size).toEqual(6);\n expect(pks.has(stubData.employee1.employeeId)).toBe(true);\n expect(pks.has(stubData.employee2.employeeId)).toBe(true);\n expect(pks.has(stubData.employee3.employeeId)).toBe(true);\n expect(pks.has(stubData.employee4withDerived.employeeId)).toBe(true);\n expect(pks.has(stubData.employeeFailsStrict.__primaryKey)).toBe(true);\n expect(pks.has(stubData.employee50050.employeeId)).toBe(true);\n });\n\n it(\"objects set subtract\", async () => {\n const objectSet = client(Employee);\n const objectSet2 = client(Employee).where({\n employeeId: 50030,\n });\n const subtractedObjectSet = objectSet.subtract(objectSet2);\n\n const objectSetResults = await objectSet.fetchPage();\n const objectSet2Results = await objectSet2.fetchPage();\n const subtractedObjectSetResults = await subtractedObjectSet.fetchPage();\n\n expect(objectSet2Results.data).toHaveLength(1);\n expect(subtractedObjectSetResults.data).toHaveLength(\n objectSetResults.data.length - objectSet2Results.data.length,\n );\n expect(subtractedObjectSetResults.data.find(x => x.$primaryKey === 50030))\n .toBeUndefined();\n });\n\n it(\"objects set intersect\", async () => {\n const objectSet = client(Employee);\n const intersectedObjectSet = objectSet.intersect(objectSet);\n const iter = 0;\n const { data: employees } = await intersectedObjectSet.fetchPage();\n const pks = new Set<number>();\n for (const emp of employees) {\n pks.add(emp.$primaryKey);\n }\n\n expect(pks.size).toEqual(6);\n expect(pks.has(stubData.employee1.employeeId)).toBe(true);\n expect(pks.has(stubData.employee2.employeeId)).toBe(true);\n expect(pks.has(stubData.employee3.employeeId)).toBe(true);\n expect(pks.has(stubData.employee4withDerived.employeeId)).toBe(true);\n expect(pks.has(stubData.employeeFailsStrict.__primaryKey)).toBe(true);\n expect(pks.has(stubData.employee50050.employeeId)).toBe(true);\n });\n\n it(\"orders objects in ascending order without a filter, and returns all results\", async () => {\n const { data: employees } = await client(Employee)\n .where({\n employeeId: { $isNull: false },\n })\n .fetchPage({\n $orderBy: { \"employeeId\": \"asc\" },\n });\n\n expect(employees.map(e => e.$primaryKey))\n .toEqual([\n 50030,\n 50031,\n 50032,\n 50035,\n stubData.employee50050.employeeId,\n ]);\n });\n\n it(\"allows fetching by PK from a base object set - fetchOne\", async () => {\n const employee = await client(Employee).fetchOne(\n stubData.employee1.employeeId,\n );\n expectTypeOf<typeof employee>().toMatchTypeOf<\n Osdk<Employee, PropertyKeys<Employee>>\n >;\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n });\n\n it(\"allows fetching by rid with experimental function\", async () => {\n const employee = await client(\n __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid,\n ).fetchOneByRid(\n Employee,\n stubData.employee1.__rid,\n );\n expectTypeOf<typeof employee>().toMatchTypeOf<\n Osdk<Employee, PropertyKeys<Employee>>\n >;\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n });\n\n it(\"allows fetching page of rids with experimental function\", async () => {\n const employees = await client(\n __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid,\n ).fetchPageByRid(\n Employee,\n [stubData.employee1.__rid, stubData.employee2.__rid],\n {},\n );\n expectTypeOf<typeof employees>().toMatchTypeOf<\n FetchPageResult<Employee, PropertyKeys<Employee>, boolean, any, any>\n >;\n expect(employees.data[0].$primaryKey).toBe(stubData.employee1.employeeId);\n expect(employees.data[1].$primaryKey).toBe(stubData.employee2.employeeId);\n });\n\n it(\"allows fetching by rid with experimental function, with select\", async () => {\n const employee = await client(\n __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid,\n ).fetchOneByRid(\n Employee,\n stubData.employee2.__rid,\n { $select: [\"fullName\"] },\n );\n expectTypeOf<typeof employee>().toMatchTypeOf<\n Osdk<Employee, \"fullName\">\n >;\n expect(employee.$primaryKey).toBe(stubData.employee2.employeeId);\n });\n\n it(\"allows fetching by rid with experimental function, with select 2\", async () => {\n const employees = await client(\n __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid,\n ).fetchPageByRid(\n Employee,\n [stubData.employee2.__rid, stubData.employee3.__rid],\n { $select: [\"fullName\"] },\n );\n expectTypeOf<typeof employees>().toMatchTypeOf<\n FetchPageResult<Employee, \"fullName\", boolean, any, any>\n >;\n expect(employees.data[0].$primaryKey).toBe(stubData.employee2.employeeId);\n expect(employees.data[1].$primaryKey).toBe(stubData.employee3.employeeId);\n });\n\n it(\"check struct parsing\", async () => {\n const player = await client(BgaoNflPlayer).fetchOne(\n \"tkelce\",\n );\n expectTypeOf<typeof player>().toMatchTypeOf<\n Osdk<BgaoNflPlayer, PropertyKeys<BgaoNflPlayer>>\n >;\n expectTypeOf<typeof player.address>().toMatchTypeOf<\n {\n addressLine1: string | undefined;\n addressLine2: string | undefined;\n city: string | undefined;\n state: string | undefined;\n zipCode: number | undefined;\n } | undefined\n >;\n\n const address1 = player.address!.addressLine1;\n expectTypeOf<typeof address1>().toMatchTypeOf<\n string | undefined\n >;\n expect(address1).toEqual(\"15 Muppets Lane\");\n\n const address2 = player.address?.addressLine2;\n expectTypeOf<typeof address2>().toMatchTypeOf<\n string | undefined\n >;\n expect(address2).toEqual(\"Resort No 4\");\n\n const city = player.address?.city;\n expectTypeOf<typeof city>().toMatchTypeOf<\n string | undefined\n >;\n expect(city).toEqual(\"Memphis\");\n\n const state = player.address?.state;\n expectTypeOf<typeof state>().toMatchTypeOf<\n string | undefined\n >;\n expect(state).toEqual(\"TN\");\n\n const zipCode = player.address?.zipCode;\n expectTypeOf<typeof zipCode>().toMatchTypeOf<\n number | undefined\n >;\n expect(zipCode).toEqual(11100);\n\n expect(player.$primaryKey).toEqual(stubData.travisPlayer.__primaryKey);\n expect(player.address).toEqual(stubData.travisPlayer.address);\n });\n\n it(\"allows fetching by PK from a base object set - fetchOneWithErrors\", async () => {\n const employeeResult = await client(Employee)\n .fetchOneWithErrors(\n stubData.employee1.employeeId,\n );\n expectTypeOf<typeof employeeResult>().toMatchTypeOf<\n Result<Osdk<Employee, PropertyKeys<Employee>>>\n >;\n\n if (isOk(employeeResult)) {\n const employee = employeeResult.value;\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n }\n });\n\n it(\"allows fetching by PK from a base object set with selected properties - fetchOne\", async () => {\n const employee = await client(Employee).fetchOne(\n stubData.employee1.employeeId,\n { $select: [\"fullName\"] },\n );\n expectTypeOf<typeof employee>().branded.toEqualTypeOf<\n Osdk<Employee, \"fullName\">\n >;\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n });\n\n it(\"allows fetching by PK from a base object set with selected properties - fetchOneWithErrors\", async () => {\n const employeeResult = await client(Employee)\n .fetchOneWithErrors(\n stubData.employee1.employeeId,\n { $select: [\"fullName\"] },\n );\n expectTypeOf<typeof employeeResult>().branded.toEqualTypeOf<\n Result<Osdk<Employee, \"fullName\">>\n >;\n\n if (isOk(employeeResult)) {\n const employee = employeeResult.value;\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n }\n });\n\n it(\"throws when fetching by PK with an object that does not exist - fetchOne\", async () => {\n await expect(client(Employee).fetchOne(-1)).rejects\n .toThrow();\n });\n\n it(\"throws when fetching by PK with an object that does not exist - fetchOneWithErrors\", async () => {\n const employeeResult = await client(Employee)\n .fetchOneWithErrors(-1);\n\n expectTypeOf<typeof employeeResult>().branded.toEqualTypeOf<\n Result<Osdk<Employee>>\n >;\n\n expect(\"error\" in employeeResult);\n });\n\n it(\"allows fetching by PK from a pivoted object set - fetchOne\", async () => {\n const employee = await client(Employee).where({\n employeeId: stubData.employee2.employeeId,\n })\n .pivotTo(\"peeps\").fetchOne(stubData.employee1.employeeId);\n\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n });\n\n it(\"allows fetching by PK from a pivoted object set - fetchOneWithErrors\", async () => {\n const employeeResult = await client(Employee).where({\n employeeId: stubData.employee2.employeeId,\n })\n .pivotTo(\"peeps\").fetchOneWithErrors(stubData.employee1.employeeId);\n\n if (isOk(employeeResult)) {\n const employee = employeeResult.value;\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n }\n });\n\n it(\" object set union works with fetchPageWithErrors\", async () => {\n const objectSet = client(Employee);\n const unionedObjectSet = objectSet.union(objectSet);\n const iter = 0;\n const result = await unionedObjectSet.fetchPageWithErrors();\n const pks = new Set<number>();\n for (const emp of result.value!.data) {\n pks.add(emp.$primaryKey);\n }\n\n expect(pks.size).toEqual(6);\n expect(pks.has(stubData.employee1.employeeId)).toBe(true);\n expect(pks.has(stubData.employee2.employeeId)).toBe(true);\n expect(pks.has(stubData.employee3.employeeId)).toBe(true);\n expect(pks.has(stubData.employee4withDerived.employeeId)).toBe(true);\n expect(pks.has(stubData.employeeFailsStrict.__primaryKey)).toBe(true);\n expect(pks.has(stubData.employee50050.employeeId)).toBe(true);\n });\n\n it(\"allows $in filter with ReadonlyArrays\", () => {\n const ids: ReadonlyArray<number> = [50030, 50031];\n const objectSet = client(Employee).where({\n employeeId: { $in: ids },\n });\n expect(objectSet).toBeDefined();\n });\n\n it(\"does not allow arbitrary keys when no properties\", () => {\n const ids: ReadonlyArray<number> = [50030, 50031];\n client(Employee).where({\n // @ts-expect-error\n employeeIdNonExistent: { $in: ids },\n });\n\n client(BarInterface).where({\n // @ts-expect-error\n nonExistentProp: \"\",\n });\n });\n\n it(\"type checking containsallterm and containsanyterm\", () => {\n const ids: ReadonlyArray<number> = [50030, 50031];\n client(Employee).where({\n $or: [{ fullName: { $containsAllTerms: \"John Smith\" } }, {\n office: { $containsAllTerms: { term: \"NYC DC\" } },\n }, {\n fullName: {\n $containsAllTerms: { term: \"John Smith\", fuzzySearch: false },\n },\n }, {\n // @ts-expect-error\n fullName: { $containsAllTerms: { fuzzySearch: false } },\n }],\n });\n\n client(Employee).where({\n $or: [{ fullName: { $containsAnyTerm: \"John Smith\" } }, {\n office: { $containsAnyTerm: { term: \"NYC DC\" } },\n }, {\n fullName: {\n $containsAnyTerm: { term: \"John Smith\", fuzzySearch: false },\n },\n }, {\n // @ts-expect-error\n fullName: { $containsAnyTerm: { fuzzySearch: false } },\n }],\n });\n\n client(BarInterface).where({\n // @ts-expect-error\n nonExistentProp: \"\",\n });\n });\n\n it(\"type checking struct where clauses\", () => {\n expectTypeOf(client(BgaoNflPlayer).where).toBeCallableWith({\n $and: [{ address: { city: { $eq: \"NYC\" } } }, {\n address: { zipCode: { $gte: 55555 } },\n }],\n });\n expectTypeOf(client(BgaoNflPlayer).where).toBeCallableWith({\n address: {\n addressLine1: { $containsAllTerms: \"BLVD\" },\n // @ts-expect-error\n addressLine2: { $containsAllTermsInOrder: \"Apartment Number\" },\n },\n });\n });\n\n describe.each([\"fetchPage\", \"fetchPageWithErrors\"] as const)(\"%s\", (k) => {\n // describe(\"strictNonNull: \\\"drop\\\"\", () => {\n // describe(\"includeRid: true\", () => {\n // it(\"drops bad data\", async () => {\n // const opts = {\n // $__EXPERIMENTAL_strictNonNull: \"drop\",\n // $includeRid: true,\n // } as const;\n // const result = k === \"fetchPage\"\n // ? await client(Employee).fetchPage(opts)\n // : (await client(Employee).fetchPageWithErrors(opts)).value!;\n\n // expect(result.data).toHaveLength(3);\n // expectTypeOf(result.data[0]).branded.toEqualTypeOf<\n // Osdk<Employee, \"$rid\" | \"$all\">\n // >();\n // expectTypeOf(result.data[0]).branded.toEqualTypeOf<\n // Employee.OsdkObject<\"$rid\">\n // >();\n // });\n // });\n\n // describe(\"includeRid: false\", () => {\n // it(\"drops bad data\", async () => {\n // const opts = {\n // $__EXPERIMENTAL_strictNonNull: \"drop\",\n // $includeRid: false,\n // } as const;\n // const result = k === \"fetchPage\"\n // ? await client(Employee).fetchPage(opts)\n // : (await client(Employee).fetchPageWithErrors(opts)).value!;\n\n // expect(result.data).toHaveLength(3);\n // expectTypeOf(result.data[0]).branded.toEqualTypeOf<Osdk<Employee>>();\n // expectTypeOf(result.data[0]).branded.toEqualTypeOf<\n // Employee.OsdkObject\n // >();\n // expectTypeOf(result.data[0]).branded.toEqualTypeOf<\n // Employee.OsdkObject<never>\n // >();\n // });\n // });\n // });\n\n describe(\"strictNonNull: false\", () => {\n describe(\"includeRid: true\", () => {\n it(\"returns bad data\", async () => {\n const opts = {\n $__EXPERIMENTAL_strictNonNull: false,\n $includeRid: true,\n } as const;\n const result = k === \"fetchPage\"\n ? await client(Employee).fetchPage(opts)\n : (await client(Employee).fetchPageWithErrors(opts)).value!;\n\n expect(result.data).toHaveLength(6);\n expectTypeOf(result.data[0]).branded.toEqualTypeOf<\n Osdk<Employee, \"$all\" | \"$notStrict\" | \"$rid\">\n >();\n });\n });\n\n describe(\"includeRid: false\", () => {\n it(\"returns bad data\", async () => {\n const opts = {\n $includeRid: false,\n } as const;\n const result = k === \"fetchPage\"\n ? await client(Employee).fetchPage(opts)\n : (await client(Employee).fetchPageWithErrors(opts)).value!;\n\n expect(result.data).toHaveLength(6);\n expectTypeOf(result.data[0]).branded.toEqualTypeOf<\n Osdk<Employee, \"$all\" | \"$notStrict\">\n >();\n });\n });\n });\n });\n\n describe(\"Derived Properties Object Set\", () => {\n it(\"does not allow aggregate or selectProperty before a link type is selected\", () => {\n client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n // @ts-expect-error\n base.aggregate(\"employeeId:exactDistinct\"),\n });\n\n client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n // @ts-expect-error\n base.selectProperty(\"employeeId\"),\n });\n });\n\n it(\"does not allow selectProperty when a many link was selected at any point\", () => {\n client(Employee).withProperties({\n \"derivedPropertyName\": (base) => {\n // @ts-expect-error\n base.pivotTo(\"peeps\").selectProperty(\"employeeId\");\n\n // @ts-expect-error\n base.pivotTo(\"lead\").pivotTo(\"peeps\").selectProperty(\"employeeId\");\n\n return base.pivotTo(\"lead\").selectProperty(\"employeeId\");\n },\n });\n });\n\n it(\"enforces a return only of correct type\", () => {\n client(Employee).withProperties({\n // @ts-expect-error\n \"derivedPropertyName\": (base) => {\n return base.pivotTo(\"peeps\");\n },\n // @ts-expect-error\n \"derivedPropertyName2\": (base) => {\n return { incorrect: \"type\" };\n },\n });\n });\n\n // Executed code fails since we're providing bad strings to the function\n it.fails(\"correctly narrows types of aggregate function\", () => {\n client(Employee).withProperties({\n \"derivedPropertyName\": (base) => {\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"notAProperty:sum\");\n\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\":avg\");\n\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"employeeId:notAnOp\");\n\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"\");\n\n base.pivotTo(\"lead\").aggregate(\"employeeId:collectList\");\n\n return base.pivotTo(\"lead\").aggregate(\"employeeId:sum\");\n },\n });\n });\n\n // Executed code fails since we're providing bad strings to the function\n it(\"correctly narrows types of options for aggregate functions\", () => {\n const objectSet = client(Employee).withProperties({\n \"derivedPropertyName\": (base) => {\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"employeeId:approximateDistinct\", {\n limit: 1,\n });\n\n base.pivotTo(\"lead\").aggregate(\"employeeId:collectList\", {\n limit: 1,\n });\n\n base.pivotTo(\"lead\").aggregate(\"employeeId:collectSet\", { limit: 1 });\n\n base.pivotTo(\"lead\").aggregate(\"employeeId:collectList\", {\n // @ts-expect-error\n percentile: 1,\n });\n\n return base.pivotTo(\"lead\").aggregate(\n \"employeeId:approximatePercentile\",\n { percentile: 0.5 },\n );\n },\n });\n\n expectTypeOf(objectSet).branded.toEqualTypeOf<\n ObjectSet<\n Employee,\n { derivedPropertyName: \"double\" | undefined }\n >\n >();\n });\n\n it(\"correctly narrows types of selectProperty function\", () => {\n client(Employee).withProperties({\n \"derivedPropertyName\": (base) => {\n // @ts-expect-error\n base.pivotTo(\"lead\").selectProperty(\"notAProperty\");\n\n return base.pivotTo(\"lead\").selectProperty(\"employeeStatus\");\n },\n }) satisfies ObjectSet<\n Employee,\n {\n \"derivedPropertyName\": \"stringTimeseries\" | undefined;\n }\n >;\n });\n\n it(\"propagates derived property type to future object set operations with correct types\", () => {\n client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"employeeId:sum\"),\n // @ts-expect-error\n }).where({ \"notAProperty\": { \"$eq\": 3 } });\n\n const numericAggregationObjectSet = client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"employeeId:sum\"),\n }).where({ \"derivedPropertyName\": { \"$eq\": 3 } });\n\n expectTypeOf(numericAggregationObjectSet).toEqualTypeOf<\n ObjectSet<Employee, {\n derivedPropertyName: \"double\" | undefined;\n }>\n >();\n\n client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"employeeId:collectList\"),\n }).where({ \"derivedPropertyName\": { \"$isNull\": false } })\n // @ts-expect-error\n .where({ \"derivedPropertyName\": { \"$eq\": [1, 2] } });\n\n const setAggregationObjectSet = client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"fullName:collectSet\"),\n });\n setAggregationObjectSet.where({\n \"derivedPropertyName\": { \"$isNull\": false },\n });\n\n setAggregationObjectSet.where({\n // @ts-expect-error\n \"derivedPropertyName\": { \"$eq\": [1, 2] },\n });\n expectTypeOf(setAggregationObjectSet).toEqualTypeOf<\n ObjectSet<Employee, {\n derivedPropertyName: \"string\"[] | undefined;\n }>\n >();\n\n const selectPropertyObjectSet = client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").selectProperty(\"employeeId\"),\n }).where({ \"derivedPropertyName\": { \"$eq\": 3 } });\n\n expectTypeOf(selectPropertyObjectSet).toEqualTypeOf<\n ObjectSet<Employee, {\n derivedPropertyName: \"integer\";\n }>\n >();\n\n client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").selectProperty(\"startDate\"),\n }).where({ \"derivedPropertyName\": { \"$eq\": \"datetimeFilter\" } });\n });\n\n it(\"correctly types multiple property definitions in one clause\", () => {\n const objectSet = client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"employeeId:sum\"),\n \"derivedPropertyName2\": (base) =>\n base.pivotTo(\"lead\").selectProperty(\"fullName\"),\n }).where({ \"derivedPropertyName\": { \"$eq\": 3 } })\n .where({ \"derivedPropertyName2\": { \"$eq\": \"name\" } });\n\n expectTypeOf(objectSet).toEqualTypeOf<\n ObjectSet<Employee, {\n derivedPropertyName: \"double\" | undefined;\n derivedPropertyName2: \"string\" | undefined;\n }>\n >();\n });\n\n it(\"ensures other properties are consistently typed\", () => {\n client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").selectProperty(\"employeeId\"),\n }).where({ \"fullName\": { \"$eq\": \"A\" } });\n\n client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").selectProperty(\"employeeId\"),\n }).where({ \"employeeId\": { \"$eq\": 2 } });\n });\n\n it(\"allows fetching derived properties with correctly typed Osdk.Instance types\", async () => {\n const objectWithRdp = await client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").selectProperty(\"employeeId\"),\n }).fetchOne(stubData.employee1.employeeId);\n\n expectTypeOf(objectWithRdp.derivedPropertyName).toEqualTypeOf<\n number\n >();\n expect(objectWithRdp.derivedPropertyName).toBe(\n stubData.employee2.__primaryKey,\n );\n\n const objectWithUndefinedRdp = await client(Employee).withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").selectProperty(\"employeeId\"),\n }).fetchOne(stubData.employee2.employeeId, {\n $select: [\"derivedPropertyName\"],\n });\n\n expect(objectWithUndefinedRdp.derivedPropertyName).toBeUndefined();\n });\n });\n\n // Can't run these tests because we can't load by primary key!\n // describe.each([\"fetchOne\", \"fetchOneWithErrors\"] as const)(\"%s\", (k) => {\n // describe(\"strictNonNull: false\", () => {\n // describe(\"includeRid: true\", () => {\n // it(\"returns bad data\", async () => {\n // // Look at this\n // const opts = {\n // $__EXPERIMENTAL_strictNonNull: false,\n // $includeRid: true,\n // } as const;\n // const result = k === \"fetchOne\"\n // ? await client(Employee).fetchOne(50033, opts)\n // : (await client(Employee).fetchOneWithErrors(50033, opts)).value!;\n\n // expect(result).not.toBeUndefined();\n // expectTypeOf(result).branded.toEqualTypeOf<\n // Osdk<Employee, \"$all\" | \"$notStrict\" | \"$rid\">\n // >();\n // });\n // });\n\n // describe(\"includeRid: false\", () => {\n // it(\"returns bad data\", async () => {\n // const opts = {\n // $__EXPERIMENTAL_strictNonNull: false,\n // $includeRid: false,\n // } as const;\n // const result = k === \"fetchOne\"\n // ? await client(Employee).fetchOne(50033, opts)\n // : (await client(Employee).fetchOneWithErrors(50033, opts)).value!;\n\n // expect(result).not.toBeUndefined();\n // expectTypeOf(result).branded.toEqualTypeOf<\n // Osdk<Employee, \"$all\" | \"$notStrict\">\n // >();\n // });\n // });\n // });\n // });\n\n describe(\"conversions\", () => {\n describe(\"strictNonNull: false\", () => {\n it(\"returns bad data\", async () => {\n const result = await client(Employee).fetchPage({});\n\n const empNotStrict = result.data[0];\n const empNotStrict2: Osdk<Employee, \"$all\" | \"$notStrict\"> =\n empNotStrict;\n expectTypeOf(empNotStrict).branded.toEqualTypeOf<\n Osdk<Employee, \"$all\" | \"$notStrict\">\n >();\n expectTypeOf(empNotStrict).branded.toEqualTypeOf<\n Employee.OsdkObject<never, Employee.PropertyKeys>\n >();\n expectTypeOf(empNotStrict).branded.toEqualTypeOf<\n Employee.OsdkObject<never>\n >();\n\n expectTypeOf(empNotStrict.employeeId).toEqualTypeOf<\n number\n >();\n\n expectTypeOf(empNotStrict2.employeeId).toEqualTypeOf<\n number\n >();\n\n expectTypeOf<ApiNameAsString<FooInterface>>()\n .toEqualTypeOf<\"FooInterface\">();\n\n expectTypeOf<\n NonNullable<CompileTimeMetadata<Employee>[\"interfaceMap\"]>\n >()\n .toEqualTypeOf<{\n FooInterface: {\n fooSpt: \"fullName\";\n };\n }>();\n\n expectTypeOf<PropMapToInterface<Employee, FooInterface>>()\n .toEqualTypeOf<{ fullName: \"fooSpt\" }>();\n\n expectTypeOf<PropMapToObject<FooInterface, Employee>>()\n .toEqualTypeOf<{ fooSpt: \"fullName\" }>();\n\n expectTypeOf<ConvertProps<Employee, FooInterface, \"fullName\">>()\n .toEqualTypeOf<\"fooSpt\">();\n\n expectTypeOf<JustProps<Employee, \"$all\">>()\n .toEqualTypeOf<\n | \"class\"\n | \"fullName\"\n | \"office\"\n | \"employeeId\"\n | \"employeeStatus\"\n | \"startDate\"\n | \"employeeLocation\"\n | \"employeeSensor\"\n >();\n\n expectTypeOf<\n ConvertProps<Employee, FooInterface, \"fullName\" | \"office\">\n >()\n .toEqualTypeOf<\"fooSpt\">();\n\n expectTypeOf<\n ConvertProps<FooInterface, Employee, \"fooSpt\">\n >()\n .toEqualTypeOf<\"fullName\">();\n\n expectTypeOf<\n ConvertProps<FooInterface, Employee, \"fooSpt\", \"$allBaseProperties\">\n >()\n .toEqualTypeOf<\n | \"employeeId\"\n | \"fullName\"\n | \"office\"\n | \"class\"\n | \"startDate\"\n | \"employeeStatus\"\n | \"employeeSensor\"\n | \"employeeLocation\"\n >();\n\n // We don't have a proper definition that has\n // a non-null property on an interface so\n // we cheese it here to be sure the types work\n type CheesedProp<\n T extends InterfaceDefinition,\n K extends PropertyKeys<T>,\n > = T & { properties: { [KK in K]: { nullable: false } } };\n\n type CheesedFoo = CheesedProp<FooInterface, \"fooSpt\">;\n const CheesedFoo: CheesedFoo = FooInterface as CheesedFoo;\n\n type T = ConvertProps<Employee, CheesedFoo, \"fullName\">;\n\n const cheesedFooNotStrict = result.data[0].$as(CheesedFoo);\n expectTypeOf(cheesedFooNotStrict).branded.toEqualTypeOf<\n Osdk<CheesedFoo, \"$all\" | \"$notStrict\">\n >();\n\n cheesedFooNotStrict.fooSpt;\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}