@osdk/client 2.6.1 → 2.7.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/CHANGELOG.md +92 -88
  2. package/build/browser/Client.js +1 -1
  3. package/build/browser/Client.js.map +1 -1
  4. package/build/browser/MinimalClientContext.js.map +1 -1
  5. package/build/browser/actions/actions.test.js +9 -0
  6. package/build/browser/actions/actions.test.js.map +1 -1
  7. package/build/browser/actions/applyAction.js +4 -0
  8. package/build/browser/actions/applyAction.js.map +1 -1
  9. package/build/browser/createClient.js +2 -1
  10. package/build/browser/createClient.js.map +1 -1
  11. package/build/browser/createMinimalClient.js +1 -0
  12. package/build/browser/createMinimalClient.js.map +1 -1
  13. package/build/browser/derivedProperties/createWithPropertiesObjectSet.js +17 -1
  14. package/build/browser/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
  15. package/build/browser/fetchMetadata.test.js +31 -0
  16. package/build/browser/fetchMetadata.test.js.map +1 -1
  17. package/build/browser/intellisense.test.js +1 -1
  18. package/build/browser/intellisense.test.js.map +1 -1
  19. package/build/browser/object/aggregate.js +1 -0
  20. package/build/browser/object/aggregate.js.map +1 -1
  21. package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -1
  22. package/build/browser/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -1
  23. package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.js +3 -0
  24. package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.js.map +1 -1
  25. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js +8 -0
  26. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  27. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js +95 -3
  28. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  29. package/build/browser/object/convertWireToOsdkObjects.js +18 -6
  30. package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
  31. package/build/browser/object/convertWireToOsdkObjects.test.js +189 -28
  32. package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
  33. package/build/browser/object/fetchPage.js +18 -5
  34. package/build/browser/object/fetchPage.js.map +1 -1
  35. package/build/browser/object/fetchPage.test.js.map +1 -1
  36. package/build/browser/object/formatting/applyPropertyFormatter.js +58 -0
  37. package/build/browser/object/formatting/applyPropertyFormatter.js.map +1 -0
  38. package/build/browser/object/formatting/applyPropertyFormatter.test.js +726 -0
  39. package/build/browser/object/formatting/applyPropertyFormatter.test.js.map +1 -0
  40. package/build/browser/object/formatting/formatBoolean.js +23 -0
  41. package/build/browser/object/formatting/formatBoolean.js.map +1 -0
  42. package/build/browser/object/formatting/formatDateTime.js +158 -0
  43. package/build/browser/object/formatting/formatDateTime.js.map +1 -0
  44. package/build/browser/object/formatting/formatNumber.js +242 -0
  45. package/build/browser/object/formatting/formatNumber.js.map +1 -0
  46. package/build/browser/object/formatting/propertyFormattingUtils.js +39 -0
  47. package/build/browser/object/formatting/propertyFormattingUtils.js.map +1 -0
  48. package/build/browser/object/object.test.js +123 -0
  49. package/build/browser/object/object.test.js.map +1 -1
  50. package/build/browser/objectSet/InterfaceObjectSet.test.js +1 -1
  51. package/build/browser/objectSet/InterfaceObjectSet.test.js.map +1 -1
  52. package/build/browser/objectSet/ObjectSet.test.js +7 -6
  53. package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
  54. package/build/browser/objectSet/ObjectSetListenerWebsocket.js +2 -2
  55. package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  56. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +3 -1
  57. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  58. package/build/browser/objectSet/createObjectSet.js +13 -0
  59. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  60. package/build/browser/objectSet/fetchLinksPage.js +57 -0
  61. package/build/browser/objectSet/fetchLinksPage.js.map +1 -0
  62. package/build/browser/objectSet/fetchLinksPage.test.js +102 -0
  63. package/build/browser/objectSet/fetchLinksPage.test.js.map +1 -0
  64. package/build/browser/observable/ListPayload.js.map +1 -1
  65. package/build/browser/observable/ObjectPayload.js.map +1 -1
  66. package/build/browser/observable/ObservableClient.js +0 -5
  67. package/build/browser/observable/ObservableClient.js.map +1 -1
  68. package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
  69. package/build/browser/observable/internal/Store.test.js +104 -1
  70. package/build/browser/observable/internal/Store.test.js.map +1 -1
  71. package/build/browser/observable/internal/actions/OptimisticJob.js +1 -1
  72. package/build/browser/observable/internal/actions/OptimisticJob.js.map +1 -1
  73. package/build/browser/observable/internal/base-list/BaseListQuery.js +1 -1
  74. package/build/browser/observable/internal/base-list/BaseListQuery.js.map +1 -1
  75. package/build/browser/observable/internal/links/SpecificLinkQuery.js +9 -1
  76. package/build/browser/observable/internal/links/SpecificLinkQuery.js.map +1 -1
  77. package/build/browser/observable/internal/list/ListQuery.js +17 -2
  78. package/build/browser/observable/internal/list/ListQuery.js.map +1 -1
  79. package/build/browser/observable/internal/objectset/ObjectSetQuery.js +9 -7
  80. package/build/browser/observable/internal/objectset/ObjectSetQuery.js.map +1 -1
  81. package/build/browser/observable/internal/utils/rdpFieldOperations.js +46 -25
  82. package/build/browser/observable/internal/utils/rdpFieldOperations.js.map +1 -1
  83. package/build/browser/observable/internal/utils/rdpFieldOperations.test.js +172 -0
  84. package/build/browser/observable/internal/utils/rdpFieldOperations.test.js.map +1 -0
  85. package/build/browser/ontology/loadActionMetadata.js +3 -1
  86. package/build/browser/ontology/loadActionMetadata.js.map +1 -1
  87. package/build/browser/ontology/loadFullObjectMetadata.js +2 -1
  88. package/build/browser/ontology/loadFullObjectMetadata.js.map +1 -1
  89. package/build/browser/ontology/loadInterfaceMetadata.js +2 -1
  90. package/build/browser/ontology/loadInterfaceMetadata.js.map +1 -1
  91. package/build/browser/public/unstable-do-not-use.js.map +1 -1
  92. package/build/browser/queries/applyQuery.js +14 -0
  93. package/build/browser/queries/applyQuery.js.map +1 -1
  94. package/build/browser/queries/queries.test.js +14 -2
  95. package/build/browser/queries/queries.test.js.map +1 -1
  96. package/build/browser/util/UserAgent.js +2 -2
  97. package/build/browser/util/UserAgent.js.map +1 -1
  98. package/build/browser/util/toDataValue.js +0 -1
  99. package/build/browser/util/toDataValue.js.map +1 -1
  100. package/build/browser/util/toDataValue.test.js +4 -0
  101. package/build/browser/util/toDataValue.test.js.map +1 -1
  102. package/build/cjs/{chunk-6SCDLAU2.cjs → chunk-LDTMSHUZ.cjs} +4 -4
  103. package/build/cjs/{chunk-6SCDLAU2.cjs.map → chunk-LDTMSHUZ.cjs.map} +1 -1
  104. package/build/cjs/{chunk-BRUBBJUT.cjs → chunk-MZZAHBN6.cjs} +636 -138
  105. package/build/cjs/chunk-MZZAHBN6.cjs.map +1 -0
  106. package/build/cjs/{chunk-EHMN4DL4.cjs → chunk-RDZ5NKAI.cjs} +210 -129
  107. package/build/cjs/chunk-RDZ5NKAI.cjs.map +1 -0
  108. package/build/cjs/{createClient-DvwysJMX.d.cts → createClient-D5G3qzAO.d.cts} +1 -0
  109. package/build/cjs/{delay-KIUUJ5NJ.cjs → delay-W2TSML2P.cjs} +4 -4
  110. package/build/cjs/{delay-KIUUJ5NJ.cjs.map → delay-W2TSML2P.cjs.map} +1 -1
  111. package/build/cjs/index.cjs +12 -12
  112. package/build/cjs/index.d.cts +1 -1
  113. package/build/cjs/public/internal-node.cjs +219 -219
  114. package/build/cjs/public/internal.cjs +14 -14
  115. package/build/cjs/public/unstable-do-not-use.cjs +335 -145
  116. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  117. package/build/cjs/public/unstable-do-not-use.d.cts +9 -9
  118. package/build/esm/Client.js +1 -1
  119. package/build/esm/Client.js.map +1 -1
  120. package/build/esm/MinimalClientContext.js.map +1 -1
  121. package/build/esm/actions/actions.test.js +9 -0
  122. package/build/esm/actions/actions.test.js.map +1 -1
  123. package/build/esm/actions/applyAction.js +4 -0
  124. package/build/esm/actions/applyAction.js.map +1 -1
  125. package/build/esm/createClient.js +2 -1
  126. package/build/esm/createClient.js.map +1 -1
  127. package/build/esm/createMinimalClient.js +1 -0
  128. package/build/esm/createMinimalClient.js.map +1 -1
  129. package/build/esm/derivedProperties/createWithPropertiesObjectSet.js +17 -1
  130. package/build/esm/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
  131. package/build/esm/fetchMetadata.test.js +31 -0
  132. package/build/esm/fetchMetadata.test.js.map +1 -1
  133. package/build/esm/intellisense.test.js +1 -1
  134. package/build/esm/intellisense.test.js.map +1 -1
  135. package/build/esm/object/aggregate.js +1 -0
  136. package/build/esm/object/aggregate.js.map +1 -1
  137. package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -1
  138. package/build/esm/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -1
  139. package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.js +3 -0
  140. package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.js.map +1 -1
  141. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js +8 -0
  142. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  143. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js +95 -3
  144. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  145. package/build/esm/object/convertWireToOsdkObjects.js +18 -6
  146. package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
  147. package/build/esm/object/convertWireToOsdkObjects.test.js +189 -28
  148. package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
  149. package/build/esm/object/fetchPage.js +18 -5
  150. package/build/esm/object/fetchPage.js.map +1 -1
  151. package/build/esm/object/fetchPage.test.js.map +1 -1
  152. package/build/esm/object/formatting/applyPropertyFormatter.js +58 -0
  153. package/build/esm/object/formatting/applyPropertyFormatter.js.map +1 -0
  154. package/build/esm/object/formatting/applyPropertyFormatter.test.js +726 -0
  155. package/build/esm/object/formatting/applyPropertyFormatter.test.js.map +1 -0
  156. package/build/esm/object/formatting/formatBoolean.js +23 -0
  157. package/build/esm/object/formatting/formatBoolean.js.map +1 -0
  158. package/build/esm/object/formatting/formatDateTime.js +158 -0
  159. package/build/esm/object/formatting/formatDateTime.js.map +1 -0
  160. package/build/esm/object/formatting/formatNumber.js +242 -0
  161. package/build/esm/object/formatting/formatNumber.js.map +1 -0
  162. package/build/esm/object/formatting/propertyFormattingUtils.js +39 -0
  163. package/build/esm/object/formatting/propertyFormattingUtils.js.map +1 -0
  164. package/build/esm/object/object.test.js +123 -0
  165. package/build/esm/object/object.test.js.map +1 -1
  166. package/build/esm/objectSet/InterfaceObjectSet.test.js +1 -1
  167. package/build/esm/objectSet/InterfaceObjectSet.test.js.map +1 -1
  168. package/build/esm/objectSet/ObjectSet.test.js +7 -6
  169. package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
  170. package/build/esm/objectSet/ObjectSetListenerWebsocket.js +2 -2
  171. package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  172. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +3 -1
  173. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  174. package/build/esm/objectSet/createObjectSet.js +13 -0
  175. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  176. package/build/esm/objectSet/fetchLinksPage.js +57 -0
  177. package/build/esm/objectSet/fetchLinksPage.js.map +1 -0
  178. package/build/esm/objectSet/fetchLinksPage.test.js +102 -0
  179. package/build/esm/objectSet/fetchLinksPage.test.js.map +1 -0
  180. package/build/esm/observable/ListPayload.js.map +1 -1
  181. package/build/esm/observable/ObjectPayload.js.map +1 -1
  182. package/build/esm/observable/ObservableClient.js +0 -5
  183. package/build/esm/observable/ObservableClient.js.map +1 -1
  184. package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
  185. package/build/esm/observable/internal/Store.test.js +104 -1
  186. package/build/esm/observable/internal/Store.test.js.map +1 -1
  187. package/build/esm/observable/internal/actions/OptimisticJob.js +1 -1
  188. package/build/esm/observable/internal/actions/OptimisticJob.js.map +1 -1
  189. package/build/esm/observable/internal/base-list/BaseListQuery.js +1 -1
  190. package/build/esm/observable/internal/base-list/BaseListQuery.js.map +1 -1
  191. package/build/esm/observable/internal/links/SpecificLinkQuery.js +9 -1
  192. package/build/esm/observable/internal/links/SpecificLinkQuery.js.map +1 -1
  193. package/build/esm/observable/internal/list/ListQuery.js +17 -2
  194. package/build/esm/observable/internal/list/ListQuery.js.map +1 -1
  195. package/build/esm/observable/internal/objectset/ObjectSetQuery.js +9 -7
  196. package/build/esm/observable/internal/objectset/ObjectSetQuery.js.map +1 -1
  197. package/build/esm/observable/internal/utils/rdpFieldOperations.js +46 -25
  198. package/build/esm/observable/internal/utils/rdpFieldOperations.js.map +1 -1
  199. package/build/esm/observable/internal/utils/rdpFieldOperations.test.js +172 -0
  200. package/build/esm/observable/internal/utils/rdpFieldOperations.test.js.map +1 -0
  201. package/build/esm/ontology/loadActionMetadata.js +3 -1
  202. package/build/esm/ontology/loadActionMetadata.js.map +1 -1
  203. package/build/esm/ontology/loadFullObjectMetadata.js +2 -1
  204. package/build/esm/ontology/loadFullObjectMetadata.js.map +1 -1
  205. package/build/esm/ontology/loadInterfaceMetadata.js +2 -1
  206. package/build/esm/ontology/loadInterfaceMetadata.js.map +1 -1
  207. package/build/esm/public/unstable-do-not-use.js.map +1 -1
  208. package/build/esm/queries/applyQuery.js +14 -0
  209. package/build/esm/queries/applyQuery.js.map +1 -1
  210. package/build/esm/queries/queries.test.js +14 -2
  211. package/build/esm/queries/queries.test.js.map +1 -1
  212. package/build/esm/util/UserAgent.js +2 -2
  213. package/build/esm/util/UserAgent.js.map +1 -1
  214. package/build/esm/util/toDataValue.js +0 -1
  215. package/build/esm/util/toDataValue.js.map +1 -1
  216. package/build/esm/util/toDataValue.test.js +4 -0
  217. package/build/esm/util/toDataValue.test.js.map +1 -1
  218. package/build/types/Client.d.ts +1 -1
  219. package/build/types/MinimalClientContext.d.ts +1 -0
  220. package/build/types/MinimalClientContext.d.ts.map +1 -1
  221. package/build/types/actions/applyAction.d.ts.map +1 -1
  222. package/build/types/createClient.d.ts +1 -0
  223. package/build/types/createClient.d.ts.map +1 -1
  224. package/build/types/object/convertWireToOsdkObjects/InternalSymbols.d.ts +2 -0
  225. package/build/types/object/convertWireToOsdkObjects/InternalSymbols.d.ts.map +1 -1
  226. package/build/types/object/convertWireToOsdkObjects.d.ts +4 -4
  227. package/build/types/object/convertWireToOsdkObjects.d.ts.map +1 -1
  228. package/build/types/object/fetchPage.d.ts.map +1 -1
  229. package/build/types/object/formatting/applyPropertyFormatter.d.ts +18 -0
  230. package/build/types/object/formatting/applyPropertyFormatter.d.ts.map +1 -0
  231. package/build/types/object/formatting/applyPropertyFormatter.test.d.ts +1 -0
  232. package/build/types/object/formatting/applyPropertyFormatter.test.d.ts.map +1 -0
  233. package/build/types/object/formatting/formatBoolean.d.ts +5 -0
  234. package/build/types/object/formatting/formatBoolean.d.ts.map +1 -0
  235. package/build/types/object/formatting/formatDateTime.d.ts +6 -0
  236. package/build/types/object/formatting/formatDateTime.d.ts.map +1 -0
  237. package/build/types/object/formatting/formatNumber.d.ts +15 -0
  238. package/build/types/object/formatting/formatNumber.d.ts.map +1 -0
  239. package/build/types/object/formatting/propertyFormattingUtils.d.ts +10 -0
  240. package/build/types/object/formatting/propertyFormattingUtils.d.ts.map +1 -0
  241. package/build/types/object/object.test.d.ts.map +1 -1
  242. package/build/types/objectSet/fetchLinksPage.d.ts +1 -0
  243. package/build/types/objectSet/fetchLinksPage.d.ts.map +1 -0
  244. package/build/types/objectSet/fetchLinksPage.test.d.ts +1 -0
  245. package/build/types/objectSet/fetchLinksPage.test.d.ts.map +1 -0
  246. package/build/types/observable/ListPayload.d.ts +3 -2
  247. package/build/types/observable/ListPayload.d.ts.map +1 -1
  248. package/build/types/observable/ObjectPayload.d.ts +2 -2
  249. package/build/types/observable/ObjectPayload.d.ts.map +1 -1
  250. package/build/types/observable/ObservableClient.d.ts +10 -7
  251. package/build/types/observable/ObservableClient.d.ts.map +1 -1
  252. package/build/types/observable/internal/Store.test.d.ts.map +1 -1
  253. package/build/types/observable/internal/actions/OptimisticJob.d.ts.map +1 -1
  254. package/build/types/observable/internal/links/SpecificLinkQuery.d.ts.map +1 -1
  255. package/build/types/observable/internal/list/ListQuery.d.ts.map +1 -1
  256. package/build/types/observable/internal/objectset/ObjectSetQuery.d.ts.map +1 -1
  257. package/build/types/observable/internal/utils/rdpFieldOperations.d.ts.map +1 -1
  258. package/build/types/observable/internal/utils/rdpFieldOperations.test.d.ts +1 -0
  259. package/build/types/observable/internal/utils/rdpFieldOperations.test.d.ts.map +1 -0
  260. package/build/types/public/unstable-do-not-use.d.ts +1 -1
  261. package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
  262. package/build/types/queries/applyQuery.d.ts.map +1 -1
  263. package/package.json +14 -14
  264. package/build/cjs/chunk-BRUBBJUT.cjs.map +0 -1
  265. package/build/cjs/chunk-EHMN4DL4.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"propertyFormattingUtils.js","names":["resolvePropertyReference","ref","objectData","type","value","propertyApiName","String","undefined","getBrowserLocale","navigator","language"],"sources":["propertyFormattingUtils.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 { PropertyTypeReferenceOrStringConstant } from \"@osdk/api\";\nimport type { SimpleOsdkProperties } from \"../SimpleOsdkProperties.js\";\n\n/**\n * Resolves a property reference or string constant to its actual value\n */\n\nexport function resolvePropertyReference(\n ref: PropertyTypeReferenceOrStringConstant,\n objectData: SimpleOsdkProperties,\n): string | undefined {\n if (ref.type === \"constant\") {\n return ref.value;\n } else if (ref.type === \"propertyType\") {\n const value = objectData[ref.propertyApiName];\n return value != null ? String(value) : undefined;\n }\n return undefined;\n}\n/**\n * Gets the browser's current locale\n */\nexport function getBrowserLocale(): string {\n if (typeof navigator !== \"undefined\" && navigator.language != null) {\n return navigator.language;\n }\n return \"en-US\";\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;;AAEA,OAAO,SAASA,wBAAwBA,CACtCC,GAA0C,EAC1CC,UAAgC,EACZ;EACpB,IAAID,GAAG,CAACE,IAAI,KAAK,UAAU,EAAE;IAC3B,OAAOF,GAAG,CAACG,KAAK;EAClB,CAAC,MAAM,IAAIH,GAAG,CAACE,IAAI,KAAK,cAAc,EAAE;IACtC,MAAMC,KAAK,GAAGF,UAAU,CAACD,GAAG,CAACI,eAAe,CAAC;IAC7C,OAAOD,KAAK,IAAI,IAAI,GAAGE,MAAM,CAACF,KAAK,CAAC,GAAGG,SAAS;EAClD;EACA,OAAOA,SAAS;AAClB;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAA,EAAW;EACzC,IAAI,OAAOC,SAAS,KAAK,WAAW,IAAIA,SAAS,CAACC,QAAQ,IAAI,IAAI,EAAE;IAClE,OAAOD,SAAS,CAACC,QAAQ;EAC3B;EACA,OAAO,OAAO;AAChB","ignoreList":[]}
