@osdk/react 0.8.0 → 0.9.0-beta.10

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 (98) hide show
  1. package/AGENTS.md +253 -0
  2. package/CHANGELOG.md +105 -24
  3. package/build/browser/intellisense.test.helpers/useOsdkObjectsWithProperties.js +1 -1
  4. package/build/browser/intellisense.test.helpers/useOsdkObjectsWithProperties.js.map +1 -1
  5. package/build/browser/intellisense.test.js +1 -1
  6. package/build/browser/intellisense.test.js.map +1 -1
  7. package/build/browser/new/platform-apis/admin/useCurrentFoundryUser.js +44 -0
  8. package/build/browser/new/platform-apis/admin/useCurrentFoundryUser.js.map +1 -0
  9. package/build/browser/new/platform-apis/admin/useFoundryUser.js +50 -0
  10. package/build/browser/new/platform-apis/admin/useFoundryUser.js.map +1 -0
  11. package/build/browser/new/platform-apis/admin/useFoundryUsersList.js +54 -0
  12. package/build/browser/new/platform-apis/admin/useFoundryUsersList.js.map +1 -0
  13. package/build/browser/new/useLinks.js +15 -8
  14. package/build/browser/new/useLinks.js.map +1 -1
  15. package/build/browser/new/useObjectSet.js +3 -2
  16. package/build/browser/new/useObjectSet.js.map +1 -1
  17. package/build/browser/new/useOsdkAction.js.map +1 -1
  18. package/build/browser/new/useOsdkAggregation.js +1 -1
  19. package/build/browser/new/useOsdkAggregation.js.map +1 -1
  20. package/build/browser/new/useOsdkFunction.js +101 -0
  21. package/build/browser/new/useOsdkFunction.js.map +1 -0
  22. package/build/browser/new/useOsdkObject.js +1 -1
  23. package/build/browser/new/useOsdkObject.js.map +1 -1
  24. package/build/browser/new/useOsdkObjects.js +4 -3
  25. package/build/browser/new/useOsdkObjects.js.map +1 -1
  26. package/build/browser/public/experimental.js +4 -0
  27. package/build/browser/public/experimental.js.map +1 -1
  28. package/build/browser/utils/usePlatformQuery.js +74 -0
  29. package/build/browser/utils/usePlatformQuery.js.map +1 -0
  30. package/build/cjs/{chunk-OVBG5VXE.cjs → chunk-V32JHU3O.cjs} +8 -3
  31. package/build/cjs/chunk-V32JHU3O.cjs.map +1 -0
  32. package/build/cjs/index.cjs +4 -4
  33. package/build/cjs/public/experimental.cjs +399 -66
  34. package/build/cjs/public/experimental.cjs.map +1 -1
  35. package/build/cjs/public/experimental.d.cts +279 -32
  36. package/build/esm/intellisense.test.helpers/useOsdkObjectsWithProperties.js +1 -1
  37. package/build/esm/intellisense.test.helpers/useOsdkObjectsWithProperties.js.map +1 -1
  38. package/build/esm/intellisense.test.js +1 -1
  39. package/build/esm/intellisense.test.js.map +1 -1
  40. package/build/esm/new/platform-apis/admin/useCurrentFoundryUser.js +44 -0
  41. package/build/esm/new/platform-apis/admin/useCurrentFoundryUser.js.map +1 -0
  42. package/build/esm/new/platform-apis/admin/useFoundryUser.js +50 -0
  43. package/build/esm/new/platform-apis/admin/useFoundryUser.js.map +1 -0
  44. package/build/esm/new/platform-apis/admin/useFoundryUsersList.js +54 -0
  45. package/build/esm/new/platform-apis/admin/useFoundryUsersList.js.map +1 -0
  46. package/build/esm/new/useLinks.js +15 -8
  47. package/build/esm/new/useLinks.js.map +1 -1
  48. package/build/esm/new/useObjectSet.js +3 -2
  49. package/build/esm/new/useObjectSet.js.map +1 -1
  50. package/build/esm/new/useOsdkAction.js.map +1 -1
  51. package/build/esm/new/useOsdkAggregation.js +1 -1
  52. package/build/esm/new/useOsdkAggregation.js.map +1 -1
  53. package/build/esm/new/useOsdkFunction.js +101 -0
  54. package/build/esm/new/useOsdkFunction.js.map +1 -0
  55. package/build/esm/new/useOsdkObject.js +1 -1
  56. package/build/esm/new/useOsdkObject.js.map +1 -1
  57. package/build/esm/new/useOsdkObjects.js +4 -3
  58. package/build/esm/new/useOsdkObjects.js.map +1 -1
  59. package/build/esm/public/experimental.js +4 -0
  60. package/build/esm/public/experimental.js.map +1 -1
  61. package/build/esm/utils/usePlatformQuery.js +74 -0
  62. package/build/esm/utils/usePlatformQuery.js.map +1 -0
  63. package/build/types/new/platform-apis/admin/useCurrentFoundryUser.d.ts +28 -0
  64. package/build/types/new/platform-apis/admin/useCurrentFoundryUser.d.ts.map +1 -0
  65. package/build/types/new/platform-apis/admin/useFoundryUser.d.ts +36 -0
  66. package/build/types/new/platform-apis/admin/useFoundryUser.d.ts.map +1 -0
  67. package/build/types/new/platform-apis/admin/useFoundryUsersList.d.ts +52 -0
  68. package/build/types/new/platform-apis/admin/useFoundryUsersList.d.ts.map +1 -0
  69. package/build/types/new/useLinks.d.ts +5 -5
  70. package/build/types/new/useLinks.d.ts.map +1 -1
  71. package/build/types/new/useObjectSet.d.ts +4 -0
  72. package/build/types/new/useObjectSet.d.ts.map +1 -1
  73. package/build/types/new/useOsdkAction.d.ts +3 -3
  74. package/build/types/new/useOsdkAction.d.ts.map +1 -1
  75. package/build/types/new/useOsdkAggregation.d.ts +10 -12
  76. package/build/types/new/useOsdkAggregation.d.ts.map +1 -1
  77. package/build/types/new/useOsdkFunction.d.ts +112 -0
  78. package/build/types/new/useOsdkFunction.d.ts.map +1 -0
  79. package/build/types/new/useOsdkObjects.d.ts +31 -13
  80. package/build/types/new/useOsdkObjects.d.ts.map +1 -1
  81. package/build/types/public/experimental.d.ts +5 -0
  82. package/build/types/public/experimental.d.ts.map +1 -1
  83. package/build/types/utils/usePlatformQuery.d.ts +25 -0
  84. package/build/types/utils/usePlatformQuery.d.ts.map +1 -0
  85. package/docs/actions.md +414 -0
  86. package/docs/advanced-queries.md +663 -0
  87. package/docs/cache-management.md +213 -0
  88. package/docs/getting-started.md +382 -0
  89. package/docs/platform-apis.md +203 -0
  90. package/docs/querying-data.md +648 -0
  91. package/package.json +10 -6
  92. package/build/browser/new/types.js +0 -2
  93. package/build/browser/new/types.js.map +0 -1
  94. package/build/cjs/chunk-OVBG5VXE.cjs.map +0 -1
  95. package/build/esm/new/types.js +0 -2
  96. package/build/esm/new/types.js.map +0 -1
  97. package/build/types/new/types.d.ts +0 -5
  98. package/build/types/new/types.d.ts.map +0 -1
