@osdk/react 0.10.0-beta.6 → 0.10.0-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/AGENTS.md +46 -222
  2. package/CHANGELOG.md +34 -0
  3. package/build/browser/new/useLinks.js +6 -2
  4. package/build/browser/new/useLinks.js.map +1 -1
  5. package/build/browser/new/useObjectSet.js +40 -17
  6. package/build/browser/new/useObjectSet.js.map +1 -1
  7. package/build/browser/new/useOsdkObject.js +19 -3
  8. package/build/browser/new/useOsdkObject.js.map +1 -1
  9. package/build/browser/new/useOsdkObjects.js +7 -2
  10. package/build/browser/new/useOsdkObjects.js.map +1 -1
  11. package/build/browser/{intellisense.test.helpers/useOsdkObjectsWithPivot.js → public/experimental/admin.js} +4 -19
  12. package/build/browser/public/experimental/admin.js.map +1 -0
  13. package/build/browser/public/experimental.js +0 -3
  14. package/build/browser/public/experimental.js.map +1 -1
  15. package/build/cjs/chunk-SVVMLSKN.cjs +111 -0
  16. package/build/cjs/chunk-SVVMLSKN.cjs.map +1 -0
  17. package/build/cjs/public/experimental/admin.cjs +146 -0
  18. package/build/cjs/public/experimental/admin.cjs.map +1 -0
  19. package/build/cjs/public/experimental/admin.d.cts +118 -0
  20. package/build/cjs/public/experimental.cjs +146 -341
  21. package/build/cjs/public/experimental.cjs.map +1 -1
  22. package/build/cjs/public/experimental.d.cts +43 -126
  23. package/build/esm/new/useLinks.js +6 -2
  24. package/build/esm/new/useLinks.js.map +1 -1
  25. package/build/esm/new/useObjectSet.js +40 -17
  26. package/build/esm/new/useObjectSet.js.map +1 -1
  27. package/build/esm/new/useOsdkObject.js +19 -3
  28. package/build/esm/new/useOsdkObject.js.map +1 -1
  29. package/build/esm/new/useOsdkObjects.js +7 -2
  30. package/build/esm/new/useOsdkObjects.js.map +1 -1
  31. package/build/esm/{intellisense.test.helpers/useOsdkObjectsWithPivot.js → public/experimental/admin.js} +4 -19
  32. package/build/esm/public/experimental/admin.js.map +1 -0
  33. package/build/esm/public/experimental.js +0 -3
  34. package/build/esm/public/experimental.js.map +1 -1
  35. package/build/types/new/useLinks.d.ts +6 -0
  36. package/build/types/new/useLinks.d.ts.map +1 -1
  37. package/build/types/new/useObjectSet.d.ts +10 -4
  38. package/build/types/new/useObjectSet.d.ts.map +1 -1
  39. package/build/types/new/useOsdkObject.d.ts +12 -1
  40. package/build/types/new/useOsdkObject.d.ts.map +1 -1
  41. package/build/types/new/useOsdkObjects.d.ts +10 -0
  42. package/build/types/new/useOsdkObjects.d.ts.map +1 -1
  43. package/build/types/public/experimental/admin.d.ts +3 -0
  44. package/build/types/public/experimental/admin.d.ts.map +1 -0
  45. package/build/types/public/experimental.d.ts +0 -3
  46. package/build/types/public/experimental.d.ts.map +1 -1
  47. package/{build/esm/intellisense.test.helpers/useOsdkObjectsWithProperties.js → experimental/admin.d.ts} +1 -18
  48. package/package.json +18 -7
  49. package/build/browser/intellisense.test.helpers/useOsdkObjectsWithPivot.js.map +0 -1
  50. package/build/browser/intellisense.test.helpers/useOsdkObjectsWithProperties.js +0 -34
  51. package/build/browser/intellisense.test.helpers/useOsdkObjectsWithProperties.js.map +0 -1
  52. package/build/browser/intellisense.test.helpers/useOsdkObjectsWithRids.js +0 -37
  53. package/build/browser/intellisense.test.helpers/useOsdkObjectsWithRids.js.map +0 -1
  54. package/build/browser/intellisense.test.js +0 -172
  55. package/build/browser/intellisense.test.js.map +0 -1
  56. package/build/esm/intellisense.test.helpers/useOsdkObjectsWithPivot.js.map +0 -1
  57. package/build/esm/intellisense.test.helpers/useOsdkObjectsWithProperties.js.map +0 -1
  58. package/build/esm/intellisense.test.helpers/useOsdkObjectsWithRids.js +0 -37
  59. package/build/esm/intellisense.test.helpers/useOsdkObjectsWithRids.js.map +0 -1
  60. package/build/esm/intellisense.test.js +0 -172
  61. package/build/esm/intellisense.test.js.map +0 -1
  62. package/build/types/intellisense.test.d.ts +0 -1
  63. package/build/types/intellisense.test.d.ts.map +0 -1
  64. package/build/types/intellisense.test.helpers/useOsdkObjectsWithPivot.d.ts +0 -1
  65. package/build/types/intellisense.test.helpers/useOsdkObjectsWithPivot.d.ts.map +0 -1
  66. package/build/types/intellisense.test.helpers/useOsdkObjectsWithProperties.d.ts +0 -1
  67. package/build/types/intellisense.test.helpers/useOsdkObjectsWithProperties.d.ts.map +0 -1
  68. package/build/types/intellisense.test.helpers/useOsdkObjectsWithRids.d.ts +0 -1
  69. package/build/types/intellisense.test.helpers/useOsdkObjectsWithRids.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/new/OsdkContext2.ts","../../../src/new/OsdkProvider2.tsx","../../../src/new/makeExternalStore.ts","../../../src/utils/usePlatformQuery.ts","../../../src/new/platform-apis/admin/useCurrentFoundryUser.ts","../../../src/new/platform-apis/admin/useFoundryUser.ts","../../../src/new/platform-apis/admin/useFoundryUsersList.ts","../../../src/new/useLinks.ts","../../../src/new/useObjectSet.tsx","../../../src/new/useOsdkAction.ts","../../../src/new/useOsdkAggregation.ts","../../../src/new/useOsdkFunction.ts","../../../src/new/useOsdkObject.ts","../../../src/new/useOsdkObjects.ts","../../../src/utils/useDebouncedCallback.ts"],"names":["useMemo","createObservableClient","React","OsdkContext","Users","computeObjectSetCacheKey","applyAction","args","ActionValidationError","validateAction","getWireObjectSet","EMPTY_WHERE"],"mappings":"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","file":"experimental.cjs","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 React from \"react\";\nfunction fakeClientFn(..._args) {\n throw new Error(\"This is not a real client. Did you forget to <OsdkContext.Provider>?\");\n}\nconst fakeClient = Object.assign(fakeClientFn, {\n fetchMetadata: fakeClientFn\n});\nexport const OsdkContext2 = /*#__PURE__*/React.createContext({\n client: fakeClient,\n observableClient: undefined\n});","/*\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 { createObservableClient } from \"@osdk/client/unstable-do-not-use\";\nimport React, { useMemo } from \"react\";\nimport { OsdkContext } from \"../OsdkContext.js\";\nimport { OsdkContext2 } from \"./OsdkContext2.js\";\nexport function OsdkProvider2({\n children,\n client,\n observableClient\n}) {\n observableClient = useMemo(() => observableClient ?? createObservableClient(client), [client, observableClient]);\n return /*#__PURE__*/React.createElement(OsdkContext2.Provider, {\n value: {\n client,\n observableClient\n }\n }, /*#__PURE__*/React.createElement(OsdkContext.Provider, {\n value: {\n client\n }\n }, children));\n}","/*\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\nexport function makeExternalStore(createObservation, _name, initialValue) {\n let lastResult = initialValue;\n function getSnapShot() {\n return lastResult;\n }\n function subscribe(notifyUpdate) {\n const obs = createObservation({\n next: payload => {\n lastResult = payload;\n notifyUpdate();\n },\n error: error => {\n lastResult = {\n ...(lastResult ?? {}),\n error: error instanceof Error ? error : new Error(String(error))\n };\n notifyUpdate();\n },\n complete: () => {}\n });\n return () => {\n obs.unsubscribe();\n };\n }\n return {\n subscribe,\n getSnapShot\n };\n}\n\n/**\n * Like makeExternalStore but for async subscription creation.\n *\n * Uses an isActive flag to handle race conditions:\n * If cleanup runs before promise resolves, the stale subscription is\n * immediately unsubscribed when it eventually resolves\n */\nexport function makeExternalStoreAsync(createObservation, _name, initialValue) {\n let lastResult = initialValue;\n function getSnapShot() {\n return lastResult;\n }\n function subscribe(notifyUpdate) {\n let isActive = true;\n let currentSubscription;\n const subscriptionPromise = createObservation({\n next: payload => {\n if (isActive) {\n lastResult = payload;\n notifyUpdate();\n }\n },\n error: error => {\n if (isActive) {\n lastResult = {\n ...(lastResult ?? {}),\n error: error instanceof Error ? error : new Error(String(error))\n };\n notifyUpdate();\n }\n },\n complete: () => {}\n });\n subscriptionPromise.then(sub => {\n if (isActive) {\n currentSubscription = sub;\n } else {\n sub.unsubscribe();\n }\n }).catch(error => {\n if (isActive) {\n lastResult = {\n ...(lastResult ?? {}),\n error: error instanceof Error ? error : new Error(String(error))\n };\n notifyUpdate();\n }\n });\n return () => {\n isActive = false;\n if (currentSubscription) {\n currentSubscription.unsubscribe();\n }\n };\n }\n return {\n subscribe,\n getSnapShot\n };\n}","/*\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 React from \"react\";\nimport { makeExternalStore } from \"../new/makeExternalStore.js\";\nexport function usePlatformQuery({\n query,\n queryName,\n enabled = true\n}) {\n const observerRef = React.useRef();\n const handleQuery = React.useCallback(() => {\n const observer = observerRef.current;\n if (observer == null) return;\n observer.next({\n status: \"loading\",\n data: undefined\n });\n query().then(data => {\n observer.next({\n status: \"success\",\n data\n });\n }).catch(err => {\n observer.error(err);\n });\n }, [query]);\n const {\n subscribe,\n getSnapShot\n } = React.useMemo(() => {\n if (!enabled) {\n return makeExternalStore(() => ({\n unsubscribe: () => {}\n }), process.env.NODE_ENV !== \"production\" ? `${queryName} Query [DISABLED]` : undefined);\n }\n return makeExternalStore(observer => {\n observerRef.current = observer;\n handleQuery();\n return {\n unsubscribe: () => {\n observerRef.current = undefined;\n }\n };\n }, queryName);\n }, [enabled, queryName, handleQuery]);\n const payload = React.useSyncExternalStore(subscribe, getSnapShot);\n let error;\n if (payload && \"error\" in payload && payload.error != null) {\n error = payload.error;\n } else if (payload?.status === \"error\") {\n error = new Error(`Failed to query platform API: ${queryName}`);\n }\n return {\n data: payload?.data,\n isLoading: enabled ? payload?.status === \"loading\" || !payload : false,\n error,\n refetch: handleQuery\n };\n}","/*\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 { Users } from \"@osdk/foundry.admin\";\nimport React from \"react\";\nimport { usePlatformQuery } from \"../../../utils/usePlatformQuery.js\";\nimport { OsdkContext2 } from \"../../OsdkContext2.js\";\n/**\n * Get the currently signed in User.\n * @param options Options to control the query.\n */\nexport function useCurrentFoundryUser({\n enabled = true\n} = {}) {\n const {\n client\n } = React.useContext(OsdkContext2);\n const handleQuery = React.useCallback(() => Users.getCurrent(client), [client]);\n const query = usePlatformQuery({\n query: handleQuery,\n enabled,\n queryName: \"foundry-current-user\"\n });\n return {\n currentUser: query.data,\n isLoading: query.isLoading,\n error: query.error,\n refetch: query.refetch\n };\n}","/*\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 { Users } from \"@osdk/foundry.admin\";\nimport React from \"react\";\nimport { usePlatformQuery } from \"../../../utils/usePlatformQuery.js\";\nimport { OsdkContext2 } from \"../../OsdkContext2.js\";\n/**\n * Get the User with the specified id.\n * @param userId A Foundry User ID.\n * @param options Options to control the query.\n */\nexport function useFoundryUser(userId, {\n enabled = true,\n status = \"ACTIVE\"\n} = {}) {\n const {\n client\n } = React.useContext(OsdkContext2);\n const handleQuery = React.useCallback(() => {\n return Users.get(client, userId, {\n status\n });\n }, [client, userId, status]);\n const query = usePlatformQuery({\n query: handleQuery,\n enabled,\n queryName: \"foundry-user\"\n });\n return {\n user: query.data,\n isLoading: query.isLoading,\n error: query.error,\n refetch: query.refetch\n };\n}","/*\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 { Users } from \"@osdk/foundry.admin\";\nimport React from \"react\";\nimport { usePlatformQuery } from \"../../../utils/usePlatformQuery.js\";\nimport { OsdkContext2 } from \"../../OsdkContext2.js\";\n/**\n * Lists all Users. This is a paged endpoint. Each page may be smaller or larger than the requested page size.\n * @param options Options to control the query.\n */\nexport function useFoundryUsersList({\n enabled = true,\n include = \"ACTIVE\",\n pageSize = 1000,\n pageToken\n} = {}) {\n const {\n client\n } = React.useContext(OsdkContext2);\n const handleQuery = React.useCallback(() => {\n return Users.list(client, {\n include,\n pageSize,\n pageToken\n });\n }, [client, include, pageSize, pageToken]);\n const query = usePlatformQuery({\n query: handleQuery,\n enabled,\n queryName: \"foundry-users-list\"\n });\n return {\n users: query.data?.data,\n nextPageToken: query.data?.nextPageToken,\n isLoading: query.isLoading,\n error: query.error,\n refetch: query.refetch\n };\n}","/*\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 React from \"react\";\nimport { makeExternalStore } from \"./makeExternalStore.js\";\nimport { OsdkContext2 } from \"./OsdkContext2.js\";\nconst emptyArray = Object.freeze([]);\n\n/**\n * Hook to observe links from an object or array of objects.\n *\n * @param objects The source object(s) to observe links from\n * @param linkName The name of the link to observe\n * @param options Optional configuration for the link query\n * @returns UseLinksResult with links data and metadata\n */\nexport function useLinks(objects, linkName, options = {}) {\n const {\n observableClient\n } = React.useContext(OsdkContext2);\n const {\n enabled = true,\n ...otherOptions\n } = options;\n const stableWhere = React.useMemo(() => otherOptions.where, [JSON.stringify(otherOptions.where)]);\n const stableOrderBy = React.useMemo(() => otherOptions.orderBy, [JSON.stringify(otherOptions.orderBy)]);\n const objectsKey = React.useMemo(() => {\n if (objects === undefined) return \"\";\n const arr = Array.isArray(objects) ? objects : [objects];\n return arr.map(obj => `${obj.$apiName}:${obj.$primaryKey}`).join(\",\");\n }, [objects]);\n\n // Convert single object to array for consistent handling\n const objectsArray = React.useMemo(() => {\n return objects === undefined ? emptyArray : Array.isArray(objects) ? objects : [objects];\n }, [objectsKey, objects]);\n const {\n subscribe,\n getSnapShot\n } = React.useMemo(() => {\n if (!enabled) {\n return makeExternalStore(() => ({\n unsubscribe: () => {}\n }), `links ${linkName} for ${objectsKey} [DISABLED]`);\n }\n return makeExternalStore(observer => observableClient.observeLinks(objectsArray, linkName, {\n linkName,\n where: stableWhere,\n pageSize: otherOptions.pageSize,\n orderBy: stableOrderBy,\n mode: otherOptions.mode,\n dedupeInterval: otherOptions.dedupeIntervalMs ?? 2_000\n }, observer), `links ${linkName} for ${objectsKey}`);\n }, [enabled, observableClient, objectsArray, objectsKey, linkName, stableWhere, otherOptions.pageSize, stableOrderBy, otherOptions.mode, otherOptions.dedupeIntervalMs]);\n const payload = React.useSyncExternalStore(subscribe, getSnapShot);\n return React.useMemo(() => ({\n links: payload?.resolvedList,\n isLoading: enabled ? payload?.status === \"loading\" || payload?.status === \"init\" || !payload : false,\n isOptimistic: payload?.isOptimistic ?? false,\n error: payload?.error,\n fetchMore: payload?.hasMore ? payload?.fetchMore : undefined,\n hasMore: payload?.hasMore ?? false\n }), [payload, enabled]);\n}","/*\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 { computeObjectSetCacheKey } from \"@osdk/client/unstable-do-not-use\";\nimport React from \"react\";\nimport { makeExternalStore } from \"./makeExternalStore.js\";\nimport { OsdkContext2 } from \"./OsdkContext2.js\";\nconst OBJECT_TYPE_PLACEHOLDER = \"$__OBJECT__TYPE__PLACEHOLDER\";\n/**\n * React hook for observing and interacting with OSDK object sets.\n *\n * @typeParam Q - The object type definition\n * @typeParam BaseRDPs - Derived properties that already exist on the input ObjectSet\n * @typeParam RDPs - New derived properties to be added via options.withProperties\n *\n * @param baseObjectSet - The ObjectSet to observe (may already have derived properties)\n * @param options - Options for filtering, sorting, and adding new derived properties\n * @returns Object set data with both existing and new derived properties\n */\nexport function useObjectSet(baseObjectSet, options = {}) {\n const {\n observableClient\n } = React.useContext(OsdkContext2);\n const {\n enabled = true,\n streamUpdates,\n ...otherOptions\n } = options;\n\n // Track object type to detect when we switch to a different object type\n const objectTypeKey = enabled ? baseObjectSet.$objectSetInternals.def.apiName : OBJECT_TYPE_PLACEHOLDER;\n const previousObjectTypeRef = React.useRef(objectTypeKey);\n const previousPayloadRef = React.useRef();\n const objectTypeChanged = previousObjectTypeRef.current !== objectTypeKey;\n if (objectTypeChanged) {\n previousObjectTypeRef.current = objectTypeKey;\n }\n\n // Compute a stable cache key for the ObjectSet and options\n // dedupeIntervalMs and enabled are excluded as they don't affect the data\n const stableKey = computeObjectSetCacheKey(baseObjectSet, {\n where: otherOptions.where,\n withProperties: otherOptions.withProperties,\n union: otherOptions.union,\n intersect: otherOptions.intersect,\n subtract: otherOptions.subtract,\n pivotTo: otherOptions.pivotTo,\n pageSize: otherOptions.pageSize,\n orderBy: otherOptions.orderBy\n });\n const {\n subscribe,\n getSnapShot\n } = React.useMemo(() => {\n if (!enabled) {\n return makeExternalStore(() => ({\n unsubscribe: () => {}\n }), process.env.NODE_ENV !== \"production\" ? `objectSet ${stableKey} [DISABLED]` : void 0);\n }\n const initialValue = objectTypeChanged ? undefined : previousPayloadRef.current;\n return makeExternalStore(observer => {\n const subscription = observableClient.observeObjectSet(baseObjectSet, {\n where: otherOptions.where,\n withProperties: otherOptions.withProperties,\n union: otherOptions.union,\n intersect: otherOptions.intersect,\n subtract: otherOptions.subtract,\n pivotTo: otherOptions.pivotTo,\n pageSize: otherOptions.pageSize,\n orderBy: otherOptions.orderBy,\n dedupeInterval: otherOptions.dedupeIntervalMs ?? 2_000,\n autoFetchMore: otherOptions.autoFetchMore,\n streamUpdates\n }, observer);\n return subscription;\n }, process.env.NODE_ENV !== \"production\" ? `objectSet ${stableKey}` : void 0, initialValue);\n }, [enabled, observableClient, stableKey, streamUpdates, objectTypeChanged]);\n const payload = React.useSyncExternalStore(subscribe, getSnapShot);\n React.useEffect(() => {\n if (payload) {\n previousPayloadRef.current = payload;\n }\n }, [payload]);\n return React.useMemo(() => ({\n data: payload?.resolvedList,\n isLoading: payload?.status === \"loading\" || !payload && true || false,\n error: payload && \"error\" in payload ? payload.error : undefined,\n fetchMore: payload?.hasMore ? payload.fetchMore : undefined,\n objectSet: payload?.objectSet || baseObjectSet,\n totalCount: payload?.totalCount\n }), [payload, baseObjectSet]);\n}","/*\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 { ActionValidationError } from \"@osdk/client\";\nimport React from \"react\";\nimport { OsdkContext2 } from \"./OsdkContext2.js\";\nexport function useOsdkAction(actionDef) {\n const {\n observableClient\n } = React.useContext(OsdkContext2);\n const [error, setError] = React.useState();\n const [data, setData] = React.useState();\n const [isPending, setPending] = React.useState(false);\n const [isValidating, setValidating] = React.useState(false);\n const [validationResult, setValidationResult] = React.useState();\n const abortControllerRef = React.useRef(null);\n const applyAction = React.useCallback(async function applyAction(hookArgs) {\n try {\n // If validation is in progress, abort it\n if (isValidating && abortControllerRef.current) {\n abortControllerRef.current.abort();\n setValidating(false);\n }\n setPending(true);\n setError(undefined);\n if (Array.isArray(hookArgs)) {\n const updates = [];\n const args = hookArgs.map(a => {\n const {\n $optimisticUpdate,\n ...args\n } = a;\n if ($optimisticUpdate) {\n updates.push($optimisticUpdate);\n }\n return args;\n });\n const r = await observableClient.applyAction(actionDef, args, {\n optimisticUpdate: ctx => {\n for (const update of updates) {\n update?.(ctx);\n }\n }\n });\n setData(r);\n return r;\n } else {\n const {\n $optimisticUpdate,\n ...args\n } = hookArgs;\n const r = await observableClient.applyAction(actionDef, args, {\n optimisticUpdate: $optimisticUpdate\n });\n setData(r);\n return r;\n }\n } catch (e) {\n if (e instanceof ActionValidationError) {\n setError({\n actionValidation: e\n });\n } else {\n setError({\n unknown: e\n });\n }\n } finally {\n setPending(false);\n }\n }, [observableClient, actionDef, isValidating]);\n const validateAction = React.useCallback(async function validateAction(args) {\n try {\n // Check if action is being applied\n if (isPending) {\n return undefined;\n }\n\n // Abort any existing validation\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n\n // Create new AbortController\n const abortController = new AbortController();\n abortControllerRef.current = abortController;\n setValidating(true);\n setError(undefined);\n const result = await observableClient.validateAction(actionDef, args);\n\n // Check if aborted\n if (abortController.signal.aborted) {\n return undefined;\n }\n setValidationResult(result);\n return result;\n } catch (e) {\n // Check if it was aborted\n if (e instanceof Error && e.name === \"AbortError\") {\n return undefined;\n }\n if (e instanceof ActionValidationError) {\n setError({\n actionValidation: e\n });\n } else {\n setError({\n unknown: e\n });\n }\n throw e;\n } finally {\n setValidating(false);\n }\n }, [observableClient, actionDef, isPending]);\n\n // Cleanup on unmount\n React.useEffect(() => {\n return () => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n };\n }, []);\n return React.useMemo(() => ({\n applyAction,\n validateAction,\n error,\n data,\n isPending,\n isValidating,\n validationResult\n }), [applyAction, validateAction, error, data, isPending, isValidating, validationResult]);\n}","/*\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 { computeObjectSetCacheKey } from \"@osdk/client/unstable-do-not-use\";\nimport React from \"react\";\nimport { makeExternalStore, makeExternalStoreAsync } from \"./makeExternalStore.js\";\nimport { OsdkContext2 } from \"./OsdkContext2.js\";\nconst EMPTY_WHERE = {};\n\n/**\n * React hook for performing aggregations on OSDK object sets.\n *\n * Executes server-side aggregations with groupBy and metric calculations on filtered object sets.\n * Supports runtime derived properties and where clauses.\n *\n * @param type - The object or interface type to aggregate\n * @param options - Aggregation configuration including where clause, aggregation spec, and optional derived properties\n * @returns Object containing aggregation results, loading state, error state, and refetch function\n *\n * @example\n * ```tsx\n * // Basic aggregation without ObjectSet\n * const { data, isLoading, error } = useOsdkAggregation(Employee, {\n * where: { department: \"Engineering\" },\n * aggregate: {\n * groupBy: { department: \"exact\" },\n * select: {\n * avgSalary: { $avg: \"salary\" },\n * count: { $count: {} }\n * }\n * }\n * });\n *\n * // With a pivoted ObjectSet\n * const pivotedSet = useMemo(() => $(Employee).pivotTo(\"primaryOffice\"), []);\n * const { data } = useOsdkAggregation(Office, {\n * objectSet: pivotedSet,\n * aggregate: { $select: { $count: \"unordered\" } }\n * });\n * ```\n */\n\nexport function useOsdkAggregation(type, options) {\n const {\n where = EMPTY_WHERE,\n withProperties,\n intersectWith,\n aggregate,\n dedupeIntervalMs\n } = options;\n const objectSet = \"objectSet\" in options ? options.objectSet : undefined;\n const {\n observableClient\n } = React.useContext(OsdkContext2);\n const canonWhere = observableClient.canonicalizeWhereClause(where);\n const stableCanonWhere = React.useMemo(() => canonWhere, [JSON.stringify(canonWhere)]);\n const objectSetRef = React.useRef(objectSet);\n objectSetRef.current = objectSet;\n const objectSetKeyString = objectSet ? computeObjectSetCacheKey(objectSet) : undefined;\n const stableWithProperties = React.useMemo(() => withProperties, [JSON.stringify(withProperties)]);\n const stableAggregate = React.useMemo(() => aggregate, [JSON.stringify(aggregate)]);\n const stableIntersectWith = React.useMemo(() => intersectWith, [JSON.stringify(intersectWith)]);\n const {\n subscribe,\n getSnapShot\n } = React.useMemo(() => {\n if (objectSetKeyString && objectSetRef.current) {\n return makeExternalStoreAsync(observer => observableClient.observeAggregation({\n type: type,\n objectSet: objectSetRef.current,\n where: stableCanonWhere,\n withProperties: stableWithProperties,\n intersectWith: stableIntersectWith,\n aggregate: stableAggregate,\n dedupeInterval: dedupeIntervalMs ?? 2_000\n }, observer), process.env.NODE_ENV !== \"production\" ? `aggregation ${type.apiName} ${objectSetKeyString} ${JSON.stringify(stableCanonWhere)}` : void 0);\n }\n return makeExternalStore(observer =>\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n observableClient.observeAggregation({\n type: type,\n where: stableCanonWhere,\n withProperties: stableWithProperties,\n intersectWith: stableIntersectWith,\n aggregate: stableAggregate,\n dedupeInterval: dedupeIntervalMs ?? 2_000\n }, observer), process.env.NODE_ENV !== \"production\" ? `aggregation ${type.apiName} ${JSON.stringify(stableCanonWhere)}` : void 0);\n }, [observableClient, type.apiName, type.type, objectSetKeyString, stableCanonWhere, stableWithProperties, stableIntersectWith, stableAggregate, dedupeIntervalMs]);\n const payload = React.useSyncExternalStore(subscribe, getSnapShot);\n const refetch = React.useCallback(async () => {\n await observableClient.invalidateObjectType(type.apiName);\n }, [observableClient, type.apiName]);\n return React.useMemo(() => {\n let error;\n if (payload && \"error\" in payload && payload.error) {\n error = payload.error;\n } else if (payload?.status === \"error\") {\n error = new Error(\"Failed to execute aggregation\");\n }\n return {\n data: payload?.result,\n isLoading: payload?.status === \"loading\" || payload?.status === \"init\" || !payload,\n error,\n refetch\n };\n }, [payload, refetch]);\n}","/*\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 { getWireObjectSet } from \"@osdk/client/unstable-do-not-use\";\nimport React from \"react\";\nimport { makeExternalStore } from \"./makeExternalStore.js\";\nimport { OsdkContext2 } from \"./OsdkContext2.js\";\n/**\n * React hook for executing and observing OSDK functions.\n *\n * Provides automatic caching, deduplication, and reactive updates for function calls.\n * Functions are automatically re-fetched when dependencies change (configured via options).\n *\n * @param queryDef - The QueryDefinition to execute\n * @param options - Configuration options for the function call\n * @returns Object containing result, loading state, error, and refetch function\n *\n * @example Basic usage\n * ```tsx\n * const { data, isLoading, error } = useOsdkFunction(getEmployeeStats, {\n * params: { departmentId: \"engineering\" }\n * });\n * ```\n *\n * @example With dependency tracking\n * ```tsx\n * const { data, refetch } = useOsdkFunction(calculateMetrics, {\n * params: { startDate, endDate },\n * dependsOn: [Employee, Project],\n * });\n * ```\n *\n * @example With specific object dependencies\n * ```tsx\n * const { data } = useOsdkFunction(getEmployeeReport, {\n * params: { employeeId: employee.$primaryKey },\n * dependsOnObjects: [employee],\n * });\n * ```\n */\nexport function useOsdkFunction(queryDef, options = {}) {\n const {\n observableClient\n } = React.useContext(OsdkContext2);\n const {\n params,\n dependsOn,\n dependsOnObjects,\n dedupeIntervalMs,\n enabled = true\n } = options;\n const stableParams = React.useMemo(() => params, [JSON.stringify(params)]);\n const stableDependsOn = React.useMemo(() => dependsOn, [JSON.stringify(dependsOn?.map(d => typeof d === \"string\" ? d : d.apiName))]);\n const stableDependsOnObjects = React.useMemo(() => dependsOnObjects, [JSON.stringify(dependsOnObjects?.map(item => \"$apiName\" in item ? {\n $apiName: item.$apiName,\n $primaryKey: item.$primaryKey\n } : {\n __objectSet: getWireObjectSet(item)\n }))]);\n\n // Record<string, unknown> required as typing is figured out at runtime\n const paramsForApi = stableParams;\n const {\n subscribe,\n getSnapShot\n } = React.useMemo(() => {\n if (!enabled) {\n return makeExternalStore(() => ({\n unsubscribe: () => {}\n }), process.env.NODE_ENV !== \"production\" ? `function ${queryDef.apiName} ${JSON.stringify(stableParams)} [DISABLED]` : void 0);\n }\n return makeExternalStore(observer => observableClient.observeFunction(queryDef, paramsForApi, {\n dependsOn: stableDependsOn,\n dependsOnObjects: stableDependsOnObjects,\n dedupeInterval: dedupeIntervalMs ?? 2_000\n }, observer), process.env.NODE_ENV !== \"production\" ? `function ${queryDef.apiName} ${JSON.stringify(stableParams)}` : void 0);\n }, [observableClient, queryDef.apiName, queryDef.version, paramsForApi, stableDependsOn, stableDependsOnObjects, dedupeIntervalMs, enabled]);\n const payload = React.useSyncExternalStore(subscribe, getSnapShot);\n const refetch = React.useCallback(() => {\n void observableClient.invalidateFunction(queryDef, paramsForApi);\n }, [observableClient, queryDef, paramsForApi]);\n return React.useMemo(() => {\n const error = payload?.error ?? (payload?.status === \"error\" ? new Error(\"Failed to execute function\") : undefined);\n return {\n data: payload?.result,\n isLoading: payload?.status === \"loading\",\n error,\n lastUpdated: payload?.lastUpdated ?? 0,\n refetch\n };\n }, [payload, refetch]);\n}","/*\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 React from \"react\";\nimport { makeExternalStore } from \"./makeExternalStore.js\";\nimport { OsdkContext2 } from \"./OsdkContext2.js\";\n\n/**\n * @param obj an existing `Osdk.Instance` object to get metadata for.\n * @param enabled Enable or disable the query (defaults to true)\n */\n\n/**\n * Loads an object or interface instance by type and primary key.\n *\n * @param type The object type or interface definition\n * @param primaryKey The primary key of the object\n * @param enabled Enable or disable the query (defaults to true)\n */\n\n/*\n Implementation of useOsdkObject\n */\nexport function useOsdkObject(...args) {\n const {\n observableClient\n } = React.useContext(OsdkContext2);\n\n // Check if first arg is an instance to discriminate signatures\n // TypeScript cannot narrow rest parameter unions with optional parameters,\n // so we must use type assertions after runtime discrimination\n const isInstanceSignature = \"$objectType\" in args[0];\n\n // Extract enabled flag - 2nd param for instance signature, 3rd for type signature\n const enabled = isInstanceSignature ? typeof args[1] === \"boolean\" ? args[1] : true : typeof args[2] === \"boolean\" ? args[2] : true;\n const mode = isInstanceSignature ? \"offline\" : undefined;\n const typeOrApiName = isInstanceSignature ? args[0].$objectType : args[0];\n const primaryKey = isInstanceSignature ? args[0].$primaryKey : args[1];\n const apiNameString = typeof typeOrApiName === \"string\" ? typeOrApiName : typeOrApiName.apiName;\n const {\n subscribe,\n getSnapShot\n } = React.useMemo(() => {\n if (!enabled) {\n return makeExternalStore(() => ({\n unsubscribe: () => {}\n }), `object ${apiNameString} ${primaryKey} [DISABLED]`);\n }\n return makeExternalStore(observer => observableClient.observeObject(typeOrApiName, primaryKey, {\n mode\n }, observer), `object ${apiNameString} ${primaryKey}`);\n }, [enabled, observableClient, typeOrApiName, apiNameString, primaryKey, mode]);\n const payload = React.useSyncExternalStore(subscribe, getSnapShot);\n const forceUpdate = React.useCallback(() => {\n throw new Error(\"not implemented\");\n }, []);\n return React.useMemo(() => {\n let error;\n if (payload && \"error\" in payload && payload.error) {\n error = payload.error;\n } else if (payload?.status === \"error\") {\n error = new Error(\"Failed to load object\");\n }\n return {\n object: payload?.object,\n isLoading: enabled ? payload?.status === \"loading\" || payload?.status === \"init\" || !payload : false,\n isOptimistic: !!payload?.isOptimistic,\n error,\n forceUpdate\n };\n }, [payload, enabled, forceUpdate]);\n}","/*\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 React from \"react\";\nimport { makeExternalStore } from \"./makeExternalStore.js\";\nimport { OsdkContext2 } from \"./OsdkContext2.js\";\nconst EMPTY_WHERE = {};\nexport function useOsdkObjects(type, options) {\n const {\n observableClient\n } = React.useContext(OsdkContext2);\n const {\n pageSize,\n dedupeIntervalMs,\n withProperties,\n enabled = true,\n rids,\n where,\n orderBy,\n streamUpdates,\n autoFetchMore,\n intersectWith,\n pivotTo\n } = options ?? {};\n const canonWhere = observableClient.canonicalizeWhereClause(where ?? EMPTY_WHERE);\n const stableCanonWhere = React.useMemo(() => canonWhere, [JSON.stringify(canonWhere)]);\n const stableRids = React.useMemo(() => rids, [JSON.stringify(rids)]);\n const stableWithProperties = React.useMemo(() => withProperties, [JSON.stringify(withProperties)]);\n const stableIntersectWith = React.useMemo(() => intersectWith, [JSON.stringify(intersectWith)]);\n const stableOrderBy = React.useMemo(() => orderBy, [JSON.stringify(orderBy)]);\n const {\n subscribe,\n getSnapShot\n } = React.useMemo(() => {\n if (!enabled) {\n return makeExternalStore(() => ({\n unsubscribe: () => {}\n }), process.env.NODE_ENV !== \"production\" ? `list ${type.apiName} [DISABLED]` : void 0);\n }\n return makeExternalStore(observer => observableClient.observeList({\n type,\n rids: stableRids,\n where: stableCanonWhere,\n dedupeInterval: dedupeIntervalMs ?? 2_000,\n pageSize,\n orderBy: stableOrderBy,\n streamUpdates,\n withProperties: stableWithProperties,\n autoFetchMore,\n ...(stableIntersectWith ? {\n intersectWith: stableIntersectWith\n } : {}),\n ...(pivotTo ? {\n pivotTo\n } : {})\n }, observer), process.env.NODE_ENV !== \"production\" ? `list ${type.apiName} ${stableRids ? `[${stableRids.length} rids]` : \"\"} ${JSON.stringify(stableCanonWhere)}` : void 0);\n }, [enabled, observableClient, type.apiName, type.type, stableRids, stableCanonWhere, dedupeIntervalMs, pageSize, stableOrderBy, streamUpdates, stableWithProperties, autoFetchMore, stableIntersectWith, pivotTo]);\n const listPayload = React.useSyncExternalStore(subscribe, getSnapShot);\n return React.useMemo(() => {\n let error;\n if (listPayload && \"error\" in listPayload && listPayload.error) {\n error = listPayload.error;\n } else if (listPayload?.status === \"error\") {\n error = new Error(\"Failed to load objects\");\n }\n return {\n fetchMore: listPayload?.hasMore ? listPayload.fetchMore : undefined,\n error,\n data: listPayload?.resolvedList,\n isLoading: enabled ? listPayload?.status === \"loading\" || listPayload?.status === \"init\" || !listPayload : false,\n isOptimistic: listPayload?.isOptimistic ?? false,\n totalCount: listPayload?.totalCount\n };\n }, [listPayload, enabled]);\n}","/*\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 React from \"react\";\n/**\n * Creates a debounced version of a callback function.\n *\n * @param callback The function to debounce\n * @param delay The delay in milliseconds\n * @returns A debounced function with cancel() and flush() methods\n *\n * @example\n * ```tsx\n * const { applyAction } = useOsdkAction(editOffice);\n *\n * const debouncedSave = useDebouncedCallback(\n * async (name: string) => {\n * await applyAction({\n * Office: office,\n * name,\n * location: office.location!,\n * $optimisticUpdate: (ctx) => {\n * ctx.updateObject(office.$clone({ name }));\n * },\n * });\n * },\n * 1000\n * );\n *\n * <input onChange={(e) => debouncedSave(e.target.value)} />\n * ```\n */\nexport function useDebouncedCallback(callback, delay) {\n const timeoutRef = React.useRef();\n const callbackRef = React.useRef(callback);\n const lastArgsRef = React.useRef();\n callbackRef.current = callback;\n const cancel = React.useCallback(() => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = undefined;\n }\n }, []);\n const flush = React.useCallback(() => {\n if (timeoutRef.current && lastArgsRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = undefined;\n void callbackRef.current(...lastArgsRef.current);\n }\n }, []);\n const debouncedCallback = React.useCallback((...args) => {\n lastArgsRef.current = args;\n cancel();\n timeoutRef.current = setTimeout(() => {\n void callbackRef.current(...args);\n }, delay);\n }, [delay, cancel]);\n React.useEffect(() => {\n return () => {\n cancel();\n };\n }, [cancel]);\n return Object.assign(debouncedCallback, {\n cancel,\n flush\n });\n}"]}
