@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
@@ -20,6 +20,7 @@ export class Query {
20
20
  #connectable;
21
21
  #subscription;
22
22
  #subject;
23
+ #subscriptionDedupeIntervals = new Map();
23
24
 
24
25
  /** @internal */
25
26
 
@@ -27,6 +28,7 @@ export class Query {
27
28
  this.options = opts;
28
29
  this.cacheKey = cacheKey;
29
30
  this.store = store;
31
+ this.cacheKeys = store.cacheKeys;
30
32
  this.#subject = observable;
31
33
  this.logger = logger ?? (process.env.NODE_ENV === "production" ? store.client[additionalContext].logger : store.client[additionalContext].logger?.child({}, {
32
34
  msgPrefix: process.env.NODE_ENV !== "production" ? `Query<${cacheKey.type}, ${cacheKey.otherKeys.map(x => JSON.stringify(x)).join(", ")}>` : "Query"
@@ -35,7 +37,50 @@ export class Query {
35
37
  subscribe(observer) {
36
38
  this.#connectable ??= this._createConnectable(this.#subject);
37
39
  this.#subscription = this.#connectable.connect();
38
- return this.#connectable.subscribe(observer);
40
+ const sub = this.#connectable.subscribe({
41
+ next: value => {
42
+ if (observer.next) {
43
+ observer.next(value);
44
+ }
45
+ },
46
+ error: err => {
47
+ if (observer.error) {
48
+ observer.error(err);
49
+ }
50
+ },
51
+ complete: () => {
52
+ if (observer.complete) {
53
+ observer.complete();
54
+ }
55
+ }
56
+ });
57
+ return sub;
58
+ }
59
+
60
+ /**
61
+ * Register a subscription's dedupeInterval value
62
+ */
63
+ registerSubscriptionDedupeInterval(subscriptionId, dedupeInterval) {
64
+ if (dedupeInterval != null && dedupeInterval > 0) {
65
+ this.#subscriptionDedupeIntervals.set(subscriptionId, dedupeInterval);
66
+ }
67
+ }
68
+
69
+ /**
70
+ * Unregister a subscription's dedupeInterval value
71
+ */
72
+ unregisterSubscriptionDedupeInterval(subscriptionId) {
73
+ this.#subscriptionDedupeIntervals.delete(subscriptionId);
74
+ }
75
+
76
+ /**
77
+ * Get the minimum dedupeInterval from all active subscriptions
78
+ */
79
+ getMinimumDedupeInterval() {
80
+ if (this.#subscriptionDedupeIntervals.size === 0) {
81
+ return this.options.dedupeInterval ?? 0;
82
+ }
83
+ return Math.min(...this.#subscriptionDedupeIntervals.values());
39
84
  }
40
85
 
41
86
  /**
@@ -66,7 +111,8 @@ export class Query {
66
111
  await this.pendingFetch;
67
112
  return;
68
113
  }
69
- if ((this.options.dedupeInterval ?? 0) > 0 && this.lastFetchStarted != null && Date.now() - this.lastFetchStarted < (this.options.dedupeInterval ?? 0)) {
114
+ const minDedupeInterval = this.getMinimumDedupeInterval();
115
+ if (minDedupeInterval > 0 && this.lastFetchStarted != null && Date.now() - this.lastFetchStarted < minDedupeInterval) {
70
116
  if (process.env.NODE_ENV !== "production") {
71
117
  logger?.debug("Within dupeInterval, aborting revalidate");
72
118
  }
@@ -88,7 +134,7 @@ export class Query {
88
134
  logger?.debug("calling _fetchAndStore()");
89
135
  }
90
136
  this.pendingFetch = this._fetchAndStore().finally(() => {
91
- logger?.debug("finally _fetchAndStore()");
137
+ logger?.debug("promise's finally for _fetchAndStore()");
92
138
  this.pendingFetch = undefined;
93
139
  });
94
140
  await this.pendingFetch;
@@ -105,10 +151,22 @@ export class Query {
105
151
  if (process.env.NODE_ENV !== "production") {
106
152
  this.logger?.child({
107
153
  methodName: "setStatus"
108
- }).debug(status);
154
+ }).debug(`Attempting to set status to '${status}'`);
109
155
  }
110
156
  const existing = batch.read(this.cacheKey);
111
- if (existing?.status === status) return;
157
+ if (existing?.status === status) {
158
+ if (process.env.NODE_ENV !== "production") {
159
+ this.logger?.child({
160
+ methodName: "setStatus"
161
+ }).debug(`Status is already set to '${status}'; aborting`);
162
+ }
163
+ return;
164
+ }
165
+ if (process.env.NODE_ENV !== "production") {
166
+ this.logger?.child({
167
+ methodName: "setStatus"
168
+ }).debug(`Writing status '${status}' to cache`);
169
+ }
112
170
  batch.write(this.cacheKey, existing?.value, status);
113
171
  }
114
172
  dispose() {
@@ -1 +1 @@
1
- {"version":3,"file":"Query.js","names":["additionalContext","Query","retainCount","connectable","subscription","subject","constructor","store","observable","opts","cacheKey","logger","options","process","env","NODE_ENV","client","child","msgPrefix","type","otherKeys","map","x","JSON","stringify","join","subscribe","observer","_createConnectable","connect","revalidate","force","methodName","abortController","abort","pendingFetch","debug","dedupeInterval","lastFetchStarted","Date","now","Promise","resolve","batch","setStatus","_preFetch","_fetchAndStore","finally","undefined","status","existing","read","write","value","dispose","unsubscribe","_dispose"],"sources":["Query.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 { Logger } from \"@osdk/api\";\nimport type {\n Connectable,\n Observable,\n Observer,\n Subscribable,\n Subscription,\n} from \"rxjs\";\nimport { additionalContext } from \"../../Client.js\";\nimport type { CommonObserveOptions, Status } from \"../ObservableClient.js\";\nimport type { CacheKey } from \"./CacheKey.js\";\nimport type { Changes } from \"./Changes.js\";\nimport type { Entry } from \"./Layer.js\";\nimport type { OptimisticId } from \"./OptimisticId.js\";\nimport type { BatchContext, Store, SubjectPayload } from \"./Store.js\";\n\nexport abstract class Query<\n KEY extends CacheKey,\n PAYLOAD,\n O extends CommonObserveOptions,\n> implements Subscribable<PAYLOAD> {\n lastFetchStarted?: number;\n pendingFetch?: Promise<unknown>;\n retainCount: number = 0;\n options: O;\n cacheKey: KEY;\n store: Store;\n abortController?: AbortController;\n #connectable?: Connectable<PAYLOAD>;\n #subscription?: Subscription;\n #subject: Observable<SubjectPayload<KEY>>;\n\n /** @internal */\n protected logger: Logger | undefined;\n\n constructor(\n store: Store,\n observable: Observable<SubjectPayload<KEY>>,\n opts: O,\n cacheKey: KEY,\n logger?: Logger,\n ) {\n this.options = opts;\n this.cacheKey = cacheKey;\n this.store = store;\n this.#subject = observable;\n\n this.logger = logger ?? (\n process.env.NODE_ENV === \"production\"\n ? store.client[additionalContext].logger\n : store.client[additionalContext].logger?.child({}, {\n msgPrefix: process.env.NODE_ENV !== \"production\"\n ? (`Query<${cacheKey.type}, ${\n cacheKey.otherKeys.map(x => JSON.stringify(x)).join(\", \")\n }>`)\n : \"Query\",\n })\n );\n }\n\n protected abstract _createConnectable(\n subject: Observable<SubjectPayload<KEY>>,\n ): Connectable<PAYLOAD>;\n\n public subscribe(\n observer: Observer<PAYLOAD>,\n ): Subscription {\n this.#connectable ??= this._createConnectable(this.#subject);\n this.#subscription = this.#connectable.connect();\n return this.#connectable.subscribe(observer);\n }\n\n /**\n * Causes the query to revalidate. This will cause the query to fetch\n * the latest data from the server and update the store if it is deemed\n * \"stale\" or if `force` is true.\n *\n * @param force\n * @returns\n */\n async revalidate(force?: boolean): Promise<void> {\n const logger = process.env.NODE_ENV !== \"production\"\n ? this.logger?.child({ methodName: \"revalidate\" })\n : this.logger;\n\n if (force) {\n this.abortController?.abort();\n }\n\n // n.b. I think this isn't quite right since we may require multiple\n // pages to properly \"revalidate\" for someone. This only really works if you\n // have a single page/object. It needs to be redone. FIXME\n\n // if we are pending the first page/object we can just ignore this\n if (this.pendingFetch) {\n if (process.env.NODE_ENV !== \"production\") {\n logger?.debug(\"Fetch is already pending, using it\");\n }\n await this.pendingFetch;\n return;\n }\n\n if (\n (this.options.dedupeInterval ?? 0) > 0 && (\n this.lastFetchStarted != null\n && Date.now() - this.lastFetchStarted < (this.options.dedupeInterval\n ?? 0)\n )\n ) {\n if (process.env.NODE_ENV !== \"production\") {\n logger?.debug(\"Within dupeInterval, aborting revalidate\");\n }\n\n return Promise.resolve();\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n logger?.debug(\"Starting actual revalidate\");\n }\n\n this.store.batch({}, (batch) => {\n // make sure the truth layer knows we are loading\n\n // this will not trigger an update to `changes` so it cannot trigger an\n // update of a list either. This may not be the behavior we want.\n this.setStatus(\"loading\", batch);\n });\n\n this._preFetch();\n\n this.lastFetchStarted = Date.now();\n\n if (process.env.NODE_ENV !== \"production\") {\n logger?.debug(\"calling _fetchAndStore()\");\n }\n this.pendingFetch = this._fetchAndStore()\n .finally(() => {\n logger?.debug(\"finally _fetchAndStore()\");\n this.pendingFetch = undefined;\n });\n\n await this.pendingFetch;\n return;\n }\n\n protected _preFetch(): void {}\n\n protected abstract _fetchAndStore(): Promise<unknown>;\n\n /**\n * Sets the status of the query in the store (but does not store that in `changes`).\n *\n * @param status\n * @param batch\n * @returns\n */\n setStatus(\n status: Status,\n batch: BatchContext,\n ): void {\n if (process.env.NODE_ENV !== \"production\") {\n this.logger?.child({ methodName: \"setStatus\" }).debug(status);\n }\n const existing = batch.read(this.cacheKey);\n if (existing?.status === status) return;\n\n batch.write(this.cacheKey, existing?.value, status);\n }\n\n dispose(): void {\n if (this.abortController) {\n this.abortController.abort();\n }\n this.#subscription?.unsubscribe();\n this._dispose();\n }\n\n /**\n * Per query type dispose functionality\n */\n protected _dispose(): void {}\n\n /**\n * The purpose of this method is to provide a way for others to write\n * directly into the store for this query.\n *\n * @param data\n * @param status\n * @param batch\n */\n abstract writeToStore(\n data: KEY[\"__cacheKey\"][\"value\"],\n status: Status,\n batch: BatchContext,\n ): Entry<KEY>;\n\n /**\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 maybeUpdateAndRevalidate?: (\n changes: Changes,\n optimisticId: OptimisticId | undefined,\n ) => Promise<void> | undefined;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Query.js","names":["additionalContext","Query","retainCount","connectable","subscription","subject","subscriptionDedupeIntervals","Map","constructor","store","observable","opts","cacheKey","logger","options","cacheKeys","process","env","NODE_ENV","client","child","msgPrefix","type","otherKeys","map","x","JSON","stringify","join","subscribe","observer","_createConnectable","connect","sub","next","value","error","err","complete","registerSubscriptionDedupeInterval","subscriptionId","dedupeInterval","set","unregisterSubscriptionDedupeInterval","delete","getMinimumDedupeInterval","size","Math","min","values","revalidate","force","methodName","abortController","abort","pendingFetch","debug","minDedupeInterval","lastFetchStarted","Date","now","Promise","resolve","batch","setStatus","_preFetch","_fetchAndStore","finally","undefined","status","existing","read","write","dispose","unsubscribe","_dispose"],"sources":["Query.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 { Logger } from \"@osdk/api\";\nimport type {\n Connectable,\n Observable,\n Observer,\n Subscribable,\n Subscription,\n} from \"rxjs\";\nimport { additionalContext } from \"../../Client.js\";\nimport type {\n CommonObserveOptions,\n Status,\n} from \"../ObservableClient/common.js\";\nimport type { BatchContext } from \"./BatchContext.js\";\nimport type { CacheKeys } from \"./CacheKeys.js\";\nimport type { Changes } from \"./Changes.js\";\nimport type { KnownCacheKey } from \"./KnownCacheKey.js\";\nimport type { Entry } from \"./Layer.js\";\nimport type { OptimisticId } from \"./OptimisticId.js\";\nimport type { Store } from \"./Store.js\";\nimport type { SubjectPayload } from \"./SubjectPayload.js\";\n\nexport abstract class Query<\n KEY extends KnownCacheKey,\n PAYLOAD,\n O extends CommonObserveOptions,\n> implements Subscribable<PAYLOAD> {\n lastFetchStarted?: number;\n pendingFetch?: Promise<void>;\n retainCount: number = 0;\n options: O;\n cacheKey: KEY;\n store: Store;\n abortController?: AbortController;\n #connectable?: Connectable<PAYLOAD>;\n #subscription?: Subscription;\n #subject: Observable<SubjectPayload<KEY>>;\n #subscriptionDedupeIntervals: Map<string, number> = new Map();\n\n /** @internal */\n protected logger: Logger | undefined;\n\n protected readonly cacheKeys: CacheKeys<KnownCacheKey>;\n\n constructor(\n store: Store,\n observable: Observable<SubjectPayload<KEY>>,\n opts: O,\n cacheKey: KEY,\n logger?: Logger,\n ) {\n this.options = opts;\n this.cacheKey = cacheKey;\n this.store = store;\n this.cacheKeys = store.cacheKeys;\n this.#subject = observable;\n\n this.logger = logger ?? (\n process.env.NODE_ENV === \"production\"\n ? store.client[additionalContext].logger\n : store.client[additionalContext].logger?.child({}, {\n msgPrefix: process.env.NODE_ENV !== \"production\"\n ? (`Query<${cacheKey.type}, ${\n cacheKey.otherKeys.map(x => JSON.stringify(x)).join(\", \")\n }>`)\n : \"Query\",\n })\n );\n }\n\n protected abstract _createConnectable(\n subject: Observable<SubjectPayload<KEY>>,\n ): Connectable<PAYLOAD>;\n\n public subscribe(\n observer: Observer<PAYLOAD>,\n ): Subscription {\n this.#connectable ??= this._createConnectable(this.#subject);\n this.#subscription = this.#connectable.connect();\n const sub = this.#connectable.subscribe({\n next: (value) => {\n if (observer.next) {\n observer.next(value);\n }\n },\n error: (err) => {\n if (observer.error) {\n observer.error(err);\n }\n },\n complete: () => {\n if (observer.complete) {\n observer.complete();\n }\n },\n });\n return sub;\n }\n\n /**\n * Register a subscription's dedupeInterval value\n */\n registerSubscriptionDedupeInterval(\n subscriptionId: string,\n dedupeInterval: number | undefined,\n ): void {\n if (dedupeInterval != null && dedupeInterval > 0) {\n this.#subscriptionDedupeIntervals.set(subscriptionId, dedupeInterval);\n }\n }\n\n /**\n * Unregister a subscription's dedupeInterval value\n */\n unregisterSubscriptionDedupeInterval(subscriptionId: string): void {\n this.#subscriptionDedupeIntervals.delete(subscriptionId);\n }\n\n /**\n * Get the minimum dedupeInterval from all active subscriptions\n */\n private getMinimumDedupeInterval(): number {\n if (this.#subscriptionDedupeIntervals.size === 0) {\n return this.options.dedupeInterval ?? 0;\n }\n\n return Math.min(...this.#subscriptionDedupeIntervals.values());\n }\n\n /**\n * Causes the query to revalidate. This will cause the query to fetch\n * the latest data from the server and update the store if it is deemed\n * \"stale\" or if `force` is true.\n *\n * @param force\n * @returns\n */\n async revalidate(force?: boolean): Promise<void> {\n const logger = process.env.NODE_ENV !== \"production\"\n ? this.logger?.child({ methodName: \"revalidate\" })\n : this.logger;\n\n if (force) {\n this.abortController?.abort();\n }\n\n // n.b. I think this isn't quite right since we may require multiple\n // pages to properly \"revalidate\" for someone. This only really works if you\n // have a single page/object. It needs to be redone. FIXME\n\n // if we are pending the first page/object we can just ignore this\n if (this.pendingFetch) {\n if (process.env.NODE_ENV !== \"production\") {\n logger?.debug(\"Fetch is already pending, using it\");\n }\n await this.pendingFetch;\n return;\n }\n\n const minDedupeInterval = this.getMinimumDedupeInterval();\n if (\n minDedupeInterval > 0 && (\n this.lastFetchStarted != null\n && Date.now() - this.lastFetchStarted < minDedupeInterval\n )\n ) {\n if (process.env.NODE_ENV !== \"production\") {\n logger?.debug(\"Within dupeInterval, aborting revalidate\");\n }\n\n return Promise.resolve();\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n logger?.debug(\"Starting actual revalidate\");\n }\n\n this.store.batch({}, (batch) => {\n // make sure the truth layer knows we are loading\n\n // this will not trigger an update to `changes` so it cannot trigger an\n // update of a list either. This may not be the behavior we want.\n this.setStatus(\"loading\", batch);\n });\n\n this._preFetch();\n\n this.lastFetchStarted = Date.now();\n\n if (process.env.NODE_ENV !== \"production\") {\n logger?.debug(\"calling _fetchAndStore()\");\n }\n this.pendingFetch = this._fetchAndStore()\n .finally(() => {\n logger?.debug(\"promise's finally for _fetchAndStore()\");\n this.pendingFetch = undefined;\n });\n\n await this.pendingFetch;\n return;\n }\n\n protected _preFetch(): void {}\n\n protected abstract _fetchAndStore(): Promise<void>;\n\n /**\n * Sets the status of the query in the store (but does not store that in `changes`).\n *\n * @param status\n * @param batch\n * @returns\n */\n setStatus(\n status: Status,\n batch: BatchContext,\n ): void {\n if (process.env.NODE_ENV !== \"production\") {\n this.logger?.child({ methodName: \"setStatus\" }).debug(\n `Attempting to set status to '${status}'`,\n );\n }\n const existing = batch.read(this.cacheKey);\n if (existing?.status === status) {\n if (process.env.NODE_ENV !== \"production\") {\n this.logger?.child({ methodName: \"setStatus\" }).debug(\n `Status is already set to '${status}'; aborting`,\n );\n }\n return;\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n this.logger?.child({ methodName: \"setStatus\" }).debug(\n `Writing status '${status}' to cache`,\n );\n }\n batch.write(this.cacheKey, existing?.value, status);\n }\n\n dispose(): void {\n if (this.abortController) {\n this.abortController.abort();\n }\n this.#subscription?.unsubscribe();\n this._dispose();\n }\n\n /**\n * Per query type dispose functionality\n */\n protected _dispose(): void {}\n\n /**\n * The purpose of this method is to provide a way for others to write\n * directly into the store for this query.\n *\n * @param data\n * @param status\n * @param batch\n */\n abstract writeToStore(\n data: KEY[\"__cacheKey\"][\"value\"],\n status: Status,\n batch: BatchContext,\n ): Entry<KEY>;\n\n /**\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 maybeUpdateAndRevalidate?: (\n changes: Changes,\n optimisticId: OptimisticId | undefined,\n ) => Promise<void> | undefined;\n\n abstract invalidateObjectType(\n objectType: string,\n changes: Changes | undefined,\n ): Promise<void>;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,48 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { UnsubscribableWrapper } from "./UnsubscribableWrapper.js";
18
+ let subscriptionIdCounter = 0;
19
+
20
+ /** @internal */
21
+ export class QuerySubscription extends UnsubscribableWrapper {
22
+ /** @internal */
23
+
24
+ /** @internal */
25
+
26
+ /** @internal */
27
+
28
+ constructor(query, subscription) {
29
+ super(subscription);
30
+ this.query = query;
31
+ this.subscription = subscription;
32
+ this.subscriptionId = `sub_${++subscriptionIdCounter}`;
33
+
34
+ // hide these from introspection
35
+ Object.defineProperties(this, {
36
+ query: {
37
+ enumerable: false
38
+ },
39
+ subscription: {
40
+ enumerable: false
41
+ },
42
+ subscriptionId: {
43
+ enumerable: false
44
+ }
45
+ });
46
+ }
47
+ }
48
+ //# sourceMappingURL=QuerySubscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuerySubscription.js","names":["UnsubscribableWrapper","subscriptionIdCounter","QuerySubscription","constructor","query","subscription","subscriptionId","Object","defineProperties","enumerable"],"sources":["QuerySubscription.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 { Subscription } from \"rxjs\";\nimport type {\n CommonObserveOptions,\n ObserveOptions,\n} from \"../ObservableClient/common.js\";\nimport type { KnownCacheKey } from \"./KnownCacheKey.js\";\nimport type { Query } from \"./Query.js\";\nimport { UnsubscribableWrapper } from \"./UnsubscribableWrapper.js\";\n\nlet subscriptionIdCounter = 0;\n\n/** @internal */\nexport class QuerySubscription<\n TQuery extends Query<\n KnownCacheKey,\n unknown,\n CommonObserveOptions & ObserveOptions\n >,\n> extends UnsubscribableWrapper {\n /** @internal */\n query: TQuery;\n\n /** @internal */\n subscription: Subscription;\n\n /** @internal */\n subscriptionId: string;\n\n constructor(query: TQuery, subscription: Subscription) {\n super(subscription);\n this.query = query;\n this.subscription = subscription;\n this.subscriptionId = `sub_${++subscriptionIdCounter}`;\n\n // hide these from introspection\n Object.defineProperties(this, {\n query: { enumerable: false },\n subscription: { enumerable: false },\n subscriptionId: { enumerable: false },\n });\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AASA,SAASA,qBAAqB,QAAQ,4BAA4B;AAElE,IAAIC,qBAAqB,GAAG,CAAC;;AAE7B;AACA,OAAO,MAAMC,iBAAiB,SAMpBF,qBAAqB,CAAC;EAC9B;;EAGA;;EAGA;;EAGAG,WAAWA,CAACC,KAAa,EAAEC,YAA0B,EAAE;IACrD,KAAK,CAACA,YAAY,CAAC;IACnB,IAAI,CAACD,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,YAAY,GAAGA,YAAY;IAChC,IAAI,CAACC,cAAc,GAAG,OAAO,EAAEL,qBAAqB,EAAE;;IAEtD;IACAM,MAAM,CAACC,gBAAgB,CAAC,IAAI,EAAE;MAC5BJ,KAAK,EAAE;QAAEK,UAAU,EAAE;MAAM,CAAC;MAC5BJ,YAAY,EAAE;QAAEI,UAAU,EAAE;MAAM,CAAC;MACnCH,cAAc,EAAE;QAAEG,UAAU,EAAE;MAAM;IACtC,CAAC,CAAC;EACJ;AACF","ignoreList":[]}