package/AGENTS.md ADDED
@@ -0,0 +1,253 @@
1
+ # @osdk/react - AI Agent Instructions
2
+
3
+ ## Critical Rules
4
+
5
+ 1. **Use `OsdkProvider2`** - Not `OsdkProvider`. All modern hooks require `OsdkProvider2`.
6
+ 2. **Import from `@osdk/react/experimental`** - Not `@osdk/react`. The main entry point only has legacy hooks.
7
+ 3. **Never conditionally call hooks** - Use the `enabled` option instead.
8
+ 4. **Keep rendering during loading** - No early returns like `if (isLoading) return <Spinner />`. Show loading indicators while rendering existing data.
9
+
10
+ ## Exports
11
+
12
+ **Stable** (`@osdk/react`):
13
+
14
+ - `OsdkProvider` - Legacy provider
15
+ - `useOsdkClient` - Access client
16
+ - `useOsdkMetadata` - Fetch metadata
17
+
18
+ **Experimental** (`@osdk/react/experimental`):
19
+
20
+ - `OsdkProvider2` - Modern provider (use this)
21
+ - `useOsdkObjects` - Query lists of objects
22
+ - `useOsdkObject` - Query single object by type+key or instance
23
+ - `useOsdkAction` - Execute and validate actions
24
+ - `useLinks` - Navigate object relationships
25
+ - `useObjectSet` - Advanced set operations (union, intersect, subtract, pivot)
26
+ - `useOsdkAggregation` - Server-side aggregations with groupBy/select
27
+ - `useCurrentFoundryUser`, `useFoundryUser`, `useFoundryUsersList` - Platform APIs
28
+ - `useOsdkClient`, `useOsdkMetadata` - Also available from experimental
29
+
30
+ ## Correct Patterns
31
+
32
+ ### Loading States
33
+
34
+ ```tsx
35
+ import { Todo } from "@my/osdk";
36
+ import { useOsdkObjects } from "@osdk/react/experimental";
37
+
38
+ function TodoList() {
39
+ const { data, isLoading, error } = useOsdkObjects(Todo);
40
+
41
+ return (
42
+ <div>
43
+ {isLoading && <LoadingIndicator />}
44
+ {error && <ErrorMessage error={error} />}
45
+ {data?.map(todo => <TodoItem key={todo.$primaryKey} todo={todo} />)}
46
+ </div>
47
+ );
48
+ }
49
+ ```
50
+
51
+ ### Single Object (useOsdkObject)
52
+
53
+ ```tsx
54
+ import { Employee } from "@my/osdk";
55
+ import { useOsdkObject } from "@osdk/react/experimental";
56
+
57
+ // By type + primary key (enabled is 3rd positional param)
58
+ const { object, isLoading, error, isOptimistic } = useOsdkObject(
59
+ Employee,
60
+ "employee-123",
61
+ true, // enabled (optional, defaults to true)
62
+ );
63
+
64
+ // By existing instance (enabled is 2nd positional param)
65
+ const { object: refreshed } = useOsdkObject(existingEmployee, true);
66
+ ```
67
+
68
+ ### Conditional Fetching
69
+
70
+ ```tsx
71
+ // useOsdkObjects uses options object
72
+ const { data: reports } = useOsdkObjects(Employee, {
73
+ where: { managerId: selectedManagerId },
74
+ enabled: !!selectedManagerId,
75
+ });
76
+
77
+ // useOsdkObject uses positional enabled parameter
78
+ const { object: manager } = useOsdkObject(Employee, managerId, !!managerId);
79
+ ```
80
+
81
+ ### Actions (useOsdkAction)
82
+
83
+ ```tsx
84
+ import { $Actions } from "@my/osdk";
85
+ import { useOsdkAction } from "@osdk/react/experimental";
86
+
87
+ function CompleteTodoButton({ todo }) {
88
+ const {
89
+ applyAction,
90
+ validateAction,
91
+ isPending,
92
+ isValidating,
93
+ error,
94
+ data,
95
+ validationResult,
96
+ } = useOsdkAction($Actions.completeTodo);
97
+
98
+ // Validate before applying
99
+ const handleValidate = async () => {
100
+ const result = await validateAction({ todo, isComplete: true });
101
+ };
102
+
103
+ // Apply the action
104
+ const handleComplete = async () => {
105
+ await applyAction({ todo, isComplete: true });
106
+ };
107
+
108
+ // With optimistic update (use $ prefix for client options)
109
+ const handleOptimistic = async () => {
110
+ await applyAction({
111
+ todo,
112
+ isComplete: true,
113
+ $optimisticUpdate: (ctx) => {
114
+ ctx.updateObject(todo, { isComplete: true });
115
+ },
116
+ });
117
+ };
118
+
119
+ return (
120
+ <button onClick={handleComplete} disabled={isPending}>
121
+ Complete
122
+ </button>
123
+ );
124
+ }
125
+ ```
126
+
127
+ ### Links (useLinks)
128
+
129
+ ```tsx
130
+ import { useLinks } from "@osdk/react/experimental";
131
+
132
+ // Single object
133
+ const { links, isLoading, hasMore, fetchMore, error } = useLinks(
134
+ employee,
135
+ "directReports",
136
+ { pageSize: 20 },
137
+ );
138
+
139
+ // Multiple objects (returns all linked objects)
140
+ const { links: allReports } = useLinks(
141
+ [employee1, employee2],
142
+ "directReports",
143
+ );
144
+ ```
145
+
146
+ ### Object Set Operations (useObjectSet)
147
+
148
+ ```tsx
149
+ import { Employee } from "@my/osdk";
150
+ import { useObjectSet } from "@osdk/react/experimental";
151
+
152
+ const { data, isLoading, fetchMore, objectSet } = useObjectSet(
153
+ Employee.all(),
154
+ {
155
+ where: { department: "Engineering" },
156
+ orderBy: { hireDate: "desc" },
157
+ pageSize: 50,
158
+ union: [otherObjectSet],
159
+ intersect: [anotherObjectSet],
160
+ autoFetchMore: 100, // fetch until 100 items
161
+ streamUpdates: true,
162
+ enabled: true,
163
+ },
164
+ );
165
+ ```
166
+
167
+ ### Aggregations (useOsdkAggregation)
168
+
169
+ ```tsx
170
+ import { Employee } from "@my/osdk";
171
+ import { useOsdkAggregation } from "@osdk/react/experimental";
172
+
173
+ const { data, isLoading, error, refetch } = useOsdkAggregation(Employee, {
174
+ where: { department: "Engineering" },
175
+ aggregate: {
176
+ groupBy: { department: "exact" },
177
+ select: {
178
+ avgSalary: { $avg: "salary" },
179
+ count: { $count: {} },
180
+ },
181
+ },
182
+ });
183
+ ```
184
+
185
+ ## Anti-Patterns
186
+
187
+ ### Wrong: Conditional Hook Call
188
+
189
+ ```tsx
190
+ if (shouldLoad) {
191
+ const { data } = useOsdkObjects(Todo); // NEVER do this
192
+ }
193
+ ```
194
+
195
+ ### Wrong: Early Return During Loading
196
+
197
+ ```tsx
198
+ if (isLoading) return <Spinner />; // Causes UI flashing
199
+ if (!data) return null; // Loses state
200
+ ```
201
+
202
+ ### Wrong: Importing from Main Entry
203
+
204
+ ```tsx
205
+ import { useOsdkObjects } from "@osdk/react"; // WRONG - doesn't exist here
206
+ ```
207
+
208
+ ### Wrong: Using OsdkProvider Instead of OsdkProvider2
209
+
210
+ ```tsx
211
+ <OsdkProvider client={client}> // WRONG - new hooks won't work
212
+ ```
213
+
214
+ ### Wrong: Using options object for useOsdkObject enabled
215
+
216
+ ```tsx
217
+ // WRONG - enabled is positional, not in options
218
+ const { object } = useOsdkObject(Employee, id, { enabled: false });
219
+
220
+ // CORRECT
221
+ const { object } = useOsdkObject(Employee, id, false);
222
+ ```
223
+
224
+ ## Hook Options Reference
225
+
226
+ **useOsdkObjects / useObjectSet:**
227
+
228
+ - `where` - Filter conditions
229
+ - `orderBy` - Sort order (`{ field: "asc" | "desc" }`)
230
+ - `pageSize` - Results per page
231
+ - `withProperties` - Derived properties
232
+ - `enabled` - Enable/disable query
233
+ - `autoFetchMore` - Auto-pagination (`true` | `number`)
234
+ - `dedupeIntervalMs` - Request deduplication
235
+ - `streamUpdates` - WebSocket updates
236
+
237
+ **useObjectSet additional:**
238
+
239
+ - `union`, `intersect`, `subtract` - Set operations
240
+ - `pivotTo` - Pivot to linked type
241
+
242
+ **useOsdkObject:**
243
+
244
+ - `enabled` is a **positional parameter**, not in options
245
+
246
+ **useLinks:**
247
+
248
+ - `where`, `pageSize`, `enabled`
249
+ - `mode` - `"force"` | `"offline"`
250
+
251
+ **useOsdkAction:**
252
+
253
+ - `$optimisticUpdate` - Passed to action with `$` prefix
package/CHANGELOG.md CHANGED
@@ -1,41 +1,122 @@
1
1
  # @osdkkit/react
