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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/CHANGELOG.md +138 -0
  2. package/build/browser/Client.js +1 -1
  3. package/build/browser/Client.js.map +1 -1
  4. package/build/browser/MinimalClientContext.js.map +1 -1
  5. package/build/browser/actions/actions.test.js +9 -0
  6. package/build/browser/actions/actions.test.js.map +1 -1
  7. package/build/browser/createClient.js +4 -3
  8. package/build/browser/createClient.js.map +1 -1
  9. package/build/browser/createClient.test.js +1 -1
  10. package/build/browser/createClient.test.js.map +1 -1
  11. package/build/browser/createMinimalClient.js.map +1 -1
  12. package/build/browser/fetchMetadata.test.js +21 -1
  13. package/build/browser/fetchMetadata.test.js.map +1 -1
  14. package/build/browser/index.js +1 -1
  15. package/build/browser/index.js.map +1 -1
  16. package/build/browser/intellisense.test.js +1 -1
  17. package/build/browser/intellisense.test.js.map +1 -1
  18. package/build/browser/object/AttachmentUpload.js +1 -1
  19. package/build/browser/object/AttachmentUpload.js.map +1 -1
  20. package/build/browser/object/aggregate.js +3 -0
  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/convertWireToOsdkObjects/InternalSymbols.js +3 -0
  24. package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.js.map +1 -1
  25. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js +4 -0
  26. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  27. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js +85 -3
  28. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  29. package/build/browser/object/convertWireToOsdkObjects.js +18 -6
  30. package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
  31. package/build/browser/object/convertWireToOsdkObjects.test.js +178 -29
  32. package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
  33. package/build/browser/object/fetchPage.js +30 -5
  34. package/build/browser/object/fetchPage.js.map +1 -1
  35. package/build/browser/object/fetchPage.test.js.map +1 -1
  36. package/build/browser/object/mediaUpload.js +1 -1
  37. package/build/browser/object/mediaUpload.js.map +1 -1
  38. package/build/browser/object/object.test.js +123 -0
  39. package/build/browser/object/object.test.js.map +1 -1
  40. package/build/browser/objectSet/InterfaceObjectSet.test.js +1 -1
  41. package/build/browser/objectSet/InterfaceObjectSet.test.js.map +1 -1
  42. package/build/browser/objectSet/ObjectSet.test.js +7 -6
  43. package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
  44. package/build/browser/objectSet/ObjectSetListenerWebsocket.js +2 -2
  45. package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  46. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +3 -1
  47. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  48. package/build/browser/objectSet/createObjectSet.js +13 -0
  49. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  50. package/build/browser/objectSet/fetchLinksPage.js +57 -0
  51. package/build/browser/objectSet/fetchLinksPage.js.map +1 -0
  52. package/build/browser/objectSet/fetchLinksPage.test.js +102 -0
  53. package/build/browser/objectSet/fetchLinksPage.test.js.map +1 -0
  54. package/build/browser/observable/FunctionPayload.js +2 -0
  55. package/build/browser/observable/FunctionPayload.js.map +1 -0
  56. package/build/browser/observable/ListPayload.js.map +1 -1
  57. package/build/browser/observable/ObjectPayload.js.map +1 -1
  58. package/build/browser/observable/ObservableClient.js +0 -5
  59. package/build/browser/observable/ObservableClient.js.map +1 -1
  60. package/build/browser/observable/internal/Changes.js +3 -0
  61. package/build/browser/observable/internal/Changes.js.map +1 -1
  62. package/build/browser/observable/internal/KnownCacheKey.js.map +1 -1
  63. package/build/browser/observable/internal/ObservableClientImpl.js +20 -0
  64. package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
  65. package/build/browser/observable/internal/Store.js +8 -0
  66. package/build/browser/observable/internal/Store.js.map +1 -1
  67. package/build/browser/observable/internal/Store.test.js +104 -1
  68. package/build/browser/observable/internal/Store.test.js.map +1 -1
  69. package/build/browser/observable/internal/actions/ActionApplication.js +11 -7
  70. package/build/browser/observable/internal/actions/ActionApplication.js.map +1 -1
  71. package/build/browser/observable/internal/actions/OptimisticJob.js +1 -1
  72. package/build/browser/observable/internal/actions/OptimisticJob.js.map +1 -1
  73. package/build/browser/observable/internal/base-list/BaseListQuery.js +1 -1
  74. package/build/browser/observable/internal/base-list/BaseListQuery.js.map +1 -1
  75. package/build/browser/observable/internal/function/FunctionCacheKey.js +26 -0
  76. package/build/browser/observable/internal/function/FunctionCacheKey.js.map +1 -0
  77. package/build/browser/observable/internal/function/FunctionParamsCanonicalizer.js +150 -0
  78. package/build/browser/observable/internal/function/FunctionParamsCanonicalizer.js.map +1 -0
  79. package/build/browser/observable/internal/function/FunctionParamsCanonicalizer.test.js +186 -0
  80. package/build/browser/observable/internal/function/FunctionParamsCanonicalizer.test.js.map +1 -0
  81. package/build/browser/observable/internal/function/FunctionQuery.js +137 -0
  82. package/build/browser/observable/internal/function/FunctionQuery.js.map +1 -0
  83. package/build/browser/observable/internal/function/FunctionQuery.test.js +278 -0
  84. package/build/browser/observable/internal/function/FunctionQuery.test.js.map +1 -0
  85. package/build/browser/observable/internal/function/FunctionsHelper.js +92 -0
  86. package/build/browser/observable/internal/function/FunctionsHelper.js.map +1 -0
  87. package/build/browser/observable/internal/links/SpecificLinkQuery.js +9 -1
  88. package/build/browser/observable/internal/links/SpecificLinkQuery.js.map +1 -1
  89. package/build/browser/observable/internal/list/ListQuery.js +17 -2
  90. package/build/browser/observable/internal/list/ListQuery.js.map +1 -1
  91. package/build/browser/observable/internal/objectset/ObjectSetQuery.js +9 -7
  92. package/build/browser/observable/internal/objectset/ObjectSetQuery.js.map +1 -1
  93. package/build/browser/observable/internal/utils/rdpFieldOperations.js +46 -25
  94. package/build/browser/observable/internal/utils/rdpFieldOperations.js.map +1 -1
  95. package/build/browser/observable/internal/utils/rdpFieldOperations.test.js +172 -0
  96. package/build/browser/observable/internal/utils/rdpFieldOperations.test.js.map +1 -0
  97. package/build/browser/public/unstable-do-not-use.js.map +1 -1
  98. package/build/browser/queries/applyQuery.js +19 -1
  99. package/build/browser/queries/applyQuery.js.map +1 -1
  100. package/build/browser/queries/queries.test.js +14 -2
  101. package/build/browser/queries/queries.test.js.map +1 -1
  102. package/build/browser/util/UserAgent.js +2 -2
  103. package/build/browser/util/UserAgent.js.map +1 -1
  104. package/build/browser/util/toDataValue.js +0 -5
  105. package/build/browser/util/toDataValue.js.map +1 -1
  106. package/build/browser/util/toDataValue.test.js +2 -7
  107. package/build/browser/util/toDataValue.test.js.map +1 -1
  108. package/build/cjs/{Client-DaUJl7jZ.d.cts → Client-Cmx6x_V1.d.cts} +1 -1
  109. package/build/cjs/{chunk-WQL7SQ7H.cjs → chunk-666JN2DO.cjs} +250 -148
  110. package/build/cjs/chunk-666JN2DO.cjs.map +1 -0
  111. package/build/cjs/{chunk-6SCDLAU2.cjs → chunk-LDTMSHUZ.cjs} +4 -4
  112. package/build/cjs/{chunk-6SCDLAU2.cjs.map → chunk-LDTMSHUZ.cjs.map} +1 -1
  113. package/build/cjs/{chunk-VDAI3GGL.cjs → chunk-RDZ5NKAI.cjs} +218 -135
  114. package/build/cjs/chunk-RDZ5NKAI.cjs.map +1 -0
  115. package/build/cjs/{createClient-CPUYdECn.d.cts → createClient-BPK4om7e.d.cts} +2 -2
  116. package/build/cjs/{delay-KIUUJ5NJ.cjs → delay-W2TSML2P.cjs} +4 -4
  117. package/build/cjs/{delay-KIUUJ5NJ.cjs.map → delay-W2TSML2P.cjs.map} +1 -1
  118. package/build/cjs/index.cjs +12 -16
  119. package/build/cjs/index.cjs.map +1 -1
  120. package/build/cjs/index.d.cts +3 -3
  121. package/build/cjs/public/internal-node.cjs +219 -219
  122. package/build/cjs/public/internal.cjs +14 -14
  123. package/build/cjs/public/internal.d.cts +1 -1
  124. package/build/cjs/public/unstable-do-not-use.cjs +694 -152
  125. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  126. package/build/cjs/public/unstable-do-not-use.d.cts +61 -10
  127. package/build/esm/Client.js +1 -1
  128. package/build/esm/Client.js.map +1 -1
  129. package/build/esm/MinimalClientContext.js.map +1 -1
  130. package/build/esm/actions/actions.test.js +9 -0
  131. package/build/esm/actions/actions.test.js.map +1 -1
  132. package/build/esm/createClient.js +4 -3
  133. package/build/esm/createClient.js.map +1 -1
  134. package/build/esm/createClient.test.js +1 -1
  135. package/build/esm/createClient.test.js.map +1 -1
  136. package/build/esm/createMinimalClient.js.map +1 -1
  137. package/build/esm/fetchMetadata.test.js +21 -1
  138. package/build/esm/fetchMetadata.test.js.map +1 -1
  139. package/build/esm/index.js +1 -1
  140. package/build/esm/index.js.map +1 -1
  141. package/build/esm/intellisense.test.js +1 -1
  142. package/build/esm/intellisense.test.js.map +1 -1
  143. package/build/esm/object/AttachmentUpload.js +1 -1
  144. package/build/esm/object/AttachmentUpload.js.map +1 -1
  145. package/build/esm/object/aggregate.js +3 -0
  146. package/build/esm/object/aggregate.js.map +1 -1
  147. package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -1
  148. package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.js +3 -0
  149. package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.js.map +1 -1
  150. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js +4 -0
  151. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  152. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js +85 -3
  153. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  154. package/build/esm/object/convertWireToOsdkObjects.js +18 -6
  155. package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
  156. package/build/esm/object/convertWireToOsdkObjects.test.js +178 -29
  157. package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
  158. package/build/esm/object/fetchPage.js +30 -5
  159. package/build/esm/object/fetchPage.js.map +1 -1
  160. package/build/esm/object/fetchPage.test.js.map +1 -1
  161. package/build/esm/object/mediaUpload.js +1 -1
  162. package/build/esm/object/mediaUpload.js.map +1 -1
  163. package/build/esm/object/object.test.js +123 -0
  164. package/build/esm/object/object.test.js.map +1 -1
  165. package/build/esm/objectSet/InterfaceObjectSet.test.js +1 -1
  166. package/build/esm/objectSet/InterfaceObjectSet.test.js.map +1 -1
  167. package/build/esm/objectSet/ObjectSet.test.js +7 -6
  168. package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
  169. package/build/esm/objectSet/ObjectSetListenerWebsocket.js +2 -2
  170. package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  171. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +3 -1
  172. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  173. package/build/esm/objectSet/createObjectSet.js +13 -0
  174. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  175. package/build/esm/objectSet/fetchLinksPage.js +57 -0
  176. package/build/esm/objectSet/fetchLinksPage.js.map +1 -0
  177. package/build/esm/objectSet/fetchLinksPage.test.js +102 -0
  178. package/build/esm/objectSet/fetchLinksPage.test.js.map +1 -0
  179. package/build/esm/observable/FunctionPayload.js +2 -0
  180. package/build/esm/observable/FunctionPayload.js.map +1 -0
  181. package/build/esm/observable/ListPayload.js.map +1 -1
  182. package/build/esm/observable/ObjectPayload.js.map +1 -1
  183. package/build/esm/observable/ObservableClient.js +0 -5
  184. package/build/esm/observable/ObservableClient.js.map +1 -1
  185. package/build/esm/observable/internal/Changes.js +3 -0
  186. package/build/esm/observable/internal/Changes.js.map +1 -1
  187. package/build/esm/observable/internal/KnownCacheKey.js.map +1 -1
  188. package/build/esm/observable/internal/ObservableClientImpl.js +20 -0
  189. package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
  190. package/build/esm/observable/internal/Store.js +8 -0
  191. package/build/esm/observable/internal/Store.js.map +1 -1
  192. package/build/esm/observable/internal/Store.test.js +104 -1
  193. package/build/esm/observable/internal/Store.test.js.map +1 -1
  194. package/build/esm/observable/internal/actions/ActionApplication.js +11 -7
  195. package/build/esm/observable/internal/actions/ActionApplication.js.map +1 -1
  196. package/build/esm/observable/internal/actions/OptimisticJob.js +1 -1
  197. package/build/esm/observable/internal/actions/OptimisticJob.js.map +1 -1
  198. package/build/esm/observable/internal/base-list/BaseListQuery.js +1 -1
  199. package/build/esm/observable/internal/base-list/BaseListQuery.js.map +1 -1
  200. package/build/esm/observable/internal/function/FunctionCacheKey.js +26 -0
  201. package/build/esm/observable/internal/function/FunctionCacheKey.js.map +1 -0
  202. package/build/esm/observable/internal/function/FunctionParamsCanonicalizer.js +150 -0
  203. package/build/esm/observable/internal/function/FunctionParamsCanonicalizer.js.map +1 -0
  204. package/build/esm/observable/internal/function/FunctionParamsCanonicalizer.test.js +186 -0
  205. package/build/esm/observable/internal/function/FunctionParamsCanonicalizer.test.js.map +1 -0
  206. package/build/esm/observable/internal/function/FunctionQuery.js +137 -0
  207. package/build/esm/observable/internal/function/FunctionQuery.js.map +1 -0
  208. package/build/esm/observable/internal/function/FunctionQuery.test.js +278 -0
  209. package/build/esm/observable/internal/function/FunctionQuery.test.js.map +1 -0
  210. package/build/esm/observable/internal/function/FunctionsHelper.js +92 -0
  211. package/build/esm/observable/internal/function/FunctionsHelper.js.map +1 -0
  212. package/build/esm/observable/internal/links/SpecificLinkQuery.js +9 -1
  213. package/build/esm/observable/internal/links/SpecificLinkQuery.js.map +1 -1
  214. package/build/esm/observable/internal/list/ListQuery.js +17 -2
  215. package/build/esm/observable/internal/list/ListQuery.js.map +1 -1
  216. package/build/esm/observable/internal/objectset/ObjectSetQuery.js +9 -7
  217. package/build/esm/observable/internal/objectset/ObjectSetQuery.js.map +1 -1
  218. package/build/esm/observable/internal/utils/rdpFieldOperations.js +46 -25
  219. package/build/esm/observable/internal/utils/rdpFieldOperations.js.map +1 -1
  220. package/build/esm/observable/internal/utils/rdpFieldOperations.test.js +172 -0
  221. package/build/esm/observable/internal/utils/rdpFieldOperations.test.js.map +1 -0
  222. package/build/esm/public/unstable-do-not-use.js.map +1 -1
  223. package/build/esm/queries/applyQuery.js +19 -1
  224. package/build/esm/queries/applyQuery.js.map +1 -1
  225. package/build/esm/queries/queries.test.js +14 -2
  226. package/build/esm/queries/queries.test.js.map +1 -1
  227. package/build/esm/util/UserAgent.js +2 -2
  228. package/build/esm/util/UserAgent.js.map +1 -1
  229. package/build/esm/util/toDataValue.js +0 -5
  230. package/build/esm/util/toDataValue.js.map +1 -1
  231. package/build/esm/util/toDataValue.test.js +2 -7
  232. package/build/esm/util/toDataValue.test.js.map +1 -1
  233. package/build/types/Client.d.ts +1 -1
  234. package/build/types/MinimalClientContext.d.ts +1 -1
  235. package/build/types/MinimalClientContext.d.ts.map +1 -1
  236. package/build/types/createClient.d.ts +1 -1
  237. package/build/types/createClient.d.ts.map +1 -1
  238. package/build/types/index.d.ts +1 -1
  239. package/build/types/index.d.ts.map +1 -1
  240. package/build/types/object/AttachmentUpload.d.ts.map +1 -1
  241. package/build/types/object/convertWireToOsdkObjects/InternalSymbols.d.ts +2 -0
  242. package/build/types/object/convertWireToOsdkObjects/InternalSymbols.d.ts.map +1 -1
  243. package/build/types/object/convertWireToOsdkObjects.d.ts +4 -4
  244. package/build/types/object/convertWireToOsdkObjects.d.ts.map +1 -1
  245. package/build/types/object/fetchPage.d.ts.map +1 -1
  246. package/build/types/object/object.test.d.ts.map +1 -1
  247. package/build/types/objectSet/fetchLinksPage.d.ts +1 -0
  248. package/build/types/objectSet/fetchLinksPage.d.ts.map +1 -0
  249. package/build/types/objectSet/fetchLinksPage.test.d.ts +1 -0
  250. package/build/types/objectSet/fetchLinksPage.test.d.ts.map +1 -0
  251. package/build/types/observable/FunctionPayload.d.ts +10 -0
  252. package/build/types/observable/FunctionPayload.d.ts.map +1 -0
  253. package/build/types/observable/ListPayload.d.ts +3 -2
  254. package/build/types/observable/ListPayload.d.ts.map +1 -1
  255. package/build/types/observable/ObjectPayload.d.ts +2 -2
  256. package/build/types/observable/ObjectPayload.d.ts.map +1 -1
  257. package/build/types/observable/ObservableClient.d.ts +61 -7
  258. package/build/types/observable/ObservableClient.d.ts.map +1 -1
  259. package/build/types/observable/internal/Changes.d.ts +5 -3
  260. package/build/types/observable/internal/Changes.d.ts.map +1 -1
  261. package/build/types/observable/internal/KnownCacheKey.d.ts +2 -1
  262. package/build/types/observable/internal/KnownCacheKey.d.ts.map +1 -1
  263. package/build/types/observable/internal/Store.d.ts +5 -1
  264. package/build/types/observable/internal/Store.d.ts.map +1 -1
  265. package/build/types/observable/internal/Store.test.d.ts.map +1 -1
  266. package/build/types/observable/internal/actions/ActionApplication.d.ts.map +1 -1
  267. package/build/types/observable/internal/actions/OptimisticJob.d.ts.map +1 -1
  268. package/build/types/observable/internal/function/FunctionCacheKey.d.ts +17 -0
  269. package/build/types/observable/internal/function/FunctionCacheKey.d.ts.map +1 -0
  270. package/build/types/observable/internal/function/FunctionParamsCanonicalizer.d.ts +16 -0
  271. package/build/types/observable/internal/function/FunctionParamsCanonicalizer.d.ts.map +1 -0
  272. package/build/types/observable/internal/function/FunctionParamsCanonicalizer.test.d.ts +1 -0
  273. package/build/types/observable/internal/function/FunctionParamsCanonicalizer.test.d.ts.map +1 -0
  274. package/build/types/observable/internal/function/FunctionQuery.d.ts +40 -0
  275. package/build/types/observable/internal/function/FunctionQuery.d.ts.map +1 -0
  276. package/build/types/observable/internal/function/FunctionQuery.test.d.ts +1 -0
  277. package/build/types/observable/internal/function/FunctionQuery.test.d.ts.map +1 -0
  278. package/build/types/observable/internal/function/FunctionsHelper.d.ts +25 -0
  279. package/build/types/observable/internal/function/FunctionsHelper.d.ts.map +1 -0
  280. package/build/types/observable/internal/links/SpecificLinkQuery.d.ts.map +1 -1
  281. package/build/types/observable/internal/list/ListQuery.d.ts.map +1 -1
  282. package/build/types/observable/internal/objectset/ObjectSetQuery.d.ts.map +1 -1
  283. package/build/types/observable/internal/utils/rdpFieldOperations.d.ts.map +1 -1
  284. package/build/types/observable/internal/utils/rdpFieldOperations.test.d.ts +1 -0
  285. package/build/types/observable/internal/utils/rdpFieldOperations.test.d.ts.map +1 -0
  286. package/build/types/public/unstable-do-not-use.d.ts +2 -1
  287. package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
  288. package/build/types/queries/applyQuery.d.ts.map +1 -1
  289. package/package.json +10 -10
  290. package/build/cjs/chunk-VDAI3GGL.cjs.map +0 -1
  291. package/build/cjs/chunk-WQL7SQ7H.cjs.map +0 -1
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunkWQL7SQ7H_cjs = require('../chunk-WQL7SQ7H.cjs');
4
- var chunkVDAI3GGL_cjs = require('../chunk-VDAI3GGL.cjs');
5
- var chunk6SCDLAU2_cjs = require('../chunk-6SCDLAU2.cjs');
3
+ var chunk666JN2DO_cjs = require('../chunk-666JN2DO.cjs');
4
+ var chunkRDZ5NKAI_cjs = require('../chunk-RDZ5NKAI.cjs');
5
+ var chunkLDTMSHUZ_cjs = require('../chunk-LDTMSHUZ.cjs');
6
6
  var trie = require('@wry/trie');
