@osdk/client 2.4.2 → 2.5.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 (521) hide show
  1. package/CHANGELOG.md +106 -93
  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/applyAction.js +4 -0
  6. package/build/browser/actions/applyAction.js.map +1 -1
  7. package/build/browser/createClient.js +6 -2
  8. package/build/browser/createClient.js.map +1 -1
  9. package/build/browser/createMinimalClient.js +2 -1
  10. package/build/browser/createMinimalClient.js.map +1 -1
  11. package/build/browser/derivedProperties/createWithPropertiesObjectSet.js +17 -0
  12. package/build/browser/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
  13. package/build/browser/fetchMetadata.test.js +11 -0
  14. package/build/browser/fetchMetadata.test.js.map +1 -1
  15. package/build/browser/index.js +3 -1
  16. package/build/browser/index.js.map +1 -1
  17. package/build/browser/intellisense.test.helpers/orderBySuggestionIsRight.js +8 -1
  18. package/build/browser/intellisense.test.helpers/orderBySuggestionIsRight.js.map +1 -1
  19. package/build/browser/intellisense.test.js +14 -4
  20. package/build/browser/intellisense.test.js.map +1 -1
  21. package/build/browser/object/Cache.js +1 -1
  22. package/build/browser/object/Cache.js.map +1 -1
  23. package/build/browser/object/Cache.test.js +1 -1
  24. package/build/browser/object/Cache.test.js.map +1 -1
  25. package/build/browser/object/SimpleCache.js +1 -1
  26. package/build/browser/object/SimpleCache.js.map +1 -1
  27. package/build/browser/object/aggregate.js +2 -0
  28. package/build/browser/object/aggregate.js.map +1 -1
  29. package/build/browser/object/aggregate.test.js +30 -0
  30. package/build/browser/object/aggregate.test.js.map +1 -1
  31. package/build/browser/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.js +1 -0
  32. package/build/browser/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.js.map +1 -1
  33. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js +6 -0
  34. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  35. package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js +20 -1
  36. package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  37. package/build/browser/object/convertWireToOsdkObjects.js +4 -0
  38. package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
  39. package/build/browser/object/convertWireToOsdkObjects.test.js +14 -0
  40. package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
  41. package/build/browser/object/fetchPage.js +96 -21
  42. package/build/browser/object/fetchPage.js.map +1 -1
  43. package/build/browser/object/fetchPage.test.js +35 -1
  44. package/build/browser/object/fetchPage.test.js.map +1 -1
  45. package/build/browser/object/geotimeseriesreference.test.js +0 -2
  46. package/build/browser/object/geotimeseriesreference.test.js.map +1 -1
  47. package/build/browser/object/mediaUpload.js +3 -0
  48. package/build/browser/object/mediaUpload.js.map +1 -1
  49. package/build/browser/objectSet/ObjectSet.test.js +6 -0
  50. package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
  51. package/build/browser/objectSet/ObjectSetListenerWebsocket.js +31 -9
  52. package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  53. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +69 -4
  54. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  55. package/build/browser/objectSet/createObjectSet.js +3 -1
  56. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  57. package/build/browser/observable/LinkPayload.js +2 -0
  58. package/build/browser/observable/LinkPayload.js.map +1 -0
  59. package/build/browser/observable/ObjectPayload.js.map +1 -1
  60. package/build/browser/observable/ObservableClient/ObserveLink.js +17 -0
  61. package/build/browser/observable/ObservableClient/ObserveLink.js.map +1 -0
  62. package/build/browser/observable/ObservableClient/common.js +2 -0
  63. package/build/browser/observable/ObservableClient/common.js.map +1 -0
  64. package/build/browser/observable/ObservableClient.js +20 -0
  65. package/build/browser/observable/ObservableClient.js.map +1 -1
  66. package/build/browser/observable/Unsubscribable.js +2 -0
  67. package/build/browser/observable/Unsubscribable.js.map +1 -0
  68. package/build/browser/observable/internal/AbstractHelper.js +54 -0
  69. package/build/browser/observable/internal/AbstractHelper.js.map +1 -0
  70. package/build/browser/observable/internal/BatchContext.js +2 -0
  71. package/build/browser/observable/internal/BatchContext.js.map +1 -0
  72. package/build/browser/observable/internal/BulkObjectLoader.js +3 -3
  73. package/build/browser/observable/internal/BulkObjectLoader.js.map +1 -1
  74. package/build/browser/observable/internal/CacheKeys.js +65 -25
  75. package/build/browser/observable/internal/CacheKeys.js.map +1 -1
  76. package/build/browser/observable/internal/Changes.js +6 -0
  77. package/build/browser/observable/internal/Changes.js.map +1 -1
  78. package/build/browser/observable/internal/KnownCacheKey.js +2 -0
  79. package/build/browser/observable/internal/KnownCacheKey.js.map +1 -0
  80. package/build/browser/observable/internal/Layer.js +0 -8
  81. package/build/browser/observable/internal/Layer.js.map +1 -1
  82. package/build/browser/observable/internal/Layers.js +151 -0
  83. package/build/browser/observable/internal/Layers.js.map +1 -0
  84. package/build/browser/observable/internal/ObservableClientImpl.js +54 -3
  85. package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
  86. package/build/browser/observable/internal/OrderByCanonicalizer.js +1 -37
  87. package/build/browser/observable/internal/OrderByCanonicalizer.js.map +1 -1
  88. package/build/browser/observable/internal/Queries.js +40 -0
  89. package/build/browser/observable/internal/Queries.js.map +1 -0
  90. package/build/browser/observable/internal/Query.js +45 -4
  91. package/build/browser/observable/internal/Query.js.map +1 -1
  92. package/build/browser/observable/internal/QuerySubscription.js +48 -0
  93. package/build/browser/observable/internal/QuerySubscription.js.map +1 -0
  94. package/build/browser/observable/internal/Store.invalidation.test.js +646 -0
  95. package/build/browser/observable/internal/Store.invalidation.test.js.map +1 -0
  96. package/build/browser/observable/internal/Store.js +87 -308
  97. package/build/browser/observable/internal/Store.js.map +1 -1
  98. package/build/browser/observable/internal/Store.test.js +330 -73
  99. package/build/browser/observable/internal/Store.test.js.map +1 -1
  100. package/build/browser/observable/internal/SubjectPayload.js +2 -0
  101. package/build/browser/observable/internal/SubjectPayload.js.map +1 -0
  102. package/build/browser/observable/internal/Subjects.js +55 -0
  103. package/build/browser/observable/internal/Subjects.js.map +1 -0
  104. package/build/browser/observable/internal/UnsubscribableWrapper.js +30 -0
  105. package/build/browser/observable/internal/UnsubscribableWrapper.js.map +1 -0
  106. package/build/browser/observable/internal/WeakRefTrie.js +61 -0
  107. package/build/browser/observable/internal/WeakRefTrie.js.map +1 -0
  108. package/build/browser/observable/internal/{ActionApplication.js → actions/ActionApplication.js} +2 -2
  109. package/build/browser/observable/internal/actions/ActionApplication.js.map +1 -0
  110. package/build/{esm/observable/internal → browser/observable/internal/actions}/OptimisticJob.js +15 -6
  111. package/build/browser/observable/internal/actions/OptimisticJob.js.map +1 -0
  112. package/build/browser/observable/internal/base-list/BaseCollectionQuery.js +2 -0
  113. package/build/browser/observable/internal/base-list/BaseCollectionQuery.js.map +1 -0
  114. package/build/browser/observable/internal/base-list/BaseListQuery.js +411 -0
  115. package/build/browser/observable/internal/base-list/BaseListQuery.js.map +1 -0
  116. package/build/browser/observable/internal/base-list/createCollectionConnectable.js +50 -0
  117. package/build/browser/observable/internal/base-list/createCollectionConnectable.js.map +1 -0
  118. package/build/browser/observable/internal/base-list/createCollectionConnectable.test.js +597 -0
  119. package/build/browser/observable/internal/base-list/createCollectionConnectable.test.js.map +1 -0
  120. package/build/browser/observable/internal/base-list/removeDuplicates.js +36 -0
  121. package/build/browser/observable/internal/base-list/removeDuplicates.js.map +1 -0
  122. package/build/browser/observable/internal/createInitEntry.js +25 -0
  123. package/build/browser/observable/internal/createInitEntry.js.map +1 -0
  124. package/build/browser/observable/internal/getObjectTypesThatInvalidate.js +216 -0
  125. package/build/browser/observable/internal/getObjectTypesThatInvalidate.js.map +1 -0
  126. package/build/browser/observable/internal/getObjectTypesThatInvalidate.test.js +382 -0
  127. package/build/browser/observable/internal/getObjectTypesThatInvalidate.test.js.map +1 -0
  128. package/build/browser/observable/internal/isObjectInstance.js +23 -0
  129. package/build/browser/observable/internal/isObjectInstance.js.map +1 -0
  130. package/build/browser/observable/internal/links/LinksHelper.js +37 -0
  131. package/build/browser/observable/internal/links/LinksHelper.js.map +1 -0
  132. package/build/browser/observable/internal/links/SpecificLinkCacheKey.js +2 -0
  133. package/build/browser/observable/internal/links/SpecificLinkCacheKey.js.map +1 -0
  134. package/build/browser/observable/internal/links/SpecificLinkQuery.js +185 -0
  135. package/build/browser/observable/internal/links/SpecificLinkQuery.js.map +1 -0
  136. package/build/browser/observable/internal/list/InterfaceListQuery.js +83 -0
  137. package/build/browser/observable/internal/list/InterfaceListQuery.js.map +1 -0
  138. package/build/browser/observable/internal/list/ListCacheKey.js +2 -0
  139. package/build/browser/observable/internal/list/ListCacheKey.js.map +1 -0
  140. package/build/browser/observable/internal/list/ListQuery.js +372 -0
  141. package/build/browser/observable/internal/list/ListQuery.js.map +1 -0
  142. package/build/browser/observable/internal/list/ListQueryOptions.js +2 -0
  143. package/build/browser/observable/internal/list/ListQueryOptions.js.map +1 -0
  144. package/build/browser/observable/internal/list/ListsHelper.js +51 -0
  145. package/build/browser/observable/internal/list/ListsHelper.js.map +1 -0
  146. package/build/browser/observable/internal/list/ObjectListQuery.js +48 -0
  147. package/build/browser/observable/internal/list/ObjectListQuery.js.map +1 -0
  148. package/build/browser/observable/internal/object/ObjectCacheKey.js +2 -0
  149. package/build/browser/observable/internal/object/ObjectCacheKey.js.map +1 -0
  150. package/build/browser/observable/internal/{ObjectQuery.js → object/ObjectQuery.js} +27 -18
  151. package/build/browser/observable/internal/object/ObjectQuery.js.map +1 -0
  152. package/build/browser/observable/internal/object/ObjectsHelper.js +48 -0
  153. package/build/browser/observable/internal/object/ObjectsHelper.js.map +1 -0
  154. package/build/browser/observable/internal/sorting/SortingStrategy.js +78 -0
  155. package/build/browser/observable/internal/sorting/SortingStrategy.js.map +1 -0
  156. package/build/browser/observable/internal/testUtils/invalidateList.js +23 -0
  157. package/build/browser/observable/internal/testUtils/invalidateList.js.map +1 -0
  158. package/build/browser/observable/internal/testUtils/observeLink/expectStandardObserveLink.js +69 -0
  159. package/build/browser/observable/internal/testUtils/observeLink/expectStandardObserveLink.js.map +1 -0
  160. package/build/browser/observable/internal/testUtils/observeObject/expectStandardObserveObject.js +56 -0
  161. package/build/browser/observable/internal/testUtils/observeObject/expectStandardObserveObject.js.map +1 -0
  162. package/build/browser/observable/internal/testUtils.js +72 -10
  163. package/build/browser/observable/internal/testUtils.js.map +1 -1
  164. package/build/browser/ontology/loadActionMetadata.js +3 -1
  165. package/build/browser/ontology/loadActionMetadata.js.map +1 -1
  166. package/build/browser/ontology/loadFullObjectMetadata.js +2 -1
  167. package/build/browser/ontology/loadFullObjectMetadata.js.map +1 -1
  168. package/build/browser/ontology/loadInterfaceMetadata.js +2 -1
  169. package/build/browser/ontology/loadInterfaceMetadata.js.map +1 -1
  170. package/build/browser/public/unstable-do-not-use.js.map +1 -1
  171. package/build/browser/util/UserAgent.js +2 -2
  172. package/build/browser/util/UserAgent.js.map +1 -1
  173. package/build/browser/util/exponentialBackoff.js +51 -0
  174. package/build/browser/util/exponentialBackoff.js.map +1 -0
  175. package/build/browser/util/exponentialBackoff.test.js +81 -0
  176. package/build/browser/util/exponentialBackoff.test.js.map +1 -0
  177. package/build/browser/util/extractObjectOrInterfaceType.js +9 -1
  178. package/build/browser/util/extractObjectOrInterfaceType.js.map +1 -1
  179. package/build/browser/util/extractObjectOrInterfaceType.test.js +2 -2
  180. package/build/browser/util/extractObjectOrInterfaceType.test.js.map +1 -1
  181. package/build/browser/util/streamutils.js +1 -1
  182. package/build/browser/util/streamutils.js.map +1 -1
  183. package/build/browser/util/toDataValue.js +15 -1
  184. package/build/browser/util/toDataValue.js.map +1 -1
  185. package/build/browser/util/toDataValue.test.js +42 -2
  186. package/build/browser/util/toDataValue.test.js.map +1 -1
  187. package/build/cjs/{chunk-633AI7EA.cjs → chunk-GVGP7T5P.cjs} +407 -257
  188. package/build/cjs/chunk-GVGP7T5P.cjs.map +1 -0
  189. package/build/cjs/{chunk-26WFEZQO.cjs → chunk-YADG7KA6.cjs} +136 -84
  190. package/build/cjs/chunk-YADG7KA6.cjs.map +1 -0
  191. package/build/cjs/{createClient-BJo8T7Js.d.cts → createClient-mOlFts15.d.cts} +1 -0
  192. package/build/cjs/index.cjs +11 -7
  193. package/build/cjs/index.d.cts +2 -2
  194. package/build/cjs/public/internal.cjs +8 -8
  195. package/build/cjs/public/unstable-do-not-use.cjs +1502 -851
  196. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  197. package/build/cjs/public/unstable-do-not-use.d.cts +183 -13
  198. package/build/esm/Client.js +1 -1
  199. package/build/esm/Client.js.map +1 -1
  200. package/build/esm/MinimalClientContext.js.map +1 -1
  201. package/build/esm/actions/applyAction.js +4 -0
  202. package/build/esm/actions/applyAction.js.map +1 -1
  203. package/build/esm/createClient.js +6 -2
  204. package/build/esm/createClient.js.map +1 -1
  205. package/build/esm/createMinimalClient.js +2 -1
  206. package/build/esm/createMinimalClient.js.map +1 -1
  207. package/build/esm/derivedProperties/createWithPropertiesObjectSet.js +17 -0
  208. package/build/esm/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
  209. package/build/esm/fetchMetadata.test.js +11 -0
  210. package/build/esm/fetchMetadata.test.js.map +1 -1
  211. package/build/esm/index.js +3 -1
  212. package/build/esm/index.js.map +1 -1
  213. package/build/esm/intellisense.test.helpers/orderBySuggestionIsRight.js +8 -1
  214. package/build/esm/intellisense.test.helpers/orderBySuggestionIsRight.js.map +1 -1
  215. package/build/esm/intellisense.test.js +14 -4
  216. package/build/esm/intellisense.test.js.map +1 -1
  217. package/build/esm/object/Cache.js +1 -1
  218. package/build/esm/object/Cache.js.map +1 -1
  219. package/build/esm/object/Cache.test.js +1 -1
  220. package/build/esm/object/Cache.test.js.map +1 -1
  221. package/build/esm/object/SimpleCache.js +1 -1
  222. package/build/esm/object/SimpleCache.js.map +1 -1
  223. package/build/esm/object/aggregate.js +2 -0
  224. package/build/esm/object/aggregate.js.map +1 -1
  225. package/build/esm/object/aggregate.test.js +30 -0
  226. package/build/esm/object/aggregate.test.js.map +1 -1
  227. package/build/esm/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.js +1 -0
  228. package/build/esm/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.js.map +1 -1
  229. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js +6 -0
  230. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  231. package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js +20 -1
  232. package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  233. package/build/esm/object/convertWireToOsdkObjects.js +4 -0
  234. package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
  235. package/build/esm/object/convertWireToOsdkObjects.test.js +14 -0
  236. package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
  237. package/build/esm/object/fetchPage.js +96 -21
  238. package/build/esm/object/fetchPage.js.map +1 -1
  239. package/build/esm/object/fetchPage.test.js +35 -1
  240. package/build/esm/object/fetchPage.test.js.map +1 -1
  241. package/build/esm/object/geotimeseriesreference.test.js +0 -2
  242. package/build/esm/object/geotimeseriesreference.test.js.map +1 -1
  243. package/build/esm/object/mediaUpload.js +3 -0
  244. package/build/esm/object/mediaUpload.js.map +1 -1
  245. package/build/esm/objectSet/ObjectSet.test.js +6 -0
  246. package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
  247. package/build/esm/objectSet/ObjectSetListenerWebsocket.js +31 -9
  248. package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  249. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +69 -4
  250. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  251. package/build/esm/objectSet/createObjectSet.js +3 -1
  252. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  253. package/build/esm/observable/LinkPayload.js +2 -0
  254. package/build/esm/observable/LinkPayload.js.map +1 -0
  255. package/build/esm/observable/ObjectPayload.js.map +1 -1
  256. package/build/esm/observable/ObservableClient/ObserveLink.js +17 -0
  257. package/build/esm/observable/ObservableClient/ObserveLink.js.map +1 -0
  258. package/build/esm/observable/ObservableClient/common.js +2 -0
  259. package/build/esm/observable/ObservableClient/common.js.map +1 -0
  260. package/build/esm/observable/ObservableClient.js +20 -0
  261. package/build/esm/observable/ObservableClient.js.map +1 -1
  262. package/build/esm/observable/Unsubscribable.js +2 -0
  263. package/build/esm/observable/Unsubscribable.js.map +1 -0
  264. package/build/esm/observable/internal/AbstractHelper.js +54 -0
  265. package/build/esm/observable/internal/AbstractHelper.js.map +1 -0
  266. package/build/esm/observable/internal/BatchContext.js +2 -0
  267. package/build/esm/observable/internal/BatchContext.js.map +1 -0
  268. package/build/esm/observable/internal/BulkObjectLoader.js +3 -3
  269. package/build/esm/observable/internal/BulkObjectLoader.js.map +1 -1
  270. package/build/esm/observable/internal/CacheKeys.js +65 -25
  271. package/build/esm/observable/internal/CacheKeys.js.map +1 -1
  272. package/build/esm/observable/internal/Changes.js +6 -0
  273. package/build/esm/observable/internal/Changes.js.map +1 -1
  274. package/build/esm/observable/internal/KnownCacheKey.js +2 -0
  275. package/build/esm/observable/internal/KnownCacheKey.js.map +1 -0
  276. package/build/esm/observable/internal/Layer.js +0 -8
  277. package/build/esm/observable/internal/Layer.js.map +1 -1
  278. package/build/esm/observable/internal/Layers.js +151 -0
  279. package/build/esm/observable/internal/Layers.js.map +1 -0
  280. package/build/esm/observable/internal/ObservableClientImpl.js +54 -3
  281. package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
  282. package/build/esm/observable/internal/OrderByCanonicalizer.js +1 -37
  283. package/build/esm/observable/internal/OrderByCanonicalizer.js.map +1 -1
  284. package/build/esm/observable/internal/Queries.js +40 -0
  285. package/build/esm/observable/internal/Queries.js.map +1 -0
  286. package/build/esm/observable/internal/Query.js +45 -4
  287. package/build/esm/observable/internal/Query.js.map +1 -1
  288. package/build/esm/observable/internal/QuerySubscription.js +48 -0
  289. package/build/esm/observable/internal/QuerySubscription.js.map +1 -0
  290. package/build/esm/observable/internal/Store.invalidation.test.js +646 -0
  291. package/build/esm/observable/internal/Store.invalidation.test.js.map +1 -0
  292. package/build/esm/observable/internal/Store.js +87 -308
  293. package/build/esm/observable/internal/Store.js.map +1 -1
  294. package/build/esm/observable/internal/Store.test.js +330 -73
  295. package/build/esm/observable/internal/Store.test.js.map +1 -1
  296. package/build/esm/observable/internal/SubjectPayload.js +2 -0
  297. package/build/esm/observable/internal/SubjectPayload.js.map +1 -0
  298. package/build/esm/observable/internal/Subjects.js +55 -0
  299. package/build/esm/observable/internal/Subjects.js.map +1 -0
  300. package/build/esm/observable/internal/UnsubscribableWrapper.js +30 -0
  301. package/build/esm/observable/internal/UnsubscribableWrapper.js.map +1 -0
  302. package/build/esm/observable/internal/WeakRefTrie.js +61 -0
  303. package/build/esm/observable/internal/WeakRefTrie.js.map +1 -0
  304. package/build/esm/observable/internal/{ActionApplication.js → actions/ActionApplication.js} +2 -2
  305. package/build/esm/observable/internal/actions/ActionApplication.js.map +1 -0
  306. package/build/{browser/observable/internal → esm/observable/internal/actions}/OptimisticJob.js +15 -6
  307. package/build/esm/observable/internal/actions/OptimisticJob.js.map +1 -0
  308. package/build/esm/observable/internal/base-list/BaseCollectionQuery.js +2 -0
  309. package/build/esm/observable/internal/base-list/BaseCollectionQuery.js.map +1 -0
  310. package/build/esm/observable/internal/base-list/BaseListQuery.js +411 -0
  311. package/build/esm/observable/internal/base-list/BaseListQuery.js.map +1 -0
  312. package/build/esm/observable/internal/base-list/createCollectionConnectable.js +50 -0
  313. package/build/esm/observable/internal/base-list/createCollectionConnectable.js.map +1 -0
  314. package/build/esm/observable/internal/base-list/createCollectionConnectable.test.js +597 -0
  315. package/build/esm/observable/internal/base-list/createCollectionConnectable.test.js.map +1 -0
  316. package/build/esm/observable/internal/base-list/removeDuplicates.js +36 -0
  317. package/build/esm/observable/internal/base-list/removeDuplicates.js.map +1 -0
  318. package/build/esm/observable/internal/createInitEntry.js +25 -0
  319. package/build/esm/observable/internal/createInitEntry.js.map +1 -0
  320. package/build/esm/observable/internal/getObjectTypesThatInvalidate.js +216 -0
  321. package/build/esm/observable/internal/getObjectTypesThatInvalidate.js.map +1 -0
  322. package/build/esm/observable/internal/getObjectTypesThatInvalidate.test.js +382 -0
  323. package/build/esm/observable/internal/getObjectTypesThatInvalidate.test.js.map +1 -0
  324. package/build/esm/observable/internal/isObjectInstance.js +23 -0
  325. package/build/esm/observable/internal/isObjectInstance.js.map +1 -0
  326. package/build/esm/observable/internal/links/LinksHelper.js +37 -0
  327. package/build/esm/observable/internal/links/LinksHelper.js.map +1 -0
  328. package/build/esm/observable/internal/links/SpecificLinkCacheKey.js +2 -0
  329. package/build/esm/observable/internal/links/SpecificLinkCacheKey.js.map +1 -0
  330. package/build/esm/observable/internal/links/SpecificLinkQuery.js +185 -0
  331. package/build/esm/observable/internal/links/SpecificLinkQuery.js.map +1 -0
  332. package/build/esm/observable/internal/list/InterfaceListQuery.js +83 -0
  333. package/build/esm/observable/internal/list/InterfaceListQuery.js.map +1 -0
  334. package/build/esm/observable/internal/list/ListCacheKey.js +2 -0
  335. package/build/esm/observable/internal/list/ListCacheKey.js.map +1 -0
  336. package/build/esm/observable/internal/list/ListQuery.js +372 -0
  337. package/build/esm/observable/internal/list/ListQuery.js.map +1 -0
  338. package/build/esm/observable/internal/list/ListQueryOptions.js +2 -0
  339. package/build/esm/observable/internal/list/ListQueryOptions.js.map +1 -0
  340. package/build/esm/observable/internal/list/ListsHelper.js +51 -0
  341. package/build/esm/observable/internal/list/ListsHelper.js.map +1 -0
  342. package/build/esm/observable/internal/list/ObjectListQuery.js +48 -0
  343. package/build/esm/observable/internal/list/ObjectListQuery.js.map +1 -0
  344. package/build/esm/observable/internal/object/ObjectCacheKey.js +2 -0
  345. package/build/esm/observable/internal/object/ObjectCacheKey.js.map +1 -0
  346. package/build/esm/observable/internal/{ObjectQuery.js → object/ObjectQuery.js} +27 -18
  347. package/build/esm/observable/internal/object/ObjectQuery.js.map +1 -0
  348. package/build/esm/observable/internal/object/ObjectsHelper.js +48 -0
  349. package/build/esm/observable/internal/object/ObjectsHelper.js.map +1 -0
  350. package/build/esm/observable/internal/sorting/SortingStrategy.js +78 -0
  351. package/build/esm/observable/internal/sorting/SortingStrategy.js.map +1 -0
  352. package/build/esm/observable/internal/testUtils/invalidateList.js +23 -0
  353. package/build/esm/observable/internal/testUtils/invalidateList.js.map +1 -0
  354. package/build/esm/observable/internal/testUtils/observeLink/expectStandardObserveLink.js +69 -0
  355. package/build/esm/observable/internal/testUtils/observeLink/expectStandardObserveLink.js.map +1 -0
  356. package/build/esm/observable/internal/testUtils/observeObject/expectStandardObserveObject.js +56 -0
  357. package/build/esm/observable/internal/testUtils/observeObject/expectStandardObserveObject.js.map +1 -0
  358. package/build/esm/observable/internal/testUtils.js +72 -10
  359. package/build/esm/observable/internal/testUtils.js.map +1 -1
  360. package/build/esm/ontology/loadActionMetadata.js +3 -1
  361. package/build/esm/ontology/loadActionMetadata.js.map +1 -1
  362. package/build/esm/ontology/loadFullObjectMetadata.js +2 -1
  363. package/build/esm/ontology/loadFullObjectMetadata.js.map +1 -1
  364. package/build/esm/ontology/loadInterfaceMetadata.js +2 -1
  365. package/build/esm/ontology/loadInterfaceMetadata.js.map +1 -1
  366. package/build/esm/public/unstable-do-not-use.js.map +1 -1
  367. package/build/esm/util/UserAgent.js +2 -2
  368. package/build/esm/util/UserAgent.js.map +1 -1
  369. package/build/esm/util/exponentialBackoff.js +51 -0
  370. package/build/esm/util/exponentialBackoff.js.map +1 -0
  371. package/build/esm/util/exponentialBackoff.test.js +81 -0
  372. package/build/esm/util/exponentialBackoff.test.js.map +1 -0
  373. package/build/esm/util/extractObjectOrInterfaceType.js +9 -1
  374. package/build/esm/util/extractObjectOrInterfaceType.js.map +1 -1
  375. package/build/esm/util/extractObjectOrInterfaceType.test.js +2 -2
  376. package/build/esm/util/extractObjectOrInterfaceType.test.js.map +1 -1
  377. package/build/esm/util/streamutils.js +1 -1
  378. package/build/esm/util/streamutils.js.map +1 -1
  379. package/build/esm/util/toDataValue.js +15 -1
  380. package/build/esm/util/toDataValue.js.map +1 -1
  381. package/build/esm/util/toDataValue.test.js +42 -2
  382. package/build/esm/util/toDataValue.test.js.map +1 -1
  383. package/build/types/Client.d.ts +1 -1
  384. package/build/types/MinimalClientContext.d.ts +1 -0
  385. package/build/types/MinimalClientContext.d.ts.map +1 -1
  386. package/build/types/actions/applyAction.d.ts.map +1 -1
  387. package/build/types/createClient.d.ts +1 -0
  388. package/build/types/createClient.d.ts.map +1 -1
  389. package/build/types/index.d.ts +1 -1
  390. package/build/types/index.d.ts.map +1 -1
  391. package/build/types/object/fetchPage.d.ts.map +1 -1
  392. package/build/types/object/mediaUpload.d.ts +2 -1
  393. package/build/types/object/mediaUpload.d.ts.map +1 -1
  394. package/build/types/observable/LinkPayload.d.ts +9 -0
  395. package/build/types/observable/LinkPayload.d.ts.map +1 -0
  396. package/build/types/observable/ObjectPayload.d.ts +4 -0
  397. package/build/types/observable/ObjectPayload.d.ts.map +1 -1
  398. package/build/types/observable/ObservableClient/ObserveLink.d.ts +32 -0
  399. package/build/types/observable/ObservableClient/ObserveLink.d.ts.map +1 -0
  400. package/build/types/observable/ObservableClient/common.d.ts +67 -0
  401. package/build/types/observable/ObservableClient/common.d.ts.map +1 -0
  402. package/build/types/observable/ObservableClient.d.ts +103 -15
  403. package/build/types/observable/ObservableClient.d.ts.map +1 -1
  404. package/build/types/observable/Unsubscribable.d.ts +3 -0
  405. package/build/types/observable/Unsubscribable.d.ts.map +1 -0
  406. package/build/types/observable/internal/AbstractHelper.d.ts +17 -0
  407. package/build/types/observable/internal/AbstractHelper.d.ts.map +1 -0
  408. package/build/types/observable/internal/BatchContext.d.ts +11 -0
  409. package/build/types/observable/internal/BatchContext.d.ts.map +1 -0
  410. package/build/types/observable/internal/BulkObjectLoader.d.ts.map +1 -1
  411. package/build/types/observable/internal/CacheKeys.d.ts +12 -6
  412. package/build/types/observable/internal/CacheKeys.d.ts.map +1 -1
  413. package/build/types/observable/internal/Changes.d.ts +8 -5
  414. package/build/types/observable/internal/Changes.d.ts.map +1 -1
  415. package/build/types/observable/internal/KnownCacheKey.d.ts +4 -0
  416. package/build/types/observable/internal/KnownCacheKey.d.ts.map +1 -0
  417. package/build/types/observable/internal/Layer.d.ts +6 -7
  418. package/build/types/observable/internal/Layer.d.ts.map +1 -1
  419. package/build/types/observable/internal/Layers.d.ts +26 -0
  420. package/build/types/observable/internal/Layers.d.ts.map +1 -0
  421. package/build/types/observable/internal/OrderByCanonicalizer.d.ts +0 -7
  422. package/build/types/observable/internal/OrderByCanonicalizer.d.ts.map +1 -1
  423. package/build/types/observable/internal/Queries.d.ts +9 -0
  424. package/build/types/observable/internal/Queries.d.ts.map +1 -0
  425. package/build/types/observable/internal/Query.d.ts +23 -6
  426. package/build/types/observable/internal/Query.d.ts.map +1 -1
  427. package/build/types/observable/internal/QuerySubscription.d.ts +1 -0
  428. package/build/types/observable/internal/QuerySubscription.d.ts.map +1 -0
  429. package/build/types/observable/internal/Store.d.ts +41 -51
  430. package/build/types/observable/internal/Store.d.ts.map +1 -1
  431. package/build/types/observable/internal/Store.invalidation.test.d.ts +1 -0
  432. package/build/types/observable/internal/Store.invalidation.test.d.ts.map +1 -0
  433. package/build/types/observable/internal/Store.test.d.ts +4 -1
  434. package/build/types/observable/internal/Store.test.d.ts.map +1 -1
  435. package/build/types/observable/internal/SubjectPayload.d.ts +5 -0
  436. package/build/types/observable/internal/SubjectPayload.d.ts.map +1 -0
  437. package/build/types/observable/internal/Subjects.d.ts +16 -0
  438. package/build/types/observable/internal/Subjects.d.ts.map +1 -0
  439. package/build/types/observable/internal/UnsubscribableWrapper.d.ts +1 -0
  440. package/build/types/observable/internal/UnsubscribableWrapper.d.ts.map +1 -0
  441. package/build/types/observable/internal/WeakRefTrie.d.ts +13 -0
  442. package/build/types/observable/internal/WeakRefTrie.d.ts.map +1 -0
  443. package/build/types/observable/internal/{ActionApplication.d.ts → actions/ActionApplication.d.ts} +2 -2
  444. package/build/types/observable/internal/{ActionApplication.d.ts.map → actions/ActionApplication.d.ts.map} +1 -1
  445. package/build/types/observable/internal/{OptimisticJob.d.ts → actions/OptimisticJob.d.ts} +4 -4
  446. package/build/types/observable/internal/actions/OptimisticJob.d.ts.map +1 -0
  447. package/build/types/observable/internal/base-list/BaseCollectionQuery.d.ts +64 -0
  448. package/build/types/observable/internal/base-list/BaseCollectionQuery.d.ts.map +1 -0
  449. package/build/types/observable/internal/base-list/BaseListQuery.d.ts +145 -0
  450. package/build/types/observable/internal/base-list/BaseListQuery.d.ts.map +1 -0
  451. package/build/types/observable/internal/base-list/createCollectionConnectable.d.ts +39 -0
  452. package/build/types/observable/internal/base-list/createCollectionConnectable.d.ts.map +1 -0
  453. package/build/types/observable/internal/base-list/createCollectionConnectable.test.d.ts +1 -0
  454. package/build/types/observable/internal/base-list/createCollectionConnectable.test.d.ts.map +1 -0
  455. package/build/types/observable/internal/base-list/removeDuplicates.d.ts +11 -0
  456. package/build/types/observable/internal/base-list/removeDuplicates.d.ts.map +1 -0
  457. package/build/types/observable/internal/createInitEntry.d.ts +3 -0
  458. package/build/types/observable/internal/createInitEntry.d.ts.map +1 -0
  459. package/build/types/observable/internal/getObjectTypesThatInvalidate.d.ts +9 -0
  460. package/build/types/observable/internal/getObjectTypesThatInvalidate.d.ts.map +1 -0
  461. package/build/types/observable/internal/getObjectTypesThatInvalidate.test.d.ts +1 -0
  462. package/build/types/observable/internal/getObjectTypesThatInvalidate.test.d.ts.map +1 -0
  463. package/build/types/observable/internal/isObjectInstance.d.ts +5 -0
  464. package/build/types/observable/internal/isObjectInstance.d.ts.map +1 -0
  465. package/build/types/observable/internal/links/LinksHelper.d.ts +31 -0
  466. package/build/types/observable/internal/links/LinksHelper.d.ts.map +1 -0
  467. package/build/types/observable/internal/links/SpecificLinkCacheKey.d.ts +17 -0
  468. package/build/types/observable/internal/links/SpecificLinkCacheKey.d.ts.map +1 -0
  469. package/build/types/observable/internal/links/SpecificLinkQuery.d.ts +47 -0
  470. package/build/types/observable/internal/links/SpecificLinkQuery.d.ts.map +1 -0
  471. package/build/types/observable/internal/list/InterfaceListQuery.d.ts +18 -0
  472. package/build/types/observable/internal/list/InterfaceListQuery.d.ts.map +1 -0
  473. package/build/types/observable/internal/list/ListCacheKey.d.ts +7 -0
  474. package/build/types/observable/internal/list/ListCacheKey.d.ts.map +1 -0
  475. package/build/types/observable/internal/list/ListQuery.d.ts +106 -0
  476. package/build/types/observable/internal/list/ListQuery.d.ts.map +1 -0
  477. package/build/types/observable/internal/list/ListQueryOptions.d.ts +4 -0
  478. package/build/types/observable/internal/list/ListQueryOptions.d.ts.map +1 -0
  479. package/build/types/observable/internal/list/ListsHelper.d.ts +19 -0
  480. package/build/types/observable/internal/list/ListsHelper.d.ts.map +1 -0
  481. package/build/types/observable/internal/list/ObjectListQuery.d.ts +18 -0
  482. package/build/types/observable/internal/list/ObjectListQuery.d.ts.map +1 -0
  483. package/build/types/observable/internal/object/ObjectCacheKey.d.ts +5 -0
  484. package/build/types/observable/internal/object/ObjectCacheKey.d.ts.map +1 -0
  485. package/build/types/observable/internal/{ObjectQuery.d.ts → object/ObjectQuery.d.ts} +11 -9
  486. package/build/types/observable/internal/object/ObjectQuery.d.ts.map +1 -0
  487. package/build/types/observable/internal/object/ObjectsHelper.d.ts +11 -0
  488. package/build/types/observable/internal/object/ObjectsHelper.d.ts.map +1 -0
  489. package/build/types/observable/internal/sorting/SortingStrategy.d.ts +41 -0
  490. package/build/types/observable/internal/sorting/SortingStrategy.d.ts.map +1 -0
  491. package/build/types/observable/internal/testUtils/invalidateList.d.ts +9 -0
  492. package/build/types/observable/internal/testUtils/invalidateList.d.ts.map +1 -0
  493. package/build/types/observable/internal/testUtils/observeLink/expectStandardObserveLink.d.ts +46 -0
  494. package/build/types/observable/internal/testUtils/observeLink/expectStandardObserveLink.d.ts.map +1 -0
  495. package/build/types/observable/internal/testUtils/observeObject/expectStandardObserveObject.d.ts +26 -0
  496. package/build/types/observable/internal/testUtils/observeObject/expectStandardObserveObject.d.ts.map +1 -0
  497. package/build/types/observable/internal/testUtils.d.ts +26 -4
  498. package/build/types/observable/internal/testUtils.d.ts.map +1 -1
  499. package/build/types/public/unstable-do-not-use.d.ts +4 -2
  500. package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
  501. package/build/types/util/exponentialBackoff.d.ts +14 -0
  502. package/build/types/util/exponentialBackoff.d.ts.map +1 -0
  503. package/build/types/util/exponentialBackoff.test.d.ts +1 -0
  504. package/build/types/util/exponentialBackoff.test.d.ts.map +1 -0
  505. package/package.json +27 -27
  506. package/build/browser/observable/internal/ActionApplication.js.map +0 -1
  507. package/build/browser/observable/internal/ListQuery.js +0 -618
  508. package/build/browser/observable/internal/ListQuery.js.map +0 -1
  509. package/build/browser/observable/internal/ObjectQuery.js.map +0 -1
  510. package/build/browser/observable/internal/OptimisticJob.js.map +0 -1
  511. package/build/cjs/chunk-26WFEZQO.cjs.map +0 -1
  512. package/build/cjs/chunk-633AI7EA.cjs.map +0 -1
  513. package/build/esm/observable/internal/ActionApplication.js.map +0 -1
  514. package/build/esm/observable/internal/ListQuery.js +0 -618
  515. package/build/esm/observable/internal/ListQuery.js.map +0 -1
  516. package/build/esm/observable/internal/ObjectQuery.js.map +0 -1
  517. package/build/esm/observable/internal/OptimisticJob.js.map +0 -1
  518. package/build/types/observable/internal/ListQuery.d.ts +0 -88
  519. package/build/types/observable/internal/ListQuery.d.ts.map +0 -1
  520. package/build/types/observable/internal/ObjectQuery.d.ts.map +0 -1
  521. package/build/types/observable/internal/OptimisticJob.d.ts.map +0 -1