2
2
 
3
- ## 0.8.0
3
+ ## 0.9.0-beta.10
4
+
5
+ ### Minor Changes
6
+
7
+ - db28747: rdp typing improvements
8
+
9
+ ## 0.9.0-beta.9
10
+
11
+ ### Minor Changes
12
+
13
+ - 43d342e: Fix fetchMore in useObjectSet and useLinks
14
+ - ecd18e2: fix pivotTo with where usage
4
15
 
5
16
  ### Patch Changes
6
17
 
7
- - 322c5bc: Simulated release
8
- - 13f229d: preserve object set data on rid change
9
- - c5a3815: Add new auto fetch more behavior to useOsdkObjects
10
- - 4b13323: update OSDK toolkit docs
11
- - 9961f06: fix order by via key stabilization
12
- - e7bf02a: Add RDP support to React toolkit
13
- - af4f3bf: Remove the following features for RC:
14
- - Property formatting
15
- - Branching
16
- - Constant RDPs
18
+ - Updated dependencies [24730c7]
19
+ - Updated dependencies [ecd18e2]
20
+ - @osdk/client@2.7.0-beta.14
21
+ - @osdk/api@2.7.0-beta.14
22
+
23
+ ## 0.9.0-beta.8
24
+
25
+ ### Minor Changes
26
+
27
+ - 74e3ba7: Preserve aggregate option literal types in useOsdkAggregation using const type parameter
28
+
29
+ ### Patch Changes
30
+
31
+ - Updated dependencies [3fc5fe6]
32
+ - Updated dependencies [bb9d25c]
33
+ - @osdk/client@2.7.0-beta.12
34
+ - @osdk/api@2.7.0-beta.12
35
+
36
+ ## 0.9.0-beta.7
37
+
38
+ ### Minor Changes
39
+
40
+ - acf6331: Include AGENTS.md and docs directory in published package for improved AI assistant support
41
+ - 6cfe14a: add new useOsdkFunction hook and supporting client infrastructure
42
+ - 38d5958: fix order by via key stabilization
43
+ - 56ba08f: support interfaces for osdk react hooks
44
+
45
+ ### Patch Changes
46
+
47
+ - Updated dependencies [6cfe14a]
48
+ - Updated dependencies [ec6ad57]
49
+ - Updated dependencies [38d5958]
50
+ - Updated dependencies [d5cfc38]
51
+ - @osdk/client@2.7.0-beta.11
52
+ - @osdk/api@2.7.0-beta.11
17
53
 
