@osdk/client 2.3.0-beta.1 → 2.3.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 (225) hide show
  1. package/CHANGELOG.md +114 -0
  2. package/build/browser/Client.js +1 -1
  3. package/build/browser/Client.js.map +1 -1
  4. package/build/browser/__unstable/createBulkLinksAsyncIterFactory.js +6 -1
  5. package/build/browser/__unstable/createBulkLinksAsyncIterFactory.js.map +1 -1
  6. package/build/browser/actions/ActionValidationError.js.map +1 -1
  7. package/build/browser/actions/applyAction.js +9 -8
  8. package/build/browser/actions/applyAction.js.map +1 -1
  9. package/build/browser/createClient.js +8 -1
  10. package/build/browser/createClient.js.map +1 -1
  11. package/build/browser/createMediaReferenceProperty.js +7 -1
  12. package/build/browser/createMediaReferenceProperty.js.map +1 -1
  13. package/build/browser/derivedProperties/derivedPropertyRuntimeMetadata.js +2 -0
  14. package/build/browser/derivedProperties/derivedPropertyRuntimeMetadata.js.map +1 -0
  15. package/build/browser/intellisense.test.helpers/orderBySuggestionIsRight.js +30 -0
  16. package/build/browser/intellisense.test.helpers/orderBySuggestionIsRight.js.map +1 -0
  17. package/build/browser/intellisense.test.js +22 -0
  18. package/build/browser/intellisense.test.js.map +1 -1
  19. package/build/browser/internal/conversions/modernToLegacyWhereClause.test.js +57 -47
  20. package/build/browser/internal/conversions/modernToLegacyWhereClause.test.js.map +1 -1
  21. package/build/browser/logger/BaseLogger.js +1 -1
  22. package/build/browser/logger/BaseLogger.js.map +1 -1
  23. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.test.js +27 -12
  24. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.test.js.map +1 -1
  25. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js +22 -9
  26. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  27. package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
  28. package/build/browser/object/fetchPage.js +9 -7
  29. package/build/browser/object/fetchPage.js.map +1 -1
  30. package/build/browser/object/media.test.js +20 -1
  31. package/build/browser/object/media.test.js.map +1 -1
  32. package/build/browser/object/mediaUpload.js +3 -0
  33. package/build/browser/object/mediaUpload.js.map +1 -1
  34. package/build/browser/object/object.test.js +6 -2
  35. package/build/browser/object/object.test.js.map +1 -1
  36. package/build/browser/objectSet/ObjectSet.test.js +7 -0
  37. package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
  38. package/build/browser/objectSet/createObjectSet.js +1 -1
  39. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  40. package/build/browser/observable/ObservableClient.js +17 -1
  41. package/build/browser/observable/ObservableClient.js.map +1 -1
  42. package/build/browser/observable/OptimisticBuilder.js.map +1 -1
  43. package/build/browser/observable/internal/ActionApplication.js +31 -30
  44. package/build/browser/observable/internal/ActionApplication.js.map +1 -1
  45. package/build/browser/observable/internal/Changes.js +5 -1
  46. package/build/browser/observable/internal/Changes.js.map +1 -1
  47. package/build/browser/observable/internal/ListQuery.js +24 -22
  48. package/build/browser/observable/internal/ListQuery.js.map +1 -1
  49. package/build/browser/observable/internal/ObjectQuery.js +30 -1
  50. package/build/browser/observable/internal/ObjectQuery.js.map +1 -1
  51. package/build/browser/observable/internal/ObservableClientImpl.js +1 -2
  52. package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
  53. package/build/browser/observable/internal/OptimisticJob.js +8 -0
  54. package/build/browser/observable/internal/OptimisticJob.js.map +1 -1
  55. package/build/browser/observable/internal/Query.js +2 -2
  56. package/build/browser/observable/internal/Query.js.map +1 -1
  57. package/build/browser/observable/internal/Store.js +4 -0
  58. package/build/browser/observable/internal/Store.js.map +1 -1
  59. package/build/browser/observable/internal/Store.test.js +45 -5
  60. package/build/browser/observable/internal/Store.test.js.map +1 -1
  61. package/build/browser/observable/internal/testUtils.js.map +1 -1
  62. package/build/browser/observable/internal/tombstone.js +18 -0
  63. package/build/browser/observable/internal/tombstone.js.map +1 -0
  64. package/build/browser/public/internal.js +1 -0
  65. package/build/browser/public/internal.js.map +1 -1
  66. package/build/browser/public-utils/hydrateObjectSetFromObjectRids.js +39 -0
  67. package/build/browser/public-utils/hydrateObjectSetFromObjectRids.js.map +1 -0
  68. package/build/browser/queries/applyQuery.js +8 -4
  69. package/build/browser/queries/applyQuery.js.map +1 -1
  70. package/build/browser/tsserver.js +1 -0
  71. package/build/browser/tsserver.js.map +1 -1
  72. package/build/browser/util/UserAgent.js +2 -1
  73. package/build/browser/util/UserAgent.js.map +1 -1
  74. package/build/browser/util/extractRdpDefinition.js +15 -2
  75. package/build/browser/util/extractRdpDefinition.js.map +1 -1
  76. package/build/browser/util/extractRdpDefinition.test.js +87 -5
  77. package/build/browser/util/extractRdpDefinition.test.js.map +1 -1
  78. package/build/browser/util/toDataValue.js +20 -10
  79. package/build/browser/util/toDataValue.js.map +1 -1
  80. package/build/browser/util/toDataValue.test.js +50 -11
  81. package/build/browser/util/toDataValue.test.js.map +1 -1
  82. package/build/cjs/chunk-VZ57PNLC.cjs +1808 -0
  83. package/build/cjs/chunk-VZ57PNLC.cjs.map +1 -0
  84. package/build/cjs/{chunk-FKI2LO2O.cjs → chunk-YGJRXE4F.cjs} +652 -43
  85. package/build/cjs/chunk-YGJRXE4F.cjs.map +1 -0
  86. package/build/cjs/index.cjs +16 -1747
  87. package/build/cjs/index.cjs.map +1 -1
  88. package/build/cjs/index.d.cts +4 -3
  89. package/build/cjs/public/internal.cjs +22 -8
  90. package/build/cjs/public/internal.cjs.map +1 -1
  91. package/build/cjs/public/internal.d.cts +10 -1
  92. package/build/cjs/public/unstable-do-not-use.cjs +182 -123
  93. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  94. package/build/cjs/public/unstable-do-not-use.d.cts +2 -1
  95. package/build/esm/Client.js +1 -1
  96. package/build/esm/Client.js.map +1 -1
  97. package/build/esm/__unstable/createBulkLinksAsyncIterFactory.js +6 -1
  98. package/build/esm/__unstable/createBulkLinksAsyncIterFactory.js.map +1 -1
  99. package/build/esm/actions/ActionValidationError.js.map +1 -1
  100. package/build/esm/actions/applyAction.js +9 -8
  101. package/build/esm/actions/applyAction.js.map +1 -1
  102. package/build/esm/createClient.js +8 -1
  103. package/build/esm/createClient.js.map +1 -1
  104. package/build/esm/createMediaReferenceProperty.js +7 -1
  105. package/build/esm/createMediaReferenceProperty.js.map +1 -1
  106. package/build/esm/derivedProperties/derivedPropertyRuntimeMetadata.js +2 -0
  107. package/build/esm/derivedProperties/derivedPropertyRuntimeMetadata.js.map +1 -0
  108. package/build/esm/intellisense.test.helpers/orderBySuggestionIsRight.js +30 -0
  109. package/build/esm/intellisense.test.helpers/orderBySuggestionIsRight.js.map +1 -0
  110. package/build/esm/intellisense.test.js +22 -0
  111. package/build/esm/intellisense.test.js.map +1 -1
  112. package/build/esm/internal/conversions/modernToLegacyWhereClause.test.js +57 -47
  113. package/build/esm/internal/conversions/modernToLegacyWhereClause.test.js.map +1 -1
  114. package/build/esm/logger/BaseLogger.js +1 -1
  115. package/build/esm/logger/BaseLogger.js.map +1 -1
  116. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.test.js +27 -12
  117. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.test.js.map +1 -1
  118. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js +22 -9
  119. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  120. package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
  121. package/build/esm/object/fetchPage.js +9 -7
  122. package/build/esm/object/fetchPage.js.map +1 -1
  123. package/build/esm/object/media.test.js +20 -1
  124. package/build/esm/object/media.test.js.map +1 -1
  125. package/build/esm/object/mediaUpload.js +3 -0
  126. package/build/esm/object/mediaUpload.js.map +1 -1
  127. package/build/esm/object/object.test.js +6 -2
  128. package/build/esm/object/object.test.js.map +1 -1
  129. package/build/esm/objectSet/ObjectSet.test.js +7 -0
  130. package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
  131. package/build/esm/objectSet/createObjectSet.js +1 -1
  132. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  133. package/build/esm/observable/ObservableClient.js +17 -1
  134. package/build/esm/observable/ObservableClient.js.map +1 -1
  135. package/build/esm/observable/OptimisticBuilder.js.map +1 -1
  136. package/build/esm/observable/internal/ActionApplication.js +31 -30
  137. package/build/esm/observable/internal/ActionApplication.js.map +1 -1
  138. package/build/esm/observable/internal/Changes.js +5 -1
  139. package/build/esm/observable/internal/Changes.js.map +1 -1
  140. package/build/esm/observable/internal/ListQuery.js +24 -22
  141. package/build/esm/observable/internal/ListQuery.js.map +1 -1
  142. package/build/esm/observable/internal/ObjectQuery.js +30 -1
  143. package/build/esm/observable/internal/ObjectQuery.js.map +1 -1
  144. package/build/esm/observable/internal/ObservableClientImpl.js +1 -2
  145. package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
  146. package/build/esm/observable/internal/OptimisticJob.js +8 -0
  147. package/build/esm/observable/internal/OptimisticJob.js.map +1 -1
  148. package/build/esm/observable/internal/Query.js +2 -2
  149. package/build/esm/observable/internal/Query.js.map +1 -1
  150. package/build/esm/observable/internal/Store.js +4 -0
  151. package/build/esm/observable/internal/Store.js.map +1 -1
  152. package/build/esm/observable/internal/Store.test.js +45 -5
  153. package/build/esm/observable/internal/Store.test.js.map +1 -1
  154. package/build/esm/observable/internal/testUtils.js.map +1 -1
  155. package/build/esm/observable/internal/tombstone.js +18 -0
  156. package/build/esm/observable/internal/tombstone.js.map +1 -0
  157. package/build/esm/public/internal.js +1 -0
  158. package/build/esm/public/internal.js.map +1 -1
  159. package/build/esm/public-utils/hydrateObjectSetFromObjectRids.js +39 -0
  160. package/build/esm/public-utils/hydrateObjectSetFromObjectRids.js.map +1 -0
  161. package/build/esm/queries/applyQuery.js +8 -4
  162. package/build/esm/queries/applyQuery.js.map +1 -1
  163. package/build/esm/tsserver.js +1 -0
  164. package/build/esm/tsserver.js.map +1 -1
  165. package/build/esm/util/UserAgent.js +2 -1
  166. package/build/esm/util/UserAgent.js.map +1 -1
  167. package/build/esm/util/extractRdpDefinition.js +15 -2
  168. package/build/esm/util/extractRdpDefinition.js.map +1 -1
  169. package/build/esm/util/extractRdpDefinition.test.js +87 -5
  170. package/build/esm/util/extractRdpDefinition.test.js.map +1 -1
  171. package/build/esm/util/toDataValue.js +20 -10
  172. package/build/esm/util/toDataValue.js.map +1 -1
  173. package/build/esm/util/toDataValue.test.js +50 -11
  174. package/build/esm/util/toDataValue.test.js.map +1 -1
  175. package/build/types/Client.d.ts +1 -1
  176. package/build/types/actions/ActionValidationError.d.ts +1 -1
  177. package/build/types/actions/ActionValidationError.d.ts.map +1 -1
  178. package/build/types/actions/applyAction.d.ts.map +1 -1
  179. package/build/types/createClient.d.ts.map +1 -1
  180. package/build/types/createMediaReferenceProperty.d.ts +4 -1
  181. package/build/types/createMediaReferenceProperty.d.ts.map +1 -1
  182. package/build/types/derivedProperties/derivedPropertyRuntimeMetadata.d.ts +6 -0
  183. package/build/types/derivedProperties/derivedPropertyRuntimeMetadata.d.ts.map +1 -0
  184. package/build/types/intellisense.test.helpers/orderBySuggestionIsRight.d.ts +1 -0
  185. package/build/types/intellisense.test.helpers/orderBySuggestionIsRight.d.ts.map +1 -0
  186. package/build/types/object/convertWireToOsdkObjects.d.ts +5 -4
  187. package/build/types/object/convertWireToOsdkObjects.d.ts.map +1 -1
  188. package/build/types/object/mediaUpload.d.ts +2 -1
  189. package/build/types/object/mediaUpload.d.ts.map +1 -1
  190. package/build/types/object/object.test.d.ts.map +1 -1
  191. package/build/types/observable/ObservableClient.d.ts +2 -2
  192. package/build/types/observable/ObservableClient.d.ts.map +1 -1
  193. package/build/types/observable/OptimisticBuilder.d.ts +1 -0
  194. package/build/types/observable/OptimisticBuilder.d.ts.map +1 -1
  195. package/build/types/observable/internal/ActionApplication.d.ts +1 -1
  196. package/build/types/observable/internal/ActionApplication.d.ts.map +1 -1
  197. package/build/types/observable/internal/Changes.d.ts +2 -0
  198. package/build/types/observable/internal/Changes.d.ts.map +1 -1
  199. package/build/types/observable/internal/ListQuery.d.ts.map +1 -1
  200. package/build/types/observable/internal/ObjectQuery.d.ts +1 -0
  201. package/build/types/observable/internal/ObjectQuery.d.ts.map +1 -1
  202. package/build/types/observable/internal/OptimisticJob.d.ts.map +1 -1
  203. package/build/types/observable/internal/Store.d.ts +2 -1
  204. package/build/types/observable/internal/Store.d.ts.map +1 -1
  205. package/build/types/observable/internal/testUtils.d.ts +1 -1
  206. package/build/types/observable/internal/testUtils.d.ts.map +1 -1
  207. package/build/types/observable/internal/tombstone.d.ts +1 -0
  208. package/build/types/observable/internal/tombstone.d.ts.map +1 -0
  209. package/build/types/public/internal.d.ts +1 -0
  210. package/build/types/public/internal.d.ts.map +1 -1
  211. package/build/types/public-utils/hydrateObjectSetFromObjectRids.d.ts +10 -0
  212. package/build/types/public-utils/hydrateObjectSetFromObjectRids.d.ts.map +1 -0
  213. package/build/types/queries/applyQuery.d.ts.map +1 -1
  214. package/build/types/tsserver.d.ts +1 -0
  215. package/build/types/tsserver.d.ts.map +1 -1
  216. package/build/types/util/UserAgent.d.ts +1 -0
  217. package/build/types/util/UserAgent.d.ts.map +1 -1
  218. package/build/types/util/extractRdpDefinition.d.ts +2 -2
  219. package/build/types/util/extractRdpDefinition.d.ts.map +1 -1
  220. package/package.json +11 -11
  221. package/build/cjs/chunk-FKI2LO2O.cjs.map +0 -1
  222. package/build/cjs/chunk-T4NIFYZS.cjs +0 -14
  223. package/build/cjs/chunk-T4NIFYZS.cjs.map +0 -1
  224. package/build/cjs/chunk-W5PFESFR.cjs +0 -604
  225. package/build/cjs/chunk-W5PFESFR.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"createOsdkInterface.test.js","names":["describe","expect","it","InterfaceDefinitions","createOsdkInterface","ObjectDefRef","iface","apiName","displayName","interfaceMap","inverseInterfaceMap","links","pluralDisplayName","primaryKeyApiName","primaryKeyType","properties","type","titleProperty","rid","status","implements","Object","keys","toMatchInlineSnapshot","asdf","toBe","JSON","stringify","undefined"],"sources":["createOsdkInterface.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 { describe, expect, it } from \"vitest\";\nimport {\n type FetchedObjectTypeDefinition,\n InterfaceDefinitions,\n} from \"../../ontology/OntologyProvider.js\";\nimport { createOsdkInterface } from \"./createOsdkInterface.js\";\nimport { ObjectDefRef } from \"./InternalSymbols.js\";\n\ndescribe(createOsdkInterface, () => {\n it(\"works in the normal case\", () => {\n const underlying = {\n \"foo\": \"hi mom\",\n\n [ObjectDefRef]: {\n [InterfaceDefinitions]: {},\n apiName: \"Obj\",\n displayName: \"\",\n interfaceMap: {\n \"IFoo\": {\n \"asdf\": \"foo\",\n },\n },\n inverseInterfaceMap: {},\n links: {},\n pluralDisplayName: \"\",\n primaryKeyApiName: \"\",\n primaryKeyType: \"string\",\n properties: {\n \"foo\": {\n type: \"string\",\n },\n },\n type: \"object\",\n titleProperty: \"foo\",\n rid: \"\",\n status: \"ACTIVE\",\n } satisfies FetchedObjectTypeDefinition,\n };\n\n const iface = createOsdkInterface(underlying as any, {\n \"apiName\": \"IFoo\",\n displayName: \"\",\n links: {},\n properties: {\n \"asdf\": {\n type: \"string\",\n },\n },\n rid: \"\",\n type: \"interface\",\n implements: [],\n });\n\n expect(Object.keys(iface)).toMatchInlineSnapshot(`\n [\n \"$apiName\",\n \"asdf\",\n ]\n `);\n\n expect((iface as any).asdf).toBe(\"hi mom\");\n\n expect(JSON.stringify(iface, undefined, 2)).toMatchInlineSnapshot(`\n \"{\n \"$apiName\": \"IFoo\",\n \"asdf\": \"hi mom\"\n }\"\n `);\n });\n\n it(\"properly maps apiNamespace\", () => {\n const underlying = {\n \"foo\": \"hi mom\",\n\n [ObjectDefRef]: {\n [InterfaceDefinitions]: {},\n apiName: \"Obj\",\n displayName: \"\",\n interfaceMap: {\n \"a.IFoo\": {\n \"a.asdf\": \"foo\",\n },\n },\n inverseInterfaceMap: {},\n links: {},\n pluralDisplayName: \"\",\n primaryKeyApiName: \"\",\n primaryKeyType: \"string\",\n properties: {\n \"foo\": {\n type: \"string\",\n },\n },\n type: \"object\",\n titleProperty: \"foo\",\n rid: \"\",\n status: \"ACTIVE\",\n } satisfies FetchedObjectTypeDefinition,\n };\n\n const iface = createOsdkInterface(underlying as any, {\n \"apiName\": \"a.IFoo\",\n displayName: \"\",\n links: {},\n properties: {\n \"a.asdf\": {\n type: \"string\",\n },\n },\n rid: \"\",\n type: \"interface\",\n implements: [],\n });\n\n expect(Object.keys(iface)).toMatchInlineSnapshot(`\n [\n \"$apiName\",\n \"asdf\",\n ]\n `);\n\n expect((iface as any).asdf).toBe(\"hi mom\");\n\n expect(JSON.stringify(iface, undefined, 2)).toMatchInlineSnapshot(`\n \"{\n \"$apiName\": \"a.IFoo\",\n \"asdf\": \"hi mom\"\n }\"\n `);\n });\n\n it(\"works with mixed namespaces\", () => {\n const underlying = {\n \"foo\": \"hi mom\",\n\n [ObjectDefRef]: {\n [InterfaceDefinitions]: {},\n apiName: \"Obj\",\n displayName: \"\",\n interfaceMap: {\n \"a.IFoo\": {\n \"b.asdf\": \"foo\",\n },\n },\n inverseInterfaceMap: {},\n links: {},\n pluralDisplayName: \"\",\n primaryKeyApiName: \"\",\n primaryKeyType: \"string\",\n properties: {\n \"foo\": {\n type: \"string\",\n },\n },\n type: \"object\",\n titleProperty: \"foo\",\n rid: \"\",\n status: \"ACTIVE\",\n } satisfies FetchedObjectTypeDefinition,\n };\n\n const iface = createOsdkInterface(underlying as any, {\n \"apiName\": \"a.IFoo\",\n displayName: \"\",\n links: {},\n properties: {\n \"b.asdf\": {\n type: \"string\",\n },\n },\n rid: \"\",\n type: \"interface\",\n implements: [],\n });\n\n expect(Object.keys(iface)).toMatchInlineSnapshot(`\n [\n \"$apiName\",\n \"b.asdf\",\n ]\n `);\n\n expect((iface as any)[\"b.asdf\"]).toBe(\"hi mom\");\n\n expect(JSON.stringify(iface, undefined, 2)).toMatchInlineSnapshot(`\n \"{\n \"$apiName\": \"a.IFoo\",\n \"b.asdf\": \"hi mom\"\n }\"\n `);\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createOsdkInterface.test.js","names":["describe","expect","it","InterfaceDefinitions","createOsdkInterface","ObjectDefRef","underlying","apiName","displayName","interfaceMap","inverseInterfaceMap","links","pluralDisplayName","primaryKeyApiName","primaryKeyType","properties","type","titleProperty","rid","status","icon","undefined","visibility","description","iface","implements","Object","keys","toMatchInlineSnapshot","asdf","toBe","JSON","stringify"],"sources":["createOsdkInterface.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 { describe, expect, it } from \"vitest\";\nimport {\n type FetchedObjectTypeDefinition,\n InterfaceDefinitions,\n} from \"../../ontology/OntologyProvider.js\";\nimport { createOsdkInterface } from \"./createOsdkInterface.js\";\nimport { ObjectDefRef } from \"./InternalSymbols.js\";\n\ndescribe(createOsdkInterface, () => {\n it(\"works in the normal case\", () => {\n const underlying = {\n \"foo\": \"hi mom\",\n\n [ObjectDefRef]: {\n [InterfaceDefinitions]: {},\n apiName: \"Obj\",\n displayName: \"\",\n interfaceMap: {\n \"IFoo\": {\n \"asdf\": \"foo\",\n },\n },\n inverseInterfaceMap: {},\n links: {},\n pluralDisplayName: \"\",\n primaryKeyApiName: \"\",\n primaryKeyType: \"string\",\n properties: {\n \"foo\": {\n type: \"string\",\n },\n },\n type: \"object\",\n titleProperty: \"foo\",\n rid: \"\",\n status: \"ACTIVE\",\n icon: undefined,\n visibility: undefined,\n description: undefined,\n } satisfies FetchedObjectTypeDefinition,\n };\n\n const iface = createOsdkInterface(underlying as any, {\n \"apiName\": \"IFoo\",\n displayName: \"\",\n links: {},\n properties: {\n \"asdf\": {\n type: \"string\",\n },\n },\n rid: \"\",\n type: \"interface\",\n implements: [],\n description: undefined,\n });\n\n expect(Object.keys(iface)).toMatchInlineSnapshot(`\n [\n \"$apiName\",\n \"asdf\",\n ]\n `);\n\n expect((iface as any).asdf).toBe(\"hi mom\");\n\n expect(JSON.stringify(iface, undefined, 2)).toMatchInlineSnapshot(`\n \"{\n \"$apiName\": \"IFoo\",\n \"asdf\": \"hi mom\"\n }\"\n `);\n });\n\n it(\"properly maps apiNamespace\", () => {\n const underlying = {\n \"foo\": \"hi mom\",\n\n [ObjectDefRef]: {\n [InterfaceDefinitions]: {},\n apiName: \"Obj\",\n displayName: \"\",\n interfaceMap: {\n \"a.IFoo\": {\n \"a.asdf\": \"foo\",\n },\n },\n inverseInterfaceMap: {},\n links: {},\n pluralDisplayName: \"\",\n primaryKeyApiName: \"\",\n primaryKeyType: \"string\",\n properties: {\n \"foo\": {\n type: \"string\",\n },\n },\n type: \"object\",\n titleProperty: \"foo\",\n rid: \"\",\n status: \"ACTIVE\",\n icon: undefined,\n visibility: undefined,\n description: undefined,\n } satisfies FetchedObjectTypeDefinition,\n };\n\n const iface = createOsdkInterface(underlying as any, {\n \"apiName\": \"a.IFoo\",\n displayName: \"\",\n links: {},\n properties: {\n \"a.asdf\": {\n type: \"string\",\n },\n },\n rid: \"\",\n type: \"interface\",\n implements: [],\n description: undefined,\n });\n\n expect(Object.keys(iface)).toMatchInlineSnapshot(`\n [\n \"$apiName\",\n \"asdf\",\n ]\n `);\n\n expect((iface as any).asdf).toBe(\"hi mom\");\n\n expect(JSON.stringify(iface, undefined, 2)).toMatchInlineSnapshot(`\n \"{\n \"$apiName\": \"a.IFoo\",\n \"asdf\": \"hi mom\"\n }\"\n `);\n });\n\n it(\"works with mixed namespaces\", () => {\n const underlying = {\n \"foo\": \"hi mom\",\n\n [ObjectDefRef]: {\n [InterfaceDefinitions]: {},\n apiName: \"Obj\",\n displayName: \"\",\n interfaceMap: {\n \"a.IFoo\": {\n \"b.asdf\": \"foo\",\n },\n },\n inverseInterfaceMap: {},\n links: {},\n pluralDisplayName: \"\",\n primaryKeyApiName: \"\",\n primaryKeyType: \"string\",\n properties: {\n \"foo\": {\n type: \"string\",\n },\n },\n type: \"object\",\n titleProperty: \"foo\",\n rid: \"\",\n status: \"ACTIVE\",\n icon: undefined,\n visibility: undefined,\n description: undefined,\n } satisfies FetchedObjectTypeDefinition,\n };\n\n const iface = createOsdkInterface(underlying as any, {\n \"apiName\": \"a.IFoo\",\n displayName: \"\",\n links: {},\n properties: {\n \"b.asdf\": {\n type: \"string\",\n },\n },\n rid: \"\",\n type: \"interface\",\n implements: [],\n description: undefined,\n });\n\n expect(Object.keys(iface)).toMatchInlineSnapshot(`\n [\n \"$apiName\",\n \"b.asdf\",\n ]\n `);\n\n expect((iface as any)[\"b.asdf\"]).toBe(\"hi mom\");\n\n expect(JSON.stringify(iface, undefined, 2)).toMatchInlineSnapshot(`\n \"{\n \"$apiName\": \"a.IFoo\",\n \"b.asdf\": \"hi mom\"\n }\"\n `);\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -99,20 +99,32 @@ export function createOsdkObject(client, objectDef, simpleOsdkProperties, derive
99
99
  for (const propKey of Object.keys(rawObj)) {
100
100
  if (propKey in objectDef.properties && typeof objectDef.properties[propKey].type === "string" && specialPropertyTypes.has(objectDef.properties[propKey].type)) {
101
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") {
102
+ } else if (propKey in derivedPropertyTypeByName) {
103
+ rawObj[propKey] = modifyRdpProperties(client, derivedPropertyTypeByName, rawObj[propKey], propKey);
104
+ }
105
+ }
106
+ return Object.freeze(rawObj);
107
+ }
108
+ function modifyRdpProperties(client, derivedPropertyTypeByName, rawValue, propKey) {
109
+ if (derivedPropertyTypeByName[propKey].definition.type === "selection" && derivedPropertyTypeByName[propKey].definition.operation.type === "count") {
110
+ const num = Number(rawValue);
111
+ !Number.isSafeInteger(num) ? process.env.NODE_ENV !== "production" ? invariant(false, "Count aggregation for derived property " + propKey + " returned a value larger than safe integer.") : invariant(false) : void 0;
112
+ return num;
113
+ } // Selected or collected properties need to be deserialized specially when constructed with RDP
114
+ else if (derivedPropertyTypeByName[propKey].selectedOrCollectedPropertyType != null && typeof derivedPropertyTypeByName[propKey].selectedOrCollectedPropertyType.type === "string" && specialPropertyTypes.has(derivedPropertyTypeByName[propKey].selectedOrCollectedPropertyType.type)) {
115
+ switch (derivedPropertyTypeByName[propKey].selectedOrCollectedPropertyType?.type) {
116
+ case "attachment":
105
117
  if (Array.isArray(rawValue)) {
106
- rawObj[propKey] = rawValue.map(a => hydrateAttachmentFromRidInternal(client, a.rid));
118
+ return rawValue.map(a => hydrateAttachmentFromRidInternal(client, a.rid));
107
119
  } else {
108
- rawObj[propKey] = hydrateAttachmentFromRidInternal(client, rawValue.rid);
120
+ return hydrateAttachmentFromRidInternal(client, rawValue.rid);
109
121
  }
110
- } else {
122
+ break;
123
+ default:
111
124
  process.env.NODE_ENV !== "production" ? invariant(false, "Derived property aggregations for Timeseries and Media are not supported") : invariant(false);
112
- }
113
125
  }
114
126
  }
115
- return Object.freeze(rawObj);
127
+ return rawValue;
116
128
  }
