@osdk/client 2.2.0-beta.2 → 2.2.0-beta.21

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 (483) hide show
  1. package/CHANGELOG.md +282 -0
  2. package/build/browser/Client.js.map +1 -1
  3. package/build/browser/MinimalClientContext.js.map +1 -1
  4. package/build/browser/__unstable/ConjureSupport.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 +226 -87
  8. package/build/browser/actions/actions.test.js.map +1 -1
  9. package/build/browser/actions/applyAction.js +28 -16
  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 +36 -13
  20. package/build/browser/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
  21. package/build/browser/derivedProperties/createWithPropertiesObjectSet.test.js +133 -0
  22. package/build/browser/derivedProperties/createWithPropertiesObjectSet.test.js.map +1 -1
  23. package/build/browser/derivedProperties/derivedPropertyDefinitionFactory.js +94 -0
  24. package/build/browser/derivedProperties/derivedPropertyDefinitionFactory.js.map +1 -0
  25. package/build/browser/fetchMetadata.test.js +11 -9
  26. package/build/browser/fetchMetadata.test.js.map +1 -1
  27. package/build/browser/index.js +1 -0
  28. package/build/browser/index.js.map +1 -1
  29. package/build/browser/intellisense.test.helpers/showsObjectPropertyJsdoc.js +25 -0
  30. package/build/browser/intellisense.test.helpers/showsObjectPropertyJsdoc.js.map +1 -0
  31. package/build/browser/intellisense.test.js +17 -1
  32. package/build/browser/intellisense.test.js.map +1 -1
  33. package/build/browser/internal/conversions/modernToLegacyGroupByClause.js +7 -0
  34. package/build/browser/internal/conversions/modernToLegacyGroupByClause.js.map +1 -1
  35. package/build/browser/internal/conversions/modernToLegacyWhereClause.js +1 -1
  36. package/build/browser/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
  37. package/build/browser/logger/BaseLogger.js +59 -0
  38. package/build/browser/logger/BaseLogger.js.map +1 -0
  39. package/build/browser/logger/BrowserLogger.js +67 -0
  40. package/build/browser/logger/BrowserLogger.js.map +1 -0
  41. package/build/browser/logger/MinimalLogger.js +39 -0
  42. package/build/browser/logger/MinimalLogger.js.map +1 -0
  43. package/build/browser/logger/MinimalLogger.test.js +60 -0
  44. package/build/browser/logger/MinimalLogger.test.js.map +1 -0
  45. package/build/browser/logger/TestLogger.js +56 -0
  46. package/build/browser/logger/TestLogger.js.map +1 -0
  47. package/build/browser/object/AttachmentUpload.js +3 -0
  48. package/build/browser/object/AttachmentUpload.js.map +1 -1
  49. package/build/browser/object/SimpleOsdkProperties.js +2 -0
  50. package/build/browser/object/SimpleOsdkProperties.js.map +1 -0
  51. package/build/browser/object/aggregate.test.js +12 -2
  52. package/build/browser/object/aggregate.test.js.map +1 -1
  53. package/build/browser/object/attachment.test.js +20 -7
  54. package/build/browser/object/attachment.test.js.map +1 -1
  55. package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js +2 -0
  56. package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -0
  57. package/build/browser/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -1
  58. package/build/browser/object/convertWireToOsdkObjects/ObjectHolder.js.map +1 -1
  59. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js +29 -0
  60. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  61. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js +53 -35
  62. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  63. package/build/browser/object/convertWireToOsdkObjects/getDollarAs.js.map +1 -1
  64. package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  65. package/build/browser/object/convertWireToOsdkObjects.js +10 -11
  66. package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
  67. package/build/browser/object/convertWireToOsdkObjects.test.js +46 -36
  68. package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
  69. package/build/browser/object/fetchPage.js +17 -4
  70. package/build/browser/object/fetchPage.js.map +1 -1
  71. package/build/browser/object/fetchPage.test.js +56 -2
  72. package/build/browser/object/fetchPage.test.js.map +1 -1
  73. package/build/browser/object/geotimeseriesreference.test.js +56 -134
  74. package/build/browser/object/geotimeseriesreference.test.js.map +1 -1
  75. package/build/browser/object/media.test.js +19 -14
  76. package/build/browser/object/media.test.js.map +1 -1
  77. package/build/browser/object/object.test.js +182 -66
  78. package/build/browser/object/object.test.js.map +1 -1
  79. package/build/browser/object/timeseries.test.js +119 -85
  80. package/build/browser/object/timeseries.test.js.map +1 -1
  81. package/build/browser/objectSet/InterfaceObjectSet.test.js +37 -17
  82. package/build/browser/objectSet/InterfaceObjectSet.test.js.map +1 -1
  83. package/build/browser/objectSet/ObjectSet.test.js +212 -114
  84. package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
  85. package/build/browser/objectSet/ObjectSetListenerWebsocket.js +20 -16
  86. package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  87. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +21 -12
  88. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  89. package/build/browser/objectSet/createObjectSet.js +2 -1
  90. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  91. package/build/browser/observable/ListPayload.js.map +1 -1
  92. package/build/browser/observable/ObjectPayload.js.map +1 -1
  93. package/build/browser/observable/ObservableClient.js.map +1 -1
  94. package/build/browser/observable/OptimisticBuilder.js.map +1 -1
  95. package/build/browser/observable/internal/ActionApplication.js +102 -0
  96. package/build/browser/observable/internal/ActionApplication.js.map +1 -0
  97. package/build/browser/observable/internal/BulkObjectLoader.js +93 -0
  98. package/build/browser/observable/internal/BulkObjectLoader.js.map +1 -0
  99. package/build/browser/observable/internal/BulkObjectLoader.test.js +112 -0
  100. package/build/browser/observable/internal/BulkObjectLoader.test.js.map +1 -0
  101. package/build/browser/observable/internal/CacheKey.js +38 -1
  102. package/build/browser/observable/internal/CacheKey.js.map +1 -1
  103. package/build/browser/observable/internal/CacheKeys.js +4 -4
  104. package/build/browser/observable/internal/CacheKeys.js.map +1 -1
  105. package/build/browser/observable/internal/Changes.js +58 -0
  106. package/build/browser/observable/internal/Changes.js.map +1 -0
  107. package/build/browser/observable/internal/Layer.js +6 -3
  108. package/build/browser/observable/internal/Layer.js.map +1 -1
  109. package/build/browser/observable/internal/ListQuery.js +495 -129
  110. package/build/browser/observable/internal/ListQuery.js.map +1 -1
  111. package/build/browser/observable/internal/ObjectQuery.js +40 -14
  112. package/build/browser/observable/internal/ObjectQuery.js.map +1 -1
  113. package/build/browser/observable/internal/ObservableClientImpl.js +4 -12
  114. package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
  115. package/build/browser/observable/internal/OptimisticJob.js +30 -29
  116. package/build/browser/observable/internal/OptimisticJob.js.map +1 -1
  117. package/build/browser/observable/internal/OrderByCanonicalizer.js +73 -0
  118. package/build/browser/observable/internal/OrderByCanonicalizer.js.map +1 -0
  119. package/build/browser/observable/internal/OrderByCanonicalizer.test.js +78 -0
  120. package/build/browser/observable/internal/OrderByCanonicalizer.test.js.map +1 -0
  121. package/build/browser/observable/internal/Query.js +79 -6
  122. package/build/browser/observable/internal/Query.js.map +1 -1
  123. package/build/browser/observable/internal/RefCounts.js +7 -2
  124. package/build/browser/observable/internal/RefCounts.js.map +1 -1
  125. package/build/browser/observable/internal/SimpleWhereClause.js +2 -0
  126. package/build/browser/observable/internal/SimpleWhereClause.js.map +1 -0
  127. package/build/browser/observable/internal/Store.js +140 -190
  128. package/build/browser/observable/internal/Store.js.map +1 -1
  129. package/build/browser/observable/internal/Store.test.js +666 -300
  130. package/build/browser/observable/internal/Store.test.js.map +1 -1
  131. package/build/browser/observable/internal/WhereClauseCanonicalizer.js +11 -3
  132. package/build/browser/observable/internal/WhereClauseCanonicalizer.js.map +1 -1
  133. package/build/browser/observable/internal/objectMatchesWhereClause.js +0 -4
  134. package/build/browser/observable/internal/objectMatchesWhereClause.js.map +1 -1
  135. package/build/browser/observable/internal/objectMatchesWhereClause.test.js.map +1 -1
  136. package/build/browser/observable/internal/testUtils.js +222 -19
  137. package/build/browser/observable/internal/testUtils.js.map +1 -1
  138. package/build/browser/ontology/StandardOntologyProvider.test.js +17 -16
  139. package/build/browser/ontology/StandardOntologyProvider.test.js.map +1 -1
  140. package/build/browser/ontology/loadFullObjectMetadata.js +0 -1
  141. package/build/browser/ontology/loadFullObjectMetadata.js.map +1 -1
  142. package/build/browser/public/internal.js +2 -0
  143. package/build/browser/public/internal.js.map +1 -1
  144. package/build/browser/public/unstable-do-not-use.js +1 -0
  145. package/build/browser/public/unstable-do-not-use.js.map +1 -1
  146. package/build/browser/public-utils/osdkConfig.js +49 -0
  147. package/build/browser/public-utils/osdkConfig.js.map +1 -0
  148. package/build/{esm/observable/internal/ChangedObjects.js → browser/public-utils/vite-env.d.ts} +2 -7
  149. package/build/browser/queries/applyQuery.js +34 -2
  150. package/build/browser/queries/applyQuery.js.map +1 -1
  151. package/build/browser/queries/queries.test.js +36 -13
  152. package/build/browser/queries/queries.test.js.map +1 -1
  153. package/build/browser/queries/types.js.map +1 -1
  154. package/build/browser/tsserver.js.map +1 -1
  155. package/build/browser/util/UserAgent.js +1 -1
  156. package/build/browser/util/UserAgent.js.map +1 -1
  157. package/build/browser/util/extractRdpDefinition.js +140 -0
  158. package/build/browser/util/extractRdpDefinition.js.map +1 -0
  159. package/build/browser/util/extractRdpDefinition.test.js +233 -0
  160. package/build/browser/util/extractRdpDefinition.test.js.map +1 -0
  161. package/build/browser/{observable/internal/ChangedObjects.js → util/isPoint.js} +3 -7
  162. package/build/browser/util/isPoint.js.map +1 -0
  163. package/build/browser/util/objectSpecifierUtils.js +48 -0
  164. package/build/browser/util/objectSpecifierUtils.js.map +1 -0
  165. package/build/browser/util/objectSpecifierUtils.test.js +42 -0
  166. package/build/browser/util/objectSpecifierUtils.test.js.map +1 -0
  167. package/build/browser/util/toDataValue.js +14 -2
  168. package/build/browser/util/toDataValue.js.map +1 -1
  169. package/build/browser/util/toDataValue.test.js +37 -16
  170. package/build/browser/util/toDataValue.test.js.map +1 -1
  171. package/build/browser/util/toDataValueQueries.js +25 -2
  172. package/build/browser/util/toDataValueQueries.js.map +1 -1
  173. package/build/cjs/{Client-C8K3E1vH.d.cts → Client-CgL2LKN9.d.cts} +7 -8
  174. package/build/cjs/{chunk-T5UE6BI7.cjs → chunk-33GHS3X4.cjs} +256 -80
  175. package/build/cjs/chunk-33GHS3X4.cjs.map +1 -0
  176. package/build/cjs/{chunk-X7WGNFZ4.cjs → chunk-37QC7LR3.cjs} +173 -34
  177. package/build/cjs/chunk-37QC7LR3.cjs.map +1 -0
  178. package/build/cjs/chunk-T4NIFYZS.cjs +14 -0
  179. package/build/cjs/chunk-T4NIFYZS.cjs.map +1 -0
  180. package/build/cjs/index.cjs +298 -177
  181. package/build/cjs/index.cjs.map +1 -1
  182. package/build/cjs/index.d.cts +14 -22
  183. package/build/cjs/public/internal.cjs +61 -7
  184. package/build/cjs/public/internal.cjs.map +1 -1
  185. package/build/cjs/public/internal.d.cts +50 -3
  186. package/build/cjs/public/unstable-do-not-use.cjs +1181 -527
  187. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  188. package/build/cjs/public/unstable-do-not-use.d.cts +44 -25
  189. package/build/esm/Client.js.map +1 -1
  190. package/build/esm/MinimalClientContext.js.map +1 -1
  191. package/build/esm/__unstable/ConjureSupport.js.map +1 -1
  192. package/build/esm/actions/ActionValidationError.js +1 -1
  193. package/build/esm/actions/ActionValidationError.js.map +1 -1
  194. package/build/esm/actions/actions.test.js +226 -87
  195. package/build/esm/actions/actions.test.js.map +1 -1
  196. package/build/esm/actions/applyAction.js +28 -16
  197. package/build/esm/actions/applyAction.js.map +1 -1
  198. package/build/esm/createClient.js +19 -8
  199. package/build/esm/createClient.js.map +1 -1
  200. package/build/esm/createClient.test.js +14 -6
  201. package/build/esm/createClient.test.js.map +1 -1
  202. package/build/esm/createMinimalClient.js +2 -2
  203. package/build/esm/createMinimalClient.js.map +1 -1
  204. package/build/esm/createMinimalClientHelper.js +25 -0
  205. package/build/esm/createMinimalClientHelper.js.map +1 -0
  206. package/build/esm/derivedProperties/createWithPropertiesObjectSet.js +36 -13
  207. package/build/esm/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
  208. package/build/esm/derivedProperties/createWithPropertiesObjectSet.test.js +133 -0
  209. package/build/esm/derivedProperties/createWithPropertiesObjectSet.test.js.map +1 -1
  210. package/build/esm/derivedProperties/derivedPropertyDefinitionFactory.js +94 -0
  211. package/build/esm/derivedProperties/derivedPropertyDefinitionFactory.js.map +1 -0
  212. package/build/esm/fetchMetadata.test.js +11 -9
  213. package/build/esm/fetchMetadata.test.js.map +1 -1
  214. package/build/esm/index.js +1 -0
  215. package/build/esm/index.js.map +1 -1
  216. package/build/esm/intellisense.test.helpers/showsObjectPropertyJsdoc.js +25 -0
  217. package/build/esm/intellisense.test.helpers/showsObjectPropertyJsdoc.js.map +1 -0
  218. package/build/esm/intellisense.test.js +17 -1
  219. package/build/esm/intellisense.test.js.map +1 -1
  220. package/build/esm/internal/conversions/modernToLegacyGroupByClause.js +7 -0
  221. package/build/esm/internal/conversions/modernToLegacyGroupByClause.js.map +1 -1
  222. package/build/esm/internal/conversions/modernToLegacyWhereClause.js +1 -1
  223. package/build/esm/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
  224. package/build/esm/logger/BaseLogger.js +59 -0
  225. package/build/esm/logger/BaseLogger.js.map +1 -0
  226. package/build/esm/logger/BrowserLogger.js +67 -0
  227. package/build/esm/logger/BrowserLogger.js.map +1 -0
  228. package/build/esm/logger/MinimalLogger.js +39 -0
  229. package/build/esm/logger/MinimalLogger.js.map +1 -0
  230. package/build/esm/logger/MinimalLogger.test.js +60 -0
  231. package/build/esm/logger/MinimalLogger.test.js.map +1 -0
  232. package/build/esm/logger/TestLogger.js +56 -0
  233. package/build/esm/logger/TestLogger.js.map +1 -0
  234. package/build/esm/object/AttachmentUpload.js +3 -0
  235. package/build/esm/object/AttachmentUpload.js.map +1 -1
  236. package/build/esm/object/SimpleOsdkProperties.js +2 -0
  237. package/build/esm/object/SimpleOsdkProperties.js.map +1 -0
  238. package/build/esm/object/aggregate.test.js +12 -2
  239. package/build/esm/object/aggregate.test.js.map +1 -1
  240. package/build/esm/object/attachment.test.js +20 -7
  241. package/build/esm/object/attachment.test.js.map +1 -1
  242. package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js +2 -0
  243. package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -0
  244. package/build/esm/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -1
  245. package/build/esm/object/convertWireToOsdkObjects/ObjectHolder.js.map +1 -1
  246. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js +29 -0
  247. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  248. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js +53 -35
  249. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  250. package/build/esm/object/convertWireToOsdkObjects/getDollarAs.js.map +1 -1
  251. package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  252. package/build/esm/object/convertWireToOsdkObjects.js +10 -11
  253. package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
  254. package/build/esm/object/convertWireToOsdkObjects.test.js +46 -36
  255. package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
  256. package/build/esm/object/fetchPage.js +17 -4
  257. package/build/esm/object/fetchPage.js.map +1 -1
  258. package/build/esm/object/fetchPage.test.js +56 -2
  259. package/build/esm/object/fetchPage.test.js.map +1 -1
  260. package/build/esm/object/geotimeseriesreference.test.js +56 -134
  261. package/build/esm/object/geotimeseriesreference.test.js.map +1 -1
  262. package/build/esm/object/media.test.js +19 -14
  263. package/build/esm/object/media.test.js.map +1 -1
  264. package/build/esm/object/object.test.js +182 -66
  265. package/build/esm/object/object.test.js.map +1 -1
  266. package/build/esm/object/timeseries.test.js +119 -85
  267. package/build/esm/object/timeseries.test.js.map +1 -1
  268. package/build/esm/objectSet/InterfaceObjectSet.test.js +37 -17
  269. package/build/esm/objectSet/InterfaceObjectSet.test.js.map +1 -1
  270. package/build/esm/objectSet/ObjectSet.test.js +212 -114
  271. package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
  272. package/build/esm/objectSet/ObjectSetListenerWebsocket.js +20 -16
  273. package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  274. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +21 -12
  275. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  276. package/build/esm/objectSet/createObjectSet.js +2 -1
  277. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  278. package/build/esm/observable/ListPayload.js.map +1 -1
  279. package/build/esm/observable/ObjectPayload.js.map +1 -1
  280. package/build/esm/observable/ObservableClient.js.map +1 -1
  281. package/build/esm/observable/OptimisticBuilder.js.map +1 -1
  282. package/build/esm/observable/internal/ActionApplication.js +102 -0
  283. package/build/esm/observable/internal/ActionApplication.js.map +1 -0
  284. package/build/esm/observable/internal/BulkObjectLoader.js +93 -0
  285. package/build/esm/observable/internal/BulkObjectLoader.js.map +1 -0
  286. package/build/esm/observable/internal/BulkObjectLoader.test.js +112 -0
  287. package/build/esm/observable/internal/BulkObjectLoader.test.js.map +1 -0
  288. package/build/esm/observable/internal/CacheKey.js +38 -1
  289. package/build/esm/observable/internal/CacheKey.js.map +1 -1
  290. package/build/esm/observable/internal/CacheKeys.js +4 -4
  291. package/build/esm/observable/internal/CacheKeys.js.map +1 -1
  292. package/build/esm/observable/internal/Changes.js +58 -0
  293. package/build/esm/observable/internal/Changes.js.map +1 -0
  294. package/build/esm/observable/internal/Layer.js +6 -3
  295. package/build/esm/observable/internal/Layer.js.map +1 -1
  296. package/build/esm/observable/internal/ListQuery.js +495 -129
  297. package/build/esm/observable/internal/ListQuery.js.map +1 -1
  298. package/build/esm/observable/internal/ObjectQuery.js +40 -14
  299. package/build/esm/observable/internal/ObjectQuery.js.map +1 -1
  300. package/build/esm/observable/internal/ObservableClientImpl.js +4 -12
  301. package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
  302. package/build/esm/observable/internal/OptimisticJob.js +30 -29
  303. package/build/esm/observable/internal/OptimisticJob.js.map +1 -1
  304. package/build/esm/observable/internal/OrderByCanonicalizer.js +73 -0
  305. package/build/esm/observable/internal/OrderByCanonicalizer.js.map +1 -0
  306. package/build/esm/observable/internal/OrderByCanonicalizer.test.js +78 -0
  307. package/build/esm/observable/internal/OrderByCanonicalizer.test.js.map +1 -0
  308. package/build/esm/observable/internal/Query.js +79 -6
  309. package/build/esm/observable/internal/Query.js.map +1 -1
  310. package/build/esm/observable/internal/RefCounts.js +7 -2
  311. package/build/esm/observable/internal/RefCounts.js.map +1 -1
  312. package/build/esm/observable/internal/SimpleWhereClause.js +2 -0
  313. package/build/esm/observable/internal/SimpleWhereClause.js.map +1 -0
  314. package/build/esm/observable/internal/Store.js +140 -190
  315. package/build/esm/observable/internal/Store.js.map +1 -1
  316. package/build/esm/observable/internal/Store.test.js +666 -300
  317. package/build/esm/observable/internal/Store.test.js.map +1 -1
  318. package/build/esm/observable/internal/WhereClauseCanonicalizer.js +11 -3
  319. package/build/esm/observable/internal/WhereClauseCanonicalizer.js.map +1 -1
  320. package/build/esm/observable/internal/objectMatchesWhereClause.js +0 -4
  321. package/build/esm/observable/internal/objectMatchesWhereClause.js.map +1 -1
  322. package/build/esm/observable/internal/objectMatchesWhereClause.test.js.map +1 -1
  323. package/build/esm/observable/internal/testUtils.js +222 -19
  324. package/build/esm/observable/internal/testUtils.js.map +1 -1
  325. package/build/esm/ontology/StandardOntologyProvider.test.js +17 -16
  326. package/build/esm/ontology/StandardOntologyProvider.test.js.map +1 -1
  327. package/build/esm/ontology/loadFullObjectMetadata.js +0 -1
  328. package/build/esm/ontology/loadFullObjectMetadata.js.map +1 -1
  329. package/build/esm/public/internal.js +2 -0
  330. package/build/esm/public/internal.js.map +1 -1
  331. package/build/esm/public/unstable-do-not-use.js +1 -0
  332. package/build/esm/public/unstable-do-not-use.js.map +1 -1
  333. package/build/esm/public-utils/osdkConfig.js +49 -0
  334. package/build/esm/public-utils/osdkConfig.js.map +1 -0
  335. package/build/esm/public-utils/vite-env.d.ts +19 -0
  336. package/build/esm/queries/applyQuery.js +34 -2
  337. package/build/esm/queries/applyQuery.js.map +1 -1
  338. package/build/esm/queries/queries.test.js +36 -13
  339. package/build/esm/queries/queries.test.js.map +1 -1
  340. package/build/esm/queries/types.js.map +1 -1
  341. package/build/esm/tsserver.js.map +1 -1
  342. package/build/esm/util/UserAgent.js +1 -1
  343. package/build/esm/util/UserAgent.js.map +1 -1
  344. package/build/esm/util/extractRdpDefinition.js +140 -0
  345. package/build/esm/util/extractRdpDefinition.js.map +1 -0
  346. package/build/esm/util/extractRdpDefinition.test.js +233 -0
  347. package/build/esm/util/extractRdpDefinition.test.js.map +1 -0
  348. package/build/esm/util/isPoint.js +20 -0
  349. package/build/esm/util/isPoint.js.map +1 -0
  350. package/build/esm/util/objectSpecifierUtils.js +48 -0
  351. package/build/esm/util/objectSpecifierUtils.js.map +1 -0
  352. package/build/esm/util/objectSpecifierUtils.test.js +42 -0
  353. package/build/esm/util/objectSpecifierUtils.test.js.map +1 -0
  354. package/build/esm/util/toDataValue.js +14 -2
  355. package/build/esm/util/toDataValue.js.map +1 -1
  356. package/build/esm/util/toDataValue.test.js +37 -16
  357. package/build/esm/util/toDataValue.test.js.map +1 -1
  358. package/build/esm/util/toDataValueQueries.js +25 -2
  359. package/build/esm/util/toDataValueQueries.js.map +1 -1
  360. package/build/types/Client.d.ts +1 -1
  361. package/build/types/Client.d.ts.map +1 -1
  362. package/build/types/MinimalClientContext.d.ts +1 -1
  363. package/build/types/MinimalClientContext.d.ts.map +1 -1
  364. package/build/types/__unstable/ConjureSupport.d.ts +2 -2
  365. package/build/types/actions/applyAction.d.ts +1 -2
  366. package/build/types/actions/applyAction.d.ts.map +1 -1
  367. package/build/types/createClient.d.ts +1 -1
  368. package/build/types/createClient.d.ts.map +1 -1
  369. package/build/types/createClient.test.d.ts +2 -1
  370. package/build/types/createClient.test.d.ts.map +1 -1
  371. package/build/types/createMinimalClientHelper.d.ts +1 -0
  372. package/build/types/createMinimalClientHelper.d.ts.map +1 -0
  373. package/build/types/derivedProperties/derivedPropertyDefinitionFactory.d.ts +1 -0
  374. package/build/types/derivedProperties/derivedPropertyDefinitionFactory.d.ts.map +1 -0
  375. package/build/types/index.d.ts +5 -5
  376. package/build/types/index.d.ts.map +1 -1
  377. package/build/types/intellisense.test.helpers/showsObjectPropertyJsdoc.d.ts +1 -0
  378. package/build/types/intellisense.test.helpers/showsObjectPropertyJsdoc.d.ts.map +1 -0
  379. package/build/types/logger/BaseLogger.d.ts +33 -0
  380. package/build/types/logger/BaseLogger.d.ts.map +1 -0
  381. package/build/types/logger/BrowserLogger.d.ts +9 -0
  382. package/build/types/logger/BrowserLogger.d.ts.map +1 -0
  383. package/build/types/logger/MinimalLogger.d.ts +9 -0
  384. package/build/types/logger/MinimalLogger.d.ts.map +1 -0
  385. package/build/types/logger/MinimalLogger.test.d.ts +1 -0
  386. package/build/types/logger/MinimalLogger.test.d.ts.map +1 -0
  387. package/build/types/logger/TestLogger.d.ts +14 -0
  388. package/build/types/logger/TestLogger.d.ts.map +1 -0
  389. package/build/types/object/AttachmentUpload.d.ts +3 -0
  390. package/build/types/object/AttachmentUpload.d.ts.map +1 -1
  391. package/build/types/object/SimpleOsdkProperties.d.ts +1 -0
  392. package/build/types/object/SimpleOsdkProperties.d.ts.map +1 -0
  393. package/build/types/object/convertWireToOsdkObjects/BaseHolder.d.ts +1 -0
  394. package/build/types/object/convertWireToOsdkObjects/BaseHolder.d.ts.map +1 -0
  395. package/build/types/object/convertWireToOsdkObjects.d.ts +8 -1
  396. package/build/types/object/convertWireToOsdkObjects.d.ts.map +1 -1
  397. package/build/types/object/fetchPage.d.ts.map +1 -1
  398. package/build/types/object/object.test.d.ts.map +1 -1
  399. package/build/types/objectSet/ObjectSet.test.d.ts.map +1 -1
  400. package/build/types/observable/ListPayload.d.ts +5 -9
  401. package/build/types/observable/ListPayload.d.ts.map +1 -1
  402. package/build/types/observable/ObjectPayload.d.ts +4 -7
  403. package/build/types/observable/ObjectPayload.d.ts.map +1 -1
  404. package/build/types/observable/ObservableClient.d.ts +33 -10
  405. package/build/types/observable/ObservableClient.d.ts.map +1 -1
  406. package/build/types/observable/OptimisticBuilder.d.ts +1 -1
  407. package/build/types/observable/OptimisticBuilder.d.ts.map +1 -1
  408. package/build/types/observable/internal/ActionApplication.d.ts +9 -0
  409. package/build/types/observable/internal/ActionApplication.d.ts.map +1 -0
  410. package/build/types/observable/internal/BulkObjectLoader.d.ts +8 -0
  411. package/build/types/observable/internal/BulkObjectLoader.d.ts.map +1 -0
  412. package/build/types/observable/internal/BulkObjectLoader.test.d.ts +1 -0
  413. package/build/types/observable/internal/BulkObjectLoader.test.d.ts.map +1 -0
  414. package/build/types/observable/internal/CacheKeys.d.ts +2 -1
  415. package/build/types/observable/internal/CacheKeys.d.ts.map +1 -1
  416. package/build/types/observable/internal/Changes.d.ts +15 -0
  417. package/build/types/observable/internal/Changes.d.ts.map +1 -0
  418. package/build/types/observable/internal/Layer.d.ts +2 -1
  419. package/build/types/observable/internal/Layer.d.ts.map +1 -1
  420. package/build/types/observable/internal/ListQuery.d.ts +69 -23
  421. package/build/types/observable/internal/ListQuery.d.ts.map +1 -1
  422. package/build/types/observable/internal/ObjectQuery.d.ts +8 -9
  423. package/build/types/observable/internal/ObjectQuery.d.ts.map +1 -1
  424. package/build/types/observable/internal/OptimisticJob.d.ts +2 -2
  425. package/build/types/observable/internal/OptimisticJob.d.ts.map +1 -1
  426. package/build/types/observable/internal/OrderByCanonicalizer.d.ts +12 -0
  427. package/build/types/observable/internal/OrderByCanonicalizer.d.ts.map +1 -0
  428. package/build/types/observable/internal/OrderByCanonicalizer.test.d.ts +1 -0
  429. package/build/types/observable/internal/OrderByCanonicalizer.test.d.ts.map +1 -0
  430. package/build/types/observable/internal/Query.d.ts +45 -9
  431. package/build/types/observable/internal/Query.d.ts.map +1 -1
  432. package/build/types/observable/internal/RefCounts.d.ts.map +1 -1
  433. package/build/types/observable/internal/SimpleWhereClause.d.ts +2 -0
  434. package/build/types/observable/internal/SimpleWhereClause.d.ts.map +1 -0
  435. package/build/types/observable/internal/Store.d.ts +34 -30
  436. package/build/types/observable/internal/Store.d.ts.map +1 -1
  437. package/build/types/observable/internal/WhereClauseCanonicalizer.d.ts +2 -1
  438. package/build/types/observable/internal/WhereClauseCanonicalizer.d.ts.map +1 -1
  439. package/build/types/observable/internal/objectMatchesWhereClause.d.ts +4 -2
  440. package/build/types/observable/internal/objectMatchesWhereClause.d.ts.map +1 -1
  441. package/build/types/observable/internal/testUtils.d.ts +48 -9
  442. package/build/types/observable/internal/testUtils.d.ts.map +1 -1
  443. package/build/types/public/internal.d.ts +2 -0
  444. package/build/types/public/internal.d.ts.map +1 -1
  445. package/build/types/public/unstable-do-not-use.d.ts +4 -5
  446. package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
  447. package/build/types/public-utils/osdkConfig.d.ts +8 -0
  448. package/build/types/public-utils/osdkConfig.d.ts.map +1 -0
  449. package/build/types/public-utils/vite-env.d.d.ts +3 -0
  450. package/build/types/public-utils/vite-env.d.d.ts.map +1 -0
  451. package/build/types/queries/applyQuery.d.ts +4 -2
  452. package/build/types/queries/applyQuery.d.ts.map +1 -1
  453. package/build/types/queries/types.d.ts +1 -1
  454. package/build/types/queries/types.d.ts.map +1 -1
  455. package/build/types/tsserver.d.ts +1 -1
  456. package/build/types/tsserver.d.ts.map +1 -1
  457. package/build/types/util/extractRdpDefinition.d.ts +4 -0
  458. package/build/types/util/extractRdpDefinition.d.ts.map +1 -0
  459. package/build/types/util/extractRdpDefinition.test.d.ts +1 -0
  460. package/build/types/util/extractRdpDefinition.test.d.ts.map +1 -0
  461. package/build/types/util/isPoint.d.ts +1 -0
  462. package/build/types/util/isPoint.d.ts.map +1 -0
  463. package/build/types/util/objectSpecifierUtils.d.ts +24 -0
  464. package/build/types/util/objectSpecifierUtils.d.ts.map +1 -0
  465. package/build/types/util/objectSpecifierUtils.test.d.ts +1 -0
  466. package/build/types/util/objectSpecifierUtils.test.d.ts.map +1 -0
  467. package/package.json +20 -16
  468. package/build/browser/Logger.js +0 -2
  469. package/build/browser/Logger.js.map +0 -1
  470. package/build/browser/observable/internal/ChangedObjects.js.map +0 -1
  471. package/build/cjs/chunk-Q7SFCCGT.cjs +0 -11
  472. package/build/cjs/chunk-Q7SFCCGT.cjs.map +0 -1
  473. package/build/cjs/chunk-T5UE6BI7.cjs.map +0 -1
  474. package/build/cjs/chunk-X7WGNFZ4.cjs.map +0 -1
  475. package/build/cjs/graphql-JJX5MZPQ.cjs +0 -10491
  476. package/build/cjs/graphql-JJX5MZPQ.cjs.map +0 -1
  477. package/build/esm/Logger.js +0 -2
  478. package/build/esm/Logger.js.map +0 -1
  479. package/build/esm/observable/internal/ChangedObjects.js.map +0 -1
  480. package/build/types/Logger.d.ts +0 -18
  481. package/build/types/Logger.d.ts.map +0 -1
  482. package/build/types/observable/internal/ChangedObjects.d.ts +0 -7
  483. package/build/types/observable/internal/ChangedObjects.d.ts.map +0 -1
