@osdk/client 2.23.0 → 2.23.1-beta.2

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.
Files changed (111) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/build/browser/Client.js +1 -1
  3. package/build/browser/Client.js.map +1 -1
  4. package/build/browser/MinimalClientContext.js.map +1 -1
  5. package/build/browser/actions/applyAction.js +3 -1
  6. package/build/browser/actions/applyAction.js.map +1 -1
  7. package/build/browser/createClient.js +7 -3
  8. package/build/browser/createClient.js.map +1 -1
  9. package/build/browser/createMinimalClient.js +10 -0
  10. package/build/browser/createMinimalClient.js.map +1 -1
  11. package/build/browser/derivedProperties/createWithPropertiesObjectSet.js +3 -0
  12. package/build/browser/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
  13. package/build/browser/internal/conversions/modernToLegacyWhereClause.js +30 -10
  14. package/build/browser/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
  15. package/build/browser/object/aggregate.js +2 -1
  16. package/build/browser/object/aggregate.js.map +1 -1
  17. package/build/browser/object/fetchPage.js +6 -3
  18. package/build/browser/object/fetchPage.js.map +1 -1
  19. package/build/browser/objectSet/createObjectSet.js +3 -0
  20. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  21. package/build/browser/public/unstable-do-not-use.js +2 -0
  22. package/build/browser/public/unstable-do-not-use.js.map +1 -1
  23. package/build/browser/queries/applyQuery.js +1 -0
  24. package/build/browser/queries/applyQuery.js.map +1 -1
  25. package/build/browser/scenarios/ScenarioClient.js +202 -0
  26. package/build/browser/scenarios/ScenarioClient.js.map +1 -0
  27. package/build/browser/scenarios/createScenario.js +55 -0
  28. package/build/browser/scenarios/createScenario.js.map +1 -0
  29. package/build/browser/scenarios/withScenario.js +42 -0
  30. package/build/browser/scenarios/withScenario.js.map +1 -0
  31. package/build/browser/util/UserAgent.js +2 -2
  32. package/build/browser/util/UserAgent.js.map +1 -1
  33. package/build/browser/util/toDataValue.js +4 -0
  34. package/build/browser/util/toDataValue.js.map +1 -1
  35. package/build/cjs/MediaReferenceProperty-CBPMMD73.cjs +22 -0
  36. package/build/cjs/{MediaReferenceProperty-Y6R5ASNW.cjs.map → MediaReferenceProperty-CBPMMD73.cjs.map} +1 -1
  37. package/build/cjs/{applyStreamingQuery-F77N7EOP.cjs → applyStreamingQuery-G2PA2SM7.cjs} +11 -11
  38. package/build/cjs/{applyStreamingQuery-F77N7EOP.cjs.map → applyStreamingQuery-G2PA2SM7.cjs.map} +1 -1
  39. package/build/cjs/{chunk-KILPUOJP.cjs → chunk-BV6P25ZM.cjs} +51 -21
  40. package/build/cjs/chunk-BV6P25ZM.cjs.map +1 -0
  41. package/build/cjs/{chunk-3DMI6Z4B.cjs → chunk-IWAZIBOK.cjs} +75 -75
  42. package/build/cjs/{chunk-3DMI6Z4B.cjs.map → chunk-IWAZIBOK.cjs.map} +1 -1
  43. package/build/cjs/{chunk-MURBAIS4.cjs → chunk-NFD4IH4H.cjs} +17 -16
  44. package/build/cjs/chunk-NFD4IH4H.cjs.map +1 -0
  45. package/build/cjs/{chunk-5WD6SB7R.cjs → chunk-WBINM4RT.cjs} +297 -100
  46. package/build/cjs/chunk-WBINM4RT.cjs.map +1 -0
  47. package/build/cjs/{chunk-DOXHU27E.cjs → chunk-YP43NHIA.cjs} +3 -3
  48. package/build/cjs/{chunk-DOXHU27E.cjs.map → chunk-YP43NHIA.cjs.map} +1 -1
  49. package/build/cjs/{chunk-ZPLXXOU6.cjs → chunk-ZFNHWPQA.cjs} +3 -3
  50. package/build/cjs/{chunk-ZPLXXOU6.cjs.map → chunk-ZFNHWPQA.cjs.map} +1 -1
  51. package/build/cjs/index.cjs +13 -13
  52. package/build/cjs/public/experimental.cjs +8 -8
  53. package/build/cjs/public/internal.cjs +8 -8
  54. package/build/cjs/public/observable.cjs +7 -7
  55. package/build/cjs/public/unstable-do-not-use.cjs +37 -12
  56. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  57. package/build/cjs/public/unstable-do-not-use.d.cts +167 -4
  58. package/build/cjs/{transformAndWaitInternal-F3UV33FN.cjs → transformAndWaitInternal-2GORZXPK.cjs} +6 -6
  59. package/build/cjs/{transformAndWaitInternal-F3UV33FN.cjs.map → transformAndWaitInternal-2GORZXPK.cjs.map} +1 -1
  60. package/build/esm/Client.js +1 -1
  61. package/build/esm/Client.js.map +1 -1
  62. package/build/esm/MinimalClientContext.js.map +1 -1
  63. package/build/esm/actions/applyAction.js +3 -1
  64. package/build/esm/actions/applyAction.js.map +1 -1
  65. package/build/esm/createClient.js +7 -3
  66. package/build/esm/createClient.js.map +1 -1
  67. package/build/esm/createMinimalClient.js +10 -0
  68. package/build/esm/createMinimalClient.js.map +1 -1
  69. package/build/esm/derivedProperties/createWithPropertiesObjectSet.js +3 -0
  70. package/build/esm/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
  71. package/build/esm/internal/conversions/modernToLegacyWhereClause.js +30 -10
  72. package/build/esm/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
  73. package/build/esm/object/aggregate.js +2 -1
  74. package/build/esm/object/aggregate.js.map +1 -1
  75. package/build/esm/object/fetchPage.js +6 -3
  76. package/build/esm/object/fetchPage.js.map +1 -1
  77. package/build/esm/objectSet/createObjectSet.js +3 -0
  78. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  79. package/build/esm/public/unstable-do-not-use.js +2 -0
  80. package/build/esm/public/unstable-do-not-use.js.map +1 -1
  81. package/build/esm/queries/applyQuery.js +1 -0
  82. package/build/esm/queries/applyQuery.js.map +1 -1
  83. package/build/esm/scenarios/ScenarioClient.js +202 -0
  84. package/build/esm/scenarios/ScenarioClient.js.map +1 -0
  85. package/build/esm/scenarios/createScenario.js +55 -0
  86. package/build/esm/scenarios/createScenario.js.map +1 -0
  87. package/build/esm/scenarios/withScenario.js +42 -0
  88. package/build/esm/scenarios/withScenario.js.map +1 -0
  89. package/build/esm/util/UserAgent.js +2 -2
  90. package/build/esm/util/UserAgent.js.map +1 -1
  91. package/build/esm/util/toDataValue.js +4 -0
  92. package/build/esm/util/toDataValue.js.map +1 -1
  93. package/build/types/Client.d.ts +1 -1
  94. package/build/types/MinimalClientContext.d.ts +1 -0
  95. package/build/types/MinimalClientContext.d.ts.map +1 -1
  96. package/build/types/actions/applyAction.d.ts.map +1 -1
  97. package/build/types/createClient.d.ts.map +1 -1
  98. package/build/types/public/unstable-do-not-use.d.ts +3 -0
  99. package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
  100. package/build/types/queries/applyQuery.d.ts.map +1 -1
  101. package/build/types/scenarios/ScenarioClient.d.ts +131 -0
  102. package/build/types/scenarios/ScenarioClient.d.ts.map +1 -0
  103. package/build/types/scenarios/createScenario.d.ts +21 -0
  104. package/build/types/scenarios/createScenario.d.ts.map +1 -0
  105. package/build/types/scenarios/withScenario.d.ts +23 -0
  106. package/build/types/scenarios/withScenario.d.ts.map +1 -0
  107. package/package.json +14 -14
  108. package/build/cjs/MediaReferenceProperty-Y6R5ASNW.cjs +0 -22
  109. package/build/cjs/chunk-5WD6SB7R.cjs.map +0 -1
  110. package/build/cjs/chunk-KILPUOJP.cjs.map +0 -1
  111. package/build/cjs/chunk-MURBAIS4.cjs.map +0 -1
