@osdk/client 2.1.1 → 2.2.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (402) hide show
  1. package/CHANGELOG.md +129 -181
  2. package/build/browser/Client.js +1 -1
  3. package/build/browser/Client.js.map +1 -1
  4. package/build/browser/MinimalClientContext.js.map +1 -1
  5. package/build/browser/actions/ActionValidationError.js +1 -1
  6. package/build/browser/actions/ActionValidationError.js.map +1 -1
  7. package/build/browser/actions/actions.test.js +164 -87
  8. package/build/browser/actions/actions.test.js.map +1 -1
  9. package/build/browser/actions/applyAction.js +21 -15
  10. package/build/browser/actions/applyAction.js.map +1 -1
  11. package/build/browser/createClient.js +19 -8
  12. package/build/browser/createClient.js.map +1 -1
  13. package/build/browser/createClient.test.js +14 -6
  14. package/build/browser/createClient.test.js.map +1 -1
  15. package/build/browser/createMinimalClient.js +2 -2
  16. package/build/browser/createMinimalClient.js.map +1 -1
  17. package/build/browser/createMinimalClientHelper.js +25 -0
  18. package/build/browser/createMinimalClientHelper.js.map +1 -0
  19. package/build/browser/derivedProperties/createWithPropertiesObjectSet.js +106 -0
  20. package/build/browser/derivedProperties/createWithPropertiesObjectSet.js.map +1 -0
  21. package/build/browser/derivedProperties/createWithPropertiesObjectSet.test.js +100 -0
  22. package/build/browser/derivedProperties/createWithPropertiesObjectSet.test.js.map +1 -0
  23. package/build/browser/fetchMetadata.test.js +11 -9
  24. package/build/browser/fetchMetadata.test.js.map +1 -1
  25. package/build/browser/index.js +1 -0
  26. package/build/browser/index.js.map +1 -1
  27. package/build/browser/intellisense.test.js +5 -1
  28. package/build/browser/intellisense.test.js.map +1 -1
  29. package/build/browser/internal/conversions/modernToLegacyGroupByClause.js +7 -0
  30. package/build/browser/internal/conversions/modernToLegacyGroupByClause.js.map +1 -1
  31. package/build/browser/internal/conversions/modernToLegacyWhereClause.js +1 -1
  32. package/build/browser/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
  33. package/build/browser/logger/BaseLogger.js +53 -0
  34. package/build/browser/logger/BaseLogger.js.map +1 -0
  35. package/build/{esm → browser/logger}/Logger.js.map +1 -1
  36. package/build/browser/logger/MinimalLogger.js +41 -0
  37. package/build/browser/logger/MinimalLogger.js.map +1 -0
  38. package/build/browser/object/AttachmentUpload.js +3 -0
  39. package/build/browser/object/AttachmentUpload.js.map +1 -1
  40. package/build/browser/object/SimpleOsdkProperties.js +2 -0
  41. package/build/browser/object/SimpleOsdkProperties.js.map +1 -0
  42. package/build/browser/object/aggregate.test.js +12 -2
  43. package/build/browser/object/aggregate.test.js.map +1 -1
  44. package/build/browser/object/attachment.test.js +20 -7
  45. package/build/browser/object/attachment.test.js.map +1 -1
  46. package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js +2 -0
  47. package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -0
  48. package/build/browser/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -1
  49. package/build/browser/object/convertWireToOsdkObjects/ObjectHolder.js.map +1 -1
  50. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js +25 -0
  51. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  52. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js +10 -3
  53. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  54. package/build/browser/object/convertWireToOsdkObjects/getDollarAs.js.map +1 -1
  55. package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  56. package/build/browser/object/convertWireToOsdkObjects.js +13 -4
  57. package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
  58. package/build/browser/object/convertWireToOsdkObjects.test.js +17 -11
  59. package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
  60. package/build/{esm/observable/internal/ChangedObjects.js → browser/object/createObjectSpecifierFromPrimaryKey.js} +3 -7
  61. package/build/browser/object/createObjectSpecifierFromPrimaryKey.js.map +1 -0
  62. package/build/browser/object/fetchPage.js +13 -1
  63. package/build/browser/object/fetchPage.js.map +1 -1
  64. package/build/browser/object/fetchPage.test.js +56 -2
  65. package/build/browser/object/fetchPage.test.js.map +1 -1
  66. package/build/browser/object/geotimeseriesreference.test.js +56 -134
  67. package/build/browser/object/geotimeseriesreference.test.js.map +1 -1
  68. package/build/browser/object/media.test.js +19 -14
  69. package/build/browser/object/media.test.js.map +1 -1
  70. package/build/browser/object/object.test.js +166 -66
  71. package/build/browser/object/object.test.js.map +1 -1
  72. package/build/browser/object/timeseries.test.js +119 -85
  73. package/build/browser/object/timeseries.test.js.map +1 -1
  74. package/build/browser/objectSet/InterfaceObjectSet.test.js +37 -17
  75. package/build/browser/objectSet/InterfaceObjectSet.test.js.map +1 -1
  76. package/build/browser/objectSet/ObjectSet.test.js +313 -79
  77. package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
  78. package/build/browser/objectSet/ObjectSetListenerWebsocket.js +18 -14
  79. package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  80. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +16 -9
  81. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  82. package/build/browser/objectSet/createObjectSet.js +16 -0
  83. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  84. package/build/browser/observable/ListPayload.js.map +1 -1
  85. package/build/browser/observable/ObjectPayload.js.map +1 -1
  86. package/build/browser/observable/ObservableClient.js.map +1 -1
  87. package/build/browser/observable/OptimisticBuilder.js.map +1 -1
  88. package/build/browser/observable/internal/ActionApplication.js +102 -0
  89. package/build/browser/observable/internal/ActionApplication.js.map +1 -0
  90. package/build/browser/observable/internal/BulkObjectLoader.js +93 -0
  91. package/build/browser/observable/internal/BulkObjectLoader.js.map +1 -0
  92. package/build/browser/observable/internal/BulkObjectLoader.test.js +112 -0
  93. package/build/browser/observable/internal/BulkObjectLoader.test.js.map +1 -0
  94. package/build/browser/observable/internal/CacheKey.js +38 -1
  95. package/build/browser/observable/internal/CacheKey.js.map +1 -1
  96. package/build/browser/observable/internal/CacheKeys.js +4 -4
  97. package/build/browser/observable/internal/CacheKeys.js.map +1 -1
  98. package/build/browser/observable/internal/Changes.js +58 -0
  99. package/build/browser/observable/internal/Changes.js.map +1 -0
  100. package/build/browser/observable/internal/Layer.js +6 -3
  101. package/build/browser/observable/internal/Layer.js.map +1 -1
  102. package/build/browser/observable/internal/ListQuery.js +495 -129
  103. package/build/browser/observable/internal/ListQuery.js.map +1 -1
  104. package/build/browser/observable/internal/ObjectQuery.js +40 -14
  105. package/build/browser/observable/internal/ObjectQuery.js.map +1 -1
  106. package/build/browser/observable/internal/ObservableClientImpl.js +4 -12
  107. package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
  108. package/build/browser/observable/internal/OptimisticJob.js +30 -29
  109. package/build/browser/observable/internal/OptimisticJob.js.map +1 -1
  110. package/build/browser/observable/internal/OrderByCanonicalizer.js +73 -0
  111. package/build/browser/observable/internal/OrderByCanonicalizer.js.map +1 -0
  112. package/build/browser/observable/internal/OrderByCanonicalizer.test.js +78 -0
  113. package/build/browser/observable/internal/OrderByCanonicalizer.test.js.map +1 -0
  114. package/build/browser/observable/internal/Query.js +79 -6
  115. package/build/browser/observable/internal/Query.js.map +1 -1
  116. package/build/browser/observable/internal/RefCounts.js +7 -2
  117. package/build/browser/observable/internal/RefCounts.js.map +1 -1
  118. package/build/browser/observable/internal/SimpleWhereClause.js +2 -0
  119. package/build/browser/observable/internal/SimpleWhereClause.js.map +1 -0
  120. package/build/browser/observable/internal/Store.js +138 -188
  121. package/build/browser/observable/internal/Store.js.map +1 -1
  122. package/build/browser/observable/internal/Store.test.js +664 -255
  123. package/build/browser/observable/internal/Store.test.js.map +1 -1
  124. package/build/browser/observable/internal/WhereClauseCanonicalizer.js +11 -3
  125. package/build/browser/observable/internal/WhereClauseCanonicalizer.js.map +1 -1
  126. package/build/browser/observable/internal/objectMatchesWhereClause.js +0 -4
  127. package/build/browser/observable/internal/objectMatchesWhereClause.js.map +1 -1
  128. package/build/browser/observable/internal/objectMatchesWhereClause.test.js.map +1 -1
  129. package/build/browser/observable/internal/testUtils.js +222 -19
  130. package/build/browser/observable/internal/testUtils.js.map +1 -1
  131. package/build/browser/ontology/StandardOntologyProvider.test.js +17 -16
  132. package/build/browser/ontology/StandardOntologyProvider.test.js.map +1 -1
  133. package/build/browser/public/unstable-do-not-use.js.map +1 -1
  134. package/build/browser/queries/applyQuery.js +33 -1
  135. package/build/browser/queries/applyQuery.js.map +1 -1
  136. package/build/browser/queries/queries.test.js +36 -13
  137. package/build/browser/queries/queries.test.js.map +1 -1
  138. package/build/browser/tsserver.js.map +1 -1
  139. package/build/browser/util/UserAgent.js +1 -1
  140. package/build/browser/util/UserAgent.js.map +1 -1
  141. package/build/browser/util/toDataValue.js +10 -2
  142. package/build/browser/util/toDataValue.js.map +1 -1
  143. package/build/browser/util/toDataValue.test.js +37 -16
  144. package/build/browser/util/toDataValue.test.js.map +1 -1
  145. package/build/browser/util/toDataValueQueries.js +27 -2
  146. package/build/browser/util/toDataValueQueries.js.map +1 -1
  147. package/build/cjs/{Client-C8K3E1vH.d.cts → Client-DBTcM9gB.d.cts} +1 -1
  148. package/build/cjs/{chunk-FWVJ2AKD.cjs → chunk-EY52J5Z4.cjs} +25 -15
  149. package/build/cjs/chunk-EY52J5Z4.cjs.map +1 -0
  150. package/build/cjs/{chunk-DLSRNRTA.cjs → chunk-MCQVHD2F.cjs} +155 -42
  151. package/build/cjs/chunk-MCQVHD2F.cjs.map +1 -0
  152. package/build/cjs/chunk-T4NIFYZS.cjs +14 -0
  153. package/build/cjs/chunk-T4NIFYZS.cjs.map +1 -0
  154. package/build/cjs/{graphql-JJX5MZPQ.cjs → graphql-RGM5SRWV.cjs} +43 -2
  155. package/build/cjs/graphql-RGM5SRWV.cjs.map +1 -0
  156. package/build/cjs/index.cjs +265 -94
  157. package/build/cjs/index.cjs.map +1 -1
  158. package/build/cjs/index.d.cts +6 -4
  159. package/build/cjs/public/internal.cjs +6 -6
  160. package/build/cjs/public/internal.d.cts +1 -1
  161. package/build/cjs/public/unstable-do-not-use.cjs +1087 -470
  162. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  163. package/build/cjs/public/unstable-do-not-use.d.cts +37 -27
  164. package/build/esm/Client.js +1 -1
  165. package/build/esm/Client.js.map +1 -1
  166. package/build/esm/MinimalClientContext.js.map +1 -1
  167. package/build/esm/actions/ActionValidationError.js +1 -1
  168. package/build/esm/actions/ActionValidationError.js.map +1 -1
  169. package/build/esm/actions/actions.test.js +164 -87
  170. package/build/esm/actions/actions.test.js.map +1 -1
  171. package/build/esm/actions/applyAction.js +21 -15
  172. package/build/esm/actions/applyAction.js.map +1 -1
  173. package/build/esm/createClient.js +19 -8
  174. package/build/esm/createClient.js.map +1 -1
  175. package/build/esm/createClient.test.js +14 -6
  176. package/build/esm/createClient.test.js.map +1 -1
  177. package/build/esm/createMinimalClient.js +2 -2
  178. package/build/esm/createMinimalClient.js.map +1 -1
  179. package/build/esm/createMinimalClientHelper.js +25 -0
  180. package/build/esm/createMinimalClientHelper.js.map +1 -0
  181. package/build/esm/derivedProperties/createWithPropertiesObjectSet.js +106 -0
  182. package/build/esm/derivedProperties/createWithPropertiesObjectSet.js.map +1 -0
  183. package/build/esm/derivedProperties/createWithPropertiesObjectSet.test.js +100 -0
  184. package/build/esm/derivedProperties/createWithPropertiesObjectSet.test.js.map +1 -0
  185. package/build/esm/fetchMetadata.test.js +11 -9
  186. package/build/esm/fetchMetadata.test.js.map +1 -1
  187. package/build/esm/index.js +1 -0
  188. package/build/esm/index.js.map +1 -1
  189. package/build/esm/intellisense.test.js +5 -1
  190. package/build/esm/intellisense.test.js.map +1 -1
  191. package/build/esm/internal/conversions/modernToLegacyGroupByClause.js +7 -0
  192. package/build/esm/internal/conversions/modernToLegacyGroupByClause.js.map +1 -1
  193. package/build/esm/internal/conversions/modernToLegacyWhereClause.js +1 -1
  194. package/build/esm/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
  195. package/build/esm/logger/BaseLogger.js +53 -0
  196. package/build/esm/logger/BaseLogger.js.map +1 -0
  197. package/build/{browser → esm/logger}/Logger.js.map +1 -1
  198. package/build/esm/logger/MinimalLogger.js +41 -0
  199. package/build/esm/logger/MinimalLogger.js.map +1 -0
  200. package/build/esm/object/AttachmentUpload.js +3 -0
  201. package/build/esm/object/AttachmentUpload.js.map +1 -1
  202. package/build/esm/object/SimpleOsdkProperties.js +2 -0
  203. package/build/esm/object/SimpleOsdkProperties.js.map +1 -0
  204. package/build/esm/object/aggregate.test.js +12 -2
  205. package/build/esm/object/aggregate.test.js.map +1 -1
  206. package/build/esm/object/attachment.test.js +20 -7
  207. package/build/esm/object/attachment.test.js.map +1 -1
  208. package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js +2 -0
  209. package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -0
  210. package/build/esm/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -1
  211. package/build/esm/object/convertWireToOsdkObjects/ObjectHolder.js.map +1 -1
  212. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js +25 -0
  213. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  214. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js +10 -3
  215. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  216. package/build/esm/object/convertWireToOsdkObjects/getDollarAs.js.map +1 -1
  217. package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  218. package/build/esm/object/convertWireToOsdkObjects.js +13 -4
  219. package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
  220. package/build/esm/object/convertWireToOsdkObjects.test.js +17 -11
  221. package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
  222. package/build/{browser/observable/internal/ChangedObjects.js → esm/object/createObjectSpecifierFromPrimaryKey.js} +3 -7
  223. package/build/esm/object/createObjectSpecifierFromPrimaryKey.js.map +1 -0
  224. package/build/esm/object/fetchPage.js +13 -1
  225. package/build/esm/object/fetchPage.js.map +1 -1
  226. package/build/esm/object/fetchPage.test.js +56 -2
  227. package/build/esm/object/fetchPage.test.js.map +1 -1
  228. package/build/esm/object/geotimeseriesreference.test.js +56 -134
  229. package/build/esm/object/geotimeseriesreference.test.js.map +1 -1
  230. package/build/esm/object/media.test.js +19 -14
  231. package/build/esm/object/media.test.js.map +1 -1
  232. package/build/esm/object/object.test.js +166 -66
  233. package/build/esm/object/object.test.js.map +1 -1
  234. package/build/esm/object/timeseries.test.js +119 -85
  235. package/build/esm/object/timeseries.test.js.map +1 -1
  236. package/build/esm/objectSet/InterfaceObjectSet.test.js +37 -17
  237. package/build/esm/objectSet/InterfaceObjectSet.test.js.map +1 -1
  238. package/build/esm/objectSet/ObjectSet.test.js +313 -79
  239. package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
  240. package/build/esm/objectSet/ObjectSetListenerWebsocket.js +18 -14
  241. package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  242. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +16 -9
  243. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  244. package/build/esm/objectSet/createObjectSet.js +16 -0
  245. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  246. package/build/esm/observable/ListPayload.js.map +1 -1
  247. package/build/esm/observable/ObjectPayload.js.map +1 -1
  248. package/build/esm/observable/ObservableClient.js.map +1 -1
  249. package/build/esm/observable/OptimisticBuilder.js.map +1 -1
  250. package/build/esm/observable/internal/ActionApplication.js +102 -0
  251. package/build/esm/observable/internal/ActionApplication.js.map +1 -0
  252. package/build/esm/observable/internal/BulkObjectLoader.js +93 -0
  253. package/build/esm/observable/internal/BulkObjectLoader.js.map +1 -0
  254. package/build/esm/observable/internal/BulkObjectLoader.test.js +112 -0
  255. package/build/esm/observable/internal/BulkObjectLoader.test.js.map +1 -0
  256. package/build/esm/observable/internal/CacheKey.js +38 -1
  257. package/build/esm/observable/internal/CacheKey.js.map +1 -1
  258. package/build/esm/observable/internal/CacheKeys.js +4 -4
  259. package/build/esm/observable/internal/CacheKeys.js.map +1 -1
  260. package/build/esm/observable/internal/Changes.js +58 -0
  261. package/build/esm/observable/internal/Changes.js.map +1 -0
  262. package/build/esm/observable/internal/Layer.js +6 -3
  263. package/build/esm/observable/internal/Layer.js.map +1 -1
  264. package/build/esm/observable/internal/ListQuery.js +495 -129
  265. package/build/esm/observable/internal/ListQuery.js.map +1 -1
  266. package/build/esm/observable/internal/ObjectQuery.js +40 -14
  267. package/build/esm/observable/internal/ObjectQuery.js.map +1 -1
  268. package/build/esm/observable/internal/ObservableClientImpl.js +4 -12
  269. package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
  270. package/build/esm/observable/internal/OptimisticJob.js +30 -29
  271. package/build/esm/observable/internal/OptimisticJob.js.map +1 -1
  272. package/build/esm/observable/internal/OrderByCanonicalizer.js +73 -0
  273. package/build/esm/observable/internal/OrderByCanonicalizer.js.map +1 -0
  274. package/build/esm/observable/internal/OrderByCanonicalizer.test.js +78 -0
  275. package/build/esm/observable/internal/OrderByCanonicalizer.test.js.map +1 -0
  276. package/build/esm/observable/internal/Query.js +79 -6
  277. package/build/esm/observable/internal/Query.js.map +1 -1
  278. package/build/esm/observable/internal/RefCounts.js +7 -2
  279. package/build/esm/observable/internal/RefCounts.js.map +1 -1
  280. package/build/esm/observable/internal/SimpleWhereClause.js +2 -0
  281. package/build/esm/observable/internal/SimpleWhereClause.js.map +1 -0
  282. package/build/esm/observable/internal/Store.js +138 -188
  283. package/build/esm/observable/internal/Store.js.map +1 -1
  284. package/build/esm/observable/internal/Store.test.js +664 -255
  285. package/build/esm/observable/internal/Store.test.js.map +1 -1
  286. package/build/esm/observable/internal/WhereClauseCanonicalizer.js +11 -3
  287. package/build/esm/observable/internal/WhereClauseCanonicalizer.js.map +1 -1
  288. package/build/esm/observable/internal/objectMatchesWhereClause.js +0 -4
  289. package/build/esm/observable/internal/objectMatchesWhereClause.js.map +1 -1
  290. package/build/esm/observable/internal/objectMatchesWhereClause.test.js.map +1 -1
  291. package/build/esm/observable/internal/testUtils.js +222 -19
  292. package/build/esm/observable/internal/testUtils.js.map +1 -1
  293. package/build/esm/ontology/StandardOntologyProvider.test.js +17 -16
  294. package/build/esm/ontology/StandardOntologyProvider.test.js.map +1 -1
  295. package/build/esm/public/unstable-do-not-use.js.map +1 -1
  296. package/build/esm/queries/applyQuery.js +33 -1
  297. package/build/esm/queries/applyQuery.js.map +1 -1
  298. package/build/esm/queries/queries.test.js +36 -13
  299. package/build/esm/queries/queries.test.js.map +1 -1
  300. package/build/esm/tsserver.js.map +1 -1
  301. package/build/esm/util/UserAgent.js +1 -1
  302. package/build/esm/util/UserAgent.js.map +1 -1
  303. package/build/esm/util/toDataValue.js +10 -2
  304. package/build/esm/util/toDataValue.js.map +1 -1
  305. package/build/esm/util/toDataValue.test.js +37 -16
  306. package/build/esm/util/toDataValue.test.js.map +1 -1
  307. package/build/esm/util/toDataValueQueries.js +27 -2
  308. package/build/esm/util/toDataValueQueries.js.map +1 -1
  309. package/build/types/Client.d.ts +2 -2
  310. package/build/types/Client.d.ts.map +1 -1
  311. package/build/types/MinimalClientContext.d.ts +1 -1
  312. package/build/types/MinimalClientContext.d.ts.map +1 -1
  313. package/build/types/actions/applyAction.d.ts.map +1 -1
  314. package/build/types/createClient.d.ts +1 -1
  315. package/build/types/createClient.d.ts.map +1 -1
  316. package/build/types/createClient.test.d.ts +2 -1
  317. package/build/types/createClient.test.d.ts.map +1 -1
  318. package/build/types/createMinimalClientHelper.d.ts +1 -0
  319. package/build/types/createMinimalClientHelper.d.ts.map +1 -0
  320. package/build/types/derivedProperties/createWithPropertiesObjectSet.d.ts +1 -0
  321. package/build/types/derivedProperties/createWithPropertiesObjectSet.d.ts.map +1 -0
  322. package/build/types/derivedProperties/createWithPropertiesObjectSet.test.d.ts +1 -0
  323. package/build/types/derivedProperties/createWithPropertiesObjectSet.test.d.ts.map +1 -0
  324. package/build/types/index.d.ts +3 -2
  325. package/build/types/index.d.ts.map +1 -1
  326. package/build/types/logger/BaseLogger.d.ts +31 -0
  327. package/build/types/logger/BaseLogger.d.ts.map +1 -0
  328. package/build/types/{Logger.d.ts → logger/Logger.d.ts} +1 -2
  329. package/build/types/logger/Logger.d.ts.map +1 -0
  330. package/build/types/logger/MinimalLogger.d.ts +8 -0
  331. package/build/types/logger/MinimalLogger.d.ts.map +1 -0
  332. package/build/types/object/AttachmentUpload.d.ts +3 -0
  333. package/build/types/object/AttachmentUpload.d.ts.map +1 -1
  334. package/build/types/object/SimpleOsdkProperties.d.ts +1 -0
  335. package/build/types/object/SimpleOsdkProperties.d.ts.map +1 -0
  336. package/build/types/object/convertWireToOsdkObjects/BaseHolder.d.ts +1 -0
  337. package/build/types/object/convertWireToOsdkObjects/BaseHolder.d.ts.map +1 -0
  338. package/build/types/object/convertWireToOsdkObjects.d.ts +8 -1
  339. package/build/types/object/convertWireToOsdkObjects.d.ts.map +1 -1
  340. package/build/types/object/createObjectSpecifierFromPrimaryKey.d.ts +2 -0
  341. package/build/types/object/createObjectSpecifierFromPrimaryKey.d.ts.map +1 -0
  342. package/build/types/object/object.test.d.ts.map +1 -1
  343. package/build/types/objectSet/ObjectSet.test.d.ts.map +1 -1
  344. package/build/types/observable/ListPayload.d.ts +5 -9
  345. package/build/types/observable/ListPayload.d.ts.map +1 -1
  346. package/build/types/observable/ObjectPayload.d.ts +4 -7
  347. package/build/types/observable/ObjectPayload.d.ts.map +1 -1
  348. package/build/types/observable/ObservableClient.d.ts +33 -10
  349. package/build/types/observable/ObservableClient.d.ts.map +1 -1
  350. package/build/types/observable/OptimisticBuilder.d.ts +1 -1
  351. package/build/types/observable/OptimisticBuilder.d.ts.map +1 -1
  352. package/build/types/observable/internal/ActionApplication.d.ts +9 -0
  353. package/build/types/observable/internal/ActionApplication.d.ts.map +1 -0
  354. package/build/types/observable/internal/BulkObjectLoader.d.ts +8 -0
  355. package/build/types/observable/internal/BulkObjectLoader.d.ts.map +1 -0
  356. package/build/types/observable/internal/BulkObjectLoader.test.d.ts +1 -0
  357. package/build/types/observable/internal/BulkObjectLoader.test.d.ts.map +1 -0
  358. package/build/types/observable/internal/CacheKeys.d.ts +2 -1
  359. package/build/types/observable/internal/CacheKeys.d.ts.map +1 -1
  360. package/build/types/observable/internal/Changes.d.ts +15 -0
  361. package/build/types/observable/internal/Changes.d.ts.map +1 -0
  362. package/build/types/observable/internal/Layer.d.ts +2 -1
  363. package/build/types/observable/internal/Layer.d.ts.map +1 -1
  364. package/build/types/observable/internal/ListQuery.d.ts +69 -23
  365. package/build/types/observable/internal/ListQuery.d.ts.map +1 -1
  366. package/build/types/observable/internal/ObjectQuery.d.ts +8 -9
  367. package/build/types/observable/internal/ObjectQuery.d.ts.map +1 -1
  368. package/build/types/observable/internal/OptimisticJob.d.ts +2 -2
  369. package/build/types/observable/internal/OptimisticJob.d.ts.map +1 -1
  370. package/build/types/observable/internal/OrderByCanonicalizer.d.ts +12 -0
  371. package/build/types/observable/internal/OrderByCanonicalizer.d.ts.map +1 -0
  372. package/build/types/observable/internal/OrderByCanonicalizer.test.d.ts +1 -0
  373. package/build/types/observable/internal/OrderByCanonicalizer.test.d.ts.map +1 -0
  374. package/build/types/observable/internal/Query.d.ts +45 -9
  375. package/build/types/observable/internal/Query.d.ts.map +1 -1
  376. package/build/types/observable/internal/RefCounts.d.ts.map +1 -1
  377. package/build/types/observable/internal/SimpleWhereClause.d.ts +2 -0
  378. package/build/types/observable/internal/SimpleWhereClause.d.ts.map +1 -0
  379. package/build/types/observable/internal/Store.d.ts +33 -29
  380. package/build/types/observable/internal/Store.d.ts.map +1 -1
  381. package/build/types/observable/internal/WhereClauseCanonicalizer.d.ts +2 -1
  382. package/build/types/observable/internal/WhereClauseCanonicalizer.d.ts.map +1 -1
  383. package/build/types/observable/internal/objectMatchesWhereClause.d.ts +4 -2
  384. package/build/types/observable/internal/objectMatchesWhereClause.d.ts.map +1 -1
  385. package/build/types/observable/internal/testUtils.d.ts +49 -9
  386. package/build/types/observable/internal/testUtils.d.ts.map +1 -1
  387. package/build/types/public/unstable-do-not-use.d.ts +1 -4
  388. package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
  389. package/build/types/queries/applyQuery.d.ts.map +1 -1
  390. package/build/types/tsserver.d.ts +1 -1
  391. package/build/types/tsserver.d.ts.map +1 -1
  392. package/package.json +18 -14
  393. package/build/browser/observable/internal/ChangedObjects.js.map +0 -1
  394. package/build/cjs/chunk-DLSRNRTA.cjs.map +0 -1
  395. package/build/cjs/chunk-FWVJ2AKD.cjs.map +0 -1
  396. package/build/cjs/graphql-JJX5MZPQ.cjs.map +0 -1
  397. package/build/esm/observable/internal/ChangedObjects.js.map +0 -1
  398. package/build/types/Logger.d.ts.map +0 -1
  399. package/build/types/observable/internal/ChangedObjects.d.ts +0 -7
  400. package/build/types/observable/internal/ChangedObjects.d.ts.map +0 -1
  401. /package/build/browser/{Logger.js → logger/Logger.js} +0 -0
  402. /package/build/esm/{Logger.js → logger/Logger.js} +0 -0
