@osdk/client 2.3.1 → 2.4.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +117 -57
- package/build/browser/Client.js +1 -1
- package/build/browser/Client.js.map +1 -1
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.js +41 -1
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.test.js +145 -12
- 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.test.js +14 -0
- package/build/browser/fetchMetadata.test.js.map +1 -1
- package/build/browser/index.js +1 -1
- package/build/browser/index.js.map +1 -1
- package/build/browser/intellisense.test.js +1 -1
- package/build/browser/intellisense.test.js.map +1 -1
- package/build/browser/internal/conversions/modernToLegacyGroupByClause.js +2 -1
- package/build/browser/internal/conversions/modernToLegacyGroupByClause.js.map +1 -1
- package/build/browser/object/aggregate.test.js +85 -0
- package/build/browser/object/aggregate.test.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js +7 -0
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js +9 -0
- package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects.test.js +240 -0
- package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
- package/build/browser/object/mediaUpload.js +3 -0
- package/build/browser/object/mediaUpload.js.map +1 -1
- package/build/browser/objectSet/ObjectSet.test.js +105 -106
- package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +1 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
- package/build/browser/objectSet/createObjectSet.js +22 -0
- package/build/browser/objectSet/createObjectSet.js.map +1 -1
- package/build/browser/observable/ObservableClient.js.map +1 -1
- package/build/browser/observable/internal/ObservableClientImpl.js +1 -0
- package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
- package/build/browser/observable/internal/Store.js +7 -0
- package/build/browser/observable/internal/Store.js.map +1 -1
- package/build/browser/ontology/StandardOntologyProvider.js +3 -2
- package/build/browser/ontology/StandardOntologyProvider.js.map +1 -1
- package/build/browser/public-utils/hydrateObjectSetFromObjectRids.js +4 -1
- package/build/browser/public-utils/hydrateObjectSetFromObjectRids.js.map +1 -1
- package/build/browser/util/UserAgent.js +2 -2
- package/build/browser/util/UserAgent.js.map +1 -1
- package/build/browser/util/deepFreeze.js +26 -0
- package/build/browser/util/deepFreeze.js.map +1 -0
- package/build/browser/util/toDataValue.js +17 -1
- package/build/browser/util/toDataValue.js.map +1 -1
- package/build/browser/util/toDataValue.test.js +42 -2
- package/build/browser/util/toDataValue.test.js.map +1 -1
- package/build/cjs/{chunk-FWYXUSCF.cjs → chunk-3DKSV2QU.cjs} +103 -63
- package/build/cjs/chunk-3DKSV2QU.cjs.map +1 -0
- package/build/cjs/{chunk-T5KGTBH2.cjs → chunk-E5BQ7757.cjs} +187 -38
- package/build/cjs/chunk-E5BQ7757.cjs.map +1 -0
- package/build/cjs/index.cjs +10 -6
- package/build/cjs/index.d.cts +1 -1
- package/build/cjs/public/internal.cjs +12 -9
- package/build/cjs/public/internal.cjs.map +1 -1
- package/build/cjs/public/internal.d.cts +1 -1
- package/build/cjs/public/unstable-do-not-use.cjs +24 -16
- package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
- package/build/cjs/public/unstable-do-not-use.d.cts +2 -1
- package/build/esm/Client.js +1 -1
- package/build/esm/Client.js.map +1 -1
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.js +41 -1
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.test.js +145 -12
- 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.test.js +14 -0
- package/build/esm/fetchMetadata.test.js.map +1 -1
- package/build/esm/index.js +1 -1
- package/build/esm/index.js.map +1 -1
- package/build/esm/intellisense.test.js +1 -1
- package/build/esm/intellisense.test.js.map +1 -1
- package/build/esm/internal/conversions/modernToLegacyGroupByClause.js +2 -1
- package/build/esm/internal/conversions/modernToLegacyGroupByClause.js.map +1 -1
- package/build/esm/object/aggregate.test.js +85 -0
- package/build/esm/object/aggregate.test.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js +7 -0
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js +9 -0
- package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects.test.js +240 -0
- package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
- package/build/esm/object/mediaUpload.js +3 -0
- package/build/esm/object/mediaUpload.js.map +1 -1
- package/build/esm/objectSet/ObjectSet.test.js +105 -106
- package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
- package/build/esm/objectSet/createObjectSet.js +22 -0
- package/build/esm/objectSet/createObjectSet.js.map +1 -1
- package/build/esm/observable/ObservableClient.js.map +1 -1
- package/build/esm/observable/internal/ObservableClientImpl.js +1 -0
- package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
- package/build/esm/observable/internal/Store.js +7 -0
- package/build/esm/observable/internal/Store.js.map +1 -1
- package/build/esm/ontology/StandardOntologyProvider.js +3 -2
- package/build/esm/ontology/StandardOntologyProvider.js.map +1 -1
- package/build/esm/public-utils/hydrateObjectSetFromObjectRids.js +4 -1
- package/build/esm/public-utils/hydrateObjectSetFromObjectRids.js.map +1 -1
- package/build/esm/util/UserAgent.js +2 -2
- package/build/esm/util/UserAgent.js.map +1 -1
- package/build/esm/util/deepFreeze.js +26 -0
- package/build/esm/util/deepFreeze.js.map +1 -0
- package/build/esm/util/toDataValue.js +17 -1
- package/build/esm/util/toDataValue.js.map +1 -1
- package/build/esm/util/toDataValue.test.js +42 -2
- package/build/esm/util/toDataValue.test.js.map +1 -1
- package/build/types/Client.d.ts +1 -1
- 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 +1 -1
- package/build/types/index.d.ts.map +1 -1
- package/build/types/object/mediaUpload.d.ts +2 -1
- package/build/types/object/mediaUpload.d.ts.map +1 -1
- package/build/types/observable/ObservableClient.d.ts +2 -1
- package/build/types/observable/ObservableClient.d.ts.map +1 -1
- package/build/types/observable/internal/Store.d.ts +2 -1
- package/build/types/observable/internal/Store.d.ts.map +1 -1
- package/build/types/ontology/StandardOntologyProvider.d.ts.map +1 -1
- package/build/types/public-utils/hydrateObjectSetFromObjectRids.d.ts +1 -1
- package/build/types/public-utils/hydrateObjectSetFromObjectRids.d.ts.map +1 -1
- package/build/types/util/deepFreeze.d.ts +1 -0
- package/build/types/util/deepFreeze.d.ts.map +1 -0
- package/package.json +13 -13
- package/build/cjs/chunk-FWYXUSCF.cjs.map +0 -1
- package/build/cjs/chunk-T5KGTBH2.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createOsdkObject.js","names":["invariant","GeotimeSeriesPropertyImpl","MediaReferencePropertyImpl","TimeSeriesPropertyImpl","hydrateAttachmentFromRidInternal","createObjectSpecifierFromPrimaryKey","get$as","get$link","ClientRef","ObjectDefRef","UnderlyingOsdkObject","specialPropertyTypes","Set","basePropDefs","get","value","update","rawObj","def","createOsdkObject","primaryKeyApiName","Error","apiName","titleProperty","$title","newObject","$primaryKey","enumerable","client","objectDef","simpleOsdkProperties","derivedPropertyTypeByName","Object","defineProperties","propKey","keys","properties","type","has","createSpecialProperty","modifyRdpProperties","freeze","rawValue","definition","operation","num","Number","isSafeInteger","process","env","NODE_ENV","selectedOrCollectedPropertyType","Array","isArray","map","a","rid","rawObject","p","propDef","time","timestamp","coordinates","position","undefined","objectApiName","primaryKey","propertyName","mediaReference"],"sources":["createOsdkObject.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { MediaReference } from \"@osdk/foundry.core\";\nimport type { Attachment, ReferenceValue } from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport { GeotimeSeriesPropertyImpl } from \"../../createGeotimeSeriesProperty.js\";\nimport { MediaReferencePropertyImpl } from \"../../createMediaReferenceProperty.js\";\nimport { TimeSeriesPropertyImpl } from \"../../createTimeseriesProperty.js\";\nimport type { DerivedPropertyRuntimeMetadata } from \"../../derivedProperties/derivedPropertyRuntimeMetadata.js\";\nimport type { MinimalClient } from \"../../MinimalClientContext.js\";\nimport type { FetchedObjectTypeDefinition } from \"../../ontology/OntologyProvider.js\";\nimport { hydrateAttachmentFromRidInternal } from \"../../public-utils/hydrateAttachmentFromRid.js\";\nimport { createObjectSpecifierFromPrimaryKey } from \"../../util/objectSpecifierUtils.js\";\nimport type { SimpleOsdkProperties } from \"../SimpleOsdkProperties.js\";\nimport { get$as } from \"./getDollarAs.js\";\nimport { get$link } from \"./getDollarLink.js\";\nimport {\n ClientRef,\n ObjectDefRef,\n UnderlyingOsdkObject,\n} from \"./InternalSymbols.js\";\nimport type { ObjectHolder } from \"./ObjectHolder.js\";\n\nconst specialPropertyTypes = new Set(\n [\n \"attachment\",\n \"geotimeSeriesReference\",\n \"mediaReference\",\n \"numericTimeseries\",\n \"stringTimeseries\",\n \"sensorTimeseries\",\n ],\n);\n\n// kept separate so we are not redefining these functions\n// every time an object is created.\nconst basePropDefs = {\n \"$as\": {\n get: function(this: ObjectHolder) {\n return get$as(this[ObjectDefRef]);\n },\n },\n \"$link\": {\n get: function(this: ObjectHolder) {\n return get$link(this);\n },\n },\n \"$clone\": {\n value: function(\n this: ObjectHolder,\n update: Record<string, any> | undefined,\n ) {\n // I think `rawObj` is the same thing as `this` and can be removed?\n const rawObj = this[UnderlyingOsdkObject] as SimpleOsdkProperties;\n const def = this[ObjectDefRef];\n\n if (update == null) {\n return createOsdkObject(this[ClientRef], def, { ...rawObj });\n }\n\n if (\n def.primaryKeyApiName in update\n && rawObj[def.primaryKeyApiName] !== update[def.primaryKeyApiName]\n ) {\n throw new Error(\n `Cannot update ${def.apiName} object with differing primary key values `,\n );\n }\n\n if (def.titleProperty in update && !(\"$title\" in update)) {\n update.$title = update[def.titleProperty];\n }\n\n const newObject = { ...this[UnderlyingOsdkObject], ...update };\n return createOsdkObject(this[ClientRef], this[ObjectDefRef], newObject);\n },\n },\n \"$objectSpecifier\": {\n get: function(this: ObjectHolder) {\n const rawObj = this[UnderlyingOsdkObject];\n return createObjectSpecifierFromPrimaryKey(\n this[ObjectDefRef],\n rawObj.$primaryKey,\n );\n },\n enumerable: true,\n },\n};\n\n/**\n * @internal\n * @param client\n * @param objectDef\n * @param simpleOsdkProperties\n */\nexport function createOsdkObject(\n client: MinimalClient,\n objectDef: FetchedObjectTypeDefinition,\n simpleOsdkProperties: SimpleOsdkProperties,\n derivedPropertyTypeByName: DerivedPropertyRuntimeMetadata = {},\n): ObjectHolder {\n // updates the object's \"hidden class/map\".\n const rawObj = simpleOsdkProperties as ObjectHolder;\n Object.defineProperties(\n rawObj,\n {\n [UnderlyingOsdkObject]: {\n enumerable: false,\n value: simpleOsdkProperties,\n },\n [ObjectDefRef]: { value: objectDef, enumerable: false },\n [ClientRef]: { value: client, enumerable: false },\n ...basePropDefs,\n } satisfies Record<keyof ObjectHolder, PropertyDescriptor>,\n );\n\n // Assign the special values\n for (const propKey of Object.keys(rawObj)) {\n if (\n propKey in objectDef.properties\n && typeof (objectDef.properties[propKey].type) === \"string\"\n && specialPropertyTypes.has(objectDef.properties[propKey].type)\n ) {\n rawObj[propKey] = createSpecialProperty(\n client,\n objectDef,\n rawObj,\n propKey,\n );\n } else if (propKey in derivedPropertyTypeByName) {\n rawObj[propKey] = modifyRdpProperties(\n client,\n derivedPropertyTypeByName,\n rawObj[propKey],\n propKey,\n );\n }\n }\n\n return Object.freeze(rawObj);\n}\n\nfunction modifyRdpProperties(\n client: MinimalClient,\n derivedPropertyTypeByName: DerivedPropertyRuntimeMetadata,\n rawValue: any,\n propKey: string,\n): any {\n if (\n derivedPropertyTypeByName[propKey].definition.type === \"selection\"\n && derivedPropertyTypeByName[propKey].definition.operation.type\n === \"count\"\n ) {\n const num = Number(rawValue);\n invariant(\n Number.isSafeInteger(num),\n \"Count aggregation for derived property \" + propKey\n + \" returned a value larger than safe integer.\",\n );\n return num;\n } // Selected or collected properties need to be deserialized specially when constructed with RDP\n else if (\n derivedPropertyTypeByName[propKey].selectedOrCollectedPropertyType\n != null\n && typeof (derivedPropertyTypeByName[propKey]\n .selectedOrCollectedPropertyType.type)\n === \"string\"\n && specialPropertyTypes.has(\n derivedPropertyTypeByName[propKey].selectedOrCollectedPropertyType\n .type,\n )\n ) {\n switch (\n derivedPropertyTypeByName[propKey].selectedOrCollectedPropertyType\n ?.type\n ) {\n case \"attachment\":\n if (Array.isArray(rawValue)) {\n return rawValue.map(a =>\n hydrateAttachmentFromRidInternal(client, a.rid)\n );\n } else {\n return hydrateAttachmentFromRidInternal(\n client,\n (rawValue as Attachment).rid,\n );\n }\n break;\n default:\n invariant(\n false,\n \"Derived property aggregations for Timeseries and Media are not supported\",\n );\n }\n }\n return rawValue;\n}\n\nfunction createSpecialProperty(\n client: MinimalClient,\n objectDef: FetchedObjectTypeDefinition,\n rawObject: ObjectHolder,\n p: keyof typeof rawObject & string | symbol,\n) {\n const rawValue = rawObject[p as any];\n const propDef = objectDef.properties[p as any];\n if (process.env.NODE_ENV !== \"production\") {\n invariant(\n propDef != null && typeof propDef.type === \"string\"\n && specialPropertyTypes.has(propDef.type),\n );\n }\n if (propDef.type === \"attachment\") {\n if (Array.isArray(rawValue)) {\n return rawValue.map(a => hydrateAttachmentFromRidInternal(client, a.rid));\n }\n return hydrateAttachmentFromRidInternal(\n client,\n (rawValue as Attachment).rid,\n );\n }\n\n if (\n propDef.type === \"numericTimeseries\"\n || propDef.type === \"stringTimeseries\"\n || propDef.type === \"sensorTimeseries\"\n ) {\n return new TimeSeriesPropertyImpl<\n (typeof propDef)[\"type\"] extends \"numericTimeseries\" ? number\n : (typeof propDef)[\"type\"] extends \"stringTimeseries\" ? string\n : number | string\n >(\n client,\n objectDef.apiName,\n rawObject[objectDef.primaryKeyApiName as string],\n p as string,\n );\n }\n\n if (propDef.type === \"geotimeSeriesReference\") {\n return new GeotimeSeriesPropertyImpl<GeoJSON.Point>(\n client,\n objectDef.apiName,\n rawObject[objectDef.primaryKeyApiName as string],\n p as string,\n (rawValue as ReferenceValue).type === \"geotimeSeriesValue\"\n ? {\n time: (rawValue as ReferenceValue).timestamp,\n value: {\n type: \"Point\",\n coordinates: (rawValue as ReferenceValue).position,\n },\n }\n : undefined,\n );\n }\n if (propDef.type === \"mediaReference\") {\n return new MediaReferencePropertyImpl({\n client,\n objectApiName: objectDef.apiName,\n primaryKey: rawObject[objectDef.primaryKeyApiName as string],\n propertyName: p as string,\n mediaReference: rawValue as MediaReference,\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"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","ObjectMetadata","client","objectDef","simpleOsdkProperties","derivedPropertyTypeByName","Object","defineProperties","propKey","keys","properties","type","has","createSpecialProperty","modifyRdpProperties","freeze","rawValue","definition","operation","num","Number","isSafeInteger","process","env","NODE_ENV","selectedOrCollectedPropertyType","Array","isArray","map","a","rid","rawObject","p","propDef","time","timestamp","coordinates","position","undefined","objectApiName","primaryKey","propertyName","mediaReference"],"sources":["createOsdkObject.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { MediaReference } from \"@osdk/foundry.core\";\nimport type { Attachment, ReferenceValue } from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport { GeotimeSeriesPropertyImpl } from \"../../createGeotimeSeriesProperty.js\";\nimport { MediaReferencePropertyImpl } from \"../../createMediaReferenceProperty.js\";\nimport { TimeSeriesPropertyImpl } from \"../../createTimeseriesProperty.js\";\nimport type { DerivedPropertyRuntimeMetadata } from \"../../derivedProperties/derivedPropertyRuntimeMetadata.js\";\nimport type { MinimalClient } from \"../../MinimalClientContext.js\";\nimport type { FetchedObjectTypeDefinition } from \"../../ontology/OntologyProvider.js\";\nimport { hydrateAttachmentFromRidInternal } from \"../../public-utils/hydrateAttachmentFromRid.js\";\nimport { createObjectSpecifierFromPrimaryKey } from \"../../util/objectSpecifierUtils.js\";\nimport type { SimpleOsdkProperties } from \"../SimpleOsdkProperties.js\";\nimport { get$as } from \"./getDollarAs.js\";\nimport { get$link } from \"./getDollarLink.js\";\nimport {\n ClientRef,\n ObjectDefRef,\n UnderlyingOsdkObject,\n} from \"./InternalSymbols.js\";\nimport type { ObjectHolder } from \"./ObjectHolder.js\";\n\nconst specialPropertyTypes = new Set(\n [\n \"attachment\",\n \"geotimeSeriesReference\",\n \"mediaReference\",\n \"numericTimeseries\",\n \"stringTimeseries\",\n \"sensorTimeseries\",\n ],\n);\n\n// kept separate so we are not redefining these functions\n// every time an object is created.\nconst basePropDefs = {\n \"$as\": {\n get: function(this: ObjectHolder) {\n return get$as(this[ObjectDefRef]);\n },\n },\n \"$link\": {\n get: function(this: ObjectHolder) {\n return get$link(this);\n },\n },\n \"$clone\": {\n value: function(\n this: ObjectHolder,\n update: Record<string, any> | undefined,\n ) {\n // I think `rawObj` is the same thing as `this` and can be removed?\n const rawObj = this[UnderlyingOsdkObject] as SimpleOsdkProperties;\n const def = this[ObjectDefRef];\n\n if (update == null) {\n return createOsdkObject(this[ClientRef], def, { ...rawObj });\n }\n\n if (\n def.primaryKeyApiName in update\n && rawObj[def.primaryKeyApiName] !== update[def.primaryKeyApiName]\n ) {\n throw new Error(\n `Cannot update ${def.apiName} object with differing primary key values `,\n );\n }\n\n if (def.titleProperty in update && !(\"$title\" in update)) {\n update.$title = update[def.titleProperty];\n }\n\n const newObject = { ...this[UnderlyingOsdkObject], ...update };\n return createOsdkObject(this[ClientRef], this[ObjectDefRef], newObject);\n },\n },\n \"$objectSpecifier\": {\n get: function(this: ObjectHolder) {\n const rawObj = this[UnderlyingOsdkObject];\n return createObjectSpecifierFromPrimaryKey(\n this[ObjectDefRef],\n rawObj.$primaryKey,\n );\n },\n enumerable: true,\n },\n \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\": {\n get: function(this: ObjectHolder) {\n return {\n ObjectMetadata: this[ObjectDefRef],\n };\n },\n enumerable: false,\n },\n};\n\n/**\n * @internal\n * @param client\n * @param objectDef\n * @param simpleOsdkProperties\n */\nexport function createOsdkObject(\n client: MinimalClient,\n objectDef: FetchedObjectTypeDefinition,\n simpleOsdkProperties: SimpleOsdkProperties,\n derivedPropertyTypeByName: DerivedPropertyRuntimeMetadata = {},\n): ObjectHolder {\n // updates the object's \"hidden class/map\".\n const rawObj = simpleOsdkProperties as ObjectHolder;\n Object.defineProperties(\n rawObj,\n {\n [UnderlyingOsdkObject]: {\n enumerable: false,\n value: simpleOsdkProperties,\n },\n [ObjectDefRef]: { value: objectDef, enumerable: false }, // TODO: Potentially update when GA metadata field\n [ClientRef]: { value: client, enumerable: false },\n ...basePropDefs,\n } satisfies Record<keyof ObjectHolder, PropertyDescriptor>,\n );\n\n // Assign the special values\n for (const propKey of Object.keys(rawObj)) {\n if (\n propKey in objectDef.properties\n && typeof (objectDef.properties[propKey].type) === \"string\"\n && specialPropertyTypes.has(objectDef.properties[propKey].type)\n ) {\n rawObj[propKey] = createSpecialProperty(\n client,\n objectDef,\n rawObj,\n propKey,\n );\n } else if (propKey in derivedPropertyTypeByName) {\n rawObj[propKey] = modifyRdpProperties(\n client,\n derivedPropertyTypeByName,\n rawObj[propKey],\n propKey,\n );\n }\n }\n\n return Object.freeze(rawObj);\n}\n\nfunction modifyRdpProperties(\n client: MinimalClient,\n derivedPropertyTypeByName: DerivedPropertyRuntimeMetadata,\n rawValue: any,\n propKey: string,\n): any {\n if (\n derivedPropertyTypeByName[propKey].definition.type === \"selection\"\n && derivedPropertyTypeByName[propKey].definition.operation.type\n === \"count\"\n ) {\n const num = Number(rawValue);\n invariant(\n Number.isSafeInteger(num),\n \"Count aggregation for derived property \" + propKey\n + \" returned a value larger than safe integer.\",\n );\n return num;\n } // Selected or collected properties need to be deserialized specially when constructed with RDP\n else if (\n derivedPropertyTypeByName[propKey].selectedOrCollectedPropertyType\n != null\n && typeof (derivedPropertyTypeByName[propKey]\n .selectedOrCollectedPropertyType.type)\n === \"string\"\n && specialPropertyTypes.has(\n derivedPropertyTypeByName[propKey].selectedOrCollectedPropertyType\n .type,\n )\n ) {\n switch (\n derivedPropertyTypeByName[propKey].selectedOrCollectedPropertyType\n ?.type\n ) {\n case \"attachment\":\n if (Array.isArray(rawValue)) {\n return rawValue.map(a =>\n hydrateAttachmentFromRidInternal(client, a.rid)\n );\n } else {\n return hydrateAttachmentFromRidInternal(\n client,\n (rawValue as Attachment).rid,\n );\n }\n break;\n default:\n invariant(\n false,\n \"Derived property aggregations for Timeseries and Media are not supported\",\n );\n }\n }\n return rawValue;\n}\n\nfunction createSpecialProperty(\n client: MinimalClient,\n objectDef: FetchedObjectTypeDefinition,\n rawObject: ObjectHolder,\n p: keyof typeof rawObject & string | symbol,\n) {\n const rawValue = rawObject[p as any];\n const propDef = objectDef.properties[p as any];\n if (process.env.NODE_ENV !== \"production\") {\n invariant(\n propDef != null && typeof propDef.type === \"string\"\n && specialPropertyTypes.has(propDef.type),\n );\n }\n if (propDef.type === \"attachment\") {\n if (Array.isArray(rawValue)) {\n return rawValue.map(a => hydrateAttachmentFromRidInternal(client, a.rid));\n }\n return hydrateAttachmentFromRidInternal(\n client,\n (rawValue as Attachment).rid,\n );\n }\n\n if (\n propDef.type === \"numericTimeseries\"\n || propDef.type === \"stringTimeseries\"\n || propDef.type === \"sensorTimeseries\"\n ) {\n return new TimeSeriesPropertyImpl<\n (typeof propDef)[\"type\"] extends \"numericTimeseries\" ? number\n : (typeof propDef)[\"type\"] extends \"stringTimeseries\" ? string\n : number | string\n >(\n client,\n objectDef.apiName,\n rawObject[objectDef.primaryKeyApiName as string],\n p as string,\n );\n }\n\n if (propDef.type === \"geotimeSeriesReference\") {\n return new GeotimeSeriesPropertyImpl<GeoJSON.Point>(\n client,\n objectDef.apiName,\n rawObject[objectDef.primaryKeyApiName as string],\n p as string,\n (rawValue as ReferenceValue).type === \"geotimeSeriesValue\"\n ? {\n time: (rawValue as ReferenceValue).timestamp,\n value: {\n type: \"Point\",\n coordinates: (rawValue as ReferenceValue).position,\n },\n }\n : undefined,\n );\n }\n if (propDef.type === \"mediaReference\") {\n return new MediaReferencePropertyImpl({\n client,\n objectApiName: objectDef.apiName,\n primaryKey: rawObject[objectDef.primaryKeyApiName as string],\n propertyName: p as string,\n mediaReference: rawValue as MediaReference,\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -437,6 +437,246 @@ describe("convertWireToOsdkObjects", () => {
|
|
|
437
437
|
}], "FooInterface", {}, undefined, ["fooSpt"], "drop", interfaceToObjectTypeMappings);
|
|
438
438
|
expect(result.length).toBe(1);
|
|
439
439
|
});
|
|
440
|
+
describe("$metadata", () => {
|
|
441
|
+
describe("object", () => {
|
|
442
|
+
it("has an accessible object on $__experimental-metadata", async () => {
|
|
443
|
+
const {
|
|
444
|
+
data: [employee]
|
|
445
|
+
} = await client(Employee).fetchPage();
|
|
446
|
+
expect(employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata).toBeDefined();
|
|
447
|
+
expect(employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata.ObjectMetadata).toMatchInlineSnapshot(`
|
|
448
|
+
{
|
|
449
|
+
"apiName": "Employee",
|
|
450
|
+
"description": "A full-time or part-time
|
|
451
|
+
|
|
452
|
+
employee of our firm",
|
|
453
|
+
"displayName": "Employee",
|
|
454
|
+
"icon": {
|
|
455
|
+
"color": "blue",
|
|
456
|
+
"name": "person",
|
|
457
|
+
"type": "blueprint",
|
|
458
|
+
},
|
|
459
|
+
"implements": [
|
|
460
|
+
"FooInterface",
|
|
461
|
+
],
|
|
462
|
+
"interfaceMap": {
|
|
463
|
+
"FooInterface": {
|
|
464
|
+
"fooSpt": "fullName",
|
|
465
|
+
},
|
|
466
|
+
},
|
|
467
|
+
"inverseInterfaceMap": {
|
|
468
|
+
"FooInterface": {
|
|
469
|
+
"fullName": "fooSpt",
|
|
470
|
+
},
|
|
471
|
+
},
|
|
472
|
+
"links": {
|
|
473
|
+
"lead": {
|
|
474
|
+
"multiplicity": false,
|
|
475
|
+
"targetType": "Employee",
|
|
476
|
+
},
|
|
477
|
+
"officeLink": {
|
|
478
|
+
"multiplicity": false,
|
|
479
|
+
"targetType": "Office",
|
|
480
|
+
},
|
|
481
|
+
"peeps": {
|
|
482
|
+
"multiplicity": true,
|
|
483
|
+
"targetType": "Employee",
|
|
484
|
+
},
|
|
485
|
+
},
|
|
486
|
+
"pluralDisplayName": "Employees",
|
|
487
|
+
"primaryKeyApiName": "employeeId",
|
|
488
|
+
"primaryKeyType": "integer",
|
|
489
|
+
"properties": {
|
|
490
|
+
"class": {
|
|
491
|
+
"description": "",
|
|
492
|
+
"displayName": undefined,
|
|
493
|
+
"multiplicity": false,
|
|
494
|
+
"nullable": true,
|
|
495
|
+
"type": "string",
|
|
496
|
+
},
|
|
497
|
+
"employeeId": {
|
|
498
|
+
"description": undefined,
|
|
499
|
+
"displayName": undefined,
|
|
500
|
+
"multiplicity": false,
|
|
501
|
+
"nullable": false,
|
|
502
|
+
"type": "integer",
|
|
503
|
+
},
|
|
504
|
+
"employeeLocation": {
|
|
505
|
+
"description": "Geotime series reference of the location of the employee",
|
|
506
|
+
"displayName": undefined,
|
|
507
|
+
"multiplicity": false,
|
|
508
|
+
"nullable": true,
|
|
509
|
+
"type": "geotimeSeriesReference",
|
|
510
|
+
},
|
|
511
|
+
"employeeSensor": {
|
|
512
|
+
"description": "TimeSeries sensor of the status of the employee",
|
|
513
|
+
"displayName": undefined,
|
|
514
|
+
"multiplicity": false,
|
|
515
|
+
"nullable": true,
|
|
516
|
+
"type": "sensorTimeseries",
|
|
517
|
+
},
|
|
518
|
+
"employeeStatus": {
|
|
519
|
+
"description": "TimeSeries of the status of the employee",
|
|
520
|
+
"displayName": undefined,
|
|
521
|
+
"multiplicity": false,
|
|
522
|
+
"nullable": true,
|
|
523
|
+
"type": "stringTimeseries",
|
|
524
|
+
},
|
|
525
|
+
"fullName": {
|
|
526
|
+
"description": undefined,
|
|
527
|
+
"displayName": undefined,
|
|
528
|
+
"multiplicity": false,
|
|
529
|
+
"nullable": true,
|
|
530
|
+
"type": "string",
|
|
531
|
+
},
|
|
532
|
+
"office": {
|
|
533
|
+
"description": "The unique "ID" of the employee's \\"primary\\" assigned office.
|
|
534
|
+
This is some more text.",
|
|
535
|
+
"displayName": undefined,
|
|
536
|
+
"multiplicity": false,
|
|
537
|
+
"nullable": true,
|
|
538
|
+
"type": "string",
|
|
539
|
+
},
|
|
540
|
+
"skillSet": {
|
|
541
|
+
"description": "The skills of the employee",
|
|
542
|
+
"displayName": undefined,
|
|
543
|
+
"multiplicity": false,
|
|
544
|
+
"nullable": true,
|
|
545
|
+
"type": "string",
|
|
546
|
+
},
|
|
547
|
+
"skillSetEmbedding": {
|
|
548
|
+
"description": "Vectorized skill set",
|
|
549
|
+
"displayName": undefined,
|
|
550
|
+
"multiplicity": false,
|
|
551
|
+
"nullable": true,
|
|
552
|
+
"type": "vector",
|
|
553
|
+
},
|
|
554
|
+
"startDate": {
|
|
555
|
+
"description": "The date the employee was hired (most recently, if they were re-hired)",
|
|
556
|
+
"displayName": undefined,
|
|
557
|
+
"multiplicity": false,
|
|
558
|
+
"nullable": true,
|
|
559
|
+
"type": "datetime",
|
|
560
|
+
},
|
|
561
|
+
},
|
|
562
|
+
"rid": "ri.ontology.main.object-type.401ac022-89eb-4591-8b7e-0a912b9efb44",
|
|
563
|
+
"status": "ACTIVE",
|
|
564
|
+
"titleProperty": "fullName",
|
|
565
|
+
"type": "object",
|
|
566
|
+
"visibility": "NORMAL",
|
|
567
|
+
Symbol(InterfaceDefinitions): {
|
|
568
|
+
"FooInterface": {
|
|
569
|
+
"def": {
|
|
570
|
+
"apiName": "FooInterface",
|
|
571
|
+
"description": "Interface for Foo",
|
|
572
|
+
"displayName": "Foo Interface",
|
|
573
|
+
"implementedBy": [
|
|
574
|
+
"Employee",
|
|
575
|
+
"Person",
|
|
576
|
+
],
|
|
577
|
+
"implements": [],
|
|
578
|
+
"links": {},
|
|
579
|
+
"properties": {
|
|
580
|
+
"fooSpt": {
|
|
581
|
+
"description": "A foo",
|
|
582
|
+
"displayName": "Foo",
|
|
583
|
+
"multiplicity": false,
|
|
584
|
+
"nullable": true,
|
|
585
|
+
"type": "string",
|
|
586
|
+
},
|
|
587
|
+
},
|
|
588
|
+
"rid": "ri.interface.main.interface.1",
|
|
589
|
+
"type": "interface",
|
|
590
|
+
},
|
|
591
|
+
"handler": undefined,
|
|
592
|
+
},
|
|
593
|
+
},
|
|
594
|
+
}
|
|
595
|
+
`);
|
|
596
|
+
});
|
|
597
|
+
it("$experimental_metadata is not enumerable", async () => {
|
|
598
|
+
const {
|
|
599
|
+
data: [employee]
|
|
600
|
+
} = await client(Employee).fetchPage();
|
|
601
|
+
expect(employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata.propertyIsEnumerable("$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata")).toEqual(false);
|
|
602
|
+
});
|
|
603
|
+
it("returns frozen metadata", async () => {
|
|
604
|
+
const {
|
|
605
|
+
data: [employee]
|
|
606
|
+
} = await client(Employee).fetchPage();
|
|
607
|
+
expect(employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata).toBeDefined();
|
|
608
|
+
expect(Object.isFrozen(employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata.ObjectMetadata)).toBe(true);
|
|
609
|
+
});
|
|
610
|
+
it("returns the same reference", async () => {
|
|
611
|
+
const {
|
|
612
|
+
data: [employee]
|
|
613
|
+
} = await client(Employee).fetchPage();
|
|
614
|
+
const {
|
|
615
|
+
data: [employee2]
|
|
616
|
+
} = await client(Employee).fetchPage();
|
|
617
|
+
expect(employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata.ObjectMetadata).toBe(employee2.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata.ObjectMetadata);
|
|
618
|
+
});
|
|
619
|
+
});
|
|
620
|
+
describe("interface", () => {
|
|
621
|
+
it("has an accessible interface on $__experimental-metadata", async () => {
|
|
622
|
+
const {
|
|
623
|
+
data: [employee]
|
|
624
|
+
} = await client(Employee).fetchPage();
|
|
625
|
+
const objAsFoo = employee.$as(FooInterface);
|
|
626
|
+
expect(objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata).toBeDefined();
|
|
627
|
+
expect(objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata.InterfaceMetadata).toMatchInlineSnapshot(`
|
|
628
|
+
{
|
|
629
|
+
"apiName": "FooInterface",
|
|
630
|
+
"description": "Interface for Foo",
|
|
631
|
+
"displayName": "Foo Interface",
|
|
632
|
+
"implementedBy": [
|
|
633
|
+
"Employee",
|
|
634
|
+
"Person",
|
|
635
|
+
],
|
|
636
|
+
"implements": [],
|
|
637
|
+
"links": {},
|
|
638
|
+
"properties": {
|
|
639
|
+
"fooSpt": {
|
|
640
|
+
"description": "A foo",
|
|
641
|
+
"displayName": "Foo",
|
|
642
|
+
"multiplicity": false,
|
|
643
|
+
"nullable": true,
|
|
644
|
+
"type": "string",
|
|
645
|
+
},
|
|
646
|
+
},
|
|
647
|
+
"rid": "ri.interface.main.interface.1",
|
|
648
|
+
"type": "interface",
|
|
649
|
+
}
|
|
650
|
+
`);
|
|
651
|
+
});
|
|
652
|
+
it("$experimental_metadata is not enumerable", async () => {
|
|
653
|
+
const {
|
|
654
|
+
data: [employee]
|
|
655
|
+
} = await client(Employee).fetchPage();
|
|
656
|
+
const objAsFoo = employee.$as(FooInterface);
|
|
657
|
+
expect(objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata.propertyIsEnumerable("$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata")).toEqual(false);
|
|
658
|
+
});
|
|
659
|
+
it("returns frozen metadata", async () => {
|
|
660
|
+
const {
|
|
661
|
+
data: [employee]
|
|
662
|
+
} = await client(Employee).fetchPage();
|
|
663
|
+
const objAsFoo = employee.$as(FooInterface);
|
|
664
|
+
expect(objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata).toBeDefined();
|
|
665
|
+
expect(Object.isFrozen(objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata.InterfaceMetadata)).toBe(true);
|
|
666
|
+
});
|
|
667
|
+
it("returns the same reference", async () => {
|
|
668
|
+
const {
|
|
669
|
+
data: [employee]
|
|
670
|
+
} = await client(Employee).fetchPage();
|
|
671
|
+
const objAsFoo = employee.$as(FooInterface);
|
|
672
|
+
const {
|
|
673
|
+
data: [employee2]
|
|
674
|
+
} = await client(Employee).fetchPage();
|
|
675
|
+
const objAsFoo2 = employee2.$as(FooInterface);
|
|
676
|
+
expect(objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata.InterfaceMetadata).toBe(objAsFoo2.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata.InterfaceMetadata);
|
|
677
|
+
});
|
|
678
|
+
});
|
|
679
|
+
});
|
|
440
680
|
});
|
|
441
681
|
describe("Osdk.Instance", () => {
|
|
442
682
|
it("is assignable to Osdk<>", () => {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertWireToOsdkObjects.test.js","names":["$ontologyRid","Employee","FooInterface","objectTypeWithAllPropertyTypes","createSharedClientContext","LegacyFauxFoundry","startNodeApiServer","beforeAll","describe","expect","expectTypeOf","it","additionalContext","createClient","createMinimalClient","convertWireToOsdkObjects","convertWireToOsdkObjects2","client","interfaceToObjectTypeMappings","fooSpt","testSetup","apiServer","close","data","employee","fetchPage","Object","keys","sort","toEqual","$as","$link","employee2","where","$and","employeeId","$gt","$lt","JSON","stringify","toMatchInlineSnapshot","employees","length","toBeGreaterThanOrEqual","a","b","getPrototypeOf","toBe","withValues","id","attachment","attachmentArray","toMatchTypeOf","rid","Array","isArray","toBeTruthy","withoutValues","emptyAttachment","emptyAttachmentArray","toBeUndefined","mediaReference","toBeDefined","emptyMedia","somePropertyThatShouldNotExist","toThrow","objAsFoo","clientCtx","ontologyRid","object","__apiName","apiName","__primaryKey","prototypeBefore","object2","undefined","prototypeAfter","not","__title","obj","fullName","__rid","$rid","rejects","toThrowErrorMatchingInlineSnapshot","resolves","to","result","instance","osdk"],"sources":["convertWireToOsdkObjects.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 { Attachment, Media, Osdk, PropertyKeys } from \"@osdk/api\";\nimport {\n $ontologyRid,\n Employee,\n FooInterface,\n objectTypeWithAllPropertyTypes,\n} from \"@osdk/client.test.ontology\";\nimport type { OntologyObjectV2 } from \"@osdk/foundry.ontologies\";\nimport { createSharedClientContext } from \"@osdk/shared.client.impl\";\nimport { LegacyFauxFoundry, startNodeApiServer } 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 { createMinimalClient } from \"../createMinimalClient.js\";\nimport {\n convertWireToOsdkObjects,\n convertWireToOsdkObjects2,\n} from \"./convertWireToOsdkObjects.js\";\n\ndescribe(\"convertWireToOsdkObjects\", () => {\n let client: Client;\n const interfaceToObjectTypeMappings = {\n FooInterface: { Employee: { fooSpt: \"fullName\" } },\n };\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);\n ({ client } = testSetup);\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"configures properties correctly\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n\n expect(Object.keys(employee).sort()).toEqual([\n \"employeeId\",\n \"$title\",\n \"fullName\",\n \"office\",\n \"class\",\n \"startDate\",\n \"employeeSensor\",\n \"employeeStatus\",\n \"$apiName\",\n \"$objectType\",\n \"$primaryKey\",\n \"$objectSpecifier\",\n \"employeeLocation\",\n ].sort());\n\n expect(Object.keys(employee.$as)).toEqual([]);\n expect(Object.keys(employee.$link)).toEqual([\n \"peeps\",\n \"lead\",\n \"officeLink\",\n ]);\n });\n\n it(\"stringifies properties on objects and interfaces correctly\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const { data: [employee2] } = await client(Employee).where({\n $and: [{ employeeId: { $gt: 50030 } }, { employeeId: { $lt: 50032 } }],\n }).fetchPage();\n\n // Should not have $title\n expect(JSON.stringify(employee)).toMatchInlineSnapshot(\n `\"{\"employeeId\":50030,\"fullName\":\"John Doe\",\"office\":\"NYC\",\"class\":\"Red\",\"startDate\":\"2019-01-01\",\"employeeStatus\":{},\"employeeSensor\":{},\"employeeLocation\":{},\"$apiName\":\"Employee\",\"$objectType\":\"Employee\",\"$primaryKey\":50030,\"$objectSpecifier\":\"Employee:50030\"}\"`,\n );\n\n expect(JSON.stringify(employee.$as(FooInterface))).toMatchInlineSnapshot(\n `\"{\"$apiName\":\"FooInterface\",\"$objectType\":\"Employee\",\"$primaryKey\":50030,\"$objectSpecifier\":\"Employee:50030\",\"fooSpt\":\"John Doe\"}\"`,\n );\n\n // Should have $title\n expect(JSON.stringify(employee2)).toMatchInlineSnapshot(\n `\"{\"employeeId\":50031,\"fullName\":\"Jane Doe\",\"office\":\"SEA\",\"class\":\"Blue\",\"startDate\":\"2012-02-12\",\"employeeStatus\":{},\"employeeSensor\":{},\"employeeLocation\":{},\"$apiName\":\"Employee\",\"$objectType\":\"Employee\",\"$primaryKey\":50031,\"$title\":\"Jane Doe\",\"$objectSpecifier\":\"Employee:50031\"}\"`,\n );\n\n expect(JSON.stringify(employee2.$as(FooInterface))).toMatchInlineSnapshot(\n `\"{\"$apiName\":\"FooInterface\",\"$objectType\":\"Employee\",\"$primaryKey\":50031,\"$objectSpecifier\":\"Employee:50031\",\"$title\":\"Jane Doe\",\"fooSpt\":\"Jane Doe\"}\"`,\n );\n });\n\n it(\"reuses the object prototype across objects\", async () => {\n const employees = await client(Employee).fetchPage();\n expect(employees.data.length).toBeGreaterThanOrEqual(2);\n const [a, b] = employees.data;\n\n expect(Object.getPrototypeOf(Object.getPrototypeOf(a))).toBe(\n Object.getPrototypeOf(Object.getPrototypeOf(b)),\n );\n });\n\n it(\"converts attachments as expected\", async () => {\n const withValues = await client(\n objectTypeWithAllPropertyTypes,\n )\n .where({ id: 1 })\n .fetchPage();\n expect(withValues.data.length).toBeGreaterThanOrEqual(1);\n\n const { attachment, attachmentArray } = withValues.data[0];\n\n expectTypeOf(attachment).toMatchTypeOf<\n Attachment | undefined\n >;\n expect(attachment?.rid).toEqual(\n \"ri.attachments.main.attachment.86016861-707f-4292-b258-6a7108915a75\",\n );\n expect(Array.isArray(attachmentArray)).toBeTruthy();\n expectTypeOf(attachmentArray![0]).toMatchTypeOf<Attachment>;\n\n const withoutValues = await client(\n objectTypeWithAllPropertyTypes,\n ).where({ id: 2 }).fetchPage();\n\n const {\n attachment: emptyAttachment,\n attachmentArray: emptyAttachmentArray,\n } = withoutValues.data[0];\n expect(emptyAttachment).toBeUndefined();\n expect(emptyAttachmentArray).toBeUndefined();\n });\n\n it(\"converts media as expected\", async () => {\n const withValues = await client(\n objectTypeWithAllPropertyTypes,\n )\n .where({ id: 1 })\n .fetchPage();\n expect(withValues.data.length).toBeGreaterThanOrEqual(1);\n\n const { mediaReference } = withValues.data[0];\n\n expectTypeOf(mediaReference).toMatchTypeOf<\n Media | undefined\n >;\n expect(mediaReference).toBeDefined();\n\n const withoutValues = await client(\n objectTypeWithAllPropertyTypes,\n ).where({ id: 2 }).fetchPage();\n\n const {\n mediaReference: emptyMedia,\n } = withoutValues.data[0];\n expect(emptyMedia).toBeUndefined();\n });\n\n it(\"creates immutable objects\", async () => {\n const employees = await client(Employee).fetchPage();\n expect(employees.data.length).toBeGreaterThanOrEqual(2);\n const [a, b] = employees.data;\n\n expect(a).toBeDefined();\n expect(() => {\n (a as any).somePropertyThatShouldNotExist = 5;\n }).toThrow();\n\n const objAsFoo = a.$as(FooInterface);\n expect(objAsFoo).toBeDefined();\n expect(() => {\n (objAsFoo as any).somePropertyThatShouldNotExist = 5;\n }).toThrow();\n });\n\n it(\"works even with unknown apiNames - old\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n createSharedClientContext(\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n \"userAgent\",\n );\n\n const object = {\n __apiName: Employee.apiName,\n __primaryKey: 0,\n } as const;\n const prototypeBefore = Object.getPrototypeOf(object);\n const object2 = await convertWireToOsdkObjects(\n clientCtx,\n [object],\n undefined,\n undefined,\n {},\n undefined,\n false,\n );\n const prototypeAfter = Object.getPrototypeOf(object2);\n\n expect(prototypeBefore).not.toBe(prototypeAfter);\n });\n\n it(\"works even with unknown apiNames - new\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n createSharedClientContext(\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n \"userAgent\",\n );\n\n const object = {\n __apiName: Employee.apiName,\n __primaryKey: 0,\n } as const;\n const prototypeBefore = Object.getPrototypeOf(object);\n const object2 = await convertWireToOsdkObjects2(\n clientCtx,\n [object],\n undefined,\n {},\n undefined,\n undefined,\n false,\n );\n const prototypeAfter = Object.getPrototypeOf(object2);\n\n expect(prototypeBefore).not.toBe(prototypeAfter);\n });\n\n it(\"reconstitutes interfaces properly without rid - old\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n fooSpt: \"Steve\",\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n undefined,\n {},\n )) as unknown as Osdk<FooInterface>[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"employeeId\": 0,\n \"fullName\": \"Steve\",\n }\n `);\n });\n\n it(\"reconstitutes interfaces properly without rid - new\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n fullName: \"Steve\",\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects2(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n {},\n false,\n undefined,\n false,\n interfaceToObjectTypeMappings,\n )) as unknown as Osdk<FooInterface>[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fullName\": \"Steve\",\n }\n `);\n });\n\n it(\"reconstitutes interfaces properly with rid\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n __rid: \"hiMom\",\n fooSpt: \"Steve\",\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n undefined,\n {},\n )) as unknown as Osdk<FooInterface, \"$rid\" | \"$all\">[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n expect(objAsFoo.$rid).toEqual(\"hiMom\");\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"employeeId\": 0,\n \"fullName\": \"Steve\",\n }\n `);\n expect(obj.$rid).toEqual(\"hiMom\");\n });\n\n it(\"reconstitutes interfaces properly with rid - new\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n __rid: \"hiMom\",\n fullName: \"Steve\",\n employeeId: 0,\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects2(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n {},\n false,\n undefined,\n false,\n interfaceToObjectTypeMappings,\n )) as unknown as Osdk<FooInterface, \"$rid\" | \"$all\">[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n expect(objAsFoo.$rid).toEqual(\"hiMom\");\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"employeeId\": 0,\n \"fullName\": \"Steve\",\n }\n `);\n expect(obj.$rid).toEqual(\"hiMom\");\n });\n\n describe(\"selection keys\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"employeeId\"],\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when optional is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"fullName\"],\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"employeeId\"],\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"fullName\"],\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n describe(\"selection keys - new\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"employeeId\"],\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when optional is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"fullName\"],\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"employeeId\"],\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"fullName\"],\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n describe(\"without selection keys\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when required is present\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n describe(\"without selection keys - new\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when required is present\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n it(\"behaves correctly when converting\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n fooSpt: \"hi\",\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n \"FooInterface\",\n {},\n undefined,\n [\"fooSpt\"],\n \"drop\",\n interfaceToObjectTypeMappings,\n );\n\n expect(result.length).toBe(1);\n });\n});\n\ndescribe(\"Osdk.Instance\", () => {\n it(\"is assignable to Osdk<>\", () => {\n const instance: Osdk.Instance<Employee> = {} as any;\n const osdk: Osdk<Employee> = instance;\n });\n\n it(\"is assignable from Osdk<>\", () => {\n const osdk: Osdk<Employee> = {} as any;\n const instance: Osdk.Instance<Employee> = osdk;\n });\n\n it(\"is assignable to Osdk<> with $notStrict\", () => {\n const instance: Osdk.Instance<Employee> = {} as any;\n const osdk: Osdk<Employee, \"$notStrict\"> = instance;\n const osdk2: Osdk<Employee, \"$notStrict\" | \"$all\"> = instance;\n });\n\n it(\"is assignable from Osdk<> with $notStrict\", () => {\n const osdk: Osdk<Employee, \"$notStrict\"> = {} as any;\n const osdk2: Osdk<Employee, \"$notStrict\" | \"$all\"> = osdk;\n const instance: Osdk.Instance<Employee> = osdk;\n const instance2: Osdk.Instance<Employee> = osdk2;\n });\n\n it(\"object with any for props is assignable to its normal self\", () => {\n const foo: readonly Osdk.Instance<Employee, never, any>[] = {} as any;\n\n const bar: readonly Osdk.Instance<\n Employee,\n never,\n PropertyKeys<Employee>\n >[] = foo;\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"convertWireToOsdkObjects.test.js","names":["$ontologyRid","Employee","FooInterface","objectTypeWithAllPropertyTypes","createSharedClientContext","LegacyFauxFoundry","startNodeApiServer","beforeAll","describe","expect","expectTypeOf","it","additionalContext","createClient","createMinimalClient","convertWireToOsdkObjects","convertWireToOsdkObjects2","client","interfaceToObjectTypeMappings","fooSpt","testSetup","apiServer","close","data","employee","fetchPage","Object","keys","sort","toEqual","$as","$link","employee2","where","$and","employeeId","$gt","$lt","JSON","stringify","toMatchInlineSnapshot","employees","length","toBeGreaterThanOrEqual","a","b","getPrototypeOf","toBe","withValues","id","attachment","attachmentArray","toMatchTypeOf","rid","Array","isArray","toBeTruthy","withoutValues","emptyAttachment","emptyAttachmentArray","toBeUndefined","mediaReference","toBeDefined","emptyMedia","somePropertyThatShouldNotExist","toThrow","objAsFoo","clientCtx","ontologyRid","object","__apiName","apiName","__primaryKey","prototypeBefore","object2","undefined","prototypeAfter","not","__title","obj","fullName","__rid","$rid","rejects","toThrowErrorMatchingInlineSnapshot","resolves","to","result","$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata","ObjectMetadata","propertyIsEnumerable","isFrozen","InterfaceMetadata","objAsFoo2","instance","osdk"],"sources":["convertWireToOsdkObjects.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 { Attachment, Media, Osdk, PropertyKeys } from \"@osdk/api\";\nimport {\n $ontologyRid,\n Employee,\n FooInterface,\n objectTypeWithAllPropertyTypes,\n} from \"@osdk/client.test.ontology\";\nimport type { OntologyObjectV2 } from \"@osdk/foundry.ontologies\";\nimport { createSharedClientContext } from \"@osdk/shared.client.impl\";\nimport { LegacyFauxFoundry, startNodeApiServer } 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 { createMinimalClient } from \"../createMinimalClient.js\";\nimport {\n convertWireToOsdkObjects,\n convertWireToOsdkObjects2,\n} from \"./convertWireToOsdkObjects.js\";\n\ndescribe(\"convertWireToOsdkObjects\", () => {\n let client: Client;\n const interfaceToObjectTypeMappings = {\n FooInterface: { Employee: { fooSpt: \"fullName\" } },\n };\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);\n ({ client } = testSetup);\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"configures properties correctly\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n\n expect(Object.keys(employee).sort()).toEqual([\n \"employeeId\",\n \"$title\",\n \"fullName\",\n \"office\",\n \"class\",\n \"startDate\",\n \"employeeSensor\",\n \"employeeStatus\",\n \"$apiName\",\n \"$objectType\",\n \"$primaryKey\",\n \"$objectSpecifier\",\n \"employeeLocation\",\n ].sort());\n\n expect(Object.keys(employee.$as)).toEqual([]);\n expect(Object.keys(employee.$link)).toEqual([\n \"peeps\",\n \"lead\",\n \"officeLink\",\n ]);\n });\n\n it(\"stringifies properties on objects and interfaces correctly\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const { data: [employee2] } = await client(Employee).where({\n $and: [{ employeeId: { $gt: 50030 } }, { employeeId: { $lt: 50032 } }],\n }).fetchPage();\n\n // Should not have $title\n expect(JSON.stringify(employee)).toMatchInlineSnapshot(\n `\"{\"employeeId\":50030,\"fullName\":\"John Doe\",\"office\":\"NYC\",\"class\":\"Red\",\"startDate\":\"2019-01-01\",\"employeeStatus\":{},\"employeeSensor\":{},\"employeeLocation\":{},\"$apiName\":\"Employee\",\"$objectType\":\"Employee\",\"$primaryKey\":50030,\"$objectSpecifier\":\"Employee:50030\"}\"`,\n );\n\n expect(JSON.stringify(employee.$as(FooInterface))).toMatchInlineSnapshot(\n `\"{\"$apiName\":\"FooInterface\",\"$objectType\":\"Employee\",\"$primaryKey\":50030,\"$objectSpecifier\":\"Employee:50030\",\"fooSpt\":\"John Doe\"}\"`,\n );\n\n // Should have $title\n expect(JSON.stringify(employee2)).toMatchInlineSnapshot(\n `\"{\"employeeId\":50031,\"fullName\":\"Jane Doe\",\"office\":\"SEA\",\"class\":\"Blue\",\"startDate\":\"2012-02-12\",\"employeeStatus\":{},\"employeeSensor\":{},\"employeeLocation\":{},\"$apiName\":\"Employee\",\"$objectType\":\"Employee\",\"$primaryKey\":50031,\"$title\":\"Jane Doe\",\"$objectSpecifier\":\"Employee:50031\"}\"`,\n );\n\n expect(JSON.stringify(employee2.$as(FooInterface))).toMatchInlineSnapshot(\n `\"{\"$apiName\":\"FooInterface\",\"$objectType\":\"Employee\",\"$primaryKey\":50031,\"$objectSpecifier\":\"Employee:50031\",\"$title\":\"Jane Doe\",\"fooSpt\":\"Jane Doe\"}\"`,\n );\n });\n\n it(\"reuses the object prototype across objects\", async () => {\n const employees = await client(Employee).fetchPage();\n expect(employees.data.length).toBeGreaterThanOrEqual(2);\n const [a, b] = employees.data;\n\n expect(Object.getPrototypeOf(Object.getPrototypeOf(a))).toBe(\n Object.getPrototypeOf(Object.getPrototypeOf(b)),\n );\n });\n\n it(\"converts attachments as expected\", async () => {\n const withValues = await client(\n objectTypeWithAllPropertyTypes,\n )\n .where({ id: 1 })\n .fetchPage();\n expect(withValues.data.length).toBeGreaterThanOrEqual(1);\n\n const { attachment, attachmentArray } = withValues.data[0];\n\n expectTypeOf(attachment).toMatchTypeOf<\n Attachment | undefined\n >;\n expect(attachment?.rid).toEqual(\n \"ri.attachments.main.attachment.86016861-707f-4292-b258-6a7108915a75\",\n );\n expect(Array.isArray(attachmentArray)).toBeTruthy();\n expectTypeOf(attachmentArray![0]).toMatchTypeOf<Attachment>;\n\n const withoutValues = await client(\n objectTypeWithAllPropertyTypes,\n ).where({ id: 2 }).fetchPage();\n\n const {\n attachment: emptyAttachment,\n attachmentArray: emptyAttachmentArray,\n } = withoutValues.data[0];\n expect(emptyAttachment).toBeUndefined();\n expect(emptyAttachmentArray).toBeUndefined();\n });\n\n it(\"converts media as expected\", async () => {\n const withValues = await client(\n objectTypeWithAllPropertyTypes,\n )\n .where({ id: 1 })\n .fetchPage();\n expect(withValues.data.length).toBeGreaterThanOrEqual(1);\n\n const { mediaReference } = withValues.data[0];\n\n expectTypeOf(mediaReference).toMatchTypeOf<\n Media | undefined\n >;\n expect(mediaReference).toBeDefined();\n\n const withoutValues = await client(\n objectTypeWithAllPropertyTypes,\n ).where({ id: 2 }).fetchPage();\n\n const {\n mediaReference: emptyMedia,\n } = withoutValues.data[0];\n expect(emptyMedia).toBeUndefined();\n });\n\n it(\"creates immutable objects\", async () => {\n const employees = await client(Employee).fetchPage();\n expect(employees.data.length).toBeGreaterThanOrEqual(2);\n const [a, b] = employees.data;\n\n expect(a).toBeDefined();\n expect(() => {\n (a as any).somePropertyThatShouldNotExist = 5;\n }).toThrow();\n\n const objAsFoo = a.$as(FooInterface);\n expect(objAsFoo).toBeDefined();\n expect(() => {\n (objAsFoo as any).somePropertyThatShouldNotExist = 5;\n }).toThrow();\n });\n\n it(\"works even with unknown apiNames - old\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n createSharedClientContext(\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n \"userAgent\",\n );\n\n const object = {\n __apiName: Employee.apiName,\n __primaryKey: 0,\n } as const;\n const prototypeBefore = Object.getPrototypeOf(object);\n const object2 = await convertWireToOsdkObjects(\n clientCtx,\n [object],\n undefined,\n undefined,\n {},\n undefined,\n false,\n );\n const prototypeAfter = Object.getPrototypeOf(object2);\n\n expect(prototypeBefore).not.toBe(prototypeAfter);\n });\n\n it(\"works even with unknown apiNames - new\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n createSharedClientContext(\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n \"userAgent\",\n );\n\n const object = {\n __apiName: Employee.apiName,\n __primaryKey: 0,\n } as const;\n const prototypeBefore = Object.getPrototypeOf(object);\n const object2 = await convertWireToOsdkObjects2(\n clientCtx,\n [object],\n undefined,\n {},\n undefined,\n undefined,\n false,\n );\n const prototypeAfter = Object.getPrototypeOf(object2);\n\n expect(prototypeBefore).not.toBe(prototypeAfter);\n });\n\n it(\"reconstitutes interfaces properly without rid - old\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n fooSpt: \"Steve\",\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n undefined,\n {},\n )) as unknown as Osdk<FooInterface>[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"employeeId\": 0,\n \"fullName\": \"Steve\",\n }\n `);\n });\n\n it(\"reconstitutes interfaces properly without rid - new\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n fullName: \"Steve\",\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects2(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n {},\n false,\n undefined,\n false,\n interfaceToObjectTypeMappings,\n )) as unknown as Osdk<FooInterface>[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fullName\": \"Steve\",\n }\n `);\n });\n\n it(\"reconstitutes interfaces properly with rid\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n __rid: \"hiMom\",\n fooSpt: \"Steve\",\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n undefined,\n {},\n )) as unknown as Osdk<FooInterface, \"$rid\" | \"$all\">[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n expect(objAsFoo.$rid).toEqual(\"hiMom\");\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"employeeId\": 0,\n \"fullName\": \"Steve\",\n }\n `);\n expect(obj.$rid).toEqual(\"hiMom\");\n });\n\n it(\"reconstitutes interfaces properly with rid - new\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n __rid: \"hiMom\",\n fullName: \"Steve\",\n employeeId: 0,\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects2(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n {},\n false,\n undefined,\n false,\n interfaceToObjectTypeMappings,\n )) as unknown as Osdk<FooInterface, \"$rid\" | \"$all\">[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n expect(objAsFoo.$rid).toEqual(\"hiMom\");\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"employeeId\": 0,\n \"fullName\": \"Steve\",\n }\n `);\n expect(obj.$rid).toEqual(\"hiMom\");\n });\n\n describe(\"selection keys\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"employeeId\"],\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when optional is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"fullName\"],\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"employeeId\"],\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"fullName\"],\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n describe(\"selection keys - new\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"employeeId\"],\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when optional is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"fullName\"],\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"employeeId\"],\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"fullName\"],\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n describe(\"without selection keys\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when required is present\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n describe(\"without selection keys - new\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when required is present\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n it(\"behaves correctly when converting\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n fooSpt: \"hi\",\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n \"FooInterface\",\n {},\n undefined,\n [\"fooSpt\"],\n \"drop\",\n interfaceToObjectTypeMappings,\n );\n\n expect(result.length).toBe(1);\n });\n\n describe(\"$metadata\", () => {\n describe(\"object\", () => {\n it(\"has an accessible object on $__experimental-metadata\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n expect(employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata)\n .toBeDefined();\n expect(\n employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata.ObjectMetadata,\n )\n .toMatchInlineSnapshot(\n `\n {\n \"apiName\": \"Employee\",\n \"description\": \"A full-time or part-time \n\n employee of our firm\",\n \"displayName\": \"Employee\",\n \"icon\": {\n \"color\": \"blue\",\n \"name\": \"person\",\n \"type\": \"blueprint\",\n },\n \"implements\": [\n \"FooInterface\",\n ],\n \"interfaceMap\": {\n \"FooInterface\": {\n \"fooSpt\": \"fullName\",\n },\n },\n \"inverseInterfaceMap\": {\n \"FooInterface\": {\n \"fullName\": \"fooSpt\",\n },\n },\n \"links\": {\n \"lead\": {\n \"multiplicity\": false,\n \"targetType\": \"Employee\",\n },\n \"officeLink\": {\n \"multiplicity\": false,\n \"targetType\": \"Office\",\n },\n \"peeps\": {\n \"multiplicity\": true,\n \"targetType\": \"Employee\",\n },\n },\n \"pluralDisplayName\": \"Employees\",\n \"primaryKeyApiName\": \"employeeId\",\n \"primaryKeyType\": \"integer\",\n \"properties\": {\n \"class\": {\n \"description\": \"\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n \"employeeId\": {\n \"description\": undefined,\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": false,\n \"type\": \"integer\",\n },\n \"employeeLocation\": {\n \"description\": \"Geotime series reference of the location of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"geotimeSeriesReference\",\n },\n \"employeeSensor\": {\n \"description\": \"TimeSeries sensor of the status of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"sensorTimeseries\",\n },\n \"employeeStatus\": {\n \"description\": \"TimeSeries of the status of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"stringTimeseries\",\n },\n \"fullName\": {\n \"description\": undefined,\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n \"office\": {\n \"description\": \"The unique \"ID\" of the employee's \\\\\"primary\\\\\" assigned office.\n This is some more text.\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n \"skillSet\": {\n \"description\": \"The skills of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n \"skillSetEmbedding\": {\n \"description\": \"Vectorized skill set\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"vector\",\n },\n \"startDate\": {\n \"description\": \"The date the employee was hired (most recently, if they were re-hired)\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"datetime\",\n },\n },\n \"rid\": \"ri.ontology.main.object-type.401ac022-89eb-4591-8b7e-0a912b9efb44\",\n \"status\": \"ACTIVE\",\n \"titleProperty\": \"fullName\",\n \"type\": \"object\",\n \"visibility\": \"NORMAL\",\n Symbol(InterfaceDefinitions): {\n \"FooInterface\": {\n \"def\": {\n \"apiName\": \"FooInterface\",\n \"description\": \"Interface for Foo\",\n \"displayName\": \"Foo Interface\",\n \"implementedBy\": [\n \"Employee\",\n \"Person\",\n ],\n \"implements\": [],\n \"links\": {},\n \"properties\": {\n \"fooSpt\": {\n \"description\": \"A foo\",\n \"displayName\": \"Foo\",\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n },\n \"rid\": \"ri.interface.main.interface.1\",\n \"type\": \"interface\",\n },\n \"handler\": undefined,\n },\n },\n }\n `,\n );\n });\n\n it(\"$experimental_metadata is not enumerable\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n\n expect(\n employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .propertyIsEnumerable(\n \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\",\n ),\n ).toEqual(\n false,\n );\n });\n\n it(\"returns frozen metadata\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n expect(employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata)\n .toBeDefined();\n expect(\n Object.isFrozen(\n employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .ObjectMetadata,\n ),\n ).toBe(true);\n });\n\n it(\"returns the same reference\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const { data: [employee2] } = await client(Employee).fetchPage();\n expect(\n employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata.ObjectMetadata,\n )\n .toBe(\n employee2.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .ObjectMetadata,\n );\n });\n });\n\n describe(\"interface\", () => {\n it(\"has an accessible interface on $__experimental-metadata\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const objAsFoo = employee.$as(FooInterface);\n expect(objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata)\n .toBeDefined();\n expect(\n objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .InterfaceMetadata,\n )\n .toMatchInlineSnapshot(\n `\n {\n \"apiName\": \"FooInterface\",\n \"description\": \"Interface for Foo\",\n \"displayName\": \"Foo Interface\",\n \"implementedBy\": [\n \"Employee\",\n \"Person\",\n ],\n \"implements\": [],\n \"links\": {},\n \"properties\": {\n \"fooSpt\": {\n \"description\": \"A foo\",\n \"displayName\": \"Foo\",\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n },\n \"rid\": \"ri.interface.main.interface.1\",\n \"type\": \"interface\",\n }\n `,\n );\n });\n it(\"$experimental_metadata is not enumerable\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const objAsFoo = employee.$as(FooInterface);\n expect(\n objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .propertyIsEnumerable(\n \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\",\n ),\n ).toEqual(\n false,\n );\n });\n it(\"returns frozen metadata\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const objAsFoo = employee.$as(FooInterface);\n expect(objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata)\n .toBeDefined();\n expect(\n Object.isFrozen(\n objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .InterfaceMetadata,\n ),\n ).toBe(true);\n });\n it(\"returns the same reference\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const objAsFoo = employee.$as(FooInterface);\n const { data: [employee2] } = await client(Employee).fetchPage();\n const objAsFoo2 = employee2.$as(FooInterface);\n expect(\n objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .InterfaceMetadata,\n )\n .toBe(\n objAsFoo2.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .InterfaceMetadata,\n );\n });\n });\n });\n});\n\ndescribe(\"Osdk.Instance\", () => {\n it(\"is assignable to Osdk<>\", () => {\n const instance: Osdk.Instance<Employee> = {} as any;\n const osdk: Osdk<Employee> = instance;\n });\n\n it(\"is assignable from Osdk<>\", () => {\n const osdk: Osdk<Employee> = {} as any;\n const instance: Osdk.Instance<Employee> = osdk;\n });\n\n it(\"is assignable to Osdk<> with $notStrict\", () => {\n const instance: Osdk.Instance<Employee> = {} as any;\n const osdk: Osdk<Employee, \"$notStrict\"> = instance;\n const osdk2: Osdk<Employee, \"$notStrict\" | \"$all\"> = instance;\n });\n\n it(\"is assignable from Osdk<> with $notStrict\", () => {\n const osdk: Osdk<Employee, \"$notStrict\"> = {} as any;\n const osdk2: Osdk<Employee, \"$notStrict\" | \"$all\"> = osdk;\n const instance: Osdk.Instance<Employee> = osdk;\n const instance2: Osdk.Instance<Employee> = osdk2;\n });\n\n it(\"object with any for props is assignable to its normal self\", () => {\n const foo: readonly Osdk.Instance<Employee, never, any>[] = {} as any;\n\n const bar: readonly Osdk.Instance<\n Employee,\n never,\n PropertyKeys<Employee>\n >[] = foo;\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SACEA,YAAY,EACZC,QAAQ,EACRC,YAAY,EACZC,8BAA8B,QACzB,4BAA4B;AAEnC,SAASC,yBAAyB,QAAQ,0BAA0B;AACpE,SAASC,iBAAiB,EAAEC,kBAAkB,QAAQ,mBAAmB;AACzE,SAASC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,YAAY,EAAEC,EAAE,QAAQ,QAAQ;AACtE,SAASC,iBAAiB,QAAqB,cAAc;AAC7D,SAASC,YAAY,QAAQ,oBAAoB;AACjD,SAASC,mBAAmB,QAAQ,2BAA2B;AAC/D,SACEC,wBAAwB,EACxBC,yBAAyB,QACpB,+BAA+B;AAEtCR,QAAQ,CAAC,0BAA0B,EAAE,MAAM;EACzC,IAAIS,MAAc;EAClB,MAAMC,6BAA6B,GAAG;IACpChB,YAAY,EAAE;MAAED,QAAQ,EAAE;QAAEkB,MAAM,EAAE;MAAW;IAAE;EACnD,CAAC;EAEDZ,SAAS,CAAC,MAAM;IACd,MAAMa,SAAS,GAAGd,kBAAkB,CAAC,IAAID,iBAAiB,CAAC,CAAC,EAAEQ,YAAY,CAAC;IAC3E,CAAC;MAAEI;IAAO,CAAC,GAAGG,SAAS;IACvB,OAAO,MAAM;MACXA,SAAS,CAACC,SAAS,CAACC,KAAK,CAAC,CAAC;IAC7B,CAAC;EACH,CAAC,CAAC;EAEFX,EAAE,CAAC,iCAAiC,EAAE,YAAY;IAChD,MAAM;MAAEY,IAAI,EAAE,CAACC,QAAQ;IAAE,CAAC,GAAG,MAAMP,MAAM,CAAChB,QAAQ,CAAC,CAACwB,SAAS,CAAC,CAAC;IAE/DhB,MAAM,CAACiB,MAAM,CAACC,IAAI,CAACH,QAAQ,CAAC,CAACI,IAAI,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,CAC3C,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,OAAO,EACP,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,kBAAkB,CACnB,CAACD,IAAI,CAAC,CAAC,CAAC;IAETnB,MAAM,CAACiB,MAAM,CAACC,IAAI,CAACH,QAAQ,CAACM,GAAG,CAAC,CAAC,CAACD,OAAO,CAAC,EAAE,CAAC;IAC7CpB,MAAM,CAACiB,MAAM,CAACC,IAAI,CAACH,QAAQ,CAACO,KAAK,CAAC,CAAC,CAACF,OAAO,CAAC,CAC1C,OAAO,EACP,MAAM,EACN,YAAY,CACb,CAAC;EACJ,CAAC,CAAC;EAEFlB,EAAE,CAAC,4DAA4D,EAAE,YAAY;IAC3E,MAAM;MAAEY,IAAI,EAAE,CAACC,QAAQ;IAAE,CAAC,GAAG,MAAMP,MAAM,CAAChB,QAAQ,CAAC,CAACwB,SAAS,CAAC,CAAC;IAC/D,MAAM;MAAEF,IAAI,EAAE,CAACS,SAAS;IAAE,CAAC,GAAG,MAAMf,MAAM,CAAChB,QAAQ,CAAC,CAACgC,KAAK,CAAC;MACzDC,IAAI,EAAE,CAAC;QAAEC,UAAU,EAAE;UAAEC,GAAG,EAAE;QAAM;MAAE,CAAC,EAAE;QAAED,UAAU,EAAE;UAAEE,GAAG,EAAE;QAAM;MAAE,CAAC;IACvE,CAAC,CAAC,CAACZ,SAAS,CAAC,CAAC;;IAEd;IACAhB,MAAM,CAAC6B,IAAI,CAACC,SAAS,CAACf,QAAQ,CAAC,CAAC,CAACgB,qBAAqB,CACpD,yQACF,CAAC;IAED/B,MAAM,CAAC6B,IAAI,CAACC,SAAS,CAACf,QAAQ,CAACM,GAAG,CAAC5B,YAAY,CAAC,CAAC,CAAC,CAACsC,qBAAqB,CACtE,oIACF,CAAC;;IAED;IACA/B,MAAM,CAAC6B,IAAI,CAACC,SAAS,CAACP,SAAS,CAAC,CAAC,CAACQ,qBAAqB,CACrD,8RACF,CAAC;IAED/B,MAAM,CAAC6B,IAAI,CAACC,SAAS,CAACP,SAAS,CAACF,GAAG,CAAC5B,YAAY,CAAC,CAAC,CAAC,CAACsC,qBAAqB,CACvE,wJACF,CAAC;EACH,CAAC,CAAC;EAEF7B,EAAE,CAAC,4CAA4C,EAAE,YAAY;IAC3D,MAAM8B,SAAS,GAAG,MAAMxB,MAAM,CAAChB,QAAQ,CAAC,CAACwB,SAAS,CAAC,CAAC;IACpDhB,MAAM,CAACgC,SAAS,CAAClB,IAAI,CAACmB,MAAM,CAAC,CAACC,sBAAsB,CAAC,CAAC,CAAC;IACvD,MAAM,CAACC,CAAC,EAAEC,CAAC,CAAC,GAAGJ,SAAS,CAAClB,IAAI;IAE7Bd,MAAM,CAACiB,MAAM,CAACoB,cAAc,CAACpB,MAAM,CAACoB,cAAc,CAACF,CAAC,CAAC,CAAC,CAAC,CAACG,IAAI,CAC1DrB,MAAM,CAACoB,cAAc,CAACpB,MAAM,CAACoB,cAAc,CAACD,CAAC,CAAC,CAChD,CAAC;EACH,CAAC,CAAC;EAEFlC,EAAE,CAAC,kCAAkC,EAAE,YAAY;IACjD,MAAMqC,UAAU,GAAG,MAAM/B,MAAM,CAC7Bd,8BACF,CAAC,CACE8B,KAAK,CAAC;MAAEgB,EAAE,EAAE;IAAE,CAAC,CAAC,CAChBxB,SAAS,CAAC,CAAC;IACdhB,MAAM,CAACuC,UAAU,CAACzB,IAAI,CAACmB,MAAM,CAAC,CAACC,sBAAsB,CAAC,CAAC,CAAC;IAExD,MAAM;MAAEO,UAAU;MAAEC;IAAgB,CAAC,GAAGH,UAAU,CAACzB,IAAI,CAAC,CAAC,CAAC;IAE1Db,YAAY,CAACwC,UAAU,CAAC,CAACE,aAAa;IAGtC3C,MAAM,CAACyC,UAAU,EAAEG,GAAG,CAAC,CAACxB,OAAO,CAC7B,qEACF,CAAC;IACDpB,MAAM,CAAC6C,KAAK,CAACC,OAAO,CAACJ,eAAe,CAAC,CAAC,CAACK,UAAU,CAAC,CAAC;IACnD9C,YAAY,CAACyC,eAAe,CAAE,CAAC,CAAC,CAAC,CAACC,aAAa;IAE/C,MAAMK,aAAa,GAAG,MAAMxC,MAAM,CAChCd,8BACF,CAAC,CAAC8B,KAAK,CAAC;MAAEgB,EAAE,EAAE;IAAE,CAAC,CAAC,CAACxB,SAAS,CAAC,CAAC;IAE9B,MAAM;MACJyB,UAAU,EAAEQ,eAAe;MAC3BP,eAAe,EAAEQ;IACnB,CAAC,GAAGF,aAAa,CAAClC,IAAI,CAAC,CAAC,CAAC;IACzBd,MAAM,CAACiD,eAAe,CAAC,CAACE,aAAa,CAAC,CAAC;IACvCnD,MAAM,CAACkD,oBAAoB,CAAC,CAACC,aAAa,CAAC,CAAC;EAC9C,CAAC,CAAC;EAEFjD,EAAE,CAAC,4BAA4B,EAAE,YAAY;IAC3C,MAAMqC,UAAU,GAAG,MAAM/B,MAAM,CAC7Bd,8BACF,CAAC,CACE8B,KAAK,CAAC;MAAEgB,EAAE,EAAE;IAAE,CAAC,CAAC,CAChBxB,SAAS,CAAC,CAAC;IACdhB,MAAM,CAACuC,UAAU,CAACzB,IAAI,CAACmB,MAAM,CAAC,CAACC,sBAAsB,CAAC,CAAC,CAAC;IAExD,MAAM;MAAEkB;IAAe,CAAC,GAAGb,UAAU,CAACzB,IAAI,CAAC,CAAC,CAAC;IAE7Cb,YAAY,CAACmD,cAAc,CAAC,CAACT,aAAa;IAG1C3C,MAAM,CAACoD,cAAc,CAAC,CAACC,WAAW,CAAC,CAAC;IAEpC,MAAML,aAAa,GAAG,MAAMxC,MAAM,CAChCd,8BACF,CAAC,CAAC8B,KAAK,CAAC;MAAEgB,EAAE,EAAE;IAAE,CAAC,CAAC,CAACxB,SAAS,CAAC,CAAC;IAE9B,MAAM;MACJoC,cAAc,EAAEE;IAClB,CAAC,GAAGN,aAAa,CAAClC,IAAI,CAAC,CAAC,CAAC;IACzBd,MAAM,CAACsD,UAAU,CAAC,CAACH,aAAa,CAAC,CAAC;EACpC,CAAC,CAAC;EAEFjD,EAAE,CAAC,2BAA2B,EAAE,YAAY;IAC1C,MAAM8B,SAAS,GAAG,MAAMxB,MAAM,CAAChB,QAAQ,CAAC,CAACwB,SAAS,CAAC,CAAC;IACpDhB,MAAM,CAACgC,SAAS,CAAClB,IAAI,CAACmB,MAAM,CAAC,CAACC,sBAAsB,CAAC,CAAC,CAAC;IACvD,MAAM,CAACC,CAAC,EAAEC,CAAC,CAAC,GAAGJ,SAAS,CAAClB,IAAI;IAE7Bd,MAAM,CAACmC,CAAC,CAAC,CAACkB,WAAW,CAAC,CAAC;IACvBrD,MAAM,CAAC,MAAM;MACVmC,CAAC,CAASoB,8BAA8B,GAAG,CAAC;IAC/C,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;IAEZ,MAAMC,QAAQ,GAAGtB,CAAC,CAACd,GAAG,CAAC5B,YAAY,CAAC;IACpCO,MAAM,CAACyD,QAAQ,CAAC,CAACJ,WAAW,CAAC,CAAC;IAC9BrD,MAAM,CAAC,MAAM;MACVyD,QAAQ,CAASF,8BAA8B,GAAG,CAAC;IACtD,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;EACd,CAAC,CAAC;EAEFtD,EAAE,CAAC,wCAAwC,EAAE,YAAY;IACvD,MAAMwD,SAAS,GAAGrD,mBAAmB,CACnC;MAAEsD,WAAW,EAAEpE;IAAa,CAAC,EAC7B,4BAA4B,EAC5B,YAAY,eACd,CAAC;IACDI,yBAAyB,CACvB,4BAA4B,EAC5B,YAAY,eAAe,EAC3B,WACF,CAAC;IAED,MAAMiE,MAAM,GAAG;MACbC,SAAS,EAAErE,QAAQ,CAACsE,OAAO;MAC3BC,YAAY,EAAE;IAChB,CAAU;IACV,MAAMC,eAAe,GAAG/C,MAAM,CAACoB,cAAc,CAACuB,MAAM,CAAC;IACrD,MAAMK,OAAO,GAAG,MAAM3D,wBAAwB,CAC5CoD,SAAS,EACT,CAACE,MAAM,CAAC,EACRM,SAAS,EACTA,SAAS,EACT,CAAC,CAAC,EACFA,SAAS,EACT,KACF,CAAC;IACD,MAAMC,cAAc,GAAGlD,MAAM,CAACoB,cAAc,CAAC4B,OAAO,CAAC;IAErDjE,MAAM,CAACgE,eAAe,CAAC,CAACI,GAAG,CAAC9B,IAAI,CAAC6B,cAAc,CAAC;EAClD,CAAC,CAAC;EAEFjE,EAAE,CAAC,wCAAwC,EAAE,YAAY;IACvD,MAAMwD,SAAS,GAAGrD,mBAAmB,CACnC;MAAEsD,WAAW,EAAEpE;IAAa,CAAC,EAC7B,4BAA4B,EAC5B,YAAY,eACd,CAAC;IACDI,yBAAyB,CACvB,4BAA4B,EAC5B,YAAY,eAAe,EAC3B,WACF,CAAC;IAED,MAAMiE,MAAM,GAAG;MACbC,SAAS,EAAErE,QAAQ,CAACsE,OAAO;MAC3BC,YAAY,EAAE;IAChB,CAAU;IACV,MAAMC,eAAe,GAAG/C,MAAM,CAACoB,cAAc,CAACuB,MAAM,CAAC;IACrD,MAAMK,OAAO,GAAG,MAAM1D,yBAAyB,CAC7CmD,SAAS,EACT,CAACE,MAAM,CAAC,EACRM,SAAS,EACT,CAAC,CAAC,EACFA,SAAS,EACTA,SAAS,EACT,KACF,CAAC;IACD,MAAMC,cAAc,GAAGlD,MAAM,CAACoB,cAAc,CAAC4B,OAAO,CAAC;IAErDjE,MAAM,CAACgE,eAAe,CAAC,CAACI,GAAG,CAAC9B,IAAI,CAAC6B,cAAc,CAAC;EAClD,CAAC,CAAC;EAEFjE,EAAE,CAAC,qDAAqD,EAAE,YAAY;IACpE,MAAMwD,SAAS,GAAGrD,mBAAmB,CACnC;MAAEsD,WAAW,EAAEpE;IAAa,CAAC,EAC7B,4BAA4B,EAC5B,YAAY,eACd,CAAC;IASD,MAAM,CAACkE,QAAQ,CAAC,GAAI,MAAMnD,wBAAwB,CAChDoD,SAAS,EACT,CATqB;MACrBG,SAAS,EAAE,UAAmB;MAC9BE,YAAY,EAAE,CAAC;MACfM,OAAO,EAAE,OAAO;MAChB3D,MAAM,EAAE;IACV,CAAC,CAIiB,EAChBjB,YAAY,CAACqE,OAAO,EACpBI,SAAS,EACT,CAAC,CACH,CAAqC;IAErClE,MAAM,CAACyD,QAAQ,CAAC,CAAC1B,qBAAqB,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;IAEF,MAAMuC,GAAG,GAAGb,QAAQ,CAACpC,GAAG,CAAC7B,QAAQ,CAAC;IAClCQ,MAAM,CAACsE,GAAG,CAACC,QAAQ,CAAC,CAACnD,OAAO,CAAC,OAAO,CAAC;IAErCpB,MAAM,CAACsE,GAAG,CAAC,CAACvC,qBAAqB,CAAC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEF7B,EAAE,CAAC,qDAAqD,EAAE,YAAY;IACpE,MAAMwD,SAAS,GAAGrD,mBAAmB,CACnC;MAAEsD,WAAW,EAAEpE;IAAa,CAAC,EAC7B,4BAA4B,EAC5B,YAAY,eACd,CAAC;IASD,MAAM,CAACkE,QAAQ,CAAC,GAAI,MAAMlD,yBAAyB,CACjDmD,SAAS,EACT,CATqB;MACrBG,SAAS,EAAE,UAAmB;MAC9BE,YAAY,EAAE,CAAC;MACfM,OAAO,EAAE,OAAO;MAChBE,QAAQ,EAAE;IACZ,CAAC,CAIiB,EAChB9E,YAAY,CAACqE,OAAO,EACpB,CAAC,CAAC,EACF,KAAK,EACLI,SAAS,EACT,KAAK,EACLzD,6BACF,CAAqC;IAErCT,MAAM,CAACyD,QAAQ,CAAC,CAAC1B,qBAAqB,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;IAEF,MAAMuC,GAAG,GAAGb,QAAQ,CAACpC,GAAG,CAAC7B,QAAQ,CAAC;IAClCQ,MAAM,CAACsE,GAAG,CAACC,QAAQ,CAAC,CAACnD,OAAO,CAAC,OAAO,CAAC;IAErCpB,MAAM,CAACsE,GAAG,CAAC,CAACvC,qBAAqB,CAAC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEF7B,EAAE,CAAC,4CAA4C,EAAE,YAAY;IAC3D,MAAMwD,SAAS,GAAGrD,mBAAmB,CACnC;MAAEsD,WAAW,EAAEpE;IAAa,CAAC,EAC7B,4BAA4B,EAC5B,YAAY,eACd,CAAC;IAUD,MAAM,CAACkE,QAAQ,CAAC,GAAI,MAAMnD,wBAAwB,CAChDoD,SAAS,EACT,CAVqB;MACrBG,SAAS,EAAE,UAAmB;MAC9BE,YAAY,EAAE,CAAC;MACfM,OAAO,EAAE,OAAO;MAChBG,KAAK,EAAE,OAAO;MACd9D,MAAM,EAAE;IACV,CAAC,CAIiB,EAChBjB,YAAY,CAACqE,OAAO,EACpBI,SAAS,EACT,CAAC,CACH,CAAsD;IAEtDlE,MAAM,CAACyD,QAAQ,CAAC,CAAC1B,qBAAqB,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;IACF/B,MAAM,CAACyD,QAAQ,CAACgB,IAAI,CAAC,CAACrD,OAAO,CAAC,OAAO,CAAC;IAEtC,MAAMkD,GAAG,GAAGb,QAAQ,CAACpC,GAAG,CAAC7B,QAAQ,CAAC;IAClCQ,MAAM,CAACsE,GAAG,CAACC,QAAQ,CAAC,CAACnD,OAAO,CAAC,OAAO,CAAC;IAErCpB,MAAM,CAACsE,GAAG,CAAC,CAACvC,qBAAqB,CAAC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;IACF/B,MAAM,CAACsE,GAAG,CAACG,IAAI,CAAC,CAACrD,OAAO,CAAC,OAAO,CAAC;EACnC,CAAC,CAAC;EAEFlB,EAAE,CAAC,kDAAkD,EAAE,YAAY;IACjE,MAAMwD,SAAS,GAAGrD,mBAAmB,CACnC;MAAEsD,WAAW,EAAEpE;IAAa,CAAC,EAC7B,4BAA4B,EAC5B,YAAY,eACd,CAAC;IAWD,MAAM,CAACkE,QAAQ,CAAC,GAAI,MAAMlD,yBAAyB,CACjDmD,SAAS,EACT,CAXqB;MACrBG,SAAS,EAAE,UAAmB;MAC9BE,YAAY,EAAE,CAAC;MACfM,OAAO,EAAE,OAAO;MAChBG,KAAK,EAAE,OAAO;MACdD,QAAQ,EAAE,OAAO;MACjB7C,UAAU,EAAE;IACd,CAAC,CAIiB,EAChBjC,YAAY,CAACqE,OAAO,EACpB,CAAC,CAAC,EACF,KAAK,EACLI,SAAS,EACT,KAAK,EACLzD,6BACF,CAAsD;IAEtDT,MAAM,CAACyD,QAAQ,CAAC,CAAC1B,qBAAqB,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;IACF/B,MAAM,CAACyD,QAAQ,CAACgB,IAAI,CAAC,CAACrD,OAAO,CAAC,OAAO,CAAC;IAEtC,MAAMkD,GAAG,GAAGb,QAAQ,CAACpC,GAAG,CAAC7B,QAAQ,CAAC;IAClCQ,MAAM,CAACsE,GAAG,CAACC,QAAQ,CAAC,CAACnD,OAAO,CAAC,OAAO,CAAC;IAErCpB,MAAM,CAACsE,GAAG,CAAC,CAACvC,qBAAqB,CAAC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;IACF/B,MAAM,CAACsE,GAAG,CAACG,IAAI,CAAC,CAACrD,OAAO,CAAC,OAAO,CAAC;EACnC,CAAC,CAAC;EAEFrB,QAAQ,CAAC,gBAAgB,EAAE,MAAM;IAC/BG,EAAE,CAAC,iCAAiC,EAAE,YAAY;MAChD,MAAM0D,MAAM,GAAG;QACbC,SAAS,EAAE,UAAU;QACrBE,YAAY,EAAE;MAChB,CAAU;MAEV,MAAM/D,MAAM,CAAC,MACXM,wBAAwB,CACtBE,MAAM,CAACL,iBAAiB,CAAC,EACzB,CAACyD,MAAM,CAAC,EACRM,SAAS,EACTA,SAAS,EACT,CAAC,CAAC,EACF,CAAC,YAAY,CAAC,EACd,OACF,CACF,CAAC,CAACQ,OAAO,CAACC,kCAAkC,CAC1C,oFACF,CAAC;IACH,CAAC,CAAC;IAEFzE,EAAE,CAAC,yCAAyC,EAAE,YAAY;MAMxD,MAAMF,MAAM,CACVM,wBAAwB,CACtBE,MAAM,CAACL,iBAAiB,CAAC,EACzB,CARW;QACb0D,SAAS,EAAE,UAAU;QACrBE,YAAY,EAAE;MAChB,CAAC,CAKW,EACRG,SAAS,EACTA,SAAS,EACT,CAAC,CAAC,EACF,CAAC,UAAU,CAAC,EACZ,OACF,CACF,CAAC,CAACU,QAAQ,CAACC,EAAE,CAACT,GAAG,CAACjB,aAAa,CAAC,CAAC;IACnC,CAAC,CAAC;IAEFjD,EAAE,CAAC,wBAAwB,EAAE,YAAY;MAMvC,MAAM4E,MAAM,GAAG,MAAMxE,wBAAwB,CAC3CE,MAAM,CAACL,iBAAiB,CAAC,EACzB,CAPa;QACb0D,SAAS,EAAE,UAAU;QACrBE,YAAY,EAAE;MAChB,CAAC,CAIS,EACRG,SAAS,EACTA,SAAS,EACT,CAAC,CAAC,EACF,CAAC,YAAY,CAAC,EACd,MACF,CAAC;MAEDlE,MAAM,CAAC8E,MAAM,CAAC7C,MAAM,CAAC,CAACK,IAAI,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEFpC,EAAE,CAAC,mCAAmC,EAAE,YAAY;MAMlD,MAAM4E,MAAM,GAAG,MAAMxE,wBAAwB,CAC3CE,MAAM,CAACL,iBAAiB,CAAC,EACzB,CAPa;QACb0D,SAAS,EAAE,UAAU;QACrBE,YAAY,EAAE;MAChB,CAAC,CAIS,EACRG,SAAS,EACTA,SAAS,EACT,CAAC,CAAC,EACF,CAAC,UAAU,CAAC,EACZ,MACF,CAAC;MAEDlE,MAAM,CAAC8E,MAAM,CAAC7C,MAAM,CAAC,CAACK,IAAI,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFvC,QAAQ,CAAC,sBAAsB,EAAE,MAAM;IACrCG,EAAE,CAAC,iCAAiC,EAAE,YAAY;MAChD,MAAM0D,MAAM,GAAG;QACbC,SAAS,EAAE,UAAU;QACrBE,YAAY,EAAE;MAChB,CAAU;MAEV,MAAM/D,MAAM,CAAC,MACXO,yBAAyB,CACvBC,MAAM,CAACL,iBAAiB,CAAC,EACzB,CAACyD,MAAM,CAAC,EACRM,SAAS,EACT,CAAC,CAAC,EACFA,SAAS,EACT,CAAC,YAAY,CAAC,EACd,OACF,CACF,CAAC,CAACQ,OAAO,CAACC,kCAAkC,CAC1C,oFACF,CAAC;IACH,CAAC,CAAC;IAEFzE,EAAE,CAAC,yCAAyC,EAAE,YAAY;MAMxD,MAAMF,MAAM,CACVO,yBAAyB,CACvBC,MAAM,CAACL,iBAAiB,CAAC,EACzB,CARW;QACb0D,SAAS,EAAE,UAAU;QACrBE,YAAY,EAAE;MAChB,CAAC,CAKW,EACRG,SAAS,EACT,CAAC,CAAC,EACFA,SAAS,EACT,CAAC,UAAU,CAAC,EACZ,OACF,CACF,CAAC,CAACU,QAAQ,CAACC,EAAE,CAACT,GAAG,CAACjB,aAAa,CAAC,CAAC;IACnC,CAAC,CAAC;IAEFjD,EAAE,CAAC,wBAAwB,EAAE,YAAY;MAMvC,MAAM4E,MAAM,GAAG,MAAMvE,yBAAyB,CAC5CC,MAAM,CAACL,iBAAiB,CAAC,EACzB,CAPa;QACb0D,SAAS,EAAE,UAAU;QACrBE,YAAY,EAAE;MAChB,CAAC,CAIS,EACRG,SAAS,EACT,CAAC,CAAC,EACFA,SAAS,EACT,CAAC,YAAY,CAAC,EACd,MACF,CAAC;MAEDlE,MAAM,CAAC8E,MAAM,CAAC7C,MAAM,CAAC,CAACK,IAAI,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEFpC,EAAE,CAAC,mCAAmC,EAAE,YAAY;MAMlD,MAAM4E,MAAM,GAAG,MAAMvE,yBAAyB,CAC5CC,MAAM,CAACL,iBAAiB,CAAC,EACzB,CAPa;QACb0D,SAAS,EAAE,UAAU;QACrBE,YAAY,EAAE;MAChB,CAAC,CAIS,EACRG,SAAS,EACT,CAAC,CAAC,EACFA,SAAS,EACT,CAAC,UAAU,CAAC,EACZ,MACF,CAAC;MAEDlE,MAAM,CAAC8E,MAAM,CAAC7C,MAAM,CAAC,CAACK,IAAI,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFvC,QAAQ,CAAC,wBAAwB,EAAE,MAAM;IACvCG,EAAE,CAAC,iCAAiC,EAAE,YAAY;MAChD,MAAM0D,MAAM,GAAG;QACbC,SAAS,EAAE,UAAU;QACrBE,YAAY,EAAE;MAChB,CAAU;MAEV,MAAM/D,MAAM,CAAC,MACXO,yBAAyB,CACvBC,MAAM,CAACL,iBAAiB,CAAC,EACzB,CAACyD,MAAM,CAAC,EACRM,SAAS,EACT,CAAC,CAAC,EACFA,SAAS,EACTA,SAAS,EACT,OACF,CACF,CAAC,CAACQ,OAAO,CAACC,kCAAkC,CAC1C,oFACF,CAAC;IACH,CAAC,CAAC;IAEFzE,EAAE,CAAC,yCAAyC,EAAE,YAAY;MAOxD,MAAMF,MAAM,CACVO,yBAAyB,CACvBC,MAAM,CAACL,iBAAiB,CAAC,EACzB,CATW;QACb0D,SAAS,EAAE,UAAU;QACrBE,YAAY,EAAE,CAAC;QACf,YAAY,EAAE;MAChB,CAAC,CAKW,EACRG,SAAS,EACT,CAAC,CAAC,EACFA,SAAS,EACTA,SAAS,EACT,OACF,CACF,CAAC,CAACU,QAAQ,CAACC,EAAE,CAACT,GAAG,CAACjB,aAAa,CAAC,CAAC;IACnC,CAAC,CAAC;IAEFjD,EAAE,CAAC,wBAAwB,EAAE,YAAY;MAMvC,MAAM4E,MAAM,GAAG,MAAMvE,yBAAyB,CAC5CC,MAAM,CAACL,iBAAiB,CAAC,EACzB,CAPa;QACb0D,SAAS,EAAE,UAAU;QACrBE,YAAY,EAAE;MAChB,CAAC,CAIS,EACRG,SAAS,EACT,CAAC,CAAC,EACFA,SAAS,EACTA,SAAS,EACT,MACF,CAAC;MAEDlE,MAAM,CAAC8E,MAAM,CAAC7C,MAAM,CAAC,CAACK,IAAI,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEFpC,EAAE,CAAC,mCAAmC,EAAE,YAAY;MAOlD,MAAM4E,MAAM,GAAG,MAAMvE,yBAAyB,CAC5CC,MAAM,CAACL,iBAAiB,CAAC,EACzB,CARa;QACb0D,SAAS,EAAE,UAAU;QACrBE,YAAY,EAAE,CAAC;QACf,YAAY,EAAE;MAChB,CAAC,CAIS,EACRG,SAAS,EACT,CAAC,CAAC,EACFA,SAAS,EACTA,SAAS,EACT,MACF,CAAC;MAEDlE,MAAM,CAAC8E,MAAM,CAAC7C,MAAM,CAAC,CAACK,IAAI,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFvC,QAAQ,CAAC,8BAA8B,EAAE,MAAM;IAC7CG,EAAE,CAAC,iCAAiC,EAAE,YAAY;MAChD,MAAM0D,MAAM,GAAG;QACbC,SAAS,EAAE,UAAU;QACrBE,YAAY,EAAE;MAChB,CAAU;MAEV,MAAM/D,MAAM,CAAC,MACXO,yBAAyB,CACvBC,MAAM,CAACL,iBAAiB,CAAC,EACzB,CAACyD,MAAM,CAAC,EACRM,SAAS,EACT,CAAC,CAAC,EACFA,SAAS,EACTA,SAAS,EACT,OACF,CACF,CAAC,CAACQ,OAAO,CAACC,kCAAkC,CAC1C,oFACF,CAAC;IACH,CAAC,CAAC;IAEFzE,EAAE,CAAC,yCAAyC,EAAE,YAAY;MAOxD,MAAMF,MAAM,CACVO,yBAAyB,CACvBC,MAAM,CAACL,iBAAiB,CAAC,EACzB,CATW;QACb0D,SAAS,EAAE,UAAU;QACrBE,YAAY,EAAE,CAAC;QACf,YAAY,EAAE;MAChB,CAAC,CAKW,EACRG,SAAS,EACT,CAAC,CAAC,EACFA,SAAS,EACTA,SAAS,EACT,OACF,CACF,CAAC,CAACU,QAAQ,CAACC,EAAE,CAACT,GAAG,CAACjB,aAAa,CAAC,CAAC;IACnC,CAAC,CAAC;IAEFjD,EAAE,CAAC,wBAAwB,EAAE,YAAY;MAMvC,MAAM4E,MAAM,GAAG,MAAMvE,yBAAyB,CAC5CC,MAAM,CAACL,iBAAiB,CAAC,EACzB,CAPa;QACb0D,SAAS,EAAE,UAAU;QACrBE,YAAY,EAAE;MAChB,CAAC,CAIS,EACRG,SAAS,EACT,CAAC,CAAC,EACFA,SAAS,EACTA,SAAS,EACT,MACF,CAAC;MAEDlE,MAAM,CAAC8E,MAAM,CAAC7C,MAAM,CAAC,CAACK,IAAI,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEFpC,EAAE,CAAC,mCAAmC,EAAE,YAAY;MAOlD,MAAM4E,MAAM,GAAG,MAAMvE,yBAAyB,CAC5CC,MAAM,CAACL,iBAAiB,CAAC,EACzB,CARa;QACb0D,SAAS,EAAE,UAAU;QACrBE,YAAY,EAAE,CAAC;QACf,YAAY,EAAE;MAChB,CAAC,CAIS,EACRG,SAAS,EACT,CAAC,CAAC,EACFA,SAAS,EACTA,SAAS,EACT,MACF,CAAC;MAEDlE,MAAM,CAAC8E,MAAM,CAAC7C,MAAM,CAAC,CAACK,IAAI,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFpC,EAAE,CAAC,mCAAmC,EAAE,YAAY;IAOlD,MAAM4E,MAAM,GAAG,MAAMvE,yBAAyB,CAC5CC,MAAM,CAACL,iBAAiB,CAAC,EACzB,CARa;MACb0D,SAAS,EAAE,UAAU;MACrBE,YAAY,EAAE,CAAC;MACfrD,MAAM,EAAE;IACV,CAAC,CAIS,EACR,cAAc,EACd,CAAC,CAAC,EACFwD,SAAS,EACT,CAAC,QAAQ,CAAC,EACV,MAAM,EACNzD,6BACF,CAAC;IAEDT,MAAM,CAAC8E,MAAM,CAAC7C,MAAM,CAAC,CAACK,IAAI,CAAC,CAAC,CAAC;EAC/B,CAAC,CAAC;EAEFvC,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC1BA,QAAQ,CAAC,QAAQ,EAAE,MAAM;MACvBG,EAAE,CAAC,sDAAsD,EAAE,YAAY;QACrE,MAAM;UAAEY,IAAI,EAAE,CAACC,QAAQ;QAAE,CAAC,GAAG,MAAMP,MAAM,CAAChB,QAAQ,CAAC,CAACwB,SAAS,CAAC,CAAC;QAC/DhB,MAAM,CAACe,QAAQ,CAACgE,4CAA4C,CAAC,CAC1D1B,WAAW,CAAC,CAAC;QAChBrD,MAAM,CACJe,QAAQ,CAACgE,4CAA4C,CAACC,cACxD,CAAC,CACEjD,qBAAqB,CACpB;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WACU,CAAC;MACL,CAAC,CAAC;MAEF7B,EAAE,CAAC,0CAA0C,EAAE,YAAY;QACzD,MAAM;UAAEY,IAAI,EAAE,CAACC,QAAQ;QAAE,CAAC,GAAG,MAAMP,MAAM,CAAChB,QAAQ,CAAC,CAACwB,SAAS,CAAC,CAAC;QAE/DhB,MAAM,CACJe,QAAQ,CAACgE,4CAA4C,CAClDE,oBAAoB,CACnB,8CACF,CACJ,CAAC,CAAC7D,OAAO,CACP,KACF,CAAC;MACH,CAAC,CAAC;MAEFlB,EAAE,CAAC,yBAAyB,EAAE,YAAY;QACxC,MAAM;UAAEY,IAAI,EAAE,CAACC,QAAQ;QAAE,CAAC,GAAG,MAAMP,MAAM,CAAChB,QAAQ,CAAC,CAACwB,SAAS,CAAC,CAAC;QAC/DhB,MAAM,CAACe,QAAQ,CAACgE,4CAA4C,CAAC,CAC1D1B,WAAW,CAAC,CAAC;QAChBrD,MAAM,CACJiB,MAAM,CAACiE,QAAQ,CACbnE,QAAQ,CAACgE,4CAA4C,CAClDC,cACL,CACF,CAAC,CAAC1C,IAAI,CAAC,IAAI,CAAC;MACd,CAAC,CAAC;MAEFpC,EAAE,CAAC,4BAA4B,EAAE,YAAY;QAC3C,MAAM;UAAEY,IAAI,EAAE,CA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","ignoreList":[]}
|
|
@@ -17,4 +17,7 @@
|
|
|
17
17
|
export function isMediaReference(o) {
|
|
18
18
|
return typeof o === `object` && typeof o.mimeType === "string" && "reference" in o && typeof o.reference === "object" && o.reference.type === "mediaSetViewItem" && "mediaSetViewItem" in o.reference && typeof o.reference.mediaSetViewItem === "object" && typeof o.reference.mediaSetViewItem.mediaSetRid === "string" && typeof o.reference.mediaSetViewItem.mediaSetViewRid === "string" && typeof o.reference.mediaSetViewItem.mediaItemRid === "string";
|
|
19
19
|
}
|
|
20
|
+
export function isMediaUpload(o) {
|
|
21
|
+
return typeof o === "object" && "path" in o && typeof o.path === "string" && "data" in o && typeof o.data === "object" && o.data instanceof Blob;
|
|
22
|
+
}
|
|
20
23
|
//# sourceMappingURL=mediaUpload.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mediaUpload.js","names":["isMediaReference","o","mimeType","reference","type","mediaSetViewItem","mediaSetRid","mediaSetViewRid","mediaItemRid"],"sources":["mediaUpload.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { MediaReference } from \"@osdk/api\";\n\nexport function isMediaReference(o: any): o is MediaReference {\n return typeof o === `object`\n && typeof o.mimeType === \"string\"\n && \"reference\" in o\n && typeof o.reference === \"object\"\n && o.reference.type === \"mediaSetViewItem\"\n && \"mediaSetViewItem\" in o.reference\n && typeof o.reference.mediaSetViewItem === \"object\"\n && typeof o.reference.mediaSetViewItem.mediaSetRid === \"string\"\n && typeof o.reference.mediaSetViewItem.mediaSetViewRid === \"string\"\n && typeof o.reference.mediaSetViewItem.mediaItemRid === \"string\";\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,OAAO,SAASA,gBAAgBA,CAACC,CAAM,EAAuB;EAC5D,OAAO,OAAOA,CAAC,KAAK,QAAQ,IACvB,OAAOA,CAAC,CAACC,QAAQ,KAAK,QAAQ,IAC9B,WAAW,IAAID,CAAC,IAChB,OAAOA,CAAC,CAACE,SAAS,KAAK,QAAQ,IAC/BF,CAAC,CAACE,SAAS,CAACC,IAAI,KAAK,kBAAkB,IACvC,kBAAkB,IAAIH,CAAC,CAACE,SAAS,IACjC,OAAOF,CAAC,CAACE,SAAS,CAACE,gBAAgB,KAAK,QAAQ,IAChD,OAAOJ,CAAC,CAACE,SAAS,CAACE,gBAAgB,CAACC,WAAW,KAAK,QAAQ,IAC5D,OAAOL,CAAC,CAACE,SAAS,CAACE,gBAAgB,CAACE,eAAe,KAAK,QAAQ,IAChE,OAAON,CAAC,CAACE,SAAS,CAACE,gBAAgB,CAACG,YAAY,KAAK,QAAQ;AACpE","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"mediaUpload.js","names":["isMediaReference","o","mimeType","reference","type","mediaSetViewItem","mediaSetRid","mediaSetViewRid","mediaItemRid","isMediaUpload","path","data","Blob"],"sources":["mediaUpload.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { MediaReference, MediaUpload } from \"@osdk/api\";\n\nexport function isMediaReference(o: any): o is MediaReference {\n return typeof o === `object`\n && typeof o.mimeType === \"string\"\n && \"reference\" in o\n && typeof o.reference === \"object\"\n && o.reference.type === \"mediaSetViewItem\"\n && \"mediaSetViewItem\" in o.reference\n && typeof o.reference.mediaSetViewItem === \"object\"\n && typeof o.reference.mediaSetViewItem.mediaSetRid === \"string\"\n && typeof o.reference.mediaSetViewItem.mediaSetViewRid === \"string\"\n && typeof o.reference.mediaSetViewItem.mediaItemRid === \"string\";\n}\n\nexport function isMediaUpload(o: any): o is MediaUpload {\n return typeof o === \"object\"\n && \"path\" in o\n && typeof o.path === \"string\"\n && \"data\" in o\n && typeof o.data === \"object\"\n && o.data instanceof Blob;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,OAAO,SAASA,gBAAgBA,CAACC,CAAM,EAAuB;EAC5D,OAAO,OAAOA,CAAC,KAAK,QAAQ,IACvB,OAAOA,CAAC,CAACC,QAAQ,KAAK,QAAQ,IAC9B,WAAW,IAAID,CAAC,IAChB,OAAOA,CAAC,CAACE,SAAS,KAAK,QAAQ,IAC/BF,CAAC,CAACE,SAAS,CAACC,IAAI,KAAK,kBAAkB,IACvC,kBAAkB,IAAIH,CAAC,CAACE,SAAS,IACjC,OAAOF,CAAC,CAACE,SAAS,CAACE,gBAAgB,KAAK,QAAQ,IAChD,OAAOJ,CAAC,CAACE,SAAS,CAACE,gBAAgB,CAACC,WAAW,KAAK,QAAQ,IAC5D,OAAOL,CAAC,CAACE,SAAS,CAACE,gBAAgB,CAACE,eAAe,KAAK,QAAQ,IAChE,OAAON,CAAC,CAACE,SAAS,CAACE,gBAAgB,CAACG,YAAY,KAAK,QAAQ;AACpE;AAEA,OAAO,SAASC,aAAaA,CAACR,CAAM,EAAoB;EACtD,OAAO,OAAOA,CAAC,KAAK,QAAQ,IACvB,MAAM,IAAIA,CAAC,IACX,OAAOA,CAAC,CAACS,IAAI,KAAK,QAAQ,IAC1B,MAAM,IAAIT,CAAC,IACX,OAAOA,CAAC,CAACU,IAAI,KAAK,QAAQ,IAC1BV,CAAC,CAACU,IAAI,YAAYC,IAAI;AAC7B","ignoreList":[]}
|