@@ -1 +1 @@
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":"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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","Object","keys","length","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","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 if (clause == null || Object.keys(clause).length === 0) {\n return clientCtx.objectSetFactory(objectType, clientCtx, objectSet);\n }\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":"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","ignoreList":[]}
@@ -18,6 +18,8 @@ export { augment } from "../object/fetchPage.js";
18
18
  export { getWireObjectSet, isObjectSet } from "../objectSet/createObjectSet.js";
19
19
  export { getMetaTagContent, getOsdkConfig } from "../public-utils/osdkConfig.js";
20
20
  export { createClientWithTransaction } from "../createClient.js";
21
+ export { createScenario } from "../scenarios/createScenario.js";
22
+ export { withScenario } from "../scenarios/withScenario.js";
21
23
  export { applyShapeTransformations, applyShapeTransformationsToArray, buildObjectSetFromLinkDefByType, getLinkQueryOptions } from "../shapes/index.js";
22
24
 
23
25
  /** @deprecated Import from `@osdk/client/observable` instead. */
@@ -1 +1 @@
1
- {"version":3,"file":"unstable-do-not-use.js","names":["augment","getWireObjectSet","isObjectSet","getMetaTagContent","getOsdkConfig","createClientWithTransaction","applyShapeTransformations","applyShapeTransformationsToArray","buildObjectSetFromLinkDefByType","getLinkQueryOptions","createObservableClient"],"sources":["unstable-do-not-use.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\nexport { augment } from \"../object/fetchPage.js\";\nexport { getWireObjectSet, isObjectSet } from \"../objectSet/createObjectSet.js\";\n\nexport {\n getMetaTagContent,\n getOsdkConfig,\n} from \"../public-utils/osdkConfig.js\";\nexport type { OsdkConfig } from \"../public-utils/osdkConfig.js\";\n\nexport { createClientWithTransaction } from \"../createClient.js\";\n\nexport {\n applyShapeTransformations,\n applyShapeTransformationsToArray,\n buildObjectSetFromLinkDefByType,\n getLinkQueryOptions,\n} from \"../shapes/index.js\";\n\n/** @deprecated Import from `@osdk/client/observable` instead. */\nexport type { ActionSignatureFromDef } from \"../actions/applyAction.js\";\n/** @deprecated Import from `@osdk/client/observable` instead. */\nexport { createObservableClient } from \"../observable/ObservableClient.js\";\n/** @deprecated Import from `@osdk/client/observable` instead. */\nexport type {\n CacheEntry,\n CacheSnapshot,\n CanonicalizedOptions,\n CanonicalizeOptionsInput,\n ObservableClient,\n ObserveAggregationArgs,\n ObserveFunctionCallbackArgs,\n ObserveFunctionOptions,\n ObserveObjectCallbackArgs,\n ObserveObjectsCallbackArgs,\n ObserveObjectSetArgs,\n Unsubscribable,\n} from \"../observable/ObservableClient.js\";\n/** @deprecated Import from `@osdk/client/observable` instead. */\nexport type { Observer } from \"../observable/ObservableClient/common.js\";\n/** @deprecated Import from `@osdk/client/observable` instead. */\nexport type { ObserveLinks } from \"../observable/ObservableClient/ObserveLink.js\";\n/** @deprecated Import from `@osdk/client/observable` instead. */\nexport type { QueryParameterType, QueryReturnType } from \"../queries/types.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAQ,wBAAwB;AAChD,SAASC,gBAAgB,EAAEC,WAAW,QAAQ,iCAAiC;AAE/E,SACEC,iBAAiB,EACjBC,aAAa,QACR,+BAA+B;AAGtC,SAASC,2BAA2B,QAAQ,oBAAoB;AAEhE,SACEC,yBAAyB,EACzBC,gCAAgC,EAChCC,+BAA+B,EAC/BC,mBAAmB,QACd,oBAAoB;;AAE3B;;AAEA;AACA,SAASC,sBAAsB,QAAQ,mCAAmC;AAC1E;;AAeA;;AAEA;;AAEA","ignoreList":[]}
1
+ {"version":3,"file":"unstable-do-not-use.js","names":["augment","getWireObjectSet","isObjectSet","getMetaTagContent","getOsdkConfig","createClientWithTransaction","createScenario","withScenario","applyShapeTransformations","applyShapeTransformationsToArray","buildObjectSetFromLinkDefByType","getLinkQueryOptions","createObservableClient"],"sources":["unstable-do-not-use.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\nexport { augment } from \"../object/fetchPage.js\";\nexport { getWireObjectSet, isObjectSet } from \"../objectSet/createObjectSet.js\";\n\nexport {\n getMetaTagContent,\n getOsdkConfig,\n} from \"../public-utils/osdkConfig.js\";\nexport type { OsdkConfig } from \"../public-utils/osdkConfig.js\";\n\nexport { createClientWithTransaction } from \"../createClient.js\";\n\nexport { createScenario } from \"../scenarios/createScenario.js\";\nexport type { ScenarioClient } from \"../scenarios/ScenarioClient.js\";\nexport { withScenario } from \"../scenarios/withScenario.js\";\n\nexport {\n applyShapeTransformations,\n applyShapeTransformationsToArray,\n buildObjectSetFromLinkDefByType,\n getLinkQueryOptions,\n} from \"../shapes/index.js\";\n\n/** @deprecated Import from `@osdk/client/observable` instead. */\nexport type { ActionSignatureFromDef } from \"../actions/applyAction.js\";\n/** @deprecated Import from `@osdk/client/observable` instead. */\nexport { createObservableClient } from \"../observable/ObservableClient.js\";\n/** @deprecated Import from `@osdk/client/observable` instead. */\nexport type {\n CacheEntry,\n CacheSnapshot,\n CanonicalizedOptions,\n CanonicalizeOptionsInput,\n ObservableClient,\n ObserveAggregationArgs,\n ObserveFunctionCallbackArgs,\n ObserveFunctionOptions,\n ObserveObjectCallbackArgs,\n ObserveObjectsCallbackArgs,\n ObserveObjectSetArgs,\n Unsubscribable,\n} from \"../observable/ObservableClient.js\";\n/** @deprecated Import from `@osdk/client/observable` instead. */\nexport type { Observer } from \"../observable/ObservableClient/common.js\";\n/** @deprecated Import from `@osdk/client/observable` instead. */\nexport type { ObserveLinks } from \"../observable/ObservableClient/ObserveLink.js\";\n/** @deprecated Import from `@osdk/client/observable` instead. */\nexport type { QueryParameterType, QueryReturnType } from \"../queries/types.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAQ,wBAAwB;AAChD,SAASC,gBAAgB,EAAEC,WAAW,QAAQ,iCAAiC;AAE/E,SACEC,iBAAiB,EACjBC,aAAa,QACR,+BAA+B;AAGtC,SAASC,2BAA2B,QAAQ,oBAAoB;AAEhE,SAASC,cAAc,QAAQ,gCAAgC;AAE/D,SAASC,YAAY,QAAQ,8BAA8B;AAE3D,SACEC,yBAAyB,EACzBC,gCAAgC,EAChCC,+BAA+B,EAC/BC,mBAAmB,QACd,oBAAoB;;AAE3B;;AAEA;AACA,SAASC,sBAAsB,QAAQ,mCAAmC;AAC1E;;AAeA;;AAEA;;AAEA","ignoreList":[]}
@@ -36,6 +36,7 @@ export async function applyQuery(client, query, params) {
36
36
  }, {
37
37
  version: query.isFixedVersion ? query.version : undefined,
38
38
  transactionId: client.transactionId,
39
+ scenarioRid: client.scenarioRid,
39
40
  branch: client.branch
40
41
  });
41
42
  const objectOutputDefs = await getRequiredDefinitions((await qd).output, client);
@@ -1 +1 @@
1
- {"version":3,"file":"applyQuery.js","names":["Queries","invariant","createMediaFromReferenceInternal","createObjectSet","hydrateAttachmentFromRidInternal","addUserAgentAndRequestContextHeaders","augmentRequestContext","createObjectSpecifierFromInterfaceSpecifier","createObjectSpecifierFromPrimaryKey","toDataValueQueries","applyQuery","client","query","params","qd","ontologyProvider","getQueryDefinition","apiName","isFixedVersion","version","undefined","flushEdits","response","execute","finalMethodCall","ontologyRid","parameters","remapQueryParams","transactionId","branch","objectOutputDefs","getRequiredDefinitions","output","remappedResponse","remapQueryResponse","value","paramTypes","parameterMap","key","Object","entries","responseDataType","responseValue","definitions","nullable","Error","type","i","length","array","set","def","get","object","createQueryObjectResponse","interface","createQueryInterfaceResponse","objectSet","objectSets","objectType","reference","subtype","struct","requiresConversion","map","Array","isArray","process","env","NODE_ENV","entry","valueType","keyType","getObjectSpecifier","result","groups","push","subResult","subKey","dataType","Map","objectDef","getObjectDefinition","interfaceDef","getInterfaceDefinition","types","allDefs","Promise","all","defs","structValues","values","some","primaryKey","objectTypeApiName","$apiName","$title","$objectType","$primaryKey","$objectSpecifier","interfaceSpecifier","primaryKeyValue"],"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 InterfaceDefinition,\n ObjectOrInterfaceDefinition,\n ObjectTypeDefinition,\n OsdkBase,\n PrimaryKeyType,\n QueryDataTypeDefinition,\n QueryDefinition,\n QueryMetadata,\n QueryParameterDefinition,\n} from \"@osdk/api\";\nimport type { DataValue } from \"@osdk/foundry.ontologies\";\nimport * as Queries from \"@osdk/foundry.ontologies/Query\";\nimport invariant from \"tiny-invariant\";\nimport { createMediaFromReferenceInternal } from \"../createMediaFromReference.js\";\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 {\n createObjectSpecifierFromInterfaceSpecifier,\n createObjectSpecifierFromPrimaryKey,\n} from \"../util/objectSpecifierUtils.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 // We fire and forget so if a function has no parameters we don't unnecessarily load all metadata\n const qd: Promise<QueryMetadata> = client.ontologyProvider.getQueryDefinition(\n query.apiName,\n query.isFixedVersion ? query.version : undefined,\n );\n\n if (client.flushEdits != null) {\n await client.flushEdits();\n }\n\n const response = await 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 (await qd).parameters,\n )\n : {},\n },\n {\n version: query.isFixedVersion ? query.version : undefined,\n transactionId: client.transactionId,\n branch: client.branch,\n },\n );\n\n const objectOutputDefs = await getRequiredDefinitions(\n (await qd).output,\n client,\n );\n const remappedResponse = await remapQueryResponse(\n client,\n (await qd).output,\n response.value,\n objectOutputDefs,\n );\n return remappedResponse as QueryReturnType<CompileTimeMetadata<QD>[\"output\"]>;\n}\n\nexport async 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\nexport async 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 switch (responseDataType.type) {\n case \"union\": {\n throw new Error(\"Union return types are not yet supported\");\n }\n\n case \"array\": {\n for (let i = 0; i < responseValue.length; i++) {\n responseValue[i] = await remapQueryResponse(\n client,\n responseDataType.array,\n responseValue[i],\n definitions,\n );\n }\n\n return responseValue as QueryReturnType<typeof responseDataType>;\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\n case \"mediaReference\": {\n return createMediaFromReferenceInternal(\n client,\n responseValue,\n ) as unknown as QueryReturnType<\n typeof responseDataType\n >;\n }\n\n case \"object\": {\n const def = definitions.get(responseDataType.object);\n if (!def || def.type !== \"object\") {\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 \"interface\": {\n const def = definitions.get(responseDataType.interface);\n if (!def || def.type !== \"interface\") {\n throw new Error(\n `Missing definition for ${responseDataType.interface}`,\n );\n }\n\n return createQueryInterfaceResponse(\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\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) || responseValue[key] == null) {\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 != null, \"Expected key\");\n invariant(\n responseDataType.valueType.nullable || entry.value != null,\n \"Expected value\",\n );\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\nexport async 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 \"interfaceObjectSet\": {\n const interfaceDef = await client.ontologyProvider.getInterfaceDefinition(\n dataType.objectSet,\n );\n result.set(dataType.objectSet, interfaceDef);\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 \"interface\": {\n const interfaceDef = await client.ontologyProvider.getInterfaceDefinition(\n dataType.interface,\n );\n result.set(dataType.interface, interfaceDef);\n break;\n }\n\n case \"set\": {\n return getRequiredDefinitions(dataType.set, client);\n }\n case \"array\": {\n return getRequiredDefinitions(dataType.array, client);\n }\n\n case \"map\": {\n const types = [dataType.keyType, dataType.valueType];\n\n const allDefs = await Promise.all(\n types.map(value => getRequiredDefinitions(value, client)),\n );\n\n for (const defs of allDefs) {\n for (const [type, objectDef] of defs) {\n result.set(type, objectDef);\n }\n }\n break;\n }\n\n case \"struct\": {\n const structValues = Object.values(dataType.struct);\n\n const allDefs = await Promise.all(\n structValues.map(value => getRequiredDefinitions(value, client)),\n );\n\n for (const defs of allDefs) {\n for (const [type, objectDef] of defs) {\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 \"mediaReference\":\n case \"string\":\n case \"threeDimensionalAggregation\":\n case \"timestamp\":\n case \"twoDimensionalAggregation\":\n case \"typeReference\":\n case \"union\":\n break;\n default: {\n const _: never = dataType;\n break;\n }\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 \"mediaReference\":\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 || def.type !== \"object\") {\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 ObjectTypeDefinition,\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\nexport function createQueryInterfaceResponse<\n Q extends InterfaceDefinition,\n>(\n interfaceSpecifier: {\n objectTypeApiName: string;\n primaryKeyValue: PrimaryKeyType<Q>;\n },\n interfaceDef: Q,\n): OsdkBase<Q> {\n return {\n $apiName: interfaceDef.apiName,\n $title: undefined,\n $objectType: interfaceSpecifier.objectTypeApiName,\n $primaryKey: interfaceSpecifier.primaryKeyValue,\n $objectSpecifier: createObjectSpecifierFromInterfaceSpecifier(\n interfaceDef,\n interfaceSpecifier,\n ),\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"applyQuery.js","names":["Queries","invariant","createMediaFromReferenceInternal","createObjectSet","hydrateAttachmentFromRidInternal","addUserAgentAndRequestContextHeaders","augmentRequestContext","createObjectSpecifierFromInterfaceSpecifier","createObjectSpecifierFromPrimaryKey","toDataValueQueries","applyQuery","client","query","params","qd","ontologyProvider","getQueryDefinition","apiName","isFixedVersion","version","undefined","flushEdits","response","execute","finalMethodCall","ontologyRid","parameters","remapQueryParams","transactionId","scenarioRid","branch","objectOutputDefs","getRequiredDefinitions","output","remappedResponse","remapQueryResponse","value","paramTypes","parameterMap","key","Object","entries","responseDataType","responseValue","definitions","nullable","Error","type","i","length","array","set","def","get","object","createQueryObjectResponse","interface","createQueryInterfaceResponse","objectSet","objectSets","objectType","reference","subtype","struct","requiresConversion","map","Array","isArray","process","env","NODE_ENV","entry","valueType","keyType","getObjectSpecifier","result","groups","push","subResult","subKey","dataType","Map","objectDef","getObjectDefinition","interfaceDef","getInterfaceDefinition","types","allDefs","Promise","all","defs","structValues","values","some","primaryKey","objectTypeApiName","$apiName","$title","$objectType","$primaryKey","$objectSpecifier","interfaceSpecifier","primaryKeyValue"],"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 InterfaceDefinition,\n ObjectOrInterfaceDefinition,\n ObjectTypeDefinition,\n OsdkBase,\n PrimaryKeyType,\n QueryDataTypeDefinition,\n QueryDefinition,\n QueryMetadata,\n QueryParameterDefinition,\n} from \"@osdk/api\";\nimport type { DataValue } from \"@osdk/foundry.ontologies\";\nimport * as Queries from \"@osdk/foundry.ontologies/Query\";\nimport invariant from \"tiny-invariant\";\nimport { createMediaFromReferenceInternal } from \"../createMediaFromReference.js\";\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 {\n createObjectSpecifierFromInterfaceSpecifier,\n createObjectSpecifierFromPrimaryKey,\n} from \"../util/objectSpecifierUtils.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 // We fire and forget so if a function has no parameters we don't unnecessarily load all metadata\n const qd: Promise<QueryMetadata> = client.ontologyProvider.getQueryDefinition(\n query.apiName,\n query.isFixedVersion ? query.version : undefined,\n );\n\n if (client.flushEdits != null) {\n await client.flushEdits();\n }\n\n const response = await 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 (await qd).parameters,\n )\n : {},\n },\n {\n version: query.isFixedVersion ? query.version : undefined,\n transactionId: client.transactionId,\n scenarioRid: client.scenarioRid,\n branch: client.branch,\n },\n );\n\n const objectOutputDefs = await getRequiredDefinitions(\n (await qd).output,\n client,\n );\n const remappedResponse = await remapQueryResponse(\n client,\n (await qd).output,\n response.value,\n objectOutputDefs,\n );\n return remappedResponse as QueryReturnType<CompileTimeMetadata<QD>[\"output\"]>;\n}\n\nexport async 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\nexport async 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 switch (responseDataType.type) {\n case \"union\": {\n throw new Error(\"Union return types are not yet supported\");\n }\n\n case \"array\": {\n for (let i = 0; i < responseValue.length; i++) {\n responseValue[i] = await remapQueryResponse(\n client,\n responseDataType.array,\n responseValue[i],\n definitions,\n );\n }\n\n return responseValue as QueryReturnType<typeof responseDataType>;\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\n case \"mediaReference\": {\n return createMediaFromReferenceInternal(\n client,\n responseValue,\n ) as unknown as QueryReturnType<\n typeof responseDataType\n >;\n }\n\n case \"object\": {\n const def = definitions.get(responseDataType.object);\n if (!def || def.type !== \"object\") {\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 \"interface\": {\n const def = definitions.get(responseDataType.interface);\n if (!def || def.type !== \"interface\") {\n throw new Error(\n `Missing definition for ${responseDataType.interface}`,\n );\n }\n\n return createQueryInterfaceResponse(\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\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) || responseValue[key] == null) {\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 != null, \"Expected key\");\n invariant(\n responseDataType.valueType.nullable || entry.value != null,\n \"Expected value\",\n );\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\nexport async 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 \"interfaceObjectSet\": {\n const interfaceDef = await client.ontologyProvider.getInterfaceDefinition(\n dataType.objectSet,\n );\n result.set(dataType.objectSet, interfaceDef);\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 \"interface\": {\n const interfaceDef = await client.ontologyProvider.getInterfaceDefinition(\n dataType.interface,\n );\n result.set(dataType.interface, interfaceDef);\n break;\n }\n\n case \"set\": {\n return getRequiredDefinitions(dataType.set, client);\n }\n case \"array\": {\n return getRequiredDefinitions(dataType.array, client);\n }\n\n case \"map\": {\n const types = [dataType.keyType, dataType.valueType];\n\n const allDefs = await Promise.all(\n types.map(value => getRequiredDefinitions(value, client)),\n );\n\n for (const defs of allDefs) {\n for (const [type, objectDef] of defs) {\n result.set(type, objectDef);\n }\n }\n break;\n }\n\n case \"struct\": {\n const structValues = Object.values(dataType.struct);\n\n const allDefs = await Promise.all(\n structValues.map(value => getRequiredDefinitions(value, client)),\n );\n\n for (const defs of allDefs) {\n for (const [type, objectDef] of defs) {\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 \"mediaReference\":\n case \"string\":\n case \"threeDimensionalAggregation\":\n case \"timestamp\":\n case \"twoDimensionalAggregation\":\n case \"typeReference\":\n case \"union\":\n break;\n default: {\n const _: never = dataType;\n break;\n }\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 \"mediaReference\":\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 || def.type !== \"object\") {\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 ObjectTypeDefinition,\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\nexport function createQueryInterfaceResponse<\n Q extends InterfaceDefinition,\n>(\n interfaceSpecifier: {\n objectTypeApiName: string;\n primaryKeyValue: PrimaryKeyType<Q>;\n },\n interfaceDef: Q,\n): OsdkBase<Q> {\n return {\n $apiName: interfaceDef.apiName,\n $title: undefined,\n $objectType: interfaceSpecifier.objectTypeApiName,\n $primaryKey: interfaceSpecifier.primaryKeyValue,\n $objectSpecifier: createObjectSpecifierFromInterfaceSpecifier(\n interfaceDef,\n interfaceSpecifier,\n ),\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,202 @@
1
+ /*
2
+ * Copyright 2026 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { OntologyScenarios } from "@osdk/foundry.ontologies";
18
+ import { additionalContext } from "../Client.js";
19
+ import { createClientWithScenario } from "../createClient.js";
20
+
21
+ /**
22
+ * The set of many-to-many link types modified within a scenario for one source object type. Returned as part of
23
+ * {@link ScenarioEditedEntityTypes.linkTypes}.
24
+ */
25
+
26
+ /**
27
+ * The object types and link types that have been modified within a scenario. Only many-to-many link type edits are surfaced via `linkTypes`;
28
+ * one-to-many edits surface as object edits on the object type that owns the foreign key property.
29
+ */
30
+
31
+ /**
32
+ * A page of edited object identifiers within a scenario
33
+ * for a given object type. Returned by {@link ScenarioClient.getEditedEntities}. To load full property values,
34
+ * pass the primary keys back through the scenario client, e.g.
35
+ * `scenario(MyObject).where({ $primaryKey: { $in: keys } }).fetchPage()`.
36
+ */
37
+
38
+ /**
39
+ * A page of directed link instances edited within a scenario for a given source object type and link api name.
40
+ * Returned by {@link ScenarioClient.getEditedLinks}. Source and target carry only `$primaryKey` + `$apiName`.
41
+ */
42
+
43
+ /**
44
+ * A {@link Client} attached to an ontology scenario. All read and write operations performed via this client are
45
+ * scoped to that scenario. `ScenarioClient` is a superset of {@link Client}: it is usable anywhere a `Client` is
46
+ * accepted (e.g. as the `scenarioReference` parameter on a scenario-merge action).
47
+ *
48
+ * @beta This is an experimental, unstable feature subject to change.
49
+ */
50
+
51
+ /**
52
+ * Runtime predicate for {@link ScenarioClient}. Returns `true` when `value` exposes a `getScenarioReference()`
53
+ * method — i.e. when it was built by {@link withScenario} or {@link createScenario}. Used by action parameter
54
+ * serialization to accept a `ScenarioClient` directly for `scenarioReference`-typed parameters.
55
+ *
56
+ * @internal
57
+ */
58
+ export function isScenarioClient(value) {
59
+ return value != null && (typeof value === "object" || typeof value === "function") && typeof value.getScenarioReference === "function";
60
+ }
61
+
62
+ /**
63
+ * Shared internal builder used by both {@link withScenario} and {@link createScenario}. Validates the parent client
64
+ * is not already inside a scenario or transaction, then constructs a fresh {@link Client} via
65
+ * `createClientWithScenario` and decorates it with {@link ScenarioClient}-only methods.
66
+ *
67
+ * @internal
68
+ */
69
+ export function buildScenarioClient(parent, scenarioRid) {
70
+ const ctx = parent[additionalContext];
71
+ if (ctx.transactionId != null) {
72
+ throw new Error("withScenario / createScenario: the supplied client already has an active transaction. Scenarios cannot be nested on transactions.");
73
+ }
74
+ if (ctx.scenarioRid != null) {
75
+ throw new Error("withScenario / createScenario: the supplied client already has an active scenario. Scenarios cannot be nested.");
76
+ }
77
+ const inner = createClientWithScenario(scenarioRid, ctx.baseUrl, ctx.ontologyRid, ctx.tokenProvider, {
78
+ logger: ctx.logger,
79
+ UNSTABLE_DO_NOT_USE_BRANCH: ctx.branch
80
+ }, ctx.fetch);
81
+ const innerCtx = inner[additionalContext];
82
+ async function getEditedEntities(objectType, options) {
83
+ const ontologyRid = await innerCtx.ontologyRid;
84
+ const response = await OntologyScenarios.listScenarioEditedObjects(innerCtx, ontologyRid, scenarioRid, objectType.apiName, {
85
+ pageSize: options?.pageSize,
86
+ pageToken: options?.pageToken
87
+ });
88
+ const data = response.data.map(entry => {
89
+ const wire = entry;
90
+ return {
91
+ $apiName: wire.__apiName,
92
+ $primaryKey: wire.__primaryKey
93
+ };
94
+ });
95
+ return {
96
+ data,
97
+ nextPageToken: response.nextPageToken
98
+ };
99
+ }
100
+ async function getEditedLinks(sourceObjectType, linkType, options) {
101
+ const ontologyRid = await innerCtx.ontologyRid;
102
+ const response = await OntologyScenarios.listScenarioEditedLinks(innerCtx, ontologyRid, scenarioRid, sourceObjectType.apiName, linkType, {
103
+ pageSize: options?.pageSize,
104
+ pageToken: options?.pageToken
105
+ });
106
+ const data = [];
107
+ for (const entry of response.data) {
108
+ const sourceWire = entry.sourceObject;
109
+ if (sourceWire?.__apiName == null || sourceWire.__primaryKey == null) {
110
+ continue;
111
+ }
112
+ const source = {
113
+ $apiName: sourceWire.__apiName,
114
+ $primaryKey: sourceWire.__primaryKey
115
+ };
116
+ for (const linked of entry.linkedObjects) {
117
+ const targetWire = linked.targetObject;
118
+ if (targetWire?.__apiName == null || targetWire.__primaryKey == null) {
119
+ continue;
120
+ }
121
+ const target = {
122
+ $apiName: targetWire.__apiName,
123
+ $primaryKey: targetWire.__primaryKey
124
+ };
125
+ data.push({
126
+ source,
127
+ target,
128
+ linkType: linked.linkType ?? linkType
129
+ });
130
+ }
131
+ }
132
+ return {
133
+ data,
134
+ nextPageToken: response.nextPageToken
135
+ };
136
+ }
137
+ return Object.defineProperties(inner, {
138
+ getScenarioReference: {
139
+ value: () => ({
140
+ scenarioRid
141
+ })
142
+ },
143
+ getEditedEntityTypes: {
144
+ value: async function () {
145
+ const ontologyRid = await innerCtx.ontologyRid;
146
+ const response = await OntologyScenarios.listScenarioEditedEntityTypes(innerCtx, ontologyRid, scenarioRid);
147
+ return {
148
+ objectTypes: response.objectTypes,
149
+ linkTypes: response.linkTypes
150
+ };
151
+ }
152
+ },
153
+ getEditedEntities: {
154
+ value: getEditedEntities
155
+ },
156
+ editedEntitiesAsyncIter: {
157
+ value: async function* (objectType, options) {
158
+ const seen = new Set();
159
+ let pageToken;
160
+ do {
161
+ const page = await getEditedEntities(objectType, {
162
+ pageSize: options?.pageSize,
163
+ pageToken
164
+ });
165
+ for (const obj of page.data) {
166
+ const key = obj.$primaryKey;
167
+ if (seen.has(key)) continue;
168
+ seen.add(key);
169
+ yield obj;
170
+ }
171
+ pageToken = page.nextPageToken;
172
+ } while (pageToken != null);
173
+ }
174
+ },
175
+ getEditedLinkTypes: {
176
+ value: async function (sourceObjectType) {
177
+ const ontologyRid = await innerCtx.ontologyRid;
178
+ const response = await OntologyScenarios.listScenarioEditedLinkTypes(innerCtx, ontologyRid, scenarioRid, sourceObjectType.apiName);
179
+ return response.data;
180
+ }
181
+ },
182
+ getEditedLinks: {
183
+ value: getEditedLinks
184
+ },
185
+ editedLinksAsyncIter: {
186
+ value: async function* (sourceObjectType, linkType, options) {
187
+ let pageToken;
188
+ do {
189
+ const page = await getEditedLinks(sourceObjectType, linkType, {
190
+ pageSize: options?.pageSize,
191
+ pageToken
192
+ });
193
+ for (const link of page.data) {
194
+ yield link;
195
+ }
196
+ pageToken = page.nextPageToken;
197
+ } while (pageToken != null);
198
+ }
199
+ }
200
+ });
201
+ }
202
+ //# sourceMappingURL=ScenarioClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScenarioClient.js","names":["OntologyScenarios","additionalContext","createClientWithScenario","isScenarioClient","value","getScenarioReference","buildScenarioClient","parent","scenarioRid","ctx","transactionId","Error","inner","baseUrl","ontologyRid","tokenProvider","logger","UNSTABLE_DO_NOT_USE_BRANCH","branch","fetch","innerCtx","getEditedEntities","objectType","options","response","listScenarioEditedObjects","apiName","pageSize","pageToken","data","map","entry","wire","$apiName","__apiName","$primaryKey","__primaryKey","nextPageToken","getEditedLinks","sourceObjectType","linkType","listScenarioEditedLinks","sourceWire","sourceObject","source","linked","linkedObjects","targetWire","targetObject","target","push","Object","defineProperties","getEditedEntityTypes","listScenarioEditedEntityTypes","objectTypes","linkTypes","editedEntitiesAsyncIter","seen","Set","page","obj","key","has","add","getEditedLinkTypes","listScenarioEditedLinkTypes","editedLinksAsyncIter","link"],"sources":["ScenarioClient.ts"],"sourcesContent":["/*\n * Copyright 2026 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 LinkTypeApiNamesFor,\n MinimalDirectedObjectLinkInstance,\n ObjectIdentifiers,\n ObjectOrInterfaceDefinition,\n ObjectTypeDefinition,\n PrimaryKeyType,\n} from \"@osdk/api\";\nimport { OntologyScenarios } from \"@osdk/foundry.ontologies\";\nimport { additionalContext, type Client } from \"../Client.js\";\nimport { createClientWithScenario } from \"../createClient.js\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\n\n/**\n * The set of many-to-many link types modified within a scenario for one source object type. Returned as part of\n * {@link ScenarioEditedEntityTypes.linkTypes}.\n */\nexport interface EditedLinksForObjectType {\n objectTypeApiName: string;\n linkTypes: string[];\n}\n\n/**\n * The object types and link types that have been modified within a scenario. Only many-to-many link type edits are surfaced via `linkTypes`;\n * one-to-many edits surface as object edits on the object type that owns the foreign key property.\n */\nexport interface ScenarioEditedEntityTypes {\n objectTypes: string[];\n linkTypes: EditedLinksForObjectType[];\n}\n\n/**\n * A page of edited object identifiers within a scenario\n * for a given object type. Returned by {@link ScenarioClient.getEditedEntities}. To load full property values,\n * pass the primary keys back through the scenario client, e.g.\n * `scenario(MyObject).where({ $primaryKey: { $in: keys } }).fetchPage()`.\n */\nexport interface EditedEntitiesPage<Q extends ObjectTypeDefinition> {\n data: ObjectIdentifiers<Q>[];\n nextPageToken?: string;\n}\n\n/**\n * A page of directed link instances edited within a scenario for a given source object type and link api name.\n * Returned by {@link ScenarioClient.getEditedLinks}. Source and target carry only `$primaryKey` + `$apiName`.\n */\nexport interface EditedLinksPage<\n Q extends ObjectOrInterfaceDefinition,\n LINK_TYPE_API_NAME extends LinkTypeApiNamesFor<Q>,\n> {\n data: MinimalDirectedObjectLinkInstance<Q, LINK_TYPE_API_NAME>[];\n nextPageToken?: string;\n}\n\n/**\n * A {@link Client} attached to an ontology scenario. All read and write operations performed via this client are\n * scoped to that scenario. `ScenarioClient` is a superset of {@link Client}: it is usable anywhere a `Client` is\n * accepted (e.g. as the `scenarioReference` parameter on a scenario-merge action).\n *\n * @beta This is an experimental, unstable feature subject to change.\n */\nexport interface ScenarioClient extends Client {\n /**\n * Returns the scenario reference for this client. Pass directly to an action whose parameter is typed as\n * `scenarioReference`, or use to inspect the underlying scenario RID.\n */\n getScenarioReference(): { scenarioRid: string };\n\n /**\n * List the object types and many-to-many link types that have been modified within this scenario. Useful as a\n * pre-step before paginating individual edited objects per type.\n */\n getEditedEntityTypes(): Promise<ScenarioEditedEntityTypes>;\n\n /**\n * Get a page of object identifiers that have been\n * edited within this scenario for the given object type. Use the scenario client to fetch full property values\n * if needed.\n *\n * @example\n * ```ts\n * let pageToken: string | undefined;\n * const keys: string[] = [];\n * do {\n * const page = await scenario.getEditedEntities(Doctor, { pageSize: 500, pageToken });\n * keys.push(...page.data.map(o => o.$primaryKey));\n * pageToken = page.nextPageToken;\n * } while (pageToken);\n * ```\n */\n getEditedEntities<Q extends ObjectTypeDefinition>(\n objectType: Q,\n options?: { pageSize?: number; pageToken?: string },\n ): Promise<EditedEntitiesPage<Q>>;\n\n /**\n * Stream object identifiers for the objects edited within this scenario for the\n * given object type. Pages are fetched lazily and deduplicated by `$primaryKey` across pages (Funnel may return\n * duplicates).\n *\n * @example\n * ```ts\n * for await (const obj of scenario.editedEntitiesAsyncIter(Doctor, { pageSize: 500 })) {\n * // obj.$primaryKey is the unique key for this edited object\n * }\n * ```\n */\n editedEntitiesAsyncIter<Q extends ObjectTypeDefinition>(\n objectType: Q,\n options?: { pageSize?: number },\n ): AsyncIterableIterator<ObjectIdentifiers<Q>>;\n\n /**\n * List the outgoing many-to-many link API names that have been modified within this scenario for the given\n * source object type. One-to-many link edits surface as object edits on the FK-owning side and are not returned\n * here.\n */\n getEditedLinkTypes<Q extends ObjectOrInterfaceDefinition>(\n sourceObjectType: Q,\n ): Promise<LinkTypeApiNamesFor<Q>[]>;\n\n /**\n * Get a page of directed link instances edited within this scenario for a given source object type and link\n * api name. The page form returns a flattened array of `{ source, target, linkType }` triples.\n */\n getEditedLinks<\n Q extends ObjectOrInterfaceDefinition,\n LINK_TYPE_API_NAME extends LinkTypeApiNamesFor<Q>,\n >(\n sourceObjectType: Q,\n linkType: LINK_TYPE_API_NAME,\n options?: { pageSize?: number; pageToken?: string },\n ): Promise<EditedLinksPage<Q, LINK_TYPE_API_NAME>>;\n\n /**\n * Stream directed link instances edited within this scenario for a given source object type and link api name.\n * Pages are fetched lazily.\n *\n * @example\n * ```ts\n * for await (\n * const { source, target, linkType } of scenario.editedLinksAsyncIter(Doctor, \"treats\")\n * ) {\n * graph.addEdge(source, target, linkType);\n * }\n * ```\n */\n editedLinksAsyncIter<\n Q extends ObjectOrInterfaceDefinition,\n LINK_TYPE_API_NAME extends LinkTypeApiNamesFor<Q>,\n >(\n sourceObjectType: Q,\n linkType: LINK_TYPE_API_NAME,\n options?: { pageSize?: number },\n ): AsyncIterableIterator<\n MinimalDirectedObjectLinkInstance<Q, LINK_TYPE_API_NAME>\n >;\n}\n\n/**\n * Runtime predicate for {@link ScenarioClient}. Returns `true` when `value` exposes a `getScenarioReference()`\n * method — i.e. when it was built by {@link withScenario} or {@link createScenario}. Used by action parameter\n * serialization to accept a `ScenarioClient` directly for `scenarioReference`-typed parameters.\n *\n * @internal\n */\nexport function isScenarioClient(value: unknown): value is ScenarioClient {\n return (\n value != null\n && (typeof value === \"object\" || typeof value === \"function\")\n && typeof (value as { getScenarioReference?: unknown })\n .getScenarioReference === \"function\"\n );\n}\n\n/**\n * Shared internal builder used by both {@link withScenario} and {@link createScenario}. Validates the parent client\n * is not already inside a scenario or transaction, then constructs a fresh {@link Client} via\n * `createClientWithScenario` and decorates it with {@link ScenarioClient}-only methods.\n *\n * @internal\n */\nexport function buildScenarioClient(\n parent: Client,\n scenarioRid: string,\n): ScenarioClient {\n const ctx: MinimalClient = parent[additionalContext];\n\n if (ctx.transactionId != null) {\n throw new Error(\n \"withScenario / createScenario: the supplied client already has an active transaction. Scenarios cannot be nested on transactions.\",\n );\n }\n if (ctx.scenarioRid != null) {\n throw new Error(\n \"withScenario / createScenario: the supplied client already has an active scenario. Scenarios cannot be nested.\",\n );\n }\n\n const inner: Client = createClientWithScenario(\n scenarioRid,\n ctx.baseUrl,\n ctx.ontologyRid,\n ctx.tokenProvider,\n {\n logger: ctx.logger,\n UNSTABLE_DO_NOT_USE_BRANCH: ctx.branch,\n },\n ctx.fetch,\n );\n\n const innerCtx: MinimalClient = inner[additionalContext];\n\n async function getEditedEntityTypes(): Promise<ScenarioEditedEntityTypes> {\n const ontologyRid = await innerCtx.ontologyRid;\n const response = await OntologyScenarios.listScenarioEditedEntityTypes(\n innerCtx,\n ontologyRid,\n scenarioRid,\n );\n return {\n objectTypes: response.objectTypes,\n linkTypes: response.linkTypes,\n };\n }\n\n async function getEditedEntities<Q extends ObjectTypeDefinition>(\n objectType: Q,\n options?: { pageSize?: number; pageToken?: string },\n ): Promise<EditedEntitiesPage<Q>> {\n const ontologyRid = await innerCtx.ontologyRid;\n const response = await OntologyScenarios.listScenarioEditedObjects(\n innerCtx,\n ontologyRid,\n scenarioRid,\n objectType.apiName,\n { pageSize: options?.pageSize, pageToken: options?.pageToken },\n );\n const data: ObjectIdentifiers<Q>[] = response.data.map((entry) => {\n const wire = entry as { __apiName?: unknown; __primaryKey?: unknown };\n return {\n $apiName: wire.__apiName as Q[\"apiName\"],\n $primaryKey: wire.__primaryKey as PrimaryKeyType<Q>,\n };\n });\n return {\n data,\n nextPageToken: response.nextPageToken,\n };\n }\n\n async function* editedEntitiesAsyncIter<Q extends ObjectTypeDefinition>(\n objectType: Q,\n options?: { pageSize?: number },\n ): AsyncIterableIterator<ObjectIdentifiers<Q>> {\n const seen = new Set<unknown>();\n let pageToken: string | undefined;\n do {\n const page = await getEditedEntities(objectType, {\n pageSize: options?.pageSize,\n pageToken,\n });\n for (const obj of page.data) {\n const key = obj.$primaryKey;\n if (seen.has(key)) continue;\n seen.add(key);\n yield obj;\n }\n pageToken = page.nextPageToken;\n } while (pageToken != null);\n }\n\n async function getEditedLinkTypes<Q extends ObjectOrInterfaceDefinition>(\n sourceObjectType: Q,\n ): Promise<LinkTypeApiNamesFor<Q>[]> {\n const ontologyRid = await innerCtx.ontologyRid;\n const response = await OntologyScenarios.listScenarioEditedLinkTypes(\n innerCtx,\n ontologyRid,\n scenarioRid,\n sourceObjectType.apiName,\n );\n return response.data as LinkTypeApiNamesFor<Q>[];\n }\n\n async function getEditedLinks<\n Q extends ObjectOrInterfaceDefinition,\n LINK_TYPE_API_NAME extends LinkTypeApiNamesFor<Q>,\n >(\n sourceObjectType: Q,\n linkType: LINK_TYPE_API_NAME,\n options?: { pageSize?: number; pageToken?: string },\n ): Promise<EditedLinksPage<Q, LINK_TYPE_API_NAME>> {\n const ontologyRid = await innerCtx.ontologyRid;\n const response = await OntologyScenarios.listScenarioEditedLinks(\n innerCtx,\n ontologyRid,\n scenarioRid,\n sourceObjectType.apiName,\n linkType as string,\n { pageSize: options?.pageSize, pageToken: options?.pageToken },\n );\n\n const data: MinimalDirectedObjectLinkInstance<Q, LINK_TYPE_API_NAME>[] = [];\n for (const entry of response.data) {\n const sourceWire = entry.sourceObject as\n | { __apiName?: unknown; __primaryKey?: unknown }\n | undefined;\n if (sourceWire?.__apiName == null || sourceWire.__primaryKey == null) {\n continue;\n }\n const source = {\n $apiName: sourceWire.__apiName,\n $primaryKey: sourceWire.__primaryKey,\n } as MinimalDirectedObjectLinkInstance<Q, LINK_TYPE_API_NAME>[\"source\"];\n\n for (const linked of entry.linkedObjects) {\n const targetWire = linked.targetObject as\n | { __apiName?: unknown; __primaryKey?: unknown }\n | undefined;\n if (targetWire?.__apiName == null || targetWire.__primaryKey == null) {\n continue;\n }\n const target = {\n $apiName: targetWire.__apiName,\n $primaryKey: targetWire.__primaryKey,\n } as MinimalDirectedObjectLinkInstance<Q, LINK_TYPE_API_NAME>[\"target\"];\n\n data.push({\n source,\n target,\n linkType: ((linked.linkType as string | undefined)\n ?? linkType) as LINK_TYPE_API_NAME,\n });\n }\n }\n\n return { data, nextPageToken: response.nextPageToken };\n }\n\n async function* editedLinksAsyncIter<\n Q extends ObjectOrInterfaceDefinition,\n LINK_TYPE_API_NAME extends LinkTypeApiNamesFor<Q>,\n >(\n sourceObjectType: Q,\n linkType: LINK_TYPE_API_NAME,\n options?: { pageSize?: number },\n ): AsyncIterableIterator<\n MinimalDirectedObjectLinkInstance<Q, LINK_TYPE_API_NAME>\n > {\n let pageToken: string | undefined;\n do {\n const page = await getEditedLinks(sourceObjectType, linkType, {\n pageSize: options?.pageSize,\n pageToken,\n });\n for (const link of page.data) {\n yield link;\n }\n pageToken = page.nextPageToken;\n } while (pageToken != null);\n }\n\n return Object.defineProperties(inner, {\n getScenarioReference: {\n value: () => ({ scenarioRid }),\n },\n getEditedEntityTypes: {\n value: getEditedEntityTypes,\n },\n getEditedEntities: {\n value: getEditedEntities,\n },\n editedEntitiesAsyncIter: {\n value: editedEntitiesAsyncIter,\n },\n getEditedLinkTypes: {\n value: getEditedLinkTypes,\n },\n getEditedLinks: {\n value: getEditedLinks,\n },\n editedLinksAsyncIter: {\n value: editedLinksAsyncIter,\n },\n }) as ScenarioClient;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,55 @@
1
+ /*
2
+ * Copyright 2026 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { OntologyScenarios } from "@osdk/foundry.ontologies";
18
+ import { additionalContext } from "../Client.js";
19
+ import { buildScenarioClient } from "./ScenarioClient.js";
20
+
21
+ /**
22
+ * Mint a fresh ontology scenario and return a client scoped to it.
23
+ *
24
+ * @param client - The base {@link Client} to derive context (`baseUrl`, `ontologyRid`, `tokenProvider`, `branch`, …)
25
+ * from. Throws at runtime if the client is already scoped to a scenario or transaction. When the base client has a
26
+ * branch set, the newly minted scenario uses that branch as its base.
27
+ * @returns a {@link ScenarioClient} bound to the freshly minted scenario RID.
28
+ *
29
+ * @beta This is an experimental, unstable feature subject to change.
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * import { createScenario } from "@osdk/client/unstable-do-not-use";
34
+ *
35
+ * const scenario = await createScenario(client);
36
+ * const { scenarioRid } = scenario.getScenarioReference();
37
+ * ```
38
+ */
39
+ export async function createScenario(client) {
40
+ const ctx = client[additionalContext];
41
+ if (ctx.transactionId != null) {
42
+ throw new Error("createScenario: the supplied client already has an active transaction. Scenarios cannot be nested on transactions.");
43
+ }
44
+ if (ctx.scenarioRid != null) {
45
+ throw new Error("createScenario: the supplied client already has an active scenario. Scenarios cannot be nested.");
46
+ }
47
+ const response = await OntologyScenarios.createScenario(ctx, await ctx.ontologyRid, ctx.branch != null ? {
48
+ base: {
49
+ type: "branch",
50
+ branch: ctx.branch
51
+ }
52
+ } : {});
53
+ return buildScenarioClient(client, response.scenarioRid);
54
+ }
55
+ //# sourceMappingURL=createScenario.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createScenario.js","names":["OntologyScenarios","additionalContext","buildScenarioClient","createScenario","client","ctx","transactionId","Error","scenarioRid","response","ontologyRid","branch","base","type"],"sources":["createScenario.ts"],"sourcesContent":["/*\n * Copyright 2026 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 { OntologyScenarios } from \"@osdk/foundry.ontologies\";\nimport { additionalContext, type Client } from \"../Client.js\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { buildScenarioClient, type ScenarioClient } from \"./ScenarioClient.js\";\n\n/**\n * Mint a fresh ontology scenario and return a client scoped to it.\n *\n * @param client - The base {@link Client} to derive context (`baseUrl`, `ontologyRid`, `tokenProvider`, `branch`, …)\n * from. Throws at runtime if the client is already scoped to a scenario or transaction. When the base client has a\n * branch set, the newly minted scenario uses that branch as its base.\n * @returns a {@link ScenarioClient} bound to the freshly minted scenario RID.\n *\n * @beta This is an experimental, unstable feature subject to change.\n *\n * @example\n * ```ts\n * import { createScenario } from \"@osdk/client/unstable-do-not-use\";\n *\n * const scenario = await createScenario(client);\n * const { scenarioRid } = scenario.getScenarioReference();\n * ```\n */\nexport async function createScenario(\n client: Client,\n): Promise<ScenarioClient> {\n const ctx: MinimalClient = client[additionalContext];\n\n if (ctx.transactionId != null) {\n throw new Error(\n \"createScenario: the supplied client already has an active transaction. Scenarios cannot be nested on transactions.\",\n );\n }\n if (ctx.scenarioRid != null) {\n throw new Error(\n \"createScenario: the supplied client already has an active scenario. Scenarios cannot be nested.\",\n );\n }\n\n const response = await OntologyScenarios.createScenario(\n ctx,\n await ctx.ontologyRid,\n ctx.branch != null\n ? { base: { type: \"branch\", branch: ctx.branch } }\n : {},\n );\n\n return buildScenarioClient(client, response.scenarioRid);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,iBAAiB,QAAQ,0BAA0B;AAC5D,SAASC,iBAAiB,QAAqB,cAAc;AAE7D,SAASC,mBAAmB,QAA6B,qBAAqB;;AAE9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,cAAcA,CAClCC,MAAc,EACW;EACzB,MAAMC,GAAkB,GAAGD,MAAM,CAACH,iBAAiB,CAAC;EAEpD,IAAII,GAAG,CAACC,aAAa,IAAI,IAAI,EAAE;IAC7B,MAAM,IAAIC,KAAK,CACb,oHACF,CAAC;EACH;EACA,IAAIF,GAAG,CAACG,WAAW,IAAI,IAAI,EAAE;IAC3B,MAAM,IAAID,KAAK,CACb,iGACF,CAAC;EACH;EAEA,MAAME,QAAQ,GAAG,MAAMT,iBAAiB,CAACG,cAAc,CACrDE,GAAG,EACH,MAAMA,GAAG,CAACK,WAAW,EACrBL,GAAG,CAACM,MAAM,IAAI,IAAI,GACd;IAAEC,IAAI,EAAE;MAAEC,IAAI,EAAE,QAAQ;MAAEF,MAAM,EAAEN,GAAG,CAACM;IAAO;EAAE,CAAC,GAChD,CAAC,CACP,CAAC;EAED,OAAOT,mBAAmB,CAACE,MAAM,EAAEK,QAAQ,CAACD,WAAW,CAAC;AAC1D","ignoreList":[]}