@osdk/client 2.7.0-beta.9 → 2.7.0

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 (322) hide show
  1. package/CHANGELOG.md +236 -0
  2. package/build/browser/MinimalClientContext.js.map +1 -1
  3. package/build/browser/actions/actions.test.js +9 -8
  4. package/build/browser/actions/actions.test.js.map +1 -1
  5. package/build/browser/actions/applyAction.js +0 -4
  6. package/build/browser/actions/applyAction.js.map +1 -1
  7. package/build/browser/createClient.js +1 -2
  8. package/build/browser/createClient.js.map +1 -1
  9. package/build/browser/createMinimalClient.js +0 -1
  10. package/build/browser/createMinimalClient.js.map +1 -1
  11. package/build/browser/derivedProperties/createWithPropertiesObjectSet.js +1 -17
  12. package/build/browser/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
  13. package/build/browser/index.js +1 -1
  14. package/build/browser/index.js.map +1 -1
  15. package/build/browser/internal/conversions/modernToLegacyWhereClause.js +14 -9
  16. package/build/browser/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
  17. package/build/browser/internal/conversions/modernToLegacyWhereClause.test.js +74 -0
  18. package/build/browser/internal/conversions/modernToLegacyWhereClause.test.js.map +1 -1
  19. package/build/browser/object/SimpleOsdkProperties.js.map +1 -1
  20. package/build/browser/object/aggregate.js +0 -1
  21. package/build/browser/object/aggregate.js.map +1 -1
  22. package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -1
  23. package/build/browser/object/fetchPage.js +0 -2
  24. package/build/browser/object/fetchPage.js.map +1 -1
  25. package/build/browser/objectSet/ObjectSetListenerWebsocket.js +13 -4
  26. package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  27. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +46 -2
  28. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  29. package/build/browser/objectSet/createObjectSet.js +1 -1
  30. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  31. package/build/browser/objectSet/fetchLinksPage.js +0 -1
  32. package/build/browser/objectSet/fetchLinksPage.js.map +1 -1
  33. package/build/browser/observable/FunctionPayload.js +2 -0
  34. package/build/browser/observable/FunctionPayload.js.map +1 -0
  35. package/build/browser/observable/ObservableClient.js.map +1 -1
  36. package/build/browser/observable/internal/BulkObjectLoader.js +2 -1
  37. package/build/browser/observable/internal/BulkObjectLoader.js.map +1 -1
  38. package/build/browser/observable/internal/Changes.js +4 -1
  39. package/build/browser/observable/internal/Changes.js.map +1 -1
  40. package/build/browser/observable/internal/KnownCacheKey.js.map +1 -1
  41. package/build/browser/observable/internal/ObservableClientImpl.js +21 -1
  42. package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
  43. package/build/browser/observable/internal/RidListCanonicalizer.js +30 -0
  44. package/build/browser/observable/internal/RidListCanonicalizer.js.map +1 -0
  45. package/build/browser/observable/internal/RidListCanonicalizer.test.js +50 -0
  46. package/build/browser/observable/internal/RidListCanonicalizer.test.js.map +1 -0
  47. package/build/browser/observable/internal/Store.js +11 -1
  48. package/build/browser/observable/internal/Store.js.map +1 -1
  49. package/build/browser/observable/internal/Store.test.js +57 -4
  50. package/build/browser/observable/internal/Store.test.js.map +1 -1
  51. package/build/browser/observable/internal/actions/ActionApplication.js +12 -9
  52. package/build/browser/observable/internal/actions/ActionApplication.js.map +1 -1
  53. package/build/browser/observable/internal/base-list/BaseCollectionQuery.js.map +1 -1
  54. package/build/browser/observable/internal/base-list/BaseListQuery.js +15 -9
  55. package/build/browser/observable/internal/base-list/BaseListQuery.js.map +1 -1
  56. package/build/browser/observable/internal/base-list/createCollectionConnectable.js +4 -2
  57. package/build/browser/observable/internal/base-list/createCollectionConnectable.js.map +1 -1
  58. package/build/browser/observable/internal/base-list/createCollectionConnectable.test.js +1 -2
  59. package/build/browser/observable/internal/base-list/createCollectionConnectable.test.js.map +1 -1
  60. package/build/browser/observable/internal/evaluateFilter.js +1 -1
  61. package/build/browser/observable/internal/evaluateFilter.js.map +1 -1
  62. package/build/browser/observable/internal/evaluateFilter.test.js +105 -0
  63. package/build/browser/observable/internal/evaluateFilter.test.js.map +1 -0
  64. package/build/browser/observable/internal/function/FunctionCacheKey.js +26 -0
  65. package/build/browser/observable/internal/function/FunctionCacheKey.js.map +1 -0
  66. package/build/browser/observable/internal/function/FunctionParamsCanonicalizer.js +151 -0
  67. package/build/browser/observable/internal/function/FunctionParamsCanonicalizer.js.map +1 -0
  68. package/build/browser/observable/internal/function/FunctionParamsCanonicalizer.test.js +186 -0
  69. package/build/browser/observable/internal/function/FunctionParamsCanonicalizer.test.js.map +1 -0
  70. package/build/browser/observable/internal/function/FunctionQuery.js +137 -0
  71. package/build/browser/observable/internal/function/FunctionQuery.js.map +1 -0
  72. package/build/browser/observable/internal/function/FunctionQuery.test.js +278 -0
  73. package/build/browser/observable/internal/function/FunctionQuery.test.js.map +1 -0
  74. package/build/browser/observable/internal/function/FunctionsHelper.js +92 -0
  75. package/build/browser/observable/internal/function/FunctionsHelper.js.map +1 -0
  76. package/build/browser/observable/internal/links/SpecificLinkQuery.js +2 -1
  77. package/build/browser/observable/internal/links/SpecificLinkQuery.js.map +1 -1
  78. package/build/browser/observable/internal/list/InterfaceListQuery.js +27 -10
  79. package/build/browser/observable/internal/list/InterfaceListQuery.js.map +1 -1
  80. package/build/browser/observable/internal/list/ListCacheKey.js +1 -0
  81. package/build/browser/observable/internal/list/ListCacheKey.js.map +1 -1
  82. package/build/browser/observable/internal/list/ListQuery.js +10 -4
  83. package/build/browser/observable/internal/list/ListQuery.js.map +1 -1
  84. package/build/browser/observable/internal/list/ListQuery.test.js +167 -3
  85. package/build/browser/observable/internal/list/ListQuery.test.js.map +1 -1
  86. package/build/browser/observable/internal/list/ListsHelper.js +6 -3
  87. package/build/browser/observable/internal/list/ListsHelper.js.map +1 -1
  88. package/build/browser/observable/internal/list/ObjectListQuery.js +23 -9
  89. package/build/browser/observable/internal/list/ObjectListQuery.js.map +1 -1
  90. package/build/browser/observable/internal/object/ObjectQuery.js +15 -1
  91. package/build/browser/observable/internal/object/ObjectQuery.js.map +1 -1
  92. package/build/browser/observable/internal/object/ObjectsHelper.js +1 -3
  93. package/build/browser/observable/internal/object/ObjectsHelper.js.map +1 -1
  94. package/build/browser/observable/internal/objectMatchesWhereClause.test.js +11 -1
  95. package/build/browser/observable/internal/objectMatchesWhereClause.test.js.map +1 -1
  96. package/build/browser/observable/internal/objectset/ObjectSetQuery.js +6 -2
  97. package/build/browser/observable/internal/objectset/ObjectSetQuery.js.map +1 -1
  98. package/build/browser/observable/internal/testUtils.js +8 -5
  99. package/build/browser/observable/internal/testUtils.js.map +1 -1
  100. package/build/browser/observable/internal/utils/rdpFieldOperations.js +6 -3
  101. package/build/browser/observable/internal/utils/rdpFieldOperations.js.map +1 -1
  102. package/build/browser/ontology/loadActionMetadata.js +1 -3
  103. package/build/browser/ontology/loadActionMetadata.js.map +1 -1
  104. package/build/browser/ontology/loadFullObjectMetadata.js +1 -2
  105. package/build/browser/ontology/loadFullObjectMetadata.js.map +1 -1
  106. package/build/browser/ontology/loadInterfaceMetadata.js +1 -2
  107. package/build/browser/ontology/loadInterfaceMetadata.js.map +1 -1
  108. package/build/browser/public/unstable-do-not-use.js.map +1 -1
  109. package/build/browser/queries/applyQuery.js +14 -0
  110. package/build/browser/queries/applyQuery.js.map +1 -1
  111. package/build/browser/queries/queries.test.js +14 -2
  112. package/build/browser/queries/queries.test.js.map +1 -1
  113. package/build/browser/util/UserAgent.js +2 -2
  114. package/build/browser/util/UserAgent.js.map +1 -1
  115. package/build/browser/util/isObjectSpecifiersObject.js.map +1 -1
  116. package/build/browser/util/toDataValue.js +0 -5
  117. package/build/browser/util/toDataValue.js.map +1 -1
  118. package/build/browser/util/toDataValue.test.js +2 -7
  119. package/build/browser/util/toDataValue.test.js.map +1 -1
  120. package/build/cjs/{Client-DaUJl7jZ.d.cts → Client-Cmx6x_V1.d.cts} +1 -1
  121. package/build/cjs/{chunk-IQJTM3KW.cjs → chunk-W4BHRZWL.cjs} +79 -82
  122. package/build/cjs/chunk-W4BHRZWL.cjs.map +1 -0
  123. package/build/cjs/{chunk-PARVKNVB.cjs → chunk-Y362HOIZ.cjs} +30 -35
  124. package/build/cjs/chunk-Y362HOIZ.cjs.map +1 -0
  125. package/build/cjs/{createClient-D5G3qzAO.d.cts → createClient-BDmrDOzZ.d.cts} +1 -2
  126. package/build/cjs/index.cjs +8 -12
  127. package/build/cjs/index.cjs.map +1 -1
  128. package/build/cjs/index.d.cts +3 -3
  129. package/build/cjs/public/internal.cjs +8 -8
  130. package/build/cjs/public/internal.d.cts +1 -1
  131. package/build/cjs/public/unstable-do-not-use.cjs +537 -95
  132. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  133. package/build/cjs/public/unstable-do-not-use.d.cts +75 -4
  134. package/build/esm/MinimalClientContext.js.map +1 -1
  135. package/build/esm/actions/actions.test.js +9 -8
  136. package/build/esm/actions/actions.test.js.map +1 -1
  137. package/build/esm/actions/applyAction.js +0 -4
  138. package/build/esm/actions/applyAction.js.map +1 -1
  139. package/build/esm/createClient.js +1 -2
  140. package/build/esm/createClient.js.map +1 -1
  141. package/build/esm/createMinimalClient.js +0 -1
  142. package/build/esm/createMinimalClient.js.map +1 -1
  143. package/build/esm/derivedProperties/createWithPropertiesObjectSet.js +1 -17
  144. package/build/esm/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
  145. package/build/esm/index.js +1 -1
  146. package/build/esm/index.js.map +1 -1
  147. package/build/esm/internal/conversions/modernToLegacyWhereClause.js +14 -9
  148. package/build/esm/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
  149. package/build/esm/internal/conversions/modernToLegacyWhereClause.test.js +74 -0
  150. package/build/esm/internal/conversions/modernToLegacyWhereClause.test.js.map +1 -1
  151. package/build/esm/object/SimpleOsdkProperties.js.map +1 -1
  152. package/build/esm/object/aggregate.js +0 -1
  153. package/build/esm/object/aggregate.js.map +1 -1
  154. package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -1
  155. package/build/esm/object/fetchPage.js +0 -2
  156. package/build/esm/object/fetchPage.js.map +1 -1
  157. package/build/esm/objectSet/ObjectSetListenerWebsocket.js +13 -4
  158. package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  159. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +46 -2
  160. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  161. package/build/esm/objectSet/createObjectSet.js +1 -1
  162. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  163. package/build/esm/objectSet/fetchLinksPage.js +0 -1
  164. package/build/esm/objectSet/fetchLinksPage.js.map +1 -1
  165. package/build/esm/observable/FunctionPayload.js +2 -0
  166. package/build/esm/observable/FunctionPayload.js.map +1 -0
  167. package/build/esm/observable/ObservableClient.js.map +1 -1
  168. package/build/esm/observable/internal/BulkObjectLoader.js +2 -1
  169. package/build/esm/observable/internal/BulkObjectLoader.js.map +1 -1
  170. package/build/esm/observable/internal/Changes.js +4 -1
  171. package/build/esm/observable/internal/Changes.js.map +1 -1
  172. package/build/esm/observable/internal/KnownCacheKey.js.map +1 -1
  173. package/build/esm/observable/internal/ObservableClientImpl.js +21 -1
  174. package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
  175. package/build/esm/observable/internal/RidListCanonicalizer.js +30 -0
  176. package/build/esm/observable/internal/RidListCanonicalizer.js.map +1 -0
  177. package/build/esm/observable/internal/RidListCanonicalizer.test.js +50 -0
  178. package/build/esm/observable/internal/RidListCanonicalizer.test.js.map +1 -0
  179. package/build/esm/observable/internal/Store.js +11 -1
  180. package/build/esm/observable/internal/Store.js.map +1 -1
  181. package/build/esm/observable/internal/Store.test.js +57 -4
  182. package/build/esm/observable/internal/Store.test.js.map +1 -1
  183. package/build/esm/observable/internal/actions/ActionApplication.js +12 -9
  184. package/build/esm/observable/internal/actions/ActionApplication.js.map +1 -1
  185. package/build/esm/observable/internal/base-list/BaseCollectionQuery.js.map +1 -1
  186. package/build/esm/observable/internal/base-list/BaseListQuery.js +15 -9
  187. package/build/esm/observable/internal/base-list/BaseListQuery.js.map +1 -1
  188. package/build/esm/observable/internal/base-list/createCollectionConnectable.js +4 -2
  189. package/build/esm/observable/internal/base-list/createCollectionConnectable.js.map +1 -1
  190. package/build/esm/observable/internal/base-list/createCollectionConnectable.test.js +1 -2
  191. package/build/esm/observable/internal/base-list/createCollectionConnectable.test.js.map +1 -1
  192. package/build/esm/observable/internal/evaluateFilter.js +1 -1
  193. package/build/esm/observable/internal/evaluateFilter.js.map +1 -1
  194. package/build/esm/observable/internal/evaluateFilter.test.js +105 -0
  195. package/build/esm/observable/internal/evaluateFilter.test.js.map +1 -0
  196. package/build/esm/observable/internal/function/FunctionCacheKey.js +26 -0
  197. package/build/esm/observable/internal/function/FunctionCacheKey.js.map +1 -0
  198. package/build/esm/observable/internal/function/FunctionParamsCanonicalizer.js +151 -0
  199. package/build/esm/observable/internal/function/FunctionParamsCanonicalizer.js.map +1 -0
  200. package/build/esm/observable/internal/function/FunctionParamsCanonicalizer.test.js +186 -0
  201. package/build/esm/observable/internal/function/FunctionParamsCanonicalizer.test.js.map +1 -0
  202. package/build/esm/observable/internal/function/FunctionQuery.js +137 -0
  203. package/build/esm/observable/internal/function/FunctionQuery.js.map +1 -0
  204. package/build/esm/observable/internal/function/FunctionQuery.test.js +278 -0
  205. package/build/esm/observable/internal/function/FunctionQuery.test.js.map +1 -0
  206. package/build/esm/observable/internal/function/FunctionsHelper.js +92 -0
  207. package/build/esm/observable/internal/function/FunctionsHelper.js.map +1 -0
  208. package/build/esm/observable/internal/links/SpecificLinkQuery.js +2 -1
  209. package/build/esm/observable/internal/links/SpecificLinkQuery.js.map +1 -1
  210. package/build/esm/observable/internal/list/InterfaceListQuery.js +27 -10
  211. package/build/esm/observable/internal/list/InterfaceListQuery.js.map +1 -1
  212. package/build/esm/observable/internal/list/ListCacheKey.js +1 -0
  213. package/build/esm/observable/internal/list/ListCacheKey.js.map +1 -1
  214. package/build/esm/observable/internal/list/ListQuery.js +10 -4
  215. package/build/esm/observable/internal/list/ListQuery.js.map +1 -1
  216. package/build/esm/observable/internal/list/ListQuery.test.js +167 -3
  217. package/build/esm/observable/internal/list/ListQuery.test.js.map +1 -1
  218. package/build/esm/observable/internal/list/ListsHelper.js +6 -3
  219. package/build/esm/observable/internal/list/ListsHelper.js.map +1 -1
  220. package/build/esm/observable/internal/list/ObjectListQuery.js +23 -9
  221. package/build/esm/observable/internal/list/ObjectListQuery.js.map +1 -1
  222. package/build/esm/observable/internal/object/ObjectQuery.js +15 -1
  223. package/build/esm/observable/internal/object/ObjectQuery.js.map +1 -1
  224. package/build/esm/observable/internal/object/ObjectsHelper.js +1 -3
  225. package/build/esm/observable/internal/object/ObjectsHelper.js.map +1 -1
  226. package/build/esm/observable/internal/objectMatchesWhereClause.test.js +11 -1
  227. package/build/esm/observable/internal/objectMatchesWhereClause.test.js.map +1 -1
  228. package/build/esm/observable/internal/objectset/ObjectSetQuery.js +6 -2
  229. package/build/esm/observable/internal/objectset/ObjectSetQuery.js.map +1 -1
  230. package/build/esm/observable/internal/testUtils.js +8 -5
  231. package/build/esm/observable/internal/testUtils.js.map +1 -1
  232. package/build/esm/observable/internal/utils/rdpFieldOperations.js +6 -3
  233. package/build/esm/observable/internal/utils/rdpFieldOperations.js.map +1 -1
  234. package/build/esm/ontology/loadActionMetadata.js +1 -3
  235. package/build/esm/ontology/loadActionMetadata.js.map +1 -1
  236. package/build/esm/ontology/loadFullObjectMetadata.js +1 -2
  237. package/build/esm/ontology/loadFullObjectMetadata.js.map +1 -1
  238. package/build/esm/ontology/loadInterfaceMetadata.js +1 -2
  239. package/build/esm/ontology/loadInterfaceMetadata.js.map +1 -1
  240. package/build/esm/public/unstable-do-not-use.js.map +1 -1
  241. package/build/esm/queries/applyQuery.js +14 -0
  242. package/build/esm/queries/applyQuery.js.map +1 -1
  243. package/build/esm/queries/queries.test.js +14 -2
  244. package/build/esm/queries/queries.test.js.map +1 -1
  245. package/build/esm/util/UserAgent.js +2 -2
  246. package/build/esm/util/UserAgent.js.map +1 -1
  247. package/build/esm/util/isObjectSpecifiersObject.js.map +1 -1
  248. package/build/esm/util/toDataValue.js +0 -5
  249. package/build/esm/util/toDataValue.js.map +1 -1
  250. package/build/esm/util/toDataValue.test.js +2 -7
  251. package/build/esm/util/toDataValue.test.js.map +1 -1
  252. package/build/types/MinimalClientContext.d.ts +1 -1
  253. package/build/types/actions/applyAction.d.ts.map +1 -1
  254. package/build/types/createClient.d.ts +0 -1
  255. package/build/types/createClient.d.ts.map +1 -1
  256. package/build/types/index.d.ts +1 -1
  257. package/build/types/index.d.ts.map +1 -1
  258. package/build/types/objectSet/createObjectSet.d.ts +14 -1
  259. package/build/types/objectSet/createObjectSet.d.ts.map +1 -1
  260. package/build/types/objectSet/fetchLinksPage.d.ts +9 -1
  261. package/build/types/objectSet/fetchLinksPage.d.ts.map +1 -1
  262. package/build/types/observable/FunctionPayload.d.ts +10 -0
  263. package/build/types/observable/FunctionPayload.d.ts.map +1 -0
  264. package/build/types/observable/ObservableClient.d.ts +73 -1
  265. package/build/types/observable/ObservableClient.d.ts.map +1 -1
  266. package/build/types/observable/internal/BulkObjectLoader.d.ts.map +1 -1
  267. package/build/types/observable/internal/Changes.d.ts +5 -3
  268. package/build/types/observable/internal/Changes.d.ts.map +1 -1
  269. package/build/types/observable/internal/KnownCacheKey.d.ts +2 -1
  270. package/build/types/observable/internal/KnownCacheKey.d.ts.map +1 -1
  271. package/build/types/observable/internal/RidListCanonicalizer.d.ts +5 -0
  272. package/build/types/observable/internal/RidListCanonicalizer.d.ts.map +1 -0
  273. package/build/types/observable/internal/RidListCanonicalizer.test.d.ts +1 -0
  274. package/build/types/observable/internal/RidListCanonicalizer.test.d.ts.map +1 -0
  275. package/build/types/observable/internal/Store.d.ts +7 -1
  276. package/build/types/observable/internal/Store.d.ts.map +1 -1
  277. package/build/types/observable/internal/Store.test.d.ts.map +1 -1
  278. package/build/types/observable/internal/actions/ActionApplication.d.ts.map +1 -1
  279. package/build/types/observable/internal/base-list/BaseCollectionQuery.d.ts +3 -0
  280. package/build/types/observable/internal/base-list/BaseCollectionQuery.d.ts.map +1 -1
  281. package/build/types/observable/internal/base-list/BaseListQuery.d.ts +3 -1
  282. package/build/types/observable/internal/base-list/BaseListQuery.d.ts.map +1 -1
  283. package/build/types/observable/internal/evaluateFilter.test.d.ts +1 -0
  284. package/build/types/observable/internal/evaluateFilter.test.d.ts.map +1 -0
  285. package/build/types/observable/internal/function/FunctionCacheKey.d.ts +17 -0
  286. package/build/types/observable/internal/function/FunctionCacheKey.d.ts.map +1 -0
  287. package/build/types/observable/internal/function/FunctionParamsCanonicalizer.d.ts +16 -0
  288. package/build/types/observable/internal/function/FunctionParamsCanonicalizer.d.ts.map +1 -0
  289. package/build/types/observable/internal/function/FunctionParamsCanonicalizer.test.d.ts +1 -0
  290. package/build/types/observable/internal/function/FunctionParamsCanonicalizer.test.d.ts.map +1 -0
  291. package/build/types/observable/internal/function/FunctionQuery.d.ts +40 -0
  292. package/build/types/observable/internal/function/FunctionQuery.d.ts.map +1 -0
  293. package/build/types/observable/internal/function/FunctionQuery.test.d.ts +1 -0
  294. package/build/types/observable/internal/function/FunctionQuery.test.d.ts.map +1 -0
  295. package/build/types/observable/internal/function/FunctionsHelper.d.ts +25 -0
  296. package/build/types/observable/internal/function/FunctionsHelper.d.ts.map +1 -0
  297. package/build/types/observable/internal/links/SpecificLinkQuery.d.ts.map +1 -1
  298. package/build/types/observable/internal/list/InterfaceListQuery.d.ts +3 -0
  299. package/build/types/observable/internal/list/InterfaceListQuery.d.ts.map +1 -1
  300. package/build/types/observable/internal/list/ListCacheKey.d.ts +2 -1
  301. package/build/types/observable/internal/list/ListCacheKey.d.ts.map +1 -1
  302. package/build/types/observable/internal/list/ListQuery.d.ts +1 -1
  303. package/build/types/observable/internal/list/ListQuery.d.ts.map +1 -1
  304. package/build/types/observable/internal/list/ListsHelper.d.ts +3 -1
  305. package/build/types/observable/internal/list/ListsHelper.d.ts.map +1 -1
  306. package/build/types/observable/internal/list/ObjectListQuery.d.ts.map +1 -1
  307. package/build/types/observable/internal/object/ObjectQuery.d.ts.map +1 -1
  308. package/build/types/observable/internal/object/ObjectsHelper.d.ts.map +1 -1
  309. package/build/types/observable/internal/objectset/ObjectSetQuery.d.ts +1 -0
  310. package/build/types/observable/internal/objectset/ObjectSetQuery.d.ts.map +1 -1
  311. package/build/types/observable/internal/testUtils.d.ts.map +1 -1
  312. package/build/types/observable/internal/utils/rdpFieldOperations.d.ts.map +1 -1
  313. package/build/types/public/unstable-do-not-use.d.ts +2 -1
  314. package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
  315. package/build/types/queries/applyQuery.d.ts.map +1 -1
  316. package/build/types/util/isObjectSpecifiersObject.d.ts +1 -0
  317. package/build/types/util/isObjectSpecifiersObject.d.ts.map +1 -1
  318. package/package.json +11 -12
  319. package/build/cjs/chunk-IQJTM3KW.cjs.map +0 -1
  320. package/build/cjs/chunk-PARVKNVB.cjs.map +0 -1
  321. package/build/cjs/delay-W2TSML2P.cjs +0 -75
  322. package/build/cjs/delay-W2TSML2P.cjs.map +0 -1
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkIQJTM3KW_cjs = require('../chunk-IQJTM3KW.cjs');
4
- var chunkPARVKNVB_cjs = require('../chunk-PARVKNVB.cjs');
3
+ var chunkW4BHRZWL_cjs = require('../chunk-W4BHRZWL.cjs');
4
+ var chunkY362HOIZ_cjs = require('../chunk-Y362HOIZ.cjs');
5
5
  var chunkLDTMSHUZ_cjs = require('../chunk-LDTMSHUZ.cjs');
