@osdk/client 2.1.1 → 2.2.0-beta.10

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 (402) hide show
  1. package/CHANGELOG.md +129 -181
  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/ActionValidationError.js +1 -1
  6. package/build/browser/actions/ActionValidationError.js.map +1 -1
  7. package/build/browser/actions/actions.test.js +164 -87
  8. package/build/browser/actions/actions.test.js.map +1 -1
  9. package/build/browser/actions/applyAction.js +21 -15
  10. package/build/browser/actions/applyAction.js.map +1 -1
  11. package/build/browser/createClient.js +19 -8
  12. package/build/browser/createClient.js.map +1 -1
  13. package/build/browser/createClient.test.js +14 -6
  14. package/build/browser/createClient.test.js.map +1 -1
  15. package/build/browser/createMinimalClient.js +2 -2
  16. package/build/browser/createMinimalClient.js.map +1 -1
  17. package/build/browser/createMinimalClientHelper.js +25 -0
  18. package/build/browser/createMinimalClientHelper.js.map +1 -0
  19. package/build/browser/derivedProperties/createWithPropertiesObjectSet.js +106 -0
  20. package/build/browser/derivedProperties/createWithPropertiesObjectSet.js.map +1 -0
  21. package/build/browser/derivedProperties/createWithPropertiesObjectSet.test.js +100 -0
  22. package/build/browser/derivedProperties/createWithPropertiesObjectSet.test.js.map +1 -0
  23. package/build/browser/fetchMetadata.test.js +11 -9
  24. package/build/browser/fetchMetadata.test.js.map +1 -1
  25. package/build/browser/index.js +1 -0
  26. package/build/browser/index.js.map +1 -1
  27. package/build/browser/intellisense.test.js +5 -1
  28. package/build/browser/intellisense.test.js.map +1 -1
  29. package/build/browser/internal/conversions/modernToLegacyGroupByClause.js +7 -0
  30. package/build/browser/internal/conversions/modernToLegacyGroupByClause.js.map +1 -1
  31. package/build/browser/internal/conversions/modernToLegacyWhereClause.js +1 -1
  32. package/build/browser/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
  33. package/build/browser/logger/BaseLogger.js +53 -0
  34. package/build/browser/logger/BaseLogger.js.map +1 -0
  35. package/build/{esm → browser/logger}/Logger.js.map +1 -1
  36. package/build/browser/logger/MinimalLogger.js +41 -0
  37. package/build/browser/logger/MinimalLogger.js.map +1 -0
  38. package/build/browser/object/AttachmentUpload.js +3 -0
  39. package/build/browser/object/AttachmentUpload.js.map +1 -1
  40. package/build/browser/object/SimpleOsdkProperties.js +2 -0
  41. package/build/browser/object/SimpleOsdkProperties.js.map +1 -0
  42. package/build/browser/object/aggregate.test.js +12 -2
  43. package/build/browser/object/aggregate.test.js.map +1 -1
  44. package/build/browser/object/attachment.test.js +20 -7
  45. package/build/browser/object/attachment.test.js.map +1 -1
  46. package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js +2 -0
  47. package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -0
  48. package/build/browser/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -1
  49. package/build/browser/object/convertWireToOsdkObjects/ObjectHolder.js.map +1 -1
  50. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js +25 -0
  51. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  52. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js +10 -3
  53. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  54. package/build/browser/object/convertWireToOsdkObjects/getDollarAs.js.map +1 -1
  55. package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  56. package/build/browser/object/convertWireToOsdkObjects.js +13 -4
  57. package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
  58. package/build/browser/object/convertWireToOsdkObjects.test.js +17 -11
  59. package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
  60. package/build/{esm/observable/internal/ChangedObjects.js → browser/object/createObjectSpecifierFromPrimaryKey.js} +3 -7
  61. package/build/browser/object/createObjectSpecifierFromPrimaryKey.js.map +1 -0
  62. package/build/browser/object/fetchPage.js +13 -1
  63. package/build/browser/object/fetchPage.js.map +1 -1
  64. package/build/browser/object/fetchPage.test.js +56 -2
  65. package/build/browser/object/fetchPage.test.js.map +1 -1
  66. package/build/browser/object/geotimeseriesreference.test.js +56 -134
  67. package/build/browser/object/geotimeseriesreference.test.js.map +1 -1
  68. package/build/browser/object/media.test.js +19 -14
  69. package/build/browser/object/media.test.js.map +1 -1
  70. package/build/browser/object/object.test.js +166 -66
  71. package/build/browser/object/object.test.js.map +1 -1
  72. package/build/browser/object/timeseries.test.js +119 -85
  73. package/build/browser/object/timeseries.test.js.map +1 -1
  74. package/build/browser/objectSet/InterfaceObjectSet.test.js +37 -17
  75. package/build/browser/objectSet/InterfaceObjectSet.test.js.map +1 -1
  76. package/build/browser/objectSet/ObjectSet.test.js +313 -79
  77. package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
  78. package/build/browser/objectSet/ObjectSetListenerWebsocket.js +18 -14
  79. package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  80. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +16 -9
  81. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  82. package/build/browser/objectSet/createObjectSet.js +16 -0
  83. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  84. package/build/browser/observable/ListPayload.js.map +1 -1
  85. package/build/browser/observable/ObjectPayload.js.map +1 -1
  86. package/build/browser/observable/ObservableClient.js.map +1 -1
  87. package/build/browser/observable/OptimisticBuilder.js.map +1 -1
  88. package/build/browser/observable/internal/ActionApplication.js +102 -0
  89. package/build/browser/observable/internal/ActionApplication.js.map +1 -0
  90. package/build/browser/observable/internal/BulkObjectLoader.js +93 -0
  91. package/build/browser/observable/internal/BulkObjectLoader.js.map +1 -0
  92. package/build/browser/observable/internal/BulkObjectLoader.test.js +112 -0
  93. package/build/browser/observable/internal/BulkObjectLoader.test.js.map +1 -0
  94. package/build/browser/observable/internal/CacheKey.js +38 -1
  95. package/build/browser/observable/internal/CacheKey.js.map +1 -1
  96. package/build/browser/observable/internal/CacheKeys.js +4 -4
  97. package/build/browser/observable/internal/CacheKeys.js.map +1 -1
  98. package/build/browser/observable/internal/Changes.js +58 -0
  99. package/build/browser/observable/internal/Changes.js.map +1 -0
  100. package/build/browser/observable/internal/Layer.js +6 -3
  101. package/build/browser/observable/internal/Layer.js.map +1 -1
  102. package/build/browser/observable/internal/ListQuery.js +495 -129
  103. package/build/browser/observable/internal/ListQuery.js.map +1 -1
  104. package/build/browser/observable/internal/ObjectQuery.js +40 -14
  105. package/build/browser/observable/internal/ObjectQuery.js.map +1 -1
  106. package/build/browser/observable/internal/ObservableClientImpl.js +4 -12
  107. package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
  108. package/build/browser/observable/internal/OptimisticJob.js +30 -29
  109. package/build/browser/observable/internal/OptimisticJob.js.map +1 -1
  110. package/build/browser/observable/internal/OrderByCanonicalizer.js +73 -0
  111. package/build/browser/observable/internal/OrderByCanonicalizer.js.map +1 -0
  112. package/build/browser/observable/internal/OrderByCanonicalizer.test.js +78 -0
  113. package/build/browser/observable/internal/OrderByCanonicalizer.test.js.map +1 -0
  114. package/build/browser/observable/internal/Query.js +79 -6
  115. package/build/browser/observable/internal/Query.js.map +1 -1
  116. package/build/browser/observable/internal/RefCounts.js +7 -2
  117. package/build/browser/observable/internal/RefCounts.js.map +1 -1
  118. package/build/browser/observable/internal/SimpleWhereClause.js +2 -0
  119. package/build/browser/observable/internal/SimpleWhereClause.js.map +1 -0
  120. package/build/browser/observable/internal/Store.js +138 -188
  121. package/build/browser/observable/internal/Store.js.map +1 -1
  122. package/build/browser/observable/internal/Store.test.js +664 -255
  123. package/build/browser/observable/internal/Store.test.js.map +1 -1
  124. package/build/browser/observable/internal/WhereClauseCanonicalizer.js +11 -3
  125. package/build/browser/observable/internal/WhereClauseCanonicalizer.js.map +1 -1
  126. package/build/browser/observable/internal/objectMatchesWhereClause.js +0 -4
  127. package/build/browser/observable/internal/objectMatchesWhereClause.js.map +1 -1
  128. package/build/browser/observable/internal/objectMatchesWhereClause.test.js.map +1 -1
  129. package/build/browser/observable/internal/testUtils.js +222 -19
  130. package/build/browser/observable/internal/testUtils.js.map +1 -1
  131. package/build/browser/ontology/StandardOntologyProvider.test.js +17 -16
  132. package/build/browser/ontology/StandardOntologyProvider.test.js.map +1 -1
  133. package/build/browser/public/unstable-do-not-use.js.map +1 -1
  134. package/build/browser/queries/applyQuery.js +33 -1
  135. package/build/browser/queries/applyQuery.js.map +1 -1
  136. package/build/browser/queries/queries.test.js +36 -13
  137. package/build/browser/queries/queries.test.js.map +1 -1
  138. package/build/browser/tsserver.js.map +1 -1
  139. package/build/browser/util/UserAgent.js +1 -1
  140. package/build/browser/util/UserAgent.js.map +1 -1
  141. package/build/browser/util/toDataValue.js +10 -2
  142. package/build/browser/util/toDataValue.js.map +1 -1
  143. package/build/browser/util/toDataValue.test.js +37 -16
  144. package/build/browser/util/toDataValue.test.js.map +1 -1
  145. package/build/browser/util/toDataValueQueries.js +27 -2
  146. package/build/browser/util/toDataValueQueries.js.map +1 -1
  147. package/build/cjs/{Client-C8K3E1vH.d.cts → Client-DBTcM9gB.d.cts} +1 -1
  148. package/build/cjs/{chunk-FWVJ2AKD.cjs → chunk-EY52J5Z4.cjs} +25 -15
  149. package/build/cjs/chunk-EY52J5Z4.cjs.map +1 -0
  150. package/build/cjs/{chunk-DLSRNRTA.cjs → chunk-MCQVHD2F.cjs} +155 -42
  151. package/build/cjs/chunk-MCQVHD2F.cjs.map +1 -0
  152. package/build/cjs/chunk-T4NIFYZS.cjs +14 -0
  153. package/build/cjs/chunk-T4NIFYZS.cjs.map +1 -0
  154. package/build/cjs/{graphql-JJX5MZPQ.cjs → graphql-RGM5SRWV.cjs} +43 -2
  155. package/build/cjs/graphql-RGM5SRWV.cjs.map +1 -0
  156. package/build/cjs/index.cjs +265 -94
  157. package/build/cjs/index.cjs.map +1 -1
  158. package/build/cjs/index.d.cts +6 -4
  159. package/build/cjs/public/internal.cjs +6 -6
  160. package/build/cjs/public/internal.d.cts +1 -1
  161. package/build/cjs/public/unstable-do-not-use.cjs +1087 -470
  162. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  163. package/build/cjs/public/unstable-do-not-use.d.cts +37 -27
  164. package/build/esm/Client.js +1 -1
  165. package/build/esm/Client.js.map +1 -1
  166. package/build/esm/MinimalClientContext.js.map +1 -1
  167. package/build/esm/actions/ActionValidationError.js +1 -1
  168. package/build/esm/actions/ActionValidationError.js.map +1 -1
  169. package/build/esm/actions/actions.test.js +164 -87
  170. package/build/esm/actions/actions.test.js.map +1 -1
  171. package/build/esm/actions/applyAction.js +21 -15
  172. package/build/esm/actions/applyAction.js.map +1 -1
  173. package/build/esm/createClient.js +19 -8
  174. package/build/esm/createClient.js.map +1 -1
  175. package/build/esm/createClient.test.js +14 -6
  176. package/build/esm/createClient.test.js.map +1 -1
  177. package/build/esm/createMinimalClient.js +2 -2
  178. package/build/esm/createMinimalClient.js.map +1 -1
  179. package/build/esm/createMinimalClientHelper.js +25 -0
  180. package/build/esm/createMinimalClientHelper.js.map +1 -0
  181. package/build/esm/derivedProperties/createWithPropertiesObjectSet.js +106 -0
  182. package/build/esm/derivedProperties/createWithPropertiesObjectSet.js.map +1 -0
  183. package/build/esm/derivedProperties/createWithPropertiesObjectSet.test.js +100 -0
  184. package/build/esm/derivedProperties/createWithPropertiesObjectSet.test.js.map +1 -0
  185. package/build/esm/fetchMetadata.test.js +11 -9
  186. package/build/esm/fetchMetadata.test.js.map +1 -1
  187. package/build/esm/index.js +1 -0
  188. package/build/esm/index.js.map +1 -1
  189. package/build/esm/intellisense.test.js +5 -1
  190. package/build/esm/intellisense.test.js.map +1 -1
  191. package/build/esm/internal/conversions/modernToLegacyGroupByClause.js +7 -0
  192. package/build/esm/internal/conversions/modernToLegacyGroupByClause.js.map +1 -1
  193. package/build/esm/internal/conversions/modernToLegacyWhereClause.js +1 -1
  194. package/build/esm/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
  195. package/build/esm/logger/BaseLogger.js +53 -0
  196. package/build/esm/logger/BaseLogger.js.map +1 -0
  197. package/build/{browser → esm/logger}/Logger.js.map +1 -1
  198. package/build/esm/logger/MinimalLogger.js +41 -0
  199. package/build/esm/logger/MinimalLogger.js.map +1 -0
  200. package/build/esm/object/AttachmentUpload.js +3 -0
  201. package/build/esm/object/AttachmentUpload.js.map +1 -1
  202. package/build/esm/object/SimpleOsdkProperties.js +2 -0
  203. package/build/esm/object/SimpleOsdkProperties.js.map +1 -0
  204. package/build/esm/object/aggregate.test.js +12 -2
  205. package/build/esm/object/aggregate.test.js.map +1 -1
  206. package/build/esm/object/attachment.test.js +20 -7
  207. package/build/esm/object/attachment.test.js.map +1 -1
  208. package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js +2 -0
  209. package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -0
  210. package/build/esm/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -1
  211. package/build/esm/object/convertWireToOsdkObjects/ObjectHolder.js.map +1 -1
  212. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js +25 -0
  213. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  214. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js +10 -3
  215. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  216. package/build/esm/object/convertWireToOsdkObjects/getDollarAs.js.map +1 -1
  217. package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  218. package/build/esm/object/convertWireToOsdkObjects.js +13 -4
  219. package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
  220. package/build/esm/object/convertWireToOsdkObjects.test.js +17 -11
  221. package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
  222. package/build/{browser/observable/internal/ChangedObjects.js → esm/object/createObjectSpecifierFromPrimaryKey.js} +3 -7
  223. package/build/esm/object/createObjectSpecifierFromPrimaryKey.js.map +1 -0
  224. package/build/esm/object/fetchPage.js +13 -1
  225. package/build/esm/object/fetchPage.js.map +1 -1
  226. package/build/esm/object/fetchPage.test.js +56 -2
  227. package/build/esm/object/fetchPage.test.js.map +1 -1
  228. package/build/esm/object/geotimeseriesreference.test.js +56 -134
  229. package/build/esm/object/geotimeseriesreference.test.js.map +1 -1
  230. package/build/esm/object/media.test.js +19 -14
  231. package/build/esm/object/media.test.js.map +1 -1
  232. package/build/esm/object/object.test.js +166 -66
  233. package/build/esm/object/object.test.js.map +1 -1
  234. package/build/esm/object/timeseries.test.js +119 -85
  235. package/build/esm/object/timeseries.test.js.map +1 -1
  236. package/build/esm/objectSet/InterfaceObjectSet.test.js +37 -17
  237. package/build/esm/objectSet/InterfaceObjectSet.test.js.map +1 -1
  238. package/build/esm/objectSet/ObjectSet.test.js +313 -79
  239. package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
  240. package/build/esm/objectSet/ObjectSetListenerWebsocket.js +18 -14
  241. package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  242. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +16 -9
  243. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  244. package/build/esm/objectSet/createObjectSet.js +16 -0
  245. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  246. package/build/esm/observable/ListPayload.js.map +1 -1
  247. package/build/esm/observable/ObjectPayload.js.map +1 -1
  248. package/build/esm/observable/ObservableClient.js.map +1 -1
  249. package/build/esm/observable/OptimisticBuilder.js.map +1 -1
  250. package/build/esm/observable/internal/ActionApplication.js +102 -0
  251. package/build/esm/observable/internal/ActionApplication.js.map +1 -0
  252. package/build/esm/observable/internal/BulkObjectLoader.js +93 -0
  253. package/build/esm/observable/internal/BulkObjectLoader.js.map +1 -0
  254. package/build/esm/observable/internal/BulkObjectLoader.test.js +112 -0
  255. package/build/esm/observable/internal/BulkObjectLoader.test.js.map +1 -0
  256. package/build/esm/observable/internal/CacheKey.js +38 -1
  257. package/build/esm/observable/internal/CacheKey.js.map +1 -1
  258. package/build/esm/observable/internal/CacheKeys.js +4 -4
  259. package/build/esm/observable/internal/CacheKeys.js.map +1 -1
  260. package/build/esm/observable/internal/Changes.js +58 -0
  261. package/build/esm/observable/internal/Changes.js.map +1 -0
  262. package/build/esm/observable/internal/Layer.js +6 -3
  263. package/build/esm/observable/internal/Layer.js.map +1 -1
  264. package/build/esm/observable/internal/ListQuery.js +495 -129
  265. package/build/esm/observable/internal/ListQuery.js.map +1 -1
  266. package/build/esm/observable/internal/ObjectQuery.js +40 -14
  267. package/build/esm/observable/internal/ObjectQuery.js.map +1 -1
  268. package/build/esm/observable/internal/ObservableClientImpl.js +4 -12
  269. package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
  270. package/build/esm/observable/internal/OptimisticJob.js +30 -29
  271. package/build/esm/observable/internal/OptimisticJob.js.map +1 -1
  272. package/build/esm/observable/internal/OrderByCanonicalizer.js +73 -0
  273. package/build/esm/observable/internal/OrderByCanonicalizer.js.map +1 -0
  274. package/build/esm/observable/internal/OrderByCanonicalizer.test.js +78 -0
  275. package/build/esm/observable/internal/OrderByCanonicalizer.test.js.map +1 -0
  276. package/build/esm/observable/internal/Query.js +79 -6
  277. package/build/esm/observable/internal/Query.js.map +1 -1
  278. package/build/esm/observable/internal/RefCounts.js +7 -2
  279. package/build/esm/observable/internal/RefCounts.js.map +1 -1
  280. package/build/esm/observable/internal/SimpleWhereClause.js +2 -0
  281. package/build/esm/observable/internal/SimpleWhereClause.js.map +1 -0
  282. package/build/esm/observable/internal/Store.js +138 -188
  283. package/build/esm/observable/internal/Store.js.map +1 -1
  284. package/build/esm/observable/internal/Store.test.js +664 -255
  285. package/build/esm/observable/internal/Store.test.js.map +1 -1
  286. package/build/esm/observable/internal/WhereClauseCanonicalizer.js +11 -3
  287. package/build/esm/observable/internal/WhereClauseCanonicalizer.js.map +1 -1
  288. package/build/esm/observable/internal/objectMatchesWhereClause.js +0 -4
  289. package/build/esm/observable/internal/objectMatchesWhereClause.js.map +1 -1
  290. package/build/esm/observable/internal/objectMatchesWhereClause.test.js.map +1 -1
  291. package/build/esm/observable/internal/testUtils.js +222 -19
  292. package/build/esm/observable/internal/testUtils.js.map +1 -1
  293. package/build/esm/ontology/StandardOntologyProvider.test.js +17 -16
  294. package/build/esm/ontology/StandardOntologyProvider.test.js.map +1 -1
  295. package/build/esm/public/unstable-do-not-use.js.map +1 -1
  296. package/build/esm/queries/applyQuery.js +33 -1
  297. package/build/esm/queries/applyQuery.js.map +1 -1
  298. package/build/esm/queries/queries.test.js +36 -13
  299. package/build/esm/queries/queries.test.js.map +1 -1
  300. package/build/esm/tsserver.js.map +1 -1
  301. package/build/esm/util/UserAgent.js +1 -1
  302. package/build/esm/util/UserAgent.js.map +1 -1
  303. package/build/esm/util/toDataValue.js +10 -2
  304. package/build/esm/util/toDataValue.js.map +1 -1
  305. package/build/esm/util/toDataValue.test.js +37 -16
  306. package/build/esm/util/toDataValue.test.js.map +1 -1
  307. package/build/esm/util/toDataValueQueries.js +27 -2
  308. package/build/esm/util/toDataValueQueries.js.map +1 -1
  309. package/build/types/Client.d.ts +2 -2
  310. package/build/types/Client.d.ts.map +1 -1
  311. package/build/types/MinimalClientContext.d.ts +1 -1
  312. package/build/types/MinimalClientContext.d.ts.map +1 -1
  313. package/build/types/actions/applyAction.d.ts.map +1 -1
  314. package/build/types/createClient.d.ts +1 -1
  315. package/build/types/createClient.d.ts.map +1 -1
  316. package/build/types/createClient.test.d.ts +2 -1
  317. package/build/types/createClient.test.d.ts.map +1 -1
  318. package/build/types/createMinimalClientHelper.d.ts +1 -0
  319. package/build/types/createMinimalClientHelper.d.ts.map +1 -0
  320. package/build/types/derivedProperties/createWithPropertiesObjectSet.d.ts +1 -0
  321. package/build/types/derivedProperties/createWithPropertiesObjectSet.d.ts.map +1 -0
  322. package/build/types/derivedProperties/createWithPropertiesObjectSet.test.d.ts +1 -0
  323. package/build/types/derivedProperties/createWithPropertiesObjectSet.test.d.ts.map +1 -0
  324. package/build/types/index.d.ts +3 -2
  325. package/build/types/index.d.ts.map +1 -1
  326. package/build/types/logger/BaseLogger.d.ts +31 -0
  327. package/build/types/logger/BaseLogger.d.ts.map +1 -0
  328. package/build/types/{Logger.d.ts → logger/Logger.d.ts} +1 -2
  329. package/build/types/logger/Logger.d.ts.map +1 -0
  330. package/build/types/logger/MinimalLogger.d.ts +8 -0
  331. package/build/types/logger/MinimalLogger.d.ts.map +1 -0
  332. package/build/types/object/AttachmentUpload.d.ts +3 -0
  333. package/build/types/object/AttachmentUpload.d.ts.map +1 -1
  334. package/build/types/object/SimpleOsdkProperties.d.ts +1 -0
  335. package/build/types/object/SimpleOsdkProperties.d.ts.map +1 -0
  336. package/build/types/object/convertWireToOsdkObjects/BaseHolder.d.ts +1 -0
  337. package/build/types/object/convertWireToOsdkObjects/BaseHolder.d.ts.map +1 -0
  338. package/build/types/object/convertWireToOsdkObjects.d.ts +8 -1
  339. package/build/types/object/convertWireToOsdkObjects.d.ts.map +1 -1
  340. package/build/types/object/createObjectSpecifierFromPrimaryKey.d.ts +2 -0
  341. package/build/types/object/createObjectSpecifierFromPrimaryKey.d.ts.map +1 -0
  342. package/build/types/object/object.test.d.ts.map +1 -1
  343. package/build/types/objectSet/ObjectSet.test.d.ts.map +1 -1
  344. package/build/types/observable/ListPayload.d.ts +5 -9
  345. package/build/types/observable/ListPayload.d.ts.map +1 -1
  346. package/build/types/observable/ObjectPayload.d.ts +4 -7
  347. package/build/types/observable/ObjectPayload.d.ts.map +1 -1
  348. package/build/types/observable/ObservableClient.d.ts +33 -10
  349. package/build/types/observable/ObservableClient.d.ts.map +1 -1
  350. package/build/types/observable/OptimisticBuilder.d.ts +1 -1
  351. package/build/types/observable/OptimisticBuilder.d.ts.map +1 -1
  352. package/build/types/observable/internal/ActionApplication.d.ts +9 -0
  353. package/build/types/observable/internal/ActionApplication.d.ts.map +1 -0
  354. package/build/types/observable/internal/BulkObjectLoader.d.ts +8 -0
  355. package/build/types/observable/internal/BulkObjectLoader.d.ts.map +1 -0
  356. package/build/types/observable/internal/BulkObjectLoader.test.d.ts +1 -0
  357. package/build/types/observable/internal/BulkObjectLoader.test.d.ts.map +1 -0
  358. package/build/types/observable/internal/CacheKeys.d.ts +2 -1
  359. package/build/types/observable/internal/CacheKeys.d.ts.map +1 -1
  360. package/build/types/observable/internal/Changes.d.ts +15 -0
  361. package/build/types/observable/internal/Changes.d.ts.map +1 -0
  362. package/build/types/observable/internal/Layer.d.ts +2 -1
  363. package/build/types/observable/internal/Layer.d.ts.map +1 -1
  364. package/build/types/observable/internal/ListQuery.d.ts +69 -23
  365. package/build/types/observable/internal/ListQuery.d.ts.map +1 -1
  366. package/build/types/observable/internal/ObjectQuery.d.ts +8 -9
  367. package/build/types/observable/internal/ObjectQuery.d.ts.map +1 -1
  368. package/build/types/observable/internal/OptimisticJob.d.ts +2 -2
  369. package/build/types/observable/internal/OptimisticJob.d.ts.map +1 -1
  370. package/build/types/observable/internal/OrderByCanonicalizer.d.ts +12 -0
  371. package/build/types/observable/internal/OrderByCanonicalizer.d.ts.map +1 -0
  372. package/build/types/observable/internal/OrderByCanonicalizer.test.d.ts +1 -0
  373. package/build/types/observable/internal/OrderByCanonicalizer.test.d.ts.map +1 -0
  374. package/build/types/observable/internal/Query.d.ts +45 -9
  375. package/build/types/observable/internal/Query.d.ts.map +1 -1
  376. package/build/types/observable/internal/RefCounts.d.ts.map +1 -1
  377. package/build/types/observable/internal/SimpleWhereClause.d.ts +2 -0
  378. package/build/types/observable/internal/SimpleWhereClause.d.ts.map +1 -0
  379. package/build/types/observable/internal/Store.d.ts +33 -29
  380. package/build/types/observable/internal/Store.d.ts.map +1 -1
  381. package/build/types/observable/internal/WhereClauseCanonicalizer.d.ts +2 -1
  382. package/build/types/observable/internal/WhereClauseCanonicalizer.d.ts.map +1 -1
  383. package/build/types/observable/internal/objectMatchesWhereClause.d.ts +4 -2
  384. package/build/types/observable/internal/objectMatchesWhereClause.d.ts.map +1 -1
  385. package/build/types/observable/internal/testUtils.d.ts +49 -9
  386. package/build/types/observable/internal/testUtils.d.ts.map +1 -1
  387. package/build/types/public/unstable-do-not-use.d.ts +1 -4
  388. package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
  389. package/build/types/queries/applyQuery.d.ts.map +1 -1
  390. package/build/types/tsserver.d.ts +1 -1
  391. package/build/types/tsserver.d.ts.map +1 -1
  392. package/package.json +18 -14
  393. package/build/browser/observable/internal/ChangedObjects.js.map +0 -1
  394. package/build/cjs/chunk-DLSRNRTA.cjs.map +0 -1
  395. package/build/cjs/chunk-FWVJ2AKD.cjs.map +0 -1
  396. package/build/cjs/graphql-JJX5MZPQ.cjs.map +0 -1
  397. package/build/esm/observable/internal/ChangedObjects.js.map +0 -1
  398. package/build/types/Logger.d.ts.map +0 -1
  399. package/build/types/observable/internal/ChangedObjects.d.ts +0 -7
  400. package/build/types/observable/internal/ChangedObjects.d.ts.map +0 -1
  401. /package/build/browser/{Logger.js → logger/Logger.js} +0 -0
  402. /package/build/esm/{Logger.js → logger/Logger.js} +0 -0