18
- ## 0.8.0-rc.7
54
+ ## 0.9.0-beta.6
55
+
56
+ ### Minor Changes
57
+
58
+ - ba3159c: improve loading logic to make loading state consistent / reduce flashing
59
+ - 0395d4b: Pins Foundry core and admin packages to monorepo version
60
+
61
+ ### Patch Changes
62
+
63
+ - Updated dependencies [6b27d8a]
64
+ - @osdk/client@2.7.0-beta.9
65
+ - @osdk/api@2.7.0-beta.9
66
+
67
+ ## 0.9.0-beta.5
68
+
69
+ ### Minor Changes
70
+
71
+ - adca853: fix fetchMore behavior
72
+
73
+ ### Patch Changes
74
+
75
+ - Updated dependencies [adca853]
76
+ - Updated dependencies [0b0be9f]
77
+ - @osdk/client@2.7.0-beta.7
78
+ - @osdk/api@2.7.0-beta.7
79
+
80
+ ## 0.9.0-beta.4
81
+
82
+ ### Minor Changes
83
+
84
+ - 0b2cd91: fix SimplePropertyDef issue, wire RDPs through, update names
19
85
 
20
86
  ### Patch Changes
21
87
 
22
- - 13f229d: preserve object set data on rid change
23
- - @osdk/api@2.6.0-rc.18
24
- - @osdk/client@2.6.0-rc.18
88
+ - Updated dependencies [c9ca08d]
89
+ - Updated dependencies [c332598]
90
+ - Updated dependencies [0b2cd91]
91
+ - @osdk/api@2.7.0-beta.6
92
+ - @osdk/client@2.7.0-beta.6
93
+
94
+ ## 0.9.0-beta.3
95
+
96
+ ### Minor Changes
25
97
 
26
- ## 0.8.0-rc.6
98
+ - a23784c: wire action edit response types through for useOsdkAction
27
99
 
28
100
  ### Patch Changes
29
101
 
30
- - af4f3bf: Remove the following features for RC:
31
- - Property formatting
32
- - Branching
33
- - Constant RDPs
102
+ - Updated dependencies [448763f]
103
+ - Updated dependencies [a23784c]
104
+ - Updated dependencies [f0a57a5]
105
+ - @osdk/api@2.7.0-beta.3
106
+ - @osdk/client@2.7.0-beta.3
107
+
108
+ ## 0.9.0-beta.2
109
+
110
+ ### Minor Changes
111
+
112
+ - ddef59f: update docs
113
+
114
+ ### Patch Changes
34
115
 
35
- - Updated dependencies [b313525]
36
- - Updated dependencies [af4f3bf]
37
- - @osdk/client@2.6.0-rc.14
38
- - @osdk/api@2.6.0-rc.14
116
+ - Updated dependencies [03db734]
117
+ - Updated dependencies [c8da6b7]
118
+ - @osdk/client@2.7.0-beta.2
119
+ - @osdk/api@2.7.0-beta.2
39
120
 
40
121
  ## 0.8.0-beta.5
41
122
 
@@ -26,7 +26,7 @@ function TestComponent() {
26
26
  data
27
27
  } = useOsdkObjects(Employee, {
28
28
  withProperties: {
29
- constantValue: employee => employee.selectProperty("class")
29
+ constantValue: employee => employee.constant.integer(42)
30
30
  }
31
31
  });
32
32
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"useOsdkObjectsWithProperties.js","names":["Employee","useOsdkObjects","TestComponent","data","withProperties","constantValue","employee","selectProperty"],"sources":["useOsdkObjectsWithProperties.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// WARNING!\n// WARNING!\n// This file is used for tests that check intellisense. Editing this file by hand will likely\n// break tests that have hard coded line numbers and line offsets.\n\nimport type { DerivedProperty } from \"@osdk/api\";\nimport { Employee } from \"@osdk/client.test.ontology\";\nimport { useOsdkObjects } from \"@osdk/react/experimental\";\n\nfunction TestComponent() {\n const withProps: DerivedProperty.Clause<typeof Employee> = {\n constantValue: (employee) => employee.selectProperty(\"class\"),\n };\n\n const { data } = useOsdkObjects(Employee, {\n withProperties: withProps,\n });\n\n return null;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAGA,SAASA,QAAQ,QAAQ,4BAA4B;AACrD,SAASC,cAAc,QAAQ,0BAA0B;AAEzD,SAASC,aAAaA,CAAA,EAAG;EAKvB,MAAM;IAAEC;EAAK,CAAC,GAAGF,cAAc,CAACD,QAAQ,EAAE;IACxCI,cAAc,EAL2C;MACzDC,aAAa,EAAGC,QAAQ,IAAKA,QAAQ,CAACC,cAAc,CAAC,OAAO;IAC9D;EAIA,CAAC,CAAC;EAEF,OAAO,IAAI;AACb","ignoreList":[]}
1
+ {"version":3,"file":"useOsdkObjectsWithProperties.js","names":["Employee","useOsdkObjects","TestComponent","data","withProperties","constantValue","employee","constant","integer"],"sources":["useOsdkObjectsWithProperties.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// WARNING!\n// WARNING!\n// This file is used for tests that check intellisense. Editing this file by hand will likely\n// break tests that have hard coded line numbers and line offsets.\n\nimport type { DerivedProperty } from \"@osdk/api\";\nimport { Employee } from \"@osdk/client.test.ontology\";\nimport { useOsdkObjects } from \"@osdk/react/experimental\";\n\nfunction TestComponent() {\n const withProps: DerivedProperty.Clause<typeof Employee> = {\n constantValue: (employee) => employee.constant.integer(42),\n };\n\n const { data } = useOsdkObjects(Employee, {\n withProperties: withProps,\n });\n\n return null;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAGA,SAASA,QAAQ,QAAQ,4BAA4B;AACrD,SAASC,cAAc,QAAQ,0BAA0B;AAEzD,SAASC,aAAaA,CAAA,EAAG;EAKvB,MAAM;IAAEC;EAAK,CAAC,GAAGF,cAAc,CAACD,QAAQ,EAAE;IACxCI,cAAc,EAL2C;MACzDC,aAAa,EAAGC,QAAQ,IAAKA,QAAQ,CAACC,QAAQ,CAACC,OAAO,CAAC,EAAE;IAC3D;EAIA,CAAC,CAAC;EAEF,OAAO,IAAI;AACb","ignoreList":[]}
@@ -90,7 +90,7 @@ describe("intellisense", () => {
90
90
  throw error;
91
91
  }
92
92
  });