6
6
  var trie = require('@wry/trie');
7
7
  var deepEqual = require('fast-deep-equal');
@@ -153,7 +153,7 @@ var WhereClauseCanonicalizer = class {
153
153
  var whereCanonicalizer = new WhereClauseCanonicalizer();
154
154
  var orderByCanonicalizer = new OrderByCanonicalizer();
155
155
  function computeObjectSetCacheKey(objectSet, options) {
156
- const keyParts = ["objectSet", chunkPARVKNVB_cjs.getWireObjectSet(objectSet)];
156
+ const keyParts = ["objectSet", chunkY362HOIZ_cjs.getWireObjectSet(objectSet)];
157
157
  if (!options) {
158
158
  return JSON.stringify(keyParts);
159
159
  }
@@ -165,13 +165,13 @@ function computeObjectSetCacheKey(objectSet, options) {
165
165
  keyParts.push("props", propKeys);
166
166
  }
167
167
  if (options.union && options.union.length > 0) {
168
- keyParts.push("union", options.union.map((os) => chunkPARVKNVB_cjs.getWireObjectSet(os)));
168
+ keyParts.push("union", options.union.map((os) => chunkY362HOIZ_cjs.getWireObjectSet(os)));
169
169
  }
170
170
  if (options.intersect && options.intersect.length > 0) {
171
- keyParts.push("intersect", options.intersect.map((os) => chunkPARVKNVB_cjs.getWireObjectSet(os)));
171
+ keyParts.push("intersect", options.intersect.map((os) => chunkY362HOIZ_cjs.getWireObjectSet(os)));
172
172
  }
173
173
  if (options.subtract && options.subtract.length > 0) {
174
- keyParts.push("subtract", options.subtract.map((os) => chunkPARVKNVB_cjs.getWireObjectSet(os)));
174
+ keyParts.push("subtract", options.subtract.map((os) => chunkY362HOIZ_cjs.getWireObjectSet(os)));
175
175
  }
176
176
  if (options.pivotTo) {
177
177
  keyParts.push("pivotTo", options.pivotTo);
@@ -231,6 +231,20 @@ var ObservableClientImpl = class {
231
231
  observeAggregation = (options, subFn) => {
232
232
  return this.__experimentalStore.aggregations.observe(options, subFn);
233
233
  };
234
+ observeFunction = (queryDef, params, options, subFn) => {
235
+ const dependsOn = options.dependsOn?.map((dep) => typeof dep === "string" ? dep : dep.apiName);
236
+ const dependsOnObjects = options.dependsOnObjects?.map((obj) => ({
237
+ $apiName: obj.$objectType ?? obj.$apiName,
238
+ $primaryKey: obj.$primaryKey
239
+ }));
240
+ return this.__experimentalStore.functions.observe({
241
+ ...options,
242
+ queryDef,
243
+ params,
244
+ dependsOn,
245
+ dependsOnObjects
246
+ }, subFn);
247
+ };
234
248
  observeLinks = (objects, linkName, options, subFn) => {
235
249
  const objectsArray = Array.isArray(objects) ? objects : [objects];
236
250
  const parentSub = new rxjs.Subscription();
@@ -240,7 +254,7 @@ var ObservableClientImpl = class {
240
254
  ...options,
241
255
  srcType: {
242
256
  type: "object",
243
- apiName: obj.$apiName
257
+ apiName: obj.$objectType ?? obj.$apiName
244
258
  },
245
259
  linkName,
246
260
  pk: obj.$primaryKey
@@ -271,6 +285,12 @@ var ObservableClientImpl = class {
271
285
  invalidateObjectType(type) {
272
286
  return this.__experimentalStore.invalidateObjectType(type, void 0);
273
287
  }
288
+ invalidateFunction(apiName, params) {
289
+ return this.__experimentalStore.invalidateFunction(apiName, params);
290
+ }
291
+ invalidateFunctionsByObject(apiName, primaryKey) {
292
+ return this.__experimentalStore.invalidateFunctionsByObject(apiName, primaryKey);
293
+ }
274
294
  canonicalizeWhereClause(where) {
275
295
  return this.__experimentalStore.whereCanonicalizer.canonicalize(where);
276
296
  }
@@ -351,7 +371,7 @@ var OptimisticJob = class {
351
371
  return this;
352
372
  },
353
373
  createObject(type, pk, properties) {
354
- const create = store.client[chunkPARVKNVB_cjs.additionalContext].objectFactory2(store.client[chunkPARVKNVB_cjs.additionalContext], [{
374
+ const create = store.client[chunkY362HOIZ_cjs.additionalContext].objectFactory2(store.client[chunkY362HOIZ_cjs.additionalContext], [{
355
375
  $primaryKey: pk,
356
376
  $apiName: type.apiName,
357
377
  $objectType: type.apiName,
@@ -418,8 +438,7 @@ var ActionApplication = class {
418
438
  if (process.env.NODE_ENV !== "production") {
419
439
  if (ACTION_DELAY > 0) {
420
440
  logger?.debug("action done, pausing", actionResults);
421
- const delay = (await import('../delay-W2TSML2P.cjs')).default;
422
- await delay(ACTION_DELAY);
441
+ await new Promise((resolve) => setTimeout(resolve, ACTION_DELAY));
423
442
  logger?.debug("action done, pausing done");
424
443
  }
425
444
  }
@@ -433,13 +452,17 @@ var ActionApplication = class {
433
452
  }
434
453
  })();
435
454
  };
436
- #invalidateActionEditResponse = async ({
437
- deletedObjects,
438
- modifiedObjects,
439
- addedObjects,
440
- editedObjectTypes,
441
- type
442
- }) => {
455
+ #invalidateActionEditResponse = async (actionEditResponse) => {
456
+ if (actionEditResponse == null) {
457
+ return;
458
+ }
459
+ const {
460
+ deletedObjects,
461
+ modifiedObjects,
462
+ addedObjects,
463
+ editedObjectTypes,
464
+ type
465
+ } = actionEditResponse;
443
466
  let changes;
444
467
  if (type === "edits") {
445
468
  const promisesToWait = [];
@@ -569,7 +592,7 @@ var Query = class {
569
592
  this.store = store;
570
593
  this.cacheKeys = store.cacheKeys;
571
594
  this.#subject = observable;
572
- this.logger = logger ?? (process.env.NODE_ENV === "production" ? store.client[chunkPARVKNVB_cjs.additionalContext].logger : store.client[chunkPARVKNVB_cjs.additionalContext].logger?.child({}, {
595
+ this.logger = logger ?? (process.env.NODE_ENV === "production" ? store.client[chunkY362HOIZ_cjs.additionalContext].logger : store.client[chunkY362HOIZ_cjs.additionalContext].logger?.child({}, {
573
596
  msgPrefix: process.env.NODE_ENV !== "production" ? `Query<${cacheKey.type}, ${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>` : "Query"
574
597
  }));
575
598
  }
@@ -727,7 +750,7 @@ var Query = class {
727
750
  // src/observable/internal/aggregation/AggregationQuery.ts
728
751
  var AggregationQuery = class extends Query {
729
752
  constructor(store, subject, cacheKey, opts) {
730
- super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkPARVKNVB_cjs.additionalContext].logger?.child({}, {
753
+ super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkY362HOIZ_cjs.additionalContext].logger?.child({}, {
731
754
  msgPrefix: `AggregationQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
732
755
  }) : void 0);
733
756
  this.apiName = cacheKey.otherKeys[API_NAME_IDX];
@@ -974,7 +997,7 @@ var Changes = class {
974
997
  modified = /* @__PURE__ */ new Set();
975
998
  deleted = /* @__PURE__ */ new Set();
976
999
  registerObject = (cacheKey, data, isNew) => {
977
- this[isNew ? "addedObjects" : "modifiedObjects"].set(data.$apiName, data);
1000
+ this[isNew ? "addedObjects" : "modifiedObjects"].set(data.$objectType ?? data.$apiName, data);
978
1001
  this[isNew ? "added" : "modified"].add(cacheKey);
979
1002
  };
980
1003
  deleteObject = (cacheKey) => {
@@ -992,6 +1015,9 @@ var Changes = class {
992
1015
  registerObjectSet = (key) => {
993
1016
  this.modified.add(key);
994
1017
  };
1018
+ registerFunction = (key) => {
1019
+ this.modified.add(key);
1020
+ };
995
1021
  isEmpty() {
996
1022
  return this.modifiedObjects.size === 0 && this.addedObjects.size === 0 && this.added.size === 0 && this.modified.size === 0 && this.deleted.size === 0;
997
1023
  }
@@ -1020,6 +1046,325 @@ function multimapHelper(multimap) {
1020
1046
  }));
1021
1047
  }
1022
1048
 
1049
+ // src/observable/internal/function/FunctionsHelper.ts
1050
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1051
+
1052
+ // src/observable/internal/function/FunctionCacheKey.ts
1053
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1054
+ var PARAMS_IDX = 2;
1055
+
1056
+ // src/observable/internal/function/FunctionParamsCanonicalizer.ts
1057
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1058
+ function isPrimitiveValue(value) {
1059
+ if (value == null) return true;
1060
+ const t = typeof value;
1061
+ return t === "string" || t === "number" || t === "boolean" || t === "bigint";
1062
+ }
1063
+ var FunctionParamsCanonicalizer = class {
1064
+ #inputCache = /* @__PURE__ */ new WeakMap();
1065
+ #trie = new trie.Trie(false);
1066
+ #canonicalByMarker = /* @__PURE__ */ new WeakMap();
1067
+ canonicalize(params) {
1068
+ if (params == null) {
1069
+ return void 0;
1070
+ }
1071
+ if (this.#inputCache.has(params)) {
1072
+ return this.#inputCache.get(params);
1073
+ }
1074
+ const seen = /* @__PURE__ */ new WeakSet();
1075
+ const path = [];
1076
+ const canonicalValue = this.#encodeAndBuild(params, path, seen);
1077
+ const marker = this.#trie.lookupArray(path);
1078
+ let canonical = this.#canonicalByMarker.get(marker);
1079
+ if (canonical === void 0) {
1080
+ canonical = canonicalValue;
1081
+ this.#canonicalByMarker.set(marker, canonical);
1082
+ }
1083
+ this.#inputCache.set(params, canonical);
1084
+ return canonical;
1085
+ }
1086
+ #encodeAndBuild(value, path, seen) {
1087
+ if (value == null) {
1088
+ path.push(value);
1089
+ return value;
1090
+ }
1091
+ if (isPrimitiveValue(value)) {
1092
+ path.push(value);
1093
+ return value;
1094
+ }
1095
+ if (seen.has(value)) {
1096
+ throw new Error("Circular reference in function parameters");
1097
+ }
1098
+ seen.add(value);
1099
+ if (value instanceof Date) {
1100
+ const iso = value.toISOString();
1101
+ path.push("$:date", iso);
1102
+ return iso;
1103
+ }
1104
+ if (Array.isArray(value)) {
1105
+ path.push("$:array");
1106
+ const arr = value.map((item) => this.#encodeAndBuild(item, path, seen));
1107
+ path.push("$:array_end");
1108
+ return arr;
1109
+ }
1110
+ if (value instanceof Set) {
1111
+ path.push("$:set");
1112
+ const sorted = this.#sortSetValues(Array.from(value));
1113
+ const arr = sorted.map((item) => this.#encodeAndBuild(item, path, seen));
1114
+ path.push("$:set_end");
1115
+ return arr;
1116
+ }
1117
+ if (value instanceof Map) {
1118
+ path.push("$:map");
1119
+ const sorted = this.#sortMapEntries(Array.from(value.entries()));
1120
+ const arr = sorted.map(([k, v]) => [this.#encodeAndBuild(k, path, seen), this.#encodeAndBuild(v, path, seen)]);
1121
+ path.push("$:map_end");
1122
+ return arr;
1123
+ }
1124
+ if (chunkW4BHRZWL_cjs.isObjectSpecifiersObject(value)) {
1125
+ const objectType = value.$objectType ?? value.$apiName;
1126
+ path.push("$:osdk", objectType, value.$primaryKey);
1127
+ return {
1128
+ $apiName: objectType,
1129
+ $primaryKey: value.$primaryKey
1130
+ };
1131
+ }
1132
+ if (chunkY362HOIZ_cjs.isObjectSet(value)) {
1133
+ const wire = chunkY362HOIZ_cjs.getWireObjectSet(value);
1134
+ path.push("$:objectset", wire);
1135
+ return wire;
1136
+ }
1137
+ const obj = value;
1138
+ path.push("$:object");
1139
+ const canonical = {};
1140
+ for (const key of Object.keys(obj).sort()) {
1141
+ path.push(key);
1142
+ canonical[key] = this.#encodeAndBuild(obj[key], path, seen);
1143
+ }
1144
+ path.push("$:object_end");
1145
+ return canonical;
1146
+ }
1147
+ #comparePrimitives(a, b) {
1148
+ const ta = typeof a;
1149
+ const tb = typeof b;
1150
+ if (ta !== tb) return ta.localeCompare(tb);
1151
+ if (ta === "string") return a.localeCompare(b);
1152
+ if (ta === "number") {
1153
+ const an = a;
1154
+ const bn = b;
1155
+ if (Number.isNaN(an) && Number.isNaN(bn)) return 0;
1156
+ if (Number.isNaN(an)) return 1;
1157
+ if (Number.isNaN(bn)) return -1;
1158
+ return an - bn;
1159
+ }
1160
+ if (ta === "boolean") return (a ? 1 : 0) - (b ? 1 : 0);
1161
+ if (ta === "bigint") {
1162
+ const ab = a;
1163
+ const bb = b;
1164
+ return ab < bb ? -1 : ab > bb ? 1 : 0;
1165
+ }
1166
+ return 0;
1167
+ }
1168
+ #sortSetValues(items) {
1169
+ return items.slice().sort((a, b) => {
1170
+ if (isPrimitiveValue(a) && isPrimitiveValue(b)) {
1171
+ return this.#comparePrimitives(a, b);
1172
+ }
1173
+ return JSON.stringify(a).localeCompare(JSON.stringify(b));
1174
+ });
1175
+ }
1176
+ #sortMapEntries(entries) {
1177
+ return entries.slice().sort(([a], [b]) => {
1178
+ if (isPrimitiveValue(a) && isPrimitiveValue(b)) {
1179
+ return this.#comparePrimitives(a, b);
1180
+ }
1181
+ return JSON.stringify(a).localeCompare(JSON.stringify(b));
1182
+ });
1183
+ }
1184
+ };
1185
+
1186
+ // src/observable/internal/function/FunctionQuery.ts
1187
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1188
+ var FunctionQuery = class extends Query {
1189
+ #apiName;
1190
+ #version;
1191
+ #params;
1192
+ #dependsOn;
1193
+ #dependsOnObjects;
1194
+ #queryDef;
1195
+ constructor(store, subject, queryDef, params, cacheKey, opts) {
1196
+ super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkY362HOIZ_cjs.additionalContext].logger?.child({}, {
1197
+ msgPrefix: `FunctionQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
1198
+ }) : void 0);
1199
+ this.#apiName = queryDef.apiName;
1200
+ this.#version = queryDef.isFixedVersion ? queryDef.version : void 0;
1201
+ this.#params = params;
1202
+ this.#dependsOn = opts.dependsOn;
1203
+ this.#dependsOnObjects = opts.dependsOnObjects;
1204
+ this.#queryDef = queryDef;
1205
+ }
1206
+ _createConnectable(subject) {
1207
+ return rxjs.connectable(subject.pipe(rxjs.map((x) => {
1208
+ const value = x.value;
1209
+ return {
1210
+ status: x.status,
1211
+ result: value?.result,
1212
+ lastUpdated: value?.executedAt ?? 0,
1213
+ error: value?.error
1214
+ };
1215
+ })), {
1216
+ connector: () => new rxjs.BehaviorSubject({
1217
+ status: "init",
1218
+ result: void 0,
1219
+ lastUpdated: 0
1220
+ })
1221
+ });
1222
+ }
1223
+ async _fetchAndStore() {
1224
+ if (process.env.NODE_ENV !== "production") {
1225
+ this.logger?.child({
1226
+ methodName: "_fetchAndStore"
1227
+ }).debug("calling _fetchAndStore");
1228
+ }
1229
+ try {
1230
+ const result = await chunkW4BHRZWL_cjs.applyQuery(this.store.client[chunkY362HOIZ_cjs.additionalContext], this.#queryDef, this.#params);
1231
+ const executedAt = Date.now();
1232
+ this.store.batch({}, (batch) => {
1233
+ this.writeToStore({
1234
+ result,
1235
+ executedAt
1236
+ }, "loaded", batch);
1237
+ });
1238
+ } catch (e) {
1239
+ if (process.env.NODE_ENV !== "production") {
1240
+ this.logger?.child({
1241
+ methodName: "_fetchAndStore"
1242
+ }).error("Error executing function", e);
1243
+ }
1244
+ const error = e instanceof Error ? e : new Error(String(e));
1245
+ this.store.batch({}, (batch) => {
1246
+ this.writeToStore({
1247
+ result: void 0,
1248
+ executedAt: 0,
1249
+ error
1250
+ }, "error", batch);
1251
+ });
1252
+ }
1253
+ }
1254
+ writeToStore(data, status, batch) {
1255
+ batch.write(this.cacheKey, data, status);
1256
+ return batch.read(this.cacheKey);
1257
+ }
1258
+ invalidateObjectType = (objectType, changes) => {
1259
+ if (this.#dependsOn?.includes(objectType)) {
1260
+ changes?.registerFunction(this.cacheKey);
1261
+ return this.revalidate(true);
1262
+ }
1263
+ return Promise.resolve();
1264
+ };
1265
+ dependsOnObject(apiName, primaryKey) {
1266
+ if (!this.#dependsOnObjects) {
1267
+ return false;
1268
+ }
1269
+ return this.#dependsOnObjects.some((obj) => obj.$apiName === apiName && obj.$primaryKey === primaryKey);
1270
+ }
1271
+ /**
1272
+ * Called during batch operations when objects change.
1273
+ * Checks if any objects in dependsOnObjects were modified/added
1274
+ * and triggers revalidation if so.
1275
+ */
1276
+ maybeUpdateAndRevalidate = (changes, _optimisticId) => {
1277
+ if (!this.#dependsOnObjects?.length) {
1278
+ return void 0;
1279
+ }
1280
+ for (const dep of this.#dependsOnObjects) {
1281
+ const modifiedObjects = changes.modifiedObjects.get(dep.$apiName);
1282
+ if (modifiedObjects?.some((obj) => obj.$primaryKey === dep.$primaryKey)) {
1283
+ return this.revalidate(true);
1284
+ }
1285
+ const addedObjects = changes.addedObjects.get(dep.$apiName);
1286
+ if (addedObjects?.some((obj) => obj.$primaryKey === dep.$primaryKey)) {
1287
+ return this.revalidate(true);
1288
+ }
1289
+ }
1290
+ return void 0;
1291
+ };
1292
+ get apiName() {
1293
+ return this.#apiName;
1294
+ }
1295
+ get version() {
1296
+ return this.#version;
1297
+ }
1298
+ };
1299
+
1300
+ // src/observable/internal/function/FunctionsHelper.ts
1301
+ var FunctionsHelper = class extends AbstractHelper {
1302
+ paramsCanonicalizer = new FunctionParamsCanonicalizer();
1303
+ constructor(store, cacheKeys) {
1304
+ super(store, cacheKeys);
1305
+ }
1306
+ observe(options, subFn) {
1307
+ return super.observe(options, subFn);
1308
+ }
1309
+ getQuery(options) {
1310
+ const {
1311
+ queryDef,
1312
+ params,
1313
+ ...observeOpts
1314
+ } = options;
1315
+ const apiName = queryDef.apiName;
1316
+ const version = queryDef.isFixedVersion ? queryDef.version : void 0;
1317
+ const canonicalParams = this.paramsCanonicalizer.canonicalize(params);
1318
+ const functionCacheKey = this.cacheKeys.get("function", apiName, version, canonicalParams);
1319
+ return this.store.queries.get(functionCacheKey, () => new FunctionQuery(this.store, this.store.subjects.get(functionCacheKey), queryDef, params, functionCacheKey, observeOpts));
1320
+ }
1321
+ async invalidateFunction(apiName, params) {
1322
+ const functionApiName = typeof apiName === "string" ? apiName : apiName.apiName;
1323
+ let canonicalParams;
1324
+ if (params !== void 0) {
1325
+ canonicalParams = this.paramsCanonicalizer.canonicalize(params);
1326
+ }
1327
+ const promises = [];
1328
+ for (const cacheKey of this.store.queries.keys()) {
1329
+ if (cacheKey.type !== "function") {
1330
+ continue;
1331
+ }
1332
+ const query = this.store.queries.peek(cacheKey);
1333
+ if (!query) {
1334
+ continue;
1335
+ }
1336
+ if (query.apiName !== functionApiName) {
1337
+ continue;
1338
+ }
1339
+ if (canonicalParams !== void 0) {
1340
+ const queryCacheKey = cacheKey;
1341
+ const queryParams = queryCacheKey.otherKeys[PARAMS_IDX];
1342
+ if (queryParams !== canonicalParams) {
1343
+ continue;
1344
+ }
1345
+ }
1346
+ promises.push(query.revalidate(true));
1347
+ }
1348
+ await Promise.allSettled(promises);
1349
+ }
1350
+ async invalidateFunctionsByObject(apiName, primaryKey) {
1351
+ const promises = [];
1352
+ for (const cacheKey of this.store.queries.keys()) {
1353
+ if (cacheKey.type !== "function") {
1354
+ continue;
1355
+ }
1356
+ const query = this.store.queries.peek(cacheKey);
1357
+ if (!query) {
1358
+ continue;
1359
+ }
1360
+ if (query.dependsOnObject(apiName, primaryKey)) {
1361
+ promises.push(query.revalidate(true));
1362
+ }
1363
+ }
1364
+ await Promise.allSettled(promises);
1365
+ }
1366
+ };
1367
+
1023
1368
  // src/observable/internal/IntersectCanonicalizer.ts
1024
1369
  chunkLDTMSHUZ_cjs.init_cjs_shims();
1025
1370
 
@@ -1417,6 +1762,7 @@ var ORDER_BY_IDX = 3;
1417
1762
  var RDP_IDX2 = 4;
1418
1763
  var INTERSECT_IDX = 5;
1419
1764
  var PIVOT_IDX = 6;
1765
+ var RIDS_IDX = 7;
1420
1766
 
1421
1767
  // src/observable/internal/sorting/SortingStrategy.ts
1422
1768
  chunkLDTMSHUZ_cjs.init_cjs_shims();
@@ -1475,12 +1821,14 @@ function createCollectionConnectable(subject, subjects, createPayload) {
1475
1821
  resolvedData,
1476
1822
  isOptimistic: rxjs.of(listEntry.isOptimistic),
1477
1823
  status: rxjs.of(listEntry.status),
1478
- lastUpdated: rxjs.of(listEntry.lastUpdated)
1824
+ lastUpdated: rxjs.of(listEntry.lastUpdated),
1825
+ totalCount: rxjs.of(listEntry?.value?.totalCount)
1479
1826
  }).pipe(rxjs.map((params) => createPayload({
1480
1827
  resolvedData: Array.isArray(params.resolvedData) ? params.resolvedData : [],
1481
1828
  isOptimistic: params.isOptimistic,
1482
1829
  status: params.status,
1483
- lastUpdated: params.lastUpdated
1830
+ lastUpdated: params.lastUpdated,
1831
+ totalCount: params.totalCount
1484
1832
  }))), rxjs.asapScheduler);
1485
1833
  })), {
1486
1834
  resetOnDisconnect: false,
@@ -1535,9 +1883,10 @@ var BaseListQuery = class extends Query {
1535
1883
  * @param status Status to set for the list
1536
1884
  * @param batch Batch context to use
1537
1885
  * @param append Whether to append to the existing list or replace it
1886
+ * @param totalCount Optional total count from API response
1538
1887
  * @returns The updated entry
1539
1888
  */
1540
- _updateList(items, status, batch, append = false) {
1889
+ _updateList(items, status, batch, append = false, totalCount) {
1541
1890
  if (process.env.NODE_ENV !== "production") {
1542
1891
  this.logger?.child({
1543
1892
  methodName: "updateList"
@@ -1555,7 +1904,8 @@ var BaseListQuery = class extends Query {
1555
1904
  objectCacheKeys = this._sortCacheKeys(objectCacheKeys, batch);
1556
1905
  objectCacheKeys = removeDuplicates(objectCacheKeys, batch);
1557
1906
  return this.writeToStore({
1558
- data: objectCacheKeys
1907
+ data: objectCacheKeys,
1908
+ totalCount
1559
1909
  }, status, batch);
1560
1910
  }
1561
1911
  /**
@@ -1646,7 +1996,8 @@ var BaseListQuery = class extends Query {
1646
1996
  fetchMore: this.fetchMore,
1647
1997
  hasMore: this.nextPageToken != null,
1648
1998
  status: params.status,
1649
- lastUpdated: params.lastUpdated
1999
+ lastUpdated: params.lastUpdated,
2000
+ totalCount: params.totalCount
1650
2001
  };
1651
2002
  }
1652
2003
  /**
@@ -1747,6 +2098,7 @@ var BaseListQuery = class extends Query {
1747
2098
  try {
1748
2099
  const hadPreviousPage = this.nextPageToken != null;
1749
2100
  const result = await this.fetchPageData(signal);
2101
+ this.currentTotalCount = result.totalCount;
1750
2102
  if (signal?.aborted) {
1751
2103
  return void 0;
1752
2104
  }
@@ -1756,7 +2108,7 @@ var BaseListQuery = class extends Query {
1756
2108
  const append = hadPreviousPage;
1757
2109
  const finalStatus = result.nextPageToken ? status : "loaded";
1758
2110
  const objectKeys = this.store.objects.storeOsdkInstances(result.data, batch, this.rdpConfig);
1759
- return this._updateList(objectKeys, finalStatus, batch, append);
2111
+ return this._updateList(objectKeys, finalStatus, batch, append, this.currentTotalCount);
1760
2112
  });
1761
2113
  return retVal;
1762
2114
  } catch (error) {
@@ -1792,8 +2144,10 @@ var BaseListQuery = class extends Query {
1792
2144
  * @returns The updated entry with error status
1793
2145
  */
1794
2146
  handleFetchError(_error, _status, batch) {
2147
+ const existingTotalCount = batch.read(this.cacheKey)?.value?.totalCount;
1795
2148
  return this.writeToStore({
1796
- data: []
2149
+ data: [],
2150
+ totalCount: existingTotalCount
1797
2151
  }, "error", batch);
1798
2152
  }
1799
2153
  /**
@@ -1832,8 +2186,10 @@ var BaseListQuery = class extends Query {
1832
2186
  objectCacheKeys = this.#retainReleaseAppend(batch, options.append ?? false, objectCacheKeys);
1833
2187
  objectCacheKeys = this._sortCacheKeys(objectCacheKeys, batch);
1834
2188
  objectCacheKeys = removeDuplicates(objectCacheKeys, batch);
2189
+ const existingTotalCount = batch.read(this.cacheKey)?.value?.totalCount;
1835
2190
  return this.writeToStore({
1836
- data: objectCacheKeys
2191
+ data: objectCacheKeys,
2192
+ totalCount: existingTotalCount
1837
2193
  }, options.status, batch);
1838
2194
  }
1839
2195
  //
@@ -1958,7 +2314,7 @@ var BaseListQuery = class extends Query {
1958
2314
  }).debug("Removing object", object);
1959
2315
  }
1960
2316
  this.store.batch({}, (batch) => {
1961
- const objectCacheKey = this.store.cacheKeys.get("object", object.$apiName, object.$primaryKey);
2317
+ const objectCacheKey = this.store.cacheKeys.get("object", object.$objectType ?? object.$apiName, object.$primaryKey);
1962
2318
  batch.delete(objectCacheKey, "loaded");
1963
2319
  });
1964
2320
  }
@@ -1978,7 +2334,7 @@ var SpecificLinkQuery = class extends BaseListQuery {
1978
2334
  batch.changes.modified.add(this.cacheKey);
1979
2335
  }
1980
2336
  constructor(store, subject, cacheKey, opts) {
1981
- super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkPARVKNVB_cjs.additionalContext].logger?.child({}, {
2337
+ super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkY362HOIZ_cjs.additionalContext].logger?.child({}, {
1982
2338
  msgPrefix: `SpecificLinkQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
1983
2339
  }) : void 0);
1984
2340
  [this.#sourceApiName, this.#sourcePk, this.#linkName, this.#whereClause, this.#orderBy] = cacheKey.otherKeys;
@@ -1994,7 +2350,7 @@ var SpecificLinkQuery = class extends BaseListQuery {
1994
2350
  type: "object",
1995
2351
  apiName: this.#sourceApiName
1996
2352
  };
1997
- const sourceMetadata = await client[chunkPARVKNVB_cjs.additionalContext].ontologyProvider.getObjectDefinition(this.#sourceApiName);
2353
+ const sourceMetadata = await client[chunkY362HOIZ_cjs.additionalContext].ontologyProvider.getObjectDefinition(this.#sourceApiName);
1998
2354
  if (this.#orderBy && Object.keys(this.#orderBy).length > 0) {
1999
2355
  const linkDef = sourceMetadata.links?.[this.#linkName];
2000
2356
  if (!linkDef?.targetType) {
@@ -2011,7 +2367,8 @@ var SpecificLinkQuery = class extends BaseListQuery {
2011
2367
  }
2012
2368
  const queryParams = {
2013
2369
  $pageSize: this.options.pageSize || 100,
2014
- $nextPageToken: this.nextPageToken
2370
+ $nextPageToken: this.nextPageToken,
2371
+ $includeRid: true
2015
2372
  };
2016
2373
  if (this.#orderBy && Object.keys(this.#orderBy).length > 0) {
2017
2374
  queryParams.$orderBy = this.#orderBy;
@@ -2065,7 +2422,7 @@ var SpecificLinkQuery = class extends BaseListQuery {
2065
2422
  return this.revalidate(true);
2066
2423
  } else {
2067
2424
  return (async () => {
2068
- const sourceMetadata = await this.store.client[chunkPARVKNVB_cjs.additionalContext].ontologyProvider.getObjectDefinition(this.#sourceApiName);
2425
+ const sourceMetadata = await this.store.client[chunkY362HOIZ_cjs.additionalContext].ontologyProvider.getObjectDefinition(this.#sourceApiName);
2069
2426
  const linkDef = sourceMetadata.links?.[this.#linkName];
2070
2427
  if (!linkDef || linkDef.targetType !== objectType) return;
2071
2428
  const promise = this.revalidate(true);
@@ -2281,7 +2638,7 @@ function evaluateFilter(f, realValue, expected, strict) {
2281
2638
  case "$ne":
2282
2639
  return realValue !== expected;
2283
2640
  case "$in":
2284
- return expected.$in.includes(realValue);
2641
+ return Array.isArray(expected) && expected.includes(realValue);
2285
2642
  case "$isNull":
2286
2643
  return realValue == null;
2287
2644
  case "$startsWith":
@@ -2373,7 +2730,7 @@ var ListQuery = class extends BaseListQuery {
2373
2730
  batch.changes.registerList(this.cacheKey);
2374
2731
  }
2375
2732
  constructor(store, subject, apiName, cacheKey, opts) {
2376
- super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkPARVKNVB_cjs.additionalContext].logger?.child({}, {
2733
+ super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkY362HOIZ_cjs.additionalContext].logger?.child({}, {
2377
2734
  msgPrefix: `ListQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
2378
2735
  }) : void 0);
2379
2736
  this.apiName = apiName;
@@ -2411,15 +2768,16 @@ var ListQuery = class extends BaseListQuery {
2411
2768
  */
2412
2769
  async fetchPageData(signal) {
2413
2770
  if (Object.keys(this.#orderBy).length > 0 && !(this.sortingStrategy instanceof OrderBySortingStrategy)) {
2414
- const wireObjectSet = chunkPARVKNVB_cjs.getWireObjectSet(this.#objectSet);
2771
+ const wireObjectSet = chunkY362HOIZ_cjs.getWireObjectSet(this.#objectSet);
2415
2772
  const {
2416
2773
  resultType
2417
- } = await getObjectTypesThatInvalidate(this.store.client[chunkPARVKNVB_cjs.additionalContext], wireObjectSet);
2774
+ } = await getObjectTypesThatInvalidate(this.store.client[chunkY362HOIZ_cjs.additionalContext], wireObjectSet);
2418
2775
  this.sortingStrategy = new OrderBySortingStrategy(resultType.apiName, this.#orderBy);
2419
2776
  }
2420
2777
  const resp = await this.#objectSet.fetchPage({
2421
2778
  $nextPageToken: this.nextPageToken,
2422
2779
  $pageSize: this.options.pageSize,
2780
+ $includeRid: true,
2423
2781
  // For now this keeps the shared test code from falling apart
2424
2782
  // but shouldn't be needed ideally
2425
2783
  ...Object.keys(this.#orderBy).length > 0 ? {
@@ -2442,8 +2800,10 @@ var ListQuery = class extends BaseListQuery {
2442
2800
  handleFetchError(error, _status, batch) {
2443
2801
  this.logger?.error("error", error);
2444
2802
  this.store.subjects.get(this.cacheKey).error(error);
2803
+ const existingTotalCount = batch.read(this.cacheKey)?.value?.totalCount;
2445
2804
  return this.writeToStore({
2446
- data: []
2805
+ data: [],
2806
+ totalCount: existingTotalCount
2447
2807
  }, "error", batch);
2448
2808
  }
2449
2809
  /**
@@ -2521,12 +2881,14 @@ var ListQuery = class extends BaseListQuery {
2521
2881
  for (const obj of toAdd) {
2522
2882
  newList.push(this.getObjectCacheKey(obj));
2523
2883
  }
2884
+ const existingTotalCount = batch.read(this.cacheKey)?.value?.totalCount;
2524
2885
  this._updateList(
2525
2886
  newList,
2526
2887
  status,
2527
2888
  batch,
2528
2889
  /* append */
2529
- false
2890
+ false,
2891
+ existingTotalCount
2530
2892
  );
2531
2893
  });
2532
2894
  if (needsRevalidation) {
@@ -2601,8 +2963,10 @@ var ListQuery = class extends BaseListQuery {
2601
2963
  const newObjects = existing.value?.data.filter((o) => o !== objectCacheKey);
2602
2964
  if (newObjects?.length !== existing.value?.data.length) {
2603
2965
  batch.changes.registerList(this.cacheKey);
2966
+ const existingTotalCount = existing.value?.totalCount;
2604
2967
  batch.write(this.cacheKey, {
2605
- data: newObjects ?? []
2968
+ data: newObjects ?? [],
2969
+ totalCount: existingTotalCount
2606
2970
  }, "loaded");
2607
2971
  }
2608
2972
  return;
@@ -2660,9 +3024,20 @@ var InterfaceListQuery = class extends ListQuery {
2660
3024
  async postProcessFetchedData(data) {
2661
3025
  return reloadDataAsFullObjects(this.store.client, data);
2662
3026
  }
3027
+ createPayload(params) {
3028
+ const resolvedList = params.resolvedData.map((obj) => obj.$as(this.apiName));
3029
+ return {
3030
+ resolvedList,
3031
+ isOptimistic: params.isOptimistic,
3032
+ fetchMore: this.fetchMore,
3033
+ hasMore: this.nextPageToken != null,
3034
+ status: params.status,
3035
+ lastUpdated: params.lastUpdated
3036
+ };
3037
+ }
2663
3038
  extractRelevantObjects(changes) {
2664
3039
  const matchesApiName = ([, object]) => {
2665
- return this.apiName in object[chunkIQJTM3KW_cjs.ObjectDefRef].interfaceMap;
3040
+ return this.apiName in object[chunkW4BHRZWL_cjs.ObjectDefRef].interfaceMap;
2666
3041
  };
2667
3042
  const added = Array.from(changes.addedObjects).filter(matchesApiName).map(([, object]) => object.$as(this.apiName));
2668
3043
  const modified = Array.from(changes.modifiedObjects).filter(matchesApiName).map(([, object]) => object.$as(this.apiName));
@@ -2681,22 +3056,30 @@ var InterfaceListQuery = class extends ListQuery {
2681
3056
  }
2682
3057
  };
2683
3058
  async function reloadDataAsFullObjects(client, data) {
3059
+ if (data.length === 0) {
3060
+ return data;
3061
+ }
2684
3062
  const groups = groupBy__default.default(data, (x) => x.$objectType);
2685
3063
  const objectTypeToPrimaryKeyToObject = Object.fromEntries(await Promise.all(Object.entries(groups).map(async ([apiName, objects]) => {
2686
- const objectDef = objects[0][chunkIQJTM3KW_cjs.UnderlyingOsdkObject][chunkIQJTM3KW_cjs.ObjectDefRef];
3064
+ const objectDef = await client.fetchMetadata({
3065
+ type: "object",
3066
+ apiName
3067
+ });
2687
3068
  const where = {
2688
3069
  [objectDef.primaryKeyApiName]: {
2689
3070
  $in: objects.map((x) => x.$primaryKey)
2690
3071
  }
2691
3072
  };
2692
- const result = await client(objectDef).where(where).fetchPage();
3073
+ const result = await client(objectDef).where(where).fetchPage({
3074
+ $includeRid: true
3075
+ });
2693
3076
  return [apiName, Object.fromEntries(result.data.map((x) => [x.$primaryKey, x]))];
2694
3077
  })));
2695
- data = data.map((obj) => {
2696
- !objectTypeToPrimaryKeyToObject[obj.$objectType][obj.$primaryKey] ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `Could not find object ${obj.$objectType} ${obj.$primaryKey}`) : invariant5__default.default(false) : void 0;
2697
- return objectTypeToPrimaryKeyToObject[obj.$objectType][obj.$primaryKey];
3078
+ return data.map((obj) => {
3079
+ const fullObject = objectTypeToPrimaryKeyToObject[obj.$objectType][obj.$primaryKey];
3080
+ !fullObject ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `Could not find object ${obj.$objectType} ${obj.$primaryKey}`) : invariant5__default.default(false) : void 0;
3081
+ return fullObject;
2698
3082
  });
2699
- return data;
2700
3083
  }
2701
3084
 
2702
3085
  // src/observable/internal/list/ObjectListQuery.ts
@@ -2706,16 +3089,22 @@ var ObjectListQuery = class extends ListQuery {
2706
3089
  const rdpConfig = this.cacheKey.otherKeys[RDP_IDX2];
2707
3090
  const intersectWith = this.cacheKey.otherKeys[INTERSECT_IDX];
2708
3091
  const pivotInfo = this.cacheKey.otherKeys[PIVOT_IDX];
3092
+ const rids = this.cacheKey.otherKeys[RIDS_IDX];
3093
+ const clientCtx = store.client[chunkY362HOIZ_cjs.additionalContext];
3094
+ const typeDefinition = {
3095
+ type: "object",
3096
+ apiName: this.apiName
3097
+ };
2709
3098
  if (pivotInfo != null) {
2710
- const sourceSet = store.client({
3099
+ let sourceSet = store.client({
2711
3100
  type: "object",
2712
3101
  apiName: pivotInfo.sourceType
2713
3102
  });
3103
+ sourceSet = sourceSet.where(this.canonicalWhere);
2714
3104
  let objectSet2 = sourceSet.pivotTo(pivotInfo.linkName);
2715
3105
  if (rdpConfig != null) {
2716
3106
  objectSet2 = objectSet2.withProperties(rdpConfig);
2717
3107
  }
2718
- objectSet2 = objectSet2.where(this.canonicalWhere);
2719
3108
  if (intersectWith != null && intersectWith.length > 0) {
2720
3109
  const intersectSets = intersectWith.map((whereClause) => {
2721
3110
  let intersectSet = store.client({
@@ -2731,10 +3120,15 @@ var ObjectListQuery = class extends ListQuery {
2731
3120
  }
2732
3121
  return objectSet2;
2733
3122
  }
2734
- let objectSet = store.client({
2735
- type: "object",
2736
- apiName: this.apiName
2737
- });
3123
+ let objectSet;
3124
+ if (rids != null) {
3125
+ objectSet = clientCtx.objectSetFactory(typeDefinition, clientCtx, {
3126
+ type: "static",
3127
+ objects: [...rids]
3128
+ });
3129
+ } else {
3130
+ objectSet = store.client(typeDefinition);
3131
+ }
2738
3132
  if (rdpConfig != null) {
2739
3133
  objectSet = objectSet.withProperties(rdpConfig);
2740
3134
  }
@@ -2783,13 +3177,14 @@ var ObjectListQuery = class extends ListQuery {
2783
3177
 
2784
3178
  // src/observable/internal/list/ListsHelper.ts
2785
3179
  var ListsHelper = class extends AbstractHelper {
2786
- constructor(store, cacheKeys, whereCanonicalizer2, orderByCanonicalizer2, rdpCanonicalizer, intersectCanonicalizer, pivotCanonicalizer) {
3180
+ constructor(store, cacheKeys, whereCanonicalizer2, orderByCanonicalizer2, rdpCanonicalizer, intersectCanonicalizer, pivotCanonicalizer, ridListCanonicalizer) {
2787
3181
  super(store, cacheKeys);
2788
3182
  this.whereCanonicalizer = whereCanonicalizer2;
2789
3183
  this.orderByCanonicalizer = orderByCanonicalizer2;
2790
3184
  this.rdpCanonicalizer = rdpCanonicalizer;
2791
3185
  this.intersectCanonicalizer = intersectCanonicalizer;
2792
3186
  this.pivotCanonicalizer = pivotCanonicalizer;
3187
+ this.ridListCanonicalizer = ridListCanonicalizer;
2793
3188
  }
2794
3189
  observe(options, subFn) {
2795
3190
  const ret = super.observe(options, subFn);
@@ -2805,7 +3200,8 @@ var ListsHelper = class extends AbstractHelper {
2805
3200
  orderBy,
2806
3201
  withProperties,
2807
3202
  intersectWith,
2808
- pivotTo
3203
+ pivotTo,
3204
+ rids
2809
3205
  } = options;
2810
3206
  const {
2811
3207
  apiName,
@@ -2816,7 +3212,8 @@ var ListsHelper = class extends AbstractHelper {
2816
3212
  const canonRdp = withProperties ? this.rdpCanonicalizer.canonicalize(withProperties) : void 0;
2817
3213
  const canonIntersect = intersectWith && intersectWith.length > 0 ? this.intersectCanonicalizer.canonicalize(intersectWith) : void 0;
2818
3214
  const canonPivot = pivotTo ? this.pivotCanonicalizer.canonicalize(apiName, pivotTo) : void 0;
2819
- const listCacheKey = this.cacheKeys.get("list", type, apiName, canonWhere, canonOrderBy, canonRdp, canonIntersect, canonPivot);
3215
+ const canonRids = rids != null ? this.ridListCanonicalizer.canonicalize(rids) : void 0;
3216
+ const listCacheKey = this.cacheKeys.get("list", type, apiName, canonWhere, canonOrderBy, canonRdp, canonIntersect, canonPivot, canonRids);
2820
3217
  return this.store.queries.get(listCacheKey, () => {
2821
3218
  const QueryClass = type === "object" ? ObjectListQuery : InterfaceListQuery;
2822
3219
  return new QueryClass(this.store, this.store.subjects.get(listCacheKey), apiName, listCacheKey, options);
@@ -2844,20 +3241,21 @@ function stripRdpFields(value, rdpFields) {
2844
3241
  if (rdpFields.size === 0) {
2845
3242
  return value;
2846
3243
  }
2847
- const underlying = value[chunkIQJTM3KW_cjs.UnderlyingOsdkObject];
2848
- const objectDef = value[chunkIQJTM3KW_cjs.ObjectDefRef];
3244
+ const underlying = value[chunkW4BHRZWL_cjs.UnderlyingOsdkObject];
3245
+ const objectDef = value[chunkW4BHRZWL_cjs.ObjectDefRef];
2849
3246
  const newProps = {
2850
3247
  $apiName: underlying.$apiName,
2851
3248
  $objectType: underlying.$objectType,
2852
3249
  $primaryKey: underlying.$primaryKey,
2853
- $title: underlying.$title
3250
+ $title: underlying.$title,
3251
+ $rid: underlying.$rid
2854
3252
  };
2855
3253
  for (const key of Object.keys(underlying)) {
2856
3254
  if (key in objectDef.properties && !rdpFields.has(key)) {
2857
3255
  newProps[key] = underlying[key];
2858
3256
  }
2859
3257
  }
2860
- return chunkIQJTM3KW_cjs.createOsdkObject(value[chunkIQJTM3KW_cjs.ClientRef], objectDef, newProps);
3258
+ return chunkW4BHRZWL_cjs.createOsdkObject(value[chunkW4BHRZWL_cjs.ClientRef], objectDef, newProps);
2861
3259
  }
2862
3260
  function isSuperset(superset, subset) {
2863
3261
  for (const field of subset) {
@@ -2868,13 +3266,14 @@ function isSuperset(superset, subset) {
2868
3266
  return true;
2869
3267
  }
2870
3268
  function filterToRdpFields(value, rdpFieldsToKeep, sourceRdpFields) {
2871
- const underlying = value[chunkIQJTM3KW_cjs.UnderlyingOsdkObject];
2872
- const objectDef = value[chunkIQJTM3KW_cjs.ObjectDefRef];
3269
+ const underlying = value[chunkW4BHRZWL_cjs.UnderlyingOsdkObject];
3270
+ const objectDef = value[chunkW4BHRZWL_cjs.ObjectDefRef];
2873
3271
  const newProps = {
2874
3272
  $apiName: underlying.$apiName,
2875
3273
  $objectType: underlying.$objectType,
2876
3274
  $primaryKey: underlying.$primaryKey,
2877
- $title: underlying.$title
3275
+ $title: underlying.$title,
3276
+ $rid: underlying.$rid
2878
3277
  };
2879
3278
  for (const key of Object.keys(underlying)) {
2880
3279
  if (key in objectDef.properties) {
@@ -2884,7 +3283,7 @@ function filterToRdpFields(value, rdpFieldsToKeep, sourceRdpFields) {
2884
3283
  }
2885
3284
  }
2886
3285
  }
2887
- return chunkIQJTM3KW_cjs.createOsdkObject(value[chunkIQJTM3KW_cjs.ClientRef], objectDef, newProps);
3286
+ return chunkW4BHRZWL_cjs.createOsdkObject(value[chunkW4BHRZWL_cjs.ClientRef], objectDef, newProps);
2888
3287
  }
2889
3288
  function mergeObjectFields(sourceValue, sourceRdpFields, targetRdpFields, targetCurrentValue) {
2890
3289
  if (targetRdpFields.size === 0) {
@@ -2896,13 +3295,14 @@ function mergeObjectFields(sourceValue, sourceRdpFields, targetRdpFields, target
2896
3295
  }
2897
3296
  return filterToRdpFields(sourceValue, targetRdpFields, sourceRdpFields);
2898
3297
  }
2899
- const sourceUnderlying = sourceValue[chunkIQJTM3KW_cjs.UnderlyingOsdkObject];
2900
- const objectDef = sourceValue[chunkIQJTM3KW_cjs.ObjectDefRef];
3298
+ const sourceUnderlying = sourceValue[chunkW4BHRZWL_cjs.UnderlyingOsdkObject];
3299
+ const objectDef = sourceValue[chunkW4BHRZWL_cjs.ObjectDefRef];
2901
3300
  const newProps = {
2902
3301
  $apiName: sourceUnderlying.$apiName,
2903
3302
  $objectType: sourceUnderlying.$objectType,
2904
3303
  $primaryKey: sourceUnderlying.$primaryKey,
2905
- $title: sourceUnderlying.$title
3304
+ $title: sourceUnderlying.$title,
3305
+ $rid: sourceUnderlying.$rid
2906
3306
  };
2907
3307
  for (const key of Object.keys(sourceUnderlying)) {
2908
3308
  if (key in objectDef.properties && (!sourceRdpFields.has(key) || targetRdpFields.has(key))) {
@@ -2910,14 +3310,14 @@ function mergeObjectFields(sourceValue, sourceRdpFields, targetRdpFields, target
2910
3310
  }
2911
3311
  }
2912
3312
  if (targetCurrentValue) {
2913
- const targetUnderlying = targetCurrentValue[chunkIQJTM3KW_cjs.UnderlyingOsdkObject];
3313
+ const targetUnderlying = targetCurrentValue[chunkW4BHRZWL_cjs.UnderlyingOsdkObject];
2914
3314
  for (const field of targetRdpFields) {
2915
3315
  if (!sourceRdpFields.has(field) && field in targetUnderlying) {
2916
3316
  newProps[field] = targetUnderlying[field];
2917
3317
  }
2918
3318
  }
2919
3319
  }
2920
- return chunkIQJTM3KW_cjs.createOsdkObject(sourceValue[chunkIQJTM3KW_cjs.ClientRef], objectDef, newProps);
3320
+ return chunkW4BHRZWL_cjs.createOsdkObject(sourceValue[chunkW4BHRZWL_cjs.ClientRef], objectDef, newProps);
2921
3321
  }
2922
3322
 
2923
3323
  // src/observable/internal/object/ObjectCacheKeyRegistry.ts
@@ -3052,7 +3452,7 @@ var BulkObjectLoader = class {
3052
3452
  #maxEntries;
3053
3453
  constructor(client, maxWait = 25, maxEntries = 100) {
3054
3454
  this.#client = client;
3055
- this.#logger = client[chunkPARVKNVB_cjs.additionalContext].logger;
3455
+ this.#logger = client[chunkY362HOIZ_cjs.additionalContext].logger;
3056
3456
  this.#maxWait = maxWait;
3057
3457
  this.#maxEntries = maxEntries;
3058
3458
  }
@@ -3099,7 +3499,8 @@ var BulkObjectLoader = class {
3099
3499
  const {
3100
3500
  data
3101
3501
  } = await this.#client(miniDef).where(whereClause).fetchPage({
3102
- $pageSize: pks.length
3502
+ $pageSize: pks.length,
3503
+ $includeRid: true
3103
3504
  });
3104
3505
  for (const {
3105
3506
  primaryKey,
@@ -3120,7 +3521,7 @@ var ObjectQuery = class extends Query {
3120
3521
  #apiName;
3121
3522
  #pk;
3122
3523
  constructor(store, subject, type, pk, cacheKey, opts) {
3123
- super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkPARVKNVB_cjs.additionalContext].logger?.child({}, {
3524
+ super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkY362HOIZ_cjs.additionalContext].logger?.child({}, {
3124
3525
  msgPrefix: `ObjectQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
3125
3526
  }) : void 0);
3126
3527
  this.#apiName = type;
@@ -3149,7 +3550,20 @@ var ObjectQuery = class extends Query {
3149
3550
  methodName: "_fetchAndStore"
3150
3551
  }).debug("calling _fetchAndStore");
3151
3552
  }
3152
- const obj = await getBulkObjectLoader(this.store.client).fetch(this.#apiName, this.#pk);
3553
+ const rdpConfig = this.cacheKey.otherKeys[RDP_CONFIG_IDX];
3554
+ let obj;
3555
+ if (rdpConfig) {
3556
+ const miniDef = {
3557
+ type: "object",
3558
+ apiName: this.#apiName
3559
+ };
3560
+ const fetched = await this.store.client(miniDef).withProperties(rdpConfig).fetchOne(this.#pk, {
3561
+ $includeRid: true
3562
+ });
3563
+ obj = fetched;
3564
+ } else {
3565
+ obj = await getBulkObjectLoader(this.store.client).fetch(this.#apiName, this.#pk);
3566
+ }
3153
3567
  this.store.batch({}, (batch) => {
3154
3568
  this.writeToStore(obj, "loaded", batch);
3155
3569
  });
@@ -3199,7 +3613,7 @@ var ObjectsHelper = class extends AbstractHelper {
3199
3613
  */
3200
3614
  storeOsdkInstances(values, batch, rdpConfig) {
3201
3615
  return values.map((v) => this.getQuery({
3202
- apiName: v.$apiName,
3616
+ apiName: v.$objectType ?? v.$apiName,
3203
3617
  pk: v.$primaryKey
3204
3618
  }, rdpConfig).writeToStore(v, "loaded", batch).cacheKey);
3205
3619
  }
@@ -3268,7 +3682,7 @@ var ObjectSetQuery = class extends BaseListQuery {
3268
3682
  #composedObjectSet;
3269
3683
  #objectTypes;
3270
3684
  constructor(store, subject, baseObjectSetWire, operations, cacheKey, opts) {
3271
- super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkPARVKNVB_cjs.additionalContext].logger?.child({}, {
3685
+ super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkY362HOIZ_cjs.additionalContext].logger?.child({}, {
3272
3686
  msgPrefix: `ObjectSetQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
3273
3687
  }) : void 0);
3274
3688
  this.#baseObjectSetWire = baseObjectSetWire;
@@ -3313,7 +3727,7 @@ var ObjectSetQuery = class extends BaseListQuery {
3313
3727
  }
3314
3728
  if (opts.union) {
3315
3729
  for (const os of opts.union) {
3316
- const wire = chunkPARVKNVB_cjs.getWireObjectSet(os);
3730
+ const wire = chunkY362HOIZ_cjs.getWireObjectSet(os);
3317
3731
  if (wire.type) {
3318
3732
  types.add(wire.type);
3319
3733
  }
@@ -3321,7 +3735,7 @@ var ObjectSetQuery = class extends BaseListQuery {
3321
3735
  }
3322
3736
  if (opts.intersect) {
3323
3737
  for (const os of opts.intersect) {
3324
- const wire = chunkPARVKNVB_cjs.getWireObjectSet(os);
3738
+ const wire = chunkY362HOIZ_cjs.getWireObjectSet(os);
3325
3739
  if (wire.type) {
3326
3740
  types.add(wire.type);
3327
3741
  }
@@ -3329,7 +3743,7 @@ var ObjectSetQuery = class extends BaseListQuery {
3329
3743
  }
3330
3744
  if (opts.subtract) {
3331
3745
  for (const os of opts.subtract) {
3332
- const wire = chunkPARVKNVB_cjs.getWireObjectSet(os);
3746
+ const wire = chunkY362HOIZ_cjs.getWireObjectSet(os);
3333
3747
  if (wire.type) {
3334
3748
  types.add(wire.type);
3335
3749
  }
@@ -3349,15 +3763,16 @@ var ObjectSetQuery = class extends BaseListQuery {
3349
3763
  */
3350
3764
  async fetchPageData(signal) {
3351
3765
  if (this.#operations.orderBy && Object.keys(this.#operations.orderBy).length > 0 && !(this.sortingStrategy instanceof OrderBySortingStrategy)) {
3352
- const wireObjectSet = chunkPARVKNVB_cjs.getWireObjectSet(this.#composedObjectSet);
3766
+ const wireObjectSet = chunkY362HOIZ_cjs.getWireObjectSet(this.#composedObjectSet);
3353
3767
  const {
3354
3768
  resultType
3355
- } = await getObjectTypesThatInvalidate(this.store.client[chunkPARVKNVB_cjs.additionalContext], wireObjectSet);
3769
+ } = await getObjectTypesThatInvalidate(this.store.client[chunkY362HOIZ_cjs.additionalContext], wireObjectSet);
3356
3770
  this.sortingStrategy = new OrderBySortingStrategy(resultType.apiName, this.#operations.orderBy);
3357
3771
  }
3358
3772
  const resp = await this.#composedObjectSet.fetchPage({
3359
3773
  $nextPageToken: this.nextPageToken,
3360
3774
  $pageSize: this.options.pageSize,
3775
+ $includeRid: true,
3361
3776
  // OrderBy is already applied in the composed ObjectSet
3362
3777
  ...this.#operations.orderBy && Object.keys(this.#operations.orderBy).length > 0 ? {
3363
3778
  $orderBy: this.#operations.orderBy
@@ -3372,8 +3787,10 @@ var ObjectSetQuery = class extends BaseListQuery {
3372
3787
  handleFetchError(error, _status, batch) {
3373
3788
  this.logger?.error("error", error);
3374
3789
  this.store.subjects.get(this.cacheKey).error(error);
3790
+ const existingTotalCount = batch.read(this.cacheKey)?.value?.totalCount;
3375
3791
  return this.writeToStore({
3376
- data: []
3792
+ data: [],
3793
+ totalCount: existingTotalCount
3377
3794
  }, "error", batch);
3378
3795
  }
3379
3796
  registerStreamUpdates(sub) {
@@ -3394,7 +3811,8 @@ var ObjectSetQuery = class extends BaseListQuery {
3394
3811
  hasMore: this.nextPageToken != null,
3395
3812
  status: params.status,
3396
3813
  lastUpdated: params.lastUpdated,
3397
- objectSet: this.#composedObjectSet
3814
+ objectSet: this.#composedObjectSet,
3815
+ totalCount: params.totalCount
3398
3816
  };
3399
3817
  }
3400
3818
  };
@@ -3417,7 +3835,7 @@ var ObjectSetHelper = class extends AbstractHelper {
3417
3835
  const {
3418
3836
  baseObjectSet
3419
3837
  } = options;
3420
- const baseObjectSetWire = JSON.stringify(chunkPARVKNVB_cjs.getWireObjectSet(baseObjectSet));
3838
+ const baseObjectSetWire = JSON.stringify(chunkY362HOIZ_cjs.getWireObjectSet(baseObjectSet));
3421
3839
  const operations = this.buildCanonicalizedOperations(options);
3422
3840
  const objectSetCacheKey = this.cacheKeys.get("objectSet", baseObjectSetWire, operations);
3423
3841
  return this.store.queries.get(objectSetCacheKey, () => {
@@ -3433,13 +3851,13 @@ var ObjectSetHelper = class extends AbstractHelper {
3433
3851
  operations.withProperties = Object.keys(options.withProperties).sort();
3434
3852
  }
3435
3853
  if (options.union && options.union.length > 0) {
3436
- operations.union = options.union.map((os) => JSON.stringify(chunkPARVKNVB_cjs.getWireObjectSet(os)));
3854
+ operations.union = options.union.map((os) => JSON.stringify(chunkY362HOIZ_cjs.getWireObjectSet(os)));
3437
3855
  }
3438
3856
  if (options.intersect && options.intersect.length > 0) {
3439
- operations.intersect = options.intersect.map((os) => JSON.stringify(chunkPARVKNVB_cjs.getWireObjectSet(os)));
3857
+ operations.intersect = options.intersect.map((os) => JSON.stringify(chunkY362HOIZ_cjs.getWireObjectSet(os)));
3440
3858
  }
3441
3859
  if (options.subtract && options.subtract.length > 0) {
3442
- operations.subtract = options.subtract.map((os) => JSON.stringify(chunkPARVKNVB_cjs.getWireObjectSet(os)));
3860
+ operations.subtract = options.subtract.map((os) => JSON.stringify(chunkY362HOIZ_cjs.getWireObjectSet(os)));
3443
3861
  }
3444
3862
  if (options.pivotTo) {
3445
3863
  operations.pivotTo = options.pivotTo;
@@ -3511,7 +3929,7 @@ var RdpCanonicalizer = class extends CachingCanonicalizer {
3511
3929
  apiName: "__rdp_canonicalizer_holder__"
3512
3930
  };
3513
3931
  for (const [key, rdpFunction] of Object.entries(rdp)) {
3514
- const builder = chunkPARVKNVB_cjs.createWithPropertiesObjectSet(
3932
+ const builder = chunkY362HOIZ_cjs.createWithPropertiesObjectSet(
3515
3933
  objectTypeHolder,
3516
3934
  {
3517
3935
  type: "methodInput"
@@ -3545,6 +3963,22 @@ var RdpCanonicalizer = class extends CachingCanonicalizer {
3545
3963
  }
3546
3964
  };
3547
3965
 
3966
+ // src/observable/internal/RidListCanonicalizer.ts
3967
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
3968
+ var RidListCanonicalizer = class {
3969
+ cache = /* @__PURE__ */ new Map();
3970
+ canonicalize(rids) {
3971
+ const sorted = [...new Set(rids)].sort();
3972
+ const key = sorted.join("\0");
3973
+ let canonical = this.cache.get(key);
3974
+ if (!canonical) {
3975
+ canonical = sorted;
3976
+ this.cache.set(key, canonical);
3977
+ }
3978
+ return canonical;
3979
+ }
3980
+ };
3981
+
3548
3982
  // src/observable/internal/Store.ts
3549
3983
  var Store = class {
3550
3984
  whereCanonicalizer = new WhereClauseCanonicalizer();
@@ -3552,6 +3986,7 @@ var Store = class {
3552
3986
  rdpCanonicalizer = new RdpCanonicalizer();
3553
3987
  intersectCanonicalizer = new IntersectCanonicalizer(this.whereCanonicalizer);
3554
3988
  pivotCanonicalizer = new PivotCanonicalizer();
3989
+ ridListCanonicalizer = new RidListCanonicalizer();
3555
3990
  /** @internal */
3556
3991
  queries = new Queries();
3557
3992
  objectCacheKeyRegistry = new ObjectCacheKeyRegistry();
@@ -3562,7 +3997,7 @@ var Store = class {
3562
3997
  subjects = this.layers.subjects;
3563
3998
  // these are hopefully temporary
3564
3999
  constructor(client) {
3565
- this.logger = client[chunkPARVKNVB_cjs.additionalContext].logger?.child({}, {
4000
+ this.logger = client[chunkY362HOIZ_cjs.additionalContext].logger?.child({}, {
3566
4001
  msgPrefix: "Store"
3567
4002
  });
3568
4003
  this.client = client;
@@ -3570,7 +4005,8 @@ var Store = class {
3570
4005
  onDestroy: this.#cleanupCacheKey
3571
4006
  });
3572
4007
  this.aggregations = new AggregationsHelper(this, this.cacheKeys, this.whereCanonicalizer, this.rdpCanonicalizer);
3573
- this.lists = new ListsHelper(this, this.cacheKeys, this.whereCanonicalizer, this.orderByCanonicalizer, this.rdpCanonicalizer, this.intersectCanonicalizer, this.pivotCanonicalizer);
4008
+ this.functions = new FunctionsHelper(this, this.cacheKeys);
4009
+ this.lists = new ListsHelper(this, this.cacheKeys, this.whereCanonicalizer, this.orderByCanonicalizer, this.rdpCanonicalizer, this.intersectCanonicalizer, this.pivotCanonicalizer, this.ridListCanonicalizer);
3574
4010
  this.objects = new ObjectsHelper(this, this.cacheKeys);
3575
4011
  this.links = new LinksHelper(this, this.cacheKeys, this.whereCanonicalizer, this.orderByCanonicalizer);
3576
4012
  this.objectSets = new ObjectSetHelper(this, this.cacheKeys, this.whereCanonicalizer, this.orderByCanonicalizer);
@@ -3824,14 +4260,20 @@ var Store = class {
3824
4260
  }
3825
4261
  return Promise.allSettled(promises).then(() => void 0);
3826
4262
  }
4263
+ async invalidateFunction(apiName, params) {
4264
+ return this.functions.invalidateFunction(apiName, params);
4265
+ }
4266
+ async invalidateFunctionsByObject(apiName, primaryKey) {
4267
+ return this.functions.invalidateFunctionsByObject(apiName, primaryKey);
4268
+ }
3827
4269
  };
3828
4270
 
3829
4271
  // src/observable/ObservableClient.ts
3830
4272
  function createObservableClient(client) {
3831
- const tweakedClient = chunkIQJTM3KW_cjs.createClientFromContext({
3832
- ...client[chunkPARVKNVB_cjs.additionalContext],
3833
- fetch: shared_net_fetch.createFetchHeaderMutator(client[chunkPARVKNVB_cjs.additionalContext].fetch, (headers) => {
3834
- headers.set("Fetch-User-Agent", [headers.get("Fetch-User-Agent"), chunkIQJTM3KW_cjs.OBSERVABLE_USER_AGENT].filter((x) => x && x?.length > 0).join(" "));
4273
+ const tweakedClient = chunkW4BHRZWL_cjs.createClientFromContext({
4274
+ ...client[chunkY362HOIZ_cjs.additionalContext],
4275
+ fetch: shared_net_fetch.createFetchHeaderMutator(client[chunkY362HOIZ_cjs.additionalContext].fetch, (headers) => {
4276
+ headers.set("Fetch-User-Agent", [headers.get("Fetch-User-Agent"), chunkW4BHRZWL_cjs.OBSERVABLE_USER_AGENT].filter((x) => x && x?.length > 0).join(" "));
3835
4277
  return headers;
3836
4278
  })
3837
4279
  });
@@ -3875,11 +4317,11 @@ function getOsdkConfig(ontologyRid) {
3875
4317
 
3876
4318
  Object.defineProperty(exports, "createClientWithTransaction", {
3877
4319
  enumerable: true,
3878
- get: function () { return chunkIQJTM3KW_cjs.createClientWithTransaction; }
4320
+ get: function () { return chunkW4BHRZWL_cjs.createClientWithTransaction; }
3879
4321
  });
3880
4322
  Object.defineProperty(exports, "augment", {
3881
4323
  enumerable: true,
3882
- get: function () { return chunkPARVKNVB_cjs.augment; }
4324
+ get: function () { return chunkY362HOIZ_cjs.augment; }
3883
4325
  });
3884
4326
  exports.computeObjectSetCacheKey = computeObjectSetCacheKey;
3885
4327
  exports.createObservableClient = createObservableClient;