@@ -1,28 +1,28 @@
1
1
  'use strict';
2
2
 
3
- var chunkFWVJ2AKD_cjs = require('./chunk-FWVJ2AKD.cjs');
3
+ var chunkEY52J5Z4_cjs = require('./chunk-EY52J5Z4.cjs');
4
4
  var shared_net_errors = require('@osdk/shared.net.errors');
5
+ var invariant5 = require('tiny-invariant');
5
6
  var api = require('@osdk/api');
6
- var invariant4 = require('tiny-invariant');
7
7
  var WebSocket = require('isomorphic-ws');
8
8
 
9
9
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
10
 
11
- var invariant4__default = /*#__PURE__*/_interopDefault(invariant4);
11
+ var invariant5__default = /*#__PURE__*/_interopDefault(invariant5);
12
12
  var WebSocket__default = /*#__PURE__*/_interopDefault(WebSocket);
13
13
 
14
14
  // src/public-utils/hydrateAttachmentFromRid.ts
15
15
  function hydrateAttachmentFromRid(client, rid) {
16
- return hydrateAttachmentFromRidInternal(client[chunkFWVJ2AKD_cjs.additionalContext], rid);
16
+ return hydrateAttachmentFromRidInternal(client[chunkEY52J5Z4_cjs.additionalContext], rid);
17
17
  }
