@osdk/client 2.2.0-beta.9 → 2.2.0-rc.24
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.
- package/CHANGELOG.md +383 -0
- package/build/browser/MinimalClientContext.js.map +1 -1
- package/build/browser/__unstable/ConjureSupport.js.map +1 -1
- package/build/browser/actions/ActionValidationError.js +1 -1
- package/build/browser/actions/ActionValidationError.js.map +1 -1
- package/build/browser/actions/actions.test.js +134 -89
- package/build/browser/actions/actions.test.js.map +1 -1
- package/build/browser/actions/applyAction.js.map +1 -1
- package/build/browser/createClient.js +5 -1
- package/build/browser/createClient.js.map +1 -1
- package/build/browser/createClient.test.js +14 -6
- package/build/browser/createClient.test.js.map +1 -1
- package/build/browser/createMinimalClient.js.map +1 -1
- package/build/browser/createMinimalClientHelper.js +25 -0
- package/build/browser/createMinimalClientHelper.js.map +1 -0
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.js +4 -21
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.test.js +14 -14
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.test.js.map +1 -1
- package/build/browser/fetchMetadata.js +1 -1
- package/build/browser/fetchMetadata.js.map +1 -1
- package/build/browser/fetchMetadata.test.js +11 -9
- package/build/browser/fetchMetadata.test.js.map +1 -1
- package/build/browser/index.js +0 -1
- package/build/browser/index.js.map +1 -1
- package/build/{esm/util/isOsdkBaseObject.js → browser/intellisense.test.helpers/showsObjectPropertyJsdoc.js} +9 -4
- package/build/browser/intellisense.test.helpers/showsObjectPropertyJsdoc.js.map +1 -0
- package/build/browser/intellisense.test.js +17 -1
- package/build/browser/intellisense.test.js.map +1 -1
- package/build/browser/logger/BaseLogger.js +59 -0
- package/build/browser/logger/BaseLogger.js.map +1 -0
- package/build/browser/logger/BrowserLogger.js +67 -0
- package/build/browser/logger/BrowserLogger.js.map +1 -0
- package/build/browser/logger/MinimalLogger.js +39 -0
- package/build/browser/logger/MinimalLogger.js.map +1 -0
- package/build/browser/logger/MinimalLogger.test.js +60 -0
- package/build/browser/logger/MinimalLogger.test.js.map +1 -0
- package/build/browser/logger/TestLogger.js +56 -0
- package/build/browser/logger/TestLogger.js.map +1 -0
- package/build/browser/object/attachment.test.js +20 -7
- package/build/browser/object/attachment.test.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js +4 -0
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js +44 -33
- package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects.js +4 -14
- package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects.test.js +39 -33
- package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
- package/build/browser/object/fetchPage.js +4 -3
- package/build/browser/object/fetchPage.js.map +1 -1
- package/build/browser/object/geotimeseriesreference.test.js +56 -134
- package/build/browser/object/geotimeseriesreference.test.js.map +1 -1
- package/build/browser/object/media.test.js +19 -14
- package/build/browser/object/media.test.js.map +1 -1
- package/build/browser/object/object.test.js +96 -89
- package/build/browser/object/object.test.js.map +1 -1
- package/build/browser/object/timeseries.test.js +119 -85
- package/build/browser/object/timeseries.test.js.map +1 -1
- package/build/browser/objectSet/InterfaceObjectSet.test.js +24 -20
- package/build/browser/objectSet/InterfaceObjectSet.test.js.map +1 -1
- package/build/browser/objectSet/ObjectSet.test.js +181 -66
- package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.js +2 -2
- package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +19 -12
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
- package/build/browser/objectSet/createObjectSet.js +2 -1
- package/build/browser/objectSet/createObjectSet.js.map +1 -1
- package/build/browser/observable/internal/ActionApplication.js +4 -4
- package/build/browser/observable/internal/ActionApplication.js.map +1 -1
- package/build/browser/observable/internal/BulkObjectLoader.js +93 -0
- package/build/browser/observable/internal/BulkObjectLoader.js.map +1 -0
- package/build/browser/observable/internal/BulkObjectLoader.test.js +112 -0
- package/build/browser/observable/internal/BulkObjectLoader.test.js.map +1 -0
- package/build/browser/observable/internal/ListQuery.js +4 -1
- package/build/browser/observable/internal/ListQuery.js.map +1 -1
- package/build/browser/observable/internal/ObjectQuery.js +3 -6
- package/build/browser/observable/internal/ObjectQuery.js.map +1 -1
- package/build/browser/observable/internal/OptimisticJob.js +1 -1
- package/build/browser/observable/internal/OptimisticJob.js.map +1 -1
- package/build/browser/observable/internal/Query.js.map +1 -1
- package/build/browser/observable/internal/Store.js +2 -2
- package/build/browser/observable/internal/Store.js.map +1 -1
- package/build/browser/observable/internal/Store.test.js +215 -206
- package/build/browser/observable/internal/Store.test.js.map +1 -1
- package/build/browser/observable/internal/objectMatchesWhereClause.js +0 -2
- package/build/browser/observable/internal/objectMatchesWhereClause.js.map +1 -1
- package/build/browser/observable/internal/testUtils.js +4 -3
- package/build/browser/observable/internal/testUtils.js.map +1 -1
- package/build/browser/ontology/OntologyProvider.js.map +1 -1
- package/build/browser/ontology/StandardOntologyProvider.js +12 -5
- package/build/browser/ontology/StandardOntologyProvider.js.map +1 -1
- package/build/browser/ontology/StandardOntologyProvider.test.js +17 -16
- package/build/browser/ontology/StandardOntologyProvider.test.js.map +1 -1
- package/build/browser/ontology/loadFullObjectMetadata.js +0 -1
- package/build/browser/ontology/loadFullObjectMetadata.js.map +1 -1
- package/build/browser/ontology/loadQueryMetadata.js +5 -2
- package/build/browser/ontology/loadQueryMetadata.js.map +1 -1
- package/build/browser/public/internal.js +2 -0
- package/build/browser/public/internal.js.map +1 -1
- package/build/browser/public/unstable-do-not-use.js +1 -0
- package/build/browser/public/unstable-do-not-use.js.map +1 -1
- package/build/browser/public-utils/osdkConfig.js +49 -0
- package/build/browser/public-utils/osdkConfig.js.map +1 -0
- package/build/browser/{object/createObjectSpecifierFromPrimaryKey.js → public-utils/vite-env.d.ts} +2 -3
- package/build/browser/queries/applyQuery.js +6 -4
- package/build/browser/queries/applyQuery.js.map +1 -1
- package/build/browser/queries/queries.test.js +93 -27
- package/build/browser/queries/queries.test.js.map +1 -1
- package/build/browser/queries/types.js.map +1 -1
- package/build/browser/tsserver.js.map +1 -1
- package/build/browser/util/UserAgent.js +1 -1
- package/build/browser/util/UserAgent.js.map +1 -1
- package/build/browser/util/extractRdpDefinition.js +140 -0
- package/build/browser/util/extractRdpDefinition.js.map +1 -0
- package/build/browser/util/extractRdpDefinition.test.js +233 -0
- package/build/browser/util/extractRdpDefinition.test.js.map +1 -0
- package/build/browser/util/{isOsdkBaseObject.js → isObjectSpecifiersObject.js} +2 -2
- package/build/browser/util/isObjectSpecifiersObject.js.map +1 -0
- package/build/browser/util/isPoint.js +20 -0
- package/build/browser/util/isPoint.js.map +1 -0
- package/build/browser/util/objectSpecifierUtils.js +48 -0
- package/build/browser/util/objectSpecifierUtils.js.map +1 -0
- package/build/browser/util/objectSpecifierUtils.test.js +42 -0
- package/build/browser/util/objectSpecifierUtils.test.js.map +1 -0
- package/build/browser/util/toDataValue.js +6 -2
- package/build/browser/util/toDataValue.js.map +1 -1
- package/build/browser/util/toDataValue.test.js +37 -16
- package/build/browser/util/toDataValue.test.js.map +1 -1
- package/build/browser/util/toDataValueQueries.js +4 -6
- package/build/browser/util/toDataValueQueries.js.map +1 -1
- package/build/cjs/{Client-DBTcM9gB.d.cts → Client-CgL2LKN9.d.cts} +6 -7
- package/build/cjs/{chunk-MCQVHD2F.cjs → chunk-GTDO4U7H.cjs} +124 -72
- package/build/cjs/chunk-GTDO4U7H.cjs.map +1 -0
- package/build/cjs/{chunk-EY52J5Z4.cjs → chunk-W5PFESFR.cjs} +163 -34
- package/build/cjs/chunk-W5PFESFR.cjs.map +1 -0
- package/build/cjs/index.cjs +188 -166
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +4 -24
- package/build/cjs/public/internal.cjs +61 -7
- package/build/cjs/public/internal.cjs.map +1 -1
- package/build/cjs/public/internal.d.cts +50 -3
- package/build/cjs/public/unstable-do-not-use.cjs +224 -103
- package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
- package/build/cjs/public/unstable-do-not-use.d.cts +12 -3
- package/build/esm/MinimalClientContext.js.map +1 -1
- package/build/esm/__unstable/ConjureSupport.js.map +1 -1
- package/build/esm/actions/ActionValidationError.js +1 -1
- package/build/esm/actions/ActionValidationError.js.map +1 -1
- package/build/esm/actions/actions.test.js +134 -89
- package/build/esm/actions/actions.test.js.map +1 -1
- package/build/esm/actions/applyAction.js.map +1 -1
- package/build/esm/createClient.js +5 -1
- package/build/esm/createClient.js.map +1 -1
- package/build/esm/createClient.test.js +14 -6
- package/build/esm/createClient.test.js.map +1 -1
- package/build/esm/createMinimalClient.js.map +1 -1
- package/build/esm/createMinimalClientHelper.js +25 -0
- package/build/esm/createMinimalClientHelper.js.map +1 -0
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.js +4 -21
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.test.js +14 -14
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.test.js.map +1 -1
- package/build/esm/fetchMetadata.js +1 -1
- package/build/esm/fetchMetadata.js.map +1 -1
- package/build/esm/fetchMetadata.test.js +11 -9
- package/build/esm/fetchMetadata.test.js.map +1 -1
- package/build/esm/index.js +0 -1
- package/build/esm/index.js.map +1 -1
- package/build/esm/{util/isOsdkObject.js → intellisense.test.helpers/showsObjectPropertyJsdoc.js} +9 -4
- package/build/esm/intellisense.test.helpers/showsObjectPropertyJsdoc.js.map +1 -0
- package/build/esm/intellisense.test.js +17 -1
- package/build/esm/intellisense.test.js.map +1 -1
- package/build/esm/logger/BaseLogger.js +59 -0
- package/build/esm/logger/BaseLogger.js.map +1 -0
- package/build/esm/logger/BrowserLogger.js +67 -0
- package/build/esm/logger/BrowserLogger.js.map +1 -0
- package/build/esm/logger/MinimalLogger.js +39 -0
- package/build/esm/logger/MinimalLogger.js.map +1 -0
- package/build/esm/logger/MinimalLogger.test.js +60 -0
- package/build/esm/logger/MinimalLogger.test.js.map +1 -0
- package/build/esm/logger/TestLogger.js +56 -0
- package/build/esm/logger/TestLogger.js.map +1 -0
- package/build/esm/object/attachment.test.js +20 -7
- package/build/esm/object/attachment.test.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js +4 -0
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js +44 -33
- package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects.js +4 -14
- package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects.test.js +39 -33
- package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
- package/build/esm/object/fetchPage.js +4 -3
- package/build/esm/object/fetchPage.js.map +1 -1
- package/build/esm/object/geotimeseriesreference.test.js +56 -134
- package/build/esm/object/geotimeseriesreference.test.js.map +1 -1
- package/build/esm/object/media.test.js +19 -14
- package/build/esm/object/media.test.js.map +1 -1
- package/build/esm/object/object.test.js +96 -89
- package/build/esm/object/object.test.js.map +1 -1
- package/build/esm/object/timeseries.test.js +119 -85
- package/build/esm/object/timeseries.test.js.map +1 -1
- package/build/esm/objectSet/InterfaceObjectSet.test.js +24 -20
- package/build/esm/objectSet/InterfaceObjectSet.test.js.map +1 -1
- package/build/esm/objectSet/ObjectSet.test.js +181 -66
- package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.js +2 -2
- package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +19 -12
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
- package/build/esm/objectSet/createObjectSet.js +2 -1
- package/build/esm/objectSet/createObjectSet.js.map +1 -1
- package/build/esm/observable/internal/ActionApplication.js +4 -4
- package/build/esm/observable/internal/ActionApplication.js.map +1 -1
- package/build/esm/observable/internal/BulkObjectLoader.js +93 -0
- package/build/esm/observable/internal/BulkObjectLoader.js.map +1 -0
- package/build/esm/observable/internal/BulkObjectLoader.test.js +112 -0
- package/build/esm/observable/internal/BulkObjectLoader.test.js.map +1 -0
- package/build/esm/observable/internal/ListQuery.js +4 -1
- package/build/esm/observable/internal/ListQuery.js.map +1 -1
- package/build/esm/observable/internal/ObjectQuery.js +3 -6
- package/build/esm/observable/internal/ObjectQuery.js.map +1 -1
- package/build/esm/observable/internal/OptimisticJob.js +1 -1
- package/build/esm/observable/internal/OptimisticJob.js.map +1 -1
- package/build/esm/observable/internal/Query.js.map +1 -1
- package/build/esm/observable/internal/Store.js +2 -2
- package/build/esm/observable/internal/Store.js.map +1 -1
- package/build/esm/observable/internal/Store.test.js +215 -206
- package/build/esm/observable/internal/Store.test.js.map +1 -1
- package/build/esm/observable/internal/objectMatchesWhereClause.js +0 -2
- package/build/esm/observable/internal/objectMatchesWhereClause.js.map +1 -1
- package/build/esm/observable/internal/testUtils.js +4 -3
- package/build/esm/observable/internal/testUtils.js.map +1 -1
- package/build/esm/ontology/OntologyProvider.js.map +1 -1
- package/build/esm/ontology/StandardOntologyProvider.js +12 -5
- package/build/esm/ontology/StandardOntologyProvider.js.map +1 -1
- package/build/esm/ontology/StandardOntologyProvider.test.js +17 -16
- package/build/esm/ontology/StandardOntologyProvider.test.js.map +1 -1
- package/build/esm/ontology/loadFullObjectMetadata.js +0 -1
- package/build/esm/ontology/loadFullObjectMetadata.js.map +1 -1
- package/build/esm/ontology/loadQueryMetadata.js +5 -2
- package/build/esm/ontology/loadQueryMetadata.js.map +1 -1
- package/build/esm/public/internal.js +2 -0
- package/build/esm/public/internal.js.map +1 -1
- package/build/esm/public/unstable-do-not-use.js +1 -0
- package/build/esm/public/unstable-do-not-use.js.map +1 -1
- package/build/esm/public-utils/osdkConfig.js +49 -0
- package/build/esm/public-utils/osdkConfig.js.map +1 -0
- package/build/esm/{object/createObjectSpecifierFromPrimaryKey.js → public-utils/vite-env.d.ts} +2 -3
- package/build/esm/queries/applyQuery.js +6 -4
- package/build/esm/queries/applyQuery.js.map +1 -1
- package/build/esm/queries/queries.test.js +93 -27
- package/build/esm/queries/queries.test.js.map +1 -1
- package/build/esm/queries/types.js.map +1 -1
- package/build/esm/tsserver.js.map +1 -1
- package/build/esm/util/UserAgent.js +1 -1
- package/build/esm/util/UserAgent.js.map +1 -1
- package/build/esm/util/extractRdpDefinition.js +140 -0
- package/build/esm/util/extractRdpDefinition.js.map +1 -0
- package/build/esm/util/extractRdpDefinition.test.js +233 -0
- package/build/esm/util/extractRdpDefinition.test.js.map +1 -0
- package/build/{browser/util/isOsdkObject.js → esm/util/isObjectSpecifiersObject.js} +2 -2
- package/build/esm/util/isObjectSpecifiersObject.js.map +1 -0
- package/build/esm/util/isPoint.js +20 -0
- package/build/esm/util/isPoint.js.map +1 -0
- package/build/esm/util/objectSpecifierUtils.js +48 -0
- package/build/esm/util/objectSpecifierUtils.js.map +1 -0
- package/build/esm/util/objectSpecifierUtils.test.js +42 -0
- package/build/esm/util/objectSpecifierUtils.test.js.map +1 -0
- package/build/esm/util/toDataValue.js +6 -2
- package/build/esm/util/toDataValue.js.map +1 -1
- package/build/esm/util/toDataValue.test.js +37 -16
- package/build/esm/util/toDataValue.test.js.map +1 -1
- package/build/esm/util/toDataValueQueries.js +4 -6
- package/build/esm/util/toDataValueQueries.js.map +1 -1
- package/build/types/MinimalClientContext.d.ts +1 -1
- package/build/types/MinimalClientContext.d.ts.map +1 -1
- package/build/types/__unstable/ConjureSupport.d.ts +2 -2
- package/build/types/actions/applyAction.d.ts +1 -2
- package/build/types/actions/applyAction.d.ts.map +1 -1
- package/build/types/createClient.d.ts +1 -1
- package/build/types/createClient.d.ts.map +1 -1
- package/build/types/createClient.test.d.ts +2 -1
- package/build/types/createClient.test.d.ts.map +1 -1
- package/build/types/createMinimalClientHelper.d.ts +1 -0
- package/build/types/createMinimalClientHelper.d.ts.map +1 -0
- package/build/types/index.d.ts +4 -6
- package/build/types/index.d.ts.map +1 -1
- package/build/types/intellisense.test.helpers/showsObjectPropertyJsdoc.d.ts +1 -0
- package/build/types/intellisense.test.helpers/showsObjectPropertyJsdoc.d.ts.map +1 -0
- package/build/types/logger/BaseLogger.d.ts +33 -0
- package/build/types/logger/BaseLogger.d.ts.map +1 -0
- package/build/types/logger/BrowserLogger.d.ts +9 -0
- package/build/types/logger/BrowserLogger.d.ts.map +1 -0
- package/build/types/logger/MinimalLogger.d.ts +9 -0
- package/build/types/logger/MinimalLogger.d.ts.map +1 -0
- package/build/types/logger/MinimalLogger.test.d.ts +1 -0
- package/build/types/logger/MinimalLogger.test.d.ts.map +1 -0
- package/build/types/logger/TestLogger.d.ts +14 -0
- package/build/types/logger/TestLogger.d.ts.map +1 -0
- package/build/types/object/convertWireToOsdkObjects.d.ts +4 -4
- package/build/types/object/convertWireToOsdkObjects.d.ts.map +1 -1
- package/build/types/object/fetchPage.d.ts.map +1 -1
- package/build/types/object/object.test.d.ts.map +1 -1
- package/build/types/objectSet/ObjectSet.test.d.ts.map +1 -1
- package/build/types/observable/internal/ActionApplication.d.ts +2 -2
- package/build/types/observable/internal/ActionApplication.d.ts.map +1 -1
- package/build/types/observable/internal/BulkObjectLoader.d.ts +8 -0
- package/build/types/observable/internal/BulkObjectLoader.d.ts.map +1 -0
- package/build/types/observable/internal/BulkObjectLoader.test.d.ts +1 -0
- package/build/types/observable/internal/BulkObjectLoader.test.d.ts.map +1 -0
- package/build/types/observable/internal/ListQuery.d.ts.map +1 -1
- package/build/types/observable/internal/ObjectQuery.d.ts.map +1 -1
- package/build/types/observable/internal/OptimisticJob.d.ts.map +1 -1
- package/build/types/observable/internal/Query.d.ts +2 -2
- package/build/types/observable/internal/Query.d.ts.map +1 -1
- package/build/types/observable/internal/Store.d.ts +2 -2
- package/build/types/observable/internal/Store.d.ts.map +1 -1
- package/build/types/observable/internal/testUtils.d.ts +1 -2
- package/build/types/observable/internal/testUtils.d.ts.map +1 -1
- package/build/types/ontology/OntologyProvider.d.ts +1 -1
- package/build/types/ontology/OntologyProvider.d.ts.map +1 -1
- package/build/types/ontology/loadQueryMetadata.d.ts +1 -1
- package/build/types/ontology/loadQueryMetadata.d.ts.map +1 -1
- package/build/types/public/internal.d.ts +2 -0
- package/build/types/public/internal.d.ts.map +1 -1
- package/build/types/public/unstable-do-not-use.d.ts +4 -2
- package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
- package/build/types/public-utils/osdkConfig.d.ts +8 -0
- package/build/types/public-utils/osdkConfig.d.ts.map +1 -0
- package/build/types/public-utils/vite-env.d.d.ts +3 -0
- package/build/types/public-utils/vite-env.d.d.ts.map +1 -0
- package/build/types/queries/applyQuery.d.ts +2 -2
- package/build/types/queries/applyQuery.d.ts.map +1 -1
- package/build/types/queries/types.d.ts +1 -1
- package/build/types/queries/types.d.ts.map +1 -1
- package/build/types/tsserver.d.ts +1 -1
- package/build/types/tsserver.d.ts.map +1 -1
- package/build/types/util/extractRdpDefinition.d.ts +4 -0
- package/build/types/util/extractRdpDefinition.d.ts.map +1 -0
- package/build/types/util/extractRdpDefinition.test.d.ts +1 -0
- package/build/types/util/extractRdpDefinition.test.d.ts.map +1 -0
- package/build/types/util/isObjectSpecifiersObject.d.ts +5 -0
- package/build/types/util/isObjectSpecifiersObject.d.ts.map +1 -0
- package/build/types/util/isPoint.d.ts +1 -0
- package/build/types/util/isPoint.d.ts.map +1 -0
- package/build/types/util/objectSpecifierUtils.d.ts +24 -0
- package/build/types/util/objectSpecifierUtils.d.ts.map +1 -0
- package/build/types/util/objectSpecifierUtils.test.d.ts +1 -0
- package/build/types/util/objectSpecifierUtils.test.d.ts.map +1 -0
- package/package.json +16 -15
- package/build/browser/Logger.js +0 -2
- package/build/browser/Logger.js.map +0 -1
- package/build/browser/object/createObjectSpecifierFromPrimaryKey.js.map +0 -1
- package/build/browser/util/isOsdkBaseObject.js.map +0 -1
- package/build/browser/util/isOsdkObject.js.map +0 -1
- package/build/cjs/chunk-EY52J5Z4.cjs.map +0 -1
- package/build/cjs/chunk-MCQVHD2F.cjs.map +0 -1
- package/build/cjs/chunk-Q7SFCCGT.cjs +0 -11
- package/build/cjs/chunk-Q7SFCCGT.cjs.map +0 -1
- package/build/cjs/graphql-RGM5SRWV.cjs +0 -10532
- package/build/cjs/graphql-RGM5SRWV.cjs.map +0 -1
- package/build/esm/Logger.js +0 -2
- package/build/esm/Logger.js.map +0 -1
- package/build/esm/object/createObjectSpecifierFromPrimaryKey.js.map +0 -1
- package/build/esm/util/isOsdkBaseObject.js.map +0 -1
- package/build/esm/util/isOsdkObject.js.map +0 -1
- package/build/types/Logger.d.ts +0 -17
- package/build/types/Logger.d.ts.map +0 -1
- package/build/types/object/createObjectSpecifierFromPrimaryKey.d.ts +0 -2
- package/build/types/object/createObjectSpecifierFromPrimaryKey.d.ts.map +0 -1
- package/build/types/util/isOsdkBaseObject.d.ts +0 -2
- package/build/types/util/isOsdkBaseObject.d.ts.map +0 -1
- package/build/types/util/isOsdkObject.d.ts +0 -2
- package/build/types/util/isOsdkObject.d.ts.map +0 -1
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { Chalk } from "chalk";
|
|
18
|
+
import { vi } from "vitest";
|
|
19
|
+
import { BaseLogger } from "./BaseLogger.js";
|
|
20
|
+
const chalk = new Chalk(); // new Chalk({ level: 3 });
|
|
21
|
+
|
|
22
|
+
const colors = {
|
|
23
|
+
debug: [chalk.cyan, chalk.bgCyan],
|
|
24
|
+
info: [chalk.green, chalk.bgGreen],
|
|
25
|
+
trace: [chalk.gray, chalk.bgGray],
|
|
26
|
+
error: [chalk.red, chalk.bgRed],
|
|
27
|
+
warn: [chalk.yellow, chalk.bgYellow],
|
|
28
|
+
fatal: [chalk.redBright, chalk.bgRedBright]
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* A logger suitable for using in unit tests.
|
|
33
|
+
* - It uses chalk for colors (Node and browser console.log supports)
|
|
34
|
+
* - Does not rely on async behavior of `pino`.
|
|
35
|
+
*/
|
|
36
|
+
export class TestLogger extends BaseLogger {
|
|
37
|
+
constructor(bindings = {}, options = {}) {
|
|
38
|
+
super(bindings, {
|
|
39
|
+
...options,
|
|
40
|
+
level: options.level ?? "error"
|
|
41
|
+
}, TestLogger);
|
|
42
|
+
}
|
|
43
|
+
createLogMethod(name, bindings) {
|
|
44
|
+
const msgs = [colors[name][1](name)];
|
|
45
|
+
if (this.options?.msgPrefix) {
|
|
46
|
+
msgs.push(colors[name][0](this.options.msgPrefix));
|
|
47
|
+
}
|
|
48
|
+
if (typeof bindings === "object" && "methodName" in bindings) {
|
|
49
|
+
msgs.push(chalk.magenta(`.${bindings.methodName}()`));
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// eslint-disable-next-line no-console
|
|
53
|
+
return vi.fn(console[name === "fatal" ? "error" : name].bind(console, msgs.join(" ")));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=TestLogger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TestLogger.js","names":["Chalk","vi","BaseLogger","chalk","colors","debug","cyan","bgCyan","info","green","bgGreen","trace","gray","bgGray","error","red","bgRed","warn","yellow","bgYellow","fatal","redBright","bgRedBright","TestLogger","constructor","bindings","options","level","createLogMethod","name","msgs","msgPrefix","push","magenta","methodName","fn","console","bind","join"],"sources":["TestLogger.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Logger } from \"@osdk/api\";\nimport { Chalk } from \"chalk\";\nimport { vi } from \"vitest\";\nimport { BaseLogger } from \"./BaseLogger.js\";\n\nconst chalk = new Chalk(); // new Chalk({ level: 3 });\n\nconst colors = {\n debug: [chalk.cyan, chalk.bgCyan],\n info: [chalk.green, chalk.bgGreen],\n trace: [chalk.gray, chalk.bgGray],\n error: [chalk.red, chalk.bgRed],\n warn: [chalk.yellow, chalk.bgYellow],\n fatal: [chalk.redBright, chalk.bgRedBright],\n} as const;\n\n/**\n * A logger suitable for using in unit tests.\n * - It uses chalk for colors (Node and browser console.log supports)\n * - Does not rely on async behavior of `pino`.\n */\nexport class TestLogger extends BaseLogger implements Logger {\n constructor(\n bindings: Record<string, any> = {},\n options: { level?: string; msgPrefix?: string } = {},\n ) {\n super(\n bindings,\n { ...options, level: options.level ?? \"error\" },\n TestLogger,\n );\n }\n\n protected createLogMethod(\n name: \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\",\n bindings: Record<string, any>,\n ): Logger.LogFn {\n const msgs: string[] = [colors[name][1](name)];\n\n if (this.options?.msgPrefix) {\n msgs.push(colors[name][0](this.options.msgPrefix));\n }\n\n if (typeof bindings === \"object\" && \"methodName\" in bindings) {\n msgs.push(chalk.magenta(`.${bindings.methodName}()`));\n }\n\n // eslint-disable-next-line no-console\n return vi.fn<Logger.LogFn>(console[name === \"fatal\" ? \"error\" : name].bind(\n console,\n msgs.join(\" \"),\n )) as Logger.LogFn;\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,KAAK,QAAQ,OAAO;AAC7B,SAASC,EAAE,QAAQ,QAAQ;AAC3B,SAASC,UAAU,QAAQ,iBAAiB;AAE5C,MAAMC,KAAK,GAAG,IAAIH,KAAK,CAAC,CAAC,CAAC,CAAC;;AAE3B,MAAMI,MAAM,GAAG;EACbC,KAAK,EAAE,CAACF,KAAK,CAACG,IAAI,EAAEH,KAAK,CAACI,MAAM,CAAC;EACjCC,IAAI,EAAE,CAACL,KAAK,CAACM,KAAK,EAAEN,KAAK,CAACO,OAAO,CAAC;EAClCC,KAAK,EAAE,CAACR,KAAK,CAACS,IAAI,EAAET,KAAK,CAACU,MAAM,CAAC;EACjCC,KAAK,EAAE,CAACX,KAAK,CAACY,GAAG,EAAEZ,KAAK,CAACa,KAAK,CAAC;EAC/BC,IAAI,EAAE,CAACd,KAAK,CAACe,MAAM,EAAEf,KAAK,CAACgB,QAAQ,CAAC;EACpCC,KAAK,EAAE,CAACjB,KAAK,CAACkB,SAAS,EAAElB,KAAK,CAACmB,WAAW;AAC5C,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,UAAU,SAASrB,UAAU,CAAmB;EAC3DsB,WAAWA,CACTC,QAA6B,GAAG,CAAC,CAAC,EAClCC,OAA+C,GAAG,CAAC,CAAC,EACpD;IACA,KAAK,CACHD,QAAQ,EACR;MAAE,GAAGC,OAAO;MAAEC,KAAK,EAAED,OAAO,CAACC,KAAK,IAAI;IAAQ,CAAC,EAC/CJ,UACF,CAAC;EACH;EAEUK,eAAeA,CACvBC,IAA6D,EAC7DJ,QAA6B,EACf;IACd,MAAMK,IAAc,GAAG,CAAC1B,MAAM,CAACyB,IAAI,CAAC,CAAC,CAAC,CAAC,CAACA,IAAI,CAAC,CAAC;IAE9C,IAAI,IAAI,CAACH,OAAO,EAAEK,SAAS,EAAE;MAC3BD,IAAI,CAACE,IAAI,CAAC5B,MAAM,CAACyB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAACH,OAAO,CAACK,SAAS,CAAC,CAAC;IACpD;IAEA,IAAI,OAAON,QAAQ,KAAK,QAAQ,IAAI,YAAY,IAAIA,QAAQ,EAAE;MAC5DK,IAAI,CAACE,IAAI,CAAC7B,KAAK,CAAC8B,OAAO,CAAC,IAAIR,QAAQ,CAACS,UAAU,IAAI,CAAC,CAAC;IACvD;;IAEA;IACA,OAAOjC,EAAE,CAACkC,EAAE,CAAeC,OAAO,CAACP,IAAI,KAAK,OAAO,GAAG,OAAO,GAAGA,IAAI,CAAC,CAACQ,IAAI,CACxED,OAAO,EACPN,IAAI,CAACQ,IAAI,CAAC,GAAG,CACf,CAAC,CAAC;EACJ;AACF","ignoreList":[]}
|
|
@@ -14,15 +14,28 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
17
|
+
import { objectTypeWithAllPropertyTypes } from "@osdk/client.test.ontology";
|
|
18
|
+
import { LegacyFauxFoundry, startNodeApiServer, stubData } from "@osdk/shared.test";
|
|
19
19
|
import { afterAll, beforeAll, describe, expect, it } from "vitest";
|
|
20
20
|
import { createClient } from "../createClient.js";
|
|
21
21
|
describe("attachments", () => {
|
|
22
|
+
let fauxFoundry;
|
|
23
|
+
let apiServer;
|
|
22
24
|
let client;
|
|
23
25
|
beforeAll(async () => {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
({
|
|
27
|
+
client,
|
|
28
|
+
apiServer,
|
|
29
|
+
fauxFoundry
|
|
30
|
+
} = startNodeApiServer(new LegacyFauxFoundry(), createClient));
|
|
31
|
+
fauxFoundry.attachments.registerAttachment({
|
|
32
|
+
filename: "file1.txt",
|
|
33
|
+
mediaType: "application/json",
|
|
34
|
+
rid: "ri.attachments.main.attachment.86016861-707f-4292-b258-6a7108915a75",
|
|
35
|
+
buffer: new TextEncoder().encode(JSON.stringify({
|
|
36
|
+
name: "Hello World"
|
|
37
|
+
}, null, 2))
|
|
38
|
+
});
|
|
26
39
|
});
|
|
27
40
|
afterAll(() => {
|
|
28
41
|
apiServer.close();
|
|
@@ -37,8 +50,8 @@ describe("attachments", () => {
|
|
|
37
50
|
expect(attachmentMetadata).toBeDefined();
|
|
38
51
|
expect(attachmentMetadata?.filename).toEqual("file1.txt");
|
|
39
52
|
expect(attachmentMetadata?.mediaType).toEqual("application/json");
|
|
40
|
-
expect(attachmentMetadata?.sizeBytes).toEqual(
|
|
41
|
-
expect(attachmentMetadata?.rid).toEqual(
|
|
53
|
+
expect(attachmentMetadata?.sizeBytes).toEqual(27);
|
|
54
|
+
expect(attachmentMetadata?.rid).toEqual(stubData.objectWithAllPropertyTypes1.attachment.rid);
|
|
42
55
|
});
|
|
43
56
|
it("reads attachment successfully", async () => {
|
|
44
57
|
const result = await client(objectTypeWithAllPropertyTypes).where({
|
|
@@ -49,7 +62,7 @@ describe("attachments", () => {
|
|
|
49
62
|
const attachmentContent = await object1?.attachment?.fetchContents();
|
|
50
63
|
const attachmentText = await attachmentContent.text();
|
|
51
64
|
expect(JSON.parse(attachmentText)).toEqual({
|
|
52
|
-
name: "Hello World
|
|
65
|
+
name: "Hello World"
|
|
53
66
|
});
|
|
54
67
|
});
|
|
55
68
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment.test.js","names":["
|
|
1
|
+
{"version":3,"file":"attachment.test.js","names":["objectTypeWithAllPropertyTypes","LegacyFauxFoundry","startNodeApiServer","stubData","afterAll","beforeAll","describe","expect","it","createClient","fauxFoundry","apiServer","client","attachments","registerAttachment","filename","mediaType","rid","buffer","TextEncoder","encode","JSON","stringify","name","close","result","where","id","objectWithAllPropertyTypes1","fetchPage","object1","data","attachment","toBeDefined","attachmentMetadata","fetchMetadata","toEqual","sizeBytes","attachmentContent","fetchContents","attachmentText","text","parse"],"sources":["attachment.test.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { objectTypeWithAllPropertyTypes } from \"@osdk/client.test.ontology\";\nimport {\n LegacyFauxFoundry,\n startNodeApiServer,\n stubData,\n} from \"@osdk/shared.test\";\nimport { type SetupServer } from \"@osdk/shared.test\";\nimport { afterAll, beforeAll, describe, expect, it } from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\n\ndescribe(\"attachments\", () => {\n let fauxFoundry: LegacyFauxFoundry;\n let apiServer: SetupServer;\n let client: Client;\n\n beforeAll(async () => {\n ({ client, apiServer, fauxFoundry } = startNodeApiServer(\n new LegacyFauxFoundry(),\n createClient,\n ));\n\n fauxFoundry.attachments.registerAttachment({\n filename: \"file1.txt\",\n mediaType: \"application/json\",\n rid:\n \"ri.attachments.main.attachment.86016861-707f-4292-b258-6a7108915a75\",\n buffer: new TextEncoder().encode(\n JSON.stringify({ name: \"Hello World\" }, null, 2),\n ),\n });\n });\n\n afterAll(() => {\n apiServer.close();\n });\n\n it(\"reads attachment metadata successfully\", async () => {\n const result = await client(\n objectTypeWithAllPropertyTypes,\n )\n .where({ id: stubData.objectWithAllPropertyTypes1.id }).fetchPage();\n\n const object1 = result.data[0];\n expect(object1.attachment).toBeDefined();\n const attachmentMetadata = await object1.attachment?.fetchMetadata();\n expect(attachmentMetadata).toBeDefined();\n expect(attachmentMetadata?.filename).toEqual(\"file1.txt\");\n expect(attachmentMetadata?.mediaType).toEqual(\"application/json\");\n expect(attachmentMetadata?.sizeBytes).toEqual(27);\n expect(attachmentMetadata?.rid).toEqual(\n stubData.objectWithAllPropertyTypes1.attachment.rid,\n );\n });\n\n it(\"reads attachment successfully\", async () => {\n const result = await client(objectTypeWithAllPropertyTypes)\n .where({ id: stubData.objectWithAllPropertyTypes1.id }).fetchPage();\n\n const object1 = result.data[0];\n expect(object1.attachment).toBeDefined();\n const attachmentContent = await object1?.attachment?.fetchContents();\n const attachmentText = await attachmentContent!.text();\n expect(JSON.parse(attachmentText)).toEqual({\n name: \"Hello World\",\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseHolder.js","names":[],"sources":["BaseHolder.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectOrInterfaceDefinition, ObjectSpecifier } from \"@osdk/api\";\nimport type { InterfaceHolder } from \"./InterfaceHolder.js\";\nimport type { UnderlyingOsdkObject } from \"./InternalSymbols.js\";\nimport type { ObjectHolder } from \"./ObjectHolder.js\";\n\n/** @internal */\n\nexport interface BaseHolder {\n readonly [UnderlyingOsdkObject]: ObjectHolder;\n\n readonly $apiName: string;\n readonly $objectType: string;\n readonly $primaryKey: string | number
|
|
1
|
+
{"version":3,"file":"BaseHolder.js","names":[],"sources":["BaseHolder.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectOrInterfaceDefinition, ObjectSpecifier } from \"@osdk/api\";\nimport type { InterfaceHolder } from \"./InterfaceHolder.js\";\nimport type { UnderlyingOsdkObject } from \"./InternalSymbols.js\";\nimport type { ObjectHolder } from \"./ObjectHolder.js\";\n\n/** @internal */\n\nexport interface BaseHolder {\n readonly [UnderlyingOsdkObject]: ObjectHolder;\n\n readonly $apiName: string;\n readonly $objectType: string;\n readonly $primaryKey: string | number;\n readonly $title: string | undefined;\n readonly $objectSpecifier: ObjectSpecifier<any>;\n\n readonly \"$as\": (\n newDef: string | ObjectOrInterfaceDefinition,\n ) => ObjectHolder | InterfaceHolder;\n\n readonly \"$clone\": (\n newProps?: Record<string, any>,\n ) => this;\n\n // [key: `$$${string}`]: any;\n // Unlike SimpleOsdkProperties, all of our remaining types are unknown as the full\n // union is basically `any` when you consider the above fields.\n [key: string]: unknown;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -40,6 +40,10 @@ export function createOsdkInterface(underlying, interfaceDef) {
|
|
|
40
40
|
value: underlying.$primaryKey,
|
|
41
41
|
enumerable: "$primaryKey" in underlying
|
|
42
42
|
},
|
|
43
|
+
"$objectSpecifier": {
|
|
44
|
+
value: underlying.$objectSpecifier,
|
|
45
|
+
enumerable: "$objectSpecifier" in underlying
|
|
46
|
+
},
|
|
43
47
|
"$title": {
|
|
44
48
|
value: underlying.$title,
|
|
45
49
|
enumerable: "$title" in underlying
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createOsdkInterface.js","names":["extractNamespace","InterfaceDefRef","ObjectDefRef","UnderlyingOsdkObject","createOsdkInterface","underlying","interfaceDef","objApiNamespace","apiName","Object","freeze","defineProperties","value","enumerable","$as","$objectType","$primaryKey","$title","$rid","clone","fromEntries","keys","properties","map","p","objDef","apiNamespace","targetPropName","interfaceMap","update","$clone","key","Error","remappedProps","mapProperty","filter","x","propertyName"],"sources":["createOsdkInterface.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { InterfaceMetadata } from \"@osdk/api\";\nimport { extractNamespace } from \"../../internal/conversions/modernToLegacyWhereClause.js\";\nimport type { FetchedObjectTypeDefinition } from \"../../ontology/OntologyProvider.js\";\nimport type { InterfaceHolder } from \"./InterfaceHolder.js\";\nimport {\n InterfaceDefRef,\n ObjectDefRef,\n UnderlyingOsdkObject,\n} from \"./InternalSymbols.js\";\nimport type { ObjectHolder } from \"./ObjectHolder.js\";\n\n/** @internal */\nexport function createOsdkInterface<\n Q extends FetchedObjectTypeDefinition,\n>(\n underlying: ObjectHolder,\n interfaceDef: InterfaceMetadata,\n): InterfaceHolder {\n const [objApiNamespace] = extractNamespace(interfaceDef.apiName);\n\n return Object.freeze(\n Object.defineProperties({}, {\n // first to minimize hidden classes\n [UnderlyingOsdkObject]: { value: underlying },\n\n \"$apiName\": { value: interfaceDef.apiName, enumerable: true },\n \"$as\": {\n value: underlying.$as,\n enumerable: false,\n },\n \"$objectType\": {\n value: underlying.$objectType,\n enumerable: \"$objectType\" in underlying,\n },\n \"$primaryKey\": {\n value: underlying.$primaryKey,\n enumerable: \"$primaryKey\" in underlying,\n },\n \"$title\": {\n value: underlying.$title,\n enumerable: \"$title\" in underlying,\n },\n \"$rid\": {\n value: (underlying as any).$rid,\n enumerable: \"$rid\" in underlying,\n },\n \"$clone\": {\n value: clone,\n enumerable: false,\n },\n\n [InterfaceDefRef]: { value: interfaceDef },\n\n ...Object.fromEntries(\n Object.keys(interfaceDef.properties).map(p => {\n const objDef = underlying[ObjectDefRef];\n\n const [apiNamespace, apiName] = extractNamespace(p);\n\n const targetPropName = objDef\n .interfaceMap![interfaceDef.apiName][p];\n\n return [apiNamespace === objApiNamespace ? apiName : p, {\n enumerable: targetPropName in underlying,\n value: underlying[targetPropName as keyof typeof underlying],\n }];\n }),\n ),\n }) as InterfaceHolder,\n );\n function clone(update: Record<string, any> | undefined) {\n if (update == null) {\n return underlying.$clone().$as(interfaceDef);\n }\n\n for (const key of Object.keys(update)) {\n if (!(key in interfaceDef.properties)) {\n throw new Error(\n `Invalid property ${key} for interface ${interfaceDef.apiName}`,\n );\n }\n }\n\n const remappedProps = Object.fromEntries(\n Object.keys(update).map(p => mapProperty(p, update[p])).filter(x =>\n x != null\n ),\n );\n\n return underlying.$clone(remappedProps).$as(interfaceDef);\n }\n function mapProperty(propertyName: string, value: any) {\n const objDef = underlying[ObjectDefRef];\n const targetPropName =\n objDef.interfaceMap![interfaceDef.apiName][propertyName];\n // If the underlying object does not implement the SPT, throw errors\n if (targetPropName == null) {\n throw new Error(\n `Cannot clone interface with ${propertyName} as property is not implemented by the underlying object type ${objDef.apiName}`,\n );\n }\n return [targetPropName, value];\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,gBAAgB,QAAQ,yDAAyD;AAG1F,SACEC,eAAe,EACfC,YAAY,EACZC,oBAAoB,QACf,sBAAsB;AAG7B;AACA,OAAO,SAASC,mBAAmBA,CAGjCC,UAAwB,EACxBC,YAA+B,EACd;EACjB,MAAM,CAACC,eAAe,CAAC,GAAGP,gBAAgB,CAACM,YAAY,CAACE,OAAO,CAAC;EAEhE,OAAOC,MAAM,CAACC,MAAM,CAClBD,MAAM,CAACE,gBAAgB,CAAC,CAAC,CAAC,EAAE;IAC1B;IACA,CAACR,oBAAoB,GAAG;MAAES,KAAK,EAAEP;IAAW,CAAC;IAE7C,UAAU,EAAE;MAAEO,KAAK,EAAEN,YAAY,CAACE,OAAO;MAAEK,UAAU,EAAE;IAAK,CAAC;IAC7D,KAAK,EAAE;MACLD,KAAK,EAAEP,UAAU,CAACS,GAAG;MACrBD,UAAU,EAAE;IACd,CAAC;IACD,aAAa,EAAE;MACbD,KAAK,EAAEP,UAAU,CAACU,WAAW;MAC7BF,UAAU,EAAE,aAAa,IAAIR;IAC/B,CAAC;IACD,aAAa,EAAE;MACbO,KAAK,EAAEP,UAAU,CAACW,WAAW;MAC7BH,UAAU,EAAE,aAAa,IAAIR;IAC/B,CAAC;IACD,QAAQ,EAAE;MACRO,KAAK,EAAEP,UAAU,
|
|
1
|
+
{"version":3,"file":"createOsdkInterface.js","names":["extractNamespace","InterfaceDefRef","ObjectDefRef","UnderlyingOsdkObject","createOsdkInterface","underlying","interfaceDef","objApiNamespace","apiName","Object","freeze","defineProperties","value","enumerable","$as","$objectType","$primaryKey","$objectSpecifier","$title","$rid","clone","fromEntries","keys","properties","map","p","objDef","apiNamespace","targetPropName","interfaceMap","update","$clone","key","Error","remappedProps","mapProperty","filter","x","propertyName"],"sources":["createOsdkInterface.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { InterfaceMetadata } from \"@osdk/api\";\nimport { extractNamespace } from \"../../internal/conversions/modernToLegacyWhereClause.js\";\nimport type { FetchedObjectTypeDefinition } from \"../../ontology/OntologyProvider.js\";\nimport type { InterfaceHolder } from \"./InterfaceHolder.js\";\nimport {\n InterfaceDefRef,\n ObjectDefRef,\n UnderlyingOsdkObject,\n} from \"./InternalSymbols.js\";\nimport type { ObjectHolder } from \"./ObjectHolder.js\";\n\n/** @internal */\nexport function createOsdkInterface<\n Q extends FetchedObjectTypeDefinition,\n>(\n underlying: ObjectHolder,\n interfaceDef: InterfaceMetadata,\n): InterfaceHolder {\n const [objApiNamespace] = extractNamespace(interfaceDef.apiName);\n\n return Object.freeze(\n Object.defineProperties({}, {\n // first to minimize hidden classes\n [UnderlyingOsdkObject]: { value: underlying },\n\n \"$apiName\": { value: interfaceDef.apiName, enumerable: true },\n \"$as\": {\n value: underlying.$as,\n enumerable: false,\n },\n \"$objectType\": {\n value: underlying.$objectType,\n enumerable: \"$objectType\" in underlying,\n },\n \"$primaryKey\": {\n value: underlying.$primaryKey,\n enumerable: \"$primaryKey\" in underlying,\n },\n \"$objectSpecifier\": {\n value: underlying.$objectSpecifier,\n enumerable: \"$objectSpecifier\" in underlying,\n },\n \"$title\": {\n value: underlying.$title,\n enumerable: \"$title\" in underlying,\n },\n \"$rid\": {\n value: (underlying as any).$rid,\n enumerable: \"$rid\" in underlying,\n },\n \"$clone\": {\n value: clone,\n enumerable: false,\n },\n\n [InterfaceDefRef]: { value: interfaceDef },\n\n ...Object.fromEntries(\n Object.keys(interfaceDef.properties).map(p => {\n const objDef = underlying[ObjectDefRef];\n\n const [apiNamespace, apiName] = extractNamespace(p);\n\n const targetPropName = objDef\n .interfaceMap![interfaceDef.apiName][p];\n\n return [apiNamespace === objApiNamespace ? apiName : p, {\n enumerable: targetPropName in underlying,\n value: underlying[targetPropName as keyof typeof underlying],\n }];\n }),\n ),\n }) as InterfaceHolder,\n );\n function clone(update: Record<string, any> | undefined) {\n if (update == null) {\n return underlying.$clone().$as(interfaceDef);\n }\n\n for (const key of Object.keys(update)) {\n if (!(key in interfaceDef.properties)) {\n throw new Error(\n `Invalid property ${key} for interface ${interfaceDef.apiName}`,\n );\n }\n }\n\n const remappedProps = Object.fromEntries(\n Object.keys(update).map(p => mapProperty(p, update[p])).filter(x =>\n x != null\n ),\n );\n\n return underlying.$clone(remappedProps).$as(interfaceDef);\n }\n function mapProperty(propertyName: string, value: any) {\n const objDef = underlying[ObjectDefRef];\n const targetPropName =\n objDef.interfaceMap![interfaceDef.apiName][propertyName];\n // If the underlying object does not implement the SPT, throw errors\n if (targetPropName == null) {\n throw new Error(\n `Cannot clone interface with ${propertyName} as property is not implemented by the underlying object type ${objDef.apiName}`,\n );\n }\n return [targetPropName, value];\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,6 +19,7 @@ import { GeotimeSeriesPropertyImpl } from "../../createGeotimeSeriesProperty.js"
|
|
|
19
19
|
import { MediaReferencePropertyImpl } from "../../createMediaReferenceProperty.js";
|
|
20
20
|
import { TimeSeriesPropertyImpl } from "../../createTimeseriesProperty.js";
|
|
21
21
|
import { hydrateAttachmentFromRidInternal } from "../../public-utils/hydrateAttachmentFromRid.js";
|
|
22
|
+
import { createObjectSpecifierFromPrimaryKey } from "../../util/objectSpecifierUtils.js";
|
|
22
23
|
import { get$as } from "./getDollarAs.js";
|
|
23
24
|
import { get$link } from "./getDollarLink.js";
|
|
24
25
|
import { ClientRef, ObjectDefRef, UnderlyingOsdkObject } from "./InternalSymbols.js";
|
|
@@ -59,6 +60,13 @@ const basePropDefs = {
|
|
|
59
60
|
};
|
|
60
61
|
return createOsdkObject(this[ClientRef], this[ObjectDefRef], newObject);
|
|
61
62
|
}
|
|
63
|
+
},
|
|
64
|
+
"$objectSpecifier": {
|
|
65
|
+
get: function () {
|
|
66
|
+
const rawObj = this[UnderlyingOsdkObject];
|
|
67
|
+
return createObjectSpecifierFromPrimaryKey(this[ObjectDefRef], rawObj.$primaryKey);
|
|
68
|
+
},
|
|
69
|
+
enumerable: true
|
|
62
70
|
}
|
|
63
71
|
};
|
|
64
72
|
|
|
@@ -68,7 +76,7 @@ const basePropDefs = {
|
|
|
68
76
|
* @param objectDef
|
|
69
77
|
* @param simpleOsdkProperties
|
|
70
78
|
*/
|
|
71
|
-
export function createOsdkObject(client, objectDef, simpleOsdkProperties) {
|
|
79
|
+
export function createOsdkObject(client, objectDef, simpleOsdkProperties, derivedPropertyTypeByName = {}) {
|
|
72
80
|
// updates the object's "hidden class/map".
|
|
73
81
|
const rawObj = simpleOsdkProperties;
|
|
74
82
|
Object.defineProperties(rawObj, {
|
|
@@ -91,6 +99,17 @@ export function createOsdkObject(client, objectDef, simpleOsdkProperties) {
|
|
|
91
99
|
for (const propKey of Object.keys(rawObj)) {
|
|
92
100
|
if (propKey in objectDef.properties && typeof objectDef.properties[propKey].type === "string" && specialPropertyTypes.has(objectDef.properties[propKey].type)) {
|
|
93
101
|
rawObj[propKey] = createSpecialProperty(client, objectDef, rawObj, propKey);
|
|
102
|
+
} else if (propKey in derivedPropertyTypeByName && typeof derivedPropertyTypeByName[propKey].type === "string" && specialPropertyTypes.has(derivedPropertyTypeByName[propKey].type)) {
|
|
103
|
+
const rawValue = rawObj[propKey];
|
|
104
|
+
if (derivedPropertyTypeByName[propKey].type === "attachment") {
|
|
105
|
+
if (Array.isArray(rawValue)) {
|
|
106
|
+
rawObj[propKey] = rawValue.map(a => hydrateAttachmentFromRidInternal(client, a.rid));
|
|
107
|
+
} else {
|
|
108
|
+
rawObj[propKey] = hydrateAttachmentFromRidInternal(client, rawValue.rid);
|
|
109
|
+
}
|
|
110
|
+
} else {
|
|
111
|
+
process.env.NODE_ENV !== "production" ? invariant(false, "Derived property aggregations for Timeseries and Media are not supported") : invariant(false);
|
|
112
|
+
}
|
|
94
113
|
}
|
|
95
114
|
}
|
|
96
115
|
return Object.freeze(rawObj);
|
|
@@ -101,39 +120,31 @@ function createSpecialProperty(client, objectDef, rawObject, p) {
|
|
|
101
120
|
if (process.env.NODE_ENV !== "production") {
|
|
102
121
|
!(propDef != null && typeof propDef.type === "string" && specialPropertyTypes.has(propDef.type)) ? process.env.NODE_ENV !== "production" ? invariant(false) : invariant(false) : void 0;
|
|
103
122
|
}
|
|
104
|
-
{
|
|
105
|
-
{
|
|
106
|
-
|
|
107
|
-
{
|
|
108
|
-
if (propDef.type === "attachment") {
|
|
109
|
-
if (Array.isArray(rawValue)) {
|
|
110
|
-
return rawValue.map(a => hydrateAttachmentFromRidInternal(client, a.rid));
|
|
111
|
-
}
|
|
112
|
-
return hydrateAttachmentFromRidInternal(client, rawValue.rid);
|
|
113
|
-
}
|
|
114
|
-
if (propDef.type === "numericTimeseries" || propDef.type === "stringTimeseries" || propDef.type === "sensorTimeseries") {
|
|
115
|
-
return new TimeSeriesPropertyImpl(client, objectDef.apiName, rawObject[objectDef.primaryKeyApiName], p);
|
|
116
|
-
}
|
|
117
|
-
if (propDef.type === "geotimeSeriesReference") {
|
|
118
|
-
return new GeotimeSeriesPropertyImpl(client, objectDef.apiName, rawObject[objectDef.primaryKeyApiName], p, rawValue.type === "geotimeSeriesValue" ? {
|
|
119
|
-
time: rawValue.timestamp,
|
|
120
|
-
value: {
|
|
121
|
-
type: "Point",
|
|
122
|
-
coordinates: rawValue.position
|
|
123
|
-
}
|
|
124
|
-
} : undefined);
|
|
125
|
-
}
|
|
126
|
-
if (propDef.type === "mediaReference") {
|
|
127
|
-
return new MediaReferencePropertyImpl({
|
|
128
|
-
client,
|
|
129
|
-
objectApiName: objectDef.apiName,
|
|
130
|
-
primaryKey: rawObject[objectDef.primaryKeyApiName],
|
|
131
|
-
propertyName: p
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
123
|
+
if (propDef.type === "attachment") {
|
|
124
|
+
if (Array.isArray(rawValue)) {
|
|
125
|
+
return rawValue.map(a => hydrateAttachmentFromRidInternal(client, a.rid));
|
|
136
126
|
}
|
|
127
|
+
return hydrateAttachmentFromRidInternal(client, rawValue.rid);
|
|
128
|
+
}
|
|
129
|
+
if (propDef.type === "numericTimeseries" || propDef.type === "stringTimeseries" || propDef.type === "sensorTimeseries") {
|
|
130
|
+
return new TimeSeriesPropertyImpl(client, objectDef.apiName, rawObject[objectDef.primaryKeyApiName], p);
|
|
131
|
+
}
|
|
132
|
+
if (propDef.type === "geotimeSeriesReference") {
|
|
133
|
+
return new GeotimeSeriesPropertyImpl(client, objectDef.apiName, rawObject[objectDef.primaryKeyApiName], p, rawValue.type === "geotimeSeriesValue" ? {
|
|
134
|
+
time: rawValue.timestamp,
|
|
135
|
+
value: {
|
|
136
|
+
type: "Point",
|
|
137
|
+
coordinates: rawValue.position
|
|
138
|
+
}
|
|
139
|
+
} : undefined);
|
|
140
|
+
}
|
|
141
|
+
if (propDef.type === "mediaReference") {
|
|
142
|
+
return new MediaReferencePropertyImpl({
|
|
143
|
+
client,
|
|
144
|
+
objectApiName: objectDef.apiName,
|
|
145
|
+
primaryKey: rawObject[objectDef.primaryKeyApiName],
|
|
146
|
+
propertyName: p
|
|
147
|
+
});
|
|
137
148
|
}
|
|
138
149
|
}
|
|
139
150
|
//# sourceMappingURL=createOsdkObject.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createOsdkObject.js","names":["invariant","GeotimeSeriesPropertyImpl","MediaReferencePropertyImpl","TimeSeriesPropertyImpl","hydrateAttachmentFromRidInternal","get$as","get$link","ClientRef","ObjectDefRef","UnderlyingOsdkObject","specialPropertyTypes","Set","basePropDefs","get","value","update","rawObj","def","createOsdkObject","primaryKeyApiName","Error","apiName","titleProperty","$title","newObject","client","objectDef","simpleOsdkProperties","Object","defineProperties","enumerable","propKey","keys","properties","type","has","createSpecialProperty","freeze","rawObject","p","rawValue","propDef","process","env","NODE_ENV","Array","isArray","map","a","rid","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 { 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 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};\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): 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 }\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 {\n {\n {\n {\n if (propDef.type === \"attachment\") {\n if (Array.isArray(rawValue)) {\n return rawValue.map(a =>\n hydrateAttachmentFromRidInternal(client, a.rid)\n );\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 }\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","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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDollarLink.js","names":["getWireObjectSet","fetchSingle","fetchSingleWithErrors","ClientRef","ObjectDefRef","UnderlyingOsdkObject","get$link","holder","client","objDef","rawObj","Object","freeze","fromEntries","keys","links","map","linkName","linkDef","objectSet","objectSetFactory","where","primaryKeyApiName","$primaryKey","pivotTo","value","multiplicity","fetchOne","options","fetchOneWithErrors"],"sources":["getDollarLink.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 {\n ObjectSet,\n OsdkObjectLinksObject,\n SelectArg,\n WhereClause,\n} from \"@osdk/api\";\nimport { getWireObjectSet } from \"../../objectSet/createObjectSet.js\";\nimport { fetchSingle, fetchSingleWithErrors } from \"../fetchSingle.js\";\nimport {\n ClientRef,\n ObjectDefRef,\n UnderlyingOsdkObject,\n} from \"./InternalSymbols.js\";\nimport type { ObjectHolder } from \"./ObjectHolder.js\";\n\n/** @internal */\nexport function get$link(\n holder: ObjectHolder,\n): OsdkObjectLinksObject<any> {\n const client = holder[ClientRef];\n const objDef = holder[ObjectDefRef];\n const rawObj = holder[UnderlyingOsdkObject];\n return Object.freeze(Object.fromEntries(\n Object.keys(objDef.links).map(\n (linkName) => {\n const linkDef = objDef.links[linkName as keyof typeof objDef.links];\n const objectSet =\n (client.objectSetFactory(objDef, client) as ObjectSet<any>)\n .where({\n [objDef.primaryKeyApiName]: rawObj.$primaryKey,\n } as WhereClause<any>)\n .pivotTo(linkName);\n\n const value = !linkDef.multiplicity\n ? {\n fetchOne: <A extends SelectArg<any>>(options?: A) =>\n fetchSingle(\n client,\n objDef,\n options ?? {},\n getWireObjectSet(objectSet),\n ),\n fetchOneWithErrors: <A extends SelectArg<any>>(options?: A) =>\n fetchSingleWithErrors(\n client,\n objDef,\n options ?? {},\n getWireObjectSet(objectSet),\n ),\n }
|
|
1
|
+
{"version":3,"file":"getDollarLink.js","names":["getWireObjectSet","fetchSingle","fetchSingleWithErrors","ClientRef","ObjectDefRef","UnderlyingOsdkObject","get$link","holder","client","objDef","rawObj","Object","freeze","fromEntries","keys","links","map","linkName","linkDef","objectSet","objectSetFactory","where","primaryKeyApiName","$primaryKey","pivotTo","value","multiplicity","fetchOne","options","fetchOneWithErrors"],"sources":["getDollarLink.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 {\n ObjectSet,\n OsdkObjectLinksObject,\n SelectArg,\n SingleLinkAccessor,\n WhereClause,\n} from \"@osdk/api\";\nimport { getWireObjectSet } from \"../../objectSet/createObjectSet.js\";\nimport { fetchSingle, fetchSingleWithErrors } from \"../fetchSingle.js\";\nimport {\n ClientRef,\n ObjectDefRef,\n UnderlyingOsdkObject,\n} from \"./InternalSymbols.js\";\nimport type { ObjectHolder } from \"./ObjectHolder.js\";\n\n/** @internal */\nexport function get$link(\n holder: ObjectHolder,\n): OsdkObjectLinksObject<any> {\n const client = holder[ClientRef];\n const objDef = holder[ObjectDefRef];\n const rawObj = holder[UnderlyingOsdkObject];\n return Object.freeze(Object.fromEntries(\n Object.keys(objDef.links).map(\n (linkName) => {\n const linkDef = objDef.links[linkName as keyof typeof objDef.links];\n const objectSet =\n (client.objectSetFactory(objDef, client) as ObjectSet<any>)\n .where({\n [objDef.primaryKeyApiName]: rawObj.$primaryKey,\n } as WhereClause<any>)\n .pivotTo(linkName);\n\n const value = !linkDef.multiplicity\n ? {\n fetchOne: <A extends SelectArg<any, any, any, any>>(\n options?: A,\n ) =>\n fetchSingle(\n client,\n objDef,\n options ?? {},\n getWireObjectSet(objectSet),\n ),\n fetchOneWithErrors: <A extends SelectArg<any, any, any, any>>(\n options?: A,\n ) =>\n fetchSingleWithErrors(\n client,\n objDef,\n options ?? {},\n getWireObjectSet(objectSet),\n ),\n } as SingleLinkAccessor<any>\n : objectSet;\n\n return [linkName, value];\n },\n ),\n ));\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AASA,SAASA,gBAAgB,QAAQ,oCAAoC;AACrE,SAASC,WAAW,EAAEC,qBAAqB,QAAQ,mBAAmB;AACtE,SACEC,SAAS,EACTC,YAAY,EACZC,oBAAoB,QACf,sBAAsB;AAG7B;AACA,OAAO,SAASC,QAAQA,CACtBC,MAAoB,EACQ;EAC5B,MAAMC,MAAM,GAAGD,MAAM,CAACJ,SAAS,CAAC;EAChC,MAAMM,MAAM,GAAGF,MAAM,CAACH,YAAY,CAAC;EACnC,MAAMM,MAAM,GAAGH,MAAM,CAACF,oBAAoB,CAAC;EAC3C,OAAOM,MAAM,CAACC,MAAM,CAACD,MAAM,CAACE,WAAW,CACrCF,MAAM,CAACG,IAAI,CAACL,MAAM,CAACM,KAAK,CAAC,CAACC,GAAG,CAC1BC,QAAQ,IAAK;IACZ,MAAMC,OAAO,GAAGT,MAAM,CAACM,KAAK,CAACE,QAAQ,CAA8B;IACnE,MAAME,SAAS,GACZX,MAAM,CAACY,gBAAgB,CAACX,MAAM,EAAED,MAAM,CAAC,CACrCa,KAAK,CAAC;MACL,CAACZ,MAAM,CAACa,iBAAiB,GAAGZ,MAAM,CAACa;IACrC,CAAqB,CAAC,CACrBC,OAAO,CAACP,QAAQ,CAAC;IAEtB,MAAMQ,KAAK,GAAG,CAACP,OAAO,CAACQ,YAAY,GAC/B;MACAC,QAAQ,EACNC,OAAW,IAEX3B,WAAW,CACTO,MAAM,EACNC,MAAM,EACNmB,OAAO,IAAI,CAAC,CAAC,EACb5B,gBAAgB,CAACmB,SAAS,CAC5B,CAAC;MACHU,kBAAkB,EAChBD,OAAW,IAEX1B,qBAAqB,CACnBM,MAAM,EACNC,MAAM,EACNmB,OAAO,IAAI,CAAC,CAAC,EACb5B,gBAAgB,CAACmB,SAAS,CAC5B;IACJ,CAAC,GACCA,SAAS;IAEb,OAAO,CAACF,QAAQ,EAAEQ,KAAK,CAAC;EAC1B,CACF,CACF,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
|
|
17
17
|
import invariant from "tiny-invariant";
|
|
18
18
|
import { createOsdkObject } from "./convertWireToOsdkObjects/createOsdkObject.js";
|
|
19
|
-
import { createObjectSpecifierFromPrimaryKey } from "./createObjectSpecifierFromPrimaryKey.js";
|
|
20
19
|
/**
|
|
21
20
|
* If interfaceApiName is not undefined, converts the instances of the
|
|
22
21
|
* interface into their respective
|
|
@@ -33,9 +32,7 @@ import { createObjectSpecifierFromPrimaryKey } from "./createObjectSpecifierFrom
|
|
|
33
32
|
* @internal
|
|
34
33
|
* @param interfaceApiName - if undefined
|
|
35
34
|
*/
|
|
36
|
-
export async function convertWireToOsdkObjects(client, objects, interfaceApiName, forceRemoveRid = false, selectedProps, strictNonNull = false) {
|
|
37
|
-
client.logger?.debug(`START convertWireToOsdkObjects()`);
|
|
38
|
-
|
|
35
|
+
export async function convertWireToOsdkObjects(client, objects, interfaceApiName, forceRemoveRid = false, derivedPropertyTypesByName, selectedProps, strictNonNull = false) {
|
|
39
36
|
// remove the __ prefixed properties and convert them to $ prefixed.
|
|
40
37
|
// updates in place
|
|
41
38
|
fixObjectPropertiesInPlace(objects, forceRemoveRid);
|
|
@@ -64,18 +61,16 @@ export async function convertWireToOsdkObjects(client, objects, interfaceApiName
|
|
|
64
61
|
} else if (strictNonNull === "drop" && !conforming) {
|
|
65
62
|
continue;
|
|
66
63
|
}
|
|
67
|
-
let osdkObject = createOsdkObject(client, objectDef, rawObj);
|
|
64
|
+
let osdkObject = createOsdkObject(client, objectDef, rawObj, derivedPropertyTypesByName);
|
|
68
65
|
if (interfaceApiName) osdkObject = osdkObject.$as(interfaceApiName);
|
|
69
66
|
ret.push(osdkObject);
|
|
70
67
|
}
|
|
71
|
-
client.logger?.debug(`END convertWireToOsdkObjects()`);
|
|
72
68
|
return ret;
|
|
73
69
|
}
|
|
74
70
|
/**
|
|
75
71
|
* @internal
|
|
76
72
|
*/
|
|
77
|
-
export async function convertWireToOsdkObjects2(client, objects, interfaceApiName, forceRemoveRid = false, selectedProps, strictNonNull = false, interfaceToObjectTypeMappings = {}) {
|
|
78
|
-
client.logger?.debug(`START convertWireToOsdkObjects2()`);
|
|
73
|
+
export async function convertWireToOsdkObjects2(client, objects, interfaceApiName, derivedPropertyTypeByName, forceRemoveRid = false, selectedProps, strictNonNull = false, interfaceToObjectTypeMappings = {}) {
|
|
79
74
|
fixObjectPropertiesInPlace(objects, forceRemoveRid);
|
|
80
75
|
const ret = [];
|
|
81
76
|
for (const rawObj of objects) {
|
|
@@ -101,11 +96,10 @@ export async function convertWireToOsdkObjects2(client, objects, interfaceApiNam
|
|
|
101
96
|
} else if (strictNonNull === "drop" && !conforming) {
|
|
102
97
|
continue;
|
|
103
98
|
}
|
|
104
|
-
let osdkObject = createOsdkObject(client, objectDef, rawObj);
|
|
99
|
+
let osdkObject = createOsdkObject(client, objectDef, rawObj, derivedPropertyTypeByName);
|
|
105
100
|
if (interfaceApiName) osdkObject = osdkObject.$as(interfaceApiName);
|
|
106
101
|
ret.push(osdkObject);
|
|
107
102
|
}
|
|
108
|
-
client.logger?.debug(`END convertWireToOsdkObjects2()`);
|
|
109
103
|
return ret;
|
|
110
104
|
}
|
|
111
105
|
|
|
@@ -192,10 +186,6 @@ function fixObjectPropertiesInPlace(objs, forceRemoveRid) {
|
|
|
192
186
|
// copying over for now as its always returned. In the future, this should just be inferred from underlying
|
|
193
187
|
obj.$primaryKey ??= obj.__primaryKey;
|
|
194
188
|
obj.$title ??= obj.__title;
|
|
195
|
-
obj.$objectSpecifier = createObjectSpecifierFromPrimaryKey({
|
|
196
|
-
apiName: obj.$apiName,
|
|
197
|
-
type: "object"
|
|
198
|
-
}, obj.$primaryKey);
|
|
199
189
|
|
|
200
190
|
// we don't want people to use these
|
|
201
191
|
delete obj.__apiName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertWireToOsdkObjects.js","names":["invariant","createOsdkObject","createObjectSpecifierFromPrimaryKey","convertWireToOsdkObjects","client","objects","interfaceApiName","forceRemoveRid","selectedProps","strictNonNull","logger","debug","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","interfaceToObjectTypeMappings","interfaceToObjMapping","filter","val","includes","values","primaryKeyApiName","ifacePropsToMap","map","ifaceProp","interfaceMap","newProps","sptProp","regularProp","entries","value","assign","$primaryKey","def","obj","propsToCheck","propName","nullable","$objectType","warning","warn","console","error","objs","__rid","$rid","__apiName","__primaryKey","$title","__title","$objectSpecifier","type"],"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 { createObjectSpecifierFromPrimaryKey } from \"./createObjectSpecifierFromPrimaryKey.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 selectedProps?: ReadonlyArray<string>,\n strictNonNull: NullabilityAdherence = false,\n): Promise<Array<ObjectHolder | InterfaceHolder>> {\n client.logger?.debug(`START convertWireToOsdkObjects()`);\n\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 );\n if (interfaceApiName) osdkObject = osdkObject.$as(interfaceApiName);\n\n ret.push(osdkObject);\n }\n\n client.logger?.debug(`END convertWireToOsdkObjects()`);\n return ret;\n}\n\nexport async function convertWireToOsdkObjects2(\n client: MinimalClient,\n objects: OntologyObjectV2[],\n interfaceApiName: string,\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 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 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 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 client.logger?.debug(`START convertWireToOsdkObjects2()`);\n\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 );\n if (interfaceApiName) osdkObject = osdkObject.$as(interfaceApiName);\n\n ret.push(osdkObject);\n }\n\n client.logger?.debug(`END convertWireToOsdkObjects2()`);\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 obj.$objectSpecifier = createObjectSpecifierFromPrimaryKey(\n { apiName: obj.$apiName, type: \"object\" },\n obj.$primaryKey,\n );\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 { 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":[]}
|