93
- afterEach(async () => {
93
+ afterEach(() => {
94
94
  if (tsServer) {
95
95
  tsServer.stop();
96
96
  tsServer = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"intellisense.test.js","names":["startTsServer","findUpSync","path","invariant","ts","afterEach","beforeAll","beforeEach","describe","expect","it","vi","rootLogger","hoisted","pino","pinoPretty","EventEmitter","Promise","resolve","level","build","sync","timestampKey","undefined","errorLikeObjectKeys","errorProps","ignore","destination","write","a","at","slice","console","log","packagesDir","reactPackagePath","reactPackageJson","cwd","import","meta","dirname","process","env","NODE_ENV","join","tsServer","intellisenseFilePath","task","name","sys","fileExists","toBeTruthy","sendOpenRequest","file","error","stop","timeout","resp","sendCompletionsRequest","line","offset","triggerKind","CompletionTriggerKind","Invoked","completions","body","entries","map","e","toContain","typeResp","sendQuickInfoRequest","displayString","toBeDefined","dataResp"],"sources":["intellisense.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Logger } from \"@osdk/api\";\nimport type { TsServer } from \"@osdk/client/internal-node\";\nimport { startTsServer } from \"@osdk/client/internal-node\";\nimport { findUpSync } from \"find-up\";\nimport * as path from \"node:path\";\nimport invariant from \"tiny-invariant\";\nimport * as ts from \"typescript\";\nimport {\n afterEach,\n beforeAll,\n beforeEach,\n describe,\n expect,\n it,\n vi,\n} from \"vitest\";\n\n// it needs to be hoisted because its referenced from our mocked WebSocket\n// which must be hoisted to work\nconst rootLogger = await vi.hoisted(async (): Promise<Logger> => {\n const pino = (await import(\"pino\")).pino;\n const pinoPretty = await import(\"pino-pretty\");\n const { EventEmitter } = await import(\"node:events\");\n class PinoConsoleLogDestination extends EventEmitter {\n write(a: string) {\n // remove trailing newline since console.log adds one\n if (a.at(-1) === \"\\n\") a = a.slice(0, -1);\n\n // This lets the test framework aggregate the logs per test, whereas direct to stdout does not\n console.log(a);\n }\n }\n return Promise.resolve(pino(\n { level: \"info\" },\n (pinoPretty.build)({\n sync: true,\n timestampKey: undefined,\n errorLikeObjectKeys: [\"error\", \"err\", \"exception\"],\n errorProps: \"stack,cause,properties\",\n ignore: \"time,hostname,pid\",\n destination: new PinoConsoleLogDestination(),\n }),\n ));\n});\n\n/**\n * @vitest-environment node\n * @vitest-pool forks\n */\ndescribe(\"intellisense\", () => {\n let packagesDir: string;\n let reactPackagePath: string;\n\n beforeAll(() => {\n const reactPackageJson = findUpSync(\"package.json\", {\n cwd: import.meta.dirname,\n });\n console.log({ reactPackageJson });\n invariant(reactPackageJson != null);\n packagesDir = path.join(\n path.dirname(reactPackageJson),\n \"..\",\n );\n\n reactPackagePath = path.join(packagesDir, \"react\");\n });\n\n let tsServer: TsServer | undefined;\n let intellisenseFilePath: string;\n\n beforeEach(async (a) => {\n intellisenseFilePath = path.join(\n reactPackagePath,\n \"src\",\n \"intellisense.test.helpers\",\n `${a.task.name}.ts`,\n );\n\n console.log(intellisenseFilePath);\n\n expect(ts.sys.fileExists(intellisenseFilePath)).toBeTruthy();\n\n try {\n tsServer = await startTsServer(rootLogger);\n await tsServer.sendOpenRequest({ file: intellisenseFilePath });\n } catch (error) {\n if (tsServer) {\n try {\n tsServer.stop();\n } catch {\n // Ignore cleanup errors\n }\n tsServer = undefined;\n }\n throw error;\n }\n });\n\n afterEach(async () => {\n if (tsServer) {\n tsServer.stop();\n tsServer = undefined;\n }\n });\n\n it(\"useOsdkObjectsWithPivot\", { timeout: 40_000 }, async () => {\n expect(ts.sys.fileExists(intellisenseFilePath)).toBeTruthy();\n invariant(tsServer);\n\n const { resp } = await tsServer.sendCompletionsRequest({\n file: intellisenseFilePath,\n line: 29,\n offset: 15,\n triggerKind: ts.CompletionTriggerKind.Invoked,\n });\n\n const completions = resp.body?.entries.map(e => e.name) ?? [];\n expect(completions).toContain(\"lead\");\n\n const { resp: typeResp } = await tsServer.sendQuickInfoRequest({\n file: intellisenseFilePath,\n line: 33,\n offset: 10,\n });\n\n expect(typeResp.body?.displayString).toBeDefined();\n expect(typeResp.body?.displayString).toContain(\"Employee\");\n });\n\n it(\"useOsdkObjectsWithProperties\", { timeout: 40_000 }, async () => {\n expect(ts.sys.fileExists(intellisenseFilePath)).toBeTruthy();\n invariant(tsServer);\n\n const { resp } = await tsServer.sendQuickInfoRequest({\n file: intellisenseFilePath,\n line: 27,\n offset: 10,\n });\n\n expect(resp.body?.displayString).toContain(\"DerivedProperty.Clause\");\n\n const { resp: dataResp } = await tsServer.sendQuickInfoRequest({\n file: intellisenseFilePath,\n line: 31,\n offset: 11,\n });\n\n expect(dataResp.body?.displayString).toBeDefined();\n expect(dataResp.body?.displayString).toContain(\"Osdk.Instance<Employee\");\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"intellisense.test.js","names":["startTsServer","findUpSync","path","invariant","ts","afterEach","beforeAll","beforeEach","describe","expect","it","vi","rootLogger","hoisted","pino","pinoPretty","EventEmitter","Promise","resolve","level","build","sync","timestampKey","undefined","errorLikeObjectKeys","errorProps","ignore","destination","write","a","at","slice","console","log","packagesDir","reactPackagePath","reactPackageJson","cwd","import","meta","dirname","process","env","NODE_ENV","join","tsServer","intellisenseFilePath","task","name","sys","fileExists","toBeTruthy","sendOpenRequest","file","error","stop","timeout","resp","sendCompletionsRequest","line","offset","triggerKind","CompletionTriggerKind","Invoked","completions","body","entries","map","e","toContain","typeResp","sendQuickInfoRequest","displayString","toBeDefined","dataResp"],"sources":["intellisense.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Logger } from \"@osdk/api\";\nimport type { TsServer } from \"@osdk/client/internal-node\";\nimport { startTsServer } from \"@osdk/client/internal-node\";\nimport { findUpSync } from \"find-up\";\nimport * as path from \"node:path\";\nimport invariant from \"tiny-invariant\";\nimport * as ts from \"typescript\";\nimport {\n afterEach,\n beforeAll,\n beforeEach,\n describe,\n expect,\n it,\n vi,\n} from \"vitest\";\n\n// it needs to be hoisted because its referenced from our mocked WebSocket\n// which must be hoisted to work\nconst rootLogger = await vi.hoisted(async (): Promise<Logger> => {\n const pino = (await import(\"pino\")).pino;\n const pinoPretty = await import(\"pino-pretty\");\n const { EventEmitter } = await import(\"node:events\");\n class PinoConsoleLogDestination extends EventEmitter {\n write(a: string) {\n // remove trailing newline since console.log adds one\n if (a.at(-1) === \"\\n\") a = a.slice(0, -1);\n\n // This lets the test framework aggregate the logs per test, whereas direct to stdout does not\n console.log(a);\n }\n }\n return Promise.resolve(pino(\n { level: \"info\" },\n (pinoPretty.build)({\n sync: true,\n timestampKey: undefined,\n errorLikeObjectKeys: [\"error\", \"err\", \"exception\"],\n errorProps: \"stack,cause,properties\",\n ignore: \"time,hostname,pid\",\n destination: new PinoConsoleLogDestination(),\n }),\n ));\n});\n\n/**\n * @vitest-environment node\n * @vitest-pool forks\n */\ndescribe(\"intellisense\", () => {\n let packagesDir: string;\n let reactPackagePath: string;\n\n beforeAll(() => {\n const reactPackageJson = findUpSync(\"package.json\", {\n cwd: import.meta.dirname,\n });\n console.log({ reactPackageJson });\n invariant(reactPackageJson != null);\n packagesDir = path.join(\n path.dirname(reactPackageJson),\n \"..\",\n );\n\n reactPackagePath = path.join(packagesDir, \"react\");\n });\n\n let tsServer: TsServer | undefined;\n let intellisenseFilePath: string;\n\n beforeEach(async (a) => {\n intellisenseFilePath = path.join(\n reactPackagePath,\n \"src\",\n \"intellisense.test.helpers\",\n `${a.task.name}.ts`,\n );\n\n console.log(intellisenseFilePath);\n\n expect(ts.sys.fileExists(intellisenseFilePath)).toBeTruthy();\n\n try {\n tsServer = await startTsServer(rootLogger);\n await tsServer.sendOpenRequest({ file: intellisenseFilePath });\n } catch (error) {\n if (tsServer) {\n try {\n tsServer.stop();\n } catch {\n // Ignore cleanup errors\n }\n tsServer = undefined;\n }\n throw error;\n }\n });\n\n afterEach(() => {\n if (tsServer) {\n tsServer.stop();\n tsServer = undefined;\n }\n });\n\n it(\"useOsdkObjectsWithPivot\", { timeout: 40_000 }, async () => {\n expect(ts.sys.fileExists(intellisenseFilePath)).toBeTruthy();\n invariant(tsServer);\n\n const { resp } = await tsServer.sendCompletionsRequest({\n file: intellisenseFilePath,\n line: 29,\n offset: 15,\n triggerKind: ts.CompletionTriggerKind.Invoked,\n });\n\n const completions = resp.body?.entries.map(e => e.name) ?? [];\n expect(completions).toContain(\"lead\");\n\n const { resp: typeResp } = await tsServer.sendQuickInfoRequest({\n file: intellisenseFilePath,\n line: 33,\n offset: 10,\n });\n\n expect(typeResp.body?.displayString).toBeDefined();\n expect(typeResp.body?.displayString).toContain(\"Employee\");\n });\n\n it(\"useOsdkObjectsWithProperties\", { timeout: 40_000 }, async () => {\n expect(ts.sys.fileExists(intellisenseFilePath)).toBeTruthy();\n invariant(tsServer);\n\n const { resp } = await tsServer.sendQuickInfoRequest({\n file: intellisenseFilePath,\n line: 27,\n offset: 10,\n });\n\n expect(resp.body?.displayString).toContain(\"DerivedProperty.Clause\");\n\n const { resp: dataResp } = await tsServer.sendQuickInfoRequest({\n file: intellisenseFilePath,\n line: 31,\n offset: 11,\n });\n\n expect(dataResp.body?.displayString).toBeDefined();\n expect(dataResp.body?.displayString).toContain(\"Osdk.Instance<Employee\");\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { Users } from "@osdk/foundry.admin";
18
+ import React from "react";
19
+ import { usePlatformQuery } from "../../../utils/usePlatformQuery.js";
20
+ import { OsdkContext2 } from "../../OsdkContext2.js";
21
+ /**
22
+ * Get the currently signed in User.
23
+ * @param options Options to control the query.
24
+ */
25
+ export function useCurrentFoundryUser({
26
+ enabled = true
27
+ } = {}) {
28
+ const {
29
+ client
30
+ } = React.useContext(OsdkContext2);
31
+ const handleQuery = React.useCallback(() => Users.getCurrent(client), [client]);
32
+ const query = usePlatformQuery({
33
+ query: handleQuery,
34
+ enabled,
35
+ queryName: "foundry-current-user"
36
+ });
37
+ return {
38
+ currentUser: query.data,
39
+ isLoading: query.isLoading,
40
+ error: query.error,
41
+ refetch: query.refetch
42
+ };
43
+ }
44
+ //# sourceMappingURL=useCurrentFoundryUser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCurrentFoundryUser.js","names":["Users","React","usePlatformQuery","OsdkContext2","useCurrentFoundryUser","enabled","client","useContext","handleQuery","useCallback","getCurrent","query","queryName","currentUser","data","isLoading","error","refetch"],"sources":["useCurrentFoundryUser.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { type User, Users } from \"@osdk/foundry.admin\";\nimport React from \"react\";\nimport { usePlatformQuery } from \"../../../utils/usePlatformQuery.js\";\nimport { OsdkContext2 } from \"../../OsdkContext2.js\";\n\nexport interface UseCurrentFoundryUserOptions {\n /**\n * Enable or disable the query.\n *\n * When `false`, the query will not automatically execute.\n *\n * This is useful for:\n * - Lazy/on-demand queries that should wait for user interaction\n * - Dependent queries that need data from another query first\n * - Conditional queries based on component state\n *\n * @default true\n * });\n */\n enabled?: boolean;\n}\n\nexport interface UseCurrentFoundryUserResult {\n currentUser: User | undefined;\n isLoading: boolean;\n\n error: Error | undefined;\n\n refetch: () => void;\n}\n\n/**\n * Get the currently signed in User.\n * @param options Options to control the query.\n */\nexport function useCurrentFoundryUser(\n { enabled = true }: UseCurrentFoundryUserOptions = {},\n): UseCurrentFoundryUserResult {\n const { client } = React.useContext(OsdkContext2);\n\n const handleQuery = React.useCallback(\n () => Users.getCurrent(client),\n [client],\n );\n\n const query = usePlatformQuery({\n query: handleQuery,\n enabled,\n queryName: \"foundry-current-user\",\n });\n\n return {\n currentUser: query.data,\n isLoading: query.isLoading,\n error: query.error,\n refetch: query.refetch,\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAoBA,KAAK,QAAQ,qBAAqB;AACtD,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,gBAAgB,QAAQ,oCAAoC;AACrE,SAASC,YAAY,QAAQ,uBAAuB;AA4BpD;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CACnC;EAAEC,OAAO,GAAG;AAAmC,CAAC,GAAG,CAAC,CAAC,EACxB;EAC7B,MAAM;IAAEC;EAAO,CAAC,GAAGL,KAAK,CAACM,UAAU,CAACJ,YAAY,CAAC;EAEjD,MAAMK,WAAW,GAAGP,KAAK,CAACQ,WAAW,CACnC,MAAMT,KAAK,CAACU,UAAU,CAACJ,MAAM,CAAC,EAC9B,CAACA,MAAM,CACT,CAAC;EAED,MAAMK,KAAK,GAAGT,gBAAgB,CAAC;IAC7BS,KAAK,EAAEH,WAAW;IAClBH,OAAO;IACPO,SAAS,EAAE;EACb,CAAC,CAAC;EAEF,OAAO;IACLC,WAAW,EAAEF,KAAK,CAACG,IAAI;IACvBC,SAAS,EAAEJ,KAAK,CAACI,SAAS;IAC1BC,KAAK,EAAEL,KAAK,CAACK,KAAK;IAClBC,OAAO,EAAEN,KAAK,CAACM;EACjB,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { Users } from "@osdk/foundry.admin";
18
+ import React from "react";
19
+ import { usePlatformQuery } from "../../../utils/usePlatformQuery.js";
20
+ import { OsdkContext2 } from "../../OsdkContext2.js";
21
+ /**
22
+ * Get the User with the specified id.
23
+ * @param userId A Foundry User ID.
24
+ * @param options Options to control the query.
25
+ */
26
+ export function useFoundryUser(userId, {
27
+ enabled = true,
28
+ status = "ACTIVE"
29
+ } = {}) {
30
+ const {
31
+ client
32
+ } = React.useContext(OsdkContext2);
33
+ const handleQuery = React.useCallback(() => {
34
+ return Users.get(client, userId, {
35
+ status
36
+ });
37
+ }, [client, userId, status]);
38
+ const query = usePlatformQuery({
39
+ query: handleQuery,
40
+ enabled,
41
+ queryName: "foundry-user"
42
+ });
43
+ return {
44
+ user: query.data,
45
+ isLoading: query.isLoading,
46
+ error: query.error,
47
+ refetch: query.refetch
48
+ };
49
+ }
50
+ //# sourceMappingURL=useFoundryUser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFoundryUser.js","names":["Users","React","usePlatformQuery","OsdkContext2","useFoundryUser","userId","enabled","status","client","useContext","handleQuery","useCallback","get","query","queryName","user","data","isLoading","error","refetch"],"sources":["useFoundryUser.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { type User, Users } from \"@osdk/foundry.admin\";\nimport type { UserStatus } from \"@osdk/foundry.core\";\nimport React from \"react\";\nimport { usePlatformQuery } from \"../../../utils/usePlatformQuery.js\";\nimport { OsdkContext2 } from \"../../OsdkContext2.js\";\n\nexport interface UseFoundryUserOptions {\n /**\n * Enable or disable the query.\n *\n * When `false`, the query will not automatically execute.\n *\n * This is useful for:\n * - Lazy/on-demand queries that should wait for user interaction\n * - Dependent queries that need data from another query first\n * - Conditional queries based on component state\n *\n * @default true\n * });\n */\n enabled?: boolean;\n\n /**\n * The default status of the users returned in the list.\n *\n * @default \"ACTIVE\"\n */\n status?: UserStatus;\n}\n\nexport interface UseFoundryUserResult {\n user: User | undefined;\n isLoading: boolean;\n\n error: Error | undefined;\n\n refetch: () => void;\n}\n\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(\n userId: string,\n { enabled = true, status = \"ACTIVE\" }: UseFoundryUserOptions = {},\n): UseFoundryUserResult {\n const { client } = React.useContext(OsdkContext2);\n\n const handleQuery = React.useCallback(() => {\n return Users.get(client, userId, { status });\n }, [client, userId, status]);\n\n const query = usePlatformQuery({\n query: handleQuery,\n enabled,\n queryName: \"foundry-user\",\n });\n\n return {\n user: query.data,\n isLoading: query.isLoading,\n error: query.error,\n refetch: query.refetch,\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAoBA,KAAK,QAAQ,qBAAqB;AAEtD,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,gBAAgB,QAAQ,oCAAoC;AACrE,SAASC,YAAY,QAAQ,uBAAuB;AAmCpD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAC5BC,MAAc,EACd;EAAEC,OAAO,GAAG,IAAI;EAAEC,MAAM,GAAG;AAAgC,CAAC,GAAG,CAAC,CAAC,EAC3C;EACtB,MAAM;IAAEC;EAAO,CAAC,GAAGP,KAAK,CAACQ,UAAU,CAACN,YAAY,CAAC;EAEjD,MAAMO,WAAW,GAAGT,KAAK,CAACU,WAAW,CAAC,MAAM;IAC1C,OAAOX,KAAK,CAACY,GAAG,CAACJ,MAAM,EAAEH,MAAM,EAAE;MAAEE;IAAO,CAAC,CAAC;EAC9C,CAAC,EAAE,CAACC,MAAM,EAAEH,MAAM,EAAEE,MAAM,CAAC,CAAC;EAE5B,MAAMM,KAAK,GAAGX,gBAAgB,CAAC;IAC7BW,KAAK,EAAEH,WAAW;IAClBJ,OAAO;IACPQ,SAAS,EAAE;EACb,CAAC,CAAC;EAEF,OAAO;IACLC,IAAI,EAAEF,KAAK,CAACG,IAAI;IAChBC,SAAS,EAAEJ,KAAK,CAACI,SAAS;IAC1BC,KAAK,EAAEL,KAAK,CAACK,KAAK;IAClBC,OAAO,EAAEN,KAAK,CAACM;EACjB,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,54 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { Users } from "@osdk/foundry.admin";
18
+ import React from "react";
19
+ import { usePlatformQuery } from "../../../utils/usePlatformQuery.js";
20
+ import { OsdkContext2 } from "../../OsdkContext2.js";
21
+ /**
22
+ * Lists all Users. This is a paged endpoint. Each page may be smaller or larger than the requested page size.
23
+ * @param options Options to control the query.
24
+ */
25
+ export function useFoundryUsersList({
26
+ enabled = true,
27
+ include = "ACTIVE",
28
+ pageSize = 1000,
29
+ pageToken
30
+ } = {}) {
31
+ const {
32
+ client
33
+ } = React.useContext(OsdkContext2);
34
+ const handleQuery = React.useCallback(() => {
35
+ return Users.list(client, {
36
+ include,
37
+ pageSize,
38
+ pageToken
39
+ });
40
+ }, [client, include, pageSize, pageToken]);
41
+ const query = usePlatformQuery({
42
+ query: handleQuery,
43
+ enabled,
44
+ queryName: "foundry-users-list"
45
+ });
46
+ return {
47
+ users: query.data?.data,
48
+ nextPageToken: query.data?.nextPageToken,
49
+ isLoading: query.isLoading,
50
+ error: query.error,
51
+ refetch: query.refetch
52
+ };
53
+ }
54
+ //# sourceMappingURL=useFoundryUsersList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFoundryUsersList.js","names":["Users","React","usePlatformQuery","OsdkContext2","useFoundryUsersList","enabled","include","pageSize","pageToken","client","useContext","handleQuery","useCallback","list","query","queryName","users","data","nextPageToken","isLoading","error","refetch"],"sources":["useFoundryUsersList.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { type ListUsersResponse, Users } from \"@osdk/foundry.admin\";\nimport type { UserStatus } from \"@osdk/foundry.core\";\nimport React from \"react\";\nimport { usePlatformQuery } from \"../../../utils/usePlatformQuery.js\";\nimport { OsdkContext2 } from \"../../OsdkContext2.js\";\n\nexport interface UseFoundryUsersListOptions {\n /**\n * Enable or disable the query.\n *\n * When `false`, the query will not automatically execute.\n *\n * This is useful for:\n * - Lazy/on-demand queries that should wait for user interaction\n * - Dependent queries that need data from another query first\n * - Conditional queries based on component state\n *\n * @default true\n * });\n */\n enabled?: boolean;\n\n /**\n * The default status of the users returned in the list.\n *\n * @default \"ACTIVE\"\n */\n include?: UserStatus;\n\n /**\n * The preferred page size for the list.\n *\n * @default 1000\n */\n pageSize?: number;\n\n /**\n * The page token indicates where to start paging. This should be omitted from the first page's request.\n * To fetch the next page, clients should take the value from the nextPageToken field of the previous\n * response and use it to populate the pageToken field of the next request.\n */\n pageToken?: string;\n}\n\nexport interface UseFoundryUsersListResult {\n users: ListUsersResponse[\"data\"] | undefined;\n /**\n * The page token to be used for the next page of users. If this is undefined, there are no more\n * pages of users to load.\n */\n nextPageToken: string | undefined;\n isLoading: boolean;\n\n error: Error | undefined;\n\n refetch: () => void;\n}\n\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, include = \"ACTIVE\", pageSize = 1000, pageToken }:\n UseFoundryUsersListOptions = {},\n): UseFoundryUsersListResult {\n const { client } = React.useContext(OsdkContext2);\n\n const handleQuery = React.useCallback(() => {\n return Users.list(client, { include, pageSize, pageToken });\n }, [client, include, pageSize, pageToken]);\n\n const query = usePlatformQuery(\n {\n query: handleQuery,\n enabled,\n queryName: \"foundry-users-list\",\n },\n );\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"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAiCA,KAAK,QAAQ,qBAAqB;AAEnE,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,gBAAgB,QAAQ,oCAAoC;AACrE,SAASC,YAAY,QAAQ,uBAAuB;AAsDpD;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CACjC;EAAEC,OAAO,GAAG,IAAI;EAAEC,OAAO,GAAG,QAAQ;EAAEC,QAAQ,GAAG,IAAI;EAAEC;AAC5B,CAAC,GAAG,CAAC,CAAC,EACN;EAC3B,MAAM;IAAEC;EAAO,CAAC,GAAGR,KAAK,CAACS,UAAU,CAACP,YAAY,CAAC;EAEjD,MAAMQ,WAAW,GAAGV,KAAK,CAACW,WAAW,CAAC,MAAM;IAC1C,OAAOZ,KAAK,CAACa,IAAI,CAACJ,MAAM,EAAE;MAAEH,OAAO;MAAEC,QAAQ;MAAEC;IAAU,CAAC,CAAC;EAC7D,CAAC,EAAE,CAACC,MAAM,EAAEH,OAAO,EAAEC,QAAQ,EAAEC,SAAS,CAAC,CAAC;EAE1C,MAAMM,KAAK,GAAGZ,gBAAgB,CAC5B;IACEY,KAAK,EAAEH,WAAW;IAClBN,OAAO;IACPU,SAAS,EAAE;EACb,CACF,CAAC;EAED,OAAO;IACLC,KAAK,EAAEF,KAAK,CAACG,IAAI,EAAEA,IAAI;IACvBC,aAAa,EAAEJ,KAAK,CAACG,IAAI,EAAEC,aAAa;IACxCC,SAAS,EAAEL,KAAK,CAACK,SAAS;IAC1BC,KAAK,EAAEN,KAAK,CAACM,KAAK;IAClBC,OAAO,EAAEP,KAAK,CAACO;EACjB,CAAC;AACH","ignoreList":[]}