@@ -15,19 +15,21 @@
15
15
  */
16
16
 
17
17
  import { isOk } from "@osdk/api";
18
- import { __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid } from "@osdk/api/unstable";
19
- import { $ontologyRid, BarInterface, BgaoNflPlayer, Employee, FooInterface, Office } from "@osdk/client.test.ontology";
20
- import { apiServer, stubData } from "@osdk/shared.test";
21
- import { afterAll, beforeAll, describe, expect, expectTypeOf, it } from "vitest";
18
+ import { __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid, __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid } from "@osdk/api/unstable";
19
+ import { BarInterface, BgaoNflPlayer, Employee, FooInterface, Office } from "@osdk/client.test.ontology";
20
+ import { LegacyFauxFoundry, startNodeApiServer, stubData } from "@osdk/shared.test";
21
+ import { beforeAll, describe, expect, expectTypeOf, it } from "vitest";
22
22
  import { createClient } from "../createClient.js";
23
23
  describe("ObjectSet", () => {
24
24
  let client;
25
- beforeAll(async () => {
26
- apiServer.listen();
27
- client = createClient("https://stack.palantir.com", $ontologyRid, async () => "myAccessToken");
28
- });
29
- afterAll(() => {
30
- apiServer.close();
25
+ beforeAll(() => {
26
+ const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);
27
+ ({
28
+ client
29
+ } = testSetup);
30
+ return () => {
31
+ testSetup.apiServer.close();
32
+ };
31
33
  });
32
34
  it("does not allow intersect/union/subtract with different object types", () => {
33
35
  const employeeObjectSet = client(Employee);
@@ -46,15 +48,20 @@ describe("ObjectSet", () => {
46
48
  it("objects set union", async () => {
47
49
  const objectSet = client(Employee);
48
50
  const unionedObjectSet = objectSet.union(objectSet);
49
- let iter = 0;
50
51
  const {
51
52
  data: employees
52
53
  } = await unionedObjectSet.fetchPage();
54
+ const pks = new Set();
53
55
  for (const emp of employees) {
54
- expect(emp.employeeId).toEqual(50030 + iter);
55
- iter += 1;
56
+ pks.add(emp.$primaryKey);
56
57
  }
57
- expect(iter).toEqual(2);
58
+ expect(pks.size).toEqual(6);
59
+ expect(pks.has(stubData.employee1.employeeId)).toBe(true);
60
+ expect(pks.has(stubData.employee2.employeeId)).toBe(true);
61
+ expect(pks.has(stubData.employee3.employeeId)).toBe(true);
62
+ expect(pks.has(stubData.employee4withDerived.employeeId)).toBe(true);
63
+ expect(pks.has(stubData.employeePassesStrict.__primaryKey)).toBe(true);
64
+ expect(pks.has(stubData.employee50050.employeeId)).toBe(true);
58
65
  });
59
66
  it("objects set subtract", async () => {
60
67
  const objectSet = client(Employee);
@@ -62,76 +69,44 @@ describe("ObjectSet", () => {
62
69
  employeeId: 50030
63
70
  });
64
71
  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);
72
+ const objectSetResults = await objectSet.fetchPage();
73
+ const objectSet2Results = await objectSet2.fetchPage();
74
+ const subtractedObjectSetResults = await subtractedObjectSet.fetchPage();
75
+ expect(objectSet2Results.data).toHaveLength(1);
76
+ expect(subtractedObjectSetResults.data).toHaveLength(objectSetResults.data.length - objectSet2Results.data.length);
77
+ expect(subtractedObjectSetResults.data.find(x => x.$primaryKey === 50030)).toBeUndefined();
74
78
  });
75
79
  it("objects set intersect", async () => {
76
80
  const objectSet = client(Employee);
77
81
  const intersectedObjectSet = objectSet.intersect(objectSet);
78
- let iter = 0;
79
82
  const {
80
83
  data: employees
81
84
  } = await intersectedObjectSet.fetchPage();
85
+ const pks = new Set();
82
86
  for (const emp of employees) {
83
- expect(emp.employeeId).toEqual(50032);
84
- iter += 1;
87
+ pks.add(emp.$primaryKey);
85
88
  }
86
- expect(iter).toEqual(1);
89
+ expect(pks.size).toEqual(6);
90
+ expect(pks.has(stubData.employee1.employeeId)).toBe(true);
91
+ expect(pks.has(stubData.employee2.employeeId)).toBe(true);
92
+ expect(pks.has(stubData.employee3.employeeId)).toBe(true);
93
+ expect(pks.has(stubData.employee4withDerived.employeeId)).toBe(true);
94
+ expect(pks.has(stubData.employeePassesStrict.__primaryKey)).toBe(true);
95
+ expect(pks.has(stubData.employee50050.employeeId)).toBe(true);
87
96
  });
88
97
  it("orders objects in ascending order without a filter, and returns all results", async () => {
89
98
  const {
90
99
  data: employees
91
- } = await client(Employee).fetchPage({
100
+ } = await client(Employee).where({
101
+ employeeId: {
102
+ $isNull: false
103
+ }
104
+ }).fetchPage({
92
105
  $orderBy: {
93
106
  "employeeId": "asc"
94
107
  }
95
108
  });
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
- }]);
109
+ expect(employees.map(e => e.$primaryKey)).toEqual([50030, 50031, 50032, 50033, 50035, stubData.employee50050.employeeId]);
135
110
  });
136
111
  it("allows fetching by PK from a base object set - fetchOne", async () => {
137
112
  const employee = await client(Employee).fetchOne(stubData.employee1.employeeId);
@@ -139,17 +114,31 @@ describe("ObjectSet", () => {
139
114
  expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);
140
115
  });
141
116
  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");
117
+ const employee = await client(__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid).fetchOneByRid(Employee, stubData.employee1.__rid);
143
118
  expectTypeOf().toMatchTypeOf;
144
119
  expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);
145
120
  });
121
+ it("allows fetching page of rids with experimental function", async () => {
122
+ const employees = await client(__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid).fetchPageByRid(Employee, [stubData.employee1.__rid, stubData.employee2.__rid], {});
123
+ expectTypeOf().toMatchTypeOf;
124
+ expect(employees.data[0].$primaryKey).toBe(stubData.employee1.employeeId);
125
+ expect(employees.data[1].$primaryKey).toBe(stubData.employee2.employeeId);
126
+ });
146
127
  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", {
128
+ const employee = await client(__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid).fetchOneByRid(Employee, stubData.employee2.__rid, {
148
129
  $select: ["fullName"]
149
130
  });
150
131
  expectTypeOf().toMatchTypeOf;
151
132
  expect(employee.$primaryKey).toBe(stubData.employee2.employeeId);
152
133
  });