@@ -450,6 +450,129 @@ describe.each(["https://stack.palantir.com", "https://stack.palantirCustom.com/f
450
450
  expect(object.$objectSpecifier).toBe("Employee:50030");
451
451
  });
452
452
  });
453
+ describe("$propertySecurities", () => {
454
+ it("processes objects with secured property values correctly", async () => {
455
+ const object = await client(Employee).fetchOne(20003, {
456
+ $loadPropertySecurityMetadata: true
457
+ });
458
+ expectTypeOf(object.$propertySecurities).toMatchObjectType();
459
+ expectTypeOf(object.$propertySecurities.class).toMatchTypeOf();
460
+ expectTypeOf(object.$propertySecurities.favoriteRestaurants).toMatchTypeOf();
461
+ expect(object).toMatchInlineSnapshot(`
462
+ {
463
+ "$apiName": "Employee",
464
+ "$objectSpecifier": "Employee:20003",
465
+ "$objectType": "Employee",
466
+ "$primaryKey": 20003,
467
+ "$propertySecurities": {
468
+ "class": [
469
+ {
470
+ "type": "errorComputingSecurity",
471
+ },
472
+ ],
473
+ "employeeId": [
474
+ {
475
+ "conjunctive": [
476
+ "CONFIDENTIAL",
477
+ "INTERNAL",
478
+ ],
479
+ "containerConjunctive": undefined,
480
+ "containerDisjunctive": undefined,
481
+ "disjunctive": [
482
+ [
483
+ "SECRET",
484
+ ],
485
+ [
486
+ "TOP_SECRET",
487
+ ],
488
+ ],
489
+ "type": "propertyMarkings",
490
+ },
491
+ ],
492
+ "favoriteRestaurants": [
493
+ [
494
+ {
495
+ "type": "unsupportedPolicy",
496
+ },
497
+ ],
498
+ [
499
+ {
500
+ "conjunctive": [
501
+ "CONFIDENTIAL",
502
+ "INTERNAL",
503
+ ],
504
+ "containerConjunctive": undefined,
505
+ "containerDisjunctive": undefined,
506
+ "disjunctive": [
507
+ [
508
+ "SECRET",
509
+ ],
510
+ [
511
+ "TOP_SECRET",
512
+ ],
513
+ ],
514
+ "type": "propertyMarkings",
515
+ },
516
+ ],
517
+ ],
518
+ "fullName": [
519
+ {
520
+ "conjunctive": [
521
+ "CONFIDENTIAL",
522
+ "INTERNAL",
523
+ ],
524
+ "containerConjunctive": undefined,
525
+ "containerDisjunctive": undefined,
526
+ "disjunctive": [
527
+ [
528
+ "SECRET",
529
+ ],
530
+ [
531
+ "TOP_SECRET",
532
+ ],
533
+ ],
534
+ "type": "propertyMarkings",
535
+ },
536
+ ],
537
+ "office": [
538
+ {
539
+ "type": "unsupportedPolicy",
540
+ },
541
+ ],
542
+ "startDate": [
543
+ {
544
+ "conjunctive": [
545
+ "CONFIDENTIAL",
546
+ "INTERNAL",
547
+ ],
548
+ "containerConjunctive": undefined,
549
+ "containerDisjunctive": undefined,
550
+ "disjunctive": [
551
+ [
552
+ "SECRET",
553
+ ],
554
+ [
555
+ "TOP_SECRET",
556
+ ],
557
+ ],
558
+ "type": "propertyMarkings",
559
+ },
560
+ ],
561
+ },
562
+ "$title": "Bruce Banner",
563
+ "class": "Red",
564
+ "employeeId": 20003,
565
+ "favoriteRestaurants": [
566
+ "Pasta Place",
567
+ "Sushi Spot",
568
+ ],
569
+ "fullName": "Bruce Banner",
570
+ "office": "NYC",
571
+ "startDate": "2003-01-01",
572
+ }
573
+ `);
574
+ });
575
+ });
453
576
  });