7
7
  var deepEqual = require('fast-deep-equal');
8
- var invariant4 = require('tiny-invariant');
8
+ var invariant5 = require('tiny-invariant');
9
9
  var shared_net_fetch = require('@osdk/shared.net.fetch');
10
10
  var rxjs = require('rxjs');
11
11
  var mnemonist = require('mnemonist');
@@ -15,20 +15,20 @@ var shared_net_errors = require('@osdk/shared.net.errors');
15
15
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
16
16
 
17
17
  var deepEqual__default = /*#__PURE__*/_interopDefault(deepEqual);
18
- var invariant4__default = /*#__PURE__*/_interopDefault(invariant4);
18
+ var invariant5__default = /*#__PURE__*/_interopDefault(invariant5);
19
19
  var groupBy__default = /*#__PURE__*/_interopDefault(groupBy);
20
20
 
21
21
  // src/public/unstable-do-not-use.ts
22
- chunk6SCDLAU2_cjs.init_cjs_shims();
22
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
23
23
 
24
24
  // src/observable/computeObjectSetCacheKey.ts
25
- chunk6SCDLAU2_cjs.init_cjs_shims();
25
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
26
26
 
27
27
  // src/observable/internal/OrderByCanonicalizer.ts
28
- chunk6SCDLAU2_cjs.init_cjs_shims();
28
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
29
29
 
