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

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 (310) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/build/browser/Client.js +1 -1
  3. package/build/browser/Client.js.map +1 -1
  4. package/build/browser/createClient.js +4 -1
  5. package/build/browser/createClient.js.map +1 -1
  6. package/build/browser/fetchMetadata.test.js +11 -0
  7. package/build/browser/fetchMetadata.test.js.map +1 -1
  8. package/build/browser/intellisense.test.helpers/orderBySuggestionIsRight.js +8 -1
  9. package/build/browser/intellisense.test.helpers/orderBySuggestionIsRight.js.map +1 -1
  10. package/build/browser/intellisense.test.js +14 -4
  11. package/build/browser/intellisense.test.js.map +1 -1
  12. package/build/browser/object/Cache.js +1 -1
  13. package/build/browser/object/Cache.js.map +1 -1
  14. package/build/browser/object/SimpleCache.js +1 -1
  15. package/build/browser/object/SimpleCache.js.map +1 -1
  16. package/build/browser/object/convertWireToOsdkObjects.js +4 -0
  17. package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
  18. package/build/browser/object/convertWireToOsdkObjects.test.js +12 -0
  19. package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
  20. package/build/browser/object/fetchPage.js +30 -4
  21. package/build/browser/object/fetchPage.js.map +1 -1
  22. package/build/browser/object/geotimeseriesreference.test.js +0 -2
  23. package/build/browser/object/geotimeseriesreference.test.js.map +1 -1
  24. package/build/browser/objectSet/ObjectSet.test.js +6 -0
  25. package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
  26. package/build/browser/objectSet/createObjectSet.js +3 -1
  27. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  28. package/build/browser/observable/LinkPayload.js +2 -0
  29. package/build/browser/observable/LinkPayload.js.map +1 -0
  30. package/build/browser/observable/ObjectPayload.js.map +1 -1
  31. package/build/browser/observable/ObservableClient/ObserveLink.js +17 -0
  32. package/build/browser/observable/ObservableClient/ObserveLink.js.map +1 -0
  33. package/build/browser/observable/ObservableClient/common.js +2 -0
  34. package/build/browser/observable/ObservableClient/common.js.map +1 -0
  35. package/build/browser/observable/ObservableClient.js +20 -0
  36. package/build/browser/observable/ObservableClient.js.map +1 -1
  37. package/build/browser/observable/Unsubscribable.js +2 -0
  38. package/build/browser/observable/Unsubscribable.js.map +1 -0
  39. package/build/browser/observable/internal/AbstractHelper.js +50 -0
  40. package/build/browser/observable/internal/AbstractHelper.js.map +1 -0
  41. package/build/browser/observable/internal/BaseCollectionQuery.js +2 -0
  42. package/build/browser/observable/internal/BaseCollectionQuery.js.map +1 -0
  43. package/build/browser/observable/internal/BulkObjectLoader.js +3 -3
  44. package/build/browser/observable/internal/BulkObjectLoader.js.map +1 -1
  45. package/build/browser/observable/internal/CacheKeys.js +17 -2
  46. package/build/browser/observable/internal/CacheKeys.js.map +1 -1
  47. package/build/browser/observable/internal/Changes.js +6 -0
  48. package/build/browser/observable/internal/Changes.js.map +1 -1
  49. package/build/browser/observable/internal/KnownCacheKey.js +2 -0
  50. package/build/browser/observable/internal/KnownCacheKey.js.map +1 -0
  51. package/build/browser/observable/internal/Layer.js.map +1 -1
  52. package/build/browser/observable/internal/ListCacheKey.js +2 -0
  53. package/build/browser/observable/internal/ListCacheKey.js.map +1 -0
  54. package/build/browser/observable/internal/ListQuery.js +399 -161
  55. package/build/browser/observable/internal/ListQuery.js.map +1 -1
  56. package/build/browser/observable/internal/ObjectQuery.js +27 -2
  57. package/build/browser/observable/internal/ObjectQuery.js.map +1 -1
  58. package/build/browser/observable/internal/ObservableClientImpl.js +42 -2
  59. package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
  60. package/build/browser/observable/internal/OptimisticJob.js +12 -3
  61. package/build/browser/observable/internal/OptimisticJob.js.map +1 -1
  62. package/build/browser/observable/internal/Query.js +17 -3
  63. package/build/browser/observable/internal/Query.js.map +1 -1
  64. package/build/browser/observable/internal/QuerySubscription.js +41 -0
  65. package/build/browser/observable/internal/QuerySubscription.js.map +1 -0
  66. package/build/browser/observable/internal/Store.invalidation.test.js +481 -0
  67. package/build/browser/observable/internal/Store.invalidation.test.js.map +1 -0
  68. package/build/browser/observable/internal/Store.js +38 -91
  69. package/build/browser/observable/internal/Store.js.map +1 -1
  70. package/build/browser/observable/internal/Store.test.js +318 -63
  71. package/build/browser/observable/internal/Store.test.js.map +1 -1
  72. package/build/browser/observable/internal/UnsubscribableWrapper.js +30 -0
  73. package/build/browser/observable/internal/UnsubscribableWrapper.js.map +1 -0
  74. package/build/browser/observable/internal/createCollectionConnectable.js +50 -0
  75. package/build/browser/observable/internal/createCollectionConnectable.js.map +1 -0
  76. package/build/browser/observable/internal/createCollectionConnectable.test.js +599 -0
  77. package/build/browser/observable/internal/createCollectionConnectable.test.js.map +1 -0
  78. package/build/browser/observable/internal/getObjectTypesThatInvalidate.js +216 -0
  79. package/build/browser/observable/internal/getObjectTypesThatInvalidate.js.map +1 -0
  80. package/build/browser/observable/internal/getObjectTypesThatInvalidate.test.js +382 -0
  81. package/build/browser/observable/internal/getObjectTypesThatInvalidate.test.js.map +1 -0
  82. package/build/browser/observable/internal/isObjectInstance.js +23 -0
  83. package/build/browser/observable/internal/isObjectInstance.js.map +1 -0
  84. package/build/browser/observable/internal/links/LinksHelper.js +37 -0
  85. package/build/browser/observable/internal/links/LinksHelper.js.map +1 -0
  86. package/build/browser/observable/internal/links/SpecificLinkCacheKey.js +2 -0
  87. package/build/browser/observable/internal/links/SpecificLinkCacheKey.js.map +1 -0
  88. package/build/browser/observable/internal/links/SpecificLinkQuery.js +185 -0
  89. package/build/browser/observable/internal/links/SpecificLinkQuery.js.map +1 -0
  90. package/build/browser/observable/internal/list/ListsHelper.js +49 -0
  91. package/build/browser/observable/internal/list/ListsHelper.js.map +1 -0
  92. package/build/browser/observable/internal/object/ObjectsHelper.js +34 -0
  93. package/build/browser/observable/internal/object/ObjectsHelper.js.map +1 -0
  94. package/build/browser/observable/internal/removeDuplicates.js +36 -0
  95. package/build/browser/observable/internal/removeDuplicates.js.map +1 -0
  96. package/build/browser/observable/internal/sorting/SortingStrategy.js +78 -0
  97. package/build/browser/observable/internal/sorting/SortingStrategy.js.map +1 -0
  98. package/build/browser/observable/internal/testUtils/invalidateList.js +23 -0
  99. package/build/browser/observable/internal/testUtils/invalidateList.js.map +1 -0
  100. package/build/browser/observable/internal/testUtils/observeLink/expectStandardObserveLink.js +69 -0
  101. package/build/browser/observable/internal/testUtils/observeLink/expectStandardObserveLink.js.map +1 -0
  102. package/build/browser/observable/internal/testUtils/observeObject/expectStandardObserveObject.js +56 -0
  103. package/build/browser/observable/internal/testUtils/observeObject/expectStandardObserveObject.js.map +1 -0
  104. package/build/browser/observable/internal/testUtils.js +70 -7
  105. package/build/browser/observable/internal/testUtils.js.map +1 -1
  106. package/build/browser/public/unstable-do-not-use.js.map +1 -1
  107. package/build/browser/util/UserAgent.js +2 -2
  108. package/build/browser/util/streamutils.js +1 -1
  109. package/build/browser/util/streamutils.js.map +1 -1
  110. package/build/cjs/{chunk-URDXPIRU.cjs → chunk-AOGMSVFN.cjs} +61 -54
  111. package/build/cjs/chunk-AOGMSVFN.cjs.map +1 -0
  112. package/build/cjs/{chunk-BJYCRD5Y.cjs → chunk-BL56QBYG.cjs} +44 -19
  113. package/build/cjs/chunk-BL56QBYG.cjs.map +1 -0
  114. package/build/cjs/index.cjs +7 -7
  115. package/build/cjs/public/internal.cjs +8 -8
  116. package/build/cjs/public/unstable-do-not-use.cjs +779 -268
  117. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  118. package/build/cjs/public/unstable-do-not-use.d.cts +161 -12
  119. package/build/esm/Client.js +1 -1
  120. package/build/esm/Client.js.map +1 -1
  121. package/build/esm/createClient.js +4 -1
  122. package/build/esm/createClient.js.map +1 -1
  123. package/build/esm/fetchMetadata.test.js +11 -0
  124. package/build/esm/fetchMetadata.test.js.map +1 -1
  125. package/build/esm/intellisense.test.helpers/orderBySuggestionIsRight.js +8 -1
  126. package/build/esm/intellisense.test.helpers/orderBySuggestionIsRight.js.map +1 -1
  127. package/build/esm/intellisense.test.js +14 -4
  128. package/build/esm/intellisense.test.js.map +1 -1
  129. package/build/esm/object/Cache.js +1 -1
  130. package/build/esm/object/Cache.js.map +1 -1
  131. package/build/esm/object/SimpleCache.js +1 -1
  132. package/build/esm/object/SimpleCache.js.map +1 -1
  133. package/build/esm/object/convertWireToOsdkObjects.js +4 -0
  134. package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
  135. package/build/esm/object/convertWireToOsdkObjects.test.js +12 -0
  136. package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
  137. package/build/esm/object/fetchPage.js +30 -4
  138. package/build/esm/object/fetchPage.js.map +1 -1
  139. package/build/esm/object/geotimeseriesreference.test.js +0 -2
  140. package/build/esm/object/geotimeseriesreference.test.js.map +1 -1
  141. package/build/esm/objectSet/ObjectSet.test.js +6 -0
  142. package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
  143. package/build/esm/objectSet/createObjectSet.js +3 -1
  144. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  145. package/build/esm/observable/LinkPayload.js +2 -0
  146. package/build/esm/observable/LinkPayload.js.map +1 -0
  147. package/build/esm/observable/ObjectPayload.js.map +1 -1
  148. package/build/esm/observable/ObservableClient/ObserveLink.js +17 -0
  149. package/build/esm/observable/ObservableClient/ObserveLink.js.map +1 -0
  150. package/build/esm/observable/ObservableClient/common.js +2 -0
  151. package/build/esm/observable/ObservableClient/common.js.map +1 -0
  152. package/build/esm/observable/ObservableClient.js +20 -0
  153. package/build/esm/observable/ObservableClient.js.map +1 -1
  154. package/build/esm/observable/Unsubscribable.js +2 -0
  155. package/build/esm/observable/Unsubscribable.js.map +1 -0
  156. package/build/esm/observable/internal/AbstractHelper.js +50 -0
  157. package/build/esm/observable/internal/AbstractHelper.js.map +1 -0
  158. package/build/esm/observable/internal/BaseCollectionQuery.js +2 -0
  159. package/build/esm/observable/internal/BaseCollectionQuery.js.map +1 -0
  160. package/build/esm/observable/internal/BulkObjectLoader.js +3 -3
  161. package/build/esm/observable/internal/BulkObjectLoader.js.map +1 -1
  162. package/build/esm/observable/internal/CacheKeys.js +17 -2
  163. package/build/esm/observable/internal/CacheKeys.js.map +1 -1
  164. package/build/esm/observable/internal/Changes.js +6 -0
  165. package/build/esm/observable/internal/Changes.js.map +1 -1
  166. package/build/esm/observable/internal/KnownCacheKey.js +2 -0
  167. package/build/esm/observable/internal/KnownCacheKey.js.map +1 -0
  168. package/build/esm/observable/internal/Layer.js.map +1 -1
  169. package/build/esm/observable/internal/ListCacheKey.js +2 -0
  170. package/build/esm/observable/internal/ListCacheKey.js.map +1 -0
  171. package/build/esm/observable/internal/ListQuery.js +399 -161
  172. package/build/esm/observable/internal/ListQuery.js.map +1 -1
  173. package/build/esm/observable/internal/ObjectQuery.js +27 -2
  174. package/build/esm/observable/internal/ObjectQuery.js.map +1 -1
  175. package/build/esm/observable/internal/ObservableClientImpl.js +42 -2
  176. package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
  177. package/build/esm/observable/internal/OptimisticJob.js +12 -3
  178. package/build/esm/observable/internal/OptimisticJob.js.map +1 -1
  179. package/build/esm/observable/internal/Query.js +17 -3
  180. package/build/esm/observable/internal/Query.js.map +1 -1
  181. package/build/esm/observable/internal/QuerySubscription.js +41 -0
  182. package/build/esm/observable/internal/QuerySubscription.js.map +1 -0
  183. package/build/esm/observable/internal/Store.invalidation.test.js +481 -0
  184. package/build/esm/observable/internal/Store.invalidation.test.js.map +1 -0
  185. package/build/esm/observable/internal/Store.js +38 -91
  186. package/build/esm/observable/internal/Store.js.map +1 -1
  187. package/build/esm/observable/internal/Store.test.js +318 -63
  188. package/build/esm/observable/internal/Store.test.js.map +1 -1
  189. package/build/esm/observable/internal/UnsubscribableWrapper.js +30 -0
  190. package/build/esm/observable/internal/UnsubscribableWrapper.js.map +1 -0
  191. package/build/esm/observable/internal/createCollectionConnectable.js +50 -0
  192. package/build/esm/observable/internal/createCollectionConnectable.js.map +1 -0
  193. package/build/esm/observable/internal/createCollectionConnectable.test.js +599 -0
  194. package/build/esm/observable/internal/createCollectionConnectable.test.js.map +1 -0
  195. package/build/esm/observable/internal/getObjectTypesThatInvalidate.js +216 -0
  196. package/build/esm/observable/internal/getObjectTypesThatInvalidate.js.map +1 -0
  197. package/build/esm/observable/internal/getObjectTypesThatInvalidate.test.js +382 -0
  198. package/build/esm/observable/internal/getObjectTypesThatInvalidate.test.js.map +1 -0
  199. package/build/esm/observable/internal/isObjectInstance.js +23 -0
  200. package/build/esm/observable/internal/isObjectInstance.js.map +1 -0
  201. package/build/esm/observable/internal/links/LinksHelper.js +37 -0
  202. package/build/esm/observable/internal/links/LinksHelper.js.map +1 -0
  203. package/build/esm/observable/internal/links/SpecificLinkCacheKey.js +2 -0
  204. package/build/esm/observable/internal/links/SpecificLinkCacheKey.js.map +1 -0
  205. package/build/esm/observable/internal/links/SpecificLinkQuery.js +185 -0
  206. package/build/esm/observable/internal/links/SpecificLinkQuery.js.map +1 -0
  207. package/build/esm/observable/internal/list/ListsHelper.js +49 -0
  208. package/build/esm/observable/internal/list/ListsHelper.js.map +1 -0
  209. package/build/esm/observable/internal/object/ObjectsHelper.js +34 -0
  210. package/build/esm/observable/internal/object/ObjectsHelper.js.map +1 -0
  211. package/build/esm/observable/internal/removeDuplicates.js +36 -0
  212. package/build/esm/observable/internal/removeDuplicates.js.map +1 -0
  213. package/build/esm/observable/internal/sorting/SortingStrategy.js +78 -0
  214. package/build/esm/observable/internal/sorting/SortingStrategy.js.map +1 -0
  215. package/build/esm/observable/internal/testUtils/invalidateList.js +23 -0
  216. package/build/esm/observable/internal/testUtils/invalidateList.js.map +1 -0
  217. package/build/esm/observable/internal/testUtils/observeLink/expectStandardObserveLink.js +69 -0
  218. package/build/esm/observable/internal/testUtils/observeLink/expectStandardObserveLink.js.map +1 -0
  219. package/build/esm/observable/internal/testUtils/observeObject/expectStandardObserveObject.js +56 -0
  220. package/build/esm/observable/internal/testUtils/observeObject/expectStandardObserveObject.js.map +1 -0
  221. package/build/esm/observable/internal/testUtils.js +70 -7
  222. package/build/esm/observable/internal/testUtils.js.map +1 -1
  223. package/build/esm/public/unstable-do-not-use.js.map +1 -1
  224. package/build/esm/util/UserAgent.js +2 -2
  225. package/build/esm/util/streamutils.js +1 -1
  226. package/build/esm/util/streamutils.js.map +1 -1
  227. package/build/types/Client.d.ts +1 -1
  228. package/build/types/createClient.d.ts.map +1 -1
  229. package/build/types/object/fetchPage.d.ts.map +1 -1
  230. package/build/types/observable/LinkPayload.d.ts +9 -0
  231. package/build/types/observable/LinkPayload.d.ts.map +1 -0
  232. package/build/types/observable/ObjectPayload.d.ts +4 -0
  233. package/build/types/observable/ObjectPayload.d.ts.map +1 -1
  234. package/build/types/observable/ObservableClient/ObserveLink.d.ts +32 -0
  235. package/build/types/observable/ObservableClient/ObserveLink.d.ts.map +1 -0
  236. package/build/types/observable/ObservableClient/common.d.ts +67 -0
  237. package/build/types/observable/ObservableClient/common.d.ts.map +1 -0
  238. package/build/types/observable/ObservableClient.d.ts +82 -15
  239. package/build/types/observable/ObservableClient.d.ts.map +1 -1
  240. package/build/types/observable/Unsubscribable.d.ts +3 -0
  241. package/build/types/observable/Unsubscribable.d.ts.map +1 -0
  242. package/build/types/observable/internal/AbstractHelper.d.ts +15 -0
  243. package/build/types/observable/internal/AbstractHelper.d.ts.map +1 -0
  244. package/build/types/observable/internal/BaseCollectionQuery.d.ts +64 -0
  245. package/build/types/observable/internal/BaseCollectionQuery.d.ts.map +1 -0
  246. package/build/types/observable/internal/BulkObjectLoader.d.ts.map +1 -1
  247. package/build/types/observable/internal/CacheKeys.d.ts +10 -4
  248. package/build/types/observable/internal/CacheKeys.d.ts.map +1 -1
  249. package/build/types/observable/internal/Changes.d.ts +7 -4
  250. package/build/types/observable/internal/Changes.d.ts.map +1 -1
  251. package/build/types/observable/internal/KnownCacheKey.d.ts +4 -0
  252. package/build/types/observable/internal/KnownCacheKey.d.ts.map +1 -0
  253. package/build/types/observable/internal/Layer.d.ts +7 -7
  254. package/build/types/observable/internal/Layer.d.ts.map +1 -1
  255. package/build/types/observable/internal/ListCacheKey.d.ts +7 -0
  256. package/build/types/observable/internal/ListCacheKey.d.ts.map +1 -0
  257. package/build/types/observable/internal/ListQuery.d.ts +160 -21
  258. package/build/types/observable/internal/ListQuery.d.ts.map +1 -1
  259. package/build/types/observable/internal/ObjectQuery.d.ts +3 -1
  260. package/build/types/observable/internal/ObjectQuery.d.ts.map +1 -1
  261. package/build/types/observable/internal/OptimisticJob.d.ts.map +1 -1
  262. package/build/types/observable/internal/Query.d.ts +6 -5
  263. package/build/types/observable/internal/Query.d.ts.map +1 -1
  264. package/build/types/observable/internal/QuerySubscription.d.ts +1 -0
  265. package/build/types/observable/internal/QuerySubscription.d.ts.map +1 -0
  266. package/build/types/observable/internal/Store.d.ts +34 -31
  267. package/build/types/observable/internal/Store.d.ts.map +1 -1
  268. package/build/types/observable/internal/Store.invalidation.test.d.ts +1 -0
  269. package/build/types/observable/internal/Store.invalidation.test.d.ts.map +1 -0
  270. package/build/types/observable/internal/Store.test.d.ts +4 -1
  271. package/build/types/observable/internal/Store.test.d.ts.map +1 -1
  272. package/build/types/observable/internal/UnsubscribableWrapper.d.ts +1 -0
  273. package/build/types/observable/internal/UnsubscribableWrapper.d.ts.map +1 -0
  274. package/build/types/observable/internal/createCollectionConnectable.d.ts +38 -0
  275. package/build/types/observable/internal/createCollectionConnectable.d.ts.map +1 -0
  276. package/build/types/observable/internal/createCollectionConnectable.test.d.ts +1 -0
  277. package/build/types/observable/internal/createCollectionConnectable.test.d.ts.map +1 -0
  278. package/build/types/observable/internal/getObjectTypesThatInvalidate.d.ts +9 -0
  279. package/build/types/observable/internal/getObjectTypesThatInvalidate.d.ts.map +1 -0
  280. package/build/types/observable/internal/getObjectTypesThatInvalidate.test.d.ts +1 -0
  281. package/build/types/observable/internal/getObjectTypesThatInvalidate.test.d.ts.map +1 -0
  282. package/build/types/observable/internal/isObjectInstance.d.ts +5 -0
  283. package/build/types/observable/internal/isObjectInstance.d.ts.map +1 -0
  284. package/build/types/observable/internal/links/LinksHelper.d.ts +29 -0
  285. package/build/types/observable/internal/links/LinksHelper.d.ts.map +1 -0
  286. package/build/types/observable/internal/links/SpecificLinkCacheKey.d.ts +17 -0
  287. package/build/types/observable/internal/links/SpecificLinkCacheKey.d.ts.map +1 -0
  288. package/build/types/observable/internal/links/SpecificLinkQuery.d.ts +45 -0
  289. package/build/types/observable/internal/links/SpecificLinkQuery.d.ts.map +1 -0
  290. package/build/types/observable/internal/list/ListsHelper.d.ts +17 -0
  291. package/build/types/observable/internal/list/ListsHelper.d.ts.map +1 -0
  292. package/build/types/observable/internal/object/ObjectsHelper.d.ts +11 -0
  293. package/build/types/observable/internal/object/ObjectsHelper.d.ts.map +1 -0
  294. package/build/types/observable/internal/removeDuplicates.d.ts +11 -0
  295. package/build/types/observable/internal/removeDuplicates.d.ts.map +1 -0
  296. package/build/types/observable/internal/sorting/SortingStrategy.d.ts +41 -0
  297. package/build/types/observable/internal/sorting/SortingStrategy.d.ts.map +1 -0
  298. package/build/types/observable/internal/testUtils/invalidateList.d.ts +9 -0
  299. package/build/types/observable/internal/testUtils/invalidateList.d.ts.map +1 -0
  300. package/build/types/observable/internal/testUtils/observeLink/expectStandardObserveLink.d.ts +46 -0
  301. package/build/types/observable/internal/testUtils/observeLink/expectStandardObserveLink.d.ts.map +1 -0
  302. package/build/types/observable/internal/testUtils/observeObject/expectStandardObserveObject.d.ts +26 -0
  303. package/build/types/observable/internal/testUtils/observeObject/expectStandardObserveObject.d.ts.map +1 -0
  304. package/build/types/observable/internal/testUtils.d.ts +25 -3
  305. package/build/types/observable/internal/testUtils.d.ts.map +1 -1
  306. package/build/types/public/unstable-do-not-use.d.ts +4 -2
  307. package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
  308. package/package.json +10 -10
  309. package/build/cjs/chunk-BJYCRD5Y.cjs.map +0 -1
  310. package/build/cjs/chunk-URDXPIRU.cjs.map +0 -1
