@osdk/client 2.8.0-beta.29 → 2.8.0-beta.30

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.
@@ -1 +1 @@
1
- {"version":3,"file":"createObjectSet.js","names":["invariant","createWithPropertiesObjectSet","modernToLegacyWhereClause","aggregate","fetchPageInternal","fetchPageWithErrorsInternal","fetchSingle","fetchSingleWithErrors","augmentRequestContext","resolveBaseObjectSetType","isWireObjectSet","fetchLinksPage","isObjectTypeDefinition","def","type","isObjectSet","o","objectSetDefinitions","get","getWireObjectSet","objectSet","WeakMap","createObjectSet","objectType","clientCtx","base","bind","globalThis","finalMethodCall","fetchPage","fetchPageWithErrors","where","clause","objectSetFactory","pivotTo","createSearchAround","union","objectSets","map","os","intersect","subtract","nearestNeighbors","query","numNeighbors","property","nearestNeighborsQuery","isTextQuery","propertyIdentifier","apiName","asyncIter","args","$nextPageToken","undefined","result","$pageSize","nextPageToken","obj","data","fetchOne","primaryKey","options","createWithPk","fetchOneWithErrors","subscribe","listener","opts","pendingSubscribe","then","ObjectSetListenerWebsocket","getInstance","properties","includeRid","unsubscribe","withProperties","definitionMap","Map","derivedProperties","key","Object","keys","derivedPropertyDefinition","narrowToType","objectTypeDef","existingMapping","narrowTypeInterfaceOrObjectMapping","process","env","NODE_ENV","entityType","experimental_asyncIterLinks","links","$objectSetInternals","link","interfaceLink","set","objDef","ontologyProvider","getObjectDefinition","withPk","field","primaryKeyApiName","value"],"sources":["createObjectSet.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 AsyncIterArgs,\n Augments,\n FetchPageResult,\n InterfaceDefinition,\n LinkedType,\n LinkNames,\n LinkTypeApiNamesFor,\n MinimalDirectedObjectLinkInstance,\n NullabilityAdherence,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n ObjectSetArgs,\n ObjectSetSubscription,\n ObjectTypeDefinition,\n Osdk,\n PrimaryKeyType,\n PropertyKeys,\n Result,\n SelectArg,\n SingleOsdkResult,\n} from \"@osdk/api\";\nimport type { MinimalObjectSet } from \"@osdk/api/unstable\";\nimport type {\n DerivedPropertyDefinition,\n ObjectSet as WireObjectSet,\n PropertyApiName,\n} from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport { createWithPropertiesObjectSet } from \"../derivedProperties/createWithPropertiesObjectSet.js\";\nimport { modernToLegacyWhereClause } from \"../internal/conversions/modernToLegacyWhereClause.js\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { aggregate } from \"../object/aggregate.js\";\nimport {\n fetchPageInternal,\n fetchPageWithErrorsInternal,\n} from \"../object/fetchPage.js\";\nimport { fetchSingle, fetchSingleWithErrors } from \"../object/fetchSingle.js\";\nimport { augmentRequestContext } from \"../util/augmentRequestContext.js\";\nimport { resolveBaseObjectSetType } from \"../util/objectSetUtils.js\";\nimport { isWireObjectSet } from \"../util/WireObjectSet.js\";\nimport { fetchLinksPage } from \"./fetchLinksPage.js\";\n\nfunction isObjectTypeDefinition(\n def: ObjectOrInterfaceDefinition,\n): def is ObjectTypeDefinition {\n return def.type === \"object\";\n}\n\nexport function isObjectSet(\n o: object,\n): o is ObjectSet<ObjectOrInterfaceDefinition> {\n return o != null && typeof o === \"object\"\n && isWireObjectSet(objectSetDefinitions.get(o));\n}\n\nexport function getWireObjectSet(\n objectSet: ObjectSet<any> | MinimalObjectSet<any>,\n): WireObjectSet {\n return objectSetDefinitions.get(objectSet)!;\n}\n\n/** @internal exported for internal use only */\nexport const objectSetDefinitions = new WeakMap<\n any,\n WireObjectSet\n>();\n\n/** @internal */\nexport function createObjectSet<Q extends ObjectOrInterfaceDefinition>(\n objectType: Q,\n clientCtx: MinimalClient,\n objectSet: WireObjectSet = resolveBaseObjectSetType(objectType),\n): ObjectSet<Q> {\n const base: ObjectSet<Q> = {\n aggregate: (aggregate<Q, any>).bind(\n globalThis,\n augmentRequestContext(clientCtx, _ => ({ finalMethodCall: \"aggregate\" })),\n objectType,\n objectSet,\n ) as ObjectSet<Q>[\"aggregate\"],\n\n fetchPage: fetchPageInternal.bind(\n globalThis,\n augmentRequestContext(clientCtx, _ => ({ finalMethodCall: \"fetchPage\" })),\n objectType,\n objectSet,\n ) as ObjectSet<Q>[\"fetchPage\"],\n\n fetchPageWithErrors: fetchPageWithErrorsInternal.bind(\n globalThis,\n augmentRequestContext(\n clientCtx,\n _ => ({ finalMethodCall: \"fetchPageWithErrors\" }),\n ),\n objectType,\n objectSet,\n ) as ObjectSet<Q>[\"fetchPageWithErrors\"],\n\n where: (clause) => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"filter\",\n objectSet: objectSet,\n where: modernToLegacyWhereClause(clause, objectType),\n });\n },\n\n pivotTo: function<L extends LinkNames<Q>>(\n type: L,\n ): ObjectSet<LinkedType<Q, L>> {\n return createSearchAround(type)();\n },\n\n union: (...objectSets) => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"union\",\n objectSets: [\n objectSet,\n ...objectSets.map(os => objectSetDefinitions.get(os)!),\n ],\n });\n },\n\n intersect: (...objectSets) => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"intersect\",\n objectSets: [\n objectSet,\n ...objectSets.map(os => objectSetDefinitions.get(os)!),\n ],\n });\n },\n\n subtract: (...objectSets) => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"subtract\",\n objectSets: [\n objectSet,\n ...objectSets.map(os => objectSetDefinitions.get(os)!),\n ],\n });\n },\n\n nearestNeighbors: (query, numNeighbors, property) => {\n const nearestNeighborsQuery = isTextQuery(query)\n ? { \"type\": \"text\" as const, \"value\": query }\n : { \"type\": \"vector\" as const, \"value\": query };\n return clientCtx.objectSetFactory(\n objectType,\n clientCtx,\n {\n type: \"nearestNeighbors\",\n objectSet,\n propertyIdentifier: {\n type: \"property\",\n apiName: property as PropertyApiName,\n },\n numNeighbors,\n query: nearestNeighborsQuery,\n },\n ) as ObjectSet<Q>;\n },\n\n asyncIter: async function*<\n L extends PropertyKeys<Q>,\n R extends boolean,\n const A extends Augments,\n S extends NullabilityAdherence = NullabilityAdherence.Default,\n T extends boolean = false,\n ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<L> = never,\n >(\n args?: AsyncIterArgs<Q, L, R, A, S, T, never, ORDER_BY_OPTIONS>,\n ): AsyncIterableIterator<\n SingleOsdkResult<Q, L, R, S, {}, T, ORDER_BY_OPTIONS>\n > {\n let $nextPageToken: string | undefined = undefined;\n do {\n const result: FetchPageResult<\n Q,\n L,\n R,\n S,\n T,\n ORDER_BY_OPTIONS\n > = await fetchPageInternal(\n augmentRequestContext(\n clientCtx,\n _ => ({ finalMethodCall: \"asyncIter\" }),\n ),\n objectType,\n objectSet,\n { ...args, $pageSize: 10000, $nextPageToken },\n true,\n );\n $nextPageToken = result.nextPageToken;\n\n for (const obj of result.data) {\n yield obj as SingleOsdkResult<Q, L, R, S, {}, T, ORDER_BY_OPTIONS>;\n }\n } while ($nextPageToken != null);\n },\n\n fetchOne: (isObjectTypeDefinition(objectType)\n ? async <A extends SelectArg<Q>>(\n primaryKey: PrimaryKeyType<Q>,\n options: A,\n ) => {\n return await fetchSingle(\n augmentRequestContext(\n clientCtx,\n _ => ({ finalMethodCall: \"fetchOne\" }),\n ),\n objectType,\n options,\n await createWithPk(\n clientCtx,\n objectType,\n objectSet,\n primaryKey,\n ),\n ) as Osdk<Q>;\n }\n : undefined) as ObjectSet<Q>[\"fetchOne\"],\n\n fetchOneWithErrors: (isObjectTypeDefinition(objectType)\n ? async <A extends SelectArg<Q>>(\n primaryKey: Q extends ObjectTypeDefinition ? PrimaryKeyType<Q>\n : never,\n options: A,\n ) => {\n return await fetchSingleWithErrors(\n augmentRequestContext(\n clientCtx,\n _ => ({ finalMethodCall: \"fetchOneWithErrors\" }),\n ),\n objectType,\n options,\n await createWithPk(\n clientCtx,\n objectType,\n objectSet,\n primaryKey,\n ),\n ) as Result<Osdk<Q>>;\n }\n : undefined) as ObjectSet<Q>[\"fetchOneWithErrors\"],\n\n subscribe: (\n listener,\n opts,\n ) => {\n const pendingSubscribe = import(\"./ObjectSetListenerWebsocket.js\")\n .then(({ ObjectSetListenerWebsocket }) =>\n ObjectSetListenerWebsocket.getInstance(clientCtx)\n .subscribe(\n objectType,\n objectSet,\n listener as ObjectSetSubscription.Listener<Q, any>,\n opts?.properties,\n opts?.includeRid,\n )\n );\n\n return { unsubscribe: async () => (await pendingSubscribe)() };\n },\n\n withProperties: (clause) => {\n const definitionMap = new Map<any, DerivedPropertyDefinition>();\n\n const derivedProperties: Record<string, DerivedPropertyDefinition> = {};\n for (const key of Object.keys(clause)) {\n const derivedPropertyDefinition = clause\n [key](createWithPropertiesObjectSet(\n objectType,\n { type: \"methodInput\" },\n definitionMap,\n true,\n ));\n derivedProperties[key] = definitionMap.get(\n derivedPropertyDefinition,\n )!;\n }\n\n return clientCtx.objectSetFactory(\n objectType,\n clientCtx,\n {\n type: \"withProperties\",\n derivedProperties: derivedProperties,\n objectSet: objectSet,\n },\n );\n },\n\n narrowToType: (\n objectTypeDef: ObjectTypeDefinition | InterfaceDefinition,\n ) => {\n const existingMapping =\n clientCtx.narrowTypeInterfaceOrObjectMapping[objectTypeDef.apiName];\n invariant(\n !existingMapping || existingMapping === objectTypeDef.type,\n `${objectTypeDef.apiName} was previously used as an ${existingMapping}, but now used as a ${objectTypeDef.type}.`,\n );\n clientCtx.narrowTypeInterfaceOrObjectMapping[objectTypeDef.apiName] =\n objectTypeDef.type;\n\n return clientCtx.objectSetFactory(\n objectTypeDef,\n clientCtx,\n {\n type: \"asType\",\n objectSet: objectSet,\n entityType: objectTypeDef.apiName,\n },\n );\n },\n\n experimental_asyncIterLinks: async function*<\n LINK_TYPE_API_NAME extends LinkTypeApiNamesFor<Q>,\n >(\n links: LINK_TYPE_API_NAME[],\n ): AsyncIterableIterator<\n MinimalDirectedObjectLinkInstance<Q, LINK_TYPE_API_NAME>\n > {\n let $nextPageToken: string | undefined = undefined;\n do {\n const result = await fetchLinksPage(\n augmentRequestContext(\n clientCtx,\n _ => ({ finalMethodCall: \"asyncIterLinks\" }),\n ),\n objectType,\n objectSet,\n links,\n );\n $nextPageToken = result.nextPageToken;\n\n for (const obj of result.data) {\n yield obj;\n }\n } while ($nextPageToken != null);\n },\n\n $objectSetInternals: {\n def: objectType,\n },\n };\n\n function createSearchAround<L extends LinkNames<Q>>(link: L) {\n return () => {\n return clientCtx.objectSetFactory(\n objectType,\n clientCtx,\n objectType.type === \"object\"\n ? {\n type: \"searchAround\",\n objectSet,\n link,\n }\n : {\n type: \"interfaceLinkSearchAround\",\n objectSet,\n interfaceLink: link,\n },\n );\n };\n }\n\n objectSetDefinitions.set(base, objectSet);\n\n // we are using a type assertion because the marker symbol defined in BaseObjectSet isn't actually used\n // at runtime.\n return base as ObjectSet<Q>;\n}\n\nasync function createWithPk(\n clientCtx: MinimalClient,\n objectType: ObjectTypeDefinition,\n objectSet: WireObjectSet,\n primaryKey: PrimaryKeyType<ObjectTypeDefinition>,\n) {\n const objDef = await clientCtx.ontologyProvider.getObjectDefinition(\n objectType.apiName,\n );\n\n const withPk: WireObjectSet = {\n type: \"filter\",\n objectSet: objectSet,\n where: {\n type: \"eq\",\n field: objDef.primaryKeyApiName,\n value: primaryKey,\n },\n };\n return withPk;\n}\n\nfunction isTextQuery(query: string | number[]): query is string {\n return typeof query === \"string\";\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createObjectSet.js","names":["invariant","createWithPropertiesObjectSet","modernToLegacyWhereClause","aggregate","fetchPageInternal","fetchPageWithErrorsInternal","fetchSingle","fetchSingleWithErrors","augmentRequestContext","resolveBaseObjectSetType","isWireObjectSet","fetchLinksPage","a","isObjectTypeDefinition","def","type","isObjectSet","o","objectSetDefinitions","get","getWireObjectSet","objectSet","WeakMap","createObjectSet","objectType","clientCtx","base","bind","globalThis","finalMethodCall","fetchPage","fetchPageWithErrors","where","clause","objectSetFactory","pivotTo","createSearchAround","union","objectSets","map","os","intersect","subtract","nearestNeighbors","query","numNeighbors","property","nearestNeighborsQuery","isTextQuery","propertyIdentifier","apiName","asyncIter","args","$nextPageToken","result","$pageSize","nextPageToken","obj","data","fetchOne","primaryKey","options","createWithPk","undefined","fetchOneWithErrors","subscribe","listener","opts","pendingSubscribe","then","ObjectSetListenerWebsocket","getInstance","properties","includeRid","unsubscribe","withProperties","definitionMap","Map","derivedProperties","key","Object","keys","derivedPropertyDefinition","narrowToType","objectTypeDef","existingMapping","narrowTypeInterfaceOrObjectMapping","process","env","NODE_ENV","entityType","experimental_asyncIterLinks","links","$objectSetInternals","link","interfaceLink","set","objDef","ontologyProvider","getObjectDefinition","withPk","field","primaryKeyApiName","value"],"sources":["createObjectSet.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 AsyncIterArgs,\n Augments,\n FetchPageResult,\n InterfaceDefinition,\n LinkedType,\n LinkNames,\n LinkTypeApiNamesFor,\n MinimalDirectedObjectLinkInstance,\n NullabilityAdherence,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n ObjectSetArgs,\n ObjectSetSubscription,\n ObjectTypeDefinition,\n Osdk,\n PrimaryKeyType,\n PropertyKeys,\n Result,\n SelectArg,\n SingleOsdkResult,\n} from \"@osdk/api\";\nimport type { MinimalObjectSet } from \"@osdk/api/unstable\";\nimport type {\n DerivedPropertyDefinition,\n ObjectSet as WireObjectSet,\n PropertyApiName,\n} from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport { createWithPropertiesObjectSet } from \"../derivedProperties/createWithPropertiesObjectSet.js\";\nimport { modernToLegacyWhereClause } from \"../internal/conversions/modernToLegacyWhereClause.js\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { aggregate } from \"../object/aggregate.js\";\nimport {\n fetchPageInternal,\n fetchPageWithErrorsInternal,\n} from \"../object/fetchPage.js\";\nimport { fetchSingle, fetchSingleWithErrors } from \"../object/fetchSingle.js\";\nimport { augmentRequestContext } from \"../util/augmentRequestContext.js\";\nimport { resolveBaseObjectSetType } from \"../util/objectSetUtils.js\";\nimport { isWireObjectSet } from \"../util/WireObjectSet.js\";\nimport { fetchLinksPage } from \"./fetchLinksPage.js\";\n\nconst a: WireObjectSet = {\n \"type\": \"interfaceLinkSearchAround\",\n \"interfaceLink\": \"lead\",\n \"objectSet\": {\n \"type\": \"asType\",\n \"entityType\": \"Person\",\n \"objectSet\": {\n \"type\": \"filter\",\n \"objectSet\": { \"type\": \"base\", \"objectType\": \"Employee\" },\n \"where\": {\n \"type\": \"eq\",\n \"field\": \"employeeNumber\",\n \"value\": \"657495107\",\n },\n },\n },\n};\nfunction isObjectTypeDefinition(\n def: ObjectOrInterfaceDefinition,\n): def is ObjectTypeDefinition {\n return def.type === \"object\";\n}\n\nexport function isObjectSet(\n o: object,\n): o is ObjectSet<ObjectOrInterfaceDefinition> {\n return o != null && typeof o === \"object\"\n && isWireObjectSet(objectSetDefinitions.get(o));\n}\n\nexport function getWireObjectSet(\n objectSet: ObjectSet<any> | MinimalObjectSet<any>,\n): WireObjectSet {\n return objectSetDefinitions.get(objectSet)!;\n}\n\n/** @internal exported for internal use only */\nexport const objectSetDefinitions = new WeakMap<\n any,\n WireObjectSet\n>();\n\n/** @internal */\nexport function createObjectSet<Q extends ObjectOrInterfaceDefinition>(\n objectType: Q,\n clientCtx: MinimalClient,\n objectSet: WireObjectSet = resolveBaseObjectSetType(objectType),\n): ObjectSet<Q> {\n const base: ObjectSet<Q> = {\n aggregate: (aggregate<Q, any>).bind(\n globalThis,\n augmentRequestContext(clientCtx, _ => ({ finalMethodCall: \"aggregate\" })),\n objectType,\n objectSet,\n ) as ObjectSet<Q>[\"aggregate\"],\n\n fetchPage: fetchPageInternal.bind(\n globalThis,\n augmentRequestContext(clientCtx, _ => ({ finalMethodCall: \"fetchPage\" })),\n objectType,\n objectSet,\n ) as ObjectSet<Q>[\"fetchPage\"],\n\n fetchPageWithErrors: fetchPageWithErrorsInternal.bind(\n globalThis,\n augmentRequestContext(\n clientCtx,\n _ => ({ finalMethodCall: \"fetchPageWithErrors\" }),\n ),\n objectType,\n objectSet,\n ) as ObjectSet<Q>[\"fetchPageWithErrors\"],\n\n where: (clause) => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"filter\",\n objectSet,\n where: modernToLegacyWhereClause(clause, objectType),\n });\n },\n\n pivotTo<L extends LinkNames<Q>>(\n type: L,\n ): ObjectSet<LinkedType<Q, L>> {\n return createSearchAround(type)();\n },\n\n union: (...objectSets) => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"union\",\n objectSets: [\n objectSet,\n ...objectSets.map(os => objectSetDefinitions.get(os)!),\n ],\n });\n },\n\n intersect: (...objectSets) => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"intersect\",\n objectSets: [\n objectSet,\n ...objectSets.map(os => objectSetDefinitions.get(os)!),\n ],\n });\n },\n\n subtract: (...objectSets) => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"subtract\",\n objectSets: [\n objectSet,\n ...objectSets.map(os => objectSetDefinitions.get(os)!),\n ],\n });\n },\n\n nearestNeighbors: (query, numNeighbors, property) => {\n const nearestNeighborsQuery = isTextQuery(query)\n ? { \"type\": \"text\" as const, \"value\": query }\n : { \"type\": \"vector\" as const, \"value\": query };\n return clientCtx.objectSetFactory(\n objectType,\n clientCtx,\n {\n type: \"nearestNeighbors\",\n objectSet,\n propertyIdentifier: {\n type: \"property\",\n apiName: property as PropertyApiName,\n },\n numNeighbors,\n query: nearestNeighborsQuery,\n },\n ) as ObjectSet<Q>;\n },\n\n async *asyncIter<\n L extends PropertyKeys<Q>,\n R extends boolean,\n const A extends Augments,\n S extends NullabilityAdherence = NullabilityAdherence.Default,\n T extends boolean = false,\n ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<L> = never,\n >(\n args?: AsyncIterArgs<Q, L, R, A, S, T, never, ORDER_BY_OPTIONS>,\n ): AsyncIterableIterator<\n SingleOsdkResult<Q, L, R, S, {}, T, ORDER_BY_OPTIONS>\n > {\n let $nextPageToken: string | undefined;\n do {\n const result: FetchPageResult<\n Q,\n L,\n R,\n S,\n T,\n ORDER_BY_OPTIONS\n > = await fetchPageInternal(\n augmentRequestContext(\n clientCtx,\n _ => ({ finalMethodCall: \"asyncIter\" }),\n ),\n objectType,\n objectSet,\n { ...args, $pageSize: 10000, $nextPageToken },\n true,\n );\n $nextPageToken = result.nextPageToken;\n\n for (const obj of result.data) {\n yield obj as SingleOsdkResult<Q, L, R, S, {}, T, ORDER_BY_OPTIONS>;\n }\n } while ($nextPageToken != null);\n },\n\n fetchOne: (isObjectTypeDefinition(objectType)\n ? async <A extends SelectArg<Q>>(\n primaryKey: PrimaryKeyType<Q>,\n options: A,\n ) => {\n return await fetchSingle(\n augmentRequestContext(\n clientCtx,\n _ => ({ finalMethodCall: \"fetchOne\" }),\n ),\n objectType,\n options,\n await createWithPk(\n clientCtx,\n objectType,\n objectSet,\n primaryKey,\n ),\n ) as Osdk<Q>;\n }\n : undefined) as ObjectSet<Q>[\"fetchOne\"],\n\n fetchOneWithErrors: (isObjectTypeDefinition(objectType)\n ? async <A extends SelectArg<Q>>(\n primaryKey: Q extends ObjectTypeDefinition ? PrimaryKeyType<Q>\n : never,\n options: A,\n ) => {\n return await fetchSingleWithErrors(\n augmentRequestContext(\n clientCtx,\n _ => ({ finalMethodCall: \"fetchOneWithErrors\" }),\n ),\n objectType,\n options,\n await createWithPk(\n clientCtx,\n objectType,\n objectSet,\n primaryKey,\n ),\n ) as Result<Osdk<Q>>;\n }\n : undefined) as ObjectSet<Q>[\"fetchOneWithErrors\"],\n\n subscribe: (\n listener,\n opts,\n ) => {\n const pendingSubscribe = import(\"./ObjectSetListenerWebsocket.js\")\n .then(({ ObjectSetListenerWebsocket }) =>\n ObjectSetListenerWebsocket.getInstance(clientCtx)\n .subscribe(\n objectType,\n objectSet,\n listener as ObjectSetSubscription.Listener<Q, any>,\n opts?.properties,\n opts?.includeRid,\n )\n );\n\n return { unsubscribe: async () => (await pendingSubscribe)() };\n },\n\n withProperties: (clause) => {\n const definitionMap = new Map<any, DerivedPropertyDefinition>();\n\n const derivedProperties: Record<string, DerivedPropertyDefinition> = {};\n for (const key of Object.keys(clause)) {\n const derivedPropertyDefinition = clause\n [key](createWithPropertiesObjectSet(\n objectType,\n { type: \"methodInput\" },\n definitionMap,\n true,\n ));\n derivedProperties[key] = definitionMap.get(\n derivedPropertyDefinition,\n )!;\n }\n\n return clientCtx.objectSetFactory(\n objectType,\n clientCtx,\n {\n type: \"withProperties\",\n derivedProperties,\n objectSet,\n },\n );\n },\n\n narrowToType: (\n objectTypeDef: ObjectTypeDefinition | InterfaceDefinition,\n ) => {\n const existingMapping =\n clientCtx.narrowTypeInterfaceOrObjectMapping[objectTypeDef.apiName];\n invariant(\n !existingMapping || existingMapping === objectTypeDef.type,\n `${objectTypeDef.apiName} was previously used as an ${existingMapping}, but now used as a ${objectTypeDef.type}.`,\n );\n clientCtx.narrowTypeInterfaceOrObjectMapping[objectTypeDef.apiName] =\n objectTypeDef.type;\n\n return clientCtx.objectSetFactory(\n objectTypeDef,\n clientCtx,\n {\n type: \"asType\",\n objectSet,\n entityType: objectTypeDef.apiName,\n },\n );\n },\n\n async *experimental_asyncIterLinks<\n LINK_TYPE_API_NAME extends LinkTypeApiNamesFor<Q>,\n >(\n links: LINK_TYPE_API_NAME[],\n ): AsyncIterableIterator<\n MinimalDirectedObjectLinkInstance<Q, LINK_TYPE_API_NAME>\n > {\n let $nextPageToken: string | undefined;\n do {\n const result = await fetchLinksPage(\n augmentRequestContext(\n clientCtx,\n _ => ({ finalMethodCall: \"asyncIterLinks\" }),\n ),\n objectType,\n objectSet,\n links,\n );\n $nextPageToken = result.nextPageToken;\n\n for (const obj of result.data) {\n yield obj;\n }\n } while ($nextPageToken != null);\n },\n\n $objectSetInternals: {\n def: objectType,\n },\n };\n\n function createSearchAround<L extends LinkNames<Q>>(link: L) {\n return () => {\n return clientCtx.objectSetFactory(\n objectType,\n clientCtx,\n objectType.type === \"object\"\n ? {\n type: \"searchAround\",\n objectSet,\n link,\n }\n : {\n type: \"interfaceLinkSearchAround\",\n objectSet,\n interfaceLink: link,\n },\n );\n };\n }\n\n objectSetDefinitions.set(base, objectSet);\n\n // we are using a type assertion because the marker symbol defined in BaseObjectSet isn't actually used\n // at runtime.\n return base as ObjectSet<Q>;\n}\n\nasync function createWithPk(\n clientCtx: MinimalClient,\n objectType: ObjectTypeDefinition,\n objectSet: WireObjectSet,\n primaryKey: PrimaryKeyType<ObjectTypeDefinition>,\n) {\n const objDef = await clientCtx.ontologyProvider.getObjectDefinition(\n objectType.apiName,\n );\n\n const withPk: WireObjectSet = {\n type: \"filter\",\n objectSet,\n where: {\n type: \"eq\",\n field: objDef.primaryKeyApiName,\n value: primaryKey,\n },\n };\n return withPk;\n}\n\nfunction isTextQuery(query: string | number[]): query is string {\n return typeof query === \"string\";\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8BA,OAAOA,SAAS,MAAM,gBAAgB;AACtC,SAASC,6BAA6B,QAAQ,uDAAuD;AACrG,SAASC,yBAAyB,QAAQ,sDAAsD;AAEhG,SAASC,SAAS,QAAQ,wBAAwB;AAClD,SACEC,iBAAiB,EACjBC,2BAA2B,QACtB,wBAAwB;AAC/B,SAASC,WAAW,EAAEC,qBAAqB,QAAQ,0BAA0B;AAC7E,SAASC,qBAAqB,QAAQ,kCAAkC;AACxE,SAASC,wBAAwB,QAAQ,2BAA2B;AACpE,SAASC,eAAe,QAAQ,0BAA0B;AAC1D,SAASC,cAAc,QAAQ,qBAAqB;AAEpD,MAAMC,CAAgB,GAAG;EACvB,MAAM,EAAE,2BAA2B;EACnC,eAAe,EAAE,MAAM;EACvB,WAAW,EAAE;IACX,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,QAAQ;IACtB,WAAW,EAAE;MACX,MAAM,EAAE,QAAQ;MAChB,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM;QAAE,YAAY,EAAE;MAAW,CAAC;MACzD,OAAO,EAAE;QACP,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,gBAAgB;QACzB,OAAO,EAAE;MACX;IACF;EACF;AACF,CAAC;AACD,SAASC,sBAAsBA,CAC7BC,GAAgC,EACH;EAC7B,OAAOA,GAAG,CAACC,IAAI,KAAK,QAAQ;AAC9B;AAEA,OAAO,SAASC,WAAWA,CACzBC,CAAS,EACoC;EAC7C,OAAOA,CAAC,IAAI,IAAI,IAAI,OAAOA,CAAC,KAAK,QAAQ,IACpCP,eAAe,CAACQ,oBAAoB,CAACC,GAAG,CAACF,CAAC,CAAC,CAAC;AACnD;AAEA,OAAO,SAASG,gBAAgBA,CAC9BC,SAAiD,EAClC;EACf,OAAOH,oBAAoB,CAACC,GAAG,CAACE,SAAS,CAAC;AAC5C;;AAEA;AACA,OAAO,MAAMH,oBAAoB,GAAG,IAAII,OAAO,CAG7C,CAAC;;AAEH;AACA,OAAO,SAASC,eAAeA,CAC7BC,UAAa,EACbC,SAAwB,EACxBJ,SAAwB,GAAGZ,wBAAwB,CAACe,UAAU,CAAC,EACjD;EACd,MAAME,IAAkB,GAAG;IACzBvB,SAAS,EAAGA,SAAS,CAAUwB,IAAI,CACjCC,UAAU,EACVpB,qBAAqB,CAACiB,SAAS,EAAE,OAAM;MAAEI,eAAe,EAAE;IAAY,CAAC,CAAC,CAAC,EACzEL,UAAU,EACVH,SACF,CAA8B;IAE9BS,SAAS,EAAE1B,iBAAiB,CAACuB,IAAI,CAC/BC,UAAU,EACVpB,qBAAqB,CAACiB,SAAS,EAAE,OAAM;MAAEI,eAAe,EAAE;IAAY,CAAC,CAAC,CAAC,EACzEL,UAAU,EACVH,SACF,CAA8B;IAE9BU,mBAAmB,EAAE1B,2BAA2B,CAACsB,IAAI,CACnDC,UAAU,EACVpB,qBAAqB,CACnBiB,SAAS,EACT,OAAM;MAAEI,eAAe,EAAE;IAAsB,CAAC,CAClD,CAAC,EACDL,UAAU,EACVH,SACF,CAAwC;IAExCW,KAAK,EAAGC,MAAM,IAAK;MACjB,OAAOR,SAAS,CAACS,gBAAgB,CAACV,UAAU,EAAEC,SAAS,EAAE;QACvDV,IAAI,EAAE,QAAQ;QACdM,SAAS;QACTW,KAAK,EAAE9B,yBAAyB,CAAC+B,MAAM,EAAET,UAAU;MACrD,CAAC,CAAC;IACJ,CAAC;IAEDW,OAAOA,CACLpB,IAAO,EACsB;MAC7B,OAAOqB,kBAAkB,CAACrB,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;IAEDsB,KAAK,EAAEA,CAAC,GAAGC,UAAU,KAAK;MACxB,OAAOb,SAAS,CAACS,gBAAgB,CAACV,UAAU,EAAEC,SAAS,EAAE;QACvDV,IAAI,EAAE,OAAO;QACbuB,UAAU,EAAE,CACVjB,SAAS,EACT,GAAGiB,UAAU,CAACC,GAAG,CAACC,EAAE,IAAItB,oBAAoB,CAACC,GAAG,CAACqB,EAAE,CAAE,CAAC;MAE1D,CAAC,CAAC;IACJ,CAAC;IAEDC,SAAS,EAAEA,CAAC,GAAGH,UAAU,KAAK;MAC5B,OAAOb,SAAS,CAACS,gBAAgB,CAACV,UAAU,EAAEC,SAAS,EAAE;QACvDV,IAAI,EAAE,WAAW;QACjBuB,UAAU,EAAE,CACVjB,SAAS,EACT,GAAGiB,UAAU,CAACC,GAAG,CAACC,EAAE,IAAItB,oBAAoB,CAACC,GAAG,CAACqB,EAAE,CAAE,CAAC;MAE1D,CAAC,CAAC;IACJ,CAAC;IAEDE,QAAQ,EAAEA,CAAC,GAAGJ,UAAU,KAAK;MAC3B,OAAOb,SAAS,CAACS,gBAAgB,CAACV,UAAU,EAAEC,SAAS,EAAE;QACvDV,IAAI,EAAE,UAAU;QAChBuB,UAAU,EAAE,CACVjB,SAAS,EACT,GAAGiB,UAAU,CAACC,GAAG,CAACC,EAAE,IAAItB,oBAAoB,CAACC,GAAG,CAACqB,EAAE,CAAE,CAAC;MAE1D,CAAC,CAAC;IACJ,CAAC;IAEDG,gBAAgB,EAAEA,CAACC,KAAK,EAAEC,YAAY,EAAEC,QAAQ,KAAK;MACnD,MAAMC,qBAAqB,GAAGC,WAAW,CAACJ,KAAK,CAAC,GAC5C;QAAE,MAAM,EAAE,MAAe;QAAE,OAAO,EAAEA;MAAM,CAAC,GAC3C;QAAE,MAAM,EAAE,QAAiB;QAAE,OAAO,EAAEA;MAAM,CAAC;MACjD,OAAOnB,SAAS,CAACS,gBAAgB,CAC/BV,UAAU,EACVC,SAAS,EACT;QACEV,IAAI,EAAE,kBAAkB;QACxBM,SAAS;QACT4B,kBAAkB,EAAE;UAClBlC,IAAI,EAAE,UAAU;UAChBmC,OAAO,EAAEJ;QACX,CAAC;QACDD,YAAY;QACZD,KAAK,EAAEG;MACT,CACF,CAAC;IACH,CAAC;IAED,OAAOI,SAASA,CAQdC,IAA+D,EAG/D;MACA,IAAIC,cAAkC;MACtC,GAAG;QACD,MAAMC,MAOL,GAAG,MAAMlD,iBAAiB,CACzBI,qBAAqB,CACnBiB,SAAS,EACT,OAAM;UAAEI,eAAe,EAAE;QAAY,CAAC,CACxC,CAAC,EACDL,UAAU,EACVH,SAAS,EACT;UAAE,GAAG+B,IAAI;UAAEG,SAAS,EAAE,KAAK;UAAEF;QAAe,CAAC,EAC7C,IACF,CAAC;QACDA,cAAc,GAAGC,MAAM,CAACE,aAAa;QAErC,KAAK,MAAMC,GAAG,IAAIH,MAAM,CAACI,IAAI,EAAE;UAC7B,MAAMD,GAA4D;QACpE;MACF,CAAC,QAAQJ,cAAc,IAAI,IAAI;IACjC,CAAC;IAEDM,QAAQ,EAAG9C,sBAAsB,CAACW,UAAU,CAAC,GACzC,OACAoC,UAA6B,EAC7BC,OAAU,KACP;MACH,OAAO,MAAMvD,WAAW,CACtBE,qBAAqB,CACnBiB,SAAS,EACT,OAAM;QAAEI,eAAe,EAAE;MAAW,CAAC,CACvC,CAAC,EACDL,UAAU,EACVqC,OAAO,EACP,MAAMC,YAAY,CAChBrC,SAAS,EACTD,UAAU,EACVH,SAAS,EACTuC,UACF,CACF,CAAC;IACH,CAAC,GACCG,SAAsC;IAE1CC,kBAAkB,EAAGnD,sBAAsB,CAACW,UAAU,CAAC,GACnD,OACAoC,UACS,EACTC,OAAU,KACP;MACH,OAAO,MAAMtD,qBAAqB,CAChCC,qBAAqB,CACnBiB,SAAS,EACT,OAAM;QAAEI,eAAe,EAAE;MAAqB,CAAC,CACjD,CAAC,EACDL,UAAU,EACVqC,OAAO,EACP,MAAMC,YAAY,CAChBrC,SAAS,EACTD,UAAU,EACVH,SAAS,EACTuC,UACF,CACF,CAAC;IACH,CAAC,GACCG,SAAgD;IAEpDE,SAAS,EAAEA,CACTC,QAAQ,EACRC,IAAI,KACD;MACH,MAAMC,gBAAgB,GAAG,MAAM,CAAC,iCAAiC,CAAC,CAC/DC,IAAI,CAAC,CAAC;QAAEC;MAA2B,CAAC,KACnCA,0BAA0B,CAACC,WAAW,CAAC9C,SAAS,CAAC,CAC9CwC,SAAS,CACRzC,UAAU,EACVH,SAAS,EACT6C,QAAQ,EACRC,IAAI,EAAEK,UAAU,EAChBL,IAAI,EAAEM,UACR,CACJ,CAAC;MAEH,OAAO;QAAEC,WAAW,EAAE,MAAAA,CAAA,KAAY,CAAC,MAAMN,gBAAgB,EAAE;MAAE,CAAC;IAChE,CAAC;IAEDO,cAAc,EAAG1C,MAAM,IAAK;MAC1B,MAAM2C,aAAa,GAAG,IAAIC,GAAG,CAAiC,CAAC;MAE/D,MAAMC,iBAA4D,GAAG,CAAC,CAAC;MACvE,KAAK,MAAMC,GAAG,IAAIC,MAAM,CAACC,IAAI,CAAChD,MAAM,CAAC,EAAE;QACrC,MAAMiD,yBAAyB,GAAGjD,MAAM,CACrC8C,GAAG,CAAC,CAAC9E,6BAA6B,CACjCuB,UAAU,EACV;UAAET,IAAI,EAAE;QAAc,CAAC,EACvB6D,aAAa,EACb,IACF,CAAC,CAAC;QACJE,iBAAiB,CAACC,GAAG,CAAC,GAAGH,aAAa,CAACzD,GAAG,CACxC+D,yBACF,CAAE;MACJ;MAEA,OAAOzD,SAAS,CAACS,gBAAgB,CAC/BV,UAAU,EACVC,SAAS,EACT;QACEV,IAAI,EAAE,gBAAgB;QACtB+D,iBAAiB;QACjBzD;MACF,CACF,CAAC;IACH,CAAC;IAED8D,YAAY,EACVC,aAAyD,IACtD;MACH,MAAMC,eAAe,GACnB5D,SAAS,CAAC6D,kCAAkC,CAACF,aAAa,CAAClC,OAAO,CAAC;MACrE,EACE,CAACmC,eAAe,IAAIA,eAAe,KAAKD,aAAa,CAACrE,IAAI,IAAAwE,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD5DzF,SAAS,QAEP,GAAGoF,aAAa,CAAClC,OAAO,8BAA8BmC,eAAe,uBAAuBD,aAAa,CAACrE,IAAI,GAAG,IAFnHf,SAAS;MAITyB,SAAS,CAAC6D,kCAAkC,CAACF,aAAa,CAAClC,OAAO,CAAC,GACjEkC,aAAa,CAACrE,IAAI;MAEpB,OAAOU,SAAS,CAACS,gBAAgB,CAC/BkD,aAAa,EACb3D,SAAS,EACT;QACEV,IAAI,EAAE,QAAQ;QACdM,SAAS;QACTqE,UAAU,EAAEN,aAAa,CAAClC;MAC5B,CACF,CAAC;IACH,CAAC;IAED,OAAOyC,2BAA2BA,CAGhCC,KAA2B,EAG3B;MACA,IAAIvC,cAAkC;MACtC,GAAG;QACD,MAAMC,MAAM,GAAG,MAAM3C,cAAc,CACjCH,qBAAqB,CACnBiB,SAAS,EACT,OAAM;UAAEI,eAAe,EAAE;QAAiB,CAAC,CAC7C,CAAC,EACDL,UAAU,EACVH,SAAS,EACTuE,KACF,CAAC;QACDvC,cAAc,GAAGC,MAAM,CAACE,aAAa;QAErC,KAAK,MAAMC,GAAG,IAAIH,MAAM,CAACI,IAAI,EAAE;UAC7B,MAAMD,GAAG;QACX;MACF,CAAC,QAAQJ,cAAc,IAAI,IAAI;IACjC,CAAC;IAEDwC,mBAAmB,EAAE;MACnB/E,GAAG,EAAEU;IACP;EACF,CAAC;EAED,SAASY,kBAAkBA,CAAyB0D,IAAO,EAAE;IAC3D,OAAO,MAAM;MACX,OAAOrE,SAAS,CAACS,gBAAgB,CAC/BV,UAAU,EACVC,SAAS,EACTD,UAAU,CAACT,IAAI,KAAK,QAAQ,GACxB;QACAA,IAAI,EAAE,cAAc;QACpBM,SAAS;QACTyE;MACF,CAAC,GACC;QACA/E,IAAI,EAAE,2BAA2B;QACjCM,SAAS;QACT0E,aAAa,EAAED;MACjB,CACJ,CAAC;IACH,CAAC;EACH;EAEA5E,oBAAoB,CAAC8E,GAAG,CAACtE,IAAI,EAAEL,SAAS,CAAC;;EAEzC;EACA;EACA,OAAOK,IAAI;AACb;AAEA,eAAeoC,YAAYA,CACzBrC,SAAwB,EACxBD,UAAgC,EAChCH,SAAwB,EACxBuC,UAAgD,EAChD;EACA,MAAMqC,MAAM,GAAG,MAAMxE,SAAS,CAACyE,gBAAgB,CAACC,mBAAmB,CACjE3E,UAAU,CAAC0B,OACb,CAAC;EAED,MAAMkD,MAAqB,GAAG;IAC5BrF,IAAI,EAAE,QAAQ;IACdM,SAAS;IACTW,KAAK,EAAE;MACLjB,IAAI,EAAE,IAAI;MACVsF,KAAK,EAAEJ,MAAM,CAACK,iBAAiB;MAC/BC,KAAK,EAAE3C;IACT;EACF,CAAC;EACD,OAAOwC,MAAM;AACf;AAEA,SAASpD,WAAWA,CAACJ,KAAwB,EAAmB;EAC9D,OAAO,OAAOA,KAAK,KAAK,QAAQ;AAClC","ignoreList":[]}
@@ -14,6 +14,6 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- export const USER_AGENT = `osdk-client/${"2.8.0-beta.29"}`;
18
- export const OBSERVABLE_USER_AGENT = `osdk-observable-client/${"2.8.0-beta.29"}`;
17
+ export const USER_AGENT = `osdk-client/${"2.8.0-beta.30"}`;
18
+ export const OBSERVABLE_USER_AGENT = `osdk-observable-client/${"2.8.0-beta.30"}`;
19
19
  //# sourceMappingURL=UserAgent.js.map
@@ -16,8 +16,23 @@
16
16
 
17
17
  import invariant from "tiny-invariant";
18
18
  export async function extractRdpDefinition(clientCtx, objectSet) {
19
+ if (!hasWithProperties(objectSet)) {
20
+ return {};
21
+ }
19
22
  return (await extractRdpDefinitionInternal(clientCtx, objectSet, undefined)).definitions;
20
23
  }
24
+ function hasWithProperties(objectSet) {
25
+ if (objectSet.type === "withProperties") {
26
+ return true;
27
+ }
28
+ if ("objectSet" in objectSet && objectSet.objectSet != null) {
29
+ return hasWithProperties(objectSet.objectSet);
30
+ }
31
+ if ("objectSets" in objectSet && objectSet.objectSets != null) {
32
+ return objectSet.objectSets.some(hasWithProperties);
33
+ }
34
+ return false;
35
+ }
21
36
 
22
37
  /* @internal
23
38
  * Returns a tuple of the derived property definitions and the object type that the derived property is defined on.
@@ -1 +1 @@
1
- {"version":3,"file":"extractRdpDefinition.js","names":["invariant","extractRdpDefinition","clientCtx","objectSet","extractRdpDefinitionInternal","undefined","definitions","methodInputObjectType","type","childObjectType","objDef","ontologyProvider","getObjectDefinition","linkDef","links","link","process","env","NODE_ENV","targetType","name","definition","Object","entries","derivedProperties","selectedOrCollectedPropertyType","operation","operationLevelObjectType","properties","selectedPropertyApiName","objectType","interfaceType","objectSets","objectSetTypes","Promise","all","map","os","reduce","acc","keys","length","firstValidChildObjectType","find","every"],"sources":["extractRdpDefinition.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectSet } from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport type { DerivedPropertyRuntimeMetadata } from \"../derivedProperties/derivedPropertyRuntimeMetadata.js\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\n\nexport async function extractRdpDefinition(\n clientCtx: MinimalClient,\n objectSet: ObjectSet,\n): Promise<\n DerivedPropertyRuntimeMetadata\n> {\n return (await extractRdpDefinitionInternal(\n clientCtx,\n objectSet,\n undefined,\n )).definitions;\n}\n\n/* @internal\n* Returns a tuple of the derived property definitions and the object type that the derived property is defined on.\n*/\nasync function extractRdpDefinitionInternal(\n clientCtx: MinimalClient,\n objectSet: ObjectSet,\n methodInputObjectType: string | undefined,\n): Promise<\n {\n definitions: DerivedPropertyRuntimeMetadata;\n childObjectType?: string;\n }\n> {\n switch (objectSet.type) {\n case \"searchAround\": {\n const { definitions, childObjectType } =\n await extractRdpDefinitionInternal(\n clientCtx,\n objectSet.objectSet,\n methodInputObjectType,\n );\n\n if (childObjectType === undefined || childObjectType === \"\") {\n return { definitions: {} };\n }\n const objDef = await clientCtx.ontologyProvider.getObjectDefinition(\n childObjectType,\n );\n const linkDef = objDef.links[objectSet.link];\n invariant(linkDef, `Missing link definition for '${objectSet.link}'`);\n return {\n definitions,\n childObjectType: objDef.links[objectSet.link].targetType,\n };\n }\n case \"withProperties\": {\n // These are the definitions and current object type for all object set operations prior to the definition (e.g. filter, pivotTo, etc.)\n const { definitions, childObjectType } =\n await extractRdpDefinitionInternal(\n clientCtx,\n objectSet.objectSet,\n methodInputObjectType,\n );\n if (childObjectType === undefined || childObjectType === \"\") {\n return { definitions: {} };\n }\n\n for (\n const [name, definition] of Object.entries(objectSet.derivedProperties)\n ) {\n if (definition.type !== \"selection\") {\n definitions[name] = {\n selectedOrCollectedPropertyType: undefined,\n definition,\n };\n continue;\n }\n\n switch (definition.operation.type) {\n case \"collectList\":\n case \"collectSet\":\n case \"get\":\n // This is the object set construction for the derived property definition construction. We pass in childObjectType so that when we reach MethodInputObjectSet, we know where to start looking.\n const { childObjectType: operationLevelObjectType } =\n await extractRdpDefinitionInternal(\n clientCtx,\n definition.objectSet,\n childObjectType,\n );\n if (\n operationLevelObjectType === undefined\n || operationLevelObjectType === \"\"\n ) {\n return { definitions: {} };\n }\n const objDef = await clientCtx.ontologyProvider.getObjectDefinition(\n operationLevelObjectType,\n );\n\n definitions[name] = {\n selectedOrCollectedPropertyType:\n objDef.properties[definition.operation.selectedPropertyApiName],\n definition,\n };\n break;\n\n default:\n definitions[name] = {\n selectedOrCollectedPropertyType: undefined,\n definition,\n };\n }\n }\n return { definitions, childObjectType };\n }\n case \"methodInput\":\n return { definitions: {}, childObjectType: methodInputObjectType };\n case \"base\":\n return { definitions: {}, childObjectType: objectSet.objectType };\n case \"interfaceBase\":\n return { definitions: {}, childObjectType: objectSet.interfaceType };\n case \"filter\":\n case \"asBaseObjectTypes\":\n case \"asType\":\n case \"nearestNeighbors\":\n return extractRdpDefinitionInternal(\n clientCtx,\n objectSet.objectSet,\n methodInputObjectType,\n );\n // These will throw in OSS so we should throw here so no request is made\n case \"intersect\":\n case \"subtract\":\n case \"union\":\n const objectSets = objectSet.objectSets;\n const objectSetTypes = await Promise.all(\n objectSets.map((os) =>\n extractRdpDefinitionInternal(\n clientCtx,\n os,\n methodInputObjectType,\n )\n ),\n );\n\n const definitions = objectSetTypes.reduce(\n (acc, { definitions }) => ({ ...acc, ...definitions }),\n {},\n );\n invariant(\n Object.keys(definitions).length === 0,\n \"Object sets combined using intersect, subtract, or union must not contain any derived property definitions\",\n );\n\n const firstValidChildObjectType = objectSetTypes.find(\n ({ childObjectType }) => childObjectType != null,\n )?.childObjectType;\n invariant(\n objectSetTypes.every(\n ({ childObjectType }) =>\n childObjectType === firstValidChildObjectType\n || childObjectType == null,\n ),\n \"All object sets in an intersect, subtract, or union must have the same child object type\",\n );\n\n return {\n definitions: {},\n childObjectType: firstValidChildObjectType,\n };\n case \"static\":\n case \"reference\":\n // Static and reference object sets are always intersected with a base object set, so we can just return no child object type.\n return { definitions: {} };\n // We don't have to worry about new object sets being added and doing a runtime break and breaking people since the OSDK is always constructing these.\n case \"interfaceLinkSearchAround\":\n invariant(\n false,\n `Unsupported object set type for Runtime Derived Properties`,\n );\n default:\n const _: never = objectSet;\n invariant(\n false,\n `Unsupported object set type for Runtime Derived Properties`,\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"extractRdpDefinition.js","names":["invariant","extractRdpDefinition","clientCtx","objectSet","hasWithProperties","extractRdpDefinitionInternal","undefined","definitions","type","objectSets","some","methodInputObjectType","childObjectType","objDef","ontologyProvider","getObjectDefinition","linkDef","links","link","process","env","NODE_ENV","targetType","name","definition","Object","entries","derivedProperties","selectedOrCollectedPropertyType","operation","operationLevelObjectType","properties","selectedPropertyApiName","objectType","interfaceType","objectSetTypes","Promise","all","map","os","reduce","acc","keys","length","firstValidChildObjectType","find","every"],"sources":["extractRdpDefinition.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectSet } from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport type { DerivedPropertyRuntimeMetadata } from \"../derivedProperties/derivedPropertyRuntimeMetadata.js\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\n\nexport async function extractRdpDefinition(\n clientCtx: MinimalClient,\n objectSet: ObjectSet,\n): Promise<\n DerivedPropertyRuntimeMetadata\n> {\n if (!hasWithProperties(objectSet)) {\n return {};\n }\n return (await extractRdpDefinitionInternal(\n clientCtx,\n objectSet,\n undefined,\n )).definitions;\n}\n\nfunction hasWithProperties(objectSet: ObjectSet): boolean {\n if (objectSet.type === \"withProperties\") {\n return true;\n }\n if (\"objectSet\" in objectSet && objectSet.objectSet != null) {\n return hasWithProperties(objectSet.objectSet);\n }\n if (\"objectSets\" in objectSet && objectSet.objectSets != null) {\n return objectSet.objectSets.some(hasWithProperties);\n }\n return false;\n}\n\n/* @internal\n* Returns a tuple of the derived property definitions and the object type that the derived property is defined on.\n*/\nasync function extractRdpDefinitionInternal(\n clientCtx: MinimalClient,\n objectSet: ObjectSet,\n methodInputObjectType: string | undefined,\n): Promise<\n {\n definitions: DerivedPropertyRuntimeMetadata;\n childObjectType?: string;\n }\n> {\n switch (objectSet.type) {\n case \"searchAround\": {\n const { definitions, childObjectType } =\n await extractRdpDefinitionInternal(\n clientCtx,\n objectSet.objectSet,\n methodInputObjectType,\n );\n\n if (childObjectType === undefined || childObjectType === \"\") {\n return { definitions: {} };\n }\n const objDef = await clientCtx.ontologyProvider.getObjectDefinition(\n childObjectType,\n );\n const linkDef = objDef.links[objectSet.link];\n invariant(linkDef, `Missing link definition for '${objectSet.link}'`);\n return {\n definitions,\n childObjectType: objDef.links[objectSet.link].targetType,\n };\n }\n case \"withProperties\": {\n // These are the definitions and current object type for all object set operations prior to the definition (e.g. filter, pivotTo, etc.)\n const { definitions, childObjectType } =\n await extractRdpDefinitionInternal(\n clientCtx,\n objectSet.objectSet,\n methodInputObjectType,\n );\n if (childObjectType === undefined || childObjectType === \"\") {\n return { definitions: {} };\n }\n\n for (\n const [name, definition] of Object.entries(objectSet.derivedProperties)\n ) {\n if (definition.type !== \"selection\") {\n definitions[name] = {\n selectedOrCollectedPropertyType: undefined,\n definition,\n };\n continue;\n }\n\n switch (definition.operation.type) {\n case \"collectList\":\n case \"collectSet\":\n case \"get\":\n // This is the object set construction for the derived property definition construction. We pass in childObjectType so that when we reach MethodInputObjectSet, we know where to start looking.\n const { childObjectType: operationLevelObjectType } =\n await extractRdpDefinitionInternal(\n clientCtx,\n definition.objectSet,\n childObjectType,\n );\n if (\n operationLevelObjectType === undefined\n || operationLevelObjectType === \"\"\n ) {\n return { definitions: {} };\n }\n const objDef = await clientCtx.ontologyProvider.getObjectDefinition(\n operationLevelObjectType,\n );\n\n definitions[name] = {\n selectedOrCollectedPropertyType:\n objDef.properties[definition.operation.selectedPropertyApiName],\n definition,\n };\n break;\n\n default:\n definitions[name] = {\n selectedOrCollectedPropertyType: undefined,\n definition,\n };\n }\n }\n return { definitions, childObjectType };\n }\n case \"methodInput\":\n return { definitions: {}, childObjectType: methodInputObjectType };\n case \"base\":\n return { definitions: {}, childObjectType: objectSet.objectType };\n case \"interfaceBase\":\n return { definitions: {}, childObjectType: objectSet.interfaceType };\n case \"filter\":\n case \"asBaseObjectTypes\":\n case \"asType\":\n case \"nearestNeighbors\":\n return extractRdpDefinitionInternal(\n clientCtx,\n objectSet.objectSet,\n methodInputObjectType,\n );\n // These will throw in OSS so we should throw here so no request is made\n case \"intersect\":\n case \"subtract\":\n case \"union\":\n const objectSets = objectSet.objectSets;\n const objectSetTypes = await Promise.all(\n objectSets.map((os) =>\n extractRdpDefinitionInternal(\n clientCtx,\n os,\n methodInputObjectType,\n )\n ),\n );\n\n const definitions = objectSetTypes.reduce(\n (acc, { definitions }) => ({ ...acc, ...definitions }),\n {},\n );\n invariant(\n Object.keys(definitions).length === 0,\n \"Object sets combined using intersect, subtract, or union must not contain any derived property definitions\",\n );\n\n const firstValidChildObjectType = objectSetTypes.find(\n ({ childObjectType }) => childObjectType != null,\n )?.childObjectType;\n invariant(\n objectSetTypes.every(\n ({ childObjectType }) =>\n childObjectType === firstValidChildObjectType\n || childObjectType == null,\n ),\n \"All object sets in an intersect, subtract, or union must have the same child object type\",\n );\n\n return {\n definitions: {},\n childObjectType: firstValidChildObjectType,\n };\n case \"static\":\n case \"reference\":\n // Static and reference object sets are always intersected with a base object set, so we can just return no child object type.\n return { definitions: {} };\n // We don't have to worry about new object sets being added and doing a runtime break and breaking people since the OSDK is always constructing these.\n case \"interfaceLinkSearchAround\":\n invariant(\n false,\n `Unsupported object set type for Runtime Derived Properties`,\n );\n default:\n const _: never = objectSet;\n invariant(\n false,\n `Unsupported object set type for Runtime Derived Properties`,\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAUE,6BACA,iBAUK,WAAY;AACnB,cAAc,wBAAwB,oBAAqB;AAC3D,cAEE,aAAa,qBAER,0BAA2B;AAsBlC,OAAO,iBAAS,YACdA,YACC,KAAK,UAAU;AAKlB,OAAO,iBAAS,iBACdC,WAAW,iBAAiB,wBAC3B","names":["o: object","objectSet: ObjectSet<any> | MinimalObjectSet<any>"],"sources":["../../../src/objectSet/createObjectSet.ts"],"version":3,"file":"createObjectSet.d.ts"}
1
+ {"mappings":"AAgBA,cAUE,6BACA,iBAUK,WAAY;AACnB,cAAc,wBAAwB,oBAAqB;AAC3D,cAEE,aAAa,qBAER,0BAA2B;AAuClC,OAAO,iBAAS,YACdA,YACC,KAAK,UAAU;AAKlB,OAAO,iBAAS,iBACdC,WAAW,iBAAiB,wBAC3B","names":["o: object","objectSet: ObjectSet<any> | MinimalObjectSet<any>"],"sources":["../../../src/objectSet/createObjectSet.ts"],"version":3,"file":"createObjectSet.d.ts"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osdk/client",
3
- "version": "2.8.0-beta.29",
3
+ "version": "2.8.0-beta.30",
4
4
  "description": "",
5
5
  "access": "public",
6
6
  "license": "Apache-2.0",
@@ -71,12 +71,12 @@
71
71
  "tiny-invariant": "^1.3.3",
72
72
  "type-fest": "^4.41.0",
73
73
  "ws": "^8.18.3",
74
- "@osdk/client.unstable": "2.8.0-beta.29",
75
- "@osdk/api": "2.8.0-beta.29",
74
+ "@osdk/client.unstable": "2.8.0-beta.30",
75
+ "@osdk/generator-converters": "2.8.0-beta.30",
76
76
  "@osdk/shared.client.impl": "~1.8.0-beta.2",
77
- "@osdk/generator-converters": "2.8.0-beta.29",
78
- "@osdk/shared.net.errors": "~2.8.0-beta.2",
79
- "@osdk/shared.net.fetch": "~1.8.0-beta.3"
77
+ "@osdk/api": "2.8.0-beta.30",
78
+ "@osdk/shared.net.fetch": "~1.8.0-beta.3",
79
+ "@osdk/shared.net.errors": "~2.8.0-beta.2"
80
80
  },
81
81
  "devDependencies": {
82
82
  "@microsoft/api-documenter": "^7.26.32",
@@ -97,7 +97,7 @@
97
97
  "ts-expect": "^1.3.0",
98
98
  "typescript": "~5.5.4",
99
99
  "zod": "^3.25.76",
100
- "@osdk/client.test.ontology": "~2.8.0-beta.29",
100
+ "@osdk/client.test.ontology": "~2.8.0-beta.30",
101
101
  "@osdk/monorepo.api-extractor": "~0.7.0-beta.1",
102
102
  "@osdk/monorepo.tsconfig": "~0.7.0-beta.1",
103
103
  "@osdk/shared.test": "~2.8.0-beta.3"