30
30
  // src/observable/internal/WeakRefTrie.ts
31
- chunk6SCDLAU2_cjs.init_cjs_shims();
31
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
32
32
  var defaultMakeData = () => /* @__PURE__ */ Object.create(null);
33
33
  var WeakRefTrie = class {
34
34
  #finalizer = new FinalizationRegistry((orderBy) => {
@@ -83,7 +83,7 @@ var OrderByCanonicalizer = class {
83
83
  };
84
84
 
85
85
  // src/observable/internal/WhereClauseCanonicalizer.ts
86
- chunk6SCDLAU2_cjs.init_cjs_shims();
86
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
87
87
  var WhereClauseCanonicalizer = class {
88
88
  /**
89
89
  * This is a shortcut cache for any WhereClause's that we have
@@ -126,8 +126,8 @@ var WhereClauseCanonicalizer = class {
126
126
  #toCanon = (where, set = /* @__PURE__ */ new Set()) => {
127
127
  if ("$and" in where) {
128
128
  if (process.env.NODE_ENV !== "production") {
129
- !Array.isArray(where.$and) ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false, "expected $and to be an array") : invariant4__default.default(false) : void 0;
130
- !(Object.keys(where).length === 1) ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false, "expected only $and to be present") : invariant4__default.default(false) : void 0;
129
+ !Array.isArray(where.$and) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "expected $and to be an array") : invariant5__default.default(false) : void 0;
130
+ !(Object.keys(where).length === 1) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "expected only $and to be present") : invariant5__default.default(false) : void 0;
131
131
  }
132
132
  if (where.$and.length === 0) {
133
133
  return {};
@@ -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", chunkVDAI3GGL_cjs.getWireObjectSet(objectSet)];
156
+ const keyParts = ["objectSet", chunkRDZ5NKAI_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) => chunkVDAI3GGL_cjs.getWireObjectSet(os)));
168
+ keyParts.push("union", options.union.map((os) => chunkRDZ5NKAI_cjs.getWireObjectSet(os)));
169
169
  }
170
170
  if (options.intersect && options.intersect.length > 0) {
171
- keyParts.push("intersect", options.intersect.map((os) => chunkVDAI3GGL_cjs.getWireObjectSet(os)));
171
+ keyParts.push("intersect", options.intersect.map((os) => chunkRDZ5NKAI_cjs.getWireObjectSet(os)));
172
172
  }
173
173
  if (options.subtract && options.subtract.length > 0) {
174
- keyParts.push("subtract", options.subtract.map((os) => chunkVDAI3GGL_cjs.getWireObjectSet(os)));
174
+ keyParts.push("subtract", options.subtract.map((os) => chunkRDZ5NKAI_cjs.getWireObjectSet(os)));
175
175
  }
