@osdk/client 2.2.0-beta.9 → 2.3.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +370 -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 +36 -13
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.test.js +133 -0
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.test.js.map +1 -1
- package/build/browser/derivedProperties/derivedPropertyDefinitionFactory.js +93 -0
- package/build/browser/derivedProperties/derivedPropertyDefinitionFactory.js.map +1 -0
- 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 +113 -19
- 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/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-FKI2LO2O.cjs} +232 -68
- package/build/cjs/chunk-FKI2LO2O.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 +36 -13
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.test.js +133 -0
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.test.js.map +1 -1
- package/build/esm/derivedProperties/derivedPropertyDefinitionFactory.js +93 -0
- package/build/esm/derivedProperties/derivedPropertyDefinitionFactory.js.map +1 -0
- 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 +113 -19
- 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/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/derivedProperties/derivedPropertyDefinitionFactory.d.ts +1 -0
- package/build/types/derivedProperties/derivedPropertyDefinitionFactory.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 +19 -18
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geotimeseriesreference.test.js","names":["$ontologyRid","Employee","apiServer","afterAll","beforeAll","describe","expect","it","createClient","client","listen","close","employee","fetchOne","employee2","$primaryKey","toEqual","location","employeeLocation","toBeDefined","initialLastPoint","lastFetchedValue","toBeUndefined","fetchedPoint","getLatestValue","nextLastPoint","time","value","type","coordinates","initialPointEmployee2","fetchedPoint2","nextLastPoint2","points","getAllValues","$before","$unit","$after","$startTime","$endTime","pointsIter","asyncIterValues","point","push"],"sources":["geotimeseriesreference.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 type { TimeSeriesPoint } from \"@osdk/api\";\nimport { $ontologyRid, Employee } from \"@osdk/client.test.ontology\";\nimport { apiServer } 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(\"Timeseries\", () => {\n let client: Client;\n\n beforeAll(async () => {\n apiServer.listen();\n client = createClient(\n \"https://stack.palantir.com\",\n $ontologyRid,\n async () => \"myAccessToken\",\n );\n });\n\n afterAll(() => {\n apiServer.close();\n });\n\n it(\"get latest value works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n const employee2 = await client(Employee).fetchOne(50031);\n expect(employee.$primaryKey).toEqual(50030);\n expect(employee2.$primaryKey).toEqual(50031);\n const location = employee.employeeLocation;\n\n expect(location).toBeDefined();\n\n const initialLastPoint = employee.employeeLocation?.lastFetchedValue;\n expect(initialLastPoint).toBeUndefined();\n\n const fetchedPoint = await employee.employeeLocation?.getLatestValue();\n const nextLastPoint = employee.employeeLocation?.lastFetchedValue;\n expect(employee.employeeLocation?.lastFetchedValue).toBeDefined();\n\n expect(nextLastPoint).toEqual(fetchedPoint);\n expect(nextLastPoint?.time).toEqual(\"2014-04-14\");\n expect(nextLastPoint?.value).toEqual({\n type: \"Point\",\n coordinates: [3.3, 3.3],\n });\n\n expect(fetchedPoint?.time).toEqual(\"2014-04-14\");\n expect(fetchedPoint?.value).toEqual({\n type: \"Point\",\n coordinates: [3.3, 3.3],\n });\n\n // Making sure caching working as expected\n const initialPointEmployee2 = employee2.employeeLocation?.lastFetchedValue;\n expect(initialPointEmployee2).toBeUndefined();\n\n const fetchedPoint2 = await employee2.employeeLocation?.getLatestValue();\n const nextLastPoint2 = employee2.employeeLocation?.lastFetchedValue;\n expect(employee2.employeeLocation?.lastFetchedValue).toBeDefined();\n\n expect(nextLastPoint2).toEqual(fetchedPoint2);\n expect(nextLastPoint2?.time).toEqual(\"2013-03-13\");\n expect(nextLastPoint2?.value).toEqual({\n type: \"Point\",\n coordinates: [2.2, 2.2],\n });\n\n expect(fetchedPoint2?.time).toEqual(\"2013-03-13\");\n expect(fetchedPoint2?.value).toEqual({\n type: \"Point\",\n coordinates: [2.2, 2.2],\n });\n });\n\n it(\"getAll values with before works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const points = await employee.employeeLocation?.getAllValues({\n $before: 1,\n $unit: \"month\",\n });\n expect(points).toBeDefined();\n expect(points!).toEqual([{\n time: \"2012-02-12\",\n value: { type: \"Point\", coordinates: [1.1, 1.1] },\n }, {\n time: \"2013-03-13\",\n value: { type: \"Point\", coordinates: [2.2, 2.2] },\n }, {\n time: \"2014-04-14\",\n value: { type: \"Point\", coordinates: [3.3, 3.3] },\n }]);\n });\n\n it(\"getAll values with after works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const points = await employee.employeeLocation?.getAllValues({\n $after: 1,\n $unit: \"month\",\n });\n expect(points).toBeDefined();\n expect(points!).toEqual([{\n time: \"2012-02-12\",\n value: { type: \"Point\", coordinates: [1.1, 1.1] },\n }, {\n time: \"2014-04-14\",\n value: { type: \"Point\", coordinates: [3.3, 3.3] },\n }]);\n });\n\n it(\"getAll points with absolute range works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const points = await employee.employeeLocation?.getAllValues({\n $startTime: \"2013-03-12T12:00:00.000Z\",\n $endTime: \"2014-04-14T12:00:00.000Z\",\n });\n expect(points).toBeDefined();\n expect(points!).toEqual([{\n time: \"2013-03-13\",\n value: { type: \"Point\", coordinates: [2.2, 2.2] },\n }, {\n time: \"2014-04-14\",\n value: { type: \"Point\", coordinates: [3.3, 3.3] },\n }]);\n });\n\n it(\"getAll points with no query works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const points = await employee.employeeLocation?.getAllValues();\n expect(points).toBeDefined();\n expect(points!).toEqual([\n { time: \"2012-02-12\", value: { type: \"Point\", coordinates: [1.1, 1.1] } },\n { time: \"2012-02-12\", value: { type: \"Point\", coordinates: [1.1, 1.1] } },\n {\n time: \"2013-03-13\",\n value: { type: \"Point\", coordinates: [2.2, 2.2] },\n },\n { time: \"2014-04-14\", value: { type: \"Point\", coordinates: [3.3, 3.3] } },\n { time: \"2014-04-14\", value: { type: \"Point\", coordinates: [3.3, 3.3] } },\n ]);\n });\n\n it(\"getAll points with no data works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const points = await employee.employeeLocation?.getAllValues({\n $startTime: \"2021-03-12T12:00:00.000Z\",\n $endTime: \"2022-04-14T12:00:00.000Z\",\n });\n expect(points).toBeDefined();\n expect(points!).toEqual([]);\n });\n\n it(\"async iter points with absolute range works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const pointsIter = employee.employeeLocation?.asyncIterValues({\n $startTime: \"2013-03-12T12:00:00.000Z\",\n $endTime: \"2014-04-14T12:00:00.000Z\",\n });\n\n const points: TimeSeriesPoint<GeoJSON.Point>[] = [];\n for await (const point of pointsIter!) {\n points.push(point);\n }\n expect(points).toBeDefined();\n expect(points!).toEqual([{\n time: \"2013-03-13\",\n value: { type: \"Point\", coordinates: [2.2, 2.2] },\n }, {\n time: \"2014-04-14\",\n value: { type: \"Point\", coordinates: [3.3, 3.3] },\n }]);\n });\n\n it(\"async iter points with no query\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const pointsIter = employee.employeeLocation?.asyncIterValues();\n\n const points: TimeSeriesPoint<GeoJSON.Point>[] = [];\n for await (const point of pointsIter!) {\n points.push(point);\n }\n expect(points).toBeDefined();\n expect(points!).toEqual([\n { time: \"2012-02-12\", value: { type: \"Point\", coordinates: [1.1, 1.1] } },\n { time: \"2012-02-12\", value: { type: \"Point\", coordinates: [1.1, 1.1] } },\n {\n time: \"2013-03-13\",\n value: { type: \"Point\", coordinates: [2.2, 2.2] },\n },\n { time: \"2014-04-14\", value: { type: \"Point\", coordinates: [3.3, 3.3] } },\n { time: \"2014-04-14\", value: { type: \"Point\", coordinates: [3.3, 3.3] } },\n ]);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"geotimeseriesreference.test.js","names":["$ontologyRid","Employee","LegacyFauxFoundry","startNodeApiServer","formatISO","sub","beforeAll","describe","expect","it","vi","createClient","client","locationGeotimeData","time","value","type","coordinates","Date","now","testSetup","pk","data","Object","entries","fauxFoundry","getDataStore","registerTimeSeriesData","useFakeTimers","setSystemTime","apiServer","close","useRealTimers","employee","fetchOne","employee2","$primaryKey","toEqual","location","employeeLocation","toBeDefined","initialLastPoint","lastFetchedValue","toBeUndefined","fetchedPoint","getLatestValue","nextLastPoint","initialPointEmployee2","fetchedPoint2","nextLastPoint2","points","getAllValues","$before","$unit","$after","$startTime","$endTime","pointsIter","asyncIterValues","point","push"],"sources":["geotimeseriesreference.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 type { TimeSeriesPoint } from \"@osdk/api\";\nimport { $ontologyRid, Employee } from \"@osdk/client.test.ontology\";\nimport { LegacyFauxFoundry, startNodeApiServer } from \"@osdk/shared.test\";\nimport { formatISO, sub } from \"date-fns\";\nimport { beforeAll, describe, expect, it, vi } from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\n\ndescribe(\"Timeseries\", () => {\n let client: Client;\n const locationGeotimeData = {\n 50030: [\n {\n time: \"2012-02-12\",\n value: { type: \"Point\", coordinates: [1.1, 1.1] },\n },\n {\n time: \"2013-03-13\",\n value: { type: \"Point\", coordinates: [2.2, 2.2] },\n },\n {\n time: \"2014-04-14\",\n value: { type: \"Point\", coordinates: [3.3, 3.3] },\n },\n ],\n 50031: [\n {\n time: formatISO(sub(Date.now(), { \"days\": 2 })),\n value: {\n type: \"Point\",\n coordinates: [2.2, 2.2],\n },\n },\n ],\n };\n\n beforeAll(async () => {\n const testSetup = startNodeApiServer(\n new LegacyFauxFoundry(),\n createClient,\n );\n ({ client } = testSetup);\n\n for (const [pk, data] of Object.entries(locationGeotimeData)) {\n testSetup.fauxFoundry.getDataStore($ontologyRid)\n .registerTimeSeriesData(\n \"Employee\",\n pk,\n \"employeeLocation\",\n data,\n );\n }\n\n vi.useFakeTimers();\n vi.setSystemTime(new Date(\"2013-03-13\"));\n\n return () => {\n testSetup.apiServer.close();\n vi.useRealTimers();\n };\n });\n\n it(\"get latest value works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n const employee2 = await client(Employee).fetchOne(50031);\n expect(employee.$primaryKey).toEqual(50030);\n expect(employee2.$primaryKey).toEqual(50031);\n const location = employee.employeeLocation;\n\n expect(location).toBeDefined();\n\n const initialLastPoint = employee.employeeLocation?.lastFetchedValue;\n expect(initialLastPoint).toBeUndefined();\n\n const fetchedPoint = await employee.employeeLocation?.getLatestValue();\n const nextLastPoint = employee.employeeLocation?.lastFetchedValue;\n expect(employee.employeeLocation?.lastFetchedValue).toBeDefined();\n\n expect(nextLastPoint).toEqual(fetchedPoint);\n expect(nextLastPoint).toEqual(locationGeotimeData[50030][2]);\n\n expect(fetchedPoint).toEqual(locationGeotimeData[50030][2]);\n\n // Making sure caching working as expected\n const initialPointEmployee2 = employee2.employeeLocation?.lastFetchedValue;\n expect(initialPointEmployee2).toBeUndefined();\n\n const fetchedPoint2 = await employee2.employeeLocation?.getLatestValue();\n const nextLastPoint2 = employee2.employeeLocation?.lastFetchedValue;\n expect(employee2.employeeLocation?.lastFetchedValue).toBeDefined();\n\n expect(nextLastPoint2).toEqual(fetchedPoint2);\n expect(nextLastPoint2).toEqual(locationGeotimeData[50031][0]);\n\n expect(fetchedPoint2).toEqual(locationGeotimeData[50031][0]);\n });\n\n it(\"getAll values with before works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const points = await employee.employeeLocation?.getAllValues({\n $before: 1,\n $unit: \"month\",\n });\n expect(points).toBeDefined();\n expect(points!).toEqual([\n locationGeotimeData[50030][1],\n locationGeotimeData[50030][2],\n ]);\n });\n\n it(\"getAll values with after works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const points = await employee.employeeLocation?.getAllValues({\n $after: 1,\n $unit: \"month\",\n });\n expect(points).toBeDefined();\n expect(points!).toEqual([\n locationGeotimeData[50030][0],\n locationGeotimeData[50030][1],\n ]);\n\n vi.useRealTimers();\n });\n\n it(\"getAll points with absolute range works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const points = await employee.employeeLocation?.getAllValues({\n $startTime: \"2013-03-12T12:00:00.000Z\",\n $endTime: \"2014-04-14T12:00:00.000Z\",\n });\n expect(points).toBeDefined();\n expect(points!).toEqual([{\n time: \"2013-03-13\",\n value: { type: \"Point\", coordinates: [2.2, 2.2] },\n }, {\n time: \"2014-04-14\",\n value: { type: \"Point\", coordinates: [3.3, 3.3] },\n }]);\n });\n\n it(\"getAll points with no query works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const points = await employee.employeeLocation?.getAllValues();\n expect(points).toBeDefined();\n expect(points!).toEqual(\n locationGeotimeData[50030],\n );\n });\n\n it(\"getAll points with no data works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const points = await employee.employeeLocation?.getAllValues({\n $startTime: \"2021-03-12T12:00:00.000Z\",\n $endTime: \"2022-04-14T12:00:00.000Z\",\n });\n expect(points).toBeDefined();\n expect(points!).toEqual([]);\n });\n\n it(\"async iter points with absolute range works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const pointsIter = employee.employeeLocation?.asyncIterValues({\n $startTime: \"2013-03-12T12:00:00.000Z\",\n $endTime: \"2014-04-14T12:00:00.000Z\",\n });\n\n const points: TimeSeriesPoint<GeoJSON.Point>[] = [];\n for await (const point of pointsIter!) {\n points.push(point);\n }\n expect(points).toBeDefined();\n expect(points!).toEqual([\n locationGeotimeData[50030][1],\n locationGeotimeData[50030][2],\n ]);\n });\n\n it(\"async iter points with no query\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const pointsIter = employee.employeeLocation?.asyncIterValues();\n\n const points: TimeSeriesPoint<GeoJSON.Point>[] = [];\n for await (const point of pointsIter!) {\n points.push(point);\n }\n expect(points).toBeDefined();\n expect(points!).toEqual(\n locationGeotimeData[50030],\n );\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,17 +15,22 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import { $ontologyRid, objectTypeWithAllPropertyTypes } from "@osdk/client.test.ontology";
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
18
|
+
import { LegacyFauxFoundry, startNodeApiServer, stubData } from "@osdk/shared.test";
|
|
19
|
+
import { beforeAll, describe, expect, it } from "vitest";
|
|
20
20
|
import { createClient } from "../createClient.js";
|
|
21
21
|
describe("media", () => {
|
|
22
22
|
let client;
|
|
23
|
-
beforeAll(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
beforeAll(() => {
|
|
24
|
+
const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);
|
|
25
|
+
({
|
|
26
|
+
client
|
|
27
|
+
} = testSetup);
|
|
28
|
+
testSetup.fauxFoundry.getDataStore($ontologyRid).registerMedia(objectTypeWithAllPropertyTypes.apiName, "mediaReference", new TextEncoder().encode(JSON.stringify({
|
|
29
|
+
content: "Hello World"
|
|
30
|
+
})), "application/json", "file1.txt", stubData.objectWithAllPropertyTypes1.mediaReference);
|
|
31
|
+
return () => {
|
|
32
|
+
testSetup.apiServer.close();
|
|
33
|
+
};
|
|
29
34
|
});
|
|
30
35
|
it("reads media metadata successfully", async () => {
|
|
31
36
|
const result = await client(objectTypeWithAllPropertyTypes).where({
|
|
@@ -34,10 +39,11 @@ describe("media", () => {
|
|
|
34
39
|
const object1 = result.data[0];
|
|
35
40
|
expect(object1.mediaReference).toBeDefined();
|
|
36
41
|
const mediaMetadata = await object1.mediaReference?.fetchMetadata();
|
|
37
|
-
expect(mediaMetadata).
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
expect(mediaMetadata).toEqual({
|
|
43
|
+
path: "file1.txt",
|
|
44
|
+
mediaType: "application/json",
|
|
45
|
+
sizeBytes: 25
|
|
46
|
+
});
|
|
41
47
|
});
|
|
42
48
|
it("reads media content successfully", async () => {
|
|
43
49
|
const result = await client(objectTypeWithAllPropertyTypes).where({
|
|
@@ -46,8 +52,7 @@ describe("media", () => {
|
|
|
46
52
|
const object1 = result.data[0];
|
|
47
53
|
expect(object1.mediaReference).toBeDefined();
|
|
48
54
|
const mediaContent = await object1?.mediaReference?.fetchContents();
|
|
49
|
-
|
|
50
|
-
expect(JSON.parse(mediaText)).toEqual({
|
|
55
|
+
expect(await mediaContent.json()).toEqual({
|
|
51
56
|
content: "Hello World"
|
|
52
57
|
});
|
|
53
58
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.test.js","names":["$ontologyRid","objectTypeWithAllPropertyTypes","
|
|
1
|
+
{"version":3,"file":"media.test.js","names":["$ontologyRid","objectTypeWithAllPropertyTypes","LegacyFauxFoundry","startNodeApiServer","stubData","beforeAll","describe","expect","it","createClient","client","testSetup","fauxFoundry","getDataStore","registerMedia","apiName","TextEncoder","encode","JSON","stringify","content","objectWithAllPropertyTypes1","mediaReference","apiServer","close","result","where","id","fetchPage","object1","data","toBeDefined","mediaMetadata","fetchMetadata","toEqual","path","mediaType","sizeBytes","mediaContent","fetchContents","json"],"sources":["media.test.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $ontologyRid,\n objectTypeWithAllPropertyTypes,\n} from \"@osdk/client.test.ontology\";\nimport {\n LegacyFauxFoundry,\n startNodeApiServer,\n stubData,\n} from \"@osdk/shared.test\";\nimport { beforeAll, describe, expect, it } from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\n\ndescribe(\"media\", () => {\n let client: Client;\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(\n new LegacyFauxFoundry(),\n createClient,\n );\n\n ({ client } = testSetup);\n\n testSetup.fauxFoundry\n .getDataStore($ontologyRid)\n .registerMedia(\n objectTypeWithAllPropertyTypes.apiName,\n \"mediaReference\",\n new TextEncoder().encode(\n JSON.stringify({ content: \"Hello World\" }),\n ),\n \"application/json\",\n \"file1.txt\",\n stubData.objectWithAllPropertyTypes1.mediaReference,\n );\n\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"reads media metadata successfully\", async () => {\n const result = await client(\n objectTypeWithAllPropertyTypes,\n )\n .where({ id: stubData.objectWithAllPropertyTypes1.id }).fetchPage();\n\n const object1 = result.data[0];\n expect(object1.mediaReference).toBeDefined();\n const mediaMetadata = await object1.mediaReference?.fetchMetadata();\n expect(mediaMetadata).toEqual({\n path: \"file1.txt\",\n mediaType: \"application/json\",\n sizeBytes: 25,\n });\n });\n\n it(\"reads media content successfully\", async () => {\n const result = await client(objectTypeWithAllPropertyTypes)\n .where({ id: stubData.objectWithAllPropertyTypes1.id }).fetchPage();\n\n const object1 = result.data[0];\n expect(object1.mediaReference).toBeDefined();\n const mediaContent = await object1?.mediaReference?.fetchContents();\n expect(await mediaContent!.json()).toEqual({\n content: \"Hello World\",\n });\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SACEA,YAAY,EACZC,8BAA8B,QACzB,4BAA4B;AACnC,SACEC,iBAAiB,EACjBC,kBAAkB,EAClBC,QAAQ,QACH,mBAAmB;AAC1B,SAASC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAExD,SAASC,YAAY,QAAQ,oBAAoB;AAEjDH,QAAQ,CAAC,OAAO,EAAE,MAAM;EACtB,IAAII,MAAc;EAElBL,SAAS,CAAC,MAAM;IACd,MAAMM,SAAS,GAAGR,kBAAkB,CAClC,IAAID,iBAAiB,CAAC,CAAC,EACvBO,YACF,CAAC;IAED,CAAC;MAAEC;IAAO,CAAC,GAAGC,SAAS;IAEvBA,SAAS,CAACC,WAAW,CAClBC,YAAY,CAACb,YAAY,CAAC,CAC1Bc,aAAa,CACZb,8BAA8B,CAACc,OAAO,EACtC,gBAAgB,EAChB,IAAIC,WAAW,CAAC,CAAC,CAACC,MAAM,CACtBC,IAAI,CAACC,SAAS,CAAC;MAAEC,OAAO,EAAE;IAAc,CAAC,CAC3C,CAAC,EACD,kBAAkB,EAClB,WAAW,EACXhB,QAAQ,CAACiB,2BAA2B,CAACC,cACvC,CAAC;IAEH,OAAO,MAAM;MACXX,SAAS,CAACY,SAAS,CAACC,KAAK,CAAC,CAAC;IAC7B,CAAC;EACH,CAAC,CAAC;EAEFhB,EAAE,CAAC,mCAAmC,EAAE,YAAY;IAClD,MAAMiB,MAAM,GAAG,MAAMf,MAAM,CACzBT,8BACF,CAAC,CACEyB,KAAK,CAAC;MAAEC,EAAE,EAAEvB,QAAQ,CAACiB,2BAA2B,CAACM;IAAG,CAAC,CAAC,CAACC,SAAS,CAAC,CAAC;IAErE,MAAMC,OAAO,GAAGJ,MAAM,CAACK,IAAI,CAAC,CAAC,CAAC;IAC9BvB,MAAM,CAACsB,OAAO,CAACP,cAAc,CAAC,CAACS,WAAW,CAAC,CAAC;IAC5C,MAAMC,aAAa,GAAG,MAAMH,OAAO,CAACP,cAAc,EAAEW,aAAa,CAAC,CAAC;IACnE1B,MAAM,CAACyB,aAAa,CAAC,CAACE,OAAO,CAAC;MAC5BC,IAAI,EAAE,WAAW;MACjBC,SAAS,EAAE,kBAAkB;MAC7BC,SAAS,EAAE;IACb,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF7B,EAAE,CAAC,kCAAkC,EAAE,YAAY;IACjD,MAAMiB,MAAM,GAAG,MAAMf,MAAM,CAACT,8BAA8B,CAAC,CACxDyB,KAAK,CAAC;MAAEC,EAAE,EAAEvB,QAAQ,CAACiB,2BAA2B,CAACM;IAAG,CAAC,CAAC,CAACC,SAAS,CAAC,CAAC;IAErE,MAAMC,OAAO,GAAGJ,MAAM,CAACK,IAAI,CAAC,CAAC,CAAC;IAC9BvB,MAAM,CAACsB,OAAO,CAACP,cAAc,CAAC,CAACS,WAAW,CAAC,CAAC;IAC5C,MAAMO,YAAY,GAAG,MAAMT,OAAO,EAAEP,cAAc,EAAEiB,aAAa,CAAC,CAAC;IACnEhC,MAAM,CAAC,MAAM+B,YAAY,CAAEE,IAAI,CAAC,CAAC,CAAC,CAACN,OAAO,CAAC;MACzCd,OAAO,EAAE;IACX,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import { $Objects,
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
17
|
+
import { $Objects, Employee, FooInterface } from "@osdk/client.test.ontology";
|
|
18
|
+
import { LegacyFauxFoundry, startNodeApiServer, stubData, withoutRid } from "@osdk/shared.test";
|
|
19
|
+
import { beforeAll, describe, expect, expectTypeOf, it } from "vitest";
|
|
20
20
|
import { additionalContext } from "../Client.js";
|
|
21
21
|
import { createClient } from "../createClient.js";
|
|
22
22
|
import { InterfaceDefinitions } from "../ontology/OntologyProvider.js";
|
|
@@ -34,16 +34,17 @@ function asV2Object(o, includeRid) {
|
|
|
34
34
|
delete o.__title;
|
|
35
35
|
return o;
|
|
36
36
|
}
|
|
37
|
-
describe("
|
|
37
|
+
describe.each(["https://stack.palantir.com", "https://stack.palantirCustom.com/foo/first/someStuff"])("OsdkObject for %s", baseUrl => {
|
|
38
38
|
let client;
|
|
39
|
-
let customEntryPointClient;
|
|
40
39
|
beforeAll(async () => {
|
|
41
|
-
apiServer
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
40
|
+
let apiServer;
|
|
41
|
+
({
|
|
42
|
+
client,
|
|
43
|
+
apiServer
|
|
44
|
+
} = startNodeApiServer(new LegacyFauxFoundry(baseUrl), createClient));
|
|
45
|
+
return () => {
|
|
46
|
+
apiServer.close();
|
|
47
|
+
};
|
|
47
48
|
});
|
|
48
49
|
describe("link", () => {
|
|
49
50
|
it("loads an employee", async () => {
|
|
@@ -71,7 +72,7 @@ describe("OsdkObject", () => {
|
|
|
71
72
|
expect(Object.keys(employee.$link.lead)).toBeDefined();
|
|
72
73
|
});
|
|
73
74
|
it("loads an employee with custom client", async () => {
|
|
74
|
-
const result = await
|
|
75
|
+
const result = await client(Employee).where({
|
|
75
76
|
employeeId: stubData.employee1.employeeId
|
|
76
77
|
}).fetchPage();
|
|
77
78
|
|
|
@@ -221,25 +222,23 @@ describe("OsdkObject", () => {
|
|
|
221
222
|
});
|
|
222
223
|
const mergedEmployee = employee.$clone(updatedEmployee);
|
|
223
224
|
expectTypeOf(mergedEmployee).toEqualTypeOf(employee);
|
|
224
|
-
expect(mergedEmployee).
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
"
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
}
|
|
242
|
-
`);
|
|
225
|
+
expect(mergedEmployee).toMatchObject({
|
|
226
|
+
"$apiName": "Employee",
|
|
227
|
+
"$objectSpecifier": "Employee:50031",
|
|
228
|
+
"$objectType": "Employee",
|
|
229
|
+
"$primaryKey": 50031,
|
|
230
|
+
"$title": "Jane Doe",
|
|
231
|
+
"class": "Red",
|
|
232
|
+
"employeeId": 50031,
|
|
233
|
+
"employeeLocation": {
|
|
234
|
+
"lastFetchedValue": undefined
|
|
235
|
+
},
|
|
236
|
+
"employeeSensor": {},
|
|
237
|
+
"employeeStatus": {},
|
|
238
|
+
"fullName": "Jane Doe",
|
|
239
|
+
"office": "NYC",
|
|
240
|
+
"startDate": "2012-02-12"
|
|
241
|
+
});
|
|
243
242
|
});
|
|
244
243
|
it("correctly scopes up with another OSDK object", async () => {
|
|
245
244
|
expectTypeOf({
|
|
@@ -259,25 +258,23 @@ describe("OsdkObject", () => {
|
|
|
259
258
|
"office": "SEA",
|
|
260
259
|
"startDate": "2019-01-01"
|
|
261
260
|
});
|
|
262
|
-
expect(mergedEmployee).
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
"
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
}
|
|
280
|
-
`);
|
|
261
|
+
expect(mergedEmployee).toMatchObject({
|
|
262
|
+
"$apiName": "Employee",
|
|
263
|
+
"$objectSpecifier": "Employee:50031",
|
|
264
|
+
"$objectType": "Employee",
|
|
265
|
+
"$primaryKey": 50031,
|
|
266
|
+
"$title": "John Doe",
|
|
267
|
+
"class": "Green",
|
|
268
|
+
"employeeId": 50031,
|
|
269
|
+
"employeeLocation": {
|
|
270
|
+
"lastFetchedValue": undefined
|
|
271
|
+
},
|
|
272
|
+
"employeeSensor": {},
|
|
273
|
+
"employeeStatus": {},
|
|
274
|
+
"fullName": "John Doe",
|
|
275
|
+
"office": "SEA",
|
|
276
|
+
"startDate": "2019-01-01"
|
|
277
|
+
});
|
|
281
278
|
});
|
|
282
279
|
it("correctly scopes up with a record", async () => {
|
|
283
280
|
expectTypeOf({
|
|
@@ -294,25 +291,23 @@ describe("OsdkObject", () => {
|
|
|
294
291
|
const mergedEmployee = employee.$clone({
|
|
295
292
|
"fullName": "Brad Pitt"
|
|
296
293
|
});
|
|
297
|
-
expect(mergedEmployee).
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
"
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
}
|
|
315
|
-
`);
|
|
294
|
+
expect(mergedEmployee).toMatchObject({
|
|
295
|
+
"$apiName": "Employee",
|
|
296
|
+
"$objectSpecifier": "Employee:50031",
|
|
297
|
+
"$objectType": "Employee",
|
|
298
|
+
"$primaryKey": 50031,
|
|
299
|
+
"$title": "Brad Pitt",
|
|
300
|
+
"class": "Blue",
|
|
301
|
+
"employeeId": 50031,
|
|
302
|
+
"employeeLocation": {
|
|
303
|
+
"lastFetchedValue": undefined
|
|
304
|
+
},
|
|
305
|
+
"employeeSensor": {},
|
|
306
|
+
"employeeStatus": {},
|
|
307
|
+
"fullName": "Brad Pitt",
|
|
308
|
+
"office": "SEA",
|
|
309
|
+
"startDate": "2012-02-12"
|
|
310
|
+
});
|
|
316
311
|
});
|
|
317
312
|
it("is able to clone with nothing passed in", async () => {
|
|
318
313
|
expect(employee.$clone()).toMatchObject({
|
|
@@ -403,25 +398,23 @@ describe("OsdkObject", () => {
|
|
|
403
398
|
const clonedInterface = personInterfaceObject.$clone({
|
|
404
399
|
"fooSpt": "John Adams"
|
|
405
400
|
});
|
|
406
|
-
expect(clonedInterface).
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
}
|
|
424
|
-
`);
|
|
401
|
+
expect(clonedInterface).toMatchObject({
|
|
402
|
+
"$apiName": "FooInterface",
|
|
403
|
+
"$objectSpecifier": "Employee:50031",
|
|
404
|
+
"$objectType": "Employee",
|
|
405
|
+
"$primaryKey": 50031,
|
|
406
|
+
"$title": "John Adams",
|
|
407
|
+
"fooSpt": "John Adams"
|
|
408
|
+
});
|
|
409
|
+
expect(clonedInterface.$as("Employee")).toMatchObject({
|
|
410
|
+
"$apiName": "Employee",
|
|
411
|
+
"$objectSpecifier": "Employee:50031",
|
|
412
|
+
"$objectType": "Employee",
|
|
413
|
+
"$primaryKey": 50031,
|
|
414
|
+
"$title": "John Adams",
|
|
415
|
+
"employeeId": 50031,
|
|
416
|
+
"fullName": "John Adams"
|
|
417
|
+
});
|
|
425
418
|
});
|
|
426
419
|
it("Throws if updating an interface with a property not implemented by the underlying object type", () => {
|
|
427
420
|
const employeeOsdkObject = createOsdkObject(client[additionalContext], EmployeeFetchedMetadata, {
|
|
@@ -435,10 +428,24 @@ describe("OsdkObject", () => {
|
|
|
435
428
|
const loadedInterfaceObject = employeeOsdkObject.$as(interfaceDef);
|
|
436
429
|
expect(() => loadedInterfaceObject.$clone({
|
|
437
430
|
"notImplementedFooSpt": "John Adams"
|
|
438
|
-
})).
|
|
431
|
+
})).toThrowError(`Cannot clone interface with notImplementedFooSpt as property is not implemented by the underlying object type Employee`);
|
|
439
432
|
});
|
|
440
433
|
});
|
|
441
434
|
});
|
|
435
|
+
describe("objectSpecifier", () => {
|
|
436
|
+
it("returns the object specifier for a loaded object", async () => {
|
|
437
|
+
const result = await client(Employee).where({
|
|
438
|
+
employeeId: stubData.employee1.employeeId
|
|
439
|
+
}).fetchPage();
|
|
440
|
+
const employee = result.data[0];
|
|
441
|
+
expect(employee.$objectSpecifier).toBe("Employee:50030");
|
|
442
|
+
});
|
|
443
|
+
it("returns the object specifier for a loaded interface object", async () => {
|
|
444
|
+
const result = await client(FooInterface).fetchPage();
|
|
445
|
+
const object = result.data[0];
|
|
446
|
+
expect(object.$objectSpecifier).toBe("Employee:50030");
|
|
447
|
+
});
|
|
448
|
+
});
|
|
442
449
|
});
|
|
443
450
|
export async function shouldError(client) {
|
|
444
451
|
// @ts-expect-error
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.test.js","names":["$Objects","$ontologyRid","Employee","apiServer","stubData","withoutRid","afterAll","beforeAll","describe","expect","expectTypeOf","it","additionalContext","createClient","InterfaceDefinitions","createOsdkObject","asV2Object","o","includeRid","$apiName","__apiName","$objectType","$primaryKey","__primaryKey","$title","__title","client","customEntryPointClient","listen","close","result","where","employeeId","employee1","fetchPage","employee","data","JSON","stringify","toBeDefined","toMatchObject","anything","startDate","Object","keys","$link","lead","fetchOne","$select","toBe","employee2","employeeStatus","toBeUndefined","employees","$and","peepsResult","peeps","toHaveLength","nextPageToken","office","peep","$includeRid","leadRid","$rid","objects","sort","toStrictEqual","updatedEmployee","mergedEmployee","$clone","toEqualTypeOf","toMatchInlineSnapshot","toMatchTypeOf","toThrow","interfaceDef","apiName","displayName","links","properties","type","rid","implements","fooInterfaceOsdkDef","EmployeeFetchedMetadata","interfaceMap","inverseInterfaceMap","def","titleProperty","pluralDisplayName","status","employeeOsdkObject","personInterfaceObject","$as","clonedInterface","loadedInterfaceObject","toThrowErrorMatchingInlineSnapshot","shouldError","shouldError2","shouldCompile_client_fetchOne_old_select","shouldCompile_unstableClient_fetchOne_old_select","shouldCompile_client_fetchOne_new_select","shouldCompile_unstableClient_fetchOne_new_select","shouldCompile_client_fetchOne_old_noArgs","shouldCompile_unstableClient_fetchOne_noArgs"],"sources":["object.test.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n InterfaceDefinition,\n InterfaceMetadata,\n Osdk,\n PropertyKeys,\n} from \"@osdk/api\";\nimport { $Objects, $ontologyRid, Employee } from \"@osdk/client.test.ontology\";\nimport { apiServer, stubData, withoutRid } from \"@osdk/shared.test\";\nimport {\n afterAll,\n beforeAll,\n describe,\n expect,\n expectTypeOf,\n it,\n} from \"vitest\";\nimport { additionalContext, type Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\nimport type {\n FetchedObjectTypeDefinition,\n} from \"../ontology/OntologyProvider.js\";\nimport { InterfaceDefinitions } from \"../ontology/OntologyProvider.js\";\nimport { createOsdkObject } from \"./convertWireToOsdkObjects/createOsdkObject.js\";\n\nfunction asV2Object(o: any, includeRid?: boolean) {\n o = includeRid ? { ...o } : withoutRid(o);\n o.$apiName = o.__apiName;\n o.$objectType = o.__apiName;\n o.$primaryKey = o.__primaryKey;\n o.$title = o.__title;\n delete o.__apiName;\n delete o.__primaryKey;\n delete o.__title;\n return o;\n}\n\ndescribe(\"OsdkObject\", () => {\n let client: Client;\n let customEntryPointClient: Client;\n\n beforeAll(async () => {\n apiServer.listen();\n client = createClient(\n \"https://stack.palantir.com\",\n $ontologyRid,\n async () => \"myAccessToken\",\n );\n customEntryPointClient = createClient(\n \"https://stack.palantirCustom.com/foo/first/someStuff\",\n $ontologyRid,\n async () => \"myAccessToken\",\n );\n });\n\n afterAll(() => {\n apiServer.close();\n });\n describe(\"link\", () => {\n it(\"loads an employee\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage();\n\n // we should get the employee we requested\n const employee = result.data[0];\n expect(JSON.stringify(employee)).toBeDefined();\n expect(employee).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50030,\n \"class\": \"Red\",\n \"employeeId\": 50030,\n \"employeeStatus\": expect.anything(),\n \"fullName\": \"John Doe\",\n \"office\": \"NYC\",\n \"startDate\": \"2019-01-01\",\n });\n\n employee.startDate;\n\n // it should have the prototype that we assign at hydration time\n expect(Object.keys(employee.$link.lead)).toBeDefined();\n });\n it(\"loads an employee with custom client\", async () => {\n const result = await customEntryPointClient(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage();\n\n // we should get the employee we requested\n const employee = result.data[0];\n expect(JSON.stringify(employee)).toBeDefined();\n expect(employee).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50030,\n \"class\": \"Red\",\n \"employeeId\": 50030,\n \"employeeStatus\": expect.anything(),\n \"fullName\": \"John Doe\",\n \"office\": \"NYC\",\n \"startDate\": \"2019-01-01\",\n });\n\n employee.startDate;\n\n // it should have the prototype that we assign at hydration time\n expect(Object.keys(employee.$link.lead)).toBeDefined();\n });\n\n it(\"traverses the link from an employee to their lead\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage();\n const employee = result.data[0];\n\n const lead = await employee.$link.lead.fetchOne({\n $select: [\"employeeId\"],\n });\n expect(lead.employeeId).toBe(stubData.employee2.employeeId);\n\n // ensure that the select was performed\n expect(lead.employeeId).toBeDefined();\n expect((lead as any).employeeStatus).toBeUndefined();\n });\n\n it(\"traverses the link from an lead to their peeps\", async () => {\n // slightly weird request here to hit the existing mocks for employee2\n const employees = await client(Employee).where({\n $and: [\n { \"employeeId\": { \"$gt\": 50030 } },\n { \"employeeId\": { \"$lt\": 50032 } },\n ],\n }).fetchPage();\n const lead = employees.data[0];\n expect(lead).toBeDefined();\n\n const peepsResult = await lead.$link.peeps.fetchPage({\n $select: [\"fullName\", \"employeeId\"],\n });\n expect(peepsResult.data).toHaveLength(2);\n expect(peepsResult.nextPageToken).toBeUndefined();\n\n // ensure that the select was performed\n expect(peepsResult.data[0]!.employeeId).toBeDefined();\n expect((peepsResult.data[0] as any).office).toBeUndefined();\n });\n\n it(\"traverses the link from an lead to their peep by primaryKey with fetchOne\", async () => {\n // slightly weird request here to hit the existing mocks for employee2\n const employees = await client(Employee).where({\n $and: [\n { \"employeeId\": { \"$gt\": 50030 } },\n { \"employeeId\": { \"$lt\": 50032 } },\n ],\n }).fetchPage();\n const lead = employees.data[0];\n expect(lead).toBeDefined();\n\n const peep = await lead.$link.peeps.fetchOne(\n stubData.employee1.employeeId,\n {\n $select: [\"employeeId\"],\n },\n );\n expect(peep).toBeDefined();\n\n // ensure that select worked\n expect(peep.employeeId).toBeDefined();\n expect((peep as any).employeeStatus).toBeUndefined();\n });\n it(\"gives $rid access when requested\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage(\n {\n $includeRid: true,\n },\n );\n const leadRid = result.data[0].$rid;\n expect(leadRid).toBeDefined();\n expect(leadRid).toBe(\n \"ri.phonograph2-objects.main.object.88a6fccb-f333-46d6-a07e-7725c5f18b61\",\n );\n });\n it(\"objects are enumerable in an sdk\", async () => {\n const objects = Object.keys($Objects);\n expect(objects.sort()).toStrictEqual([\n \"BgaoNflPlayer\",\n \"Employee\",\n \"ObjectWithTimestampPrimaryKey\",\n \"Office\",\n \"Person\",\n \"Task\",\n \"Todo\",\n \"equipment\",\n \"objectTypeWithAllPropertyTypes\",\n ].sort());\n });\n });\n describe(\"clone\", () => {\n let employee: Osdk.Instance<\n $Objects.Employee,\n never,\n PropertyKeys<$Objects.Employee>\n >;\n beforeAll(async () => {\n employee = (await client(Employee).where({\n employeeId: stubData.employee2.employeeId,\n }).fetchPage()).data[0];\n\n expect(employee).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Blue\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2012-02-12\",\n });\n });\n\n it(\"clones and updates an object with another osdk object\", async () => {\n const updatedEmployee = createOsdkObject(\n client[additionalContext],\n {\n \"apiName\": \"Employee\",\n \"primaryKeyType\": \"integer\",\n \"primaryKeyApiName\": \"employeeId\",\n \"properties\": {\n \"class\": { \"type\": \"string\" },\n \"employeeId\": { \"type\": \"integer\" },\n \"fullName\": { \"type\": \"string\" },\n \"office\": { \"type\": \"string\" },\n },\n } as any,\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Red\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n \"office\": \"NYC\",\n },\n ) as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\" | \"employeeId\" | \"fullName\" | \"office\"\n >;\n\n const mergedEmployee = employee.$clone(updatedEmployee);\n\n expectTypeOf(mergedEmployee).toEqualTypeOf(employee);\n\n expect(mergedEmployee).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Red\",\n \"employeeId\": 50031,\n \"employeeLocation\": GeotimeSeriesPropertyImpl {\n \"lastFetchedValue\": undefined,\n },\n \"employeeSensor\": TimeSeriesPropertyImpl {},\n \"employeeStatus\": TimeSeriesPropertyImpl {},\n \"fullName\": \"Jane Doe\",\n \"office\": \"NYC\",\n \"startDate\": \"2012-02-12\",\n }\n `);\n });\n\n it(\"correctly scopes up with another OSDK object\", async () => {\n const firstEmployee = { $clone: () => {} } as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\"\n >;\n expectTypeOf(firstEmployee.$clone(employee)).toMatchTypeOf<\n Osdk.Instance<\n Employee,\n never,\n PropertyKeys<Employee>\n >\n >();\n });\n\n it(\"Correctly preserves keys from original and new with distinct property key sets\", async () => {\n const firstEmployee = { $clone: () => {} } as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\"\n >;\n expectTypeOf(\n firstEmployee.$clone({} as Osdk.Instance<Employee, never, \"office\">),\n ).toMatchTypeOf<\n Osdk.Instance<\n Employee,\n never,\n \"class\" | \"office\"\n >\n >();\n });\n\n it(\"clones and updates an object with a record\", async () => {\n const mergedEmployee = employee.$clone({\n \"class\": \"Green\",\n \"employeeId\": 50031,\n \"fullName\": \"John Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2019-01-01\",\n });\n\n expect(mergedEmployee).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"John Doe\",\n \"class\": \"Green\",\n \"employeeId\": 50031,\n \"employeeLocation\": GeotimeSeriesPropertyImpl {\n \"lastFetchedValue\": undefined,\n },\n \"employeeSensor\": TimeSeriesPropertyImpl {},\n \"employeeStatus\": TimeSeriesPropertyImpl {},\n \"fullName\": \"John Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2019-01-01\",\n }\n `);\n });\n\n it(\"correctly scopes up with a record\", async () => {\n const firstEmployee = { $clone: () => {} } as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\"\n >;\n expectTypeOf(firstEmployee.$clone({\n \"class\": \"Green\",\n \"employeeId\": 50031,\n \"fullName\": \"John Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2019-01-01\",\n })).toMatchTypeOf<\n Osdk.Instance<\n Employee,\n never,\n \"class\" | \"employeeId\" | \"fullName\" | \"office\" | \"startDate\"\n >\n >();\n });\n\n it(\"correctly sets title\", async () => {\n const mergedEmployee = employee.$clone({\n \"fullName\": \"Brad Pitt\",\n });\n\n expect(mergedEmployee).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Brad Pitt\",\n \"class\": \"Blue\",\n \"employeeId\": 50031,\n \"employeeLocation\": GeotimeSeriesPropertyImpl {\n \"lastFetchedValue\": undefined,\n },\n \"employeeSensor\": TimeSeriesPropertyImpl {},\n \"employeeStatus\": TimeSeriesPropertyImpl {},\n \"fullName\": \"Brad Pitt\",\n \"office\": \"SEA\",\n \"startDate\": \"2012-02-12\",\n }\n `);\n });\n\n it(\"is able to clone with nothing passed in\", async () => {\n expect(employee.$clone()).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Blue\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2012-02-12\",\n });\n });\n\n it(\"throws when merging objects with different primary keys\", async () => {\n expect(() =>\n employee.$clone({\n \"class\": \"Green\",\n \"employeeId\": 50035,\n })\n ).toThrow();\n });\n describe(\"interface\", () => {\n const interfaceDef = {\n apiName: \"FooInterface\",\n displayName: \"\",\n links: {},\n properties: {\n \"fooSpt\": {\n type: \"string\",\n },\n \"notImplementedFooSpt\": {\n type: \"string\",\n },\n },\n rid: \"\",\n type: \"interface\",\n implements: [],\n } satisfies InterfaceMetadata;\n\n const fooInterfaceOsdkDef = {\n apiName: \"FooInterface\",\n type: \"interface\",\n \"__DefinitionMetadata\": interfaceDef,\n } satisfies InterfaceDefinition;\n\n const EmployeeFetchedMetadata = {\n \"apiName\": \"Employee\",\n \"primaryKeyType\": \"integer\",\n \"primaryKeyApiName\": \"employeeId\",\n \"properties\": {\n \"employeeId\": { \"type\": \"integer\" },\n \"fullName\": { \"type\": \"string\" },\n },\n interfaceMap: {\n \"FooInterface\": {\n \"fooSpt\": \"fullName\",\n },\n },\n inverseInterfaceMap: {\n \"FooInterface\": {\n \"fullName\": \"fooSpt\",\n },\n },\n [InterfaceDefinitions]: {\n \"FooInterface\": { def: interfaceDef },\n },\n type: \"object\",\n titleProperty: \"fullName\",\n pluralDisplayName: \"\",\n status: \"ACTIVE\",\n displayName: \"\",\n links: {},\n rid: \"\",\n } satisfies FetchedObjectTypeDefinition;\n\n it(\"Correctly updates the interface and underlying object\", () => {\n const employeeOsdkObject = createOsdkObject(\n client[additionalContext],\n EmployeeFetchedMetadata,\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n },\n ) as unknown as Osdk.Instance<\n Employee,\n never,\n \"employeeId\" | \"fullName\"\n >;\n\n const personInterfaceObject = employeeOsdkObject.$as(\n fooInterfaceOsdkDef,\n );\n\n const clonedInterface = personInterfaceObject.$clone({\n \"fooSpt\": \"John Adams\",\n });\n\n expect(clonedInterface).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"John Adams\",\n \"fooSpt\": \"John Adams\",\n }\n `);\n\n expect(clonedInterface.$as(\"Employee\")).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"John Adams\",\n \"employeeId\": 50031,\n \"fullName\": \"John Adams\",\n }\n `);\n });\n it(\"Throws if updating an interface with a property not implemented by the underlying object type\", () => {\n const employeeOsdkObject = createOsdkObject(\n client[additionalContext],\n EmployeeFetchedMetadata,\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n },\n ) as unknown as Osdk.Instance<\n Employee,\n never,\n \"employeeId\" | \"fullName\"\n >;\n\n const loadedInterfaceObject = employeeOsdkObject.$as(interfaceDef);\n expect(() =>\n loadedInterfaceObject.$clone({\n \"notImplementedFooSpt\": \"John Adams\",\n })\n ).toThrowErrorMatchingInlineSnapshot(\n `[Error: Cannot clone interface with notImplementedFooSpt as property is not implemented by the underlying object type Employee]`,\n );\n });\n });\n });\n});\n\nexport async function shouldError(client: Client): Promise<Osdk<Employee>> {\n // @ts-expect-error\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldError2(\n client: Client,\n): Promise<Employee.OsdkObject> {\n // @ts-expect-error\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_client_fetchOne_old_select(\n client: Client,\n): Promise<Osdk<Employee, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_unstableClient_fetchOne_old_select(\n client: Client,\n): Promise<Osdk<Employee, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_client_fetchOne_new_select(\n client: Client,\n): Promise<Employee.OsdkObject<never, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_unstableClient_fetchOne_new_select(\n client: Client,\n): Promise<Osdk<Employee, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_client_fetchOne_old_noArgs(\n client: Client,\n): Promise<Osdk<Employee>> {\n return client(Employee).fetchOne(1);\n}\n\nexport async function shouldCompile_unstableClient_fetchOne_noArgs(\n client: Client,\n): Promise<Osdk<Employee>> {\n return client(Employee).fetchOne(1);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"object.test.js","names":["$Objects","Employee","FooInterface","LegacyFauxFoundry","startNodeApiServer","stubData","withoutRid","beforeAll","describe","expect","expectTypeOf","it","additionalContext","createClient","InterfaceDefinitions","createOsdkObject","asV2Object","o","includeRid","$apiName","__apiName","$objectType","$primaryKey","__primaryKey","$title","__title","each","baseUrl","client","apiServer","close","result","where","employeeId","employee1","fetchPage","employee","data","JSON","stringify","toBeDefined","toMatchObject","anything","startDate","Object","keys","$link","lead","fetchOne","$select","toBe","employee2","employeeStatus","toBeUndefined","employees","$and","peepsResult","peeps","toHaveLength","nextPageToken","office","peep","$includeRid","leadRid","$rid","objects","sort","toStrictEqual","updatedEmployee","mergedEmployee","$clone","toEqualTypeOf","undefined","toMatchTypeOf","toThrow","interfaceDef","apiName","displayName","links","properties","type","rid","implements","fooInterfaceOsdkDef","EmployeeFetchedMetadata","interfaceMap","inverseInterfaceMap","def","titleProperty","pluralDisplayName","status","employeeOsdkObject","personInterfaceObject","$as","clonedInterface","loadedInterfaceObject","toThrowError","$objectSpecifier","object","shouldError","shouldError2","shouldCompile_client_fetchOne_old_select","shouldCompile_unstableClient_fetchOne_old_select","shouldCompile_client_fetchOne_new_select","shouldCompile_unstableClient_fetchOne_new_select","shouldCompile_client_fetchOne_old_noArgs","shouldCompile_unstableClient_fetchOne_noArgs"],"sources":["object.test.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n InterfaceDefinition,\n InterfaceMetadata,\n Osdk,\n PropertyKeys,\n} from \"@osdk/api\";\nimport { $Objects, Employee, FooInterface } from \"@osdk/client.test.ontology\";\nimport {\n LegacyFauxFoundry,\n startNodeApiServer,\n stubData,\n withoutRid,\n} from \"@osdk/shared.test\";\nimport { beforeAll, describe, expect, expectTypeOf, it } from \"vitest\";\nimport { additionalContext, type Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\nimport type {\n FetchedObjectTypeDefinition,\n} from \"../ontology/OntologyProvider.js\";\nimport { InterfaceDefinitions } from \"../ontology/OntologyProvider.js\";\nimport { createOsdkObject } from \"./convertWireToOsdkObjects/createOsdkObject.js\";\n\nfunction asV2Object(o: any, includeRid?: boolean) {\n o = includeRid ? { ...o } : withoutRid(o);\n o.$apiName = o.__apiName;\n o.$objectType = o.__apiName;\n o.$primaryKey = o.__primaryKey;\n o.$title = o.__title;\n delete o.__apiName;\n delete o.__primaryKey;\n delete o.__title;\n return o;\n}\n\ndescribe.each([\n \"https://stack.palantir.com\",\n \"https://stack.palantirCustom.com/foo/first/someStuff\",\n])(\"OsdkObject for %s\", (baseUrl) => {\n let client: Client;\n\n beforeAll(async () => {\n let apiServer;\n\n ({ client, apiServer } = startNodeApiServer(\n new LegacyFauxFoundry(baseUrl),\n createClient,\n ));\n\n return () => {\n apiServer.close();\n };\n });\n\n describe(\"link\", () => {\n it(\"loads an employee\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage();\n\n // we should get the employee we requested\n const employee = result.data[0];\n expect(JSON.stringify(employee)).toBeDefined();\n expect(employee).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50030,\n \"class\": \"Red\",\n \"employeeId\": 50030,\n \"employeeStatus\": expect.anything(),\n \"fullName\": \"John Doe\",\n \"office\": \"NYC\",\n \"startDate\": \"2019-01-01\",\n });\n\n employee.startDate;\n\n // it should have the prototype that we assign at hydration time\n expect(Object.keys(employee.$link.lead)).toBeDefined();\n });\n it(\"loads an employee with custom client\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage();\n\n // we should get the employee we requested\n const employee = result.data[0];\n expect(JSON.stringify(employee)).toBeDefined();\n expect(employee).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50030,\n \"class\": \"Red\",\n \"employeeId\": 50030,\n \"employeeStatus\": expect.anything(),\n \"fullName\": \"John Doe\",\n \"office\": \"NYC\",\n \"startDate\": \"2019-01-01\",\n });\n\n employee.startDate;\n\n // it should have the prototype that we assign at hydration time\n expect(Object.keys(employee.$link.lead)).toBeDefined();\n });\n\n it(\"traverses the link from an employee to their lead\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage();\n const employee = result.data[0];\n\n const lead = await employee.$link.lead.fetchOne({\n $select: [\"employeeId\"],\n });\n expect(lead.employeeId).toBe(stubData.employee2.employeeId);\n\n // ensure that the select was performed\n expect(lead.employeeId).toBeDefined();\n expect((lead as any).employeeStatus).toBeUndefined();\n });\n\n it(\"traverses the link from an lead to their peeps\", async () => {\n // slightly weird request here to hit the existing mocks for employee2\n const employees = await client(Employee).where({\n $and: [\n { \"employeeId\": { \"$gt\": 50030 } },\n { \"employeeId\": { \"$lt\": 50032 } },\n ],\n }).fetchPage();\n const lead = employees.data[0];\n expect(lead).toBeDefined();\n\n const peepsResult = await lead.$link.peeps.fetchPage({\n $select: [\"fullName\", \"employeeId\"],\n });\n expect(peepsResult.data).toHaveLength(2);\n expect(peepsResult.nextPageToken).toBeUndefined();\n\n // ensure that the select was performed\n expect(peepsResult.data[0]!.employeeId).toBeDefined();\n expect((peepsResult.data[0] as any).office).toBeUndefined();\n });\n\n it(\"traverses the link from an lead to their peep by primaryKey with fetchOne\", async () => {\n // slightly weird request here to hit the existing mocks for employee2\n const employees = await client(Employee).where({\n $and: [\n { \"employeeId\": { \"$gt\": 50030 } },\n { \"employeeId\": { \"$lt\": 50032 } },\n ],\n }).fetchPage();\n const lead = employees.data[0];\n expect(lead).toBeDefined();\n\n const peep = await lead.$link.peeps.fetchOne(\n stubData.employee1.employeeId,\n {\n $select: [\"employeeId\"],\n },\n );\n expect(peep).toBeDefined();\n\n // ensure that select worked\n expect(peep.employeeId).toBeDefined();\n expect((peep as any).employeeStatus).toBeUndefined();\n });\n it(\"gives $rid access when requested\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage(\n {\n $includeRid: true,\n },\n );\n const leadRid = result.data[0].$rid;\n expect(leadRid).toBeDefined();\n expect(leadRid).toBe(\n \"ri.phonograph2-objects.main.object.88a6fccb-f333-46d6-a07e-7725c5f18b61\",\n );\n });\n it(\"objects are enumerable in an sdk\", async () => {\n const objects = Object.keys($Objects);\n expect(objects.sort()).toStrictEqual([\n \"BgaoNflPlayer\",\n \"Employee\",\n \"ObjectWithTimestampPrimaryKey\",\n \"Office\",\n \"Person\",\n \"Task\",\n \"Todo\",\n \"equipment\",\n \"objectTypeWithAllPropertyTypes\",\n ].sort());\n });\n });\n describe(\"clone\", () => {\n let employee: Osdk.Instance<\n $Objects.Employee,\n never,\n PropertyKeys<$Objects.Employee>\n >;\n beforeAll(async () => {\n employee = (await client(Employee).where({\n employeeId: stubData.employee2.employeeId,\n }).fetchPage()).data[0];\n\n expect(employee).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Blue\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2012-02-12\",\n });\n });\n\n it(\"clones and updates an object with another osdk object\", async () => {\n const updatedEmployee = createOsdkObject(\n client[additionalContext],\n {\n \"apiName\": \"Employee\",\n \"primaryKeyType\": \"integer\",\n \"primaryKeyApiName\": \"employeeId\",\n \"properties\": {\n \"class\": { \"type\": \"string\" },\n \"employeeId\": { \"type\": \"integer\" },\n \"fullName\": { \"type\": \"string\" },\n \"office\": { \"type\": \"string\" },\n },\n } as any,\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Red\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n \"office\": \"NYC\",\n },\n ) as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\" | \"employeeId\" | \"fullName\" | \"office\"\n >;\n\n const mergedEmployee = employee.$clone(updatedEmployee);\n\n expectTypeOf(mergedEmployee).toEqualTypeOf(employee);\n\n expect(mergedEmployee).toMatchObject(\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Red\",\n \"employeeId\": 50031,\n \"employeeLocation\": {\n \"lastFetchedValue\": undefined,\n },\n \"employeeSensor\": {},\n \"employeeStatus\": {},\n \"fullName\": \"Jane Doe\",\n \"office\": \"NYC\",\n \"startDate\": \"2012-02-12\",\n },\n );\n });\n\n it(\"correctly scopes up with another OSDK object\", async () => {\n const firstEmployee = { $clone: () => {} } as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\"\n >;\n expectTypeOf(firstEmployee.$clone(employee)).toMatchTypeOf<\n Osdk.Instance<\n Employee,\n never,\n PropertyKeys<Employee>\n >\n >();\n });\n\n it(\"Correctly preserves keys from original and new with distinct property key sets\", async () => {\n const firstEmployee = { $clone: () => {} } as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\"\n >;\n expectTypeOf(\n firstEmployee.$clone({} as Osdk.Instance<Employee, never, \"office\">),\n ).toMatchTypeOf<\n Osdk.Instance<\n Employee,\n never,\n \"class\" | \"office\"\n >\n >();\n });\n\n it(\"clones and updates an object with a record\", async () => {\n const mergedEmployee = employee.$clone({\n \"class\": \"Green\",\n \"employeeId\": 50031,\n \"fullName\": \"John Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2019-01-01\",\n });\n\n expect(mergedEmployee).toMatchObject(\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"John Doe\",\n \"class\": \"Green\",\n \"employeeId\": 50031,\n \"employeeLocation\": {\n \"lastFetchedValue\": undefined,\n },\n \"employeeSensor\": {},\n \"employeeStatus\": {},\n \"fullName\": \"John Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2019-01-01\",\n },\n );\n });\n\n it(\"correctly scopes up with a record\", async () => {\n const firstEmployee = { $clone: () => {} } as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\"\n >;\n expectTypeOf(firstEmployee.$clone({\n \"class\": \"Green\",\n \"employeeId\": 50031,\n \"fullName\": \"John Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2019-01-01\",\n })).toMatchTypeOf<\n Osdk.Instance<\n Employee,\n never,\n \"class\" | \"employeeId\" | \"fullName\" | \"office\" | \"startDate\"\n >\n >();\n });\n\n it(\"correctly sets title\", async () => {\n const mergedEmployee = employee.$clone({\n \"fullName\": \"Brad Pitt\",\n });\n\n expect(mergedEmployee).toMatchObject(\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Brad Pitt\",\n \"class\": \"Blue\",\n \"employeeId\": 50031,\n \"employeeLocation\": {\n \"lastFetchedValue\": undefined,\n },\n \"employeeSensor\": {},\n \"employeeStatus\": {},\n \"fullName\": \"Brad Pitt\",\n \"office\": \"SEA\",\n \"startDate\": \"2012-02-12\",\n },\n );\n });\n\n it(\"is able to clone with nothing passed in\", async () => {\n expect(employee.$clone()).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Blue\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2012-02-12\",\n });\n });\n\n it(\"throws when merging objects with different primary keys\", async () => {\n expect(() =>\n employee.$clone({\n \"class\": \"Green\",\n \"employeeId\": 50035,\n })\n ).toThrow();\n });\n describe(\"interface\", () => {\n const interfaceDef = {\n apiName: \"FooInterface\",\n displayName: \"\",\n links: {},\n properties: {\n \"fooSpt\": {\n type: \"string\",\n },\n \"notImplementedFooSpt\": {\n type: \"string\",\n },\n },\n rid: \"\",\n type: \"interface\",\n implements: [],\n } satisfies InterfaceMetadata;\n\n const fooInterfaceOsdkDef = {\n apiName: \"FooInterface\",\n type: \"interface\",\n \"__DefinitionMetadata\": interfaceDef,\n } satisfies InterfaceDefinition;\n\n const EmployeeFetchedMetadata = {\n \"apiName\": \"Employee\",\n \"primaryKeyType\": \"integer\",\n \"primaryKeyApiName\": \"employeeId\",\n \"properties\": {\n \"employeeId\": { \"type\": \"integer\" },\n \"fullName\": { \"type\": \"string\" },\n },\n interfaceMap: {\n \"FooInterface\": {\n \"fooSpt\": \"fullName\",\n },\n },\n inverseInterfaceMap: {\n \"FooInterface\": {\n \"fullName\": \"fooSpt\",\n },\n },\n [InterfaceDefinitions]: {\n \"FooInterface\": { def: interfaceDef },\n },\n type: \"object\",\n titleProperty: \"fullName\",\n pluralDisplayName: \"\",\n status: \"ACTIVE\",\n displayName: \"\",\n links: {},\n rid: \"\",\n } satisfies FetchedObjectTypeDefinition;\n\n it(\"Correctly updates the interface and underlying object\", () => {\n const employeeOsdkObject = createOsdkObject(\n client[additionalContext],\n EmployeeFetchedMetadata,\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n },\n ) as unknown as Osdk.Instance<\n Employee,\n never,\n \"employeeId\" | \"fullName\"\n >;\n\n const personInterfaceObject = employeeOsdkObject.$as(\n fooInterfaceOsdkDef,\n );\n\n const clonedInterface = personInterfaceObject.$clone({\n \"fooSpt\": \"John Adams\",\n });\n\n expect(clonedInterface).toMatchObject(\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"John Adams\",\n \"fooSpt\": \"John Adams\",\n },\n );\n\n expect(clonedInterface.$as(\"Employee\")).toMatchObject(\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"John Adams\",\n \"employeeId\": 50031,\n \"fullName\": \"John Adams\",\n },\n );\n });\n it(\"Throws if updating an interface with a property not implemented by the underlying object type\", () => {\n const employeeOsdkObject = createOsdkObject(\n client[additionalContext],\n EmployeeFetchedMetadata,\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n },\n ) as unknown as Osdk.Instance<\n Employee,\n never,\n \"employeeId\" | \"fullName\"\n >;\n\n const loadedInterfaceObject = employeeOsdkObject.$as(interfaceDef);\n expect(() =>\n loadedInterfaceObject.$clone({\n \"notImplementedFooSpt\": \"John Adams\",\n })\n ).toThrowError(\n `Cannot clone interface with notImplementedFooSpt as property is not implemented by the underlying object type Employee`,\n );\n });\n });\n });\n describe(\"objectSpecifier\", () => {\n it(\"returns the object specifier for a loaded object\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage();\n\n const employee = result.data[0];\n expect(employee.$objectSpecifier).toBe(\"Employee:50030\");\n });\n\n it(\"returns the object specifier for a loaded interface object\", async () => {\n const result = await client(FooInterface).fetchPage();\n\n const object = result.data[0];\n expect(object.$objectSpecifier).toBe(\"Employee:50030\");\n });\n });\n});\n\nexport async function shouldError(client: Client): Promise<Osdk<Employee>> {\n // @ts-expect-error\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldError2(\n client: Client,\n): Promise<Employee.OsdkObject> {\n // @ts-expect-error\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_client_fetchOne_old_select(\n client: Client,\n): Promise<Osdk<Employee, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_unstableClient_fetchOne_old_select(\n client: Client,\n): Promise<Osdk<Employee, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_client_fetchOne_new_select(\n client: Client,\n): Promise<Employee.OsdkObject<never, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_unstableClient_fetchOne_new_select(\n client: Client,\n): Promise<Osdk<Employee, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_client_fetchOne_old_noArgs(\n client: Client,\n): Promise<Osdk<Employee>> {\n return client(Employee).fetchOne(1);\n}\n\nexport async function shouldCompile_unstableClient_fetchOne_noArgs(\n client: Client,\n): Promise<Osdk<Employee>> {\n return client(Employee).fetchOne(1);\n}\n"],"mappings":"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","ignoreList":[]}
|