@@ -14,23 +14,25 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { $Actions, $ontologyRid, actionTakesAttachment, actionTakesMedia, createFooInterface, createOffice, createStructPerson, deleteFooInterface, moveOffice } from "@osdk/client.test.ontology";
18
- import { apiServer, stubData } from "@osdk/shared.test";
19
- import { afterAll, beforeAll, describe, expect, expectTypeOf, it, vi } from "vitest";
17
+ import { $Actions, actionTakesAttachment, actionTakesMedia, addGeoshape, createFooInterface, createOffice, createStructPerson, deleteBarInterface, deleteFooInterface, Employee, moveOffice } from "@osdk/client.test.ontology";
18
+ import { LegacyFauxFoundry, MockOntologiesV2, startNodeApiServer, stubData } from "@osdk/shared.test";
19
+ import { beforeAll, describe, expect, expectTypeOf, it, vi } from "vitest";
20
20
  import { createClient } from "../createClient.js";
21
21
  import { createAttachmentUpload } from "../object/AttachmentUpload.js";
22
22
  import { ActionValidationError } from "./ActionValidationError.js";
23
23
  import { remapActionResponse } from "./applyAction.js";
24
- describe("actions", () => {
24
+ describe.each(["https://stack.palantir.com", "https://stack.palantirCustom.com/foo/first/someStuff"])("actions for %s", baseUrl => {
25
25
  let client;
26
- let customEntryPointClient;
27
- beforeAll(async () => {
28
- apiServer.listen();
29
- client = createClient("https://stack.palantir.com", $ontologyRid, async () => "myAccessToken");
30
- customEntryPointClient = createClient("https://stack.palantirCustom.com/foo/first/someStuff", $ontologyRid, async () => "myAccessToken");
31
- });
32
- afterAll(() => {
33
- apiServer.close();
26
+ let apiServer;
27
+ beforeAll(() => {
28
+ const testSetup = startNodeApiServer(new LegacyFauxFoundry(baseUrl), createClient);
29
+ ({
30
+ client,
31
+ apiServer
32
+ } = testSetup);
33
+ return () => {
34
+ apiServer.close();
35
+ };
34
36
  });
35
37
  it("conditionally returns the edits", async () => {
36
38
  const result = await client(createOffice).applyAction({
@@ -41,24 +43,20 @@ describe("actions", () => {
41
43
  $returnEdits: true
42
44
  });
43
45
  expectTypeOf().toEqualTypeOf();
44
- expect(result).toMatchInlineSnapshot(`
45
- {
46
- "addedLinks": [],
47
- "addedObjects": [
48
- {
49
- "objectType": "Office",
50
- "primaryKey": "NYC",
51
- },
52
- ],
53
- "deletedLinksCount": 0,
54
- "deletedObjectsCount": 0,
55
- "editedObjectTypes": [
56
- "Office",
57
- ],
58
- "modifiedObjects": [],
59
- "type": "edits",
60
- }
61
- `);
46
+ expect(result).toMatchObject({
47
+ "addedLinks": [],
48
+ "addedObjects": [{
49
+ "objectType": "Office",
50
+ "primaryKey": "NYC"
51
+ }],
52
+ "deletedLinks": [],
53
+ "deletedLinksCount": 0,
54
+ "deletedObjects": [],
55
+ "deletedObjectsCount": 0,
56
+ "editedObjectTypes": ["Office"],
57
+ "modifiedObjects": [],
58
+ "type": "edits"
59
+ });
62
60
 
63
61
  // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression
64
62
  const undefinedResult = await client(createOffice).applyAction({
@@ -82,55 +80,70 @@ describe("actions", () => {
82
80
  const result = await client(moveOffice).applyAction({
83
81
  officeId: "SEA",
84
82
  newAddress: "456 Pike Place",
85
- newCapacity: 40
83
+ // intentionally using a string to trigger validation errors
84
+ newCapacity: "40"
86
85
  }, {
87
86
  $validateOnly: true
88
87
  });
89
88
  expectTypeOf().toEqualTypeOf();
90
- expect(result).toMatchInlineSnapshot(`
91
- {
92
- "parameters": {},
93
- "result": "INVALID",
94
- "submissionCriteria": [],
89
+ expect(result).toMatchObject({
90
+ "parameters": {
91
+ "newCapacity": {
92
+ "evaluatedConstraints": [],
93
+ "required": false,
94
+ "result": "INVALID"
95
95
  }
96
- `);
96
+ },
97
+ "result": "INVALID",
98
+ "submissionCriteria": []
99
+ });
97
100
  });
98
101
  it("returns validation directly on validateOnly mode, with custom entry point in URL", async () => {
99
- const result = await customEntryPointClient(moveOffice).applyAction({
102
+ const result = await client(moveOffice).applyAction({
100
103
  officeId: "SEA",
101
104
  newAddress: "456 Pike Place",
102
- newCapacity: 40
105
+ // intentionally using a string to trigger validation failure
106
+ newCapacity: "40"
103
107
  }, {
104
108
  $validateOnly: true
105
109
  });
106
110
  expectTypeOf().toEqualTypeOf();
107
- expect(result).toMatchInlineSnapshot(`
108
- {
109
- "parameters": {},
110
- "result": "INVALID",
111
- "submissionCriteria": [],
111
+ expect(result).toMatchObject({
112
+ "parameters": {
113
+ "newCapacity": {
114
+ "evaluatedConstraints": [],
115
+ "required": false,
116
+ "result": "INVALID"
112
117
  }
113
- `);
118
+ },
119
+ "result": "INVALID",
120
+ "submissionCriteria": []
121
+ });
114
122
  });
115
123
  it("throws on validation errors", async () => {
116
124
  try {
117
125
  await client(moveOffice).applyAction({
118
126
  officeId: "SEA",
119
127
  newAddress: "456 Pike Place",
120
- newCapacity: 40
128
+ // intentionally using a string to trigger validation failure
129
+ newCapacity: "40"
121
130
  }, {
122
131
  $returnEdits: true
123
132
  });
124
133
  expect.fail("Should not reach here");
125
134
  } catch (e) {
126
135
  expect(e).toBeInstanceOf(ActionValidationError);
127
- expect(e.validation).toMatchInlineSnapshot(`
128
- {
129
- "parameters": {},
130
- "result": "INVALID",
131
- "submissionCriteria": [],
132
- }
133
- `);
136
+ expect(e.validation).toMatchObject({
137
+ "parameters": {
138
+ "newCapacity": {
139
+ "evaluatedConstraints": [],
140
+ "required": false,
141
+ "result": "INVALID"
142
+ }
143
+ },
144
+ "result": "INVALID",
145
+ "submissionCriteria": []
146
+ });
134
147
  }
135
148
  });
136
149
  it("Accepts structs", async () => {
@@ -152,27 +165,46 @@ describe("actions", () => {
152
165
  expectTypeOf().toMatchTypeOf();
153
166
  client(actionTakesAttachment).batchApplyAction;
154
167
  expectTypeOf().toMatchTypeOf();
155
- const result = await client(actionTakesAttachment).applyAction({
156
- attachment: "attachment.rid"
157
- });
158
- expectTypeOf().toEqualTypeOf();
159
- expect(result).toBeUndefined();
168
+ await apiServer.boundary(async () => {
169
+ apiServer.use(MockOntologiesV2.Actions.apply(baseUrl, () => {
170
+ return {
171
+ validation: {
172
+ result: "VALID",
173
+ submissionCriteria: [],
174
+ parameters: {}
175
+ }
176
+ };
177
+ }));
178
+
179
+ // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression
180
+ const result = await client(actionTakesAttachment).applyAction({
181
+ attachment: "ri.some.rid"
182
+ });
183
+ expectTypeOf().toEqualTypeOf();
184
+ expect(result).toBeUndefined();
185
+ })();
160
186
  });
161
187
  it("Accepts attachment uploads", async () => {
162
188
  client(actionTakesAttachment).applyAction;
163
189
  client(actionTakesAttachment).batchApplyAction;
164
190
  expectTypeOf().toMatchTypeOf();
165
191
  expectTypeOf().toMatchTypeOf();
166
- const blob = stubData.attachmentUploadRequestBody[stubData.localAttachment1.filename];
192
+ const blob = new Blob([JSON.stringify({
193
+ name: "Hello World"
194
+ }, null, 2)]);
167
195
  const attachment = createAttachmentUpload(blob, "file1.txt");
168
196
 
169
197
  // Mimics the Web file API (https://developer.mozilla.org/en-US/docs/Web/API/File). The File constructor is only available in Node 19.2.0 and above
170
198
  const fileAttachment = Object.assign(blob, {
171
199
  name: "file1.txt"
172
200
  });
201
+
202
+ // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression
173
203
  const result = await client(actionTakesAttachment).applyAction({
174
204
  attachment
175
205
  });
206
+
207
+ // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression
176
208
  const result2 = await client(actionTakesAttachment).applyAction({
177
209
  attachment: fileAttachment
178
210
  });
@@ -185,7 +217,23 @@ describe("actions", () => {
185
217
  client(actionTakesMedia).applyAction;
186
218
  expectTypeOf().toMatchTypeOf();
187
219
  const result = await client(actionTakesMedia).applyAction({
188
- media_reference: stubData.mediaReference
220
+ media_reference: stubData.actionRequestMediaUpload.parameters.media_reference
221
+ });
222
+ expectTypeOf().toEqualTypeOf();
223
+ expect(result).toBeUndefined();
224
+ });
225
+ it("Accepts geoshapes", async () => {
226
+ client(addGeoshape).applyAction;
227
+ expectTypeOf().toMatchTypeOf();
228
+ const result = await client(addGeoshape).applyAction({
229
+ geoshapeParam: {
230
+ type: "Polygon",
231
+ coordinates: [[[-97.86567863752134, 38.418052586871624], [-97.86567863752134, 35.410223767370525], [-91.98573135442845, 35.410223767370525], [-91.98573135442845, 38.418052586871624], [-97.86567863752134, 38.418052586871624]]]
232
+ },
233
+ geohashParam: {
234
+ type: "Point",
235
+ coordinates: [-79.4382042508868, 40.917859676842255]
236
+ }
189
237
  });
190
238
  expectTypeOf().toEqualTypeOf();
191
239
  expect(result).toBeUndefined();
@@ -198,19 +246,25 @@ describe("actions", () => {
198
246
  const result = await client(deleteFooInterface).applyAction({
199
247
  deletedInterface: {
200
248
  $objectType: "Employee",
201
- $primaryKey: 1
249
+ $primaryKey: 50030
202
250
  }
203
251
  });
204
252
  expectTypeOf().toEqualTypeOf();
205
253
  expect(result).toBeUndefined();
206
254
  });
255
+ it("Accepts interfaces if implementing object types unknown", async () => {
256
+ client(deleteBarInterface).applyAction;
257
+ expectTypeOf().toMatchTypeOf();
258
+ client(deleteBarInterface).batchApplyAction;
259
+ expectTypeOf().toMatchTypeOf();
260
+ });
207
261
  it("Accepts object type refs", async () => {
208
262
  client(createFooInterface).applyAction;
209
263
  expectTypeOf().toMatchTypeOf();
210
264
  client(createFooInterface).batchApplyAction;
211
265
  expectTypeOf().toMatchTypeOf();
212
266
  const result = await client(createFooInterface).applyAction({
213
- createdInterface: "UnderlyingObject"
267
+ createdInterface: Employee.apiName
214
268
  });
215
269
  expectTypeOf().toEqualTypeOf();
216
270
  expect(result).toBeUndefined();
@@ -227,28 +281,69 @@ describe("actions", () => {
227
281
  }], {
228
282
  $returnEdits: true
229
283
  });
230
- expect(result).toMatchInlineSnapshot(`
231
- {
232
- "addedLinks": [],
233
- "addedObjects": [],
234
- "deletedLinksCount": 0,
235
- "deletedObjectsCount": 0,
236
- "editedObjectTypes": [
237
- "Office",
238
- ],
239
- "modifiedObjects": [
240
- {
241
- "objectType": "Office",
242
- "primaryKey": "SEA",
243
- },
244
- {
245
- "objectType": "Office",
246
- "primaryKey": "NYC",
247
- },
248
- ],
249
- "type": "edits",
250
- }
251
- `);
284
+ expect(result).toMatchObject({
285
+ "addedLinks": [],
286
+ "addedObjects": [],
287
+ "deletedLinks": [],
288
+ "deletedLinksCount": 0,
289
+ "deletedObjects": [],
290
+ "deletedObjectsCount": 0,
291
+ "editedObjectTypes": ["Office"],
292
+ "modifiedObjects": [{
293
+ "objectType": "Office",
294
+ "primaryKey": "SEA"
295
+ }, {
296
+ "objectType": "Office",
297
+ "primaryKey": "NYC"
298
+ }],
299
+ "type": "edits"
300
+ });
301
+ });
302
+ describe("Properly handles undefined values for optional parameters", () => {
303
+ it("Sends null on request for explicitly undefined values", async () => {
304
+ await apiServer.boundary(async () => {
305
+ let request = {};
306
+ apiServer.use(MockOntologiesV2.Actions.apply(baseUrl, async info => {
307
+ request = await info.request.json();
308
+ return {
309
+ validation: {
310
+ result: "VALID",
311
+ submissionCriteria: [],
312
+ parameters: {}
313
+ }
314
+ };
315
+ }));
316
+ await client($Actions.createStructPerson).applyAction({
317
+ name: "testMan",
318
+ address: undefined
319
+ });
320
+ expect(request.parameters).toEqual({
321
+ address: null,
322
+ name: "testMan"
323
+ });
324
+ })();
325
+ });
326
+ it("Does not send null on request for unset values", async () => {
327
+ await apiServer.boundary(async () => {
328
+ let request = {};
329
+ apiServer.use(MockOntologiesV2.Actions.apply(baseUrl, async info => {
330
+ request = await info.request.json();
331
+ return {
332
+ validation: {
333
+ result: "VALID",
334
+ submissionCriteria: [],
335
+ parameters: {}
336
+ }
337
+ };
338
+ }));
339
+ await client($Actions.createStructPerson).applyAction({
340
+ name: "testMan"
341
+ });
342
+ expect(request.parameters).toEqual({
343
+ name: "testMan"
344
+ });
345
+ })();
346
+ });
252
347
  });
253
348
  });
254
349
  describe("ActionResponse remapping", () => {
@@ -275,9 +370,25 @@ describe("ActionResponse remapping", () => {
275
370
  "objectType": "Employee"
276
371
  },
277
372
  "type": "addLink"
373
+ }, {
374
+ "objectType": "Developer",
375
+ "primaryKey": "PalantirDev",
376
+ "type": "deleteObject"
377
+ }, {
378
+ "aSideObject": {
379
+ "primaryKey": "key1",
380
+ "objectType": "Office"
381
+ },
382
+ "linkTypeApiNameAtoB": "test",
383
+ "linkTypeApiNameBtoA": "test",
384
+ "bSideObject": {
385
+ "primaryKey": "key2",
386
+ "objectType": "Employee"
387
+ },
388
+ "type": "deleteLink"
278
389
  }],
279
390
  deletedLinksCount: 0,
280
- deletedObjectsCount: 0,
391
+ deletedObjectsCount: 1,
281
392
  addedObjectCount: 1,
282
393
  modifiedObjectsCount: 1,
283
394
  addedLinksCount: 1
@@ -339,8 +450,28 @@ describe("ActionResponse remapping", () => {
339
450
  "primaryKey": "PalantirDev",
340
451
  },
341
452
  ],
453
+ "deletedLinks": [
454
+ {
455
+ "aSideObject": {
456
+ "objectType": "Office",
457
+ "primaryKey": "key1",
458
+ },
459
+ "bSideObject": {
460
+ "objectType": "Employee",
461
+ "primaryKey": "key2",
462
+ },
463
+ "linkTypeApiNameAtoB": "test",
464
+ "linkTypeApiNameBtoA": "test",
465
+ },
466
+ ],
342
467
  "deletedLinksCount": 0,
343
- "deletedObjectsCount": 0,
468
+ "deletedObjects": [
469
+ {
470
+ "objectType": "Developer",
471
+ "primaryKey": "PalantirDev",
472
+ },
473
+ ],
474
+ "deletedObjectsCount": 1,
344
475
  "editedObjectTypes": [
345
476
  "Developer",
346
477
  "Contractor",
@@ -378,7 +509,9 @@ describe("ActionResponse remapping", () => {
378
509
  "primaryKey": "PalantirDev",
379
510
  },
380
511
  ],
512
+ "deletedLinks": [],
381
513
  "deletedLinksCount": 0,
514
+ "deletedObjects": [],
382
515
  "deletedObjectsCount": 0,
383
516
  "editedObjectTypes": [
384
517
  "Developer",
@@ -398,7 +531,13 @@ describe("ActionResponse remapping", () => {
398
531
  });
399
532
  it("actions are enumerable", async () => {
400
533
  const actions = Object.keys($Actions);
401
- expect(actions).toStrictEqual(["actionTakesAttachment", "actionTakesMedia", "actionTakesObjectSet", "createFooInterface", "createOffice", "createOfficeAndEmployee", "createStructPerson", "deleteFooInterface", "moveOffice", "promoteEmployee", "promoteEmployeeObject"]);
534
+ expect(actions).toStrictEqual(["actionTakesAttachment", "actionTakesMedia", "actionTakesObjectSet", "addGeoshape", "createFooInterface", "createOffice", "createOfficeAndEmployee", "createStructPerson", "deleteBarInterface", "deleteFooInterface", "editTodo", "moveOffice", "promoteEmployee", "promoteEmployeeObject"]);
402
535
  });
403
536
  });
537
+ function wrapper(fn) {
538
+ return () => fn();
539
+ }
540
+ async function example() {
541
+ await wrapper(async () => Promise.resolve("hi"))();
542
+ }
404
543
  //# sourceMappingURL=actions.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions.test.js","names":["$Actions","$ontologyRid","actionTakesAttachment","actionTakesMedia","createFooInterface","createOffice","createStructPerson","deleteFooInterface","moveOffice","apiServer","stubData","afterAll","beforeAll","describe","expect","expectTypeOf","it","vi","createClient","createAttachmentUpload","ActionValidationError","remapActionResponse","client","customEntryPointClient","listen","close","result","applyAction","officeId","address","capacity","$returnEdits","toEqualTypeOf","toMatchInlineSnapshot","undefinedResult","toBeUndefined","batchApplyAction","clientCreateOfficeMock","fn","newAddress","newCapacity","$validateOnly","fail","e","toBeInstanceOf","validation","toMatchTypeOf","name","city","state","zipcode","attachment","blob","attachmentUploadRequestBody","localAttachment1","filename","fileAttachment","Object","assign","result2","media_reference","mediaReference","deletedInterface","$objectType","$primaryKey","createdInterface","actionResponse","edits","type","deletedLinksCount","deletedObjectsCount","addedObjectCount","modifiedObjectsCount","addedLinksCount","batchActionResponse","remappedActionResponse","remappedBatchActionResponse","actions","keys","toStrictEqual"],"sources":["actions.test.ts"],"sourcesContent":["/*\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 type {\n ActionEditResponse,\n ActionValidationResponse,\n AttachmentUpload,\n MediaReference,\n} from \"@osdk/api\";\nimport {\n $Actions,\n $ontologyRid,\n actionTakesAttachment,\n actionTakesMedia,\n createFooInterface,\n createOffice,\n createStructPerson,\n deleteFooInterface,\n moveOffice,\n} from \"@osdk/client.test.ontology\";\nimport type {\n BatchApplyActionResponseV2,\n SyncApplyActionResponseV2,\n} from \"@osdk/foundry.ontologies\";\nimport { apiServer, stubData } from \"@osdk/shared.test\";\nimport {\n afterAll,\n beforeAll,\n describe,\n expect,\n expectTypeOf,\n it,\n vi,\n} from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\nimport { createAttachmentUpload } from \"../object/AttachmentUpload.js\";\nimport { ActionValidationError } from \"./ActionValidationError.js\";\nimport { remapActionResponse } from \"./applyAction.js\";\n\ndescribe(\"actions\", () => {\n let client: Client;\n let customEntryPointClient: Client;\n\n beforeAll(async () => {\n apiServer.listen();\n client = createClient(\n \"https://stack.palantir.com\",\n $ontologyRid,\n async () => \"myAccessToken\",\n );\n customEntryPointClient = createClient(\n \"https://stack.palantirCustom.com/foo/first/someStuff\",\n $ontologyRid,\n async () => \"myAccessToken\",\n );\n });\n\n afterAll(() => {\n apiServer.close();\n });\n\n it(\"conditionally returns the edits\", async () => {\n const result = await client(createOffice).applyAction({\n officeId: \"NYC\",\n address: \"123 Main Street\",\n capacity: 100,\n }, { $returnEdits: true });\n\n expectTypeOf<typeof result>().toEqualTypeOf<ActionEditResponse>();\n expect(result).toMatchInlineSnapshot(`\n {\n \"addedLinks\": [],\n \"addedObjects\": [\n {\n \"objectType\": \"Office\",\n \"primaryKey\": \"NYC\",\n },\n ],\n \"deletedLinksCount\": 0,\n \"deletedObjectsCount\": 0,\n \"editedObjectTypes\": [\n \"Office\",\n ],\n \"modifiedObjects\": [],\n \"type\": \"edits\",\n }\n `);\n\n // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression\n const undefinedResult = await client(createOffice).applyAction({\n officeId: \"NYC\",\n address: \"123 Main Street\",\n capacity: 100,\n });\n\n expectTypeOf<typeof undefinedResult>().toEqualTypeOf<undefined>();\n expect(undefinedResult).toBeUndefined();\n\n const clientCreateOffice = client(createOffice).batchApplyAction;\n const clientCreateOfficeMock: typeof clientCreateOffice = vi.fn();\n void clientCreateOfficeMock([{\n officeId: \"NYC\",\n address: \"123 Main Street\",\n capacity: 100,\n }], { $returnEdits: true });\n });\n\n it(\"returns validation directly on validateOnly mode\", async () => {\n const result = await client(moveOffice).applyAction({\n officeId: \"SEA\",\n newAddress: \"456 Pike Place\",\n newCapacity: 40,\n }, {\n $validateOnly: true,\n });\n expectTypeOf<typeof result>().toEqualTypeOf<ActionValidationResponse>();\n\n expect(result).toMatchInlineSnapshot(`\n {\n \"parameters\": {},\n \"result\": \"INVALID\",\n \"submissionCriteria\": [],\n }\n `);\n });\n\n it(\"returns validation directly on validateOnly mode, with custom entry point in URL\", async () => {\n const result = await customEntryPointClient(moveOffice).applyAction({\n officeId: \"SEA\",\n newAddress: \"456 Pike Place\",\n newCapacity: 40,\n }, {\n $validateOnly: true,\n });\n expectTypeOf<typeof result>().toEqualTypeOf<ActionValidationResponse>();\n\n expect(result).toMatchInlineSnapshot(`\n {\n \"parameters\": {},\n \"result\": \"INVALID\",\n \"submissionCriteria\": [],\n }\n `);\n });\n\n it(\"throws on validation errors\", async () => {\n try {\n const result = await client(moveOffice).applyAction({\n officeId: \"SEA\",\n newAddress: \"456 Pike Place\",\n newCapacity: 40,\n }, {\n $returnEdits: true,\n });\n expect.fail(\"Should not reach here\");\n } catch (e) {\n expect(e).toBeInstanceOf(ActionValidationError);\n expect((e as ActionValidationError).validation).toMatchInlineSnapshot(`\n {\n \"parameters\": {},\n \"result\": \"INVALID\",\n \"submissionCriteria\": [],\n }\n `);\n }\n });\n\n it(\"Accepts structs\", async () => {\n const clientBoundActionTakesStruct = client(createStructPerson).applyAction;\n type InferredParamType = Parameters<\n typeof clientBoundActionTakesStruct\n >[0];\n expectTypeOf<\n {\n name: string;\n address: { city: string; state: string; zipcode: number };\n }\n >()\n .toMatchTypeOf<\n InferredParamType\n >();\n\n const result = await client(createStructPerson).applyAction({\n name: \"testMan\",\n address: { city: \"NYC\", state: \"NY\", zipcode: 12345 },\n });\n expectTypeOf<typeof result>().toEqualTypeOf<undefined>();\n expect(result).toBeUndefined();\n });\n\n it(\"Accepts attachments\", async () => {\n const clientBoundActionTakesAttachment = client(\n actionTakesAttachment,\n ).applyAction;\n\n type InferredParamType = Parameters<\n typeof clientBoundActionTakesAttachment\n >[0];\n\n expectTypeOf<{ attachment: string | AttachmentUpload }>().toMatchTypeOf<\n InferredParamType\n >();\n\n const clientBoundBatchActionTakesAttachment = client(\n actionTakesAttachment,\n ).batchApplyAction;\n type InferredBatchParamType = Parameters<\n typeof clientBoundBatchActionTakesAttachment\n >[0];\n\n expectTypeOf<{\n attachment: string | AttachmentUpload;\n }[]>().toMatchTypeOf<InferredBatchParamType>();\n\n const result = await client(actionTakesAttachment).applyAction({\n attachment: \"attachment.rid\",\n });\n\n expectTypeOf<typeof result>().toEqualTypeOf<undefined>();\n expect(result).toBeUndefined();\n });\n\n it(\"Accepts attachment uploads\", async () => {\n const clientBoundActionTakesAttachment = client(\n actionTakesAttachment,\n ).applyAction;\n type InferredParamType = Parameters<\n typeof clientBoundActionTakesAttachment\n >[0];\n const clientBoundBatchActionTakesAttachment = client(\n actionTakesAttachment,\n ).batchApplyAction;\n type InferredBatchParamType = Parameters<\n typeof clientBoundBatchActionTakesAttachment\n >[0];\n\n expectTypeOf<\n {\n attachment:\n | string\n | AttachmentUpload\n | Blob & { readonly name: string };\n }\n >().toMatchTypeOf<\n InferredParamType\n >();\n expectTypeOf<\n {\n attachment:\n | string\n | AttachmentUpload\n | Blob & { readonly name: string };\n }[]\n >().toMatchTypeOf<\n InferredBatchParamType\n >();\n\n const blob =\n stubData.attachmentUploadRequestBody[stubData.localAttachment1.filename];\n\n const attachment = createAttachmentUpload(blob, \"file1.txt\");\n\n // Mimics the Web file API (https://developer.mozilla.org/en-US/docs/Web/API/File). The File constructor is only available in Node 19.2.0 and above\n const fileAttachment = Object.assign(blob, { name: \"file1.txt\" });\n\n const result = await client(actionTakesAttachment).applyAction({\n attachment,\n });\n\n const result2 = await client(actionTakesAttachment).applyAction({\n attachment: fileAttachment,\n });\n\n expectTypeOf<typeof result>().toEqualTypeOf<undefined>();\n expect(result).toBeUndefined();\n\n expectTypeOf<typeof result2>().toEqualTypeOf<undefined>();\n expect(result2).toBeUndefined();\n });\n\n it(\"Accepts media reference\", async () => {\n const clientBoundActionTakesMedia = client(\n actionTakesMedia,\n ).applyAction;\n type InferredParamType = Parameters<\n typeof clientBoundActionTakesMedia\n >[0];\n\n expectTypeOf<\n {\n media_reference: MediaReference;\n }\n >().toMatchTypeOf<\n InferredParamType\n >();\n\n const result = await client(actionTakesMedia).applyAction({\n media_reference: stubData.mediaReference,\n });\n\n expectTypeOf<typeof result>().toEqualTypeOf<undefined>();\n expect(result).toBeUndefined();\n });\n\n it(\"Accepts interfaces\", async () => {\n const clientBoundTakesInterface = client(\n deleteFooInterface,\n ).applyAction;\n\n type InferredParamType = Parameters<\n typeof clientBoundTakesInterface\n >[0];\n\n expectTypeOf<\n {\n deletedInterface: {\n $objectType: \"Employee\" | \"Person\";\n $primaryKey: string | number;\n };\n }\n >().toMatchTypeOf<\n InferredParamType\n >();\n\n const clientBoundBatchActionTakesInterface = client(\n deleteFooInterface,\n ).batchApplyAction;\n type InferredBatchParamType = Parameters<\n typeof clientBoundBatchActionTakesInterface\n >[0];\n\n expectTypeOf<{\n deletedInterface: {\n $objectType: \"Employee\" | \"Person\";\n $primaryKey: string | number;\n };\n }[]>().toMatchTypeOf<InferredBatchParamType>();\n\n const result = await client(deleteFooInterface).applyAction({\n deletedInterface: {\n $objectType: \"Employee\",\n $primaryKey: 1,\n },\n });\n\n expectTypeOf<typeof result>().toEqualTypeOf<undefined>();\n expect(result).toBeUndefined();\n });\n it(\"Accepts object type refs\", async () => {\n const clientBoundTakesObjectType = client(\n createFooInterface,\n ).applyAction;\n\n type InferredParamType = Parameters<\n typeof clientBoundTakesObjectType\n >[0];\n\n expectTypeOf<\n {\n createdInterface: string;\n }\n >().toMatchTypeOf<\n InferredParamType\n >();\n\n const clientBoundBatchActionTakesObjectType = client(\n createFooInterface,\n ).batchApplyAction;\n type InferredBatchParamType = Parameters<\n typeof clientBoundBatchActionTakesObjectType\n >[0];\n\n expectTypeOf<{\n createdInterface: string;\n }[]>().toMatchTypeOf<InferredBatchParamType>();\n\n const result = await client(createFooInterface).applyAction({\n createdInterface: \"UnderlyingObject\",\n });\n\n expectTypeOf<typeof result>().toEqualTypeOf<undefined>();\n expect(result).toBeUndefined();\n });\n it(\"conditionally returns edits in batch mode\", async () => {\n const result = await client(moveOffice).batchApplyAction([\n {\n officeId: \"SEA\",\n newAddress: \"456 Good Place\",\n newCapacity: 40,\n },\n {\n officeId: \"NYC\",\n newAddress: \"123 Main Street\",\n newCapacity: 80,\n },\n ], { $returnEdits: true });\n\n expect(result).toMatchInlineSnapshot(`\n {\n \"addedLinks\": [],\n \"addedObjects\": [],\n \"deletedLinksCount\": 0,\n \"deletedObjectsCount\": 0,\n \"editedObjectTypes\": [\n \"Office\",\n ],\n \"modifiedObjects\": [\n {\n \"objectType\": \"Office\",\n \"primaryKey\": \"SEA\",\n },\n {\n \"objectType\": \"Office\",\n \"primaryKey\": \"NYC\",\n },\n ],\n \"type\": \"edits\",\n }\n `);\n });\n});\n\ndescribe(\"ActionResponse remapping\", () => {\n const actionResponse: SyncApplyActionResponseV2 = {\n edits: {\n type: \"edits\",\n edits: [{\n \"objectType\": \"Developer\",\n \"primaryKey\": \"PalantirDev\",\n \"type\": \"addObject\",\n }, {\n \"objectType\": \"Contractor\",\n \"primaryKey\": \"Contractor1\",\n \"type\": \"modifyObject\",\n }, {\n \"aSideObject\": { \"primaryKey\": \"key1\", \"objectType\": \"Office\" },\n \"linkTypeApiNameAtoB\": \"test\",\n \"linkTypeApiNameBtoA\": \"test\",\n \"bSideObject\": { \"primaryKey\": \"key2\", \"objectType\": \"Employee\" },\n \"type\": \"addLink\",\n }],\n deletedLinksCount: 0,\n deletedObjectsCount: 0,\n addedObjectCount: 1,\n modifiedObjectsCount: 1,\n addedLinksCount: 1,\n },\n };\n\n const batchActionResponse: BatchApplyActionResponseV2 = {\n edits: {\n type: \"edits\",\n edits: [{\n \"objectType\": \"Developer\",\n \"primaryKey\": \"PalantirDev\",\n \"type\": \"addObject\",\n }, {\n \"objectType\": \"Contractor\",\n \"primaryKey\": \"Contractor1\",\n \"type\": \"modifyObject\",\n }, {\n \"aSideObject\": { \"primaryKey\": \"key1\", \"objectType\": \"Office\" },\n \"linkTypeApiNameAtoB\": \"test\",\n \"linkTypeApiNameBtoA\": \"test\",\n \"bSideObject\": { \"primaryKey\": \"key2\", \"objectType\": \"Employee\" },\n \"type\": \"addLink\",\n }],\n deletedLinksCount: 0,\n deletedObjectsCount: 0,\n addedObjectCount: 1,\n modifiedObjectsCount: 1,\n addedLinksCount: 1,\n },\n };\n\n it(\"Correctly unpacks edits and editedObjectTypes\", () => {\n const remappedActionResponse = remapActionResponse(actionResponse);\n const remappedBatchActionResponse = remapActionResponse(\n batchActionResponse,\n );\n expect(remappedActionResponse).toMatchInlineSnapshot(`\n {\n \"addedLinks\": [\n {\n \"aSideObject\": {\n \"objectType\": \"Office\",\n \"primaryKey\": \"key1\",\n },\n \"bSideObject\": {\n \"objectType\": \"Employee\",\n \"primaryKey\": \"key2\",\n },\n \"linkTypeApiNameAtoB\": \"test\",\n \"linkTypeApiNameBtoA\": \"test\",\n },\n ],\n \"addedObjects\": [\n {\n \"objectType\": \"Developer\",\n \"primaryKey\": \"PalantirDev\",\n },\n ],\n \"deletedLinksCount\": 0,\n \"deletedObjectsCount\": 0,\n \"editedObjectTypes\": [\n \"Developer\",\n \"Contractor\",\n \"Office\",\n \"Employee\",\n ],\n \"modifiedObjects\": [\n {\n \"objectType\": \"Contractor\",\n \"primaryKey\": \"Contractor1\",\n },\n ],\n \"type\": \"edits\",\n }\n `);\n expect(remappedBatchActionResponse).toMatchInlineSnapshot(`\n {\n \"addedLinks\": [\n {\n \"aSideObject\": {\n \"objectType\": \"Office\",\n \"primaryKey\": \"key1\",\n },\n \"bSideObject\": {\n \"objectType\": \"Employee\",\n \"primaryKey\": \"key2\",\n },\n \"linkTypeApiNameAtoB\": \"test\",\n \"linkTypeApiNameBtoA\": \"test\",\n },\n ],\n \"addedObjects\": [\n {\n \"objectType\": \"Developer\",\n \"primaryKey\": \"PalantirDev\",\n },\n ],\n \"deletedLinksCount\": 0,\n \"deletedObjectsCount\": 0,\n \"editedObjectTypes\": [\n \"Developer\",\n \"Contractor\",\n \"Office\",\n \"Employee\",\n ],\n \"modifiedObjects\": [\n {\n \"objectType\": \"Contractor\",\n \"primaryKey\": \"Contractor1\",\n },\n ],\n \"type\": \"edits\",\n }\n `);\n });\n it(\"actions are enumerable\", async () => {\n const actions = Object.keys($Actions);\n expect(actions).toStrictEqual([\n \"actionTakesAttachment\",\n \"actionTakesMedia\",\n \"actionTakesObjectSet\",\n \"createFooInterface\",\n \"createOffice\",\n \"createOfficeAndEmployee\",\n \"createStructPerson\",\n \"deleteFooInterface\",\n \"moveOffice\",\n \"promoteEmployee\",\n \"promoteEmployeeObject\",\n ]);\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,SACEA,QAAQ,EACRC,YAAY,EACZC,qBAAqB,EACrBC,gBAAgB,EAChBC,kBAAkB,EAClBC,YAAY,EACZC,kBAAkB,EAClBC,kBAAkB,EAClBC,UAAU,QACL,4BAA4B;AAKnC,SAASC,SAAS,EAAEC,QAAQ,QAAQ,mBAAmB;AACvD,SACEC,QAAQ,EACRC,SAAS,EACTC,QAAQ,EACRC,MAAM,EACNC,YAAY,EACZC,EAAE,EACFC,EAAE,QACG,QAAQ;AAEf,SAASC,YAAY,QAAQ,oBAAoB;AACjD,SAASC,sBAAsB,QAAQ,+BAA+B;AACtE,SAASC,qBAAqB,QAAQ,4BAA4B;AAClE,SAASC,mBAAmB,QAAQ,kBAAkB;AAEtDR,QAAQ,CAAC,SAAS,EAAE,MAAM;EACxB,IAAIS,MAAc;EAClB,IAAIC,sBAA8B;EAElCX,SAAS,CAAC,YAAY;IACpBH,SAAS,CAACe,MAAM,CAAC,CAAC;IAClBF,MAAM,GAAGJ,YAAY,CACnB,4BAA4B,EAC5BjB,YAAY,EACZ,YAAY,eACd,CAAC;IACDsB,sBAAsB,GAAGL,YAAY,CACnC,sDAAsD,EACtDjB,YAAY,EACZ,YAAY,eACd,CAAC;EACH,CAAC,CAAC;EAEFU,QAAQ,CAAC,MAAM;IACbF,SAAS,CAACgB,KAAK,CAAC,CAAC;EACnB,CAAC,CAAC;EAEFT,EAAE,CAAC,iCAAiC,EAAE,YAAY;IAChD,MAAMU,MAAM,GAAG,MAAMJ,MAAM,CAACjB,YAAY,CAAC,CAACsB,WAAW,CAAC;MACpDC,QAAQ,EAAE,KAAK;MACfC,OAAO,EAAE,iBAAiB;MAC1BC,QAAQ,EAAE;IACZ,CAAC,EAAE;MAAEC,YAAY,EAAE;IAAK,CAAC,CAAC;IAE1BhB,YAAY,CAAgB,CAAC,CAACiB,aAAa,CAAqB,CAAC;IACjElB,MAAM,CAACY,MAAM,CAAC,CAACO,qBAAqB,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;;IAEF;IACA,MAAMC,eAAe,GAAG,MAAMZ,MAAM,CAACjB,YAAY,CAAC,CAACsB,WAAW,CAAC;MAC7DC,QAAQ,EAAE,KAAK;MACfC,OAAO,EAAE,iBAAiB;MAC1BC,QAAQ,EAAE;IACZ,CAAC,CAAC;IAEFf,YAAY,CAAyB,CAAC,CAACiB,aAAa,CAAY,CAAC;IACjElB,MAAM,CAACoB,eAAe,CAAC,CAACC,aAAa,CAAC,CAAC;IAEZb,MAAM,CAACjB,YAAY,CAAC,CAAC+B,gBAAgB;IAChE,MAAMC,sBAAiD,GAAGpB,EAAE,CAACqB,EAAE,CAAC,CAAC;IACjE,KAAKD,sBAAsB,CAAC,CAAC;MAC3BT,QAAQ,EAAE,KAAK;MACfC,OAAO,EAAE,iBAAiB;MAC1BC,QAAQ,EAAE;IACZ,CAAC,CAAC,EAAE;MAAEC,YAAY,EAAE;IAAK,CAAC,CAAC;EAC7B,CAAC,CAAC;EAEFf,EAAE,CAAC,kDAAkD,EAAE,YAAY;IACjE,MAAMU,MAAM,GAAG,MAAMJ,MAAM,CAACd,UAAU,CAAC,CAACmB,WAAW,CAAC;MAClDC,QAAQ,EAAE,KAAK;MACfW,UAAU,EAAE,gBAAgB;MAC5BC,WAAW,EAAE;IACf,CAAC,EAAE;MACDC,aAAa,EAAE;IACjB,CAAC,CAAC;IACF1B,YAAY,CAAgB,CAAC,CAACiB,aAAa,CAA2B,CAAC;IAEvElB,MAAM,CAACY,MAAM,CAAC,CAACO,qBAAqB,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;EACN,CAAC,CAAC;EAEFjB,EAAE,CAAC,kFAAkF,EAAE,YAAY;IACjG,MAAMU,MAAM,GAAG,MAAMH,sBAAsB,CAACf,UAAU,CAAC,CAACmB,WAAW,CAAC;MAClEC,QAAQ,EAAE,KAAK;MACfW,UAAU,EAAE,gBAAgB;MAC5BC,WAAW,EAAE;IACf,CAAC,EAAE;MACDC,aAAa,EAAE;IACjB,CAAC,CAAC;IACF1B,YAAY,CAAgB,CAAC,CAACiB,aAAa,CAA2B,CAAC;IAEvElB,MAAM,CAACY,MAAM,CAAC,CAACO,qBAAqB,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;EACN,CAAC,CAAC;EAEFjB,EAAE,CAAC,6BAA6B,EAAE,YAAY;IAC5C,IAAI;MACa,MAAMM,MAAM,CAACd,UAAU,CAAC,CAACmB,WAAW,CAAC;QAClDC,QAAQ,EAAE,KAAK;QACfW,UAAU,EAAE,gBAAgB;QAC5BC,WAAW,EAAE;MACf,CAAC,EAAE;QACDT,YAAY,EAAE;MAChB,CAAC,CAAC;MACFjB,MAAM,CAAC4B,IAAI,CAAC,uBAAuB,CAAC;IACtC,CAAC,CAAC,OAAOC,CAAC,EAAE;MACV7B,MAAM,CAAC6B,CAAC,CAAC,CAACC,cAAc,CAACxB,qBAAqB,CAAC;MAC/CN,MAAM,CAAE6B,CAAC,CAA2BE,UAAU,CAAC,CAACZ,qBAAqB,CAAC;AAC5E;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ;EACF,CAAC,CAAC;EAEFjB,EAAE,CAAC,iBAAiB,EAAE,YAAY;IACKM,MAAM,CAAChB,kBAAkB,CAAC,CAACqB,WAAW;IAI3EZ,YAAY,CAKV,CAAC,CACA+B,aAAa,CAEZ,CAAC;IAEL,MAAMpB,MAAM,GAAG,MAAMJ,MAAM,CAAChB,kBAAkB,CAAC,CAACqB,WAAW,CAAC;MAC1DoB,IAAI,EAAE,SAAS;MACflB,OAAO,EAAE;QAAEmB,IAAI,EAAE,KAAK;QAAEC,KAAK,EAAE,IAAI;QAAEC,OAAO,EAAE;MAAM;IACtD,CAAC,CAAC;IACFnC,YAAY,CAAgB,CAAC,CAACiB,aAAa,CAAY,CAAC;IACxDlB,MAAM,CAACY,MAAM,CAAC,CAACS,aAAa,CAAC,CAAC;EAChC,CAAC,CAAC;EAEFnB,EAAE,CAAC,qBAAqB,EAAE,YAAY;IACKM,MAAM,CAC7CpB,qBACF,CAAC,CAACyB,WAAW;IAMbZ,YAAY,CAA4C,CAAC,CAAC+B,aAAa,CAErE,CAAC;IAE2CxB,MAAM,CAClDpB,qBACF,CAAC,CAACkC,gBAAgB;IAKlBrB,YAAY,CAEP,CAAC,CAAC+B,aAAa,CAAyB,CAAC;IAE9C,MAAMpB,MAAM,GAAG,MAAMJ,MAAM,CAACpB,qBAAqB,CAAC,CAACyB,WAAW,CAAC;MAC7DwB,UAAU,EAAE;IACd,CAAC,CAAC;IAEFpC,YAAY,CAAgB,CAAC,CAACiB,aAAa,CAAY,CAAC;IACxDlB,MAAM,CAACY,MAAM,CAAC,CAACS,aAAa,CAAC,CAAC;EAChC,CAAC,CAAC;EAEFnB,EAAE,CAAC,4BAA4B,EAAE,YAAY;IACFM,MAAM,CAC7CpB,qBACF,CAAC,CAACyB,WAAW;IAIiCL,MAAM,CAClDpB,qBACF,CAAC,CAACkC,gBAAgB;IAKlBrB,YAAY,CAOV,CAAC,CAAC+B,aAAa,CAEf,CAAC;IACH/B,YAAY,CAOV,CAAC,CAAC+B,aAAa,CAEf,CAAC;IAEH,MAAMM,IAAI,GACR1C,QAAQ,CAAC2C,2BAA2B,CAAC3C,QAAQ,CAAC4C,gBAAgB,CAACC,QAAQ,CAAC;IAE1E,MAAMJ,UAAU,GAAGhC,sBAAsB,CAACiC,IAAI,EAAE,WAAW,CAAC;;IAE5D;IACA,MAAMI,cAAc,GAAGC,MAAM,CAACC,MAAM,CAACN,IAAI,EAAE;MAAEL,IAAI,EAAE;IAAY,CAAC,CAAC;IAEjE,MAAMrB,MAAM,GAAG,MAAMJ,MAAM,CAACpB,qBAAqB,CAAC,CAACyB,WAAW,CAAC;MAC7DwB;IACF,CAAC,CAAC;IAEF,MAAMQ,OAAO,GAAG,MAAMrC,MAAM,CAACpB,qBAAqB,CAAC,CAACyB,WAAW,CAAC;MAC9DwB,UAAU,EAAEK;IACd,CAAC,CAAC;IAEFzC,YAAY,CAAgB,CAAC,CAACiB,aAAa,CAAY,CAAC;IACxDlB,MAAM,CAACY,MAAM,CAAC,CAACS,aAAa,CAAC,CAAC;IAE9BpB,YAAY,CAAiB,CAAC,CAACiB,aAAa,CAAY,CAAC;IACzDlB,MAAM,CAAC6C,OAAO,CAAC,CAACxB,aAAa,CAAC,CAAC;EACjC,CAAC,CAAC;EAEFnB,EAAE,CAAC,yBAAyB,EAAE,YAAY;IACJM,MAAM,CACxCnB,gBACF,CAAC,CAACwB,WAAW;IAKbZ,YAAY,CAIV,CAAC,CAAC+B,aAAa,CAEf,CAAC;IAEH,MAAMpB,MAAM,GAAG,MAAMJ,MAAM,CAACnB,gBAAgB,CAAC,CAACwB,WAAW,CAAC;MACxDiC,eAAe,EAAElD,QAAQ,CAACmD;IAC5B,CAAC,CAAC;IAEF9C,YAAY,CAAgB,CAAC,CAACiB,aAAa,CAAY,CAAC;IACxDlB,MAAM,CAACY,MAAM,CAAC,CAACS,aAAa,CAAC,CAAC;EAChC,CAAC,CAAC;EAEFnB,EAAE,CAAC,oBAAoB,EAAE,YAAY;IACDM,MAAM,CACtCf,kBACF,CAAC,CAACoB,WAAW;IAMbZ,YAAY,CAOV,CAAC,CAAC+B,aAAa,CAEf,CAAC;IAE0CxB,MAAM,CACjDf,kBACF,CAAC,CAAC6B,gBAAgB;IAKlBrB,YAAY,CAKP,CAAC,CAAC+B,aAAa,CAAyB,CAAC;IAE9C,MAAMpB,MAAM,GAAG,MAAMJ,MAAM,CAACf,kBAAkB,CAAC,CAACoB,WAAW,CAAC;MAC1DmC,gBAAgB,EAAE;QAChBC,WAAW,EAAE,UAAU;QACvBC,WAAW,EAAE;MACf;IACF,CAAC,CAAC;IAEFjD,YAAY,CAAgB,CAAC,CAACiB,aAAa,CAAY,CAAC;IACxDlB,MAAM,CAACY,MAAM,CAAC,CAACS,aAAa,CAAC,CAAC;EAChC,CAAC,CAAC;EACFnB,EAAE,CAAC,0BAA0B,EAAE,YAAY;IACNM,MAAM,CACvClB,kBACF,CAAC,CAACuB,WAAW;IAMbZ,YAAY,CAIV,CAAC,CAAC+B,aAAa,CAEf,CAAC;IAE2CxB,MAAM,CAClDlB,kBACF,CAAC,CAACgC,gBAAgB;IAKlBrB,YAAY,CAEP,CAAC,CAAC+B,aAAa,CAAyB,CAAC;IAE9C,MAAMpB,MAAM,GAAG,MAAMJ,MAAM,CAAClB,kBAAkB,CAAC,CAACuB,WAAW,CAAC;MAC1DsC,gBAAgB,EAAE;IACpB,CAAC,CAAC;IAEFlD,YAAY,CAAgB,CAAC,CAACiB,aAAa,CAAY,CAAC;IACxDlB,MAAM,CAACY,MAAM,CAAC,CAACS,aAAa,CAAC,CAAC;EAChC,CAAC,CAAC;EACFnB,EAAE,CAAC,2CAA2C,EAAE,YAAY;IAC1D,MAAMU,MAAM,GAAG,MAAMJ,MAAM,CAACd,UAAU,CAAC,CAAC4B,gBAAgB,CAAC,CACvD;MACER,QAAQ,EAAE,KAAK;MACfW,UAAU,EAAE,gBAAgB;MAC5BC,WAAW,EAAE;IACf,CAAC,EACD;MACEZ,QAAQ,EAAE,KAAK;MACfW,UAAU,EAAE,iBAAiB;MAC7BC,WAAW,EAAE;IACf,CAAC,CACF,EAAE;MAAET,YAAY,EAAE;IAAK,CAAC,CAAC;IAE1BjB,MAAM,CAACY,MAAM,CAAC,CAACO,qBAAqB,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEFpB,QAAQ,CAAC,0BAA0B,EAAE,MAAM;EACzC,MAAMqD,cAAyC,GAAG;IAChDC,KAAK,EAAE;MACLC,IAAI,EAAE,OAAO;MACbD,KAAK,EAAE,CAAC;QACN,YAAY,EAAE,WAAW;QACzB,YAAY,EAAE,aAAa;QAC3B,MAAM,EAAE;MACV,CAAC,EAAE;QACD,YAAY,EAAE,YAAY;QAC1B,YAAY,EAAE,aAAa;QAC3B,MAAM,EAAE;MACV,CAAC,EAAE;QACD,aAAa,EAAE;UAAE,YAAY,EAAE,MAAM;UAAE,YAAY,EAAE;QAAS,CAAC;QAC/D,qBAAqB,EAAE,MAAM;QAC7B,qBAAqB,EAAE,MAAM;QAC7B,aAAa,EAAE;UAAE,YAAY,EAAE,MAAM;UAAE,YAAY,EAAE;QAAW,CAAC;QACjE,MAAM,EAAE;MACV,CAAC,CAAC;MACFE,iBAAiB,EAAE,CAAC;MACpBC,mBAAmB,EAAE,CAAC;MACtBC,gBAAgB,EAAE,CAAC;MACnBC,oBAAoB,EAAE,CAAC;MACvBC,eAAe,EAAE;IACnB;EACF,CAAC;EAED,MAAMC,mBAA+C,GAAG;IACtDP,KAAK,EAAE;MACLC,IAAI,EAAE,OAAO;MACbD,KAAK,EAAE,CAAC;QACN,YAAY,EAAE,WAAW;QACzB,YAAY,EAAE,aAAa;QAC3B,MAAM,EAAE;MACV,CAAC,EAAE;QACD,YAAY,EAAE,YAAY;QAC1B,YAAY,EAAE,aAAa;QAC3B,MAAM,EAAE;MACV,CAAC,EAAE;QACD,aAAa,EAAE;UAAE,YAAY,EAAE,MAAM;UAAE,YAAY,EAAE;QAAS,CAAC;QAC/D,qBAAqB,EAAE,MAAM;QAC7B,qBAAqB,EAAE,MAAM;QAC7B,aAAa,EAAE;UAAE,YAAY,EAAE,MAAM;UAAE,YAAY,EAAE;QAAW,CAAC;QACjE,MAAM,EAAE;MACV,CAAC,CAAC;MACFE,iBAAiB,EAAE,CAAC;MACpBC,mBAAmB,EAAE,CAAC;MACtBC,gBAAgB,EAAE,CAAC;MACnBC,oBAAoB,EAAE,CAAC;MACvBC,eAAe,EAAE;IACnB;EACF,CAAC;EAEDzD,EAAE,CAAC,+CAA+C,EAAE,MAAM;IACxD,MAAM2D,sBAAsB,GAAGtD,mBAAmB,CAAC6C,cAAc,CAAC;IAClE,MAAMU,2BAA2B,GAAGvD,mBAAmB,CACrDqD,mBACF,CAAC;IACD5D,MAAM,CAAC6D,sBAAsB,CAAC,CAAC1C,qBAAqB,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;IACFnB,MAAM,CAAC8D,2BAA2B,CAAC,CAAC3C,qBAAqB,CAAC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EACFjB,EAAE,CAAC,wBAAwB,EAAE,YAAY;IACvC,MAAM6D,OAAO,GAAGpB,MAAM,CAACqB,IAAI,CAAC9E,QAAQ,CAAC;IACrCc,MAAM,CAAC+D,OAAO,CAAC,CAACE,aAAa,CAAC,CAC5B,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,CACxB,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"actions.test.js","names":["$Actions","actionTakesAttachment","actionTakesMedia","addGeoshape","createFooInterface","createOffice","createStructPerson","deleteBarInterface","deleteFooInterface","Employee","moveOffice","LegacyFauxFoundry","MockOntologiesV2","startNodeApiServer","stubData","beforeAll","describe","expect","expectTypeOf","it","vi","createClient","createAttachmentUpload","ActionValidationError","remapActionResponse","each","baseUrl","client","apiServer","testSetup","close","result","applyAction","officeId","address","capacity","$returnEdits","toEqualTypeOf","toMatchObject","undefinedResult","toBeUndefined","batchApplyAction","clientCreateOfficeMock","fn","newAddress","newCapacity","$validateOnly","fail","e","toBeInstanceOf","validation","toMatchTypeOf","name","city","state","zipcode","boundary","use","Actions","apply","submissionCriteria","parameters","attachment","blob","Blob","JSON","stringify","fileAttachment","Object","assign","result2","media_reference","actionRequestMediaUpload","geoshapeParam","type","coordinates","geohashParam","deletedInterface","$objectType","$primaryKey","createdInterface","apiName","request","info","json","undefined","toEqual","actionResponse","edits","deletedLinksCount","deletedObjectsCount","addedObjectCount","modifiedObjectsCount","addedLinksCount","batchActionResponse","remappedActionResponse","remappedBatchActionResponse","toMatchInlineSnapshot","actions","keys","toStrictEqual","wrapper","example","Promise","resolve"],"sources":["actions.test.ts"],"sourcesContent":["/*\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 type {\n ActionEditResponse,\n ActionValidationResponse,\n AttachmentUpload,\n MediaReference,\n} from \"@osdk/api\";\nimport {\n $Actions,\n actionTakesAttachment,\n actionTakesMedia,\n addGeoshape,\n createFooInterface,\n createOffice,\n createStructPerson,\n deleteBarInterface,\n deleteFooInterface,\n Employee,\n moveOffice,\n} from \"@osdk/client.test.ontology\";\nimport type {\n ApplyActionRequestV2,\n BatchApplyActionResponseV2,\n SyncApplyActionResponseV2,\n} from \"@osdk/foundry.ontologies\";\nimport type { SetupServer } from \"@osdk/shared.test\";\nimport {\n LegacyFauxFoundry,\n MockOntologiesV2,\n startNodeApiServer,\n stubData,\n} from \"@osdk/shared.test\";\nimport { beforeAll, describe, expect, expectTypeOf, it, vi } from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\nimport { createAttachmentUpload } from \"../object/AttachmentUpload.js\";\nimport { ActionValidationError } from \"./ActionValidationError.js\";\nimport { remapActionResponse } from \"./applyAction.js\";\n\ndescribe.each([\n \"https://stack.palantir.com\",\n \"https://stack.palantirCustom.com/foo/first/someStuff\",\n])(\"actions for %s\", (baseUrl) => {\n let client: Client;\n let apiServer: SetupServer;\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(\n new LegacyFauxFoundry(baseUrl),\n createClient,\n );\n ({ client, apiServer } = testSetup);\n\n return () => {\n apiServer.close();\n };\n });\n\n it(\"conditionally returns the edits\", async () => {\n const result = await client(createOffice).applyAction({\n officeId: \"NYC\",\n address: \"123 Main Street\",\n capacity: 100,\n }, { $returnEdits: true });\n\n expectTypeOf<typeof result>().toEqualTypeOf<ActionEditResponse>();\n expect(result).toMatchObject(\n {\n \"addedLinks\": [],\n \"addedObjects\": [\n {\n \"objectType\": \"Office\",\n \"primaryKey\": \"NYC\",\n },\n ],\n \"deletedLinks\": [],\n \"deletedLinksCount\": 0,\n \"deletedObjects\": [],\n \"deletedObjectsCount\": 0,\n \"editedObjectTypes\": [\n \"Office\",\n ],\n \"modifiedObjects\": [],\n \"type\": \"edits\",\n },\n );\n\n // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression\n const undefinedResult = await client(createOffice).applyAction({\n officeId: \"NYC\",\n address: \"123 Main Street\",\n capacity: 100,\n });\n\n expectTypeOf<typeof undefinedResult>().toEqualTypeOf<undefined>();\n expect(undefinedResult).toBeUndefined();\n\n const clientCreateOffice = client(createOffice).batchApplyAction;\n const clientCreateOfficeMock: typeof clientCreateOffice = vi.fn();\n void clientCreateOfficeMock([{\n officeId: \"NYC\",\n address: \"123 Main Street\",\n capacity: 100,\n }], { $returnEdits: true });\n });\n\n it(\"returns validation directly on validateOnly mode\", async () => {\n const result = await client(moveOffice).applyAction({\n officeId: \"SEA\",\n newAddress: \"456 Pike Place\",\n // intentionally using a string to trigger validation errors\n newCapacity: \"40\" as unknown as number,\n }, {\n $validateOnly: true,\n });\n expectTypeOf<typeof result>().toEqualTypeOf<ActionValidationResponse>();\n\n expect(result).toMatchObject(\n {\n \"parameters\": {\n \"newCapacity\": {\n \"evaluatedConstraints\": [],\n \"required\": false,\n \"result\": \"INVALID\",\n },\n },\n \"result\": \"INVALID\",\n \"submissionCriteria\": [],\n },\n );\n });\n\n it(\"returns validation directly on validateOnly mode, with custom entry point in URL\", async () => {\n const result = await client(moveOffice).applyAction({\n officeId: \"SEA\",\n newAddress: \"456 Pike Place\",\n // intentionally using a string to trigger validation failure\n newCapacity: \"40\" as unknown as number,\n }, {\n $validateOnly: true,\n });\n expectTypeOf<typeof result>().toEqualTypeOf<ActionValidationResponse>();\n\n expect(result).toMatchObject(\n {\n \"parameters\": {\n \"newCapacity\": {\n \"evaluatedConstraints\": [],\n \"required\": false,\n \"result\": \"INVALID\",\n },\n },\n \"result\": \"INVALID\",\n \"submissionCriteria\": [],\n },\n );\n });\n\n it(\"throws on validation errors\", async () => {\n try {\n const result = await client(moveOffice).applyAction({\n officeId: \"SEA\",\n newAddress: \"456 Pike Place\",\n // intentionally using a string to trigger validation failure\n newCapacity: \"40\" as unknown as number,\n }, {\n $returnEdits: true,\n });\n expect.fail(\"Should not reach here\");\n } catch (e) {\n expect(e).toBeInstanceOf(ActionValidationError);\n expect((e as ActionValidationError).validation).toMatchObject(\n {\n \"parameters\": {\n \"newCapacity\": {\n \"evaluatedConstraints\": [],\n \"required\": false,\n \"result\": \"INVALID\",\n },\n },\n \"result\": \"INVALID\",\n \"submissionCriteria\": [],\n },\n );\n }\n });\n\n it(\"Accepts structs\", async () => {\n const clientBoundActionTakesStruct = client(createStructPerson).applyAction;\n type InferredParamType = Parameters<\n typeof clientBoundActionTakesStruct\n >[0];\n expectTypeOf<\n {\n name: string;\n address: { city: string; state: string; zipcode: number };\n }\n >()\n .toMatchTypeOf<\n InferredParamType\n >();\n\n const result = await client(createStructPerson).applyAction({\n name: \"testMan\",\n address: { city: \"NYC\", state: \"NY\", zipcode: 12345 },\n });\n expectTypeOf<typeof result>().toEqualTypeOf<undefined>();\n expect(result).toBeUndefined();\n });\n\n it(\"Accepts attachments\", async () => {\n const clientBoundActionTakesAttachment = client(\n actionTakesAttachment,\n ).applyAction;\n\n type InferredParamType = Parameters<\n typeof clientBoundActionTakesAttachment\n >[0];\n\n expectTypeOf<{ attachment: string | AttachmentUpload }>().toMatchTypeOf<\n InferredParamType\n >();\n\n const clientBoundBatchActionTakesAttachment = client(\n actionTakesAttachment,\n ).batchApplyAction;\n type InferredBatchParamType = Parameters<\n typeof clientBoundBatchActionTakesAttachment\n >[0];\n\n expectTypeOf<{\n attachment: string | AttachmentUpload;\n }[]>().toMatchTypeOf<InferredBatchParamType>();\n\n await apiServer.boundary(async () => {\n apiServer.use(MockOntologiesV2.Actions.apply(baseUrl, (info) => {\n return {\n validation: {\n result: \"VALID\",\n submissionCriteria: [],\n parameters: {},\n },\n };\n }));\n\n // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression\n const result = await client(actionTakesAttachment).applyAction({\n attachment: \"ri.some.rid\",\n });\n\n expectTypeOf<typeof result>().toEqualTypeOf<undefined>();\n expect(result).toBeUndefined();\n })();\n });\n\n it(\"Accepts attachment uploads\", async () => {\n const clientBoundActionTakesAttachment = client(\n actionTakesAttachment,\n ).applyAction;\n type InferredParamType = Parameters<\n typeof clientBoundActionTakesAttachment\n >[0];\n const clientBoundBatchActionTakesAttachment = client(\n actionTakesAttachment,\n ).batchApplyAction;\n type InferredBatchParamType = Parameters<\n typeof clientBoundBatchActionTakesAttachment\n >[0];\n\n expectTypeOf<\n {\n attachment:\n | string\n | AttachmentUpload\n | Blob & { readonly name: string };\n }\n >().toMatchTypeOf<\n InferredParamType\n >();\n expectTypeOf<\n {\n attachment:\n | string\n | AttachmentUpload\n | Blob & { readonly name: string };\n }[]\n >().toMatchTypeOf<\n InferredBatchParamType\n >();\n\n const blob = new Blob([JSON.stringify({ name: \"Hello World\" }, null, 2)]);\n\n const attachment = createAttachmentUpload(blob, \"file1.txt\");\n\n // Mimics the Web file API (https://developer.mozilla.org/en-US/docs/Web/API/File). The File constructor is only available in Node 19.2.0 and above\n const fileAttachment = Object.assign(blob, { name: \"file1.txt\" });\n\n // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression\n const result = await client(actionTakesAttachment).applyAction({\n attachment,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression\n const result2 = await client(actionTakesAttachment).applyAction({\n attachment: fileAttachment,\n });\n\n expectTypeOf<typeof result>().toEqualTypeOf<undefined>();\n expect(result).toBeUndefined();\n\n expectTypeOf<typeof result2>().toEqualTypeOf<undefined>();\n expect(result2).toBeUndefined();\n });\n\n it(\"Accepts media reference\", async () => {\n const clientBoundActionTakesMedia = client(\n actionTakesMedia,\n ).applyAction;\n type InferredParamType = Parameters<\n typeof clientBoundActionTakesMedia\n >[0];\n\n expectTypeOf<\n {\n media_reference: MediaReference;\n }\n >().toMatchTypeOf<\n InferredParamType\n >();\n\n const result = await client(actionTakesMedia).applyAction({\n media_reference:\n stubData.actionRequestMediaUpload.parameters.media_reference,\n });\n\n expectTypeOf<typeof result>().toEqualTypeOf<undefined>();\n expect(result).toBeUndefined();\n });\n\n it(\"Accepts geoshapes\", async () => {\n const clientBoundActionTakesMedia = client(\n addGeoshape,\n ).applyAction;\n type InferredParamType = Parameters<\n typeof clientBoundActionTakesMedia\n >[0];\n\n expectTypeOf<\n {\n geoshapeParam: GeoJSON.GeoJSON;\n geohashParam: GeoJSON.Point;\n }\n >().toMatchTypeOf<\n InferredParamType\n >();\n\n const result = await client(addGeoshape).applyAction({\n geoshapeParam: {\n type: \"Polygon\",\n coordinates: [\n [\n [\n -97.86567863752134,\n 38.418052586871624,\n ],\n [\n -97.86567863752134,\n 35.410223767370525,\n ],\n [\n -91.98573135442845,\n 35.410223767370525,\n ],\n [\n -91.98573135442845,\n 38.418052586871624,\n ],\n [\n -97.86567863752134,\n 38.418052586871624,\n ],\n ],\n ],\n },\n geohashParam: {\n type: \"Point\",\n coordinates: [-79.4382042508868, 40.917859676842255],\n },\n });\n\n expectTypeOf<typeof result>().toEqualTypeOf<undefined>();\n expect(result).toBeUndefined();\n });\n\n it(\"Accepts interfaces\", async () => {\n const clientBoundTakesInterface = client(\n deleteFooInterface,\n ).applyAction;\n\n type InferredParamType = Parameters<\n typeof clientBoundTakesInterface\n >[0];\n\n expectTypeOf<\n {\n deletedInterface: {\n $objectType: \"Employee\" | \"Person\";\n $primaryKey: string | number;\n };\n }\n >().toMatchTypeOf<\n InferredParamType\n >();\n\n const clientBoundBatchActionTakesInterface = client(\n deleteFooInterface,\n ).batchApplyAction;\n type InferredBatchParamType = Parameters<\n typeof clientBoundBatchActionTakesInterface\n >[0];\n\n expectTypeOf<{\n deletedInterface: {\n $objectType: \"Employee\" | \"Person\";\n $primaryKey: string | number;\n };\n }[]>().toMatchTypeOf<InferredBatchParamType>();\n\n const result = await client(deleteFooInterface).applyAction({\n deletedInterface: {\n $objectType: \"Employee\",\n $primaryKey: 50030,\n },\n });\n\n expectTypeOf<typeof result>().toEqualTypeOf<undefined>();\n expect(result).toBeUndefined();\n });\n it(\"Accepts interfaces if implementing object types unknown\", async () => {\n const clientBoundTakesInterface = client(\n deleteBarInterface,\n ).applyAction;\n\n type InferredParamType = Parameters<\n typeof clientBoundTakesInterface\n >[0];\n\n expectTypeOf<\n {\n deletedInterface: {\n $objectType: string;\n $primaryKey: string | number;\n };\n }\n >().toMatchTypeOf<\n InferredParamType\n >();\n\n const clientBoundBatchActionTakesInterface = client(\n deleteBarInterface,\n ).batchApplyAction;\n type InferredBatchParamType = Parameters<\n typeof clientBoundBatchActionTakesInterface\n >[0];\n\n expectTypeOf<{\n deletedInterface: {\n $objectType: string;\n $primaryKey: string | number;\n };\n }[]>().toMatchTypeOf<InferredBatchParamType>();\n });\n it(\"Accepts object type refs\", async () => {\n const clientBoundTakesObjectType = client(\n createFooInterface,\n ).applyAction;\n\n type InferredParamType = Parameters<\n typeof clientBoundTakesObjectType\n >[0];\n\n expectTypeOf<\n {\n createdInterface: string;\n }\n >().toMatchTypeOf<\n InferredParamType\n >();\n\n const clientBoundBatchActionTakesObjectType = client(\n createFooInterface,\n ).batchApplyAction;\n type InferredBatchParamType = Parameters<\n typeof clientBoundBatchActionTakesObjectType\n >[0];\n\n expectTypeOf<{\n createdInterface: string;\n }[]>().toMatchTypeOf<InferredBatchParamType>();\n\n const result = await client(createFooInterface).applyAction({\n createdInterface: Employee.apiName,\n });\n\n expectTypeOf<typeof result>().toEqualTypeOf<undefined>();\n expect(result).toBeUndefined();\n });\n it(\"conditionally returns edits in batch mode\", async () => {\n const result = await client(moveOffice).batchApplyAction([\n {\n officeId: \"SEA\",\n newAddress: \"456 Good Place\",\n newCapacity: 40,\n },\n {\n officeId: \"NYC\",\n newAddress: \"123 Main Street\",\n newCapacity: 80,\n },\n ], { $returnEdits: true });\n\n expect(result).toMatchObject(\n {\n \"addedLinks\": [],\n \"addedObjects\": [],\n \"deletedLinks\": [],\n \"deletedLinksCount\": 0,\n \"deletedObjects\": [],\n \"deletedObjectsCount\": 0,\n \"editedObjectTypes\": [\n \"Office\",\n ],\n \"modifiedObjects\": [\n {\n \"objectType\": \"Office\",\n \"primaryKey\": \"SEA\",\n },\n {\n \"objectType\": \"Office\",\n \"primaryKey\": \"NYC\",\n },\n ],\n \"type\": \"edits\",\n },\n );\n });\n\n describe(\"Properly handles undefined values for optional parameters\", () => {\n it(\"Sends null on request for explicitly undefined values\", async () => {\n await apiServer.boundary(async () => {\n let request = {} as ApplyActionRequestV2;\n apiServer.use(MockOntologiesV2.Actions.apply(baseUrl, async (info) => {\n request = await info.request.json();\n return {\n validation: {\n result: \"VALID\",\n submissionCriteria: [],\n parameters: {},\n },\n };\n }));\n\n await client($Actions.createStructPerson).applyAction({\n name: \"testMan\",\n address: undefined,\n });\n expect(request.parameters).toEqual({ address: null, name: \"testMan\" });\n })();\n });\n\n it(\"Does not send null on request for unset values\", async () => {\n await apiServer.boundary(async () => {\n let request = {} as ApplyActionRequestV2;\n apiServer.use(MockOntologiesV2.Actions.apply(baseUrl, async (info) => {\n request = await info.request.json();\n return {\n validation: {\n result: \"VALID\",\n submissionCriteria: [],\n parameters: {},\n },\n };\n }));\n\n await client($Actions.createStructPerson).applyAction({\n name: \"testMan\",\n });\n expect(request.parameters).toEqual({ name: \"testMan\" });\n })();\n });\n });\n});\n\ndescribe(\"ActionResponse remapping\", () => {\n const actionResponse: SyncApplyActionResponseV2 = {\n edits: {\n type: \"edits\",\n edits: [{\n \"objectType\": \"Developer\",\n \"primaryKey\": \"PalantirDev\",\n \"type\": \"addObject\",\n }, {\n \"objectType\": \"Contractor\",\n \"primaryKey\": \"Contractor1\",\n \"type\": \"modifyObject\",\n }, {\n \"aSideObject\": { \"primaryKey\": \"key1\", \"objectType\": \"Office\" },\n \"linkTypeApiNameAtoB\": \"test\",\n \"linkTypeApiNameBtoA\": \"test\",\n \"bSideObject\": { \"primaryKey\": \"key2\", \"objectType\": \"Employee\" },\n \"type\": \"addLink\",\n }, {\n \"objectType\": \"Developer\",\n \"primaryKey\": \"PalantirDev\",\n \"type\": \"deleteObject\",\n }, {\n \"aSideObject\": { \"primaryKey\": \"key1\", \"objectType\": \"Office\" },\n \"linkTypeApiNameAtoB\": \"test\",\n \"linkTypeApiNameBtoA\": \"test\",\n \"bSideObject\": { \"primaryKey\": \"key2\", \"objectType\": \"Employee\" },\n \"type\": \"deleteLink\",\n }],\n deletedLinksCount: 0,\n deletedObjectsCount: 1,\n addedObjectCount: 1,\n modifiedObjectsCount: 1,\n addedLinksCount: 1,\n },\n };\n\n const batchActionResponse: BatchApplyActionResponseV2 = {\n edits: {\n type: \"edits\",\n edits: [{\n \"objectType\": \"Developer\",\n \"primaryKey\": \"PalantirDev\",\n \"type\": \"addObject\",\n }, {\n \"objectType\": \"Contractor\",\n \"primaryKey\": \"Contractor1\",\n \"type\": \"modifyObject\",\n }, {\n \"aSideObject\": { \"primaryKey\": \"key1\", \"objectType\": \"Office\" },\n \"linkTypeApiNameAtoB\": \"test\",\n \"linkTypeApiNameBtoA\": \"test\",\n \"bSideObject\": { \"primaryKey\": \"key2\", \"objectType\": \"Employee\" },\n \"type\": \"addLink\",\n }],\n deletedLinksCount: 0,\n deletedObjectsCount: 0,\n addedObjectCount: 1,\n modifiedObjectsCount: 1,\n addedLinksCount: 1,\n },\n };\n\n it(\"Correctly unpacks edits and editedObjectTypes\", () => {\n const remappedActionResponse = remapActionResponse(actionResponse);\n const remappedBatchActionResponse = remapActionResponse(\n batchActionResponse,\n );\n expect(remappedActionResponse).toMatchInlineSnapshot(`\n {\n \"addedLinks\": [\n {\n \"aSideObject\": {\n \"objectType\": \"Office\",\n \"primaryKey\": \"key1\",\n },\n \"bSideObject\": {\n \"objectType\": \"Employee\",\n \"primaryKey\": \"key2\",\n },\n \"linkTypeApiNameAtoB\": \"test\",\n \"linkTypeApiNameBtoA\": \"test\",\n },\n ],\n \"addedObjects\": [\n {\n \"objectType\": \"Developer\",\n \"primaryKey\": \"PalantirDev\",\n },\n ],\n \"deletedLinks\": [\n {\n \"aSideObject\": {\n \"objectType\": \"Office\",\n \"primaryKey\": \"key1\",\n },\n \"bSideObject\": {\n \"objectType\": \"Employee\",\n \"primaryKey\": \"key2\",\n },\n \"linkTypeApiNameAtoB\": \"test\",\n \"linkTypeApiNameBtoA\": \"test\",\n },\n ],\n \"deletedLinksCount\": 0,\n \"deletedObjects\": [\n {\n \"objectType\": \"Developer\",\n \"primaryKey\": \"PalantirDev\",\n },\n ],\n \"deletedObjectsCount\": 1,\n \"editedObjectTypes\": [\n \"Developer\",\n \"Contractor\",\n \"Office\",\n \"Employee\",\n ],\n \"modifiedObjects\": [\n {\n \"objectType\": \"Contractor\",\n \"primaryKey\": \"Contractor1\",\n },\n ],\n \"type\": \"edits\",\n }\n `);\n expect(remappedBatchActionResponse).toMatchInlineSnapshot(`\n {\n \"addedLinks\": [\n {\n \"aSideObject\": {\n \"objectType\": \"Office\",\n \"primaryKey\": \"key1\",\n },\n \"bSideObject\": {\n \"objectType\": \"Employee\",\n \"primaryKey\": \"key2\",\n },\n \"linkTypeApiNameAtoB\": \"test\",\n \"linkTypeApiNameBtoA\": \"test\",\n },\n ],\n \"addedObjects\": [\n {\n \"objectType\": \"Developer\",\n \"primaryKey\": \"PalantirDev\",\n },\n ],\n \"deletedLinks\": [],\n \"deletedLinksCount\": 0,\n \"deletedObjects\": [],\n \"deletedObjectsCount\": 0,\n \"editedObjectTypes\": [\n \"Developer\",\n \"Contractor\",\n \"Office\",\n \"Employee\",\n ],\n \"modifiedObjects\": [\n {\n \"objectType\": \"Contractor\",\n \"primaryKey\": \"Contractor1\",\n },\n ],\n \"type\": \"edits\",\n }\n `);\n });\n it(\"actions are enumerable\", async () => {\n const actions = Object.keys($Actions);\n expect(actions).toStrictEqual([\n \"actionTakesAttachment\",\n \"actionTakesMedia\",\n \"actionTakesObjectSet\",\n \"addGeoshape\",\n \"createFooInterface\",\n \"createOffice\",\n \"createOfficeAndEmployee\",\n \"createStructPerson\",\n \"deleteBarInterface\",\n \"deleteFooInterface\",\n \"editTodo\",\n \"moveOffice\",\n \"promoteEmployee\",\n \"promoteEmployeeObject\",\n ]);\n });\n});\n\nfunction wrapper<R>(fn: () => R): typeof fn {\n return () => fn();\n}\n\nasync function example() {\n await wrapper(async () => Promise.resolve(\"hi\"))();\n}\n"],"mappings":"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","ignoreList":[]}