@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,302 +1,76 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkOVBG5VXE_cjs = require('../chunk-OVBG5VXE.cjs');
4
+ var chunkSVVMLSKN_cjs = require('../chunk-SVVMLSKN.cjs');
4
5
  var unstableDoNotUse = require('@osdk/client/unstable-do-not-use');
5
- var React9 = require('react');
6
- var foundry_admin = require('@osdk/foundry.admin');
6
+ var React4 = require('react');
7
7
  var client = require('@osdk/client');
8
8
 
9
9
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
10
 
11
- var React9__default = /*#__PURE__*/_interopDefault(React9);
11
+ var React4__default = /*#__PURE__*/_interopDefault(React4);
12
12
 
13
- function fakeClientFn(..._args) {
14
- throw new Error("This is not a real client. Did you forget to <OsdkContext.Provider>?");
15
- }
16
- var fakeClient = Object.assign(fakeClientFn, {
17
- fetchMetadata: fakeClientFn
18
- });
19
- var OsdkContext2 = /* @__PURE__ */ React9__default.default.createContext({
20
- client: fakeClient,
21
- observableClient: void 0
22
- });
23
-
24
- // src/new/OsdkProvider2.tsx
25
13
  function OsdkProvider2({
26
14
  children,
27
15
  client,
28
16
  observableClient
29
17
  }) {
30
- observableClient = React9.useMemo(() => observableClient ?? unstableDoNotUse.createObservableClient(client), [client, observableClient]);
31
- return /* @__PURE__ */ React9__default.default.createElement(OsdkContext2.Provider, {
18
+ observableClient = React4.useMemo(() => observableClient ?? unstableDoNotUse.createObservableClient(client), [client, observableClient]);
19
+ return /* @__PURE__ */ React4__default.default.createElement(chunkSVVMLSKN_cjs.OsdkContext2.Provider, {
32
20
  value: {
33
21
  client,
34
22
  observableClient
35
23
  }
36
- }, /* @__PURE__ */ React9__default.default.createElement(chunkOVBG5VXE_cjs.OsdkContext.Provider, {
24
+ }, /* @__PURE__ */ React4__default.default.createElement(chunkOVBG5VXE_cjs.OsdkContext.Provider, {
37
25
  value: {
38
26
  client
39
27
  }
40
28
  }, children));
41
29
  }
42
-
43
- // src/new/makeExternalStore.ts
44
- function makeExternalStore(createObservation, _name, initialValue) {
45
- let lastResult = initialValue;
46
- function getSnapShot() {
47
- return lastResult;
48
- }
49
- function subscribe(notifyUpdate) {
50
- const obs = createObservation({
51
- next: (payload) => {
52
- lastResult = payload;
53
- notifyUpdate();
54
- },
55
- error: (error) => {
56
- lastResult = {
57
- ...lastResult ?? {},
58
- error: error instanceof Error ? error : new Error(String(error))
59
- };
60
- notifyUpdate();
61
- },
62
- complete: () => {
63
- }
64
- });
65
- return () => {
66
- obs.unsubscribe();
67
- };
68
- }
69
- return {
70
- subscribe,
71
- getSnapShot
72
- };
73
- }
74
- function makeExternalStoreAsync(createObservation, _name, initialValue) {
75
- let lastResult = initialValue;
76
- function getSnapShot() {
77
- return lastResult;
78
- }
79
- function subscribe(notifyUpdate) {
80
- let isActive = true;
81
- let currentSubscription;
82
- const subscriptionPromise = createObservation({
83
- next: (payload) => {
84
- if (isActive) {
85
- lastResult = payload;
86
- notifyUpdate();
87
- }
88
- },
89
- error: (error) => {
90
- if (isActive) {
91
- lastResult = {
92
- ...lastResult ?? {},
93
- error: error instanceof Error ? error : new Error(String(error))
94
- };
95
- notifyUpdate();
96
- }
97
- },
98
- complete: () => {
99
- }
100
- });
101
- subscriptionPromise.then((sub) => {
102
- if (isActive) {
103
- currentSubscription = sub;
104
- } else {
105
- sub.unsubscribe();
106
- }
107
- }).catch((error) => {
108
- if (isActive) {
109
- lastResult = {
110
- ...lastResult ?? {},
111
- error: error instanceof Error ? error : new Error(String(error))
112
- };
113
- notifyUpdate();
114
- }
115
- });
116
- return () => {
117
- isActive = false;
118
- if (currentSubscription) {
119
- currentSubscription.unsubscribe();
120
- }
121
- };
122
- }
123
- return {
124
- subscribe,
125
- getSnapShot
126
- };
127
- }
128
-
129
- // src/utils/usePlatformQuery.ts
130
- function usePlatformQuery({
131
- query,
132
- queryName,
133
- enabled = true
134
- }) {
135
- const observerRef = React9__default.default.useRef();
136
- const handleQuery = React9__default.default.useCallback(() => {
137
- const observer = observerRef.current;
138
- if (observer == null) return;
139
- observer.next({
140
- status: "loading",
141
- data: void 0
142
- });
143
- query().then((data) => {
144
- observer.next({
145
- status: "success",
146
- data
147
- });
148
- }).catch((err) => {
149
- observer.error(err);
150
- });
151
- }, [query]);
152
- const {
153
- subscribe,
154
- getSnapShot
155
- } = React9__default.default.useMemo(() => {
156
- if (!enabled) {
157
- return makeExternalStore(() => ({
158
- unsubscribe: () => {
159
- }
160
- }), process.env.NODE_ENV !== "production" ? `${queryName} Query [DISABLED]` : void 0);
161
- }
162
- return makeExternalStore((observer) => {
163
- observerRef.current = observer;
164
- handleQuery();
165
- return {
166
- unsubscribe: () => {
167
- observerRef.current = void 0;
168
- }
169
- };
170
- });
171
- }, [enabled, queryName, handleQuery]);
172
- const payload = React9__default.default.useSyncExternalStore(subscribe, getSnapShot);
173
- let error;
174
- if (payload && "error" in payload && payload.error != null) {
175
- error = payload.error;
176
- } else if (payload?.status === "error") {
177
- error = new Error(`Failed to query platform API: ${queryName}`);
178
- }
179
- return {
180
- data: payload?.data,
181
- isLoading: enabled ? payload?.status === "loading" || !payload : false,
182
- error,
183
- refetch: handleQuery
184
- };
185
- }
186
-
187
- // src/new/platform-apis/admin/useCurrentFoundryUser.ts
188
- function useCurrentFoundryUser({
189
- enabled = true
190
- } = {}) {
191
- const {
192
- client
193
- } = React9__default.default.useContext(OsdkContext2);
194
- const handleQuery = React9__default.default.useCallback(() => foundry_admin.Users.getCurrent(client), [client]);
195
- const query = usePlatformQuery({
196
- query: handleQuery,
197
- enabled,
198
- queryName: "foundry-current-user"
199
- });
200
- return {
201
- currentUser: query.data,
202
- isLoading: query.isLoading,
203
- error: query.error,
204
- refetch: query.refetch
205
- };
206
- }
207
- function useFoundryUser(userId, {
208
- enabled = true,
209
- status = "ACTIVE"
210
- } = {}) {
211
- const {
212
- client
213
- } = React9__default.default.useContext(OsdkContext2);
214
- const handleQuery = React9__default.default.useCallback(() => {
215
- return foundry_admin.Users.get(client, userId, {
216
- status
217
- });
218
- }, [client, userId, status]);
219
- const query = usePlatformQuery({
220
- query: handleQuery,
221
- enabled,
222
- queryName: "foundry-user"
223
- });
224
- return {
225
- user: query.data,
226
- isLoading: query.isLoading,
227
- error: query.error,
228
- refetch: query.refetch
229
- };
230
- }
231
- function useFoundryUsersList({
232
- enabled = true,
233
- include = "ACTIVE",
234
- pageSize = 1e3,
235
- pageToken
236
- } = {}) {
237
- const {
238
- client
239
- } = React9__default.default.useContext(OsdkContext2);
240
- const handleQuery = React9__default.default.useCallback(() => {
241
- return foundry_admin.Users.list(client, {
242
- include,
243
- pageSize,
244
- pageToken
245
- });
246
- }, [client, include, pageSize, pageToken]);
247
- const query = usePlatformQuery({
248
- query: handleQuery,
249
- enabled,
250
- queryName: "foundry-users-list"
251
- });
252
- return {
253
- users: query.data?.data,
254
- nextPageToken: query.data?.nextPageToken,
255
- isLoading: query.isLoading,
256
- error: query.error,
257
- refetch: query.refetch
258
- };
259
- }
260
30
  var emptyArray = Object.freeze([]);
261
31
  function useLinks(objects, linkName, options = {}) {
262
32
  const {
263
33
  observableClient
264
- } = React9__default.default.useContext(OsdkContext2);
34
+ } = React4__default.default.useContext(chunkSVVMLSKN_cjs.OsdkContext2);
265
35
  const {
266
36
  enabled = true,
267
37
  ...otherOptions
268
38
  } = options;
269
- const stableWhere = React9__default.default.useMemo(() => otherOptions.where, [JSON.stringify(otherOptions.where)]);
270
- const stableOrderBy = React9__default.default.useMemo(() => otherOptions.orderBy, [JSON.stringify(otherOptions.orderBy)]);
271
- const objectsKey = React9__default.default.useMemo(() => {
39
+ const stableWhere = React4__default.default.useMemo(() => otherOptions.where, [JSON.stringify(otherOptions.where)]);
40
+ const stableOrderBy = React4__default.default.useMemo(() => otherOptions.orderBy, [JSON.stringify(otherOptions.orderBy)]);
41
+ const stableSelect = React4__default.default.useMemo(() => otherOptions.$select, [JSON.stringify(otherOptions.$select)]);
42
+ const objectsKey = React4__default.default.useMemo(() => {
272
43
  if (objects === void 0) return "";
273
44
  const arr = Array.isArray(objects) ? objects : [objects];
274
45
  return arr.map((obj) => `${obj.$apiName}:${obj.$primaryKey}`).join(",");
275
46
  }, [objects]);
276
- const objectsArray = React9__default.default.useMemo(() => {
47
+ const objectsArray = React4__default.default.useMemo(() => {
277
48
  return objects === void 0 ? emptyArray : Array.isArray(objects) ? objects : [objects];
278
49
  }, [objectsKey, objects]);
279
50
  const {
280
51
  subscribe,
281
52
  getSnapShot
282
- } = React9__default.default.useMemo(() => {
53
+ } = React4__default.default.useMemo(() => {
283
54
  if (!enabled) {
284
- return makeExternalStore(() => ({
55
+ return chunkSVVMLSKN_cjs.makeExternalStore(() => ({
285
56
  unsubscribe: () => {
286
57
  }
287
- }));
58
+ }), `links ${linkName} for ${objectsKey} [DISABLED]`);
288
59
  }
289
- return makeExternalStore((observer) => observableClient.observeLinks(objectsArray, linkName, {
60
+ return chunkSVVMLSKN_cjs.makeExternalStore((observer) => observableClient.observeLinks(objectsArray, linkName, {
290
61
  linkName,
291
62
  where: stableWhere,
292
63
  pageSize: otherOptions.pageSize,
293
64
  orderBy: stableOrderBy,
294
65
  mode: otherOptions.mode,
295
- dedupeInterval: otherOptions.dedupeIntervalMs ?? 2e3
296
- }, observer));
297
- }, [enabled, observableClient, objectsArray, objectsKey, linkName, stableWhere, otherOptions.pageSize, stableOrderBy, otherOptions.mode, otherOptions.dedupeIntervalMs]);
298
- const payload = React9__default.default.useSyncExternalStore(subscribe, getSnapShot);
299
- return React9__default.default.useMemo(() => ({
66
+ dedupeInterval: otherOptions.dedupeIntervalMs ?? 2e3,
67
+ ...stableSelect ? {
68
+ select: stableSelect
69
+ } : {}
70
+ }, observer), `links ${linkName} for ${objectsKey}`);
71
+ }, [enabled, observableClient, objectsArray, objectsKey, linkName, stableWhere, otherOptions.pageSize, stableOrderBy, otherOptions.mode, otherOptions.dedupeIntervalMs, stableSelect]);
72
+ const payload = React4__default.default.useSyncExternalStore(subscribe, getSnapShot);
73
+ return React4__default.default.useMemo(() => ({
300
74
  links: payload?.resolvedList,
301
75
  isLoading: enabled ? payload?.status === "loading" || payload?.status === "init" || !payload : false,
302
76
  isOptimistic: payload?.isOptimistic ?? false,
@@ -309,18 +83,19 @@ var OBJECT_TYPE_PLACEHOLDER = "$__OBJECT__TYPE__PLACEHOLDER";
309
83
  function useObjectSet(baseObjectSet, options = {}) {
310
84
  const {
311
85
  observableClient
312
- } = React9__default.default.useContext(OsdkContext2);
86
+ } = React4__default.default.useContext(chunkSVVMLSKN_cjs.OsdkContext2);
313
87
  const {
314
88
  enabled = true,
315
89
  streamUpdates,
316
90
  ...otherOptions
317
91
  } = options;
318
92
  const objectTypeKey = enabled ? baseObjectSet.$objectSetInternals.def.apiName : OBJECT_TYPE_PLACEHOLDER;
319
- const previousObjectTypeRef = React9__default.default.useRef(objectTypeKey);
320
- const previousPayloadRef = React9__default.default.useRef();
93
+ const previousObjectTypeRef = React4__default.default.useRef(objectTypeKey);
94
+ const previousCompletedPayloadRef = React4__default.default.useRef();
321
95
  const objectTypeChanged = previousObjectTypeRef.current !== objectTypeKey;
322
96
  if (objectTypeChanged) {
323
97
  previousObjectTypeRef.current = objectTypeKey;
98
+ previousCompletedPayloadRef.current = void 0;
324
99
  }
325
100
  const stableKey = unstableDoNotUse.computeObjectSetCacheKey(baseObjectSet, {
326
101
  where: otherOptions.where,
@@ -330,20 +105,21 @@ function useObjectSet(baseObjectSet, options = {}) {
330
105
  subtract: otherOptions.subtract,
331
106
  pivotTo: otherOptions.pivotTo,
332
107
  pageSize: otherOptions.pageSize,
333
- orderBy: otherOptions.orderBy
108
+ orderBy: otherOptions.orderBy,
109
+ select: otherOptions.$select
334
110
  });
335
111
  const {
336
112
  subscribe,
337
113
  getSnapShot
338
- } = React9__default.default.useMemo(() => {
114
+ } = React4__default.default.useMemo(() => {
339
115
  if (!enabled) {
340
- return makeExternalStore(() => ({
116
+ return chunkSVVMLSKN_cjs.makeExternalStore(() => ({
341
117
  unsubscribe: () => {
342
118
  }
343
119
  }), process.env.NODE_ENV !== "production" ? `objectSet ${stableKey} [DISABLED]` : void 0);
344
120
  }
345
- const initialValue = objectTypeChanged ? void 0 : previousPayloadRef.current;
346
- return makeExternalStore((observer) => {
121
+ const initialValue = objectTypeChanged ? void 0 : previousCompletedPayloadRef.current;
122
+ return chunkSVVMLSKN_cjs.makeExternalStore((observer) => {
347
123
  const subscription = observableClient.observeObjectSet(baseObjectSet, {
348
124
  where: otherOptions.where,
349
125
  withProperties: otherOptions.withProperties,
@@ -355,37 +131,58 @@ function useObjectSet(baseObjectSet, options = {}) {
355
131
  orderBy: otherOptions.orderBy,
356
132
  dedupeInterval: otherOptions.dedupeIntervalMs ?? 2e3,
357
133
  autoFetchMore: otherOptions.autoFetchMore,
358
- streamUpdates
134
+ streamUpdates,
135
+ select: otherOptions.$select
359
136
  }, observer);
360
137
  return subscription;
361
138
  }, process.env.NODE_ENV !== "production" ? `objectSet ${stableKey}` : void 0, initialValue);
362
139
  }, [enabled, observableClient, stableKey, streamUpdates, objectTypeChanged]);
363
- const payload = React9__default.default.useSyncExternalStore(subscribe, getSnapShot);
364
- React9__default.default.useEffect(() => {
365
- if (payload) {
366
- previousPayloadRef.current = payload;
367
- }
368
- }, [payload]);
369
- return React9__default.default.useMemo(() => ({
370
- data: payload?.resolvedList,
371
- isLoading: payload?.status === "loading" || !payload && true || false,
372
- error: payload && "error" in payload ? payload.error : void 0,
373
- fetchMore: payload?.hasMore ? payload.fetchMore : void 0,
374
- objectSet: payload?.objectSet || baseObjectSet,
375
- totalCount: payload?.totalCount
376
- }), [payload, baseObjectSet]);
140
+ const payload = React4__default.default.useSyncExternalStore(subscribe, getSnapShot);
141
+ if (payload && isPayloadCompleted(payload)) {
142
+ previousCompletedPayloadRef.current = payload;
143
+ }
144
+ return React4__default.default.useMemo(() => {
145
+ const lastLoaded = isPayloadCompleted(payload) ? payload : previousCompletedPayloadRef.current;
146
+ return {
147
+ data: lastLoaded?.resolvedList,
148
+ isLoading: !isPayloadCompleted(payload),
149
+ error: lastLoaded && "error" in lastLoaded ? lastLoaded.error : void 0,
150
+ fetchMore: payload?.hasMore ? payload.fetchMore : void 0,
151
+ objectSet: payload?.objectSet || baseObjectSet,
152
+ totalCount: lastLoaded?.totalCount
153
+ };
154
+ }, [payload, baseObjectSet]);
155
+ }
156
+ function isPayloadCompleted(payload) {
157
+ if (payload != null && "error" in payload) {
158
+ return true;
159
+ }
160
+ if (payload?.status == null) {
161
+ return false;
162
+ }
163
+ switch (payload.status) {
164
+ case "loaded":
165
+ case "error":
166
+ return true;
167
+ case "loading":
168
+ case "init":
169
+ return false;
170
+ default:
171
+ payload.status;
172
+ return false;
173
+ }
377
174
  }
378
175
  function useOsdkAction(actionDef) {
379
176
  const {
380
177
  observableClient
381
- } = React9__default.default.useContext(OsdkContext2);
382
- const [error, setError] = React9__default.default.useState();
383
- const [data, setData] = React9__default.default.useState();
384
- const [isPending, setPending] = React9__default.default.useState(false);
385
- const [isValidating, setValidating] = React9__default.default.useState(false);
386
- const [validationResult, setValidationResult] = React9__default.default.useState();
387
- const abortControllerRef = React9__default.default.useRef(null);
388
- const applyAction = React9__default.default.useCallback(async function applyAction2(hookArgs) {
178
+ } = React4__default.default.useContext(chunkSVVMLSKN_cjs.OsdkContext2);
179
+ const [error, setError] = React4__default.default.useState();
180
+ const [data, setData] = React4__default.default.useState();
181
+ const [isPending, setPending] = React4__default.default.useState(false);
182
+ const [isValidating, setValidating] = React4__default.default.useState(false);
183
+ const [validationResult, setValidationResult] = React4__default.default.useState();
184
+ const abortControllerRef = React4__default.default.useRef(null);
185
+ const applyAction = React4__default.default.useCallback(async function applyAction2(hookArgs) {
389
186
  try {
390
187
  if (isValidating && abortControllerRef.current) {
391
188
  abortControllerRef.current.abort();
@@ -439,7 +236,7 @@ function useOsdkAction(actionDef) {
439
236
  setPending(false);
440
237
  }
441
238
  }, [observableClient, actionDef, isValidating]);
442
- const validateAction = React9__default.default.useCallback(async function validateAction2(args) {
239
+ const validateAction = React4__default.default.useCallback(async function validateAction2(args) {
443
240
  try {
444
241
  if (isPending) {
445
242
  return void 0;
@@ -475,14 +272,14 @@ function useOsdkAction(actionDef) {
475
272
  setValidating(false);
476
273
  }
477
274
  }, [observableClient, actionDef, isPending]);
478
- React9__default.default.useEffect(() => {
275
+ React4__default.default.useEffect(() => {
479
276
  return () => {
480
277
  if (abortControllerRef.current) {
481
278
  abortControllerRef.current.abort();
482
279
  }
483
280
  };
484
281
  }, []);
485
- return React9__default.default.useMemo(() => ({
282
+ return React4__default.default.useMemo(() => ({
486
283
  applyAction,
487
284
  validateAction,
488
285
  error,
@@ -504,21 +301,21 @@ function useOsdkAggregation(type, options) {
504
301
  const objectSet = "objectSet" in options ? options.objectSet : void 0;
505
302
  const {
506
303
  observableClient
507
- } = React9__default.default.useContext(OsdkContext2);
304
+ } = React4__default.default.useContext(chunkSVVMLSKN_cjs.OsdkContext2);
508
305
  const canonWhere = observableClient.canonicalizeWhereClause(where);
509
- const stableCanonWhere = React9__default.default.useMemo(() => canonWhere, [JSON.stringify(canonWhere)]);
510
- const objectSetRef = React9__default.default.useRef(objectSet);
306
+ const stableCanonWhere = React4__default.default.useMemo(() => canonWhere, [JSON.stringify(canonWhere)]);
307
+ const objectSetRef = React4__default.default.useRef(objectSet);
511
308
  objectSetRef.current = objectSet;
512
309
  const objectSetKeyString = objectSet ? unstableDoNotUse.computeObjectSetCacheKey(objectSet) : void 0;
513
- const stableWithProperties = React9__default.default.useMemo(() => withProperties, [JSON.stringify(withProperties)]);
514
- const stableAggregate = React9__default.default.useMemo(() => aggregate, [JSON.stringify(aggregate)]);
515
- const stableIntersectWith = React9__default.default.useMemo(() => intersectWith, [JSON.stringify(intersectWith)]);
310
+ const stableWithProperties = React4__default.default.useMemo(() => withProperties, [JSON.stringify(withProperties)]);
311
+ const stableAggregate = React4__default.default.useMemo(() => aggregate, [JSON.stringify(aggregate)]);
312
+ const stableIntersectWith = React4__default.default.useMemo(() => intersectWith, [JSON.stringify(intersectWith)]);
516
313
  const {
517
314
  subscribe,
518
315
  getSnapShot
519
- } = React9__default.default.useMemo(() => {
316
+ } = React4__default.default.useMemo(() => {
520
317
  if (objectSetKeyString && objectSetRef.current) {
521
- return makeExternalStoreAsync((observer) => observableClient.observeAggregation({
318
+ return chunkSVVMLSKN_cjs.makeExternalStoreAsync((observer) => observableClient.observeAggregation({
522
319
  type,
523
320
  objectSet: objectSetRef.current,
524
321
  where: stableCanonWhere,
@@ -528,7 +325,7 @@ function useOsdkAggregation(type, options) {
528
325
  dedupeInterval: dedupeIntervalMs ?? 2e3
529
326
  }, observer), process.env.NODE_ENV !== "production" ? `aggregation ${type.apiName} ${objectSetKeyString} ${JSON.stringify(stableCanonWhere)}` : void 0);
530
327
  }
531
- return makeExternalStore((observer) => (
328
+ return chunkSVVMLSKN_cjs.makeExternalStore((observer) => (
532
329
  // eslint-disable-next-line @typescript-eslint/no-deprecated
533
330
  observableClient.observeAggregation({
534
331
  type,
@@ -540,11 +337,11 @@ function useOsdkAggregation(type, options) {
540
337
  }, observer)
541
338
  ), process.env.NODE_ENV !== "production" ? `aggregation ${type.apiName} ${JSON.stringify(stableCanonWhere)}` : void 0);
542
339
  }, [observableClient, type.apiName, type.type, objectSetKeyString, stableCanonWhere, stableWithProperties, stableIntersectWith, stableAggregate, dedupeIntervalMs]);
543
- const payload = React9__default.default.useSyncExternalStore(subscribe, getSnapShot);
544
- const refetch = React9__default.default.useCallback(async () => {
340
+ const payload = React4__default.default.useSyncExternalStore(subscribe, getSnapShot);
341
+ const refetch = React4__default.default.useCallback(async () => {
545
342
  await observableClient.invalidateObjectType(type.apiName);
546
343
  }, [observableClient, type.apiName]);
547
- return React9__default.default.useMemo(() => {
344
+ return React4__default.default.useMemo(() => {
548
345
  let error;
549
346
  if (payload && "error" in payload && payload.error) {
550
347
  error = payload.error;
@@ -562,7 +359,7 @@ function useOsdkAggregation(type, options) {
562
359
  function useOsdkFunction(queryDef, options = {}) {
563
360
  const {
564
361
  observableClient
565
- } = React9__default.default.useContext(OsdkContext2);
362
+ } = React4__default.default.useContext(chunkSVVMLSKN_cjs.OsdkContext2);
566
363
  const {
567
364
  params,
568
365
  dependsOn,
@@ -570,9 +367,9 @@ function useOsdkFunction(queryDef, options = {}) {
570
367
  dedupeIntervalMs,
571
368
  enabled = true
572
369
  } = options;
573
- const stableParams = React9__default.default.useMemo(() => params, [JSON.stringify(params)]);
574
- const stableDependsOn = React9__default.default.useMemo(() => dependsOn, [JSON.stringify(dependsOn?.map((d) => typeof d === "string" ? d : d.apiName))]);
575
- const stableDependsOnObjects = React9__default.default.useMemo(() => dependsOnObjects, [JSON.stringify(dependsOnObjects?.map((item) => "$apiName" in item ? {
370
+ const stableParams = React4__default.default.useMemo(() => params, [JSON.stringify(params)]);
371
+ const stableDependsOn = React4__default.default.useMemo(() => dependsOn, [JSON.stringify(dependsOn?.map((d) => typeof d === "string" ? d : d.apiName))]);
372
+ const stableDependsOnObjects = React4__default.default.useMemo(() => dependsOnObjects, [JSON.stringify(dependsOnObjects?.map((item) => "$apiName" in item ? {
576
373
  $apiName: item.$apiName,
577
374
  $primaryKey: item.$primaryKey
578
375
  } : {
@@ -582,24 +379,24 @@ function useOsdkFunction(queryDef, options = {}) {
582
379
  const {
583
380
  subscribe,
584
381
  getSnapShot
585
- } = React9__default.default.useMemo(() => {
382
+ } = React4__default.default.useMemo(() => {
586
383
  if (!enabled) {
587
- return makeExternalStore(() => ({
384
+ return chunkSVVMLSKN_cjs.makeExternalStore(() => ({
588
385
  unsubscribe: () => {
589
386
  }
590
387
  }), process.env.NODE_ENV !== "production" ? `function ${queryDef.apiName} ${JSON.stringify(stableParams)} [DISABLED]` : void 0);
591
388
  }
592
- return makeExternalStore((observer) => observableClient.observeFunction(queryDef, paramsForApi, {
389
+ return chunkSVVMLSKN_cjs.makeExternalStore((observer) => observableClient.observeFunction(queryDef, paramsForApi, {
593
390
  dependsOn: stableDependsOn,
594
391
  dependsOnObjects: stableDependsOnObjects,
595
392
  dedupeInterval: dedupeIntervalMs ?? 2e3
596
393
  }, observer), process.env.NODE_ENV !== "production" ? `function ${queryDef.apiName} ${JSON.stringify(stableParams)}` : void 0);
597
394
  }, [observableClient, queryDef.apiName, queryDef.version, paramsForApi, stableDependsOn, stableDependsOnObjects, dedupeIntervalMs, enabled]);
598
- const payload = React9__default.default.useSyncExternalStore(subscribe, getSnapShot);
599
- const refetch = React9__default.default.useCallback(() => {
395
+ const payload = React4__default.default.useSyncExternalStore(subscribe, getSnapShot);
396
+ const refetch = React4__default.default.useCallback(() => {
600
397
  void observableClient.invalidateFunction(queryDef, paramsForApi);
601
398
  }, [observableClient, queryDef, paramsForApi]);
602
- return React9__default.default.useMemo(() => {
399
+ return React4__default.default.useMemo(() => {
603
400
  const error = payload?.error ?? (payload?.status === "error" ? new Error("Failed to execute function") : void 0);
604
401
  return {
605
402
  data: payload?.result,
@@ -613,32 +410,38 @@ function useOsdkFunction(queryDef, options = {}) {
613
410
  function useOsdkObject(...args) {
614
411
  const {
615
412
  observableClient
616
- } = React9__default.default.useContext(OsdkContext2);
413
+ } = React4__default.default.useContext(chunkSVVMLSKN_cjs.OsdkContext2);
617
414
  const isInstanceSignature = "$objectType" in args[0];
618
- const enabled = isInstanceSignature ? typeof args[1] === "boolean" ? args[1] : true : typeof args[2] === "boolean" ? args[2] : true;
415
+ const optionsArg = !isInstanceSignature && args[2] != null && typeof args[2] === "object" ? args[2] : void 0;
416
+ const enabled = isInstanceSignature ? typeof args[1] === "boolean" ? args[1] : true : optionsArg ? optionsArg.enabled ?? true : typeof args[2] === "boolean" ? args[2] : true;
417
+ const selectArg = optionsArg?.$select;
619
418
  const mode = isInstanceSignature ? "offline" : void 0;
620
419
  const typeOrApiName = isInstanceSignature ? args[0].$objectType : args[0];
621
420
  const primaryKey = isInstanceSignature ? args[0].$primaryKey : args[1];
622
421
  const apiNameString = typeof typeOrApiName === "string" ? typeOrApiName : typeOrApiName.apiName;
422
+ const stableSelect = React4__default.default.useMemo(() => selectArg, [JSON.stringify(selectArg)]);
623
423
  const {
624
424
  subscribe,
625
425
  getSnapShot
626
- } = React9__default.default.useMemo(() => {
426
+ } = React4__default.default.useMemo(() => {
627
427
  if (!enabled) {
628
- return makeExternalStore(() => ({
428
+ return chunkSVVMLSKN_cjs.makeExternalStore(() => ({
629
429
  unsubscribe: () => {
630
430
  }
631
- }));
431
+ }), `object ${apiNameString} ${primaryKey} [DISABLED]`);
632
432
  }
633
- return makeExternalStore((observer) => observableClient.observeObject(typeOrApiName, primaryKey, {
634
- mode
635
- }, observer));
636
- }, [enabled, observableClient, typeOrApiName, apiNameString, primaryKey, mode]);
637
- const payload = React9__default.default.useSyncExternalStore(subscribe, getSnapShot);
638
- const forceUpdate = React9__default.default.useCallback(() => {
433
+ return chunkSVVMLSKN_cjs.makeExternalStore((observer) => observableClient.observeObject(typeOrApiName, primaryKey, {
434
+ mode,
435
+ ...stableSelect ? {
436
+ select: stableSelect
437
+ } : {}
438
+ }, observer), `object ${apiNameString} ${primaryKey}`);
439
+ }, [enabled, observableClient, typeOrApiName, apiNameString, primaryKey, mode, stableSelect]);
440
+ const payload = React4__default.default.useSyncExternalStore(subscribe, getSnapShot);
441
+ const forceUpdate = React4__default.default.useCallback(() => {
639
442
  throw new Error("not implemented");
640
443
  }, []);
641
- return React9__default.default.useMemo(() => {
444
+ return React4__default.default.useMemo(() => {
642
445
  let error;
643
446
  if (payload && "error" in payload && payload.error) {
644
447
  error = payload.error;
@@ -658,7 +461,7 @@ var EMPTY_WHERE2 = {};
658
461
  function useOsdkObjects(type, options) {
659
462
  const {
660
463
  observableClient
661
- } = React9__default.default.useContext(OsdkContext2);
464
+ } = React4__default.default.useContext(chunkSVVMLSKN_cjs.OsdkContext2);
662
465
  const {
663
466
  pageSize,
664
467
  dedupeIntervalMs,
@@ -670,25 +473,27 @@ function useOsdkObjects(type, options) {
670
473
  streamUpdates,
671
474
  autoFetchMore,
672
475
  intersectWith,
673
- pivotTo
476
+ pivotTo,
477
+ $select
674
478
  } = options ?? {};
675
479
  const canonWhere = observableClient.canonicalizeWhereClause(where ?? EMPTY_WHERE2);
676
- const stableCanonWhere = React9__default.default.useMemo(() => canonWhere, [JSON.stringify(canonWhere)]);
677
- const stableRids = React9__default.default.useMemo(() => rids, [JSON.stringify(rids)]);
678
- const stableWithProperties = React9__default.default.useMemo(() => withProperties, [JSON.stringify(withProperties)]);
679
- const stableIntersectWith = React9__default.default.useMemo(() => intersectWith, [JSON.stringify(intersectWith)]);
680
- const stableOrderBy = React9__default.default.useMemo(() => orderBy, [JSON.stringify(orderBy)]);
480
+ const stableCanonWhere = React4__default.default.useMemo(() => canonWhere, [JSON.stringify(canonWhere)]);
481
+ const stableRids = React4__default.default.useMemo(() => rids, [JSON.stringify(rids)]);
482
+ const stableWithProperties = React4__default.default.useMemo(() => withProperties, [JSON.stringify(withProperties)]);
483
+ const stableIntersectWith = React4__default.default.useMemo(() => intersectWith, [JSON.stringify(intersectWith)]);
484
+ const stableOrderBy = React4__default.default.useMemo(() => orderBy, [JSON.stringify(orderBy)]);
485
+ const stableSelect = React4__default.default.useMemo(() => $select, [JSON.stringify($select)]);
681
486
  const {
682
487
  subscribe,
683
488
  getSnapShot
684
- } = React9__default.default.useMemo(() => {
489
+ } = React4__default.default.useMemo(() => {
685
490
  if (!enabled) {
686
- return makeExternalStore(() => ({
491
+ return chunkSVVMLSKN_cjs.makeExternalStore(() => ({
687
492
  unsubscribe: () => {
688
493
  }
689
494
  }), process.env.NODE_ENV !== "production" ? `list ${type.apiName} [DISABLED]` : void 0);
690
495
  }
691
- return makeExternalStore((observer) => observableClient.observeList({
496
+ return chunkSVVMLSKN_cjs.makeExternalStore((observer) => observableClient.observeList({
692
497
  type,
693
498
  rids: stableRids,
694
499
  where: stableCanonWhere,
@@ -703,11 +508,14 @@ function useOsdkObjects(type, options) {
703
508
  } : {},
704
509
  ...pivotTo ? {
705
510
  pivotTo
511
+ } : {},
512
+ ...stableSelect ? {
513
+ select: stableSelect
706
514
  } : {}
707
515
  }, observer), process.env.NODE_ENV !== "production" ? `list ${type.apiName} ${stableRids ? `[${stableRids.length} rids]` : ""} ${JSON.stringify(stableCanonWhere)}` : void 0);
708
- }, [enabled, observableClient, type.apiName, type.type, stableRids, stableCanonWhere, dedupeIntervalMs, pageSize, stableOrderBy, streamUpdates, stableWithProperties, autoFetchMore, stableIntersectWith, pivotTo]);
709
- const listPayload = React9__default.default.useSyncExternalStore(subscribe, getSnapShot);
710
- return React9__default.default.useMemo(() => {
516
+ }, [enabled, observableClient, type.apiName, type.type, stableRids, stableCanonWhere, dedupeIntervalMs, pageSize, stableOrderBy, streamUpdates, stableWithProperties, autoFetchMore, stableIntersectWith, pivotTo, stableSelect]);
517
+ const listPayload = React4__default.default.useSyncExternalStore(subscribe, getSnapShot);
518
+ return React4__default.default.useMemo(() => {
711
519
  let error;
712
520
  if (listPayload && "error" in listPayload && listPayload.error) {
713
521
  error = listPayload.error;
@@ -725,31 +533,31 @@ function useOsdkObjects(type, options) {
725
533
  }, [listPayload, enabled]);
726
534
  }
727
535
  function useDebouncedCallback(callback, delay) {
728
- const timeoutRef = React9__default.default.useRef();
729
- const callbackRef = React9__default.default.useRef(callback);
730
- const lastArgsRef = React9__default.default.useRef();
536
+ const timeoutRef = React4__default.default.useRef();
537
+ const callbackRef = React4__default.default.useRef(callback);
538
+ const lastArgsRef = React4__default.default.useRef();
731
539
  callbackRef.current = callback;
732
- const cancel = React9__default.default.useCallback(() => {
540
+ const cancel = React4__default.default.useCallback(() => {
733
541
  if (timeoutRef.current) {
734
542
  clearTimeout(timeoutRef.current);
735
543
  timeoutRef.current = void 0;
736
544
  }
737
545
  }, []);
738
- const flush = React9__default.default.useCallback(() => {
546
+ const flush = React4__default.default.useCallback(() => {
739
547
  if (timeoutRef.current && lastArgsRef.current) {
740
548
  clearTimeout(timeoutRef.current);
741
549
  timeoutRef.current = void 0;
742
550
  void callbackRef.current(...lastArgsRef.current);
743
551
  }
744
552
  }, []);
745
- const debouncedCallback = React9__default.default.useCallback((...args) => {
553
+ const debouncedCallback = React4__default.default.useCallback((...args) => {
746
554
  lastArgsRef.current = args;
747
555
  cancel();
748
556
  timeoutRef.current = setTimeout(() => {
749
557
  void callbackRef.current(...args);
750
558
  }, delay);
751
559
  }, [delay, cancel]);
752
- React9__default.default.useEffect(() => {
560
+ React4__default.default.useEffect(() => {
753
561
  return () => {
754
562
  cancel();
755
563
  };
@@ -769,10 +577,7 @@ Object.defineProperty(exports, "useOsdkMetadata", {
769
577
  get: function () { return chunkOVBG5VXE_cjs.useOsdkMetadata; }
770
578
  });
771
579
  exports.OsdkProvider2 = OsdkProvider2;
772
- exports.useCurrentFoundryUser = useCurrentFoundryUser;
773
580
  exports.useDebouncedCallback = useDebouncedCallback;
774
- exports.useFoundryUser = useFoundryUser;
775
- exports.useFoundryUsersList = useFoundryUsersList;
776
581
  exports.useLinks = useLinks;
777
582
  exports.useObjectSet = useObjectSet;
778
583
  exports.useOsdkAction = useOsdkAction;