@osdk/client 2.2.0-beta.9 → 2.3.0-beta.1

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 (385) hide show
  1. package/CHANGELOG.md +370 -0
  2. package/build/browser/MinimalClientContext.js.map +1 -1
  3. package/build/browser/__unstable/ConjureSupport.js.map +1 -1
  4. package/build/browser/actions/ActionValidationError.js +1 -1
  5. package/build/browser/actions/ActionValidationError.js.map +1 -1
  6. package/build/browser/actions/actions.test.js +134 -89
  7. package/build/browser/actions/actions.test.js.map +1 -1
  8. package/build/browser/actions/applyAction.js.map +1 -1
  9. package/build/browser/createClient.js +5 -1
  10. package/build/browser/createClient.js.map +1 -1
  11. package/build/browser/createClient.test.js +14 -6
  12. package/build/browser/createClient.test.js.map +1 -1
  13. package/build/browser/createMinimalClient.js.map +1 -1
  14. package/build/browser/createMinimalClientHelper.js +25 -0
  15. package/build/browser/createMinimalClientHelper.js.map +1 -0
  16. package/build/browser/derivedProperties/createWithPropertiesObjectSet.js +36 -13
  17. package/build/browser/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
  18. package/build/browser/derivedProperties/createWithPropertiesObjectSet.test.js +133 -0
  19. package/build/browser/derivedProperties/createWithPropertiesObjectSet.test.js.map +1 -1
  20. package/build/browser/derivedProperties/derivedPropertyDefinitionFactory.js +93 -0
  21. package/build/browser/derivedProperties/derivedPropertyDefinitionFactory.js.map +1 -0
  22. package/build/browser/fetchMetadata.js +1 -1
  23. package/build/browser/fetchMetadata.js.map +1 -1
  24. package/build/browser/fetchMetadata.test.js +11 -9
  25. package/build/browser/fetchMetadata.test.js.map +1 -1
  26. package/build/browser/index.js +0 -1
  27. package/build/browser/index.js.map +1 -1
  28. package/build/{esm/util/isOsdkBaseObject.js → browser/intellisense.test.helpers/showsObjectPropertyJsdoc.js} +9 -4
  29. package/build/browser/intellisense.test.helpers/showsObjectPropertyJsdoc.js.map +1 -0
  30. package/build/browser/intellisense.test.js +17 -1
  31. package/build/browser/intellisense.test.js.map +1 -1
  32. package/build/browser/logger/BaseLogger.js +59 -0
  33. package/build/browser/logger/BaseLogger.js.map +1 -0
  34. package/build/browser/logger/BrowserLogger.js +67 -0
  35. package/build/browser/logger/BrowserLogger.js.map +1 -0
  36. package/build/browser/logger/MinimalLogger.js +39 -0
  37. package/build/browser/logger/MinimalLogger.js.map +1 -0
  38. package/build/browser/logger/MinimalLogger.test.js +60 -0
  39. package/build/browser/logger/MinimalLogger.test.js.map +1 -0
  40. package/build/browser/logger/TestLogger.js +56 -0
  41. package/build/browser/logger/TestLogger.js.map +1 -0
  42. package/build/browser/object/attachment.test.js +20 -7
  43. package/build/browser/object/attachment.test.js.map +1 -1
  44. package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -1
  45. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js +4 -0
  46. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  47. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js +44 -33
  48. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  49. package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  50. package/build/browser/object/convertWireToOsdkObjects.js +4 -14
  51. package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
  52. package/build/browser/object/convertWireToOsdkObjects.test.js +39 -33
  53. package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
  54. package/build/browser/object/fetchPage.js +4 -3
  55. package/build/browser/object/fetchPage.js.map +1 -1
  56. package/build/browser/object/geotimeseriesreference.test.js +56 -134
  57. package/build/browser/object/geotimeseriesreference.test.js.map +1 -1
  58. package/build/browser/object/media.test.js +19 -14
  59. package/build/browser/object/media.test.js.map +1 -1
  60. package/build/browser/object/object.test.js +96 -89
  61. package/build/browser/object/object.test.js.map +1 -1
  62. package/build/browser/object/timeseries.test.js +119 -85
  63. package/build/browser/object/timeseries.test.js.map +1 -1
  64. package/build/browser/objectSet/InterfaceObjectSet.test.js +24 -20
  65. package/build/browser/objectSet/InterfaceObjectSet.test.js.map +1 -1
  66. package/build/browser/objectSet/ObjectSet.test.js +113 -19
  67. package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
  68. package/build/browser/objectSet/ObjectSetListenerWebsocket.js +2 -2
  69. package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  70. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +19 -12
  71. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  72. package/build/browser/objectSet/createObjectSet.js +2 -1
  73. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  74. package/build/browser/observable/internal/ActionApplication.js +4 -4
  75. package/build/browser/observable/internal/ActionApplication.js.map +1 -1
  76. package/build/browser/observable/internal/BulkObjectLoader.js +93 -0
  77. package/build/browser/observable/internal/BulkObjectLoader.js.map +1 -0
  78. package/build/browser/observable/internal/BulkObjectLoader.test.js +112 -0
  79. package/build/browser/observable/internal/BulkObjectLoader.test.js.map +1 -0
  80. package/build/browser/observable/internal/ListQuery.js +4 -1
  81. package/build/browser/observable/internal/ListQuery.js.map +1 -1
  82. package/build/browser/observable/internal/ObjectQuery.js +3 -6
  83. package/build/browser/observable/internal/ObjectQuery.js.map +1 -1
  84. package/build/browser/observable/internal/OptimisticJob.js +1 -1
  85. package/build/browser/observable/internal/OptimisticJob.js.map +1 -1
  86. package/build/browser/observable/internal/Query.js.map +1 -1
  87. package/build/browser/observable/internal/Store.js +2 -2
  88. package/build/browser/observable/internal/Store.js.map +1 -1
  89. package/build/browser/observable/internal/Store.test.js +215 -206
  90. package/build/browser/observable/internal/Store.test.js.map +1 -1
  91. package/build/browser/observable/internal/objectMatchesWhereClause.js +0 -2
  92. package/build/browser/observable/internal/objectMatchesWhereClause.js.map +1 -1
  93. package/build/browser/observable/internal/testUtils.js +4 -3
  94. package/build/browser/observable/internal/testUtils.js.map +1 -1
  95. package/build/browser/ontology/OntologyProvider.js.map +1 -1
  96. package/build/browser/ontology/StandardOntologyProvider.js +12 -5
  97. package/build/browser/ontology/StandardOntologyProvider.js.map +1 -1
  98. package/build/browser/ontology/StandardOntologyProvider.test.js +17 -16
  99. package/build/browser/ontology/StandardOntologyProvider.test.js.map +1 -1
  100. package/build/browser/ontology/loadFullObjectMetadata.js +0 -1
  101. package/build/browser/ontology/loadFullObjectMetadata.js.map +1 -1
  102. package/build/browser/ontology/loadQueryMetadata.js +5 -2
  103. package/build/browser/ontology/loadQueryMetadata.js.map +1 -1
  104. package/build/browser/public/internal.js +2 -0
  105. package/build/browser/public/internal.js.map +1 -1
  106. package/build/browser/public/unstable-do-not-use.js +1 -0
  107. package/build/browser/public/unstable-do-not-use.js.map +1 -1
  108. package/build/browser/public-utils/osdkConfig.js +49 -0
  109. package/build/browser/public-utils/osdkConfig.js.map +1 -0
  110. package/build/browser/{object/createObjectSpecifierFromPrimaryKey.js → public-utils/vite-env.d.ts} +2 -3
  111. package/build/browser/queries/applyQuery.js +6 -4
  112. package/build/browser/queries/applyQuery.js.map +1 -1
  113. package/build/browser/queries/queries.test.js +93 -27
  114. package/build/browser/queries/queries.test.js.map +1 -1
  115. package/build/browser/queries/types.js.map +1 -1
  116. package/build/browser/tsserver.js.map +1 -1
  117. package/build/browser/util/UserAgent.js +1 -1
  118. package/build/browser/util/extractRdpDefinition.js +140 -0
  119. package/build/browser/util/extractRdpDefinition.js.map +1 -0
  120. package/build/browser/util/extractRdpDefinition.test.js +233 -0
  121. package/build/browser/util/extractRdpDefinition.test.js.map +1 -0
  122. package/build/browser/util/{isOsdkBaseObject.js → isObjectSpecifiersObject.js} +2 -2
  123. package/build/browser/util/isObjectSpecifiersObject.js.map +1 -0
  124. package/build/browser/util/isPoint.js +20 -0
  125. package/build/browser/util/isPoint.js.map +1 -0
  126. package/build/browser/util/objectSpecifierUtils.js +48 -0
  127. package/build/browser/util/objectSpecifierUtils.js.map +1 -0
  128. package/build/browser/util/objectSpecifierUtils.test.js +42 -0
  129. package/build/browser/util/objectSpecifierUtils.test.js.map +1 -0
  130. package/build/browser/util/toDataValue.js +6 -2
  131. package/build/browser/util/toDataValue.js.map +1 -1
  132. package/build/browser/util/toDataValue.test.js +37 -16
  133. package/build/browser/util/toDataValue.test.js.map +1 -1
  134. package/build/browser/util/toDataValueQueries.js +4 -6
  135. package/build/browser/util/toDataValueQueries.js.map +1 -1
  136. package/build/cjs/{Client-DBTcM9gB.d.cts → Client-CgL2LKN9.d.cts} +6 -7
  137. package/build/cjs/{chunk-MCQVHD2F.cjs → chunk-FKI2LO2O.cjs} +232 -68
  138. package/build/cjs/chunk-FKI2LO2O.cjs.map +1 -0
  139. package/build/cjs/{chunk-EY52J5Z4.cjs → chunk-W5PFESFR.cjs} +163 -34
  140. package/build/cjs/chunk-W5PFESFR.cjs.map +1 -0
  141. package/build/cjs/index.cjs +188 -166
  142. package/build/cjs/index.cjs.map +1 -1
  143. package/build/cjs/index.d.cts +4 -24
  144. package/build/cjs/public/internal.cjs +61 -7
  145. package/build/cjs/public/internal.cjs.map +1 -1
  146. package/build/cjs/public/internal.d.cts +50 -3
  147. package/build/cjs/public/unstable-do-not-use.cjs +224 -103
  148. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  149. package/build/cjs/public/unstable-do-not-use.d.cts +12 -3
  150. package/build/esm/MinimalClientContext.js.map +1 -1
  151. package/build/esm/__unstable/ConjureSupport.js.map +1 -1
  152. package/build/esm/actions/ActionValidationError.js +1 -1
  153. package/build/esm/actions/ActionValidationError.js.map +1 -1
  154. package/build/esm/actions/actions.test.js +134 -89
  155. package/build/esm/actions/actions.test.js.map +1 -1
  156. package/build/esm/actions/applyAction.js.map +1 -1
  157. package/build/esm/createClient.js +5 -1
  158. package/build/esm/createClient.js.map +1 -1
  159. package/build/esm/createClient.test.js +14 -6
  160. package/build/esm/createClient.test.js.map +1 -1
  161. package/build/esm/createMinimalClient.js.map +1 -1
  162. package/build/esm/createMinimalClientHelper.js +25 -0
  163. package/build/esm/createMinimalClientHelper.js.map +1 -0
  164. package/build/esm/derivedProperties/createWithPropertiesObjectSet.js +36 -13
  165. package/build/esm/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
  166. package/build/esm/derivedProperties/createWithPropertiesObjectSet.test.js +133 -0
  167. package/build/esm/derivedProperties/createWithPropertiesObjectSet.test.js.map +1 -1
  168. package/build/esm/derivedProperties/derivedPropertyDefinitionFactory.js +93 -0
  169. package/build/esm/derivedProperties/derivedPropertyDefinitionFactory.js.map +1 -0
  170. package/build/esm/fetchMetadata.js +1 -1
  171. package/build/esm/fetchMetadata.js.map +1 -1
  172. package/build/esm/fetchMetadata.test.js +11 -9
  173. package/build/esm/fetchMetadata.test.js.map +1 -1
  174. package/build/esm/index.js +0 -1
  175. package/build/esm/index.js.map +1 -1
  176. package/build/esm/{util/isOsdkObject.js → intellisense.test.helpers/showsObjectPropertyJsdoc.js} +9 -4
  177. package/build/esm/intellisense.test.helpers/showsObjectPropertyJsdoc.js.map +1 -0
  178. package/build/esm/intellisense.test.js +17 -1
  179. package/build/esm/intellisense.test.js.map +1 -1
  180. package/build/esm/logger/BaseLogger.js +59 -0
  181. package/build/esm/logger/BaseLogger.js.map +1 -0
  182. package/build/esm/logger/BrowserLogger.js +67 -0
  183. package/build/esm/logger/BrowserLogger.js.map +1 -0
  184. package/build/esm/logger/MinimalLogger.js +39 -0
  185. package/build/esm/logger/MinimalLogger.js.map +1 -0
  186. package/build/esm/logger/MinimalLogger.test.js +60 -0
  187. package/build/esm/logger/MinimalLogger.test.js.map +1 -0
  188. package/build/esm/logger/TestLogger.js +56 -0
  189. package/build/esm/logger/TestLogger.js.map +1 -0
  190. package/build/esm/object/attachment.test.js +20 -7
  191. package/build/esm/object/attachment.test.js.map +1 -1
  192. package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -1
  193. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js +4 -0
  194. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  195. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js +44 -33
  196. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  197. package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  198. package/build/esm/object/convertWireToOsdkObjects.js +4 -14
  199. package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
  200. package/build/esm/object/convertWireToOsdkObjects.test.js +39 -33
  201. package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
  202. package/build/esm/object/fetchPage.js +4 -3
  203. package/build/esm/object/fetchPage.js.map +1 -1
  204. package/build/esm/object/geotimeseriesreference.test.js +56 -134
  205. package/build/esm/object/geotimeseriesreference.test.js.map +1 -1
  206. package/build/esm/object/media.test.js +19 -14
  207. package/build/esm/object/media.test.js.map +1 -1
  208. package/build/esm/object/object.test.js +96 -89
  209. package/build/esm/object/object.test.js.map +1 -1
  210. package/build/esm/object/timeseries.test.js +119 -85
  211. package/build/esm/object/timeseries.test.js.map +1 -1
  212. package/build/esm/objectSet/InterfaceObjectSet.test.js +24 -20
  213. package/build/esm/objectSet/InterfaceObjectSet.test.js.map +1 -1
  214. package/build/esm/objectSet/ObjectSet.test.js +113 -19
  215. package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
  216. package/build/esm/objectSet/ObjectSetListenerWebsocket.js +2 -2
  217. package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  218. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +19 -12
  219. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  220. package/build/esm/objectSet/createObjectSet.js +2 -1
  221. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  222. package/build/esm/observable/internal/ActionApplication.js +4 -4
  223. package/build/esm/observable/internal/ActionApplication.js.map +1 -1
  224. package/build/esm/observable/internal/BulkObjectLoader.js +93 -0
  225. package/build/esm/observable/internal/BulkObjectLoader.js.map +1 -0
  226. package/build/esm/observable/internal/BulkObjectLoader.test.js +112 -0
  227. package/build/esm/observable/internal/BulkObjectLoader.test.js.map +1 -0
  228. package/build/esm/observable/internal/ListQuery.js +4 -1
  229. package/build/esm/observable/internal/ListQuery.js.map +1 -1
  230. package/build/esm/observable/internal/ObjectQuery.js +3 -6
  231. package/build/esm/observable/internal/ObjectQuery.js.map +1 -1
  232. package/build/esm/observable/internal/OptimisticJob.js +1 -1
  233. package/build/esm/observable/internal/OptimisticJob.js.map +1 -1
  234. package/build/esm/observable/internal/Query.js.map +1 -1
  235. package/build/esm/observable/internal/Store.js +2 -2
  236. package/build/esm/observable/internal/Store.js.map +1 -1
  237. package/build/esm/observable/internal/Store.test.js +215 -206
  238. package/build/esm/observable/internal/Store.test.js.map +1 -1
  239. package/build/esm/observable/internal/objectMatchesWhereClause.js +0 -2
  240. package/build/esm/observable/internal/objectMatchesWhereClause.js.map +1 -1
  241. package/build/esm/observable/internal/testUtils.js +4 -3
  242. package/build/esm/observable/internal/testUtils.js.map +1 -1
  243. package/build/esm/ontology/OntologyProvider.js.map +1 -1
  244. package/build/esm/ontology/StandardOntologyProvider.js +12 -5
  245. package/build/esm/ontology/StandardOntologyProvider.js.map +1 -1
  246. package/build/esm/ontology/StandardOntologyProvider.test.js +17 -16
  247. package/build/esm/ontology/StandardOntologyProvider.test.js.map +1 -1
  248. package/build/esm/ontology/loadFullObjectMetadata.js +0 -1
  249. package/build/esm/ontology/loadFullObjectMetadata.js.map +1 -1
  250. package/build/esm/ontology/loadQueryMetadata.js +5 -2
  251. package/build/esm/ontology/loadQueryMetadata.js.map +1 -1
  252. package/build/esm/public/internal.js +2 -0
  253. package/build/esm/public/internal.js.map +1 -1
  254. package/build/esm/public/unstable-do-not-use.js +1 -0
  255. package/build/esm/public/unstable-do-not-use.js.map +1 -1
  256. package/build/esm/public-utils/osdkConfig.js +49 -0
  257. package/build/esm/public-utils/osdkConfig.js.map +1 -0
  258. package/build/esm/{object/createObjectSpecifierFromPrimaryKey.js → public-utils/vite-env.d.ts} +2 -3
  259. package/build/esm/queries/applyQuery.js +6 -4
  260. package/build/esm/queries/applyQuery.js.map +1 -1
  261. package/build/esm/queries/queries.test.js +93 -27
  262. package/build/esm/queries/queries.test.js.map +1 -1
  263. package/build/esm/queries/types.js.map +1 -1
  264. package/build/esm/tsserver.js.map +1 -1
  265. package/build/esm/util/UserAgent.js +1 -1
  266. package/build/esm/util/extractRdpDefinition.js +140 -0
  267. package/build/esm/util/extractRdpDefinition.js.map +1 -0
  268. package/build/esm/util/extractRdpDefinition.test.js +233 -0
  269. package/build/esm/util/extractRdpDefinition.test.js.map +1 -0
  270. package/build/{browser/util/isOsdkObject.js → esm/util/isObjectSpecifiersObject.js} +2 -2
  271. package/build/esm/util/isObjectSpecifiersObject.js.map +1 -0
  272. package/build/esm/util/isPoint.js +20 -0
  273. package/build/esm/util/isPoint.js.map +1 -0
  274. package/build/esm/util/objectSpecifierUtils.js +48 -0
  275. package/build/esm/util/objectSpecifierUtils.js.map +1 -0
  276. package/build/esm/util/objectSpecifierUtils.test.js +42 -0
  277. package/build/esm/util/objectSpecifierUtils.test.js.map +1 -0
  278. package/build/esm/util/toDataValue.js +6 -2
  279. package/build/esm/util/toDataValue.js.map +1 -1
  280. package/build/esm/util/toDataValue.test.js +37 -16
  281. package/build/esm/util/toDataValue.test.js.map +1 -1
  282. package/build/esm/util/toDataValueQueries.js +4 -6
  283. package/build/esm/util/toDataValueQueries.js.map +1 -1
  284. package/build/types/MinimalClientContext.d.ts +1 -1
  285. package/build/types/MinimalClientContext.d.ts.map +1 -1
  286. package/build/types/__unstable/ConjureSupport.d.ts +2 -2
  287. package/build/types/actions/applyAction.d.ts +1 -2
  288. package/build/types/actions/applyAction.d.ts.map +1 -1
  289. package/build/types/createClient.d.ts +1 -1
  290. package/build/types/createClient.d.ts.map +1 -1
  291. package/build/types/createClient.test.d.ts +2 -1
  292. package/build/types/createClient.test.d.ts.map +1 -1
  293. package/build/types/createMinimalClientHelper.d.ts +1 -0
  294. package/build/types/createMinimalClientHelper.d.ts.map +1 -0
  295. package/build/types/derivedProperties/derivedPropertyDefinitionFactory.d.ts +1 -0
  296. package/build/types/derivedProperties/derivedPropertyDefinitionFactory.d.ts.map +1 -0
  297. package/build/types/index.d.ts +4 -6
  298. package/build/types/index.d.ts.map +1 -1
  299. package/build/types/intellisense.test.helpers/showsObjectPropertyJsdoc.d.ts +1 -0
  300. package/build/types/intellisense.test.helpers/showsObjectPropertyJsdoc.d.ts.map +1 -0
  301. package/build/types/logger/BaseLogger.d.ts +33 -0
  302. package/build/types/logger/BaseLogger.d.ts.map +1 -0
  303. package/build/types/logger/BrowserLogger.d.ts +9 -0
  304. package/build/types/logger/BrowserLogger.d.ts.map +1 -0
  305. package/build/types/logger/MinimalLogger.d.ts +9 -0
  306. package/build/types/logger/MinimalLogger.d.ts.map +1 -0
  307. package/build/types/logger/MinimalLogger.test.d.ts +1 -0
  308. package/build/types/logger/MinimalLogger.test.d.ts.map +1 -0
  309. package/build/types/logger/TestLogger.d.ts +14 -0
  310. package/build/types/logger/TestLogger.d.ts.map +1 -0
  311. package/build/types/object/convertWireToOsdkObjects.d.ts +4 -4
  312. package/build/types/object/convertWireToOsdkObjects.d.ts.map +1 -1
  313. package/build/types/object/fetchPage.d.ts.map +1 -1
  314. package/build/types/object/object.test.d.ts.map +1 -1
  315. package/build/types/objectSet/ObjectSet.test.d.ts.map +1 -1
  316. package/build/types/observable/internal/ActionApplication.d.ts +2 -2
  317. package/build/types/observable/internal/ActionApplication.d.ts.map +1 -1
  318. package/build/types/observable/internal/BulkObjectLoader.d.ts +8 -0
  319. package/build/types/observable/internal/BulkObjectLoader.d.ts.map +1 -0
  320. package/build/types/observable/internal/BulkObjectLoader.test.d.ts +1 -0
  321. package/build/types/observable/internal/BulkObjectLoader.test.d.ts.map +1 -0
  322. package/build/types/observable/internal/ListQuery.d.ts.map +1 -1
  323. package/build/types/observable/internal/ObjectQuery.d.ts.map +1 -1
  324. package/build/types/observable/internal/OptimisticJob.d.ts.map +1 -1
  325. package/build/types/observable/internal/Query.d.ts +2 -2
  326. package/build/types/observable/internal/Query.d.ts.map +1 -1
  327. package/build/types/observable/internal/Store.d.ts +2 -2
  328. package/build/types/observable/internal/Store.d.ts.map +1 -1
  329. package/build/types/observable/internal/testUtils.d.ts +1 -2
  330. package/build/types/observable/internal/testUtils.d.ts.map +1 -1
  331. package/build/types/ontology/OntologyProvider.d.ts +1 -1
  332. package/build/types/ontology/OntologyProvider.d.ts.map +1 -1
  333. package/build/types/ontology/loadQueryMetadata.d.ts +1 -1
  334. package/build/types/ontology/loadQueryMetadata.d.ts.map +1 -1
  335. package/build/types/public/internal.d.ts +2 -0
  336. package/build/types/public/internal.d.ts.map +1 -1
  337. package/build/types/public/unstable-do-not-use.d.ts +4 -2
  338. package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
  339. package/build/types/public-utils/osdkConfig.d.ts +8 -0
  340. package/build/types/public-utils/osdkConfig.d.ts.map +1 -0
  341. package/build/types/public-utils/vite-env.d.d.ts +3 -0
  342. package/build/types/public-utils/vite-env.d.d.ts.map +1 -0
  343. package/build/types/queries/applyQuery.d.ts +2 -2
  344. package/build/types/queries/applyQuery.d.ts.map +1 -1
  345. package/build/types/queries/types.d.ts +1 -1
  346. package/build/types/queries/types.d.ts.map +1 -1
  347. package/build/types/tsserver.d.ts +1 -1
  348. package/build/types/tsserver.d.ts.map +1 -1
  349. package/build/types/util/extractRdpDefinition.d.ts +4 -0
  350. package/build/types/util/extractRdpDefinition.d.ts.map +1 -0
  351. package/build/types/util/extractRdpDefinition.test.d.ts +1 -0
  352. package/build/types/util/extractRdpDefinition.test.d.ts.map +1 -0
  353. package/build/types/util/isObjectSpecifiersObject.d.ts +5 -0
  354. package/build/types/util/isObjectSpecifiersObject.d.ts.map +1 -0
  355. package/build/types/util/isPoint.d.ts +1 -0
  356. package/build/types/util/isPoint.d.ts.map +1 -0
  357. package/build/types/util/objectSpecifierUtils.d.ts +24 -0
  358. package/build/types/util/objectSpecifierUtils.d.ts.map +1 -0
  359. package/build/types/util/objectSpecifierUtils.test.d.ts +1 -0
  360. package/build/types/util/objectSpecifierUtils.test.d.ts.map +1 -0
  361. package/package.json +19 -18
  362. package/build/browser/Logger.js +0 -2
  363. package/build/browser/Logger.js.map +0 -1
  364. package/build/browser/object/createObjectSpecifierFromPrimaryKey.js.map +0 -1
  365. package/build/browser/util/isOsdkBaseObject.js.map +0 -1
  366. package/build/browser/util/isOsdkObject.js.map +0 -1
  367. package/build/cjs/chunk-EY52J5Z4.cjs.map +0 -1
  368. package/build/cjs/chunk-MCQVHD2F.cjs.map +0 -1
  369. package/build/cjs/chunk-Q7SFCCGT.cjs +0 -11
  370. package/build/cjs/chunk-Q7SFCCGT.cjs.map +0 -1
  371. package/build/cjs/graphql-RGM5SRWV.cjs +0 -10532
  372. package/build/cjs/graphql-RGM5SRWV.cjs.map +0 -1
  373. package/build/esm/Logger.js +0 -2
  374. package/build/esm/Logger.js.map +0 -1
  375. package/build/esm/object/createObjectSpecifierFromPrimaryKey.js.map +0 -1
  376. package/build/esm/util/isOsdkBaseObject.js.map +0 -1
  377. package/build/esm/util/isOsdkObject.js.map +0 -1
  378. package/build/types/Logger.d.ts +0 -17
  379. package/build/types/Logger.d.ts.map +0 -1
  380. package/build/types/object/createObjectSpecifierFromPrimaryKey.d.ts +0 -2
  381. package/build/types/object/createObjectSpecifierFromPrimaryKey.d.ts.map +0 -1
  382. package/build/types/util/isOsdkBaseObject.d.ts +0 -2
  383. package/build/types/util/isOsdkBaseObject.d.ts.map +0 -1
  384. package/build/types/util/isOsdkObject.d.ts +0 -2
  385. package/build/types/util/isOsdkObject.d.ts.map +0 -1
