@osdk/client 2.2.0-beta.7 → 2.2.0-beta.8
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 +25 -0
- package/build/browser/Client.js.map +1 -1
- package/build/browser/createClient.js +11 -4
- package/build/browser/createClient.js.map +1 -1
- package/build/browser/index.js +1 -0
- package/build/browser/index.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js +25 -0
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects.js +8 -1
- package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects.test.js +7 -3
- package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
- package/build/browser/object/createObjectSpecifierFromPrimaryKey.js +20 -0
- package/build/browser/object/createObjectSpecifierFromPrimaryKey.js.map +1 -0
- package/build/browser/object/object.test.js +109 -0
- package/build/browser/object/object.test.js.map +1 -1
- package/build/browser/objectSet/ObjectSet.test.js +15 -1
- package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +2 -0
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
- package/build/browser/queries/applyQuery.js +33 -1
- package/build/browser/queries/applyQuery.js.map +1 -1
- package/build/browser/queries/queries.test.js +26 -5
- package/build/browser/queries/queries.test.js.map +1 -1
- package/build/browser/util/UserAgent.js +1 -1
- package/build/browser/util/toDataValueQueries.js +17 -0
- package/build/browser/util/toDataValueQueries.js.map +1 -1
- package/build/cjs/{Client-C8K3E1vH.d.cts → Client-DBTcM9gB.d.cts} +1 -1
- package/build/cjs/index.cjs +89 -5
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +6 -4
- package/build/cjs/public/internal.d.cts +1 -1
- package/build/cjs/public/unstable-do-not-use.d.cts +1 -1
- package/build/esm/Client.js.map +1 -1
- package/build/esm/createClient.js +11 -4
- package/build/esm/createClient.js.map +1 -1
- package/build/esm/index.js +1 -0
- package/build/esm/index.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js +25 -0
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects.js +8 -1
- package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects.test.js +7 -3
- package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
- package/build/esm/object/createObjectSpecifierFromPrimaryKey.js +20 -0
- package/build/esm/object/createObjectSpecifierFromPrimaryKey.js.map +1 -0
- package/build/esm/object/object.test.js +109 -0
- package/build/esm/object/object.test.js.map +1 -1
- package/build/esm/objectSet/ObjectSet.test.js +15 -1
- package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +2 -0
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
- package/build/esm/queries/applyQuery.js +33 -1
- package/build/esm/queries/applyQuery.js.map +1 -1
- package/build/esm/queries/queries.test.js +26 -5
- package/build/esm/queries/queries.test.js.map +1 -1
- package/build/esm/util/UserAgent.js +1 -1
- package/build/esm/util/toDataValueQueries.js +17 -0
- package/build/esm/util/toDataValueQueries.js.map +1 -1
- package/build/types/Client.d.ts +1 -1
- package/build/types/Client.d.ts.map +1 -1
- package/build/types/createClient.d.ts.map +1 -1
- package/build/types/index.d.ts +2 -1
- package/build/types/index.d.ts.map +1 -1
- package/build/types/object/createObjectSpecifierFromPrimaryKey.d.ts +2 -0
- package/build/types/object/createObjectSpecifierFromPrimaryKey.d.ts.map +1 -0
- 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/queries/applyQuery.d.ts.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyQuery.js","names":["OntologiesV2","createObjectSet","hydrateAttachmentFromRidInternal","addUserAgentAndRequestContextHeaders","augmentRequestContext","toDataValueQueries","applyQuery","client","query","params","qd","ontologyProvider","getQueryDefinition","apiName","response","Queries","execute","finalMethodCall","ontologyRid","parameters","remapQueryParams","objectOutputDefs","getRequiredDefinitions","output","remappedResponse","remapQueryResponse","value","paramTypes","parameterMap","key","Object","entries","responseDataType","responseValue","definitions","nullable","undefined","Error","multiplicity","withoutMultiplicity","i","length","type","set","def","get","object","createQueryObjectResponse","objectSet","objectSets","objectType","reference","subtype","struct","requiresConversion","result","groups","push","subResult","subKey","dataType","Map","objectDef","getObjectDefinition","values","some","primaryKey","$apiName","$title","$objectType","$primaryKey"],"sources":["applyQuery.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n AllowedBucketKeyTypes,\n AllowedBucketTypes,\n CompileTimeMetadata,\n ObjectOrInterfaceDefinition,\n ObjectTypeDefinition,\n OsdkBase,\n PrimaryKeyType,\n QueryDataTypeDefinition,\n QueryDefinition,\n QueryParameterDefinition,\n} from \"@osdk/api\";\nimport type { DataValue } from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { createObjectSet } from \"../objectSet/createObjectSet.js\";\nimport { hydrateAttachmentFromRidInternal } from \"../public-utils/hydrateAttachmentFromRid.js\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport { augmentRequestContext } from \"../util/augmentRequestContext.js\";\nimport { toDataValueQueries } from \"../util/toDataValueQueries.js\";\nimport type { QueryParameterType, QueryReturnType } from \"./types.js\";\n\nexport async function applyQuery<\n QD extends QueryDefinition<any>,\n P extends QueryParameterType<CompileTimeMetadata<QD>[\"parameters\"]>,\n>(\n client: MinimalClient,\n query: QD,\n params?: P,\n): Promise<\n QueryReturnType<CompileTimeMetadata<QD>[\"output\"]>\n> {\n const qd = await client.ontologyProvider.getQueryDefinition(query.apiName);\n\n const response = await OntologiesV2.Queries.execute(\n addUserAgentAndRequestContextHeaders(\n augmentRequestContext(client, _ => ({ finalMethodCall: \"applyQuery\" })),\n query,\n ),\n await client.ontologyRid,\n query.apiName,\n {\n parameters: params\n ? await remapQueryParams(\n params as { [parameterId: string]: any },\n client,\n qd.parameters,\n )\n : {},\n },\n );\n const objectOutputDefs = await getRequiredDefinitions(qd.output, client);\n const remappedResponse = await remapQueryResponse(\n client,\n qd.output,\n response.value,\n objectOutputDefs,\n );\n return remappedResponse as QueryReturnType<CompileTimeMetadata<QD>[\"output\"]>;\n}\n\nasync function remapQueryParams(\n params: { [parameterId: string]: any },\n client: MinimalClient,\n paramTypes: Record<string, QueryParameterDefinition<any>>,\n): Promise<{ [parameterId: string]: any }> {\n const parameterMap: { [parameterName: string]: unknown } = {};\n for (const [key, value] of Object.entries(params)) {\n parameterMap[key] = await toDataValueQueries(\n value,\n client,\n paramTypes[key],\n );\n }\n return parameterMap;\n}\n\nasync function remapQueryResponse<\n Q extends ObjectTypeDefinition,\n T extends QueryDataTypeDefinition<Q | never>,\n>(\n client: MinimalClient,\n responseDataType: T,\n responseValue: DataValue,\n definitions: Map<string, ObjectOrInterfaceDefinition>,\n): Promise<QueryReturnType<T>> {\n // handle null responses\n if (responseValue == null) {\n if (responseDataType.nullable) {\n return undefined as unknown as QueryReturnType<typeof responseDataType>;\n } else {\n throw new Error(\"Got null response when nullable was not allowed\");\n }\n }\n\n if (\n responseDataType.multiplicity != null\n && responseDataType.multiplicity\n ) {\n const withoutMultiplicity = { ...responseDataType, multiplicity: false };\n for (let i = 0; i < responseValue.length; i++) {\n responseValue[i] = await remapQueryResponse(\n client,\n withoutMultiplicity,\n responseValue[i],\n definitions,\n );\n }\n return responseValue as QueryReturnType<typeof responseDataType>;\n }\n\n switch (responseDataType.type) {\n case \"union\": {\n throw new Error(\"Union return types are not yet supported\");\n }\n\n case \"set\": {\n for (let i = 0; i < responseValue.length; i++) {\n responseValue[i] = await remapQueryResponse(\n client,\n responseDataType.set,\n responseValue[i],\n definitions,\n );\n }\n\n return responseValue as QueryReturnType<typeof responseDataType>;\n }\n\n case \"attachment\": {\n return hydrateAttachmentFromRidInternal(\n client,\n responseValue,\n ) as QueryReturnType<\n typeof responseDataType\n >;\n }\n case \"object\": {\n const def = definitions.get(responseDataType.object);\n if (!def) {\n throw new Error(\n `Missing definition for ${responseDataType.object}`,\n );\n }\n return createQueryObjectResponse(\n responseValue,\n def,\n ) as QueryReturnType<\n typeof responseDataType\n >;\n }\n\n case \"objectSet\": {\n const def = definitions.get(responseDataType.objectSet);\n if (!def) {\n throw new Error(\n `Missing definition for ${responseDataType.objectSet}`,\n );\n }\n if (typeof responseValue === \"string\") {\n return createObjectSet(def, client, {\n type: \"intersect\",\n objectSets: [\n { type: \"base\", objectType: responseDataType.objectSet },\n { type: \"reference\", reference: responseValue },\n ],\n }) as QueryReturnType<typeof responseDataType>;\n }\n\n return createObjectSet(\n def,\n client,\n responseValue,\n ) as QueryReturnType<\n typeof responseDataType\n >;\n }\n case \"struct\": {\n // figure out what keys need to be fixed up\n for (const [key, subtype] of Object.entries(responseDataType.struct)) {\n if (requiresConversion(subtype)) {\n responseValue[key] = await remapQueryResponse(\n client,\n subtype,\n responseValue[key],\n definitions,\n );\n }\n }\n\n return responseValue as QueryReturnType<typeof responseDataType>;\n }\n case \"twoDimensionalAggregation\": {\n const result: {\n key: AllowedBucketKeyTypes;\n value: AllowedBucketTypes;\n }[] = [];\n for (const { key, value } of responseValue.groups) {\n result.push({ key, value });\n }\n return result as QueryReturnType<typeof responseDataType>;\n }\n\n case \"threeDimensionalAggregation\": {\n const result: {\n key: AllowedBucketKeyTypes;\n groups: { key: AllowedBucketKeyTypes; value: AllowedBucketTypes }[];\n }[] = [];\n for (const { key, groups } of responseValue.groups) {\n const subResult: { key: any; value: any }[] = [];\n for (const { key: subKey, value } of groups) {\n subResult.push({ key: subKey, value });\n }\n result.push({ key, groups: subResult });\n }\n return result as QueryReturnType<typeof responseDataType>;\n }\n }\n\n return responseValue as QueryReturnType<typeof responseDataType>;\n}\n\nasync function getRequiredDefinitions(\n dataType: QueryDataTypeDefinition,\n client: MinimalClient,\n): Promise<Map<string, ObjectOrInterfaceDefinition>> {\n const result = new Map<string, ObjectOrInterfaceDefinition>();\n switch (dataType.type) {\n case \"objectSet\": {\n const objectDef = await client.ontologyProvider.getObjectDefinition(\n dataType.objectSet,\n );\n result.set(dataType.objectSet, objectDef);\n break;\n }\n case \"object\": {\n const objectDef = await client.ontologyProvider.getObjectDefinition(\n dataType.object,\n );\n result.set(dataType.object, objectDef);\n break;\n }\n\n case \"set\": {\n return getRequiredDefinitions(dataType.set, client);\n }\n\n case \"struct\": {\n for (const value of Object.values(dataType.struct)) {\n for (\n const [type, objectDef] of await getRequiredDefinitions(value, client)\n ) {\n result.set(type, objectDef);\n }\n }\n break;\n }\n case \"attachment\":\n case \"boolean\":\n case \"date\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n case \"string\":\n case \"threeDimensionalAggregation\":\n case \"timestamp\":\n case \"twoDimensionalAggregation\":\n case \"union\":\n break;\n }\n\n return result;\n}\nfunction requiresConversion(dataType: QueryDataTypeDefinition) {\n switch (dataType.type) {\n case \"boolean\":\n case \"date\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n case \"string\":\n case \"timestamp\":\n return false;\n\n case \"union\":\n return true;\n\n case \"struct\":\n return Object.values(dataType.struct).some(requiresConversion);\n\n case \"set\":\n return requiresConversion(dataType.set);\n\n case \"attachment\":\n case \"objectSet\":\n case \"twoDimensionalAggregation\":\n case \"threeDimensionalAggregation\":\n case \"object\":\n return true;\n\n default:\n return false;\n }\n}\n\nexport function createQueryObjectResponse<\n Q extends ObjectOrInterfaceDefinition,\n>(\n primaryKey: PrimaryKeyType<Q>,\n objectDef: Q,\n): OsdkBase<Q> {\n return {\n $apiName: objectDef.apiName,\n $title: undefined,\n $objectType: objectDef.apiName,\n $primaryKey: primaryKey,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"applyQuery.js","names":["OntologiesV2","invariant","createObjectSpecifierFromPrimaryKey","createObjectSet","hydrateAttachmentFromRidInternal","addUserAgentAndRequestContextHeaders","augmentRequestContext","toDataValueQueries","applyQuery","client","query","params","qd","ontologyProvider","getQueryDefinition","apiName","response","Queries","execute","finalMethodCall","ontologyRid","parameters","remapQueryParams","objectOutputDefs","getRequiredDefinitions","output","remappedResponse","remapQueryResponse","value","paramTypes","parameterMap","key","Object","entries","responseDataType","responseValue","definitions","nullable","undefined","Error","multiplicity","withoutMultiplicity","i","length","type","set","def","get","object","createQueryObjectResponse","objectSet","objectSets","objectType","reference","subtype","struct","requiresConversion","map","Array","isArray","process","env","NODE_ENV","entry","keyType","getObjectSpecifier","valueType","result","groups","push","subResult","subKey","dataType","Map","objectDef","getObjectDefinition","values","some","primaryKey","objectTypeApiName","$apiName","$title","$objectType","$primaryKey","$objectSpecifier"],"sources":["applyQuery.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n AllowedBucketKeyTypes,\n AllowedBucketTypes,\n CompileTimeMetadata,\n ObjectOrInterfaceDefinition,\n ObjectTypeDefinition,\n OsdkBase,\n PrimaryKeyType,\n QueryDataTypeDefinition,\n QueryDefinition,\n QueryParameterDefinition,\n} from \"@osdk/api\";\nimport type { DataValue } from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { createObjectSpecifierFromPrimaryKey } from \"../object/createObjectSpecifierFromPrimaryKey.js\";\nimport { createObjectSet } from \"../objectSet/createObjectSet.js\";\nimport { hydrateAttachmentFromRidInternal } from \"../public-utils/hydrateAttachmentFromRid.js\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport { augmentRequestContext } from \"../util/augmentRequestContext.js\";\nimport { toDataValueQueries } from \"../util/toDataValueQueries.js\";\nimport type { QueryParameterType, QueryReturnType } from \"./types.js\";\n\nexport async function applyQuery<\n QD extends QueryDefinition<any>,\n P extends QueryParameterType<CompileTimeMetadata<QD>[\"parameters\"]>,\n>(\n client: MinimalClient,\n query: QD,\n params?: P,\n): Promise<\n QueryReturnType<CompileTimeMetadata<QD>[\"output\"]>\n> {\n const qd = await client.ontologyProvider.getQueryDefinition(query.apiName);\n\n const response = await OntologiesV2.Queries.execute(\n addUserAgentAndRequestContextHeaders(\n augmentRequestContext(client, _ => ({ finalMethodCall: \"applyQuery\" })),\n query,\n ),\n await client.ontologyRid,\n query.apiName,\n {\n parameters: params\n ? await remapQueryParams(\n params as { [parameterId: string]: any },\n client,\n qd.parameters,\n )\n : {},\n },\n );\n const objectOutputDefs = await getRequiredDefinitions(qd.output, client);\n const remappedResponse = await remapQueryResponse(\n client,\n qd.output,\n response.value,\n objectOutputDefs,\n );\n return remappedResponse as QueryReturnType<CompileTimeMetadata<QD>[\"output\"]>;\n}\n\nasync function remapQueryParams(\n params: { [parameterId: string]: any },\n client: MinimalClient,\n paramTypes: Record<string, QueryParameterDefinition<any>>,\n): Promise<{ [parameterId: string]: any }> {\n const parameterMap: { [parameterName: string]: unknown } = {};\n for (const [key, value] of Object.entries(params)) {\n parameterMap[key] = await toDataValueQueries(\n value,\n client,\n paramTypes[key],\n );\n }\n return parameterMap;\n}\n\nasync function remapQueryResponse<\n Q extends ObjectTypeDefinition,\n T extends QueryDataTypeDefinition<Q | never>,\n>(\n client: MinimalClient,\n responseDataType: T,\n responseValue: DataValue,\n definitions: Map<string, ObjectOrInterfaceDefinition>,\n): Promise<QueryReturnType<T>> {\n // handle null responses\n if (responseValue == null) {\n if (responseDataType.nullable) {\n return undefined as unknown as QueryReturnType<typeof responseDataType>;\n } else {\n throw new Error(\"Got null response when nullable was not allowed\");\n }\n }\n\n if (\n responseDataType.multiplicity != null\n && responseDataType.multiplicity\n ) {\n const withoutMultiplicity = { ...responseDataType, multiplicity: false };\n for (let i = 0; i < responseValue.length; i++) {\n responseValue[i] = await remapQueryResponse(\n client,\n withoutMultiplicity,\n responseValue[i],\n definitions,\n );\n }\n return responseValue as QueryReturnType<typeof responseDataType>;\n }\n\n switch (responseDataType.type) {\n case \"union\": {\n throw new Error(\"Union return types are not yet supported\");\n }\n\n case \"set\": {\n for (let i = 0; i < responseValue.length; i++) {\n responseValue[i] = await remapQueryResponse(\n client,\n responseDataType.set,\n responseValue[i],\n definitions,\n );\n }\n\n return responseValue as QueryReturnType<typeof responseDataType>;\n }\n\n case \"attachment\": {\n return hydrateAttachmentFromRidInternal(\n client,\n responseValue,\n ) as QueryReturnType<\n typeof responseDataType\n >;\n }\n case \"object\": {\n const def = definitions.get(responseDataType.object);\n if (!def) {\n throw new Error(\n `Missing definition for ${responseDataType.object}`,\n );\n }\n return createQueryObjectResponse(\n responseValue,\n def,\n ) as QueryReturnType<\n typeof responseDataType\n >;\n }\n\n case \"objectSet\": {\n const def = definitions.get(responseDataType.objectSet);\n if (!def) {\n throw new Error(\n `Missing definition for ${responseDataType.objectSet}`,\n );\n }\n if (typeof responseValue === \"string\") {\n return createObjectSet(def, client, {\n type: \"intersect\",\n objectSets: [\n { type: \"base\", objectType: responseDataType.objectSet },\n { type: \"reference\", reference: responseValue },\n ],\n }) as QueryReturnType<typeof responseDataType>;\n }\n\n return createObjectSet(\n def,\n client,\n responseValue,\n ) as QueryReturnType<\n typeof responseDataType\n >;\n }\n case \"struct\": {\n // figure out what keys need to be fixed up\n for (const [key, subtype] of Object.entries(responseDataType.struct)) {\n if (requiresConversion(subtype)) {\n responseValue[key] = await remapQueryResponse(\n client,\n subtype,\n responseValue[key],\n definitions,\n );\n }\n }\n\n return responseValue as QueryReturnType<typeof responseDataType>;\n }\n\n case \"map\": {\n const map = {} as any;\n\n invariant(Array.isArray(responseValue), \"Expected array entry\");\n for (const entry of responseValue) {\n invariant(entry.key, \"Expected key\");\n invariant(entry.value, \"Expected value\");\n const key = responseDataType.keyType.type === \"object\"\n ? getObjectSpecifier(\n entry.key,\n responseDataType.keyType.object,\n definitions,\n )\n : entry.key;\n const value = await remapQueryResponse(\n client,\n responseDataType.valueType,\n entry.value,\n definitions,\n );\n map[key] = value;\n }\n return map;\n }\n\n case \"twoDimensionalAggregation\": {\n const result: {\n key: AllowedBucketKeyTypes;\n value: AllowedBucketTypes;\n }[] = [];\n for (const { key, value } of responseValue.groups) {\n result.push({ key, value });\n }\n return result as QueryReturnType<typeof responseDataType>;\n }\n\n case \"threeDimensionalAggregation\": {\n const result: {\n key: AllowedBucketKeyTypes;\n groups: { key: AllowedBucketKeyTypes; value: AllowedBucketTypes }[];\n }[] = [];\n for (const { key, groups } of responseValue.groups) {\n const subResult: { key: any; value: any }[] = [];\n for (const { key: subKey, value } of groups) {\n subResult.push({ key: subKey, value });\n }\n result.push({ key, groups: subResult });\n }\n return result as QueryReturnType<typeof responseDataType>;\n }\n }\n\n return responseValue as QueryReturnType<typeof responseDataType>;\n}\n\nasync function getRequiredDefinitions(\n dataType: QueryDataTypeDefinition,\n client: MinimalClient,\n): Promise<Map<string, ObjectOrInterfaceDefinition>> {\n const result = new Map<string, ObjectOrInterfaceDefinition>();\n switch (dataType.type) {\n case \"objectSet\": {\n const objectDef = await client.ontologyProvider.getObjectDefinition(\n dataType.objectSet,\n );\n result.set(dataType.objectSet, objectDef);\n break;\n }\n case \"object\": {\n const objectDef = await client.ontologyProvider.getObjectDefinition(\n dataType.object,\n );\n result.set(dataType.object, objectDef);\n break;\n }\n\n case \"set\": {\n return getRequiredDefinitions(dataType.set, client);\n }\n\n case \"map\": {\n for (const value of [dataType.keyType, dataType.valueType]) {\n for (\n const [type, objectDef] of await getRequiredDefinitions(value, client)\n ) {\n result.set(type, objectDef);\n }\n }\n break;\n }\n\n case \"struct\": {\n for (const value of Object.values(dataType.struct)) {\n for (\n const [type, objectDef] of await getRequiredDefinitions(value, client)\n ) {\n result.set(type, objectDef);\n }\n }\n break;\n }\n case \"attachment\":\n case \"boolean\":\n case \"date\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n case \"string\":\n case \"threeDimensionalAggregation\":\n case \"timestamp\":\n case \"twoDimensionalAggregation\":\n case \"union\":\n break;\n }\n\n return result;\n}\nfunction requiresConversion(dataType: QueryDataTypeDefinition) {\n switch (dataType.type) {\n case \"boolean\":\n case \"date\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n case \"string\":\n case \"timestamp\":\n return false;\n\n case \"union\":\n return true;\n\n case \"struct\":\n return Object.values(dataType.struct).some(requiresConversion);\n\n case \"set\":\n return requiresConversion(dataType.set);\n\n case \"attachment\":\n case \"objectSet\":\n case \"twoDimensionalAggregation\":\n case \"threeDimensionalAggregation\":\n case \"object\":\n return true;\n\n default:\n return false;\n }\n}\n\nfunction getObjectSpecifier(\n primaryKey: any,\n objectTypeApiName: string,\n definitions: Map<string, ObjectOrInterfaceDefinition>,\n): string {\n const def = definitions.get(objectTypeApiName);\n if (!def) {\n throw new Error(\n `Missing definition for ${objectTypeApiName}`,\n );\n }\n return createObjectSpecifierFromPrimaryKey(\n def,\n primaryKey,\n );\n}\n\nexport function createQueryObjectResponse<\n Q extends ObjectOrInterfaceDefinition,\n>(\n primaryKey: PrimaryKeyType<Q>,\n objectDef: Q,\n): OsdkBase<Q> {\n return {\n $apiName: objectDef.apiName,\n $title: undefined,\n $objectType: objectDef.apiName,\n $primaryKey: primaryKey,\n $objectSpecifier: createObjectSpecifierFromPrimaryKey(\n objectDef,\n primaryKey,\n ),\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import { $ontologyRid, $Queries, acceptsThreeDimensionalAggregationFunction, acceptsTwoDimensionalAggregationFunction, addOne, Employee, incrementPersonAge, incrementPersonAgeComplex, queryAcceptsObject, queryAcceptsObjectSets, returnsDate, returnsTimestamp, threeDimensionalAggregationFunction, twoDimensionalAggregationFunction } from "@osdk/client.test.ontology";
|
|
17
|
+
import { $ontologyRid, $Queries, acceptsThreeDimensionalAggregationFunction, acceptsTwoDimensionalAggregationFunction, addOne, Employee, incrementPersonAge, incrementPersonAgeComplex, queryAcceptsObject, queryAcceptsObjectSets, queryTypeReturnsMap, returnsDate, returnsTimestamp, threeDimensionalAggregationFunction, twoDimensionalAggregationFunction } from "@osdk/client.test.ontology";
|
|
18
18
|
import { apiServer } from "@osdk/shared.test";
|
|
19
19
|
import { afterAll, beforeAll, describe, expect, expectTypeOf, it } from "vitest";
|
|
20
20
|
import { createClient } from "../createClient.js";
|
|
@@ -41,7 +41,8 @@ describe("queries", () => {
|
|
|
41
41
|
expect(result).toEqual({
|
|
42
42
|
$apiName: "Employee",
|
|
43
43
|
$objectType: "Employee",
|
|
44
|
-
$primaryKey: 50031
|
|
44
|
+
$primaryKey: 50031,
|
|
45
|
+
$objectSpecifier: "Employee:50031"
|
|
45
46
|
});
|
|
46
47
|
|
|
47
48
|
// Should also accept primary keys
|
|
@@ -51,7 +52,8 @@ describe("queries", () => {
|
|
|
51
52
|
expect(result2).toEqual({
|
|
52
53
|
$apiName: "Employee",
|
|
53
54
|
$objectType: "Employee",
|
|
54
|
-
$primaryKey: 50031
|
|
55
|
+
$primaryKey: 50031,
|
|
56
|
+
$objectSpecifier: "Employee:50031"
|
|
55
57
|
});
|
|
56
58
|
});
|
|
57
59
|
it("accepts objectSets", async () => {
|
|
@@ -98,7 +100,8 @@ describe("queries", () => {
|
|
|
98
100
|
object: {
|
|
99
101
|
$apiName: "Employee",
|
|
100
102
|
$objectType: "Employee",
|
|
101
|
-
$primaryKey: 50031
|
|
103
|
+
$primaryKey: 50031,
|
|
104
|
+
$objectSpecifier: "Employee:50031"
|
|
102
105
|
}
|
|
103
106
|
});
|
|
104
107
|
});
|
|
@@ -193,6 +196,24 @@ describe("queries", () => {
|
|
|
193
196
|
groups: []
|
|
194
197
|
}]);
|
|
195
198
|
});
|
|
199
|
+
it("map type request and response works", async () => {
|
|
200
|
+
client(queryTypeReturnsMap).executeFunction;
|
|
201
|
+
expectTypeOf().toMatchTypeOf();
|
|
202
|
+
const result = await client(queryTypeReturnsMap).executeFunction({
|
|
203
|
+
peopleMap: {
|
|
204
|
+
["Employee:person1"]: "hi"
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
expect(result).toMatchInlineSnapshot(`
|
|
208
|
+
{
|
|
209
|
+
"Employee:50030": "bye",
|
|
210
|
+
}
|
|
211
|
+
`);
|
|
212
|
+
expectTypeOf().toMatchTypeOf();
|
|
213
|
+
const object = await client(Employee).fetchOne(50030);
|
|
214
|
+
const value = result[object.$objectSpecifier];
|
|
215
|
+
expect(value).toBe("bye");
|
|
216
|
+
});
|
|
196
217
|
it("accepts and returns objects", async () => {
|
|
197
218
|
const employeeObjectSet = client(Employee);
|
|
198
219
|
await client(queryAcceptsObjectSets).executeFunction({
|
|
@@ -202,7 +223,7 @@ describe("queries", () => {
|
|
|
202
223
|
});
|
|
203
224
|
it("queries are enumerable", async () => {
|
|
204
225
|
const queries = Object.keys($Queries);
|
|
205
|
-
expect(queries).toStrictEqual(["acceptsThreeDimensionalAggregationFunction", "acceptsTwoDimensionalAggregationFunction", "addOne", "incrementPersonAge", "incrementPersonAgeComplex", "queryAcceptsObject", "queryAcceptsObjectSets", "queryTypeReturnsArray", "returnsDate", "returnsObject", "returnsTimestamp", "threeDimensionalAggregationFunction", "twoDimensionalAggregationFunction"]);
|
|
226
|
+
expect(queries).toStrictEqual(["acceptsThreeDimensionalAggregationFunction", "acceptsTwoDimensionalAggregationFunction", "addOne", "incrementPersonAge", "incrementPersonAgeComplex", "queryAcceptsObject", "queryAcceptsObjectSets", "queryTypeReturnsArray", "queryTypeReturnsMap", "returnsDate", "returnsObject", "returnsTimestamp", "threeDimensionalAggregationFunction", "twoDimensionalAggregationFunction"]);
|
|
206
227
|
});
|
|
207
228
|
it("queries work with arrays", async () => {
|
|
208
229
|
const result = await client($Queries.queryTypeReturnsArray).executeFunction({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.test.js","names":["$ontologyRid","$Queries","acceptsThreeDimensionalAggregationFunction","acceptsTwoDimensionalAggregationFunction","addOne","Employee","incrementPersonAge","incrementPersonAgeComplex","queryAcceptsObject","queryAcceptsObjectSets","returnsDate","returnsTimestamp","threeDimensionalAggregationFunction","twoDimensionalAggregationFunction","apiServer","afterAll","beforeAll","describe","expect","expectTypeOf","it","createClient","client","listen","close","result","executeFunction","n","toBe","employee","fetchOne","object","toEqual","$apiName","$objectType","$primaryKey","result2","employeeObjectSet","objectSet","toMatchTypeOf","resultWithTimestamp","resultWithDate","person","firstName","lastName","age","toEqualTypeOf","key","value","aggFunction","groups","startValue","endValue","fail","e","message","toMatch","queries","Object","keys","toStrictEqual","queryTypeReturnsArray","people"],"sources":["queries.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 { ObjectSet } from \"@osdk/api\";\nimport {\n $ontologyRid,\n $Queries,\n acceptsThreeDimensionalAggregationFunction,\n acceptsTwoDimensionalAggregationFunction,\n addOne,\n Employee,\n incrementPersonAge,\n incrementPersonAgeComplex,\n queryAcceptsObject,\n queryAcceptsObjectSets,\n returnsDate,\n returnsTimestamp,\n threeDimensionalAggregationFunction,\n twoDimensionalAggregationFunction,\n} from \"@osdk/client.test.ontology\";\nimport { apiServer } from \"@osdk/shared.test\";\nimport {\n afterAll,\n beforeAll,\n describe,\n expect,\n expectTypeOf,\n it,\n} from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\n\ndescribe(\"queries\", () => {\n let client: Client;\n\n beforeAll(async () => {\n apiServer.listen();\n client = createClient(\n \"https://stack.palantir.com\",\n $ontologyRid,\n async () => \"myAccessToken\",\n );\n });\n\n afterAll(() => {\n apiServer.close();\n });\n\n it(\"simple query works\", async () => {\n const result = await client(addOne).executeFunction({ n: 2 });\n expect(result).toBe(3);\n });\n\n it(\"accepts objects\", async () => {\n const employee = await client(Employee).fetchOne(\n 50030,\n );\n const result = await client(queryAcceptsObject).executeFunction({\n object: employee,\n });\n expect(result).toEqual({\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50031,\n });\n\n // Should also accept primary keys\n const result2 = await client(queryAcceptsObject).executeFunction({\n object: 50030,\n });\n expect(result2).toEqual({\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50031,\n });\n });\n\n it(\"accepts objectSets\", async () => {\n const employeeObjectSet = client(Employee);\n const result = await client(queryAcceptsObjectSets).executeFunction({\n objectSet: employeeObjectSet,\n });\n\n expectTypeOf<ObjectSet<Employee>>().toMatchTypeOf<typeof result>();\n });\n\n it(\"no params work\", async () => {\n const resultWithTimestamp = await client(returnsTimestamp)\n .executeFunction();\n expect(resultWithTimestamp).toBe(\"2019-01-01T00:00:00.000Z\");\n\n const resultWithDate = await client(returnsDate).executeFunction();\n expect(resultWithDate).toBe(\"2019-01-01\");\n });\n\n it(\"returns and accepts structs property\", async () => {\n const result = await client(incrementPersonAge).executeFunction({\n person: { firstName: \"John\", lastName: \"Doe\", age: 42 },\n });\n expect(result).toEqual({\n firstName: \"John\",\n lastName: \"Doe\",\n age: 43,\n });\n });\n\n it(\"returns and accepts complex structs property\", async () => {\n const employee = await client(Employee).fetchOne(\n 50030,\n );\n const result = await client(incrementPersonAgeComplex).executeFunction({\n person: { firstName: \"John\", lastName: \"Doe\", age: 42, object: employee },\n });\n expect(result).toEqual({\n firstName: \"John\",\n lastName: \"Doe\",\n age: 43,\n object: {\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50031,\n },\n });\n });\n\n it(\"two dimensional aggregation response works\", async () => {\n const result = await client(twoDimensionalAggregationFunction)\n .executeFunction();\n expectTypeOf<typeof result>().toEqualTypeOf<\n { key: string; value: number }[]\n >;\n expect(result).toEqual([{ key: \"Q-AFN\", value: 1 }, {\n key: \"Q-AFO\",\n value: 2,\n }]);\n });\n\n it(\"two dimensional aggregation request/response works\", async () => {\n const clientBoundQueryFunction =\n client(acceptsTwoDimensionalAggregationFunction).executeFunction;\n type InferredParamType = Parameters<\n typeof clientBoundQueryFunction\n >[0];\n\n expectTypeOf<{ aggFunction: { key: string; value: number }[] }>()\n .toMatchTypeOf<InferredParamType>();\n\n const result = await client(acceptsTwoDimensionalAggregationFunction)\n .executeFunction({\n aggFunction: [\n {\n key: \"testKey1\",\n value: 1,\n },\n {\n key: \"testKey2\",\n value: 2,\n },\n ],\n });\n expectTypeOf<typeof result>().toEqualTypeOf<\n { key: string; value: number }[]\n >;\n\n expect(result).toEqual([{ key: \"responseKey1\", value: 3 }, {\n key: \"responseKey2\",\n value: 4,\n }]);\n });\n\n it(\"three dimensional aggregation response works\", async () => {\n const result = await client(threeDimensionalAggregationFunction)\n .executeFunction();\n\n expectTypeOf<typeof result>().toEqualTypeOf<\n {\n key: string;\n groups: {\n key: { startValue: string | undefined; endValue: string | undefined };\n value: number;\n }[];\n }[]\n >;\n expect(result).toEqual([{\n key: \"Q-AFN\",\n groups: [{\n key: {\n startValue: \"2010-10-01T00:00:00Z\",\n endValue: \"2010-10-02T00:00:00Z\",\n },\n value: 65.0,\n }],\n }, { key: \"Q-AFO\", groups: [] }]);\n });\n\n it(\"throws when response is null and response is non-nullable\", async () => {\n try {\n const result = await client(addOne).executeFunction({ n: 3 });\n expect.fail(\"Should not reach here\");\n } catch (e) {\n expect((e as Error).message).toMatch(\n `Got null response when nullable was not allowed`,\n );\n }\n });\n\n it(\"three dimensional aggregation request/response works\", async () => {\n const clientBoundQueryFunction =\n client(acceptsThreeDimensionalAggregationFunction).executeFunction;\n type InferredParamType = Parameters<\n typeof clientBoundQueryFunction\n >[0];\n\n expectTypeOf<{\n aggFunction: {\n key: string;\n groups: {\n key: { startValue: string | undefined; endValue: string };\n value: number;\n }[];\n }[];\n }>()\n .toMatchTypeOf<InferredParamType>();\n\n const result = await client(acceptsThreeDimensionalAggregationFunction)\n .executeFunction({\n aggFunction: [\n {\n key: \"testKey1\",\n groups: [\n {\n key: {\n startValue: \"2010-10-01T00:00:00Z\",\n endValue: \"2010-10-02T00:00:00Z\",\n },\n value: 65.0,\n },\n ],\n },\n {\n key: \"testKey2\",\n groups: [],\n },\n ],\n });\n\n expect(result).toEqual([\n {\n key: \"Q-AFN\",\n groups: [\n {\n key: {\n startValue: \"2010-10-01T00:00:00Z\",\n endValue: \"2010-10-02T00:00:00Z\",\n },\n value: 65.0,\n },\n ],\n },\n {\n key: \"Q-AFO\",\n groups: [],\n },\n ]);\n });\n\n it(\"accepts and returns objects\", async () => {\n const employeeObjectSet = client(Employee);\n const result = await client(queryAcceptsObjectSets).executeFunction({\n objectSet: employeeObjectSet,\n });\n\n expectTypeOf<ObjectSet<Employee>>().toMatchTypeOf<typeof result>();\n });\n it(\"queries are enumerable\", async () => {\n const queries = Object.keys($Queries);\n expect(queries).toStrictEqual([\n \"acceptsThreeDimensionalAggregationFunction\",\n \"acceptsTwoDimensionalAggregationFunction\",\n \"addOne\",\n \"incrementPersonAge\",\n \"incrementPersonAgeComplex\",\n \"queryAcceptsObject\",\n \"queryAcceptsObjectSets\",\n \"queryTypeReturnsArray\",\n \"returnsDate\",\n \"returnsObject\",\n \"returnsTimestamp\",\n \"threeDimensionalAggregationFunction\",\n \"twoDimensionalAggregationFunction\",\n ]);\n });\n\n it(\"queries work with arrays\", async () => {\n const result = await client($Queries.queryTypeReturnsArray).executeFunction(\n { people: [\"Brad\", \"George\", \"Ryan\"] },\n );\n expect(result).toEqual([\"Pitt\", \"Clooney\", \"Reynolds\"]);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"queries.test.js","names":["$ontologyRid","$Queries","acceptsThreeDimensionalAggregationFunction","acceptsTwoDimensionalAggregationFunction","addOne","Employee","incrementPersonAge","incrementPersonAgeComplex","queryAcceptsObject","queryAcceptsObjectSets","queryTypeReturnsMap","returnsDate","returnsTimestamp","threeDimensionalAggregationFunction","twoDimensionalAggregationFunction","apiServer","afterAll","beforeAll","describe","expect","expectTypeOf","it","createClient","client","listen","close","result","executeFunction","n","toBe","employee","fetchOne","object","toEqual","$apiName","$objectType","$primaryKey","$objectSpecifier","result2","employeeObjectSet","objectSet","toMatchTypeOf","resultWithTimestamp","resultWithDate","person","firstName","lastName","age","toEqualTypeOf","key","value","aggFunction","groups","startValue","endValue","fail","e","message","toMatch","peopleMap","toMatchInlineSnapshot","queries","Object","keys","toStrictEqual","queryTypeReturnsArray","people"],"sources":["queries.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 { ObjectSet, ObjectSpecifier } from \"@osdk/api\";\nimport {\n $ontologyRid,\n $Queries,\n acceptsThreeDimensionalAggregationFunction,\n acceptsTwoDimensionalAggregationFunction,\n addOne,\n Employee,\n incrementPersonAge,\n incrementPersonAgeComplex,\n queryAcceptsObject,\n queryAcceptsObjectSets,\n queryTypeReturnsMap,\n returnsDate,\n returnsTimestamp,\n threeDimensionalAggregationFunction,\n twoDimensionalAggregationFunction,\n} from \"@osdk/client.test.ontology\";\nimport { apiServer } from \"@osdk/shared.test\";\nimport {\n afterAll,\n beforeAll,\n describe,\n expect,\n expectTypeOf,\n it,\n} from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\n\ndescribe(\"queries\", () => {\n let client: Client;\n\n beforeAll(async () => {\n apiServer.listen();\n client = createClient(\n \"https://stack.palantir.com\",\n $ontologyRid,\n async () => \"myAccessToken\",\n );\n });\n\n afterAll(() => {\n apiServer.close();\n });\n\n it(\"simple query works\", async () => {\n const result = await client(addOne).executeFunction({ n: 2 });\n expect(result).toBe(3);\n });\n\n it(\"accepts objects\", async () => {\n const employee = await client(Employee).fetchOne(\n 50030,\n );\n const result = await client(queryAcceptsObject).executeFunction({\n object: employee,\n });\n expect(result).toEqual({\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50031,\n $objectSpecifier: \"Employee:50031\",\n });\n\n // Should also accept primary keys\n const result2 = await client(queryAcceptsObject).executeFunction({\n object: 50030,\n });\n expect(result2).toEqual({\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50031,\n $objectSpecifier: \"Employee:50031\",\n });\n });\n\n it(\"accepts objectSets\", async () => {\n const employeeObjectSet = client(Employee);\n const result = await client(queryAcceptsObjectSets).executeFunction({\n objectSet: employeeObjectSet,\n });\n\n expectTypeOf<ObjectSet<Employee>>().toMatchTypeOf<typeof result>();\n });\n\n it(\"no params work\", async () => {\n const resultWithTimestamp = await client(returnsTimestamp)\n .executeFunction();\n expect(resultWithTimestamp).toBe(\"2019-01-01T00:00:00.000Z\");\n\n const resultWithDate = await client(returnsDate).executeFunction();\n expect(resultWithDate).toBe(\"2019-01-01\");\n });\n\n it(\"returns and accepts structs property\", async () => {\n const result = await client(incrementPersonAge).executeFunction({\n person: { firstName: \"John\", lastName: \"Doe\", age: 42 },\n });\n expect(result).toEqual({\n firstName: \"John\",\n lastName: \"Doe\",\n age: 43,\n });\n });\n\n it(\"returns and accepts complex structs property\", async () => {\n const employee = await client(Employee).fetchOne(\n 50030,\n );\n const result = await client(incrementPersonAgeComplex).executeFunction({\n person: { firstName: \"John\", lastName: \"Doe\", age: 42, object: employee },\n });\n expect(result).toEqual({\n firstName: \"John\",\n lastName: \"Doe\",\n age: 43,\n object: {\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50031,\n $objectSpecifier: \"Employee:50031\",\n },\n });\n });\n\n it(\"two dimensional aggregation response works\", async () => {\n const result = await client(twoDimensionalAggregationFunction)\n .executeFunction();\n expectTypeOf<typeof result>().toEqualTypeOf<\n { key: string; value: number }[]\n >;\n expect(result).toEqual([{ key: \"Q-AFN\", value: 1 }, {\n key: \"Q-AFO\",\n value: 2,\n }]);\n });\n\n it(\"two dimensional aggregation request/response works\", async () => {\n const clientBoundQueryFunction =\n client(acceptsTwoDimensionalAggregationFunction).executeFunction;\n type InferredParamType = Parameters<\n typeof clientBoundQueryFunction\n >[0];\n\n expectTypeOf<{ aggFunction: { key: string; value: number }[] }>()\n .toMatchTypeOf<InferredParamType>();\n\n const result = await client(acceptsTwoDimensionalAggregationFunction)\n .executeFunction({\n aggFunction: [\n {\n key: \"testKey1\",\n value: 1,\n },\n {\n key: \"testKey2\",\n value: 2,\n },\n ],\n });\n expectTypeOf<typeof result>().toEqualTypeOf<\n { key: string; value: number }[]\n >;\n\n expect(result).toEqual([{ key: \"responseKey1\", value: 3 }, {\n key: \"responseKey2\",\n value: 4,\n }]);\n });\n\n it(\"three dimensional aggregation response works\", async () => {\n const result = await client(threeDimensionalAggregationFunction)\n .executeFunction();\n\n expectTypeOf<typeof result>().toEqualTypeOf<\n {\n key: string;\n groups: {\n key: { startValue: string | undefined; endValue: string | undefined };\n value: number;\n }[];\n }[]\n >;\n expect(result).toEqual([{\n key: \"Q-AFN\",\n groups: [{\n key: {\n startValue: \"2010-10-01T00:00:00Z\",\n endValue: \"2010-10-02T00:00:00Z\",\n },\n value: 65.0,\n }],\n }, { key: \"Q-AFO\", groups: [] }]);\n });\n\n it(\"throws when response is null and response is non-nullable\", async () => {\n try {\n const result = await client(addOne).executeFunction({ n: 3 });\n expect.fail(\"Should not reach here\");\n } catch (e) {\n expect((e as Error).message).toMatch(\n `Got null response when nullable was not allowed`,\n );\n }\n });\n\n it(\"three dimensional aggregation request/response works\", async () => {\n const clientBoundQueryFunction =\n client(acceptsThreeDimensionalAggregationFunction).executeFunction;\n type InferredParamType = Parameters<\n typeof clientBoundQueryFunction\n >[0];\n\n expectTypeOf<{\n aggFunction: {\n key: string;\n groups: {\n key: { startValue: string | undefined; endValue: string };\n value: number;\n }[];\n }[];\n }>()\n .toMatchTypeOf<InferredParamType>();\n\n const result = await client(acceptsThreeDimensionalAggregationFunction)\n .executeFunction({\n aggFunction: [\n {\n key: \"testKey1\",\n groups: [\n {\n key: {\n startValue: \"2010-10-01T00:00:00Z\",\n endValue: \"2010-10-02T00:00:00Z\",\n },\n value: 65.0,\n },\n ],\n },\n {\n key: \"testKey2\",\n groups: [],\n },\n ],\n });\n\n expect(result).toEqual([\n {\n key: \"Q-AFN\",\n groups: [\n {\n key: {\n startValue: \"2010-10-01T00:00:00Z\",\n endValue: \"2010-10-02T00:00:00Z\",\n },\n value: 65.0,\n },\n ],\n },\n {\n key: \"Q-AFO\",\n groups: [],\n },\n ]);\n });\n\n it(\"map type request and response works\", async () => {\n const clientBoundQueryFunction =\n client(queryTypeReturnsMap).executeFunction;\n type InferredParamType = Parameters<\n typeof clientBoundQueryFunction\n >[0];\n\n expectTypeOf<InferredParamType>()\n .toMatchTypeOf<\n { peopleMap: Record<ObjectSpecifier<Employee>, string> }\n >();\n\n const myMap: Record<ObjectSpecifier<Employee>, string> = {\n [\"Employee:person1\" as any]: \"hi\",\n };\n const result = await client(queryTypeReturnsMap).executeFunction({\n peopleMap: myMap,\n });\n\n expect(result).toMatchInlineSnapshot(`\n {\n \"Employee:50030\": \"bye\",\n }\n `);\n\n expectTypeOf<typeof result>().toMatchTypeOf<\n Record<ObjectSpecifier<Employee>, number>\n >();\n\n const object = await client(Employee).fetchOne(50030);\n\n const value = result[object.$objectSpecifier];\n\n expect(value).toBe(\"bye\");\n });\n\n it(\"accepts and returns objects\", async () => {\n const employeeObjectSet = client(Employee);\n const result = await client(queryAcceptsObjectSets).executeFunction({\n objectSet: employeeObjectSet,\n });\n\n expectTypeOf<ObjectSet<Employee>>().toMatchTypeOf<typeof result>();\n });\n it(\"queries are enumerable\", async () => {\n const queries = Object.keys($Queries);\n expect(queries).toStrictEqual([\n \"acceptsThreeDimensionalAggregationFunction\",\n \"acceptsTwoDimensionalAggregationFunction\",\n \"addOne\",\n \"incrementPersonAge\",\n \"incrementPersonAgeComplex\",\n \"queryAcceptsObject\",\n \"queryAcceptsObjectSets\",\n \"queryTypeReturnsArray\",\n \"queryTypeReturnsMap\",\n \"returnsDate\",\n \"returnsObject\",\n \"returnsTimestamp\",\n \"threeDimensionalAggregationFunction\",\n \"twoDimensionalAggregationFunction\",\n ]);\n });\n\n it(\"queries work with arrays\", async () => {\n const result = await client($Queries.queryTypeReturnsArray).executeFunction(\n { people: [\"Brad\", \"George\", \"Ryan\"] },\n );\n expect(result).toEqual([\"Pitt\", \"Clooney\", \"Reynolds\"]);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -99,6 +99,20 @@ export async function toDataValueQueries(value, client, desiredType) {
|
|
|
99
99
|
}
|
|
100
100
|
break;
|
|
101
101
|
}
|
|
102
|
+
case "map":
|
|
103
|
+
{
|
|
104
|
+
if (typeof value === "object") {
|
|
105
|
+
const entrySet = [];
|
|
106
|
+
for (const [key, mapValue] of Object.entries(value)) {
|
|
107
|
+
entrySet.push({
|
|
108
|
+
key: desiredType.keyType.type === "object" ? extractPrimaryKeyFromObjectIdentifier(key) : await toDataValueQueries(key, client, desiredType.keyType),
|
|
109
|
+
value: await toDataValueQueries(mapValue, client, desiredType.valueType)
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
return entrySet;
|
|
113
|
+
}
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
102
116
|
case "struct":
|
|
103
117
|
{
|
|
104
118
|
if (typeof value === "object") {
|
|
@@ -121,4 +135,7 @@ export async function toDataValueQueries(value, client, desiredType) {
|
|
|
121
135
|
}
|
|
122
136
|
return value;
|
|
123
137
|
}
|
|
138
|
+
function extractPrimaryKeyFromObjectIdentifier(a) {
|
|
139
|
+
return a.substring(a.indexOf(":") + 1);
|
|
140
|
+
}
|
|
124
141
|
//# sourceMappingURL=toDataValueQueries.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toDataValueQueries.js","names":["OntologiesV2","isAttachmentFile","isAttachmentUpload","getWireObjectSet","isObjectSet","isOsdkBaseObject","isWireObjectSet","toDataValueQueries","value","client","desiredType","Array","isArray","multiplicity","values","from","some","dataValue","converted","push","promiseArray","innerValue","Promise","all","type","attachment","Attachments","upload","data","filename","name","rid","groups","Set","$primaryKey","
|
|
1
|
+
{"version":3,"file":"toDataValueQueries.js","names":["OntologiesV2","isAttachmentFile","isAttachmentUpload","getWireObjectSet","isObjectSet","isOsdkBaseObject","isWireObjectSet","toDataValueQueries","value","client","desiredType","Array","isArray","multiplicity","values","from","some","dataValue","converted","push","promiseArray","innerValue","Promise","all","type","attachment","Attachments","upload","data","filename","name","rid","groups","Set","$primaryKey","entrySet","key","mapValue","Object","entries","keyType","extractPrimaryKeyFromObjectIdentifier","valueType","structMap","structValue","a","substring","indexOf"],"sources":["toDataValueQueries.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { QueryDataTypeDefinition } from \"@osdk/api\";\nimport { type DataValue } from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport {\n isAttachmentFile,\n isAttachmentUpload,\n} from \"../object/AttachmentUpload.js\";\nimport { getWireObjectSet, isObjectSet } from \"../objectSet/createObjectSet.js\";\nimport { isOsdkBaseObject } from \"./isOsdkBaseObject.js\";\nimport { isWireObjectSet } from \"./WireObjectSet.js\";\n\n/**\n * Marshall user-facing data into the wire DataValue type\n *\n * @see DataValue for the expected payloads\n * @internal\n */\nexport async function toDataValueQueries(\n value: unknown,\n client: MinimalClient,\n desiredType: QueryDataTypeDefinition,\n): Promise<DataValue> {\n if (value == null) {\n return value;\n }\n\n if (Array.isArray(value) && desiredType.multiplicity) {\n const values = Array.from(value);\n if (\n values.some((dataValue) =>\n isAttachmentUpload(dataValue) || isAttachmentFile(dataValue)\n )\n ) {\n const converted = [];\n for (const value of values) {\n converted.push(await toDataValueQueries(value, client, desiredType));\n }\n return converted;\n }\n const promiseArray = Array.from(\n value,\n async (innerValue) =>\n await toDataValueQueries(innerValue, client, desiredType),\n );\n return Promise.all(promiseArray);\n }\n\n switch (desiredType.type) {\n case \"attachment\": {\n if (isAttachmentUpload(value)) {\n const attachment = await OntologiesV2.Attachments.upload(\n client,\n value.data,\n {\n filename: value.name,\n },\n );\n return attachment.rid;\n }\n\n if (\n isAttachmentFile(value)\n ) {\n const attachment = await OntologiesV2.Attachments.upload(\n client,\n value,\n {\n filename: value.name as string,\n },\n );\n return attachment.rid;\n }\n\n // If it's not an upload, it's just an attachment rid string which we can pass through\n return value;\n }\n case \"twoDimensionalAggregation\": {\n return {\n groups: value,\n };\n }\n case \"threeDimensionalAggregation\": {\n return {\n groups: value,\n };\n }\n\n case \"set\": {\n if (value instanceof Set) {\n const promiseArray = Array.from(\n value,\n async (innerValue) =>\n await toDataValueQueries(innerValue, client, desiredType[\"set\"]),\n );\n return Promise.all(promiseArray);\n }\n break;\n }\n case \"object\": {\n if (isOsdkBaseObject(value)) {\n return value.$primaryKey;\n }\n break;\n }\n case \"objectSet\": {\n // object set (the rid as a string (passes through the last return), or the ObjectSet definition directly)\n if (isWireObjectSet(value)) {\n return value;\n }\n if (isObjectSet(value)) {\n return getWireObjectSet(value);\n }\n break;\n }\n\n case \"map\": {\n if (typeof value === \"object\") {\n const entrySet: Array<{ key: any; value: any }> = [];\n for (const [key, mapValue] of Object.entries(value)) {\n entrySet.push({\n key: desiredType.keyType.type === \"object\"\n ? extractPrimaryKeyFromObjectIdentifier(key)\n : await toDataValueQueries(\n key,\n client,\n desiredType.keyType,\n ),\n value: await toDataValueQueries(\n mapValue,\n client,\n desiredType.valueType,\n ),\n });\n }\n return entrySet;\n }\n break;\n }\n\n case \"struct\": {\n if (typeof value === \"object\") {\n const structMap: { [key: string]: unknown } = {};\n for (const [key, structValue] of Object.entries(value)) {\n structMap[key] = await toDataValueQueries(\n structValue,\n client,\n desiredType[\"struct\"][key],\n );\n }\n return structMap;\n }\n }\n\n case \"boolean\":\n case \"date\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n case \"string\":\n case \"timestamp\":\n return value;\n }\n return value;\n}\n\nfunction extractPrimaryKeyFromObjectIdentifier(a: string) {\n return a.substring(a.indexOf(\":\") + 1);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -60,7 +60,7 @@ interface Client extends SharedClient, OldSharedClient {
|
|
|
60
60
|
<Q extends (InterfaceDefinition)>(o: Q): unknown extends CompileTimeMetadata<Q>["objectSet"] ? MinimalObjectSet<Q> : CompileTimeMetadata<Q>["objectSet"];
|
|
61
61
|
<Q extends ActionDefinition<any>>(o: Q): ActionSignatureFromDef<Q>;
|
|
62
62
|
<Q extends QueryDefinition<any>>(o: Q): QuerySignatureFromDef<Q>;
|
|
63
|
-
<Q extends Experiment<"2.0.8"> | Experiment<"2.1.0">>(experiment: Q): ExperimentFns<Q>;
|
|
63
|
+
<Q extends Experiment<"2.0.8"> | Experiment<"2.1.0"> | Experiment<"2.2.0">>(experiment: Q): ExperimentFns<Q>;
|
|
64
64
|
fetchMetadata<Q extends (ObjectTypeDefinition | InterfaceDefinition | ActionDefinition<any> | QueryDefinition<any>)>(o: Q): Promise<Q extends ObjectTypeDefinition ? ObjectMetadata : Q extends InterfaceDefinition ? InterfaceMetadata : Q extends ActionDefinition<any> ? ActionMetadata : Q extends QueryDefinition<any> ? QueryMetadata : never>;
|
|
65
65
|
}
|
|
66
66
|
|
package/build/cjs/index.cjs
CHANGED
|
@@ -807,6 +807,10 @@ function createOsdkInterface(underlying, interfaceDef) {
|
|
|
807
807
|
value: underlying.$rid,
|
|
808
808
|
enumerable: "$rid" in underlying
|
|
809
809
|
},
|
|
810
|
+
"$clone": {
|
|
811
|
+
value: clone,
|
|
812
|
+
enumerable: false
|
|
813
|
+
},
|
|
810
814
|
[InterfaceDefRef]: {
|
|
811
815
|
value: interfaceDef
|
|
812
816
|
},
|
|
@@ -820,6 +824,26 @@ function createOsdkInterface(underlying, interfaceDef) {
|
|
|
820
824
|
}];
|
|
821
825
|
}))
|
|
822
826
|
}));
|
|
827
|
+
function clone(update) {
|
|
828
|
+
if (update == null) {
|
|
829
|
+
return underlying.$clone().$as(interfaceDef);
|
|
830
|
+
}
|
|
831
|
+
for (const key of Object.keys(update)) {
|
|
832
|
+
if (!(key in interfaceDef.properties)) {
|
|
833
|
+
throw new Error(`Invalid property ${key} for interface ${interfaceDef.apiName}`);
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
const remappedProps = Object.fromEntries(Object.keys(update).map((p) => mapProperty(p, update[p])).filter((x) => x != null));
|
|
837
|
+
return underlying.$clone(remappedProps).$as(interfaceDef);
|
|
838
|
+
}
|
|
839
|
+
function mapProperty(propertyName, value) {
|
|
840
|
+
const objDef = underlying[ObjectDefRef];
|
|
841
|
+
const targetPropName = objDef.interfaceMap[interfaceDef.apiName][propertyName];
|
|
842
|
+
if (targetPropName == null) {
|
|
843
|
+
throw new Error(`Cannot clone interface with ${propertyName} as property is not implemented by the underlying object type ${objDef.apiName}`);
|
|
844
|
+
}
|
|
845
|
+
return [targetPropName, value];
|
|
846
|
+
}
|
|
823
847
|
}
|
|
824
848
|
|
|
825
849
|
// src/object/convertWireToOsdkObjects/getDollarAs.ts
|
|
@@ -976,6 +1000,11 @@ function createSpecialProperty(client, objectDef, rawObject, p) {
|
|
|
976
1000
|
}
|
|
977
1001
|
}
|
|
978
1002
|
|
|
1003
|
+
// src/object/createObjectSpecifierFromPrimaryKey.ts
|
|
1004
|
+
function createObjectSpecifierFromPrimaryKey(def, primaryKey) {
|
|
1005
|
+
return `${def.apiName}:${primaryKey}`;
|
|
1006
|
+
}
|
|
1007
|
+
|
|
979
1008
|
// src/object/convertWireToOsdkObjects.ts
|
|
980
1009
|
async function convertWireToOsdkObjects(client, objects, interfaceApiName, forceRemoveRid = false, selectedProps, strictNonNull = false) {
|
|
981
1010
|
client.logger?.debug(`START convertWireToOsdkObjects()`);
|
|
@@ -1100,6 +1129,10 @@ function fixObjectPropertiesInPlace(objs, forceRemoveRid) {
|
|
|
1100
1129
|
obj.$objectType = obj.$apiName;
|
|
1101
1130
|
obj.$primaryKey ??= obj.__primaryKey;
|
|
1102
1131
|
obj.$title ??= obj.__title;
|
|
1132
|
+
obj.$objectSpecifier = createObjectSpecifierFromPrimaryKey({
|
|
1133
|
+
apiName: obj.$apiName,
|
|
1134
|
+
type: "object"
|
|
1135
|
+
}, obj.$primaryKey);
|
|
1103
1136
|
delete obj.__apiName;
|
|
1104
1137
|
delete obj.__primaryKey;
|
|
1105
1138
|
delete obj.__title;
|
|
@@ -1229,7 +1262,7 @@ var createStandardOntologyProviderFactory = (client) => {
|
|
|
1229
1262
|
};
|
|
1230
1263
|
|
|
1231
1264
|
// src/util/UserAgent.ts
|
|
1232
|
-
var USER_AGENT = `osdk-client/${"2.2.0-beta.
|
|
1265
|
+
var USER_AGENT = `osdk-client/${"2.2.0-beta.8"}`;
|
|
1233
1266
|
|
|
1234
1267
|
// src/createMinimalClient.ts
|
|
1235
1268
|
function createMinimalClient(metadata, baseUrl, tokenProvider, options = {}, fetchFn = global.fetch, objectSetFactory = chunkIU47QMYO_cjs.createObjectSet) {
|
|
@@ -1347,6 +1380,19 @@ async function toDataValueQueries(value, client, desiredType) {
|
|
|
1347
1380
|
}
|
|
1348
1381
|
break;
|
|
1349
1382
|
}
|
|
1383
|
+
case "map": {
|
|
1384
|
+
if (typeof value === "object") {
|
|
1385
|
+
const entrySet = [];
|
|
1386
|
+
for (const [key, mapValue] of Object.entries(value)) {
|
|
1387
|
+
entrySet.push({
|
|
1388
|
+
key: desiredType.keyType.type === "object" ? extractPrimaryKeyFromObjectIdentifier(key) : await toDataValueQueries(key, client, desiredType.keyType),
|
|
1389
|
+
value: await toDataValueQueries(mapValue, client, desiredType.valueType)
|
|
1390
|
+
});
|
|
1391
|
+
}
|
|
1392
|
+
return entrySet;
|
|
1393
|
+
}
|
|
1394
|
+
break;
|
|
1395
|
+
}
|
|
1350
1396
|
case "struct": {
|
|
1351
1397
|
if (typeof value === "object") {
|
|
1352
1398
|
const structMap = {};
|
|
@@ -1368,6 +1414,9 @@ async function toDataValueQueries(value, client, desiredType) {
|
|
|
1368
1414
|
}
|
|
1369
1415
|
return value;
|
|
1370
1416
|
}
|
|
1417
|
+
function extractPrimaryKeyFromObjectIdentifier(a) {
|
|
1418
|
+
return a.substring(a.indexOf(":") + 1);
|
|
1419
|
+
}
|
|
1371
1420
|
|
|
1372
1421
|
// src/queries/applyQuery.ts
|
|
1373
1422
|
async function applyQuery(client, query, params) {
|
|
@@ -1453,6 +1502,18 @@ async function remapQueryResponse(client, responseDataType, responseValue, defin
|
|
|
1453
1502
|
}
|
|
1454
1503
|
return responseValue;
|
|
1455
1504
|
}
|
|
1505
|
+
case "map": {
|
|
1506
|
+
const map = {};
|
|
1507
|
+
!Array.isArray(responseValue) ? process.env.NODE_ENV !== "production" ? invariant__default.default(false, "Expected array entry") : invariant__default.default(false) : undefined;
|
|
1508
|
+
for (const entry of responseValue) {
|
|
1509
|
+
!entry.key ? process.env.NODE_ENV !== "production" ? invariant__default.default(false, "Expected key") : invariant__default.default(false) : undefined;
|
|
1510
|
+
!entry.value ? process.env.NODE_ENV !== "production" ? invariant__default.default(false, "Expected value") : invariant__default.default(false) : undefined;
|
|
1511
|
+
const key = responseDataType.keyType.type === "object" ? getObjectSpecifier(entry.key, responseDataType.keyType.object, definitions) : entry.key;
|
|
1512
|
+
const value = await remapQueryResponse(client, responseDataType.valueType, entry.value, definitions);
|
|
1513
|
+
map[key] = value;
|
|
1514
|
+
}
|
|
1515
|
+
return map;
|
|
1516
|
+
}
|
|
1456
1517
|
case "twoDimensionalAggregation": {
|
|
1457
1518
|
const result = [];
|
|
1458
1519
|
for (const {
|
|
@@ -1508,6 +1569,14 @@ async function getRequiredDefinitions(dataType, client) {
|
|
|
1508
1569
|
case "set": {
|
|
1509
1570
|
return getRequiredDefinitions(dataType.set, client);
|
|
1510
1571
|
}
|
|
1572
|
+
case "map": {
|
|
1573
|
+
for (const value of [dataType.keyType, dataType.valueType]) {
|
|
1574
|
+
for (const [type, objectDef] of await getRequiredDefinitions(value, client)) {
|
|
1575
|
+
result.set(type, objectDef);
|
|
1576
|
+
}
|
|
1577
|
+
}
|
|
1578
|
+
break;
|
|
1579
|
+
}
|
|
1511
1580
|
case "struct": {
|
|
1512
1581
|
for (const value of Object.values(dataType.struct)) {
|
|
1513
1582
|
for (const [type, objectDef] of await getRequiredDefinitions(value, client)) {
|
|
@@ -1546,12 +1615,20 @@ function requiresConversion(dataType) {
|
|
|
1546
1615
|
return false;
|
|
1547
1616
|
}
|
|
1548
1617
|
}
|
|
1618
|
+
function getObjectSpecifier(primaryKey, objectTypeApiName, definitions) {
|
|
1619
|
+
const def = definitions.get(objectTypeApiName);
|
|
1620
|
+
if (!def) {
|
|
1621
|
+
throw new Error(`Missing definition for ${objectTypeApiName}`);
|
|
1622
|
+
}
|
|
1623
|
+
return createObjectSpecifierFromPrimaryKey(def, primaryKey);
|
|
1624
|
+
}
|
|
1549
1625
|
function createQueryObjectResponse(primaryKey, objectDef) {
|
|
1550
1626
|
return {
|
|
1551
1627
|
$apiName: objectDef.apiName,
|
|
1552
1628
|
$title: undefined,
|
|
1553
1629
|
$objectType: objectDef.apiName,
|
|
1554
|
-
$primaryKey: primaryKey
|
|
1630
|
+
$primaryKey: primaryKey,
|
|
1631
|
+
$objectSpecifier: createObjectSpecifierFromPrimaryKey(objectDef, primaryKey)
|
|
1555
1632
|
};
|
|
1556
1633
|
}
|
|
1557
1634
|
|
|
@@ -1598,7 +1675,7 @@ function createClientInternal(objectSetFactory, baseUrl, ontologyRid, tokenProvi
|
|
|
1598
1675
|
case unstable.__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid.name:
|
|
1599
1676
|
return {
|
|
1600
1677
|
fetchOneByRid: async (objectType, rid, options2) => {
|
|
1601
|
-
return await chunkIU47QMYO_cjs.fetchSingle(clientCtx, objectType, options2, createWithRid(rid));
|
|
1678
|
+
return await chunkIU47QMYO_cjs.fetchSingle(clientCtx, objectType, options2, createWithRid([rid]));
|
|
1602
1679
|
}
|
|
1603
1680
|
};
|
|
1604
1681
|
case unstable.__EXPERIMENTAL__NOT_SUPPORTED_YET__createMediaReference.name:
|
|
@@ -1616,6 +1693,12 @@ function createClientInternal(objectSetFactory, baseUrl, ontologyRid, tokenProvi
|
|
|
1616
1693
|
});
|
|
1617
1694
|
}
|
|
1618
1695
|
};
|
|
1696
|
+
case unstable.__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid.name:
|
|
1697
|
+
return {
|
|
1698
|
+
fetchPageByRid: async (objectOrInterfaceType, rids, options2 = {}) => {
|
|
1699
|
+
return await chunkJPENHIJB_cjs.fetchPage(clientCtx, objectOrInterfaceType, options2, createWithRid(rids));
|
|
1700
|
+
}
|
|
1701
|
+
};
|
|
1619
1702
|
}
|
|
1620
1703
|
throw new Error("not implemented");
|
|
1621
1704
|
} else {
|
|
@@ -1641,10 +1724,10 @@ function createClientInternal(objectSetFactory, baseUrl, ontologyRid, tokenProvi
|
|
|
1641
1724
|
return client;
|
|
1642
1725
|
}
|
|
1643
1726
|
var createClient = createClientInternal.bind(undefined, chunkIU47QMYO_cjs.createObjectSet);
|
|
1644
|
-
function createWithRid(
|
|
1727
|
+
function createWithRid(rids) {
|
|
1645
1728
|
const withRid = {
|
|
1646
1729
|
type: "static",
|
|
1647
|
-
"objects":
|
|
1730
|
+
"objects": rids
|
|
1648
1731
|
};
|
|
1649
1732
|
return withRid;
|
|
1650
1733
|
}
|
|
@@ -1682,6 +1765,7 @@ Object.defineProperty(exports, "PalantirApiError", {
|
|
|
1682
1765
|
exports.ActionValidationError = ActionValidationError;
|
|
1683
1766
|
exports.createAttachmentUpload = createAttachmentUpload;
|
|
1684
1767
|
exports.createClient = createClient;
|
|
1768
|
+
exports.createObjectSpecifierFromPrimaryKey = createObjectSpecifierFromPrimaryKey;
|
|
1685
1769
|
exports.createPlatformClient = createPlatformClient;
|
|
1686
1770
|
exports.extractDate = extractDate;
|
|
1687
1771
|
exports.extractDateInLocalTime = extractDateInLocalTime;
|