@osdk/client 2.5.0-beta.4 → 2.5.0-beta.5

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 (212) hide show
  1. package/CHANGELOG.md +14 -4
  2. package/build/browser/index.js +2 -0
  3. package/build/browser/index.js.map +1 -1
  4. package/build/browser/object/Cache.test.js +1 -1
  5. package/build/browser/object/Cache.test.js.map +1 -1
  6. package/build/browser/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.js +1 -0
  7. package/build/browser/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.js.map +1 -1
  8. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js +6 -0
  9. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  10. package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js +20 -1
  11. package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  12. package/build/browser/object/convertWireToOsdkObjects.test.js +2 -0
  13. package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
  14. package/build/browser/observable/internal/CacheKeys.js.map +1 -1
  15. package/build/browser/observable/internal/Changes.js.map +1 -1
  16. package/build/browser/observable/internal/KnownCacheKey.js.map +1 -1
  17. package/build/browser/observable/internal/OrderByCanonicalizer.js +1 -37
  18. package/build/browser/observable/internal/OrderByCanonicalizer.js.map +1 -1
  19. package/build/browser/observable/internal/Store.js +1 -1
  20. package/build/browser/observable/internal/Store.js.map +1 -1
  21. package/build/browser/observable/internal/Store.test.js +1 -1
  22. package/build/browser/observable/internal/Store.test.js.map +1 -1
  23. package/build/browser/observable/internal/WeakRefTrie.js +61 -0
  24. package/build/browser/observable/internal/WeakRefTrie.js.map +1 -0
  25. package/build/browser/observable/internal/actions/ActionApplication.js.map +1 -0
  26. package/build/browser/observable/internal/{OptimisticJob.js → actions/OptimisticJob.js} +2 -2
  27. package/build/browser/observable/internal/actions/OptimisticJob.js.map +1 -0
  28. package/build/browser/observable/internal/base-list/BaseCollectionQuery.js.map +1 -0
  29. package/build/browser/observable/internal/base-list/BaseListQuery.js +414 -0
  30. package/build/browser/observable/internal/base-list/BaseListQuery.js.map +1 -0
  31. package/build/browser/observable/internal/base-list/createCollectionConnectable.js.map +1 -0
  32. package/build/{esm/observable/internal → browser/observable/internal/base-list}/createCollectionConnectable.test.js +1 -1
  33. package/build/browser/observable/internal/base-list/createCollectionConnectable.test.js.map +1 -0
  34. package/build/browser/observable/internal/base-list/removeDuplicates.js.map +1 -0
  35. package/build/browser/observable/internal/links/SpecificLinkCacheKey.js.map +1 -1
  36. package/build/browser/observable/internal/links/SpecificLinkQuery.js +1 -1
  37. package/build/browser/observable/internal/links/SpecificLinkQuery.js.map +1 -1
  38. package/build/browser/observable/internal/{ListCacheKey.js.map → list/ListCacheKey.js.map} +1 -1
  39. package/build/browser/observable/internal/{ListQuery.js → list/ListQuery.js} +7 -416
  40. package/build/browser/observable/internal/list/ListQuery.js.map +1 -0
  41. package/build/browser/observable/internal/list/ListQueryOptions.js +2 -0
  42. package/build/browser/observable/internal/list/ListQueryOptions.js.map +1 -0
  43. package/build/browser/observable/internal/list/ListsHelper.js +1 -1
  44. package/build/browser/observable/internal/list/ListsHelper.js.map +1 -1
  45. package/build/browser/observable/internal/object/ObjectCacheKey.js +2 -0
  46. package/build/browser/observable/internal/object/ObjectCacheKey.js.map +1 -0
  47. package/build/browser/observable/internal/{ObjectQuery.js → object/ObjectQuery.js} +4 -20
  48. package/build/browser/observable/internal/object/ObjectQuery.js.map +1 -0
  49. package/build/browser/observable/internal/object/ObjectsHelper.js +15 -1
  50. package/build/browser/observable/internal/object/ObjectsHelper.js.map +1 -1
  51. package/build/browser/observable/internal/sorting/SortingStrategy.js.map +1 -1
  52. package/build/browser/observable/internal/testUtils/invalidateList.js.map +1 -1
  53. package/build/browser/observable/internal/testUtils.js +1 -2
  54. package/build/browser/observable/internal/testUtils.js.map +1 -1
  55. package/build/browser/queries/applyQuery.js +1 -1
  56. package/build/browser/queries/applyQuery.js.map +1 -1
  57. package/build/browser/util/UserAgent.js +2 -2
  58. package/build/browser/util/extractObjectOrInterfaceType.js +9 -1
  59. package/build/browser/util/extractObjectOrInterfaceType.js.map +1 -1
  60. package/build/browser/util/extractObjectOrInterfaceType.test.js +2 -2
  61. package/build/browser/util/extractObjectOrInterfaceType.test.js.map +1 -1
  62. package/build/cjs/{chunk-QR7IBJPZ.cjs → chunk-ELAA4C2C.cjs} +11 -4
  63. package/build/cjs/chunk-ELAA4C2C.cjs.map +1 -0
  64. package/build/cjs/{chunk-6CBVXAAV.cjs → chunk-KCMGIMVC.cjs} +91 -69
  65. package/build/cjs/chunk-KCMGIMVC.cjs.map +1 -0
  66. package/build/cjs/index.cjs +7 -7
  67. package/build/cjs/public/internal.cjs +8 -8
  68. package/build/cjs/public/unstable-do-not-use.cjs +568 -572
  69. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  70. package/build/esm/index.js +2 -0
  71. package/build/esm/index.js.map +1 -1
  72. package/build/esm/object/Cache.test.js +1 -1
  73. package/build/esm/object/Cache.test.js.map +1 -1
  74. package/build/esm/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.js +1 -0
  75. package/build/esm/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.js.map +1 -1
  76. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js +6 -0
  77. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  78. package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js +20 -1
  79. package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  80. package/build/esm/object/convertWireToOsdkObjects.test.js +2 -0
  81. package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
  82. package/build/esm/observable/internal/CacheKeys.js.map +1 -1
  83. package/build/esm/observable/internal/Changes.js.map +1 -1
  84. package/build/esm/observable/internal/KnownCacheKey.js.map +1 -1
  85. package/build/esm/observable/internal/OrderByCanonicalizer.js +1 -37
  86. package/build/esm/observable/internal/OrderByCanonicalizer.js.map +1 -1
  87. package/build/esm/observable/internal/Store.js +1 -1
  88. package/build/esm/observable/internal/Store.js.map +1 -1
  89. package/build/esm/observable/internal/Store.test.js +1 -1
  90. package/build/esm/observable/internal/Store.test.js.map +1 -1
  91. package/build/esm/observable/internal/WeakRefTrie.js +61 -0
  92. package/build/esm/observable/internal/WeakRefTrie.js.map +1 -0
  93. package/build/esm/observable/internal/actions/ActionApplication.js.map +1 -0
  94. package/build/esm/observable/internal/{OptimisticJob.js → actions/OptimisticJob.js} +2 -2
  95. package/build/esm/observable/internal/actions/OptimisticJob.js.map +1 -0
  96. package/build/esm/observable/internal/base-list/BaseCollectionQuery.js.map +1 -0
  97. package/build/esm/observable/internal/base-list/BaseListQuery.js +414 -0
  98. package/build/esm/observable/internal/base-list/BaseListQuery.js.map +1 -0
  99. package/build/esm/observable/internal/base-list/createCollectionConnectable.js.map +1 -0
  100. package/build/{browser/observable/internal → esm/observable/internal/base-list}/createCollectionConnectable.test.js +1 -1
  101. package/build/esm/observable/internal/base-list/createCollectionConnectable.test.js.map +1 -0
  102. package/build/esm/observable/internal/base-list/removeDuplicates.js.map +1 -0
  103. package/build/esm/observable/internal/links/SpecificLinkCacheKey.js.map +1 -1
  104. package/build/esm/observable/internal/links/SpecificLinkQuery.js +1 -1
  105. package/build/esm/observable/internal/links/SpecificLinkQuery.js.map +1 -1
  106. package/build/esm/observable/internal/{ListCacheKey.js.map → list/ListCacheKey.js.map} +1 -1
  107. package/build/esm/observable/internal/{ListQuery.js → list/ListQuery.js} +7 -416
  108. package/build/esm/observable/internal/list/ListQuery.js.map +1 -0
  109. package/build/esm/observable/internal/list/ListQueryOptions.js +2 -0
  110. package/build/esm/observable/internal/list/ListQueryOptions.js.map +1 -0
  111. package/build/esm/observable/internal/list/ListsHelper.js +1 -1
  112. package/build/esm/observable/internal/list/ListsHelper.js.map +1 -1
  113. package/build/esm/observable/internal/object/ObjectCacheKey.js +2 -0
  114. package/build/esm/observable/internal/object/ObjectCacheKey.js.map +1 -0
  115. package/build/esm/observable/internal/{ObjectQuery.js → object/ObjectQuery.js} +4 -20
  116. package/build/esm/observable/internal/object/ObjectQuery.js.map +1 -0
  117. package/build/esm/observable/internal/object/ObjectsHelper.js +15 -1
  118. package/build/esm/observable/internal/object/ObjectsHelper.js.map +1 -1
  119. package/build/esm/observable/internal/sorting/SortingStrategy.js.map +1 -1
  120. package/build/esm/observable/internal/testUtils/invalidateList.js.map +1 -1
  121. package/build/esm/observable/internal/testUtils.js +1 -2
  122. package/build/esm/observable/internal/testUtils.js.map +1 -1
  123. package/build/esm/queries/applyQuery.js +1 -1
  124. package/build/esm/queries/applyQuery.js.map +1 -1
  125. package/build/esm/util/UserAgent.js +2 -2
  126. package/build/esm/util/extractObjectOrInterfaceType.js +9 -1
  127. package/build/esm/util/extractObjectOrInterfaceType.js.map +1 -1
  128. package/build/esm/util/extractObjectOrInterfaceType.test.js +2 -2
  129. package/build/esm/util/extractObjectOrInterfaceType.test.js.map +1 -1
  130. package/build/types/index.d.ts +1 -1
  131. package/build/types/index.d.ts.map +1 -1
  132. package/build/types/observable/internal/Changes.d.ts +2 -2
  133. package/build/types/observable/internal/Changes.d.ts.map +1 -1
  134. package/build/types/observable/internal/KnownCacheKey.d.ts +2 -2
  135. package/build/types/observable/internal/KnownCacheKey.d.ts.map +1 -1
  136. package/build/types/observable/internal/OrderByCanonicalizer.d.ts +0 -7
  137. package/build/types/observable/internal/OrderByCanonicalizer.d.ts.map +1 -1
  138. package/build/types/observable/internal/WeakRefTrie.d.ts +13 -0
  139. package/build/types/observable/internal/WeakRefTrie.d.ts.map +1 -0
  140. package/build/types/observable/internal/{ActionApplication.d.ts → actions/ActionApplication.d.ts} +2 -2
  141. package/build/types/observable/internal/{ActionApplication.d.ts.map → actions/ActionApplication.d.ts.map} +1 -1
  142. package/build/types/observable/internal/{OptimisticJob.d.ts → actions/OptimisticJob.d.ts} +4 -4
  143. package/build/types/observable/internal/actions/OptimisticJob.d.ts.map +1 -0
  144. package/build/types/observable/internal/{BaseCollectionQuery.d.ts → base-list/BaseCollectionQuery.d.ts} +4 -4
  145. package/build/types/observable/internal/base-list/BaseCollectionQuery.d.ts.map +1 -0
  146. package/build/types/observable/internal/{ListQuery.d.ts → base-list/BaseListQuery.d.ts} +8 -91
  147. package/build/types/observable/internal/base-list/BaseListQuery.d.ts.map +1 -0
  148. package/build/types/observable/internal/{createCollectionConnectable.d.ts → base-list/createCollectionConnectable.d.ts} +3 -3
  149. package/build/types/observable/internal/base-list/createCollectionConnectable.d.ts.map +1 -0
  150. package/build/types/observable/internal/base-list/createCollectionConnectable.test.d.ts.map +1 -0
  151. package/build/types/observable/internal/{removeDuplicates.d.ts → base-list/removeDuplicates.d.ts} +2 -2
  152. package/build/types/observable/internal/base-list/removeDuplicates.d.ts.map +1 -0
  153. package/build/types/observable/internal/links/SpecificLinkCacheKey.d.ts +1 -1
  154. package/build/types/observable/internal/links/SpecificLinkCacheKey.d.ts.map +1 -1
  155. package/build/types/observable/internal/links/SpecificLinkQuery.d.ts +1 -1
  156. package/build/types/observable/internal/links/SpecificLinkQuery.d.ts.map +1 -1
  157. package/build/types/observable/internal/{ListCacheKey.d.ts → list/ListCacheKey.d.ts} +4 -4
  158. package/build/types/observable/internal/list/ListCacheKey.d.ts.map +1 -0
  159. package/build/types/observable/internal/list/ListQuery.d.ts +73 -0
  160. package/build/types/observable/internal/list/ListQuery.d.ts.map +1 -0
  161. package/build/types/observable/internal/list/ListQueryOptions.d.ts +4 -0
  162. package/build/types/observable/internal/list/ListQueryOptions.d.ts.map +1 -0
  163. package/build/types/observable/internal/list/ListsHelper.d.ts +1 -1
  164. package/build/types/observable/internal/list/ListsHelper.d.ts.map +1 -1
  165. package/build/types/observable/internal/object/ObjectCacheKey.d.ts +5 -0
  166. package/build/types/observable/internal/object/ObjectCacheKey.d.ts.map +1 -0
  167. package/build/types/observable/internal/{ObjectQuery.d.ts → object/ObjectQuery.d.ts} +8 -10
  168. package/build/types/observable/internal/object/ObjectQuery.d.ts.map +1 -0
  169. package/build/types/observable/internal/object/ObjectsHelper.d.ts +1 -1
  170. package/build/types/observable/internal/object/ObjectsHelper.d.ts.map +1 -1
  171. package/build/types/observable/internal/sorting/SortingStrategy.d.ts +1 -1
  172. package/build/types/observable/internal/sorting/SortingStrategy.d.ts.map +1 -1
  173. package/build/types/observable/internal/testUtils.d.ts +1 -1
  174. package/build/types/observable/internal/testUtils.d.ts.map +1 -1
  175. package/package.json +21 -21
  176. package/build/browser/observable/internal/ActionApplication.js.map +0 -1
  177. package/build/browser/observable/internal/BaseCollectionQuery.js.map +0 -1
  178. package/build/browser/observable/internal/ListQuery.js.map +0 -1
  179. package/build/browser/observable/internal/ObjectQuery.js.map +0 -1
  180. package/build/browser/observable/internal/OptimisticJob.js.map +0 -1
  181. package/build/browser/observable/internal/createCollectionConnectable.js.map +0 -1
  182. package/build/browser/observable/internal/createCollectionConnectable.test.js.map +0 -1
  183. package/build/browser/observable/internal/removeDuplicates.js.map +0 -1
  184. package/build/cjs/chunk-6CBVXAAV.cjs.map +0 -1
  185. package/build/cjs/chunk-QR7IBJPZ.cjs.map +0 -1
  186. package/build/esm/observable/internal/ActionApplication.js.map +0 -1
  187. package/build/esm/observable/internal/BaseCollectionQuery.js.map +0 -1
  188. package/build/esm/observable/internal/ListQuery.js.map +0 -1
  189. package/build/esm/observable/internal/ObjectQuery.js.map +0 -1
  190. package/build/esm/observable/internal/OptimisticJob.js.map +0 -1
  191. package/build/esm/observable/internal/createCollectionConnectable.js.map +0 -1
  192. package/build/esm/observable/internal/createCollectionConnectable.test.js.map +0 -1
  193. package/build/esm/observable/internal/removeDuplicates.js.map +0 -1
  194. package/build/types/observable/internal/BaseCollectionQuery.d.ts.map +0 -1
  195. package/build/types/observable/internal/ListCacheKey.d.ts.map +0 -1
  196. package/build/types/observable/internal/ListQuery.d.ts.map +0 -1
  197. package/build/types/observable/internal/ObjectQuery.d.ts.map +0 -1
  198. package/build/types/observable/internal/OptimisticJob.d.ts.map +0 -1
  199. package/build/types/observable/internal/createCollectionConnectable.d.ts.map +0 -1
  200. package/build/types/observable/internal/createCollectionConnectable.test.d.ts.map +0 -1
  201. package/build/types/observable/internal/removeDuplicates.d.ts.map +0 -1
  202. /package/build/browser/observable/internal/{ActionApplication.js → actions/ActionApplication.js} +0 -0
  203. /package/build/browser/observable/internal/{BaseCollectionQuery.js → base-list/BaseCollectionQuery.js} +0 -0
  204. /package/build/browser/observable/internal/{createCollectionConnectable.js → base-list/createCollectionConnectable.js} +0 -0
  205. /package/build/browser/observable/internal/{removeDuplicates.js → base-list/removeDuplicates.js} +0 -0
  206. /package/build/browser/observable/internal/{ListCacheKey.js → list/ListCacheKey.js} +0 -0
  207. /package/build/esm/observable/internal/{ActionApplication.js → actions/ActionApplication.js} +0 -0
  208. /package/build/esm/observable/internal/{BaseCollectionQuery.js → base-list/BaseCollectionQuery.js} +0 -0
  209. /package/build/esm/observable/internal/{createCollectionConnectable.js → base-list/createCollectionConnectable.js} +0 -0
  210. /package/build/esm/observable/internal/{removeDuplicates.js → base-list/removeDuplicates.js} +0 -0
  211. /package/build/esm/observable/internal/{ListCacheKey.js → list/ListCacheKey.js} +0 -0
  212. /package/build/types/observable/internal/{createCollectionConnectable.test.d.ts → base-list/createCollectionConnectable.test.d.ts} +0 -0