1
+ {"version":3,"sources":["../../../src/new/OsdkProvider2.tsx","../../../src/new/useLinks.ts","../../../src/new/useObjectSet.tsx","../../../src/new/useOsdkAction.ts","../../../src/new/useOsdkAggregation.ts","../../../src/new/useOsdkFunction.ts","../../../src/new/useOsdkObject.ts","../../../src/new/useOsdkObjects.ts","../../../src/utils/useDebouncedCallback.ts"],"names":["useMemo","createObservableClient","React","OsdkContext2","OsdkContext","makeExternalStore","computeObjectSetCacheKey","applyAction","args","ActionValidationError","validateAction","makeExternalStoreAsync","getWireObjectSet","EMPTY_WHERE"],"mappings":"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","file":"experimental.cjs","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 { createObservableClient } from \"@osdk/client/unstable-do-not-use\";\nimport React, { useMemo } from \"react\";\nimport { OsdkContext } from \"../OsdkContext.js\";\nimport { OsdkContext2 } from \"./OsdkContext2.js\";\nexport function OsdkProvider2({\n children,\n client,\n observableClient\n}) {\n observableClient = useMemo(() => observableClient ?? createObservableClient(client), [client, observableClient]);\n return /*#__PURE__*/React.createElement(OsdkContext2.Provider, {\n value: {\n client,\n observableClient\n }\n }, /*#__PURE__*/React.createElement(OsdkContext.Provider, {\n value: {\n client\n }\n }, children));\n}","/*\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 React from \"react\";\nimport { makeExternalStore } from \"./makeExternalStore.js\";\nimport { OsdkContext2 } from \"./OsdkContext2.js\";\nconst emptyArray = Object.freeze([]);\n\n/**\n * Hook to observe links from an object or array of objects.\n *\n * @param objects The source object(s) to observe links from\n * @param linkName The name of the link to observe\n * @param options Optional configuration for the link query\n * @returns UseLinksResult with links data and metadata\n */\nexport function useLinks(objects, linkName, options = {}) {\n const {\n observableClient\n } = React.useContext(OsdkContext2);\n const {\n enabled = true,\n ...otherOptions\n } = options;\n const stableWhere = React.useMemo(() => otherOptions.where, [JSON.stringify(otherOptions.where)]);\n const stableOrderBy = React.useMemo(() => otherOptions.orderBy, [JSON.stringify(otherOptions.orderBy)]);\n const stableSelect = React.useMemo(() => otherOptions.$select, [JSON.stringify(otherOptions.$select)]);\n const objectsKey = React.useMemo(() => {\n if (objects === undefined) return \"\";\n const arr = Array.isArray(objects) ? objects : [objects];\n return arr.map(obj => `${obj.$apiName}:${obj.$primaryKey}`).join(\",\");\n }, [objects]);\n\n // Convert single object to array for consistent handling\n const objectsArray = React.useMemo(() => {\n return objects === undefined ? emptyArray : Array.isArray(objects) ? objects : [objects];\n }, [objectsKey, objects]);\n const {\n subscribe,\n getSnapShot\n } = React.useMemo(() => {\n if (!enabled) {\n return makeExternalStore(() => ({\n unsubscribe: () => {}\n }), `links ${linkName} for ${objectsKey} [DISABLED]`);\n }\n return makeExternalStore(observer => observableClient.observeLinks(objectsArray, linkName, {\n linkName,\n where: stableWhere,\n pageSize: otherOptions.pageSize,\n orderBy: stableOrderBy,\n mode: otherOptions.mode,\n dedupeInterval: otherOptions.dedupeIntervalMs ?? 2_000,\n ...(stableSelect ? {\n select: stableSelect\n } : {})\n }, observer), `links ${linkName} for ${objectsKey}`);\n }, [enabled, observableClient, objectsArray, objectsKey, linkName, stableWhere, otherOptions.pageSize, stableOrderBy, otherOptions.mode, otherOptions.dedupeIntervalMs, stableSelect]);\n const payload = React.useSyncExternalStore(subscribe, getSnapShot);\n return React.useMemo(() => ({\n links: payload?.resolvedList,\n isLoading: enabled ? payload?.status === \"loading\" || payload?.status === \"init\" || !payload : false,\n isOptimistic: payload?.isOptimistic ?? false,\n error: payload?.error,\n fetchMore: payload?.hasMore ? payload?.fetchMore : undefined,\n hasMore: payload?.hasMore ?? false\n }), [payload, enabled]);\n}","/*\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 { computeObjectSetCacheKey } from \"@osdk/client/unstable-do-not-use\";\nimport React from \"react\";\nimport { makeExternalStore } from \"./makeExternalStore.js\";\nimport { OsdkContext2 } from \"./OsdkContext2.js\";\nconst OBJECT_TYPE_PLACEHOLDER = \"$__OBJECT__TYPE__PLACEHOLDER\";\n/**\n * React hook for observing and interacting with OSDK object sets.\n *\n * @typeParam Q - The object type definition\n * @typeParam BaseRDPs - Derived properties that already exist on the input ObjectSet\n * @typeParam RDPs - New derived properties to be added via options.withProperties\n *\n * @param baseObjectSet - The ObjectSet to observe (may already have derived properties)\n * @param options - Options for filtering, sorting, and adding new derived properties\n * @returns Object set data with both existing and new derived properties\n */\nexport function useObjectSet(baseObjectSet, options = {}) {\n const {\n observableClient\n } = React.useContext(OsdkContext2);\n const {\n enabled = true,\n streamUpdates,\n ...otherOptions\n } = options;\n\n // Track object type to detect when we switch to a different object type\n const objectTypeKey = enabled ? baseObjectSet.$objectSetInternals.def.apiName : OBJECT_TYPE_PLACEHOLDER;\n const previousObjectTypeRef = React.useRef(objectTypeKey);\n const previousCompletedPayloadRef = React.useRef();\n const objectTypeChanged = previousObjectTypeRef.current !== objectTypeKey;\n if (objectTypeChanged) {\n previousObjectTypeRef.current = objectTypeKey;\n previousCompletedPayloadRef.current = undefined;\n }\n\n // Compute a stable cache key for the ObjectSet and options\n // dedupeIntervalMs and enabled are excluded as they don't affect the data\n const stableKey = computeObjectSetCacheKey(baseObjectSet, {\n where: otherOptions.where,\n withProperties: otherOptions.withProperties,\n union: otherOptions.union,\n intersect: otherOptions.intersect,\n subtract: otherOptions.subtract,\n pivotTo: otherOptions.pivotTo,\n pageSize: otherOptions.pageSize,\n orderBy: otherOptions.orderBy,\n select: otherOptions.$select\n });\n const {\n subscribe,\n getSnapShot\n } = React.useMemo(() => {\n if (!enabled) {\n return makeExternalStore(() => ({\n unsubscribe: () => {}\n }), process.env.NODE_ENV !== \"production\" ? `objectSet ${stableKey} [DISABLED]` : void 0);\n }\n const initialValue = objectTypeChanged ? undefined : previousCompletedPayloadRef.current;\n return makeExternalStore(observer => {\n const subscription = observableClient.observeObjectSet(baseObjectSet, {\n where: otherOptions.where,\n withProperties: otherOptions.withProperties,\n union: otherOptions.union,\n intersect: otherOptions.intersect,\n subtract: otherOptions.subtract,\n pivotTo: otherOptions.pivotTo,\n pageSize: otherOptions.pageSize,\n orderBy: otherOptions.orderBy,\n dedupeInterval: otherOptions.dedupeIntervalMs ?? 2_000,\n autoFetchMore: otherOptions.autoFetchMore,\n streamUpdates,\n select: otherOptions.$select\n }, observer);\n return subscription;\n }, process.env.NODE_ENV !== \"production\" ? `objectSet ${stableKey}` : void 0, initialValue);\n }, [enabled, observableClient, stableKey, streamUpdates, objectTypeChanged]);\n const payload = React.useSyncExternalStore(subscribe, getSnapShot);\n if (payload && isPayloadCompleted(payload)) {\n previousCompletedPayloadRef.current = payload;\n }\n return React.useMemo(() => {\n const lastLoaded = isPayloadCompleted(payload) ? payload : previousCompletedPayloadRef.current;\n return {\n data: lastLoaded?.resolvedList,\n isLoading: !isPayloadCompleted(payload),\n error: lastLoaded && \"error\" in lastLoaded ? lastLoaded.error : undefined,\n fetchMore: payload?.hasMore ? payload.fetchMore : undefined,\n objectSet: payload?.objectSet || baseObjectSet,\n totalCount: lastLoaded?.totalCount\n };\n }, [payload, baseObjectSet]);\n}\nfunction isPayloadCompleted(payload) {\n if (payload != null && \"error\" in payload) {\n return true;\n }\n if (payload?.status == null) {\n return false;\n }\n switch (payload.status) {\n case \"loaded\":\n case \"error\":\n return true;\n case \"loading\":\n case \"init\":\n return false;\n default:\n payload.status;\n return false;\n }\n}","/*\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 { ActionValidationError } from \"@osdk/client\";\nimport React from \"react\";\nimport { OsdkContext2 } from \"./OsdkContext2.js\";\nexport function useOsdkAction(actionDef) {\n const {\n observableClient\n } = React.useContext(OsdkContext2);\n const [error, setError] = React.useState();\n const [data, setData] = React.useState();\n const [isPending, setPending] = React.useState(false);\n const [isValidating, setValidating] = React.useState(false);\n const [validationResult, setValidationResult] = React.useState();\n const abortControllerRef = React.useRef(null);\n const applyAction = React.useCallback(async function applyAction(hookArgs) {\n try {\n // If validation is in progress, abort it\n if (isValidating && abortControllerRef.current) {\n abortControllerRef.current.abort();\n setValidating(false);\n }\n setPending(true);\n setError(undefined);\n if (Array.isArray(hookArgs)) {\n const updates = [];\n const args = hookArgs.map(a => {\n const {\n $optimisticUpdate,\n ...args\n } = a;\n if ($optimisticUpdate) {\n updates.push($optimisticUpdate);\n }\n return args;\n });\n const r = await observableClient.applyAction(actionDef, args, {\n optimisticUpdate: ctx => {\n for (const update of updates) {\n update?.(ctx);\n }\n }\n });\n setData(r);\n return r;\n } else {\n const {\n $optimisticUpdate,\n ...args\n } = hookArgs;\n const r = await observableClient.applyAction(actionDef, args, {\n optimisticUpdate: $optimisticUpdate\n });\n setData(r);\n return r;\n }\n } catch (e) {\n if (e instanceof ActionValidationError) {\n setError({\n actionValidation: e\n });\n } else {\n setError({\n unknown: e\n });\n }\n } finally {\n setPending(false);\n }\n }, [observableClient, actionDef, isValidating]);\n const validateAction = React.useCallback(async function validateAction(args) {\n try {\n // Check if action is being applied\n if (isPending) {\n return undefined;\n }\n\n // Abort any existing validation\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n\n // Create new AbortController\n const abortController = new AbortController();\n abortControllerRef.current = abortController;\n setValidating(true);\n setError(undefined);\n const result = await observableClient.validateAction(actionDef, args);\n\n // Check if aborted\n if (abortController.signal.aborted) {\n return undefined;\n }\n setValidationResult(result);\n return result;\n } catch (e) {\n // Check if it was aborted\n if (e instanceof Error && e.name === \"AbortError\") {\n return undefined;\n }\n if (e instanceof ActionValidationError) {\n setError({\n actionValidation: e\n });\n } else {\n setError({\n unknown: e\n });\n }\n throw e;\n } finally {\n setValidating(false);\n }\n }, [observableClient, actionDef, isPending]);\n\n // Cleanup on unmount\n React.useEffect(() => {\n return () => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n };\n }, []);\n return React.useMemo(() => ({\n applyAction,\n validateAction,\n error,\n data,\n isPending,\n isValidating,\n validationResult\n }), [applyAction, validateAction, error, data, isPending, isValidating, validationResult]);\n}","/*\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 { computeObjectSetCacheKey } from \"@osdk/client/unstable-do-not-use\";\nimport React from \"react\";\nimport { makeExternalStore, makeExternalStoreAsync } from \"./makeExternalStore.js\";\nimport { OsdkContext2 } from \"./OsdkContext2.js\";\nconst EMPTY_WHERE = {};\n\n/**\n * React hook for performing aggregations on OSDK object sets.\n *\n * Executes server-side aggregations with groupBy and metric calculations on filtered object sets.\n * Supports runtime derived properties and where clauses.\n *\n * @param type - The object or interface type to aggregate\n * @param options - Aggregation configuration including where clause, aggregation spec, and optional derived properties\n * @returns Object containing aggregation results, loading state, error state, and refetch function\n *\n * @example\n * ```tsx\n * // Basic aggregation without ObjectSet\n * const { data, isLoading, error } = useOsdkAggregation(Employee, {\n * where: { department: \"Engineering\" },\n * aggregate: {\n * groupBy: { department: \"exact\" },\n * select: {\n * avgSalary: { $avg: \"salary\" },\n * count: { $count: {} }\n * }\n * }\n * });\n *\n * // With a pivoted ObjectSet\n * const pivotedSet = useMemo(() => $(Employee).pivotTo(\"primaryOffice\"), []);\n * const { data } = useOsdkAggregation(Office, {\n * objectSet: pivotedSet,\n * aggregate: { $select: { $count: \"unordered\" } }\n * });\n * ```\n */\n\nexport function useOsdkAggregation(type, options) {\n const {\n where = EMPTY_WHERE,\n withProperties,\n intersectWith,\n aggregate,\n dedupeIntervalMs\n } = options;\n const objectSet = \"objectSet\" in options ? options.objectSet : undefined;\n const {\n observableClient\n } = React.useContext(OsdkContext2);\n const canonWhere = observableClient.canonicalizeWhereClause(where);\n const stableCanonWhere = React.useMemo(() => canonWhere, [JSON.stringify(canonWhere)]);\n const objectSetRef = React.useRef(objectSet);\n objectSetRef.current = objectSet;\n const objectSetKeyString = objectSet ? computeObjectSetCacheKey(objectSet) : undefined;\n const stableWithProperties = React.useMemo(() => withProperties, [JSON.stringify(withProperties)]);\n const stableAggregate = React.useMemo(() => aggregate, [JSON.stringify(aggregate)]);\n const stableIntersectWith = React.useMemo(() => intersectWith, [JSON.stringify(intersectWith)]);\n const {\n subscribe,\n getSnapShot\n } = React.useMemo(() => {\n if (objectSetKeyString && objectSetRef.current) {\n return makeExternalStoreAsync(observer => observableClient.observeAggregation({\n type: type,\n objectSet: objectSetRef.current,\n where: stableCanonWhere,\n withProperties: stableWithProperties,\n intersectWith: stableIntersectWith,\n aggregate: stableAggregate,\n dedupeInterval: dedupeIntervalMs ?? 2_000\n }, observer), process.env.NODE_ENV !== \"production\" ? `aggregation ${type.apiName} ${objectSetKeyString} ${JSON.stringify(stableCanonWhere)}` : void 0);\n }\n return makeExternalStore(observer =>\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n observableClient.observeAggregation({\n type: type,\n where: stableCanonWhere,\n withProperties: stableWithProperties,\n intersectWith: stableIntersectWith,\n aggregate: stableAggregate,\n dedupeInterval: dedupeIntervalMs ?? 2_000\n }, observer), process.env.NODE_ENV !== \"production\" ? `aggregation ${type.apiName} ${JSON.stringify(stableCanonWhere)}` : void 0);\n }, [observableClient, type.apiName, type.type, objectSetKeyString, stableCanonWhere, stableWithProperties, stableIntersectWith, stableAggregate, dedupeIntervalMs]);\n const payload = React.useSyncExternalStore(subscribe, getSnapShot);\n const refetch = React.useCallback(async () => {\n await observableClient.invalidateObjectType(type.apiName);\n }, [observableClient, type.apiName]);\n return React.useMemo(() => {\n let error;\n if (payload && \"error\" in payload && payload.error) {\n error = payload.error;\n } else if (payload?.status === \"error\") {\n error = new Error(\"Failed to execute aggregation\");\n }\n return {\n data: payload?.result,\n isLoading: payload?.status === \"loading\" || payload?.status === \"init\" || !payload,\n error,\n refetch\n };\n }, [payload, refetch]);\n}","/*\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 { getWireObjectSet } from \"@osdk/client/unstable-do-not-use\";\nimport React from \"react\";\nimport { makeExternalStore } from \"./makeExternalStore.js\";\nimport { OsdkContext2 } from \"./OsdkContext2.js\";\n/**\n * React hook for executing and observing OSDK functions.\n *\n * Provides automatic caching, deduplication, and reactive updates for function calls.\n * Functions are automatically re-fetched when dependencies change (configured via options).\n *\n * @param queryDef - The QueryDefinition to execute\n * @param options - Configuration options for the function call\n * @returns Object containing result, loading state, error, and refetch function\n *\n * @example Basic usage\n * ```tsx\n * const { data, isLoading, error } = useOsdkFunction(getEmployeeStats, {\n * params: { departmentId: \"engineering\" }\n * });\n * ```\n *\n * @example With dependency tracking\n * ```tsx\n * const { data, refetch } = useOsdkFunction(calculateMetrics, {\n * params: { startDate, endDate },\n * dependsOn: [Employee, Project],\n * });\n * ```\n *\n * @example With specific object dependencies\n * ```tsx\n * const { data } = useOsdkFunction(getEmployeeReport, {\n * params: { employeeId: employee.$primaryKey },\n * dependsOnObjects: [employee],\n * });\n * ```\n */\nexport function useOsdkFunction(queryDef, options = {}) {\n const {\n observableClient\n } = React.useContext(OsdkContext2);\n const {\n params,\n dependsOn,\n dependsOnObjects,\n dedupeIntervalMs,\n enabled = true\n } = options;\n const stableParams = React.useMemo(() => params, [JSON.stringify(params)]);\n const stableDependsOn = React.useMemo(() => dependsOn, [JSON.stringify(dependsOn?.map(d => typeof d === \"string\" ? d : d.apiName))]);\n const stableDependsOnObjects = React.useMemo(() => dependsOnObjects, [JSON.stringify(dependsOnObjects?.map(item => \"$apiName\" in item ? {\n $apiName: item.$apiName,\n $primaryKey: item.$primaryKey\n } : {\n __objectSet: getWireObjectSet(item)\n }))]);\n\n // Record<string, unknown> required as typing is figured out at runtime\n const paramsForApi = stableParams;\n const {\n subscribe,\n getSnapShot\n } = React.useMemo(() => {\n if (!enabled) {\n return makeExternalStore(() => ({\n unsubscribe: () => {}\n }), process.env.NODE_ENV !== \"production\" ? `function ${queryDef.apiName} ${JSON.stringify(stableParams)} [DISABLED]` : void 0);\n }\n return makeExternalStore(observer => observableClient.observeFunction(queryDef, paramsForApi, {\n dependsOn: stableDependsOn,\n dependsOnObjects: stableDependsOnObjects,\n dedupeInterval: dedupeIntervalMs ?? 2_000\n }, observer), process.env.NODE_ENV !== \"production\" ? `function ${queryDef.apiName} ${JSON.stringify(stableParams)}` : void 0);\n }, [observableClient, queryDef.apiName, queryDef.version, paramsForApi, stableDependsOn, stableDependsOnObjects, dedupeIntervalMs, enabled]);\n const payload = React.useSyncExternalStore(subscribe, getSnapShot);\n const refetch = React.useCallback(() => {\n void observableClient.invalidateFunction(queryDef, paramsForApi);\n }, [observableClient, queryDef, paramsForApi]);\n return React.useMemo(() => {\n const error = payload?.error ?? (payload?.status === \"error\" ? new Error(\"Failed to execute function\") : undefined);\n return {\n data: payload?.result,\n isLoading: payload?.status === \"loading\",\n error,\n lastUpdated: payload?.lastUpdated ?? 0,\n refetch\n };\n }, [payload, refetch]);\n}","/*\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 React from \"react\";\nimport { makeExternalStore } from \"./makeExternalStore.js\";\nimport { OsdkContext2 } from \"./OsdkContext2.js\";\n\n/**\n * @param obj an existing `Osdk.Instance` object to get metadata for.\n * @param enabled Enable or disable the query (defaults to true)\n */\n\n/**\n * Loads an object or interface instance by type and primary key.\n *\n * @param type The object type or interface definition\n * @param primaryKey The primary key of the object\n * @param enabled Enable or disable the query (defaults to true)\n */\n\n/**\n * Loads an object or interface instance by type and primary key with options.\n *\n * @param type The object type or interface definition\n * @param primaryKey The primary key of the object\n * @param options Options including $select and enabled\n */\n\n/*\n Implementation of useOsdkObject\n */\nexport function useOsdkObject(...args) {\n const {\n observableClient\n } = React.useContext(OsdkContext2);\n\n // Check if first arg is an instance to discriminate signatures\n // TypeScript cannot narrow rest parameter unions with optional parameters,\n // so we must use type assertions after runtime discrimination\n const isInstanceSignature = \"$objectType\" in args[0];\n\n // Extract options object if provided (3rd arg is an object with $select or enabled)\n const optionsArg = !isInstanceSignature && args[2] != null && typeof args[2] === \"object\" ? args[2] : undefined;\n\n // Extract enabled flag - 2nd param for instance signature, 3rd for type signature\n const enabled = isInstanceSignature ? typeof args[1] === \"boolean\" ? args[1] : true : optionsArg ? optionsArg.enabled ?? true : typeof args[2] === \"boolean\" ? args[2] : true;\n const selectArg = optionsArg?.$select;\n const mode = isInstanceSignature ? \"offline\" : undefined;\n const typeOrApiName = isInstanceSignature ? args[0].$objectType : args[0];\n const primaryKey = isInstanceSignature ? args[0].$primaryKey : args[1];\n const apiNameString = typeof typeOrApiName === \"string\" ? typeOrApiName : typeOrApiName.apiName;\n const stableSelect = React.useMemo(() => selectArg, [JSON.stringify(selectArg)]);\n const {\n subscribe,\n getSnapShot\n } = React.useMemo(() => {\n if (!enabled) {\n return makeExternalStore(() => ({\n unsubscribe: () => {}\n }), `object ${apiNameString} ${primaryKey} [DISABLED]`);\n }\n return makeExternalStore(observer => observableClient.observeObject(typeOrApiName, primaryKey, {\n mode,\n ...(stableSelect ? {\n select: stableSelect\n } : {})\n }, observer), `object ${apiNameString} ${primaryKey}`);\n }, [enabled, observableClient, typeOrApiName, apiNameString, primaryKey, mode, stableSelect]);\n const payload = React.useSyncExternalStore(subscribe, getSnapShot);\n const forceUpdate = React.useCallback(() => {\n throw new Error(\"not implemented\");\n }, []);\n return React.useMemo(() => {\n let error;\n if (payload && \"error\" in payload && payload.error) {\n error = payload.error;\n } else if (payload?.status === \"error\") {\n error = new Error(\"Failed to load object\");\n }\n return {\n object: payload?.object,\n isLoading: enabled ? payload?.status === \"loading\" || payload?.status === \"init\" || !payload : false,\n isOptimistic: !!payload?.isOptimistic,\n error,\n forceUpdate\n };\n }, [payload, enabled, forceUpdate]);\n}","/*\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 React from \"react\";\nimport { makeExternalStore } from \"./makeExternalStore.js\";\nimport { OsdkContext2 } from \"./OsdkContext2.js\";\nconst EMPTY_WHERE = {};\nexport function useOsdkObjects(type, options) {\n const {\n observableClient\n } = React.useContext(OsdkContext2);\n const {\n pageSize,\n dedupeIntervalMs,\n withProperties,\n enabled = true,\n rids,\n where,\n orderBy,\n streamUpdates,\n autoFetchMore,\n intersectWith,\n pivotTo,\n $select\n } = options ?? {};\n const canonWhere = observableClient.canonicalizeWhereClause(where ?? EMPTY_WHERE);\n const stableCanonWhere = React.useMemo(() => canonWhere, [JSON.stringify(canonWhere)]);\n const stableRids = React.useMemo(() => rids, [JSON.stringify(rids)]);\n const stableWithProperties = React.useMemo(() => withProperties, [JSON.stringify(withProperties)]);\n const stableIntersectWith = React.useMemo(() => intersectWith, [JSON.stringify(intersectWith)]);\n const stableOrderBy = React.useMemo(() => orderBy, [JSON.stringify(orderBy)]);\n const stableSelect = React.useMemo(() => $select, [JSON.stringify($select)]);\n const {\n subscribe,\n getSnapShot\n } = React.useMemo(() => {\n if (!enabled) {\n return makeExternalStore(() => ({\n unsubscribe: () => {}\n }), process.env.NODE_ENV !== \"production\" ? `list ${type.apiName} [DISABLED]` : void 0);\n }\n return makeExternalStore(observer => observableClient.observeList({\n type,\n rids: stableRids,\n where: stableCanonWhere,\n dedupeInterval: dedupeIntervalMs ?? 2_000,\n pageSize,\n orderBy: stableOrderBy,\n streamUpdates,\n withProperties: stableWithProperties,\n autoFetchMore,\n ...(stableIntersectWith ? {\n intersectWith: stableIntersectWith\n } : {}),\n ...(pivotTo ? {\n pivotTo\n } : {}),\n ...(stableSelect ? {\n select: stableSelect\n } : {})\n }, observer), process.env.NODE_ENV !== \"production\" ? `list ${type.apiName} ${stableRids ? `[${stableRids.length} rids]` : \"\"} ${JSON.stringify(stableCanonWhere)}` : void 0);\n }, [enabled, observableClient, type.apiName, type.type, stableRids, stableCanonWhere, dedupeIntervalMs, pageSize, stableOrderBy, streamUpdates, stableWithProperties, autoFetchMore, stableIntersectWith, pivotTo, stableSelect]);\n const listPayload = React.useSyncExternalStore(subscribe, getSnapShot);\n return React.useMemo(() => {\n let error;\n if (listPayload && \"error\" in listPayload && listPayload.error) {\n error = listPayload.error;\n } else if (listPayload?.status === \"error\") {\n error = new Error(\"Failed to load objects\");\n }\n return {\n fetchMore: listPayload?.hasMore ? listPayload.fetchMore : undefined,\n error,\n data: listPayload?.resolvedList,\n isLoading: enabled ? listPayload?.status === \"loading\" || listPayload?.status === \"init\" || !listPayload : false,\n isOptimistic: listPayload?.isOptimistic ?? false,\n totalCount: listPayload?.totalCount\n };\n }, [listPayload, enabled]);\n}","/*\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 React from \"react\";\n/**\n * Creates a debounced version of a callback function.\n *\n * @param callback The function to debounce\n * @param delay The delay in milliseconds\n * @returns A debounced function with cancel() and flush() methods\n *\n * @example\n * ```tsx\n * const { applyAction } = useOsdkAction(editOffice);\n *\n * const debouncedSave = useDebouncedCallback(\n * async (name: string) => {\n * await applyAction({\n * Office: office,\n * name,\n * location: office.location!,\n * $optimisticUpdate: (ctx) => {\n * ctx.updateObject(office.$clone({ name }));\n * },\n * });\n * },\n * 1000\n * );\n *\n * <input onChange={(e) => debouncedSave(e.target.value)} />\n * ```\n */\nexport function useDebouncedCallback(callback, delay) {\n const timeoutRef = React.useRef();\n const callbackRef = React.useRef(callback);\n const lastArgsRef = React.useRef();\n callbackRef.current = callback;\n const cancel = React.useCallback(() => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = undefined;\n }\n }, []);\n const flush = React.useCallback(() => {\n if (timeoutRef.current && lastArgsRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = undefined;\n void callbackRef.current(...lastArgsRef.current);\n }\n }, []);\n const debouncedCallback = React.useCallback((...args) => {\n lastArgsRef.current = args;\n cancel();\n timeoutRef.current = setTimeout(() => {\n void callbackRef.current(...args);\n }, delay);\n }, [delay, cancel]);\n React.useEffect(() => {\n return () => {\n cancel();\n };\n }, [cancel]);\n return Object.assign(debouncedCallback, {\n cancel,\n flush\n });\n}"]}
@@ -1,9 +1,7 @@
1
- import { Client, Osdk, WhereClause, PropertyKeys, ActionDefinition, ActionEditResponse, ActionValidationError, ActionValidationResponse, ObjectTypeDefinition as ObjectTypeDefinition$1 } from '@osdk/client';
1
+ import { Client, Osdk, WhereClause, PropertyKeys, ActionDefinition, ActionEditResponse, ActionValidationError, ActionValidationResponse, ObjectTypeDefinition } from '@osdk/client';
2
2
  import { ObservableClient, ActionSignatureFromDef, QueryParameterType } from '@osdk/client/unstable-do-not-use';