@@ -0,0 +1,59 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ export function noop() {}
18
+ const levels = {
19
+ trace: 10,
20
+ debug: 20,
21
+ info: 30,
22
+ warn: 40,
23
+ error: 50,
24
+ fatal: 60
25
+ };
26
+ export class BaseLogger {
27
+ #factory;
28
+ constructor(bindings, options = {}, factory) {
29
+ this.bindings = bindings;
30
+ this.options = options;
31
+ this.#factory = factory;
32
+ for (const k of ["trace", "debug", "info", "warn", "error", "fatal"]) {
33
+ if (this.options?.level && !this.isLevelEnabled(k)) {
34
+ continue;
35
+ }
36
+ this[k] = this.createLogMethod(k, bindings);
37
+ }
38
+ }
39
+ trace = noop;
40
+ debug = noop;
41
+ warn = noop;
42
+ info = noop;
43
+ error = noop;
44
+ fatal = noop;
45
+ child(bindings, options) {
46
+ return new this.#factory({
47
+ ...this.bindings,
48
+ ...bindings
49
+ }, {
50
+ level: (options ?? this.options)?.level,
51
+ msgPrefix: [this.options?.msgPrefix, options?.msgPrefix].filter(x => x).join(" ")
52
+ });
53
+ }
54
+ isLevelEnabled(level) {
55
+ const ourLevel = this.options?.level ?? "info";
56
+ return level in levels && ourLevel in levels && levels[level] >= levels[ourLevel];
57
+ }
58
+ }
59
+ //# sourceMappingURL=BaseLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseLogger.js","names":["noop","levels","trace","debug","info","warn","error","fatal","BaseLogger","factory","constructor","bindings","options","k","level","isLevelEnabled","createLogMethod","child","msgPrefix","filter","x","join","ourLevel"],"sources":["BaseLogger.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Logger } from \"@osdk/api\";\n\nexport function noop(): any {\n}\n\ninterface LoggerConstructor {\n new(\n bindings: Record<string, any>,\n options?: { level?: string; msgPrefix?: string },\n ): Logger;\n}\n\nconst levels = {\n trace: 10,\n debug: 20,\n info: 30,\n warn: 40,\n error: 50,\n fatal: 60,\n};\n\nexport abstract class BaseLogger implements Logger {\n protected bindings: Record<string, any>;\n protected options: { level?: string; msgPrefix?: string } | undefined;\n #factory: LoggerConstructor;\n\n constructor(\n bindings: Record<string, any>,\n options: { level?: string; msgPrefix?: string } = {},\n factory: LoggerConstructor,\n ) {\n this.bindings = bindings;\n this.options = options;\n this.#factory = factory;\n\n for (\n const k of [\"trace\", \"debug\", \"info\", \"warn\", \"error\", \"fatal\"] as const\n ) {\n if (this.options?.level && !this.isLevelEnabled(k)) {\n continue;\n }\n this[k] = this.createLogMethod(k, bindings);\n }\n }\n\n protected abstract createLogMethod(\n name: \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\",\n bindings: Record<string, any>,\n ): Logger.LogFn;\n\n trace: Logger.LogFn = noop;\n debug: Logger.LogFn = noop;\n warn: Logger.LogFn = noop;\n info: Logger.LogFn = noop;\n error: Logger.LogFn = noop;\n fatal: Logger.LogFn = noop;\n\n child(\n bindings: Record<string, any>,\n options?: { level?: string; msgPrefix?: string },\n ): Logger {\n return new this.#factory({\n ...this.bindings,\n ...bindings,\n }, {\n level: (options ?? this.options)?.level,\n msgPrefix: [this.options?.msgPrefix, options?.msgPrefix].filter(x => x)\n .join(\" \"),\n });\n }\n\n isLevelEnabled(level: string): boolean {\n const ourLevel = (this.options?.level ?? \"info\") as keyof typeof levels;\n\n return level in levels && ourLevel in levels\n && levels[level as keyof typeof levels] >= levels[ourLevel];\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,OAAO,SAASA,IAAIA,CAAA,EAAQ,CAC5B;AASA,MAAMC,MAAM,GAAG;EACbC,KAAK,EAAE,EAAE;EACTC,KAAK,EAAE,EAAE;EACTC,IAAI,EAAE,EAAE;EACRC,IAAI,EAAE,EAAE;EACRC,KAAK,EAAE,EAAE;EACTC,KAAK,EAAE;AACT,CAAC;AAED,OAAO,MAAeC,UAAU,CAAmB;EAGjD,CAACC,OAAO;EAERC,WAAWA,CACTC,QAA6B,EAC7BC,OAA+C,GAAG,CAAC,CAAC,EACpDH,OAA0B,EAC1B;IACA,IAAI,CAACE,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAAC,CAACH,OAAO,GAAGA,OAAO;IAEvB,KACE,MAAMI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAC/D;MACA,IAAI,IAAI,CAACD,OAAO,EAAEE,KAAK,IAAI,CAAC,IAAI,CAACC,cAAc,CAACF,CAAC,CAAC,EAAE;QAClD;MACF;MACA,IAAI,CAACA,CAAC,CAAC,GAAG,IAAI,CAACG,eAAe,CAACH,CAAC,EAAEF,QAAQ,CAAC;IAC7C;EACF;EAOAT,KAAK,GAAiBF,IAAI;EAC1BG,KAAK,GAAiBH,IAAI;EAC1BK,IAAI,GAAiBL,IAAI;EACzBI,IAAI,GAAiBJ,IAAI;EACzBM,KAAK,GAAiBN,IAAI;EAC1BO,KAAK,GAAiBP,IAAI;EAE1BiB,KAAKA,CACHN,QAA6B,EAC7BC,OAAgD,EACxC;IACR,OAAO,IAAI,IAAI,CAAC,CAACH,OAAO,CAAC;MACvB,GAAG,IAAI,CAACE,QAAQ;MAChB,GAAGA;IACL,CAAC,EAAE;MACDG,KAAK,EAAE,CAACF,OAAO,IAAI,IAAI,CAACA,OAAO,GAAGE,KAAK;MACvCI,SAAS,EAAE,CAAC,IAAI,CAACN,OAAO,EAAEM,SAAS,EAAEN,OAAO,EAAEM,SAAS,CAAC,CAACC,MAAM,CAACC,CAAC,IAAIA,CAAC,CAAC,CACpEC,IAAI,CAAC,GAAG;IACb,CAAC,CAAC;EACJ;EAEAN,cAAcA,CAACD,KAAa,EAAW;IACrC,MAAMQ,QAAQ,GAAI,IAAI,CAACV,OAAO,EAAEE,KAAK,IAAI,MAA8B;IAEvE,OAAOA,KAAK,IAAIb,MAAM,IAAIqB,QAAQ,IAAIrB,MAAM,IACvCA,MAAM,CAACa,KAAK,CAAwB,IAAIb,MAAM,CAACqB,QAAQ,CAAC;EAC/D;AACF","ignoreList":[]}
@@ -0,0 +1,67 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { BaseLogger } from "./BaseLogger.js";
18
+ function createStyle({
19
+ color
20
+ }) {
21
+ return `color: ${color}; border: 1px solid ${color}; padding: 2px; border-radius: 3px;`;
22
+ }
23
+ const levelStyles = {
24
+ debug: createStyle({
25
+ color: "LightBlue"
26
+ }),
27
+ error: createStyle({
28
+ color: "red"
29
+ }),
30
+ fatal: createStyle({
31
+ color: "red"
32
+ }),
33
+ info: createStyle({
34
+ color: "green"
35
+ }),
36
+ trace: createStyle({
37
+ color: "gray"
38
+ }),
39
+ warn: createStyle({
40
+ color: "orange"
41
+ })
42
+ };
43
+ export class BrowserLogger extends BaseLogger {
44
+ constructor(bindings = {}, options = {}) {
45
+ super(bindings, {
46
+ ...options,
47
+ level: options.level ?? "error"
48
+ }, BrowserLogger);
49
+ }
50
+ createLogMethod(name, bindings) {
51
+ const msgs = [`%c${name}%c`];
52
+ const styles = [levelStyles[name], ""];
53
+ if (this.options?.msgPrefix) {
54
+ msgs.push(`%c${this.options.msgPrefix}%c`);
55
+ styles.push("font-style: italic; color: gray", "");
56
+ }
57
+ if (typeof bindings === "object" && "methodName" in bindings) {
58
+ msgs.push(`%c.${bindings.methodName}()%c`);
59
+ styles.push("font-style: italic;color: orchid", "");
60
+ }
61
+ return (...args) => {
62
+ // eslint-disable-next-line no-console
63
+ console[name === "fatal" ? "error" : name](msgs.join(" "), ...styles, ...args);
64
+ };
65
+ }
66
+ }
67
+ //# sourceMappingURL=BrowserLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowserLogger.js","names":["BaseLogger","createStyle","color","levelStyles","debug","error","fatal","info","trace","warn","BrowserLogger","constructor","bindings","options","level","createLogMethod","name","msgs","styles","msgPrefix","push","methodName","args","console","join"],"sources":["BrowserLogger.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Logger } from \"@osdk/api\";\nimport { BaseLogger } from \"./BaseLogger.js\";\nfunction createStyle({ color }: { color: string }) {\n return `color: ${color}; border: 1px solid ${color}; padding: 2px; border-radius: 3px;`;\n}\n\nconst levelStyles = {\n debug: createStyle({\n color: \"LightBlue\",\n }),\n error: createStyle({\n color: \"red\",\n }),\n fatal: createStyle({\n color: \"red\",\n }),\n info: createStyle({\n color: \"green\",\n }),\n trace: createStyle({\n color: \"gray\",\n }),\n warn: createStyle({\n color: \"orange\",\n }),\n};\n\nexport class BrowserLogger extends BaseLogger implements Logger {\n constructor(\n bindings: Record<string, any> = {},\n options: { level?: string; msgPrefix?: string } = {},\n ) {\n super(\n bindings,\n { ...options, level: options.level ?? \"error\" },\n BrowserLogger,\n );\n }\n\n protected createLogMethod(\n name: \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\",\n bindings: Record<string, any>,\n ): Logger.LogFn {\n const msgs: string[] = [`%c${name}%c`];\n const styles: string[] = [levelStyles[name], \"\"];\n\n if (this.options?.msgPrefix) {\n msgs.push(`%c${this.options.msgPrefix}%c`);\n styles.push(\n \"font-style: italic; color: gray\",\n \"\",\n );\n }\n\n if (typeof bindings === \"object\" && \"methodName\" in bindings) {\n msgs.push(`%c.${bindings.methodName}()%c`);\n styles.push(\n \"font-style: italic;color: orchid\",\n \"\",\n );\n }\n\n return (...args: any[]): any => {\n // eslint-disable-next-line no-console\n console[name === \"fatal\" ? \"error\" : name](\n msgs.join(\" \"),\n ...styles,\n ...args,\n );\n };\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,UAAU,QAAQ,iBAAiB;AAC5C,SAASC,WAAWA,CAAC;EAAEC;AAAyB,CAAC,EAAE;EACjD,OAAO,UAAUA,KAAK,uBAAuBA,KAAK,qCAAqC;AACzF;AAEA,MAAMC,WAAW,GAAG;EAClBC,KAAK,EAAEH,WAAW,CAAC;IACjBC,KAAK,EAAE;EACT,CAAC,CAAC;EACFG,KAAK,EAAEJ,WAAW,CAAC;IACjBC,KAAK,EAAE;EACT,CAAC,CAAC;EACFI,KAAK,EAAEL,WAAW,CAAC;IACjBC,KAAK,EAAE;EACT,CAAC,CAAC;EACFK,IAAI,EAAEN,WAAW,CAAC;IAChBC,KAAK,EAAE;EACT,CAAC,CAAC;EACFM,KAAK,EAAEP,WAAW,CAAC;IACjBC,KAAK,EAAE;EACT,CAAC,CAAC;EACFO,IAAI,EAAER,WAAW,CAAC;IAChBC,KAAK,EAAE;EACT,CAAC;AACH,CAAC;AAED,OAAO,MAAMQ,aAAa,SAASV,UAAU,CAAmB;EAC9DW,WAAWA,CACTC,QAA6B,GAAG,CAAC,CAAC,EAClCC,OAA+C,GAAG,CAAC,CAAC,EACpD;IACA,KAAK,CACHD,QAAQ,EACR;MAAE,GAAGC,OAAO;MAAEC,KAAK,EAAED,OAAO,CAACC,KAAK,IAAI;IAAQ,CAAC,EAC/CJ,aACF,CAAC;EACH;EAEUK,eAAeA,CACvBC,IAA6D,EAC7DJ,QAA6B,EACf;IACd,MAAMK,IAAc,GAAG,CAAC,KAAKD,IAAI,IAAI,CAAC;IACtC,MAAME,MAAgB,GAAG,CAACf,WAAW,CAACa,IAAI,CAAC,EAAE,EAAE,CAAC;IAEhD,IAAI,IAAI,CAACH,OAAO,EAAEM,SAAS,EAAE;MAC3BF,IAAI,CAACG,IAAI,CAAC,KAAK,IAAI,CAACP,OAAO,CAACM,SAAS,IAAI,CAAC;MAC1CD,MAAM,CAACE,IAAI,CACT,iCAAiC,EACjC,EACF,CAAC;IACH;IAEA,IAAI,OAAOR,QAAQ,KAAK,QAAQ,IAAI,YAAY,IAAIA,QAAQ,EAAE;MAC5DK,IAAI,CAACG,IAAI,CAAC,MAAMR,QAAQ,CAACS,UAAU,MAAM,CAAC;MAC1CH,MAAM,CAACE,IAAI,CACT,kCAAkC,EAClC,EACF,CAAC;IACH;IAEA,OAAO,CAAC,GAAGE,IAAW,KAAU;MAC9B;MACAC,OAAO,CAACP,IAAI,KAAK,OAAO,GAAG,OAAO,GAAGA,IAAI,CAAC,CACxCC,IAAI,CAACO,IAAI,CAAC,GAAG,CAAC,EACd,GAAGN,MAAM,EACT,GAAGI,IACL,CAAC;IACH,CAAC;EACH;AACF","ignoreList":[0]}
@@ -0,0 +1,39 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { BaseLogger } from "./BaseLogger.js";
18
+ export class MinimalLogger extends BaseLogger {
19
+ constructor(bindings = {}, options = {}) {
20
+ super(bindings, {
21
+ ...options,
22
+ level: options.level ?? "error"
23
+ }, MinimalLogger);
24
+ }
25
+ createLogMethod(name, bindings) {
26
+ const msgs = [name];
27
+ if (this.options?.msgPrefix) {
28
+ msgs.push(this.options.msgPrefix);
29
+ }
30
+ if (typeof bindings === "object" && "methodName" in bindings) {
31
+ msgs.push(`.${bindings.methodName}()`);
32
+ }
33
+ return (...args) => {
34
+ // eslint-disable-next-line no-console
35
+ console[name === "fatal" ? "error" : name](msgs.join(" "), ...args);
36
+ };
37
+ }
38
+ }
39
+ //# sourceMappingURL=MinimalLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MinimalLogger.js","names":["BaseLogger","MinimalLogger","constructor","bindings","options","level","createLogMethod","name","msgs","msgPrefix","push","methodName","args","console","join"],"sources":["MinimalLogger.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Logger } from \"@osdk/api\";\nimport { BaseLogger } from \"./BaseLogger.js\";\n\nexport class MinimalLogger extends BaseLogger implements Logger {\n constructor(\n bindings: Record<string, any> = {},\n options: { level?: string; msgPrefix?: string } = {},\n ) {\n super(\n bindings,\n { ...options, level: options.level ?? \"error\" },\n MinimalLogger,\n );\n }\n\n createLogMethod(\n name: \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\",\n bindings: Record<string, any>,\n ): Logger.LogFn {\n const msgs: string[] = [name];\n\n if (this.options?.msgPrefix) {\n msgs.push(this.options.msgPrefix);\n }\n\n if (typeof bindings === \"object\" && \"methodName\" in bindings) {\n msgs.push(`.${bindings.methodName}()`);\n }\n\n return (...args: any[]) => {\n // eslint-disable-next-line no-console\n console[name === \"fatal\" ? \"error\" : name](msgs.join(\" \"), ...args);\n };\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,UAAU,QAAQ,iBAAiB;AAE5C,OAAO,MAAMC,aAAa,SAASD,UAAU,CAAmB;EAC9DE,WAAWA,CACTC,QAA6B,GAAG,CAAC,CAAC,EAClCC,OAA+C,GAAG,CAAC,CAAC,EACpD;IACA,KAAK,CACHD,QAAQ,EACR;MAAE,GAAGC,OAAO;MAAEC,KAAK,EAAED,OAAO,CAACC,KAAK,IAAI;IAAQ,CAAC,EAC/CJ,aACF,CAAC;EACH;EAEAK,eAAeA,CACbC,IAA6D,EAC7DJ,QAA6B,EACf;IACd,MAAMK,IAAc,GAAG,CAACD,IAAI,CAAC;IAE7B,IAAI,IAAI,CAACH,OAAO,EAAEK,SAAS,EAAE;MAC3BD,IAAI,CAACE,IAAI,CAAC,IAAI,CAACN,OAAO,CAACK,SAAS,CAAC;IACnC;IAEA,IAAI,OAAON,QAAQ,KAAK,QAAQ,IAAI,YAAY,IAAIA,QAAQ,EAAE;MAC5DK,IAAI,CAACE,IAAI,CAAC,IAAIP,QAAQ,CAACQ,UAAU,IAAI,CAAC;IACxC;IAEA,OAAO,CAAC,GAAGC,IAAW,KAAK;MACzB;MACAC,OAAO,CAACN,IAAI,KAAK,OAAO,GAAG,OAAO,GAAGA,IAAI,CAAC,CAACC,IAAI,CAACM,IAAI,CAAC,GAAG,CAAC,EAAE,GAAGF,IAAI,CAAC;IACrE,CAAC;EACH;AACF","ignoreList":[0]}
@@ -0,0 +1,60 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { beforeEach, describe, expect, it, vi } from "vitest";
18
+ import { MinimalLogger } from "./MinimalLogger.js";
19
+ const orderedLevels = ["trace", "debug", "info", "warn", "error", "fatal"];
20
+ describe(MinimalLogger, () => {
21
+ const consoleMocks = Object.fromEntries(["log", "error", "warn", "trace"].map(name => [name, vi.spyOn(console, name)]));
22
+ beforeEach(() => {
23
+ for (const consoleMock of Object.values(consoleMocks)) {
24
+ consoleMock.mockClear();
25
+ }
26
+ });
27
+ it("does not debug log by default", () => {
28
+ const logger = new MinimalLogger();
29
+ logger.debug("hi");
30
+ for (const consoleMock of Object.values(consoleMocks)) {
31
+ expect(consoleMock).not.toHaveBeenCalled();
32
+ }
33
+ });
34
+ it("can log", () => {
35
+ new MinimalLogger({}, {});
36
+ });
37
+ describe.for(orderedLevels)("For level %s", level => {
38
+ const idx = orderedLevels.findIndex(a => a === level);
39
+ expect(idx).toBeGreaterThan(-1);
40
+ const shouldNotOutput = orderedLevels.slice(0, idx);
41
+ const shouldOutput = orderedLevels.slice(idx);
42
+ const x = [...shouldNotOutput.map(x => [x, false]), ...shouldOutput.map(x => [x, true])];
43
+ it.for(x)("It should log for %s? %s", ([levelToCheck, shouldLog]) => {
44
+ const logger = new MinimalLogger({}, {
45
+ level
46
+ });
47
+ logger[levelToCheck]("logging");
48
+ let calls = 0;
49
+ for (const consoleMock of Object.values(consoleMocks)) {
50
+ calls += consoleMock.mock.calls.length;
51
+ }
52
+ if (shouldLog) {
53
+ expect(calls === 1, `Should log one time but got ${calls}`);
54
+ } else {
55
+ expect(calls === 0, "should not call console.thing");
56
+ }
57
+ });
58
+ });
59
+ });
60
+ //# sourceMappingURL=MinimalLogger.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MinimalLogger.test.js","names":["beforeEach","describe","expect","it","vi","MinimalLogger","orderedLevels","consoleMocks","Object","fromEntries","map","name","spyOn","console","consoleMock","values","mockClear","logger","debug","not","toHaveBeenCalled","for","level","idx","findIndex","a","toBeGreaterThan","shouldNotOutput","slice","shouldOutput","x","levelToCheck","shouldLog","calls","mock","length"],"sources":["MinimalLogger.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { MockInstance } from \"vitest\";\nimport { beforeEach, describe, expect, it, vi } from \"vitest\";\nimport { MinimalLogger } from \"./MinimalLogger.js\";\n\nconst orderedLevels = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\",\n \"fatal\",\n] as const;\n\ndescribe(MinimalLogger, () => {\n const consoleTypes = [\"log\", \"error\", \"warn\", \"trace\"] as const;\n type consoleTypes = typeof consoleTypes[number];\n\n const consoleMocks = Object.fromEntries(\n consoleTypes.map(name =>\n [name, vi.spyOn(console, name)] as [consoleTypes, MockInstance<any>]\n ),\n ) as Record<\n typeof consoleTypes[number],\n MockInstance<any>\n >;\n\n beforeEach(() => {\n for (const consoleMock of Object.values(consoleMocks)) {\n consoleMock.mockClear();\n }\n });\n\n it(\"does not debug log by default\", () => {\n const logger = new MinimalLogger();\n logger.debug(\"hi\");\n\n for (const consoleMock of Object.values(consoleMocks)) {\n expect(consoleMock).not.toHaveBeenCalled();\n }\n });\n\n it(\"can log\", () => {\n new MinimalLogger({}, {});\n });\n\n describe.for(orderedLevels)(\"For level %s\", (level) => {\n const idx = orderedLevels.findIndex(a => a === level);\n expect(idx).toBeGreaterThan(-1);\n\n const shouldNotOutput = orderedLevels.slice(0, idx);\n const shouldOutput = orderedLevels.slice(idx);\n\n const x = [\n ...shouldNotOutput.map(x => [x, false] as const),\n ...shouldOutput.map(x => [x, true] as const),\n ];\n\n it.for(x)(\"It should log for %s? %s\", ([levelToCheck, shouldLog]) => {\n const logger = new MinimalLogger({}, { level });\n\n logger[levelToCheck](\"logging\");\n\n let calls = 0;\n\n for (const consoleMock of Object.values(consoleMocks)) {\n calls += consoleMock.mock.calls.length;\n }\n\n if (shouldLog) {\n expect(calls === 1, `Should log one time but got ${calls}`);\n } else {\n expect(calls === 0, \"should not call console.thing\");\n }\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,56 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { Chalk } from "chalk";
18
+ import { vi } from "vitest";
19
+ import { BaseLogger } from "./BaseLogger.js";
20
+ const chalk = new Chalk(); // new Chalk({ level: 3 });
21
+
22
+ const colors = {
23
+ debug: [chalk.cyan, chalk.bgCyan],
24
+ info: [chalk.green, chalk.bgGreen],
25
+ trace: [chalk.gray, chalk.bgGray],
26
+ error: [chalk.red, chalk.bgRed],
27
+ warn: [chalk.yellow, chalk.bgYellow],
28
+ fatal: [chalk.redBright, chalk.bgRedBright]
29
+ };
30
+
31
+ /**
32
+ * A logger suitable for using in unit tests.
33
+ * - It uses chalk for colors (Node and browser console.log supports)
34
+ * - Does not rely on async behavior of `pino`.
35
+ */
36
+ export class TestLogger extends BaseLogger {
37
+ constructor(bindings = {}, options = {}) {
38
+ super(bindings, {
39
+ ...options,
40
+ level: options.level ?? "error"
41
+ }, TestLogger);
42
+ }
43
+ createLogMethod(name, bindings) {
44
+ const msgs = [colors[name][1](name)];
45
+ if (this.options?.msgPrefix) {
46
+ msgs.push(colors[name][0](this.options.msgPrefix));
47
+ }
48
+ if (typeof bindings === "object" && "methodName" in bindings) {
49
+ msgs.push(chalk.magenta(`.${bindings.methodName}()`));
50
+ }
51
+
52
+ // eslint-disable-next-line no-console
53
+ return vi.fn(console[name === "fatal" ? "error" : name].bind(console, msgs.join(" ")));
54
+ }
55
+ }
56
+ //# sourceMappingURL=TestLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestLogger.js","names":["Chalk","vi","BaseLogger","chalk","colors","debug","cyan","bgCyan","info","green","bgGreen","trace","gray","bgGray","error","red","bgRed","warn","yellow","bgYellow","fatal","redBright","bgRedBright","TestLogger","constructor","bindings","options","level","createLogMethod","name","msgs","msgPrefix","push","magenta","methodName","fn","console","bind","join"],"sources":["TestLogger.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Logger } from \"@osdk/api\";\nimport { Chalk } from \"chalk\";\nimport { vi } from \"vitest\";\nimport { BaseLogger } from \"./BaseLogger.js\";\n\nconst chalk = new Chalk(); // new Chalk({ level: 3 });\n\nconst colors = {\n debug: [chalk.cyan, chalk.bgCyan],\n info: [chalk.green, chalk.bgGreen],\n trace: [chalk.gray, chalk.bgGray],\n error: [chalk.red, chalk.bgRed],\n warn: [chalk.yellow, chalk.bgYellow],\n fatal: [chalk.redBright, chalk.bgRedBright],\n} as const;\n\n/**\n * A logger suitable for using in unit tests.\n * - It uses chalk for colors (Node and browser console.log supports)\n * - Does not rely on async behavior of `pino`.\n */\nexport class TestLogger extends BaseLogger implements Logger {\n constructor(\n bindings: Record<string, any> = {},\n options: { level?: string; msgPrefix?: string } = {},\n ) {\n super(\n bindings,\n { ...options, level: options.level ?? \"error\" },\n TestLogger,\n );\n }\n\n protected createLogMethod(\n name: \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\",\n bindings: Record<string, any>,\n ): Logger.LogFn {\n const msgs: string[] = [colors[name][1](name)];\n\n if (this.options?.msgPrefix) {\n msgs.push(colors[name][0](this.options.msgPrefix));\n }\n\n if (typeof bindings === \"object\" && \"methodName\" in bindings) {\n msgs.push(chalk.magenta(`.${bindings.methodName}()`));\n }\n\n // eslint-disable-next-line no-console\n return vi.fn<Logger.LogFn>(console[name === \"fatal\" ? \"error\" : name].bind(\n console,\n msgs.join(\" \"),\n )) as Logger.LogFn;\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,KAAK,QAAQ,OAAO;AAC7B,SAASC,EAAE,QAAQ,QAAQ;AAC3B,SAASC,UAAU,QAAQ,iBAAiB;AAE5C,MAAMC,KAAK,GAAG,IAAIH,KAAK,CAAC,CAAC,CAAC,CAAC;;AAE3B,MAAMI,MAAM,GAAG;EACbC,KAAK,EAAE,CAACF,KAAK,CAACG,IAAI,EAAEH,KAAK,CAACI,MAAM,CAAC;EACjCC,IAAI,EAAE,CAACL,KAAK,CAACM,KAAK,EAAEN,KAAK,CAACO,OAAO,CAAC;EAClCC,KAAK,EAAE,CAACR,KAAK,CAACS,IAAI,EAAET,KAAK,CAACU,MAAM,CAAC;EACjCC,KAAK,EAAE,CAACX,KAAK,CAACY,GAAG,EAAEZ,KAAK,CAACa,KAAK,CAAC;EAC/BC,IAAI,EAAE,CAACd,KAAK,CAACe,MAAM,EAAEf,KAAK,CAACgB,QAAQ,CAAC;EACpCC,KAAK,EAAE,CAACjB,KAAK,CAACkB,SAAS,EAAElB,KAAK,CAACmB,WAAW;AAC5C,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,UAAU,SAASrB,UAAU,CAAmB;EAC3DsB,WAAWA,CACTC,QAA6B,GAAG,CAAC,CAAC,EAClCC,OAA+C,GAAG,CAAC,CAAC,EACpD;IACA,KAAK,CACHD,QAAQ,EACR;MAAE,GAAGC,OAAO;MAAEC,KAAK,EAAED,OAAO,CAACC,KAAK,IAAI;IAAQ,CAAC,EAC/CJ,UACF,CAAC;EACH;EAEUK,eAAeA,CACvBC,IAA6D,EAC7DJ,QAA6B,EACf;IACd,MAAMK,IAAc,GAAG,CAAC1B,MAAM,CAACyB,IAAI,CAAC,CAAC,CAAC,CAAC,CAACA,IAAI,CAAC,CAAC;IAE9C,IAAI,IAAI,CAACH,OAAO,EAAEK,SAAS,EAAE;MAC3BD,IAAI,CAACE,IAAI,CAAC5B,MAAM,CAACyB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAACH,OAAO,CAACK,SAAS,CAAC,CAAC;IACpD;IAEA,IAAI,OAAON,QAAQ,KAAK,QAAQ,IAAI,YAAY,IAAIA,QAAQ,EAAE;MAC5DK,IAAI,CAACE,IAAI,CAAC7B,KAAK,CAAC8B,OAAO,CAAC,IAAIR,QAAQ,CAACS,UAAU,IAAI,CAAC,CAAC;IACvD;;IAEA;IACA,OAAOjC,EAAE,CAACkC,EAAE,CAAeC,OAAO,CAACP,IAAI,KAAK,OAAO,GAAG,OAAO,GAAGA,IAAI,CAAC,CAACQ,IAAI,CACxED,OAAO,EACPN,IAAI,CAACQ,IAAI,CAAC,GAAG,CACf,CAAC,CAAC;EACJ;AACF","ignoreList":[]}
@@ -14,15 +14,28 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { $ontologyRid, objectTypeWithAllPropertyTypes } from "@osdk/client.test.ontology";
18
- import { apiServer, stubData } from "@osdk/shared.test";
17
+ import { objectTypeWithAllPropertyTypes } from "@osdk/client.test.ontology";
18
+ import { LegacyFauxFoundry, startNodeApiServer, stubData } from "@osdk/shared.test";
19
19
  import { afterAll, beforeAll, describe, expect, it } from "vitest";