@@ -59,6 +59,14 @@ export async function extractObjectOrInterfaceType(clientCtx, objectSet) {
59
59
  case "nearestNeighbors":
60
60
  return extractObjectOrInterfaceType(clientCtx, objectSet.objectSet);
61
61
  case "intersect":
62
+ {
63
+ const objectSets = objectSet.objectSets;
64
+ const objectSetTypes = await Promise.all(objectSets.map(os => extractObjectOrInterfaceType(clientCtx, os)));
65
+ const filteredObjectTypes = objectSetTypes.filter(Boolean);
66
+ const firstInterfaceType = filteredObjectTypes.find(val => val?.type === "interface");
67
+ !firstInterfaceType ? process.env.NODE_ENV !== "production" ? invariant(false, `Missing interface type in intersect objectset scope'`) : invariant(false) : void 0;
68
+ return firstInterfaceType;
69
+ }
62
70
  case "subtract":
63
71
  case "union":
64
72
  const objectSets = objectSet.objectSets;
@@ -67,7 +75,7 @@ export async function extractObjectOrInterfaceType(clientCtx, objectSet) {
67
75
  const firstObjectType = filteredObjectTypes[0];
68
76
  !filteredObjectTypes.every(val => {
69
77
  return val?.apiName === firstObjectType?.apiName && val?.type === firstObjectType?.type;
70
- }) ? process.env.NODE_ENV !== "production" ? invariant(false, "Can only have one object type when doing intersects, subtract, union") : invariant(false) : void 0;
78
+ }) ? process.env.NODE_ENV !== "production" ? invariant(false, "Can only have one object type when doing subtract, union") : invariant(false) : void 0;
71
79
  return filteredObjectTypes[0];