3
3
  import React from 'react';
4
- import { User, ListUsersResponse } from '@osdk/foundry.admin';
5
- import { UserStatus } from '@osdk/foundry.core';
6
- import { ObjectOrInterfaceDefinition, LinkNames, LinkedType, ObjectTypeDefinition, SimplePropertyDef, ObjectSet, WhereClause as WhereClause$1, DerivedProperty, PropertyKeys as PropertyKeys$1, Osdk as Osdk$1, AggregateOpts, AggregationsResults, QueryDefinition, CompileTimeMetadata, PrimaryKeyType } from '@osdk/api';
4
+ import { ObjectOrInterfaceDefinition, LinkNames, LinkedType, SimplePropertyDef, ObjectSet, WhereClause as WhereClause$1, DerivedProperty, PropertyKeys as PropertyKeys$1, Osdk as Osdk$1, AggregateOpts, AggregationsResults, QueryDefinition, CompileTimeMetadata, ObjectTypeDefinition as ObjectTypeDefinition$1, PrimaryKeyType } from '@osdk/api';
7
5
  export { U as UseOsdkMetadataResult, u as useOsdkClient, a as useOsdkMetadata } from '../useOsdkMetadata-DFZhnhGZ.cjs';
8
6
 
9
7
  interface OsdkProviderOptions {
@@ -13,120 +11,6 @@ interface OsdkProviderOptions {
13
11
  }
14
12
  declare function OsdkProvider2({ children, client, observableClient, }: OsdkProviderOptions): React.JSX.Element;
15
13
 
16
- interface UseCurrentFoundryUserOptions {
17
- /**
18
- * Enable or disable the query.
19
- *
20
- * When `false`, the query will not automatically execute.
21
- *
22
- * This is useful for:
23
- * - Lazy/on-demand queries that should wait for user interaction
24
- * - Dependent queries that need data from another query first
25
- * - Conditional queries based on component state
26
- *
27
- * @default true
28
- * });
29
- */
30
- enabled?: boolean;
31
- }
32
- interface UseCurrentFoundryUserResult {
33
- currentUser: User | undefined;
34
- isLoading: boolean;
35
- error: Error | undefined;
36
- refetch: () => void;
37
- }
38
- /**
39
- * Get the currently signed in User.
40
- * @param options Options to control the query.
41
- */
42
- declare function useCurrentFoundryUser({ enabled }?: UseCurrentFoundryUserOptions): UseCurrentFoundryUserResult;
43
-
44
- interface UseFoundryUserOptions {
45
- /**
46
- * Enable or disable the query.
47
- *
48
- * When `false`, the query will not automatically execute.
49
- *
50
- * This is useful for:
51
- * - Lazy/on-demand queries that should wait for user interaction
52
- * - Dependent queries that need data from another query first
53
- * - Conditional queries based on component state
54
- *
55
- * @default true
56
- * });
57
- */
58
- enabled?: boolean;
59
- /**
60
- * The default status of the users returned in the list.
61
- *
62
- * @default "ACTIVE"
63
- */
64
- status?: UserStatus;
65
- }
66
- interface UseFoundryUserResult {
67
- user: User | undefined;
68
- isLoading: boolean;
69
- error: Error | undefined;
70
- refetch: () => void;
71
- }
72
- /**
73
- * Get the User with the specified id.
74
- * @param userId A Foundry User ID.
75
- * @param options Options to control the query.
76
- */
77
- declare function useFoundryUser(userId: string, { enabled, status }?: UseFoundryUserOptions): UseFoundryUserResult;
78
-
79
- interface UseFoundryUsersListOptions {
80
- /**
81
- * Enable or disable the query.
82
- *
83
- * When `false`, the query will not automatically execute.
84
- *
85
- * This is useful for:
86
- * - Lazy/on-demand queries that should wait for user interaction
87
- * - Dependent queries that need data from another query first
88
- * - Conditional queries based on component state
89
- *
90
- * @default true
91
- * });
92
- */
93
- enabled?: boolean;
94
- /**
95
- * The default status of the users returned in the list.
96
- *
97
- * @default "ACTIVE"
98
- */
99
- include?: UserStatus;
100
- /**
101
- * The preferred page size for the list.
102
- *
103
- * @default 1000
104
- */
105
- pageSize?: number;
106
- /**
107
- * The page token indicates where to start paging. This should be omitted from the first page's request.
108
- * To fetch the next page, clients should take the value from the nextPageToken field of the previous
109
- * response and use it to populate the pageToken field of the next request.
110
- */
111
- pageToken?: string;
112
- }
113
- interface UseFoundryUsersListResult {
114
- users: ListUsersResponse["data"] | undefined;
115
- /**
116
- * The page token to be used for the next page of users. If this is undefined, there are no more
117
- * pages of users to load.
118
- */
119
- nextPageToken: string | undefined;
120
- isLoading: boolean;
121
- error: Error | undefined;
122
- refetch: () => void;
123
- }
124
- /**
125
- * Lists all Users. This is a paged endpoint. Each page may be smaller or larger than the requested page size.
126
- * @param options Options to control the query.
127
- */
128
- declare function useFoundryUsersList({ enabled, include, pageSize, pageToken }?: UseFoundryUsersListOptions): UseFoundryUsersListResult;
129
-
130
14
  interface UseLinksOptions<T extends ObjectOrInterfaceDefinition> {
131
15
  /**
132
16
  * Standard OSDK Where clause for filtering linked objects
@@ -140,6 +24,12 @@ interface UseLinksOptions<T extends ObjectOrInterfaceDefinition> {
140
24
  orderBy?: {
141
25
  [K in PropertyKeys<T>]?: "asc" | "desc";
142
26
  };
27
+ /**
28
+ * Restrict which properties are returned for each linked object.
29
+ * When provided, only the specified properties will be fetched,
30
+ * reducing payload sizes for list views.
31
+ */
32
+ $select?: readonly PropertyKeys<T>[];
143
33
  /**
144
34
  * The mode to use for fetching data.
145
35
  * - undefined: Fetch data if not already in cache
@@ -202,7 +92,7 @@ interface UseLinksResult<Q extends ObjectOrInterfaceDefinition> {
202
92
  */
203
93
  declare function useLinks<T extends ObjectOrInterfaceDefinition, L extends LinkNames<T>>(objects: Osdk.Instance<T> | Array<Osdk.Instance<T>> | undefined, linkName: L, options?: UseLinksOptions<LinkedType<T, L>>): UseLinksResult<LinkedType<T, L>>;
204
94
 
205
- interface UseObjectSetOptions<Q extends ObjectTypeDefinition, RDPs extends Record<string, SimplePropertyDef> = {}> {
95
+ interface UseObjectSetOptions<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef> = {}> {
206
96
  /**
207
97
  * Where clause for filtering
208
98
  */
@@ -259,6 +149,12 @@ interface UseObjectSetOptions<Q extends ObjectTypeDefinition, RDPs extends Recor
259
149
  * @default false
260
150
  */
261
151
  streamUpdates?: boolean;
152
+ /**
153
+ * Restrict which properties are returned for each object.
154
+ * When provided, only the specified properties will be fetched,
155
+ * reducing payload sizes for list views.
156
+ */
157
+ $select?: readonly PropertyKeys$1<Q>[];
262
158
  /**
263
159
  * Enable or disable the query.
264
160
  *
@@ -280,7 +176,7 @@ interface UseObjectSetOptions<Q extends ObjectTypeDefinition, RDPs extends Recor
280
176
  */
281
177
  enabled?: boolean;
282
178
  }
283
- interface UseObjectSetResult<Q extends ObjectTypeDefinition, RDPs extends Record<string, SimplePropertyDef> = {}> {
179
+ interface UseObjectSetResult<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef> = {}> {
284
180
  /**
285
181
  * The fetched data with derived properties
286
182
  */
@@ -317,7 +213,7 @@ interface UseObjectSetResult<Q extends ObjectTypeDefinition, RDPs extends Record
317
213
  * @param options - Options for filtering, sorting, and adding new derived properties
318
214
  * @returns Object set data with both existing and new derived properties
319
215
  */
320
- declare function useObjectSet<Q extends ObjectTypeDefinition, BaseRDPs extends Record<string, SimplePropertyDef> = never, RDPs extends Record<string, SimplePropertyDef> = {}>(baseObjectSet: ObjectSet<Q, BaseRDPs>, options?: UseObjectSetOptions<Q, RDPs>): UseObjectSetResult<Q, RDPs>;
216
+ declare function useObjectSet<Q extends ObjectOrInterfaceDefinition, BaseRDPs extends Record<string, SimplePropertyDef> = never, RDPs extends Record<string, SimplePropertyDef> = {}>(baseObjectSet: ObjectSet<Q, BaseRDPs>, options?: UseObjectSetOptions<Q, RDPs>): UseObjectSetResult<Q, RDPs>;
321
217
 
322
218
  type ApplyActionParams<Q extends ActionDefinition<any>> = Parameters<ActionSignatureFromDef<Q>["applyAction"]>[0] & {
323
219
  [K in keyof ObservableClient.ApplyActionOptions as `$${K}`]: ObservableClient.ApplyActionOptions[K];
@@ -377,7 +273,7 @@ interface UseOsdkAggregationBaseOptions<T extends ObjectOrInterfaceDefinition, A
377
273
  }
378
274
  interface UseOsdkAggregationOptions<T extends ObjectOrInterfaceDefinition, A extends AggregateOpts<T>, RDPs extends Record<string, SimplePropertyDef> = {}> extends UseOsdkAggregationBaseOptions<T, A, RDPs> {
379
275
  }
380
- interface UseOsdkAggregationOptionsWithObjectSet<T extends ObjectTypeDefinition$1, A extends AggregateOpts<T>, RDPs extends Record<string, SimplePropertyDef> = {}> extends UseOsdkAggregationBaseOptions<T, A, RDPs> {
276
+ interface UseOsdkAggregationOptionsWithObjectSet<T extends ObjectTypeDefinition, A extends AggregateOpts<T>, RDPs extends Record<string, SimplePropertyDef> = {}> extends UseOsdkAggregationBaseOptions<T, A, RDPs> {
381
277
  /**
382
278
  * The ObjectSet to aggregate on. Enables aggregation on pivoted, filtered, or composed ObjectSets.
383
279
  */
@@ -422,7 +318,7 @@ interface UseOsdkAggregationResult<T extends ObjectOrInterfaceDefinition, A exte
422
318
  * ```
423
319
  */
424
320
  declare function useOsdkAggregation<Q extends ObjectOrInterfaceDefinition, const A extends AggregateOpts<Q>, RDPs extends Record<string, SimplePropertyDef> = {}>(type: Q, options: UseOsdkAggregationOptions<Q, A, RDPs>): UseOsdkAggregationResult<Q, A>;
425
- declare function useOsdkAggregation<Q extends ObjectTypeDefinition$1, const A extends AggregateOpts<Q>, RDPs extends Record<string, SimplePropertyDef> = {}>(type: Q, options: UseOsdkAggregationOptionsWithObjectSet<Q, A, RDPs>): UseOsdkAggregationResult<Q, A>;
321
+ declare function useOsdkAggregation<Q extends ObjectTypeDefinition, const A extends AggregateOpts<Q>, RDPs extends Record<string, SimplePropertyDef> = {}>(type: Q, options: UseOsdkAggregationOptionsWithObjectSet<Q, A, RDPs>): UseOsdkAggregationResult<Q, A>;
426
322
 
427
323
  interface UseOsdkFunctionOptions<Q extends QueryDefinition<unknown>> {
428
324
  /**
@@ -440,7 +336,7 @@ interface UseOsdkFunctionOptions<Q extends QueryDefinition<unknown>> {
440
336
  * { dependsOn: [Employee] }
441
337
  * ```
442
338
  */
443
- dependsOn?: Array<ObjectTypeDefinition | string>;
339
+ dependsOn?: Array<ObjectTypeDefinition$1 | string>;
444
340
  /**
445
341
  * Specific object instances or ObjectSets this function depends on.
446
342
  * When any of these specific objects change, the function will refetch.
@@ -458,7 +354,7 @@ interface UseOsdkFunctionOptions<Q extends QueryDefinition<unknown>> {
458
354
  * { dependsOnObjects: [employeeObjectSet] }
459
355
  * ```
460
356
  */
461
- dependsOnObjects?: Array<Osdk$1.Instance<ObjectTypeDefinition> | ObjectSet<ObjectTypeDefinition>>;
357
+ dependsOnObjects?: Array<Osdk$1.Instance<ObjectTypeDefinition$1> | ObjectSet<ObjectTypeDefinition$1>>;
462
358
  /**
463
359
  * The number of milliseconds to dedupe identical function calls.
464
360
  * Two calls with the same function and params will share results
@@ -564,6 +460,17 @@ declare function useOsdkObject<Q extends ObjectOrInterfaceDefinition>(obj: Osdk$
564
460
  * @param enabled Enable or disable the query (defaults to true)
565
461
  */
566
462
  declare function useOsdkObject<Q extends ObjectOrInterfaceDefinition>(type: Q, primaryKey: PrimaryKeyType<Q>, enabled?: boolean): UseOsdkObjectResult<Q>;
463
+ /**
464
+ * Loads an object or interface instance by type and primary key with options.
465
+ *
466
+ * @param type The object type or interface definition
467
+ * @param primaryKey The primary key of the object
468
+ * @param options Options including $select and enabled
469
+ */
470
+ declare function useOsdkObject<Q extends ObjectOrInterfaceDefinition>(type: Q, primaryKey: PrimaryKeyType<Q>, options?: {
471
+ $select?: readonly PropertyKeys$1<Q>[];
472
+ enabled?: boolean;
473
+ }): UseOsdkObjectResult<Q>;
567
474
 
568
475
  interface UseOsdkObjectsOptions<T extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef> = {}> {
569
476
  /**
@@ -646,6 +553,16 @@ interface UseOsdkObjectsOptions<T extends ObjectOrInterfaceDefinition, RDPs exte
646
553
  */
647
554
  autoFetchMore?: boolean | number;
648
555
  streamUpdates?: boolean;
556
+ /**
557
+ * Restrict which properties are returned for each object.
558
+ * When provided, only the specified properties will be fetched,
559
+ * reducing payload sizes for list views.
560
+ *
561
+ * @example
562
+ * // Only fetch name and status properties
563
+ * useOsdkObjects(Employee, { $select: ["name", "status"] })
564
+ */
565
+ $select?: readonly PropertyKeys$1<T>[];
649
566
  }
650
567
  interface UseOsdkListResult<T extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef> = {}, EXTRA_OPTIONS extends never | "$rid" = never> {
651
568
  /**
@@ -724,4 +641,4 @@ interface DebouncedCallback<TArgs extends readonly unknown[]> {
724
641
  */
725
642
  declare function useDebouncedCallback<TArgs extends readonly unknown[]>(callback: (...args: TArgs) => void | Promise<void>, delay: number): DebouncedCallback<TArgs>;
726
643
 
727
- export { OsdkProvider2, type UseOsdkAggregationResult, type UseOsdkFunctionOptions, type UseOsdkFunctionResult, type UseOsdkListResult, type UseOsdkObjectsOptions, useCurrentFoundryUser, useDebouncedCallback, useFoundryUser, useFoundryUsersList, useLinks, useObjectSet, useOsdkAction, useOsdkAggregation, useOsdkFunction, useOsdkObject, useOsdkObjects };
644
+ export { OsdkProvider2, type UseOsdkAggregationResult, type UseOsdkFunctionOptions, type UseOsdkFunctionResult, type UseOsdkListResult, type UseOsdkObjectsOptions, useDebouncedCallback, useLinks, useObjectSet, useOsdkAction, useOsdkAggregation, useOsdkFunction, useOsdkObject, useOsdkObjects };
@@ -37,6 +37,7 @@ export function useLinks(objects, linkName, options = {}) {
37
37
  } = options;
38
38
  const stableWhere = React.useMemo(() => otherOptions.where, [JSON.stringify(otherOptions.where)]);
39
39
  const stableOrderBy = React.useMemo(() => otherOptions.orderBy, [JSON.stringify(otherOptions.orderBy)]);
40
+ const stableSelect = React.useMemo(() => otherOptions.$select, [JSON.stringify(otherOptions.$select)]);
40
41
  const objectsKey = React.useMemo(() => {
41
42
  if (objects === undefined) return "";
42
43
  const arr = Array.isArray(objects) ? objects : [objects];
@@ -62,9 +63,12 @@ export function useLinks(objects, linkName, options = {}) {
62
63
  pageSize: otherOptions.pageSize,
63
64
  orderBy: stableOrderBy,
64
65
  mode: otherOptions.mode,
65
- dedupeInterval: otherOptions.dedupeIntervalMs ?? 2_000
66
+ dedupeInterval: otherOptions.dedupeIntervalMs ?? 2_000,
67
+ ...(stableSelect ? {
68
+ select: stableSelect
69
+ } : {})
66
70
  }, observer), `links ${linkName} for ${objectsKey}`);
67
- }, [enabled, observableClient, objectsArray, objectsKey, linkName, stableWhere, otherOptions.pageSize, stableOrderBy, otherOptions.mode, otherOptions.dedupeIntervalMs]);
71
+ }, [enabled, observableClient, objectsArray, objectsKey, linkName, stableWhere, otherOptions.pageSize, stableOrderBy, otherOptions.mode, otherOptions.dedupeIntervalMs, stableSelect]);
68
72
  const payload = React.useSyncExternalStore(subscribe, getSnapShot);
69
73
  return React.useMemo(() => ({
70
74
  links: payload?.resolvedList,