117
129
  function createSpecialProperty(client, objectDef, rawObject, p) {
118
130
  const rawValue = rawObject[p];
@@ -143,7 +155,8 @@ function createSpecialProperty(client, objectDef, rawObject, p) {
143
155
  client,
144
156
  objectApiName: objectDef.apiName,
145
157
  primaryKey: rawObject[objectDef.primaryKeyApiName],
146
- propertyName: p
158
+ propertyName: p,
159
+ mediaReference: rawValue
147
160
  });
148
161
  }
149
162
  }
@@ -1 +1 @@
1
- {"version":3,"file":"createOsdkObject.js","names":["invariant","GeotimeSeriesPropertyImpl","MediaReferencePropertyImpl","TimeSeriesPropertyImpl","hydrateAttachmentFromRidInternal","createObjectSpecifierFromPrimaryKey","get$as","get$link","ClientRef","ObjectDefRef","UnderlyingOsdkObject","specialPropertyTypes","Set","basePropDefs","get","value","update","rawObj","def","createOsdkObject","primaryKeyApiName","Error","apiName","titleProperty","$title","newObject","$primaryKey","enumerable","client","objectDef","simpleOsdkProperties","derivedPropertyTypeByName","Object","defineProperties","propKey","keys","properties","type","has","createSpecialProperty","rawValue","Array","isArray","map","a","rid","process","env","NODE_ENV","freeze","rawObject","p","propDef","time","timestamp","coordinates","position","undefined","objectApiName","primaryKey","propertyName"],"sources":["createOsdkObject.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 { ObjectMetadata } from \"@osdk/api\";\nimport type { Attachment, ReferenceValue } from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport { GeotimeSeriesPropertyImpl } from \"../../createGeotimeSeriesProperty.js\";\nimport { MediaReferencePropertyImpl } from \"../../createMediaReferenceProperty.js\";\nimport { TimeSeriesPropertyImpl } from \"../../createTimeseriesProperty.js\";\nimport type { MinimalClient } from \"../../MinimalClientContext.js\";\nimport type { FetchedObjectTypeDefinition } from \"../../ontology/OntologyProvider.js\";\nimport { hydrateAttachmentFromRidInternal } from \"../../public-utils/hydrateAttachmentFromRid.js\";\nimport { createObjectSpecifierFromPrimaryKey } from \"../../util/objectSpecifierUtils.js\";\nimport type { SimpleOsdkProperties } from \"../SimpleOsdkProperties.js\";\nimport { get$as } from \"./getDollarAs.js\";\nimport { get$link } from \"./getDollarLink.js\";\nimport {\n ClientRef,\n ObjectDefRef,\n UnderlyingOsdkObject,\n} from \"./InternalSymbols.js\";\nimport type { ObjectHolder } from \"./ObjectHolder.js\";\n\nconst specialPropertyTypes = new Set(\n [\n \"attachment\",\n \"geotimeSeriesReference\",\n \"mediaReference\",\n \"numericTimeseries\",\n \"stringTimeseries\",\n \"sensorTimeseries\",\n ],\n);\n\n// kept separate so we are not redefining these functions\n// every time an object is created.\nconst basePropDefs = {\n \"$as\": {\n get: function(this: ObjectHolder) {\n return get$as(this[ObjectDefRef]);\n },\n },\n \"$link\": {\n get: function(this: ObjectHolder) {\n return get$link(this);\n },\n },\n \"$clone\": {\n value: function(\n this: ObjectHolder,\n update: Record<string, any> | undefined,\n ) {\n // I think `rawObj` is the same thing as `this` and can be removed?\n const rawObj = this[UnderlyingOsdkObject] as SimpleOsdkProperties;\n const def = this[ObjectDefRef];\n\n if (update == null) {\n return createOsdkObject(this[ClientRef], def, { ...rawObj });\n }\n\n if (\n def.primaryKeyApiName in update\n && rawObj[def.primaryKeyApiName] !== update[def.primaryKeyApiName]\n ) {\n throw new Error(\n `Cannot update ${def.apiName} object with differing primary key values `,\n );\n }\n\n if (def.titleProperty in update && !(\"$title\" in update)) {\n update.$title = update[def.titleProperty];\n }\n\n const newObject = { ...this[UnderlyingOsdkObject], ...update };\n return createOsdkObject(this[ClientRef], this[ObjectDefRef], newObject);\n },\n },\n \"$objectSpecifier\": {\n get: function(this: ObjectHolder) {\n const rawObj = this[UnderlyingOsdkObject];\n return createObjectSpecifierFromPrimaryKey(\n this[ObjectDefRef],\n rawObj.$primaryKey,\n );\n },\n enumerable: true,\n },\n};\n\n/**\n * @internal\n * @param client\n * @param objectDef\n * @param simpleOsdkProperties\n */\nexport function createOsdkObject(\n client: MinimalClient,\n objectDef: FetchedObjectTypeDefinition,\n simpleOsdkProperties: SimpleOsdkProperties,\n derivedPropertyTypeByName: Record<string, ObjectMetadata.Property> = {},\n): ObjectHolder {\n // updates the object's \"hidden class/map\".\n const rawObj = simpleOsdkProperties as ObjectHolder;\n Object.defineProperties(\n rawObj,\n {\n [UnderlyingOsdkObject]: {\n enumerable: false,\n value: simpleOsdkProperties,\n },\n [ObjectDefRef]: { value: objectDef, enumerable: false },\n [ClientRef]: { value: client, enumerable: false },\n ...basePropDefs,\n } satisfies Record<keyof ObjectHolder, PropertyDescriptor>,\n );\n\n // Assign the special values\n for (const propKey of Object.keys(rawObj)) {\n if (\n propKey in objectDef.properties\n && typeof (objectDef.properties[propKey].type) === \"string\"\n && specialPropertyTypes.has(objectDef.properties[propKey].type)\n ) {\n rawObj[propKey] = createSpecialProperty(\n client,\n objectDef,\n rawObj,\n propKey,\n );\n } else if (\n propKey in derivedPropertyTypeByName\n && typeof (derivedPropertyTypeByName[propKey].type) === \"string\"\n && specialPropertyTypes.has(derivedPropertyTypeByName[propKey].type)\n ) {\n const rawValue = rawObj[propKey as any];\n if (derivedPropertyTypeByName[propKey].type === \"attachment\") {\n if (Array.isArray(rawValue)) {\n rawObj[propKey] = rawValue.map(a =>\n hydrateAttachmentFromRidInternal(client, a.rid)\n );\n } else {\n rawObj[propKey] = hydrateAttachmentFromRidInternal(\n client,\n (rawValue as Attachment).rid,\n );\n }\n } else {\n invariant(\n false,\n \"Derived property aggregations for Timeseries and Media are not supported\",\n );\n }\n }\n }\n\n return Object.freeze(rawObj);\n}\n\nfunction createSpecialProperty(\n client: MinimalClient,\n objectDef: FetchedObjectTypeDefinition,\n rawObject: ObjectHolder,\n p: keyof typeof rawObject & string | symbol,\n) {\n const rawValue = rawObject[p as any];\n const propDef = objectDef.properties[p as any];\n if (process.env.NODE_ENV !== \"production\") {\n invariant(\n propDef != null && typeof propDef.type === \"string\"\n && specialPropertyTypes.has(propDef.type),\n );\n }\n if (propDef.type === \"attachment\") {\n if (Array.isArray(rawValue)) {\n return rawValue.map(a => hydrateAttachmentFromRidInternal(client, a.rid));\n }\n return hydrateAttachmentFromRidInternal(\n client,\n (rawValue as Attachment).rid,\n );\n }\n\n if (\n propDef.type === \"numericTimeseries\"\n || propDef.type === \"stringTimeseries\"\n || propDef.type === \"sensorTimeseries\"\n ) {\n return new TimeSeriesPropertyImpl<\n (typeof propDef)[\"type\"] extends \"numericTimeseries\" ? number\n : (typeof propDef)[\"type\"] extends \"stringTimeseries\" ? string\n : number | string\n >(\n client,\n objectDef.apiName,\n rawObject[objectDef.primaryKeyApiName as string],\n p as string,\n );\n }\n\n if (propDef.type === \"geotimeSeriesReference\") {\n return new GeotimeSeriesPropertyImpl<GeoJSON.Point>(\n client,\n objectDef.apiName,\n rawObject[objectDef.primaryKeyApiName as string],\n p as string,\n (rawValue as ReferenceValue).type === \"geotimeSeriesValue\"\n ? {\n time: (rawValue as ReferenceValue).timestamp,\n value: {\n type: \"Point\",\n coordinates: (rawValue as ReferenceValue).position,\n },\n }\n : undefined,\n );\n }\n if (propDef.type === \"mediaReference\") {\n return new MediaReferencePropertyImpl({\n client,\n objectApiName: objectDef.apiName,\n primaryKey: rawObject[objectDef.primaryKeyApiName as string],\n propertyName: p as string,\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createOsdkObject.js","names":["invariant","GeotimeSeriesPropertyImpl","MediaReferencePropertyImpl","TimeSeriesPropertyImpl","hydrateAttachmentFromRidInternal","createObjectSpecifierFromPrimaryKey","get$as","get$link","ClientRef","ObjectDefRef","UnderlyingOsdkObject","specialPropertyTypes","Set","basePropDefs","get","value","update","rawObj","def","createOsdkObject","primaryKeyApiName","Error","apiName","titleProperty","$title","newObject","$primaryKey","enumerable","client","objectDef","simpleOsdkProperties","derivedPropertyTypeByName","Object","defineProperties","propKey","keys","properties","type","has","createSpecialProperty","modifyRdpProperties","freeze","rawValue","definition","operation","num","Number","isSafeInteger","process","env","NODE_ENV","selectedOrCollectedPropertyType","Array","isArray","map","a","rid","rawObject","p","propDef","time","timestamp","coordinates","position","undefined","objectApiName","primaryKey","propertyName","mediaReference"],"sources":["createOsdkObject.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 { MediaReference } from \"@osdk/foundry.core\";\nimport type { Attachment, ReferenceValue } from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport { GeotimeSeriesPropertyImpl } from \"../../createGeotimeSeriesProperty.js\";\nimport { MediaReferencePropertyImpl } from \"../../createMediaReferenceProperty.js\";\nimport { TimeSeriesPropertyImpl } from \"../../createTimeseriesProperty.js\";\nimport type { DerivedPropertyRuntimeMetadata } from \"../../derivedProperties/derivedPropertyRuntimeMetadata.js\";\nimport type { MinimalClient } from \"../../MinimalClientContext.js\";\nimport type { FetchedObjectTypeDefinition } from \"../../ontology/OntologyProvider.js\";\nimport { hydrateAttachmentFromRidInternal } from \"../../public-utils/hydrateAttachmentFromRid.js\";\nimport { createObjectSpecifierFromPrimaryKey } from \"../../util/objectSpecifierUtils.js\";\nimport type { SimpleOsdkProperties } from \"../SimpleOsdkProperties.js\";\nimport { get$as } from \"./getDollarAs.js\";\nimport { get$link } from \"./getDollarLink.js\";\nimport {\n ClientRef,\n ObjectDefRef,\n UnderlyingOsdkObject,\n} from \"./InternalSymbols.js\";\nimport type { ObjectHolder } from \"./ObjectHolder.js\";\n\nconst specialPropertyTypes = new Set(\n [\n \"attachment\",\n \"geotimeSeriesReference\",\n \"mediaReference\",\n \"numericTimeseries\",\n \"stringTimeseries\",\n \"sensorTimeseries\",\n ],\n);\n\n// kept separate so we are not redefining these functions\n// every time an object is created.\nconst basePropDefs = {\n \"$as\": {\n get: function(this: ObjectHolder) {\n return get$as(this[ObjectDefRef]);\n },\n },\n \"$link\": {\n get: function(this: ObjectHolder) {\n return get$link(this);\n },\n },\n \"$clone\": {\n value: function(\n this: ObjectHolder,\n update: Record<string, any> | undefined,\n ) {\n // I think `rawObj` is the same thing as `this` and can be removed?\n const rawObj = this[UnderlyingOsdkObject] as SimpleOsdkProperties;\n const def = this[ObjectDefRef];\n\n if (update == null) {\n return createOsdkObject(this[ClientRef], def, { ...rawObj });\n }\n\n if (\n def.primaryKeyApiName in update\n && rawObj[def.primaryKeyApiName] !== update[def.primaryKeyApiName]\n ) {\n throw new Error(\n `Cannot update ${def.apiName} object with differing primary key values `,\n );\n }\n\n if (def.titleProperty in update && !(\"$title\" in update)) {\n update.$title = update[def.titleProperty];\n }\n\n const newObject = { ...this[UnderlyingOsdkObject], ...update };\n return createOsdkObject(this[ClientRef], this[ObjectDefRef], newObject);\n },\n },\n \"$objectSpecifier\": {\n get: function(this: ObjectHolder) {\n const rawObj = this[UnderlyingOsdkObject];\n return createObjectSpecifierFromPrimaryKey(\n this[ObjectDefRef],\n rawObj.$primaryKey,\n );\n },\n enumerable: true,\n },\n};\n\n/**\n * @internal\n * @param client\n * @param objectDef\n * @param simpleOsdkProperties\n */\nexport function createOsdkObject(\n client: MinimalClient,\n objectDef: FetchedObjectTypeDefinition,\n simpleOsdkProperties: SimpleOsdkProperties,\n derivedPropertyTypeByName: DerivedPropertyRuntimeMetadata = {},\n): ObjectHolder {\n // updates the object's \"hidden class/map\".\n const rawObj = simpleOsdkProperties as ObjectHolder;\n Object.defineProperties(\n rawObj,\n {\n [UnderlyingOsdkObject]: {\n enumerable: false,\n value: simpleOsdkProperties,\n },\n [ObjectDefRef]: { value: objectDef, enumerable: false },\n [ClientRef]: { value: client, enumerable: false },\n ...basePropDefs,\n } satisfies Record<keyof ObjectHolder, PropertyDescriptor>,\n );\n\n // Assign the special values\n for (const propKey of Object.keys(rawObj)) {\n if (\n propKey in objectDef.properties\n && typeof (objectDef.properties[propKey].type) === \"string\"\n && specialPropertyTypes.has(objectDef.properties[propKey].type)\n ) {\n rawObj[propKey] = createSpecialProperty(\n client,\n objectDef,\n rawObj,\n propKey,\n );\n } else if (propKey in derivedPropertyTypeByName) {\n rawObj[propKey] = modifyRdpProperties(\n client,\n derivedPropertyTypeByName,\n rawObj[propKey],\n propKey,\n );\n }\n }\n\n return Object.freeze(rawObj);\n}\n\nfunction modifyRdpProperties(\n client: MinimalClient,\n derivedPropertyTypeByName: DerivedPropertyRuntimeMetadata,\n rawValue: any,\n propKey: string,\n): any {\n if (\n derivedPropertyTypeByName[propKey].definition.type === \"selection\"\n && derivedPropertyTypeByName[propKey].definition.operation.type\n === \"count\"\n ) {\n const num = Number(rawValue);\n invariant(\n Number.isSafeInteger(num),\n \"Count aggregation for derived property \" + propKey\n + \" returned a value larger than safe integer.\",\n );\n return num;\n } // Selected or collected properties need to be deserialized specially when constructed with RDP\n else if (\n derivedPropertyTypeByName[propKey].selectedOrCollectedPropertyType\n != null\n && typeof (derivedPropertyTypeByName[propKey]\n .selectedOrCollectedPropertyType.type)\n === \"string\"\n && specialPropertyTypes.has(\n derivedPropertyTypeByName[propKey].selectedOrCollectedPropertyType\n .type,\n )\n ) {\n switch (\n derivedPropertyTypeByName[propKey].selectedOrCollectedPropertyType\n ?.type\n ) {\n case \"attachment\":\n if (Array.isArray(rawValue)) {\n return rawValue.map(a =>\n hydrateAttachmentFromRidInternal(client, a.rid)\n );\n } else {\n return hydrateAttachmentFromRidInternal(\n client,\n (rawValue as Attachment).rid,\n );\n }\n break;\n default:\n invariant(\n false,\n \"Derived property aggregations for Timeseries and Media are not supported\",\n );\n }\n }\n return rawValue;\n}\n\nfunction createSpecialProperty(\n client: MinimalClient,\n objectDef: FetchedObjectTypeDefinition,\n rawObject: ObjectHolder,\n p: keyof typeof rawObject & string | symbol,\n) {\n const rawValue = rawObject[p as any];\n const propDef = objectDef.properties[p as any];\n if (process.env.NODE_ENV !== \"production\") {\n invariant(\n propDef != null && typeof propDef.type === \"string\"\n && specialPropertyTypes.has(propDef.type),\n );\n }\n if (propDef.type === \"attachment\") {\n if (Array.isArray(rawValue)) {\n return rawValue.map(a => hydrateAttachmentFromRidInternal(client, a.rid));\n }\n return hydrateAttachmentFromRidInternal(\n client,\n (rawValue as Attachment).rid,\n );\n }\n\n if (\n propDef.type === \"numericTimeseries\"\n || propDef.type === \"stringTimeseries\"\n || propDef.type === \"sensorTimeseries\"\n ) {\n return new TimeSeriesPropertyImpl<\n (typeof propDef)[\"type\"] extends \"numericTimeseries\" ? number\n : (typeof propDef)[\"type\"] extends \"stringTimeseries\" ? string\n : number | string\n >(\n client,\n objectDef.apiName,\n rawObject[objectDef.primaryKeyApiName as string],\n p as string,\n );\n }\n\n if (propDef.type === \"geotimeSeriesReference\") {\n return new GeotimeSeriesPropertyImpl<GeoJSON.Point>(\n client,\n objectDef.apiName,\n rawObject[objectDef.primaryKeyApiName as string],\n p as string,\n (rawValue as ReferenceValue).type === \"geotimeSeriesValue\"\n ? {\n time: (rawValue as ReferenceValue).timestamp,\n value: {\n type: \"Point\",\n coordinates: (rawValue as ReferenceValue).position,\n },\n }\n : undefined,\n );\n }\n if (propDef.type === \"mediaReference\") {\n return new MediaReferencePropertyImpl({\n client,\n objectApiName: objectDef.apiName,\n primaryKey: rawObject[objectDef.primaryKeyApiName as string],\n propertyName: p as string,\n mediaReference: rawValue as MediaReference,\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"convertWireToOsdkObjects.js","names":["invariant","createOsdkObject","convertWireToOsdkObjects","client","objects","interfaceApiName","forceRemoveRid","derivedPropertyTypesByName","selectedProps","strictNonNull","fixObjectPropertiesInPlace","ifaceDef","ontologyProvider","getInterfaceDefinition","undefined","ifaceSelected","Object","keys","properties","ret","rawObj","objectDef","getObjectDefinition","$apiName","process","env","NODE_ENV","objProps","conforming","invariantInterfacesAsViews","apiName","isConforming","reframeAsObjectInPlace","convertInterfacePropNamesToObjectPropNames","Error","osdkObject","$as","push","convertWireToOsdkObjects2","derivedPropertyTypeByName","interfaceToObjectTypeMappings","interfaceToObjMapping","filter","val","includes","values","primaryKeyApiName","ifacePropsToMap","map","ifaceProp","interfaceMap","newProps","sptProp","regularProp","entries","value","assign","$primaryKey","def","obj","propsToCheck","propName","nullable","logger","debug","$objectType","warning","warn","console","error","objs","__rid","$rid","__apiName","__primaryKey","$title","__title"],"sources":["convertWireToOsdkObjects.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 InterfaceMetadata,\n NullabilityAdherence,\n ObjectMetadata,\n} from \"@osdk/api\";\nimport type {\n InterfaceToObjectTypeMappings,\n InterfaceTypeApiName,\n OntologyObjectV2,\n} from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport {\n type FetchedObjectTypeDefinition,\n} from \"../ontology/OntologyProvider.js\";\nimport { createOsdkObject } from \"./convertWireToOsdkObjects/createOsdkObject.js\";\nimport type { InterfaceHolder } from \"./convertWireToOsdkObjects/InterfaceHolder.js\";\nimport type { ObjectHolder } from \"./convertWireToOsdkObjects/ObjectHolder.js\";\nimport type { SimpleOsdkProperties } from \"./SimpleOsdkProperties.js\";\n\n/**\n * If interfaceApiName is not undefined, converts the instances of the\n * interface into their respective\n * underlying concrete types and then returns the $as() representation\n * for the consumers.\n *\n * Otherwise just does the conversion\n *\n * May mutate in place for performance reasons. If you need a clean copy,\n * keep it first.\n *\n * However, you must use the returned value, which will be whatever is correct.\n *\n * @internal\n * @param interfaceApiName - if undefined\n */\nexport async function convertWireToOsdkObjects(\n client: MinimalClient,\n objects: OntologyObjectV2[],\n interfaceApiName: string | undefined,\n forceRemoveRid: boolean = false,\n derivedPropertyTypesByName: Record<\n string,\n ObjectMetadata.Property\n >,\n selectedProps?: ReadonlyArray<string>,\n strictNonNull: NullabilityAdherence = false,\n): Promise<Array<ObjectHolder | InterfaceHolder>> {\n // remove the __ prefixed properties and convert them to $ prefixed.\n // updates in place\n fixObjectPropertiesInPlace(objects, forceRemoveRid);\n\n const ifaceDef = interfaceApiName\n ? await client.ontologyProvider.getInterfaceDefinition(interfaceApiName)\n : undefined;\n const ifaceSelected = ifaceDef\n ? (selectedProps ?? Object.keys(ifaceDef.properties))\n : undefined;\n\n const ret = [];\n for (const rawObj of objects) {\n const objectDef = await client.ontologyProvider.getObjectDefinition(\n rawObj.$apiName,\n );\n invariant(objectDef, `Missing definition for '${rawObj.$apiName}'`);\n\n // default value for when we are checking an object\n let objProps;\n\n let conforming = true;\n if (ifaceDef && ifaceSelected) {\n // API returns interface spt names but we cache by real values\n invariantInterfacesAsViews(objectDef, ifaceDef.apiName, client);\n\n conforming &&= isConforming(client, ifaceDef, rawObj, ifaceSelected);\n\n reframeAsObjectInPlace(objectDef, ifaceDef.apiName, rawObj);\n\n objProps = convertInterfacePropNamesToObjectPropNames(\n objectDef,\n ifaceDef.apiName,\n ifaceSelected,\n );\n } else {\n objProps = selectedProps ?? Object.keys(objectDef.properties);\n }\n\n conforming &&= isConforming(client, objectDef, rawObj, objProps);\n\n if (strictNonNull === \"throw\" && !conforming) {\n throw new Error(\n \"Unable to safely convert objects as some non nullable properties are null\",\n );\n } else if (strictNonNull === \"drop\" && !conforming) {\n continue;\n }\n\n let osdkObject: ObjectHolder | InterfaceHolder = createOsdkObject(\n client,\n objectDef,\n rawObj,\n derivedPropertyTypesByName,\n );\n if (interfaceApiName) osdkObject = osdkObject.$as(interfaceApiName);\n\n ret.push(osdkObject);\n }\n\n return ret;\n}\n\nexport async function convertWireToOsdkObjects2(\n client: MinimalClient,\n objects: OntologyObjectV2[],\n interfaceApiName: string,\n derivedPropertyTypeByName: Record<\n string,\n ObjectMetadata.Property\n >,\n forceRemoveRid?: boolean,\n selectedProps?: ReadonlyArray<string>,\n strictNonNull?: NullabilityAdherence,\n interfaceToObjectTypeMappings?: Record<\n InterfaceTypeApiName,\n InterfaceToObjectTypeMappings\n >,\n): Promise<Array<InterfaceHolder>>;\nexport async function convertWireToOsdkObjects2(\n client: MinimalClient,\n objects: OntologyObjectV2[],\n interfaceApiName: undefined,\n derivedPropertyTypeByName: Record<\n string,\n ObjectMetadata.Property\n >,\n forceRemoveRid?: boolean,\n selectedProps?: ReadonlyArray<string>,\n strictNonNull?: NullabilityAdherence,\n interfaceToObjectTypeMappings?: Record<\n InterfaceTypeApiName,\n InterfaceToObjectTypeMappings\n >,\n): Promise<Array<ObjectHolder>>;\nexport async function convertWireToOsdkObjects2(\n client: MinimalClient,\n objects: OntologyObjectV2[],\n interfaceApiName: string | undefined,\n derivedPropertyTypeByName: Record<\n string,\n ObjectMetadata.Property\n >,\n forceRemoveRid?: boolean,\n selectedProps?: ReadonlyArray<string>,\n strictNonNull?: NullabilityAdherence,\n interfaceToObjectTypeMappings?: Record<\n InterfaceTypeApiName,\n InterfaceToObjectTypeMappings\n >,\n): Promise<Array<ObjectHolder | InterfaceHolder>>;\n/**\n * @internal\n */\nexport async function convertWireToOsdkObjects2(\n client: MinimalClient,\n objects: OntologyObjectV2[],\n interfaceApiName: string | undefined,\n derivedPropertyTypeByName: Record<\n string,\n ObjectMetadata.Property\n >,\n forceRemoveRid: boolean = false,\n selectedProps?: ReadonlyArray<string>,\n strictNonNull: NullabilityAdherence = false,\n interfaceToObjectTypeMappings: Record<\n InterfaceTypeApiName,\n InterfaceToObjectTypeMappings\n > = {},\n): Promise<Array<ObjectHolder | InterfaceHolder>> {\n fixObjectPropertiesInPlace(objects, forceRemoveRid);\n\n const ret = [];\n for (const rawObj of objects) {\n const objectDef = await client.ontologyProvider.getObjectDefinition(\n rawObj.$apiName,\n );\n invariant(objectDef, `Missing definition for '${rawObj.$apiName}'`);\n\n const interfaceToObjMapping = interfaceApiName\n ? interfaceToObjectTypeMappings[interfaceApiName as InterfaceTypeApiName][\n rawObj.$apiName\n ]\n : undefined;\n\n const ifaceSelected = interfaceApiName && interfaceToObjMapping\n ? (selectedProps\n ? Object.keys(interfaceToObjMapping).filter(\n val => {\n selectedProps?.includes(interfaceToObjMapping[val]);\n },\n )\n : [\n ...Object.values(interfaceToObjMapping),\n objectDef.primaryKeyApiName,\n ])\n : undefined;\n\n // default value for when we are checking an object\n let objProps;\n\n let conforming = true;\n if (interfaceApiName && ifaceSelected) {\n invariantInterfacesAsViews(objectDef, interfaceApiName, client);\n\n objProps = ifaceSelected;\n } else {\n objProps = selectedProps ?? Object.keys(objectDef.properties);\n }\n\n conforming &&= isConforming(client, objectDef, rawObj, objProps);\n\n if (strictNonNull === \"throw\" && !conforming) {\n throw new Error(\n \"Unable to safely convert objects as some non nullable properties are null\",\n );\n } else if (strictNonNull === \"drop\" && !conforming) {\n continue;\n }\n\n let osdkObject: ObjectHolder | InterfaceHolder = createOsdkObject(\n client,\n objectDef,\n rawObj,\n derivedPropertyTypeByName,\n );\n if (interfaceApiName) osdkObject = osdkObject.$as(interfaceApiName);\n\n ret.push(osdkObject);\n }\n\n return ret;\n}\n\n/**\n * @internal\n *\n * Utility function that lets us take down selected property names from an interface\n * and convert them to an array of property names on an object.\n */\nexport function convertInterfacePropNamesToObjectPropNames(\n objectDef: FetchedObjectTypeDefinition,\n interfaceApiName: string,\n ifacePropsToMap: readonly string[],\n): string[] {\n return ifacePropsToMap.map((ifaceProp) =>\n objectDef.interfaceMap[interfaceApiName][ifaceProp]\n );\n}\n\n/**\n * Takes a raw object from the wire (contextually as an interface) and\n * updates the fields to reflect the underlying objectDef instead\n * @param objectDef\n * @param interfaceApiName\n * @param client\n * @param rawObj\n */\nfunction reframeAsObjectInPlace(\n objectDef: FetchedObjectTypeDefinition,\n interfaceApiName: string,\n rawObj: OntologyObjectV2,\n) {\n const newProps: Record<string, any> = {};\n for (\n const [sptProp, regularProp] of Object.entries(\n objectDef.interfaceMap[interfaceApiName],\n )\n ) {\n if (sptProp in rawObj) {\n const value = rawObj[sptProp];\n delete rawObj[sptProp];\n if (value !== undefined) {\n newProps[regularProp] = value;\n }\n }\n }\n Object.assign(rawObj, newProps);\n\n if (!(objectDef.primaryKeyApiName in rawObj)) {\n rawObj[objectDef.primaryKeyApiName] = rawObj.$primaryKey;\n }\n}\n\nfunction isConforming(\n client: MinimalClient,\n def:\n | InterfaceMetadata\n | ObjectMetadata,\n obj: OntologyObjectV2,\n propsToCheck: readonly string[],\n) {\n for (const propName of propsToCheck) {\n if (\n propName in def.properties && def.properties[propName].nullable === false\n && obj[propName] == null\n ) {\n if (process.env.NODE_ENV !== \"production\") {\n client.logger?.debug(\n {\n obj: {\n $apiName: obj[\"$apiName\"],\n $objectType: obj[\"$objectType\"],\n $primaryKey: obj[\"$primaryKey\"],\n },\n },\n `Found object that does not conform to its definition. Expected ${def.apiName}'s ${propName} to not be null.`,\n );\n }\n return false;\n }\n }\n return true;\n}\n\nfunction invariantInterfacesAsViews(\n objectDef: FetchedObjectTypeDefinition,\n interfaceApiName: string,\n client: MinimalClient,\n): asserts objectDef is typeof objectDef & { interfaceMap: {} } {\n if (objectDef.interfaceMap?.[interfaceApiName] == null) {\n const warning =\n \"Interfaces are only supported 'as views' but your metadata object is missing the correct information. This suggests your interfaces have not been migrated to the newer version yet and you cannot use this version of the SDK.\";\n if (client.logger) {\n client.logger.warn(warning);\n } else {\n // eslint-disable-next-line no-console\n console.error(`WARNING! ${warning}`);\n }\n throw new Error(warning);\n }\n}\n\nfunction fixObjectPropertiesInPlace(\n objs: OntologyObjectV2[],\n forceRemoveRid: boolean,\n): asserts objs is SimpleOsdkProperties[] {\n for (const obj of objs) {\n if (forceRemoveRid) {\n delete obj.__rid;\n }\n\n if (obj.__rid) {\n obj.$rid = obj.__rid;\n delete obj.__rid;\n }\n\n // Backend returns as __apiName but we want to stick to $ structure\n obj.$apiName ??= obj.__apiName;\n\n // for now these are the same but when we start doing interface projections the $objectType will always be underlying and\n // the $apiName will be for the current view (in current designs)\n obj.$objectType = obj.$apiName;\n\n // copying over for now as its always returned. In the future, this should just be inferred from underlying\n obj.$primaryKey ??= obj.__primaryKey;\n obj.$title ??= obj.__title;\n\n // we don't want people to use these\n delete obj.__apiName;\n delete obj.__primaryKey;\n delete obj.__title;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"convertWireToOsdkObjects.js","names":["invariant","createOsdkObject","convertWireToOsdkObjects","client","objects","interfaceApiName","forceRemoveRid","derivedPropertyTypesByName","selectedProps","strictNonNull","fixObjectPropertiesInPlace","ifaceDef","ontologyProvider","getInterfaceDefinition","undefined","ifaceSelected","Object","keys","properties","ret","rawObj","objectDef","getObjectDefinition","$apiName","process","env","NODE_ENV","objProps","conforming","invariantInterfacesAsViews","apiName","isConforming","reframeAsObjectInPlace","convertInterfacePropNamesToObjectPropNames","Error","osdkObject","$as","push","convertWireToOsdkObjects2","derivedPropertyTypeByName","interfaceToObjectTypeMappings","interfaceToObjMapping","filter","val","includes","values","primaryKeyApiName","ifacePropsToMap","map","ifaceProp","interfaceMap","newProps","sptProp","regularProp","entries","value","assign","$primaryKey","def","obj","propsToCheck","propName","nullable","logger","debug","$objectType","warning","warn","console","error","objs","__rid","$rid","__apiName","__primaryKey","$title","__title"],"sources":["convertWireToOsdkObjects.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 InterfaceMetadata,\n NullabilityAdherence,\n ObjectMetadata,\n} from \"@osdk/api\";\nimport type {\n InterfaceToObjectTypeMappings,\n InterfaceTypeApiName,\n OntologyObjectV2,\n} from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport type { DerivedPropertyRuntimeMetadata } from \"../derivedProperties/derivedPropertyRuntimeMetadata.js\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport {\n type FetchedObjectTypeDefinition,\n} from \"../ontology/OntologyProvider.js\";\nimport { createOsdkObject } from \"./convertWireToOsdkObjects/createOsdkObject.js\";\nimport type { InterfaceHolder } from \"./convertWireToOsdkObjects/InterfaceHolder.js\";\nimport type { ObjectHolder } from \"./convertWireToOsdkObjects/ObjectHolder.js\";\nimport type { SimpleOsdkProperties } from \"./SimpleOsdkProperties.js\";\n\n/**\n * If interfaceApiName is not undefined, converts the instances of the\n * interface into their respective\n * underlying concrete types and then returns the $as() representation\n * for the consumers.\n *\n * Otherwise just does the conversion\n *\n * May mutate in place for performance reasons. If you need a clean copy,\n * keep it first.\n *\n * However, you must use the returned value, which will be whatever is correct.\n *\n * @internal\n * @param interfaceApiName - if undefined\n */\nexport async function convertWireToOsdkObjects(\n client: MinimalClient,\n objects: OntologyObjectV2[],\n interfaceApiName: string | undefined,\n forceRemoveRid: boolean = false,\n derivedPropertyTypesByName: DerivedPropertyRuntimeMetadata,\n selectedProps?: ReadonlyArray<string>,\n strictNonNull: NullabilityAdherence = false,\n): Promise<Array<ObjectHolder | InterfaceHolder>> {\n // remove the __ prefixed properties and convert them to $ prefixed.\n // updates in place\n fixObjectPropertiesInPlace(objects, forceRemoveRid);\n\n const ifaceDef = interfaceApiName\n ? await client.ontologyProvider.getInterfaceDefinition(interfaceApiName)\n : undefined;\n const ifaceSelected = ifaceDef\n ? (selectedProps ?? Object.keys(ifaceDef.properties))\n : undefined;\n\n const ret = [];\n for (const rawObj of objects) {\n const objectDef = await client.ontologyProvider.getObjectDefinition(\n rawObj.$apiName,\n );\n invariant(objectDef, `Missing definition for '${rawObj.$apiName}'`);\n\n // default value for when we are checking an object\n let objProps;\n\n let conforming = true;\n if (ifaceDef && ifaceSelected) {\n // API returns interface spt names but we cache by real values\n invariantInterfacesAsViews(objectDef, ifaceDef.apiName, client);\n\n conforming &&= isConforming(client, ifaceDef, rawObj, ifaceSelected);\n\n reframeAsObjectInPlace(objectDef, ifaceDef.apiName, rawObj);\n\n objProps = convertInterfacePropNamesToObjectPropNames(\n objectDef,\n ifaceDef.apiName,\n ifaceSelected,\n );\n } else {\n objProps = selectedProps ?? Object.keys(objectDef.properties);\n }\n\n conforming &&= isConforming(client, objectDef, rawObj, objProps);\n\n if (strictNonNull === \"throw\" && !conforming) {\n throw new Error(\n \"Unable to safely convert objects as some non nullable properties are null\",\n );\n } else if (strictNonNull === \"drop\" && !conforming) {\n continue;\n }\n\n let osdkObject: ObjectHolder | InterfaceHolder = createOsdkObject(\n client,\n objectDef,\n rawObj,\n derivedPropertyTypesByName,\n );\n if (interfaceApiName) osdkObject = osdkObject.$as(interfaceApiName);\n\n ret.push(osdkObject);\n }\n\n return ret;\n}\n\nexport async function convertWireToOsdkObjects2(\n client: MinimalClient,\n objects: OntologyObjectV2[],\n interfaceApiName: string,\n derivedPropertyTypeByName: DerivedPropertyRuntimeMetadata,\n forceRemoveRid?: boolean,\n selectedProps?: ReadonlyArray<string>,\n strictNonNull?: NullabilityAdherence,\n interfaceToObjectTypeMappings?: Record<\n InterfaceTypeApiName,\n InterfaceToObjectTypeMappings\n >,\n): Promise<Array<InterfaceHolder>>;\nexport async function convertWireToOsdkObjects2(\n client: MinimalClient,\n objects: OntologyObjectV2[],\n interfaceApiName: undefined,\n derivedPropertyTypeByName: DerivedPropertyRuntimeMetadata,\n forceRemoveRid?: boolean,\n selectedProps?: ReadonlyArray<string>,\n strictNonNull?: NullabilityAdherence,\n interfaceToObjectTypeMappings?: Record<\n InterfaceTypeApiName,\n InterfaceToObjectTypeMappings\n >,\n): Promise<Array<ObjectHolder>>;\nexport async function convertWireToOsdkObjects2(\n client: MinimalClient,\n objects: OntologyObjectV2[],\n interfaceApiName: string | undefined,\n derivedPropertyTypeByName: DerivedPropertyRuntimeMetadata,\n forceRemoveRid?: boolean,\n selectedProps?: ReadonlyArray<string>,\n strictNonNull?: NullabilityAdherence,\n interfaceToObjectTypeMappings?: Record<\n InterfaceTypeApiName,\n InterfaceToObjectTypeMappings\n >,\n): Promise<Array<ObjectHolder | InterfaceHolder>>;\n/**\n * @internal\n */\nexport async function convertWireToOsdkObjects2(\n client: MinimalClient,\n objects: OntologyObjectV2[],\n interfaceApiName: string | undefined,\n derivedPropertyTypeByName: DerivedPropertyRuntimeMetadata,\n forceRemoveRid: boolean = false,\n selectedProps?: ReadonlyArray<string>,\n strictNonNull: NullabilityAdherence = false,\n interfaceToObjectTypeMappings: Record<\n InterfaceTypeApiName,\n InterfaceToObjectTypeMappings\n > = {},\n): Promise<Array<ObjectHolder | InterfaceHolder>> {\n fixObjectPropertiesInPlace(objects, forceRemoveRid);\n\n const ret = [];\n for (const rawObj of objects) {\n const objectDef = await client.ontologyProvider.getObjectDefinition(\n rawObj.$apiName,\n );\n invariant(objectDef, `Missing definition for '${rawObj.$apiName}'`);\n\n const interfaceToObjMapping = interfaceApiName\n ? interfaceToObjectTypeMappings[interfaceApiName as InterfaceTypeApiName][\n rawObj.$apiName\n ]\n : undefined;\n\n const ifaceSelected = interfaceApiName && interfaceToObjMapping\n ? (selectedProps\n ? Object.keys(interfaceToObjMapping).filter(\n val => {\n selectedProps?.includes(interfaceToObjMapping[val]);\n },\n )\n : [\n ...Object.values(interfaceToObjMapping),\n objectDef.primaryKeyApiName,\n ])\n : undefined;\n\n // default value for when we are checking an object\n let objProps;\n\n let conforming = true;\n if (interfaceApiName && ifaceSelected) {\n invariantInterfacesAsViews(objectDef, interfaceApiName, client);\n\n objProps = ifaceSelected;\n } else {\n objProps = selectedProps ?? Object.keys(objectDef.properties);\n }\n\n conforming &&= isConforming(client, objectDef, rawObj, objProps);\n\n if (strictNonNull === \"throw\" && !conforming) {\n throw new Error(\n \"Unable to safely convert objects as some non nullable properties are null\",\n );\n } else if (strictNonNull === \"drop\" && !conforming) {\n continue;\n }\n\n let osdkObject: ObjectHolder | InterfaceHolder = createOsdkObject(\n client,\n objectDef,\n rawObj,\n derivedPropertyTypeByName,\n );\n if (interfaceApiName) osdkObject = osdkObject.$as(interfaceApiName);\n\n ret.push(osdkObject);\n }\n\n return ret;\n}\n\n/**\n * @internal\n *\n * Utility function that lets us take down selected property names from an interface\n * and convert them to an array of property names on an object.\n */\nexport function convertInterfacePropNamesToObjectPropNames(\n objectDef: FetchedObjectTypeDefinition,\n interfaceApiName: string,\n ifacePropsToMap: readonly string[],\n): string[] {\n return ifacePropsToMap.map((ifaceProp) =>\n objectDef.interfaceMap[interfaceApiName][ifaceProp]\n );\n}\n\n/**\n * Takes a raw object from the wire (contextually as an interface) and\n * updates the fields to reflect the underlying objectDef instead\n * @param objectDef\n * @param interfaceApiName\n * @param client\n * @param rawObj\n */\nfunction reframeAsObjectInPlace(\n objectDef: FetchedObjectTypeDefinition,\n interfaceApiName: string,\n rawObj: OntologyObjectV2,\n) {\n const newProps: Record<string, any> = {};\n for (\n const [sptProp, regularProp] of Object.entries(\n objectDef.interfaceMap[interfaceApiName],\n )\n ) {\n if (sptProp in rawObj) {\n const value = rawObj[sptProp];\n delete rawObj[sptProp];\n if (value !== undefined) {\n newProps[regularProp] = value;\n }\n }\n }\n Object.assign(rawObj, newProps);\n\n if (!(objectDef.primaryKeyApiName in rawObj)) {\n rawObj[objectDef.primaryKeyApiName] = rawObj.$primaryKey;\n }\n}\n\nfunction isConforming(\n client: MinimalClient,\n def:\n | InterfaceMetadata\n | ObjectMetadata,\n obj: OntologyObjectV2,\n propsToCheck: readonly string[],\n) {\n for (const propName of propsToCheck) {\n if (\n propName in def.properties && def.properties[propName].nullable === false\n && obj[propName] == null\n ) {\n if (process.env.NODE_ENV !== \"production\") {\n client.logger?.debug(\n {\n obj: {\n $apiName: obj[\"$apiName\"],\n $objectType: obj[\"$objectType\"],\n $primaryKey: obj[\"$primaryKey\"],\n },\n },\n `Found object that does not conform to its definition. Expected ${def.apiName}'s ${propName} to not be null.`,\n );\n }\n return false;\n }\n }\n return true;\n}\n\nfunction invariantInterfacesAsViews(\n objectDef: FetchedObjectTypeDefinition,\n interfaceApiName: string,\n client: MinimalClient,\n): asserts objectDef is typeof objectDef & { interfaceMap: {} } {\n if (objectDef.interfaceMap?.[interfaceApiName] == null) {\n const warning =\n \"Interfaces are only supported 'as views' but your metadata object is missing the correct information. This suggests your interfaces have not been migrated to the newer version yet and you cannot use this version of the SDK.\";\n if (client.logger) {\n client.logger.warn(warning);\n } else {\n // eslint-disable-next-line no-console\n console.error(`WARNING! ${warning}`);\n }\n throw new Error(warning);\n }\n}\n\nfunction fixObjectPropertiesInPlace(\n objs: OntologyObjectV2[],\n forceRemoveRid: boolean,\n): asserts objs is SimpleOsdkProperties[] {\n for (const obj of objs) {\n if (forceRemoveRid) {\n delete obj.__rid;\n }\n\n if (obj.__rid) {\n obj.$rid = obj.__rid;\n delete obj.__rid;\n }\n\n // Backend returns as __apiName but we want to stick to $ structure\n obj.$apiName ??= obj.__apiName;\n\n // for now these are the same but when we start doing interface projections the $objectType will always be underlying and\n // the $apiName will be for the current view (in current designs)\n obj.$objectType = obj.$apiName;\n\n // copying over for now as its always returned. In the future, this should just be inferred from underlying\n obj.$primaryKey ??= obj.__primaryKey;\n obj.$title ??= obj.__title;\n\n // we don't want people to use these\n delete obj.__apiName;\n delete obj.__primaryKey;\n delete obj.__title;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -55,7 +55,7 @@ export function resolveInterfaceObjectSet(objectSet, interfaceTypeApiName, args)
55
55
  }]