72
80
  case "static":
73
81
  case "reference":
@@ -1 +1 @@
1
- {"version":3,"file":"extractObjectOrInterfaceType.js","names":["invariant","extractObjectOrInterfaceType","clientCtx","objectSet","type","def","undefined","objOrInterfaceDef","ontologyProvider","getObjectDefinition","apiName","getInterfaceDefinition","linkDef","links","link","process","env","NODE_ENV","targetType","targetTypeApiName","objectType","interfaceType","objectSets","objectSetTypes","Promise","all","map","os","filteredObjectTypes","filter","Boolean","firstObjectType","every","val","interfaceLink"],"sources":["extractObjectOrInterfaceType.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectOrInterfaceDefinition } from \"@osdk/api\";\nimport type { ObjectSet } from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\n\n/* @internal\n* Returns the resultant interface or object type of the object set\n*/\nexport async function extractObjectOrInterfaceType(\n clientCtx: MinimalClient,\n objectSet: ObjectSet,\n): Promise<\n ObjectOrInterfaceDefinition | undefined\n> {\n switch (objectSet.type) {\n case \"searchAround\": {\n const def = await extractObjectOrInterfaceType(\n clientCtx,\n objectSet.objectSet,\n );\n if (def === undefined) {\n return undefined;\n }\n const objOrInterfaceDef = def.type === \"object\"\n ? await clientCtx.ontologyProvider.getObjectDefinition(\n def.apiName,\n )\n : await clientCtx.ontologyProvider.getInterfaceDefinition(\n def.apiName,\n );\n const linkDef = objOrInterfaceDef.links[objectSet.link];\n invariant(linkDef, `Missing link definition for '${objectSet.link}'`);\n\n return objOrInterfaceDef.type === \"object\"\n ? {\n apiName: objOrInterfaceDef.links[objectSet.link].targetType,\n type: \"object\",\n }\n : {\n apiName: objOrInterfaceDef.links[objectSet.link].targetTypeApiName,\n type: objOrInterfaceDef.links[objectSet.link].targetType,\n };\n }\n case \"withProperties\": {\n return extractObjectOrInterfaceType(\n clientCtx,\n objectSet.objectSet,\n );\n }\n case \"methodInput\":\n return undefined;\n case \"base\":\n return { type: \"object\", apiName: objectSet.objectType };\n case \"interfaceBase\":\n return { type: \"interface\", apiName: objectSet.interfaceType };\n case \"filter\":\n case \"asBaseObjectTypes\":\n case \"asType\":\n case \"nearestNeighbors\":\n return extractObjectOrInterfaceType(\n clientCtx,\n objectSet.objectSet,\n );\n case \"intersect\":\n case \"subtract\":\n case \"union\":\n const objectSets = objectSet.objectSets;\n const objectSetTypes = await Promise.all(\n objectSets.map((os) =>\n extractObjectOrInterfaceType(\n clientCtx,\n os,\n )\n ),\n );\n\n const filteredObjectTypes = objectSetTypes.filter(Boolean);\n const firstObjectType = filteredObjectTypes[0];\n invariant(\n filteredObjectTypes.every(val => {\n return val?.apiName === firstObjectType?.apiName\n && val?.type === firstObjectType?.type;\n }),\n \"Can only have one object type when doing intersects, subtract, union\",\n );\n\n return filteredObjectTypes[0];\n case \"static\":\n case \"reference\":\n // Static and reference object sets are always intersected with a base object set, so we can just return undefined.\n return undefined;\n case \"interfaceLinkSearchAround\":\n const def = await extractObjectOrInterfaceType(\n clientCtx,\n objectSet.objectSet,\n );\n if (def === undefined) {\n return undefined;\n }\n const objOrInterfaceDef = def.type === \"object\"\n ? await clientCtx.ontologyProvider.getObjectDefinition(\n def.apiName,\n )\n : await clientCtx.ontologyProvider.getInterfaceDefinition(\n def.apiName,\n );\n const linkDef = objOrInterfaceDef.links[objectSet.interfaceLink];\n invariant(\n linkDef,\n `Missing link definition for '${objectSet.interfaceLink}'`,\n );\n return objOrInterfaceDef.type === \"object\"\n ? {\n apiName: objOrInterfaceDef.links[objectSet.interfaceLink].targetType,\n type: \"object\",\n }\n : {\n apiName:\n objOrInterfaceDef.links[objectSet.interfaceLink].targetTypeApiName,\n type: objOrInterfaceDef.links[objectSet.interfaceLink].targetType,\n };\n // We don't have to worry about new object sets being added and doing a runtime break and breaking people since the OSDK is always constructing these.\n default:\n const _: never = objectSet;\n invariant(\n false,\n `Unsupported object set type for deriving object or interface type,`,\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"extractObjectOrInterfaceType.js","names":["invariant","extractObjectOrInterfaceType","clientCtx","objectSet","type","def","undefined","objOrInterfaceDef","ontologyProvider","getObjectDefinition","apiName","getInterfaceDefinition","linkDef","links","link","process","env","NODE_ENV","targetType","targetTypeApiName","objectType","interfaceType","objectSets","objectSetTypes","Promise","all","map","os","filteredObjectTypes","filter","Boolean","firstInterfaceType","find","val","firstObjectType","every","interfaceLink"],"sources":["extractObjectOrInterfaceType.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectOrInterfaceDefinition } from \"@osdk/api\";\nimport type { ObjectSet } from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\n\n/* @internal\n* Returns the resultant interface or object type of the object set\n*/\nexport async function extractObjectOrInterfaceType(\n clientCtx: MinimalClient,\n objectSet: ObjectSet,\n): Promise<\n ObjectOrInterfaceDefinition | undefined\n> {\n switch (objectSet.type) {\n case \"searchAround\": {\n const def = await extractObjectOrInterfaceType(\n clientCtx,\n objectSet.objectSet,\n );\n if (def === undefined) {\n return undefined;\n }\n const objOrInterfaceDef = def.type === \"object\"\n ? await clientCtx.ontologyProvider.getObjectDefinition(\n def.apiName,\n )\n : await clientCtx.ontologyProvider.getInterfaceDefinition(\n def.apiName,\n );\n const linkDef = objOrInterfaceDef.links[objectSet.link];\n invariant(linkDef, `Missing link definition for '${objectSet.link}'`);\n\n return objOrInterfaceDef.type === \"object\"\n ? {\n apiName: objOrInterfaceDef.links[objectSet.link].targetType,\n type: \"object\",\n }\n : {\n apiName: objOrInterfaceDef.links[objectSet.link].targetTypeApiName,\n type: objOrInterfaceDef.links[objectSet.link].targetType,\n };\n }\n case \"withProperties\": {\n return extractObjectOrInterfaceType(\n clientCtx,\n objectSet.objectSet,\n );\n }\n case \"methodInput\":\n return undefined;\n case \"base\":\n return { type: \"object\", apiName: objectSet.objectType };\n case \"interfaceBase\":\n return { type: \"interface\", apiName: objectSet.interfaceType };\n case \"filter\":\n case \"asBaseObjectTypes\":\n case \"asType\":\n case \"nearestNeighbors\":\n return extractObjectOrInterfaceType(\n clientCtx,\n objectSet.objectSet,\n );\n case \"intersect\": {\n const objectSets = objectSet.objectSets;\n const objectSetTypes = await Promise.all(\n objectSets.map((os) =>\n extractObjectOrInterfaceType(\n clientCtx,\n os,\n )\n ),\n );\n\n const filteredObjectTypes = objectSetTypes.filter(Boolean);\n const firstInterfaceType = filteredObjectTypes.find(val =>\n val?.type === \"interface\"\n );\n\n invariant(\n firstInterfaceType,\n `Missing interface type in intersect objectset scope'`,\n );\n return firstInterfaceType;\n }\n case \"subtract\":\n case \"union\":\n const objectSets = objectSet.objectSets;\n const objectSetTypes = await Promise.all(\n objectSets.map((os) =>\n extractObjectOrInterfaceType(\n clientCtx,\n os,\n )\n ),\n );\n\n const filteredObjectTypes = objectSetTypes.filter(Boolean);\n const firstObjectType = filteredObjectTypes[0];\n invariant(\n filteredObjectTypes.every(val => {\n return val?.apiName === firstObjectType?.apiName\n && val?.type === firstObjectType?.type;\n }),\n \"Can only have one object type when doing subtract, union\",\n );\n\n return filteredObjectTypes[0];\n case \"static\":\n case \"reference\":\n // Static and reference object sets are always intersected with a base object set, so we can just return undefined.\n return undefined;\n case \"interfaceLinkSearchAround\":\n const def = await extractObjectOrInterfaceType(\n clientCtx,\n objectSet.objectSet,\n );\n if (def === undefined) {\n return undefined;\n }\n const objOrInterfaceDef = def.type === \"object\"\n ? await clientCtx.ontologyProvider.getObjectDefinition(\n def.apiName,\n )\n : await clientCtx.ontologyProvider.getInterfaceDefinition(\n def.apiName,\n );\n const linkDef = objOrInterfaceDef.links[objectSet.interfaceLink];\n invariant(\n linkDef,\n `Missing link definition for '${objectSet.interfaceLink}'`,\n );\n return objOrInterfaceDef.type === \"object\"\n ? {\n apiName: objOrInterfaceDef.links[objectSet.interfaceLink].targetType,\n type: \"object\",\n }\n : {\n apiName:\n objOrInterfaceDef.links[objectSet.interfaceLink].targetTypeApiName,\n type: objOrInterfaceDef.links[objectSet.interfaceLink].targetType,\n };\n // We don't have to worry about new object sets being added and doing a runtime break and breaking people since the OSDK is always constructing these.\n default:\n const _: never = objectSet;\n invariant(\n false,\n `Unsupported object set type for deriving object or interface type,`,\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -117,7 +117,7 @@ describe("extractRdpDefinition", () => {
117
117
  });