134
+ it("allows fetching by rid with experimental function, with select 2", async () => {
135
+ const employees = await client(__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid).fetchPageByRid(Employee, [stubData.employee2.__rid, stubData.employee3.__rid], {
136
+ $select: ["fullName"]
137
+ });
138
+ expectTypeOf().toMatchTypeOf;
139
+ expect(employees.data[0].$primaryKey).toBe(stubData.employee2.employeeId);
140
+ expect(employees.data[1].$primaryKey).toBe(stubData.employee3.employeeId);
141
+ });
153
142
  it("check struct parsing", async () => {
154
143
  const player = await client(BgaoNflPlayer).fetchOne("tkelce");
155
144
  expectTypeOf().toMatchTypeOf;
@@ -223,16 +212,18 @@ describe("ObjectSet", () => {
223
212
  it(" object set union works with fetchPageWithErrors", async () => {
224
213
  const objectSet = client(Employee);
225
214
  const unionedObjectSet = objectSet.union(objectSet);
226
- let iter = 0;
227
215
  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);
216
+ const pks = new Set();
217
+ for (const emp of result.value.data) {
218
+ pks.add(emp.$primaryKey);
235
219
  }
220
+ expect(pks.size).toEqual(6);
221
+ expect(pks.has(stubData.employee1.employeeId)).toBe(true);
222
+ expect(pks.has(stubData.employee2.employeeId)).toBe(true);
223
+ expect(pks.has(stubData.employee3.employeeId)).toBe(true);
224
+ expect(pks.has(stubData.employee4withDerived.employeeId)).toBe(true);
225
+ expect(pks.has(stubData.employeePassesStrict.__primaryKey)).toBe(true);
226
+ expect(pks.has(stubData.employee50050.employeeId)).toBe(true);
236
227
  });
237
228
  it("allows $in filter with ReadonlyArrays", () => {
238
229
  const objectSet = client(Employee).where({
@@ -394,7 +385,7 @@ describe("ObjectSet", () => {
394
385
  $includeRid: true
395
386
  };
396
387
  const result = k === "fetchPage" ? await client(Employee).fetchPage(opts) : (await client(Employee).fetchPageWithErrors(opts)).value;
397
- expect(result.data).toHaveLength(4);
388
+ expect(result.data).toHaveLength(6);
398
389
  expectTypeOf(result.data[0]).branded.toEqualTypeOf();
399
390
  });
400
391
  });
@@ -404,12 +395,254 @@ describe("ObjectSet", () => {
404
395
  $includeRid: false
405
396
  };
406
397
  const result = k === "fetchPage" ? await client(Employee).fetchPage(opts) : (await client(Employee).fetchPageWithErrors(opts)).value;
407
- expect(result.data).toHaveLength(4);
398
+ expect(result.data).toHaveLength(6);
408
399
  expectTypeOf(result.data[0]).branded.toEqualTypeOf();
409
400
  });
410
401
  });
411
402
  });