18
18
  function hydrateAttachmentFromRidInternal(client, rid) {
19
19
  return {
20
20
  rid,
21
21
  async fetchContents() {
22
- return chunkFWVJ2AKD_cjs.Attachment_exports.read(client, rid);
22
+ return chunkEY52J5Z4_cjs.Attachment_exports.read(client, rid);
23
23
  },
24
24
  async fetchMetadata() {
25
- const r = await chunkFWVJ2AKD_cjs.Attachment_exports.get(client, rid);
25
+ const r = await chunkEY52J5Z4_cjs.Attachment_exports.get(client, rid);
26
26
  return {
27
27
  ...r,
28
28
  sizeBytes: Number(r.sizeBytes)
@@ -31,7 +31,7 @@ function hydrateAttachmentFromRidInternal(client, rid) {
31
31
  };
32
32
  }
33
33
  async function fetchSingle(client, objectType, args, objectSet) {
34
- const result = await chunkFWVJ2AKD_cjs.fetchPage(client, objectType, {
34
+ const result = await chunkEY52J5Z4_cjs.fetchPage(client, objectType, {
35
35
  ...args,
36
36
  $pageSize: 1
37
37
  }, objectSet);
@@ -126,7 +126,7 @@ function makeGeoFilterPolygon(coordinates, filterType, propertyIdentifier, field
126
126
  };
127
127
  }
128
128
  function handleWherePair([fieldName, filter], objectOrInterface, structFieldSelector) {
129
- !(filter != null) ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false, "Defined key values are only allowed when they are not undefined.") : invariant4__default.default(false) : undefined;
129
+ !(filter != null) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Defined key values are only allowed when they are not undefined.") : invariant5__default.default(false) : undefined;
130
130
  const propertyIdentifier = structFieldSelector != null ? {
131
131
  type: "structField",
132
132
  ...structFieldSelector,
@@ -145,10 +145,10 @@ function handleWherePair([fieldName, filter], objectOrInterface, structFieldSele
145
145
  }
146
146
  const keysOfFilter = Object.keys(filter);
147
147
  const hasDollarSign = keysOfFilter.some((key) => key.startsWith("$"));
148
- !(!hasDollarSign || keysOfFilter.length === 1) ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false, "WhereClause Filter with multiple clauses isn't allowed") : invariant4__default.default(false) : undefined;
148
+ !(!hasDollarSign || keysOfFilter.length === 1) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "A WhereClause Filter with multiple clauses/fields is not allowed. Instead, use an 'or'/'and' clause to combine multiple filters.") : invariant5__default.default(false) : undefined;
149
149
  if (!hasDollarSign) {
150
150
  const structFilter = Object.entries(filter);
151
- !(structFilter.length === 1) ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false, "Cannot filter on more than one struct field in the same clause, need to use an and clause") : invariant4__default.default(false) : undefined;
151
+ !(structFilter.length === 1) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Cannot filter on more than one struct field in the same clause, need to use an and clause") : invariant5__default.default(false) : undefined;
152
152
  const structFieldApiName = keysOfFilter[0];
153
153
  return handleWherePair(Object.entries(filter)[0], objectOrInterface, {
154
154
  propertyApiName: fieldName,
@@ -156,7 +156,7 @@ function handleWherePair([fieldName, filter], objectOrInterface, structFieldSele
156
156
  });
157
157
  }
158
158
  const firstKey = keysOfFilter[0];
159
- !(filter[firstKey] != null) ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false) : invariant4__default.default(false) : undefined;
159
+ !(filter[firstKey] != null) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false) : invariant5__default.default(false) : undefined;
160
160
  if (firstKey === "$ne") {
161
161
  return {
162
162
  type: "not",
@@ -238,13 +238,100 @@ function fullyQualifyPropName(fieldName, objectOrInterface) {
238
238
  }
239
239
  return fieldName;
240
240
  }
241
+
242
+ // src/derivedProperties/createWithPropertiesObjectSet.ts
243
+ function createWithPropertiesObjectSet(objectType, objectSet, definitionMap) {
244
+ const base = {
245
+ pivotTo: (link) => {
246
+ return createWithPropertiesObjectSet(objectType, {
247
+ type: "searchAround",
248
+ objectSet,
249
+ link
250
+ }, definitionMap);
251
+ },
252
+ where: (clause) => {
253
+ return createWithPropertiesObjectSet(objectType, {
254
+ type: "filter",
255
+ objectSet,
256
+ where: modernToLegacyWhereClause(clause, objectType)
257
+ }, definitionMap);
258
+ },
259
+ aggregate: (aggregation, opt) => {
260
+ const splitAggregation = aggregation.split(":");
261
+ !(splitAggregation.length === 2 || splitAggregation[0] === "$count") ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Invalid aggregation format") : invariant5__default.default(false) : undefined;
262
+ const [aggregationPropertyName, aggregationOperation] = splitAggregation;
263
+ let aggregationOperationDefinition;
264
+ switch (aggregationOperation) {
265
+ case "sum":
266
+ case "avg":
267
+ case "min":
268
+ case "max":
269
+ case "exactDistinct":
270
+ case "approximateDistinct":
271
+ aggregationOperationDefinition = {
272
+ type: aggregationOperation,
273
+ selectedPropertyApiName: aggregationPropertyName
274
+ };
275
+ break;
276
+ case "approximatePercentile":
277
+ aggregationOperationDefinition = {
278
+ type: "approximatePercentile",
279
+ selectedPropertyApiName: aggregationPropertyName,
280
+ approximatePercentile: opt?.percentile ?? 0.5
281
+ };
282
+ break;
283
+ case "collectSet":
284
+ case "collectList":
285
+ aggregationOperationDefinition = {
286
+ type: aggregationOperation,
287
+ selectedPropertyApiName: aggregationPropertyName,
288
+ limit: opt?.limit ?? 100
289
+ };
290
+ break;
291
+ case undefined:
292
+ if (aggregationPropertyName === "$count") {
293
+ aggregationOperationDefinition = {
294
+ type: "count"
295
+ };
296
+ break;
297
+ }
298
+ default:
299
+ process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Invalid aggregation operation " + aggregationOperation) : invariant5__default.default(false) ;
300
+ }
301
+ const selectorResult = {
302
+ type: {}
303
+ };
304
+ definitionMap.set(selectorResult, {
305
+ type: "selection",
306
+ objectSet,
307
+ operation: aggregationOperationDefinition
308
+ });
309
+ return selectorResult;
310
+ },
311
+ selectProperty: (name) => {
312
+ const selectorResult = {
313
+ type: {}
314
+ };
315
+ definitionMap.set(selectorResult, {
316
+ type: "selection",
317
+ objectSet,
318
+ operation: {
319
+ type: "get",
320
+ selectedPropertyApiName: name
321
+ }
322
+ });
323
+ return selectorResult;
324
+ }
325
+ };
326
+ return base;
327
+ }
241
328
  function legacyToModernSingleAggregationResult(entry) {
242
329
  return entry.metrics.reduce((accumulator, curValue) => {
243
330
  const parts = curValue.name.split(".");
244
331
  if (parts[0] === "count") {
245
332
  return accumulator;
246
333
  }
247
- !(parts.length === 2) ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false, "assumed we were getting a `${key}.${type}`") : invariant4__default.default(false) : undefined;
334
+ !(parts.length === 2) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "assumed we were getting a `${key}.${type}`") : invariant5__default.default(false) : undefined;
248
335
  const property = parts[0];
249
336
  const metricType = parts[1];
250
337
  if (!(property in accumulator)) {
@@ -293,6 +380,13 @@ function modernToLegacyGroupByClause(groupByClause) {
293
380
  maxGroupCount: type.$exactWithLimit
294
381
  }];
295
382
  }
383
+ } else if ("$exact" in type) {
384
+ return [{
385
+ type: "exact",
386
+ field,
387
+ maxGroupCount: type.$exact?.$limit ?? undefined,
388
+ defaultValue: type.$exact.$defaultValue ?? undefined
389
+ }];
296
390
  } else if ("$fixedWidth" in type) {
297
391
  return [{
298
392
  type: "fixedWidth",
@@ -323,8 +417,8 @@ function convertRange(range) {
323
417
  }
324
418
 
325
419
  // src/object/aggregate.ts
326
- async function aggregate(clientCtx, objectType, objectSet = chunkFWVJ2AKD_cjs.resolveBaseObjectSetType(objectType), req) {
327
- chunkFWVJ2AKD_cjs.resolveBaseObjectSetType(objectType);
420
+ async function aggregate(clientCtx, objectType, objectSet = chunkEY52J5Z4_cjs.resolveBaseObjectSetType(objectType), req) {
421
+ chunkEY52J5Z4_cjs.resolveBaseObjectSetType(objectType);
328
422
  const body = {
329
423
  aggregation: modernToLegacyAggregationClause(req.$select),
330
424
  groupBy: [],
@@ -333,13 +427,13 @@ async function aggregate(clientCtx, objectType, objectSet = chunkFWVJ2AKD_cjs.re
333
427
  if (req.$groupBy) {
334
428
  body.groupBy = modernToLegacyGroupByClause(req.$groupBy);
335
429
  }
336
- const result = await chunkFWVJ2AKD_cjs.OntologyObjectSet_exports.aggregate(chunkFWVJ2AKD_cjs.addUserAgentAndRequestContextHeaders(clientCtx, objectType), await clientCtx.ontologyRid, {
430
+ const result = await chunkEY52J5Z4_cjs.OntologyObjectSet_exports.aggregate(chunkEY52J5Z4_cjs.addUserAgentAndRequestContextHeaders(clientCtx, objectType), await clientCtx.ontologyRid, {
337
431
  objectSet,
338
432
  groupBy: body.groupBy,
339
433
  aggregation: body.aggregation
340
434
  });
341
435
  if (!req.$groupBy) {
342
- !(result.data.length === 1) ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false, "no group by clause should mean only one data result") : invariant4__default.default(false) : undefined;
436
+ !(result.data.length === 1) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "no group by clause should mean only one data result") : invariant5__default.default(false) : undefined;
343
437
  return {
344
438
  ...aggregationToCountResult(result.data[0]),
345
439
  ...legacyToModernSingleAggregationResult(result.data[0])
@@ -435,7 +529,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
435
529
  this.#logger = client.logger?.child({}, {
436
530
  msgPrefix: "<OSW> "
437
531
  });
438
- !(client.baseUrl.startsWith("https://") || client.baseUrl.startsWith("http://")) ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false, "Stack must be a URL") : invariant4__default.default(false) : undefined;
532
+ !(client.baseUrl.startsWith("https://") || client.baseUrl.startsWith("http://")) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Stack must be a URL") : invariant5__default.default(false) : undefined;
439
533
  }
440
534
  async subscribe(objectType, objectSet, listener, properties = []) {
441
535
  const objOrInterfaceDef = objectType.type === "object" ? await this.#client.ontologyProvider.getObjectDefinition(objectType.apiName) : await this.#client.ontologyProvider.getInterfaceDefinition(objectType.apiName);
@@ -475,7 +569,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
475
569
  */
476
570
  async #initiateSubscribe(sub) {
477
571
  if (process.env.NODE_ENV !== "production") {
478
- this.#logger?.trace("#initiateSubscribe()");
572
+ this.#logger?.debug("#initiateSubscribe()");
479
573
  }
480
574
  try {
481
575
  await this.#ensureWebsocket();
@@ -493,7 +587,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
493
587
  }
494
588
  #sendSubscribeMessage() {
495
589
  if (process.env.NODE_ENV !== "production") {
496
- this.#logger?.trace("#sendSubscribeMessage()");
590
+ this.#logger?.debug("#sendSubscribeMessage()");
497
591
  }
498
592
  const readySubs = [...this.#subscriptions.values()].filter(isReady);
499
593
  const id = nextUuid();
@@ -514,7 +608,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
514
608
  })
515
609
  };
516
610
  if (process.env.NODE_ENV !== "production") {
517
- this.#logger?.trace({
611
+ this.#logger?.debug({
518
612
  payload: subscribe
519
613
  }, "sending subscribe message");
520
614
  }
@@ -561,7 +655,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
561
655
  this.#lastWsConnect = Date.now();
562
656
  if (this.#ws == null) {
563
657
  if (process.env.NODE_ENV !== "production") {
564
- this.#logger?.trace("Creating websocket");
658
+ this.#logger?.debug("Creating websocket");
565
659
  }
566
660
  this.#ws = new WebSocket__default.default(url, [`Bearer-${token}`]);
567
661
  this.#ws.addEventListener("close", this.#onClose);
@@ -598,22 +692,26 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
598
692
  #onMessage = async (message) => {
599
693
  const data = JSON.parse(message.data.toString());
600
694
  if (process.env.NODE_ENV !== "production") {
601
- this.#logger?.trace({
695
+ this.#logger?.debug({
602
696
  payload: data
603
697
  }, "received message from ws");
604
698
  }
605
699
  switch (data.type) {
606
700
  case "objectSetChanged":
607
- return void this.#handleMessage_objectSetChanged(data);
701
+ await this.#handleMessage_objectSetChanged(data);
702
+ return;
608
703
  case "refreshObjectSet":
609
- return void this.#handleMessage_refreshObjectSet(data);
704
+ this.#handleMessage_refreshObjectSet(data);
705
+ return;
610
706
  case "subscribeResponses":
611
- return void this.#handleMessage_subscribeResponses(data);
707
+ this.#handleMessage_subscribeResponses(data);
708
+ return;
612
709
  case "subscriptionClosed": {
613
- return void this.#handleMessage_subscriptionClosed(data);
710
+ this.#handleMessage_subscriptionClosed(data);
711
+ return;
614
712
  }
615
713
  default:
616
- process.env.NODE_ENV !== "production" ? invariant4__default.default(false, "Unexpected message type") : invariant4__default.default(false) ;
714
+ process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Unexpected message type") : invariant5__default.default(false) ;
617
715
  }
618
716
  };
619
717
  #handleMessage_objectSetChanged = async (payload) => {
@@ -634,10 +732,10 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
634
732
  state: "ADDED_OR_UPDATED"
635
733
  } : undefined;
636
734
  }));