454
577
  export async function shouldError(client) {
455
578
  // @ts-expect-error
@@ -1 +1 @@
1
- {"version":3,"file":"object.test.js","names":["$Objects","Employee","FooInterface","LegacyFauxFoundry","startNodeApiServer","stubData","withoutRid","beforeAll","describe","expect","expectTypeOf","it","additionalContext","createClient","InterfaceDefinitions","createOsdkObject","asV2Object","o","includeRid","$apiName","__apiName","$objectType","$primaryKey","__primaryKey","$title","__title","each","baseUrl","client","apiServer","close","result","where","employeeId","employee1","fetchPage","employee","data","JSON","stringify","toBeDefined","toMatchObject","anything","startDate","Object","keys","$link","lead","fetchOne","$select","toBe","employee2","employeeStatus","toBeUndefined","employees","$and","peepsResult","peeps","toHaveLength","nextPageToken","office","peep","$includeRid","leadRid","$rid","objects","sort","toStrictEqual","updatedEmployee","mergedEmployee","$clone","toEqualTypeOf","undefined","toMatchTypeOf","toThrow","interfaceDef","apiName","displayName","links","properties","type","rid","implements","description","fooInterfaceOsdkDef","EmployeeFetchedMetadata","interfaceMap","inverseInterfaceMap","def","titleProperty","pluralDisplayName","status","icon","visibility","employeeOsdkObject","personInterfaceObject","$as","clonedInterface","loadedInterfaceObject","toThrowError","$objectSpecifier","object","shouldError","shouldError2","shouldCompile_client_fetchOne_old_select","shouldCompile_unstableClient_fetchOne_old_select","shouldCompile_client_fetchOne_new_select","shouldCompile_unstableClient_fetchOne_new_select","shouldCompile_client_fetchOne_old_noArgs","shouldCompile_unstableClient_fetchOne_noArgs"],"sources":["object.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 InterfaceDefinition,\n InterfaceMetadata,\n Osdk,\n PropertyKeys,\n} from \"@osdk/api\";\nimport { $Objects, Employee, FooInterface } from \"@osdk/client.test.ontology\";\nimport {\n LegacyFauxFoundry,\n startNodeApiServer,\n stubData,\n withoutRid,\n} from \"@osdk/shared.test\";\nimport { beforeAll, describe, expect, expectTypeOf, it } from \"vitest\";\nimport { additionalContext, type Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\nimport type {\n FetchedObjectTypeDefinition,\n} from \"../ontology/OntologyProvider.js\";\nimport { InterfaceDefinitions } from \"../ontology/OntologyProvider.js\";\nimport { createOsdkObject } from \"./convertWireToOsdkObjects/createOsdkObject.js\";\n\nfunction asV2Object(o: any, includeRid?: boolean) {\n o = includeRid ? { ...o } : withoutRid(o);\n o.$apiName = o.__apiName;\n o.$objectType = o.__apiName;\n o.$primaryKey = o.__primaryKey;\n o.$title = o.__title;\n delete o.__apiName;\n delete o.__primaryKey;\n delete o.__title;\n return o;\n}\n\ndescribe.each([\n \"https://stack.palantir.com\",\n \"https://stack.palantirCustom.com/foo/first/someStuff\",\n])(\"OsdkObject for %s\", (baseUrl) => {\n let client: Client;\n\n beforeAll(async () => {\n let apiServer;\n\n ({ client, apiServer } = startNodeApiServer(\n new LegacyFauxFoundry(baseUrl),\n createClient,\n ));\n\n return () => {\n apiServer.close();\n };\n });\n\n describe(\"link\", () => {\n it(\"loads an employee\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage();\n\n // we should get the employee we requested\n const employee = result.data[0];\n expect(JSON.stringify(employee)).toBeDefined();\n expect(employee).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50030,\n \"class\": \"Red\",\n \"employeeId\": 50030,\n \"employeeStatus\": expect.anything(),\n \"fullName\": \"John Doe\",\n \"office\": \"NYC\",\n \"startDate\": \"2019-01-01\",\n });\n\n employee.startDate;\n\n // it should have the prototype that we assign at hydration time\n expect(Object.keys(employee.$link.lead)).toBeDefined();\n });\n it(\"loads an employee with custom client\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage();\n\n // we should get the employee we requested\n const employee = result.data[0];\n expect(JSON.stringify(employee)).toBeDefined();\n expect(employee).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50030,\n \"class\": \"Red\",\n \"employeeId\": 50030,\n \"employeeStatus\": expect.anything(),\n \"fullName\": \"John Doe\",\n \"office\": \"NYC\",\n \"startDate\": \"2019-01-01\",\n });\n\n employee.startDate;\n\n // it should have the prototype that we assign at hydration time\n expect(Object.keys(employee.$link.lead)).toBeDefined();\n });\n\n it(\"traverses the link from an employee to their lead\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage();\n const employee = result.data[0];\n\n const lead = await employee.$link.lead.fetchOne({\n $select: [\"employeeId\"],\n });\n expect(lead.employeeId).toBe(stubData.employee2.employeeId);\n\n // ensure that the select was performed\n expect(lead.employeeId).toBeDefined();\n expect((lead as any).employeeStatus).toBeUndefined();\n });\n\n it(\"traverses the link from an lead to their peeps\", async () => {\n // slightly weird request here to hit the existing mocks for employee2\n const employees = await client(Employee).where({\n $and: [\n { \"employeeId\": { \"$gt\": 50030 } },\n { \"employeeId\": { \"$lt\": 50032 } },\n ],\n }).fetchPage();\n const lead = employees.data[0];\n expect(lead).toBeDefined();\n\n const peepsResult = await lead.$link.peeps.fetchPage({\n $select: [\"fullName\", \"employeeId\"],\n });\n expect(peepsResult.data).toHaveLength(2);\n expect(peepsResult.nextPageToken).toBeUndefined();\n\n // ensure that the select was performed\n expect(peepsResult.data[0]!.employeeId).toBeDefined();\n expect((peepsResult.data[0] as any).office).toBeUndefined();\n });\n\n it(\"traverses the link from an lead to their peep by primaryKey with fetchOne\", async () => {\n // slightly weird request here to hit the existing mocks for employee2\n const employees = await client(Employee).where({\n $and: [\n { \"employeeId\": { \"$gt\": 50030 } },\n { \"employeeId\": { \"$lt\": 50032 } },\n ],\n }).fetchPage();\n const lead = employees.data[0];\n expect(lead).toBeDefined();\n\n const peep = await lead.$link.peeps.fetchOne(\n stubData.employee1.employeeId,\n {\n $select: [\"employeeId\"],\n },\n );\n expect(peep).toBeDefined();\n\n // ensure that select worked\n expect(peep.employeeId).toBeDefined();\n expect((peep as any).employeeStatus).toBeUndefined();\n });\n it(\"gives $rid access when requested\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage(\n {\n $includeRid: true,\n },\n );\n const leadRid = result.data[0].$rid;\n expect(leadRid).toBeDefined();\n expect(leadRid).toBe(\n \"ri.phonograph2-objects.main.object.88a6fccb-f333-46d6-a07e-7725c5f18b61\",\n );\n });\n it(\"objects are enumerable in an sdk\", async () => {\n const objects = Object.keys($Objects);\n expect(objects.sort()).toStrictEqual([\n \"BgaoNflPlayer\",\n \"Employee\",\n \"ObjectWithTimestampPrimaryKey\",\n \"Office\",\n \"Person\",\n \"Task\",\n \"Todo\",\n \"equipment\",\n \"objectTypeWithAllPropertyTypes\",\n ].sort());\n });\n });\n describe(\"clone\", () => {\n let employee: Osdk.Instance<\n $Objects.Employee,\n never,\n PropertyKeys<$Objects.Employee>\n >;\n beforeAll(async () => {\n employee = (await client(Employee).where({\n employeeId: stubData.employee2.employeeId,\n }).fetchPage()).data[0];\n\n expect(employee).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Blue\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2012-02-12\",\n });\n });\n\n it(\"clones and updates an object with another osdk object\", async () => {\n const updatedEmployee = createOsdkObject(\n client[additionalContext],\n {\n \"apiName\": \"Employee\",\n \"primaryKeyType\": \"integer\",\n \"primaryKeyApiName\": \"employeeId\",\n \"properties\": {\n \"class\": { \"type\": \"string\" },\n \"employeeId\": { \"type\": \"integer\" },\n \"fullName\": { \"type\": \"string\" },\n \"office\": { \"type\": \"string\" },\n },\n } as any,\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Red\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n \"office\": \"NYC\",\n },\n ) as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\" | \"employeeId\" | \"fullName\" | \"office\"\n >;\n\n const mergedEmployee = employee.$clone(updatedEmployee);\n\n expectTypeOf(mergedEmployee).toEqualTypeOf(employee);\n\n expect(mergedEmployee).toMatchObject(\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Red\",\n \"employeeId\": 50031,\n \"employeeLocation\": {\n \"lastFetchedValue\": undefined,\n },\n \"employeeSensor\": {},\n \"employeeStatus\": {},\n \"fullName\": \"Jane Doe\",\n \"office\": \"NYC\",\n \"startDate\": \"2012-02-12\",\n },\n );\n });\n\n it(\"correctly scopes up with another OSDK object\", async () => {\n const firstEmployee = { $clone: () => {} } as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\"\n >;\n expectTypeOf(firstEmployee.$clone(employee)).toMatchTypeOf<\n Osdk.Instance<\n Employee,\n never,\n PropertyKeys<Employee>\n >\n >();\n });\n\n it(\"Correctly preserves keys from original and new with distinct property key sets\", async () => {\n const firstEmployee = { $clone: () => {} } as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\"\n >;\n expectTypeOf(\n firstEmployee.$clone({} as Osdk.Instance<Employee, never, \"office\">),\n ).toMatchTypeOf<\n Osdk.Instance<\n Employee,\n never,\n \"class\" | \"office\"\n >\n >();\n });\n\n it(\"clones and updates an object with a record\", async () => {\n const mergedEmployee = employee.$clone({\n \"class\": \"Green\",\n \"employeeId\": 50031,\n \"fullName\": \"John Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2019-01-01\",\n });\n\n expect(mergedEmployee).toMatchObject(\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"John Doe\",\n \"class\": \"Green\",\n \"employeeId\": 50031,\n \"employeeLocation\": {\n \"lastFetchedValue\": undefined,\n },\n \"employeeSensor\": {},\n \"employeeStatus\": {},\n \"fullName\": \"John Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2019-01-01\",\n },\n );\n });\n\n it(\"correctly scopes up with a record\", async () => {\n const firstEmployee = { $clone: () => {} } as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\"\n >;\n expectTypeOf(firstEmployee.$clone({\n \"class\": \"Green\",\n \"employeeId\": 50031,\n \"fullName\": \"John Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2019-01-01\",\n })).toMatchTypeOf<\n Osdk.Instance<\n Employee,\n never,\n \"class\" | \"employeeId\" | \"fullName\" | \"office\" | \"startDate\"\n >\n >();\n });\n\n it(\"correctly sets title\", async () => {\n const mergedEmployee = employee.$clone({\n \"fullName\": \"Brad Pitt\",\n });\n\n expect(mergedEmployee).toMatchObject(\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Brad Pitt\",\n \"class\": \"Blue\",\n \"employeeId\": 50031,\n \"employeeLocation\": {\n \"lastFetchedValue\": undefined,\n },\n \"employeeSensor\": {},\n \"employeeStatus\": {},\n \"fullName\": \"Brad Pitt\",\n \"office\": \"SEA\",\n \"startDate\": \"2012-02-12\",\n },\n );\n });\n\n it(\"is able to clone with nothing passed in\", async () => {\n expect(employee.$clone()).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Blue\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2012-02-12\",\n });\n });\n\n it(\"throws when merging objects with different primary keys\", async () => {\n expect(() =>\n employee.$clone({\n \"class\": \"Green\",\n \"employeeId\": 50035,\n })\n ).toThrow();\n });\n describe(\"interface\", () => {\n const interfaceDef = {\n apiName: \"FooInterface\",\n displayName: \"\",\n links: {},\n properties: {\n \"fooSpt\": {\n type: \"string\",\n },\n \"notImplementedFooSpt\": {\n type: \"string\",\n },\n },\n rid: \"\",\n type: \"interface\",\n implements: [],\n description: undefined,\n } satisfies InterfaceMetadata;\n\n const fooInterfaceOsdkDef = {\n apiName: \"FooInterface\",\n type: \"interface\",\n \"__DefinitionMetadata\": interfaceDef,\n } satisfies InterfaceDefinition;\n\n const EmployeeFetchedMetadata = {\n \"apiName\": \"Employee\",\n \"primaryKeyType\": \"integer\",\n \"primaryKeyApiName\": \"employeeId\",\n \"properties\": {\n \"employeeId\": { \"type\": \"integer\" },\n \"fullName\": { \"type\": \"string\" },\n },\n interfaceMap: {\n \"FooInterface\": {\n \"fooSpt\": \"fullName\",\n },\n },\n inverseInterfaceMap: {\n \"FooInterface\": {\n \"fullName\": \"fooSpt\",\n },\n },\n [InterfaceDefinitions]: {\n \"FooInterface\": { def: interfaceDef },\n },\n type: \"object\",\n titleProperty: \"fullName\",\n pluralDisplayName: \"\",\n status: \"ACTIVE\",\n displayName: \"\",\n links: {},\n rid: \"\",\n icon: undefined,\n visibility: undefined,\n description: undefined,\n } satisfies FetchedObjectTypeDefinition;\n\n it(\"Correctly updates the interface and underlying object\", () => {\n const employeeOsdkObject = createOsdkObject(\n client[additionalContext],\n EmployeeFetchedMetadata,\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n },\n ) as unknown as Osdk.Instance<\n Employee,\n never,\n \"employeeId\" | \"fullName\"\n >;\n\n const personInterfaceObject = employeeOsdkObject.$as(\n fooInterfaceOsdkDef,\n );\n\n const clonedInterface = personInterfaceObject.$clone({\n \"fooSpt\": \"John Adams\",\n });\n\n expect(clonedInterface).toMatchObject(\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"John Adams\",\n \"fooSpt\": \"John Adams\",\n },\n );\n\n expect(clonedInterface.$as(\"Employee\")).toMatchObject(\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"John Adams\",\n \"employeeId\": 50031,\n \"fullName\": \"John Adams\",\n },\n );\n });\n it(\"Throws if updating an interface with a property not implemented by the underlying object type\", () => {\n const employeeOsdkObject = createOsdkObject(\n client[additionalContext],\n EmployeeFetchedMetadata,\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n },\n ) as unknown as Osdk.Instance<\n Employee,\n never,\n \"employeeId\" | \"fullName\"\n >;\n\n const loadedInterfaceObject = employeeOsdkObject.$as(interfaceDef);\n expect(() =>\n loadedInterfaceObject.$clone({\n \"notImplementedFooSpt\": \"John Adams\",\n })\n ).toThrowError(\n `Cannot clone interface with notImplementedFooSpt as property is not implemented by the underlying object type Employee`,\n );\n });\n });\n });\n describe(\"objectSpecifier\", () => {\n it(\"returns the object specifier for a loaded object\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage();\n\n const employee = result.data[0];\n expect(employee.$objectSpecifier).toBe(\"Employee:50030\");\n });\n\n it(\"returns the object specifier for a loaded interface object\", async () => {\n const result = await client(FooInterface).fetchPage();\n\n const object = result.data[0];\n expect(object.$objectSpecifier).toBe(\"Employee:50030\");\n });\n });\n});\n\nexport async function shouldError(client: Client): Promise<Osdk<Employee>> {\n // @ts-expect-error\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldError2(\n client: Client,\n): Promise<Employee.OsdkObject> {\n // @ts-expect-error\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_client_fetchOne_old_select(\n client: Client,\n): Promise<Osdk<Employee, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_unstableClient_fetchOne_old_select(\n client: Client,\n): Promise<Osdk<Employee, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_client_fetchOne_new_select(\n client: Client,\n): Promise<Employee.OsdkObject<never, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_unstableClient_fetchOne_new_select(\n client: Client,\n): Promise<Osdk<Employee, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_client_fetchOne_old_noArgs(\n client: Client,\n): Promise<Osdk<Employee>> {\n return client(Employee).fetchOne(1);\n}\n\nexport async function shouldCompile_unstableClient_fetchOne_noArgs(\n client: Client,\n): Promise<Osdk<Employee>> {\n return client(Employee).fetchOne(1);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"object.test.js","names":["$Objects","Employee","FooInterface","LegacyFauxFoundry","startNodeApiServer","stubData","withoutRid","beforeAll","describe","expect","expectTypeOf","it","additionalContext","createClient","InterfaceDefinitions","createOsdkObject","asV2Object","o","includeRid","$apiName","__apiName","$objectType","$primaryKey","__primaryKey","$title","__title","each","baseUrl","client","apiServer","close","result","where","employeeId","employee1","fetchPage","employee","data","JSON","stringify","toBeDefined","toMatchObject","anything","startDate","Object","keys","$link","lead","fetchOne","$select","toBe","employee2","employeeStatus","toBeUndefined","employees","$and","peepsResult","peeps","toHaveLength","nextPageToken","office","peep","$includeRid","leadRid","$rid","objects","sort","toStrictEqual","updatedEmployee","mergedEmployee","$clone","toEqualTypeOf","undefined","toMatchTypeOf","toThrow","interfaceDef","apiName","displayName","links","properties","type","rid","implements","description","fooInterfaceOsdkDef","EmployeeFetchedMetadata","interfaceMap","inverseInterfaceMap","def","titleProperty","pluralDisplayName","status","icon","visibility","employeeOsdkObject","personInterfaceObject","$as","clonedInterface","loadedInterfaceObject","toThrowError","$objectSpecifier","object","$loadPropertySecurityMetadata","$propertySecurities","toMatchObjectType","class","favoriteRestaurants","toMatchInlineSnapshot","shouldError","shouldError2","shouldCompile_client_fetchOne_old_select","shouldCompile_unstableClient_fetchOne_old_select","shouldCompile_client_fetchOne_new_select","shouldCompile_unstableClient_fetchOne_new_select","shouldCompile_client_fetchOne_old_noArgs","shouldCompile_unstableClient_fetchOne_noArgs"],"sources":["object.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 InterfaceDefinition,\n InterfaceMetadata,\n Osdk,\n PropertyKeys,\n PropertySecurity,\n} from \"@osdk/api\";\nimport { $Objects, Employee, FooInterface } from \"@osdk/client.test.ontology\";\nimport {\n LegacyFauxFoundry,\n startNodeApiServer,\n stubData,\n withoutRid,\n} from \"@osdk/shared.test\";\nimport { beforeAll, describe, expect, expectTypeOf, it } from \"vitest\";\nimport { additionalContext, type Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\nimport type {\n FetchedObjectTypeDefinition,\n} from \"../ontology/OntologyProvider.js\";\nimport { InterfaceDefinitions } from \"../ontology/OntologyProvider.js\";\nimport { createOsdkObject } from \"./convertWireToOsdkObjects/createOsdkObject.js\";\n\nfunction asV2Object(o: any, includeRid?: boolean) {\n o = includeRid ? { ...o } : withoutRid(o);\n o.$apiName = o.__apiName;\n o.$objectType = o.__apiName;\n o.$primaryKey = o.__primaryKey;\n o.$title = o.__title;\n delete o.__apiName;\n delete o.__primaryKey;\n delete o.__title;\n return o;\n}\n\ndescribe.each([\n \"https://stack.palantir.com\",\n \"https://stack.palantirCustom.com/foo/first/someStuff\",\n])(\"OsdkObject for %s\", (baseUrl) => {\n let client: Client;\n\n beforeAll(async () => {\n let apiServer;\n\n ({ client, apiServer } = startNodeApiServer(\n new LegacyFauxFoundry(baseUrl),\n createClient,\n ));\n\n return () => {\n apiServer.close();\n };\n });\n\n describe(\"link\", () => {\n it(\"loads an employee\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage();\n\n // we should get the employee we requested\n const employee = result.data[0];\n expect(JSON.stringify(employee)).toBeDefined();\n expect(employee).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50030,\n \"class\": \"Red\",\n \"employeeId\": 50030,\n \"employeeStatus\": expect.anything(),\n \"fullName\": \"John Doe\",\n \"office\": \"NYC\",\n \"startDate\": \"2019-01-01\",\n });\n\n employee.startDate;\n\n // it should have the prototype that we assign at hydration time\n expect(Object.keys(employee.$link.lead)).toBeDefined();\n });\n it(\"loads an employee with custom client\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage();\n\n // we should get the employee we requested\n const employee = result.data[0];\n expect(JSON.stringify(employee)).toBeDefined();\n expect(employee).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50030,\n \"class\": \"Red\",\n \"employeeId\": 50030,\n \"employeeStatus\": expect.anything(),\n \"fullName\": \"John Doe\",\n \"office\": \"NYC\",\n \"startDate\": \"2019-01-01\",\n });\n\n employee.startDate;\n\n // it should have the prototype that we assign at hydration time\n expect(Object.keys(employee.$link.lead)).toBeDefined();\n });\n\n it(\"traverses the link from an employee to their lead\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage();\n const employee = result.data[0];\n\n const lead = await employee.$link.lead.fetchOne({\n $select: [\"employeeId\"],\n });\n expect(lead.employeeId).toBe(stubData.employee2.employeeId);\n\n // ensure that the select was performed\n expect(lead.employeeId).toBeDefined();\n expect((lead as any).employeeStatus).toBeUndefined();\n });\n\n it(\"traverses the link from an lead to their peeps\", async () => {\n // slightly weird request here to hit the existing mocks for employee2\n const employees = await client(Employee).where({\n $and: [\n { \"employeeId\": { \"$gt\": 50030 } },\n { \"employeeId\": { \"$lt\": 50032 } },\n ],\n }).fetchPage();\n const lead = employees.data[0];\n expect(lead).toBeDefined();\n\n const peepsResult = await lead.$link.peeps.fetchPage({\n $select: [\"fullName\", \"employeeId\"],\n });\n expect(peepsResult.data).toHaveLength(2);\n expect(peepsResult.nextPageToken).toBeUndefined();\n\n // ensure that the select was performed\n expect(peepsResult.data[0]!.employeeId).toBeDefined();\n expect((peepsResult.data[0] as any).office).toBeUndefined();\n });\n\n it(\"traverses the link from an lead to their peep by primaryKey with fetchOne\", async () => {\n // slightly weird request here to hit the existing mocks for employee2\n const employees = await client(Employee).where({\n $and: [\n { \"employeeId\": { \"$gt\": 50030 } },\n { \"employeeId\": { \"$lt\": 50032 } },\n ],\n }).fetchPage();\n const lead = employees.data[0];\n expect(lead).toBeDefined();\n\n const peep = await lead.$link.peeps.fetchOne(\n stubData.employee1.employeeId,\n {\n $select: [\"employeeId\"],\n },\n );\n expect(peep).toBeDefined();\n\n // ensure that select worked\n expect(peep.employeeId).toBeDefined();\n expect((peep as any).employeeStatus).toBeUndefined();\n });\n it(\"gives $rid access when requested\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage(\n {\n $includeRid: true,\n },\n );\n const leadRid = result.data[0].$rid;\n expect(leadRid).toBeDefined();\n expect(leadRid).toBe(\n \"ri.phonograph2-objects.main.object.88a6fccb-f333-46d6-a07e-7725c5f18b61\",\n );\n });\n it(\"objects are enumerable in an sdk\", async () => {\n const objects = Object.keys($Objects);\n expect(objects.sort()).toStrictEqual([\n \"BgaoNflPlayer\",\n \"Employee\",\n \"ObjectWithTimestampPrimaryKey\",\n \"Office\",\n \"Person\",\n \"Task\",\n \"Todo\",\n \"equipment\",\n \"objectTypeWithAllPropertyTypes\",\n ].sort());\n });\n });\n describe(\"clone\", () => {\n let employee: Osdk.Instance<\n $Objects.Employee,\n never,\n PropertyKeys<$Objects.Employee>\n >;\n beforeAll(async () => {\n employee = (await client(Employee).where({\n employeeId: stubData.employee2.employeeId,\n }).fetchPage()).data[0];\n\n expect(employee).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Blue\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2012-02-12\",\n });\n });\n\n it(\"clones and updates an object with another osdk object\", async () => {\n const updatedEmployee = createOsdkObject(\n client[additionalContext],\n {\n \"apiName\": \"Employee\",\n \"primaryKeyType\": \"integer\",\n \"primaryKeyApiName\": \"employeeId\",\n \"properties\": {\n \"class\": { \"type\": \"string\" },\n \"employeeId\": { \"type\": \"integer\" },\n \"fullName\": { \"type\": \"string\" },\n \"office\": { \"type\": \"string\" },\n },\n } as any,\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Red\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n \"office\": \"NYC\",\n },\n ) as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\" | \"employeeId\" | \"fullName\" | \"office\"\n >;\n\n const mergedEmployee = employee.$clone(updatedEmployee);\n\n expectTypeOf(mergedEmployee).toEqualTypeOf(employee);\n\n expect(mergedEmployee).toMatchObject(\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Red\",\n \"employeeId\": 50031,\n \"employeeLocation\": {\n \"lastFetchedValue\": undefined,\n },\n \"employeeSensor\": {},\n \"employeeStatus\": {},\n \"fullName\": \"Jane Doe\",\n \"office\": \"NYC\",\n \"startDate\": \"2012-02-12\",\n },\n );\n });\n\n it(\"correctly scopes up with another OSDK object\", async () => {\n const firstEmployee = { $clone: () => {} } as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\"\n >;\n expectTypeOf(firstEmployee.$clone(employee)).toMatchTypeOf<\n Osdk.Instance<\n Employee,\n never,\n PropertyKeys<Employee>\n >\n >();\n });\n\n it(\"Correctly preserves keys from original and new with distinct property key sets\", async () => {\n const firstEmployee = { $clone: () => {} } as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\"\n >;\n expectTypeOf(\n firstEmployee.$clone({} as Osdk.Instance<Employee, never, \"office\">),\n ).toMatchTypeOf<\n Osdk.Instance<\n Employee,\n never,\n \"class\" | \"office\"\n >\n >();\n });\n\n it(\"clones and updates an object with a record\", async () => {\n const mergedEmployee = employee.$clone({\n \"class\": \"Green\",\n \"employeeId\": 50031,\n \"fullName\": \"John Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2019-01-01\",\n });\n\n expect(mergedEmployee).toMatchObject(\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"John Doe\",\n \"class\": \"Green\",\n \"employeeId\": 50031,\n \"employeeLocation\": {\n \"lastFetchedValue\": undefined,\n },\n \"employeeSensor\": {},\n \"employeeStatus\": {},\n \"fullName\": \"John Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2019-01-01\",\n },\n );\n });\n\n it(\"correctly scopes up with a record\", async () => {\n const firstEmployee = { $clone: () => {} } as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\"\n >;\n expectTypeOf(firstEmployee.$clone({\n \"class\": \"Green\",\n \"employeeId\": 50031,\n \"fullName\": \"John Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2019-01-01\",\n })).toMatchTypeOf<\n Osdk.Instance<\n Employee,\n never,\n \"class\" | \"employeeId\" | \"fullName\" | \"office\" | \"startDate\"\n >\n >();\n });\n\n it(\"correctly sets title\", async () => {\n const mergedEmployee = employee.$clone({\n \"fullName\": \"Brad Pitt\",\n });\n\n expect(mergedEmployee).toMatchObject(\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Brad Pitt\",\n \"class\": \"Blue\",\n \"employeeId\": 50031,\n \"employeeLocation\": {\n \"lastFetchedValue\": undefined,\n },\n \"employeeSensor\": {},\n \"employeeStatus\": {},\n \"fullName\": \"Brad Pitt\",\n \"office\": \"SEA\",\n \"startDate\": \"2012-02-12\",\n },\n );\n });\n\n it(\"is able to clone with nothing passed in\", async () => {\n expect(employee.$clone()).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Blue\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2012-02-12\",\n });\n });\n\n it(\"throws when merging objects with different primary keys\", async () => {\n expect(() =>\n employee.$clone({\n \"class\": \"Green\",\n \"employeeId\": 50035,\n })\n ).toThrow();\n });\n describe(\"interface\", () => {\n const interfaceDef = {\n apiName: \"FooInterface\",\n displayName: \"\",\n links: {},\n properties: {\n \"fooSpt\": {\n type: \"string\",\n },\n \"notImplementedFooSpt\": {\n type: \"string\",\n },\n },\n rid: \"\",\n type: \"interface\",\n implements: [],\n description: undefined,\n } satisfies InterfaceMetadata;\n\n const fooInterfaceOsdkDef = {\n apiName: \"FooInterface\",\n type: \"interface\",\n \"__DefinitionMetadata\": interfaceDef,\n } satisfies InterfaceDefinition;\n\n const EmployeeFetchedMetadata = {\n \"apiName\": \"Employee\",\n \"primaryKeyType\": \"integer\",\n \"primaryKeyApiName\": \"employeeId\",\n \"properties\": {\n \"employeeId\": { \"type\": \"integer\" },\n \"fullName\": { \"type\": \"string\" },\n },\n interfaceMap: {\n \"FooInterface\": {\n \"fooSpt\": \"fullName\",\n },\n },\n inverseInterfaceMap: {\n \"FooInterface\": {\n \"fullName\": \"fooSpt\",\n },\n },\n [InterfaceDefinitions]: {\n \"FooInterface\": { def: interfaceDef },\n },\n type: \"object\",\n titleProperty: \"fullName\",\n pluralDisplayName: \"\",\n status: \"ACTIVE\",\n displayName: \"\",\n links: {},\n rid: \"\",\n icon: undefined,\n visibility: undefined,\n description: undefined,\n } satisfies FetchedObjectTypeDefinition;\n\n it(\"Correctly updates the interface and underlying object\", () => {\n const employeeOsdkObject = createOsdkObject(\n client[additionalContext],\n EmployeeFetchedMetadata,\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n },\n ) as unknown as Osdk.Instance<\n Employee,\n never,\n \"employeeId\" | \"fullName\"\n >;\n\n const personInterfaceObject = employeeOsdkObject.$as(\n fooInterfaceOsdkDef,\n );\n\n const clonedInterface = personInterfaceObject.$clone({\n \"fooSpt\": \"John Adams\",\n });\n\n expect(clonedInterface).toMatchObject(\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"John Adams\",\n \"fooSpt\": \"John Adams\",\n },\n );\n\n expect(clonedInterface.$as(\"Employee\")).toMatchObject(\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"John Adams\",\n \"employeeId\": 50031,\n \"fullName\": \"John Adams\",\n },\n );\n });\n it(\"Throws if updating an interface with a property not implemented by the underlying object type\", () => {\n const employeeOsdkObject = createOsdkObject(\n client[additionalContext],\n EmployeeFetchedMetadata,\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n },\n ) as unknown as Osdk.Instance<\n Employee,\n never,\n \"employeeId\" | \"fullName\"\n >;\n\n const loadedInterfaceObject = employeeOsdkObject.$as(interfaceDef);\n expect(() =>\n loadedInterfaceObject.$clone({\n \"notImplementedFooSpt\": \"John Adams\",\n })\n ).toThrowError(\n `Cannot clone interface with notImplementedFooSpt as property is not implemented by the underlying object type Employee`,\n );\n });\n });\n });\n describe(\"objectSpecifier\", () => {\n it(\"returns the object specifier for a loaded object\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage();\n\n const employee = result.data[0];\n expect(employee.$objectSpecifier).toBe(\"Employee:50030\");\n });\n\n it(\"returns the object specifier for a loaded interface object\", async () => {\n const result = await client(FooInterface).fetchPage();\n\n const object = result.data[0];\n expect(object.$objectSpecifier).toBe(\"Employee:50030\");\n });\n });\n describe(\"$propertySecurities\", () => {\n it(\"processes objects with secured property values correctly\", async () => {\n const object = await client(Employee).fetchOne(20003, {\n $loadPropertySecurityMetadata: true,\n });\n\n expectTypeOf(object.$propertySecurities).toMatchObjectType<\n {\n class: PropertySecurity[];\n employeeId: PropertySecurity[];\n fullName: PropertySecurity[];\n office: PropertySecurity[];\n startDate: PropertySecurity[];\n employeeLocation: PropertySecurity[];\n employeeSensor: PropertySecurity[];\n employeeStatus: PropertySecurity[];\n skillSet: PropertySecurity[];\n skillSetEmbedding: PropertySecurity[];\n }\n >();\n\n expectTypeOf(object.$propertySecurities.class)\n .toMatchTypeOf<PropertySecurity[]>();\n\n expectTypeOf(object.$propertySecurities.favoriteRestaurants)\n .toMatchTypeOf<PropertySecurity[][]>();\n\n expect(object).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:20003\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 20003,\n \"$propertySecurities\": {\n \"class\": [\n {\n \"type\": \"errorComputingSecurity\",\n },\n ],\n \"employeeId\": [\n {\n \"conjunctive\": [\n \"CONFIDENTIAL\",\n \"INTERNAL\",\n ],\n \"containerConjunctive\": undefined,\n \"containerDisjunctive\": undefined,\n \"disjunctive\": [\n [\n \"SECRET\",\n ],\n [\n \"TOP_SECRET\",\n ],\n ],\n \"type\": \"propertyMarkings\",\n },\n ],\n \"favoriteRestaurants\": [\n [\n {\n \"type\": \"unsupportedPolicy\",\n },\n ],\n [\n {\n \"conjunctive\": [\n \"CONFIDENTIAL\",\n \"INTERNAL\",\n ],\n \"containerConjunctive\": undefined,\n \"containerDisjunctive\": undefined,\n \"disjunctive\": [\n [\n \"SECRET\",\n ],\n [\n \"TOP_SECRET\",\n ],\n ],\n \"type\": \"propertyMarkings\",\n },\n ],\n ],\n \"fullName\": [\n {\n \"conjunctive\": [\n \"CONFIDENTIAL\",\n \"INTERNAL\",\n ],\n \"containerConjunctive\": undefined,\n \"containerDisjunctive\": undefined,\n \"disjunctive\": [\n [\n \"SECRET\",\n ],\n [\n \"TOP_SECRET\",\n ],\n ],\n \"type\": \"propertyMarkings\",\n },\n ],\n \"office\": [\n {\n \"type\": \"unsupportedPolicy\",\n },\n ],\n \"startDate\": [\n {\n \"conjunctive\": [\n \"CONFIDENTIAL\",\n \"INTERNAL\",\n ],\n \"containerConjunctive\": undefined,\n \"containerDisjunctive\": undefined,\n \"disjunctive\": [\n [\n \"SECRET\",\n ],\n [\n \"TOP_SECRET\",\n ],\n ],\n \"type\": \"propertyMarkings\",\n },\n ],\n },\n \"$title\": \"Bruce Banner\",\n \"class\": \"Red\",\n \"employeeId\": 20003,\n \"favoriteRestaurants\": [\n \"Pasta Place\",\n \"Sushi Spot\",\n ],\n \"fullName\": \"Bruce Banner\",\n \"office\": \"NYC\",\n \"startDate\": \"2003-01-01\",\n }\n `);\n });\n });\n});\n\nexport async function shouldError(client: Client): Promise<Osdk<Employee>> {\n // @ts-expect-error\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldError2(\n client: Client,\n): Promise<Employee.OsdkObject> {\n // @ts-expect-error\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_client_fetchOne_old_select(\n client: Client,\n): Promise<Osdk<Employee, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_unstableClient_fetchOne_old_select(\n client: Client,\n): Promise<Osdk<Employee, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_client_fetchOne_new_select(\n client: Client,\n): Promise<Employee.OsdkObject<never, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_unstableClient_fetchOne_new_select(\n client: Client,\n): Promise<Osdk<Employee, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_client_fetchOne_old_noArgs(\n client: Client,\n): Promise<Osdk<Employee>> {\n return client(Employee).fetchOne(1);\n}\n\nexport async function shouldCompile_unstableClient_fetchOne_noArgs(\n client: Client,\n): Promise<Osdk<Employee>> {\n return client(Employee).fetchOne(1);\n}\n"],"mappings":"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MAAMkE,MAAM,GAAGtE,MAAM,CAACM,IAAI,CAAC,CAAC,CAAC;MAC7B5B,MAAM,CAAC4F,MAAM,CAACD,gBAAgB,CAAC,CAAClD,IAAI,CAAC,gBAAgB,CAAC;IACxD,CAAC,CAAC;EACJ,CAAC,CAAC;EACF1C,QAAQ,CAAC,qBAAqB,EAAE,MAAM;IACpCG,EAAE,CAAC,0DAA0D,EAAE,YAAY;MACzE,MAAM0F,MAAM,GAAG,MAAMzE,MAAM,CAAC3B,QAAQ,CAAC,CAAC+C,QAAQ,CAAC,KAAK,EAAE;QACpDsD,6BAA6B,EAAE;MACjC,CAAC,CAAC;MAEF5F,YAAY,CAAC2F,MAAM,CAACE,mBAAmB,CAAC,CAACC,iBAAiB,CAaxD,CAAC;MAEH9F,YAAY,CAAC2F,MAAM,CAACE,mBAAmB,CAACE,KAAK,CAAC,CAC3ChC,aAAa,CAAqB,CAAC;MAEtC/D,YAAY,CAAC2F,MAAM,CAACE,mBAAmB,CAACG,mBAAmB,CAAC,CACzDjC,aAAa,CAAuB,CAAC;MAExChE,MAAM,CAAC4F,MAAM,CAAC,CAACM,qBAAqB,CAAC;AAC3C;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;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;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,OAAO,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,eAAeC,WAAWA,CAAChF,MAAc,EAA2B;EACzE;EACA,OAAOA,MAAM,CAAC3B,QAAQ,CAAC,CAAC+C,QAAQ,CAAC,CAAC,EAAE;IAClCC,OAAO,EAAE,CAAC,YAAY;EACxB,CAAC,CAAC;AACJ;AAEA,OAAO,eAAe4D,YAAYA,CAChCjF,MAAc,EACgB;EAC9B;EACA,OAAOA,MAAM,CAAC3B,QAAQ,CAAC,CAAC+C,QAAQ,CAAC,CAAC,EAAE;IAClCC,OAAO,EAAE,CAAC,YAAY;EACxB,CAAC,CAAC;AACJ;AAEA,OAAO,eAAe6D,wCAAwCA,CAC5DlF,MAAc,EACyB;EACvC,OAAOA,MAAM,CAAC3B,QAAQ,CAAC,CAAC+C,QAAQ,CAAC,CAAC,EAAE;IAClCC,OAAO,EAAE,CAAC,YAAY;EACxB,CAAC,CAAC;AACJ;AAEA,OAAO,eAAe8D,gDAAgDA,CACpEnF,MAAc,EACyB;EACvC,OAAOA,MAAM,CAAC3B,QAAQ,CAAC,CAAC+C,QAAQ,CAAC,CAAC,EAAE;IAClCC,OAAO,EAAE,CAAC,YAAY;EACxB,CAAC,CAAC;AACJ;AAEA,OAAO,eAAe+D,wCAAwCA,CAC5DpF,MAAc,EACqC;EACnD,OAAOA,MAAM,CAAC3B,QAAQ,CAAC,CAAC+C,QAAQ,CAAC,CAAC,EAAE;IAClCC,OAAO,EAAE,CAAC,YAAY;EACxB,CAAC,CAAC;AACJ;AAEA,OAAO,eAAegE,gDAAgDA,CACpErF,MAAc,EACyB;EACvC,OAAOA,MAAM,CAAC3B,QAAQ,CAAC,CAAC+C,QAAQ,CAAC,CAAC,EAAE;IAClCC,OAAO,EAAE,CAAC,YAAY;EACxB,CAAC,CAAC;AACJ;AAEA,OAAO,eAAeiE,wCAAwCA,CAC5DtF,MAAc,EACW;EACzB,OAAOA,MAAM,CAAC3B,QAAQ,CAAC,CAAC+C,QAAQ,CAAC,CAAC,CAAC;AACrC;AAEA,OAAO,eAAemE,4CAA4CA,CAChEvF,MAAc,EACW;EACzB,OAAOA,MAAM,CAAC3B,QAAQ,CAAC,CAAC+C,QAAQ,CAAC,CAAC,CAAC;AACrC","ignoreList":[]}
@@ -79,7 +79,7 @@ describe("ObjectSet", () => {
79
79
  expectTypeOf().toEqualTypeOf;
80
80
  expect(asEmployee2.fullName).toEqual("Santa Claus");
81
81
  // @ts-expect-error
82
- expect(asEmployee2.office).toBeUndefined();
82
+ expect(asEmployee2.employeeId).toBeUndefined();
83
83
  });