@@ -0,0 +1,50 @@
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 { QuerySubscription } from "./QuerySubscription.js";
18
+ export class AbstractHelper {
19
+ constructor(store) {
20
+ this.store = store;
21
+ }
22
+ observe(options, subFn) {
23
+ const query = this.getQuery(options);
24
+ return this._subscribe(query, options, subFn);
25
+ }
26
+ _subscribe(query, options, subFn) {
27
+ // the ListQuery represents the shared state of the list
28
+ this.store.retain(query.cacheKey);
29
+ if (options.mode !== "offline") {
30
+ query.revalidate(options.mode === "force").catch(e => {
31
+ subFn.error(e);
32
+
33
+ // we don't want observeObject() to return a promise,
34
+ // so we settle for logging an error here instead of
35
+ // dropping it on the floor.
36
+ if (this.store.logger) {
37
+ this.store.logger.error("Unhandled error in observeObject", e);
38
+ } else {
39
+ throw e;
40
+ }
41
+ });
42
+ }
43
+ const sub = query.subscribe(subFn);
44
+ sub.add(() => {
45
+ this.store.release(query.cacheKey);
46
+ });
47
+ return new QuerySubscription(query, sub);
48
+ }
49
+ }
50
+ //# sourceMappingURL=AbstractHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractHelper.js","names":["QuerySubscription","AbstractHelper","constructor","store","observe","options","subFn","query","getQuery","_subscribe","retain","cacheKey","mode","revalidate","catch","e","error","logger","sub","subscribe","add","release"],"sources":["AbstractHelper.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 CommonObserveOptions,\n Observer,\n} from \"../ObservableClient/common.js\";\nimport type { KnownCacheKey } from \"./KnownCacheKey.js\";\nimport type { Query } from \"./Query.js\";\nimport { QuerySubscription } from \"./QuerySubscription.js\";\nimport type { Store } from \"./Store.js\";\n\nexport abstract class AbstractHelper<\n TQuery extends Query<KnownCacheKey, any, CommonObserveOptions>,\n TObserveOptions extends CommonObserveOptions,\n> {\n protected readonly store: Store;\n\n constructor(store: Store) {\n this.store = store;\n }\n\n observe(\n options: TObserveOptions,\n subFn: Observer<\n TQuery extends Query<any, infer PAYLOAD, any> ? PAYLOAD : never\n >,\n ): QuerySubscription<TQuery> {\n const query = this.getQuery(options);\n return this._subscribe(query, options, subFn);\n }\n\n abstract getQuery(options: TObserveOptions): TQuery;\n\n protected _subscribe(\n query: TQuery,\n options: TObserveOptions,\n subFn: Observer<\n TQuery extends Query<any, infer PAYLOAD, any> ? PAYLOAD : never\n >,\n ): QuerySubscription<TQuery> {\n // the ListQuery represents the shared state of the list\n this.store.retain(query.cacheKey);\n\n if (options.mode !== \"offline\") {\n query.revalidate(options.mode === \"force\").catch((e: unknown) => {\n subFn.error(e);\n\n // we don't want observeObject() to return a promise,\n // so we settle for logging an error here instead of\n // dropping it on the floor.\n if (this.store.logger) {\n this.store.logger.error(\"Unhandled error in observeObject\", e);\n } else {\n throw e;\n }\n });\n }\n const sub = query.subscribe(subFn);\n sub.add(() => {\n this.store.release(query.cacheKey);\n });\n\n return new QuerySubscription(query, sub);\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,SAASA,iBAAiB,QAAQ,wBAAwB;AAG1D,OAAO,MAAeC,cAAc,CAGlC;EAGAC,WAAWA,CAACC,KAAY,EAAE;IACxB,IAAI,CAACA,KAAK,GAAGA,KAAK;EACpB;EAEAC,OAAOA,CACLC,OAAwB,EACxBC,KAEC,EAC0B;IAC3B,MAAMC,KAAK,GAAG,IAAI,CAACC,QAAQ,CAACH,OAAO,CAAC;IACpC,OAAO,IAAI,CAACI,UAAU,CAACF,KAAK,EAAEF,OAAO,EAAEC,KAAK,CAAC;EAC/C;EAIUG,UAAUA,CAClBF,KAAa,EACbF,OAAwB,EACxBC,KAEC,EAC0B;IAC3B;IACA,IAAI,CAACH,KAAK,CAACO,MAAM,CAACH,KAAK,CAACI,QAAQ,CAAC;IAEjC,IAAIN,OAAO,CAACO,IAAI,KAAK,SAAS,EAAE;MAC9BL,KAAK,CAACM,UAAU,CAACR,OAAO,CAACO,IAAI,KAAK,OAAO,CAAC,CAACE,KAAK,CAAEC,CAAU,IAAK;QAC/DT,KAAK,CAACU,KAAK,CAACD,CAAC,CAAC;;QAEd;QACA;QACA;QACA,IAAI,IAAI,CAACZ,KAAK,CAACc,MAAM,EAAE;UACrB,IAAI,CAACd,KAAK,CAACc,MAAM,CAACD,KAAK,CAAC,kCAAkC,EAAED,CAAC,CAAC;QAChE,CAAC,MAAM;UACL,MAAMA,CAAC;QACT;MACF,CAAC,CAAC;IACJ;IACA,MAAMG,GAAG,GAAGX,KAAK,CAACY,SAAS,CAACb,KAAK,CAAC;IAClCY,GAAG,CAACE,GAAG,CAAC,MAAM;MACZ,IAAI,CAACjB,KAAK,CAACkB,OAAO,CAACd,KAAK,CAACI,QAAQ,CAAC;IACpC,CAAC,CAAC;IAEF,OAAO,IAAIX,iBAAiB,CAACO,KAAK,EAAEW,GAAG,CAAC;EAC1C;AACF","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=BaseCollectionQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseCollectionQuery.js","names":[],"sources":["BaseCollectionQuery.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 { InterfaceHolder } from \"../../object/convertWireToOsdkObjects/InterfaceHolder.js\";\nimport type { ObjectHolder } from \"../../object/convertWireToOsdkObjects/ObjectHolder.js\";\nimport type { Status } from \"../ObservableClient/common.js\";\nimport { type ObjectCacheKey } from \"./ObjectQuery.js\";\n\n/**\n * Abstract base for ListQuery and SpecificLinkQuery.\n * - Stores object references, not duplicates\n * - Implements shared pagination and reference counting\n * - Template method pattern for collection operations\n */\nexport interface CollectionStorageData {\n data: ObjectCacheKey[];\n}\n\n/**\n * Base interface for collection-based payloads (lists and links)\n * Contains the common properties shared by all collection payload types\n */\nexport interface BaseCollectionPayload {\n /**\n * The resolved collection of objects\n */\n resolvedList: Array<ObjectHolder | InterfaceHolder>;\n\n /**\n * Whether the data is from an optimistic update\n */\n isOptimistic: boolean;\n\n /**\n * Function to fetch more items when available\n */\n fetchMore: () => Promise<void>;\n\n /**\n * Whether there are more items available to fetch\n */\n hasMore: boolean;\n\n /**\n * Current loading status\n */\n status: Status;\n\n /**\n * Timestamp of when the data was last updated\n */\n lastUpdated: number;\n}\n\n/**\n * Common parameters available for constructing a collection payload\n */\nexport interface CollectionConnectableParams {\n /**\n * Array of resolved objects\n */\n resolvedData: any[];\n\n /**\n * Whether the data is from an optimistic update\n */\n isOptimistic: boolean;\n\n /**\n * Current loading status\n */\n status: Status;\n\n /**\n * Timestamp of the last update\n */\n lastUpdated: number;\n}\n"],"mappings":"","ignoreList":[]}
@@ -37,7 +37,7 @@ export class BulkObjectLoader {
37
37
  this.#maxWait = maxWait;
38
38
  this.#maxEntries = maxEntries;
39
39
  }