637
- for (const osdkObject of osdkObjectsWithReferenceUpdates) {
638
- if (osdkObject != null) {
735
+ for (const update of osdkObjectsWithReferenceUpdates) {
736
+ if (update != null) {
639
737
  try {
640
- sub.listener.onChange?.(osdkObject);
738
+ sub.listener.onChange?.(update);
641
739
  } catch (error) {
642
740
  this.#logger?.error(error, "Error in onChange callback");
643
741
  this.#tryCatchOnError(sub, false, error);
@@ -678,7 +776,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
678
776
  }
679
777
  #handleMessage_refreshObjectSet = (payload) => {
680
778
  const sub = this.#subscriptions.get(payload.id);
681
- !sub ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false, `Expected subscription id ${payload.id}`) : invariant4__default.default(false) : undefined;
779
+ !sub ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `Expected subscription id ${payload.id}`) : invariant5__default.default(false) : undefined;
682
780
  try {
683
781
  sub.listener.onOutOfDate();
684
782
  } catch (error) {
@@ -692,7 +790,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
692
790
  responses
693
791
  } = payload;
694
792
  const subs = this.#pendingSubscriptions.get(id);
695
- !subs ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false, `should have a pending subscription for ${id}`) : invariant4__default.default(false) : undefined;
793
+ !subs ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `should have a pending subscription for ${id}`) : invariant5__default.default(false) : undefined;
696
794
  this.#pendingSubscriptions.delete(id);
697
795
  for (let i = 0; i < responses.length; i++) {
698
796
  const sub = subs[i];
@@ -708,7 +806,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
708
806
  case "success":
709
807
  const shouldFireOutOfDate = sub.status === "expired" || sub.status === "reconnecting";
710
808
  if (process.env.NODE_ENV !== "production") {
711
- this.#logger?.trace({
809
+ this.#logger?.debug({
712
810
  shouldFireOutOfDate
713
811
  }, "success");
714
812
  }
@@ -734,13 +832,13 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
734
832
  #handleMessage_subscriptionClosed(payload) {
735
833
  const sub = this.#subscriptions.get(payload.id);
736
834
  if (sub == null && this.#endedSubscriptions.has(payload.id)) return;
737
- !sub ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false, `Expected subscription id ${payload.id}`) : invariant4__default.default(false) : undefined;
835
+ !sub ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `Expected subscription id ${payload.id}`) : invariant5__default.default(false) : undefined;
738
836
  this.#tryCatchOnError(sub, true, payload.cause);
739
837
  this.#unsubscribe(sub, "error");
740
838
  }
741
839
  #onClose = (event) => {
742
840
  if (process.env.NODE_ENV !== "production") {
743
- this.#logger?.trace({
841
+ this.#logger?.debug({
744
842
  event
745
843
  }, "Received close event from ws", event);
746
844
  }
@@ -759,7 +857,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
759
857
  if (this.#subscriptions.size > 0) {
760
858
  if (process.env.NODE_ENV !== "production") {
761
859
  for (const s of this.#subscriptions.values()) {
762
- !(s.status !== "done" && s.status !== "error") ? process.env.NODE_ENV !== "production" ? invariant4__default.default(false, "should not have done/error subscriptions still") : invariant4__default.default(false) : undefined;
860
+ !(s.status !== "done" && s.status !== "error") ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "should not have done/error subscriptions still") : invariant5__default.default(false) : undefined;
763
861
  }
764
862
  }