412
403
  });
404
+ describe("Derived Properties Object Set", () => {
405
+ it("does not allow aggregate or selectProperty before a link type is selected", () => {
406
+ client(Employee).withProperties({
407
+ "derivedPropertyName": base =>
408
+ // @ts-expect-error
409
+ base.aggregate("employeeId:exactDistinct")
410
+ });
411
+ client(Employee).withProperties({
412
+ "derivedPropertyName": base =>
413
+ // @ts-expect-error
414
+ base.selectProperty("employeeId")
415
+ });
416
+ });
417
+ it("does not allow selectProperty when a many link was selected at any point", () => {
418
+ client(Employee).withProperties({
419
+ "derivedPropertyName": base => {
420
+ // @ts-expect-error
421
+ base.pivotTo("peeps").selectProperty("employeeId");
422
+
423
+ // @ts-expect-error
424
+ base.pivotTo("lead").pivotTo("peeps").selectProperty("employeeId");
425
+ return base.pivotTo("lead").selectProperty("employeeId");
426
+ }
427
+ });
428
+ });
429
+ it("enforces a return only of correct type", () => {
430
+ client(Employee).withProperties({
431
+ // @ts-expect-error
432
+ "derivedPropertyName": base => {
433
+ return base.pivotTo("peeps");
434
+ },
435
+ // @ts-expect-error
436
+ "derivedPropertyName2": () => {
437
+ return {
438
+ incorrect: "type"
439
+ };
440
+ }
441
+ });
442
+ });
443
+
444
+ // Executed code fails since we're providing bad strings to the function
445
+ it.fails("correctly narrows types of aggregate function", () => {
446
+ client(Employee).withProperties({
447
+ "derivedPropertyName": base => {
448
+ // @ts-expect-error
449
+ base.pivotTo("lead").aggregate("notAProperty:sum");
450
+
451
+ // @ts-expect-error
452
+ base.pivotTo("lead").aggregate(":avg");
453
+
454
+ // @ts-expect-error
455
+ base.pivotTo("lead").aggregate("employeeId:notAnOp");
456
+
457
+ // @ts-expect-error
458
+ base.pivotTo("lead").aggregate("");
459
+ base.pivotTo("lead").aggregate("employeeId:collectList");
460
+ return base.pivotTo("lead").aggregate("employeeId:sum");
461
+ }
462
+ });
463
+ });
464
+
465
+ // Executed code fails since we're providing bad strings to the function
466
+ it("correctly narrows types of options for aggregate functions", () => {
467
+ const objectSet = client(Employee).withProperties({
468
+ "derivedPropertyName": base => {
469
+ // @ts-expect-error
470
+ base.pivotTo("lead").aggregate("employeeId:approximateDistinct", {
471
+ limit: 1
472
+ });
473
+ base.pivotTo("lead").aggregate("employeeId:collectList", {
474
+ limit: 1
475
+ });
476
+ base.pivotTo("lead").aggregate("employeeId:collectSet", {
477
+ limit: 1
478
+ });
479
+ base.pivotTo("lead").aggregate("employeeId:collectList", {
480
+ // @ts-expect-error
481
+ percentile: 1
482
+ });
483
+ return base.pivotTo("lead").aggregate("employeeId:approximatePercentile", {
484
+ percentile: 0.5
485
+ });
486
+ }
487
+ });
488
+ expectTypeOf(objectSet).branded.toEqualTypeOf();
489
+ });
490
+ it("correctly narrows types of selectProperty function", () => {
491
+ client(Employee).withProperties({
492
+ "derivedPropertyName": base => {
493
+ // @ts-expect-error
494
+ base.pivotTo("lead").selectProperty("notAProperty");
495
+ return base.pivotTo("lead").selectProperty("employeeStatus");
496
+ }
497
+ });
498
+ });
499
+ it("propagates derived property type to future object set operations with correct types", () => {
500
+ client(Employee).withProperties({
501
+ "derivedPropertyName": base => base.pivotTo("lead").aggregate("employeeId:sum")
502
+ // @ts-expect-error
503
+ }).where({
504
+ "notAProperty": {
505
+ "$eq": 3
506
+ }
507
+ });
508
+ const numericAggregationObjectSet = client(Employee).withProperties({
509
+ "derivedPropertyName": base => base.pivotTo("lead").aggregate("employeeId:sum")
510
+ }).where({
511
+ "derivedPropertyName": {
512
+ "$eq": 3
513
+ }
514
+ });
515
+ expectTypeOf(numericAggregationObjectSet).toEqualTypeOf();
516
+ client(Employee).withProperties({
517
+ "derivedPropertyName": base => base.pivotTo("lead").aggregate("employeeId:collectList")
518
+ }).where({
519
+ "derivedPropertyName": {
520
+ "$isNull": false
521
+ }
522
+ })
523
+ // @ts-expect-error
524
+ .where({
525
+ "derivedPropertyName": {
526
+ "$eq": [1, 2]
527
+ }
528
+ });
529
+ const setAggregationObjectSet = client(Employee).withProperties({
530
+ "derivedPropertyName": base => base.pivotTo("lead").aggregate("fullName:collectSet")
531
+ });
532
+ setAggregationObjectSet.where({
533
+ "derivedPropertyName": {
534
+ "$isNull": false
535
+ }
536
+ });
537
+ setAggregationObjectSet.where({
538
+ // @ts-expect-error
539
+ "derivedPropertyName": {
540
+ "$eq": [1, 2]
541
+ }
542
+ });
543
+ expectTypeOf(setAggregationObjectSet).toEqualTypeOf();
544
+ const selectPropertyObjectSet = client(Employee).withProperties({
545
+ "derivedPropertyName": base => base.pivotTo("lead").selectProperty("employeeId")
546
+ }).where({
547
+ "derivedPropertyName": {
548
+ "$eq": 3
549
+ }
550
+ });
551
+ expectTypeOf(selectPropertyObjectSet).toEqualTypeOf();
552
+ client(Employee).withProperties({
553
+ "derivedPropertyName": base => base.pivotTo("lead").selectProperty("startDate")
554
+ }).where({
555
+ "derivedPropertyName": {
556
+ "$eq": "datetimeFilter"
557
+ }
558
+ });
559
+ });
560
+ it("correctly types multiple property definitions in one clause", () => {
561
+ const objectSet = client(Employee).withProperties({
562
+ "derivedPropertyName": base => base.pivotTo("lead").aggregate("employeeId:sum"),
563
+ "derivedPropertyName2": base => base.pivotTo("lead").selectProperty("fullName")
564
+ }).where({
565
+ "derivedPropertyName": {
566
+ "$eq": 3
567
+ }
568
+ }).where({
569
+ "derivedPropertyName2": {
570
+ "$eq": "name"
571
+ }
572
+ });
573
+ expectTypeOf(objectSet).toEqualTypeOf();
574
+ });
575
+ it("ensures other properties are consistently typed", () => {
576
+ client(Employee).withProperties({
577
+ "derivedPropertyName": base => base.pivotTo("lead").selectProperty("employeeId")
578
+ }).where({
579
+ "fullName": {
580
+ "$eq": "A"
581
+ }
582
+ });
583
+ client(Employee).withProperties({
584
+ "derivedPropertyName": base => base.pivotTo("lead").selectProperty("employeeId")
585
+ }).where({
586
+ "employeeId": {
587
+ "$eq": 2
588
+ }
589
+ });
590
+ });
591
+ it("allows fetching derived properties with correctly typed Osdk.Instance types", async () => {
592
+ const objectWithRdp = await client(Employee).withProperties({
593
+ "derivedPropertyName": base => base.pivotTo("lead").selectProperty("employeeId")
594
+ }).fetchOne(stubData.employee1.employeeId);
595
+ expectTypeOf(objectWithRdp.derivedPropertyName).toEqualTypeOf();
596
+ expect(objectWithRdp.derivedPropertyName).toBe(stubData.employee2.__primaryKey);
597
+ const objectWithUndefinedRdp = await client(Employee).withProperties({
598
+ "derivedPropertyName": base => base.pivotTo("lead").selectProperty("employeeId")
599
+ }).fetchOne(stubData.employee2.employeeId, {
600
+ $select: ["derivedPropertyName"]
601
+ });
602
+ expect(objectWithUndefinedRdp.derivedPropertyName).toBeUndefined();
603
+ });
604
+ });
605
+
606
+ // Can't run these tests because we can't load by primary key!
607
+ // describe.each(["fetchOne", "fetchOneWithErrors"] as const)("%s", (k) => {
608
+ // describe("strictNonNull: false", () => {
609
+ // describe("includeRid: true", () => {
610
+ // it("returns bad data", async () => {
611
+ // // Look at this
612
+ // const opts = {
613
+ // $__EXPERIMENTAL_strictNonNull: false,
614
+ // $includeRid: true,
615
+ // } as const;
616
+ // const result = k === "fetchOne"
617
+ // ? await client(Employee).fetchOne(50033, opts)
618
+ // : (await client(Employee).fetchOneWithErrors(50033, opts)).value!;
619
+
620
+ // expect(result).not.toBeUndefined();
621
+ // expectTypeOf(result).branded.toEqualTypeOf<
622
+ // Osdk<Employee, "$all" | "$notStrict" | "$rid">
623
+ // >();
624
+ // });
625
+ // });
626
+
627
+ // describe("includeRid: false", () => {
628
+ // it("returns bad data", async () => {
629
+ // const opts = {
630
+ // $__EXPERIMENTAL_strictNonNull: false,
631
+ // $includeRid: false,
632
+ // } as const;
633
+ // const result = k === "fetchOne"
634
+ // ? await client(Employee).fetchOne(50033, opts)
635
+ // : (await client(Employee).fetchOneWithErrors(50033, opts)).value!;
636
+
637
+ // expect(result).not.toBeUndefined();
638
+ // expectTypeOf(result).branded.toEqualTypeOf<
639
+ // Osdk<Employee, "$all" | "$notStrict">
640
+ // >();
641
+ // });
642
+ // });
643
+ // });
644
+ // });
645
+
413
646
  describe("conversions", () => {
414
647
  describe("strictNonNull: false", () => {
415
648
  it("returns bad data", async () => {
@@ -428,6 +661,7 @@ describe("ObjectSet", () => {
428
661
  expectTypeOf().toEqualTypeOf();
429
662
  expectTypeOf().toEqualTypeOf();
430
663
  expectTypeOf().toEqualTypeOf();
664
+ expectTypeOf().toEqualTypeOf();
431
665
 
432
666
  // We don't have a proper definition that has
433
667
  // a non-null property on an interface so