@@ -47,6 +47,8 @@ describe("convertWireToOsdkObjects", () => {
47
47
  expect(Object.keys(employee).sort()).toEqual(["employeeId", "$title", "fullName", "office", "class", "startDate", "employeeSensor", "employeeStatus", "$apiName", "$objectType", "$primaryKey", "$objectSpecifier", "employeeLocation"].sort());
48
48
  expect(Object.keys(employee.$as)).toEqual([]);
49
49
  expect(Object.keys(employee.$link)).toEqual(["lead", "officeLink", "peeps"]);
50
+ const asFoo = employee.$as(FooInterface);
51
+ expect(Object.keys(asFoo.$link)).toEqual(["toBar"]);
50
52
  });
51
53
  it("stringifies properties on objects and interfaces correctly", async () => {
52
54
  const {
@@ -493,6 +495,7 @@ describe("convertWireToOsdkObjects", () => {
493
495
  "multiplicity": false,
494
496
  "nullable": true,
495
497
  "type": "string",
498
+ "valueTypeApiName": undefined,
496
499
  },
497
500
  "employeeId": {
498
501
  "description": undefined,
@@ -500,6 +503,7 @@ describe("convertWireToOsdkObjects", () => {
500
503
  "multiplicity": false,
501
504
  "nullable": false,
502
505
  "type": "integer",
506
+ "valueTypeApiName": undefined,
503
507
  },
504
508
  "employeeLocation": {
505
509
  "description": "Geotime series reference of the location of the employee",
@@ -507,6 +511,7 @@ describe("convertWireToOsdkObjects", () => {
507
511
  "multiplicity": false,
508
512
  "nullable": true,
509
513
  "type": "geotimeSeriesReference",
514
+ "valueTypeApiName": undefined,
510
515
  },
511
516
  "employeeSensor": {
512
517
  "description": "TimeSeries sensor of the status of the employee",
@@ -514,6 +519,7 @@ describe("convertWireToOsdkObjects", () => {
514
519
  "multiplicity": false,
515
520
  "nullable": true,
516
521
  "type": "sensorTimeseries",
522
+ "valueTypeApiName": undefined,
517
523
  },
518
524
  "employeeStatus": {
519
525
  "description": "TimeSeries of the status of the employee",
@@ -521,6 +527,7 @@ describe("convertWireToOsdkObjects", () => {
521
527
  "multiplicity": false,
522
528
  "nullable": true,
523
529
  "type": "stringTimeseries",
530
+ "valueTypeApiName": undefined,
524
531
  },
525
532
  "fullName": {
526
533
  "description": undefined,
@@ -528,6 +535,7 @@ describe("convertWireToOsdkObjects", () => {
528
535
  "multiplicity": false,
529
536
  "nullable": true,
530
537
  "type": "string",
538
+ "valueTypeApiName": undefined,
531
539
  },
532
540
  "office": {
533
541
  "description": "The unique "ID" of the employee's \\"primary\\" assigned office.
@@ -536,6 +544,7 @@ describe("convertWireToOsdkObjects", () => {
536
544
  "multiplicity": false,
537
545
  "nullable": true,
538
546
  "type": "string",
547
+ "valueTypeApiName": undefined,
539
548
  },
540
549
  "skillSet": {
541
550
  "description": "The skills of the employee",
@@ -543,6 +552,7 @@ describe("convertWireToOsdkObjects", () => {
543
552
  "multiplicity": false,
544
553
  "nullable": true,
545
554
  "type": "string",
555
+ "valueTypeApiName": undefined,
546
556
  },
547
557
  "skillSetEmbedding": {
548
558
  "description": "Vectorized skill set",
@@ -550,6 +560,7 @@ describe("convertWireToOsdkObjects", () => {
550
560
  "multiplicity": false,
551
561
  "nullable": true,
552
562
  "type": "vector",
563
+ "valueTypeApiName": undefined,
553
564
  },
554
565
  "startDate": {
555
566
  "description": "The date the employee was hired (most recently, if they were re-hired)",
@@ -557,6 +568,7 @@ describe("convertWireToOsdkObjects", () => {
557
568
  "multiplicity": false,
558
569
  "nullable": true,
559
570
  "type": "datetime",
571
+ "valueTypeApiName": undefined,
560
572
  },
561
573
  },
562
574
  "rid": "ri.ontology.main.object-type.401ac022-89eb-4591-8b7e-0a912b9efb44",
@@ -589,6 +601,7 @@ describe("convertWireToOsdkObjects", () => {
589
601
  "multiplicity": false,
590
602
  "nullable": true,
591
603
  "type": "string",
604
+ "valueTypeApiName": undefined,
592
605
  },
593
606
  },
594
607
  "rid": "ri.interface.main.interface.1",
@@ -654,6 +667,7 @@ describe("convertWireToOsdkObjects", () => {
654
667
  "multiplicity": false,
655
668
  "nullable": true,
656
669
  "type": "string",
670
+ "valueTypeApiName": undefined,
657
671
  },
658
672
  },
659
673
  "rid": "ri.interface.main.interface.1",
@@ -1 +1 @@
1
- {"version":3,"file":"convertWireToOsdkObjects.test.js","names":["$ontologyRid","Employee","FooInterface","objectTypeWithAllPropertyTypes","createSharedClientContext","LegacyFauxFoundry","startNodeApiServer","beforeAll","describe","expect","expectTypeOf","it","additionalContext","createClient","createMinimalClient","convertWireToOsdkObjects","convertWireToOsdkObjects2","client","interfaceToObjectTypeMappings","fooSpt","testSetup","apiServer","close","data","employee","fetchPage","Object","keys","sort","toEqual","$as","$link","employee2","where","$and","employeeId","$gt","$lt","JSON","stringify","toMatchInlineSnapshot","employees","length","toBeGreaterThanOrEqual","a","b","getPrototypeOf","toBe","withValues","id","attachment","attachmentArray","toMatchTypeOf","rid","Array","isArray","toBeTruthy","withoutValues","emptyAttachment","emptyAttachmentArray","toBeUndefined","mediaReference","toBeDefined","emptyMedia","somePropertyThatShouldNotExist","toThrow","objAsFoo","clientCtx","ontologyRid","object","__apiName","apiName","__primaryKey","prototypeBefore","object2","undefined","prototypeAfter","not","__title","obj","fullName","__rid","$rid","rejects","toThrowErrorMatchingInlineSnapshot","resolves","to","result","$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata","ObjectMetadata","propertyIsEnumerable","isFrozen","InterfaceMetadata","objAsFoo2","instance","osdk"],"sources":["convertWireToOsdkObjects.test.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Attachment, Media, Osdk, PropertyKeys } from \"@osdk/api\";\nimport {\n $ontologyRid,\n Employee,\n FooInterface,\n objectTypeWithAllPropertyTypes,\n} from \"@osdk/client.test.ontology\";\nimport type { OntologyObjectV2 } from \"@osdk/foundry.ontologies\";\nimport { createSharedClientContext } from \"@osdk/shared.client.impl\";\nimport { LegacyFauxFoundry, startNodeApiServer } from \"@osdk/shared.test\";\nimport { beforeAll, describe, expect, expectTypeOf, it } from \"vitest\";\nimport { additionalContext, type Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\nimport { createMinimalClient } from \"../createMinimalClient.js\";\nimport {\n convertWireToOsdkObjects,\n convertWireToOsdkObjects2,\n} from \"./convertWireToOsdkObjects.js\";\n\ndescribe(\"convertWireToOsdkObjects\", () => {\n let client: Client;\n const interfaceToObjectTypeMappings = {\n FooInterface: { Employee: { fooSpt: \"fullName\" } },\n };\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);\n ({ client } = testSetup);\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"configures properties correctly\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n\n expect(Object.keys(employee).sort()).toEqual([\n \"employeeId\",\n \"$title\",\n \"fullName\",\n \"office\",\n \"class\",\n \"startDate\",\n \"employeeSensor\",\n \"employeeStatus\",\n \"$apiName\",\n \"$objectType\",\n \"$primaryKey\",\n \"$objectSpecifier\",\n \"employeeLocation\",\n ].sort());\n\n expect(Object.keys(employee.$as)).toEqual([]);\n expect(Object.keys(employee.$link)).toEqual([\n \"lead\",\n \"officeLink\",\n \"peeps\",\n ]);\n });\n\n it(\"stringifies properties on objects and interfaces correctly\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const { data: [employee2] } = await client(Employee).where({\n $and: [{ employeeId: { $gt: 50030 } }, { employeeId: { $lt: 50032 } }],\n }).fetchPage();\n\n // Should not have $title\n expect(JSON.stringify(employee)).toMatchInlineSnapshot(\n `\"{\"employeeId\":50030,\"fullName\":\"John Doe\",\"office\":\"NYC\",\"class\":\"Red\",\"startDate\":\"2019-01-01\",\"employeeStatus\":{},\"employeeSensor\":{},\"employeeLocation\":{},\"$apiName\":\"Employee\",\"$objectType\":\"Employee\",\"$primaryKey\":50030,\"$objectSpecifier\":\"Employee:50030\"}\"`,\n );\n\n expect(JSON.stringify(employee.$as(FooInterface))).toMatchInlineSnapshot(\n `\"{\"$apiName\":\"FooInterface\",\"$objectType\":\"Employee\",\"$primaryKey\":50030,\"$objectSpecifier\":\"Employee:50030\",\"fooSpt\":\"John Doe\"}\"`,\n );\n\n // Should have $title\n expect(JSON.stringify(employee2)).toMatchInlineSnapshot(\n `\"{\"employeeId\":50031,\"fullName\":\"Jane Doe\",\"office\":\"SEA\",\"class\":\"Blue\",\"startDate\":\"2012-02-12\",\"employeeStatus\":{},\"employeeSensor\":{},\"employeeLocation\":{},\"$apiName\":\"Employee\",\"$objectType\":\"Employee\",\"$primaryKey\":50031,\"$title\":\"Jane Doe\",\"$objectSpecifier\":\"Employee:50031\"}\"`,\n );\n\n expect(JSON.stringify(employee2.$as(FooInterface))).toMatchInlineSnapshot(\n `\"{\"$apiName\":\"FooInterface\",\"$objectType\":\"Employee\",\"$primaryKey\":50031,\"$objectSpecifier\":\"Employee:50031\",\"$title\":\"Jane Doe\",\"fooSpt\":\"Jane Doe\"}\"`,\n );\n });\n\n it(\"reuses the object prototype across objects\", async () => {\n const employees = await client(Employee).fetchPage();\n expect(employees.data.length).toBeGreaterThanOrEqual(2);\n const [a, b] = employees.data;\n\n expect(Object.getPrototypeOf(Object.getPrototypeOf(a))).toBe(\n Object.getPrototypeOf(Object.getPrototypeOf(b)),\n );\n });\n\n it(\"converts attachments as expected\", async () => {\n const withValues = await client(\n objectTypeWithAllPropertyTypes,\n )\n .where({ id: 1 })\n .fetchPage();\n expect(withValues.data.length).toBeGreaterThanOrEqual(1);\n\n const { attachment, attachmentArray } = withValues.data[0];\n\n expectTypeOf(attachment).toMatchTypeOf<\n Attachment | undefined\n >;\n expect(attachment?.rid).toEqual(\n \"ri.attachments.main.attachment.86016861-707f-4292-b258-6a7108915a75\",\n );\n expect(Array.isArray(attachmentArray)).toBeTruthy();\n expectTypeOf(attachmentArray![0]).toMatchTypeOf<Attachment>;\n\n const withoutValues = await client(\n objectTypeWithAllPropertyTypes,\n ).where({ id: 2 }).fetchPage();\n\n const {\n attachment: emptyAttachment,\n attachmentArray: emptyAttachmentArray,\n } = withoutValues.data[0];\n expect(emptyAttachment).toBeUndefined();\n expect(emptyAttachmentArray).toBeUndefined();\n });\n\n it(\"converts media as expected\", async () => {\n const withValues = await client(\n objectTypeWithAllPropertyTypes,\n )\n .where({ id: 1 })\n .fetchPage();\n expect(withValues.data.length).toBeGreaterThanOrEqual(1);\n\n const { mediaReference } = withValues.data[0];\n\n expectTypeOf(mediaReference).toMatchTypeOf<\n Media | undefined\n >;\n expect(mediaReference).toBeDefined();\n\n const withoutValues = await client(\n objectTypeWithAllPropertyTypes,\n ).where({ id: 2 }).fetchPage();\n\n const {\n mediaReference: emptyMedia,\n } = withoutValues.data[0];\n expect(emptyMedia).toBeUndefined();\n });\n\n it(\"creates immutable objects\", async () => {\n const employees = await client(Employee).fetchPage();\n expect(employees.data.length).toBeGreaterThanOrEqual(2);\n const [a, b] = employees.data;\n\n expect(a).toBeDefined();\n expect(() => {\n (a as any).somePropertyThatShouldNotExist = 5;\n }).toThrow();\n\n const objAsFoo = a.$as(FooInterface);\n expect(objAsFoo).toBeDefined();\n expect(() => {\n (objAsFoo as any).somePropertyThatShouldNotExist = 5;\n }).toThrow();\n });\n\n it(\"works even with unknown apiNames - old\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n createSharedClientContext(\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n \"userAgent\",\n );\n\n const object = {\n __apiName: Employee.apiName,\n __primaryKey: 0,\n } as const;\n const prototypeBefore = Object.getPrototypeOf(object);\n const object2 = await convertWireToOsdkObjects(\n clientCtx,\n [object],\n undefined,\n undefined,\n {},\n undefined,\n false,\n );\n const prototypeAfter = Object.getPrototypeOf(object2);\n\n expect(prototypeBefore).not.toBe(prototypeAfter);\n });\n\n it(\"works even with unknown apiNames - new\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n createSharedClientContext(\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n \"userAgent\",\n );\n\n const object = {\n __apiName: Employee.apiName,\n __primaryKey: 0,\n } as const;\n const prototypeBefore = Object.getPrototypeOf(object);\n const object2 = await convertWireToOsdkObjects2(\n clientCtx,\n [object],\n undefined,\n {},\n undefined,\n undefined,\n false,\n );\n const prototypeAfter = Object.getPrototypeOf(object2);\n\n expect(prototypeBefore).not.toBe(prototypeAfter);\n });\n\n it(\"reconstitutes interfaces properly without rid - old\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n fooSpt: \"Steve\",\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n undefined,\n {},\n )) as unknown as Osdk<FooInterface>[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"employeeId\": 0,\n \"fullName\": \"Steve\",\n }\n `);\n });\n\n it(\"reconstitutes interfaces properly without rid - new\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n fullName: \"Steve\",\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects2(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n {},\n false,\n undefined,\n false,\n interfaceToObjectTypeMappings,\n )) as unknown as Osdk<FooInterface>[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fullName\": \"Steve\",\n }\n `);\n });\n\n it(\"reconstitutes interfaces properly with rid\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n __rid: \"hiMom\",\n fooSpt: \"Steve\",\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n undefined,\n {},\n )) as unknown as Osdk<FooInterface, \"$rid\" | \"$all\">[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n expect(objAsFoo.$rid).toEqual(\"hiMom\");\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"employeeId\": 0,\n \"fullName\": \"Steve\",\n }\n `);\n expect(obj.$rid).toEqual(\"hiMom\");\n });\n\n it(\"reconstitutes interfaces properly with rid - new\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n __rid: \"hiMom\",\n fullName: \"Steve\",\n employeeId: 0,\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects2(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n {},\n false,\n undefined,\n false,\n interfaceToObjectTypeMappings,\n )) as unknown as Osdk<FooInterface, \"$rid\" | \"$all\">[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n expect(objAsFoo.$rid).toEqual(\"hiMom\");\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"employeeId\": 0,\n \"fullName\": \"Steve\",\n }\n `);\n expect(obj.$rid).toEqual(\"hiMom\");\n });\n\n describe(\"selection keys\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"employeeId\"],\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when optional is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"fullName\"],\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"employeeId\"],\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"fullName\"],\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n describe(\"selection keys - new\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"employeeId\"],\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when optional is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"fullName\"],\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"employeeId\"],\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"fullName\"],\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n describe(\"without selection keys\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when required is present\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n describe(\"without selection keys - new\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when required is present\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n it(\"behaves correctly when converting\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n fooSpt: \"hi\",\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n \"FooInterface\",\n {},\n undefined,\n [\"fooSpt\"],\n \"drop\",\n interfaceToObjectTypeMappings,\n );\n\n expect(result.length).toBe(1);\n });\n\n describe(\"$metadata\", () => {\n describe(\"object\", () => {\n it(\"has an accessible object on $__experimental-metadata\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n expect(employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata)\n .toBeDefined();\n expect(\n employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata.ObjectMetadata,\n )\n .toMatchInlineSnapshot(\n `\n {\n \"apiName\": \"Employee\",\n \"description\": \"A full-time or part-time \n\n employee of our firm\",\n \"displayName\": \"Employee\",\n \"icon\": {\n \"color\": \"blue\",\n \"name\": \"person\",\n \"type\": \"blueprint\",\n },\n \"implements\": [\n \"FooInterface\",\n ],\n \"interfaceMap\": {\n \"FooInterface\": {\n \"fooSpt\": \"fullName\",\n },\n },\n \"inverseInterfaceMap\": {\n \"FooInterface\": {\n \"fullName\": \"fooSpt\",\n },\n },\n \"links\": {\n \"lead\": {\n \"multiplicity\": false,\n \"targetType\": \"Employee\",\n },\n \"officeLink\": {\n \"multiplicity\": false,\n \"targetType\": \"Office\",\n },\n \"peeps\": {\n \"multiplicity\": true,\n \"targetType\": \"Employee\",\n },\n },\n \"pluralDisplayName\": \"Employees\",\n \"primaryKeyApiName\": \"employeeId\",\n \"primaryKeyType\": \"integer\",\n \"properties\": {\n \"class\": {\n \"description\": \"\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n \"employeeId\": {\n \"description\": undefined,\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": false,\n \"type\": \"integer\",\n },\n \"employeeLocation\": {\n \"description\": \"Geotime series reference of the location of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"geotimeSeriesReference\",\n },\n \"employeeSensor\": {\n \"description\": \"TimeSeries sensor of the status of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"sensorTimeseries\",\n },\n \"employeeStatus\": {\n \"description\": \"TimeSeries of the status of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"stringTimeseries\",\n },\n \"fullName\": {\n \"description\": undefined,\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n \"office\": {\n \"description\": \"The unique \"ID\" of the employee's \\\\\"primary\\\\\" assigned office.\n This is some more text.\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n \"skillSet\": {\n \"description\": \"The skills of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n \"skillSetEmbedding\": {\n \"description\": \"Vectorized skill set\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"vector\",\n },\n \"startDate\": {\n \"description\": \"The date the employee was hired (most recently, if they were re-hired)\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"datetime\",\n },\n },\n \"rid\": \"ri.ontology.main.object-type.401ac022-89eb-4591-8b7e-0a912b9efb44\",\n \"status\": \"ACTIVE\",\n \"titleProperty\": \"fullName\",\n \"type\": \"object\",\n \"visibility\": \"NORMAL\",\n Symbol(InterfaceDefinitions): {\n \"FooInterface\": {\n \"def\": {\n \"apiName\": \"FooInterface\",\n \"description\": \"Interface for Foo\",\n \"displayName\": \"Foo Interface\",\n \"implementedBy\": [\n \"Employee\",\n \"Person\",\n ],\n \"implements\": [],\n \"links\": {\n \"toBar\": {\n \"multiplicity\": true,\n \"targetType\": \"interface\",\n \"targetTypeApiName\": \"BarInterface\",\n },\n },\n \"properties\": {\n \"fooSpt\": {\n \"description\": \"A foo\",\n \"displayName\": \"Foo\",\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n },\n \"rid\": \"ri.interface.main.interface.1\",\n \"type\": \"interface\",\n },\n \"handler\": undefined,\n },\n },\n }\n `,\n );\n });\n\n it(\"$experimental_metadata is not enumerable\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n\n expect(\n employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .propertyIsEnumerable(\n \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\",\n ),\n ).toEqual(\n false,\n );\n });\n\n it(\"returns frozen metadata\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n expect(employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata)\n .toBeDefined();\n expect(\n Object.isFrozen(\n employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .ObjectMetadata,\n ),\n ).toBe(true);\n });\n\n it(\"returns the same reference\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const { data: [employee2] } = await client(Employee).fetchPage();\n expect(\n employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata.ObjectMetadata,\n )\n .toBe(\n employee2.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .ObjectMetadata,\n );\n });\n });\n\n describe(\"interface\", () => {\n it(\"has an accessible interface on $__experimental-metadata\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const objAsFoo = employee.$as(FooInterface);\n expect(objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata)\n .toBeDefined();\n expect(\n objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .InterfaceMetadata,\n )\n .toMatchInlineSnapshot(\n `\n {\n \"apiName\": \"FooInterface\",\n \"description\": \"Interface for Foo\",\n \"displayName\": \"Foo Interface\",\n \"implementedBy\": [\n \"Employee\",\n \"Person\",\n ],\n \"implements\": [],\n \"links\": {\n \"toBar\": {\n \"multiplicity\": true,\n \"targetType\": \"interface\",\n \"targetTypeApiName\": \"BarInterface\",\n },\n },\n \"properties\": {\n \"fooSpt\": {\n \"description\": \"A foo\",\n \"displayName\": \"Foo\",\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n },\n \"rid\": \"ri.interface.main.interface.1\",\n \"type\": \"interface\",\n }\n `,\n );\n });\n it(\"$experimental_metadata is not enumerable\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const objAsFoo = employee.$as(FooInterface);\n expect(\n objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .propertyIsEnumerable(\n \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\",\n ),\n ).toEqual(\n false,\n );\n });\n it(\"returns frozen metadata\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const objAsFoo = employee.$as(FooInterface);\n expect(objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata)\n .toBeDefined();\n expect(\n Object.isFrozen(\n objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .InterfaceMetadata,\n ),\n ).toBe(true);\n });\n it(\"returns the same reference\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const objAsFoo = employee.$as(FooInterface);\n const { data: [employee2] } = await client(Employee).fetchPage();\n const objAsFoo2 = employee2.$as(FooInterface);\n expect(\n objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .InterfaceMetadata,\n )\n .toBe(\n objAsFoo2.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .InterfaceMetadata,\n );\n });\n });\n });\n});\n\ndescribe(\"Osdk.Instance\", () => {\n it(\"is assignable to Osdk<>\", () => {\n const instance: Osdk.Instance<Employee> = {} as any;\n const osdk: Osdk<Employee> = instance;\n });\n\n it(\"is assignable from Osdk<>\", () => {\n const osdk: Osdk<Employee> = {} as any;\n const instance: Osdk.Instance<Employee> = osdk;\n });\n\n it(\"is assignable to Osdk<> with $notStrict\", () => {\n const instance: Osdk.Instance<Employee> = {} as any;\n const osdk: Osdk<Employee, \"$notStrict\"> = instance;\n const osdk2: Osdk<Employee, \"$notStrict\" | \"$all\"> = instance;\n });\n\n it(\"is assignable from Osdk<> with $notStrict\", () => {\n const osdk: Osdk<Employee, \"$notStrict\"> = {} as any;\n const osdk2: Osdk<Employee, \"$notStrict\" | \"$all\"> = osdk;\n const instance: Osdk.Instance<Employee> = osdk;\n const instance2: Osdk.Instance<Employee> = osdk2;\n });\n\n it(\"object with any for props is assignable to its normal self\", () => {\n const foo: readonly Osdk.Instance<Employee, never, any>[] = {} as any;\n\n const bar: readonly Osdk.Instance<\n Employee,\n never,\n PropertyKeys<Employee>\n >[] = foo;\n });\n});\n"],"mappings":"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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WACU,CAAC;MACL,CAAC,CAAC;MAEF7B,EAAE,CAAC,0CAA0C,EAAE,YAAY;QACzD,MAAM;UAAEY,IAAI,EAAE,CAACC,QAAQ;QAAE,CAAC,GAAG,MAAMP,MAAM,CAAChB,QAAQ,CAAC,CAACwB,SAAS,CAAC,CAAC;QAE/DhB,MAAM,CACJe,QAAQ,CAACgE,4CAA4C,CAClDE,oBAAoB,CACnB,8CACF,CACJ,CAAC,CAAC7D,OAAO,CACP,KACF,CAAC;MACH,CAAC,CAAC;MAEFlB,EAAE,CAAC,yBAAyB,EAAE,YAAY;QACxC,MAAM;UAAEY,IAAI,EAAE,CAACC,QAAQ;QAAE,CAAC,GAAG,MAAMP,MAAM,CAAChB,QAAQ,CAAC,CAACwB,SAAS,CAAC,CAAC;QAC/DhB,MAAM,CAACe,QAAQ,CAACgE,4CAA4C,CAAC,CAC1D1B,WAAW,CAAC,CAAC;QAChBrD,MAAM,CACJiB,MAAM,CAACiE,QAAQ,CACbnE,QAAQ,CAACgE,4CAA4C,CAClDC,cACL,CACF,CAAC,CAAC1C,IAAI,CAAC,IAAI,CAAC;MACd,CAAC,CAAC;MAEFpC,EAAE,CAAC,4BAA4B,EAAE,YAAY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","ignoreList":[]}
1
+ {"version":3,"file":"convertWireToOsdkObjects.test.js","names":["$ontologyRid","Employee","FooInterface","objectTypeWithAllPropertyTypes","createSharedClientContext","LegacyFauxFoundry","startNodeApiServer","beforeAll","describe","expect","expectTypeOf","it","additionalContext","createClient","createMinimalClient","convertWireToOsdkObjects","convertWireToOsdkObjects2","client","interfaceToObjectTypeMappings","fooSpt","testSetup","apiServer","close","data","employee","fetchPage","Object","keys","sort","toEqual","$as","$link","asFoo","employee2","where","$and","employeeId","$gt","$lt","JSON","stringify","toMatchInlineSnapshot","employees","length","toBeGreaterThanOrEqual","a","b","getPrototypeOf","toBe","withValues","id","attachment","attachmentArray","toMatchTypeOf","rid","Array","isArray","toBeTruthy","withoutValues","emptyAttachment","emptyAttachmentArray","toBeUndefined","mediaReference","toBeDefined","emptyMedia","somePropertyThatShouldNotExist","toThrow","objAsFoo","clientCtx","ontologyRid","object","__apiName","apiName","__primaryKey","prototypeBefore","object2","undefined","prototypeAfter","not","__title","obj","fullName","__rid","$rid","rejects","toThrowErrorMatchingInlineSnapshot","resolves","to","result","$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata","ObjectMetadata","propertyIsEnumerable","isFrozen","InterfaceMetadata","objAsFoo2","instance","osdk"],"sources":["convertWireToOsdkObjects.test.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Attachment, Media, Osdk, PropertyKeys } from \"@osdk/api\";\nimport {\n $ontologyRid,\n Employee,\n FooInterface,\n objectTypeWithAllPropertyTypes,\n} from \"@osdk/client.test.ontology\";\nimport type { OntologyObjectV2 } from \"@osdk/foundry.ontologies\";\nimport { createSharedClientContext } from \"@osdk/shared.client.impl\";\nimport { LegacyFauxFoundry, startNodeApiServer } from \"@osdk/shared.test\";\nimport { beforeAll, describe, expect, expectTypeOf, it } from \"vitest\";\nimport { additionalContext, type Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\nimport { createMinimalClient } from \"../createMinimalClient.js\";\nimport {\n convertWireToOsdkObjects,\n convertWireToOsdkObjects2,\n} from \"./convertWireToOsdkObjects.js\";\n\ndescribe(\"convertWireToOsdkObjects\", () => {\n let client: Client;\n const interfaceToObjectTypeMappings = {\n FooInterface: { Employee: { fooSpt: \"fullName\" } },\n };\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);\n ({ client } = testSetup);\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"configures properties correctly\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n\n expect(Object.keys(employee).sort()).toEqual([\n \"employeeId\",\n \"$title\",\n \"fullName\",\n \"office\",\n \"class\",\n \"startDate\",\n \"employeeSensor\",\n \"employeeStatus\",\n \"$apiName\",\n \"$objectType\",\n \"$primaryKey\",\n \"$objectSpecifier\",\n \"employeeLocation\",\n ].sort());\n\n expect(Object.keys(employee.$as)).toEqual([]);\n expect(Object.keys(employee.$link)).toEqual([\n \"lead\",\n \"officeLink\",\n \"peeps\",\n ]);\n\n const asFoo = employee.$as(FooInterface);\n expect(Object.keys(asFoo.$link)).toEqual([\n \"toBar\",\n ]);\n });\n\n it(\"stringifies properties on objects and interfaces correctly\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const { data: [employee2] } = await client(Employee).where({\n $and: [{ employeeId: { $gt: 50030 } }, { employeeId: { $lt: 50032 } }],\n }).fetchPage();\n\n // Should not have $title\n expect(JSON.stringify(employee)).toMatchInlineSnapshot(\n `\"{\"employeeId\":50030,\"fullName\":\"John Doe\",\"office\":\"NYC\",\"class\":\"Red\",\"startDate\":\"2019-01-01\",\"employeeStatus\":{},\"employeeSensor\":{},\"employeeLocation\":{},\"$apiName\":\"Employee\",\"$objectType\":\"Employee\",\"$primaryKey\":50030,\"$objectSpecifier\":\"Employee:50030\"}\"`,\n );\n\n expect(JSON.stringify(employee.$as(FooInterface))).toMatchInlineSnapshot(\n `\"{\"$apiName\":\"FooInterface\",\"$objectType\":\"Employee\",\"$primaryKey\":50030,\"$objectSpecifier\":\"Employee:50030\",\"fooSpt\":\"John Doe\"}\"`,\n );\n\n // Should have $title\n expect(JSON.stringify(employee2)).toMatchInlineSnapshot(\n `\"{\"employeeId\":50031,\"fullName\":\"Jane Doe\",\"office\":\"SEA\",\"class\":\"Blue\",\"startDate\":\"2012-02-12\",\"employeeStatus\":{},\"employeeSensor\":{},\"employeeLocation\":{},\"$apiName\":\"Employee\",\"$objectType\":\"Employee\",\"$primaryKey\":50031,\"$title\":\"Jane Doe\",\"$objectSpecifier\":\"Employee:50031\"}\"`,\n );\n\n expect(JSON.stringify(employee2.$as(FooInterface))).toMatchInlineSnapshot(\n `\"{\"$apiName\":\"FooInterface\",\"$objectType\":\"Employee\",\"$primaryKey\":50031,\"$objectSpecifier\":\"Employee:50031\",\"$title\":\"Jane Doe\",\"fooSpt\":\"Jane Doe\"}\"`,\n );\n });\n\n it(\"reuses the object prototype across objects\", async () => {\n const employees = await client(Employee).fetchPage();\n expect(employees.data.length).toBeGreaterThanOrEqual(2);\n const [a, b] = employees.data;\n\n expect(Object.getPrototypeOf(Object.getPrototypeOf(a))).toBe(\n Object.getPrototypeOf(Object.getPrototypeOf(b)),\n );\n });\n\n it(\"converts attachments as expected\", async () => {\n const withValues = await client(\n objectTypeWithAllPropertyTypes,\n )\n .where({ id: 1 })\n .fetchPage();\n expect(withValues.data.length).toBeGreaterThanOrEqual(1);\n\n const { attachment, attachmentArray } = withValues.data[0];\n\n expectTypeOf(attachment).toMatchTypeOf<\n Attachment | undefined\n >;\n expect(attachment?.rid).toEqual(\n \"ri.attachments.main.attachment.86016861-707f-4292-b258-6a7108915a75\",\n );\n expect(Array.isArray(attachmentArray)).toBeTruthy();\n expectTypeOf(attachmentArray![0]).toMatchTypeOf<Attachment>;\n\n const withoutValues = await client(\n objectTypeWithAllPropertyTypes,\n ).where({ id: 2 }).fetchPage();\n\n const {\n attachment: emptyAttachment,\n attachmentArray: emptyAttachmentArray,\n } = withoutValues.data[0];\n expect(emptyAttachment).toBeUndefined();\n expect(emptyAttachmentArray).toBeUndefined();\n });\n\n it(\"converts media as expected\", async () => {\n const withValues = await client(\n objectTypeWithAllPropertyTypes,\n )\n .where({ id: 1 })\n .fetchPage();\n expect(withValues.data.length).toBeGreaterThanOrEqual(1);\n\n const { mediaReference } = withValues.data[0];\n\n expectTypeOf(mediaReference).toMatchTypeOf<\n Media | undefined\n >;\n expect(mediaReference).toBeDefined();\n\n const withoutValues = await client(\n objectTypeWithAllPropertyTypes,\n ).where({ id: 2 }).fetchPage();\n\n const {\n mediaReference: emptyMedia,\n } = withoutValues.data[0];\n expect(emptyMedia).toBeUndefined();\n });\n\n it(\"creates immutable objects\", async () => {\n const employees = await client(Employee).fetchPage();\n expect(employees.data.length).toBeGreaterThanOrEqual(2);\n const [a, b] = employees.data;\n\n expect(a).toBeDefined();\n expect(() => {\n (a as any).somePropertyThatShouldNotExist = 5;\n }).toThrow();\n\n const objAsFoo = a.$as(FooInterface);\n expect(objAsFoo).toBeDefined();\n expect(() => {\n (objAsFoo as any).somePropertyThatShouldNotExist = 5;\n }).toThrow();\n });\n\n it(\"works even with unknown apiNames - old\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n createSharedClientContext(\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n \"userAgent\",\n );\n\n const object = {\n __apiName: Employee.apiName,\n __primaryKey: 0,\n } as const;\n const prototypeBefore = Object.getPrototypeOf(object);\n const object2 = await convertWireToOsdkObjects(\n clientCtx,\n [object],\n undefined,\n undefined,\n {},\n undefined,\n false,\n );\n const prototypeAfter = Object.getPrototypeOf(object2);\n\n expect(prototypeBefore).not.toBe(prototypeAfter);\n });\n\n it(\"works even with unknown apiNames - new\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n createSharedClientContext(\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n \"userAgent\",\n );\n\n const object = {\n __apiName: Employee.apiName,\n __primaryKey: 0,\n } as const;\n const prototypeBefore = Object.getPrototypeOf(object);\n const object2 = await convertWireToOsdkObjects2(\n clientCtx,\n [object],\n undefined,\n {},\n undefined,\n undefined,\n false,\n );\n const prototypeAfter = Object.getPrototypeOf(object2);\n\n expect(prototypeBefore).not.toBe(prototypeAfter);\n });\n\n it(\"reconstitutes interfaces properly without rid - old\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n fooSpt: \"Steve\",\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n undefined,\n {},\n )) as unknown as Osdk<FooInterface>[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"employeeId\": 0,\n \"fullName\": \"Steve\",\n }\n `);\n });\n\n it(\"reconstitutes interfaces properly without rid - new\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n fullName: \"Steve\",\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects2(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n {},\n false,\n undefined,\n false,\n interfaceToObjectTypeMappings,\n )) as unknown as Osdk<FooInterface>[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fullName\": \"Steve\",\n }\n `);\n });\n\n it(\"reconstitutes interfaces properly with rid\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n __rid: \"hiMom\",\n fooSpt: \"Steve\",\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n undefined,\n {},\n )) as unknown as Osdk<FooInterface, \"$rid\" | \"$all\">[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n expect(objAsFoo.$rid).toEqual(\"hiMom\");\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"employeeId\": 0,\n \"fullName\": \"Steve\",\n }\n `);\n expect(obj.$rid).toEqual(\"hiMom\");\n });\n\n it(\"reconstitutes interfaces properly with rid - new\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n __rid: \"hiMom\",\n fullName: \"Steve\",\n employeeId: 0,\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects2(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n {},\n false,\n undefined,\n false,\n interfaceToObjectTypeMappings,\n )) as unknown as Osdk<FooInterface, \"$rid\" | \"$all\">[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n expect(objAsFoo.$rid).toEqual(\"hiMom\");\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"employeeId\": 0,\n \"fullName\": \"Steve\",\n }\n `);\n expect(obj.$rid).toEqual(\"hiMom\");\n });\n\n describe(\"selection keys\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"employeeId\"],\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when optional is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"fullName\"],\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"employeeId\"],\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"fullName\"],\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n describe(\"selection keys - new\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"employeeId\"],\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when optional is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"fullName\"],\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"employeeId\"],\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"fullName\"],\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n describe(\"without selection keys\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when required is present\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n describe(\"without selection keys - new\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when required is present\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n it(\"behaves correctly when converting\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n fooSpt: \"hi\",\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n \"FooInterface\",\n {},\n undefined,\n [\"fooSpt\"],\n \"drop\",\n interfaceToObjectTypeMappings,\n );\n\n expect(result.length).toBe(1);\n });\n\n describe(\"$metadata\", () => {\n describe(\"object\", () => {\n it(\"has an accessible object on $__experimental-metadata\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n expect(employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata)\n .toBeDefined();\n expect(\n employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata.ObjectMetadata,\n )\n .toMatchInlineSnapshot(\n `\n {\n \"apiName\": \"Employee\",\n \"description\": \"A full-time or part-time \n\n employee of our firm\",\n \"displayName\": \"Employee\",\n \"icon\": {\n \"color\": \"blue\",\n \"name\": \"person\",\n \"type\": \"blueprint\",\n },\n \"implements\": [\n \"FooInterface\",\n ],\n \"interfaceMap\": {\n \"FooInterface\": {\n \"fooSpt\": \"fullName\",\n },\n },\n \"inverseInterfaceMap\": {\n \"FooInterface\": {\n \"fullName\": \"fooSpt\",\n },\n },\n \"links\": {\n \"lead\": {\n \"multiplicity\": false,\n \"targetType\": \"Employee\",\n },\n \"officeLink\": {\n \"multiplicity\": false,\n \"targetType\": \"Office\",\n },\n \"peeps\": {\n \"multiplicity\": true,\n \"targetType\": \"Employee\",\n },\n },\n \"pluralDisplayName\": \"Employees\",\n \"primaryKeyApiName\": \"employeeId\",\n \"primaryKeyType\": \"integer\",\n \"properties\": {\n \"class\": {\n \"description\": \"\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueTypeApiName\": undefined,\n },\n \"employeeId\": {\n \"description\": undefined,\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": false,\n \"type\": \"integer\",\n \"valueTypeApiName\": undefined,\n },\n \"employeeLocation\": {\n \"description\": \"Geotime series reference of the location of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"geotimeSeriesReference\",\n \"valueTypeApiName\": undefined,\n },\n \"employeeSensor\": {\n \"description\": \"TimeSeries sensor of the status of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"sensorTimeseries\",\n \"valueTypeApiName\": undefined,\n },\n \"employeeStatus\": {\n \"description\": \"TimeSeries of the status of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"stringTimeseries\",\n \"valueTypeApiName\": undefined,\n },\n \"fullName\": {\n \"description\": undefined,\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueTypeApiName\": undefined,\n },\n \"office\": {\n \"description\": \"The unique \"ID\" of the employee's \\\\\"primary\\\\\" assigned office.\n This is some more text.\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueTypeApiName\": undefined,\n },\n \"skillSet\": {\n \"description\": \"The skills of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueTypeApiName\": undefined,\n },\n \"skillSetEmbedding\": {\n \"description\": \"Vectorized skill set\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"vector\",\n \"valueTypeApiName\": undefined,\n },\n \"startDate\": {\n \"description\": \"The date the employee was hired (most recently, if they were re-hired)\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"datetime\",\n \"valueTypeApiName\": undefined,\n },\n },\n \"rid\": \"ri.ontology.main.object-type.401ac022-89eb-4591-8b7e-0a912b9efb44\",\n \"status\": \"ACTIVE\",\n \"titleProperty\": \"fullName\",\n \"type\": \"object\",\n \"visibility\": \"NORMAL\",\n Symbol(InterfaceDefinitions): {\n \"FooInterface\": {\n \"def\": {\n \"apiName\": \"FooInterface\",\n \"description\": \"Interface for Foo\",\n \"displayName\": \"Foo Interface\",\n \"implementedBy\": [\n \"Employee\",\n \"Person\",\n ],\n \"implements\": [],\n \"links\": {\n \"toBar\": {\n \"multiplicity\": true,\n \"targetType\": \"interface\",\n \"targetTypeApiName\": \"BarInterface\",\n },\n },\n \"properties\": {\n \"fooSpt\": {\n \"description\": \"A foo\",\n \"displayName\": \"Foo\",\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueTypeApiName\": undefined,\n },\n },\n \"rid\": \"ri.interface.main.interface.1\",\n \"type\": \"interface\",\n },\n \"handler\": undefined,\n },\n },\n }\n `,\n );\n });\n\n it(\"$experimental_metadata is not enumerable\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n\n expect(\n employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .propertyIsEnumerable(\n \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\",\n ),\n ).toEqual(\n false,\n );\n });\n\n it(\"returns frozen metadata\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n expect(employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata)\n .toBeDefined();\n expect(\n Object.isFrozen(\n employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .ObjectMetadata,\n ),\n ).toBe(true);\n });\n\n it(\"returns the same reference\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const { data: [employee2] } = await client(Employee).fetchPage();\n expect(\n employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata.ObjectMetadata,\n )\n .toBe(\n employee2.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .ObjectMetadata,\n );\n });\n });\n\n describe(\"interface\", () => {\n it(\"has an accessible interface on $__experimental-metadata\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const objAsFoo = employee.$as(FooInterface);\n expect(objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata)\n .toBeDefined();\n expect(\n objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .InterfaceMetadata,\n )\n .toMatchInlineSnapshot(\n `\n {\n \"apiName\": \"FooInterface\",\n \"description\": \"Interface for Foo\",\n \"displayName\": \"Foo Interface\",\n \"implementedBy\": [\n \"Employee\",\n \"Person\",\n ],\n \"implements\": [],\n \"links\": {\n \"toBar\": {\n \"multiplicity\": true,\n \"targetType\": \"interface\",\n \"targetTypeApiName\": \"BarInterface\",\n },\n },\n \"properties\": {\n \"fooSpt\": {\n \"description\": \"A foo\",\n \"displayName\": \"Foo\",\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueTypeApiName\": undefined,\n },\n },\n \"rid\": \"ri.interface.main.interface.1\",\n \"type\": \"interface\",\n }\n `,\n );\n });\n it(\"$experimental_metadata is not enumerable\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const objAsFoo = employee.$as(FooInterface);\n expect(\n objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .propertyIsEnumerable(\n \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\",\n ),\n ).toEqual(\n false,\n );\n });\n it(\"returns frozen metadata\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const objAsFoo = employee.$as(FooInterface);\n expect(objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata)\n .toBeDefined();\n expect(\n Object.isFrozen(\n objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .InterfaceMetadata,\n ),\n ).toBe(true);\n });\n it(\"returns the same reference\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const objAsFoo = employee.$as(FooInterface);\n const { data: [employee2] } = await client(Employee).fetchPage();\n const objAsFoo2 = employee2.$as(FooInterface);\n expect(\n objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .InterfaceMetadata,\n )\n .toBe(\n objAsFoo2.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .InterfaceMetadata,\n );\n });\n });\n });\n});\n\ndescribe(\"Osdk.Instance\", () => {\n it(\"is assignable to Osdk<>\", () => {\n const instance: Osdk.Instance<Employee> = {} as any;\n const osdk: Osdk<Employee> = instance;\n });\n\n it(\"is assignable from Osdk<>\", () => {\n const osdk: Osdk<Employee> = {} as any;\n const instance: Osdk.Instance<Employee> = osdk;\n });\n\n it(\"is assignable to Osdk<> with $notStrict\", () => {\n const instance: Osdk.Instance<Employee> = {} as any;\n const osdk: Osdk<Employee, \"$notStrict\"> = instance;\n const osdk2: Osdk<Employee, \"$notStrict\" | \"$all\"> = instance;\n });\n\n it(\"is assignable from Osdk<> with $notStrict\", () => {\n const osdk: Osdk<Employee, \"$notStrict\"> = {} as any;\n const osdk2: Osdk<Employee, \"$notStrict\" | \"$all\"> = osdk;\n const instance: Osdk.Instance<Employee> = osdk;\n const instance2: Osdk.Instance<Employee> = osdk2;\n });\n\n it(\"object with any for props is assignable to its normal self\", () => {\n const foo: readonly Osdk.Instance<Employee, never, any>[] = {} as any;\n\n const bar: readonly Osdk.Instance<\n Employee,\n never,\n PropertyKeys<Employee>\n >[] = foo;\n });\n});\n"],"mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WACU,CAAC;MACL,CAAC,CAAC;MAEF9B,EAAE,CAAC,0CAA0C,EAAE,YAAY;QACzD,MAAM;UAAEY,IAAI,EAAE,CAACC,QAAQ;QAAE,CAAC,GAAG,MAAMP,MAAM,CAAChB,QAAQ,CAAC,CAACwB,SAAS,CAAC,CAAC;QAE/DhB,MAAM,CACJe,QAAQ,CAACiE,4CAA4C,CAClDE,oBAAoB,CACnB,8CACF,CACJ,CAAC,CAAC9D,OAAO,CACP,KACF,CAAC;MACH,CAAC,CAAC;MAEFlB,EAAE,CAAC,yBAAyB,EAAE,YAAY;QACxC,MAAM;UAAEY,IAAI,EAAE,CAACC,QAAQ;QAAE,CAAC,GAAG,MAAMP,MAAM,CAAChB,QAAQ,CAAC,CAACwB,SAAS,CAAC,CAAC;QAC/DhB,M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","ignoreList":[]}
@@ -15,6 +15,7 @@
15
15
  */
16
16
 
17
17
  import * as OntologiesV2 from "@osdk/foundry.ontologies";
18
+ import { extractNamespace } from "../internal/conversions/modernToLegacyWhereClause.js";
18
19
  import { addUserAgentAndRequestContextHeaders } from "../util/addUserAgentAndRequestContextHeaders.js";
19
20
  import { extractObjectOrInterfaceType } from "../util/extractObjectOrInterfaceType.js";
20
21
  import { extractRdpDefinition } from "../util/extractRdpDefinition.js";
@@ -56,16 +57,48 @@ export function resolveInterfaceObjectSet(objectSet, interfaceTypeApiName, args)
56
57
  }]
57
58
  } : objectSet;
58
59
  }
60
+
61
+ /** @internal */
62
+ export async function fetchStaticRidPage(client, rids, args, useSnapshot = false) {
63
+ const requestBody = await applyFetchArgs(args, {
64
+ objectSet: {
65
+ type: "static",
66
+ objects: rids
67
+ },
68
+ select: args?.$select ?? [],
69
+ excludeRid: !args?.$includeRid,
70
+ snapshot: useSnapshot
71
+ }, client, {
72
+ type: "object",
73
+ apiName: ""
74
+ });
75
+ const result = await OntologiesV2.OntologyObjectSets.loadMultipleObjectTypes(addUserAgentAndRequestContextHeaders(client, {
76
+ osdkMetadata: undefined
77
+ }), await client.ontologyRid, requestBody, {
78
+ preview: true
79
+ });
80
+ return Promise.resolve({
81
+ data: await client.objectFactory2(client, result.data, undefined, {}, !args.$includeRid, args.$select, false, result.interfaceToObjectTypeMappings),
82
+ nextPageToken: result.nextPageToken,
83
+ totalCount: result.totalCount
84
+ });
85
+ }
59
86
  async function fetchInterfacePage(client, interfaceType, args, objectSet, useSnapshot = false) {
60
87
  if (args.$__UNSTABLE_useOldInterfaceApis) {
61
- const result = await OntologiesV2.OntologyInterfaces.search(addUserAgentAndRequestContextHeaders(client, interfaceType), await client.ontologyRid, interfaceType.apiName, applyFetchArgs(args, {
88
+ const baseRequestBody = {
62
89
  augmentedProperties: {},
63
90
  augmentedSharedPropertyTypes: {},
64
91
  otherInterfaceTypes: [],
65
92
  selectedObjectTypes: [],
66
- selectedSharedPropertyTypes: args.$select ?? [],
93
+ selectedSharedPropertyTypes: args.$select ? [...args.$select] : [],
67
94
  where: objectSetToSearchJsonV2(objectSet, interfaceType.apiName)
68
- }), {
95
+ };
96
+ const requestBody = await applyFetchArgs(args, baseRequestBody, client, interfaceType);
97
+ if (requestBody.selectedSharedPropertyTypes.length > 0) {
98
+ const remapped = remapPropertyNames(interfaceType, requestBody.selectedSharedPropertyTypes);
99
+ requestBody.selectedSharedPropertyTypes = Array.from(remapped);
100
+ }
101
+ const result = await OntologiesV2.OntologyInterfaces.search(addUserAgentAndRequestContextHeaders(client, interfaceType), await client.ontologyRid, interfaceType.apiName, requestBody, {
69
102
  preview: true
70
103
  });
71
104
  result.data = await client.objectFactory(client, result.data,
@@ -74,13 +107,15 @@ async function fetchInterfacePage(client, interfaceType, args, objectSet, useSna
74
107
  return result;
75
108
  }
76
109
  const resolvedInterfaceObjectSet = resolveInterfaceObjectSet(objectSet, interfaceType.apiName, args);
77
- const result = await OntologiesV2.OntologyObjectSets.loadMultipleObjectTypes(addUserAgentAndRequestContextHeaders(client, interfaceType), await client.ontologyRid, applyFetchArgs(args, {
110
+ const requestBody = await buildAndRemapRequestBody(args, {
78
111
  objectSet: resolvedInterfaceObjectSet,
79
- select: args?.$select ?? [],
112
+ select: args?.$select ? [...args.$select] : [],
80
113
  excludeRid: !args?.$includeRid,
81
114
  snapshot: useSnapshot
82
- }), {
83
- preview: true
115
+ }, client, interfaceType);
116
+ const result = await OntologiesV2.OntologyObjectSets.loadMultipleObjectTypes(addUserAgentAndRequestContextHeaders(client, interfaceType), await client.ontologyRid, requestBody, {
117
+ preview: true,
118
+ branch: client.branch
84
119
  });
85
120
  return Promise.resolve({
86
121
  data: await client.objectFactory2(client, result.data, (await extractObjectOrInterfaceType(client, resolvedInterfaceObjectSet))?.apiName ?? interfaceType.apiName, {}, !args.$includeRid, args.$select, false, result.interfaceToObjectTypeMappings),
@@ -133,20 +168,59 @@ export async function fetchPage(client, objectType, args, objectSet = resolveBas
133
168
  export async function fetchPageWithErrors(client, objectType, args, objectSet = resolveBaseObjectSetType(objectType)) {
134
169
  return fetchPageWithErrorsInternal(client, objectType, objectSet, args);
135
170
  }
136
- function applyFetchArgs(args, body) {
171
+
172
+ /** @internal */
173
+ async function buildAndRemapRequestBody(args, baseBody, client, objectType) {
174
+ const requestBody = await applyFetchArgs(args, baseBody, client, objectType);
175
+ if (requestBody.select != null && requestBody.select.length > 0) {
176
+ const remapped = remapPropertyNames(objectType, requestBody.select);
177
+ return {
178
+ ...requestBody,
179
+ select: remapped
180
+ };
181
+ }
182
+ return requestBody;
183
+ }
184
+
185
+ /** @internal */
186
+ export function remapPropertyNames(objectOrInterface, propertyNames) {
187
+ if (objectOrInterface == null) {
188
+ return propertyNames;
189
+ }
190
+ if (objectOrInterface.type === "interface") {
191
+ const [objApiNamespace] = extractNamespace(objectOrInterface.apiName);
192
+ return propertyNames.map(name => {
193
+ const [fieldApiNamespace, fieldShortName] = extractNamespace(name);
194
+ return fieldApiNamespace == null && objApiNamespace != null ? `${objApiNamespace}.${fieldShortName}` : name;
195
+ });
196
+ }
197
+ return propertyNames;
198
+ }
199
+ async function applyFetchArgs(args, body, _client, objectType) {
137
200
  if (args?.$nextPageToken) {
138
201
  body.pageToken = args.$nextPageToken;
139
202
  }
140
203
  if (args?.$pageSize != null) {
141
204
  body.pageSize = args.$pageSize;
142
205
  }
143
- if (args?.$orderBy != null) {
144
- body.orderBy = {
145
- fields: Object.entries(args.$orderBy).map(([field, direction]) => ({
146
- field,
147
- direction
148
- }))
149
- };
206
+ const orderBy = args?.$orderBy;
207
+ if (orderBy) {
208
+ if (orderBy === "relevance") {
209
+ body.orderBy = {
210
+ orderType: "relevance",
211
+ fields: []
212
+ };
213
+ } else {
214
+ const orderByEntries = Object.entries(orderBy);
215
+ const fieldNames = orderByEntries.map(([field]) => field);
216
+ const remappedFields = remapPropertyNames(objectType, fieldNames);
217
+ body.orderBy = {
218
+ fields: orderByEntries.map(([, direction], index) => ({
219
+ field: remappedFields[index],
220
+ direction
221
+ }))
222
+ };
223
+ }
150
224
  }
151
225
  return body;
152
226
  }
@@ -158,16 +232,17 @@ export async function fetchObjectPage(client, objectType, args, objectSet, useSn
158
232
  // In our object factory we await and block on loading the metadata, which if this call finishes, should already be cached on the client
159
233
 
160
234
  void client.ontologyProvider.getObjectDefinition(objectType.apiName);
161
- const r = await OntologiesV2.OntologyObjectSets.load(addUserAgentAndRequestContextHeaders(client, objectType), await client.ontologyRid, applyFetchArgs(args, {
235
+ const requestBody = await buildAndRemapRequestBody(args, {
162
236
  objectSet,
163
- // We have to do the following case because LoadObjectSetRequestV2 isn't readonly
164
- select: args?.$select ?? [],
165
- // FIXME?
237
+ select: args?.$select ? [...args.$select] : [],
166
238
  excludeRid: !args?.$includeRid,
167
239
  snapshot: useSnapshot
168
- }));
240
+ }, client, objectType);
241
+ const r = await OntologiesV2.OntologyObjectSets.load(addUserAgentAndRequestContextHeaders(client, objectType), await client.ontologyRid, requestBody, {
242
+ branch: client.branch
243
+ });
169
244
  return Promise.resolve({
170
- data: await client.objectFactory(client, r.data, undefined, undefined, await extractRdpDefinition(client, objectSet), args.$select),
245
+ data: await client.objectFactory(client, r.data, undefined, undefined, await extractRdpDefinition(client, objectSet), args.$select, false),
171
246
  nextPageToken: r.nextPageToken,
172
247
  totalCount: r.totalCount
173
248
  });