765
863
  for (const s of this.#subscriptions.values()) {
@@ -808,15 +906,15 @@ function getWireObjectSet(objectSet) {
808
906
  return objectSetDefinitions.get(objectSet);
809
907
  }
810
908
  var objectSetDefinitions = /* @__PURE__ */ new WeakMap();
811
- function createObjectSet(objectType, clientCtx, objectSet = chunkFWVJ2AKD_cjs.resolveBaseObjectSetType(objectType)) {
909
+ function createObjectSet(objectType, clientCtx, objectSet = chunkEY52J5Z4_cjs.resolveBaseObjectSetType(objectType)) {
812
910
  const base = {
813
911
  aggregate: aggregate.bind(globalThis, augmentRequestContext(clientCtx, (_) => ({
814
912
  finalMethodCall: "aggregate"
815
913
  })), objectType, objectSet),
816
- fetchPage: chunkFWVJ2AKD_cjs.fetchPageInternal.bind(globalThis, augmentRequestContext(clientCtx, (_) => ({
914
+ fetchPage: chunkEY52J5Z4_cjs.fetchPageInternal.bind(globalThis, augmentRequestContext(clientCtx, (_) => ({
817
915
  finalMethodCall: "fetchPage"
818
916
  })), objectType, objectSet),
819
- fetchPageWithErrors: chunkFWVJ2AKD_cjs.fetchPageWithErrorsInternal.bind(globalThis, augmentRequestContext(clientCtx, (_) => ({
917
+ fetchPageWithErrors: chunkEY52J5Z4_cjs.fetchPageWithErrorsInternal.bind(globalThis, augmentRequestContext(clientCtx, (_) => ({
820
918
  finalMethodCall: "fetchPageWithErrors"
821
919
  })), objectType, objectSet),
822
920
  where: (clause) => {
@@ -850,7 +948,7 @@ function createObjectSet(objectType, clientCtx, objectSet = chunkFWVJ2AKD_cjs.re
850
948
  asyncIter: async function* (args) {
851
949
  let $nextPageToken = undefined;
852
950
  do {
853
- const result = await chunkFWVJ2AKD_cjs.fetchPageInternal(augmentRequestContext(clientCtx, (_) => ({
951
+ const result = await chunkEY52J5Z4_cjs.fetchPageInternal(augmentRequestContext(clientCtx, (_) => ({
854
952
  finalMethodCall: "asyncIter"
855
953
  })), objectType, objectSet, {
856
954
  ...args,
@@ -878,6 +976,21 @@ function createObjectSet(objectType, clientCtx, objectSet = chunkFWVJ2AKD_cjs.re
878
976
  unsubscribe: async () => (await pendingSubscribe)()
879
977
  };
880
978
  },
979
+ withProperties: (clause) => {
980
+ const definitionMap = /* @__PURE__ */ new Map();
981
+ const derivedProperties = {};
982
+ for (const key of Object.keys(clause)) {
983
+ const derivedPropertyDefinition = clause[key](createWithPropertiesObjectSet(objectType, {
984
+ type: "methodInput"
985
+ }, definitionMap));
986
+ derivedProperties[key] = definitionMap.get(derivedPropertyDefinition);
987
+ }
988
+ return clientCtx.objectSetFactory(objectType, clientCtx, {
989
+ type: "withProperties",
990
+ derivedProperties,
991
+ objectSet
992
+ });
993
+ },
881
994
  $objectSetInternals: {
882
995
  def: objectType
883
996
  }
@@ -918,5 +1031,5 @@ exports.hydrateAttachmentFromRid = hydrateAttachmentFromRid;
918
1031
  exports.hydrateAttachmentFromRidInternal = hydrateAttachmentFromRidInternal;
919
1032
  exports.isObjectSet = isObjectSet;
920
1033
  exports.isWireObjectSet = isWireObjectSet;
921
- //# sourceMappingURL=chunk-DLSRNRTA.cjs.map
922
- //# sourceMappingURL=chunk-DLSRNRTA.cjs.map
1034
+ //# sourceMappingURL=chunk-MCQVHD2F.cjs.map
1035
+ //# sourceMappingURL=chunk-MCQVHD2F.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/public-utils/hydrateAttachmentFromRid.ts","../../src/object/fetchSingle.ts","../../src/internal/conversions/modernToLegacyWhereClause.ts","../../src/derivedProperties/createWithPropertiesObjectSet.ts","../../src/internal/conversions/legacyToModernSingleAggregationResult.ts","../../src/internal/conversions/modernToLegacyAggregationClause.ts","../../src/internal/conversions/modernToLegacyGroupByClause.ts","../../src/object/aggregate.ts","../../src/util/augmentRequestContext.ts","../../src/util/WireObjectSet.ts","../../src/objectSet/ObjectSetListenerWebsocket.ts","../../src/objectSet/createObjectSet.ts"],"names":["additionalContext","Attachment_exports","fetchPage","PalantirApiError","invariant","DistanceUnitMapping","DurationMapping","resolveBaseObjectSetType","OntologyObjectSet_exports","addUserAgentAndRequestContextHeaders","WebSocket","fetchPageInternal","fetchPageWithErrorsInternal"],"mappings":"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","file":"chunk-MCQVHD2F.cjs","sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport { additionalContext } from \"../Client.js\";\n/**\n * Helper function to create an attachment type from a rid\n * @param client - An OSDK client.\n * @param rid - The rid of attachment in Foundry.\n * @returns An OSDK attachment object\n */\nexport function hydrateAttachmentFromRid(client, rid) {\n return hydrateAttachmentFromRidInternal(client[additionalContext], rid);\n}\n\n/** @internal */\nexport function hydrateAttachmentFromRidInternal(client, rid) {\n return {\n rid,\n async fetchContents() {\n return OntologiesV2.Attachments.read(client, rid);\n },\n async fetchMetadata() {\n const r = await OntologiesV2.Attachments.get(client, rid);\n return {\n ...r,\n sizeBytes: Number(r.sizeBytes)\n };\n }\n };\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { PalantirApiError } from \"@osdk/shared.net.errors\";\nimport { fetchPage } from \"./fetchPage.js\";\n\n/** @internal */\nexport async function fetchSingle(client, objectType, args, objectSet) {\n const result = await fetchPage(client, objectType, {\n ...args,\n $pageSize: 1\n }, objectSet);\n if (result.data.length !== 1 || result.nextPageToken != null) {\n throw new PalantirApiError(`Expected a single result but got ${result.data.length} instead${result.nextPageToken != null ? \" with nextPageToken set\" : \"\"}`);\n }\n return result.data[0];\n}\n\n/** @internal */\nexport async function fetchSingleWithErrors(client, objectType, args, objectSet) {\n try {\n const result = await fetchSingle(client, objectType, args, objectSet);\n return {\n value: result\n };\n } catch (e) {\n if (e instanceof Error) {\n return {\n error: e\n };\n }\n return {\n error: e\n };\n }\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DistanceUnitMapping } from \"@osdk/api\";\nimport invariant from \"tiny-invariant\";\nexport function extractNamespace(fqApiName) {\n const last = fqApiName.lastIndexOf(\".\");\n if (last === -1) return [undefined, fqApiName];\n return [fqApiName.slice(0, last), fqApiName.slice(last + 1)];\n}\n\n/** @internal */\nexport function modernToLegacyWhereClause(whereClause, objectOrInterface) {\n if (\"$and\" in whereClause) {\n return {\n type: \"and\",\n value: whereClause.$and.map(clause => modernToLegacyWhereClause(clause, objectOrInterface))\n };\n } else if (\"$or\" in whereClause) {\n return {\n type: \"or\",\n value: whereClause.$or.map(clause => modernToLegacyWhereClause(clause, objectOrInterface))\n };\n } else if (\"$not\" in whereClause) {\n return {\n type: \"not\",\n value: modernToLegacyWhereClause(whereClause.$not, objectOrInterface)\n };\n }\n const parts = Object.entries(whereClause);\n if (parts.length === 1) {\n return handleWherePair(parts[0], objectOrInterface);\n }\n return {\n type: \"and\",\n value: parts.map(v => handleWherePair(v, objectOrInterface))\n };\n}\nfunction makeGeoFilterBbox(bbox, filterType, propertyIdentifier, field) {\n return {\n type: filterType === \"$within\" ? \"withinBoundingBox\" : \"intersectsBoundingBox\",\n /**\n * This is a bit ugly, but did this so that propertyIdentifier only shows up in the return object if its defined,\n * this makes it so we don't need to go update our entire test bed either to include a field which may change in near future.\n * Once we solidify that this is the way forward, I can remove field and clean this up\n */\n ...(propertyIdentifier != null && {\n propertyIdentifier\n }),\n field,\n value: {\n topLeft: {\n type: \"Point\",\n coordinates: [bbox[0], bbox[3]]\n },\n bottomRight: {\n type: \"Point\",\n coordinates: [bbox[2], bbox[1]]\n }\n }\n };\n}\nfunction makeGeoFilterPolygon(coordinates, filterType, propertyIdentifier, field) {\n return {\n type: filterType,\n ...(propertyIdentifier != null && {\n propertyIdentifier\n }),\n field,\n value: {\n type: \"Polygon\",\n coordinates\n }\n };\n}\nfunction handleWherePair([fieldName, filter], objectOrInterface, structFieldSelector) {\n !(filter != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Defined key values are only allowed when they are not undefined.\") : invariant(false) : void 0;\n const propertyIdentifier = structFieldSelector != null ? {\n type: \"structField\",\n ...structFieldSelector,\n propertyApiName: fullyQualifyPropName(structFieldSelector.propertyApiName, objectOrInterface)\n } : undefined;\n const field = structFieldSelector == null ? fullyQualifyPropName(fieldName, objectOrInterface) : undefined;\n if (typeof filter === \"string\" || typeof filter === \"number\" || typeof filter === \"boolean\") {\n propertyIdentifier;\n return {\n type: \"eq\",\n ...(propertyIdentifier != null && {\n propertyIdentifier\n }),\n field,\n value: filter\n };\n }\n const keysOfFilter = Object.keys(filter);\n\n // If any of the keys start with `$` then they must be the only one.\n // e.g. `where({ name: { $eq: \"foo\", $ne: \"bar\" } })` is invalid currently\n const hasDollarSign = keysOfFilter.some(key => key.startsWith(\"$\"));\n !(!hasDollarSign || keysOfFilter.length === 1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"A WhereClause Filter with multiple clauses/fields is not allowed. Instead, use an 'or'/'and' clause to combine multiple filters.\") : invariant(false) : void 0;\n if (!hasDollarSign) {\n const structFilter = Object.entries(filter);\n !(structFilter.length === 1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot filter on more than one struct field in the same clause, need to use an and clause\") : invariant(false) : void 0;\n const structFieldApiName = keysOfFilter[0];\n return handleWherePair(Object.entries(filter)[0], objectOrInterface, {\n propertyApiName: fieldName,\n structFieldApiName\n });\n }\n const firstKey = keysOfFilter[0];\n !(filter[firstKey] != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n if (firstKey === \"$ne\") {\n return {\n type: \"not\",\n value: {\n type: \"eq\",\n ...(propertyIdentifier != null && {\n propertyIdentifier\n }),\n field,\n value: filter[firstKey]\n }\n };\n }\n if (firstKey === \"$within\") {\n const withinBody = filter[firstKey];\n if (Array.isArray(withinBody)) {\n return makeGeoFilterBbox(withinBody, firstKey, propertyIdentifier, field);\n } else if (\"$bbox\" in withinBody && withinBody.$bbox != null) {\n return makeGeoFilterBbox(withinBody.$bbox, firstKey, propertyIdentifier, field);\n } else if (\"$distance\" in withinBody && \"$of\" in withinBody && withinBody.$distance != null && withinBody.$of != null) {\n return {\n type: \"withinDistanceOf\",\n ...(propertyIdentifier != null && {\n propertyIdentifier\n }),\n field,\n value: {\n center: Array.isArray(withinBody.$of) ? {\n type: \"Point\",\n coordinates: withinBody.$of\n } : withinBody.$of,\n distance: {\n value: withinBody.$distance[0],\n unit: DistanceUnitMapping[withinBody.$distance[1]]\n }\n }\n };\n } else {\n const coordinates = \"$polygon\" in withinBody ? withinBody.$polygon : withinBody.coordinates;\n return makeGeoFilterPolygon(coordinates, \"withinPolygon\", propertyIdentifier, fieldName);\n }\n }\n if (firstKey === \"$intersects\") {\n const intersectsBody = filter[firstKey];\n if (Array.isArray(intersectsBody)) {\n return makeGeoFilterBbox(intersectsBody, firstKey, propertyIdentifier, field);\n } else if (\"$bbox\" in intersectsBody && intersectsBody.$bbox != null) {\n return makeGeoFilterBbox(intersectsBody.$bbox, firstKey, propertyIdentifier, field);\n } else {\n const coordinates = \"$polygon\" in intersectsBody ? intersectsBody.$polygon : intersectsBody.coordinates;\n return makeGeoFilterPolygon(coordinates, \"intersectsPolygon\", propertyIdentifier, field);\n }\n }\n if (firstKey === \"$containsAllTerms\" || firstKey === \"$containsAnyTerm\") {\n return {\n type: firstKey.substring(1),\n ...(propertyIdentifier != null && {\n propertyIdentifier\n }),\n field,\n value: typeof filter[firstKey] === \"string\" ? filter[firstKey] : filter[firstKey][\"term\"],\n fuzzy: typeof filter[firstKey] === \"string\" ? false : filter[firstKey][\"fuzzySearch\"] ?? false\n };\n }\n return {\n type: firstKey.substring(1),\n ...(propertyIdentifier != null && {\n propertyIdentifier\n }),\n field,\n value: filter[firstKey]\n };\n}\nfunction fullyQualifyPropName(fieldName, objectOrInterface) {\n if (objectOrInterface.type === \"interface\") {\n const [objApiNamespace] = extractNamespace(objectOrInterface.apiName);\n const [fieldApiNamespace, fieldShortName] = extractNamespace(fieldName);\n return fieldApiNamespace == null && objApiNamespace != null ? `${objApiNamespace}.${fieldShortName}` : fieldName;\n }\n return fieldName;\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nimport { modernToLegacyWhereClause } from \"../internal/conversions/modernToLegacyWhereClause.js\";\nconst idCounter = 0;\n\n/** @internal */\nexport function createWithPropertiesObjectSet(objectType, objectSet, definitionMap) {\n const base = {\n pivotTo: link => {\n return createWithPropertiesObjectSet(objectType, {\n type: \"searchAround\",\n objectSet,\n link\n }, definitionMap);\n },\n where: clause => {\n return createWithPropertiesObjectSet(objectType, {\n type: \"filter\",\n objectSet: objectSet,\n where: modernToLegacyWhereClause(clause, objectType)\n }, definitionMap);\n },\n aggregate: (aggregation, opt) => {\n const splitAggregation = aggregation.split(\":\");\n !(splitAggregation.length === 2 || splitAggregation[0] === \"$count\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Invalid aggregation format\") : invariant(false) : void 0;\n const [aggregationPropertyName, aggregationOperation] = splitAggregation;\n let aggregationOperationDefinition;\n switch (aggregationOperation) {\n case \"sum\":\n case \"avg\":\n case \"min\":\n case \"max\":\n case \"exactDistinct\":\n case \"approximateDistinct\":\n aggregationOperationDefinition = {\n type: aggregationOperation,\n selectedPropertyApiName: aggregationPropertyName\n };\n break;\n case \"approximatePercentile\":\n aggregationOperationDefinition = {\n type: \"approximatePercentile\",\n selectedPropertyApiName: aggregationPropertyName,\n approximatePercentile: opt?.percentile ?? .5\n };\n break;\n case \"collectSet\":\n case \"collectList\":\n aggregationOperationDefinition = {\n type: aggregationOperation,\n selectedPropertyApiName: aggregationPropertyName,\n limit: opt?.limit ?? 100\n };\n break;\n case undefined:\n if (aggregationPropertyName === \"$count\") {\n aggregationOperationDefinition = {\n type: \"count\"\n };\n break;\n }\n default:\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Invalid aggregation operation \" + aggregationOperation) : invariant(false) : void 0;\n }\n const selectorResult = {\n type: {}\n };\n definitionMap.set(selectorResult, {\n type: \"selection\",\n objectSet: objectSet,\n operation: aggregationOperationDefinition\n });\n return selectorResult;\n },\n selectProperty: name => {\n const selectorResult = {\n type: {}\n };\n definitionMap.set(selectorResult, {\n type: \"selection\",\n objectSet: objectSet,\n operation: {\n type: \"get\",\n selectedPropertyApiName: name\n }\n });\n return selectorResult;\n }\n };\n return base;\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\n/** @internal */\nexport function legacyToModernSingleAggregationResult(entry) {\n return entry.metrics.reduce((accumulator, curValue) => {\n const parts = curValue.name.split(\".\");\n if (parts[0] === \"count\") {\n return accumulator;\n }\n !(parts.length === 2) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"assumed we were getting a `${key}.${type}`\") : invariant(false) : void 0;\n const property = parts[0];\n const metricType = parts[1];\n if (!(property in accumulator)) {\n accumulator[property] = {}; // fixme?\n }\n accumulator[property][metricType] = curValue.value; // fixme?\n\n return accumulator;\n }, {});\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst directionFieldMap = dir => dir === \"asc\" ? \"ASC\" : dir === \"desc\" ? \"DESC\" : undefined;\n\n/** @internal */\nexport function modernToLegacyAggregationClause(select) {\n return Object.entries(select).flatMap(([propAndMetric, aggregationType]) => {\n if (propAndMetric === \"$count\") {\n return {\n type: \"count\",\n name: \"count\",\n direction: directionFieldMap(aggregationType)\n };\n }\n const colonPos = propAndMetric.lastIndexOf(\":\");\n const property = propAndMetric.slice(0, colonPos);\n const metric = propAndMetric.slice(colonPos + 1);\n return [{\n type: metric,\n name: `${property}.${metric}`,\n direction: directionFieldMap(aggregationType),\n field: property\n }];\n });\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DurationMapping } from \"@osdk/api\";\n/** @internal */\nexport function modernToLegacyGroupByClause(groupByClause) {\n if (!groupByClause) return [];\n return Object.entries(groupByClause).flatMap(([field, type]) => {\n if (type === \"exact\") {\n return [{\n type,\n field\n }];\n } else if (\"$exactWithLimit\" in type) {\n {\n return [{\n type: \"exact\",\n field,\n maxGroupCount: type.$exactWithLimit\n }];\n }\n } else if (\"$exact\" in type) {\n return [{\n type: \"exact\",\n field,\n maxGroupCount: type.$exact?.$limit ?? undefined,\n defaultValue: type.$exact.$defaultValue ?? undefined\n }];\n } else if (\"$fixedWidth\" in type) {\n return [{\n type: \"fixedWidth\",\n field,\n fixedWidth: type.$fixedWidth\n }];\n } else if (\"$ranges\" in type) {\n return [{\n type: \"ranges\",\n field,\n ranges: type.$ranges.map(range => convertRange(range))\n }];\n } else if (\"$duration\" in type) {\n return [{\n type: \"duration\",\n field,\n value: type.$duration[0],\n unit: DurationMapping[type.$duration[1]]\n }];\n } else return [];\n });\n}\nfunction convertRange(range) {\n return {\n startValue: range[0],\n endValue: range[1]\n };\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport { legacyToModernSingleAggregationResult } from \"../internal/conversions/legacyToModernSingleAggregationResult.js\";\nimport { modernToLegacyAggregationClause } from \"../internal/conversions/modernToLegacyAggregationClause.js\";\nimport { modernToLegacyGroupByClause } from \"../internal/conversions/modernToLegacyGroupByClause.js\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport { resolveBaseObjectSetType } from \"../util/objectSetUtils.js\";\n\n/** @internal */\nexport async function aggregate(clientCtx, objectType, objectSet = resolveBaseObjectSetType(objectType), req) {\n const resolvedObjectSet = resolveBaseObjectSetType(objectType);\n const body = {\n aggregation: modernToLegacyAggregationClause(req.$select),\n groupBy: [],\n where: undefined\n };\n if (req.$groupBy) {\n body.groupBy = modernToLegacyGroupByClause(req.$groupBy);\n }\n const result = await OntologiesV2.OntologyObjectSets.aggregate(addUserAgentAndRequestContextHeaders(clientCtx, objectType), await clientCtx.ontologyRid, {\n objectSet,\n groupBy: body.groupBy,\n aggregation: body.aggregation\n });\n if (!req.$groupBy) {\n !(result.data.length === 1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"no group by clause should mean only one data result\") : invariant(false) : void 0;\n return {\n ...aggregationToCountResult(result.data[0]),\n ...legacyToModernSingleAggregationResult(result.data[0])\n };\n }\n const ret = result.data.map(entry => {\n return {\n $group: entry.group,\n ...aggregationToCountResult(entry),\n ...legacyToModernSingleAggregationResult(entry)\n };\n }); // fixme\n\n return ret; // FIXME\n}\nfunction aggregationToCountResult(entry) {\n for (const aggregateResult of entry.metrics) {\n if (aggregateResult.name === \"count\") {\n return {\n $count: aggregateResult.value\n };\n }\n }\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\nReturns a client with its `requestContext` merged with the result of applying\n`augment` to its `requestContext`.\n\nThe second argument is an `Partial<RequestContext>`-returning `augment` function\ninstead of a `RequestContext` object to make referencing the current request\ncontext easier. For example, modifying the `fetchPage` function to add its name\nto the object set's called method chain could look like:\n```\naugmentRequestContext(\n clientContext,\n ctx => ({ methodChain: [...ctx.methodChain, \"fetchPage\"] })\n)\n```\nor\n```\naugmentRequestContext(\n clientContext,\n ({ methodChain }) => ({ methodChain: [...methodChain, \"fetchPage\"] })\n)\n```\ninstead of\n```\naugmentRequestContext(\n clientContext,\n { methodChain: [...clientContext.requestContext.methodChain, \"fetchPage\"] }\n)\n```\n*/\nexport const augmentRequestContext = (client, augment) => ({\n ...client,\n requestContext: {\n ...client.requestContext,\n ...augment(client.requestContext)\n }\n});","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst WIRE_OBJECT_SET_TYPES = new Set([\"base\", \"filter\", \"intersect\", \"reference\", \"searchAround\", \"static\", \"subtract\", \"union\"]);\n\n/** @internal */\nexport function isWireObjectSet(o) {\n return o != null && typeof o === \"object\" && WIRE_OBJECT_SET_TYPES.has(o.type);\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport WebSocket from \"isomorphic-ws\";\nimport invariant from \"tiny-invariant\";\nconst MINIMUM_RECONNECT_DELAY_MS = 5 * 1000;\n\n/** Noop function to reduce conditional checks */\nfunction doNothing() {}\n\n/**\n * Converts an ObjectSetListener to one where all the functions are defined.\n */\nfunction fillOutListener({\n onChange = doNothing,\n onError = doNothing,\n onOutOfDate = doNothing,\n onSuccessfulSubscription = doNothing\n}) {\n return {\n onChange,\n onError,\n onOutOfDate,\n onSuccessfulSubscription\n };\n}\nfunction isReady(sub) {\n return sub.isReady != null;\n}\nfunction subscriptionIsDone(sub) {\n return sub.status === \"done\" || sub.status === \"error\";\n}\n\n/** @internal */\nexport class ObjectSetListenerWebsocket {\n static #instances = new WeakMap();\n // FIXME\n static getInstance(client) {\n let instance = ObjectSetListenerWebsocket.#instances.get(client.clientCacheKey);\n if (instance == null) {\n instance = new ObjectSetListenerWebsocket(client);\n ObjectSetListenerWebsocket.#instances.set(client.clientCacheKey, instance);\n }\n return instance;\n }\n #ws;\n #lastWsConnect = 0;\n #client;\n #logger;\n\n /**\n * map of requestId to all active subscriptions at the time of the request\n */\n #pendingSubscriptions = new Map();\n\n /**\n * Map of subscriptionId to Subscription. Note: the subscriptionId may be\n * temporary and not the actual subscriptionId from the server.\n */\n #subscriptions = new Map();\n #endedSubscriptions = new Set();\n #maybeDisconnectTimeout;\n\n // DO NOT CONSTRUCT DIRECTLY. ONLY EXPOSED AS A TESTING SEAM\n constructor(client, {\n minimumReconnectDelayMs = MINIMUM_RECONNECT_DELAY_MS\n } = {}) {\n this.MINIMUM_RECONNECT_DELAY_MS = minimumReconnectDelayMs;\n this.#client = client;\n this.#logger = client.logger?.child({}, {\n msgPrefix: \"<OSW> \"\n });\n !(client.baseUrl.startsWith(\"https://\") || client.baseUrl.startsWith(\"http://\")) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Stack must be a URL\") : invariant(false) : void 0;\n }\n async subscribe(objectType, objectSet, listener, properties = []) {\n const objOrInterfaceDef = objectType.type === \"object\" ? await this.#client.ontologyProvider.getObjectDefinition(objectType.apiName) : await this.#client.ontologyProvider.getInterfaceDefinition(objectType.apiName);\n let objectProperties = [];\n let referenceProperties = [];\n if (properties.length === 0) {\n properties = Object.keys(objOrInterfaceDef.properties);\n }\n objectProperties = properties.filter(p => objOrInterfaceDef.properties[p].type !== \"geotimeSeriesReference\");\n referenceProperties = properties.filter(p => objOrInterfaceDef.properties[p].type === \"geotimeSeriesReference\");\n const sub = {\n listener: fillOutListener(listener),\n objectSet,\n primaryKeyPropertyName: objOrInterfaceDef.type === \"interface\" ? undefined : objOrInterfaceDef.primaryKeyApiName,\n requestedProperties: objectProperties,\n requestedReferenceProperties: referenceProperties,\n status: \"preparing\",\n // Since we don't have a real subscription id yet but we need to keep\n // track of this reference, we can just use a random uuid.\n subscriptionId: `TMP-${nextUuid()}}`,\n interfaceApiName: objOrInterfaceDef.type === \"object\" ? undefined : objOrInterfaceDef.apiName\n };\n this.#subscriptions.set(sub.subscriptionId, sub);\n\n // actually prepares the subscription, ensures the ws is ready, and sends\n // a subscribe message. We don't want to block on this.\n void this.#initiateSubscribe(sub);\n return () => {\n this.#unsubscribe(sub);\n };\n }\n\n /**\n * Called at least once for every subscription.\n *\n * - Resets pending expiry\n * - Recreates temporary object set\n * - Triggers a full subscribe message\n *\n * @returns\n */\n async #initiateSubscribe(sub) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#logger?.debug(\"#initiateSubscribe()\");\n }\n try {\n await this.#ensureWebsocket();\n\n // the consumer may have already unsubscribed before we are ready to request a subscription\n // so we have to acquire the pendingSubscription after the await.\n if (subscriptionIsDone(sub)) {\n return;\n }\n sub.isReady = true;\n // if we aren't open, then this happens after we #onConnect\n if (this.#ws?.readyState === WebSocket.OPEN) {\n this.#sendSubscribeMessage();\n }\n } catch (error) {\n this.#logger?.error(error, \"Error in #initiateSubscribe\");\n this.#tryCatchOnError(sub, true, error);\n }\n }\n #sendSubscribeMessage() {\n if (process.env.NODE_ENV !== \"production\") {\n this.#logger?.debug(\"#sendSubscribeMessage()\");\n }\n // If two calls to `.subscribe()` happen at once (or if the connection is reset),\n // we may have multiple subscriptions that don't have a subscriptionId yet,\n // so we filter those out.\n const readySubs = [...this.#subscriptions.values()].filter(isReady);\n const id = nextUuid();\n // responses come back as an array of subIds, so we need to know the sources\n this.#pendingSubscriptions.set(id, readySubs);\n\n // every subscribe message \"overwrites\" the previous ones that are not\n // re-included, so we have to reconstitute the entire list of subscriptions\n const subscribe = {\n id,\n requests: readySubs.map(({\n objectSet,\n requestedProperties,\n requestedReferenceProperties,\n interfaceApiName\n }) => {\n return {\n objectSet: objectSet,\n propertySet: requestedProperties,\n referenceSet: requestedReferenceProperties\n };\n })\n };\n if (process.env.NODE_ENV !== \"production\") {\n this.#logger?.debug({\n payload: subscribe\n }, \"sending subscribe message\");\n }\n this.#ws?.send(JSON.stringify(subscribe));\n }\n #unsubscribe(sub, newStatus = \"done\") {\n if (subscriptionIsDone(sub)) {\n // if we are already done, we don't need to do anything\n return;\n }\n sub.status = newStatus;\n\n // make sure listeners do nothing now\n sub.listener = fillOutListener({});\n this.#subscriptions.delete(sub.subscriptionId);\n this.#endedSubscriptions.add(sub.subscriptionId);\n this.#sendSubscribeMessage();\n\n // If we have no more subscriptions, we can disconnect the websocket\n // however we should wait a bit to see if we get any more subscriptions.\n // For example, when switching between react views, you may unsubscribe\n // in the old view and subscribe in the new view. We don't need to re-establish\n // the websocket connection in that case.\n if (this.#maybeDisconnectTimeout) {\n // We reset the timeout on every unsubscribe so its always at least 15s from\n // the last time we are empty. E.g.:\n // - 0s: Subscribe(A)\n // - 10s: Unsubscribe(A)\n // - 11s: Subscribe(B)\n // - 20s: Unsubscribe(B)\n // If we do not clear out the timeout we would disconnect at 25s but that would only be\n // 5s after the last subscription was removed instead of at 35s for the desired 15s.\n clearTimeout(this.#maybeDisconnectTimeout);\n }\n this.#maybeDisconnectTimeout = setTimeout(() => {\n this.#maybeDisconnectTimeout = undefined;\n if (this.#subscriptions.size === 0) {\n this.#cycleWebsocket();\n }\n }, 15_000 /* ms */);\n }\n async #ensureWebsocket() {\n if (this.#ws == null) {\n const {\n baseUrl,\n tokenProvider\n } = this.#client;\n const url = constructWebsocketUrl(baseUrl, await this.#client.ontologyRid);\n const token = await tokenProvider();\n\n // tokenProvider is async, there could potentially be a race to create the websocket.\n // Only the first call to reach here will find a null this.#ws, the rest will bail out\n if (this.#ws == null) {\n // TODO this can probably be exponential backoff with jitter\n // don't reconnect more quickly than MINIMUM_RECONNECT_DELAY\n const nextConnectTime = (this.#lastWsConnect ?? 0) + this.MINIMUM_RECONNECT_DELAY_MS;\n if (nextConnectTime > Date.now()) {\n await new Promise(resolve => {\n setTimeout(resolve, nextConnectTime - Date.now());\n });\n }\n this.#lastWsConnect = Date.now();\n\n // we again may have lost the race after our minimum backoff time\n if (this.#ws == null) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#logger?.debug(\"Creating websocket\");\n }\n this.#ws = new WebSocket(url, [`Bearer-${token}`]);\n this.#ws.addEventListener(\"close\", this.#onClose);\n this.#ws.addEventListener(\"message\", this.#onMessage);\n this.#ws.addEventListener(\"open\", this.#onOpen);\n }\n }\n // Allow await-ing the websocket open event if it isn't open already.\n // This needs to happen even for callers that didn't just create this.#ws\n if (this.#ws.readyState === WebSocket.CONNECTING) {\n const ws = this.#ws;\n return new Promise((resolve, reject) => {\n function cleanup() {\n ws.removeEventListener(\"open\", open);\n ws.removeEventListener(\"error\", error);\n ws.removeEventListener(\"close\", cleanup);\n }\n function open() {\n cleanup();\n resolve();\n }\n function error(evt) {\n cleanup();\n reject(evt);\n }\n ws.addEventListener(\"open\", open);\n ws.addEventListener(\"error\", error);\n ws.addEventListener(\"close\", cleanup);\n });\n }\n }\n }\n #onOpen = () => {\n // resubscribe all of the listeners\n this.#sendSubscribeMessage();\n };\n #onMessage = async message => {\n const data = JSON.parse(message.data.toString());\n if (process.env.NODE_ENV !== \"production\") {\n this.#logger?.debug({\n payload: data\n }, \"received message from ws\");\n }\n switch (data.type) {\n case \"objectSetChanged\":\n await this.#handleMessage_objectSetChanged(data);\n return;\n case \"refreshObjectSet\":\n this.#handleMessage_refreshObjectSet(data);\n return;\n case \"subscribeResponses\":\n this.#handleMessage_subscribeResponses(data);\n return;\n case \"subscriptionClosed\":\n {\n this.#handleMessage_subscriptionClosed(data);\n return;\n }\n default:\n const _ = data;\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Unexpected message type\") : invariant(false) : void 0;\n }\n };\n #handleMessage_objectSetChanged = async payload => {\n const sub = this.#subscriptions.get(payload.id);\n if (sub == null) return;\n const objectUpdates = payload.updates.filter(update => update.type === \"object\");\n const referenceUpdates = payload.updates.filter(update => update.type === \"reference\");\n const osdkObjectsWithReferenceUpdates = await Promise.all(referenceUpdates.map(async o => {\n const osdkObjectArray = await this.#client.objectFactory2(this.#client, [{\n __apiName: o.objectType,\n __primaryKey: sub.primaryKeyPropertyName != null ? o.primaryKey[sub.primaryKeyPropertyName] : undefined,\n ...o.primaryKey,\n [o.property]: o.value\n }], sub.interfaceApiName, false, undefined, false, await this.#fetchInterfaceMapping(o.objectType, sub.interfaceApiName));\n const singleOsdkObject = osdkObjectArray[0] ?? undefined;\n return singleOsdkObject != null ? {\n object: singleOsdkObject,\n state: \"ADDED_OR_UPDATED\"\n } : undefined;\n }));\n for (const update of osdkObjectsWithReferenceUpdates) {\n if (update != null) {\n try {\n sub.listener.onChange?.(update);\n } catch (error) {\n this.#logger?.error(error, \"Error in onChange callback\");\n this.#tryCatchOnError(sub, false, error);\n }\n }\n }\n const osdkObjects = await Promise.all(objectUpdates.map(async o => {\n const keysToDelete = Object.keys(o.object).filter(key => sub.requestedReferenceProperties.includes(key));\n for (const key of keysToDelete) {\n delete o.object[key];\n }\n const osdkObjectArray = await this.#client.objectFactory2(this.#client, [o.object], sub.interfaceApiName, false, undefined, false, await this.#fetchInterfaceMapping(o.object.__apiName, sub.interfaceApiName));\n const singleOsdkObject = osdkObjectArray[0] ?? undefined;\n return singleOsdkObject != null ? {\n object: singleOsdkObject,\n state: o.state\n } : undefined;\n }));\n for (const osdkObject of osdkObjects) {\n if (osdkObject != null) {\n try {\n sub.listener.onChange?.(osdkObject);\n } catch (error) {\n this.#logger?.error(error, \"Error in onChange callback\");\n this.#tryCatchOnError(sub, false, error);\n }\n }\n }\n };\n async #fetchInterfaceMapping(objectTypeApiName, interfaceApiName) {\n if (interfaceApiName == null) return {};\n const interfaceMap = (await this.#client.ontologyProvider.getObjectDefinition(objectTypeApiName)).interfaceMap;\n return {\n [interfaceApiName]: {\n [objectTypeApiName]: interfaceMap[interfaceApiName]\n }\n };\n }\n #handleMessage_refreshObjectSet = payload => {\n const sub = this.#subscriptions.get(payload.id);\n !sub ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Expected subscription id ${payload.id}`) : invariant(false) : void 0;\n try {\n sub.listener.onOutOfDate();\n } catch (error) {\n this.#logger?.error(error, \"Error in onOutOfDate callback\");\n this.#tryCatchOnError(sub, false, error);\n }\n };\n #handleMessage_subscribeResponses = payload => {\n const {\n id,\n responses\n } = payload;\n const subs = this.#pendingSubscriptions.get(id);\n !subs ? process.env.NODE_ENV !== \"production\" ? invariant(false, `should have a pending subscription for ${id}`) : invariant(false) : void 0;\n this.#pendingSubscriptions.delete(id);\n for (let i = 0; i < responses.length; i++) {\n const sub = subs[i];\n const response = responses[i];\n switch (response.type) {\n case \"error\":\n this.#tryCatchOnError(sub, true, response.errors);\n this.#unsubscribe(sub, \"error\");\n break;\n case \"qos\":\n // the server has requested that we tear down our websocket and reconnect to help load balance\n this.#cycleWebsocket();\n break;\n case \"success\":\n // `\"preparing\"` should only be the status on an initial subscribe.\n const shouldFireOutOfDate = sub.status === \"expired\" || sub.status === \"reconnecting\";\n if (process.env.NODE_ENV !== \"production\") {\n this.#logger?.debug({\n shouldFireOutOfDate\n }, \"success\");\n }\n sub.status = \"subscribed\";\n if (sub.subscriptionId !== response.id) {\n // might be the temporary one\n this.#subscriptions.delete(sub.subscriptionId);\n sub.subscriptionId = response.id;\n this.#subscriptions.set(sub.subscriptionId, sub); // future messages come by this subId\n }\n try {\n if (shouldFireOutOfDate) sub.listener.onOutOfDate();else sub.listener.onSuccessfulSubscription();\n } catch (error) {\n this.#logger?.error(error, \"Error in onOutOfDate or onSuccessfulSubscription callback\");\n this.#tryCatchOnError(sub, false, error);\n }\n break;\n default:\n this.#tryCatchOnError(sub, true, response);\n }\n }\n };\n #handleMessage_subscriptionClosed(payload) {\n const sub = this.#subscriptions.get(payload.id);\n if (sub == null && this.#endedSubscriptions.has(payload.id)) return;\n !sub ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Expected subscription id ${payload.id}`) : invariant(false) : void 0;\n this.#tryCatchOnError(sub, true, payload.cause);\n this.#unsubscribe(sub, \"error\");\n }\n #onClose = event => {\n if (process.env.NODE_ENV !== \"production\") {\n this.#logger?.debug({\n event\n }, \"Received close event from ws\", event);\n }\n // TODO we should probably throttle this so we don't abuse the backend\n this.#cycleWebsocket();\n };\n #cycleWebsocket = () => {\n if (this.#ws) {\n this.#ws.removeEventListener(\"open\", this.#onOpen);\n this.#ws.removeEventListener(\"message\", this.#onMessage);\n this.#ws.removeEventListener(\"close\", this.#onClose);\n if (this.#ws.readyState !== WebSocket.CLOSING && this.#ws.readyState !== WebSocket.CLOSED) {\n this.#ws.close();\n }\n this.#ws = undefined;\n }\n\n // if we have any listeners that are still depending on us, go ahead and reopen the websocket\n if (this.#subscriptions.size > 0) {\n if (process.env.NODE_ENV !== \"production\") {\n for (const s of this.#subscriptions.values()) {\n !(s.status !== \"done\" && s.status !== \"error\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"should not have done/error subscriptions still\") : invariant(false) : void 0;\n }\n }\n for (const s of this.#subscriptions.values()) {\n if (s.status === \"subscribed\") s.status = \"reconnecting\";\n }\n\n // we don't care about the result of this (we want cycleWebsocket to be fire and forget)\n // just that it happens\n void this.#ensureWebsocket();\n }\n };\n #tryCatchOnError = (sub, subscriptionClosed, error) => {\n try {\n sub.listener.onError({\n subscriptionClosed: subscriptionClosed,\n error\n });\n } catch (onErrorError) {\n // eslint-disable-next-line no-console\n console.error(`Error encountered in an onError callback for an OSDK subscription`, onErrorError);\n // eslint-disable-next-line no-console\n console.error(`This onError call was triggered by an error in another callback`, error);\n // eslint-disable-next-line no-console\n console.error(`The subscription has been closed.`, error);\n if (!subscriptionClosed) {\n this.#logger?.error(error, \"Error in onError callback\");\n this.#unsubscribe(sub, \"error\");\n this.#tryCatchOnError(sub, true, onErrorError);\n }\n }\n };\n}\n\n/** @internal */\nexport function constructWebsocketUrl(baseUrl, ontologyRid) {\n const base = new URL(baseUrl);\n const url = new URL(`api/v2/ontologySubscriptions/ontologies/${ontologyRid}/streamSubscriptions`, base);\n url.protocol = url.protocol.replace(\"https\", \"wss\");\n return url;\n}\nlet uuidCounter = 0;\nfunction nextUuid() {\n return `00000000-0000-0000-0000-${(uuidCounter++).toString().padStart(12, \"0\")}`;\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createWithPropertiesObjectSet } from \"../derivedProperties/createWithPropertiesObjectSet.js\";\nimport { modernToLegacyWhereClause } from \"../internal/conversions/modernToLegacyWhereClause.js\";\nimport { aggregate } from \"../object/aggregate.js\";\nimport { fetchPageInternal, fetchPageWithErrorsInternal } from \"../object/fetchPage.js\";\nimport { fetchSingle, fetchSingleWithErrors } from \"../object/fetchSingle.js\";\nimport { augmentRequestContext } from \"../util/augmentRequestContext.js\";\nimport { resolveBaseObjectSetType } from \"../util/objectSetUtils.js\";\nimport { isWireObjectSet } from \"../util/WireObjectSet.js\";\nimport { ObjectSetListenerWebsocket } from \"./ObjectSetListenerWebsocket.js\";\nfunction isObjectTypeDefinition(def) {\n return def.type === \"object\";\n}\n\n/* @internal */\nexport function isObjectSet(o) {\n return o != null && typeof o === \"object\" && isWireObjectSet(objectSetDefinitions.get(o));\n}\n\n/** @internal */\nexport function getWireObjectSet(objectSet) {\n return objectSetDefinitions.get(objectSet);\n}\nconst objectSetDefinitions = new WeakMap();\n\n/** @internal */\nexport function createObjectSet(objectType, clientCtx, objectSet = resolveBaseObjectSetType(objectType)) {\n const base = {\n aggregate: aggregate.bind(globalThis, augmentRequestContext(clientCtx, _ => ({\n finalMethodCall: \"aggregate\"\n })), objectType, objectSet),\n fetchPage: fetchPageInternal.bind(globalThis, augmentRequestContext(clientCtx, _ => ({\n finalMethodCall: \"fetchPage\"\n })), objectType, objectSet),\n fetchPageWithErrors: fetchPageWithErrorsInternal.bind(globalThis, augmentRequestContext(clientCtx, _ => ({\n finalMethodCall: \"fetchPageWithErrors\"\n })), objectType, objectSet),\n where: clause => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"filter\",\n objectSet: objectSet,\n where: modernToLegacyWhereClause(clause, objectType)\n });\n },\n pivotTo: function (type) {\n return createSearchAround(type)();\n },\n union: (...objectSets) => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"union\",\n objectSets: [objectSet, ...objectSets.map(os => objectSetDefinitions.get(os))]\n });\n },\n intersect: (...objectSets) => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"intersect\",\n objectSets: [objectSet, ...objectSets.map(os => objectSetDefinitions.get(os))]\n });\n },\n subtract: (...objectSets) => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"subtract\",\n objectSets: [objectSet, ...objectSets.map(os => objectSetDefinitions.get(os))]\n });\n },\n asyncIter: async function* (args) {\n let $nextPageToken = undefined;\n do {\n const result = await fetchPageInternal(augmentRequestContext(clientCtx, _ => ({\n finalMethodCall: \"asyncIter\"\n })), objectType, objectSet, {\n ...args,\n $nextPageToken\n });\n $nextPageToken = result.nextPageToken;\n for (const obj of result.data) {\n yield obj;\n }\n } while ($nextPageToken != null);\n },\n fetchOne: isObjectTypeDefinition(objectType) ? async (primaryKey, options) => {\n return await fetchSingle(augmentRequestContext(clientCtx, _ => ({\n finalMethodCall: \"fetchOne\"\n })), objectType, options, await createWithPk(clientCtx, objectType, objectSet, primaryKey));\n } : undefined,\n fetchOneWithErrors: isObjectTypeDefinition(objectType) ? async (primaryKey, options) => {\n return await fetchSingleWithErrors(augmentRequestContext(clientCtx, _ => ({\n finalMethodCall: \"fetchOneWithErrors\"\n })), objectType, options, await createWithPk(clientCtx, objectType, objectSet, primaryKey));\n } : undefined,\n subscribe: (listener, opts) => {\n const pendingSubscribe = ObjectSetListenerWebsocket.getInstance(clientCtx).subscribe(objectType, objectSet, listener, opts?.properties);\n return {\n unsubscribe: async () => (await pendingSubscribe)()\n };\n },\n withProperties: clause => {\n const definitionMap = new Map();\n const derivedProperties = {};\n for (const key of Object.keys(clause)) {\n const derivedPropertyDefinition = clause[key](createWithPropertiesObjectSet(objectType, {\n type: \"methodInput\"\n }, definitionMap));\n derivedProperties[key] = definitionMap.get(derivedPropertyDefinition);\n }\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"withProperties\",\n derivedProperties: derivedProperties,\n objectSet: objectSet\n });\n },\n $objectSetInternals: {\n def: objectType\n }\n };\n function createSearchAround(link) {\n return () => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"searchAround\",\n objectSet,\n link\n });\n };\n }\n objectSetDefinitions.set(base, objectSet);\n\n // we are using a type assertion because the marker symbol defined in BaseObjectSet isn't actually used\n // at runtime.\n return base;\n}\nasync function createWithPk(clientCtx, objectType, objectSet, primaryKey) {\n const objDef = await clientCtx.ontologyProvider.getObjectDefinition(objectType.apiName);\n const withPk = {\n type: \"filter\",\n objectSet: objectSet,\n where: {\n type: \"eq\",\n field: objDef.primaryKeyApiName,\n value: primaryKey\n }\n };\n return withPk;\n}"]}
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ // src/object/convertWireToOsdkObjects/InternalSymbols.ts
4
+ var UnderlyingOsdkObject = Symbol("Underlying Object" );
5
+ var ObjectDefRef = Symbol("ObjectDefinition" );
6
+ var InterfaceDefRef = Symbol("InterfaceDefinition" );
7
+ var ClientRef = Symbol("ClientRef" );
8
+
9
+ exports.ClientRef = ClientRef;
10
+ exports.InterfaceDefRef = InterfaceDefRef;
11
+ exports.ObjectDefRef = ObjectDefRef;
12
+ exports.UnderlyingOsdkObject = UnderlyingOsdkObject;
13
+ //# sourceMappingURL=chunk-T4NIFYZS.cjs.map
14
+ //# sourceMappingURL=chunk-T4NIFYZS.cjs.map