@osdk/client 2.2.0-beta.11 → 2.2.0-beta.13
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 +29 -0
- package/build/browser/actions/actions.test.js +1 -1
- package/build/browser/actions/actions.test.js.map +1 -1
- package/build/browser/index.js +1 -1
- package/build/browser/index.js.map +1 -1
- package/build/browser/logger/TestLogger.js +59 -0
- package/build/browser/logger/TestLogger.js.map +1 -0
- package/build/browser/object/attachment.test.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js +4 -0
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js +44 -33
- package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects.js +4 -9
- package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects.test.js +29 -25
- package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
- package/build/browser/object/fetchPage.js +4 -3
- package/build/browser/object/fetchPage.js.map +1 -1
- package/build/browser/object/object.test.js +17 -1
- package/build/browser/object/object.test.js.map +1 -1
- package/build/browser/object/timeseries.test.js.map +1 -1
- package/build/browser/objectSet/ObjectSet.test.js +98 -1
- package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.js +2 -2
- package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +2 -3
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
- package/build/browser/objectSet/createObjectSet.js +1 -0
- package/build/browser/objectSet/createObjectSet.js.map +1 -1
- package/build/browser/observable/internal/ActionApplication.js +4 -4
- package/build/browser/observable/internal/ActionApplication.js.map +1 -1
- package/build/browser/observable/internal/ObjectQuery.js +1 -1
- package/build/browser/observable/internal/ObjectQuery.js.map +1 -1
- package/build/browser/observable/internal/OptimisticJob.js +1 -1
- package/build/browser/observable/internal/OptimisticJob.js.map +1 -1
- package/build/browser/observable/internal/Store.js +2 -2
- package/build/browser/observable/internal/Store.js.map +1 -1
- package/build/browser/observable/internal/Store.test.js +173 -216
- package/build/browser/observable/internal/Store.test.js.map +1 -1
- package/build/browser/public/unstable-do-not-use.js +1 -0
- package/build/browser/public/unstable-do-not-use.js.map +1 -1
- package/build/browser/public-utils/osdkConfig.js +49 -0
- package/build/browser/public-utils/osdkConfig.js.map +1 -0
- package/build/browser/{object/createObjectSpecifierFromPrimaryKey.js → public-utils/vite-env.d.ts} +2 -3
- package/build/browser/queries/applyQuery.js +3 -3
- package/build/browser/queries/applyQuery.js.map +1 -1
- package/build/browser/util/UserAgent.js +1 -1
- package/build/browser/util/extractRdpDefinition.js +87 -0
- package/build/browser/util/extractRdpDefinition.js.map +1 -0
- package/build/browser/util/extractRdpDefinition.test.js +144 -0
- package/build/browser/util/extractRdpDefinition.test.js.map +1 -0
- package/build/browser/util/objectSpecifierUtils.js +48 -0
- package/build/browser/util/objectSpecifierUtils.js.map +1 -0
- package/build/browser/util/objectSpecifierUtils.test.js +42 -0
- package/build/browser/util/objectSpecifierUtils.test.js.map +1 -0
- package/build/browser/util/toDataValueQueries.js +2 -4
- package/build/browser/util/toDataValueQueries.js.map +1 -1
- package/build/cjs/{chunk-EY52J5Z4.cjs → chunk-USHAX4EP.cjs} +89 -17
- package/build/cjs/chunk-USHAX4EP.cjs.map +1 -0
- package/build/cjs/{chunk-MCQVHD2F.cjs → chunk-VT3UM6EP.cjs} +17 -16
- package/build/cjs/chunk-VT3UM6EP.cjs.map +1 -0
- package/build/cjs/index.cjs +104 -95
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +11 -3
- package/build/cjs/public/internal.cjs +6 -7
- package/build/cjs/public/internal.cjs.map +1 -1
- package/build/cjs/public/unstable-do-not-use.cjs +103 -66
- package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
- package/build/cjs/public/unstable-do-not-use.d.cts +10 -1
- package/build/esm/actions/actions.test.js +1 -1
- package/build/esm/actions/actions.test.js.map +1 -1
- package/build/esm/index.js +1 -1
- package/build/esm/index.js.map +1 -1
- package/build/esm/logger/TestLogger.js +59 -0
- package/build/esm/logger/TestLogger.js.map +1 -0
- package/build/esm/object/attachment.test.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js +4 -0
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js +44 -33
- package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects.js +4 -9
- package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects.test.js +29 -25
- package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
- package/build/esm/object/fetchPage.js +4 -3
- package/build/esm/object/fetchPage.js.map +1 -1
- package/build/esm/object/object.test.js +17 -1
- package/build/esm/object/object.test.js.map +1 -1
- package/build/esm/object/timeseries.test.js.map +1 -1
- package/build/esm/objectSet/ObjectSet.test.js +98 -1
- package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.js +2 -2
- package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +2 -3
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
- package/build/esm/objectSet/createObjectSet.js +1 -0
- package/build/esm/objectSet/createObjectSet.js.map +1 -1
- package/build/esm/observable/internal/ActionApplication.js +4 -4
- package/build/esm/observable/internal/ActionApplication.js.map +1 -1
- package/build/esm/observable/internal/ObjectQuery.js +1 -1
- package/build/esm/observable/internal/ObjectQuery.js.map +1 -1
- package/build/esm/observable/internal/OptimisticJob.js +1 -1
- package/build/esm/observable/internal/OptimisticJob.js.map +1 -1
- package/build/esm/observable/internal/Store.js +2 -2
- package/build/esm/observable/internal/Store.js.map +1 -1
- package/build/esm/observable/internal/Store.test.js +173 -216
- package/build/esm/observable/internal/Store.test.js.map +1 -1
- package/build/esm/public/unstable-do-not-use.js +1 -0
- package/build/esm/public/unstable-do-not-use.js.map +1 -1
- package/build/esm/public-utils/osdkConfig.js +49 -0
- package/build/esm/public-utils/osdkConfig.js.map +1 -0
- package/build/esm/{object/createObjectSpecifierFromPrimaryKey.js → public-utils/vite-env.d.ts} +2 -3
- package/build/esm/queries/applyQuery.js +3 -3
- package/build/esm/queries/applyQuery.js.map +1 -1
- package/build/esm/util/UserAgent.js +1 -1
- package/build/esm/util/extractRdpDefinition.js +87 -0
- package/build/esm/util/extractRdpDefinition.js.map +1 -0
- package/build/esm/util/extractRdpDefinition.test.js +144 -0
- package/build/esm/util/extractRdpDefinition.test.js.map +1 -0
- package/build/esm/util/objectSpecifierUtils.js +48 -0
- package/build/esm/util/objectSpecifierUtils.js.map +1 -0
- package/build/esm/util/objectSpecifierUtils.test.js +42 -0
- package/build/esm/util/objectSpecifierUtils.test.js.map +1 -0
- package/build/esm/util/toDataValueQueries.js +2 -4
- package/build/esm/util/toDataValueQueries.js.map +1 -1
- package/build/types/index.d.ts +1 -1
- package/build/types/index.d.ts.map +1 -1
- package/build/types/logger/TestLogger.d.ts +14 -0
- package/build/types/logger/TestLogger.d.ts.map +1 -0
- package/build/types/object/convertWireToOsdkObjects.d.ts +4 -4
- package/build/types/object/convertWireToOsdkObjects.d.ts.map +1 -1
- package/build/types/object/fetchPage.d.ts.map +1 -1
- package/build/types/object/object.test.d.ts.map +1 -1
- package/build/types/objectSet/ObjectSet.test.d.ts.map +1 -1
- package/build/types/observable/internal/ActionApplication.d.ts +2 -2
- package/build/types/observable/internal/ActionApplication.d.ts.map +1 -1
- package/build/types/observable/internal/OptimisticJob.d.ts.map +1 -1
- package/build/types/observable/internal/Store.d.ts +2 -2
- package/build/types/observable/internal/Store.d.ts.map +1 -1
- package/build/types/public/unstable-do-not-use.d.ts +2 -0
- package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
- package/build/types/public-utils/osdkConfig.d.ts +8 -0
- package/build/types/public-utils/osdkConfig.d.ts.map +1 -0
- package/build/types/public-utils/vite-env.d.d.ts +3 -0
- package/build/types/public-utils/vite-env.d.d.ts.map +1 -0
- package/build/types/queries/applyQuery.d.ts +2 -2
- package/build/types/queries/applyQuery.d.ts.map +1 -1
- package/build/types/util/extractRdpDefinition.d.ts +4 -0
- package/build/types/util/extractRdpDefinition.d.ts.map +1 -0
- package/build/types/util/extractRdpDefinition.test.d.ts +1 -0
- package/build/types/util/extractRdpDefinition.test.d.ts.map +1 -0
- package/build/types/util/objectSpecifierUtils.d.ts +24 -0
- package/build/types/util/objectSpecifierUtils.d.ts.map +1 -0
- package/build/types/util/objectSpecifierUtils.test.d.ts +1 -0
- package/build/types/util/objectSpecifierUtils.test.d.ts.map +1 -0
- package/package.json +11 -11
- package/build/browser/object/createObjectSpecifierFromPrimaryKey.js.map +0 -1
- package/build/cjs/chunk-EY52J5Z4.cjs.map +0 -1
- package/build/cjs/chunk-MCQVHD2F.cjs.map +0 -1
- package/build/cjs/chunk-Q7SFCCGT.cjs +0 -11
- package/build/cjs/chunk-Q7SFCCGT.cjs.map +0 -1
- package/build/cjs/graphql-RGM5SRWV.cjs +0 -10532
- package/build/cjs/graphql-RGM5SRWV.cjs.map +0 -1
- package/build/esm/object/createObjectSpecifierFromPrimaryKey.js.map +0 -1
- package/build/types/object/createObjectSpecifierFromPrimaryKey.d.ts +0 -2
- package/build/types/object/createObjectSpecifierFromPrimaryKey.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchPage.js","names":["OntologiesV2","addUserAgentAndRequestContextHeaders","resolveBaseObjectSetType","augment","type","properties","apiName","objectSetToSearchJsonV2","objectSet","expectedApiName","existingWhere","undefined","objectType","Error","interfaceType","where","value","resolveInterfaceObjectSet","interfaceTypeApiName","args","$includeAllBaseObjectProperties","objectSets","includeAllBaseObjectProperties","fetchInterfacePage","client","$__UNSTABLE_useOldInterfaceApis","result","OntologyInterfaces","search","ontologyRid","applyFetchArgs","augmentedProperties","augmentedSharedPropertyTypes","otherInterfaceTypes","selectedObjectTypes","selectedSharedPropertyTypes","$select","preview","data","objectFactory","$includeRid","OntologyObjectSets","loadMultipleObjectTypes","select","excludeRid","Promise","resolve","objectFactory2","interfaceToObjectTypeMappings","nextPageToken","totalCount","fetchPageInternal","fetchObjectPage","fetchPageWithErrorsInternal","e","error","fetchPage","fetchPageWithErrors","body","$nextPageToken","pageToken","$pageSize","pageSize","$orderBy","orderBy","fields","Object","entries","map","field","direction","r","load"],"sources":["fetchPage.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n Augment,\n Augments,\n FetchPageArgs,\n FetchPageResult,\n InterfaceDefinition,\n NullabilityAdherence,\n ObjectOrInterfaceDefinition,\n ObjectTypeDefinition,\n PropertyKeys,\n Result,\n} from \"@osdk/api\";\nimport type { PageSize, PageToken } from \"@osdk/foundry.core\";\nimport type {\n LoadObjectSetRequestV2,\n LoadObjectSetV2MultipleObjectTypesRequest,\n ObjectSet,\n OntologyObjectV2,\n SearchJsonQueryV2,\n SearchObjectsForInterfaceRequest,\n SearchOrderByV2,\n} from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport { resolveBaseObjectSetType } from \"../util/objectSetUtils.js\";\n\nexport function augment<\n Q extends ObjectOrInterfaceDefinition,\n T extends PropertyKeys<Q>,\n>(\n type: Q,\n ...properties: T[]\n): Augment<Q, T> {\n return { [type.apiName]: properties } as any;\n}\n\n/** @internal */\nexport function objectSetToSearchJsonV2(\n objectSet: ObjectSet,\n expectedApiName: string,\n existingWhere: SearchJsonQueryV2 | undefined = undefined,\n): SearchJsonQueryV2 | undefined {\n if (objectSet.type === \"base\" || objectSet.type === \"interfaceBase\") {\n if (objectSet.type === \"base\" && objectSet.objectType !== expectedApiName) {\n throw new Error(\n `Expected objectSet.objectType to be ${expectedApiName}, but got ${objectSet.objectType}`,\n );\n }\n if (\n objectSet.type === \"interfaceBase\"\n && objectSet.interfaceType !== expectedApiName\n ) {\n throw new Error(\n `Expected objectSet.objectType to be ${expectedApiName}, but got ${objectSet.interfaceType}`,\n );\n }\n\n return existingWhere;\n }\n\n if (objectSet.type === \"filter\") {\n return objectSetToSearchJsonV2(\n objectSet.objectSet,\n expectedApiName,\n existingWhere == null ? objectSet.where : {\n type: \"and\",\n value: [existingWhere, objectSet.where],\n },\n );\n }\n\n throw new Error(`Unsupported objectSet type: ${objectSet.type}`);\n}\n\n/** @internal */\nexport function resolveInterfaceObjectSet(\n objectSet: ObjectSet,\n interfaceTypeApiName: string,\n args: FetchPageArgs<any, any, any, any, any, any>,\n): ObjectSet {\n return args?.$includeAllBaseObjectProperties\n ? {\n type: \"intersect\",\n objectSets: [objectSet, {\n type: \"interfaceBase\",\n interfaceType: interfaceTypeApiName,\n includeAllBaseObjectProperties: true,\n }],\n }\n : objectSet;\n}\n\nasync function fetchInterfacePage<\n Q extends InterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n interfaceType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet,\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n if (args.$__UNSTABLE_useOldInterfaceApis) {\n const result = await OntologiesV2.OntologyInterfaces\n .search(\n addUserAgentAndRequestContextHeaders(client, interfaceType),\n await client.ontologyRid,\n interfaceType.apiName,\n applyFetchArgs<SearchObjectsForInterfaceRequest>(args, {\n augmentedProperties: {},\n augmentedSharedPropertyTypes: {},\n otherInterfaceTypes: [],\n selectedObjectTypes: [],\n selectedSharedPropertyTypes: args.$select as undefined | string[]\n ?? [],\n where: objectSetToSearchJsonV2(objectSet, interfaceType.apiName),\n }),\n { preview: true },\n );\n\n result.data = await client.objectFactory(\n client,\n result.data as OntologyObjectV2[], // drop readonly\n interfaceType.apiName,\n !args.$includeRid,\n );\n return result as any;\n }\n const result = await OntologiesV2.OntologyObjectSets.loadMultipleObjectTypes(\n addUserAgentAndRequestContextHeaders(client, interfaceType),\n await client.ontologyRid,\n applyFetchArgs<LoadObjectSetV2MultipleObjectTypesRequest>(args, {\n objectSet: resolveInterfaceObjectSet(\n objectSet,\n interfaceType.apiName,\n args,\n ),\n select: ((args?.$select as string[] | undefined) ?? []),\n excludeRid: !args?.$includeRid,\n }),\n { preview: true },\n );\n return Promise.resolve({\n data: await client.objectFactory2(\n client,\n result.data,\n interfaceType.apiName,\n !args.$includeRid,\n args.$select,\n false,\n result.interfaceToObjectTypeMappings,\n ),\n nextPageToken: result.nextPageToken,\n totalCount: result.totalCount,\n }) as unknown as Promise<FetchPageResult<Q, L, R, S, T>>;\n}\n\n/** @internal */\nexport async function fetchPageInternal<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n A extends Augments,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n objectSet: ObjectSet,\n args: FetchPageArgs<Q, L, R, A, S, T> = {},\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n if (objectType.type === \"interface\") {\n return await fetchInterfacePage(\n client,\n objectType,\n args,\n objectSet,\n ) as any; // fixme\n } else {\n return await fetchObjectPage(\n client,\n objectType,\n args,\n objectSet,\n ) as any; // fixme\n }\n}\n\n/** @internal */\nexport async function fetchPageWithErrorsInternal<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n A extends Augments,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n objectSet: ObjectSet,\n args: FetchPageArgs<Q, L, R, A, S, T> = {},\n): Promise<Result<FetchPageResult<Q, L, R, S, T>>> {\n try {\n const result = await fetchPageInternal(client, objectType, objectSet, args);\n return { value: result };\n } catch (e) {\n if (e instanceof Error) {\n return { error: e };\n }\n return { error: e as Error };\n }\n}\n\n/**\n * @param client\n * @param objectType\n * @param args\n * @param objectSet\n * @returns\n * @internal\n */\nexport async function fetchPage<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet = resolveBaseObjectSetType(objectType),\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n return fetchPageInternal(client, objectType, objectSet, args);\n}\n\n/** @internal */\nexport async function fetchPageWithErrors<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet = resolveBaseObjectSetType(objectType),\n): Promise<Result<FetchPageResult<Q, L, R, S, T>>> {\n return fetchPageWithErrorsInternal(client, objectType, objectSet, args);\n}\n\nfunction applyFetchArgs<\n X extends {\n orderBy?: SearchOrderByV2;\n pageToken?: PageToken;\n pageSize?: PageSize;\n },\n>(\n args: FetchPageArgs<any, any, any, any, any, any>,\n body: X,\n): X {\n if (args?.$nextPageToken) {\n body.pageToken = args.$nextPageToken;\n }\n\n if (args?.$pageSize != null) {\n body.pageSize = args.$pageSize;\n }\n\n if (args?.$orderBy != null) {\n body.orderBy = {\n fields: Object.entries(args.$orderBy).map(([field, direction]) => ({\n field,\n direction,\n })),\n };\n }\n\n return body;\n}\n\n/** @internal */\nexport async function fetchObjectPage<\n Q extends ObjectTypeDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, Augments, S, T>,\n objectSet: ObjectSet,\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n const r = await OntologiesV2.OntologyObjectSets.load(\n addUserAgentAndRequestContextHeaders(client, objectType),\n await client.ontologyRid,\n applyFetchArgs<LoadObjectSetRequestV2>(args, {\n objectSet,\n // We have to do the following case because LoadObjectSetRequestV2 isn't readonly\n select: ((args?.$select as string[] | undefined) ?? []), // FIXME?\n excludeRid: !args?.$includeRid,\n }),\n );\n\n return Promise.resolve({\n data: await client.objectFactory(\n client,\n r.data as OntologyObjectV2[],\n undefined,\n undefined,\n args.$select,\n ),\n nextPageToken: r.nextPageToken,\n totalCount: r.totalCount,\n }) as unknown as Promise<FetchPageResult<Q, L, R, S, T>>;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"fetchPage.js","names":["OntologiesV2","addUserAgentAndRequestContextHeaders","extractRdpDefinition","resolveBaseObjectSetType","augment","type","properties","apiName","objectSetToSearchJsonV2","objectSet","expectedApiName","existingWhere","undefined","objectType","Error","interfaceType","where","value","resolveInterfaceObjectSet","interfaceTypeApiName","args","$includeAllBaseObjectProperties","objectSets","includeAllBaseObjectProperties","fetchInterfacePage","client","$__UNSTABLE_useOldInterfaceApis","result","OntologyInterfaces","search","ontologyRid","applyFetchArgs","augmentedProperties","augmentedSharedPropertyTypes","otherInterfaceTypes","selectedObjectTypes","selectedSharedPropertyTypes","$select","preview","data","objectFactory","$includeRid","OntologyObjectSets","loadMultipleObjectTypes","select","excludeRid","Promise","resolve","objectFactory2","interfaceToObjectTypeMappings","nextPageToken","totalCount","fetchPageInternal","fetchObjectPage","fetchPageWithErrorsInternal","e","error","fetchPage","fetchPageWithErrors","body","$nextPageToken","pageToken","$pageSize","pageSize","$orderBy","orderBy","fields","Object","entries","map","field","direction","r","load"],"sources":["fetchPage.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n Augment,\n Augments,\n FetchPageArgs,\n FetchPageResult,\n InterfaceDefinition,\n NullabilityAdherence,\n ObjectOrInterfaceDefinition,\n ObjectTypeDefinition,\n PropertyKeys,\n Result,\n} from \"@osdk/api\";\nimport type { PageSize, PageToken } from \"@osdk/foundry.core\";\nimport type {\n LoadObjectSetRequestV2,\n LoadObjectSetV2MultipleObjectTypesRequest,\n ObjectSet,\n OntologyObjectV2,\n SearchJsonQueryV2,\n SearchObjectsForInterfaceRequest,\n SearchOrderByV2,\n} from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport { extractRdpDefinition } from \"../util/extractRdpDefinition.js\";\nimport { resolveBaseObjectSetType } from \"../util/objectSetUtils.js\";\n\nexport function augment<\n Q extends ObjectOrInterfaceDefinition,\n T extends PropertyKeys<Q>,\n>(\n type: Q,\n ...properties: T[]\n): Augment<Q, T> {\n return { [type.apiName]: properties } as any;\n}\n\n/** @internal */\nexport function objectSetToSearchJsonV2(\n objectSet: ObjectSet,\n expectedApiName: string,\n existingWhere: SearchJsonQueryV2 | undefined = undefined,\n): SearchJsonQueryV2 | undefined {\n if (objectSet.type === \"base\" || objectSet.type === \"interfaceBase\") {\n if (objectSet.type === \"base\" && objectSet.objectType !== expectedApiName) {\n throw new Error(\n `Expected objectSet.objectType to be ${expectedApiName}, but got ${objectSet.objectType}`,\n );\n }\n if (\n objectSet.type === \"interfaceBase\"\n && objectSet.interfaceType !== expectedApiName\n ) {\n throw new Error(\n `Expected objectSet.objectType to be ${expectedApiName}, but got ${objectSet.interfaceType}`,\n );\n }\n\n return existingWhere;\n }\n\n if (objectSet.type === \"filter\") {\n return objectSetToSearchJsonV2(\n objectSet.objectSet,\n expectedApiName,\n existingWhere == null ? objectSet.where : {\n type: \"and\",\n value: [existingWhere, objectSet.where],\n },\n );\n }\n\n throw new Error(`Unsupported objectSet type: ${objectSet.type}`);\n}\n\n/** @internal */\nexport function resolveInterfaceObjectSet(\n objectSet: ObjectSet,\n interfaceTypeApiName: string,\n args: FetchPageArgs<any, any, any, any, any, any>,\n): ObjectSet {\n return args?.$includeAllBaseObjectProperties\n ? {\n type: \"intersect\",\n objectSets: [objectSet, {\n type: \"interfaceBase\",\n interfaceType: interfaceTypeApiName,\n includeAllBaseObjectProperties: true,\n }],\n }\n : objectSet;\n}\n\nasync function fetchInterfacePage<\n Q extends InterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n interfaceType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet,\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n if (args.$__UNSTABLE_useOldInterfaceApis) {\n const result = await OntologiesV2.OntologyInterfaces\n .search(\n addUserAgentAndRequestContextHeaders(client, interfaceType),\n await client.ontologyRid,\n interfaceType.apiName,\n applyFetchArgs<SearchObjectsForInterfaceRequest>(args, {\n augmentedProperties: {},\n augmentedSharedPropertyTypes: {},\n otherInterfaceTypes: [],\n selectedObjectTypes: [],\n selectedSharedPropertyTypes: args.$select as undefined | string[]\n ?? [],\n where: objectSetToSearchJsonV2(objectSet, interfaceType.apiName),\n }),\n { preview: true },\n );\n\n result.data = await client.objectFactory(\n client,\n result.data as OntologyObjectV2[], // drop readonly\n interfaceType.apiName,\n !args.$includeRid,\n await extractRdpDefinition(client, objectSet, interfaceType.apiName),\n );\n return result as any;\n }\n const result = await OntologiesV2.OntologyObjectSets.loadMultipleObjectTypes(\n addUserAgentAndRequestContextHeaders(client, interfaceType),\n await client.ontologyRid,\n applyFetchArgs<LoadObjectSetV2MultipleObjectTypesRequest>(args, {\n objectSet: resolveInterfaceObjectSet(\n objectSet,\n interfaceType.apiName,\n args,\n ),\n select: ((args?.$select as string[] | undefined) ?? []),\n excludeRid: !args?.$includeRid,\n }),\n { preview: true },\n );\n return Promise.resolve({\n data: await client.objectFactory2(\n client,\n result.data,\n interfaceType.apiName,\n {},\n !args.$includeRid,\n args.$select,\n false,\n result.interfaceToObjectTypeMappings,\n ),\n nextPageToken: result.nextPageToken,\n totalCount: result.totalCount,\n }) as unknown as Promise<FetchPageResult<Q, L, R, S, T>>;\n}\n\n/** @internal */\nexport async function fetchPageInternal<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n A extends Augments,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n objectSet: ObjectSet,\n args: FetchPageArgs<Q, L, R, A, S, T> = {},\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n if (objectType.type === \"interface\") {\n return await fetchInterfacePage(\n client,\n objectType,\n args,\n objectSet,\n ) as any; // fixme\n } else {\n return await fetchObjectPage(\n client,\n objectType,\n args,\n objectSet,\n ) as any; // fixme\n }\n}\n\n/** @internal */\nexport async function fetchPageWithErrorsInternal<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n A extends Augments,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n objectSet: ObjectSet,\n args: FetchPageArgs<Q, L, R, A, S, T> = {},\n): Promise<Result<FetchPageResult<Q, L, R, S, T>>> {\n try {\n const result = await fetchPageInternal(client, objectType, objectSet, args);\n return { value: result };\n } catch (e) {\n if (e instanceof Error) {\n return { error: e };\n }\n return { error: e as Error };\n }\n}\n\n/**\n * @param client\n * @param objectType\n * @param args\n * @param objectSet\n * @returns\n * @internal\n */\nexport async function fetchPage<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet = resolveBaseObjectSetType(objectType),\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n return fetchPageInternal(client, objectType, objectSet, args);\n}\n\n/** @internal */\nexport async function fetchPageWithErrors<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet = resolveBaseObjectSetType(objectType),\n): Promise<Result<FetchPageResult<Q, L, R, S, T>>> {\n return fetchPageWithErrorsInternal(client, objectType, objectSet, args);\n}\n\nfunction applyFetchArgs<\n X extends {\n orderBy?: SearchOrderByV2;\n pageToken?: PageToken;\n pageSize?: PageSize;\n },\n>(\n args: FetchPageArgs<any, any, any, any, any, any>,\n body: X,\n): X {\n if (args?.$nextPageToken) {\n body.pageToken = args.$nextPageToken;\n }\n\n if (args?.$pageSize != null) {\n body.pageSize = args.$pageSize;\n }\n\n if (args?.$orderBy != null) {\n body.orderBy = {\n fields: Object.entries(args.$orderBy).map(([field, direction]) => ({\n field,\n direction,\n })),\n };\n }\n\n return body;\n}\n\n/** @internal */\nexport async function fetchObjectPage<\n Q extends ObjectTypeDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, Augments, S, T>,\n objectSet: ObjectSet,\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n const r = await OntologiesV2.OntologyObjectSets.load(\n addUserAgentAndRequestContextHeaders(client, objectType),\n await client.ontologyRid,\n applyFetchArgs<LoadObjectSetRequestV2>(args, {\n objectSet,\n // We have to do the following case because LoadObjectSetRequestV2 isn't readonly\n select: ((args?.$select as string[] | undefined) ?? []), // FIXME?\n excludeRid: !args?.$includeRid,\n }),\n );\n\n return Promise.resolve({\n data: await client.objectFactory(\n client,\n r.data as OntologyObjectV2[],\n undefined,\n undefined,\n await extractRdpDefinition(client, objectSet, objectType.apiName),\n args.$select,\n ),\n nextPageToken: r.nextPageToken,\n totalCount: r.totalCount,\n }) as unknown as Promise<FetchPageResult<Q, L, R, S, T>>;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import { $Objects, Employee } from "@osdk/client.test.ontology";
|
|
17
|
+
import { $Objects, Employee, FooInterface } from "@osdk/client.test.ontology";
|
|
18
18
|
import { LegacyFauxFoundry, startNodeApiServer, stubData, withoutRid } from "@osdk/shared.test";
|
|
19
19
|
import { beforeAll, describe, expect, expectTypeOf, it } from "vitest";
|
|
20
20
|
import { additionalContext } from "../Client.js";
|
|
@@ -400,6 +400,7 @@ describe.each(["https://stack.palantir.com", "https://stack.palantirCustom.com/f
|
|
|
400
400
|
});
|
|
401
401
|
expect(clonedInterface).toMatchObject({
|
|
402
402
|
"$apiName": "FooInterface",
|
|
403
|
+
"$objectSpecifier": "Employee:50031",
|
|
403
404
|
"$objectType": "Employee",
|
|
404
405
|
"$primaryKey": 50031,
|
|
405
406
|
"$title": "John Adams",
|
|
@@ -407,6 +408,7 @@ describe.each(["https://stack.palantir.com", "https://stack.palantirCustom.com/f
|
|
|
407
408
|
});
|
|
408
409
|
expect(clonedInterface.$as("Employee")).toMatchObject({
|
|
409
410
|
"$apiName": "Employee",
|
|
411
|
+
"$objectSpecifier": "Employee:50031",
|
|
410
412
|
"$objectType": "Employee",
|
|
411
413
|
"$primaryKey": 50031,
|
|
412
414
|
"$title": "John Adams",
|
|
@@ -430,6 +432,20 @@ describe.each(["https://stack.palantir.com", "https://stack.palantirCustom.com/f
|
|
|
430
432
|
});
|
|
431
433
|
});
|
|
432
434
|
});
|
|
435
|
+
describe("objectSpecifier", () => {
|
|
436
|
+
it("returns the object specifier for a loaded object", async () => {
|
|
437
|
+
const result = await client(Employee).where({
|
|
438
|
+
employeeId: stubData.employee1.employeeId
|
|
439
|
+
}).fetchPage();
|
|
440
|
+
const employee = result.data[0];
|
|
441
|
+
expect(employee.$objectSpecifier).toBe("Employee:50030");
|
|
442
|
+
});
|
|
443
|
+
it("returns the object specifier for a loaded interface object", async () => {
|
|
444
|
+
const result = await client(FooInterface).fetchPage();
|
|
445
|
+
const object = result.data[0];
|
|
446
|
+
expect(object.$objectSpecifier).toBe("Employee:50030");
|
|
447
|
+
});
|
|
448
|
+
});
|
|
433
449
|
});
|
|
434
450
|
export async function shouldError(client) {
|
|
435
451
|
// @ts-expect-error
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.test.js","names":["$Objects","Employee","LegacyFauxFoundry","startNodeApiServer","stubData","withoutRid","beforeAll","describe","expect","expectTypeOf","it","additionalContext","createClient","InterfaceDefinitions","createOsdkObject","asV2Object","o","includeRid","$apiName","__apiName","$objectType","$primaryKey","__primaryKey","$title","__title","each","baseUrl","client","apiServer","close","result","where","employeeId","employee1","fetchPage","employee","data","JSON","stringify","toBeDefined","toMatchObject","anything","startDate","Object","keys","$link","lead","fetchOne","$select","toBe","employee2","employeeStatus","toBeUndefined","employees","$and","peepsResult","peeps","toHaveLength","nextPageToken","office","peep","$includeRid","leadRid","$rid","objects","sort","toStrictEqual","updatedEmployee","mergedEmployee","$clone","toEqualTypeOf","undefined","toMatchTypeOf","toThrow","interfaceDef","apiName","displayName","links","properties","type","rid","implements","fooInterfaceOsdkDef","EmployeeFetchedMetadata","interfaceMap","inverseInterfaceMap","def","titleProperty","pluralDisplayName","status","employeeOsdkObject","personInterfaceObject","$as","clonedInterface","loadedInterfaceObject","toThrowError","shouldError","shouldError2","shouldCompile_client_fetchOne_old_select","shouldCompile_unstableClient_fetchOne_old_select","shouldCompile_client_fetchOne_new_select","shouldCompile_unstableClient_fetchOne_new_select","shouldCompile_client_fetchOne_old_noArgs","shouldCompile_unstableClient_fetchOne_noArgs"],"sources":["object.test.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n InterfaceDefinition,\n InterfaceMetadata,\n Osdk,\n PropertyKeys,\n} from \"@osdk/api\";\nimport { $Objects, Employee } from \"@osdk/client.test.ontology\";\nimport {\n LegacyFauxFoundry,\n startNodeApiServer,\n stubData,\n withoutRid,\n} from \"@osdk/shared.test\";\nimport { beforeAll, describe, expect, expectTypeOf, it } from \"vitest\";\nimport { additionalContext, type Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\nimport type {\n FetchedObjectTypeDefinition,\n} from \"../ontology/OntologyProvider.js\";\nimport { InterfaceDefinitions } from \"../ontology/OntologyProvider.js\";\nimport { createOsdkObject } from \"./convertWireToOsdkObjects/createOsdkObject.js\";\n\nfunction asV2Object(o: any, includeRid?: boolean) {\n o = includeRid ? { ...o } : withoutRid(o);\n o.$apiName = o.__apiName;\n o.$objectType = o.__apiName;\n o.$primaryKey = o.__primaryKey;\n o.$title = o.__title;\n delete o.__apiName;\n delete o.__primaryKey;\n delete o.__title;\n return o;\n}\n\ndescribe.each([\n \"https://stack.palantir.com\",\n \"https://stack.palantirCustom.com/foo/first/someStuff\",\n])(\"OsdkObject for %s\", (baseUrl) => {\n let client: Client;\n\n beforeAll(async () => {\n let apiServer;\n\n ({ client, apiServer } = startNodeApiServer(\n new LegacyFauxFoundry(baseUrl),\n createClient,\n ));\n\n return () => {\n apiServer.close();\n };\n });\n\n describe(\"link\", () => {\n it(\"loads an employee\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage();\n\n // we should get the employee we requested\n const employee = result.data[0];\n expect(JSON.stringify(employee)).toBeDefined();\n expect(employee).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50030,\n \"class\": \"Red\",\n \"employeeId\": 50030,\n \"employeeStatus\": expect.anything(),\n \"fullName\": \"John Doe\",\n \"office\": \"NYC\",\n \"startDate\": \"2019-01-01\",\n });\n\n employee.startDate;\n\n // it should have the prototype that we assign at hydration time\n expect(Object.keys(employee.$link.lead)).toBeDefined();\n });\n it(\"loads an employee with custom client\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage();\n\n // we should get the employee we requested\n const employee = result.data[0];\n expect(JSON.stringify(employee)).toBeDefined();\n expect(employee).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50030,\n \"class\": \"Red\",\n \"employeeId\": 50030,\n \"employeeStatus\": expect.anything(),\n \"fullName\": \"John Doe\",\n \"office\": \"NYC\",\n \"startDate\": \"2019-01-01\",\n });\n\n employee.startDate;\n\n // it should have the prototype that we assign at hydration time\n expect(Object.keys(employee.$link.lead)).toBeDefined();\n });\n\n it(\"traverses the link from an employee to their lead\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage();\n const employee = result.data[0];\n\n const lead = await employee.$link.lead.fetchOne({\n $select: [\"employeeId\"],\n });\n expect(lead.employeeId).toBe(stubData.employee2.employeeId);\n\n // ensure that the select was performed\n expect(lead.employeeId).toBeDefined();\n expect((lead as any).employeeStatus).toBeUndefined();\n });\n\n it(\"traverses the link from an lead to their peeps\", async () => {\n // slightly weird request here to hit the existing mocks for employee2\n const employees = await client(Employee).where({\n $and: [\n { \"employeeId\": { \"$gt\": 50030 } },\n { \"employeeId\": { \"$lt\": 50032 } },\n ],\n }).fetchPage();\n const lead = employees.data[0];\n expect(lead).toBeDefined();\n\n const peepsResult = await lead.$link.peeps.fetchPage({\n $select: [\"fullName\", \"employeeId\"],\n });\n expect(peepsResult.data).toHaveLength(2);\n expect(peepsResult.nextPageToken).toBeUndefined();\n\n // ensure that the select was performed\n expect(peepsResult.data[0]!.employeeId).toBeDefined();\n expect((peepsResult.data[0] as any).office).toBeUndefined();\n });\n\n it(\"traverses the link from an lead to their peep by primaryKey with fetchOne\", async () => {\n // slightly weird request here to hit the existing mocks for employee2\n const employees = await client(Employee).where({\n $and: [\n { \"employeeId\": { \"$gt\": 50030 } },\n { \"employeeId\": { \"$lt\": 50032 } },\n ],\n }).fetchPage();\n const lead = employees.data[0];\n expect(lead).toBeDefined();\n\n const peep = await lead.$link.peeps.fetchOne(\n stubData.employee1.employeeId,\n {\n $select: [\"employeeId\"],\n },\n );\n expect(peep).toBeDefined();\n\n // ensure that select worked\n expect(peep.employeeId).toBeDefined();\n expect((peep as any).employeeStatus).toBeUndefined();\n });\n it(\"gives $rid access when requested\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage(\n {\n $includeRid: true,\n },\n );\n const leadRid = result.data[0].$rid;\n expect(leadRid).toBeDefined();\n expect(leadRid).toBe(\n \"ri.phonograph2-objects.main.object.88a6fccb-f333-46d6-a07e-7725c5f18b61\",\n );\n });\n it(\"objects are enumerable in an sdk\", async () => {\n const objects = Object.keys($Objects);\n expect(objects.sort()).toStrictEqual([\n \"BgaoNflPlayer\",\n \"Employee\",\n \"ObjectWithTimestampPrimaryKey\",\n \"Office\",\n \"Person\",\n \"Task\",\n \"Todo\",\n \"equipment\",\n \"objectTypeWithAllPropertyTypes\",\n ].sort());\n });\n });\n describe(\"clone\", () => {\n let employee: Osdk.Instance<\n $Objects.Employee,\n never,\n PropertyKeys<$Objects.Employee>\n >;\n beforeAll(async () => {\n employee = (await client(Employee).where({\n employeeId: stubData.employee2.employeeId,\n }).fetchPage()).data[0];\n\n expect(employee).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Blue\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2012-02-12\",\n });\n });\n\n it(\"clones and updates an object with another osdk object\", async () => {\n const updatedEmployee = createOsdkObject(\n client[additionalContext],\n {\n \"apiName\": \"Employee\",\n \"primaryKeyType\": \"integer\",\n \"primaryKeyApiName\": \"employeeId\",\n \"properties\": {\n \"class\": { \"type\": \"string\" },\n \"employeeId\": { \"type\": \"integer\" },\n \"fullName\": { \"type\": \"string\" },\n \"office\": { \"type\": \"string\" },\n },\n } as any,\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Red\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n \"office\": \"NYC\",\n },\n ) as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\" | \"employeeId\" | \"fullName\" | \"office\"\n >;\n\n const mergedEmployee = employee.$clone(updatedEmployee);\n\n expectTypeOf(mergedEmployee).toEqualTypeOf(employee);\n\n expect(mergedEmployee).toMatchObject(\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Red\",\n \"employeeId\": 50031,\n \"employeeLocation\": {\n \"lastFetchedValue\": undefined,\n },\n \"employeeSensor\": {},\n \"employeeStatus\": {},\n \"fullName\": \"Jane Doe\",\n \"office\": \"NYC\",\n \"startDate\": \"2012-02-12\",\n },\n );\n });\n\n it(\"correctly scopes up with another OSDK object\", async () => {\n const firstEmployee = { $clone: () => {} } as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\"\n >;\n expectTypeOf(firstEmployee.$clone(employee)).toMatchTypeOf<\n Osdk.Instance<\n Employee,\n never,\n PropertyKeys<Employee>\n >\n >();\n });\n\n it(\"Correctly preserves keys from original and new with distinct property key sets\", async () => {\n const firstEmployee = { $clone: () => {} } as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\"\n >;\n expectTypeOf(\n firstEmployee.$clone({} as Osdk.Instance<Employee, never, \"office\">),\n ).toMatchTypeOf<\n Osdk.Instance<\n Employee,\n never,\n \"class\" | \"office\"\n >\n >();\n });\n\n it(\"clones and updates an object with a record\", async () => {\n const mergedEmployee = employee.$clone({\n \"class\": \"Green\",\n \"employeeId\": 50031,\n \"fullName\": \"John Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2019-01-01\",\n });\n\n expect(mergedEmployee).toMatchObject(\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"John Doe\",\n \"class\": \"Green\",\n \"employeeId\": 50031,\n \"employeeLocation\": {\n \"lastFetchedValue\": undefined,\n },\n \"employeeSensor\": {},\n \"employeeStatus\": {},\n \"fullName\": \"John Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2019-01-01\",\n },\n );\n });\n\n it(\"correctly scopes up with a record\", async () => {\n const firstEmployee = { $clone: () => {} } as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\"\n >;\n expectTypeOf(firstEmployee.$clone({\n \"class\": \"Green\",\n \"employeeId\": 50031,\n \"fullName\": \"John Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2019-01-01\",\n })).toMatchTypeOf<\n Osdk.Instance<\n Employee,\n never,\n \"class\" | \"employeeId\" | \"fullName\" | \"office\" | \"startDate\"\n >\n >();\n });\n\n it(\"correctly sets title\", async () => {\n const mergedEmployee = employee.$clone({\n \"fullName\": \"Brad Pitt\",\n });\n\n expect(mergedEmployee).toMatchObject(\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Brad Pitt\",\n \"class\": \"Blue\",\n \"employeeId\": 50031,\n \"employeeLocation\": {\n \"lastFetchedValue\": undefined,\n },\n \"employeeSensor\": {},\n \"employeeStatus\": {},\n \"fullName\": \"Brad Pitt\",\n \"office\": \"SEA\",\n \"startDate\": \"2012-02-12\",\n },\n );\n });\n\n it(\"is able to clone with nothing passed in\", async () => {\n expect(employee.$clone()).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Blue\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2012-02-12\",\n });\n });\n\n it(\"throws when merging objects with different primary keys\", async () => {\n expect(() =>\n employee.$clone({\n \"class\": \"Green\",\n \"employeeId\": 50035,\n })\n ).toThrow();\n });\n describe(\"interface\", () => {\n const interfaceDef = {\n apiName: \"FooInterface\",\n displayName: \"\",\n links: {},\n properties: {\n \"fooSpt\": {\n type: \"string\",\n },\n \"notImplementedFooSpt\": {\n type: \"string\",\n },\n },\n rid: \"\",\n type: \"interface\",\n implements: [],\n } satisfies InterfaceMetadata;\n\n const fooInterfaceOsdkDef = {\n apiName: \"FooInterface\",\n type: \"interface\",\n \"__DefinitionMetadata\": interfaceDef,\n } satisfies InterfaceDefinition;\n\n const EmployeeFetchedMetadata = {\n \"apiName\": \"Employee\",\n \"primaryKeyType\": \"integer\",\n \"primaryKeyApiName\": \"employeeId\",\n \"properties\": {\n \"employeeId\": { \"type\": \"integer\" },\n \"fullName\": { \"type\": \"string\" },\n },\n interfaceMap: {\n \"FooInterface\": {\n \"fooSpt\": \"fullName\",\n },\n },\n inverseInterfaceMap: {\n \"FooInterface\": {\n \"fullName\": \"fooSpt\",\n },\n },\n [InterfaceDefinitions]: {\n \"FooInterface\": { def: interfaceDef },\n },\n type: \"object\",\n titleProperty: \"fullName\",\n pluralDisplayName: \"\",\n status: \"ACTIVE\",\n displayName: \"\",\n links: {},\n rid: \"\",\n } satisfies FetchedObjectTypeDefinition;\n\n it(\"Correctly updates the interface and underlying object\", () => {\n const employeeOsdkObject = createOsdkObject(\n client[additionalContext],\n EmployeeFetchedMetadata,\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n },\n ) as unknown as Osdk.Instance<\n Employee,\n never,\n \"employeeId\" | \"fullName\"\n >;\n\n const personInterfaceObject = employeeOsdkObject.$as(\n fooInterfaceOsdkDef,\n );\n\n const clonedInterface = personInterfaceObject.$clone({\n \"fooSpt\": \"John Adams\",\n });\n\n expect(clonedInterface).toMatchObject(\n {\n \"$apiName\": \"FooInterface\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"John Adams\",\n \"fooSpt\": \"John Adams\",\n },\n );\n\n expect(clonedInterface.$as(\"Employee\")).toMatchObject(\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"John Adams\",\n \"employeeId\": 50031,\n \"fullName\": \"John Adams\",\n },\n );\n });\n it(\"Throws if updating an interface with a property not implemented by the underlying object type\", () => {\n const employeeOsdkObject = createOsdkObject(\n client[additionalContext],\n EmployeeFetchedMetadata,\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n },\n ) as unknown as Osdk.Instance<\n Employee,\n never,\n \"employeeId\" | \"fullName\"\n >;\n\n const loadedInterfaceObject = employeeOsdkObject.$as(interfaceDef);\n expect(() =>\n loadedInterfaceObject.$clone({\n \"notImplementedFooSpt\": \"John Adams\",\n })\n ).toThrowError(\n `Cannot clone interface with notImplementedFooSpt as property is not implemented by the underlying object type Employee`,\n );\n });\n });\n });\n});\n\nexport async function shouldError(client: Client): Promise<Osdk<Employee>> {\n // @ts-expect-error\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldError2(\n client: Client,\n): Promise<Employee.OsdkObject> {\n // @ts-expect-error\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_client_fetchOne_old_select(\n client: Client,\n): Promise<Osdk<Employee, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_unstableClient_fetchOne_old_select(\n client: Client,\n): Promise<Osdk<Employee, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_client_fetchOne_new_select(\n client: Client,\n): Promise<Employee.OsdkObject<never, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_unstableClient_fetchOne_new_select(\n client: Client,\n): Promise<Osdk<Employee, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_client_fetchOne_old_noArgs(\n client: Client,\n): Promise<Osdk<Employee>> {\n return client(Employee).fetchOne(1);\n}\n\nexport async function shouldCompile_unstableClient_fetchOne_noArgs(\n client: Client,\n): Promise<Osdk<Employee>> {\n return client(Employee).fetchOne(1);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,SAASA,QAAQ,EAAEC,QAAQ,QAAQ,4BAA4B;AAC/D,SACEC,iBAAiB,EACjBC,kBAAkB,EAClBC,QAAQ,EACRC,UAAU,QACL,mBAAmB;AAC1B,SAASC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,YAAY,EAAEC,EAAE,QAAQ,QAAQ;AACtE,SAASC,iBAAiB,QAAqB,cAAc;AAC7D,SAASC,YAAY,QAAQ,oBAAoB;AAIjD,SAASC,oBAAoB,QAAQ,iCAAiC;AACtE,SAASC,gBAAgB,QAAQ,gDAAgD;AAEjF,SAASC,UAAUA,CAACC,CAAM,EAAEC,UAAoB,EAAE;EAChDD,CAAC,GAAGC,UAAU,GAAG;IAAE,GAAGD;EAAE,CAAC,GAAGX,UAAU,CAACW,CAAC,CAAC;EACzCA,CAAC,CAACE,QAAQ,GAAGF,CAAC,CAACG,SAAS;EACxBH,CAAC,CAACI,WAAW,GAAGJ,CAAC,CAACG,SAAS;EAC3BH,CAAC,CAACK,WAAW,GAAGL,CAAC,CAACM,YAAY;EAC9BN,CAAC,CAACO,MAAM,GAAGP,CAAC,CAACQ,OAAO;EACpB,OAAOR,CAAC,CAACG,SAAS;EAClB,OAAOH,CAAC,CAACM,YAAY;EACrB,OAAON,CAAC,CAACQ,OAAO;EAChB,OAAOR,CAAC;AACV;AAEAT,QAAQ,CAACkB,IAAI,CAAC,CACZ,4BAA4B,EAC5B,sDAAsD,CACvD,CAAC,CAAC,mBAAmB,EAAGC,OAAO,IAAK;EACnC,IAAIC,MAAc;EAElBrB,SAAS,CAAC,YAAY;IACpB,IAAIsB,SAAS;IAEb,CAAC;MAAED,MAAM;MAAEC;IAAU,CAAC,GAAGzB,kBAAkB,CACzC,IAAID,iBAAiB,CAACwB,OAAO,CAAC,EAC9Bd,YACF,CAAC;IAED,OAAO,MAAM;MACXgB,SAAS,CAACC,KAAK,CAAC,CAAC;IACnB,CAAC;EACH,CAAC,CAAC;EAEFtB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACrBG,EAAE,CAAC,mBAAmB,EAAE,YAAY;MAClC,MAAMoB,MAAM,GAAG,MAAMH,MAAM,CAAC1B,QAAQ,CAAC,CAAC8B,KAAK,CAAC;QAC1CC,UAAU,EAAE5B,QAAQ,CAAC6B,SAAS,CAACD;MACjC,CAAC,CAAC,CAACE,SAAS,CAAC,CAAC;;MAEd;MACA,MAAMC,QAAQ,GAAGL,MAAM,CAACM,IAAI,CAAC,CAAC,CAAC;MAC/B5B,MAAM,CAAC6B,IAAI,CAACC,SAAS,CAACH,QAAQ,CAAC,CAAC,CAACI,WAAW,CAAC,CAAC;MAC9C/B,MAAM,CAAC2B,QAAQ,CAAC,CAACK,aAAa,CAAC;QAC7B,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,UAAU;QACzB,aAAa,EAAE,KAAK;QACpB,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,KAAK;QACnB,gBAAgB,EAAEhC,MAAM,CAACiC,QAAQ,CAAC,CAAC;QACnC,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE;MACf,CAAC,CAAC;MAEFN,QAAQ,CAACO,SAAS;;MAElB;MACAlC,MAAM,CAACmC,MAAM,CAACC,IAAI,CAACT,QAAQ,CAACU,KAAK,CAACC,IAAI,CAAC,CAAC,CAACP,WAAW,CAAC,CAAC;IACxD,CAAC,CAAC;IACF7B,EAAE,CAAC,sCAAsC,EAAE,YAAY;MACrD,MAAMoB,MAAM,GAAG,MAAMH,MAAM,CAAC1B,QAAQ,CAAC,CAAC8B,KAAK,CAAC;QAC1CC,UAAU,EAAE5B,QAAQ,CAAC6B,SAAS,CAACD;MACjC,CAAC,CAAC,CAACE,SAAS,CAAC,CAAC;;MAEd;MACA,MAAMC,QAAQ,GAAGL,MAAM,CAACM,IAAI,CAAC,CAAC,CAAC;MAC/B5B,MAAM,CAAC6B,IAAI,CAACC,SAAS,CAACH,QAAQ,CAAC,CAAC,CAACI,WAAW,CAAC,CAAC;MAC9C/B,MAAM,CAAC2B,QAAQ,CAAC,CAACK,aAAa,CAAC;QAC7B,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,UAAU;QACzB,aAAa,EAAE,KAAK;QACpB,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,KAAK;QACnB,gBAAgB,EAAEhC,MAAM,CAACiC,QAAQ,CAAC,CAAC;QACnC,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE;MACf,CAAC,CAAC;MAEFN,QAAQ,CAACO,SAAS;;MAElB;MACAlC,MAAM,CAACmC,MAAM,CAACC,IAAI,CAACT,QAAQ,CAACU,KAAK,CAACC,IAAI,CAAC,CAAC,CAACP,WAAW,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF7B,EAAE,CAAC,mDAAmD,EAAE,YAAY;MAClE,MAAMoB,MAAM,GAAG,MAAMH,MAAM,CAAC1B,QAAQ,CAAC,CAAC8B,KAAK,CAAC;QAC1CC,UAAU,EAAE5B,QAAQ,CAAC6B,SAAS,CAACD;MACjC,CAAC,CAAC,CAACE,SAAS,CAAC,CAAC;MACd,MAAMC,QAAQ,GAAGL,MAAM,CAACM,IAAI,CAAC,CAAC,CAAC;MAE/B,MAAMU,IAAI,GAAG,MAAMX,QAAQ,CAACU,KAAK,CAACC,IAAI,CAACC,QAAQ,CAAC;QAC9CC,OAAO,EAAE,CAAC,YAAY;MACxB,CAAC,CAAC;MACFxC,MAAM,CAACsC,IAAI,CAACd,UAAU,CAAC,CAACiB,IAAI,CAAC7C,QAAQ,CAAC8C,SAAS,CAAClB,UAAU,CAAC;;MAE3D;MACAxB,MAAM,CAACsC,IAAI,CAACd,UAAU,CAAC,CAACO,WAAW,CAAC,CAAC;MACrC/B,MAAM,CAAEsC,IAAI,CAASK,cAAc,CAAC,CAACC,aAAa,CAAC,CAAC;IACtD,CAAC,CAAC;IAEF1C,EAAE,CAAC,gDAAgD,EAAE,YAAY;MAC/D;MACA,MAAM2C,SAAS,GAAG,MAAM1B,MAAM,CAAC1B,QAAQ,CAAC,CAAC8B,KAAK,CAAC;QAC7CuB,IAAI,EAAE,CACJ;UAAE,YAAY,EAAE;YAAE,KAAK,EAAE;UAAM;QAAE,CAAC,EAClC;UAAE,YAAY,EAAE;YAAE,KAAK,EAAE;UAAM;QAAE,CAAC;MAEtC,CAAC,CAAC,CAACpB,SAAS,CAAC,CAAC;MACd,MAAMY,IAAI,GAAGO,SAAS,CAACjB,IAAI,CAAC,CAAC,CAAC;MAC9B5B,MAAM,CAACsC,IAAI,CAAC,CAACP,WAAW,CAAC,CAAC;MAE1B,MAAMgB,WAAW,GAAG,MAAMT,IAAI,CAACD,KAAK,CAACW,KAAK,CAACtB,SAAS,CAAC;QACnDc,OAAO,EAAE,CAAC,UAAU,EAAE,YAAY;MACpC,CAAC,CAAC;MACFxC,MAAM,CAAC+C,WAAW,CAACnB,IAAI,CAAC,CAACqB,YAAY,CAAC,CAAC,CAAC;MACxCjD,MAAM,CAAC+C,WAAW,CAACG,aAAa,CAAC,CAACN,aAAa,CAAC,CAAC;;MAEjD;MACA5C,MAAM,CAAC+C,WAAW,CAACnB,IAAI,CAAC,CAAC,CAAC,CAAEJ,UAAU,CAAC,CAACO,WAAW,CAAC,CAAC;MACrD/B,MAAM,CAAE+C,WAAW,CAACnB,IAAI,CAAC,CAAC,CAAC,CAASuB,MAAM,CAAC,CAACP,aAAa,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF1C,EAAE,CAAC,2EAA2E,EAAE,YAAY;MAC1F;MACA,MAAM2C,SAAS,GAAG,MAAM1B,MAAM,CAAC1B,QAAQ,CAAC,CAAC8B,KAAK,CAAC;QAC7CuB,IAAI,EAAE,CACJ;UAAE,YAAY,EAAE;YAAE,KAAK,EAAE;UAAM;QAAE,CAAC,EAClC;UAAE,YAAY,EAAE;YAAE,KAAK,EAAE;UAAM;QAAE,CAAC;MAEtC,CAAC,CAAC,CAACpB,SAAS,CAAC,CAAC;MACd,MAAMY,IAAI,GAAGO,SAAS,CAACjB,IAAI,CAAC,CAAC,CAAC;MAC9B5B,MAAM,CAACsC,IAAI,CAAC,CAACP,WAAW,CAAC,CAAC;MAE1B,MAAMqB,IAAI,GAAG,MAAMd,IAAI,CAACD,KAAK,CAACW,KAAK,CAACT,QAAQ,CAC1C3C,QAAQ,CAAC6B,SAAS,CAACD,UAAU,EAC7B;QACEgB,OAAO,EAAE,CAAC,YAAY;MACxB,CACF,CAAC;MACDxC,MAAM,CAACoD,IAAI,CAAC,CAACrB,WAAW,CAAC,CAAC;;MAE1B;MACA/B,MAAM,CAACoD,IAAI,CAAC5B,UAAU,CAAC,CAACO,WAAW,CAAC,CAAC;MACrC/B,MAAM,CAAEoD,IAAI,CAAST,cAAc,CAAC,CAACC,aAAa,CAAC,CAAC;IACtD,CAAC,CAAC;IACF1C,EAAE,CAAC,kCAAkC,EAAE,YAAY;MACjD,MAAMoB,MAAM,GAAG,MAAMH,MAAM,CAAC1B,QAAQ,CAAC,CAAC8B,KAAK,CAAC;QAC1CC,UAAU,EAAE5B,QAAQ,CAAC6B,SAAS,CAACD;MACjC,CAAC,CAAC,CAACE,SAAS,CACV;QACE2B,WAAW,EAAE;MACf,CACF,CAAC;MACD,MAAMC,OAAO,GAAGhC,MAAM,CAACM,IAAI,CAAC,CAAC,CAAC,CAAC2B,IAAI;MACnCvD,MAAM,CAACsD,OAAO,CAAC,CAACvB,WAAW,CAAC,CAAC;MAC7B/B,MAAM,CAACsD,OAAO,CAAC,CAACb,IAAI,CAClB,yEACF,CAAC;IACH,CAAC,CAAC;IACFvC,EAAE,CAAC,kCAAkC,EAAE,YAAY;MACjD,MAAMsD,OAAO,GAAGrB,MAAM,CAACC,IAAI,CAAC5C,QAAQ,CAAC;MACrCQ,MAAM,CAACwD,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC,CAACC,aAAa,CAAC,CACnC,eAAe,EACf,UAAU,EACV,+BAA+B,EAC/B,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,WAAW,EACX,gCAAgC,CACjC,CAACD,IAAI,CAAC,CAAC,CAAC;IACX,CAAC,CAAC;EACJ,CAAC,CAAC;EACF1D,QAAQ,CAAC,OAAO,EAAE,MAAM;IACtB,IAAI4B,QAIH;IACD7B,SAAS,CAAC,YAAY;MACpB6B,QAAQ,GAAG,CAAC,MAAMR,MAAM,CAAC1B,QAAQ,CAAC,CAAC8B,KAAK,CAAC;QACvCC,UAAU,EAAE5B,QAAQ,CAAC8C,SAAS,CAAClB;MACjC,CAAC,CAAC,CAACE,SAAS,CAAC,CAAC,EAAEE,IAAI,CAAC,CAAC,CAAC;MAEvB5B,MAAM,CAAC2B,QAAQ,CAAC,CAACK,aAAa,CAAC;QAC7B,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,UAAU;QACzB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,MAAM;QACf,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE;MACf,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF9B,EAAE,CAAC,uDAAuD,EAAE,YAAY;MACtE,MAAMyD,eAAe,GAAGrD,gBAAgB,CACtCa,MAAM,CAAChB,iBAAiB,CAAC,EACzB;QACE,SAAS,EAAE,UAAU;QACrB,gBAAgB,EAAE,SAAS;QAC3B,mBAAmB,EAAE,YAAY;QACjC,YAAY,EAAE;UACZ,OAAO,EAAE;YAAE,MAAM,EAAE;UAAS,CAAC;UAC7B,YAAY,EAAE;YAAE,MAAM,EAAE;UAAU,CAAC;UACnC,UAAU,EAAE;YAAE,MAAM,EAAE;UAAS,CAAC;UAChC,QAAQ,EAAE;YAAE,MAAM,EAAE;UAAS;QAC/B;MACF,CAAC,EACD;QACE,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,UAAU;QACzB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE;MACZ,CACF,CAIC;MAED,MAAMyD,cAAc,GAAGjC,QAAQ,CAACkC,MAAM,CAACF,eAAe,CAAC;MAEvD1D,YAAY,CAAC2D,cAAc,CAAC,CAACE,aAAa,CAACnC,QAAQ,CAAC;MAEpD3B,MAAM,CAAC4D,cAAc,CAAC,CAAC5B,aAAa,CAClC;QACE,UAAU,EAAE,UAAU;QACtB,kBAAkB,EAAE,gBAAgB;QACpC,aAAa,EAAE,UAAU;QACzB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,KAAK;QACnB,kBAAkB,EAAE;UAClB,kBAAkB,EAAE+B;QACtB,CAAC;QACD,gBAAgB,EAAE,CAAC,CAAC;QACpB,gBAAgB,EAAE,CAAC,CAAC;QACpB,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE;MACf,CACF,CAAC;IACH,CAAC,CAAC;IAEF7D,EAAE,CAAC,8CAA8C,EAAE,YAAY;MAM7DD,YAAY,CALU;QAAE4D,MAAM,EAAEA,CAAA,KAAM,CAAC;MAAE,CAAC,CAKfA,MAAM,CAAClC,QAAQ,CAAC,CAAC,CAACqC,aAAa,CAMxD,CAAC;IACL,CAAC,CAAC;IAEF9D,EAAE,CAAC,gFAAgF,EAAE,YAAY;MAM/FD,YAAY,CALU;QAAE4D,MAAM,EAAEA,CAAA,KAAM,CAAC;MAAE,CAAC,CAM1BA,MAAM,CAAC,CAAC,CAA6C,CACrE,CAAC,CAACG,aAAa,CAMb,CAAC;IACL,CAAC,CAAC;IAEF9D,EAAE,CAAC,4CAA4C,EAAE,YAAY;MAC3D,MAAM0D,cAAc,GAAGjC,QAAQ,CAACkC,MAAM,CAAC;QACrC,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE;MACf,CAAC,CAAC;MAEF7D,MAAM,CAAC4D,cAAc,CAAC,CAAC5B,aAAa,CAClC;QACE,UAAU,EAAE,UAAU;QACtB,kBAAkB,EAAE,gBAAgB;QACpC,aAAa,EAAE,UAAU;QACzB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE,KAAK;QACnB,kBAAkB,EAAE;UAClB,kBAAkB,EAAE+B;QACtB,CAAC;QACD,gBAAgB,EAAE,CAAC,CAAC;QACpB,gBAAgB,EAAE,CAAC,CAAC;QACpB,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE;MACf,CACF,CAAC;IACH,CAAC,CAAC;IAEF7D,EAAE,CAAC,mCAAmC,EAAE,YAAY;MAMlDD,YAAY,CALU;QAAE4D,MAAM,EAAEA,CAAA,KAAM,CAAC;MAAE,CAAC,CAKfA,MAAM,CAAC;QAChC,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE;MACf,CAAC,CAAC,CAAC,CAACG,aAAa,CAMf,CAAC;IACL,CAAC,CAAC;IAEF9D,EAAE,CAAC,sBAAsB,EAAE,YAAY;MACrC,MAAM0D,cAAc,GAAGjC,QAAQ,CAACkC,MAAM,CAAC;QACrC,UAAU,EAAE;MACd,CAAC,CAAC;MAEF7D,MAAM,CAAC4D,cAAc,CAAC,CAAC5B,aAAa,CAClC;QACE,UAAU,EAAE,UAAU;QACtB,kBAAkB,EAAE,gBAAgB;QACpC,aAAa,EAAE,UAAU;QACzB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,MAAM;QACf,YAAY,EAAE,KAAK;QACnB,kBAAkB,EAAE;UAClB,kBAAkB,EAAE+B;QACtB,CAAC;QACD,gBAAgB,EAAE,CAAC,CAAC;QACpB,gBAAgB,EAAE,CAAC,CAAC;QACpB,UAAU,EAAE,WAAW;QACvB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE;MACf,CACF,CAAC;IACH,CAAC,CAAC;IAEF7D,EAAE,CAAC,yCAAyC,EAAE,YAAY;MACxDF,MAAM,CAAC2B,QAAQ,CAACkC,MAAM,CAAC,CAAC,CAAC,CAAC7B,aAAa,CAAC;QACtC,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,UAAU;QACzB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,MAAM;QACf,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE;MACf,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF9B,EAAE,CAAC,yDAAyD,EAAE,YAAY;MACxEF,MAAM,CAAC,MACL2B,QAAQ,CAACkC,MAAM,CAAC;QACd,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE;MAChB,CAAC,CACH,CAAC,CAACI,OAAO,CAAC,CAAC;IACb,CAAC,CAAC;IACFlE,QAAQ,CAAC,WAAW,EAAE,MAAM;MAC1B,MAAMmE,YAAY,GAAG;QACnBC,OAAO,EAAE,cAAc;QACvBC,WAAW,EAAE,EAAE;QACfC,KAAK,EAAE,CAAC,CAAC;QACTC,UAAU,EAAE;UACV,QAAQ,EAAE;YACRC,IAAI,EAAE;UACR,CAAC;UACD,sBAAsB,EAAE;YACtBA,IAAI,EAAE;UACR;QACF,CAAC;QACDC,GAAG,EAAE,EAAE;QACPD,IAAI,EAAE,WAAW;QACjBE,UAAU,EAAE;MACd,CAA6B;MAE7B,MAAMC,mBAAmB,GAAG;QAC1BP,OAAO,EAAE,cAAc;QACvBI,IAAI,EAAE,WAAW;QACjB,sBAAsB,EAAEL;MAC1B,CAA+B;MAE/B,MAAMS,uBAAuB,GAAG;QAC9B,SAAS,EAAE,UAAU;QACrB,gBAAgB,EAAE,SAAS;QAC3B,mBAAmB,EAAE,YAAY;QACjC,YAAY,EAAE;UACZ,YAAY,EAAE;YAAE,MAAM,EAAE;UAAU,CAAC;UACnC,UAAU,EAAE;YAAE,MAAM,EAAE;UAAS;QACjC,CAAC;QACDC,YAAY,EAAE;UACZ,cAAc,EAAE;YACd,QAAQ,EAAE;UACZ;QACF,CAAC;QACDC,mBAAmB,EAAE;UACnB,cAAc,EAAE;YACd,UAAU,EAAE;UACd;QACF,CAAC;QACD,CAACxE,oBAAoB,GAAG;UACtB,cAAc,EAAE;YAAEyE,GAAG,EAAEZ;UAAa;QACtC,CAAC;QACDK,IAAI,EAAE,QAAQ;QACdQ,aAAa,EAAE,UAAU;QACzBC,iBAAiB,EAAE,EAAE;QACrBC,MAAM,EAAE,QAAQ;QAChBb,WAAW,EAAE,EAAE;QACfC,KAAK,EAAE,CAAC,CAAC;QACTG,GAAG,EAAE;MACP,CAAuC;MAEvCtE,EAAE,CAAC,uDAAuD,EAAE,MAAM;QAChE,MAAMgF,kBAAkB,GAAG5E,gBAAgB,CACzCa,MAAM,CAAChB,iBAAiB,CAAC,EACzBwE,uBAAuB,EACvB;UACE,UAAU,EAAE,UAAU;UACtB,aAAa,EAAE,UAAU;UACzB,aAAa,EAAE,KAAK;UACpB,QAAQ,EAAE,UAAU;UACpB,YAAY,EAAE,KAAK;UACnB,UAAU,EAAE;QACd,CACF,CAIC;QAED,MAAMQ,qBAAqB,GAAGD,kBAAkB,CAACE,GAAG,CAClDV,mBACF,CAAC;QAED,MAAMW,eAAe,GAAGF,qBAAqB,CAACtB,MAAM,CAAC;UACnD,QAAQ,EAAE;QACZ,CAAC,CAAC;QAEF7D,MAAM,CAACqF,eAAe,CAAC,CAACrD,aAAa,CACnC;UACE,UAAU,EAAE,cAAc;UAC1B,aAAa,EAAE,UAAU;UACzB,aAAa,EAAE,KAAK;UACpB,QAAQ,EAAE,YAAY;UACtB,QAAQ,EAAE;QACZ,CACF,CAAC;QAEDhC,MAAM,CAACqF,eAAe,CAACD,GAAG,CAAC,UAAU,CAAC,CAAC,CAACpD,aAAa,CACnD;UACE,UAAU,EAAE,UAAU;UACtB,aAAa,EAAE,UAAU;UACzB,aAAa,EAAE,KAAK;UACpB,QAAQ,EAAE,YAAY;UACtB,YAAY,EAAE,KAAK;UACnB,UAAU,EAAE;QACd,CACF,CAAC;MACH,CAAC,CAAC;MACF9B,EAAE,CAAC,+FAA+F,EAAE,MAAM;QACxG,MAAMgF,kBAAkB,GAAG5E,gBAAgB,CACzCa,MAAM,CAAChB,iBAAiB,CAAC,EACzBwE,uBAAuB,EACvB;UACE,UAAU,EAAE,UAAU;UACtB,aAAa,EAAE,UAAU;UACzB,aAAa,EAAE,KAAK;UACpB,QAAQ,EAAE,UAAU;UACpB,YAAY,EAAE,KAAK;UACnB,UAAU,EAAE;QACd,CACF,CAIC;QAED,MAAMW,qBAAqB,GAAGJ,kBAAkB,CAACE,GAAG,CAAClB,YAAY,CAAC;QAClElE,MAAM,CAAC,MACLsF,qBAAqB,CAACzB,MAAM,CAAC;UAC3B,sBAAsB,EAAE;QAC1B,CAAC,CACH,CAAC,CAAC0B,YAAY,CACZ,wHACF,CAAC;MACH,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,eAAeC,WAAWA,CAACrE,MAAc,EAA2B;EACzE;EACA,OAAOA,MAAM,CAAC1B,QAAQ,CAAC,CAAC8C,QAAQ,CAAC,CAAC,EAAE;IAClCC,OAAO,EAAE,CAAC,YAAY;EACxB,CAAC,CAAC;AACJ;AAEA,OAAO,eAAeiD,YAAYA,CAChCtE,MAAc,EACgB;EAC9B;EACA,OAAOA,MAAM,CAAC1B,QAAQ,CAAC,CAAC8C,QAAQ,CAAC,CAAC,EAAE;IAClCC,OAAO,EAAE,CAAC,YAAY;EACxB,CAAC,CAAC;AACJ;AAEA,OAAO,eAAekD,wCAAwCA,CAC5DvE,MAAc,EACyB;EACvC,OAAOA,MAAM,CAAC1B,QAAQ,CAAC,CAAC8C,QAAQ,CAAC,CAAC,EAAE;IAClCC,OAAO,EAAE,CAAC,YAAY;EACxB,CAAC,CAAC;AACJ;AAEA,OAAO,eAAemD,gDAAgDA,CACpExE,MAAc,EACyB;EACvC,OAAOA,MAAM,CAAC1B,QAAQ,CAAC,CAAC8C,QAAQ,CAAC,CAAC,EAAE;IAClCC,OAAO,EAAE,CAAC,YAAY;EACxB,CAAC,CAAC;AACJ;AAEA,OAAO,eAAeoD,wCAAwCA,CAC5DzE,MAAc,EACqC;EACnD,OAAOA,MAAM,CAAC1B,QAAQ,CAAC,CAAC8C,QAAQ,CAAC,CAAC,EAAE;IAClCC,OAAO,EAAE,CAAC,YAAY;EACxB,CAAC,CAAC;AACJ;AAEA,OAAO,eAAeqD,gDAAgDA,CACpE1E,MAAc,EACyB;EACvC,OAAOA,MAAM,CAAC1B,QAAQ,CAAC,CAAC8C,QAAQ,CAAC,CAAC,EAAE;IAClCC,OAAO,EAAE,CAAC,YAAY;EACxB,CAAC,CAAC;AACJ;AAEA,OAAO,eAAesD,wCAAwCA,CAC5D3E,MAAc,EACW;EACzB,OAAOA,MAAM,CAAC1B,QAAQ,CAAC,CAAC8C,QAAQ,CAAC,CAAC,CAAC;AACrC;AAEA,OAAO,eAAewD,4CAA4CA,CAChE5E,MAAc,EACW;EACzB,OAAOA,MAAM,CAAC1B,QAAQ,CAAC,CAAC8C,QAAQ,CAAC,CAAC,CAAC;AACrC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"object.test.js","names":["$Objects","Employee","FooInterface","LegacyFauxFoundry","startNodeApiServer","stubData","withoutRid","beforeAll","describe","expect","expectTypeOf","it","additionalContext","createClient","InterfaceDefinitions","createOsdkObject","asV2Object","o","includeRid","$apiName","__apiName","$objectType","$primaryKey","__primaryKey","$title","__title","each","baseUrl","client","apiServer","close","result","where","employeeId","employee1","fetchPage","employee","data","JSON","stringify","toBeDefined","toMatchObject","anything","startDate","Object","keys","$link","lead","fetchOne","$select","toBe","employee2","employeeStatus","toBeUndefined","employees","$and","peepsResult","peeps","toHaveLength","nextPageToken","office","peep","$includeRid","leadRid","$rid","objects","sort","toStrictEqual","updatedEmployee","mergedEmployee","$clone","toEqualTypeOf","undefined","toMatchTypeOf","toThrow","interfaceDef","apiName","displayName","links","properties","type","rid","implements","fooInterfaceOsdkDef","EmployeeFetchedMetadata","interfaceMap","inverseInterfaceMap","def","titleProperty","pluralDisplayName","status","employeeOsdkObject","personInterfaceObject","$as","clonedInterface","loadedInterfaceObject","toThrowError","$objectSpecifier","object","shouldError","shouldError2","shouldCompile_client_fetchOne_old_select","shouldCompile_unstableClient_fetchOne_old_select","shouldCompile_client_fetchOne_new_select","shouldCompile_unstableClient_fetchOne_new_select","shouldCompile_client_fetchOne_old_noArgs","shouldCompile_unstableClient_fetchOne_noArgs"],"sources":["object.test.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n InterfaceDefinition,\n InterfaceMetadata,\n Osdk,\n PropertyKeys,\n} from \"@osdk/api\";\nimport { $Objects, Employee, FooInterface } from \"@osdk/client.test.ontology\";\nimport {\n LegacyFauxFoundry,\n startNodeApiServer,\n stubData,\n withoutRid,\n} from \"@osdk/shared.test\";\nimport { beforeAll, describe, expect, expectTypeOf, it } from \"vitest\";\nimport { additionalContext, type Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\nimport type {\n FetchedObjectTypeDefinition,\n} from \"../ontology/OntologyProvider.js\";\nimport { InterfaceDefinitions } from \"../ontology/OntologyProvider.js\";\nimport { createOsdkObject } from \"./convertWireToOsdkObjects/createOsdkObject.js\";\n\nfunction asV2Object(o: any, includeRid?: boolean) {\n o = includeRid ? { ...o } : withoutRid(o);\n o.$apiName = o.__apiName;\n o.$objectType = o.__apiName;\n o.$primaryKey = o.__primaryKey;\n o.$title = o.__title;\n delete o.__apiName;\n delete o.__primaryKey;\n delete o.__title;\n return o;\n}\n\ndescribe.each([\n \"https://stack.palantir.com\",\n \"https://stack.palantirCustom.com/foo/first/someStuff\",\n])(\"OsdkObject for %s\", (baseUrl) => {\n let client: Client;\n\n beforeAll(async () => {\n let apiServer;\n\n ({ client, apiServer } = startNodeApiServer(\n new LegacyFauxFoundry(baseUrl),\n createClient,\n ));\n\n return () => {\n apiServer.close();\n };\n });\n\n describe(\"link\", () => {\n it(\"loads an employee\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage();\n\n // we should get the employee we requested\n const employee = result.data[0];\n expect(JSON.stringify(employee)).toBeDefined();\n expect(employee).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50030,\n \"class\": \"Red\",\n \"employeeId\": 50030,\n \"employeeStatus\": expect.anything(),\n \"fullName\": \"John Doe\",\n \"office\": \"NYC\",\n \"startDate\": \"2019-01-01\",\n });\n\n employee.startDate;\n\n // it should have the prototype that we assign at hydration time\n expect(Object.keys(employee.$link.lead)).toBeDefined();\n });\n it(\"loads an employee with custom client\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage();\n\n // we should get the employee we requested\n const employee = result.data[0];\n expect(JSON.stringify(employee)).toBeDefined();\n expect(employee).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50030,\n \"class\": \"Red\",\n \"employeeId\": 50030,\n \"employeeStatus\": expect.anything(),\n \"fullName\": \"John Doe\",\n \"office\": \"NYC\",\n \"startDate\": \"2019-01-01\",\n });\n\n employee.startDate;\n\n // it should have the prototype that we assign at hydration time\n expect(Object.keys(employee.$link.lead)).toBeDefined();\n });\n\n it(\"traverses the link from an employee to their lead\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage();\n const employee = result.data[0];\n\n const lead = await employee.$link.lead.fetchOne({\n $select: [\"employeeId\"],\n });\n expect(lead.employeeId).toBe(stubData.employee2.employeeId);\n\n // ensure that the select was performed\n expect(lead.employeeId).toBeDefined();\n expect((lead as any).employeeStatus).toBeUndefined();\n });\n\n it(\"traverses the link from an lead to their peeps\", async () => {\n // slightly weird request here to hit the existing mocks for employee2\n const employees = await client(Employee).where({\n $and: [\n { \"employeeId\": { \"$gt\": 50030 } },\n { \"employeeId\": { \"$lt\": 50032 } },\n ],\n }).fetchPage();\n const lead = employees.data[0];\n expect(lead).toBeDefined();\n\n const peepsResult = await lead.$link.peeps.fetchPage({\n $select: [\"fullName\", \"employeeId\"],\n });\n expect(peepsResult.data).toHaveLength(2);\n expect(peepsResult.nextPageToken).toBeUndefined();\n\n // ensure that the select was performed\n expect(peepsResult.data[0]!.employeeId).toBeDefined();\n expect((peepsResult.data[0] as any).office).toBeUndefined();\n });\n\n it(\"traverses the link from an lead to their peep by primaryKey with fetchOne\", async () => {\n // slightly weird request here to hit the existing mocks for employee2\n const employees = await client(Employee).where({\n $and: [\n { \"employeeId\": { \"$gt\": 50030 } },\n { \"employeeId\": { \"$lt\": 50032 } },\n ],\n }).fetchPage();\n const lead = employees.data[0];\n expect(lead).toBeDefined();\n\n const peep = await lead.$link.peeps.fetchOne(\n stubData.employee1.employeeId,\n {\n $select: [\"employeeId\"],\n },\n );\n expect(peep).toBeDefined();\n\n // ensure that select worked\n expect(peep.employeeId).toBeDefined();\n expect((peep as any).employeeStatus).toBeUndefined();\n });\n it(\"gives $rid access when requested\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage(\n {\n $includeRid: true,\n },\n );\n const leadRid = result.data[0].$rid;\n expect(leadRid).toBeDefined();\n expect(leadRid).toBe(\n \"ri.phonograph2-objects.main.object.88a6fccb-f333-46d6-a07e-7725c5f18b61\",\n );\n });\n it(\"objects are enumerable in an sdk\", async () => {\n const objects = Object.keys($Objects);\n expect(objects.sort()).toStrictEqual([\n \"BgaoNflPlayer\",\n \"Employee\",\n \"ObjectWithTimestampPrimaryKey\",\n \"Office\",\n \"Person\",\n \"Task\",\n \"Todo\",\n \"equipment\",\n \"objectTypeWithAllPropertyTypes\",\n ].sort());\n });\n });\n describe(\"clone\", () => {\n let employee: Osdk.Instance<\n $Objects.Employee,\n never,\n PropertyKeys<$Objects.Employee>\n >;\n beforeAll(async () => {\n employee = (await client(Employee).where({\n employeeId: stubData.employee2.employeeId,\n }).fetchPage()).data[0];\n\n expect(employee).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Blue\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2012-02-12\",\n });\n });\n\n it(\"clones and updates an object with another osdk object\", async () => {\n const updatedEmployee = createOsdkObject(\n client[additionalContext],\n {\n \"apiName\": \"Employee\",\n \"primaryKeyType\": \"integer\",\n \"primaryKeyApiName\": \"employeeId\",\n \"properties\": {\n \"class\": { \"type\": \"string\" },\n \"employeeId\": { \"type\": \"integer\" },\n \"fullName\": { \"type\": \"string\" },\n \"office\": { \"type\": \"string\" },\n },\n } as any,\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Red\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n \"office\": \"NYC\",\n },\n ) as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\" | \"employeeId\" | \"fullName\" | \"office\"\n >;\n\n const mergedEmployee = employee.$clone(updatedEmployee);\n\n expectTypeOf(mergedEmployee).toEqualTypeOf(employee);\n\n expect(mergedEmployee).toMatchObject(\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Red\",\n \"employeeId\": 50031,\n \"employeeLocation\": {\n \"lastFetchedValue\": undefined,\n },\n \"employeeSensor\": {},\n \"employeeStatus\": {},\n \"fullName\": \"Jane Doe\",\n \"office\": \"NYC\",\n \"startDate\": \"2012-02-12\",\n },\n );\n });\n\n it(\"correctly scopes up with another OSDK object\", async () => {\n const firstEmployee = { $clone: () => {} } as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\"\n >;\n expectTypeOf(firstEmployee.$clone(employee)).toMatchTypeOf<\n Osdk.Instance<\n Employee,\n never,\n PropertyKeys<Employee>\n >\n >();\n });\n\n it(\"Correctly preserves keys from original and new with distinct property key sets\", async () => {\n const firstEmployee = { $clone: () => {} } as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\"\n >;\n expectTypeOf(\n firstEmployee.$clone({} as Osdk.Instance<Employee, never, \"office\">),\n ).toMatchTypeOf<\n Osdk.Instance<\n Employee,\n never,\n \"class\" | \"office\"\n >\n >();\n });\n\n it(\"clones and updates an object with a record\", async () => {\n const mergedEmployee = employee.$clone({\n \"class\": \"Green\",\n \"employeeId\": 50031,\n \"fullName\": \"John Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2019-01-01\",\n });\n\n expect(mergedEmployee).toMatchObject(\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"John Doe\",\n \"class\": \"Green\",\n \"employeeId\": 50031,\n \"employeeLocation\": {\n \"lastFetchedValue\": undefined,\n },\n \"employeeSensor\": {},\n \"employeeStatus\": {},\n \"fullName\": \"John Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2019-01-01\",\n },\n );\n });\n\n it(\"correctly scopes up with a record\", async () => {\n const firstEmployee = { $clone: () => {} } as unknown as Osdk.Instance<\n Employee,\n never,\n \"class\"\n >;\n expectTypeOf(firstEmployee.$clone({\n \"class\": \"Green\",\n \"employeeId\": 50031,\n \"fullName\": \"John Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2019-01-01\",\n })).toMatchTypeOf<\n Osdk.Instance<\n Employee,\n never,\n \"class\" | \"employeeId\" | \"fullName\" | \"office\" | \"startDate\"\n >\n >();\n });\n\n it(\"correctly sets title\", async () => {\n const mergedEmployee = employee.$clone({\n \"fullName\": \"Brad Pitt\",\n });\n\n expect(mergedEmployee).toMatchObject(\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Brad Pitt\",\n \"class\": \"Blue\",\n \"employeeId\": 50031,\n \"employeeLocation\": {\n \"lastFetchedValue\": undefined,\n },\n \"employeeSensor\": {},\n \"employeeStatus\": {},\n \"fullName\": \"Brad Pitt\",\n \"office\": \"SEA\",\n \"startDate\": \"2012-02-12\",\n },\n );\n });\n\n it(\"is able to clone with nothing passed in\", async () => {\n expect(employee.$clone()).toMatchObject({\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"class\": \"Blue\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n \"office\": \"SEA\",\n \"startDate\": \"2012-02-12\",\n });\n });\n\n it(\"throws when merging objects with different primary keys\", async () => {\n expect(() =>\n employee.$clone({\n \"class\": \"Green\",\n \"employeeId\": 50035,\n })\n ).toThrow();\n });\n describe(\"interface\", () => {\n const interfaceDef = {\n apiName: \"FooInterface\",\n displayName: \"\",\n links: {},\n properties: {\n \"fooSpt\": {\n type: \"string\",\n },\n \"notImplementedFooSpt\": {\n type: \"string\",\n },\n },\n rid: \"\",\n type: \"interface\",\n implements: [],\n } satisfies InterfaceMetadata;\n\n const fooInterfaceOsdkDef = {\n apiName: \"FooInterface\",\n type: \"interface\",\n \"__DefinitionMetadata\": interfaceDef,\n } satisfies InterfaceDefinition;\n\n const EmployeeFetchedMetadata = {\n \"apiName\": \"Employee\",\n \"primaryKeyType\": \"integer\",\n \"primaryKeyApiName\": \"employeeId\",\n \"properties\": {\n \"employeeId\": { \"type\": \"integer\" },\n \"fullName\": { \"type\": \"string\" },\n },\n interfaceMap: {\n \"FooInterface\": {\n \"fooSpt\": \"fullName\",\n },\n },\n inverseInterfaceMap: {\n \"FooInterface\": {\n \"fullName\": \"fooSpt\",\n },\n },\n [InterfaceDefinitions]: {\n \"FooInterface\": { def: interfaceDef },\n },\n type: \"object\",\n titleProperty: \"fullName\",\n pluralDisplayName: \"\",\n status: \"ACTIVE\",\n displayName: \"\",\n links: {},\n rid: \"\",\n } satisfies FetchedObjectTypeDefinition;\n\n it(\"Correctly updates the interface and underlying object\", () => {\n const employeeOsdkObject = createOsdkObject(\n client[additionalContext],\n EmployeeFetchedMetadata,\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n },\n ) as unknown as Osdk.Instance<\n Employee,\n never,\n \"employeeId\" | \"fullName\"\n >;\n\n const personInterfaceObject = employeeOsdkObject.$as(\n fooInterfaceOsdkDef,\n );\n\n const clonedInterface = personInterfaceObject.$clone({\n \"fooSpt\": \"John Adams\",\n });\n\n expect(clonedInterface).toMatchObject(\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"John Adams\",\n \"fooSpt\": \"John Adams\",\n },\n );\n\n expect(clonedInterface.$as(\"Employee\")).toMatchObject(\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:50031\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"John Adams\",\n \"employeeId\": 50031,\n \"fullName\": \"John Adams\",\n },\n );\n });\n it(\"Throws if updating an interface with a property not implemented by the underlying object type\", () => {\n const employeeOsdkObject = createOsdkObject(\n client[additionalContext],\n EmployeeFetchedMetadata,\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 50031,\n \"$title\": \"Jane Doe\",\n \"employeeId\": 50031,\n \"fullName\": \"Jane Doe\",\n },\n ) as unknown as Osdk.Instance<\n Employee,\n never,\n \"employeeId\" | \"fullName\"\n >;\n\n const loadedInterfaceObject = employeeOsdkObject.$as(interfaceDef);\n expect(() =>\n loadedInterfaceObject.$clone({\n \"notImplementedFooSpt\": \"John Adams\",\n })\n ).toThrowError(\n `Cannot clone interface with notImplementedFooSpt as property is not implemented by the underlying object type Employee`,\n );\n });\n });\n });\n describe(\"objectSpecifier\", () => {\n it(\"returns the object specifier for a loaded object\", async () => {\n const result = await client(Employee).where({\n employeeId: stubData.employee1.employeeId,\n }).fetchPage();\n\n const employee = result.data[0];\n expect(employee.$objectSpecifier).toBe(\"Employee:50030\");\n });\n\n it(\"returns the object specifier for a loaded interface object\", async () => {\n const result = await client(FooInterface).fetchPage();\n\n const object = result.data[0];\n expect(object.$objectSpecifier).toBe(\"Employee:50030\");\n });\n });\n});\n\nexport async function shouldError(client: Client): Promise<Osdk<Employee>> {\n // @ts-expect-error\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldError2(\n client: Client,\n): Promise<Employee.OsdkObject> {\n // @ts-expect-error\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_client_fetchOne_old_select(\n client: Client,\n): Promise<Osdk<Employee, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_unstableClient_fetchOne_old_select(\n client: Client,\n): Promise<Osdk<Employee, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_client_fetchOne_new_select(\n client: Client,\n): Promise<Employee.OsdkObject<never, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_unstableClient_fetchOne_new_select(\n client: Client,\n): Promise<Osdk<Employee, \"employeeId\">> {\n return client(Employee).fetchOne(1, {\n $select: [\"employeeId\"],\n });\n}\n\nexport async function shouldCompile_client_fetchOne_old_noArgs(\n client: Client,\n): Promise<Osdk<Employee>> {\n return client(Employee).fetchOne(1);\n}\n\nexport async function shouldCompile_unstableClient_fetchOne_noArgs(\n client: Client,\n): Promise<Osdk<Employee>> {\n return client(Employee).fetchOne(1);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,SAASA,QAAQ,EAAEC,QAAQ,EAAEC,YAAY,QAAQ,4BAA4B;AAC7E,SACEC,iBAAiB,EACjBC,kBAAkB,EAClBC,QAAQ,EACRC,UAAU,QACL,mBAAmB;AAC1B,SAASC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,YAAY,EAAEC,EAAE,QAAQ,QAAQ;AACtE,SAASC,iBAAiB,QAAqB,cAAc;AAC7D,SAASC,YAAY,QAAQ,oBAAoB;AAIjD,SAASC,oBAAoB,QAAQ,iCAAiC;AACtE,SAASC,gBAAgB,QAAQ,gDAAgD;AAEjF,SAASC,UAAUA,CAACC,CAAM,EAAEC,UAAoB,EAAE;EAChDD,CAAC,GAAGC,UAAU,GAAG;IAAE,GAAGD;EAAE,CAAC,GAAGX,UAAU,CAACW,CAAC,CAAC;EACzCA,CAAC,CAACE,QAAQ,GAAGF,CAAC,CAACG,SAAS;EACxBH,CAAC,CAACI,WAAW,GAAGJ,CAAC,CAACG,SAAS;EAC3BH,CAAC,CAACK,WAAW,GAAGL,CAAC,CAACM,YAAY;EAC9BN,CAAC,CAACO,MAAM,GAAGP,CAAC,CAACQ,OAAO;EACpB,OAAOR,CAAC,CAACG,SAAS;EAClB,OAAOH,CAAC,CAACM,YAAY;EACrB,OAAON,CAAC,CAACQ,OAAO;EAChB,OAAOR,CAAC;AACV;AAEAT,QAAQ,CAACkB,IAAI,CAAC,CACZ,4BAA4B,EAC5B,sDAAsD,CACvD,CAAC,CAAC,mBAAmB,EAAGC,OAAO,IAAK;EACnC,IAAIC,MAAc;EAElBrB,SAAS,CAAC,YAAY;IACpB,IAAIsB,SAAS;IAEb,CAAC;MAAED,MAAM;MAAEC;IAAU,CAAC,GAAGzB,kBAAkB,CACzC,IAAID,iBAAiB,CAACwB,OAAO,CAAC,EAC9Bd,YACF,CAAC;IAED,OAAO,MAAM;MACXgB,SAAS,CAACC,KAAK,CAAC,CAAC;IACnB,CAAC;EACH,CAAC,CAAC;EAEFtB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACrBG,EAAE,CAAC,mBAAmB,EAAE,YAAY;MAClC,MAAMoB,MAAM,GAAG,MAAMH,MAAM,CAAC3B,QAAQ,CAAC,CAAC+B,KAAK,CAAC;QAC1CC,UAAU,EAAE5B,QAAQ,CAAC6B,SAAS,CAACD;MACjC,CAAC,CAAC,CAACE,SAAS,CAAC,CAAC;;MAEd;MACA,MAAMC,QAAQ,GAAGL,MAAM,CAACM,IAAI,CAAC,CAAC,CAAC;MAC/B5B,MAAM,CAAC6B,IAAI,CAACC,SAAS,CAACH,QAAQ,CAAC,CAAC,CAACI,WAAW,CAAC,CAAC;MAC9C/B,MAAM,CAAC2B,QAAQ,CAAC,CAACK,aAAa,CAAC;QAC7B,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,UAAU;QACzB,aAAa,EAAE,KAAK;QACpB,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,KAAK;QACnB,gBAAgB,EAAEhC,MAAM,CAACiC,QAAQ,CAAC,CAAC;QACnC,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE;MACf,CAAC,CAAC;MAEFN,QAAQ,CAACO,SAAS;;MAElB;MACAlC,MAAM,CAACmC,MAAM,CAACC,IAAI,CAACT,QAAQ,CAACU,KAAK,CAACC,IAAI,CAAC,CAAC,CAACP,WAAW,CAAC,CAAC;IACxD,CAAC,CAAC;IACF7B,EAAE,CAAC,sCAAsC,EAAE,YAAY;MACrD,MAAMoB,MAAM,GAAG,MAAMH,MAAM,CAAC3B,QAAQ,CAAC,CAAC+B,KAAK,CAAC;QAC1CC,UAAU,EAAE5B,QAAQ,CAAC6B,SAAS,CAACD;MACjC,CAAC,CAAC,CAACE,SAAS,CAAC,CAAC;;MAEd;MACA,MAAMC,QAAQ,GAAGL,MAAM,CAACM,IAAI,CAAC,CAAC,CAAC;MAC/B5B,MAAM,CAAC6B,IAAI,CAACC,SAAS,CAACH,QAAQ,CAAC,CAAC,CAACI,WAAW,CAAC,CAAC;MAC9C/B,MAAM,CAAC2B,QAAQ,CAAC,CAACK,aAAa,CAAC;QAC7B,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,UAAU;QACzB,aAAa,EAAE,KAAK;QACpB,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,KAAK;QACnB,gBAAgB,EAAEhC,MAAM,CAACiC,QAAQ,CAAC,CAAC;QACnC,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE;MACf,CAAC,CAAC;MAEFN,QAAQ,CAACO,SAAS;;MAElB;MACAlC,MAAM,CAACmC,MAAM,CAACC,IAAI,CAACT,QAAQ,CAACU,KAAK,CAACC,IAAI,CAAC,CAAC,CAACP,WAAW,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF7B,EAAE,CAAC,mDAAmD,EAAE,YAAY;MAClE,MAAMoB,MAAM,GAAG,MAAMH,MAAM,CAAC3B,QAAQ,CAAC,CAAC+B,KAAK,CAAC;QAC1CC,UAAU,EAAE5B,QAAQ,CAAC6B,SAAS,CAACD;MACjC,CAAC,CAAC,CAACE,SAAS,CAAC,CAAC;MACd,MAAMC,QAAQ,GAAGL,MAAM,CAACM,IAAI,CAAC,CAAC,CAAC;MAE/B,MAAMU,IAAI,GAAG,MAAMX,QAAQ,CAACU,KAAK,CAACC,IAAI,CAACC,QAAQ,CAAC;QAC9CC,OAAO,EAAE,CAAC,YAAY;MACxB,CAAC,CAAC;MACFxC,MAAM,CAACsC,IAAI,CAACd,UAAU,CAAC,CAACiB,IAAI,CAAC7C,QAAQ,CAAC8C,SAAS,CAAClB,UAAU,CAAC;;MAE3D;MACAxB,MAAM,CAACsC,IAAI,CAACd,UAAU,CAAC,CAACO,WAAW,CAAC,CAAC;MACrC/B,MAAM,CAAEsC,IAAI,CAASK,cAAc,CAAC,CAACC,aAAa,CAAC,CAAC;IACtD,CAAC,CAAC;IAEF1C,EAAE,CAAC,gDAAgD,EAAE,YAAY;MAC/D;MACA,MAAM2C,SAAS,GAAG,MAAM1B,MAAM,CAAC3B,QAAQ,CAAC,CAAC+B,KAAK,CAAC;QAC7CuB,IAAI,EAAE,CACJ;UAAE,YAAY,EAAE;YAAE,KAAK,EAAE;UAAM;QAAE,CAAC,EAClC;UAAE,YAAY,EAAE;YAAE,KAAK,EAAE;UAAM;QAAE,CAAC;MAEtC,CAAC,CAAC,CAACpB,SAAS,CAAC,CAAC;MACd,MAAMY,IAAI,GAAGO,SAAS,CAACjB,IAAI,CAAC,CAAC,CAAC;MAC9B5B,MAAM,CAACsC,IAAI,CAAC,CAACP,WAAW,CAAC,CAAC;MAE1B,MAAMgB,WAAW,GAAG,MAAMT,IAAI,CAACD,KAAK,CAACW,KAAK,CAACtB,SAAS,CAAC;QACnDc,OAAO,EAAE,CAAC,UAAU,EAAE,YAAY;MACpC,CAAC,CAAC;MACFxC,MAAM,CAAC+C,WAAW,CAACnB,IAAI,CAAC,CAACqB,YAAY,CAAC,CAAC,CAAC;MACxCjD,MAAM,CAAC+C,WAAW,CAACG,aAAa,CAAC,CAACN,aAAa,CAAC,CAAC;;MAEjD;MACA5C,MAAM,CAAC+C,WAAW,CAACnB,IAAI,CAAC,CAAC,CAAC,CAAEJ,UAAU,CAAC,CAACO,WAAW,CAAC,CAAC;MACrD/B,MAAM,CAAE+C,WAAW,CAACnB,IAAI,CAAC,CAAC,CAAC,CAASuB,MAAM,CAAC,CAACP,aAAa,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF1C,EAAE,CAAC,2EAA2E,EAAE,YAAY;MAC1F;MACA,MAAM2C,SAAS,GAAG,MAAM1B,MAAM,CAAC3B,QAAQ,CAAC,CAAC+B,KAAK,CAAC;QAC7CuB,IAAI,EAAE,CACJ;UAAE,YAAY,EAAE;YAAE,KAAK,EAAE;UAAM;QAAE,CAAC,EAClC;UAAE,YAAY,EAAE;YAAE,KAAK,EAAE;UAAM;QAAE,CAAC;MAEtC,CAAC,CAAC,CAACpB,SAAS,CAAC,CAAC;MACd,MAAMY,IAAI,GAAGO,SAAS,CAACjB,IAAI,CAAC,CAAC,CAAC;MAC9B5B,MAAM,CAACsC,IAAI,CAAC,CAACP,WAAW,CAAC,CAAC;MAE1B,MAAMqB,IAAI,GAAG,MAAMd,IAAI,CAACD,KAAK,CAACW,KAAK,CAACT,QAAQ,CAC1C3C,QAAQ,CAAC6B,SAAS,CAACD,UAAU,EAC7B;QACEgB,OAAO,EAAE,CAAC,YAAY;MACxB,CACF,CAAC;MACDxC,MAAM,CAACoD,IAAI,CAAC,CAACrB,WAAW,CAAC,CAAC;;MAE1B;MACA/B,MAAM,CAACoD,IAAI,CAAC5B,UAAU,CAAC,CAACO,WAAW,CAAC,CAAC;MACrC/B,MAAM,CAAEoD,IAAI,CAAST,cAAc,CAAC,CAACC,aAAa,CAAC,CAAC;IACtD,CAAC,CAAC;IACF1C,EAAE,CAAC,kCAAkC,EAAE,YAAY;MACjD,MAAMoB,MAAM,GAAG,MAAMH,MAAM,CAAC3B,QAAQ,CAAC,CAAC+B,KAAK,CAAC;QAC1CC,UAAU,EAAE5B,QAAQ,CAAC6B,SAAS,CAACD;MACjC,CAAC,CAAC,CAACE,SAAS,CACV;QACE2B,WAAW,EAAE;MACf,CACF,CAAC;MACD,MAAMC,OAAO,GAAGhC,MAAM,CAACM,IAAI,CAAC,CAAC,CAAC,CAAC2B,IAAI;MACnCvD,MAAM,CAACsD,OAAO,CAAC,CAACvB,WAAW,CAAC,CAAC;MAC7B/B,MAAM,CAACsD,OAAO,CAAC,CAACb,IAAI,CAClB,yEACF,CAAC;IACH,CAAC,CAAC;IACFvC,EAAE,CAAC,kCAAkC,EAAE,YAAY;MACjD,MAAMsD,OAAO,GAAGrB,MAAM,CAACC,IAAI,CAAC7C,QAAQ,CAAC;MACrCS,MAAM,CAACwD,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC,CAACC,aAAa,CAAC,CACnC,eAAe,EACf,UAAU,EACV,+BAA+B,EAC/B,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,WAAW,EACX,gCAAgC,CACjC,CAACD,IAAI,CAAC,CAAC,CAAC;IACX,CAAC,CAAC;EACJ,CAAC,CAAC;EACF1D,QAAQ,CAAC,OAAO,EAAE,MAAM;IACtB,IAAI4B,QAIH;IACD7B,SAAS,CAAC,YAAY;MACpB6B,QAAQ,GAAG,CAAC,MAAMR,MAAM,CAAC3B,QAAQ,CAAC,CAAC+B,KAAK,CAAC;QACvCC,UAAU,EAAE5B,QAAQ,CAAC8C,SAAS,CAAClB;MACjC,CAAC,CAAC,CAACE,SAAS,CAAC,CAAC,EAAEE,IAAI,CAAC,CAAC,CAAC;MAEvB5B,MAAM,CAAC2B,QAAQ,CAAC,CAACK,aAAa,CAAC;QAC7B,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,UAAU;QACzB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,MAAM;QACf,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE;MACf,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF9B,EAAE,CAAC,uDAAuD,EAAE,YAAY;MACtE,MAAMyD,eAAe,GAAGrD,gBAAgB,CACtCa,MAAM,CAAChB,iBAAiB,CAAC,EACzB;QACE,SAAS,EAAE,UAAU;QACrB,gBAAgB,EAAE,SAAS;QAC3B,mBAAmB,EAAE,YAAY;QACjC,YAAY,EAAE;UACZ,OAAO,EAAE;YAAE,MAAM,EAAE;UAAS,CAAC;UAC7B,YAAY,EAAE;YAAE,MAAM,EAAE;UAAU,CAAC;UACnC,UAAU,EAAE;YAAE,MAAM,EAAE;UAAS,CAAC;UAChC,QAAQ,EAAE;YAAE,MAAM,EAAE;UAAS;QAC/B;MACF,CAAC,EACD;QACE,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,UAAU;QACzB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE;MACZ,CACF,CAIC;MAED,MAAMyD,cAAc,GAAGjC,QAAQ,CAACkC,MAAM,CAACF,eAAe,CAAC;MAEvD1D,YAAY,CAAC2D,cAAc,CAAC,CAACE,aAAa,CAACnC,QAAQ,CAAC;MAEpD3B,MAAM,CAAC4D,cAAc,CAAC,CAAC5B,aAAa,CAClC;QACE,UAAU,EAAE,UAAU;QACtB,kBAAkB,EAAE,gBAAgB;QACpC,aAAa,EAAE,UAAU;QACzB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,KAAK;QACnB,kBAAkB,EAAE;UAClB,kBAAkB,EAAE+B;QACtB,CAAC;QACD,gBAAgB,EAAE,CAAC,CAAC;QACpB,gBAAgB,EAAE,CAAC,CAAC;QACpB,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE;MACf,CACF,CAAC;IACH,CAAC,CAAC;IAEF7D,EAAE,CAAC,8CAA8C,EAAE,YAAY;MAM7DD,YAAY,CALU;QAAE4D,MAAM,EAAEA,CAAA,KAAM,CAAC;MAAE,CAAC,CAKfA,MAAM,CAAClC,QAAQ,CAAC,CAAC,CAACqC,aAAa,CAMxD,CAAC;IACL,CAAC,CAAC;IAEF9D,EAAE,CAAC,gFAAgF,EAAE,YAAY;MAM/FD,YAAY,CALU;QAAE4D,MAAM,EAAEA,CAAA,KAAM,CAAC;MAAE,CAAC,CAM1BA,MAAM,CAAC,CAAC,CAA6C,CACrE,CAAC,CAACG,aAAa,CAMb,CAAC;IACL,CAAC,CAAC;IAEF9D,EAAE,CAAC,4CAA4C,EAAE,YAAY;MAC3D,MAAM0D,cAAc,GAAGjC,QAAQ,CAACkC,MAAM,CAAC;QACrC,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE;MACf,CAAC,CAAC;MAEF7D,MAAM,CAAC4D,cAAc,CAAC,CAAC5B,aAAa,CAClC;QACE,UAAU,EAAE,UAAU;QACtB,kBAAkB,EAAE,gBAAgB;QACpC,aAAa,EAAE,UAAU;QACzB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE,KAAK;QACnB,kBAAkB,EAAE;UAClB,kBAAkB,EAAE+B;QACtB,CAAC;QACD,gBAAgB,EAAE,CAAC,CAAC;QACpB,gBAAgB,EAAE,CAAC,CAAC;QACpB,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE;MACf,CACF,CAAC;IACH,CAAC,CAAC;IAEF7D,EAAE,CAAC,mCAAmC,EAAE,YAAY;MAMlDD,YAAY,CALU;QAAE4D,MAAM,EAAEA,CAAA,KAAM,CAAC;MAAE,CAAC,CAKfA,MAAM,CAAC;QAChC,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE;MACf,CAAC,CAAC,CAAC,CAACG,aAAa,CAMf,CAAC;IACL,CAAC,CAAC;IAEF9D,EAAE,CAAC,sBAAsB,EAAE,YAAY;MACrC,MAAM0D,cAAc,GAAGjC,QAAQ,CAACkC,MAAM,CAAC;QACrC,UAAU,EAAE;MACd,CAAC,CAAC;MAEF7D,MAAM,CAAC4D,cAAc,CAAC,CAAC5B,aAAa,CAClC;QACE,UAAU,EAAE,UAAU;QACtB,kBAAkB,EAAE,gBAAgB;QACpC,aAAa,EAAE,UAAU;QACzB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,MAAM;QACf,YAAY,EAAE,KAAK;QACnB,kBAAkB,EAAE;UAClB,kBAAkB,EAAE+B;QACtB,CAAC;QACD,gBAAgB,EAAE,CAAC,CAAC;QACpB,gBAAgB,EAAE,CAAC,CAAC;QACpB,UAAU,EAAE,WAAW;QACvB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE;MACf,CACF,CAAC;IACH,CAAC,CAAC;IAEF7D,EAAE,CAAC,yCAAyC,EAAE,YAAY;MACxDF,MAAM,CAAC2B,QAAQ,CAACkC,MAAM,CAAC,CAAC,CAAC,CAAC7B,aAAa,CAAC;QACtC,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,UAAU;QACzB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,MAAM;QACf,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE;MACf,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF9B,EAAE,CAAC,yDAAyD,EAAE,YAAY;MACxEF,MAAM,CAAC,MACL2B,QAAQ,CAACkC,MAAM,CAAC;QACd,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE;MAChB,CAAC,CACH,CAAC,CAACI,OAAO,CAAC,CAAC;IACb,CAAC,CAAC;IACFlE,QAAQ,CAAC,WAAW,EAAE,MAAM;MAC1B,MAAMmE,YAAY,GAAG;QACnBC,OAAO,EAAE,cAAc;QACvBC,WAAW,EAAE,EAAE;QACfC,KAAK,EAAE,CAAC,CAAC;QACTC,UAAU,EAAE;UACV,QAAQ,EAAE;YACRC,IAAI,EAAE;UACR,CAAC;UACD,sBAAsB,EAAE;YACtBA,IAAI,EAAE;UACR;QACF,CAAC;QACDC,GAAG,EAAE,EAAE;QACPD,IAAI,EAAE,WAAW;QACjBE,UAAU,EAAE;MACd,CAA6B;MAE7B,MAAMC,mBAAmB,GAAG;QAC1BP,OAAO,EAAE,cAAc;QACvBI,IAAI,EAAE,WAAW;QACjB,sBAAsB,EAAEL;MAC1B,CAA+B;MAE/B,MAAMS,uBAAuB,GAAG;QAC9B,SAAS,EAAE,UAAU;QACrB,gBAAgB,EAAE,SAAS;QAC3B,mBAAmB,EAAE,YAAY;QACjC,YAAY,EAAE;UACZ,YAAY,EAAE;YAAE,MAAM,EAAE;UAAU,CAAC;UACnC,UAAU,EAAE;YAAE,MAAM,EAAE;UAAS;QACjC,CAAC;QACDC,YAAY,EAAE;UACZ,cAAc,EAAE;YACd,QAAQ,EAAE;UACZ;QACF,CAAC;QACDC,mBAAmB,EAAE;UACnB,cAAc,EAAE;YACd,UAAU,EAAE;UACd;QACF,CAAC;QACD,CAACxE,oBAAoB,GAAG;UACtB,cAAc,EAAE;YAAEyE,GAAG,EAAEZ;UAAa;QACtC,CAAC;QACDK,IAAI,EAAE,QAAQ;QACdQ,aAAa,EAAE,UAAU;QACzBC,iBAAiB,EAAE,EAAE;QACrBC,MAAM,EAAE,QAAQ;QAChBb,WAAW,EAAE,EAAE;QACfC,KAAK,EAAE,CAAC,CAAC;QACTG,GAAG,EAAE;MACP,CAAuC;MAEvCtE,EAAE,CAAC,uDAAuD,EAAE,MAAM;QAChE,MAAMgF,kBAAkB,GAAG5E,gBAAgB,CACzCa,MAAM,CAAChB,iBAAiB,CAAC,EACzBwE,uBAAuB,EACvB;UACE,UAAU,EAAE,UAAU;UACtB,aAAa,EAAE,UAAU;UACzB,aAAa,EAAE,KAAK;UACpB,QAAQ,EAAE,UAAU;UACpB,YAAY,EAAE,KAAK;UACnB,UAAU,EAAE;QACd,CACF,CAIC;QAED,MAAMQ,qBAAqB,GAAGD,kBAAkB,CAACE,GAAG,CAClDV,mBACF,CAAC;QAED,MAAMW,eAAe,GAAGF,qBAAqB,CAACtB,MAAM,CAAC;UACnD,QAAQ,EAAE;QACZ,CAAC,CAAC;QAEF7D,MAAM,CAACqF,eAAe,CAAC,CAACrD,aAAa,CACnC;UACE,UAAU,EAAE,cAAc;UAC1B,kBAAkB,EAAE,gBAAgB;UACpC,aAAa,EAAE,UAAU;UACzB,aAAa,EAAE,KAAK;UACpB,QAAQ,EAAE,YAAY;UACtB,QAAQ,EAAE;QACZ,CACF,CAAC;QAEDhC,MAAM,CAACqF,eAAe,CAACD,GAAG,CAAC,UAAU,CAAC,CAAC,CAACpD,aAAa,CACnD;UACE,UAAU,EAAE,UAAU;UACtB,kBAAkB,EAAE,gBAAgB;UACpC,aAAa,EAAE,UAAU;UACzB,aAAa,EAAE,KAAK;UACpB,QAAQ,EAAE,YAAY;UACtB,YAAY,EAAE,KAAK;UACnB,UAAU,EAAE;QACd,CACF,CAAC;MACH,CAAC,CAAC;MACF9B,EAAE,CAAC,+FAA+F,EAAE,MAAM;QACxG,MAAMgF,kBAAkB,GAAG5E,gBAAgB,CACzCa,MAAM,CAAChB,iBAAiB,CAAC,EACzBwE,uBAAuB,EACvB;UACE,UAAU,EAAE,UAAU;UACtB,aAAa,EAAE,UAAU;UACzB,aAAa,EAAE,KAAK;UACpB,QAAQ,EAAE,UAAU;UACpB,YAAY,EAAE,KAAK;UACnB,UAAU,EAAE;QACd,CACF,CAIC;QAED,MAAMW,qBAAqB,GAAGJ,kBAAkB,CAACE,GAAG,CAAClB,YAAY,CAAC;QAClElE,MAAM,CAAC,MACLsF,qBAAqB,CAACzB,MAAM,CAAC;UAC3B,sBAAsB,EAAE;QAC1B,CAAC,CACH,CAAC,CAAC0B,YAAY,CACZ,wHACF,CAAC;MACH,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EACFxF,QAAQ,CAAC,iBAAiB,EAAE,MAAM;IAChCG,EAAE,CAAC,kDAAkD,EAAE,YAAY;MACjE,MAAMoB,MAAM,GAAG,MAAMH,MAAM,CAAC3B,QAAQ,CAAC,CAAC+B,KAAK,CAAC;QAC1CC,UAAU,EAAE5B,QAAQ,CAAC6B,SAAS,CAACD;MACjC,CAAC,CAAC,CAACE,SAAS,CAAC,CAAC;MAEd,MAAMC,QAAQ,GAAGL,MAAM,CAACM,IAAI,CAAC,CAAC,CAAC;MAC/B5B,MAAM,CAAC2B,QAAQ,CAAC6D,gBAAgB,CAAC,CAAC/C,IAAI,CAAC,gBAAgB,CAAC;IAC1D,CAAC,CAAC;IAEFvC,EAAE,CAAC,4DAA4D,EAAE,YAAY;MAC3E,MAAMoB,MAAM,GAAG,MAAMH,MAAM,CAAC1B,YAAY,CAAC,CAACiC,SAAS,CAAC,CAAC;MAErD,MAAM+D,MAAM,GAAGnE,MAAM,CAACM,IAAI,CAAC,CAAC,CAAC;MAC7B5B,MAAM,CAACyF,MAAM,CAACD,gBAAgB,CAAC,CAAC/C,IAAI,CAAC,gBAAgB,CAAC;IACxD,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,eAAeiD,WAAWA,CAACvE,MAAc,EAA2B;EACzE;EACA,OAAOA,MAAM,CAAC3B,QAAQ,CAAC,CAAC+C,QAAQ,CAAC,CAAC,EAAE;IAClCC,OAAO,EAAE,CAAC,YAAY;EACxB,CAAC,CAAC;AACJ;AAEA,OAAO,eAAemD,YAAYA,CAChCxE,MAAc,EACgB;EAC9B;EACA,OAAOA,MAAM,CAAC3B,QAAQ,CAAC,CAAC+C,QAAQ,CAAC,CAAC,EAAE;IAClCC,OAAO,EAAE,CAAC,YAAY;EACxB,CAAC,CAAC;AACJ;AAEA,OAAO,eAAeoD,wCAAwCA,CAC5DzE,MAAc,EACyB;EACvC,OAAOA,MAAM,CAAC3B,QAAQ,CAAC,CAAC+C,QAAQ,CAAC,CAAC,EAAE;IAClCC,OAAO,EAAE,CAAC,YAAY;EACxB,CAAC,CAAC;AACJ;AAEA,OAAO,eAAeqD,gDAAgDA,CACpE1E,MAAc,EACyB;EACvC,OAAOA,MAAM,CAAC3B,QAAQ,CAAC,CAAC+C,QAAQ,CAAC,CAAC,EAAE;IAClCC,OAAO,EAAE,CAAC,YAAY;EACxB,CAAC,CAAC;AACJ;AAEA,OAAO,eAAesD,wCAAwCA,CAC5D3E,MAAc,EACqC;EACnD,OAAOA,MAAM,CAAC3B,QAAQ,CAAC,CAAC+C,QAAQ,CAAC,CAAC,EAAE;IAClCC,OAAO,EAAE,CAAC,YAAY;EACxB,CAAC,CAAC;AACJ;AAEA,OAAO,eAAeuD,gDAAgDA,CACpE5E,MAAc,EACyB;EACvC,OAAOA,MAAM,CAAC3B,QAAQ,CAAC,CAAC+C,QAAQ,CAAC,CAAC,EAAE;IAClCC,OAAO,EAAE,CAAC,YAAY;EACxB,CAAC,CAAC;AACJ;AAEA,OAAO,eAAewD,wCAAwCA,CAC5D7E,MAAc,EACW;EACzB,OAAOA,MAAM,CAAC3B,QAAQ,CAAC,CAAC+C,QAAQ,CAAC,CAAC,CAAC;AACrC;AAEA,OAAO,eAAe0D,4CAA4CA,CAChE9E,MAAc,EACW;EACzB,OAAOA,MAAM,CAAC3B,QAAQ,CAAC,CAAC+C,QAAQ,CAAC,CAAC,CAAC;AACrC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeseries.test.js","names":["Employee","LegacyFauxFoundry","startNodeApiServer","formatISO","sub","beforeAll","describe","expect","it","createClient","client","statusTimeseriesData","time","Date","now","value","sensorTimeseriesData","testSetup","fauxFoundry","getDefaultDataStore","registerTimeSeriesData","apiServer","close","employee","fetchOne","$primaryKey","toEqual","point","employeeStatus","getFirstPoint","getLastPoint","firstPoint","employeeSensor","lastPoint","points","getAllPoints","$before","$unit","toBeDefined","objectContaining","$after","$startTime","$endTime","pointsIter","asyncIterPoints","push"],"sources":["timeseries.test.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-1.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { TimeSeriesPoint } from \"@osdk/api\";\nimport { Employee } from \"@osdk/client.test.ontology\";\nimport { LegacyFauxFoundry, startNodeApiServer } from \"@osdk/shared.test\";\nimport { formatISO, sub } from \"date-fns\";\nimport { type SetupServerApi } from \"msw/node\";\nimport { beforeAll, describe, expect, it } from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\n\ndescribe(\"Timeseries\", () => {\n let apiServer: SetupServerApi;\n let client: Client;\n const statusTimeseriesData = [\n { time: formatISO(sub(Date.now(), { \"years\": 2 })), value: -365 },\n { time: formatISO(sub(Date.now(), { \"months\": 2 })), value: -30 },\n { time: formatISO(sub(Date.now(), { \"weeks\": 2 })), value: -7 },\n { time: formatISO(sub(Date.now(), { \"days\": 2 })), value: -1 },\n ];\n\n const sensorTimeseriesData = [\n { time: formatISO(sub(Date.now(), { \"years\": 3 })), value: -365 },\n { time: formatISO(sub(Date.now(), { \"months\": 3 })), value: -30 },\n { time: formatISO(sub(Date.now(), { \"weeks\": 3 })), value: -7 },\n { time: formatISO(sub(Date.now(), { \"days\": 3 })), value: -1 },\n ];\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(\n new LegacyFauxFoundry(),\n createClient,\n );\n ({ client } = testSetup);\n\n testSetup.fauxFoundry.getDefaultDataStore()\n .registerTimeSeriesData(\n \"Employee\",\n \"50030\",\n \"employeeStatus\",\n statusTimeseriesData,\n );\n\n testSetup.fauxFoundry.getDefaultDataStore()\n .registerTimeSeriesData(\n \"Employee\",\n \"50030\",\n \"employeeSensor\",\n sensorTimeseriesData,\n );\n\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"get first points works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const point = await employee.employeeStatus?.getFirstPoint();\n expect(point?.time).toEqual(statusTimeseriesData[0].time);\n expect(point?.value).toEqual(statusTimeseriesData[0].value);\n });\n\n it(\"get last points works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const point = await employee.employeeStatus?.getLastPoint();\n expect(point?.time).toEqual(statusTimeseriesData[3].time);\n expect(point?.value).toEqual(statusTimeseriesData[3].value);\n });\n\n it(\"get last and first points works with sensor object\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n\n const firstPoint = await employee.employeeSensor?.getFirstPoint();\n const lastPoint = await employee.employeeSensor?.getLastPoint();\n\n expect(firstPoint?.time).toEqual(sensorTimeseriesData[0].time);\n expect(firstPoint?.value).toEqual(sensorTimeseriesData[0].value);\n\n expect(lastPoint?.time).toEqual(sensorTimeseriesData[3].time);\n expect(lastPoint?.value).toEqual(sensorTimeseriesData[3].value);\n });\n\n it(\"getAll points with before works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n\n const points = await employee.employeeStatus?.getAllPoints({\n $before: 1,\n $unit: \"month\",\n });\n expect(points).toBeDefined();\n expect(points!).toEqual([\n expect.objectContaining({ value: -7 }),\n expect.objectContaining({ value: -1 }),\n ]);\n });\n\n it(\"getAll points with after works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const points = await employee.employeeStatus?.getAllPoints({\n $after: 1,\n $unit: \"month\",\n });\n expect(points).toBeDefined();\n expect(points!).toEqual([\n expect.objectContaining({ value: -365 }),\n expect.objectContaining({ value: -30 }),\n expect.objectContaining({ value: -7 }),\n expect.objectContaining({ value: -1 }),\n ]);\n });\n\n it(\"getAll points with absolute range works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const points = await employee.employeeStatus?.getAllPoints({\n $startTime: formatISO(sub(Date.now(), { \"months\": 3 })),\n $endTime: formatISO(sub(Date.now(), { \"days\": 10 })),\n });\n expect(points).toBeDefined();\n expect(points!).toEqual([\n expect.objectContaining({ value: -30 }),\n expect.objectContaining({ value: -7 }),\n ]);\n });\n\n it(\"getAll points with no query works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const points = await employee.employeeStatus?.getAllPoints();\n expect(points).toBeDefined();\n expect(points!).toEqual([\n expect.objectContaining({ value: -365 }),\n expect.objectContaining({ value: -30 }),\n expect.objectContaining({ value: -7 }),\n expect.objectContaining({ value: -1 }),\n ]);\n });\n\n it(\"async iter points with absolute range works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const pointsIter = employee.employeeStatus?.asyncIterPoints({\n $startTime: formatISO(sub(Date.now(), { \"months\": 3 })),\n $endTime: formatISO(sub(Date.now(), { \"days\": 10 })),\n });\n\n const points: TimeSeriesPoint<string>[] = [];\n for await (const point of pointsIter!) {\n points.push(point);\n }\n expect(points).toBeDefined();\n expect(points!).toEqual([\n expect.objectContaining({ value: -30 }),\n expect.objectContaining({ value: -7 }),\n ]);\n });\n\n it(\"async iter points with no query\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const pointsIter = employee.employeeStatus?.asyncIterPoints();\n\n const points: TimeSeriesPoint<string>[] = [];\n for await (const point of pointsIter!) {\n points.push(point);\n }\n expect(points).toBeDefined();\n expect(points!).toEqual([\n expect.objectContaining({ value: -365 }),\n expect.objectContaining({ value: -30 }),\n expect.objectContaining({ value: -7 }),\n expect.objectContaining({ value: -1 }),\n ]);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"timeseries.test.js","names":["Employee","LegacyFauxFoundry","startNodeApiServer","formatISO","sub","beforeAll","describe","expect","it","createClient","client","statusTimeseriesData","time","Date","now","value","sensorTimeseriesData","testSetup","fauxFoundry","getDefaultDataStore","registerTimeSeriesData","apiServer","close","employee","fetchOne","$primaryKey","toEqual","point","employeeStatus","getFirstPoint","getLastPoint","firstPoint","employeeSensor","lastPoint","points","getAllPoints","$before","$unit","toBeDefined","objectContaining","$after","$startTime","$endTime","pointsIter","asyncIterPoints","push"],"sources":["timeseries.test.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-1.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { TimeSeriesPoint } from \"@osdk/api\";\nimport { Employee } from \"@osdk/client.test.ontology\";\nimport { LegacyFauxFoundry, startNodeApiServer } from \"@osdk/shared.test\";\nimport { formatISO, sub } from \"date-fns\";\nimport { beforeAll, describe, expect, it } from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\n\ndescribe(\"Timeseries\", () => {\n let client: Client;\n const statusTimeseriesData = [\n { time: formatISO(sub(Date.now(), { \"years\": 2 })), value: -365 },\n { time: formatISO(sub(Date.now(), { \"months\": 2 })), value: -30 },\n { time: formatISO(sub(Date.now(), { \"weeks\": 2 })), value: -7 },\n { time: formatISO(sub(Date.now(), { \"days\": 2 })), value: -1 },\n ];\n\n const sensorTimeseriesData = [\n { time: formatISO(sub(Date.now(), { \"years\": 3 })), value: -365 },\n { time: formatISO(sub(Date.now(), { \"months\": 3 })), value: -30 },\n { time: formatISO(sub(Date.now(), { \"weeks\": 3 })), value: -7 },\n { time: formatISO(sub(Date.now(), { \"days\": 3 })), value: -1 },\n ];\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(\n new LegacyFauxFoundry(),\n createClient,\n );\n ({ client } = testSetup);\n\n testSetup.fauxFoundry.getDefaultDataStore()\n .registerTimeSeriesData(\n \"Employee\",\n \"50030\",\n \"employeeStatus\",\n statusTimeseriesData,\n );\n\n testSetup.fauxFoundry.getDefaultDataStore()\n .registerTimeSeriesData(\n \"Employee\",\n \"50030\",\n \"employeeSensor\",\n sensorTimeseriesData,\n );\n\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"get first points works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const point = await employee.employeeStatus?.getFirstPoint();\n expect(point?.time).toEqual(statusTimeseriesData[0].time);\n expect(point?.value).toEqual(statusTimeseriesData[0].value);\n });\n\n it(\"get last points works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const point = await employee.employeeStatus?.getLastPoint();\n expect(point?.time).toEqual(statusTimeseriesData[3].time);\n expect(point?.value).toEqual(statusTimeseriesData[3].value);\n });\n\n it(\"get last and first points works with sensor object\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n\n const firstPoint = await employee.employeeSensor?.getFirstPoint();\n const lastPoint = await employee.employeeSensor?.getLastPoint();\n\n expect(firstPoint?.time).toEqual(sensorTimeseriesData[0].time);\n expect(firstPoint?.value).toEqual(sensorTimeseriesData[0].value);\n\n expect(lastPoint?.time).toEqual(sensorTimeseriesData[3].time);\n expect(lastPoint?.value).toEqual(sensorTimeseriesData[3].value);\n });\n\n it(\"getAll points with before works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n\n const points = await employee.employeeStatus?.getAllPoints({\n $before: 1,\n $unit: \"month\",\n });\n expect(points).toBeDefined();\n expect(points!).toEqual([\n expect.objectContaining({ value: -7 }),\n expect.objectContaining({ value: -1 }),\n ]);\n });\n\n it(\"getAll points with after works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const points = await employee.employeeStatus?.getAllPoints({\n $after: 1,\n $unit: \"month\",\n });\n expect(points).toBeDefined();\n expect(points!).toEqual([\n expect.objectContaining({ value: -365 }),\n expect.objectContaining({ value: -30 }),\n expect.objectContaining({ value: -7 }),\n expect.objectContaining({ value: -1 }),\n ]);\n });\n\n it(\"getAll points with absolute range works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const points = await employee.employeeStatus?.getAllPoints({\n $startTime: formatISO(sub(Date.now(), { \"months\": 3 })),\n $endTime: formatISO(sub(Date.now(), { \"days\": 10 })),\n });\n expect(points).toBeDefined();\n expect(points!).toEqual([\n expect.objectContaining({ value: -30 }),\n expect.objectContaining({ value: -7 }),\n ]);\n });\n\n it(\"getAll points with no query works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const points = await employee.employeeStatus?.getAllPoints();\n expect(points).toBeDefined();\n expect(points!).toEqual([\n expect.objectContaining({ value: -365 }),\n expect.objectContaining({ value: -30 }),\n expect.objectContaining({ value: -7 }),\n expect.objectContaining({ value: -1 }),\n ]);\n });\n\n it(\"async iter points with absolute range works\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const pointsIter = employee.employeeStatus?.asyncIterPoints({\n $startTime: formatISO(sub(Date.now(), { \"months\": 3 })),\n $endTime: formatISO(sub(Date.now(), { \"days\": 10 })),\n });\n\n const points: TimeSeriesPoint<string>[] = [];\n for await (const point of pointsIter!) {\n points.push(point);\n }\n expect(points).toBeDefined();\n expect(points!).toEqual([\n expect.objectContaining({ value: -30 }),\n expect.objectContaining({ value: -7 }),\n ]);\n });\n\n it(\"async iter points with no query\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n expect(employee.$primaryKey).toEqual(50030);\n const pointsIter = employee.employeeStatus?.asyncIterPoints();\n\n const points: TimeSeriesPoint<string>[] = [];\n for await (const point of pointsIter!) {\n points.push(point);\n }\n expect(points).toBeDefined();\n expect(points!).toEqual([\n expect.objectContaining({ value: -365 }),\n expect.objectContaining({ value: -30 }),\n expect.objectContaining({ value: -7 }),\n expect.objectContaining({ value: -1 }),\n ]);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
import { isOk } from "@osdk/api";
|
|
18
18
|
import { __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid, __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid } from "@osdk/api/unstable";
|
|
19
|
-
import { BarInterface, BgaoNflPlayer, Employee, FooInterface, Office } from "@osdk/client.test.ontology";
|
|
19
|
+
import { BarInterface, BgaoNflPlayer, Employee, FooInterface, objectTypeWithAllPropertyTypes, Office } from "@osdk/client.test.ontology";
|
|
20
20
|
import { LegacyFauxFoundry, startNodeApiServer, stubData } from "@osdk/shared.test";
|
|
21
21
|
import { beforeAll, describe, expect, expectTypeOf, it } from "vitest";
|
|
22
22
|
import { createClient } from "../createClient.js";
|
|
@@ -601,6 +601,103 @@ describe("ObjectSet", () => {
|
|
|
601
601
|
});
|
|
602
602
|
expect(objectWithUndefinedRdp.derivedPropertyName).toBeUndefined();
|
|
603
603
|
});
|
|
604
|
+
it("correctly deserializes attachments and geo properties", async () => {
|
|
605
|
+
const objectWithRdp = await client(objectTypeWithAllPropertyTypes).withProperties({
|
|
606
|
+
"attachmentSelectDp": base => base.pivotTo("linkedObjectType").selectProperty("attachment"),
|
|
607
|
+
"geoSelectDp": base => base.pivotTo("linkedObjectType").selectProperty("geoShape"),
|
|
608
|
+
"geoCollectListDp": base => base.pivotTo("linkedObjectType").aggregate("geoShapeArray:collectList")
|
|
609
|
+
}).fetchOne(5);
|
|
610
|
+
expectTypeOf(objectWithRdp.attachmentSelectDp).toEqualTypeOf();
|
|
611
|
+
expect(objectWithRdp.attachmentSelectDp).toMatchInlineSnapshot(`
|
|
612
|
+
{
|
|
613
|
+
"fetchContents": [Function],
|
|
614
|
+
"fetchMetadata": [Function],
|
|
615
|
+
"rid": "ri.attachments.main.attachment.86016861-707f-4292-b258-6a7108915a75",
|
|
616
|
+
}
|
|
617
|
+
`);
|
|
618
|
+
expectTypeOf(objectWithRdp.geoSelectDp).toEqualTypeOf();
|
|
619
|
+
expect(objectWithRdp.geoSelectDp).toMatchInlineSnapshot(`
|
|
620
|
+
{
|
|
621
|
+
"coordinates": [
|
|
622
|
+
[
|
|
623
|
+
[
|
|
624
|
+
1,
|
|
625
|
+
1,
|
|
626
|
+
],
|
|
627
|
+
[
|
|
628
|
+
1,
|
|
629
|
+
2,
|
|
630
|
+
],
|
|
631
|
+
[
|
|
632
|
+
2,
|
|
633
|
+
2,
|
|
634
|
+
],
|
|
635
|
+
[
|
|
636
|
+
2,
|
|
637
|
+
1,
|
|
638
|
+
],
|
|
639
|
+
[
|
|
640
|
+
1,
|
|
641
|
+
1,
|
|
642
|
+
],
|
|
643
|
+
],
|
|
644
|
+
],
|
|
645
|
+
"type": "Polygon",
|
|
646
|
+
}
|
|
647
|
+
`);
|
|
648
|
+
expectTypeOf(objectWithRdp.geoCollectListDp).toEqualTypeOf();
|
|
649
|
+
expect(objectWithRdp.geoCollectListDp).toMatchInlineSnapshot(`
|
|
650
|
+
[
|
|
651
|
+
[
|
|
652
|
+
{
|
|
653
|
+
"coordinates": [
|
|
654
|
+
[
|
|
655
|
+
[
|
|
656
|
+
1,
|
|
657
|
+
1,
|
|
658
|
+
],
|
|
659
|
+
[
|
|
660
|
+
1,
|
|
661
|
+
2,
|
|
662
|
+
],
|
|
663
|
+
[
|
|
664
|
+
2,
|
|
665
|
+
2,
|
|
666
|
+
],
|
|
667
|
+
[
|
|
668
|
+
2,
|
|
669
|
+
1,
|
|
670
|
+
],
|
|
671
|
+
[
|
|
672
|
+
1,
|
|
673
|
+
1,
|
|
674
|
+
],
|
|
675
|
+
],
|
|
676
|
+
],
|
|
677
|
+
"type": "Polygon",
|
|
678
|
+
},
|
|
679
|
+
],
|
|
680
|
+
]
|
|
681
|
+
`);
|
|
682
|
+
|
|
683
|
+
// Tests that we deserialize properly for fetchPage as well
|
|
684
|
+
const fetchPageTest = await client(objectTypeWithAllPropertyTypes).withProperties({
|
|
685
|
+
"attachmentSelectDp": base => base.pivotTo("linkedObjectType").selectProperty("attachment"),
|
|
686
|
+
"geoSelectDp": base => base.pivotTo("linkedObjectType").selectProperty("geoShape"),
|
|
687
|
+
"geoCollectListDp": base => base.pivotTo("linkedObjectType").aggregate("geoShapeArray:collectList")
|
|
688
|
+
}).where({
|
|
689
|
+
"id": {
|
|
690
|
+
"$eq": 5
|
|
691
|
+
}
|
|
692
|
+
}).fetchPage();
|
|
693
|
+
expect(fetchPageTest.data[0].attachmentSelectDp).toMatchInlineSnapshot(`
|
|
694
|
+
{
|
|
695
|
+
"fetchContents": [Function],
|
|
696
|
+
"fetchMetadata": [Function],
|
|
697
|
+
"rid": "ri.attachments.main.attachment.86016861-707f-4292-b258-6a7108915a75",
|
|
698
|
+
}
|
|
699
|
+
`);
|
|
700
|
+
});
|
|
604
701
|
});
|
|
605
702
|
|
|
606
703
|
// Can't run these tests because we can't load by primary key!
|