84
84
  it("interface links", async () => {
85
85
  client(BarInterface).pivotTo("toFoo");
@@ -1 +1 @@
1
- {"version":3,"file":"InterfaceObjectSet.test.js","names":["BarInterface","Employee","FooInterface","beforeAll","describe","expect","expectTypeOf","it","LegacyFauxFoundry","startNodeApiServer","createClient","client","testSetup","apiServer","close","employeeObjectSet","fooInterfaceSet","union","subtract","intersect","objectSet","data","interfacers","fetchPage","santa","find","obj","$primaryKey","toBeDefined","fooSpt","toEqual","foo","$objectType","$as","fullName","whereClausedInterface","where","$includeAllBaseObjectProperties","interfaceObj","asEmployee","toEqualTypeOf","office","whereClausedInterface2","interfaceObj2","asEmployee2","toBeUndefined","pivotTo"],"sources":["InterfaceObjectSet.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 BarInterface,\n Employee,\n FooInterface,\n} from \"@osdk/client.test.ontology\";\nimport { beforeAll, describe, expect, expectTypeOf, it } from \"vitest\";\n\nimport type { ObjectSet, Osdk, PropertyKeys } from \"@osdk/api\";\nimport { LegacyFauxFoundry, startNodeApiServer } from \"@osdk/shared.test\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\n\ndescribe(\"ObjectSet\", () => {\n let client: Client;\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);\n ({ client } = testSetup);\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"does not allow intersect/union/subtract with implementing interface types, for now\", () => {\n const employeeObjectSet = client(Employee);\n const fooInterfaceSet = client(FooInterface);\n\n // @ts-expect-error\n employeeObjectSet.union(fooInterfaceSet);\n\n // @ts-expect-error\n employeeObjectSet.subtract(fooInterfaceSet);\n\n // @ts-expect-error\n employeeObjectSet.intersect(fooInterfaceSet);\n });\n\n it(\"interface objects set loading\", async () => {\n const objectSet = client(FooInterface);\n const { data: interfacers } = await objectSet.fetchPage();\n const santa = interfacers.find(obj => obj.$primaryKey === 50050);\n expect(santa).toBeDefined();\n expect(santa?.fooSpt).toEqual(\"Santa Claus\");\n\n for (const foo of interfacers) {\n if (foo.$objectType === \"Employee\") {\n expect(foo.fooSpt).toEqual(foo.$as(Employee).fullName);\n }\n }\n });\n\n it(\"allows fetching by field from a interface object set - where clause\", async () => {\n const whereClausedInterface = await client(FooInterface).where({\n fooSpt: \"Santa Claus\",\n }).fetchPage({ $includeAllBaseObjectProperties: true });\n\n const interfaceObj = whereClausedInterface.data[0];\n expect(interfaceObj.fooSpt).toEqual(\"Santa Claus\");\n\n const asEmployee = interfaceObj.$as(Employee);\n expectTypeOf<typeof asEmployee>().toEqualTypeOf<\n Osdk.Instance<Employee, \"$allBaseProperties\", PropertyKeys<Employee>, {}>\n >;\n\n expect(asEmployee.fullName).toEqual(\"Santa Claus\");\n expect(asEmployee.office).toEqual(\"NYC\");\n\n const whereClausedInterface2 = await client(FooInterface).where({\n fooSpt: \"Santa Claus\",\n }).fetchPage({\n $includeAllBaseObjectProperties: false,\n });\n\n const interfaceObj2 = whereClausedInterface2.data[0];\n expect(interfaceObj2.fooSpt).toEqual(\"Santa Claus\");\n const asEmployee2 = interfaceObj2.$as(Employee);\n\n expectTypeOf<typeof asEmployee2>().toEqualTypeOf<\n Osdk.Instance<Employee, never, \"fullName\", {}>\n >;\n\n expect(asEmployee2.fullName).toEqual(\"Santa Claus\");\n // @ts-expect-error\n expect(asEmployee2.office).toBeUndefined();\n });\n\n it(\"interface links\", async () => {\n const objectSet = client(BarInterface).pivotTo(\"toFoo\");\n expectTypeOf<typeof objectSet>().toEqualTypeOf<\n ObjectSet<FooInterface, never>\n >;\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"InterfaceObjectSet.test.js","names":["BarInterface","Employee","FooInterface","beforeAll","describe","expect","expectTypeOf","it","LegacyFauxFoundry","startNodeApiServer","createClient","client","testSetup","apiServer","close","employeeObjectSet","fooInterfaceSet","union","subtract","intersect","objectSet","data","interfacers","fetchPage","santa","find","obj","$primaryKey","toBeDefined","fooSpt","toEqual","foo","$objectType","$as","fullName","whereClausedInterface","where","$includeAllBaseObjectProperties","interfaceObj","asEmployee","toEqualTypeOf","office","whereClausedInterface2","interfaceObj2","asEmployee2","employeeId","toBeUndefined","pivotTo"],"sources":["InterfaceObjectSet.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 BarInterface,\n Employee,\n FooInterface,\n} from \"@osdk/client.test.ontology\";\nimport { beforeAll, describe, expect, expectTypeOf, it } from \"vitest\";\n\nimport type { ObjectSet, Osdk, PropertyKeys } from \"@osdk/api\";\nimport { LegacyFauxFoundry, startNodeApiServer } from \"@osdk/shared.test\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\n\ndescribe(\"ObjectSet\", () => {\n let client: Client;\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);\n ({ client } = testSetup);\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"does not allow intersect/union/subtract with implementing interface types, for now\", () => {\n const employeeObjectSet = client(Employee);\n const fooInterfaceSet = client(FooInterface);\n\n // @ts-expect-error\n employeeObjectSet.union(fooInterfaceSet);\n\n // @ts-expect-error\n employeeObjectSet.subtract(fooInterfaceSet);\n\n // @ts-expect-error\n employeeObjectSet.intersect(fooInterfaceSet);\n });\n\n it(\"interface objects set loading\", async () => {\n const objectSet = client(FooInterface);\n const { data: interfacers } = await objectSet.fetchPage();\n const santa = interfacers.find(obj => obj.$primaryKey === 50050);\n expect(santa).toBeDefined();\n expect(santa?.fooSpt).toEqual(\"Santa Claus\");\n\n for (const foo of interfacers) {\n if (foo.$objectType === \"Employee\") {\n expect(foo.fooSpt).toEqual(foo.$as(Employee).fullName);\n }\n }\n });\n\n it(\"allows fetching by field from a interface object set - where clause\", async () => {\n const whereClausedInterface = await client(FooInterface).where({\n fooSpt: \"Santa Claus\",\n }).fetchPage({ $includeAllBaseObjectProperties: true });\n\n const interfaceObj = whereClausedInterface.data[0];\n expect(interfaceObj.fooSpt).toEqual(\"Santa Claus\");\n\n const asEmployee = interfaceObj.$as(Employee);\n expectTypeOf<typeof asEmployee>().toEqualTypeOf<\n Osdk.Instance<Employee, \"$allBaseProperties\", PropertyKeys<Employee>, {}>\n >;\n\n expect(asEmployee.fullName).toEqual(\"Santa Claus\");\n expect(asEmployee.office).toEqual(\"NYC\");\n\n const whereClausedInterface2 = await client(FooInterface).where({\n fooSpt: \"Santa Claus\",\n }).fetchPage({\n $includeAllBaseObjectProperties: false,\n });\n\n const interfaceObj2 = whereClausedInterface2.data[0];\n expect(interfaceObj2.fooSpt).toEqual(\"Santa Claus\");\n const asEmployee2 = interfaceObj2.$as(Employee);\n\n expectTypeOf<typeof asEmployee2>().toEqualTypeOf<\n Osdk.Instance<Employee, never, \"fullName\" | \"office\", {}>\n >;\n\n expect(asEmployee2.fullName).toEqual(\"Santa Claus\");\n // @ts-expect-error\n expect(asEmployee2.employeeId).toBeUndefined();\n });\n\n it(\"interface links\", async () => {\n const objectSet = client(BarInterface).pivotTo(\"toFoo\");\n expectTypeOf<typeof objectSet>().toEqualTypeOf<\n ObjectSet<FooInterface, never>\n >;\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -55,7 +55,7 @@ describe("ObjectSet", () => {
55
55
  for (const emp of employees) {
56
56
  pks.add(emp.$primaryKey);
57
57
  }
58
- expect(pks.size).toEqual(6);
58
+ expect(pks.size).toEqual(7);
59
59
  expect(pks.has(stubData.employee1.employeeId)).toBe(true);
60
60
  expect(pks.has(stubData.employee2.employeeId)).toBe(true);
61
61
  expect(pks.has(stubData.employee3.employeeId)).toBe(true);
@@ -86,7 +86,7 @@ describe("ObjectSet", () => {
86
86
  for (const emp of employees) {
87
87
  pks.add(emp.$primaryKey);
88
88
  }
89
- expect(pks.size).toEqual(6);
89
+ expect(pks.size).toEqual(7);
90
90
  expect(pks.has(stubData.employee1.employeeId)).toBe(true);
91
91
  expect(pks.has(stubData.employee2.employeeId)).toBe(true);
92
92
  expect(pks.has(stubData.employee3.employeeId)).toBe(true);
@@ -106,7 +106,7 @@ describe("ObjectSet", () => {
106
106
  "employeeId": "asc"
107
107
  }
108
108
  });
109
- expect(employees.map(e => e.$primaryKey)).toEqual([50030, 50031, 50032, 50033, 50035, stubData.employee50050.employeeId]);
109
+ expect(employees.map(e => e.$primaryKey)).toEqual([20003, 50030, 50031, 50032, 50033, 50035, stubData.employee50050.employeeId]);
110
110
  });
111
111
  it("allows fetching by PK from a base object set - fetchOne", async () => {
112
112
  const employee = await client(Employee).fetchOne(stubData.employee1.employeeId);
@@ -223,7 +223,7 @@ describe("ObjectSet", () => {
223
223
  for (const emp of result.value.data) {
224
224
  pks.add(emp.$primaryKey);
225
225
  }
226
- expect(pks.size).toEqual(6);
226
+ expect(pks.size).toEqual(7);
227
227
  expect(pks.has(stubData.employee1.employeeId)).toBe(true);
228
228
  expect(pks.has(stubData.employee2.employeeId)).toBe(true);
229
229
  expect(pks.has(stubData.employee3.employeeId)).toBe(true);
@@ -391,7 +391,7 @@ describe("ObjectSet", () => {
391
391
  $includeRid: true
392
392
  };
393
393
  const result = k === "fetchPage" ? await client(Employee).fetchPage(opts) : (await client(Employee).fetchPageWithErrors(opts)).value;
394
- expect(result.data).toHaveLength(6);
394
+ expect(result.data).toHaveLength(7);
395
395
  expectTypeOf(result.data[0]).branded.toEqualTypeOf();
396
396
  });
397
397
  });
@@ -401,7 +401,7 @@ describe("ObjectSet", () => {
401
401
  $includeRid: false
402
402
  };
403
403
  const result = k === "fetchPage" ? await client(Employee).fetchPage(opts) : (await client(Employee).fetchPageWithErrors(opts)).value;
404
- expect(result.data).toHaveLength(6);
404
+ expect(result.data).toHaveLength(7);
405
405
  expectTypeOf(result.data[0]).branded.toEqualTypeOf();
406
406
  });
407
407
  });
@@ -787,6 +787,7 @@ describe("ObjectSet", () => {
787
787
  expectTypeOf().toEqualTypeOf();
788
788
  expectTypeOf().toEqualTypeOf();
789
789
  expectTypeOf().toEqualTypeOf();
790
+ expectTypeOf().toEqualTypeOf();
790
791
 
791
792
  // We don't have a proper definition that has
792
793
  // a non-null property on an interface so