118
118
  it("throes with intersect, subtract, or union having different child object types", async () => {
119
119
  await expect(extractObjectOrInterfaceType(mockClientCtx, {
120
- type: "intersect",
120
+ type: "union",
121
121
  objectSets: [{
122
122
  type: "interfaceLinkSearchAround",
123
123
  objectSet: {
@@ -129,7 +129,7 @@ describe("extractRdpDefinition", () => {
129
129
  type: "interfaceBase",
130
130
  interfaceType: "interface1"
131
131
  }]
132
- })).rejects.toThrowErrorMatchingInlineSnapshot(`[Error: Invariant failed: Can only have one object type when doing intersects, subtract, union]`);
132
+ })).rejects.toThrowErrorMatchingInlineSnapshot(`[Error: Invariant failed: Can only have one object type when doing subtract, union]`);
133
133
  });
134
134
  });
135
135
  //# sourceMappingURL=extractObjectOrInterfaceType.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extractObjectOrInterfaceType.test.js","names":["describe","expect","it","extractObjectOrInterfaceType","mockClientCtx","ontologyProvider","getObjectDefinition","objectType","links","testLink1","targetType","testLink2","properties","testProperty","type","Error","getInterfaceDefinition","interfaceType","linkToInterface2","targetTypeApiName","multiplicity","linkToInterface1","objectSetInterfaceToInterface","objectSet","interfaceLink","result","toEqual","apiName","objectSets","rejects","toThrowErrorMatchingInlineSnapshot"],"sources":["extractObjectOrInterfaceType.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { InterfaceMetadata, ObjectMetadata } from \"@osdk/api\";\nimport type { ObjectSet } from \"@osdk/foundry.ontologies\";\nimport { describe, expect, it } from \"vitest\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { extractObjectOrInterfaceType } from \"./extractObjectOrInterfaceType.js\";\n\ndescribe(\"extractRdpDefinition\", () => {\n const mockClientCtx = {\n ontologyProvider: {\n getObjectDefinition: (objectType: string) => {\n if (objectType === \"BaseType\") {\n return {\n links: {\n testLink1: {\n targetType: \"SecondType\",\n \"multiplicity\": \"many\",\n } satisfies ObjectMetadata.Link<any, any>,\n },\n };\n } else if (objectType === \"SecondType\") {\n return {\n links: {\n testLink2: {\n targetType: \"ThirdType\",\n \"multiplicity\": \"many\",\n } satisfies ObjectMetadata.Link<any, any>,\n },\n };\n } else if (objectType === \"ThirdType\") {\n return {\n properties: {\n testProperty: {\n type: \"attachment\",\n } satisfies ObjectMetadata.Property,\n },\n };\n } else {\n throw new Error(`Missing definition for '${objectType}'`);\n }\n },\n getInterfaceDefinition: (interfaceType: string) => {\n if (interfaceType === \"interface1\") {\n return {\n links: {\n linkToInterface2: {\n targetType: \"interface\",\n targetTypeApiName: \"interface2\",\n multiplicity: false,\n } satisfies InterfaceMetadata.Link<any, any>,\n },\n };\n } else if (interfaceType === \"interface1\") {\n return {\n links: {\n linkToInterface1: {\n targetType: \"interface\",\n targetTypeApiName: \"interface1\",\n multiplicity: false,\n } satisfies InterfaceMetadata.Link<any, any>,\n },\n };\n } else {\n throw new Error(`Missing definition for '${interfaceType}'`);\n }\n },\n } as any,\n } as MinimalClient;\n\n const objectSetInterfaceToInterface: ObjectSet = {\n type: \"interfaceLinkSearchAround\",\n objectSet: {\n type: \"interfaceBase\",\n interfaceType: \"interface1\",\n },\n interfaceLink: \"linkToInterface2\",\n };\n\n it(\"handles 'withProperties' object set type\", async () => {\n const result = await extractObjectOrInterfaceType(\n mockClientCtx,\n objectSetInterfaceToInterface,\n );\n\n expect(result).toEqual({ apiName: \"interface2\", type: \"interface\" });\n });\n\n it(\"handles `intersection` object set type and nested static and reference object sets\", async () => {\n const intersectionObjectSet: ObjectSet = {\n type: \"intersect\",\n objectSets: [\n {\n type: \"interfaceLinkSearchAround\",\n objectSet: {\n type: \"interfaceBase\",\n interfaceType: \"interface1\",\n },\n interfaceLink: \"linkToInterface2\",\n },\n { type: \"static\", \"objects\": [\"object1\", \"object2\"] },\n { type: \"reference\", \"reference\": \"rid.os.1234\" },\n ],\n };\n\n const result = await extractObjectOrInterfaceType(\n mockClientCtx,\n intersectionObjectSet,\n );\n\n expect(result).toEqual({ apiName: \"interface2\", type: \"interface\" });\n });\n\n it(\"throes with intersect, subtract, or union having different child object types\", async () => {\n const intersectionObjectSet: ObjectSet = {\n type: \"intersect\",\n objectSets: [\n {\n type: \"interfaceLinkSearchAround\",\n objectSet: {\n type: \"interfaceBase\",\n interfaceType: \"interface1\",\n },\n interfaceLink: \"linkToInterface2\",\n },\n { type: \"interfaceBase\", interfaceType: \"interface1\" },\n ],\n };\n\n await expect(\n extractObjectOrInterfaceType(mockClientCtx, intersectionObjectSet),\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Can only have one object type when doing intersects, subtract, union]`,\n );\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAE7C,SAASC,4BAA4B,QAAQ,mCAAmC;AAEhFH,QAAQ,CAAC,sBAAsB,EAAE,MAAM;EACrC,MAAMI,aAAa,GAAG;IACpBC,gBAAgB,EAAE;MAChBC,mBAAmB,EAAGC,UAAkB,IAAK;QAC3C,IAAIA,UAAU,KAAK,UAAU,EAAE;UAC7B,OAAO;YACLC,KAAK,EAAE;cACLC,SAAS,EAAE;gBACTC,UAAU,EAAE,YAAY;gBACxB,cAAc,EAAE;cAClB;YACF;UACF,CAAC;QACH,CAAC,MAAM,IAAIH,UAAU,KAAK,YAAY,EAAE;UACtC,OAAO;YACLC,KAAK,EAAE;cACLG,SAAS,EAAE;gBACTD,UAAU,EAAE,WAAW;gBACvB,cAAc,EAAE;cAClB;YACF;UACF,CAAC;QACH,CAAC,MAAM,IAAIH,UAAU,KAAK,WAAW,EAAE;UACrC,OAAO;YACLK,UAAU,EAAE;cACVC,YAAY,EAAE;gBACZC,IAAI,EAAE;cACR;YACF;UACF,CAAC;QACH,CAAC,MAAM;UACL,MAAM,IAAIC,KAAK,CAAC,2BAA2BR,UAAU,GAAG,CAAC;QAC3D;MACF,CAAC;MACDS,sBAAsB,EAAGC,aAAqB,IAAK;QACjD,IAAIA,aAAa,KAAK,YAAY,EAAE;UAClC,OAAO;YACLT,KAAK,EAAE;cACLU,gBAAgB,EAAE;gBAChBR,UAAU,EAAE,WAAW;gBACvBS,iBAAiB,EAAE,YAAY;gBAC/BC,YAAY,EAAE;cAChB;YACF;UACF,CAAC;QACH,CAAC,MAAM,IAAIH,aAAa,KAAK,YAAY,EAAE;UACzC,OAAO;YACLT,KAAK,EAAE;cACLa,gBAAgB,EAAE;gBAChBX,UAAU,EAAE,WAAW;gBACvBS,iBAAiB,EAAE,YAAY;gBAC/BC,YAAY,EAAE;cAChB;YACF;UACF,CAAC;QACH,CAAC,MAAM;UACL,MAAM,IAAIL,KAAK,CAAC,2BAA2BE,aAAa,GAAG,CAAC;QAC9D;MACF;IACF;EACF,CAAkB;EAElB,MAAMK,6BAAwC,GAAG;IAC/CR,IAAI,EAAE,2BAA2B;IACjCS,SAAS,EAAE;MACTT,IAAI,EAAE,eAAe;MACrBG,aAAa,EAAE;IACjB,CAAC;IACDO,aAAa,EAAE;EACjB,CAAC;EAEDtB,EAAE,CAAC,0CAA0C,EAAE,YAAY;IACzD,MAAMuB,MAAM,GAAG,MAAMtB,4BAA4B,CAC/CC,aAAa,EACbkB,6BACF,CAAC;IAEDrB,MAAM,CAACwB,MAAM,CAAC,CAACC,OAAO,CAAC;MAAEC,OAAO,EAAE,YAAY;MAAEb,IAAI,EAAE;IAAY,CAAC,CAAC;EACtE,CAAC,CAAC;EAEFZ,EAAE,CAAC,oFAAoF,EAAE,YAAY;IAiBnG,MAAMuB,MAAM,GAAG,MAAMtB,4BAA4B,CAC/CC,aAAa,EAjB0B;MACvCU,IAAI,EAAE,WAAW;MACjBc,UAAU,EAAE,CACV;QACEd,IAAI,EAAE,2BAA2B;QACjCS,SAAS,EAAE;UACTT,IAAI,EAAE,eAAe;UACrBG,aAAa,EAAE;QACjB,CAAC;QACDO,aAAa,EAAE;MACjB,CAAC,EACD;QAAEV,IAAI,EAAE,QAAQ;QAAE,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS;MAAE,CAAC,EACrD;QAAEA,IAAI,EAAE,WAAW;QAAE,WAAW,EAAE;MAAc,CAAC;IAErD,CAKA,CAAC;IAEDb,MAAM,CAACwB,MAAM,CAAC,CAACC,OAAO,CAAC;MAAEC,OAAO,EAAE,YAAY;MAAEb,IAAI,EAAE;IAAY,CAAC,CAAC;EACtE,CAAC,CAAC;EAEFZ,EAAE,CAAC,+EAA+E,EAAE,YAAY;IAgB9F,MAAMD,MAAM,CACVE,4BAA4B,CAACC,aAAa,EAhBH;MACvCU,IAAI,EAAE,WAAW;MACjBc,UAAU,EAAE,CACV;QACEd,IAAI,EAAE,2BAA2B;QACjCS,SAAS,EAAE;UACTT,IAAI,EAAE,eAAe;UACrBG,aAAa,EAAE;QACjB,CAAC;QACDO,aAAa,EAAE;MACjB,CAAC,EACD;QAAEV,IAAI,EAAE,eAAe;QAAEG,aAAa,EAAE;MAAa,CAAC;IAE1D,CAGmE,CACnE,CAAC,CAACY,OAAO,CAACC,kCAAkC,CAC1C,iGACF,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"extractObjectOrInterfaceType.test.js","names":["describe","expect","it","extractObjectOrInterfaceType","mockClientCtx","ontologyProvider","getObjectDefinition","objectType","links","testLink1","targetType","testLink2","properties","testProperty","type","Error","getInterfaceDefinition","interfaceType","linkToInterface2","targetTypeApiName","multiplicity","linkToInterface1","objectSetInterfaceToInterface","objectSet","interfaceLink","result","toEqual","apiName","objectSets","rejects","toThrowErrorMatchingInlineSnapshot"],"sources":["extractObjectOrInterfaceType.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { InterfaceMetadata, ObjectMetadata } from \"@osdk/api\";\nimport type { ObjectSet } from \"@osdk/foundry.ontologies\";\nimport { describe, expect, it } from \"vitest\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { extractObjectOrInterfaceType } from \"./extractObjectOrInterfaceType.js\";\n\ndescribe(\"extractRdpDefinition\", () => {\n const mockClientCtx = {\n ontologyProvider: {\n getObjectDefinition: (objectType: string) => {\n if (objectType === \"BaseType\") {\n return {\n links: {\n testLink1: {\n targetType: \"SecondType\",\n \"multiplicity\": \"many\",\n } satisfies ObjectMetadata.Link<any, any>,\n },\n };\n } else if (objectType === \"SecondType\") {\n return {\n links: {\n testLink2: {\n targetType: \"ThirdType\",\n \"multiplicity\": \"many\",\n } satisfies ObjectMetadata.Link<any, any>,\n },\n };\n } else if (objectType === \"ThirdType\") {\n return {\n properties: {\n testProperty: {\n type: \"attachment\",\n } satisfies ObjectMetadata.Property,\n },\n };\n } else {\n throw new Error(`Missing definition for '${objectType}'`);\n }\n },\n getInterfaceDefinition: (interfaceType: string) => {\n if (interfaceType === \"interface1\") {\n return {\n links: {\n linkToInterface2: {\n targetType: \"interface\",\n targetTypeApiName: \"interface2\",\n multiplicity: false,\n } satisfies InterfaceMetadata.Link<any, any>,\n },\n };\n } else if (interfaceType === \"interface1\") {\n return {\n links: {\n linkToInterface1: {\n targetType: \"interface\",\n targetTypeApiName: \"interface1\",\n multiplicity: false,\n } satisfies InterfaceMetadata.Link<any, any>,\n },\n };\n } else {\n throw new Error(`Missing definition for '${interfaceType}'`);\n }\n },\n } as any,\n } as MinimalClient;\n\n const objectSetInterfaceToInterface: ObjectSet = {\n type: \"interfaceLinkSearchAround\",\n objectSet: {\n type: \"interfaceBase\",\n interfaceType: \"interface1\",\n },\n interfaceLink: \"linkToInterface2\",\n };\n\n it(\"handles 'withProperties' object set type\", async () => {\n const result = await extractObjectOrInterfaceType(\n mockClientCtx,\n objectSetInterfaceToInterface,\n );\n\n expect(result).toEqual({ apiName: \"interface2\", type: \"interface\" });\n });\n\n it(\"handles `intersection` object set type and nested static and reference object sets\", async () => {\n const intersectionObjectSet: ObjectSet = {\n type: \"intersect\",\n objectSets: [\n {\n type: \"interfaceLinkSearchAround\",\n objectSet: {\n type: \"interfaceBase\",\n interfaceType: \"interface1\",\n },\n interfaceLink: \"linkToInterface2\",\n },\n { type: \"static\", \"objects\": [\"object1\", \"object2\"] },\n { type: \"reference\", \"reference\": \"rid.os.1234\" },\n ],\n };\n\n const result = await extractObjectOrInterfaceType(\n mockClientCtx,\n intersectionObjectSet,\n );\n\n expect(result).toEqual({ apiName: \"interface2\", type: \"interface\" });\n });\n\n it(\"throes with intersect, subtract, or union having different child object types\", async () => {\n const intersectionObjectSet: ObjectSet = {\n type: \"union\",\n objectSets: [\n {\n type: \"interfaceLinkSearchAround\",\n objectSet: {\n type: \"interfaceBase\",\n interfaceType: \"interface1\",\n },\n interfaceLink: \"linkToInterface2\",\n },\n { type: \"interfaceBase\", interfaceType: \"interface1\" },\n ],\n };\n\n await expect(\n extractObjectOrInterfaceType(mockClientCtx, intersectionObjectSet),\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Can only have one object type when doing subtract, union]`,\n );\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAE7C,SAASC,4BAA4B,QAAQ,mCAAmC;AAEhFH,QAAQ,CAAC,sBAAsB,EAAE,MAAM;EACrC,MAAMI,aAAa,GAAG;IACpBC,gBAAgB,EAAE;MAChBC,mBAAmB,EAAGC,UAAkB,IAAK;QAC3C,IAAIA,UAAU,KAAK,UAAU,EAAE;UAC7B,OAAO;YACLC,KAAK,EAAE;cACLC,SAAS,EAAE;gBACTC,UAAU,EAAE,YAAY;gBACxB,cAAc,EAAE;cAClB;YACF;UACF,CAAC;QACH,CAAC,MAAM,IAAIH,UAAU,KAAK,YAAY,EAAE;UACtC,OAAO;YACLC,KAAK,EAAE;cACLG,SAAS,EAAE;gBACTD,UAAU,EAAE,WAAW;gBACvB,cAAc,EAAE;cAClB;YACF;UACF,CAAC;QACH,CAAC,MAAM,IAAIH,UAAU,KAAK,WAAW,EAAE;UACrC,OAAO;YACLK,UAAU,EAAE;cACVC,YAAY,EAAE;gBACZC,IAAI,EAAE;cACR;YACF;UACF,CAAC;QACH,CAAC,MAAM;UACL,MAAM,IAAIC,KAAK,CAAC,2BAA2BR,UAAU,GAAG,CAAC;QAC3D;MACF,CAAC;MACDS,sBAAsB,EAAGC,aAAqB,IAAK;QACjD,IAAIA,aAAa,KAAK,YAAY,EAAE;UAClC,OAAO;YACLT,KAAK,EAAE;cACLU,gBAAgB,EAAE;gBAChBR,UAAU,EAAE,WAAW;gBACvBS,iBAAiB,EAAE,YAAY;gBAC/BC,YAAY,EAAE;cAChB;YACF;UACF,CAAC;QACH,CAAC,MAAM,IAAIH,aAAa,KAAK,YAAY,EAAE;UACzC,OAAO;YACLT,KAAK,EAAE;cACLa,gBAAgB,EAAE;gBAChBX,UAAU,EAAE,WAAW;gBACvBS,iBAAiB,EAAE,YAAY;gBAC/BC,YAAY,EAAE;cAChB;YACF;UACF,CAAC;QACH,CAAC,MAAM;UACL,MAAM,IAAIL,KAAK,CAAC,2BAA2BE,aAAa,GAAG,CAAC;QAC9D;MACF;IACF;EACF,CAAkB;EAElB,MAAMK,6BAAwC,GAAG;IAC/CR,IAAI,EAAE,2BAA2B;IACjCS,SAAS,EAAE;MACTT,IAAI,EAAE,eAAe;MACrBG,aAAa,EAAE;IACjB,CAAC;IACDO,aAAa,EAAE;EACjB,CAAC;EAEDtB,EAAE,CAAC,0CAA0C,EAAE,YAAY;IACzD,MAAMuB,MAAM,GAAG,MAAMtB,4BAA4B,CAC/CC,aAAa,EACbkB,6BACF,CAAC;IAEDrB,MAAM,CAACwB,MAAM,CAAC,CAACC,OAAO,CAAC;MAAEC,OAAO,EAAE,YAAY;MAAEb,IAAI,EAAE;IAAY,CAAC,CAAC;EACtE,CAAC,CAAC;EAEFZ,EAAE,CAAC,oFAAoF,EAAE,YAAY;IAiBnG,MAAMuB,MAAM,GAAG,MAAMtB,4BAA4B,CAC/CC,aAAa,EAjB0B;MACvCU,IAAI,EAAE,WAAW;MACjBc,UAAU,EAAE,CACV;QACEd,IAAI,EAAE,2BAA2B;QACjCS,SAAS,EAAE;UACTT,IAAI,EAAE,eAAe;UACrBG,aAAa,EAAE;QACjB,CAAC;QACDO,aAAa,EAAE;MACjB,CAAC,EACD;QAAEV,IAAI,EAAE,QAAQ;QAAE,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS;MAAE,CAAC,EACrD;QAAEA,IAAI,EAAE,WAAW;QAAE,WAAW,EAAE;MAAc,CAAC;IAErD,CAKA,CAAC;IAEDb,MAAM,CAACwB,MAAM,CAAC,CAACC,OAAO,CAAC;MAAEC,OAAO,EAAE,YAAY;MAAEb,IAAI,EAAE;IAAY,CAAC,CAAC;EACtE,CAAC,CAAC;EAEFZ,EAAE,CAAC,+EAA+E,EAAE,YAAY;IAgB9F,MAAMD,MAAM,CACVE,4BAA4B,CAACC,aAAa,EAhBH;MACvCU,IAAI,EAAE,OAAO;MACbc,UAAU,EAAE,CACV;QACEd,IAAI,EAAE,2BAA2B;QACjCS,SAAS,EAAE;UACTT,IAAI,EAAE,eAAe;UACrBG,aAAa,EAAE;QACjB,CAAC;QACDO,aAAa,EAAE;MACjB,CAAC,EACD;QAAEV,IAAI,EAAE,eAAe;QAAEG,aAAa,EAAE;MAAa,CAAC;IAE1D,CAGmE,CACnE,CAAC,CAACY,OAAO,CAACC,kCAAkC,CAC1C,qFACF,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -385,7 +385,14 @@ async function extractObjectOrInterfaceType(clientCtx, objectSet) {
