@osdk/client 2.5.0-beta.1 → 2.5.0-beta.11

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 (541) hide show
  1. package/CHANGELOG.md +149 -3
  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/fetchMetadata.test.js +11 -0
  12. package/build/browser/fetchMetadata.test.js.map +1 -1
  13. package/build/browser/index.js +2 -0
  14. package/build/browser/index.js.map +1 -1
  15. package/build/browser/intellisense.test.helpers/orderBySuggestionIsRight.js +8 -1
  16. package/build/browser/intellisense.test.helpers/orderBySuggestionIsRight.js.map +1 -1
  17. package/build/browser/intellisense.test.js +14 -4
  18. package/build/browser/intellisense.test.js.map +1 -1
  19. package/build/browser/object/Cache.js +1 -1
  20. package/build/browser/object/Cache.js.map +1 -1
  21. package/build/browser/object/Cache.test.js +1 -1
  22. package/build/browser/object/Cache.test.js.map +1 -1
  23. package/build/browser/object/SimpleCache.js +1 -1
  24. package/build/browser/object/SimpleCache.js.map +1 -1
  25. package/build/browser/object/aggregate.js +2 -0
  26. package/build/browser/object/aggregate.js.map +1 -1
  27. package/build/browser/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.js +1 -0
  28. package/build/browser/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.js.map +1 -1
  29. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js +6 -0
  30. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  31. package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js +20 -1
  32. package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  33. package/build/browser/object/convertWireToOsdkObjects.js +4 -0
  34. package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
  35. package/build/browser/object/convertWireToOsdkObjects.test.js +14 -0
  36. package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
  37. package/build/browser/object/fetchPage.js +96 -21
  38. package/build/browser/object/fetchPage.js.map +1 -1
  39. package/build/browser/object/fetchPage.test.js +35 -1
  40. package/build/browser/object/fetchPage.test.js.map +1 -1
  41. package/build/browser/object/geotimeseriesreference.test.js +0 -2
  42. package/build/browser/object/geotimeseriesreference.test.js.map +1 -1
  43. package/build/browser/objectSet/ObjectSet.test.js +6 -0
  44. package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
  45. package/build/browser/objectSet/ObjectSetListenerWebsocket.js +31 -9
  46. package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  47. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +69 -4
  48. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  49. package/build/browser/objectSet/createObjectSet.js +3 -1
  50. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  51. package/build/browser/observable/LinkPayload.js +2 -0
  52. package/build/browser/observable/LinkPayload.js.map +1 -0
  53. package/build/browser/observable/ObjectPayload.js.map +1 -1
  54. package/build/browser/observable/ObjectSetPayload.js +2 -0
  55. package/build/browser/observable/ObjectSetPayload.js.map +1 -0
  56. package/build/browser/observable/ObservableClient/ObserveLink.js +17 -0
  57. package/build/browser/observable/ObservableClient/ObserveLink.js.map +1 -0
  58. package/build/browser/observable/ObservableClient/common.js +2 -0
  59. package/build/browser/observable/ObservableClient/common.js.map +1 -0
  60. package/build/browser/observable/ObservableClient.js +20 -0
  61. package/build/browser/observable/ObservableClient.js.map +1 -1
  62. package/build/browser/observable/Unsubscribable.js +2 -0
  63. package/build/browser/observable/Unsubscribable.js.map +1 -0
  64. package/build/browser/observable/computeObjectSetCacheKey.js +64 -0
  65. package/build/browser/observable/computeObjectSetCacheKey.js.map +1 -0
  66. package/build/browser/observable/internal/AbstractHelper.js +54 -0
  67. package/build/browser/observable/internal/AbstractHelper.js.map +1 -0
  68. package/build/browser/observable/internal/BatchContext.js +2 -0
  69. package/build/browser/observable/internal/BatchContext.js.map +1 -0
  70. package/build/browser/observable/internal/BulkObjectLoader.js +3 -3
  71. package/build/browser/observable/internal/BulkObjectLoader.js.map +1 -1
  72. package/build/browser/observable/internal/CacheKeys.js +65 -25
  73. package/build/browser/observable/internal/CacheKeys.js.map +1 -1
  74. package/build/browser/observable/internal/Changes.js +9 -0
  75. package/build/browser/observable/internal/Changes.js.map +1 -1
  76. package/build/browser/observable/internal/KnownCacheKey.js +2 -0
  77. package/build/browser/observable/internal/KnownCacheKey.js.map +1 -0
  78. package/build/browser/observable/internal/Layer.js +0 -8
  79. package/build/browser/observable/internal/Layer.js.map +1 -1
  80. package/build/browser/observable/internal/Layers.js +151 -0
  81. package/build/browser/observable/internal/Layers.js.map +1 -0
  82. package/build/browser/observable/internal/ObservableClientImpl.js +62 -3
  83. package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
  84. package/build/browser/observable/internal/OrderByCanonicalizer.js +1 -37
  85. package/build/browser/observable/internal/OrderByCanonicalizer.js.map +1 -1
  86. package/build/browser/observable/internal/Queries.js +40 -0
  87. package/build/browser/observable/internal/Queries.js.map +1 -0
  88. package/build/browser/observable/internal/Query.js +63 -5
  89. package/build/browser/observable/internal/Query.js.map +1 -1
  90. package/build/browser/observable/internal/QuerySubscription.js +48 -0
  91. package/build/browser/observable/internal/QuerySubscription.js.map +1 -0
  92. package/build/browser/observable/internal/Store.invalidation.test.js +646 -0
  93. package/build/browser/observable/internal/Store.invalidation.test.js.map +1 -0
  94. package/build/browser/observable/internal/Store.js +89 -308
  95. package/build/browser/observable/internal/Store.js.map +1 -1
  96. package/build/browser/observable/internal/Store.test.js +330 -73
  97. package/build/browser/observable/internal/Store.test.js.map +1 -1
  98. package/build/browser/observable/internal/SubjectPayload.js +2 -0
  99. package/build/browser/observable/internal/SubjectPayload.js.map +1 -0
  100. package/build/browser/observable/internal/Subjects.js +55 -0
  101. package/build/browser/observable/internal/Subjects.js.map +1 -0
  102. package/build/browser/observable/internal/UnsubscribableWrapper.js +30 -0
  103. package/build/browser/observable/internal/UnsubscribableWrapper.js.map +1 -0
  104. package/build/browser/observable/internal/WeakRefTrie.js +61 -0
  105. package/build/browser/observable/internal/WeakRefTrie.js.map +1 -0
  106. package/build/browser/observable/internal/{ActionApplication.js → actions/ActionApplication.js} +2 -2
  107. package/build/browser/observable/internal/actions/ActionApplication.js.map +1 -0
  108. package/build/{esm/observable/internal → browser/observable/internal/actions}/OptimisticJob.js +15 -6
  109. package/build/browser/observable/internal/actions/OptimisticJob.js.map +1 -0
  110. package/build/browser/observable/internal/base-list/BaseCollectionQuery.js +2 -0
  111. package/build/browser/observable/internal/base-list/BaseCollectionQuery.js.map +1 -0
  112. package/build/browser/observable/internal/base-list/BaseListQuery.js +411 -0
  113. package/build/browser/observable/internal/base-list/BaseListQuery.js.map +1 -0
  114. package/build/browser/observable/internal/base-list/createCollectionConnectable.js +50 -0
  115. package/build/browser/observable/internal/base-list/createCollectionConnectable.js.map +1 -0
  116. package/build/browser/observable/internal/base-list/createCollectionConnectable.test.js +597 -0
  117. package/build/browser/observable/internal/base-list/createCollectionConnectable.test.js.map +1 -0
  118. package/build/browser/observable/internal/base-list/removeDuplicates.js +36 -0
  119. package/build/browser/observable/internal/base-list/removeDuplicates.js.map +1 -0
  120. package/build/browser/observable/internal/createInitEntry.js +25 -0
  121. package/build/browser/observable/internal/createInitEntry.js.map +1 -0
  122. package/build/browser/observable/internal/getObjectTypesThatInvalidate.js +216 -0
  123. package/build/browser/observable/internal/getObjectTypesThatInvalidate.js.map +1 -0
  124. package/build/browser/observable/internal/getObjectTypesThatInvalidate.test.js +382 -0
  125. package/build/browser/observable/internal/getObjectTypesThatInvalidate.test.js.map +1 -0
  126. package/build/browser/observable/internal/isObjectInstance.js +23 -0
  127. package/build/browser/observable/internal/isObjectInstance.js.map +1 -0
  128. package/build/browser/observable/internal/links/LinksHelper.js +37 -0
  129. package/build/browser/observable/internal/links/LinksHelper.js.map +1 -0
  130. package/build/browser/observable/internal/links/SpecificLinkCacheKey.js +2 -0
  131. package/build/browser/observable/internal/links/SpecificLinkCacheKey.js.map +1 -0
  132. package/build/browser/observable/internal/links/SpecificLinkQuery.js +185 -0
  133. package/build/browser/observable/internal/links/SpecificLinkQuery.js.map +1 -0
  134. package/build/browser/observable/internal/list/InterfaceListQuery.js +83 -0
  135. package/build/browser/observable/internal/list/InterfaceListQuery.js.map +1 -0
  136. package/build/browser/observable/internal/list/ListCacheKey.js +2 -0
  137. package/build/browser/observable/internal/list/ListCacheKey.js.map +1 -0
  138. package/build/browser/observable/internal/list/ListQuery.js +372 -0
  139. package/build/browser/observable/internal/list/ListQuery.js.map +1 -0
  140. package/build/browser/observable/internal/list/ListQueryOptions.js +2 -0
  141. package/build/browser/observable/internal/list/ListQueryOptions.js.map +1 -0
  142. package/build/browser/observable/internal/list/ListsHelper.js +51 -0
  143. package/build/browser/observable/internal/list/ListsHelper.js.map +1 -0
  144. package/build/browser/observable/internal/list/ObjectListQuery.js +48 -0
  145. package/build/browser/observable/internal/list/ObjectListQuery.js.map +1 -0
  146. package/build/browser/observable/internal/object/ObjectCacheKey.js +2 -0
  147. package/build/browser/observable/internal/object/ObjectCacheKey.js.map +1 -0
  148. package/build/browser/observable/internal/{ObjectQuery.js → object/ObjectQuery.js} +27 -18
  149. package/build/browser/observable/internal/object/ObjectQuery.js.map +1 -0
  150. package/build/browser/observable/internal/object/ObjectsHelper.js +48 -0
  151. package/build/browser/observable/internal/object/ObjectsHelper.js.map +1 -0
  152. package/build/browser/observable/internal/objectset/ObjectSetCacheKey.js +2 -0
  153. package/build/browser/observable/internal/objectset/ObjectSetCacheKey.js.map +1 -0
  154. package/build/browser/observable/internal/objectset/ObjectSetHelper.js +69 -0
  155. package/build/browser/observable/internal/objectset/ObjectSetHelper.js.map +1 -0
  156. package/build/browser/observable/internal/objectset/ObjectSetQuery.js +151 -0
  157. package/build/browser/observable/internal/objectset/ObjectSetQuery.js.map +1 -0
  158. package/build/browser/observable/internal/objectset/ObjectSetQueryOptions.js +2 -0
  159. package/build/browser/observable/internal/objectset/ObjectSetQueryOptions.js.map +1 -0
  160. package/build/browser/observable/internal/sorting/SortingStrategy.js +78 -0
  161. package/build/browser/observable/internal/sorting/SortingStrategy.js.map +1 -0
  162. package/build/browser/observable/internal/testUtils/invalidateList.js +23 -0
  163. package/build/browser/observable/internal/testUtils/invalidateList.js.map +1 -0
  164. package/build/browser/observable/internal/testUtils/observeLink/expectStandardObserveLink.js +69 -0
  165. package/build/browser/observable/internal/testUtils/observeLink/expectStandardObserveLink.js.map +1 -0
  166. package/build/browser/observable/internal/testUtils/observeObject/expectStandardObserveObject.js +56 -0
  167. package/build/browser/observable/internal/testUtils/observeObject/expectStandardObserveObject.js.map +1 -0
  168. package/build/browser/observable/internal/testUtils.js +72 -10
  169. package/build/browser/observable/internal/testUtils.js.map +1 -1
  170. package/build/browser/ontology/loadActionMetadata.js +3 -1
  171. package/build/browser/ontology/loadActionMetadata.js.map +1 -1
  172. package/build/browser/ontology/loadFullObjectMetadata.js +2 -1
  173. package/build/browser/ontology/loadFullObjectMetadata.js.map +1 -1
  174. package/build/browser/ontology/loadInterfaceMetadata.js +2 -1
  175. package/build/browser/ontology/loadInterfaceMetadata.js.map +1 -1
  176. package/build/browser/public/unstable-do-not-use.js +1 -0
  177. package/build/browser/public/unstable-do-not-use.js.map +1 -1
  178. package/build/browser/queries/applyQuery.js +3 -3
  179. package/build/browser/queries/applyQuery.js.map +1 -1
  180. package/build/browser/util/UserAgent.js +2 -2
  181. package/build/browser/util/UserAgent.js.map +1 -1
  182. package/build/browser/util/exponentialBackoff.js +51 -0
  183. package/build/browser/util/exponentialBackoff.js.map +1 -0
  184. package/build/browser/util/exponentialBackoff.test.js +81 -0
  185. package/build/browser/util/exponentialBackoff.test.js.map +1 -0
  186. package/build/browser/util/extractObjectOrInterfaceType.js +9 -1
  187. package/build/browser/util/extractObjectOrInterfaceType.js.map +1 -1
  188. package/build/browser/util/extractObjectOrInterfaceType.test.js +2 -2
  189. package/build/browser/util/extractObjectOrInterfaceType.test.js.map +1 -1
  190. package/build/browser/util/streamutils.js +1 -1
  191. package/build/browser/util/streamutils.js.map +1 -1
  192. package/build/cjs/{chunk-URDXPIRU.cjs → chunk-3LPXQHP5.cjs} +116 -77
  193. package/build/cjs/chunk-3LPXQHP5.cjs.map +1 -0
  194. package/build/cjs/{chunk-BJYCRD5Y.cjs → chunk-GVGP7T5P.cjs} +375 -237
  195. package/build/cjs/chunk-GVGP7T5P.cjs.map +1 -0
  196. package/build/cjs/{createClient-BJo8T7Js.d.cts → createClient-mOlFts15.d.cts} +1 -0
  197. package/build/cjs/index.cjs +7 -7
  198. package/build/cjs/index.d.cts +1 -1
  199. package/build/cjs/public/internal.cjs +8 -8
  200. package/build/cjs/public/unstable-do-not-use.cjs +1824 -927
  201. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  202. package/build/cjs/public/unstable-do-not-use.d.cts +238 -17
  203. package/build/esm/Client.js +1 -1
  204. package/build/esm/Client.js.map +1 -1
  205. package/build/esm/MinimalClientContext.js.map +1 -1
  206. package/build/esm/actions/applyAction.js +4 -0
  207. package/build/esm/actions/applyAction.js.map +1 -1
  208. package/build/esm/createClient.js +6 -2
  209. package/build/esm/createClient.js.map +1 -1
  210. package/build/esm/createMinimalClient.js +2 -1
  211. package/build/esm/createMinimalClient.js.map +1 -1
  212. package/build/esm/fetchMetadata.test.js +11 -0
  213. package/build/esm/fetchMetadata.test.js.map +1 -1
  214. package/build/esm/index.js +2 -0
  215. package/build/esm/index.js.map +1 -1
  216. package/build/esm/intellisense.test.helpers/orderBySuggestionIsRight.js +8 -1
  217. package/build/esm/intellisense.test.helpers/orderBySuggestionIsRight.js.map +1 -1
  218. package/build/esm/intellisense.test.js +14 -4
  219. package/build/esm/intellisense.test.js.map +1 -1
  220. package/build/esm/object/Cache.js +1 -1
  221. package/build/esm/object/Cache.js.map +1 -1
  222. package/build/esm/object/Cache.test.js +1 -1
  223. package/build/esm/object/Cache.test.js.map +1 -1
  224. package/build/esm/object/SimpleCache.js +1 -1
  225. package/build/esm/object/SimpleCache.js.map +1 -1
  226. package/build/esm/object/aggregate.js +2 -0
  227. package/build/esm/object/aggregate.js.map +1 -1
  228. package/build/esm/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.js +1 -0
  229. package/build/esm/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.js.map +1 -1
  230. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js +6 -0
  231. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  232. package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js +20 -1
  233. package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  234. package/build/esm/object/convertWireToOsdkObjects.js +4 -0
  235. package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
  236. package/build/esm/object/convertWireToOsdkObjects.test.js +14 -0
  237. package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
  238. package/build/esm/object/fetchPage.js +96 -21
  239. package/build/esm/object/fetchPage.js.map +1 -1
  240. package/build/esm/object/fetchPage.test.js +35 -1
  241. package/build/esm/object/fetchPage.test.js.map +1 -1
  242. package/build/esm/object/geotimeseriesreference.test.js +0 -2
  243. package/build/esm/object/geotimeseriesreference.test.js.map +1 -1
  244. package/build/esm/objectSet/ObjectSet.test.js +6 -0
  245. package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
  246. package/build/esm/objectSet/ObjectSetListenerWebsocket.js +31 -9
  247. package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  248. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +69 -4
  249. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  250. package/build/esm/objectSet/createObjectSet.js +3 -1
  251. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  252. package/build/esm/observable/LinkPayload.js +2 -0
  253. package/build/esm/observable/LinkPayload.js.map +1 -0
  254. package/build/esm/observable/ObjectPayload.js.map +1 -1
  255. package/build/esm/observable/ObjectSetPayload.js +2 -0
  256. package/build/esm/observable/ObjectSetPayload.js.map +1 -0
  257. package/build/esm/observable/ObservableClient/ObserveLink.js +17 -0
  258. package/build/esm/observable/ObservableClient/ObserveLink.js.map +1 -0
  259. package/build/esm/observable/ObservableClient/common.js +2 -0
  260. package/build/esm/observable/ObservableClient/common.js.map +1 -0
  261. package/build/esm/observable/ObservableClient.js +20 -0
  262. package/build/esm/observable/ObservableClient.js.map +1 -1
  263. package/build/esm/observable/Unsubscribable.js +2 -0
  264. package/build/esm/observable/Unsubscribable.js.map +1 -0
  265. package/build/esm/observable/computeObjectSetCacheKey.js +64 -0
  266. package/build/esm/observable/computeObjectSetCacheKey.js.map +1 -0
  267. package/build/esm/observable/internal/AbstractHelper.js +54 -0
  268. package/build/esm/observable/internal/AbstractHelper.js.map +1 -0
  269. package/build/esm/observable/internal/BatchContext.js +2 -0
  270. package/build/esm/observable/internal/BatchContext.js.map +1 -0
  271. package/build/esm/observable/internal/BulkObjectLoader.js +3 -3
  272. package/build/esm/observable/internal/BulkObjectLoader.js.map +1 -1
  273. package/build/esm/observable/internal/CacheKeys.js +65 -25
  274. package/build/esm/observable/internal/CacheKeys.js.map +1 -1
  275. package/build/esm/observable/internal/Changes.js +9 -0
  276. package/build/esm/observable/internal/Changes.js.map +1 -1
  277. package/build/esm/observable/internal/KnownCacheKey.js +2 -0
  278. package/build/esm/observable/internal/KnownCacheKey.js.map +1 -0
  279. package/build/esm/observable/internal/Layer.js +0 -8
  280. package/build/esm/observable/internal/Layer.js.map +1 -1
  281. package/build/esm/observable/internal/Layers.js +151 -0
  282. package/build/esm/observable/internal/Layers.js.map +1 -0
  283. package/build/esm/observable/internal/ObservableClientImpl.js +62 -3
  284. package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
  285. package/build/esm/observable/internal/OrderByCanonicalizer.js +1 -37
  286. package/build/esm/observable/internal/OrderByCanonicalizer.js.map +1 -1
  287. package/build/esm/observable/internal/Queries.js +40 -0
  288. package/build/esm/observable/internal/Queries.js.map +1 -0
  289. package/build/esm/observable/internal/Query.js +63 -5
  290. package/build/esm/observable/internal/Query.js.map +1 -1
  291. package/build/esm/observable/internal/QuerySubscription.js +48 -0
  292. package/build/esm/observable/internal/QuerySubscription.js.map +1 -0
  293. package/build/esm/observable/internal/Store.invalidation.test.js +646 -0
  294. package/build/esm/observable/internal/Store.invalidation.test.js.map +1 -0
  295. package/build/esm/observable/internal/Store.js +89 -308
  296. package/build/esm/observable/internal/Store.js.map +1 -1
  297. package/build/esm/observable/internal/Store.test.js +330 -73
  298. package/build/esm/observable/internal/Store.test.js.map +1 -1
  299. package/build/esm/observable/internal/SubjectPayload.js +2 -0
  300. package/build/esm/observable/internal/SubjectPayload.js.map +1 -0
  301. package/build/esm/observable/internal/Subjects.js +55 -0
  302. package/build/esm/observable/internal/Subjects.js.map +1 -0
  303. package/build/esm/observable/internal/UnsubscribableWrapper.js +30 -0
  304. package/build/esm/observable/internal/UnsubscribableWrapper.js.map +1 -0
  305. package/build/esm/observable/internal/WeakRefTrie.js +61 -0
  306. package/build/esm/observable/internal/WeakRefTrie.js.map +1 -0
  307. package/build/esm/observable/internal/{ActionApplication.js → actions/ActionApplication.js} +2 -2
  308. package/build/esm/observable/internal/actions/ActionApplication.js.map +1 -0
  309. package/build/{browser/observable/internal → esm/observable/internal/actions}/OptimisticJob.js +15 -6
  310. package/build/esm/observable/internal/actions/OptimisticJob.js.map +1 -0
  311. package/build/esm/observable/internal/base-list/BaseCollectionQuery.js +2 -0
  312. package/build/esm/observable/internal/base-list/BaseCollectionQuery.js.map +1 -0
  313. package/build/esm/observable/internal/base-list/BaseListQuery.js +411 -0
  314. package/build/esm/observable/internal/base-list/BaseListQuery.js.map +1 -0
  315. package/build/esm/observable/internal/base-list/createCollectionConnectable.js +50 -0
  316. package/build/esm/observable/internal/base-list/createCollectionConnectable.js.map +1 -0
  317. package/build/esm/observable/internal/base-list/createCollectionConnectable.test.js +597 -0
  318. package/build/esm/observable/internal/base-list/createCollectionConnectable.test.js.map +1 -0
  319. package/build/esm/observable/internal/base-list/removeDuplicates.js +36 -0
  320. package/build/esm/observable/internal/base-list/removeDuplicates.js.map +1 -0
  321. package/build/esm/observable/internal/createInitEntry.js +25 -0
  322. package/build/esm/observable/internal/createInitEntry.js.map +1 -0
  323. package/build/esm/observable/internal/getObjectTypesThatInvalidate.js +216 -0
  324. package/build/esm/observable/internal/getObjectTypesThatInvalidate.js.map +1 -0
  325. package/build/esm/observable/internal/getObjectTypesThatInvalidate.test.js +382 -0
  326. package/build/esm/observable/internal/getObjectTypesThatInvalidate.test.js.map +1 -0
  327. package/build/esm/observable/internal/isObjectInstance.js +23 -0
  328. package/build/esm/observable/internal/isObjectInstance.js.map +1 -0
  329. package/build/esm/observable/internal/links/LinksHelper.js +37 -0
  330. package/build/esm/observable/internal/links/LinksHelper.js.map +1 -0
  331. package/build/esm/observable/internal/links/SpecificLinkCacheKey.js +2 -0
  332. package/build/esm/observable/internal/links/SpecificLinkCacheKey.js.map +1 -0
  333. package/build/esm/observable/internal/links/SpecificLinkQuery.js +185 -0
  334. package/build/esm/observable/internal/links/SpecificLinkQuery.js.map +1 -0
  335. package/build/esm/observable/internal/list/InterfaceListQuery.js +83 -0
  336. package/build/esm/observable/internal/list/InterfaceListQuery.js.map +1 -0
  337. package/build/esm/observable/internal/list/ListCacheKey.js +2 -0
  338. package/build/esm/observable/internal/list/ListCacheKey.js.map +1 -0
  339. package/build/esm/observable/internal/list/ListQuery.js +372 -0
  340. package/build/esm/observable/internal/list/ListQuery.js.map +1 -0
  341. package/build/esm/observable/internal/list/ListQueryOptions.js +2 -0
  342. package/build/esm/observable/internal/list/ListQueryOptions.js.map +1 -0
  343. package/build/esm/observable/internal/list/ListsHelper.js +51 -0
  344. package/build/esm/observable/internal/list/ListsHelper.js.map +1 -0
  345. package/build/esm/observable/internal/list/ObjectListQuery.js +48 -0
  346. package/build/esm/observable/internal/list/ObjectListQuery.js.map +1 -0
  347. package/build/esm/observable/internal/object/ObjectCacheKey.js +2 -0
  348. package/build/esm/observable/internal/object/ObjectCacheKey.js.map +1 -0
  349. package/build/esm/observable/internal/{ObjectQuery.js → object/ObjectQuery.js} +27 -18
  350. package/build/esm/observable/internal/object/ObjectQuery.js.map +1 -0
  351. package/build/esm/observable/internal/object/ObjectsHelper.js +48 -0
  352. package/build/esm/observable/internal/object/ObjectsHelper.js.map +1 -0
  353. package/build/esm/observable/internal/objectset/ObjectSetCacheKey.js +2 -0
  354. package/build/esm/observable/internal/objectset/ObjectSetCacheKey.js.map +1 -0
  355. package/build/esm/observable/internal/objectset/ObjectSetHelper.js +69 -0
  356. package/build/esm/observable/internal/objectset/ObjectSetHelper.js.map +1 -0
  357. package/build/esm/observable/internal/objectset/ObjectSetQuery.js +151 -0
  358. package/build/esm/observable/internal/objectset/ObjectSetQuery.js.map +1 -0
  359. package/build/esm/observable/internal/objectset/ObjectSetQueryOptions.js +2 -0
  360. package/build/esm/observable/internal/objectset/ObjectSetQueryOptions.js.map +1 -0
  361. package/build/esm/observable/internal/sorting/SortingStrategy.js +78 -0
  362. package/build/esm/observable/internal/sorting/SortingStrategy.js.map +1 -0
  363. package/build/esm/observable/internal/testUtils/invalidateList.js +23 -0
  364. package/build/esm/observable/internal/testUtils/invalidateList.js.map +1 -0
  365. package/build/esm/observable/internal/testUtils/observeLink/expectStandardObserveLink.js +69 -0
  366. package/build/esm/observable/internal/testUtils/observeLink/expectStandardObserveLink.js.map +1 -0
  367. package/build/esm/observable/internal/testUtils/observeObject/expectStandardObserveObject.js +56 -0
  368. package/build/esm/observable/internal/testUtils/observeObject/expectStandardObserveObject.js.map +1 -0
  369. package/build/esm/observable/internal/testUtils.js +72 -10
  370. package/build/esm/observable/internal/testUtils.js.map +1 -1
  371. package/build/esm/ontology/loadActionMetadata.js +3 -1
  372. package/build/esm/ontology/loadActionMetadata.js.map +1 -1
  373. package/build/esm/ontology/loadFullObjectMetadata.js +2 -1
  374. package/build/esm/ontology/loadFullObjectMetadata.js.map +1 -1
  375. package/build/esm/ontology/loadInterfaceMetadata.js +2 -1
  376. package/build/esm/ontology/loadInterfaceMetadata.js.map +1 -1
  377. package/build/esm/public/unstable-do-not-use.js +1 -0
  378. package/build/esm/public/unstable-do-not-use.js.map +1 -1
  379. package/build/esm/queries/applyQuery.js +3 -3
  380. package/build/esm/queries/applyQuery.js.map +1 -1
  381. package/build/esm/util/UserAgent.js +2 -2
  382. package/build/esm/util/UserAgent.js.map +1 -1
  383. package/build/esm/util/exponentialBackoff.js +51 -0
  384. package/build/esm/util/exponentialBackoff.js.map +1 -0
  385. package/build/esm/util/exponentialBackoff.test.js +81 -0
  386. package/build/esm/util/exponentialBackoff.test.js.map +1 -0
  387. package/build/esm/util/extractObjectOrInterfaceType.js +9 -1
  388. package/build/esm/util/extractObjectOrInterfaceType.js.map +1 -1
  389. package/build/esm/util/extractObjectOrInterfaceType.test.js +2 -2
  390. package/build/esm/util/extractObjectOrInterfaceType.test.js.map +1 -1
  391. package/build/esm/util/streamutils.js +1 -1
  392. package/build/esm/util/streamutils.js.map +1 -1
  393. package/build/types/Client.d.ts +1 -1
  394. package/build/types/MinimalClientContext.d.ts +1 -0
  395. package/build/types/MinimalClientContext.d.ts.map +1 -1
  396. package/build/types/actions/applyAction.d.ts.map +1 -1
  397. package/build/types/createClient.d.ts +1 -0
  398. package/build/types/createClient.d.ts.map +1 -1
  399. package/build/types/index.d.ts +1 -1
  400. package/build/types/index.d.ts.map +1 -1
  401. package/build/types/object/fetchPage.d.ts.map +1 -1
  402. package/build/types/observable/LinkPayload.d.ts +9 -0
  403. package/build/types/observable/LinkPayload.d.ts.map +1 -0
  404. package/build/types/observable/ObjectPayload.d.ts +4 -0
  405. package/build/types/observable/ObjectPayload.d.ts.map +1 -1
  406. package/build/types/observable/ObjectSetPayload.d.ts +5 -0
  407. package/build/types/observable/ObjectSetPayload.d.ts.map +1 -0
  408. package/build/types/observable/ObservableClient/ObserveLink.d.ts +32 -0
  409. package/build/types/observable/ObservableClient/ObserveLink.d.ts.map +1 -0
  410. package/build/types/observable/ObservableClient/common.d.ts +67 -0
  411. package/build/types/observable/ObservableClient/common.d.ts.map +1 -0
  412. package/build/types/observable/ObservableClient.d.ts +136 -16
  413. package/build/types/observable/ObservableClient.d.ts.map +1 -1
  414. package/build/types/observable/Unsubscribable.d.ts +3 -0
  415. package/build/types/observable/Unsubscribable.d.ts.map +1 -0
  416. package/build/types/observable/computeObjectSetCacheKey.d.ts +16 -0
  417. package/build/types/observable/computeObjectSetCacheKey.d.ts.map +1 -0
  418. package/build/types/observable/internal/AbstractHelper.d.ts +17 -0
  419. package/build/types/observable/internal/AbstractHelper.d.ts.map +1 -0
  420. package/build/types/observable/internal/BatchContext.d.ts +11 -0
  421. package/build/types/observable/internal/BatchContext.d.ts.map +1 -0
  422. package/build/types/observable/internal/BulkObjectLoader.d.ts.map +1 -1
  423. package/build/types/observable/internal/CacheKeys.d.ts +12 -6
  424. package/build/types/observable/internal/CacheKeys.d.ts.map +1 -1
  425. package/build/types/observable/internal/Changes.d.ts +10 -5
  426. package/build/types/observable/internal/Changes.d.ts.map +1 -1
  427. package/build/types/observable/internal/KnownCacheKey.d.ts +5 -0
  428. package/build/types/observable/internal/KnownCacheKey.d.ts.map +1 -0
  429. package/build/types/observable/internal/Layer.d.ts +6 -7
  430. package/build/types/observable/internal/Layer.d.ts.map +1 -1
  431. package/build/types/observable/internal/Layers.d.ts +26 -0
  432. package/build/types/observable/internal/Layers.d.ts.map +1 -0
  433. package/build/types/observable/internal/OrderByCanonicalizer.d.ts +0 -7
  434. package/build/types/observable/internal/OrderByCanonicalizer.d.ts.map +1 -1
  435. package/build/types/observable/internal/Queries.d.ts +9 -0
  436. package/build/types/observable/internal/Queries.d.ts.map +1 -0
  437. package/build/types/observable/internal/Query.d.ts +23 -6
  438. package/build/types/observable/internal/Query.d.ts.map +1 -1
  439. package/build/types/observable/internal/QuerySubscription.d.ts +1 -0
  440. package/build/types/observable/internal/QuerySubscription.d.ts.map +1 -0
  441. package/build/types/observable/internal/Store.d.ts +43 -51
  442. package/build/types/observable/internal/Store.d.ts.map +1 -1
  443. package/build/types/observable/internal/Store.invalidation.test.d.ts +1 -0
  444. package/build/types/observable/internal/Store.invalidation.test.d.ts.map +1 -0
  445. package/build/types/observable/internal/Store.test.d.ts +4 -1
  446. package/build/types/observable/internal/Store.test.d.ts.map +1 -1
  447. package/build/types/observable/internal/SubjectPayload.d.ts +5 -0
  448. package/build/types/observable/internal/SubjectPayload.d.ts.map +1 -0
  449. package/build/types/observable/internal/Subjects.d.ts +16 -0
  450. package/build/types/observable/internal/Subjects.d.ts.map +1 -0
  451. package/build/types/observable/internal/UnsubscribableWrapper.d.ts +1 -0
  452. package/build/types/observable/internal/UnsubscribableWrapper.d.ts.map +1 -0
  453. package/build/types/observable/internal/WeakRefTrie.d.ts +13 -0
  454. package/build/types/observable/internal/WeakRefTrie.d.ts.map +1 -0
  455. package/build/types/observable/internal/{ActionApplication.d.ts → actions/ActionApplication.d.ts} +2 -2
  456. package/build/types/observable/internal/{ActionApplication.d.ts.map → actions/ActionApplication.d.ts.map} +1 -1
  457. package/build/types/observable/internal/{OptimisticJob.d.ts → actions/OptimisticJob.d.ts} +4 -4
  458. package/build/types/observable/internal/actions/OptimisticJob.d.ts.map +1 -0
  459. package/build/types/observable/internal/base-list/BaseCollectionQuery.d.ts +64 -0
  460. package/build/types/observable/internal/base-list/BaseCollectionQuery.d.ts.map +1 -0
  461. package/build/types/observable/internal/base-list/BaseListQuery.d.ts +145 -0
  462. package/build/types/observable/internal/base-list/BaseListQuery.d.ts.map +1 -0
  463. package/build/types/observable/internal/base-list/createCollectionConnectable.d.ts +39 -0
  464. package/build/types/observable/internal/base-list/createCollectionConnectable.d.ts.map +1 -0
  465. package/build/types/observable/internal/base-list/createCollectionConnectable.test.d.ts +1 -0
  466. package/build/types/observable/internal/base-list/createCollectionConnectable.test.d.ts.map +1 -0
  467. package/build/types/observable/internal/base-list/removeDuplicates.d.ts +11 -0
  468. package/build/types/observable/internal/base-list/removeDuplicates.d.ts.map +1 -0
  469. package/build/types/observable/internal/createInitEntry.d.ts +3 -0
  470. package/build/types/observable/internal/createInitEntry.d.ts.map +1 -0
  471. package/build/types/observable/internal/getObjectTypesThatInvalidate.d.ts +9 -0
  472. package/build/types/observable/internal/getObjectTypesThatInvalidate.d.ts.map +1 -0
  473. package/build/types/observable/internal/getObjectTypesThatInvalidate.test.d.ts +1 -0
  474. package/build/types/observable/internal/getObjectTypesThatInvalidate.test.d.ts.map +1 -0
  475. package/build/types/observable/internal/isObjectInstance.d.ts +5 -0
  476. package/build/types/observable/internal/isObjectInstance.d.ts.map +1 -0
  477. package/build/types/observable/internal/links/LinksHelper.d.ts +31 -0
  478. package/build/types/observable/internal/links/LinksHelper.d.ts.map +1 -0
  479. package/build/types/observable/internal/links/SpecificLinkCacheKey.d.ts +17 -0
  480. package/build/types/observable/internal/links/SpecificLinkCacheKey.d.ts.map +1 -0
  481. package/build/types/observable/internal/links/SpecificLinkQuery.d.ts +47 -0
  482. package/build/types/observable/internal/links/SpecificLinkQuery.d.ts.map +1 -0
  483. package/build/types/observable/internal/list/InterfaceListQuery.d.ts +18 -0
  484. package/build/types/observable/internal/list/InterfaceListQuery.d.ts.map +1 -0
  485. package/build/types/observable/internal/list/ListCacheKey.d.ts +7 -0
  486. package/build/types/observable/internal/list/ListCacheKey.d.ts.map +1 -0
  487. package/build/types/observable/internal/list/ListQuery.d.ts +106 -0
  488. package/build/types/observable/internal/list/ListQuery.d.ts.map +1 -0
  489. package/build/types/observable/internal/list/ListQueryOptions.d.ts +4 -0
  490. package/build/types/observable/internal/list/ListQueryOptions.d.ts.map +1 -0
  491. package/build/types/observable/internal/list/ListsHelper.d.ts +19 -0
  492. package/build/types/observable/internal/list/ListsHelper.d.ts.map +1 -0
  493. package/build/types/observable/internal/list/ObjectListQuery.d.ts +18 -0
  494. package/build/types/observable/internal/list/ObjectListQuery.d.ts.map +1 -0
  495. package/build/types/observable/internal/object/ObjectCacheKey.d.ts +5 -0
  496. package/build/types/observable/internal/object/ObjectCacheKey.d.ts.map +1 -0
  497. package/build/types/observable/internal/{ObjectQuery.d.ts → object/ObjectQuery.d.ts} +11 -9
  498. package/build/types/observable/internal/object/ObjectQuery.d.ts.map +1 -0
  499. package/build/types/observable/internal/object/ObjectsHelper.d.ts +11 -0
  500. package/build/types/observable/internal/object/ObjectsHelper.d.ts.map +1 -0
  501. package/build/types/observable/internal/objectset/ObjectSetCacheKey.d.ts +16 -0
  502. package/build/types/observable/internal/objectset/ObjectSetCacheKey.d.ts.map +1 -0
  503. package/build/types/observable/internal/objectset/ObjectSetHelper.d.ts +19 -0
  504. package/build/types/observable/internal/objectset/ObjectSetHelper.d.ts.map +1 -0
  505. package/build/types/observable/internal/objectset/ObjectSetQuery.d.ts +34 -0
  506. package/build/types/observable/internal/objectset/ObjectSetQuery.d.ts.map +1 -0
  507. package/build/types/observable/internal/objectset/ObjectSetQueryOptions.d.ts +18 -0
  508. package/build/types/observable/internal/objectset/ObjectSetQueryOptions.d.ts.map +1 -0
  509. package/build/types/observable/internal/sorting/SortingStrategy.d.ts +41 -0
  510. package/build/types/observable/internal/sorting/SortingStrategy.d.ts.map +1 -0
  511. package/build/types/observable/internal/testUtils/invalidateList.d.ts +9 -0
  512. package/build/types/observable/internal/testUtils/invalidateList.d.ts.map +1 -0
  513. package/build/types/observable/internal/testUtils/observeLink/expectStandardObserveLink.d.ts +46 -0
  514. package/build/types/observable/internal/testUtils/observeLink/expectStandardObserveLink.d.ts.map +1 -0
  515. package/build/types/observable/internal/testUtils/observeObject/expectStandardObserveObject.d.ts +26 -0
  516. package/build/types/observable/internal/testUtils/observeObject/expectStandardObserveObject.d.ts.map +1 -0
  517. package/build/types/observable/internal/testUtils.d.ts +26 -4
  518. package/build/types/observable/internal/testUtils.d.ts.map +1 -1
  519. package/build/types/public/unstable-do-not-use.d.ts +5 -2
  520. package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
  521. package/build/types/util/exponentialBackoff.d.ts +14 -0
  522. package/build/types/util/exponentialBackoff.d.ts.map +1 -0
  523. package/build/types/util/exponentialBackoff.test.d.ts +1 -0
  524. package/build/types/util/exponentialBackoff.test.d.ts.map +1 -0
  525. package/package.json +25 -25
  526. package/build/browser/observable/internal/ActionApplication.js.map +0 -1
  527. package/build/browser/observable/internal/ListQuery.js +0 -618
  528. package/build/browser/observable/internal/ListQuery.js.map +0 -1
  529. package/build/browser/observable/internal/ObjectQuery.js.map +0 -1
  530. package/build/browser/observable/internal/OptimisticJob.js.map +0 -1
  531. package/build/cjs/chunk-BJYCRD5Y.cjs.map +0 -1
  532. package/build/cjs/chunk-URDXPIRU.cjs.map +0 -1
  533. package/build/esm/observable/internal/ActionApplication.js.map +0 -1
  534. package/build/esm/observable/internal/ListQuery.js +0 -618
  535. package/build/esm/observable/internal/ListQuery.js.map +0 -1
  536. package/build/esm/observable/internal/ObjectQuery.js.map +0 -1
  537. package/build/esm/observable/internal/OptimisticJob.js.map +0 -1
  538. package/build/types/observable/internal/ListQuery.d.ts +0 -88
  539. package/build/types/observable/internal/ListQuery.d.ts.map +0 -1
  540. package/build/types/observable/internal/ObjectQuery.d.ts.map +0 -1
  541. package/build/types/observable/internal/OptimisticJob.d.ts.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"ListQuery.js","names":["deepEqual","groupBy","auditTime","combineLatest","connectable","map","of","ReplaySubject","switchMap","invariant","additionalContext","ObjectDefRef","UnderlyingOsdkObject","DEBUG_ONLY__cacheKeysToString","DEBUG_ONLY__changesToString","objectSortaMatchesWhereClause","objectMatchesWhereClause","storeOsdkInstances","Query","API_NAME_IDX","TYPE_IDX","WHERE_IDX","ORDER_BY_IDX","BaseListQuery","_updateList","objectCacheKeys","append","status","batch","process","env","NODE_ENV","logger","child","methodName","debug","JSON","stringify","retainReleaseAppend","_sortCacheKeys","removeDuplicates","writeToStore","data","entry","read","cacheKey","value","write","ret","changes","registerList","#retainReleaseAppend","existingList","optimisticWrite","objectCacheKey","store","release","retain","_dispose","console","log","ListQuery","type","apiName","whereClause","minNumResults","nextPageToken","pendingPageFetch","orderBy","objectSet","sortFns","constructor","subject","apiType","opts","client","msgPrefix","otherKeys","x","join","undefined","where","createOrderBySortFns","canonicalWhere","_createConnectable","pipe","listEntry","resolvedList","length","getSubject","objectEntry","isOptimistic","fetchMore","hasMore","lastUpdated","resetOnDisconnect","connector","_preFetch","_fetchAndStore","fetchPageAndUpdate","abortController","signal","count","setStatus","Promise","resolve","pendingFetch","res","finally","#fetchPageAndUpdate","fetchPage","$nextPageToken","$pageSize","options","pageSize","Object","keys","$orderBy","aborted","reloadDataAsFullObjects","retVal","e","error","revalidateObjectType","revalidate","objectMetadata","fetchMetadata","interfaceMap","maybeUpdateAndRevalidate","optimisticId","modified","has","add","relevantObjects","_extractRelevantObjects","added","sortaMatches","size","newList","needsRevalidation","Set","toAdd","strictMatches","toRemove","deleted","obj","all","getCacheKey","$objectType","$primaryKey","existingObjectCacheKey","key","push","matchType","#matchType","extractRelevantObjectsForTypeObject","extractRelevantObjectsForTypeInterface","group","values","#extractRelevantObjectsForTypeInterface","matchesApiName","object","Array","from","addedObjects","filter","$as","modifiedObjects","#extractRelevantObjectsForTypeObject","get","sort","a","b","sortFn","registerStreamUpdates","sub","info","websocketSubscription","subscribe","onChange","onOswChange","bind","onError","onOswError","onOutOfDate","onOswOutOfDate","onSuccessfulSubscription","onOswSuccessfulSubscription","unsubscribe","#onOswSuccessfulSubscription","#onOswOutOfDate","#onOswError","errors","#onOswChange","objOrIface","state","$apiName","onOswRemoved","#onOswRemoved","existing","newObjects","o","catch","visited","entries","order","aValue","bValue","m","groups","objectTypeToPrimaryKeyToObject","fromEntries","objects","objectDef","primaryKeyApiName","$in","result","isListCacheKey"],"sources":["ListQuery.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n Logger,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n PropertyKeys,\n} from \"@osdk/api\";\nimport deepEqual from \"fast-deep-equal\";\nimport groupBy from \"object.groupby\";\nimport type { Connectable, Observable, Subscription } from \"rxjs\";\nimport {\n auditTime,\n combineLatest,\n connectable,\n map,\n of,\n ReplaySubject,\n switchMap,\n} from \"rxjs\";\nimport invariant from \"tiny-invariant\";\nimport { additionalContext, type Client } from \"../../Client.js\";\nimport type { InterfaceHolder } from \"../../object/convertWireToOsdkObjects/InterfaceHolder.js\";\nimport {\n ObjectDefRef,\n UnderlyingOsdkObject,\n} from \"../../object/convertWireToOsdkObjects/InternalSymbols.js\";\nimport type {\n ObjectHolder,\n} from \"../../object/convertWireToOsdkObjects/ObjectHolder.js\";\nimport type { ListPayload } from \"../ListPayload.js\";\nimport type { CommonObserveOptions, Status } from \"../ObservableClient.js\";\nimport {\n type CacheKey,\n DEBUG_ONLY__cacheKeysToString as DEBUG_ONLY__cacheKeysToString,\n} from \"./CacheKey.js\";\nimport type { Canonical } from \"./Canonical.js\";\nimport { type Changes, DEBUG_ONLY__changesToString } from \"./Changes.js\";\nimport type { Entry } from \"./Layer.js\";\nimport { objectSortaMatchesWhereClause as objectMatchesWhereClause } from \"./objectMatchesWhereClause.js\";\nimport { type ObjectCacheKey, storeOsdkInstances } from \"./ObjectQuery.js\";\nimport type { OptimisticId } from \"./OptimisticId.js\";\nimport { Query } from \"./Query.js\";\nimport type { SimpleWhereClause } from \"./SimpleWhereClause.js\";\nimport type { BatchContext, Store, SubjectPayload } from \"./Store.js\";\n\ninterface ListStorageData {\n data: ObjectCacheKey[];\n}\n\nexport interface ListCacheKey extends\n CacheKey<\n \"list\",\n ListStorageData,\n ListQuery,\n [\n type: \"object\" | \"interface\",\n apiName: string,\n whereClause: Canonical<SimpleWhereClause>,\n orderByClause: Canonical<Record<string, \"asc\" | \"desc\" | undefined>>,\n ]\n > //\n{}\n\nexport interface BaseListCacheKey<\n T_Type extends string,\n T_Query extends Query<any, any, any>,\n T_KeyFactoryArgs extends any[] = any[],\n> extends CacheKey<T_Type, ListStorageData, T_Query, T_KeyFactoryArgs> {\n}\n\nexport const API_NAME_IDX = 1;\nexport const TYPE_IDX = 0;\nexport const WHERE_IDX = 2;\nexport const ORDER_BY_IDX = 3;\n\nexport interface ListQueryOptions extends CommonObserveOptions {\n pageSize?: number;\n}\n\ntype ExtractRelevantObjectsResult = Record<\"added\" | \"modified\", {\n all: (ObjectHolder | InterfaceHolder)[];\n strictMatches: Set<(ObjectHolder | InterfaceHolder)>;\n sortaMatches: Set<(ObjectHolder | InterfaceHolder)>;\n}>;\n\nabstract class BaseListQuery<\n // THIS IS THE WRONG EXTENDS\n KEY extends ListCacheKey,\n PAYLOAD,\n O extends CommonObserveOptions,\n> extends Query<KEY, PAYLOAD, O> {\n //\n // Per list type implementations\n //\n\n protected abstract _sortCacheKeys(\n objectCacheKeys: ObjectCacheKey[],\n batch: BatchContext,\n ): ObjectCacheKey[];\n\n //\n // Shared Implementations\n //\n\n /**\n * Only intended to be \"protected\" and used by subclasses but exposed for\n * testing.\n *\n * @param objectCacheKeys\n * @param append\n * @param status\n * @param batch\n * @returns\n */\n _updateList(\n objectCacheKeys: Array<ObjectCacheKey>,\n append: boolean,\n status: Status,\n batch: BatchContext,\n ): Entry<ListCacheKey> {\n if (process.env.NODE_ENV !== \"production\") {\n const logger = process.env.NODE_ENV !== \"production\"\n ? this.logger?.child({ methodName: \"updateList\" })\n : this.logger;\n\n logger?.debug(\n `{status: ${status}}`,\n JSON.stringify(objectCacheKeys, null, 2),\n );\n }\n\n objectCacheKeys = this.#retainReleaseAppend(batch, append, objectCacheKeys);\n objectCacheKeys = this._sortCacheKeys(objectCacheKeys, batch);\n objectCacheKeys = removeDuplicates(objectCacheKeys, batch);\n\n return this.writeToStore({ data: objectCacheKeys }, status, batch);\n }\n\n writeToStore(\n data: ListStorageData,\n status: Status,\n batch: BatchContext,\n ): Entry<KEY> {\n const entry = batch.read(this.cacheKey);\n\n if (entry && deepEqual(data, entry.value)) {\n if (process.env.NODE_ENV !== \"production\") {\n this.logger?.child({ methodName: \"writeToStore\" }).debug(\n `Object was deep equal, just setting status`,\n );\n }\n return batch.write(this.cacheKey, entry.value, status);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n this.logger?.child({ methodName: \"writeToStore\" }).debug(\n `{status: ${status}},`,\n DEBUG_ONLY__cacheKeysToString(data.data),\n );\n }\n\n const ret = batch.write(this.cacheKey, data, status);\n batch.changes.registerList(this.cacheKey);\n return ret;\n }\n\n #retainReleaseAppend(\n batch: BatchContext,\n append: boolean,\n objectCacheKeys: ObjectCacheKey[],\n ): ObjectCacheKey[] {\n const existingList = batch.read(this.cacheKey);\n\n // whether its append or update we need to retain all the new objects\n if (!batch.optimisticWrite) {\n if (!append) {\n // we need to release all the old objects\n // N.B. the store keeps the cache keys around for a bit so we don't\n // need to worry about them being GC'd before we re-retain them\n for (const objectCacheKey of existingList?.value?.data ?? []) {\n this.store.release(objectCacheKey);\n }\n }\n\n for (const objectCacheKey of objectCacheKeys) {\n this.store.retain(objectCacheKey);\n }\n }\n\n if (append) {\n objectCacheKeys = [\n ...existingList?.value?.data ?? [],\n ...objectCacheKeys,\n ];\n }\n return objectCacheKeys;\n }\n\n _dispose(): void {\n // eslint-disable-next-line no-console\n console.log(\"DISPOSE LIST QUERY\");\n this.store.batch({}, (batch) => {\n const entry = batch.read(this.cacheKey);\n if (entry) {\n for (const objectCacheKey of entry.value?.data ?? []) {\n this.store.release(objectCacheKey);\n }\n }\n });\n }\n}\n\nexport class ListQuery extends BaseListQuery<\n ListCacheKey,\n ListPayload,\n ListQueryOptions\n> {\n // pageSize?: number; // this is the internal page size. we need to track this properly\n\n #type: \"object\" | \"interface\";\n #apiName: string;\n #whereClause: Canonical<SimpleWhereClause>;\n\n // this represents the minimum number of results we need to load if we revalidate\n #minNumResults = 0;\n\n #nextPageToken?: string;\n #pendingPageFetch?: Promise<unknown>;\n #orderBy: Canonical<Record<string, \"asc\" | \"desc\" | undefined>>;\n #objectSet: ObjectSet<ObjectTypeDefinition>;\n #sortFns: Array<\n (\n a: ObjectHolder | InterfaceHolder | undefined,\n b: ObjectHolder | InterfaceHolder | undefined,\n ) => number\n >;\n\n constructor(\n store: Store,\n subject: Observable<SubjectPayload<ListCacheKey>>,\n apiType: \"object\" | \"interface\",\n apiName: string,\n whereClause: Canonical<SimpleWhereClause>,\n orderBy: Canonical<Record<string, \"asc\" | \"desc\" | undefined>>,\n cacheKey: ListCacheKey,\n opts: ListQueryOptions,\n ) {\n super(\n store,\n subject,\n opts,\n cacheKey,\n process.env.NODE_ENV !== \"production\"\n ? (\n store.client[additionalContext].logger?.child({}, {\n msgPrefix: `ListQuery<${\n cacheKey.otherKeys.map(x => JSON.stringify(x)).join(\", \")\n }>`,\n })\n )\n : undefined,\n );\n\n this.#type = apiType;\n this.#apiName = apiName;\n this.#whereClause = whereClause;\n this.#orderBy = orderBy;\n this.#objectSet = store.client({\n type: this.#type,\n apiName: this.#apiName,\n } as ObjectTypeDefinition)\n .where(this.#whereClause);\n this.#sortFns = createOrderBySortFns(this.#orderBy);\n }\n\n get canonicalWhere(): Canonical<SimpleWhereClause> {\n return this.#whereClause;\n }\n\n protected _createConnectable(\n subject: Observable<SubjectPayload<ListCacheKey>>,\n ): Connectable<ListPayload> {\n return connectable<ListPayload>(\n subject.pipe(\n switchMap(listEntry => {\n return combineLatest({\n resolvedList: listEntry?.value?.data == null\n || listEntry.value.data.length === 0\n ? of([])\n : combineLatest(\n listEntry.value.data.map(cacheKey =>\n this.store.getSubject(cacheKey).pipe(\n map(objectEntry => objectEntry?.value!),\n )\n ),\n ),\n isOptimistic: of(listEntry.isOptimistic),\n fetchMore: of(this.fetchMore),\n hasMore: of(this.#nextPageToken != null),\n status: of(listEntry.status),\n lastUpdated: of(listEntry.lastUpdated),\n });\n }),\n // like throttle but returns the tail\n auditTime(0),\n ),\n {\n resetOnDisconnect: false,\n connector: () => new ReplaySubject(1),\n },\n );\n }\n\n protected _preFetch(): void {\n this.#nextPageToken = undefined;\n }\n\n protected async _fetchAndStore(): Promise<void> {\n if (process.env.NODE_ENV !== \"production\") {\n this.logger?.child({ methodName: \"_fetchAndStore\" }).debug(\n \"fetching pages\",\n );\n }\n while (true) {\n const entry = await this.#fetchPageAndUpdate(\n this.#objectSet,\n \"loading\",\n this.abortController?.signal,\n );\n if (!entry) {\n // we were aborted\n return;\n }\n\n invariant(entry.value?.data);\n const count = entry.value.data.length;\n\n if (count > this.#minNumResults || this.#nextPageToken == null) {\n break;\n }\n }\n this.store.batch({}, (batch) => {\n this.setStatus(\"loaded\", batch);\n });\n\n return Promise.resolve();\n }\n\n fetchMore = (): Promise<unknown> => {\n if (this.#pendingPageFetch) {\n return this.#pendingPageFetch;\n }\n\n if (this.pendingFetch) {\n this.#pendingPageFetch = new Promise(async (res) => {\n await this.pendingFetch;\n res(this.fetchMore());\n });\n return this.#pendingPageFetch;\n }\n\n if (this.#nextPageToken == null) {\n return Promise.resolve();\n }\n\n this.store.batch({}, (batch) => {\n this.setStatus(\"loading\", batch);\n });\n\n this.pendingFetch = this.#fetchPageAndUpdate(\n this.#objectSet,\n \"loaded\",\n this.abortController?.signal,\n ).finally(() => {\n this.#pendingPageFetch = undefined;\n });\n return this.pendingFetch;\n };\n\n async #fetchPageAndUpdate(\n objectSet: ObjectSet,\n status: Status,\n signal: AbortSignal | undefined,\n ): Promise<Entry<ListCacheKey> | undefined> {\n const append = this.#nextPageToken != null;\n\n try {\n let { data, nextPageToken } = await objectSet.fetchPage({\n $nextPageToken: this.#nextPageToken,\n $pageSize: this.options.pageSize,\n // For now this keeps the shared test code from falling apart\n // but shouldn't be needed ideally\n ...(Object.keys(this.#orderBy).length > 0\n ? { $orderBy: this.#orderBy }\n : {}),\n });\n\n if (signal?.aborted) {\n return;\n }\n\n this.#nextPageToken = nextPageToken;\n\n // Our caching really expects to have the full objects in the list\n // so we need to fetch them all here\n if (this.#type === \"interface\") {\n data = await reloadDataAsFullObjects(this.store.client, data);\n }\n\n const { retVal } = this.store.batch({}, (batch) => {\n return this._updateList(\n storeOsdkInstances(this.store, data, batch),\n append,\n nextPageToken ? status : \"loaded\",\n batch,\n );\n });\n\n return retVal;\n } catch (e) {\n this.logger?.error(\"error\", e);\n this.store.getSubject(this.cacheKey).error(e);\n\n // rethrowing would result in many unhandled promise rejections\n // which i don't think we want\n // throw e;\n }\n }\n\n /**\n * Will revalidate the list if its query is affected by invalidating the\n * apiName of the object type passed in.\n *\n * @param apiName to invalidate\n * @returns\n */\n revalidateObjectType = async (\n apiName: string,\n ): Promise<void> => {\n if (this.#type === \"object\") {\n if (this.#apiName === apiName) {\n await this.revalidate(/* force */ true);\n return;\n } else {\n return;\n }\n }\n //\n const objectMetadata = await this.store.client.fetchMetadata({\n type: \"object\",\n apiName,\n });\n\n if (this.#apiName in objectMetadata.interfaceMap) {\n await this.revalidate(/* force */ true);\n return;\n }\n };\n\n /**\n * Note: This method is not async because I want it to return right after it\n * finishes the synchronous updates. The promise that is returned\n * will resolve after the revalidation is complete.\n * @param changes\n * @param optimisticId\n * @returns If revalidation is needed, a promise that resolves after the\n * revalidation is complete. Otherwise, undefined.\n */\n\n maybeUpdateAndRevalidate = (\n changes: Changes,\n optimisticId: OptimisticId | undefined,\n ): Promise<void> | undefined => {\n if (process.env.NODE_ENV !== \"production\") {\n this.logger?.child({ methodName: \"maybeUpdateAndRevalidate\" }).debug(\n DEBUG_ONLY__changesToString(changes),\n );\n }\n\n if (changes.modified.has(this.cacheKey)) return;\n // mark ourselves as updated so we don't infinite recurse.\n changes.modified.add(this.cacheKey);\n\n try {\n const relevantObjects = this._extractRelevantObjects(changes);\n\n // If we got purely strict matches we can just update the list and move\n // on with our lives. But if we got sorta matches, then we need to revalidate\n // the list so we preemptively set it to loading to avoid thrashing the store.\n const status = optimisticId\n || relevantObjects.added.sortaMatches.size > 0\n || relevantObjects.modified.sortaMatches.size > 0\n ? \"loading\"\n : \"loaded\";\n\n // while we only push updates for the strict matches, we still need to\n // trigger the list updating if some of our objects changed\n\n const newList: Array<ObjectCacheKey> = [];\n\n let needsRevalidation = false;\n this.store.batch({ optimisticId, changes }, (batch) => {\n const existingList = new Set(\n batch.read(this.cacheKey)?.value?.data,\n );\n\n const toAdd = new Set<ObjectHolder | InterfaceHolder>(\n // easy case. objects are new to the cache and they match this filter\n relevantObjects.added.strictMatches,\n );\n\n // anything thats been deleted can be removed, so start there\n const toRemove = new Set<CacheKey>(changes.deleted);\n\n // deal with the modified objects\n for (const obj of relevantObjects.modified.all) {\n if (relevantObjects.modified.strictMatches.has(obj)) {\n const objectCacheKey = this.store.getCacheKey<ObjectCacheKey>(\n \"object\",\n obj.$objectType,\n obj.$primaryKey,\n );\n\n if (!existingList.has(objectCacheKey)) {\n // object is new to the list\n toAdd.add(obj);\n }\n continue;\n } else if (batch.optimisticWrite) {\n // we aren't removing objects in optimistic mode\n // we also don't want to trigger revalidation in optimistic mode\n // as it should be triggered when the optimistic job is done\n continue;\n } else {\n // object is no longer a strict match\n const existingObjectCacheKey = this.store.getCacheKey<\n ObjectCacheKey\n >(\n \"object\",\n obj.$objectType,\n obj.$primaryKey,\n );\n\n toRemove.add(existingObjectCacheKey);\n\n if (relevantObjects.modified.sortaMatches.has(obj)) {\n // since it might still be in the list we need to revalidate\n needsRevalidation = true;\n }\n }\n }\n\n for (const key of existingList) {\n if (toRemove.has(key)) continue;\n newList.push(key);\n }\n for (const obj of toAdd) {\n newList.push(\n this.store.getCacheKey<ObjectCacheKey>(\n \"object\",\n obj.$objectType,\n obj.$primaryKey,\n ),\n );\n }\n\n this._updateList(\n newList,\n /* append */ false,\n status,\n batch,\n );\n });\n\n if (needsRevalidation) {\n return this.revalidate(true);\n }\n return undefined;\n } finally {\n if (process.env.NODE_ENV !== \"production\") {\n this.logger?.child({ methodName: \"maybeUpdateAndRevalidate\" })\n .debug(\"in finally\");\n }\n }\n };\n\n #matchType(obj: ObjectHolder | InterfaceHolder): false | \"strict\" | \"sorta\" {\n // if its a strict match we can just insert it into place\n if (objectMatchesWhereClause(obj, this.#whereClause, true)) {\n return \"strict\";\n }\n // sorta match means it used a filter we cannot use on the frontend\n if (objectMatchesWhereClause(obj, this.#whereClause, false)) {\n return \"sorta\";\n }\n return false;\n }\n\n protected _extractRelevantObjects(\n changes: Changes,\n ): ExtractRelevantObjectsResult {\n // TODO refactor this ternary into subclasses\n const relevantObjects = this.#type === \"object\"\n ? this.#extractRelevantObjectsForTypeObject(changes)\n : this.#extractRelevantObjectsForTypeInterface(changes);\n\n // categorize\n for (const group of Object.values(relevantObjects)) {\n for (const obj of group.all ?? []) {\n const matchType = this.#matchType(obj);\n if (matchType) {\n group[`${matchType}Matches`].add(obj);\n }\n }\n }\n\n return relevantObjects;\n }\n\n #extractRelevantObjectsForTypeInterface(\n changes: Changes,\n ): ExtractRelevantObjectsResult {\n const matchesApiName = ([, object]: [unknown, ObjectHolder]) => {\n return this.#apiName in object[ObjectDefRef].interfaceMap;\n };\n\n const added = Array.from(changes.addedObjects).filter(matchesApiName).map((\n [, object],\n ) => object.$as(this.#apiName));\n\n const modified = Array.from(changes.modifiedObjects).filter(matchesApiName)\n .map((\n [, object],\n ) => object.$as(this.#apiName));\n\n return {\n added: {\n all: added,\n strictMatches: new Set(),\n sortaMatches: new Set(),\n },\n modified: {\n all: modified,\n strictMatches: new Set(),\n sortaMatches: new Set(),\n },\n };\n }\n\n #extractRelevantObjectsForTypeObject(\n changes: Changes,\n ): ExtractRelevantObjectsResult {\n return {\n added: {\n all: changes.addedObjects.get(this.cacheKey.otherKeys[API_NAME_IDX])\n ?? [],\n strictMatches: new Set(),\n sortaMatches: new Set(),\n },\n modified: {\n all: changes.modifiedObjects.get(this.cacheKey.otherKeys[API_NAME_IDX])\n ?? [],\n strictMatches: new Set(),\n sortaMatches: new Set(),\n },\n };\n }\n\n _sortCacheKeys(\n objectCacheKeys: ObjectCacheKey[],\n batch: BatchContext,\n ): ObjectCacheKey[] {\n if (Object.keys(this.#orderBy).length > 0) {\n objectCacheKeys = objectCacheKeys.sort((a, b) => {\n for (const sortFn of this.#sortFns) {\n const ret = sortFn(\n batch.read(a)?.value?.$as(this.#apiName),\n batch.read(b)?.value?.$as(this.#apiName),\n );\n if (ret !== 0) {\n return ret;\n }\n }\n return 0;\n });\n }\n return objectCacheKeys;\n }\n\n registerStreamUpdates(sub: Subscription): void {\n const logger = process.env.NODE_ENV !== \"production\"\n ? this.logger?.child({ methodName: \"registerStreamUpdates\" })\n : this.logger;\n\n if (process.env.NODE_ENV !== \"production\") {\n logger?.child({ methodName: \"observeList\" }).info(\n \"Subscribing from websocket\",\n );\n }\n\n // FIXME: We should only do this once. If we already have one we should probably\n // just reuse it.\n\n const websocketSubscription = this.#objectSet.subscribe({\n onChange: this.#onOswChange.bind(this),\n onError: this.#onOswError.bind(this),\n onOutOfDate: this.#onOswOutOfDate.bind(this),\n onSuccessfulSubscription: this.#onOswSuccessfulSubscription.bind(this),\n });\n\n sub.add(() => {\n if (process.env.NODE_ENV !== \"production\") {\n logger?.child({ methodName: \"observeList\" }).info(\n \"Unsubscribing from websocket\",\n );\n }\n\n websocketSubscription.unsubscribe();\n });\n }\n\n #onOswSuccessfulSubscription(): void {\n if (process.env.NODE_ENV !== \"production\") {\n this.logger?.child(\n { methodName: \"onSuccessfulSubscription\" },\n ).debug(\"\");\n }\n }\n\n #onOswOutOfDate(): void {\n if (process.env.NODE_ENV !== \"production\") {\n this.logger?.child(\n { methodName: \"onOutOfDate\" },\n ).debug(\"\");\n }\n }\n\n #onOswError(errors: {\n subscriptionClosed: boolean;\n error: any;\n }) {\n if (this.logger) {\n this.logger?.child({ methodName: \"onError\" }).error(\n \"subscription errors\",\n errors,\n );\n }\n }\n\n #onOswChange(\n { object: objOrIface, state }: ObjectUpdate<ObjectTypeDefinition, string>,\n ): void {\n const logger = process.env.NODE_ENV !== \"production\"\n ? this.logger?.child({ methodName: \"registerStreamUpdates\" })\n : this.logger;\n\n if (process.env.NODE_ENV !== \"production\") {\n logger?.child({ methodName: \"onChange\" }).debug(\n `Got an update of type: ${state}`,\n objOrIface,\n );\n }\n\n if (state === \"ADDED_OR_UPDATED\") {\n const object: ObjectHolder =\n (objOrIface.$apiName !== objOrIface.$objectType\n ? objOrIface.$as(objOrIface.$objectType)\n : objOrIface) as unknown as ObjectHolder;\n\n this.store.batch({}, (batch) => {\n storeOsdkInstances(this.store, [object as Osdk.Instance<any>], batch);\n });\n } else if (state === \"REMOVED\") {\n this.#onOswRemoved(objOrIface, logger);\n }\n }\n\n #onOswRemoved(\n objOrIface: Osdk.Instance<ObjectTypeDefinition, never, string, {}>,\n logger: Logger | undefined,\n ) {\n this.store.batch({}, (batch) => {\n // Read the truth layer (since not optimistic)\n const existing = batch.read(this.cacheKey);\n invariant(\n existing,\n \"the truth value for our list should exist as we already subscribed\",\n );\n if (existing.status === \"loaded\") {\n const objectCacheKey = this.store.getCacheKey<ObjectCacheKey>(\n \"object\",\n objOrIface.$objectType,\n objOrIface.$primaryKey,\n );\n // remove the object from the list\n const newObjects = existing.value?.data.filter(\n (o) => o !== objectCacheKey,\n );\n\n // If the filter didn't change anything, then the list was already\n // updated (or didn't exist, which is nonsensical)\n if (newObjects?.length !== existing.value?.data.length) {\n batch.changes.registerList(this.cacheKey);\n batch.write(\n this.cacheKey,\n { data: newObjects ?? [] },\n \"loaded\",\n );\n // Should there be an else for this case? Do we need to invalidate\n // the paging tokens we may have? FIXME\n }\n\n return;\n }\n // There may be a tiny race here where OSW tells us the object has\n // been removed but an outstanding invalidation of this query is\n // about to return. In this case, its possible that we remove this item\n // from the list and then the returned list load re-adds it.\n // To avoid this, we will just force reload the query to be sure\n // we don't leave things in a bad state.\n if (process.env.NODE_ENV !== \"production\") {\n logger?.info(\n \"Removing an object from an object list that is in the middle of being loaded.\",\n existing,\n );\n }\n\n this.revalidate(/* force */ true).catch((e: unknown) => {\n if (logger) {\n logger?.error(\"Uncaught error while revalidating list\", e);\n } else {\n // Make sure we write to the console if there is no logger!\n // eslint-disable-next-line no-console\n console.error(\"Uncaught error while revalidating list\", e);\n }\n });\n });\n }\n}\n\nfunction removeDuplicates(\n objectCacheKeys: ObjectCacheKey[],\n batch: BatchContext,\n) {\n const visited = new Set<ObjectCacheKey>();\n objectCacheKeys = objectCacheKeys.filter((key) => {\n batch.read(key);\n if (visited.has(key)) {\n return false;\n }\n visited.add(key);\n return true;\n });\n return objectCacheKeys;\n}\n\nfunction createOrderBySortFns(\n orderBy: Canonical<Record<string, \"asc\" | \"desc\" | undefined>>,\n) {\n return Object.entries(orderBy).map(([key, order]) => {\n return (\n a: ObjectHolder | InterfaceHolder | undefined,\n b: ObjectHolder | InterfaceHolder | undefined,\n ): number => {\n const aValue = a?.[key];\n const bValue = b?.[key];\n\n if (aValue == null && bValue == null) {\n return 0;\n }\n if (aValue == null) {\n return 1;\n }\n if (bValue == null) {\n return -1;\n }\n const m = order === \"asc\" ? -1 : 1;\n return aValue < bValue ? m : aValue > bValue ? -m : 0;\n };\n });\n}\n\n// Hopefully this can go away when we can just request the full object properties on first load\nasync function reloadDataAsFullObjects(\n client: Client,\n data: Osdk.Instance<any>[],\n) {\n const groups = groupBy(data, (x) => x.$objectType);\n const objectTypeToPrimaryKeyToObject = Object.fromEntries(\n await Promise.all(\n Object.entries(groups).map<\n Promise<\n [\n /** objectType **/ string,\n Record<string | number, Osdk.Instance<ObjectTypeDefinition>>,\n ]\n >\n >(async ([apiName, objects]) => {\n // to keep InternalSimpleOsdkInstance simple, we make both the `ObjectDefRef` and\n // the `InterfaceDefRef` optional but we know that the right one is on there\n // thus we can `!`\n const objectDef = (objects[0] as ObjectHolder)[UnderlyingOsdkObject][\n ObjectDefRef\n ]!;\n const where: SimpleWhereClause = {\n [objectDef.primaryKeyApiName]: {\n $in: objects.map(x => x.$primaryKey),\n },\n };\n\n const result = await client(\n objectDef as ObjectTypeDefinition,\n ).where(where).fetchPage();\n return [\n apiName,\n Object.fromEntries(result.data.map(\n x => [x.$primaryKey, x],\n )),\n ];\n }),\n ),\n );\n\n data = data.map((obj) => {\n invariant(\n objectTypeToPrimaryKeyToObject[obj.$objectType][obj.$primaryKey],\n `Could not find object ${obj.$objectType} ${obj.$primaryKey}`,\n );\n return objectTypeToPrimaryKeyToObject[obj.$objectType][obj.$primaryKey];\n });\n\n return data;\n}\n\nexport function isListCacheKey(\n cacheKey: CacheKey,\n): cacheKey is ListCacheKey {\n return cacheKey.type === \"list\";\n}\n\n/**\n * Copied from @osdk/api\n */\ntype ObjectUpdate<\n O extends ObjectOrInterfaceDefinition,\n P extends PropertyKeys<O>,\n> = {\n object: Osdk.Instance<O, never, P>;\n state: \"ADDED_OR_UPDATED\" | \"REMOVED\";\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA,OAAOA,SAAS,MAAM,iBAAiB;AACvC,OAAOC,OAAO,MAAM,gBAAgB;AAEpC,SACEC,SAAS,EACTC,aAAa,EACbC,WAAW,EACXC,GAAG,EACHC,EAAE,EACFC,aAAa,EACbC,SAAS,QACJ,MAAM;AACb,OAAOC,SAAS,MAAM,gBAAgB;AACtC,SAASC,iBAAiB,QAAqB,iBAAiB;AAEhE,SACEC,YAAY,EACZC,oBAAoB,QACf,0DAA0D;AAMjE,SAEEC,6BAA8D,QACzD,eAAe;AAEtB,SAAuBC,2BAA2B,QAAQ,cAAc;AAExE,SAASC,6BAA6B,IAAIC,wBAAwB,QAAQ,+BAA+B;AACzG,SAA8BC,kBAAkB,QAAQ,kBAAkB;AAE1E,SAASC,KAAK,QAAQ,YAAY;AA6BlC,OAAO,MAAMC,YAAY,GAAG,CAAC;AAC7B,OAAO,MAAMC,QAAQ,GAAG,CAAC;AACzB,OAAO,MAAMC,SAAS,GAAG,CAAC;AAC1B,OAAO,MAAMC,YAAY,GAAG,CAAC;AAY7B,MAAeC,aAAa,SAKlBL,KAAK,CAAkB;EAC/B;EACA;EACA;;EAOA;EACA;EACA;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEM,WAAWA,CACTC,eAAsC,EACtCC,MAAe,EACfC,MAAc,EACdC,KAAmB,EACE;IACrB,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;MACzC,MAAMC,MAAM,GAAGH,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,GAChD,IAAI,CAACC,MAAM,EAAEC,KAAK,CAAC;QAAEC,UAAU,EAAE;MAAa,CAAC,CAAC,GAChD,IAAI,CAACF,MAAM;MAEfA,MAAM,EAAEG,KAAK,CACX,YAAYR,MAAM,GAAG,EACrBS,IAAI,CAACC,SAAS,CAACZ,eAAe,EAAE,IAAI,EAAE,CAAC,CACzC,CAAC;IACH;IAEAA,eAAe,GAAG,IAAI,CAAC,CAACa,mBAAmB,CAACV,KAAK,EAAEF,MAAM,EAAED,eAAe,CAAC;IAC3EA,eAAe,GAAG,IAAI,CAACc,cAAc,CAACd,eAAe,EAAEG,KAAK,CAAC;IAC7DH,eAAe,GAAGe,gBAAgB,CAACf,eAAe,EAAEG,KAAK,CAAC;IAE1D,OAAO,IAAI,CAACa,YAAY,CAAC;MAAEC,IAAI,EAAEjB;IAAgB,CAAC,EAAEE,MAAM,EAAEC,KAAK,CAAC;EACpE;EAEAa,YAAYA,CACVC,IAAqB,EACrBf,MAAc,EACdC,KAAmB,EACP;IACZ,MAAMe,KAAK,GAAGf,KAAK,CAACgB,IAAI,CAAC,IAAI,CAACC,QAAQ,CAAC;IAEvC,IAAIF,KAAK,IAAI3C,SAAS,CAAC0C,IAAI,EAAEC,KAAK,CAACG,KAAK,CAAC,EAAE;MACzC,IAAIjB,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;QACzC,IAAI,CAACC,MAAM,EAAEC,KAAK,CAAC;UAAEC,UAAU,EAAE;QAAe,CAAC,CAAC,CAACC,KAAK,CACtD,4CACF,CAAC;MACH;MACA,OAAOP,KAAK,CAACmB,KAAK,CAAC,IAAI,CAACF,QAAQ,EAAEF,KAAK,CAACG,KAAK,EAAEnB,MAAM,CAAC;IACxD;IAEA,IAAIE,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;MACzC,IAAI,CAACC,MAAM,EAAEC,KAAK,CAAC;QAAEC,UAAU,EAAE;MAAe,CAAC,CAAC,CAACC,KAAK,CACtD,YAAYR,MAAM,IAAI,EACtBd,6BAA6B,CAAC6B,IAAI,CAACA,IAAI,CACzC,CAAC;IACH;IAEA,MAAMM,GAAG,GAAGpB,KAAK,CAACmB,KAAK,CAAC,IAAI,CAACF,QAAQ,EAAEH,IAAI,EAAEf,MAAM,CAAC;IACpDC,KAAK,CAACqB,OAAO,CAACC,YAAY,CAAC,IAAI,CAACL,QAAQ,CAAC;IACzC,OAAOG,GAAG;EACZ;EAEA,CAACV,mBAAmBa,CAClBvB,KAAmB,EACnBF,MAAe,EACfD,eAAiC,EACf;IAClB,MAAM2B,YAAY,GAAGxB,KAAK,CAACgB,IAAI,CAAC,IAAI,CAACC,QAAQ,CAAC;;IAE9C;IACA,IAAI,CAACjB,KAAK,CAACyB,eAAe,EAAE;MAC1B,IAAI,CAAC3B,MAAM,EAAE;QACX;QACA;QACA;QACA,KAAK,MAAM4B,cAAc,IAAIF,YAAY,EAAEN,KAAK,EAAEJ,IAAI,IAAI,EAAE,EAAE;UAC5D,IAAI,CAACa,KAAK,CAACC,OAAO,CAACF,cAAc,CAAC;QACpC;MACF;MAEA,KAAK,MAAMA,cAAc,IAAI7B,eAAe,EAAE;QAC5C,IAAI,CAAC8B,KAAK,CAACE,MAAM,CAACH,cAAc,CAAC;MACnC;IACF;IAEA,IAAI5B,MAAM,EAAE;MACVD,eAAe,GAAG,CAChB,IAAG2B,YAAY,EAAEN,KAAK,EAAEJ,IAAI,IAAI,EAAE,GAClC,GAAGjB,eAAe,CACnB;IACH;IACA,OAAOA,eAAe;EACxB;EAEAiC,QAAQA,CAAA,EAAS;IACf;IACAC,OAAO,CAACC,GAAG,CAAC,oBAAoB,CAAC;IACjC,IAAI,CAACL,KAAK,CAAC3B,KAAK,CAAC,CAAC,CAAC,EAAGA,KAAK,IAAK;MAC9B,MAAMe,KAAK,GAAGf,KAAK,CAACgB,IAAI,CAAC,IAAI,CAACC,QAAQ,CAAC;MACvC,IAAIF,KAAK,EAAE;QACT,KAAK,MAAMW,cAAc,IAAIX,KAAK,CAACG,KAAK,EAAEJ,IAAI,IAAI,EAAE,EAAE;UACpD,IAAI,CAACa,KAAK,CAACC,OAAO,CAACF,cAAc,CAAC;QACpC;MACF;IACF,CAAC,CAAC;EACJ;AACF;AAEA,OAAO,MAAMO,SAAS,SAAStC,aAAa,CAI1C;EACA;;EAEA,CAACuC,IAAI;EACL,CAACC,OAAO;EACR,CAACC,WAAW;;EAEZ;EACA,CAACC,aAAa,GAAG,CAAC;EAElB,CAACC,aAAa;EACd,CAACC,gBAAgB;EACjB,CAACC,OAAO;EACR,CAACC,SAAS;EACV,CAACC,OAAO;EAORC,WAAWA,CACThB,KAAY,EACZiB,OAAiD,EACjDC,OAA+B,EAC/BV,OAAe,EACfC,WAAyC,EACzCI,OAA8D,EAC9DvB,QAAsB,EACtB6B,IAAsB,EACtB;IACA,KAAK,CACHnB,KAAK,EACLiB,OAAO,EACPE,IAAI,EACJ7B,QAAQ,EACRhB,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,GAEjCwB,KAAK,CAACoB,MAAM,CAACjE,iBAAiB,CAAC,CAACsB,MAAM,EAAEC,KAAK,CAAC,CAAC,CAAC,EAAE;MAChD2C,SAAS,EAAE,aACT/B,QAAQ,CAACgC,SAAS,CAACxE,GAAG,CAACyE,CAAC,IAAI1C,IAAI,CAACC,SAAS,CAACyC,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;IAE7D,CAAC,CAAC,GAEFC,SACN,CAAC;IAED,IAAI,CAAC,CAAClB,IAAI,GAAGW,OAAO;IACpB,IAAI,CAAC,CAACV,OAAO,GAAGA,OAAO;IACvB,IAAI,CAAC,CAACC,WAAW,GAAGA,WAAW;IAC/B,IAAI,CAAC,CAACI,OAAO,GAAGA,OAAO;IACvB,IAAI,CAAC,CAACC,SAAS,GAAGd,KAAK,CAACoB,MAAM,CAAC;MAC7Bb,IAAI,EAAE,IAAI,CAAC,CAACA,IAAI;MAChBC,OAAO,EAAE,IAAI,CAAC,CAACA;IACjB,CAAyB,CAAC,CACvBkB,KAAK,CAAC,IAAI,CAAC,CAACjB,WAAW,CAAC;IAC3B,IAAI,CAAC,CAACM,OAAO,GAAGY,oBAAoB,CAAC,IAAI,CAAC,CAACd,OAAO,CAAC;EACrD;EAEA,IAAIe,cAAcA,CAAA,EAAiC;IACjD,OAAO,IAAI,CAAC,CAACnB,WAAW;EAC1B;EAEUoB,kBAAkBA,CAC1BZ,OAAiD,EACvB;IAC1B,OAAOpE,WAAW,CAChBoE,OAAO,CAACa,IAAI,CACV7E,SAAS,CAAC8E,SAAS,IAAI;MACrB,OAAOnF,aAAa,CAAC;QACnBoF,YAAY,EAAED,SAAS,EAAExC,KAAK,EAAEJ,IAAI,IAAI,IAAI,IACrC4C,SAAS,CAACxC,KAAK,CAACJ,IAAI,CAAC8C,MAAM,KAAK,CAAC,GACpClF,EAAE,CAAC,EAAE,CAAC,GACNH,aAAa,CACbmF,SAAS,CAACxC,KAAK,CAACJ,IAAI,CAACrC,GAAG,CAACwC,QAAQ,IAC/B,IAAI,CAACU,KAAK,CAACkC,UAAU,CAAC5C,QAAQ,CAAC,CAACwC,IAAI,CAClChF,GAAG,CAACqF,WAAW,IAAIA,WAAW,EAAE5C,KAAM,CACxC,CACF,CACF,CAAC;QACH6C,YAAY,EAAErF,EAAE,CAACgF,SAAS,CAACK,YAAY,CAAC;QACxCC,SAAS,EAAEtF,EAAE,CAAC,IAAI,CAACsF,SAAS,CAAC;QAC7BC,OAAO,EAAEvF,EAAE,CAAC,IAAI,CAAC,CAAC4D,aAAa,IAAI,IAAI,CAAC;QACxCvC,MAAM,EAAErB,EAAE,CAACgF,SAAS,CAAC3D,MAAM,CAAC;QAC5BmE,WAAW,EAAExF,EAAE,CAACgF,SAAS,CAACQ,WAAW;MACvC,CAAC,CAAC;IACJ,CAAC,CAAC;IACF;IACA5F,SAAS,CAAC,CAAC,CACb,CAAC,EACD;MACE6F,iBAAiB,EAAE,KAAK;MACxBC,SAAS,EAAEA,CAAA,KAAM,IAAIzF,aAAa,CAAC,CAAC;IACtC,CACF,CAAC;EACH;EAEU0F,SAASA,CAAA,EAAS;IAC1B,IAAI,CAAC,CAAC/B,aAAa,GAAGc,SAAS;EACjC;EAEA,MAAgBkB,cAAcA,CAAA,EAAkB;IAC9C,IAAIrE,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;MACzC,IAAI,CAACC,MAAM,EAAEC,KAAK,CAAC;QAAEC,UAAU,EAAE;MAAiB,CAAC,CAAC,CAACC,KAAK,CACxD,gBACF,CAAC;IACH;IACA,OAAO,IAAI,EAAE;MACX,MAAMQ,KAAK,GAAG,MAAM,IAAI,CAAC,CAACwD,kBAAkB,CAC1C,IAAI,CAAC,CAAC9B,SAAS,EACf,SAAS,EACT,IAAI,CAAC+B,eAAe,EAAEC,MACxB,CAAC;MACD,IAAI,CAAC1D,KAAK,EAAE;QACV;QACA;MACF;MAEA,CAAUA,KAAK,CAACG,KAAK,EAAEJ,IAAI,GAAAb,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAA3BtB,SAAS,UAATA,SAAS;MACT,MAAM6F,KAAK,GAAG3D,KAAK,CAACG,KAAK,CAACJ,IAAI,CAAC8C,MAAM;MAErC,IAAIc,KAAK,GAAG,IAAI,CAAC,CAACrC,aAAa,IAAI,IAAI,CAAC,CAACC,aAAa,IAAI,IAAI,EAAE;QAC9D;MACF;IACF;IACA,IAAI,CAACX,KAAK,CAAC3B,KAAK,CAAC,CAAC,CAAC,EAAGA,KAAK,IAAK;MAC9B,IAAI,CAAC2E,SAAS,CAAC,QAAQ,EAAE3E,KAAK,CAAC;IACjC,CAAC,CAAC;IAEF,OAAO4E,OAAO,CAACC,OAAO,CAAC,CAAC;EAC1B;EAEAb,SAAS,GAAGA,CAAA,KAAwB;IAClC,IAAI,IAAI,CAAC,CAACzB,gBAAgB,EAAE;MAC1B,OAAO,IAAI,CAAC,CAACA,gBAAgB;IAC/B;IAEA,IAAI,IAAI,CAACuC,YAAY,EAAE;MACrB,IAAI,CAAC,CAACvC,gBAAgB,GAAG,IAAIqC,OAAO,CAAC,MAAOG,GAAG,IAAK;QAClD,MAAM,IAAI,CAACD,YAAY;QACvBC,GAAG,CAAC,IAAI,CAACf,SAAS,CAAC,CAAC,CAAC;MACvB,CAAC,CAAC;MACF,OAAO,IAAI,CAAC,CAACzB,gBAAgB;IAC/B;IAEA,IAAI,IAAI,CAAC,CAACD,aAAa,IAAI,IAAI,EAAE;MAC/B,OAAOsC,OAAO,CAACC,OAAO,CAAC,CAAC;IAC1B;IAEA,IAAI,CAAClD,KAAK,CAAC3B,KAAK,CAAC,CAAC,CAAC,EAAGA,KAAK,IAAK;MAC9B,IAAI,CAAC2E,SAAS,CAAC,SAAS,EAAE3E,KAAK,CAAC;IAClC,CAAC,CAAC;IAEF,IAAI,CAAC8E,YAAY,GAAG,IAAI,CAAC,CAACP,kBAAkB,CAC1C,IAAI,CAAC,CAAC9B,SAAS,EACf,QAAQ,EACR,IAAI,CAAC+B,eAAe,EAAEC,MACxB,CAAC,CAACO,OAAO,CAAC,MAAM;MACd,IAAI,CAAC,CAACzC,gBAAgB,GAAGa,SAAS;IACpC,CAAC,CAAC;IACF,OAAO,IAAI,CAAC0B,YAAY;EAC1B,CAAC;EAED,MAAM,CAACP,kBAAkBU,CACvBxC,SAAoB,EACpB1C,MAAc,EACd0E,MAA+B,EACW;IAC1C,MAAM3E,MAAM,GAAG,IAAI,CAAC,CAACwC,aAAa,IAAI,IAAI;IAE1C,IAAI;MACF,IAAI;QAAExB,IAAI;QAAEwB;MAAc,CAAC,GAAG,MAAMG,SAAS,CAACyC,SAAS,CAAC;QACtDC,cAAc,EAAE,IAAI,CAAC,CAAC7C,aAAa;QACnC8C,SAAS,EAAE,IAAI,CAACC,OAAO,CAACC,QAAQ;QAChC;QACA;QACA,IAAIC,MAAM,CAACC,IAAI,CAAC,IAAI,CAAC,CAAChD,OAAO,CAAC,CAACoB,MAAM,GAAG,CAAC,GACrC;UAAE6B,QAAQ,EAAE,IAAI,CAAC,CAACjD;QAAQ,CAAC,GAC3B,CAAC,CAAC;MACR,CAAC,CAAC;MAEF,IAAIiC,MAAM,EAAEiB,OAAO,EAAE;QACnB;MACF;MAEA,IAAI,CAAC,CAACpD,aAAa,GAAGA,aAAa;;MAEnC;MACA;MACA,IAAI,IAAI,CAAC,CAACJ,IAAI,KAAK,WAAW,EAAE;QAC9BpB,IAAI,GAAG,MAAM6E,uBAAuB,CAAC,IAAI,CAAChE,KAAK,CAACoB,MAAM,EAAEjC,IAAI,CAAC;MAC/D;MAEA,MAAM;QAAE8E;MAAO,CAAC,GAAG,IAAI,CAACjE,KAAK,CAAC3B,KAAK,CAAC,CAAC,CAAC,EAAGA,KAAK,IAAK;QACjD,OAAO,IAAI,CAACJ,WAAW,CACrBP,kBAAkB,CAAC,IAAI,CAACsC,KAAK,EAAEb,IAAI,EAAEd,KAAK,CAAC,EAC3CF,MAAM,EACNwC,aAAa,GAAGvC,MAAM,GAAG,QAAQ,EACjCC,KACF,CAAC;MACH,CAAC,CAAC;MAEF,OAAO4F,MAAM;IACf,CAAC,CAAC,OAAOC,CAAC,EAAE;MACV,IAAI,CAACzF,MAAM,EAAE0F,KAAK,CAAC,OAAO,EAAED,CAAC,CAAC;MAC9B,IAAI,CAAClE,KAAK,CAACkC,UAAU,CAAC,IAAI,CAAC5C,QAAQ,CAAC,CAAC6E,KAAK,CAACD,CAAC,CAAC;;MAE7C;MACA;MACA;IACF;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEE,oBAAoB,GAAG,MACrB5D,OAAe,IACG;IAClB,IAAI,IAAI,CAAC,CAACD,IAAI,KAAK,QAAQ,EAAE;MAC3B,IAAI,IAAI,CAAC,CAACC,OAAO,KAAKA,OAAO,EAAE;QAC7B,MAAM,IAAI,CAAC6D,UAAU,CAAC,WAAY,IAAI,CAAC;QACvC;MACF,CAAC,MAAM;QACL;MACF;IACF;IACA;IACA,MAAMC,cAAc,GAAG,MAAM,IAAI,CAACtE,KAAK,CAACoB,MAAM,CAACmD,aAAa,CAAC;MAC3DhE,IAAI,EAAE,QAAQ;MACdC;IACF,CAAC,CAAC;IAEF,IAAI,IAAI,CAAC,CAACA,OAAO,IAAI8D,cAAc,CAACE,YAAY,EAAE;MAChD,MAAM,IAAI,CAACH,UAAU,CAAC,WAAY,IAAI,CAAC;IAEzC;EACF,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAEEI,wBAAwB,GAAGA,CACzB/E,OAAgB,EAChBgF,YAAsC,KACR;IAC9B,IAAIpG,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;MACzC,IAAI,CAACC,MAAM,EAAEC,KAAK,CAAC;QAAEC,UAAU,EAAE;MAA2B,CAAC,CAAC,CAACC,KAAK,CAClErB,2BAA2B,CAACmC,OAAO,CACrC,CAAC;IACH;IAEA,IAAIA,OAAO,CAACiF,QAAQ,CAACC,GAAG,CAAC,IAAI,CAACtF,QAAQ,CAAC,EAAE;IACzC;IACAI,OAAO,CAACiF,QAAQ,CAACE,GAAG,CAAC,IAAI,CAACvF,QAAQ,CAAC;IAEnC,IAAI;MACF,MAAMwF,eAAe,GAAG,IAAI,CAACC,uBAAuB,CAACrF,OAAO,CAAC;;MAE7D;MACA;MACA;MACA,MAAMtB,MAAM,GAAGsG,YAAY,IACpBI,eAAe,CAACE,KAAK,CAACC,YAAY,CAACC,IAAI,GAAG,CAAC,IAC3CJ,eAAe,CAACH,QAAQ,CAACM,YAAY,CAACC,IAAI,GAAG,CAAC,GACjD,SAAS,GACT,QAAQ;;MAEZ;MACA;;MAEA,MAAMC,OAA8B,GAAG,EAAE;MAEzC,IAAIC,iBAAiB,GAAG,KAAK;MAC7B,IAAI,CAACpF,KAAK,CAAC3B,KAAK,CAAC;QAAEqG,YAAY;QAAEhF;MAAQ,CAAC,EAAGrB,KAAK,IAAK;QACrD,MAAMwB,YAAY,GAAG,IAAIwF,GAAG,CAC1BhH,KAAK,CAACgB,IAAI,CAAC,IAAI,CAACC,QAAQ,CAAC,EAAEC,KAAK,EAAEJ,IACpC,CAAC;QAED,MAAMmG,KAAK,GAAG,IAAID,GAAG;QACnB;QACAP,eAAe,CAACE,KAAK,CAACO,aACxB,CAAC;;QAED;QACA,MAAMC,QAAQ,GAAG,IAAIH,GAAG,CAAW3F,OAAO,CAAC+F,OAAO,CAAC;;QAEnD;QACA,KAAK,MAAMC,GAAG,IAAIZ,eAAe,CAACH,QAAQ,CAACgB,GAAG,EAAE;UAC9C,IAAIb,eAAe,CAACH,QAAQ,CAACY,aAAa,CAACX,GAAG,CAACc,GAAG,CAAC,EAAE;YACnD,MAAM3F,cAAc,GAAG,IAAI,CAACC,KAAK,CAAC4F,WAAW,CAC3C,QAAQ,EACRF,GAAG,CAACG,WAAW,EACfH,GAAG,CAACI,WACN,CAAC;YAED,IAAI,CAACjG,YAAY,CAAC+E,GAAG,CAAC7E,cAAc,CAAC,EAAE;cACrC;cACAuF,KAAK,CAACT,GAAG,CAACa,GAAG,CAAC;YAChB;YACA;UACF,CAAC,MAAM,IAAIrH,KAAK,CAACyB,eAAe,EAAE;YAChC;YACA;YACA;YACA;UACF,CAAC,MAAM;YACL;YACA,MAAMiG,sBAAsB,GAAG,IAAI,CAAC/F,KAAK,CAAC4F,WAAW,CAGnD,QAAQ,EACRF,GAAG,CAACG,WAAW,EACfH,GAAG,CAACI,WACN,CAAC;YAEDN,QAAQ,CAACX,GAAG,CAACkB,sBAAsB,CAAC;YAEpC,IAAIjB,eAAe,CAACH,QAAQ,CAACM,YAAY,CAACL,GAAG,CAACc,GAAG,CAAC,EAAE;cAClD;cACAN,iBAAiB,GAAG,IAAI;YAC1B;UACF;QACF;QAEA,KAAK,MAAMY,GAAG,IAAInG,YAAY,EAAE;UAC9B,IAAI2F,QAAQ,CAACZ,GAAG,CAACoB,GAAG,CAAC,EAAE;UACvBb,OAAO,CAACc,IAAI,CAACD,GAAG,CAAC;QACnB;QACA,KAAK,MAAMN,GAAG,IAAIJ,KAAK,EAAE;UACvBH,OAAO,CAACc,IAAI,CACV,IAAI,CAACjG,KAAK,CAAC4F,WAAW,CACpB,QAAQ,EACRF,GAAG,CAACG,WAAW,EACfH,GAAG,CAACI,WACN,CACF,CAAC;QACH;QAEA,IAAI,CAAC7H,WAAW,CACdkH,OAAO,EACP,YAAa,KAAK,EAClB/G,MAAM,EACNC,KACF,CAAC;MACH,CAAC,CAAC;MAEF,IAAI+G,iBAAiB,EAAE;QACrB,OAAO,IAAI,CAACf,UAAU,CAAC,IAAI,CAAC;MAC9B;MACA,OAAO5C,SAAS;IAClB,CAAC,SAAS;MACR,IAAInD,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;QACzC,IAAI,CAACC,MAAM,EAAEC,KAAK,CAAC;UAAEC,UAAU,EAAE;QAA2B,CAAC,CAAC,CAC3DC,KAAK,CAAC,YAAY,CAAC;MACxB;IACF;EACF,CAAC;EAED,CAACsH,SAASC,CAACT,GAAmC,EAA8B;IAC1E;IACA,IAAIjI,wBAAwB,CAACiI,GAAG,EAAE,IAAI,CAAC,CAACjF,WAAW,EAAE,IAAI,CAAC,EAAE;MAC1D,OAAO,QAAQ;IACjB;IACA;IACA,IAAIhD,wBAAwB,CAACiI,GAAG,EAAE,IAAI,CAAC,CAACjF,WAAW,EAAE,KAAK,CAAC,EAAE;MAC3D,OAAO,OAAO;IAChB;IACA,OAAO,KAAK;EACd;EAEUsE,uBAAuBA,CAC/BrF,OAAgB,EACc;IAC9B;IACA,MAAMoF,eAAe,GAAG,IAAI,CAAC,CAACvE,IAAI,KAAK,QAAQ,GAC3C,IAAI,CAAC,CAAC6F,mCAAmC,CAAC1G,OAAO,CAAC,GAClD,IAAI,CAAC,CAAC2G,sCAAsC,CAAC3G,OAAO,CAAC;;IAEzD;IACA,KAAK,MAAM4G,KAAK,IAAI1C,MAAM,CAAC2C,MAAM,CAACzB,eAAe,CAAC,EAAE;MAClD,KAAK,MAAMY,GAAG,IAAIY,KAAK,CAACX,GAAG,IAAI,EAAE,EAAE;QACjC,MAAMO,SAAS,GAAG,IAAI,CAAC,CAACA,SAAS,CAACR,GAAG,CAAC;QACtC,IAAIQ,SAAS,EAAE;UACbI,KAAK,CAAC,GAAGJ,SAAS,SAAS,CAAC,CAACrB,GAAG,CAACa,GAAG,CAAC;QACvC;MACF;IACF;IAEA,OAAOZ,eAAe;EACxB;EAEA,CAACuB,sCAAsCG,CACrC9G,OAAgB,EACc;IAC9B,MAAM+G,cAAc,GAAGA,CAAC,GAAGC,MAAM,CAA0B,KAAK;MAC9D,OAAO,IAAI,CAAC,CAAClG,OAAO,IAAIkG,MAAM,CAACtJ,YAAY,CAAC,CAACoH,YAAY;IAC3D,CAAC;IAED,MAAMQ,KAAK,GAAG2B,KAAK,CAACC,IAAI,CAAClH,OAAO,CAACmH,YAAY,CAAC,CAACC,MAAM,CAACL,cAAc,CAAC,CAAC3J,GAAG,CAAC,CACxE,GAAG4J,MAAM,CAAC,KACPA,MAAM,CAACK,GAAG,CAAC,IAAI,CAAC,CAACvG,OAAO,CAAC,CAAC;IAE/B,MAAMmE,QAAQ,GAAGgC,KAAK,CAACC,IAAI,CAAClH,OAAO,CAACsH,eAAe,CAAC,CAACF,MAAM,CAACL,cAAc,CAAC,CACxE3J,GAAG,CAAC,CACH,GAAG4J,MAAM,CAAC,KACPA,MAAM,CAACK,GAAG,CAAC,IAAI,CAAC,CAACvG,OAAO,CAAC,CAAC;IAEjC,OAAO;MACLwE,KAAK,EAAE;QACLW,GAAG,EAAEX,KAAK;QACVO,aAAa,EAAE,IAAIF,GAAG,CAAC,CAAC;QACxBJ,YAAY,EAAE,IAAII,GAAG,CAAC;MACxB,CAAC;MACDV,QAAQ,EAAE;QACRgB,GAAG,EAAEhB,QAAQ;QACbY,aAAa,EAAE,IAAIF,GAAG,CAAC,CAAC;QACxBJ,YAAY,EAAE,IAAII,GAAG,CAAC;MACxB;IACF,CAAC;EACH;EAEA,CAACe,mCAAmCa,CAClCvH,OAAgB,EACc;IAC9B,OAAO;MACLsF,KAAK,EAAE;QACLW,GAAG,EAAEjG,OAAO,CAACmH,YAAY,CAACK,GAAG,CAAC,IAAI,CAAC5H,QAAQ,CAACgC,SAAS,CAAC1D,YAAY,CAAC,CAAC,IAC/D,EAAE;QACP2H,aAAa,EAAE,IAAIF,GAAG,CAAC,CAAC;QACxBJ,YAAY,EAAE,IAAII,GAAG,CAAC;MACxB,CAAC;MACDV,QAAQ,EAAE;QACRgB,GAAG,EAAEjG,OAAO,CAACsH,eAAe,CAACE,GAAG,CAAC,IAAI,CAAC5H,QAAQ,CAACgC,SAAS,CAAC1D,YAAY,CAAC,CAAC,IAClE,EAAE;QACP2H,aAAa,EAAE,IAAIF,GAAG,CAAC,CAAC;QACxBJ,YAAY,EAAE,IAAII,GAAG,CAAC;MACxB;IACF,CAAC;EACH;EAEArG,cAAcA,CACZd,eAAiC,EACjCG,KAAmB,EACD;IAClB,IAAIuF,MAAM,CAACC,IAAI,CAAC,IAAI,CAAC,CAAChD,OAAO,CAAC,CAACoB,MAAM,GAAG,CAAC,EAAE;MACzC/D,eAAe,GAAGA,eAAe,CAACiJ,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;QAC/C,KAAK,MAAMC,MAAM,IAAI,IAAI,CAAC,CAACvG,OAAO,EAAE;UAClC,MAAMtB,GAAG,GAAG6H,MAAM,CAChBjJ,KAAK,CAACgB,IAAI,CAAC+H,CAAC,CAAC,EAAE7H,KAAK,EAAEwH,GAAG,CAAC,IAAI,CAAC,CAACvG,OAAO,CAAC,EACxCnC,KAAK,CAACgB,IAAI,CAACgI,CAAC,CAAC,EAAE9H,KAAK,EAAEwH,GAAG,CAAC,IAAI,CAAC,CAACvG,OAAO,CACzC,CAAC;UACD,IAAIf,GAAG,KAAK,CAAC,EAAE;YACb,OAAOA,GAAG;UACZ;QACF;QACA,OAAO,CAAC;MACV,CAAC,CAAC;IACJ;IACA,OAAOvB,eAAe;EACxB;EAEAqJ,qBAAqBA,CAACC,GAAiB,EAAQ;IAC7C,MAAM/I,MAAM,GAAGH,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,GAChD,IAAI,CAACC,MAAM,EAAEC,KAAK,CAAC;MAAEC,UAAU,EAAE;IAAwB,CAAC,CAAC,GAC3D,IAAI,CAACF,MAAM;IAEf,IAAIH,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;MACzCC,MAAM,EAAEC,KAAK,CAAC;QAAEC,UAAU,EAAE;MAAc,CAAC,CAAC,CAAC8I,IAAI,CAC/C,4BACF,CAAC;IACH;;IAEA;IACA;;IAEA,MAAMC,qBAAqB,GAAG,IAAI,CAAC,CAAC5G,SAAS,CAAC6G,SAAS,CAAC;MACtDC,QAAQ,EAAE,IAAI,CAAC,CAACC,WAAW,CAACC,IAAI,CAAC,IAAI,CAAC;MACtCC,OAAO,EAAE,IAAI,CAAC,CAACC,UAAU,CAACF,IAAI,CAAC,IAAI,CAAC;MACpCG,WAAW,EAAE,IAAI,CAAC,CAACC,cAAc,CAACJ,IAAI,CAAC,IAAI,CAAC;MAC5CK,wBAAwB,EAAE,IAAI,CAAC,CAACC,2BAA2B,CAACN,IAAI,CAAC,IAAI;IACvE,CAAC,CAAC;IAEFN,GAAG,CAAC3C,GAAG,CAAC,MAAM;MACZ,IAAIvG,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;QACzCC,MAAM,EAAEC,KAAK,CAAC;UAAEC,UAAU,EAAE;QAAc,CAAC,CAAC,CAAC8I,IAAI,CAC/C,8BACF,CAAC;MACH;MAEAC,qBAAqB,CAACW,WAAW,CAAC,CAAC;IACrC,CAAC,CAAC;EACJ;EAEA,CAACD,2BAA2BE,CAAA,EAAS;IACnC,IAAIhK,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;MACzC,IAAI,CAACC,MAAM,EAAEC,KAAK,CAChB;QAAEC,UAAU,EAAE;MAA2B,CAC3C,CAAC,CAACC,KAAK,CAAC,EAAE,CAAC;IACb;EACF;EAEA,CAACsJ,cAAcK,CAAA,EAAS;IACtB,IAAIjK,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;MACzC,IAAI,CAACC,MAAM,EAAEC,KAAK,CAChB;QAAEC,UAAU,EAAE;MAAc,CAC9B,CAAC,CAACC,KAAK,CAAC,EAAE,CAAC;IACb;EACF;EAEA,CAACoJ,UAAUQ,CAACC,MAGX,EAAE;IACD,IAAI,IAAI,CAAChK,MAAM,EAAE;MACf,IAAI,CAACA,MAAM,EAAEC,KAAK,CAAC;QAAEC,UAAU,EAAE;MAAU,CAAC,CAAC,CAACwF,KAAK,CACjD,qBAAqB,EACrBsE,MACF,CAAC;IACH;EACF;EAEA,CAACZ,WAAWa,CACV;IAAEhC,MAAM,EAAEiC,UAAU;IAAEC;EAAkD,CAAC,EACnE;IACN,MAAMnK,MAAM,GAAGH,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,GAChD,IAAI,CAACC,MAAM,EAAEC,KAAK,CAAC;MAAEC,UAAU,EAAE;IAAwB,CAAC,CAAC,GAC3D,IAAI,CAACF,MAAM;IAEf,IAAIH,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;MACzCC,MAAM,EAAEC,KAAK,CAAC;QAAEC,UAAU,EAAE;MAAW,CAAC,CAAC,CAACC,KAAK,CAC7C,0BAA0BgK,KAAK,EAAE,EACjCD,UACF,CAAC;IACH;IAEA,IAAIC,KAAK,KAAK,kBAAkB,EAAE;MAChC,MAAMlC,MAAoB,GACvBiC,UAAU,CAACE,QAAQ,KAAKF,UAAU,CAAC9C,WAAW,GAC3C8C,UAAU,CAAC5B,GAAG,CAAC4B,UAAU,CAAC9C,WAAW,CAAC,GACtC8C,UAAsC;MAE5C,IAAI,CAAC3I,KAAK,CAAC3B,KAAK,CAAC,CAAC,CAAC,EAAGA,KAAK,IAAK;QAC9BX,kBAAkB,CAAC,IAAI,CAACsC,KAAK,EAAE,CAAC0G,MAAM,CAAuB,EAAErI,KAAK,CAAC;MACvE,CAAC,CAAC;IACJ,CAAC,MAAM,IAAIuK,KAAK,KAAK,SAAS,EAAE;MAC9B,IAAI,CAAC,CAACE,YAAY,CAACH,UAAU,EAAElK,MAAM,CAAC;IACxC;EACF;EAEA,CAACqK,YAAYC,CACXJ,UAAkE,EAClElK,MAA0B,EAC1B;IACA,IAAI,CAACuB,KAAK,CAAC3B,KAAK,CAAC,CAAC,CAAC,EAAGA,KAAK,IAAK;MAC9B;MACA,MAAM2K,QAAQ,GAAG3K,KAAK,CAACgB,IAAI,CAAC,IAAI,CAACC,QAAQ,CAAC;MAC1C,CACE0J,QAAQ,GAAA1K,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADVtB,SAAS,QAEP,oEAAoE,IAFtEA,SAAS;MAIT,IAAI8L,QAAQ,CAAC5K,MAAM,KAAK,QAAQ,EAAE;QAChC,MAAM2B,cAAc,GAAG,IAAI,CAACC,KAAK,CAAC4F,WAAW,CAC3C,QAAQ,EACR+C,UAAU,CAAC9C,WAAW,EACtB8C,UAAU,CAAC7C,WACb,CAAC;QACD;QACA,MAAMmD,UAAU,GAAGD,QAAQ,CAACzJ,KAAK,EAAEJ,IAAI,CAAC2H,MAAM,CAC3CoC,CAAC,IAAKA,CAAC,KAAKnJ,cACf,CAAC;;QAED;QACA;QACA,IAAIkJ,UAAU,EAAEhH,MAAM,KAAK+G,QAAQ,CAACzJ,KAAK,EAAEJ,IAAI,CAAC8C,MAAM,EAAE;UACtD5D,KAAK,CAACqB,OAAO,CAACC,YAAY,CAAC,IAAI,CAACL,QAAQ,CAAC;UACzCjB,KAAK,CAACmB,KAAK,CACT,IAAI,CAACF,QAAQ,EACb;YAAEH,IAAI,EAAE8J,UAAU,IAAI;UAAG,CAAC,EAC1B,QACF,CAAC;UACD;UACA;QACF;QAEA;MACF;MACA;MACA;MACA;MACA;MACA;MACA;MACA,IAAI3K,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;QACzCC,MAAM,EAAEgJ,IAAI,CACV,+EAA+E,EAC/EuB,QACF,CAAC;MACH;MAEA,IAAI,CAAC3E,UAAU,CAAC,WAAY,IAAI,CAAC,CAAC8E,KAAK,CAAEjF,CAAU,IAAK;QACtD,IAAIzF,MAAM,EAAE;UACVA,MAAM,EAAE0F,KAAK,CAAC,wCAAwC,EAAED,CAAC,CAAC;QAC5D,CAAC,MAAM;UACL;UACA;UACA9D,OAAO,CAAC+D,KAAK,CAAC,wCAAwC,EAAED,CAAC,CAAC;QAC5D;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;AACF;AAEA,SAASjF,gBAAgBA,CACvBf,eAAiC,EACjCG,KAAmB,EACnB;EACA,MAAM+K,OAAO,GAAG,IAAI/D,GAAG,CAAiB,CAAC;EACzCnH,eAAe,GAAGA,eAAe,CAAC4I,MAAM,CAAEd,GAAG,IAAK;IAChD3H,KAAK,CAACgB,IAAI,CAAC2G,GAAG,CAAC;IACf,IAAIoD,OAAO,CAACxE,GAAG,CAACoB,GAAG,CAAC,EAAE;MACpB,OAAO,KAAK;IACd;IACAoD,OAAO,CAACvE,GAAG,CAACmB,GAAG,CAAC;IAChB,OAAO,IAAI;EACb,CAAC,CAAC;EACF,OAAO9H,eAAe;AACxB;AAEA,SAASyD,oBAAoBA,CAC3Bd,OAA8D,EAC9D;EACA,OAAO+C,MAAM,CAACyF,OAAO,CAACxI,OAAO,CAAC,CAAC/D,GAAG,CAAC,CAAC,CAACkJ,GAAG,EAAEsD,KAAK,CAAC,KAAK;IACnD,OAAO,CACLlC,CAA6C,EAC7CC,CAA6C,KAClC;MACX,MAAMkC,MAAM,GAAGnC,CAAC,GAAGpB,GAAG,CAAC;MACvB,MAAMwD,MAAM,GAAGnC,CAAC,GAAGrB,GAAG,CAAC;MAEvB,IAAIuD,MAAM,IAAI,IAAI,IAAIC,MAAM,IAAI,IAAI,EAAE;QACpC,OAAO,CAAC;MACV;MACA,IAAID,MAAM,IAAI,IAAI,EAAE;QAClB,OAAO,CAAC;MACV;MACA,IAAIC,MAAM,IAAI,IAAI,EAAE;QAClB,OAAO,CAAC,CAAC;MACX;MACA,MAAMC,CAAC,GAAGH,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;MAClC,OAAOC,MAAM,GAAGC,MAAM,GAAGC,CAAC,GAAGF,MAAM,GAAGC,MAAM,GAAG,CAACC,CAAC,GAAG,CAAC;IACvD,CAAC;EACH,CAAC,CAAC;AACJ;;AAEA;AACA,eAAezF,uBAAuBA,CACpC5C,MAAc,EACdjC,IAA0B,EAC1B;EACA,MAAMuK,MAAM,GAAGhN,OAAO,CAACyC,IAAI,EAAGoC,CAAC,IAAKA,CAAC,CAACsE,WAAW,CAAC;EAClD,MAAM8D,8BAA8B,GAAG/F,MAAM,CAACgG,WAAW,CACvD,MAAM3G,OAAO,CAAC0C,GAAG,CACf/B,MAAM,CAACyF,OAAO,CAACK,MAAM,CAAC,CAAC5M,GAAG,CAOxB,OAAO,CAAC0D,OAAO,EAAEqJ,OAAO,CAAC,KAAK;IAC9B;IACA;IACA;IACA,MAAMC,SAAS,GAAID,OAAO,CAAC,CAAC,CAAC,CAAkBxM,oBAAoB,CAAC,CAClED,YAAY,CACZ;IACF,MAAMsE,KAAwB,GAAG;MAC/B,CAACoI,SAAS,CAACC,iBAAiB,GAAG;QAC7BC,GAAG,EAAEH,OAAO,CAAC/M,GAAG,CAACyE,CAAC,IAAIA,CAAC,CAACuE,WAAW;MACrC;IACF,CAAC;IAED,MAAMmE,MAAM,GAAG,MAAM7I,MAAM,CACzB0I,SACF,CAAC,CAACpI,KAAK,CAACA,KAAK,CAAC,CAAC6B,SAAS,CAAC,CAAC;IAC1B,OAAO,CACL/C,OAAO,EACPoD,MAAM,CAACgG,WAAW,CAACK,MAAM,CAAC9K,IAAI,CAACrC,GAAG,CAChCyE,CAAC,IAAI,CAACA,CAAC,CAACuE,WAAW,EAAEvE,CAAC,CACxB,CAAC,CAAC,CACH;EACH,CAAC,CACH,CACF,CAAC;EAEDpC,IAAI,GAAGA,IAAI,CAACrC,GAAG,CAAE4I,GAAG,IAAK;IACvB,CACEiE,8BAA8B,CAACjE,GAAG,CAACG,WAAW,CAAC,CAACH,GAAG,CAACI,WAAW,CAAC,GAAAxH,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADlEtB,SAAS,QAEP,yBAAyBwI,GAAG,CAACG,WAAW,IAAIH,GAAG,CAACI,WAAW,EAAE,IAF/D5I,SAAS;IAIT,OAAOyM,8BAA8B,CAACjE,GAAG,CAACG,WAAW,CAAC,CAACH,GAAG,CAACI,WAAW,CAAC;EACzE,CAAC,CAAC;EAEF,OAAO3G,IAAI;AACb;AAEA,OAAO,SAAS+K,cAAcA,CAC5B5K,QAAkB,EACQ;EAC1B,OAAOA,QAAQ,CAACiB,IAAI,KAAK,MAAM;AACjC;;AAEA;AACA;AACA","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ObjectQuery.js","names":["deepEqual","BehaviorSubject","connectable","map","additionalContext","getBulkObjectLoader","Query","tombstone","ObjectQuery","apiName","pk","constructor","store","subject","type","cacheKey","opts","process","env","NODE_ENV","client","logger","child","msgPrefix","otherKeys","x","JSON","stringify","join","undefined","_createConnectable","pipe","status","object","value","lastUpdated","isOptimistic","connector","_fetchAndStore","methodName","debug","obj","fetch","batch","writeToStore","data","entry","read","write","ret","changes","registerObject","deleteFromStore","delete","deleteObject","storeOsdkInstances","values","v","getObjectQuery","$apiName","$primaryKey"],"sources":["ObjectQuery.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, Osdk, PrimaryKeyType } from \"@osdk/api\";\nimport deepEqual from \"fast-deep-equal\";\nimport type { Connectable, Observable, Subject } from \"rxjs\";\nimport { BehaviorSubject, connectable, map } from \"rxjs\";\nimport { additionalContext } from \"../../Client.js\";\nimport type { ObjectHolder } from \"../../object/convertWireToOsdkObjects/ObjectHolder.js\";\nimport type { ObjectPayload } from \"../ObjectPayload.js\";\nimport type { CommonObserveOptions, Status } from \"../ObservableClient.js\";\nimport { getBulkObjectLoader } from \"./BulkObjectLoader.js\";\nimport type { CacheKey } from \"./CacheKey.js\";\nimport type { Entry } from \"./Layer.js\";\nimport { Query } from \"./Query.js\";\nimport type { BatchContext, Store, SubjectPayload } from \"./Store.js\";\nimport { tombstone } from \"./tombstone.js\";\n\nexport interface ObjectEntry extends Entry<ObjectCacheKey> {}\n\nexport interface ObjectCacheKey extends\n CacheKey<\n \"object\",\n ObjectHolder,\n ObjectQuery,\n [string, pk: PrimaryKeyType<ObjectTypeDefinition>]\n >\n{}\n\nexport class ObjectQuery extends Query<\n ObjectCacheKey,\n ObjectPayload,\n CommonObserveOptions\n> {\n #apiName: string;\n #pk: string | number | boolean;\n\n constructor(\n store: Store,\n subject: Subject<SubjectPayload<ObjectCacheKey>>,\n type: string,\n pk: PrimaryKeyType<ObjectTypeDefinition>,\n cacheKey: ObjectCacheKey,\n opts: CommonObserveOptions,\n ) {\n super(\n store,\n subject,\n opts,\n cacheKey,\n process.env.NODE_ENV !== \"production\"\n ? (\n store.client[additionalContext].logger?.child({}, {\n msgPrefix: `ObjectQuery<${\n cacheKey.otherKeys.map(x => JSON.stringify(x)).join(\", \")\n }>`,\n })\n )\n : undefined,\n );\n this.#apiName = type;\n this.#pk = pk;\n }\n\n protected _createConnectable(\n subject: Observable<SubjectPayload<ObjectCacheKey>>,\n ): Connectable<ObjectPayload> {\n return connectable<ObjectPayload>(\n subject.pipe(\n map((x) => {\n return {\n status: x.status,\n object: x.value,\n lastUpdated: x.lastUpdated,\n isOptimistic: x.isOptimistic,\n };\n }),\n ),\n {\n connector: () =>\n new BehaviorSubject<ObjectPayload>({\n status: \"init\",\n object: undefined,\n lastUpdated: 0,\n isOptimistic: false,\n }),\n },\n );\n }\n\n async _fetchAndStore(): Promise<void> {\n if (process.env.NODE_ENV !== \"production\") {\n this.logger?.child({ methodName: \"_fetchAndStore\" }).debug(\n \"calling _fetchAndStore\",\n );\n }\n\n const obj = await getBulkObjectLoader(this.store.client)\n .fetch(this.#apiName, this.#pk);\n\n this.store.batch({}, (batch) => {\n this.writeToStore(obj, \"loaded\", batch);\n });\n }\n\n writeToStore(\n data: ObjectHolder,\n status: Status,\n batch: BatchContext,\n ): Entry<ObjectCacheKey> {\n const entry = batch.read(this.cacheKey);\n\n if (entry && deepEqual(data, entry.value)) {\n if (process.env.NODE_ENV !== \"production\") {\n this.logger?.child({ methodName: \"writeToStore\" }).debug(\n `Object was deep equal, just setting status`,\n );\n }\n // must do a \"full write\" here so that the lastUpdated is updated but we\n // don't want to retrigger anyone's memoization on the value!\n return batch.write(this.cacheKey, entry.value, status);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n this.logger?.child({ methodName: \"writeToStore\" }).debug(\n JSON.stringify({ status }),\n data,\n );\n }\n const ret = batch.write(this.cacheKey, data, status);\n batch.changes.registerObject(this.cacheKey, data, /* isNew */ !entry);\n\n return ret;\n }\n\n deleteFromStore(\n status: Status,\n batch: BatchContext,\n ): Entry<ObjectCacheKey> | undefined {\n const entry = batch.read(this.cacheKey);\n\n if (entry && deepEqual(tombstone, entry.value)) {\n if (process.env.NODE_ENV !== \"production\") {\n this.logger?.child({ methodName: \"deleteFromStore\" }).debug(\n `Object was deep equal, just setting status`,\n );\n }\n // must do a \"full write\" here so that the lastUpdated is updated but we\n // don't want to retrigger anyone's memoization on the value!\n return batch.write(this.cacheKey, entry.value, status);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n this.logger?.child({ methodName: \"deleteFromStore\" }).debug(\n JSON.stringify({ status }),\n );\n }\n\n // if there is no entry then there is nothing to do\n if (!entry || !entry.value) {\n return;\n }\n\n const ret = batch.delete(this.cacheKey, status);\n batch.changes.deleteObject(this.cacheKey);\n\n return ret;\n }\n}\n\n/**\n * Internal helper method for writing objects to the store and returning their\n * object keys\n * @internal\n */\nexport function storeOsdkInstances(\n store: Store,\n values: Array<ObjectHolder> | Array<Osdk.Instance<any, any, any>>,\n batch: BatchContext,\n): ObjectCacheKey[] {\n // update the cache for any object that has changed\n // and save the mapped values to return\n return values.map(v => {\n return store.getObjectQuery(\n v.$apiName,\n v.$primaryKey as string | number,\n )\n .writeToStore(\n v as ObjectHolder,\n \"loaded\",\n batch,\n ).cacheKey;\n });\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"OptimisticJob.js","names":["additionalContext","createOptimisticId","OptimisticJob","result","constructor","store","optimisticId","updatedObjects","addedObjectPromises","deletedObjects","getResult","addedObjects","Promise","allSettled","batchResult","batch","obj","status","getObjectQuery","value","$objectType","$primaryKey","writeToStore","deleteFromStore","changes","context","updateObject","push","createObject","type","pk","properties","create","client","objectFactory2","$apiName","apiName","undefined","then","objs","deleteObject","runOptimisticJob","optimisticUpdate","resolve","job","optimisticApplicationDone","finally","removeLayer"],"sources":["OptimisticJob.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 { additionalContext } from \"../../Client.js\";\nimport type { ObjectHolder } from \"../../object/convertWireToOsdkObjects/ObjectHolder.js\";\nimport type { OptimisticBuilder } from \"../OptimisticBuilder.js\";\nimport { type Changes } from \"./Changes.js\";\nimport { createOptimisticId, type OptimisticId } from \"./OptimisticId.js\";\nimport type { Store } from \"./Store.js\";\n\nexport class OptimisticJob {\n context: OptimisticBuilder;\n getResult: () => Promise<Changes>;\n #result!: Promise<Changes>;\n\n constructor(store: Store, optimisticId: OptimisticId) {\n const updatedObjects: Array<\n ObjectHolder\n > = [];\n\n // due to potentially needing to fetch the object metadata,\n // the creation of objects needs to be async. In practice, the\n // metadata is cached.\n const addedObjectPromises: Array<\n Promise<ObjectHolder>\n > = [];\n\n const deletedObjects: Array<ObjectHolder> = [];\n\n // TODO, this code needs to be refactored. its weird right now\n // but the contract for `runOptimisticJob` is good.\n\n // todo memoize this\n this.getResult = () => {\n return this.#result ??= (async () => {\n const addedObjects = await Promise.allSettled(\n addedObjectPromises,\n );\n\n const { batchResult } = store.batch({ optimisticId }, (batch) => {\n for (const obj of addedObjects) {\n if (obj.status === \"fulfilled\") {\n store.getObjectQuery(obj.value.$objectType, obj.value.$primaryKey)\n .writeToStore(obj.value, \"loading\", batch);\n } else {\n // TODO FIXME\n throw obj;\n }\n }\n\n for (const obj of updatedObjects) {\n store.getObjectQuery(obj.$objectType, obj.$primaryKey)\n .writeToStore(obj, \"loading\", batch);\n }\n\n for (const obj of deletedObjects) {\n store.getObjectQuery(obj.$objectType, obj.$primaryKey)\n .deleteFromStore(\"loading\", batch);\n }\n });\n\n return batchResult.changes;\n })();\n };\n\n this.context = {\n updateObject(value) {\n updatedObjects.push(value as unknown as ObjectHolder<typeof value>);\n return this;\n },\n createObject(type, pk, properties) {\n const create = store.client[additionalContext].objectFactory2(\n store.client[additionalContext],\n [{\n $primaryKey: pk,\n $apiName: type.apiName,\n $objectType: type.apiName,\n ...properties,\n }],\n undefined,\n {},\n ).then(objs => {\n return objs[0];\n });\n\n addedObjectPromises.push(create);\n return this;\n },\n deleteObject(value) {\n deletedObjects.push(value as unknown as ObjectHolder<typeof value>);\n return this;\n },\n };\n }\n}\n\nexport function runOptimisticJob(\n store: Store,\n optimisticUpdate: undefined | ((ctx: OptimisticBuilder) => void),\n): () => Promise<void> {\n if (!optimisticUpdate) {\n return () => Promise.resolve();\n }\n\n const optimisticId = createOptimisticId();\n const job = new OptimisticJob(store, optimisticId);\n optimisticUpdate(job.context);\n const optimisticApplicationDone = job.getResult();\n\n return () => {\n return optimisticApplicationDone.then(\n // we don't want to leak the result\n () => undefined,\n ).finally(() => {\n store.removeLayer(optimisticId);\n });\n };\n}\n"],"mappings":"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","ignoreList":[]}