40
- fetch(apiName, primaryKey) {
40
+ async fetch(apiName, primaryKey) {
41
41
  const deferred = pDefer();
42
42
  const entry = this.#m.get(apiName);
43
43
  entry.data.push({
@@ -53,7 +53,7 @@ export class BulkObjectLoader {
53
53
  clearTimeout(entry.timer);
54
54
  this.#loadObjects(apiName, entry.data);
55
55
  }
56
- return deferred.promise;
56
+ return await deferred.promise;
57
57
  }
58
58
  #loadObjects(apiName, arr) {
59
59
  this.#m.delete(apiName);
@@ -85,7 +85,7 @@ export class BulkObjectLoader {
85
85
  if (object) {
86
86
  deferred.resolve(object);
87
87
  } else {
88
- deferred.reject(new PalantirApiError("Object not found"));
88
+ deferred.reject(new PalantirApiError(`Object not found: ${primaryKey}`));
89
89
  }
90
90
  }
91
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BulkObjectLoader.js","names":["PalantirApiError","DefaultMap","DefaultWeakMap","pDefer","additionalContext","weakCache","c","BulkObjectLoader","getBulkObjectLoader","client","get","m","data","timer","undefined","logger","maxWait","maxEntries","constructor","fetch","apiName","primaryKey","deferred","entry","push","setTimeout","loadObjects","length","clearTimeout","promise","#loadObjects","arr","delete","reallyLoadObjects","catch","e","error","#reallyLoadObjects","miniDef","type","objMetadata","fetchMetadata","pks","map","x","where","primaryKeyApiName","$in","fetchPage","$pageSize","object","find","$primaryKey","resolve","reject"],"sources":["BulkObjectLoader.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, ObjectTypeDefinition } from \"@osdk/api\";\nimport { PalantirApiError } from \"@osdk/shared.net.errors\";\nimport { DefaultMap, DefaultWeakMap } from \"mnemonist\";\nimport type { DeferredPromise } from \"p-defer\";\nimport pDefer from \"p-defer\";\nimport { additionalContext, type Client } from \"../../Client.js\";\nimport type {\n ObjectHolder,\n} from \"../../object/convertWireToOsdkObjects/ObjectHolder.js\";\n\ninterface InternalValue {\n primaryKey: string;\n deferred: DeferredPromise<ObjectHolder>;\n}\n\ninterface Accumulator {\n data: InternalValue[];\n timer?: ReturnType<typeof setTimeout>;\n}\n\nconst weakCache = new DefaultWeakMap<Client, BulkObjectLoader>(c =>\n new BulkObjectLoader(c)\n);\n\nexport function getBulkObjectLoader(client: Client): BulkObjectLoader {\n return weakCache.get(client);\n}\n\nexport class BulkObjectLoader {\n #client: Client;\n\n #m = new DefaultMap<string, Accumulator>(() => ({\n data: [],\n timer: undefined,\n }));\n #logger: Logger | undefined;\n #maxWait: number;\n #maxEntries: number;\n\n constructor(client: Client, maxWait = 25, maxEntries = 100) {\n this.#client = client;\n this.#logger = client[additionalContext].logger;\n this.#maxWait = maxWait;\n this.#maxEntries = maxEntries;\n }\n\n public fetch(\n apiName: string,\n primaryKey: string | number | boolean,\n ): Promise<ObjectHolder> {\n const deferred = pDefer<ObjectHolder>();\n\n const entry = this.#m.get(apiName);\n entry.data.push({\n primaryKey: primaryKey as string,\n deferred,\n });\n\n if (!entry.timer) {\n entry.timer = setTimeout(() => {\n this.#loadObjects(apiName, entry.data);\n }, this.#maxWait);\n }\n\n if (entry.data.length >= this.#maxEntries) {\n clearTimeout(entry.timer);\n this.#loadObjects(apiName, entry.data);\n }\n\n return deferred.promise;\n }\n\n #loadObjects(apiName: string, arr: InternalValue[]) {\n this.#m.delete(apiName);\n\n this.#reallyLoadObjects(apiName, arr).catch((e: unknown) => {\n this.#logger?.error(\"Unhandled exception\", e);\n });\n }\n\n async #reallyLoadObjects(apiName: string, arr: InternalValue[]) {\n const miniDef = { type: \"object\", apiName } as ObjectTypeDefinition;\n const objMetadata = await this.#client.fetchMetadata(miniDef);\n\n const pks = arr.map(x => x.primaryKey);\n\n const { data } = await this.#client(miniDef)\n .where({\n [objMetadata.primaryKeyApiName]: { $in: pks },\n }).fetchPage({\n $pageSize: pks.length,\n });\n\n for (const { primaryKey, deferred } of arr) {\n const object = data.find(x => x.$primaryKey === primaryKey) as\n | ObjectHolder\n | undefined;\n if (object) {\n deferred.resolve(object);\n } else {\n deferred.reject(new PalantirApiError(\"Object not found\"));\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BulkObjectLoader.js","names":["PalantirApiError","DefaultMap","DefaultWeakMap","pDefer","additionalContext","weakCache","c","BulkObjectLoader","getBulkObjectLoader","client","get","m","data","timer","undefined","logger","maxWait","maxEntries","constructor","fetch","apiName","primaryKey","deferred","entry","push","setTimeout","loadObjects","length","clearTimeout","promise","#loadObjects","arr","delete","reallyLoadObjects","catch","e","error","#reallyLoadObjects","miniDef","type","objMetadata","fetchMetadata","pks","map","x","where","primaryKeyApiName","$in","fetchPage","$pageSize","object","find","$primaryKey","resolve","reject"],"sources":["BulkObjectLoader.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, ObjectTypeDefinition } from \"@osdk/api\";\nimport { PalantirApiError } from \"@osdk/shared.net.errors\";\nimport { DefaultMap, DefaultWeakMap } from \"mnemonist\";\nimport type { DeferredPromise } from \"p-defer\";\nimport pDefer from \"p-defer\";\nimport { additionalContext, type Client } from \"../../Client.js\";\nimport type {\n ObjectHolder,\n} from \"../../object/convertWireToOsdkObjects/ObjectHolder.js\";\n\ninterface InternalValue {\n primaryKey: string;\n deferred: DeferredPromise<ObjectHolder>;\n}\n\ninterface Accumulator {\n data: InternalValue[];\n timer?: ReturnType<typeof setTimeout>;\n}\n\nconst weakCache = new DefaultWeakMap<Client, BulkObjectLoader>(c =>\n new BulkObjectLoader(c)\n);\n\nexport function getBulkObjectLoader(client: Client): BulkObjectLoader {\n return weakCache.get(client);\n}\n\nexport class BulkObjectLoader {\n #client: Client;\n\n #m = new DefaultMap<string, Accumulator>(() => ({\n data: [],\n timer: undefined,\n }));\n #logger: Logger | undefined;\n #maxWait: number;\n #maxEntries: number;\n\n constructor(client: Client, maxWait = 25, maxEntries = 100) {\n this.#client = client;\n this.#logger = client[additionalContext].logger;\n this.#maxWait = maxWait;\n this.#maxEntries = maxEntries;\n }\n\n public async fetch(\n apiName: string,\n primaryKey: string | number | boolean,\n ): Promise<ObjectHolder> {\n const deferred = pDefer<ObjectHolder>();\n\n const entry = this.#m.get(apiName);\n entry.data.push({\n primaryKey: primaryKey as string,\n deferred,\n });\n\n if (!entry.timer) {\n entry.timer = setTimeout(() => {\n this.#loadObjects(apiName, entry.data);\n }, this.#maxWait);\n }\n\n if (entry.data.length >= this.#maxEntries) {\n clearTimeout(entry.timer);\n this.#loadObjects(apiName, entry.data);\n }\n\n return await deferred.promise;\n }\n\n #loadObjects(apiName: string, arr: InternalValue[]) {\n this.#m.delete(apiName);\n\n this.#reallyLoadObjects(apiName, arr).catch((e: unknown) => {\n this.#logger?.error(\"Unhandled exception\", e);\n });\n }\n\n async #reallyLoadObjects(apiName: string, arr: InternalValue[]) {\n const miniDef = { type: \"object\", apiName } as ObjectTypeDefinition;\n const objMetadata = await this.#client.fetchMetadata(miniDef);\n\n const pks = arr.map(x => x.primaryKey);\n\n const { data } = await this.#client(miniDef)\n .where({\n [objMetadata.primaryKeyApiName]: { $in: pks },\n }).fetchPage({\n $pageSize: pks.length,\n });\n\n for (const { primaryKey, deferred } of arr) {\n const object = data.find(x => x.$primaryKey === primaryKey) as\n | ObjectHolder\n | undefined;\n if (object) {\n deferred.resolve(object);\n } else {\n deferred.reject(\n new PalantirApiError(`Object not found: ${primaryKey}`),\n );\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -17,6 +17,12 @@
17
17
  import { Trie } from "@wry/trie";
18
18
  import invariant from "tiny-invariant";
19
19
  import { DEBUG_CACHE_KEYS } from "../DebugFlags.js";
20
+ /**
21
+ * Cache key management with canonicalization.
22
+ * - Formats: {type}:{pk} | {type}:list:{where} | {source}:{pk}:{link}:{where}
23
+ * - Uses Trie structure for efficient storage and lookup
24
+ * - Ensures consistent keys through canonicalization
25
+ */
20
26
  export class CacheKeys {
21
27
  #cacheKeys = new Trie(false, keys => {
22
28
  const ret = {
@@ -38,11 +44,20 @@ export class CacheKeys {
38
44
  return this.#cacheKeys.lookupArray(["object", apiName, pk]);
39
45
  });
40
46
  this.#registerCacheKeyFactory("list", (type, apiName, where, orderBy) => {
47
+ const cacheKeyArgs = ["list", type, apiName, whereCanonicalizer.canonicalize(where), orderByCanonicalizer.canonicalize(orderBy)];
48
+ if (process.env.NODE_ENV !== "production" && DEBUG_CACHE_KEYS) {
49
+ // eslint-disable-next-line no-console
50
+ console.debug(`CacheKeys.get([list, ${apiName}, ${JSON.stringify(where)}, ${JSON.stringify(orderBy)}]) -- already exists? `, this.#cacheKeys.peekArray(cacheKeyArgs) != null);
51
+ }
52
+ return this.#cacheKeys.lookupArray(cacheKeyArgs);
53
+ });
54
+ this.#registerCacheKeyFactory("specificLink", (sourceObjectType, sourcePk, linkName, where, orderBy) => {
55
+ const cacheKeyArgs = ["specificLink", sourceObjectType, sourcePk, linkName, whereCanonicalizer.canonicalize(where), orderByCanonicalizer.canonicalize(orderBy)];
41
56
  if (process.env.NODE_ENV !== "production" && DEBUG_CACHE_KEYS) {
42
57
  // eslint-disable-next-line no-console
43
- console.debug(`CacheKeys.get([list, ${apiName}, ${JSON.stringify(where)}, ${JSON.stringify(orderBy)}]) -- already exists? `, this.#cacheKeys.peekArray(["list", apiName, whereCanonicalizer.canonicalize(where), orderByCanonicalizer.canonicalize(orderBy)]) != null);
58
+ console.debug(`CacheKeys.get([specificLink, ${sourceObjectType}, ${sourcePk}, ${linkName}, ${JSON.stringify(where)}, ${JSON.stringify(orderBy)}]) -- already exists? `, this.#cacheKeys.peekArray(cacheKeyArgs) != null);
44
59
  }
45
- return this.#cacheKeys.lookupArray(["list", type, apiName, whereCanonicalizer.canonicalize(where), orderByCanonicalizer.canonicalize(orderBy)]);
60
+ return this.#cacheKeys.lookupArray(cacheKeyArgs);
46
61
  });
47
62
  }
48
63
  #registerCacheKeyFactory(type, factory) {
@@ -1 +1 @@
1
- {"version":3,"file":"CacheKeys.js","names":["Trie","invariant","DEBUG_CACHE_KEYS","CacheKeys","cacheKeys","keys","ret","type","otherKeys","slice","onCreate","cacheKeyFactories","Map","constructor","whereCanonicalizer","orderByCanonicalizer","registerCacheKeyFactory","apiName","pk","process","env","NODE_ENV","console","debug","peekArray","lookupArray","where","orderBy","JSON","stringify","canonicalize","#registerCacheKeyFactory","factory","set","get","args","remove","cacheKey"],"sources":["CacheKeys.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 { Trie } from \"@wry/trie\";\nimport invariant from \"tiny-invariant\";\nimport { DEBUG_CACHE_KEYS } from \"../DebugFlags.js\";\nimport type { CacheKey } from \"./CacheKey.js\";\nimport type { ListCacheKey } from \"./ListQuery.js\";\nimport type { ObjectCacheKey } from \"./ObjectQuery.js\";\nimport type { OrderByCanonicalizer } from \"./OrderByCanonicalizer.js\";\nimport type { WhereClauseCanonicalizer } from \"./WhereClauseCanonicalizer.js\";\n\ntype CacheKeyArgs<K extends CacheKey> = [K[\"type\"], ...K[\"otherKeys\"]];\n\nexport class CacheKeys {\n #cacheKeys = new Trie<CacheKey<string, any, any>>(false, (keys) => {\n const ret = {\n type: keys[0],\n otherKeys: keys.slice(1),\n } as unknown as CacheKey<\n string,\n any,\n any\n >;\n this.#onCreate(ret);\n return ret;\n });\n #cacheKeyFactories = new Map<string, (...args: any[]) => CacheKey>();\n #onCreate: (cacheKey: CacheKey) => void;\n\n constructor(\n whereCanonicalizer: WhereClauseCanonicalizer,\n orderByCanonicalizer: OrderByCanonicalizer,\n onCreate: (cacheKey: CacheKey) => void,\n ) {\n this.#onCreate = onCreate;\n this.#registerCacheKeyFactory<ObjectCacheKey>(\n \"object\",\n (apiName, pk) => {\n if (process.env.NODE_ENV !== \"production\" && DEBUG_CACHE_KEYS) {\n // eslint-disable-next-line no-console\n console.debug(\n `CacheKeys.get([object, ${apiName}, ${pk}]) -- already exists? `,\n this.#cacheKeys.peekArray([\n \"object\",\n apiName,\n pk,\n ]) != null,\n );\n }\n return this.#cacheKeys.lookupArray([\n \"object\",\n apiName,\n pk,\n ]) as ObjectCacheKey;\n },\n );\n this.#registerCacheKeyFactory<ListCacheKey>(\n \"list\",\n (type, apiName, where, orderBy) => {\n if (process.env.NODE_ENV !== \"production\" && DEBUG_CACHE_KEYS) {\n // eslint-disable-next-line no-console\n console.debug(\n `CacheKeys.get([list, ${apiName}, ${JSON.stringify(where)}, ${\n JSON.stringify(orderBy)\n }]) -- already exists? `,\n this.#cacheKeys.peekArray([\n \"list\",\n apiName,\n whereCanonicalizer.canonicalize(where),\n orderByCanonicalizer.canonicalize(orderBy),\n ]) != null,\n );\n }\n return this.#cacheKeys.lookupArray<\n CacheKeyArgs<ListCacheKey>\n >([\n \"list\",\n type,\n apiName,\n whereCanonicalizer.canonicalize(where),\n orderByCanonicalizer.canonicalize(orderBy),\n ]) as ListCacheKey;\n },\n );\n }\n\n #registerCacheKeyFactory<K extends CacheKey>(\n type: K[\"type\"],\n factory: (...args: K[\"__cacheKey\"][\"args\"]) => K,\n ): void {\n this.#cacheKeyFactories.set(type, factory);\n }\n\n get<K extends CacheKey<string, any, any>>(\n type: K[\"type\"],\n ...args: K[\"__cacheKey\"][\"args\"]\n ): K {\n const factory = this.#cacheKeyFactories.get(type);\n invariant(factory, `no cache key factory for type \"${type}\"`);\n return factory(...args) as K;\n }\n\n remove<K extends CacheKey<string, any, any>>(\n cacheKey: K,\n ): void {\n this.#cacheKeys.remove(cacheKey.type, ...cacheKey.otherKeys);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CacheKeys.js","names":["Trie","invariant","DEBUG_CACHE_KEYS","CacheKeys","cacheKeys","keys","ret","type","otherKeys","slice","onCreate","cacheKeyFactories","Map","constructor","whereCanonicalizer","orderByCanonicalizer","registerCacheKeyFactory","apiName","pk","process","env","NODE_ENV","console","debug","peekArray","lookupArray","where","orderBy","cacheKeyArgs","canonicalize","JSON","stringify","sourceObjectType","sourcePk","linkName","#registerCacheKeyFactory","factory","set","get","args","remove","cacheKey"],"sources":["CacheKeys.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 { Trie } from \"@wry/trie\";\nimport invariant from \"tiny-invariant\";\nimport { DEBUG_CACHE_KEYS } from \"../DebugFlags.js\";\nimport type { CacheKey } from \"./CacheKey.js\";\nimport type { KnownCacheKey } from \"./KnownCacheKey.js\";\nimport type { SpecificLinkCacheKey } from \"./links/SpecificLinkCacheKey.js\";\nimport type { ListCacheKey } from \"./ListCacheKey.js\";\nimport type { ObjectCacheKey } from \"./ObjectQuery.js\";\nimport type { OrderByCanonicalizer } from \"./OrderByCanonicalizer.js\";\nimport type { WhereClauseCanonicalizer } from \"./WhereClauseCanonicalizer.js\";\n\ntype CacheKeyArgs<K extends CacheKey> = [K[\"type\"], ...K[\"otherKeys\"]];\n\n/**\n * Cache key management with canonicalization.\n * - Formats: {type}:{pk} | {type}:list:{where} | {source}:{pk}:{link}:{where}\n * - Uses Trie structure for efficient storage and lookup\n * - Ensures consistent keys through canonicalization\n */\nexport class CacheKeys {\n #cacheKeys = new Trie<KnownCacheKey>(false, (keys) => {\n const ret = {\n type: keys[0],\n otherKeys: keys.slice(1),\n } as unknown as KnownCacheKey;\n this.#onCreate(ret);\n return ret;\n });\n #cacheKeyFactories = new Map<string, (...args: any[]) => KnownCacheKey>();\n #onCreate: (cacheKey: KnownCacheKey) => void;\n\n constructor(\n whereCanonicalizer: WhereClauseCanonicalizer,\n orderByCanonicalizer: OrderByCanonicalizer,\n onCreate: (cacheKey: KnownCacheKey) => void,\n ) {\n this.#onCreate = onCreate;\n this.#registerCacheKeyFactory<ObjectCacheKey>(\n \"object\",\n (apiName, pk) => {\n if (process.env.NODE_ENV !== \"production\" && DEBUG_CACHE_KEYS) {\n // eslint-disable-next-line no-console\n console.debug(\n `CacheKeys.get([object, ${apiName}, ${pk}]) -- already exists? `,\n this.#cacheKeys.peekArray([\n \"object\",\n apiName,\n pk,\n ]) != null,\n );\n }\n return this.#cacheKeys.lookupArray([\n \"object\",\n apiName,\n pk,\n ]) as ObjectCacheKey;\n },\n );\n this.#registerCacheKeyFactory<ListCacheKey>(\n \"list\",\n (type, apiName, where, orderBy) => {\n const cacheKeyArgs: CacheKeyArgs<ListCacheKey> = [\n \"list\",\n type,\n apiName,\n whereCanonicalizer.canonicalize(where),\n orderByCanonicalizer.canonicalize(orderBy),\n ];\n\n if (process.env.NODE_ENV !== \"production\" && DEBUG_CACHE_KEYS) {\n // eslint-disable-next-line no-console\n console.debug(\n `CacheKeys.get([list, ${apiName}, ${JSON.stringify(where)}, ${\n JSON.stringify(orderBy)\n }]) -- already exists? `,\n this.#cacheKeys.peekArray(cacheKeyArgs) != null,\n );\n }\n\n return this.#cacheKeys.lookupArray<\n CacheKeyArgs<ListCacheKey>\n >(cacheKeyArgs) as ListCacheKey;\n },\n );\n this.#registerCacheKeyFactory<SpecificLinkCacheKey>(\n \"specificLink\",\n (sourceObjectType, sourcePk, linkName, where, orderBy) => {\n const cacheKeyArgs: CacheKeyArgs<SpecificLinkCacheKey> = [\n \"specificLink\",\n sourceObjectType,\n sourcePk,\n linkName,\n whereCanonicalizer.canonicalize(where),\n orderByCanonicalizer.canonicalize(orderBy),\n ];\n\n if (process.env.NODE_ENV !== \"production\" && DEBUG_CACHE_KEYS) {\n // eslint-disable-next-line no-console\n console.debug(\n `CacheKeys.get([specificLink, ${sourceObjectType}, ${sourcePk}, ${linkName}, ${\n JSON.stringify(where)\n }, ${JSON.stringify(orderBy)}]) -- already exists? `,\n this.#cacheKeys.peekArray(cacheKeyArgs) != null,\n );\n }\n\n return this.#cacheKeys.lookupArray(\n cacheKeyArgs,\n ) as SpecificLinkCacheKey;\n },\n );\n }\n\n #registerCacheKeyFactory<K extends KnownCacheKey>(\n type: K[\"type\"],\n factory: (...args: K[\"__cacheKey\"][\"args\"]) => K,\n ): void {\n this.#cacheKeyFactories.set(type, factory);\n }\n\n get<K extends KnownCacheKey>(\n type: K[\"type\"],\n ...args: K[\"__cacheKey\"][\"args\"]\n ): K {\n const factory = this.#cacheKeyFactories.get(type);\n invariant(factory, `no cache key factory for type \"${type}\"`);\n return factory(...args) as K;\n }\n\n remove<K extends KnownCacheKey>(\n cacheKey: K,\n ): void {\n this.#cacheKeys.remove(cacheKey.type, ...cacheKey.otherKeys);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -32,6 +32,12 @@ export class Changes {
32
32
  registerList = key => {
33
33
  this.modified.add(key);
34
34
  };
35
+ registerLink = cacheKey => {
36
+ this.modified.add(cacheKey);
37
+ };
38
+ deleteLink = cacheKey => {
39
+ this.deleted.add(cacheKey);
40
+ };
35
41
  isEmpty() {
36
42
  return this.modifiedObjects.size === 0 && this.addedObjects.size === 0 && this.added.size === 0 && this.modified.size === 0 && this.deleted.size === 0;
37
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Changes.js","names":["MultiMap","DEBUG_ONLY__cacheKeyToString","Changes","modifiedObjects","addedObjects","added","Set","modified","deleted","registerObject","cacheKey","data","isNew","set","$apiName","add","deleteObject","registerList","key","isEmpty","size","createChangedObjects","DEBUG_ONLY__changesToString","changes","process","env","NODE_ENV","JSON","stringify","multimapHelper","listHelper","Error","Array","from","map","multimap","Object","fromEntries","associations","type","objects","o","$primaryKey"],"sources":["Changes.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 { MultiMap } from \"mnemonist\";\nimport type { ObjectHolder } from \"../../object/convertWireToOsdkObjects/ObjectHolder.js\";\nimport type { CacheKey } from \"./CacheKey.js\";\nimport { DEBUG_ONLY__cacheKeyToString } from \"./CacheKey.js\";\nimport type { ListCacheKey } from \"./ListQuery.js\";\nimport type { ObjectCacheKey } from \"./ObjectQuery.js\";\n\nexport class Changes {\n modifiedObjects: MultiMap<string, ObjectHolder> = new MultiMap();\n addedObjects: MultiMap<string, ObjectHolder> = new MultiMap();\n\n added: Set<ListCacheKey | ObjectCacheKey> = new Set();\n modified: Set<ListCacheKey | ObjectCacheKey> = new Set();\n deleted: Set<ListCacheKey | ObjectCacheKey> = new Set();\n\n registerObject = (\n cacheKey: ObjectCacheKey,\n data: ObjectHolder,\n isNew: boolean,\n ): void => {\n this[isNew ? \"addedObjects\" : \"modifiedObjects\"].set(data.$apiName, data);\n this[isNew ? \"added\" : \"modified\"].add(cacheKey);\n };\n\n deleteObject = (cacheKey: ObjectCacheKey): void => {\n this.deleted.add(cacheKey);\n };\n\n registerList = (key: ListCacheKey): void => {\n this.modified.add(key);\n };\n\n isEmpty(): boolean {\n return (\n this.modifiedObjects.size === 0\n && this.addedObjects.size === 0\n && this.added.size === 0\n && this.modified.size === 0\n && this.deleted.size === 0\n );\n }\n}\n\nexport function createChangedObjects(): Changes {\n return new Changes();\n}\n\nexport function DEBUG_ONLY__changesToString(changes: Changes): string {\n if (process.env.NODE_ENV !== \"production\") {\n return JSON.stringify(\n {\n modifiedObjects: multimapHelper(changes.modifiedObjects),\n addedObjects: multimapHelper(changes.addedObjects),\n added: listHelper(changes.added),\n modified: listHelper(changes.modified),\n },\n null,\n 2,\n );\n } else {\n throw new Error(\"not implemented\");\n }\n}\n\nfunction listHelper(set: Set<CacheKey>) {\n return Array.from(set).map(DEBUG_ONLY__cacheKeyToString);\n}\n\nfunction multimapHelper(\n multimap: MultiMap<string, ObjectHolder>,\n) {\n return Object.fromEntries(\n Array.from(multimap.associations()).map(\n ([type, objects]) => {\n return [type, objects.map(o => o.$primaryKey)];\n },\n ),\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,QAAQ,QAAQ,WAAW;AAGpC,SAASC,4BAA4B,QAAQ,eAAe;AAI5D,OAAO,MAAMC,OAAO,CAAC;EACnBC,eAAe,GAAmC,IAAIH,QAAQ,CAAC,CAAC;EAChEI,YAAY,GAAmC,IAAIJ,QAAQ,CAAC,CAAC;EAE7DK,KAAK,GAAuC,IAAIC,GAAG,CAAC,CAAC;EACrDC,QAAQ,GAAuC,IAAID,GAAG,CAAC,CAAC;EACxDE,OAAO,GAAuC,IAAIF,GAAG,CAAC,CAAC;EAEvDG,cAAc,GAAGA,CACfC,QAAwB,EACxBC,IAAkB,EAClBC,KAAc,KACL;IACT,IAAI,CAACA,KAAK,GAAG,cAAc,GAAG,iBAAiB,CAAC,CAACC,GAAG,CAACF,IAAI,CAACG,QAAQ,EAAEH,IAAI,CAAC;IACzE,IAAI,CAACC,KAAK,GAAG,OAAO,GAAG,UAAU,CAAC,CAACG,GAAG,CAACL,QAAQ,CAAC;EAClD,CAAC;EAEDM,YAAY,GAAIN,QAAwB,IAAW;IACjD,IAAI,CAACF,OAAO,CAACO,GAAG,CAACL,QAAQ,CAAC;EAC5B,CAAC;EAEDO,YAAY,GAAIC,GAAiB,IAAW;IAC1C,IAAI,CAACX,QAAQ,CAACQ,GAAG,CAACG,GAAG,CAAC;EACxB,CAAC;EAEDC,OAAOA,CAAA,EAAY;IACjB,OACE,IAAI,CAAChB,eAAe,CAACiB,IAAI,KAAK,CAAC,IAC5B,IAAI,CAAChB,YAAY,CAACgB,IAAI,KAAK,CAAC,IAC5B,IAAI,CAACf,KAAK,CAACe,IAAI,KAAK,CAAC,IACrB,IAAI,CAACb,QAAQ,CAACa,IAAI,KAAK,CAAC,IACxB,IAAI,CAACZ,OAAO,CAACY,IAAI,KAAK,CAAC;EAE9B;AACF;AAEA,OAAO,SAASC,oBAAoBA,CAAA,EAAY;EAC9C,OAAO,IAAInB,OAAO,CAAC,CAAC;AACtB;AAEA,OAAO,SAASoB,2BAA2BA,CAACC,OAAgB,EAAU;EACpE,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IACzC,OAAOC,IAAI,CAACC,SAAS,CACnB;MACEzB,eAAe,EAAE0B,cAAc,CAACN,OAAO,CAACpB,eAAe,CAAC;MACxDC,YAAY,EAAEyB,cAAc,CAACN,OAAO,CAACnB,YAAY,CAAC;MAClDC,KAAK,EAAEyB,UAAU,CAACP,OAAO,CAAClB,KAAK,CAAC;MAChCE,QAAQ,EAAEuB,UAAU,CAACP,OAAO,CAAChB,QAAQ;IACvC,CAAC,EACD,IAAI,EACJ,CACF,CAAC;EACH,CAAC,MAAM;IACL,MAAM,IAAIwB,KAAK,CAAC,iBAAiB,CAAC;EACpC;AACF;AAEA,SAASD,UAAUA,CAACjB,GAAkB,EAAE;EACtC,OAAOmB,KAAK,CAACC,IAAI,CAACpB,GAAG,CAAC,CAACqB,GAAG,CAACjC,4BAA4B,CAAC;AAC1D;AAEA,SAAS4B,cAAcA,CACrBM,QAAwC,EACxC;EACA,OAAOC,MAAM,CAACC,WAAW,CACvBL,KAAK,CAACC,IAAI,CAACE,QAAQ,CAACG,YAAY,CAAC,CAAC,CAAC,CAACJ,GAAG,CACrC,CAAC,CAACK,IAAI,EAAEC,OAAO,CAAC,KAAK;IACnB,OAAO,CAACD,IAAI,EAAEC,OAAO,CAACN,GAAG,CAACO,CAAC,IAAIA,CAAC,CAACC,WAAW,CAAC,CAAC;EAChD,CACF,CACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"Changes.js","names":["MultiMap","DEBUG_ONLY__cacheKeyToString","Changes","modifiedObjects","addedObjects","added","Set","modified","deleted","registerObject","cacheKey","data","isNew","set","$apiName","add","deleteObject","registerList","key","registerLink","deleteLink","isEmpty","size","createChangedObjects","DEBUG_ONLY__changesToString","changes","process","env","NODE_ENV","JSON","stringify","multimapHelper","listHelper","Error","Array","from","map","multimap","Object","fromEntries","associations","type","objects","o","$primaryKey"],"sources":["Changes.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 { MultiMap } from \"mnemonist\";\nimport type { ObjectHolder } from \"../../object/convertWireToOsdkObjects/ObjectHolder.js\";\nimport type { CacheKey } from \"./CacheKey.js\";\nimport { DEBUG_ONLY__cacheKeyToString } from \"./CacheKey.js\";\nimport type { SpecificLinkCacheKey } from \"./links/SpecificLinkCacheKey.js\";\nimport type { ListCacheKey } from \"./ListCacheKey.js\";\nimport type { ObjectCacheKey } from \"./ObjectQuery.js\";\n\nexport class Changes {\n modifiedObjects: MultiMap<string, ObjectHolder> = new MultiMap();\n addedObjects: MultiMap<string, ObjectHolder> = new MultiMap();\n\n added: Set<ListCacheKey | ObjectCacheKey | SpecificLinkCacheKey> = new Set();\n modified: Set<ListCacheKey | ObjectCacheKey | SpecificLinkCacheKey> =\n new Set();\n deleted: Set<ListCacheKey | ObjectCacheKey | SpecificLinkCacheKey> =\n new Set();\n\n registerObject = (\n cacheKey: ObjectCacheKey,\n data: ObjectHolder,\n isNew: boolean,\n ): void => {\n this[isNew ? \"addedObjects\" : \"modifiedObjects\"].set(data.$apiName, data);\n this[isNew ? \"added\" : \"modified\"].add(cacheKey);\n };\n\n deleteObject = (cacheKey: ObjectCacheKey): void => {\n this.deleted.add(cacheKey);\n };\n\n registerList = (key: ListCacheKey): void => {\n this.modified.add(key);\n };\n\n registerLink = (cacheKey: SpecificLinkCacheKey): void => {\n this.modified.add(cacheKey);\n };\n\n deleteLink = (cacheKey: SpecificLinkCacheKey): void => {\n this.deleted.add(cacheKey);\n };\n\n isEmpty(): boolean {\n return (\n this.modifiedObjects.size === 0\n && this.addedObjects.size === 0\n && this.added.size === 0\n && this.modified.size === 0\n && this.deleted.size === 0\n );\n }\n}\n\nexport function createChangedObjects(): Changes {\n return new Changes();\n}\n\nexport function DEBUG_ONLY__changesToString(changes: Changes): string {\n if (process.env.NODE_ENV !== \"production\") {\n return JSON.stringify(\n {\n modifiedObjects: multimapHelper(changes.modifiedObjects),\n addedObjects: multimapHelper(changes.addedObjects),\n added: listHelper(changes.added),\n modified: listHelper(changes.modified),\n },\n null,\n 2,\n );\n } else {\n throw new Error(\"not implemented\");\n }\n}\n\nfunction listHelper(set: Set<CacheKey>) {\n return Array.from(set).map(DEBUG_ONLY__cacheKeyToString);\n}\n\nfunction multimapHelper(\n multimap: MultiMap<string, ObjectHolder>,\n) {\n return Object.fromEntries(\n Array.from(multimap.associations()).map(\n ([type, objects]) => {\n return [type, objects.map(o => o.$primaryKey)];\n },\n ),\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=KnownCacheKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KnownCacheKey.js","names":[],"sources":["KnownCacheKey.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 { SpecificLinkCacheKey } from \"./links/SpecificLinkCacheKey.js\";\nimport type { ListCacheKey } from \"./ListCacheKey.js\";\nimport type { ObjectCacheKey } from \"./ObjectQuery.js\";\n\nexport type KnownCacheKey =\n | ObjectCacheKey\n | SpecificLinkCacheKey\n | ListCacheKey;\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Layer.js","names":["WeakMapWithEntries","Layer","parent","cache","layerId","constructor","parentLayer","addLayer","removeLayer","entries","keys","get","cacheKey","set","value","Entry","lastUpdated","status"],"sources":["Layer.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 { CacheKey } from \"./CacheKey.js\";\nimport { WeakMapWithEntries } from \"./WeakMapWithEntries.js\";\n\n/*\n Image some layers\n\n [\n { cache: { obj1: { a: 1 } }, layerId: undefined },\n { cache: { obj1: { a: 1, b: 2 } }, layerId: \"layer1\" },\n { cache: { obj1: { a: undefined, b: 2 } }, layerId: \"layer2\" },\n { cache: { obj1: { a: 1, b: 2 } }, layerId: \"layer3\" },\n ]\n*/\n\nexport class Layer {\n #parent: Layer | undefined;\n #cache = new WeakMapWithEntries<CacheKey<string, any, any>, Entry<any>>();\n #layerId: unknown;\n\n constructor(parent: Layer | undefined, layerId: unknown) {\n this.#parent = parent;\n this.#layerId = layerId;\n }\n\n get parentLayer(): Layer | undefined {\n return this.#parent;\n }\n\n get layerId(): unknown {\n return this.#layerId;\n }\n\n addLayer(layerId: unknown): Layer {\n return new Layer(this, layerId);\n }\n\n removeLayer(layerId: unknown): Layer {\n if (layerId == null || this.#parent == null) {\n // we are the root, so we can't remove anything\n return this;\n }\n\n if (this.#layerId !== layerId) {\n this.#parent = this.#parent.removeLayer(layerId);\n return this;\n }\n\n return this.#parent.removeLayer(layerId);\n }\n\n entries(): IterableIterator<[CacheKey<string, any, any>, Entry<any>]> {\n return this.#cache.entries();\n }\n\n keys(): IterableIterator<CacheKey<string, any, any>> {\n return this.#cache.keys();\n }\n\n public get<K extends CacheKey<string, unknown, any>>(\n cacheKey: K,\n ): Entry<K> | undefined {\n return this.#cache.get(cacheKey) as Entry<K> | undefined\n ?? this.#parent?.get(cacheKey) as Entry<K> | undefined;\n }\n\n public set<K extends CacheKey<string, unknown, any>>(\n cacheKey: K,\n value: Entry<K>,\n ): void {\n this.#cache.set(cacheKey, value);\n }\n}\n\nexport class Entry<K extends CacheKey<any, any, any>> {\n readonly cacheKey: K;\n value: K[\"__cacheKey\"][\"value\"] | undefined;\n lastUpdated: number;\n status: \"init\" | \"loading\" | \"loaded\" | \"error\";\n\n constructor(\n cacheKey: K,\n value: K[\"__cacheKey\"][\"value\"],\n lastUpdated: number,\n status: \"init\" | \"loading\" | \"loaded\" | \"error\" = \"init\",\n ) {\n this.cacheKey = cacheKey;\n this.value = value;\n this.lastUpdated = lastUpdated;\n this.status = status;\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,kBAAkB,QAAQ,yBAAyB;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,MAAMC,KAAK,CAAC;EACjB,CAACC,MAAM;EACP,CAACC,KAAK,GAAG,IAAIH,kBAAkB,CAAyC,CAAC;EACzE,CAACI,OAAO;EAERC,WAAWA,CAACH,MAAyB,EAAEE,OAAgB,EAAE;IACvD,IAAI,CAAC,CAACF,MAAM,GAAGA,MAAM;IACrB,IAAI,CAAC,CAACE,OAAO,GAAGA,OAAO;EACzB;EAEA,IAAIE,WAAWA,CAAA,EAAsB;IACnC,OAAO,IAAI,CAAC,CAACJ,MAAM;EACrB;EAEA,IAAIE,OAAOA,CAAA,EAAY;IACrB,OAAO,IAAI,CAAC,CAACA,OAAO;EACtB;EAEAG,QAAQA,CAACH,OAAgB,EAAS;IAChC,OAAO,IAAIH,KAAK,CAAC,IAAI,EAAEG,OAAO,CAAC;EACjC;EAEAI,WAAWA,CAACJ,OAAgB,EAAS;IACnC,IAAIA,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,CAACF,MAAM,IAAI,IAAI,EAAE;MAC3C;MACA,OAAO,IAAI;IACb;IAEA,IAAI,IAAI,CAAC,CAACE,OAAO,KAAKA,OAAO,EAAE;MAC7B,IAAI,CAAC,CAACF,MAAM,GAAG,IAAI,CAAC,CAACA,MAAM,CAACM,WAAW,CAACJ,OAAO,CAAC;MAChD,OAAO,IAAI;IACb;IAEA,OAAO,IAAI,CAAC,CAACF,MAAM,CAACM,WAAW,CAACJ,OAAO,CAAC;EAC1C;EAEAK,OAAOA,CAAA,EAA+D;IACpE,OAAO,IAAI,CAAC,CAACN,KAAK,CAACM,OAAO,CAAC,CAAC;EAC9B;EAEAC,IAAIA,CAAA,EAAiD;IACnD,OAAO,IAAI,CAAC,CAACP,KAAK,CAACO,IAAI,CAAC,CAAC;EAC3B;EAEOC,GAAGA,CACRC,QAAW,EACW;IACtB,OAAO,IAAI,CAAC,CAACT,KAAK,CAACQ,GAAG,CAACC,QAAQ,CAAC,IAC3B,IAAI,CAAC,CAACV,MAAM,EAAES,GAAG,CAACC,QAAQ,CAAyB;EAC1D;EAEOC,GAAGA,CACRD,QAAW,EACXE,KAAe,EACT;IACN,IAAI,CAAC,CAACX,KAAK,CAACU,GAAG,CAACD,QAAQ,EAAEE,KAAK,CAAC;EAClC;AACF;AAEA,OAAO,MAAMC,KAAK,CAAoC;EAMpDV,WAAWA,CACTO,QAAW,EACXE,KAA+B,EAC/BE,WAAmB,EACnBC,MAA+C,GAAG,MAAM,EACxD;IACA,IAAI,CAACL,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACE,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACE,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,MAAM,GAAGA,MAAM;EACtB;AACF","ignoreList":[]}
1
+ {"version":3,"file":"Layer.js","names":["WeakMapWithEntries","Layer","parent","cache","layerId","constructor","parentLayer","addLayer","removeLayer","entries","keys","get","cacheKey","set","value","Entry","lastUpdated","status"],"sources":["Layer.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 { KnownCacheKey } from \"./KnownCacheKey.js\";\nimport { WeakMapWithEntries } from \"./WeakMapWithEntries.js\";\n\n/*\n Image some layers\n\n [\n { cache: { obj1: { a: 1 } }, layerId: undefined },\n { cache: { obj1: { a: 1, b: 2 } }, layerId: \"layer1\" },\n { cache: { obj1: { a: undefined, b: 2 } }, layerId: \"layer2\" },\n { cache: { obj1: { a: 1, b: 2 } }, layerId: \"layer3\" },\n ]\n*/\n\nexport class Layer {\n #parent: Layer | undefined;\n #cache = new WeakMapWithEntries<KnownCacheKey, Entry<any>>();\n #layerId: unknown;\n\n constructor(parent: Layer | undefined, layerId: unknown) {\n this.#parent = parent;\n this.#layerId = layerId;\n }\n\n get parentLayer(): Layer | undefined {\n return this.#parent;\n }\n\n get layerId(): unknown {\n return this.#layerId;\n }\n\n addLayer(layerId: unknown): Layer {\n return new Layer(this, layerId);\n }\n\n removeLayer(layerId: unknown): Layer {\n if (layerId == null || this.#parent == null) {\n // we are the root, so we can't remove anything\n return this;\n }\n\n if (this.#layerId !== layerId) {\n this.#parent = this.#parent.removeLayer(layerId);\n return this;\n }\n\n return this.#parent.removeLayer(layerId);\n }\n\n entries(): IterableIterator<[KnownCacheKey, Entry<any>]> {\n return this.#cache.entries();\n }\n\n keys(): IterableIterator<KnownCacheKey> {\n return this.#cache.keys();\n }\n\n public get<K extends KnownCacheKey>(\n cacheKey: K,\n ): Entry<K> | undefined {\n return this.#cache.get(cacheKey) as Entry<K> | undefined\n ?? this.#parent?.get(cacheKey) as Entry<K> | undefined;\n }\n\n public set<K extends KnownCacheKey>(\n cacheKey: K,\n value: Entry<K>,\n ): void {\n this.#cache.set(cacheKey, value);\n }\n}\n\nexport class Entry<K extends KnownCacheKey> {\n readonly cacheKey: K;\n value: K[\"__cacheKey\"][\"value\"] | undefined;\n lastUpdated: number;\n status: \"init\" | \"loading\" | \"loaded\" | \"error\";\n\n constructor(\n cacheKey: K,\n value: K[\"__cacheKey\"][\"value\"] | undefined,\n lastUpdated: number,\n status: \"init\" | \"loading\" | \"loaded\" | \"error\" = \"init\",\n ) {\n this.cacheKey = cacheKey;\n this.value = value;\n this.lastUpdated = lastUpdated;\n this.status = status;\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,kBAAkB,QAAQ,yBAAyB;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,MAAMC,KAAK,CAAC;EACjB,CAACC,MAAM;EACP,CAACC,KAAK,GAAG,IAAIH,kBAAkB,CAA4B,CAAC;EAC5D,CAACI,OAAO;EAERC,WAAWA,CAACH,MAAyB,EAAEE,OAAgB,EAAE;IACvD,IAAI,CAAC,CAACF,MAAM,GAAGA,MAAM;IACrB,IAAI,CAAC,CAACE,OAAO,GAAGA,OAAO;EACzB;EAEA,IAAIE,WAAWA,CAAA,EAAsB;IACnC,OAAO,IAAI,CAAC,CAACJ,MAAM;EACrB;EAEA,IAAIE,OAAOA,CAAA,EAAY;IACrB,OAAO,IAAI,CAAC,CAACA,OAAO;EACtB;EAEAG,QAAQA,CAACH,OAAgB,EAAS;IAChC,OAAO,IAAIH,KAAK,CAAC,IAAI,EAAEG,OAAO,CAAC;EACjC;EAEAI,WAAWA,CAACJ,OAAgB,EAAS;IACnC,IAAIA,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,CAACF,MAAM,IAAI,IAAI,EAAE;MAC3C;MACA,OAAO,IAAI;IACb;IAEA,IAAI,IAAI,CAAC,CAACE,OAAO,KAAKA,OAAO,EAAE;MAC7B,IAAI,CAAC,CAACF,MAAM,GAAG,IAAI,CAAC,CAACA,MAAM,CAACM,WAAW,CAACJ,OAAO,CAAC;MAChD,OAAO,IAAI;IACb;IAEA,OAAO,IAAI,CAAC,CAACF,MAAM,CAACM,WAAW,CAACJ,OAAO,CAAC;EAC1C;EAEAK,OAAOA,CAAA,EAAkD;IACvD,OAAO,IAAI,CAAC,CAACN,KAAK,CAACM,OAAO,CAAC,CAAC;EAC9B;EAEAC,IAAIA,CAAA,EAAoC;IACtC,OAAO,IAAI,CAAC,CAACP,KAAK,CAACO,IAAI,CAAC,CAAC;EAC3B;EAEOC,GAAGA,CACRC,QAAW,EACW;IACtB,OAAO,IAAI,CAAC,CAACT,KAAK,CAACQ,GAAG,CAACC,QAAQ,CAAC,IAC3B,IAAI,CAAC,CAACV,MAAM,EAAES,GAAG,CAACC,QAAQ,CAAyB;EAC1D;EAEOC,GAAGA,CACRD,QAAW,EACXE,KAAe,EACT;IACN,IAAI,CAAC,CAACX,KAAK,CAACU,GAAG,CAACD,QAAQ,EAAEE,KAAK,CAAC;EAClC;AACF;AAEA,OAAO,MAAMC,KAAK,CAA0B;EAM1CV,WAAWA,CACTO,QAAW,EACXE,KAA2C,EAC3CE,WAAmB,EACnBC,MAA+C,GAAG,MAAM,EACxD;IACA,IAAI,CAACL,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACE,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACE,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,MAAM,GAAGA,MAAM;EACtB;AACF","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ListCacheKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListCacheKey.js","names":[],"sources":["ListCacheKey.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 { CollectionStorageData } from \"./BaseCollectionQuery.js\";\nimport type { CacheKey } from \"./CacheKey.js\";\nimport type { Canonical } from \"./Canonical.js\";\nimport type { ListQuery } from \"./ListQuery.js\";\nimport type { SimpleWhereClause } from \"./SimpleWhereClause.js\";\n\nexport interface ListStorageData extends CollectionStorageData {}\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}\n"],"mappings":"","ignoreList":[]}