385
385
  case "asType":
386
386
  case "nearestNeighbors":
387
387
  return extractObjectOrInterfaceType(clientCtx, objectSet.objectSet);
388
- case "intersect":
388
+ case "intersect": {
389
+ const objectSets2 = objectSet.objectSets;
390
+ const objectSetTypes2 = await Promise.all(objectSets2.map((os) => extractObjectOrInterfaceType(clientCtx, os)));
391
+ const filteredObjectTypes2 = objectSetTypes2.filter(Boolean);
392
+ const firstInterfaceType = filteredObjectTypes2.find((val) => val?.type === "interface");
393
+ !firstInterfaceType ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `Missing interface type in intersect objectset scope'`) : invariant5__default.default(false) : void 0;
394
+ return firstInterfaceType;
395
+ }
389
396
  case "subtract":
390
397
  case "union":
391
398
  const objectSets = objectSet.objectSets;
@@ -394,7 +401,7 @@ async function extractObjectOrInterfaceType(clientCtx, objectSet) {
394
401
  const firstObjectType = filteredObjectTypes[0];
395
402
  !filteredObjectTypes.every((val) => {
396
403
  return val?.apiName === firstObjectType?.apiName && val?.type === firstObjectType?.type;
397
- }) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Can only have one object type when doing intersects, subtract, union") : invariant5__default.default(false) : void 0;
404
+ }) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Can only have one object type when doing subtract, union") : invariant5__default.default(false) : void 0;
398
405
  return filteredObjectTypes[0];
399
406
  case "static":
400
407
  case "reference":
@@ -1944,5 +1951,5 @@ exports.hydrateAttachmentFromRidInternal = hydrateAttachmentFromRidInternal;
1944
1951
  exports.isObjectSet = isObjectSet;
1945
1952
  exports.isWireObjectSet = isWireObjectSet;
1946
1953
  exports.symbolClientContext = symbolClientContext;
1947
- //# sourceMappingURL=chunk-QR7IBJPZ.cjs.map
1948
- //# sourceMappingURL=chunk-QR7IBJPZ.cjs.map
1954
+ //# sourceMappingURL=chunk-ELAA4C2C.cjs.map
1955
+ //# sourceMappingURL=chunk-ELAA4C2C.cjs.map