@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
@@ -0,0 +1,382 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { Employee, FooInterface } from "@osdk/client.test.ontology";
18
+ import { FauxFoundry, ontologies, startNodeApiServer } from "@osdk/shared.test";
19
+ import invariant from "tiny-invariant";
20
+ import { beforeAll, describe, expect, it } from "vitest";
21
+ import { additionalContext } from "../../Client.js";
22
+ import { createClient } from "../../createClient.js";
23
+ import { TestLogger } from "../../logger/TestLogger.js";
24
+ import { objectSetDefinitions } from "../../objectSet/createObjectSet.js";
25
+ import { getObjectTypesThatInvalidate } from "./getObjectTypesThatInvalidate.js";
26
+ function setupOntology(fauxFoundry) {
27
+ const fauxOntology = fauxFoundry.getDefaultOntology();
28
+ ontologies.addEmployeeOntology(fauxOntology);
29
+ }
30
+ describe(getObjectTypesThatInvalidate, () => {
31
+ let client;
32
+ let apiServer;
33
+ let fauxFoundry;
34
+ beforeAll(() => {
35
+ const logger = new TestLogger();
36
+ const testSetup = startNodeApiServer(new FauxFoundry("https://stack.palantir.com/", undefined, {
37
+ logger
38
+ }), createClient, {
39
+ logger
40
+ });
41
+ ({
42
+ client,
43
+ apiServer,
44
+ fauxFoundry
45
+ } = testSetup);
46
+ setupOntology(fauxFoundry);
47
+ return () => {
48
+ testSetup.apiServer.close();
49
+ };
50
+ });
51
+ async function helper(osdkObjectSet) {
52
+ const wireObjectSet = objectSetDefinitions.get(osdkObjectSet);
53
+ !wireObjectSet ? process.env.NODE_ENV !== "production" ? invariant(false) : invariant(false) : void 0;
54
+ const {
55
+ resultType,
56
+ invalidationSet,
57
+ counts
58
+ } = await getObjectTypesThatInvalidate(client[additionalContext], wireObjectSet);
59
+ return {
60
+ resultType: resultType.apiName,
61
+ invalidationSet,
62
+ counts
63
+ };
64
+ }
65
+ it("supports basic object set", async () => {
66
+ const osdkObjectSet = client(Employee);
67
+ const {
68
+ resultType,
69
+ invalidationSet
70
+ } = await helper(osdkObjectSet);
71
+ expect(resultType).toEqual("Employee");
72
+ expect([...invalidationSet]).toEqual([]);
73
+ });
74
+ it("supports basic pivotTo another type", async () => {
75
+ const osdkObjectSet = client(Employee).pivotTo("officeLink");
76
+ const {
77
+ resultType,
78
+ invalidationSet
79
+ } = await helper(osdkObjectSet);
80
+ expect(resultType).toEqual("Office");
81
+ expect([...invalidationSet]).toEqual(["Employee"]);
82
+ });
83
+ it("supports basic pivotTo same type", async () => {
84
+ const osdkObjectSet = client(Employee).pivotTo("lead");
85
+ const {
86
+ resultType,
87
+ invalidationSet
88
+ } = await helper(osdkObjectSet);
89
+ expect(resultType).toEqual("Employee");
90
+ expect([...invalidationSet]).toEqual(["Employee"]);
91
+ });
92
+ it("supports A -> B -> A", async () => {
93
+ const empOS = client(Employee).pivotTo("officeLink").pivotTo("occupants");
94
+ const {
95
+ resultType,
96
+ invalidationSet
97
+ } = await helper(empOS);
98
+ expect(resultType).toEqual("Employee");
99
+ expect([...invalidationSet]).toEqual(["Employee", "Office"]);
100
+ });
101
+ it("supports basic pivot property rdps", async () => {
102
+ const empOS = client(Employee).withProperties({
103
+ x: b => b.pivotTo("officeLink").selectProperty("name")
104
+ });
105
+ const {
106
+ resultType,
107
+ invalidationSet
108
+ } = await helper(empOS);
109
+ expect(resultType).toEqual("Employee");
110
+ expect([...invalidationSet]).toEqual(["Office"]);
111
+ });
112
+ it("supports basic localized", async () => {
113
+ const empOS = client(Employee).withProperties({
114
+ x: b => b.selectProperty("employeeId")
115
+ });
116
+ const {
117
+ resultType,
118
+ invalidationSet
119
+ } = await helper(empOS);
120
+ expect(resultType).toEqual("Employee");
121
+ expect([...invalidationSet]).toEqual([]);
122
+ });
123
+
124
+ // Filter Operations Tests
125
+ it("supports filter operations", async () => {
126
+ const osdkObjectSet = client(Employee).where({
127
+ employeeId: {
128
+ $gt: 100
129
+ }
130
+ });
131
+ const {
132
+ resultType,
133
+ invalidationSet
134
+ } = await helper(osdkObjectSet);
135
+ expect(resultType).toEqual("Employee");
136
+ expect([...invalidationSet]).toEqual([]);
137
+ });
138
+ it("supports filter with chained pivots", async () => {
139
+ const osdkObjectSet = client(Employee).where({
140
+ employeeId: {
141
+ $gt: 100
142
+ }
143
+ }).pivotTo("officeLink").where({
144
+ capacity: {
145
+ $gte: 10
146
+ }
147
+ });
148
+ const {
149
+ resultType,
150
+ invalidationSet
151
+ } = await helper(osdkObjectSet);
152
+ expect(resultType).toEqual("Office");
153
+ expect([...invalidationSet]).toEqual(["Employee"]);
154
+ });
155
+
156
+ // Union/Intersect/Subtract Tests
157
+ it("supports union of same type", async () => {
158
+ const set1 = client(Employee).where({
159
+ employeeId: {
160
+ $lt: 100
161
+ }
162
+ });
163
+ const set2 = client(Employee).where({
164
+ employeeId: {
165
+ $gt: 200
166
+ }
167
+ });
168
+ const unionSet = set1.union(set2);
169
+ const {
170
+ resultType,
171
+ invalidationSet,
172
+ counts
173
+ } = await helper(unionSet);
174
+ console.log(counts);
175
+ expect(resultType).toEqual("Employee");
176
+ expect([...invalidationSet]).toEqual([]);
177
+ });
178
+ it("supports crazy unions union of same type", async () => {
179
+ const set1 = client(Employee).where({
180
+ employeeId: {
181
+ $lt: 100
182
+ }
183
+ }).pivotTo("lead").pivotTo("peeps");
184
+ const set2 = client(Employee).where({
185
+ employeeId: {
186
+ $gt: 200
187
+ }
188
+ });
189
+ const unionSet = set1.union(set2);
190
+ const {
191
+ resultType,
192
+ invalidationSet,
193
+ counts
194
+ } = await helper(unionSet);
195
+ console.log(counts);
196
+ expect(resultType).toEqual("Employee");
197
+ expect([...invalidationSet]).toEqual(["Employee"]);
198
+ });
199
+ it("supports crazy unions union of different types", async () => {
200
+ const set1 = client(Employee).pivotTo("officeLink").pivotTo("occupants");
201
+ const set2 = client(Employee).where({
202
+ employeeId: {
203
+ $gt: 200
204
+ }
205
+ });
206
+ const unionSet = set1.union(set2);
207
+ const {
208
+ resultType,
209
+ invalidationSet,
210
+ counts
211
+ } = await helper(unionSet);
212
+ console.log(counts);
213
+ expect(resultType).toEqual("Employee");
214
+ expect([...invalidationSet]).toEqual(["Employee", "Office"]);
215
+ });
216
+ it("supports intersect with pivoted sets", async () => {
217
+ const set1 = client(Employee).pivotTo("officeLink");
218
+ const set2 = client(Employee).where({
219
+ employeeId: 5
220
+ }).pivotTo("officeLink");
221
+ const intersectSet = set1.intersect(set2);
222
+ const {
223
+ resultType,
224
+ invalidationSet
225
+ } = await helper(intersectSet);
226
+ expect(resultType).toEqual("Office");
227
+ expect([...invalidationSet]).toEqual(["Employee"]);
228
+ });
229
+ it("supports subtract operations", async () => {
230
+ const allEmployees = client(Employee);
231
+ const managers = client(Employee).where({
232
+ employeeId: 5
233
+ });
234
+ const nonManagers = allEmployees.subtract(managers);
235
+ const {
236
+ resultType,
237
+ invalidationSet
238
+ } = await helper(nonManagers);
239
+ expect(resultType).toEqual("Employee");
240
+ expect([...invalidationSet]).toEqual([]);
241
+ });
242
+
243
+ // Interface Tests
244
+ it("supports interface base object sets", async () => {
245
+ const osdkObjectSet = client(FooInterface);
246
+ const {
247
+ resultType,
248
+ invalidationSet,
249
+ counts
250
+ } = await helper(osdkObjectSet);
251
+ expect(resultType).toEqual("FooInterface");
252
+ // Should bump counts for all implementing types
253
+ expect(Object.keys(counts).length).toBeGreaterThan(0);
254
+ });
255
+ it.skip("supports interface link search around", async () => {
256
+ // FIXME, we don't have a good interface link example right now
257
+
258
+ // Assuming FooInterface has links - skip if not available
259
+ // const osdkObjectSet = client(FooInterface).pivotTo("someLink");
260
+
261
+ // const { resultType, invalidationSet } = await helper(osdkObjectSet);
262
+ // Verify it handles interface pivots correctly
263
+ });
264
+
265
+ // Complex RDP Tests
266
+ it("supports multiple RDP properties", async () => {
267
+ const osdkObjectSet = client(Employee).withProperties({
268
+ officeCapacity: b => b.pivotTo("officeLink").selectProperty("capacity"),
269
+ managerName: b => b.pivotTo("lead").selectProperty("fullName"),
270
+ localProp: b => b.selectProperty("employeeId")
271
+ });
272
+ const {
273
+ resultType,
274
+ invalidationSet
275
+ } = await helper(osdkObjectSet);
276
+ expect(resultType).toEqual("Employee");
277
+ expect([...invalidationSet]).toContain("Office");
278
+ expect([...invalidationSet]).toContain("Employee"); // from lead pivot
279
+ });
280
+ it("supports nested RDP operations", async () => {
281
+ const osdkObjectSet = client(Employee).withProperties({
282
+ computation: b => b.selectProperty("employeeId").add(b.pivotTo("officeLink").aggregate("$count"))
283
+ });
284
+ const {
285
+ resultType,
286
+ invalidationSet
287
+ } = await helper(osdkObjectSet);
288
+ expect(resultType).toEqual("Employee");
289
+ expect([...invalidationSet]).toEqual(["Office"]);
290
+ });
291
+
292
+ // Edge Cases and Error Handling
293
+ it("handles empty union sets gracefully", async () => {
294
+ // Create an empty union somehow
295
+ const emptyUnion = client(Employee).where({
296
+ employeeId: -1
297
+ }).union(client(Employee).where({
298
+ employeeId: -2
299
+ }));
300
+ const {
301
+ resultType,
302
+ invalidationSet
303
+ } = await helper(emptyUnion);
304
+ expect(resultType).toEqual("Employee");
305
+ expect([...invalidationSet]).toEqual([]);
306
+ });
307
+ it("verifies counts are calculated correctly", async () => {
308
+ const osdkObjectSet = client(Employee).pivotTo("officeLink").pivotTo("occupants").pivotTo("lead");
309
+ const {
310
+ counts
311
+ } = await helper(osdkObjectSet);
312
+ // Employee should be counted multiple times
313
+ expect(counts["Employee"]).toBeGreaterThan(1);
314
+ expect(counts["Office"]).toBeGreaterThan(0);
315
+ });
316
+ it("handles count adjustment for result type", async () => {
317
+ const osdkObjectSet = client(Employee);
318
+ const {
319
+ resultType,
320
+ counts,
321
+ invalidationSet
322
+ } = await helper(osdkObjectSet);
323
+ // Result type should not be in invalidation set even if in counts
324
+ expect(resultType).toEqual("Employee");
325
+ expect(counts["Employee"]).toBeDefined();
326
+ expect([...invalidationSet]).not.toContain("Employee");
327
+ });
328
+ it("handles nearest neighbor", async () => {
329
+ const osdkObjectSet = client(Employee).nearestNeighbors("hi", 3, "skillSetEmbedding").pivotTo("officeLink");
330
+ const {
331
+ resultType,
332
+ invalidationSet
333
+ } = await helper(osdkObjectSet);
334
+ expect(resultType).toEqual("Office");
335
+ expect([...invalidationSet]).toContain("Employee");
336
+ });
337
+
338
+ // Test for Unhandled Types
339
+ it("verifies errors for unhandled types", async () => {
340
+ // Create mock objects for unsupported types
341
+ const unsupportedTypes = [{
342
+ type: "reference",
343
+ objectType: "Employee",
344
+ id: "123"
345
+ }, {
346
+ type: "static",
347
+ objects: []
348
+ }, {
349
+ type: "asType",
350
+ objectSet: {
351
+ type: "base",
352
+ objectType: "Employee"
353
+ },
354
+ targetType: "Office"
355
+ }, {
356
+ type: "asBaseObjectTypes",
357
+ objectSet: {
358
+ type: "base",
359
+ objectType: "Employee"
360
+ }
361
+ }];
362
+
363
+ // Test each type throws an appropriate error
364
+ for (const wireObjectSet of unsupportedTypes) {
365
+ await expect(getObjectTypesThatInvalidate(client[additionalContext], wireObjectSet)).rejects.toThrow(/Unsupported|Unhandled ObjectSet type/);
366
+ }
367
+ });
368
+ it("supports RDP unary operations", async () => {
369
+ const osdkObjectSet = client(Employee).withProperties({
370
+ absolute: b => b.selectProperty("employeeId").abs(),
371
+ negated: b => b.selectProperty("employeeId").negate(),
372
+ extracted: b => b.selectProperty("startDate").extractPart("YEARS")
373
+ });
374
+ const {
375
+ resultType,
376
+ invalidationSet
377
+ } = await helper(osdkObjectSet);
378
+ expect(resultType).toEqual("Employee");
379
+ expect([...invalidationSet]).toEqual([]);
380
+ });
381
+ });
382
+ //# sourceMappingURL=getObjectTypesThatInvalidate.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getObjectTypesThatInvalidate.test.js","names":["Employee","FooInterface","FauxFoundry","ontologies","startNodeApiServer","invariant","beforeAll","describe","expect","it","additionalContext","createClient","TestLogger","objectSetDefinitions","getObjectTypesThatInvalidate","setupOntology","fauxFoundry","fauxOntology","getDefaultOntology","addEmployeeOntology","client","apiServer","logger","testSetup","undefined","close","helper","osdkObjectSet","wireObjectSet","get","process","env","NODE_ENV","resultType","invalidationSet","counts","apiName","toEqual","pivotTo","empOS","withProperties","x","b","selectProperty","where","employeeId","$gt","capacity","$gte","set1","$lt","set2","unionSet","union","console","log","intersectSet","intersect","allEmployees","managers","nonManagers","subtract","Object","keys","length","toBeGreaterThan","skip","officeCapacity","managerName","localProp","toContain","computation","add","aggregate","emptyUnion","toBeDefined","not","nearestNeighbors","unsupportedTypes","type","objectType","id","objects","objectSet","targetType","rejects","toThrow","absolute","abs","negated","negate","extracted","extractPart"],"sources":["getObjectTypesThatInvalidate.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Employee, FooInterface } from \"@osdk/client.test.ontology\";\n\nimport type { ObjectOrInterfaceDefinition, ObjectSet } from \"@osdk/api\";\nimport type { SetupServer } from \"@osdk/shared.test\";\nimport { FauxFoundry, ontologies, startNodeApiServer } from \"@osdk/shared.test\";\nimport invariant from \"tiny-invariant\";\nimport { beforeAll, describe, expect, it } from \"vitest\";\nimport type { Client } from \"../../Client.js\";\nimport { additionalContext } from \"../../Client.js\";\nimport { createClient } from \"../../createClient.js\";\nimport { TestLogger } from \"../../logger/TestLogger.js\";\nimport { objectSetDefinitions } from \"../../objectSet/createObjectSet.js\";\nimport { getObjectTypesThatInvalidate } from \"./getObjectTypesThatInvalidate.js\";\n\nfunction setupOntology(fauxFoundry: FauxFoundry) {\n const fauxOntology = fauxFoundry.getDefaultOntology();\n ontologies.addEmployeeOntology(fauxOntology);\n}\n\ndescribe(getObjectTypesThatInvalidate, () => {\n let client: Client;\n let apiServer: SetupServer;\n let fauxFoundry: FauxFoundry;\n\n beforeAll(() => {\n const logger = new TestLogger();\n const testSetup = startNodeApiServer(\n new FauxFoundry(\"https://stack.palantir.com/\", undefined, { logger }),\n createClient,\n { logger },\n );\n ({ client, apiServer, fauxFoundry } = testSetup);\n\n setupOntology(fauxFoundry);\n\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n async function helper<T extends ObjectOrInterfaceDefinition>(\n osdkObjectSet: ObjectSet<T>,\n ) {\n const wireObjectSet = objectSetDefinitions.get(osdkObjectSet);\n invariant(wireObjectSet);\n\n const { resultType, invalidationSet, counts } =\n await getObjectTypesThatInvalidate(\n client[additionalContext],\n wireObjectSet,\n );\n\n return {\n resultType: resultType.apiName,\n invalidationSet,\n counts,\n };\n }\n\n it(\"supports basic object set\", async () => {\n const osdkObjectSet = client(Employee);\n\n const { resultType, invalidationSet } = await helper(osdkObjectSet);\n expect(resultType).toEqual(\"Employee\");\n expect([...invalidationSet]).toEqual([]);\n });\n\n it(\"supports basic pivotTo another type\", async () => {\n const osdkObjectSet = client(Employee).pivotTo(\"officeLink\");\n\n const { resultType, invalidationSet } = await helper(osdkObjectSet);\n\n expect(resultType).toEqual(\"Office\");\n expect([...invalidationSet]).toEqual([\"Employee\"]);\n });\n\n it(\"supports basic pivotTo same type\", async () => {\n const osdkObjectSet = client(Employee).pivotTo(\"lead\");\n\n const { resultType, invalidationSet } = await helper(osdkObjectSet);\n expect(resultType).toEqual(\"Employee\");\n expect([...invalidationSet]).toEqual([\"Employee\"]);\n });\n\n it(\"supports A -> B -> A\", async () => {\n const empOS = client(Employee)\n .pivotTo(\"officeLink\")\n .pivotTo(\"occupants\");\n\n const { resultType, invalidationSet } = await helper(empOS);\n expect(resultType).toEqual(\"Employee\");\n expect([...invalidationSet]).toEqual([\"Employee\", \"Office\"]);\n });\n\n it(\"supports basic pivot property rdps\", async () => {\n const empOS = client(Employee)\n .withProperties({\n x: (b) => b.pivotTo(\"officeLink\").selectProperty(\"name\"),\n });\n\n const { resultType, invalidationSet } = await helper(empOS);\n expect(resultType).toEqual(\"Employee\");\n expect([...invalidationSet]).toEqual([\"Office\"]);\n });\n\n it(\"supports basic localized\", async () => {\n const empOS = client(Employee)\n .withProperties({\n x: (b) => b.selectProperty(\"employeeId\"),\n });\n\n const { resultType, invalidationSet } = await helper(empOS);\n expect(resultType).toEqual(\"Employee\");\n expect([...invalidationSet]).toEqual([]);\n });\n\n // Filter Operations Tests\n it(\"supports filter operations\", async () => {\n const osdkObjectSet = client(Employee).where({\n employeeId: { $gt: 100 },\n });\n\n const { resultType, invalidationSet } = await helper(osdkObjectSet);\n expect(resultType).toEqual(\"Employee\");\n expect([...invalidationSet]).toEqual([]);\n });\n\n it(\"supports filter with chained pivots\", async () => {\n const osdkObjectSet = client(Employee)\n .where({ employeeId: { $gt: 100 } })\n .pivotTo(\"officeLink\")\n .where({ capacity: { $gte: 10 } });\n\n const { resultType, invalidationSet } = await helper(osdkObjectSet);\n expect(resultType).toEqual(\"Office\");\n expect([...invalidationSet]).toEqual([\"Employee\"]);\n });\n\n // Union/Intersect/Subtract Tests\n it(\"supports union of same type\", async () => {\n const set1 = client(Employee).where({ employeeId: { $lt: 100 } });\n const set2 = client(Employee).where({ employeeId: { $gt: 200 } });\n const unionSet = set1.union(set2);\n\n const { resultType, invalidationSet, counts } = await helper(unionSet);\n console.log(counts);\n expect(resultType).toEqual(\"Employee\");\n expect([...invalidationSet]).toEqual([]);\n });\n\n it(\"supports crazy unions union of same type\", async () => {\n const set1 = client(Employee).where({ employeeId: { $lt: 100 } }).pivotTo(\n \"lead\",\n ).pivotTo(\"peeps\");\n const set2 = client(Employee).where({ employeeId: { $gt: 200 } });\n const unionSet = set1.union(set2);\n\n const { resultType, invalidationSet, counts } = await helper(unionSet);\n console.log(counts);\n expect(resultType).toEqual(\"Employee\");\n expect([...invalidationSet]).toEqual([\"Employee\"]);\n });\n\n it(\"supports crazy unions union of different types\", async () => {\n const set1 = client(Employee).pivotTo(\"officeLink\").pivotTo(\"occupants\");\n const set2 = client(Employee).where({ employeeId: { $gt: 200 } });\n const unionSet = set1.union(set2);\n\n const { resultType, invalidationSet, counts } = await helper(unionSet);\n console.log(counts);\n expect(resultType).toEqual(\"Employee\");\n expect([...invalidationSet]).toEqual([\"Employee\", \"Office\"]);\n });\n\n it(\"supports intersect with pivoted sets\", async () => {\n const set1 = client(Employee).pivotTo(\"officeLink\");\n const set2 = client(Employee).where({ employeeId: 5 }).pivotTo(\n \"officeLink\",\n );\n const intersectSet = set1.intersect(set2);\n\n const { resultType, invalidationSet } = await helper(intersectSet);\n expect(resultType).toEqual(\"Office\");\n expect([...invalidationSet]).toEqual([\"Employee\"]);\n });\n\n it(\"supports subtract operations\", async () => {\n const allEmployees = client(Employee);\n const managers = client(Employee).where({ employeeId: 5 });\n const nonManagers = allEmployees.subtract(managers);\n\n const { resultType, invalidationSet } = await helper(nonManagers);\n expect(resultType).toEqual(\"Employee\");\n expect([...invalidationSet]).toEqual([]);\n });\n\n // Interface Tests\n it(\"supports interface base object sets\", async () => {\n const osdkObjectSet = client(FooInterface);\n\n const { resultType, invalidationSet, counts } = await helper(osdkObjectSet);\n expect(resultType).toEqual(\"FooInterface\");\n // Should bump counts for all implementing types\n expect(Object.keys(counts).length).toBeGreaterThan(0);\n });\n\n it.skip(\"supports interface link search around\", async () => {\n // FIXME, we don't have a good interface link example right now\n\n // Assuming FooInterface has links - skip if not available\n // const osdkObjectSet = client(FooInterface).pivotTo(\"someLink\");\n\n // const { resultType, invalidationSet } = await helper(osdkObjectSet);\n // Verify it handles interface pivots correctly\n });\n\n // Complex RDP Tests\n it(\"supports multiple RDP properties\", async () => {\n const osdkObjectSet = client(Employee)\n .withProperties({\n officeCapacity: (b) =>\n b.pivotTo(\"officeLink\").selectProperty(\"capacity\"),\n managerName: (b) => b.pivotTo(\"lead\").selectProperty(\"fullName\"),\n localProp: (b) => b.selectProperty(\"employeeId\"),\n });\n\n const { resultType, invalidationSet } = await helper(osdkObjectSet);\n expect(resultType).toEqual(\"Employee\");\n expect([...invalidationSet]).toContain(\"Office\");\n expect([...invalidationSet]).toContain(\"Employee\"); // from lead pivot\n });\n\n it(\"supports nested RDP operations\", async () => {\n const osdkObjectSet = client(Employee)\n .withProperties({\n computation: (b) =>\n b.selectProperty(\"employeeId\").add(\n b.pivotTo(\"officeLink\").aggregate(\"$count\"),\n ),\n });\n\n const { resultType, invalidationSet } = await helper(osdkObjectSet);\n expect(resultType).toEqual(\"Employee\");\n expect([...invalidationSet]).toEqual([\"Office\"]);\n });\n\n // Edge Cases and Error Handling\n it(\"handles empty union sets gracefully\", async () => {\n // Create an empty union somehow\n const emptyUnion = client(Employee).where({ employeeId: -1 })\n .union(client(Employee).where({ employeeId: -2 }));\n\n const { resultType, invalidationSet } = await helper(emptyUnion);\n expect(resultType).toEqual(\"Employee\");\n expect([...invalidationSet]).toEqual([]);\n });\n\n it(\"verifies counts are calculated correctly\", async () => {\n const osdkObjectSet = client(Employee)\n .pivotTo(\"officeLink\")\n .pivotTo(\"occupants\")\n .pivotTo(\"lead\");\n\n const { counts } = await helper(osdkObjectSet);\n // Employee should be counted multiple times\n expect(counts[\"Employee\"]).toBeGreaterThan(1);\n expect(counts[\"Office\"]).toBeGreaterThan(0);\n });\n\n it(\"handles count adjustment for result type\", async () => {\n const osdkObjectSet = client(Employee);\n\n const { resultType, counts, invalidationSet } = await helper(osdkObjectSet);\n // Result type should not be in invalidation set even if in counts\n expect(resultType).toEqual(\"Employee\");\n expect(counts[\"Employee\"]).toBeDefined();\n expect([...invalidationSet]).not.toContain(\"Employee\");\n });\n\n it(\"handles nearest neighbor\", async () => {\n const osdkObjectSet = client(Employee)\n .nearestNeighbors(\"hi\", 3, \"skillSetEmbedding\")\n .pivotTo(\"officeLink\");\n\n const { resultType, invalidationSet } = await helper(osdkObjectSet);\n expect(resultType).toEqual(\"Office\");\n expect([...invalidationSet]).toContain(\"Employee\");\n });\n\n // Test for Unhandled Types\n it(\"verifies errors for unhandled types\", async () => {\n // Create mock objects for unsupported types\n const unsupportedTypes = [\n { type: \"reference\", objectType: \"Employee\", id: \"123\" },\n { type: \"static\", objects: [] },\n {\n type: \"asType\",\n objectSet: { type: \"base\", objectType: \"Employee\" },\n targetType: \"Office\",\n },\n {\n type: \"asBaseObjectTypes\",\n objectSet: { type: \"base\", objectType: \"Employee\" },\n },\n ];\n\n // Test each type throws an appropriate error\n for (const wireObjectSet of unsupportedTypes) {\n await expect(\n getObjectTypesThatInvalidate(\n client[additionalContext],\n wireObjectSet as any,\n ),\n ).rejects.toThrow(/Unsupported|Unhandled ObjectSet type/);\n }\n });\n\n it(\"supports RDP unary operations\", async () => {\n const osdkObjectSet = client(Employee)\n .withProperties({\n absolute: (b) => b.selectProperty(\"employeeId\").abs(),\n negated: (b) => b.selectProperty(\"employeeId\").negate(),\n extracted: (b) => b.selectProperty(\"startDate\").extractPart(\"YEARS\"),\n });\n\n const { resultType, invalidationSet } = await helper(osdkObjectSet);\n expect(resultType).toEqual(\"Employee\");\n expect([...invalidationSet]).toEqual([]);\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ /**
18
+ * Type guard to check if an item is an object instance
19
+ */
20
+ export function isObjectInstance(item) {
21
+ return item != null && typeof item === "object" && "$primaryKey" in item;
22
+ }
23
+ //# sourceMappingURL=isObjectInstance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isObjectInstance.js","names":["isObjectInstance","item"],"sources":["isObjectInstance.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Osdk } from \"@osdk/api\";\n\n/**\n * Type guard to check if an item is an object instance\n */\nexport function isObjectInstance(item: any): item is Osdk.Instance<any> {\n return item != null && typeof item === \"object\" && \"$primaryKey\" in item;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA,OAAO,SAASA,gBAAgBA,CAACC,IAAS,EAA8B;EACtE,OAAOA,IAAI,IAAI,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,aAAa,IAAIA,IAAI;AAC1E","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { AbstractHelper } from "../AbstractHelper.js";
18
+ import { SpecificLinkQuery } from "./SpecificLinkQuery.js";
19
+ export class LinksHelper extends AbstractHelper {
20
+ constructor(store, cacheKeys, whereCanonicalizer, orderByCanonicalizer) {
21
+ super(store, cacheKeys);
22
+ this.whereCanonicalizer = whereCanonicalizer;
23
+ this.orderByCanonicalizer = orderByCanonicalizer;
24
+ }
25
+ getQuery(options) {
26
+ const {
27
+ apiName
28
+ } = options.srcType;
29
+ const canonWhere = this.whereCanonicalizer.canonicalize(options.where ?? {});
30
+ const canonOrderBy = this.orderByCanonicalizer.canonicalize(options.orderBy ?? {});
31
+ const linkCacheKey = this.cacheKeys.get("specificLink", apiName, options.pk, options.linkName, canonWhere, canonOrderBy);
32
+ return this.store.queries.get(linkCacheKey, () => {
33
+ return new SpecificLinkQuery(this.store, this.store.subjects.get(linkCacheKey), linkCacheKey, options);
34
+ });
35
+ }
36
+ }
37
+ //# sourceMappingURL=LinksHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinksHelper.js","names":["AbstractHelper","SpecificLinkQuery","LinksHelper","constructor","store","cacheKeys","whereCanonicalizer","orderByCanonicalizer","getQuery","options","apiName","srcType","canonWhere","canonicalize","where","canonOrderBy","orderBy","linkCacheKey","get","pk","linkName","queries","subjects"],"sources":["LinksHelper.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { CompileTimeMetadata, ObjectTypeDefinition } from \"@osdk/api\";\nimport type { SpecificLinkPayload } from \"../../LinkPayload.js\";\n\nimport type { Observer } from \"../../ObservableClient/common.js\";\nimport type { ObserveLinks } from \"../../ObservableClient/ObserveLink.js\";\nimport { AbstractHelper } from \"../AbstractHelper.js\";\nimport type { CacheKeys } from \"../CacheKeys.js\";\nimport type { KnownCacheKey } from \"../KnownCacheKey.js\";\nimport type { OrderByCanonicalizer } from \"../OrderByCanonicalizer.js\";\nimport type { QuerySubscription } from \"../QuerySubscription.js\";\nimport type { Store } from \"../Store.js\";\nimport type { WhereClauseCanonicalizer } from \"../WhereClauseCanonicalizer.js\";\nimport type { SpecificLinkCacheKey } from \"./SpecificLinkCacheKey.js\";\nimport { SpecificLinkQuery } from \"./SpecificLinkQuery.js\";\n\nexport interface LinksHelper {\n observe<\n T extends ObjectTypeDefinition,\n L extends keyof CompileTimeMetadata<T>[\"links\"] & string,\n >(\n options: ObserveLinks.Options<T, L>,\n subFn: Observer<SpecificLinkPayload>,\n ): QuerySubscription<SpecificLinkQuery>;\n\n getQuery<\n T extends ObjectTypeDefinition,\n L extends keyof CompileTimeMetadata<T>[\"links\"] & string,\n >(options: ObserveLinks.Options<T, L>): SpecificLinkQuery;\n}\n\nexport class LinksHelper extends AbstractHelper<\n SpecificLinkQuery,\n ObserveLinks.Options<ObjectTypeDefinition, string>\n> {\n whereCanonicalizer: WhereClauseCanonicalizer;\n orderByCanonicalizer: OrderByCanonicalizer;\n\n constructor(\n store: Store,\n cacheKeys: CacheKeys<KnownCacheKey>,\n whereCanonicalizer: WhereClauseCanonicalizer,\n orderByCanonicalizer: OrderByCanonicalizer,\n ) {\n super(store, cacheKeys);\n\n this.whereCanonicalizer = whereCanonicalizer;\n this.orderByCanonicalizer = orderByCanonicalizer;\n }\n\n getQuery<\n T extends ObjectTypeDefinition,\n L extends keyof CompileTimeMetadata<T>[\"links\"] & string,\n >(options: ObserveLinks.Options<T, L>): SpecificLinkQuery {\n const { apiName } = options.srcType;\n\n const canonWhere = this.whereCanonicalizer.canonicalize(\n options.where ?? {},\n );\n const canonOrderBy = this.orderByCanonicalizer.canonicalize(\n options.orderBy ?? {},\n );\n const linkCacheKey = this.cacheKeys.get<SpecificLinkCacheKey>(\n \"specificLink\",\n apiName,\n options.pk,\n options.linkName,\n canonWhere,\n canonOrderBy,\n );\n\n return this.store.queries.get(linkCacheKey, () => {\n return new SpecificLinkQuery(\n this.store,\n this.store.subjects.get(linkCacheKey),\n linkCacheKey,\n options,\n );\n });\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA,SAASA,cAAc,QAAQ,sBAAsB;AAQrD,SAASC,iBAAiB,QAAQ,wBAAwB;AAiB1D,OAAO,MAAMC,WAAW,SAASF,cAAc,CAG7C;EAIAG,WAAWA,CACTC,KAAY,EACZC,SAAmC,EACnCC,kBAA4C,EAC5CC,oBAA0C,EAC1C;IACA,KAAK,CAACH,KAAK,EAAEC,SAAS,CAAC;IAEvB,IAAI,CAACC,kBAAkB,GAAGA,kBAAkB;IAC5C,IAAI,CAACC,oBAAoB,GAAGA,oBAAoB;EAClD;EAEAC,QAAQA,CAGNC,OAAmC,EAAqB;IACxD,MAAM;MAAEC;IAAQ,CAAC,GAAGD,OAAO,CAACE,OAAO;IAEnC,MAAMC,UAAU,GAAG,IAAI,CAACN,kBAAkB,CAACO,YAAY,CACrDJ,OAAO,CAACK,KAAK,IAAI,CAAC,CACpB,CAAC;IACD,MAAMC,YAAY,GAAG,IAAI,CAACR,oBAAoB,CAACM,YAAY,CACzDJ,OAAO,CAACO,OAAO,IAAI,CAAC,CACtB,CAAC;IACD,MAAMC,YAAY,GAAG,IAAI,CAACZ,SAAS,CAACa,GAAG,CACrC,cAAc,EACdR,OAAO,EACPD,OAAO,CAACU,EAAE,EACVV,OAAO,CAACW,QAAQ,EAChBR,UAAU,EACVG,YACF,CAAC;IAED,OAAO,IAAI,CAACX,KAAK,CAACiB,OAAO,CAACH,GAAG,CAACD,YAAY,EAAE,MAAM;MAChD,OAAO,IAAIhB,iBAAiB,CAC1B,IAAI,CAACG,KAAK,EACV,IAAI,CAACA,KAAK,CAACkB,QAAQ,CAACJ,GAAG,CAACD,YAAY,CAAC,EACrCA,YAAY,EACZR,OACF,CAAC;IACH,CAAC,CAAC;EACJ;AACF","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SpecificLinkCacheKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpecificLinkCacheKey.js","names":[],"sources":["SpecificLinkCacheKey.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectTypeDefinition, PrimaryKeyType } from \"@osdk/api\";\nimport type { CollectionStorageData } from \"../base-list/BaseCollectionQuery.js\";\nimport type { CacheKey } from \"../CacheKey.js\";\nimport type { Canonical } from \"../Canonical.js\";\nimport type { SimpleWhereClause } from \"../SimpleWhereClause.js\";\nimport type { SpecificLinkQuery } from \"./SpecificLinkQuery.js\";\n\n/**\n * Storage data format for link query cache entries, similar to ListStorageData\n */\nexport interface LinkStorageData extends CollectionStorageData {\n}\n/**\n * Cache key for a specific link query that uniquely identifies:\n * - The source object type\n * - The source object primary key\n * - The link name\n */\n\nexport interface SpecificLinkCacheKey extends\n CacheKey<\n \"specificLink\",\n LinkStorageData,\n SpecificLinkQuery,\n [\n sourceObjectType: string,\n sourcePk: PrimaryKeyType<ObjectTypeDefinition>,\n linkName: string,\n whereClause: Canonical<SimpleWhereClause>,\n orderByClause: Canonical<Record<string, \"asc\" | \"desc\" | undefined>>,\n ]\n >\n{\n}\n"],"mappings":"","ignoreList":[]}