56
56
  } : objectSet;
57
57
  }
58
- async function fetchInterfacePage(client, interfaceType, args, objectSet) {
58
+ async function fetchInterfacePage(client, interfaceType, args, objectSet, useSnapshot = false) {
59
59
  if (args.$__UNSTABLE_useOldInterfaceApis) {
60
60
  const result = await OntologiesV2.OntologyInterfaces.search(addUserAgentAndRequestContextHeaders(client, interfaceType), await client.ontologyRid, interfaceType.apiName, applyFetchArgs(args, {
61
61
  augmentedProperties: {},
@@ -75,7 +75,8 @@ async function fetchInterfacePage(client, interfaceType, args, objectSet) {
75
75
  const result = await OntologiesV2.OntologyObjectSets.loadMultipleObjectTypes(addUserAgentAndRequestContextHeaders(client, interfaceType), await client.ontologyRid, applyFetchArgs(args, {
76
76
  objectSet: resolveInterfaceObjectSet(objectSet, interfaceType.apiName, args),
77
77
  select: args?.$select ?? [],
78
- excludeRid: !args?.$includeRid
78
+ excludeRid: !args?.$includeRid,
79
+ snapshot: useSnapshot
79
80
  }), {
80
81
  preview: true
81
82
  });
@@ -87,11 +88,11 @@ async function fetchInterfacePage(client, interfaceType, args, objectSet) {
87
88
  }
88
89
 
89
90
  /** @internal */
90
- export async function fetchPageInternal(client, objectType, objectSet, args = {}) {
91
+ export async function fetchPageInternal(client, objectType, objectSet, args = {}, useSnapshot = false) {
91
92
  if (objectType.type === "interface") {
92
- return await fetchInterfacePage(client, objectType, args, objectSet); // fixme
93
+ return await fetchInterfacePage(client, objectType, args, objectSet, useSnapshot); // fixme
93
94
  } else {
94
- return await fetchObjectPage(client, objectType, args, objectSet); // fixme
95
+ return await fetchObjectPage(client, objectType, args, objectSet, useSnapshot); // fixme
95
96
  }
96
97
  }
97
98
 
@@ -149,13 +150,14 @@ function applyFetchArgs(args, body) {
149
150
  }
150
151
 
151
152
  /** @internal */
152
- export async function fetchObjectPage(client, objectType, args, objectSet) {
153
+ export async function fetchObjectPage(client, objectType, args, objectSet, useSnapshot = false) {
153
154
  const r = await OntologiesV2.OntologyObjectSets.load(addUserAgentAndRequestContextHeaders(client, objectType), await client.ontologyRid, applyFetchArgs(args, {
154
155
  objectSet,
155
156
  // We have to do the following case because LoadObjectSetRequestV2 isn't readonly
156
157
  select: args?.$select ?? [],
157
158
  // FIXME?
158
- excludeRid: !args?.$includeRid
159
+ excludeRid: !args?.$includeRid,
160
+ snapshot: useSnapshot
159
161
  }));
160
162
  return Promise.resolve({
161
163
  data: await client.objectFactory(client, r.data, undefined, undefined, await extractRdpDefinition(client, objectSet), args.$select),
@@ -1 +1 @@
1
- {"version":3,"file":"fetchPage.js","names":["OntologiesV2","addUserAgentAndRequestContextHeaders","extractRdpDefinition","resolveBaseObjectSetType","augment","type","properties","apiName","objectSetToSearchJsonV2","objectSet","expectedApiName","existingWhere","undefined","objectType","Error","interfaceType","where","value","resolveInterfaceObjectSet","interfaceTypeApiName","args","$includeAllBaseObjectProperties","objectSets","includeAllBaseObjectProperties","fetchInterfacePage","client","$__UNSTABLE_useOldInterfaceApis","result","OntologyInterfaces","search","ontologyRid","applyFetchArgs","augmentedProperties","augmentedSharedPropertyTypes","otherInterfaceTypes","selectedObjectTypes","selectedSharedPropertyTypes","$select","preview","data","objectFactory","$includeRid","OntologyObjectSets","loadMultipleObjectTypes","select","excludeRid","Promise","resolve","objectFactory2","interfaceToObjectTypeMappings","nextPageToken","totalCount","fetchPageInternal","fetchObjectPage","fetchPageWithErrorsInternal","e","error","fetchPage","fetchPageWithErrors","body","$nextPageToken","pageToken","$pageSize","pageSize","$orderBy","orderBy","fields","Object","entries","map","field","direction","r","load"],"sources":["fetchPage.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 Augment,\n Augments,\n FetchPageArgs,\n FetchPageResult,\n InterfaceDefinition,\n NullabilityAdherence,\n ObjectOrInterfaceDefinition,\n ObjectTypeDefinition,\n PropertyKeys,\n Result,\n} from \"@osdk/api\";\nimport type { PageSize, PageToken } from \"@osdk/foundry.core\";\nimport type {\n LoadObjectSetRequestV2,\n LoadObjectSetV2MultipleObjectTypesRequest,\n ObjectSet,\n OntologyObjectV2,\n SearchJsonQueryV2,\n SearchObjectsForInterfaceRequest,\n SearchOrderByV2,\n} from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport { extractRdpDefinition } from \"../util/extractRdpDefinition.js\";\nimport { resolveBaseObjectSetType } from \"../util/objectSetUtils.js\";\n\nexport function augment<\n Q extends ObjectOrInterfaceDefinition,\n T extends PropertyKeys<Q>,\n>(\n type: Q,\n ...properties: T[]\n): Augment<Q, T> {\n return { [type.apiName]: properties } as any;\n}\n\n/** @internal */\nexport function objectSetToSearchJsonV2(\n objectSet: ObjectSet,\n expectedApiName: string,\n existingWhere: SearchJsonQueryV2 | undefined = undefined,\n): SearchJsonQueryV2 | undefined {\n if (objectSet.type === \"base\" || objectSet.type === \"interfaceBase\") {\n if (objectSet.type === \"base\" && objectSet.objectType !== expectedApiName) {\n throw new Error(\n `Expected objectSet.objectType to be ${expectedApiName}, but got ${objectSet.objectType}`,\n );\n }\n if (\n objectSet.type === \"interfaceBase\"\n && objectSet.interfaceType !== expectedApiName\n ) {\n throw new Error(\n `Expected objectSet.objectType to be ${expectedApiName}, but got ${objectSet.interfaceType}`,\n );\n }\n\n return existingWhere;\n }\n\n if (objectSet.type === \"filter\") {\n return objectSetToSearchJsonV2(\n objectSet.objectSet,\n expectedApiName,\n existingWhere == null ? objectSet.where : {\n type: \"and\",\n value: [existingWhere, objectSet.where],\n },\n );\n }\n\n throw new Error(`Unsupported objectSet type: ${objectSet.type}`);\n}\n\n/** @internal */\nexport function resolveInterfaceObjectSet(\n objectSet: ObjectSet,\n interfaceTypeApiName: string,\n args: FetchPageArgs<any, any, any, any, any, any>,\n): ObjectSet {\n return args?.$includeAllBaseObjectProperties\n ? {\n type: \"intersect\",\n objectSets: [objectSet, {\n type: \"interfaceBase\",\n interfaceType: interfaceTypeApiName,\n includeAllBaseObjectProperties: true,\n }],\n }\n : objectSet;\n}\n\nasync function fetchInterfacePage<\n Q extends InterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n interfaceType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet,\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n if (args.$__UNSTABLE_useOldInterfaceApis) {\n const result = await OntologiesV2.OntologyInterfaces\n .search(\n addUserAgentAndRequestContextHeaders(client, interfaceType),\n await client.ontologyRid,\n interfaceType.apiName,\n applyFetchArgs<SearchObjectsForInterfaceRequest>(args, {\n augmentedProperties: {},\n augmentedSharedPropertyTypes: {},\n otherInterfaceTypes: [],\n selectedObjectTypes: [],\n selectedSharedPropertyTypes: args.$select as undefined | string[]\n ?? [],\n where: objectSetToSearchJsonV2(objectSet, interfaceType.apiName),\n }),\n { preview: true },\n );\n\n result.data = await client.objectFactory(\n client,\n result.data as OntologyObjectV2[], // drop readonly\n interfaceType.apiName,\n !args.$includeRid,\n await extractRdpDefinition(client, objectSet),\n );\n return result as any;\n }\n const result = await OntologiesV2.OntologyObjectSets.loadMultipleObjectTypes(\n addUserAgentAndRequestContextHeaders(client, interfaceType),\n await client.ontologyRid,\n applyFetchArgs<LoadObjectSetV2MultipleObjectTypesRequest>(args, {\n objectSet: resolveInterfaceObjectSet(\n objectSet,\n interfaceType.apiName,\n args,\n ),\n select: ((args?.$select as string[] | undefined) ?? []),\n excludeRid: !args?.$includeRid,\n }),\n { preview: true },\n );\n return Promise.resolve({\n data: await client.objectFactory2(\n client,\n result.data,\n interfaceType.apiName,\n {},\n !args.$includeRid,\n args.$select,\n false,\n result.interfaceToObjectTypeMappings,\n ),\n nextPageToken: result.nextPageToken,\n totalCount: result.totalCount,\n }) as unknown as Promise<FetchPageResult<Q, L, R, S, T>>;\n}\n\n/** @internal */\nexport async function fetchPageInternal<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n A extends Augments,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n objectSet: ObjectSet,\n args: FetchPageArgs<Q, L, R, A, S, T> = {},\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n if (objectType.type === \"interface\") {\n return await fetchInterfacePage(\n client,\n objectType,\n args,\n objectSet,\n ) as any; // fixme\n } else {\n return await fetchObjectPage(\n client,\n objectType,\n args,\n objectSet,\n ) as any; // fixme\n }\n}\n\n/** @internal */\nexport async function fetchPageWithErrorsInternal<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n A extends Augments,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n objectSet: ObjectSet,\n args: FetchPageArgs<Q, L, R, A, S, T> = {},\n): Promise<Result<FetchPageResult<Q, L, R, S, T>>> {\n try {\n const result = await fetchPageInternal(client, objectType, objectSet, args);\n return { value: result };\n } catch (e) {\n if (e instanceof Error) {\n return { error: e };\n }\n return { error: e as Error };\n }\n}\n\n/**\n * @param client\n * @param objectType\n * @param args\n * @param objectSet\n * @returns\n * @internal\n */\nexport async function fetchPage<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet = resolveBaseObjectSetType(objectType),\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n return fetchPageInternal(client, objectType, objectSet, args);\n}\n\n/** @internal */\nexport async function fetchPageWithErrors<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet = resolveBaseObjectSetType(objectType),\n): Promise<Result<FetchPageResult<Q, L, R, S, T>>> {\n return fetchPageWithErrorsInternal(client, objectType, objectSet, args);\n}\n\nfunction applyFetchArgs<\n X extends {\n orderBy?: SearchOrderByV2;\n pageToken?: PageToken;\n pageSize?: PageSize;\n },\n>(\n args: FetchPageArgs<any, any, any, any, any, any>,\n body: X,\n): X {\n if (args?.$nextPageToken) {\n body.pageToken = args.$nextPageToken;\n }\n\n if (args?.$pageSize != null) {\n body.pageSize = args.$pageSize;\n }\n\n if (args?.$orderBy != null) {\n body.orderBy = {\n fields: Object.entries(args.$orderBy).map(([field, direction]) => ({\n field,\n direction,\n })),\n };\n }\n\n return body;\n}\n\n/** @internal */\nexport async function fetchObjectPage<\n Q extends ObjectTypeDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, Augments, S, T>,\n objectSet: ObjectSet,\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n const r = await OntologiesV2.OntologyObjectSets.load(\n addUserAgentAndRequestContextHeaders(client, objectType),\n await client.ontologyRid,\n applyFetchArgs<LoadObjectSetRequestV2>(args, {\n objectSet,\n // We have to do the following case because LoadObjectSetRequestV2 isn't readonly\n select: ((args?.$select as string[] | undefined) ?? []), // FIXME?\n excludeRid: !args?.$includeRid,\n }),\n );\n\n return Promise.resolve({\n data: await client.objectFactory(\n client,\n r.data as OntologyObjectV2[],\n undefined,\n undefined,\n await extractRdpDefinition(client, objectSet),\n args.$select,\n ),\n nextPageToken: r.nextPageToken,\n totalCount: r.totalCount,\n }) as unknown as Promise<FetchPageResult<Q, L, R, S, T>>;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"fetchPage.js","names":["OntologiesV2","addUserAgentAndRequestContextHeaders","extractRdpDefinition","resolveBaseObjectSetType","augment","type","properties","apiName","objectSetToSearchJsonV2","objectSet","expectedApiName","existingWhere","undefined","objectType","Error","interfaceType","where","value","resolveInterfaceObjectSet","interfaceTypeApiName","args","$includeAllBaseObjectProperties","objectSets","includeAllBaseObjectProperties","fetchInterfacePage","client","useSnapshot","$__UNSTABLE_useOldInterfaceApis","result","OntologyInterfaces","search","ontologyRid","applyFetchArgs","augmentedProperties","augmentedSharedPropertyTypes","otherInterfaceTypes","selectedObjectTypes","selectedSharedPropertyTypes","$select","preview","data","objectFactory","$includeRid","OntologyObjectSets","loadMultipleObjectTypes","select","excludeRid","snapshot","Promise","resolve","objectFactory2","interfaceToObjectTypeMappings","nextPageToken","totalCount","fetchPageInternal","fetchObjectPage","fetchPageWithErrorsInternal","e","error","fetchPage","fetchPageWithErrors","body","$nextPageToken","pageToken","$pageSize","pageSize","$orderBy","orderBy","fields","Object","entries","map","field","direction","r","load"],"sources":["fetchPage.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 Augment,\n Augments,\n FetchPageArgs,\n FetchPageResult,\n InterfaceDefinition,\n NullabilityAdherence,\n ObjectOrInterfaceDefinition,\n ObjectTypeDefinition,\n PropertyKeys,\n Result,\n} from \"@osdk/api\";\nimport type { PageSize, PageToken } from \"@osdk/foundry.core\";\nimport type {\n LoadObjectSetRequestV2,\n LoadObjectSetV2MultipleObjectTypesRequest,\n ObjectSet,\n OntologyObjectV2,\n SearchJsonQueryV2,\n SearchObjectsForInterfaceRequest,\n SearchOrderByV2,\n} from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport { extractRdpDefinition } from \"../util/extractRdpDefinition.js\";\nimport { resolveBaseObjectSetType } from \"../util/objectSetUtils.js\";\n\nexport function augment<\n Q extends ObjectOrInterfaceDefinition,\n T extends PropertyKeys<Q>,\n>(\n type: Q,\n ...properties: T[]\n): Augment<Q, T> {\n return { [type.apiName]: properties } as any;\n}\n\n/** @internal */\nexport function objectSetToSearchJsonV2(\n objectSet: ObjectSet,\n expectedApiName: string,\n existingWhere: SearchJsonQueryV2 | undefined = undefined,\n): SearchJsonQueryV2 | undefined {\n if (objectSet.type === \"base\" || objectSet.type === \"interfaceBase\") {\n if (objectSet.type === \"base\" && objectSet.objectType !== expectedApiName) {\n throw new Error(\n `Expected objectSet.objectType to be ${expectedApiName}, but got ${objectSet.objectType}`,\n );\n }\n if (\n objectSet.type === \"interfaceBase\"\n && objectSet.interfaceType !== expectedApiName\n ) {\n throw new Error(\n `Expected objectSet.objectType to be ${expectedApiName}, but got ${objectSet.interfaceType}`,\n );\n }\n\n return existingWhere;\n }\n\n if (objectSet.type === \"filter\") {\n return objectSetToSearchJsonV2(\n objectSet.objectSet,\n expectedApiName,\n existingWhere == null ? objectSet.where : {\n type: \"and\",\n value: [existingWhere, objectSet.where],\n },\n );\n }\n\n throw new Error(`Unsupported objectSet type: ${objectSet.type}`);\n}\n\n/** @internal */\nexport function resolveInterfaceObjectSet(\n objectSet: ObjectSet,\n interfaceTypeApiName: string,\n args: FetchPageArgs<any, any, any, any, any, any>,\n): ObjectSet {\n return args?.$includeAllBaseObjectProperties\n ? {\n type: \"intersect\",\n objectSets: [objectSet, {\n type: \"interfaceBase\",\n interfaceType: interfaceTypeApiName,\n includeAllBaseObjectProperties: true,\n }],\n }\n : objectSet;\n}\n\nasync function fetchInterfacePage<\n Q extends InterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n interfaceType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet,\n useSnapshot: boolean = false,\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n if (args.$__UNSTABLE_useOldInterfaceApis) {\n const result = await OntologiesV2.OntologyInterfaces\n .search(\n addUserAgentAndRequestContextHeaders(client, interfaceType),\n await client.ontologyRid,\n interfaceType.apiName,\n applyFetchArgs<SearchObjectsForInterfaceRequest>(args, {\n augmentedProperties: {},\n augmentedSharedPropertyTypes: {},\n otherInterfaceTypes: [],\n selectedObjectTypes: [],\n selectedSharedPropertyTypes: args.$select as undefined | string[]\n ?? [],\n where: objectSetToSearchJsonV2(objectSet, interfaceType.apiName),\n }),\n { preview: true },\n );\n\n result.data = await client.objectFactory(\n client,\n result.data as OntologyObjectV2[], // drop readonly\n interfaceType.apiName,\n !args.$includeRid,\n await extractRdpDefinition(client, objectSet),\n );\n return result as any;\n }\n const result = await OntologiesV2.OntologyObjectSets.loadMultipleObjectTypes(\n addUserAgentAndRequestContextHeaders(client, interfaceType),\n await client.ontologyRid,\n applyFetchArgs<LoadObjectSetV2MultipleObjectTypesRequest>(args, {\n objectSet: resolveInterfaceObjectSet(\n objectSet,\n interfaceType.apiName,\n args,\n ),\n select: ((args?.$select as string[] | undefined) ?? []),\n excludeRid: !args?.$includeRid,\n snapshot: useSnapshot,\n }),\n { preview: true },\n );\n return Promise.resolve({\n data: await client.objectFactory2(\n client,\n result.data,\n interfaceType.apiName,\n {},\n !args.$includeRid,\n args.$select,\n false,\n result.interfaceToObjectTypeMappings,\n ),\n nextPageToken: result.nextPageToken,\n totalCount: result.totalCount,\n }) as unknown as Promise<FetchPageResult<Q, L, R, S, T>>;\n}\n\n/** @internal */\nexport async function fetchPageInternal<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n A extends Augments,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n objectSet: ObjectSet,\n args: FetchPageArgs<Q, L, R, A, S, T> = {},\n useSnapshot: boolean = false,\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n if (objectType.type === \"interface\") {\n return await fetchInterfacePage(\n client,\n objectType,\n args,\n objectSet,\n useSnapshot,\n ) as any; // fixme\n } else {\n return await fetchObjectPage(\n client,\n objectType,\n args,\n objectSet,\n useSnapshot,\n ) as any; // fixme\n }\n}\n\n/** @internal */\nexport async function fetchPageWithErrorsInternal<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n A extends Augments,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n objectSet: ObjectSet,\n args: FetchPageArgs<Q, L, R, A, S, T> = {},\n): Promise<Result<FetchPageResult<Q, L, R, S, T>>> {\n try {\n const result = await fetchPageInternal(client, objectType, objectSet, args);\n return { value: result };\n } catch (e) {\n if (e instanceof Error) {\n return { error: e };\n }\n return { error: e as Error };\n }\n}\n\n/**\n * @param client\n * @param objectType\n * @param args\n * @param objectSet\n * @returns\n * @internal\n */\nexport async function fetchPage<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet = resolveBaseObjectSetType(objectType),\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n return fetchPageInternal(client, objectType, objectSet, args);\n}\n\n/** @internal */\nexport async function fetchPageWithErrors<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet = resolveBaseObjectSetType(objectType),\n): Promise<Result<FetchPageResult<Q, L, R, S, T>>> {\n return fetchPageWithErrorsInternal(client, objectType, objectSet, args);\n}\n\nfunction applyFetchArgs<\n X extends {\n orderBy?: SearchOrderByV2;\n pageToken?: PageToken;\n pageSize?: PageSize;\n },\n>(\n args: FetchPageArgs<any, any, any, any, any, any>,\n body: X,\n): X {\n if (args?.$nextPageToken) {\n body.pageToken = args.$nextPageToken;\n }\n\n if (args?.$pageSize != null) {\n body.pageSize = args.$pageSize;\n }\n\n if (args?.$orderBy != null) {\n body.orderBy = {\n fields: Object.entries(args.$orderBy).map(([field, direction]) => ({\n field,\n direction,\n })),\n };\n }\n\n return body;\n}\n\n/** @internal */\nexport async function fetchObjectPage<\n Q extends ObjectTypeDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, Augments, S, T>,\n objectSet: ObjectSet,\n useSnapshot: boolean = false,\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n const r = await OntologiesV2.OntologyObjectSets.load(\n addUserAgentAndRequestContextHeaders(client, objectType),\n await client.ontologyRid,\n applyFetchArgs<LoadObjectSetRequestV2>(args, {\n objectSet,\n // We have to do the following case because LoadObjectSetRequestV2 isn't readonly\n select: ((args?.$select as string[] | undefined) ?? []), // FIXME?\n excludeRid: !args?.$includeRid,\n snapshot: useSnapshot,\n }),\n );\n\n return Promise.resolve({\n data: await client.objectFactory(\n client,\n r.data as OntologyObjectV2[],\n undefined,\n undefined,\n await extractRdpDefinition(client, objectSet),\n args.$select,\n ),\n nextPageToken: r.nextPageToken,\n totalCount: r.totalCount,\n }) as unknown as Promise<FetchPageResult<Q, L, R, S, T>>;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -27,7 +27,7 @@ describe("media", () => {
27
27
  } = testSetup);
28
28
  testSetup.fauxFoundry.getDataStore($ontologyRid).registerMedia(objectTypeWithAllPropertyTypes.apiName, "mediaReference", new TextEncoder().encode(JSON.stringify({
29
29
  content: "Hello World"
30
- })), "application/json", "file1.txt", stubData.objectWithAllPropertyTypes1.mediaReference);
30
+ })), "application/json", "file1.txt", stubData.objectWithAllPropertyTypes1.mediaReference.reference.mediaSetViewItem.mediaItemRid);
31
31
  return () => {
32
32
  testSetup.apiServer.close();
33
33
  };
@@ -56,5 +56,24 @@ describe("media", () => {
56
56
  content: "Hello World"
57
57
  });
58
58
  });
59
+ it("gets media reference successfully", async () => {
60
+ const result = await client(objectTypeWithAllPropertyTypes).where({
61
+ id: stubData.objectWithAllPropertyTypes1.id
62
+ }).fetchPage();
63
+ const object1 = result.data[0];
64
+ expect(object1.mediaReference).toBeDefined();
65
+ const mediaReference = object1.mediaReference?.getMediaReference();
66
+ expect(mediaReference).toEqual({
67
+ mimeType: "application/pdf",
68
+ reference: {
69
+ type: "mediaSetViewItem",
70
+ mediaSetViewItem: {
71
+ mediaSetRid: "ri.mio.main.media-set.4153d42f-ca4b-4e42-8ca5-8e6aa7edb642",
72
+ mediaSetViewRid: "ri.mio.main.view.82a798ad-d637-4595-acc6-987bcf16629b",
73
+ mediaItemRid: "ri.mio.main.media-item.001ec98b-1620-4814-9e17-8e9c4e536225"
74
+ }
75
+ }
76
+ });
77
+ });
59
78
  });
60
79
  //# sourceMappingURL=media.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"media.test.js","names":["$ontologyRid","objectTypeWithAllPropertyTypes","LegacyFauxFoundry","startNodeApiServer","stubData","beforeAll","describe","expect","it","createClient","client","testSetup","fauxFoundry","getDataStore","registerMedia","apiName","TextEncoder","encode","JSON","stringify","content","objectWithAllPropertyTypes1","mediaReference","apiServer","close","result","where","id","fetchPage","object1","data","toBeDefined","mediaMetadata","fetchMetadata","toEqual","path","mediaType","sizeBytes","mediaContent","fetchContents","json"],"sources":["media.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 {\n LegacyFauxFoundry,\n startNodeApiServer,\n stubData,\n} from \"@osdk/shared.test\";\nimport { beforeAll, describe, expect, it } from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\n\ndescribe(\"media\", () => {\n let client: Client;\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(\n new LegacyFauxFoundry(),\n createClient,\n );\n\n ({ client } = testSetup);\n\n testSetup.fauxFoundry\n .getDataStore($ontologyRid)\n .registerMedia(\n objectTypeWithAllPropertyTypes.apiName,\n \"mediaReference\",\n new TextEncoder().encode(\n JSON.stringify({ content: \"Hello World\" }),\n ),\n \"application/json\",\n \"file1.txt\",\n stubData.objectWithAllPropertyTypes1.mediaReference,\n );\n\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"reads media 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.mediaReference).toBeDefined();\n const mediaMetadata = await object1.mediaReference?.fetchMetadata();\n expect(mediaMetadata).toEqual({\n path: \"file1.txt\",\n mediaType: \"application/json\",\n sizeBytes: 25,\n });\n });\n\n it(\"reads media content 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.mediaReference).toBeDefined();\n const mediaContent = await object1?.mediaReference?.fetchContents();\n expect(await mediaContent!.json()).toEqual({\n content: \"Hello World\",\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,SACEC,iBAAiB,EACjBC,kBAAkB,EAClBC,QAAQ,QACH,mBAAmB;AAC1B,SAASC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAExD,SAASC,YAAY,QAAQ,oBAAoB;AAEjDH,QAAQ,CAAC,OAAO,EAAE,MAAM;EACtB,IAAII,MAAc;EAElBL,SAAS,CAAC,MAAM;IACd,MAAMM,SAAS,GAAGR,kBAAkB,CAClC,IAAID,iBAAiB,CAAC,CAAC,EACvBO,YACF,CAAC;IAED,CAAC;MAAEC;IAAO,CAAC,GAAGC,SAAS;IAEvBA,SAAS,CAACC,WAAW,CAClBC,YAAY,CAACb,YAAY,CAAC,CAC1Bc,aAAa,CACZb,8BAA8B,CAACc,OAAO,EACtC,gBAAgB,EAChB,IAAIC,WAAW,CAAC,CAAC,CAACC,MAAM,CACtBC,IAAI,CAACC,SAAS,CAAC;MAAEC,OAAO,EAAE;IAAc,CAAC,CAC3C,CAAC,EACD,kBAAkB,EAClB,WAAW,EACXhB,QAAQ,CAACiB,2BAA2B,CAACC,cACvC,CAAC;IAEH,OAAO,MAAM;MACXX,SAAS,CAACY,SAAS,CAACC,KAAK,CAAC,CAAC;IAC7B,CAAC;EACH,CAAC,CAAC;EAEFhB,EAAE,CAAC,mCAAmC,EAAE,YAAY;IAClD,MAAMiB,MAAM,GAAG,MAAMf,MAAM,CACzBT,8BACF,CAAC,CACEyB,KAAK,CAAC;MAAEC,EAAE,EAAEvB,QAAQ,CAACiB,2BAA2B,CAACM;IAAG,CAAC,CAAC,CAACC,SAAS,CAAC,CAAC;IAErE,MAAMC,OAAO,GAAGJ,MAAM,CAACK,IAAI,CAAC,CAAC,CAAC;IAC9BvB,MAAM,CAACsB,OAAO,CAACP,cAAc,CAAC,CAACS,WAAW,CAAC,CAAC;IAC5C,MAAMC,aAAa,GAAG,MAAMH,OAAO,CAACP,cAAc,EAAEW,aAAa,CAAC,CAAC;IACnE1B,MAAM,CAACyB,aAAa,CAAC,CAACE,OAAO,CAAC;MAC5BC,IAAI,EAAE,WAAW;MACjBC,SAAS,EAAE,kBAAkB;MAC7BC,SAAS,EAAE;IACb,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF7B,EAAE,CAAC,kCAAkC,EAAE,YAAY;IACjD,MAAMiB,MAAM,GAAG,MAAMf,MAAM,CAACT,8BAA8B,CAAC,CACxDyB,KAAK,CAAC;MAAEC,EAAE,EAAEvB,QAAQ,CAACiB,2BAA2B,CAACM;IAAG,CAAC,CAAC,CAACC,SAAS,CAAC,CAAC;IAErE,MAAMC,OAAO,GAAGJ,MAAM,CAACK,IAAI,CAAC,CAAC,CAAC;IAC9BvB,MAAM,CAACsB,OAAO,CAACP,cAAc,CAAC,CAACS,WAAW,CAAC,CAAC;IAC5C,MAAMO,YAAY,GAAG,MAAMT,OAAO,EAAEP,cAAc,EAAEiB,aAAa,CAAC,CAAC;IACnEhC,MAAM,CAAC,MAAM+B,YAAY,CAAEE,IAAI,CAAC,CAAC,CAAC,CAACN,OAAO,CAAC;MACzCd,OAAO,EAAE;IACX,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"media.test.js","names":["$ontologyRid","objectTypeWithAllPropertyTypes","LegacyFauxFoundry","startNodeApiServer","stubData","beforeAll","describe","expect","it","createClient","client","testSetup","fauxFoundry","getDataStore","registerMedia","apiName","TextEncoder","encode","JSON","stringify","content","objectWithAllPropertyTypes1","mediaReference","reference","mediaSetViewItem","mediaItemRid","apiServer","close","result","where","id","fetchPage","object1","data","toBeDefined","mediaMetadata","fetchMetadata","toEqual","path","mediaType","sizeBytes","mediaContent","fetchContents","json","getMediaReference","mimeType","type","mediaSetRid","mediaSetViewRid"],"sources":["media.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 {\n LegacyFauxFoundry,\n startNodeApiServer,\n stubData,\n} from \"@osdk/shared.test\";\nimport { beforeAll, describe, expect, it } from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\n\ndescribe(\"media\", () => {\n let client: Client;\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(\n new LegacyFauxFoundry(),\n createClient,\n );\n\n ({ client } = testSetup);\n\n testSetup.fauxFoundry\n .getDataStore($ontologyRid)\n .registerMedia(\n objectTypeWithAllPropertyTypes.apiName,\n \"mediaReference\",\n new TextEncoder().encode(\n JSON.stringify({ content: \"Hello World\" }),\n ),\n \"application/json\",\n \"file1.txt\",\n stubData.objectWithAllPropertyTypes1.mediaReference.reference\n .mediaSetViewItem.mediaItemRid,\n );\n\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"reads media 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.mediaReference).toBeDefined();\n const mediaMetadata = await object1.mediaReference?.fetchMetadata();\n expect(mediaMetadata).toEqual({\n path: \"file1.txt\",\n mediaType: \"application/json\",\n sizeBytes: 25,\n });\n });\n\n it(\"reads media content 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.mediaReference).toBeDefined();\n const mediaContent = await object1?.mediaReference?.fetchContents();\n expect(await mediaContent!.json()).toEqual({\n content: \"Hello World\",\n });\n });\n\n it(\"gets media reference 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.mediaReference).toBeDefined();\n const mediaReference = object1.mediaReference?.getMediaReference();\n expect(mediaReference).toEqual({\n mimeType: \"application/pdf\",\n reference: {\n type: \"mediaSetViewItem\",\n mediaSetViewItem: {\n mediaSetRid:\n \"ri.mio.main.media-set.4153d42f-ca4b-4e42-8ca5-8e6aa7edb642\",\n mediaSetViewRid:\n \"ri.mio.main.view.82a798ad-d637-4595-acc6-987bcf16629b\",\n mediaItemRid:\n \"ri.mio.main.media-item.001ec98b-1620-4814-9e17-8e9c4e536225\",\n },\n },\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -17,4 +17,7 @@
17
17
  export function isMediaReference(o) {
18
18
  return typeof o === `object` && typeof o.mimeType === "string" && "reference" in o && typeof o.reference === "object" && o.reference.type === "mediaSetViewItem" && "mediaSetViewItem" in o.reference && typeof o.reference.mediaSetViewItem === "object" && typeof o.reference.mediaSetViewItem.mediaSetRid === "string" && typeof o.reference.mediaSetViewItem.mediaSetViewRid === "string" && typeof o.reference.mediaSetViewItem.mediaItemRid === "string";
19
19
  }
20
+ export function isMediaUpload(o) {
21
+ return typeof o === "object" && "path" in o && typeof o.path === "string" && "data" in o && typeof o.data === "object" && o.data instanceof Blob;
22
+ }
20
23
  //# sourceMappingURL=mediaUpload.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mediaUpload.js","names":["isMediaReference","o","mimeType","reference","type","mediaSetViewItem","mediaSetRid","mediaSetViewRid","mediaItemRid"],"sources":["mediaUpload.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 { MediaReference } from \"@osdk/api\";\n\nexport function isMediaReference(o: any): o is MediaReference {\n return typeof o === `object`\n && typeof o.mimeType === \"string\"\n && \"reference\" in o\n && typeof o.reference === \"object\"\n && o.reference.type === \"mediaSetViewItem\"\n && \"mediaSetViewItem\" in o.reference\n && typeof o.reference.mediaSetViewItem === \"object\"\n && typeof o.reference.mediaSetViewItem.mediaSetRid === \"string\"\n && typeof o.reference.mediaSetViewItem.mediaSetViewRid === \"string\"\n && typeof o.reference.mediaSetViewItem.mediaItemRid === \"string\";\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,OAAO,SAASA,gBAAgBA,CAACC,CAAM,EAAuB;EAC5D,OAAO,OAAOA,CAAC,KAAK,QAAQ,IACvB,OAAOA,CAAC,CAACC,QAAQ,KAAK,QAAQ,IAC9B,WAAW,IAAID,CAAC,IAChB,OAAOA,CAAC,CAACE,SAAS,KAAK,QAAQ,IAC/BF,CAAC,CAACE,SAAS,CAACC,IAAI,KAAK,kBAAkB,IACvC,kBAAkB,IAAIH,CAAC,CAACE,SAAS,IACjC,OAAOF,CAAC,CAACE,SAAS,CAACE,gBAAgB,KAAK,QAAQ,IAChD,OAAOJ,CAAC,CAACE,SAAS,CAACE,gBAAgB,CAACC,WAAW,KAAK,QAAQ,IAC5D,OAAOL,CAAC,CAACE,SAAS,CAACE,gBAAgB,CAACE,eAAe,KAAK,QAAQ,IAChE,OAAON,CAAC,CAACE,SAAS,CAACE,gBAAgB,CAACG,YAAY,KAAK,QAAQ;AACpE","ignoreList":[]}
1
+ {"version":3,"file":"mediaUpload.js","names":["isMediaReference","o","mimeType","reference","type","mediaSetViewItem","mediaSetRid","mediaSetViewRid","mediaItemRid","isMediaUpload","path","data","Blob"],"sources":["mediaUpload.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 { MediaReference, MediaUpload } from \"@osdk/api\";\n\nexport function isMediaReference(o: any): o is MediaReference {\n return typeof o === `object`\n && typeof o.mimeType === \"string\"\n && \"reference\" in o\n && typeof o.reference === \"object\"\n && o.reference.type === \"mediaSetViewItem\"\n && \"mediaSetViewItem\" in o.reference\n && typeof o.reference.mediaSetViewItem === \"object\"\n && typeof o.reference.mediaSetViewItem.mediaSetRid === \"string\"\n && typeof o.reference.mediaSetViewItem.mediaSetViewRid === \"string\"\n && typeof o.reference.mediaSetViewItem.mediaItemRid === \"string\";\n}\n\nexport function isMediaUpload(o: any): o is MediaUpload {\n return typeof o === \"object\"\n && \"path\" in o\n && typeof o.path === \"string\"\n && \"data\" in o\n && typeof o.data === \"object\"\n && o.data instanceof Blob;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,OAAO,SAASA,gBAAgBA,CAACC,CAAM,EAAuB;EAC5D,OAAO,OAAOA,CAAC,KAAK,QAAQ,IACvB,OAAOA,CAAC,CAACC,QAAQ,KAAK,QAAQ,IAC9B,WAAW,IAAID,CAAC,IAChB,OAAOA,CAAC,CAACE,SAAS,KAAK,QAAQ,IAC/BF,CAAC,CAACE,SAAS,CAACC,IAAI,KAAK,kBAAkB,IACvC,kBAAkB,IAAIH,CAAC,CAACE,SAAS,IACjC,OAAOF,CAAC,CAACE,SAAS,CAACE,gBAAgB,KAAK,QAAQ,IAChD,OAAOJ,CAAC,CAACE,SAAS,CAACE,gBAAgB,CAACC,WAAW,KAAK,QAAQ,IAC5D,OAAOL,CAAC,CAACE,SAAS,CAACE,gBAAgB,CAACE,eAAe,KAAK,QAAQ,IAChE,OAAON,CAAC,CAACE,SAAS,CAACE,gBAAgB,CAACG,YAAY,KAAK,QAAQ;AACpE;AAEA,OAAO,SAASC,aAAaA,CAACR,CAAM,EAAoB;EACtD,OAAO,OAAOA,CAAC,KAAK,QAAQ,IACvB,MAAM,IAAIA,CAAC,IACX,OAAOA,CAAC,CAACS,IAAI,KAAK,QAAQ,IAC1B,MAAM,IAAIT,CAAC,IACX,OAAOA,CAAC,CAACU,IAAI,KAAK,QAAQ,IAC1BV,CAAC,CAACU,IAAI,YAAYC,IAAI;AAC7B","ignoreList":[]}
@@ -343,7 +343,8 @@ describe.each(["https://stack.palantir.com", "https://stack.palantirCustom.com/f
343
343
  },
344
344
  rid: "",
345
345
  type: "interface",
346
- implements: []
346
+ implements: [],
347
+ description: undefined
347
348
  };
348
349
  const fooInterfaceOsdkDef = {
349
350
  apiName: "FooInterface",
@@ -383,7 +384,10 @@ describe.each(["https://stack.palantir.com", "https://stack.palantirCustom.com/f
383
384
  status: "ACTIVE",
384
385
  displayName: "",
385
386
  links: {},
386
- rid: ""
387
+ rid: "",
388
+ icon: undefined,
389
+ visibility: undefined,
390
+ description: undefined
387
391
  };
388
392
  it("Correctly updates the interface and underlying object", () => {
389
393
  const employeeOsdkObject = createOsdkObject(client[additionalContext], EmployeeFetchedMetadata, {