20
20
  import { createClient } from "../createClient.js";
21
21
  describe("attachments", () => {
22
+ let fauxFoundry;
23
+ let apiServer;
22
24
  let client;
23
25
  beforeAll(async () => {
24
- apiServer.listen();
25
- client = createClient("https://stack.palantir.com", $ontologyRid, async () => "myAccessToken");
26
+ ({
27
+ client,
28
+ apiServer,
29
+ fauxFoundry
30
+ } = startNodeApiServer(new LegacyFauxFoundry(), createClient));
31
+ fauxFoundry.attachments.registerAttachment({
32
+ filename: "file1.txt",
33
+ mediaType: "application/json",
34
+ rid: "ri.attachments.main.attachment.86016861-707f-4292-b258-6a7108915a75",
35
+ buffer: new TextEncoder().encode(JSON.stringify({
36
+ name: "Hello World"
37
+ }, null, 2))
38
+ });
26
39
  });
27
40
  afterAll(() => {
28
41
  apiServer.close();
@@ -37,8 +50,8 @@ describe("attachments", () => {
37
50
  expect(attachmentMetadata).toBeDefined();
38
51
  expect(attachmentMetadata?.filename).toEqual("file1.txt");
39
52
  expect(attachmentMetadata?.mediaType).toEqual("application/json");
40
- expect(attachmentMetadata?.sizeBytes).toEqual(18);
41
- expect(attachmentMetadata?.rid).toEqual("ri.attachments.main.attachment.86016861-707f-4292-b258-6a7108915a75");
53
+ expect(attachmentMetadata?.sizeBytes).toEqual(27);
54
+ expect(attachmentMetadata?.rid).toEqual(stubData.objectWithAllPropertyTypes1.attachment.rid);
42
55
  });
43
56
  it("reads attachment successfully", async () => {
44
57
  const result = await client(objectTypeWithAllPropertyTypes).where({
@@ -49,7 +62,7 @@ describe("attachments", () => {
49
62
  const attachmentContent = await object1?.attachment?.fetchContents();
50
63
  const attachmentText = await attachmentContent.text();
51
64
  expect(JSON.parse(attachmentText)).toEqual({
52
- name: "Hello World 2"
65
+ name: "Hello World"
53
66
  });
54
67
  });
55
68
  });
@@ -1 +1 @@
1
- {"version":3,"file":"attachment.test.js","names":["$ontologyRid","objectTypeWithAllPropertyTypes","apiServer","stubData","afterAll","beforeAll","describe","expect","it","createClient","client","listen","close","result","where","id","objectWithAllPropertyTypes1","fetchPage","object1","data","attachment","toBeDefined","attachmentMetadata","fetchMetadata","filename","toEqual","mediaType","sizeBytes","rid","attachmentContent","fetchContents","attachmentText","text","JSON","parse","name"],"sources":["attachment.test.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $ontologyRid,\n objectTypeWithAllPropertyTypes,\n} from \"@osdk/client.test.ontology\";\nimport { apiServer, stubData } from \"@osdk/shared.test\";\nimport { afterAll, beforeAll, describe, expect, it } from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\n\ndescribe(\"attachments\", () => {\n let client: Client;\n\n beforeAll(async () => {\n apiServer.listen();\n client = createClient(\n \"https://stack.palantir.com\",\n $ontologyRid,\n async () => \"myAccessToken\",\n );\n });\n\n afterAll(() => {\n apiServer.close();\n });\n\n it(\"reads attachment metadata successfully\", async () => {\n const result = await client(\n objectTypeWithAllPropertyTypes,\n )\n .where({ id: stubData.objectWithAllPropertyTypes1.id }).fetchPage();\n\n const object1 = result.data[0];\n expect(object1.attachment).toBeDefined();\n const attachmentMetadata = await object1.attachment?.fetchMetadata();\n expect(attachmentMetadata).toBeDefined();\n expect(attachmentMetadata?.filename).toEqual(\"file1.txt\");\n expect(attachmentMetadata?.mediaType).toEqual(\"application/json\");\n expect(attachmentMetadata?.sizeBytes).toEqual(18);\n expect(attachmentMetadata?.rid).toEqual(\n \"ri.attachments.main.attachment.86016861-707f-4292-b258-6a7108915a75\",\n );\n });\n\n it(\"reads attachment successfully\", async () => {\n const result = await client(objectTypeWithAllPropertyTypes)\n .where({ id: stubData.objectWithAllPropertyTypes1.id }).fetchPage();\n\n const object1 = result.data[0];\n expect(object1.attachment).toBeDefined();\n const attachmentContent = await object1?.attachment?.fetchContents();\n const attachmentText = await attachmentContent!.text();\n expect(JSON.parse(attachmentText)).toEqual({\n name: \"Hello World 2\",\n });\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SACEA,YAAY,EACZC,8BAA8B,QACzB,4BAA4B;AACnC,SAASC,SAAS,EAAEC,QAAQ,QAAQ,mBAAmB;AACvD,SAASC,QAAQ,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAElE,SAASC,YAAY,QAAQ,oBAAoB;AAEjDH,QAAQ,CAAC,aAAa,EAAE,MAAM;EAC5B,IAAII,MAAc;EAElBL,SAAS,CAAC,YAAY;IACpBH,SAAS,CAACS,MAAM,CAAC,CAAC;IAClBD,MAAM,GAAGD,YAAY,CACnB,4BAA4B,EAC5BT,YAAY,EACZ,YAAY,eACd,CAAC;EACH,CAAC,CAAC;EAEFI,QAAQ,CAAC,MAAM;IACbF,SAAS,CAACU,KAAK,CAAC,CAAC;EACnB,CAAC,CAAC;EAEFJ,EAAE,CAAC,wCAAwC,EAAE,YAAY;IACvD,MAAMK,MAAM,GAAG,MAAMH,MAAM,CACzBT,8BACF,CAAC,CACEa,KAAK,CAAC;MAAEC,EAAE,EAAEZ,QAAQ,CAACa,2BAA2B,CAACD;IAAG,CAAC,CAAC,CAACE,SAAS,CAAC,CAAC;IAErE,MAAMC,OAAO,GAAGL,MAAM,CAACM,IAAI,CAAC,CAAC,CAAC;IAC9BZ,MAAM,CAACW,OAAO,CAACE,UAAU,CAAC,CAACC,WAAW,CAAC,CAAC;IACxC,MAAMC,kBAAkB,GAAG,MAAMJ,OAAO,CAACE,UAAU,EAAEG,aAAa,CAAC,CAAC;IACpEhB,MAAM,CAACe,kBAAkB,CAAC,CAACD,WAAW,CAAC,CAAC;IACxCd,MAAM,CAACe,kBAAkB,EAAEE,QAAQ,CAAC,CAACC,OAAO,CAAC,WAAW,CAAC;IACzDlB,MAAM,CAACe,kBAAkB,EAAEI,SAAS,CAAC,CAACD,OAAO,CAAC,kBAAkB,CAAC;IACjElB,MAAM,CAACe,kBAAkB,EAAEK,SAAS,CAAC,CAACF,OAAO,CAAC,EAAE,CAAC;IACjDlB,MAAM,CAACe,kBAAkB,EAAEM,GAAG,CAAC,CAACH,OAAO,CACrC,qEACF,CAAC;EACH,CAAC,CAAC;EAEFjB,EAAE,CAAC,+BAA+B,EAAE,YAAY;IAC9C,MAAMK,MAAM,GAAG,MAAMH,MAAM,CAACT,8BAA8B,CAAC,CACxDa,KAAK,CAAC;MAAEC,EAAE,EAAEZ,QAAQ,CAACa,2BAA2B,CAACD;IAAG,CAAC,CAAC,CAACE,SAAS,CAAC,CAAC;IAErE,MAAMC,OAAO,GAAGL,MAAM,CAACM,IAAI,CAAC,CAAC,CAAC;IAC9BZ,MAAM,CAACW,OAAO,CAACE,UAAU,CAAC,CAACC,WAAW,CAAC,CAAC;IACxC,MAAMQ,iBAAiB,GAAG,MAAMX,OAAO,EAAEE,UAAU,EAAEU,aAAa,CAAC,CAAC;IACpE,MAAMC,cAAc,GAAG,MAAMF,iBAAiB,CAAEG,IAAI,CAAC,CAAC;IACtDzB,MAAM,CAAC0B,IAAI,CAACC,KAAK,CAACH,cAAc,CAAC,CAAC,CAACN,OAAO,CAAC;MACzCU,IAAI,EAAE;IACR,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"attachment.test.js","names":["objectTypeWithAllPropertyTypes","LegacyFauxFoundry","startNodeApiServer","stubData","afterAll","beforeAll","describe","expect","it","createClient","fauxFoundry","apiServer","client","attachments","registerAttachment","filename","mediaType","rid","buffer","TextEncoder","encode","JSON","stringify","name","close","result","where","id","objectWithAllPropertyTypes1","fetchPage","object1","data","attachment","toBeDefined","attachmentMetadata","fetchMetadata","toEqual","sizeBytes","attachmentContent","fetchContents","attachmentText","text","parse"],"sources":["attachment.test.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { objectTypeWithAllPropertyTypes } from \"@osdk/client.test.ontology\";\nimport {\n LegacyFauxFoundry,\n startNodeApiServer,\n stubData,\n} from \"@osdk/shared.test\";\nimport { type SetupServer } from \"@osdk/shared.test\";\nimport { afterAll, beforeAll, describe, expect, it } from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\n\ndescribe(\"attachments\", () => {\n let fauxFoundry: LegacyFauxFoundry;\n let apiServer: SetupServer;\n let client: Client;\n\n beforeAll(async () => {\n ({ client, apiServer, fauxFoundry } = startNodeApiServer(\n new LegacyFauxFoundry(),\n createClient,\n ));\n\n fauxFoundry.attachments.registerAttachment({\n filename: \"file1.txt\",\n mediaType: \"application/json\",\n rid:\n \"ri.attachments.main.attachment.86016861-707f-4292-b258-6a7108915a75\",\n buffer: new TextEncoder().encode(\n JSON.stringify({ name: \"Hello World\" }, null, 2),\n ),\n });\n });\n\n afterAll(() => {\n apiServer.close();\n });\n\n it(\"reads attachment metadata successfully\", async () => {\n const result = await client(\n objectTypeWithAllPropertyTypes,\n )\n .where({ id: stubData.objectWithAllPropertyTypes1.id }).fetchPage();\n\n const object1 = result.data[0];\n expect(object1.attachment).toBeDefined();\n const attachmentMetadata = await object1.attachment?.fetchMetadata();\n expect(attachmentMetadata).toBeDefined();\n expect(attachmentMetadata?.filename).toEqual(\"file1.txt\");\n expect(attachmentMetadata?.mediaType).toEqual(\"application/json\");\n expect(attachmentMetadata?.sizeBytes).toEqual(27);\n expect(attachmentMetadata?.rid).toEqual(\n stubData.objectWithAllPropertyTypes1.attachment.rid,\n );\n });\n\n it(\"reads attachment successfully\", async () => {\n const result = await client(objectTypeWithAllPropertyTypes)\n .where({ id: stubData.objectWithAllPropertyTypes1.id }).fetchPage();\n\n const object1 = result.data[0];\n expect(object1.attachment).toBeDefined();\n const attachmentContent = await object1?.attachment?.fetchContents();\n const attachmentText = await attachmentContent!.text();\n expect(JSON.parse(attachmentText)).toEqual({\n name: \"Hello World\",\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseHolder.js","names":[],"sources":["BaseHolder.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectOrInterfaceDefinition, ObjectSpecifier } from \"@osdk/api\";\nimport type { InterfaceHolder } from \"./InterfaceHolder.js\";\nimport type { UnderlyingOsdkObject } from \"./InternalSymbols.js\";\nimport type { ObjectHolder } from \"./ObjectHolder.js\";\n\n/** @internal */\n\nexport interface BaseHolder {\n readonly [UnderlyingOsdkObject]: ObjectHolder;\n\n readonly $apiName: string;\n readonly $objectType: string;\n readonly $primaryKey: string | number | boolean;\n readonly $title: string | undefined;\n readonly $objectSpecifier: ObjectSpecifier<any>;\n\n readonly \"$as\": (\n newDef: string | ObjectOrInterfaceDefinition,\n ) => ObjectHolder | InterfaceHolder;\n\n readonly \"$clone\": (\n newProps?: Record<string, any>,\n ) => this;\n\n // [key: `$$${string}`]: any;\n // Unlike SimpleOsdkProperties, all of our remaining types are unknown as the full\n // union is basically `any` when you consider the above fields.\n [key: string]: unknown;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"BaseHolder.js","names":[],"sources":["BaseHolder.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectOrInterfaceDefinition, ObjectSpecifier } from \"@osdk/api\";\nimport type { InterfaceHolder } from \"./InterfaceHolder.js\";\nimport type { UnderlyingOsdkObject } from \"./InternalSymbols.js\";\nimport type { ObjectHolder } from \"./ObjectHolder.js\";\n\n/** @internal */\n\nexport interface BaseHolder {\n readonly [UnderlyingOsdkObject]: ObjectHolder;\n\n readonly $apiName: string;\n readonly $objectType: string;\n readonly $primaryKey: string | number;\n readonly $title: string | undefined;\n readonly $objectSpecifier: ObjectSpecifier<any>;\n\n readonly \"$as\": (\n newDef: string | ObjectOrInterfaceDefinition,\n ) => ObjectHolder | InterfaceHolder;\n\n readonly \"$clone\": (\n newProps?: Record<string, any>,\n ) => this;\n\n // [key: `$$${string}`]: any;\n // Unlike SimpleOsdkProperties, all of our remaining types are unknown as the full\n // union is basically `any` when you consider the above fields.\n [key: string]: unknown;\n}\n"],"mappings":"","ignoreList":[]}
@@ -40,6 +40,10 @@ export function createOsdkInterface(underlying, interfaceDef) {
40
40
  value: underlying.$primaryKey,
41
41
  enumerable: "$primaryKey" in underlying
42
42
  },
43
+ "$objectSpecifier": {
44
+ value: underlying.$objectSpecifier,
45
+ enumerable: "$objectSpecifier" in underlying
46
+ },
43
47
  "$title": {
44
48
  value: underlying.$title,
45
49
  enumerable: "$title" in underlying
@@ -1 +1 @@
1
- {"version":3,"file":"createOsdkInterface.js","names":["extractNamespace","InterfaceDefRef","ObjectDefRef","UnderlyingOsdkObject","createOsdkInterface","underlying","interfaceDef","objApiNamespace","apiName","Object","freeze","defineProperties","value","enumerable","$as","$objectType","$primaryKey","$title","$rid","clone","fromEntries","keys","properties","map","p","objDef","apiNamespace","targetPropName","interfaceMap","update","$clone","key","Error","remappedProps","mapProperty","filter","x","propertyName"],"sources":["createOsdkInterface.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { InterfaceMetadata } from \"@osdk/api\";\nimport { extractNamespace } from \"../../internal/conversions/modernToLegacyWhereClause.js\";\nimport type { FetchedObjectTypeDefinition } from \"../../ontology/OntologyProvider.js\";\nimport type { InterfaceHolder } from \"./InterfaceHolder.js\";\nimport {\n InterfaceDefRef,\n ObjectDefRef,\n UnderlyingOsdkObject,\n} from \"./InternalSymbols.js\";\nimport type { ObjectHolder } from \"./ObjectHolder.js\";\n\n/** @internal */\nexport function createOsdkInterface<\n Q extends FetchedObjectTypeDefinition,\n>(\n underlying: ObjectHolder,\n interfaceDef: InterfaceMetadata,\n): InterfaceHolder {\n const [objApiNamespace] = extractNamespace(interfaceDef.apiName);\n\n return Object.freeze(\n Object.defineProperties({}, {\n // first to minimize hidden classes\n [UnderlyingOsdkObject]: { value: underlying },\n\n \"$apiName\": { value: interfaceDef.apiName, enumerable: true },\n \"$as\": {\n value: underlying.$as,\n enumerable: false,\n },\n \"$objectType\": {\n value: underlying.$objectType,\n enumerable: \"$objectType\" in underlying,\n },\n \"$primaryKey\": {\n value: underlying.$primaryKey,\n enumerable: \"$primaryKey\" in underlying,\n },\n \"$title\": {\n value: underlying.$title,\n enumerable: \"$title\" in underlying,\n },\n \"$rid\": {\n value: (underlying as any).$rid,\n enumerable: \"$rid\" in underlying,\n },\n \"$clone\": {\n value: clone,\n enumerable: false,\n },\n\n [InterfaceDefRef]: { value: interfaceDef },\n\n ...Object.fromEntries(\n Object.keys(interfaceDef.properties).map(p => {\n const objDef = underlying[ObjectDefRef];\n\n const [apiNamespace, apiName] = extractNamespace(p);\n\n const targetPropName = objDef\n .interfaceMap![interfaceDef.apiName][p];\n\n return [apiNamespace === objApiNamespace ? apiName : p, {\n enumerable: targetPropName in underlying,\n value: underlying[targetPropName as keyof typeof underlying],\n }];\n }),\n ),\n }) as InterfaceHolder,\n );\n function clone(update: Record<string, any> | undefined) {\n if (update == null) {\n return underlying.$clone().$as(interfaceDef);\n }\n\n for (const key of Object.keys(update)) {\n if (!(key in interfaceDef.properties)) {\n throw new Error(\n `Invalid property ${key} for interface ${interfaceDef.apiName}`,\n );\n }\n }\n\n const remappedProps = Object.fromEntries(\n Object.keys(update).map(p => mapProperty(p, update[p])).filter(x =>\n x != null\n ),\n );\n\n return underlying.$clone(remappedProps).$as(interfaceDef);\n }\n function mapProperty(propertyName: string, value: any) {\n const objDef = underlying[ObjectDefRef];\n const targetPropName =\n objDef.interfaceMap![interfaceDef.apiName][propertyName];\n // If the underlying object does not implement the SPT, throw errors\n if (targetPropName == null) {\n throw new Error(\n `Cannot clone interface with ${propertyName} as property is not implemented by the underlying object type ${objDef.apiName}`,\n );\n }\n return [targetPropName, value];\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createOsdkInterface.js","names":["extractNamespace","InterfaceDefRef","ObjectDefRef","UnderlyingOsdkObject","createOsdkInterface","underlying","interfaceDef","objApiNamespace","apiName","Object","freeze","defineProperties","value","enumerable","$as","$objectType","$primaryKey","$objectSpecifier","$title","$rid","clone","fromEntries","keys","properties","map","p","objDef","apiNamespace","targetPropName","interfaceMap","update","$clone","key","Error","remappedProps","mapProperty","filter","x","propertyName"],"sources":["createOsdkInterface.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { InterfaceMetadata } from \"@osdk/api\";\nimport { extractNamespace } from \"../../internal/conversions/modernToLegacyWhereClause.js\";\nimport type { FetchedObjectTypeDefinition } from \"../../ontology/OntologyProvider.js\";\nimport type { InterfaceHolder } from \"./InterfaceHolder.js\";\nimport {\n InterfaceDefRef,\n ObjectDefRef,\n UnderlyingOsdkObject,\n} from \"./InternalSymbols.js\";\nimport type { ObjectHolder } from \"./ObjectHolder.js\";\n\n/** @internal */\nexport function createOsdkInterface<\n Q extends FetchedObjectTypeDefinition,\n>(\n underlying: ObjectHolder,\n interfaceDef: InterfaceMetadata,\n): InterfaceHolder {\n const [objApiNamespace] = extractNamespace(interfaceDef.apiName);\n\n return Object.freeze(\n Object.defineProperties({}, {\n // first to minimize hidden classes\n [UnderlyingOsdkObject]: { value: underlying },\n\n \"$apiName\": { value: interfaceDef.apiName, enumerable: true },\n \"$as\": {\n value: underlying.$as,\n enumerable: false,\n },\n \"$objectType\": {\n value: underlying.$objectType,\n enumerable: \"$objectType\" in underlying,\n },\n \"$primaryKey\": {\n value: underlying.$primaryKey,\n enumerable: \"$primaryKey\" in underlying,\n },\n \"$objectSpecifier\": {\n value: underlying.$objectSpecifier,\n enumerable: \"$objectSpecifier\" in underlying,\n },\n \"$title\": {\n value: underlying.$title,\n enumerable: \"$title\" in underlying,\n },\n \"$rid\": {\n value: (underlying as any).$rid,\n enumerable: \"$rid\" in underlying,\n },\n \"$clone\": {\n value: clone,\n enumerable: false,\n },\n\n [InterfaceDefRef]: { value: interfaceDef },\n\n ...Object.fromEntries(\n Object.keys(interfaceDef.properties).map(p => {\n const objDef = underlying[ObjectDefRef];\n\n const [apiNamespace, apiName] = extractNamespace(p);\n\n const targetPropName = objDef\n .interfaceMap![interfaceDef.apiName][p];\n\n return [apiNamespace === objApiNamespace ? apiName : p, {\n enumerable: targetPropName in underlying,\n value: underlying[targetPropName as keyof typeof underlying],\n }];\n }),\n ),\n }) as InterfaceHolder,\n );\n function clone(update: Record<string, any> | undefined) {\n if (update == null) {\n return underlying.$clone().$as(interfaceDef);\n }\n\n for (const key of Object.keys(update)) {\n if (!(key in interfaceDef.properties)) {\n throw new Error(\n `Invalid property ${key} for interface ${interfaceDef.apiName}`,\n );\n }\n }\n\n const remappedProps = Object.fromEntries(\n Object.keys(update).map(p => mapProperty(p, update[p])).filter(x =>\n x != null\n ),\n );\n\n return underlying.$clone(remappedProps).$as(interfaceDef);\n }\n function mapProperty(propertyName: string, value: any) {\n const objDef = underlying[ObjectDefRef];\n const targetPropName =\n objDef.interfaceMap![interfaceDef.apiName][propertyName];\n // If the underlying object does not implement the SPT, throw errors\n if (targetPropName == null) {\n throw new Error(\n `Cannot clone interface with ${propertyName} as property is not implemented by the underlying object type ${objDef.apiName}`,\n );\n }\n return [targetPropName, value];\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -19,6 +19,7 @@ import { GeotimeSeriesPropertyImpl } from "../../createGeotimeSeriesProperty.js"
19
19
  import { MediaReferencePropertyImpl } from "../../createMediaReferenceProperty.js";
20
20
  import { TimeSeriesPropertyImpl } from "../../createTimeseriesProperty.js";
21
21
  import { hydrateAttachmentFromRidInternal } from "../../public-utils/hydrateAttachmentFromRid.js";
22
+ import { createObjectSpecifierFromPrimaryKey } from "../../util/objectSpecifierUtils.js";
22
23
  import { get$as } from "./getDollarAs.js";
23
24
  import { get$link } from "./getDollarLink.js";
24
25
  import { ClientRef, ObjectDefRef, UnderlyingOsdkObject } from "./InternalSymbols.js";
@@ -59,6 +60,13 @@ const basePropDefs = {
59
60
  };
60
61
  return createOsdkObject(this[ClientRef], this[ObjectDefRef], newObject);
61
62
  }
63
+ },
64
+ "$objectSpecifier": {
65
+ get: function () {
66
+ const rawObj = this[UnderlyingOsdkObject];
67
+ return createObjectSpecifierFromPrimaryKey(this[ObjectDefRef], rawObj.$primaryKey);
68
+ },
69
+ enumerable: true
62
70
  }
63
71
  };
64
72
 
@@ -68,7 +76,7 @@ const basePropDefs = {
68
76
  * @param objectDef
69
77
  * @param simpleOsdkProperties
70
78
  */
71
- export function createOsdkObject(client, objectDef, simpleOsdkProperties) {
79
+ export function createOsdkObject(client, objectDef, simpleOsdkProperties, derivedPropertyTypeByName = {}) {
72
80
  // updates the object's "hidden class/map".
73
81
  const rawObj = simpleOsdkProperties;
74
82
  Object.defineProperties(rawObj, {
@@ -91,6 +99,17 @@ export function createOsdkObject(client, objectDef, simpleOsdkProperties) {
91
99
  for (const propKey of Object.keys(rawObj)) {
92
100
  if (propKey in objectDef.properties && typeof objectDef.properties[propKey].type === "string" && specialPropertyTypes.has(objectDef.properties[propKey].type)) {
93
101
  rawObj[propKey] = createSpecialProperty(client, objectDef, rawObj, propKey);
102
+ } else if (propKey in derivedPropertyTypeByName && typeof derivedPropertyTypeByName[propKey].type === "string" && specialPropertyTypes.has(derivedPropertyTypeByName[propKey].type)) {
103
+ const rawValue = rawObj[propKey];
104
+ if (derivedPropertyTypeByName[propKey].type === "attachment") {
105
+ if (Array.isArray(rawValue)) {
106
+ rawObj[propKey] = rawValue.map(a => hydrateAttachmentFromRidInternal(client, a.rid));
107
+ } else {
108
+ rawObj[propKey] = hydrateAttachmentFromRidInternal(client, rawValue.rid);
109
+ }
110
+ } else {
111
+ process.env.NODE_ENV !== "production" ? invariant(false, "Derived property aggregations for Timeseries and Media are not supported") : invariant(false);
112
+ }
94
113
  }
95
114
  }
96
115
  return Object.freeze(rawObj);
@@ -101,39 +120,31 @@ function createSpecialProperty(client, objectDef, rawObject, p) {
101
120
  if (process.env.NODE_ENV !== "production") {
102
121
  !(propDef != null && typeof propDef.type === "string" && specialPropertyTypes.has(propDef.type)) ? process.env.NODE_ENV !== "production" ? invariant(false) : invariant(false) : void 0;
103
122
  }
104
- {
105
- {
106
- {
107
- {
108
- if (propDef.type === "attachment") {
109
- if (Array.isArray(rawValue)) {
110
- return rawValue.map(a => hydrateAttachmentFromRidInternal(client, a.rid));
111
- }
112
- return hydrateAttachmentFromRidInternal(client, rawValue.rid);
113
- }
114
- if (propDef.type === "numericTimeseries" || propDef.type === "stringTimeseries" || propDef.type === "sensorTimeseries") {
115
- return new TimeSeriesPropertyImpl(client, objectDef.apiName, rawObject[objectDef.primaryKeyApiName], p);
116
- }
117
- if (propDef.type === "geotimeSeriesReference") {
118
- return new GeotimeSeriesPropertyImpl(client, objectDef.apiName, rawObject[objectDef.primaryKeyApiName], p, rawValue.type === "geotimeSeriesValue" ? {
119
- time: rawValue.timestamp,
120
- value: {
121
- type: "Point",
122
- coordinates: rawValue.position
123
- }
124
- } : undefined);
125
- }
126
- if (propDef.type === "mediaReference") {
127
- return new MediaReferencePropertyImpl({
128
- client,
129
- objectApiName: objectDef.apiName,
130
- primaryKey: rawObject[objectDef.primaryKeyApiName],
131
- propertyName: p
132
- });
133
- }
134
- }
135
- }
123
+ if (propDef.type === "attachment") {
124
+ if (Array.isArray(rawValue)) {
125
+ return rawValue.map(a => hydrateAttachmentFromRidInternal(client, a.rid));
136
126
  }
127
+ return hydrateAttachmentFromRidInternal(client, rawValue.rid);
128
+ }
129
+ if (propDef.type === "numericTimeseries" || propDef.type === "stringTimeseries" || propDef.type === "sensorTimeseries") {
130
+ return new TimeSeriesPropertyImpl(client, objectDef.apiName, rawObject[objectDef.primaryKeyApiName], p);
131
+ }
132
+ if (propDef.type === "geotimeSeriesReference") {
133
+ return new GeotimeSeriesPropertyImpl(client, objectDef.apiName, rawObject[objectDef.primaryKeyApiName], p, rawValue.type === "geotimeSeriesValue" ? {
134
+ time: rawValue.timestamp,
135
+ value: {
136
+ type: "Point",
137
+ coordinates: rawValue.position
138
+ }
139
+ } : undefined);
140
+ }
141
+ if (propDef.type === "mediaReference") {
142
+ return new MediaReferencePropertyImpl({
143
+ client,
144
+ objectApiName: objectDef.apiName,
145
+ primaryKey: rawObject[objectDef.primaryKeyApiName],
146
+ propertyName: p
147
+ });
137
148
  }
138
149
  }
139
150
  //# sourceMappingURL=createOsdkObject.js.map