176
176
  if (options.pivotTo) {
177
177
  keyParts.push("pivotTo", options.pivotTo);
@@ -186,13 +186,13 @@ function computeObjectSetCacheKey(objectSet, options) {
186
186
  }
187
187
 
188
188
  // src/observable/ObservableClient.ts
189
- chunk6SCDLAU2_cjs.init_cjs_shims();
189
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
190
190
 
191
191
  // src/observable/internal/ObservableClientImpl.ts
192
- chunk6SCDLAU2_cjs.init_cjs_shims();
192
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
193
193
 
194
194
  // src/observable/internal/UnsubscribableWrapper.ts
195
- chunk6SCDLAU2_cjs.init_cjs_shims();
195
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
196
196
  var UnsubscribableWrapper = class {
197
197
  #subscription;
198
198
  constructor(subscription) {
@@ -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.$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();
@@ -271,27 +285,33 @@ 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
  }
277
297
  };
278
298
 
279
299
  // src/observable/internal/Store.ts
280
- chunk6SCDLAU2_cjs.init_cjs_shims();
300
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
281
301
 
282
302
  // src/observable/DebugFlags.ts
283
- chunk6SCDLAU2_cjs.init_cjs_shims();
303
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
284
304
  process.env.NODE_ENV !== "production" && false;
285
305
  var DEBUG_CACHE_KEYS = process.env.NODE_ENV !== "production" && false;
286
306
 
287
307
  // src/observable/internal/actions/ActionApplication.ts
288
- chunk6SCDLAU2_cjs.init_cjs_shims();
308
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
289
309
 
290
310
  // src/observable/internal/actions/OptimisticJob.ts
291
- chunk6SCDLAU2_cjs.init_cjs_shims();
311
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
292
312
 
293
313
  // src/observable/internal/OptimisticId.ts
294
- chunk6SCDLAU2_cjs.init_cjs_shims();
314
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
295
315
  function createOptimisticId() {
296
316
  if (process.env.NODE_ENV !== "production") {
297
317
  if (createOptimisticId.counter === void 0) {
@@ -351,12 +371,12 @@ var OptimisticJob = class {
351
371
  return this;
352
372
  },
353
373
  createObject(type, pk, properties) {
354
- const create = store.client[chunkVDAI3GGL_cjs.additionalContext].objectFactory2(store.client[chunkVDAI3GGL_cjs.additionalContext], [{
374
+ const create = store.client[chunkRDZ5NKAI_cjs.additionalContext].objectFactory2(store.client[chunkRDZ5NKAI_cjs.additionalContext], [{
355
375
  $primaryKey: pk,
356
376
  $apiName: type.apiName,
357
377
  $objectType: type.apiName,
358
378
  ...properties
359
- }], void 0, {}).then((objs) => {
379
+ }], void 0, {}, void 0).then((objs) => {
360
380
  return objs[0];
361
381
  });
362
382
  addedObjectPromises.push(create);
@@ -418,7 +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-KIUUJ5NJ.cjs')).default;
441
+ const delay = (await import('../delay-W2TSML2P.cjs')).default;
422
442
  await delay(ACTION_DELAY);
423
443
  logger?.debug("action done, pausing done");
424
444
  }
@@ -433,13 +453,17 @@ var ActionApplication = class {
433
453
  }
434
454
  })();
435
455
  };
436
- #invalidateActionEditResponse = async ({
437
- deletedObjects,
438
- modifiedObjects,
439
- addedObjects,
440
- editedObjectTypes,
441
- type
442
- }) => {
456
+ #invalidateActionEditResponse = async (actionEditResponse) => {
457
+ if (actionEditResponse == null) {
458
+ return;
459
+ }
460
+ const {
461
+ deletedObjects,
462
+ modifiedObjects,
463
+ addedObjects,
464
+ editedObjectTypes,
465
+ type
466
+ } = actionEditResponse;
443
467
  let changes;
444
468
  if (type === "edits") {
445
469
  const promisesToWait = [];
@@ -477,20 +501,20 @@ var ActionApplication = class {
477
501
  };
478
502
 
479
503
  // src/observable/internal/aggregation/AggregationCacheKey.ts
480
- chunk6SCDLAU2_cjs.init_cjs_shims();
504
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
481
505
  var API_NAME_IDX = 1;
482
506
  var WHERE_IDX = 2;
483
507
  var RDP_IDX = 3;
484
508
  var AGGREGATE_IDX = 4;
485
509
 
486
510
  // src/observable/internal/aggregation/AggregationsHelper.ts
487
- chunk6SCDLAU2_cjs.init_cjs_shims();
511
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
488
512
 
489
513
  // src/observable/internal/AbstractHelper.ts
490
- chunk6SCDLAU2_cjs.init_cjs_shims();
514
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
491
515
 
492
516
  // src/observable/internal/QuerySubscription.ts
493
- chunk6SCDLAU2_cjs.init_cjs_shims();
517
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
494
518
  var subscriptionIdCounter = 0;
495
519
  var QuerySubscription = class extends UnsubscribableWrapper {
496
520
  /** @internal */
@@ -549,13 +573,13 @@ var AbstractHelper = class {
549
573
  };
550
574
 
551
575
  // src/observable/internal/aggregation/ObjectAggregationQuery.ts
552
- chunk6SCDLAU2_cjs.init_cjs_shims();
576
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
553
577
 
554
578
  // src/observable/internal/aggregation/AggregationQuery.ts
555
- chunk6SCDLAU2_cjs.init_cjs_shims();
579
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
556
580
 
557
581
  // src/observable/internal/Query.ts
558
- chunk6SCDLAU2_cjs.init_cjs_shims();
582
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
559
583
  var Query = class {
560
584
  retainCount = 0;
561
585
  #connectable;
@@ -569,7 +593,7 @@ var Query = class {
569
593
  this.store = store;
570
594
  this.cacheKeys = store.cacheKeys;
571
595
  this.#subject = observable;
572
- this.logger = logger ?? (process.env.NODE_ENV === "production" ? store.client[chunkVDAI3GGL_cjs.additionalContext].logger : store.client[chunkVDAI3GGL_cjs.additionalContext].logger?.child({}, {
596
+ this.logger = logger ?? (process.env.NODE_ENV === "production" ? store.client[chunkRDZ5NKAI_cjs.additionalContext].logger : store.client[chunkRDZ5NKAI_cjs.additionalContext].logger?.child({}, {
573
597
  msgPrefix: process.env.NODE_ENV !== "production" ? `Query<${cacheKey.type}, ${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>` : "Query"
574
598
  }));
575
599
  }
@@ -727,7 +751,7 @@ var Query = class {
727
751
  // src/observable/internal/aggregation/AggregationQuery.ts
728
752
  var AggregationQuery = class extends Query {
729
753
  constructor(store, subject, cacheKey, opts) {
730
- super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkVDAI3GGL_cjs.additionalContext].logger?.child({}, {
754
+ super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkRDZ5NKAI_cjs.additionalContext].logger?.child({}, {
731
755
  msgPrefix: `AggregationQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
732
756
  }) : void 0);
733
757
  this.apiName = cacheKey.otherKeys[API_NAME_IDX];
@@ -836,7 +860,7 @@ var AggregationsHelper = class extends AbstractHelper {
836
860
  };
837
861
 
838
862
  // src/observable/internal/CacheKey.ts
839
- chunk6SCDLAU2_cjs.init_cjs_shims();
863
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
840
864
  function DEBUG_ONLY__cacheKeyToString(x) {
841
865
  if (process.env.NODE_ENV !== "production") {
842
866
  return `${x.type}CacheKey<${x.otherKeys.map((xx) => JSON.stringify(xx)).join(", ")}>`.replaceAll('"', "'");
@@ -853,10 +877,10 @@ function DEBUG_ONLY__cacheKeysToString(x) {
853
877
  }
854
878
 
855
879
  // src/observable/internal/CacheKeys.ts
856
- chunk6SCDLAU2_cjs.init_cjs_shims();
880
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
857
881
 
858
882
  // src/observable/internal/RefCounts.ts
859
- chunk6SCDLAU2_cjs.init_cjs_shims();
883
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
860
884
  var RefCounts = class {
861
885
  refCounts = /* @__PURE__ */ new Map();
862
886
  // keeps our objects around for some extended duration after they are no longer
@@ -966,7 +990,7 @@ var CacheKeys = class {
966
990
  };
967
991
 
968
992
  // src/observable/internal/Changes.ts
969
- chunk6SCDLAU2_cjs.init_cjs_shims();
993
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
970
994
  var Changes = class {
971
995
  modifiedObjects = new mnemonist.MultiMap();
972
996
  addedObjects = new mnemonist.MultiMap();
@@ -992,6 +1016,9 @@ var Changes = class {
992
1016
  registerObjectSet = (key) => {
993
1017
  this.modified.add(key);
994
1018
  };
1019
+ registerFunction = (key) => {
1020
+ this.modified.add(key);
1021
+ };
995
1022
  isEmpty() {
996
1023
  return this.modifiedObjects.size === 0 && this.addedObjects.size === 0 && this.added.size === 0 && this.modified.size === 0 && this.deleted.size === 0;
997
1024
  }
@@ -1020,11 +1047,329 @@ function multimapHelper(multimap) {
1020
1047
  }));
1021
1048
  }
1022
1049
 
1050
+ // src/observable/internal/function/FunctionsHelper.ts
1051
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1052
+
1053
+ // src/observable/internal/function/FunctionCacheKey.ts
1054
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1055
+ var PARAMS_IDX = 2;
1056
+
1057
+ // src/observable/internal/function/FunctionParamsCanonicalizer.ts
1058
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1059
+ function isPrimitiveValue(value) {
1060
+ if (value == null) return true;
1061
+ const t = typeof value;
1062
+ return t === "string" || t === "number" || t === "boolean" || t === "bigint";
1063
+ }
1064
+ var FunctionParamsCanonicalizer = class {
1065
+ #inputCache = /* @__PURE__ */ new WeakMap();
1066
+ #trie = new trie.Trie(false);
1067
+ #canonicalByMarker = /* @__PURE__ */ new WeakMap();
1068
+ canonicalize(params) {
1069
+ if (params == null) {
1070
+ return void 0;
1071
+ }
1072
+ if (this.#inputCache.has(params)) {
1073
+ return this.#inputCache.get(params);
1074
+ }
1075
+ const seen = /* @__PURE__ */ new WeakSet();
1076
+ const path = [];
1077
+ const canonicalValue = this.#encodeAndBuild(params, path, seen);
1078
+ const marker = this.#trie.lookupArray(path);
1079
+ let canonical = this.#canonicalByMarker.get(marker);
1080
+ if (canonical === void 0) {
1081
+ canonical = canonicalValue;
1082
+ this.#canonicalByMarker.set(marker, canonical);
1083
+ }
1084
+ this.#inputCache.set(params, canonical);
1085
+ return canonical;
1086
+ }
1087
+ #encodeAndBuild(value, path, seen) {
1088
+ if (value == null) {
1089
+ path.push(value);
1090
+ return value;
1091
+ }
1092
+ if (isPrimitiveValue(value)) {
1093
+ path.push(value);
1094
+ return value;
1095
+ }
1096
+ if (seen.has(value)) {
1097
+ throw new Error("Circular reference in function parameters");
1098
+ }
1099
+ seen.add(value);
1100
+ if (value instanceof Date) {
1101
+ const iso = value.toISOString();
1102
+ path.push("$:date", iso);
1103
+ return iso;
1104
+ }
1105
+ if (Array.isArray(value)) {
1106
+ path.push("$:array");
1107
+ const arr = value.map((item) => this.#encodeAndBuild(item, path, seen));
1108
+ path.push("$:array_end");
1109
+ return arr;
1110
+ }
1111
+ if (value instanceof Set) {
1112
+ path.push("$:set");
1113
+ const sorted = this.#sortSetValues(Array.from(value));
1114
+ const arr = sorted.map((item) => this.#encodeAndBuild(item, path, seen));
1115
+ path.push("$:set_end");
1116
+ return arr;
1117
+ }
1118
+ if (value instanceof Map) {
1119
+ path.push("$:map");
1120
+ const sorted = this.#sortMapEntries(Array.from(value.entries()));
1121
+ const arr = sorted.map(([k, v]) => [this.#encodeAndBuild(k, path, seen), this.#encodeAndBuild(v, path, seen)]);
1122
+ path.push("$:map_end");
1123
+ return arr;
1124
+ }
1125
+ if (chunk666JN2DO_cjs.isObjectSpecifiersObject(value)) {
1126
+ path.push("$:osdk", value.$apiName, value.$primaryKey);
1127
+ return {
1128
+ $apiName: value.$apiName,
1129
+ $primaryKey: value.$primaryKey
1130
+ };
1131
+ }
1132
+ if (chunkRDZ5NKAI_cjs.isObjectSet(value)) {
1133
+ const wire = chunkRDZ5NKAI_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[chunkRDZ5NKAI_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 chunk666JN2DO_cjs.applyQuery(this.store.client[chunkRDZ5NKAI_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
- chunk6SCDLAU2_cjs.init_cjs_shims();
1369
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1025
1370
 
1026
1371
  // src/observable/internal/Canonicalizer.ts
1027
- chunk6SCDLAU2_cjs.init_cjs_shims();
1372
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1028
1373
  var CachingCanonicalizer = class {
1029
1374
  /**
1030
1375
  * Cache for input object identity.
@@ -1070,10 +1415,10 @@ var IntersectCanonicalizer = class extends CachingCanonicalizer {
1070
1415
  };
1071
1416
 
1072
1417
  // src/observable/internal/Layers.ts
1073
- chunk6SCDLAU2_cjs.init_cjs_shims();
1418
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1074
1419
 
1075
1420
  // src/observable/internal/createInitEntry.ts
1076
- chunk6SCDLAU2_cjs.init_cjs_shims();
1421
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1077
1422
  function createInitEntry(cacheKey) {
1078
1423
  return {
1079
1424
  cacheKey,
@@ -1084,10 +1429,10 @@ function createInitEntry(cacheKey) {
1084
1429
  }
1085
1430
 
1086
1431
  // src/observable/internal/Layer.ts
1087
- chunk6SCDLAU2_cjs.init_cjs_shims();
1432
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1088
1433
 
1089
1434
  // src/observable/internal/WeakMapWithEntries.ts
1090
- chunk6SCDLAU2_cjs.init_cjs_shims();
1435
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1091
1436
  var WeakMapWithEntries = class {
1092
1437
  #map = /* @__PURE__ */ new WeakMap();
1093
1438
  #list = [];
@@ -1236,7 +1581,7 @@ var Layer = class _Layer {
1236
1581
  };
1237
1582
 
1238
1583
  // src/observable/internal/Subjects.ts
1239
- chunk6SCDLAU2_cjs.init_cjs_shims();
1584
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1240
1585
  var Subjects = class {
1241
1586
  #layers;
1242
1587
  // we can use a regular Map here because the refCounting will
@@ -1274,7 +1619,7 @@ var Subjects = class {
1274
1619
  };
1275
1620
 
1276
1621
  // src/observable/internal/tombstone.ts
1277
- chunk6SCDLAU2_cjs.init_cjs_shims();
1622
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1278
1623
  var tombstone = void 0;
1279
1624
 
1280
1625
  // src/observable/internal/Layers.ts
@@ -1301,7 +1646,7 @@ var Layers = class {
1301
1646
  return this.#truthLayer;
1302
1647
  }
1303
1648
  remove(layerId) {
1304
- !(layerId != null) ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false, "undefined is the reserved layerId for the truth layer") : invariant4__default.default(false) : void 0;
1649
+ !(layerId != null) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "undefined is the reserved layerId for the truth layer") : invariant5__default.default(false) : void 0;
1305
1650
  let currentLayer = this.#topLayer;
1306
1651
  const cacheKeys = /* @__PURE__ */ new Map();
1307
1652
  while (currentLayer != null && currentLayer.parentLayer != null) {
@@ -1329,7 +1674,7 @@ var Layers = class {
1329
1674
  optimisticId,
1330
1675
  changes
1331
1676
  }, batchFn) {
1332
- !(optimisticId === void 0 || !!optimisticId) ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false, "optimistic must be undefined or not falsy") : invariant4__default.default(false) : void 0;
1677
+ !(optimisticId === void 0 || !!optimisticId) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "optimistic must be undefined or not falsy") : invariant5__default.default(false) : void 0;
1333
1678
  const batchContext = this.#createBatchContext({
1334
1679
  optimisticId,
1335
1680
  changes
@@ -1395,22 +1740,22 @@ var Layers = class {
1395
1740
  };
1396
1741
 
1397
1742
  // src/observable/internal/links/LinksHelper.ts
1398
- chunk6SCDLAU2_cjs.init_cjs_shims();
1743
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1399
1744
 
1400
1745
  // src/observable/internal/links/SpecificLinkQuery.ts
1401
- chunk6SCDLAU2_cjs.init_cjs_shims();
1746
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1402
1747
 
1403
1748
  // src/observable/internal/base-list/BaseListQuery.ts
1404
- chunk6SCDLAU2_cjs.init_cjs_shims();
1749
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1405
1750
 
1406
1751
  // src/observable/internal/isObjectInstance.ts
1407
- chunk6SCDLAU2_cjs.init_cjs_shims();
1752
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1408
1753
  function isObjectInstance(item) {
1409
1754
  return item != null && typeof item === "object" && "$primaryKey" in item;
1410
1755
  }
1411
1756
 
1412
1757
  // src/observable/internal/list/ListCacheKey.ts
1413
- chunk6SCDLAU2_cjs.init_cjs_shims();
1758
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1414
1759
  var API_NAME_IDX2 = 1;
1415
1760
  var WHERE_IDX2 = 2;
1416
1761
  var ORDER_BY_IDX = 3;
@@ -1419,7 +1764,7 @@ var INTERSECT_IDX = 5;
1419
1764
  var PIVOT_IDX = 6;
1420
1765
 
1421
1766
  // src/observable/internal/sorting/SortingStrategy.ts
1422
- chunk6SCDLAU2_cjs.init_cjs_shims();
1767
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1423
1768
  var NoOpSortingStrategy = class {
1424
1769
  sortCacheKeys(objectCacheKeys, _batch) {
1425
1770
  return objectCacheKeys;
@@ -1467,7 +1812,7 @@ function createOrderBySortFns(orderBy) {
1467
1812
  }
1468
1813
 
1469
1814
  // src/observable/internal/base-list/createCollectionConnectable.ts
1470
- chunk6SCDLAU2_cjs.init_cjs_shims();
1815
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1471
1816
  function createCollectionConnectable(subject, subjects, createPayload) {
1472
1817
  return rxjs.connectable(subject.pipe(rxjs.switchMap((listEntry) => {
1473
1818
  const resolvedData = listEntry?.value?.data == null || listEntry.value.data.length === 0 ? rxjs.of([]) : rxjs.combineLatest(listEntry.value.data.map((cacheKey) => subjects.get(cacheKey).pipe(rxjs.map((objectEntry) => objectEntry?.value), rxjs.distinctUntilChanged())));
@@ -1489,7 +1834,7 @@ function createCollectionConnectable(subject, subjects, createPayload) {
1489
1834
  }
1490
1835
 
1491
1836
  // src/observable/internal/base-list/removeDuplicates.ts
1492
- chunk6SCDLAU2_cjs.init_cjs_shims();
1837
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
1493
1838
  function removeDuplicates(objectCacheKeys, batch) {
1494
1839
  const visited = /* @__PURE__ */ new Set();
1495
1840
  return objectCacheKeys.filter((key) => {
@@ -1690,7 +2035,7 @@ var BaseListQuery = class extends Query {
1690
2035
  this.setStatus("loading", batch);
1691
2036
  });
1692
2037
  this.pendingFetch = this.fetchPageAndUpdate("loaded", this.abortController?.signal).then(() => void 0).finally(() => {
1693
- this.pendingPageFetch = void 0;
2038
+ this.pendingFetch = void 0;
1694
2039
  });
1695
2040
  return this.pendingFetch;
1696
2041
  };
@@ -1978,11 +2323,10 @@ var SpecificLinkQuery = class extends BaseListQuery {
1978
2323
  batch.changes.modified.add(this.cacheKey);
1979
2324
  }
1980
2325
  constructor(store, subject, cacheKey, opts) {
1981
- super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkVDAI3GGL_cjs.additionalContext].logger?.child({}, {
2326
+ super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkRDZ5NKAI_cjs.additionalContext].logger?.child({}, {
1982
2327
  msgPrefix: `SpecificLinkQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
1983
2328
  }) : void 0);
1984
2329
  [this.#sourceApiName, this.#sourcePk, this.#linkName, this.#whereClause, this.#orderBy] = cacheKey.otherKeys;
1985
- this.sortingStrategy = new OrderBySortingStrategy(this.#linkName, this.#orderBy);
1986
2330
  }
1987
2331
  // _fetchAndStore is now implemented in BaseCollectionQuery
1988
2332
  /**
@@ -1995,7 +2339,14 @@ var SpecificLinkQuery = class extends BaseListQuery {
1995
2339
  type: "object",
1996
2340
  apiName: this.#sourceApiName
1997
2341
  };
1998
- const sourceMetadata = await client[chunkVDAI3GGL_cjs.additionalContext].ontologyProvider.getObjectDefinition(this.#sourceApiName);
2342
+ const sourceMetadata = await client[chunkRDZ5NKAI_cjs.additionalContext].ontologyProvider.getObjectDefinition(this.#sourceApiName);
2343
+ if (this.#orderBy && Object.keys(this.#orderBy).length > 0) {
2344
+ const linkDef = sourceMetadata.links?.[this.#linkName];
2345
+ if (!linkDef?.targetType) {
2346
+ throw new Error(`Missing link definition or targetType for link '${this.#linkName}' on object type '${this.#sourceApiName}'`);
2347
+ }
2348
+ this.sortingStrategy = new OrderBySortingStrategy(linkDef.targetType, this.#orderBy);
2349
+ }
1999
2350
  const sourceQuery = client(sourceObjectDef).where({
2000
2351
  [sourceMetadata.primaryKeyApiName]: this.#sourcePk
2001
2352
  });
@@ -2059,7 +2410,7 @@ var SpecificLinkQuery = class extends BaseListQuery {
2059
2410
  return this.revalidate(true);
2060
2411
  } else {
2061
2412
  return (async () => {
2062
- const sourceMetadata = await this.store.client[chunkVDAI3GGL_cjs.additionalContext].ontologyProvider.getObjectDefinition(this.#sourceApiName);
2413
+ const sourceMetadata = await this.store.client[chunkRDZ5NKAI_cjs.additionalContext].ontologyProvider.getObjectDefinition(this.#sourceApiName);
2063
2414
  const linkDef = sourceMetadata.links?.[this.#linkName];
2064
2415
  if (!linkDef || linkDef.targetType !== objectType) return;
2065
2416
  const promise = this.revalidate(true);
@@ -2091,19 +2442,175 @@ var LinksHelper = class extends AbstractHelper {
2091
2442
  };
2092
2443
 
2093
2444
  // src/observable/internal/list/ListsHelper.ts
2094
- chunk6SCDLAU2_cjs.init_cjs_shims();
2445
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
2095
2446
 
2096
2447
  // src/observable/internal/list/InterfaceListQuery.ts
2097
- chunk6SCDLAU2_cjs.init_cjs_shims();
2448
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
2098
2449
 
2099
2450
  // src/observable/internal/list/ListQuery.ts
2100
- chunk6SCDLAU2_cjs.init_cjs_shims();
2451
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
2452
+
2453
+ // src/observable/internal/getObjectTypesThatInvalidate.ts
2454
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
2455
+ async function getObjectTypesThatInvalidate(mc, objectSet) {
2456
+ const counts = {};
2457
+ const resultType = await calcObjectSet(objectSet, {
2458
+ counts,
2459
+ methodInput: void 0,
2460
+ ontologyProvider: mc.ontologyProvider
2461
+ });
2462
+ const tweaked = {
2463
+ ...counts,
2464
+ [resultType.apiName]: counts[resultType.apiName] - 1
2465
+ };
2466
+ return {
2467
+ resultType,
2468
+ counts,
2469
+ invalidationSet: new Set(Object.entries(tweaked).filter(([, v]) => v > 0).map(([k]) => k))
2470
+ };
2471
+ }
2472
+ async function calcObjectSet(os, ctx) {
2473
+ const op = ctx.ontologyProvider;
2474
+ async function bumpObject(apiName) {
2475
+ const objectType = await op.getObjectDefinition(apiName);
2476
+ ctx.counts[apiName] = (ctx.counts[apiName] ?? 0) + 1;
2477
+ return objectType;
2478
+ }
2479
+ async function bumpInterface(apiName) {
2480
+ const interfaceDef = await op.getInterfaceDefinition(apiName);
2481
+ for (const s of interfaceDef.implementedBy ?? []) {
2482
+ ctx.counts[s] = (ctx.counts[s] ?? 0) + 1;
2483
+ }
2484
+ return interfaceDef;
2485
+ }
2486
+ switch (os.type) {
2487
+ case "base":
2488
+ return await bumpObject(os.objectType);
2489
+ case "interfaceBase":
2490
+ return await bumpInterface(os.interfaceType);
2491
+ case "interfaceLinkSearchAround": {
2492
+ const srcDef = await calcObjectSet(os.objectSet, ctx);
2493
+ !(srcDef.type === "interface") ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false) : invariant5__default.default(false) : void 0;
2494
+ for (const [k, v] of Object.entries(srcDef.links)) {
2495
+ if (k === os.interfaceLink) {
2496
+ if (v.targetType === "object") {
2497
+ return await bumpObject(v.targetType);
2498
+ }
2499
+ return await bumpInterface(v.targetType);
2500
+ }
2501
+ }
2502
+ throw new Error(`Could not find link ${os.interfaceLink} in object set ${JSON.stringify(os.objectSet)}`);
2503
+ }
2504
+ case "searchAround": {
2505
+ const contextDef = await calcObjectSet(os.objectSet, ctx);
2506
+ !(contextDef.type === "object") ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false) : invariant5__default.default(false) : void 0;
2507
+ for (const [k, v] of Object.entries(contextDef.links)) {
2508
+ if (k === os.link) {
2509
+ return await bumpObject(v.targetType);
2510
+ }
2511
+ }
2512
+ throw new Error(`Could not find link ${os.link} in object set ${JSON.stringify(os.objectSet)}`);
2513
+ }
2514
+ case "filter":
2515
+ return calcObjectSet(os.objectSet, ctx);
2516
+ case "union":
2517
+ case "subtract":
2518
+ case "intersect":
2519
+ const returnTypes = await Promise.all(os.objectSets.map(async (os2) => {
2520
+ const counts = {};
2521
+ const r = await calcObjectSet(os2, {
2522
+ ...ctx,
2523
+ counts
2524
+ });
2525
+ return {
2526
+ r,
2527
+ counts
2528
+ };
2529
+ }));
2530
+ for (const {
2531
+ counts
2532
+ } of returnTypes) {
2533
+ for (const [k, v] of Object.entries(counts)) {
2534
+ ctx.counts[k] = Math.max(ctx.counts[k] ?? 0, v);
2535
+ }
2536
+ }
2537
+ if (returnTypes.length === 0) {
2538
+ throw new Error(`Could not find any context types for set operation`);
2539
+ }
2540
+ const allMatch = returnTypes.every(({
2541
+ r
2542
+ }) => r.apiName === returnTypes[0].r.apiName);
2543
+ if (!allMatch) {
2544
+ throw new Error(`Incompatible context types found for set operation`);
2545
+ }
2546
+ return returnTypes[0].r;
2547
+ case "withProperties":
2548
+ for (const [, v] of Object.entries(os.derivedProperties)) {
2549
+ await calcRdp(v, {
2550
+ ...ctx,
2551
+ methodInput: os.objectSet
2552
+ });
2553
+ }
2554
+ return calcObjectSet(os.objectSet, {
2555
+ ...ctx,
2556
+ methodInput: os.objectSet
2557
+ });
2558
+ // used by rdps
2559
+ case "methodInput":
2560
+ !ctx.methodInput ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "methodInput must be provided") : invariant5__default.default(false) : void 0;
2561
+ return await calcObjectSet(ctx.methodInput, {
2562
+ ...ctx,
2563
+ counts: {}
2564
+ });
2565
+ case "asType":
2566
+ // we don't currently support this anywhere.
2567
+ case "asBaseObjectTypes":
2568
+ // We don't currently support this because it could return multiple object types conceptually
2569
+ // internally, we actually use it this way but we shouldn't be finding that object sets.
2570
+ case "reference":
2571
+ // reference is particularly problematic because we cannot answer the question about
2572
+ // which types without loading the object set definition (and it can change).
2573
+ case "static":
2574
+ throw new Error(`Unsupported ObjectSet type ${os.type}`);
2575
+ case "nearestNeighbors":
2576
+ return calcObjectSet(os.objectSet, ctx);
2577
+ default:
2578
+ throw new Error(`Unhandled ObjectSet type ${os.type}`);
2579
+ }
2580
+ }
2581
+ async function calcRdp(dpd, ctx) {
2582
+ switch (dpd.type) {
2583
+ // Operates on object sets
2584
+ case "selection":
2585
+ return await calcObjectSet(dpd.objectSet, ctx);
2586
+ // Operates on single property
2587
+ case "negate":
2588
+ case "extract":
2589
+ case "absoluteValue":
2590
+ return await calcRdp(dpd.property, ctx);
2591
+ // Operates on many (unordered) properties
2592
+ case "least":
2593
+ case "greatest":
2594
+ case "add":
2595
+ case "multiply":
2596
+ return await Promise.all(dpd.properties.map((innerDpd) => calcRdp(innerDpd, ctx)));
2597
+ // Operates on 2 ordered properties
2598
+ case "subtract":
2599
+ case "divide":
2600
+ return await Promise.all([calcRdp(dpd.left, ctx), calcRdp(dpd.right, ctx)]);
2601
+ // Operates on a single property name
2602
+ case "property":
2603
+ return;
2604
+ default:
2605
+ throw new Error(`Unhandled DerivedPropertyDefinition type ${dpd.type}`);
2606
+ }
2607
+ }
2101
2608
 
2102
2609
  // src/observable/internal/objectMatchesWhereClause.ts
2103
- chunk6SCDLAU2_cjs.init_cjs_shims();
2610
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
2104
2611
 
2105
2612
  // src/observable/internal/evaluateFilter.ts
2106
- chunk6SCDLAU2_cjs.init_cjs_shims();
2613
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
2107
2614
  function evaluateFilter(f, realValue, expected, strict) {
2108
2615
  switch (f) {
2109
2616
  case "$eq":
@@ -2133,7 +2640,7 @@ function evaluateFilter(f, realValue, expected, strict) {
2133
2640
  return !strict;
2134
2641
  default:
2135
2642
  if (process.env.NODE_ENV !== "production") {
2136
- process.env.NODE_ENV !== "production" ? invariant4__default.default(false, `Unknown where filter ${f}`) : invariant4__default.default(false) ;
2643
+ process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `Unknown where filter ${f}`) : invariant5__default.default(false) ;
2137
2644
  }
2138
2645
  return !strict;
2139
2646
  }
@@ -2143,8 +2650,8 @@ function evaluateFilter(f, realValue, expected, strict) {
2143
2650
  function is$and(whereClause) {
2144
2651
  if (process.env.NODE_ENV !== "production") {
2145
2652
  if ("$and" in whereClause) {
2146
- !Array.isArray(whereClause.$and) ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false, "expected $and to be an array") : invariant4__default.default(false) : void 0;
2147
- !(Object.keys(whereClause).length === 1) ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false, "expected only $and to be present") : invariant4__default.default(false) : void 0;
2653
+ !Array.isArray(whereClause.$and) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "expected $and to be an array") : invariant5__default.default(false) : void 0;
2654
+ !(Object.keys(whereClause).length === 1) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "expected only $and to be present") : invariant5__default.default(false) : void 0;
2148
2655
  }
2149
2656
  }
2150
2657
  return "$and" in whereClause;
@@ -2152,8 +2659,8 @@ function is$and(whereClause) {
2152
2659
  function is$or(whereClause) {
2153
2660
  if (process.env.NODE_ENV !== "production") {
2154
2661
  if ("$or" in whereClause) {
2155
- !Array.isArray(whereClause.$or) ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false, "expected $or to be an array") : invariant4__default.default(false) : void 0;
2156
- !(Object.keys(whereClause).length === 1) ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false, "expected only $or to be present") : invariant4__default.default(false) : void 0;
2662
+ !Array.isArray(whereClause.$or) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "expected $or to be an array") : invariant5__default.default(false) : void 0;
2663
+ !(Object.keys(whereClause).length === 1) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "expected only $or to be present") : invariant5__default.default(false) : void 0;
2157
2664
  }
2158
2665
  }
2159
2666
  return "$or" in whereClause;
@@ -2161,7 +2668,7 @@ function is$or(whereClause) {
2161
2668
  function is$not(whereClause) {
2162
2669
  if (process.env.NODE_ENV !== "production") {
2163
2670
  if ("$not" in whereClause) {
2164
- !(Object.keys(whereClause).length === 1) ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false, "expected only $not to be present") : invariant4__default.default(false) : void 0;
2671
+ !(Object.keys(whereClause).length === 1) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "expected only $not to be present") : invariant5__default.default(false) : void 0;
2165
2672
  }
2166
2673
  }
2167
2674
  return "$not" in whereClause;
@@ -2211,7 +2718,7 @@ var ListQuery = class extends BaseListQuery {
2211
2718
  batch.changes.registerList(this.cacheKey);
2212
2719
  }
2213
2720
  constructor(store, subject, apiName, cacheKey, opts) {
2214
- super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkVDAI3GGL_cjs.additionalContext].logger?.child({}, {
2721
+ super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkRDZ5NKAI_cjs.additionalContext].logger?.child({}, {
2215
2722
  msgPrefix: `ListQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
2216
2723
  }) : void 0);
2217
2724
  this.apiName = apiName;
@@ -2220,7 +2727,9 @@ var ListQuery = class extends BaseListQuery {
2220
2727
  this.#intersectWith = cacheKey.otherKeys[INTERSECT_IDX];
2221
2728
  this.#pivotInfo = cacheKey.otherKeys[PIVOT_IDX];
2222
2729
  this.#objectSet = this.createObjectSet(store);
2223
- this.sortingStrategy = new OrderBySortingStrategy(this.apiName, this.#orderBy);
2730
+ if (!this.#pivotInfo) {
2731
+ this.sortingStrategy = new OrderBySortingStrategy(this.apiName, this.#orderBy);
2732
+ }
2224
2733
  if (opts.autoFetchMore === true) {
2225
2734
  this.minResultsToLoad = Number.MAX_SAFE_INTEGER;
2226
2735
  } else if (typeof opts.autoFetchMore === "number") {
@@ -2246,6 +2755,13 @@ var ListQuery = class extends BaseListQuery {
2246
2755
  * Fetches a page of data
2247
2756
  */
2248
2757
  async fetchPageData(signal) {
2758
+ if (Object.keys(this.#orderBy).length > 0 && !(this.sortingStrategy instanceof OrderBySortingStrategy)) {
2759
+ const wireObjectSet = chunkRDZ5NKAI_cjs.getWireObjectSet(this.#objectSet);
2760
+ const {
2761
+ resultType
2762
+ } = await getObjectTypesThatInvalidate(this.store.client[chunkRDZ5NKAI_cjs.additionalContext], wireObjectSet);
2763
+ this.sortingStrategy = new OrderBySortingStrategy(resultType.apiName, this.#orderBy);
2764
+ }
2249
2765
  const resp = await this.#objectSet.fetchPage({
2250
2766
  $nextPageToken: this.nextPageToken,
2251
2767
  $pageSize: this.options.pageSize,
@@ -2424,7 +2940,7 @@ var ListQuery = class extends BaseListQuery {
2424
2940
  }) : this.logger;
2425
2941
  this.store.batch({}, (batch) => {
2426
2942
  const existing = batch.read(this.cacheKey);
2427
- !existing ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false, "the truth value for our list should exist as we already subscribed") : invariant4__default.default(false) : void 0;
2943
+ !existing ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "the truth value for our list should exist as we already subscribed") : invariant5__default.default(false) : void 0;
2428
2944
  if (existing.status === "loaded") {
2429
2945
  const objectCacheKey = this.getObjectCacheKey(objOrIface);
2430
2946
  const newObjects = existing.value?.data.filter((o) => o !== objectCacheKey);
@@ -2491,7 +3007,7 @@ var InterfaceListQuery = class extends ListQuery {
2491
3007
  }
2492
3008
  extractRelevantObjects(changes) {
2493
3009
  const matchesApiName = ([, object]) => {
2494
- return this.apiName in object[chunkWQL7SQ7H_cjs.ObjectDefRef].interfaceMap;
3010
+ return this.apiName in object[chunk666JN2DO_cjs.ObjectDefRef].interfaceMap;
2495
3011
  };
2496
3012
  const added = Array.from(changes.addedObjects).filter(matchesApiName).map(([, object]) => object.$as(this.apiName));
2497
3013
  const modified = Array.from(changes.modifiedObjects).filter(matchesApiName).map(([, object]) => object.$as(this.apiName));
@@ -2512,7 +3028,7 @@ var InterfaceListQuery = class extends ListQuery {
2512
3028
  async function reloadDataAsFullObjects(client, data) {
2513
3029
  const groups = groupBy__default.default(data, (x) => x.$objectType);
2514
3030
  const objectTypeToPrimaryKeyToObject = Object.fromEntries(await Promise.all(Object.entries(groups).map(async ([apiName, objects]) => {
2515
- const objectDef = objects[0][chunkWQL7SQ7H_cjs.UnderlyingOsdkObject][chunkWQL7SQ7H_cjs.ObjectDefRef];
3031
+ const objectDef = objects[0][chunk666JN2DO_cjs.UnderlyingOsdkObject][chunk666JN2DO_cjs.ObjectDefRef];
2516
3032
  const where = {
2517
3033
  [objectDef.primaryKeyApiName]: {
2518
3034
  $in: objects.map((x) => x.$primaryKey)
@@ -2522,14 +3038,14 @@ async function reloadDataAsFullObjects(client, data) {
2522
3038
  return [apiName, Object.fromEntries(result.data.map((x) => [x.$primaryKey, x]))];
2523
3039
  })));
2524
3040
  data = data.map((obj) => {
2525
- !objectTypeToPrimaryKeyToObject[obj.$objectType][obj.$primaryKey] ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false, `Could not find object ${obj.$objectType} ${obj.$primaryKey}`) : invariant4__default.default(false) : void 0;
3041
+ !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;
2526
3042
  return objectTypeToPrimaryKeyToObject[obj.$objectType][obj.$primaryKey];
2527
3043
  });
2528
3044
  return data;
2529
3045
  }
2530
3046
 
2531
3047
  // src/observable/internal/list/ObjectListQuery.ts
2532
- chunk6SCDLAU2_cjs.init_cjs_shims();
3048
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
2533
3049
  var ObjectListQuery = class extends ListQuery {
2534
3050
  createObjectSet(store) {
2535
3051
  const rdpConfig = this.cacheKey.otherKeys[RDP_IDX2];
@@ -2654,40 +3170,39 @@ var ListsHelper = class extends AbstractHelper {
2654
3170
  };
2655
3171
 
2656
3172
  // src/observable/internal/object/ObjectCacheKey.ts
2657
- chunk6SCDLAU2_cjs.init_cjs_shims();
3173
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
2658
3174
  var API_NAME_IDX3 = 0;
2659
3175
  var RDP_CONFIG_IDX = 2;
2660
3176
 
2661
3177
  // src/observable/internal/object/ObjectCacheKeyRegistry.ts
2662
- chunk6SCDLAU2_cjs.init_cjs_shims();
3178
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
2663
3179
 
2664
3180
  // src/observable/internal/utils/rdpFieldOperations.ts
2665
- chunk6SCDLAU2_cjs.init_cjs_shims();
3181
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
2666
3182
  function extractRdpFieldNames(rdpConfig) {
2667
3183
  if (!rdpConfig) {
2668
3184
  return /* @__PURE__ */ new Set();
2669
3185
  }
2670
3186
  return new Set(Object.keys(rdpConfig));
2671
3187
  }
2672
- function deleteField(obj, field) {
2673
- const mutableObj = obj;
2674
- delete mutableObj[field];
2675
- }
2676
- function setField(obj, field, value) {
2677
- const mutableObj = obj;
2678
- mutableObj[field] = value;
2679
- }
2680
3188
  function stripRdpFields(value, rdpFields) {
2681
3189
  if (rdpFields.size === 0) {
2682
3190
  return value;
2683
3191
  }
2684
- const result = {
2685
- ...value
3192
+ const underlying = value[chunk666JN2DO_cjs.UnderlyingOsdkObject];
3193
+ const objectDef = value[chunk666JN2DO_cjs.ObjectDefRef];
3194
+ const newProps = {
3195
+ $apiName: underlying.$apiName,
3196
+ $objectType: underlying.$objectType,
3197
+ $primaryKey: underlying.$primaryKey,
3198
+ $title: underlying.$title
2686
3199
  };
2687
- for (const field of rdpFields) {
2688
- deleteField(result, field);
3200
+ for (const key of Object.keys(underlying)) {
3201
+ if (key in objectDef.properties && !rdpFields.has(key)) {
3202
+ newProps[key] = underlying[key];
3203
+ }
2689
3204
  }
2690
- return result;
3205
+ return chunk666JN2DO_cjs.createOsdkObject(value[chunk666JN2DO_cjs.ClientRef], objectDef, newProps);
2691
3206
  }
2692
3207
  function isSuperset(superset, subset) {
2693
3208
  for (const field of subset) {
@@ -2697,17 +3212,24 @@ function isSuperset(superset, subset) {
2697
3212
  }
2698
3213
  return true;
2699
3214
  }
2700
- function filterToFields(value, allowedFields) {
2701
- const result = {
2702
- ...value
3215
+ function filterToRdpFields(value, rdpFieldsToKeep, sourceRdpFields) {
3216
+ const underlying = value[chunk666JN2DO_cjs.UnderlyingOsdkObject];
3217
+ const objectDef = value[chunk666JN2DO_cjs.ObjectDefRef];
3218
+ const newProps = {
3219
+ $apiName: underlying.$apiName,
3220
+ $objectType: underlying.$objectType,
3221
+ $primaryKey: underlying.$primaryKey,
3222
+ $title: underlying.$title
2703
3223
  };
2704
- const allFields = Object.keys(result);
2705
- for (const field of allFields) {
2706
- if (!allowedFields.has(field)) {
2707
- deleteField(result, field);
3224
+ for (const key of Object.keys(underlying)) {
3225
+ if (key in objectDef.properties) {
3226
+ const isRdpField = sourceRdpFields.has(key);
3227
+ if (!isRdpField || rdpFieldsToKeep.has(key)) {
3228
+ newProps[key] = underlying[key];
3229
+ }
2708
3230
  }
2709
3231
  }
2710
- return result;
3232
+ return chunk666JN2DO_cjs.createOsdkObject(value[chunk666JN2DO_cjs.ClientRef], objectDef, newProps);
2711
3233
  }
2712
3234
  function mergeObjectFields(sourceValue, sourceRdpFields, targetRdpFields, targetCurrentValue) {
2713
3235
  if (targetRdpFields.size === 0) {
@@ -2717,20 +3239,30 @@ function mergeObjectFields(sourceValue, sourceRdpFields, targetRdpFields, target
2717
3239
  if (sourceRdpFields.size === targetRdpFields.size) {
2718
3240
  return sourceValue;
2719
3241
  }
2720
- return filterToFields(sourceValue, targetRdpFields);
3242
+ return filterToRdpFields(sourceValue, targetRdpFields, sourceRdpFields);
2721
3243
  }
2722
- const merged = {
2723
- ...sourceValue
3244
+ const sourceUnderlying = sourceValue[chunk666JN2DO_cjs.UnderlyingOsdkObject];
3245
+ const objectDef = sourceValue[chunk666JN2DO_cjs.ObjectDefRef];
3246
+ const newProps = {
3247
+ $apiName: sourceUnderlying.$apiName,
3248
+ $objectType: sourceUnderlying.$objectType,
3249
+ $primaryKey: sourceUnderlying.$primaryKey,
3250
+ $title: sourceUnderlying.$title
2724
3251
  };
3252
+ for (const key of Object.keys(sourceUnderlying)) {
3253
+ if (key in objectDef.properties && (!sourceRdpFields.has(key) || targetRdpFields.has(key))) {
3254
+ newProps[key] = sourceUnderlying[key];
3255
+ }
3256
+ }
2725
3257
  if (targetCurrentValue) {
2726
- const targetAsRecord = targetCurrentValue;
3258
+ const targetUnderlying = targetCurrentValue[chunk666JN2DO_cjs.UnderlyingOsdkObject];
2727
3259
  for (const field of targetRdpFields) {
2728
- if (!sourceRdpFields.has(field) && field in targetCurrentValue) {
2729
- setField(merged, field, targetAsRecord[field]);
3260
+ if (!sourceRdpFields.has(field) && field in targetUnderlying) {
3261
+ newProps[field] = targetUnderlying[field];
2730
3262
  }
2731
3263
  }
2732
3264
  }
2733
- return merged;
3265
+ return chunk666JN2DO_cjs.createOsdkObject(sourceValue[chunk666JN2DO_cjs.ClientRef], objectDef, newProps);
2734
3266
  }
2735
3267
 
2736
3268
  // src/observable/internal/object/ObjectCacheKeyRegistry.ts
@@ -2830,16 +3362,16 @@ var ObjectCacheKeyRegistry = class {
2830
3362
  };
2831
3363
 
2832
3364
  // src/observable/internal/object/ObjectsHelper.ts
2833
- chunk6SCDLAU2_cjs.init_cjs_shims();
3365
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
2834
3366
 
2835
3367
  // src/observable/internal/object/ObjectQuery.ts
2836
- chunk6SCDLAU2_cjs.init_cjs_shims();
3368
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
2837
3369
 
2838
3370
  // src/observable/internal/BulkObjectLoader.ts
2839
- chunk6SCDLAU2_cjs.init_cjs_shims();
3371
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
2840
3372
 
2841
3373
  // ../../node_modules/.pnpm/p-defer@4.0.1/node_modules/p-defer/index.js
2842
- chunk6SCDLAU2_cjs.init_cjs_shims();
3374
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
2843
3375
  function pDefer() {
2844
3376
  const deferred = {};
2845
3377
  deferred.promise = new Promise((resolve, reject) => {
@@ -2865,7 +3397,7 @@ var BulkObjectLoader = class {
2865
3397
  #maxEntries;
2866
3398
  constructor(client, maxWait = 25, maxEntries = 100) {
2867
3399
  this.#client = client;
2868
- this.#logger = client[chunkVDAI3GGL_cjs.additionalContext].logger;
3400
+ this.#logger = client[chunkRDZ5NKAI_cjs.additionalContext].logger;
2869
3401
  this.#maxWait = maxWait;
2870
3402
  this.#maxEntries = maxEntries;
2871
3403
  }
@@ -2933,7 +3465,7 @@ var ObjectQuery = class extends Query {
2933
3465
  #apiName;
2934
3466
  #pk;
2935
3467
  constructor(store, subject, type, pk, cacheKey, opts) {
2936
- super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkVDAI3GGL_cjs.additionalContext].logger?.child({}, {
3468
+ super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkRDZ5NKAI_cjs.additionalContext].logger?.child({}, {
2937
3469
  msgPrefix: `ObjectQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
2938
3470
  }) : void 0);
2939
3471
  this.#apiName = type;
@@ -3071,27 +3603,23 @@ var ObjectsHelper = class extends AbstractHelper {
3071
3603
  };
3072
3604
 
3073
3605
  // src/observable/internal/objectset/ObjectSetHelper.ts
3074
- chunk6SCDLAU2_cjs.init_cjs_shims();
3606
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
3075
3607
 
3076
3608
  // src/observable/internal/objectset/ObjectSetQuery.ts
3077
- chunk6SCDLAU2_cjs.init_cjs_shims();
3609
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
3078
3610
  var ObjectSetQuery = class extends BaseListQuery {
3079
3611
  #baseObjectSetWire;
3080
3612
  #operations;
3081
3613
  #composedObjectSet;
3082
3614
  #objectTypes;
3083
3615
  constructor(store, subject, baseObjectSetWire, operations, cacheKey, opts) {
3084
- super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkVDAI3GGL_cjs.additionalContext].logger?.child({}, {
3616
+ super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkRDZ5NKAI_cjs.additionalContext].logger?.child({}, {
3085
3617
  msgPrefix: `ObjectSetQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
3086
3618
  }) : void 0);
3087
3619
  this.#baseObjectSetWire = baseObjectSetWire;
3088
3620
  this.#operations = operations;
3089
3621
  this.#composedObjectSet = this.#composeObjectSet(opts);
3090
3622
  this.#objectTypes = this.#extractObjectTypes(opts);
3091
- if (operations.orderBy && Object.keys(operations.orderBy).length > 0) {
3092
- const firstType = Array.from(this.#objectTypes)[0];
3093
- this.sortingStrategy = new OrderBySortingStrategy(firstType, operations.orderBy);
3094
- }
3095
3623
  if (opts.autoFetchMore === true) {
3096
3624
  this.minResultsToLoad = Number.MAX_SAFE_INTEGER;
3097
3625
  } else if (typeof opts.autoFetchMore === "number") {
@@ -3130,7 +3658,7 @@ var ObjectSetQuery = class extends BaseListQuery {
3130
3658
  }
3131
3659
  if (opts.union) {
3132
3660
  for (const os of opts.union) {
3133
- const wire = chunkVDAI3GGL_cjs.getWireObjectSet(os);
3661
+ const wire = chunkRDZ5NKAI_cjs.getWireObjectSet(os);
3134
3662
  if (wire.type) {
3135
3663
  types.add(wire.type);
3136
3664
  }
@@ -3138,7 +3666,7 @@ var ObjectSetQuery = class extends BaseListQuery {
3138
3666
  }
3139
3667
  if (opts.intersect) {
3140
3668
  for (const os of opts.intersect) {
3141
- const wire = chunkVDAI3GGL_cjs.getWireObjectSet(os);
3669
+ const wire = chunkRDZ5NKAI_cjs.getWireObjectSet(os);
3142
3670
  if (wire.type) {
3143
3671
  types.add(wire.type);
3144
3672
  }
@@ -3146,7 +3674,7 @@ var ObjectSetQuery = class extends BaseListQuery {
3146
3674
  }
3147
3675
  if (opts.subtract) {
3148
3676
  for (const os of opts.subtract) {
3149
- const wire = chunkVDAI3GGL_cjs.getWireObjectSet(os);
3677
+ const wire = chunkRDZ5NKAI_cjs.getWireObjectSet(os);
3150
3678
  if (wire.type) {
3151
3679
  types.add(wire.type);
3152
3680
  }
@@ -3165,6 +3693,13 @@ var ObjectSetQuery = class extends BaseListQuery {
3165
3693
  * Fetches a page of data from the composed ObjectSet
3166
3694
  */
3167
3695
  async fetchPageData(signal) {
3696
+ if (this.#operations.orderBy && Object.keys(this.#operations.orderBy).length > 0 && !(this.sortingStrategy instanceof OrderBySortingStrategy)) {
3697
+ const wireObjectSet = chunkRDZ5NKAI_cjs.getWireObjectSet(this.#composedObjectSet);
3698
+ const {
3699
+ resultType
3700
+ } = await getObjectTypesThatInvalidate(this.store.client[chunkRDZ5NKAI_cjs.additionalContext], wireObjectSet);
3701
+ this.sortingStrategy = new OrderBySortingStrategy(resultType.apiName, this.#operations.orderBy);
3702
+ }
3168
3703
  const resp = await this.#composedObjectSet.fetchPage({
3169
3704
  $nextPageToken: this.nextPageToken,
3170
3705
  $pageSize: this.options.pageSize,
@@ -3227,7 +3762,7 @@ var ObjectSetHelper = class extends AbstractHelper {
3227
3762
  const {
3228
3763
  baseObjectSet
3229
3764
  } = options;
3230
- const baseObjectSetWire = JSON.stringify(chunkVDAI3GGL_cjs.getWireObjectSet(baseObjectSet));
3765
+ const baseObjectSetWire = JSON.stringify(chunkRDZ5NKAI_cjs.getWireObjectSet(baseObjectSet));
3231
3766
  const operations = this.buildCanonicalizedOperations(options);
3232
3767
  const objectSetCacheKey = this.cacheKeys.get("objectSet", baseObjectSetWire, operations);
3233
3768
  return this.store.queries.get(objectSetCacheKey, () => {
@@ -3243,13 +3778,13 @@ var ObjectSetHelper = class extends AbstractHelper {
3243
3778
  operations.withProperties = Object.keys(options.withProperties).sort();
3244
3779
  }
3245
3780
  if (options.union && options.union.length > 0) {
3246
- operations.union = options.union.map((os) => JSON.stringify(chunkVDAI3GGL_cjs.getWireObjectSet(os)));
3781
+ operations.union = options.union.map((os) => JSON.stringify(chunkRDZ5NKAI_cjs.getWireObjectSet(os)));
3247
3782
  }
3248
3783
  if (options.intersect && options.intersect.length > 0) {
3249
- operations.intersect = options.intersect.map((os) => JSON.stringify(chunkVDAI3GGL_cjs.getWireObjectSet(os)));
3784
+ operations.intersect = options.intersect.map((os) => JSON.stringify(chunkRDZ5NKAI_cjs.getWireObjectSet(os)));
3250
3785
  }
3251
3786
  if (options.subtract && options.subtract.length > 0) {
3252
- operations.subtract = options.subtract.map((os) => JSON.stringify(chunkVDAI3GGL_cjs.getWireObjectSet(os)));
3787
+ operations.subtract = options.subtract.map((os) => JSON.stringify(chunkRDZ5NKAI_cjs.getWireObjectSet(os)));
3253
3788
  }
3254
3789
  if (options.pivotTo) {
3255
3790
  operations.pivotTo = options.pivotTo;
@@ -3265,7 +3800,7 @@ var ObjectSetHelper = class extends AbstractHelper {
3265
3800
  };
3266
3801
 
3267
3802
  // src/observable/internal/PivotCanonicalizer.ts
3268
- chunk6SCDLAU2_cjs.init_cjs_shims();
3803
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
3269
3804
  var PivotCanonicalizer = class {
3270
3805
  #cache = /* @__PURE__ */ new Map();
3271
3806
  canonicalize(sourceType, linkName) {
@@ -3284,7 +3819,7 @@ var PivotCanonicalizer = class {
3284
3819
  };
3285
3820
 
3286
3821
  // src/observable/internal/Queries.ts
3287
- chunk6SCDLAU2_cjs.init_cjs_shims();
3822
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
3288
3823
  var Queries = class {
3289
3824
  // we can use a regular Map here because the refCounting will
3290
3825
  // handle cleanup.
@@ -3310,7 +3845,7 @@ var Queries = class {
3310
3845
  };
3311
3846
 
3312
3847
  // src/observable/internal/RdpCanonicalizer.ts
3313
- chunk6SCDLAU2_cjs.init_cjs_shims();
3848
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
3314
3849
  var RdpCanonicalizer = class extends CachingCanonicalizer {
3315
3850
  structuralCache = /* @__PURE__ */ new Map();
3316
3851
  lookupOrCreate(rdp) {
@@ -3321,7 +3856,7 @@ var RdpCanonicalizer = class extends CachingCanonicalizer {
3321
3856
  apiName: "__rdp_canonicalizer_holder__"
3322
3857
  };
3323
3858
  for (const [key, rdpFunction] of Object.entries(rdp)) {
3324
- const builder = chunkVDAI3GGL_cjs.createWithPropertiesObjectSet(
3859
+ const builder = chunkRDZ5NKAI_cjs.createWithPropertiesObjectSet(
3325
3860
  objectTypeHolder,
3326
3861
  {
3327
3862
  type: "methodInput"
@@ -3372,7 +3907,7 @@ var Store = class {
3372
3907
  subjects = this.layers.subjects;
3373
3908
  // these are hopefully temporary
3374
3909
  constructor(client) {
3375
- this.logger = client[chunkVDAI3GGL_cjs.additionalContext].logger?.child({}, {
3910
+ this.logger = client[chunkRDZ5NKAI_cjs.additionalContext].logger?.child({}, {
3376
3911
  msgPrefix: "Store"
3377
3912
  });
3378
3913
  this.client = client;
@@ -3380,6 +3915,7 @@ var Store = class {
3380
3915
  onDestroy: this.#cleanupCacheKey
3381
3916
  });
3382
3917
  this.aggregations = new AggregationsHelper(this, this.cacheKeys, this.whereCanonicalizer, this.rdpCanonicalizer);
3918
+ this.functions = new FunctionsHelper(this, this.cacheKeys);
3383
3919
  this.lists = new ListsHelper(this, this.cacheKeys, this.whereCanonicalizer, this.orderByCanonicalizer, this.rdpCanonicalizer, this.intersectCanonicalizer, this.pivotCanonicalizer);
3384
3920
  this.objects = new ObjectsHelper(this, this.cacheKeys);
3385
3921
  this.links = new LinksHelper(this, this.cacheKeys, this.whereCanonicalizer, this.orderByCanonicalizer);
@@ -3392,7 +3928,7 @@ var Store = class {
3392
3928
  #cleanupCacheKey = (key) => {
3393
3929
  const subject = this.subjects.peek(key);
3394
3930
  if (process.env.NODE_ENV !== "production") {
3395
- !subject ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false) : invariant4__default.default(false) : void 0;
3931
+ !subject ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false) : invariant5__default.default(false) : void 0;
3396
3932
  }
3397
3933
  this.subjects.delete(key);
3398
3934
  this.queries.delete(key);
@@ -3634,14 +4170,20 @@ var Store = class {
3634
4170
  }
3635
4171
  return Promise.allSettled(promises).then(() => void 0);
3636
4172
  }
4173
+ async invalidateFunction(apiName, params) {
4174
+ return this.functions.invalidateFunction(apiName, params);
4175
+ }
4176
+ async invalidateFunctionsByObject(apiName, primaryKey) {
4177
+ return this.functions.invalidateFunctionsByObject(apiName, primaryKey);
4178
+ }
3637
4179
  };
3638
4180
 
3639
4181
  // src/observable/ObservableClient.ts
3640
4182
  function createObservableClient(client) {
3641
- const tweakedClient = chunkWQL7SQ7H_cjs.createClientFromContext({
3642
- ...client[chunkVDAI3GGL_cjs.additionalContext],
3643
- fetch: shared_net_fetch.createFetchHeaderMutator(client[chunkVDAI3GGL_cjs.additionalContext].fetch, (headers) => {
3644
- headers.set("Fetch-User-Agent", [headers.get("Fetch-User-Agent"), chunkWQL7SQ7H_cjs.OBSERVABLE_USER_AGENT].filter((x) => x && x?.length > 0).join(" "));
4183
+ const tweakedClient = chunk666JN2DO_cjs.createClientFromContext({
4184
+ ...client[chunkRDZ5NKAI_cjs.additionalContext],
4185
+ fetch: shared_net_fetch.createFetchHeaderMutator(client[chunkRDZ5NKAI_cjs.additionalContext].fetch, (headers) => {
4186
+ headers.set("Fetch-User-Agent", [headers.get("Fetch-User-Agent"), chunk666JN2DO_cjs.OBSERVABLE_USER_AGENT].filter((x) => x && x?.length > 0).join(" "));
3645
4187
  return headers;
3646
4188
  })
3647
4189
  });
@@ -3649,7 +4191,7 @@ function createObservableClient(client) {
3649
4191
  }
3650
4192
 
3651
4193
  // src/public-utils/osdkConfig.ts
3652
- chunk6SCDLAU2_cjs.init_cjs_shims();
4194
+ chunkLDTMSHUZ_cjs.init_cjs_shims();
3653
4195
  function getMetaTagContent(name) {
3654
4196
  const element = document.querySelector(`meta[name="${name}"]`);
3655
4197
  const val = element ? element.getAttribute("content") : null;
@@ -3685,11 +4227,11 @@ function getOsdkConfig(ontologyRid) {
3685
4227
 
3686
4228
  Object.defineProperty(exports, "createClientWithTransaction", {
3687
4229
  enumerable: true,
3688
- get: function () { return chunkWQL7SQ7H_cjs.createClientWithTransaction; }
4230
+ get: function () { return chunk666JN2DO_cjs.createClientWithTransaction; }
3689
4231
  });
3690
4232
  Object.defineProperty(exports, "augment", {
3691
4233
  enumerable: true,
3692
- get: function () { return chunkVDAI3GGL_cjs.augment; }
4234
+ get: function () { return chunkRDZ5NKAI_cjs.augment; }
3693
4235
  });
3694
4236
  exports.computeObjectSetCacheKey = computeObjectSetCacheKey;
3695
4237
  exports.createObservableClient = createObservableClient;