@halix/action-sdk 1.0.39 → 1.0.40
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.
- package/lib/cjs/data-crud.js +134 -37
- package/lib/cjs/index.js +6 -2
- package/lib/cjs/types/data-crud.d.ts +38 -5
- package/lib/cjs/types/data-crud.d.ts.map +1 -1
- package/lib/cjs/types/index.d.ts +1 -1
- package/lib/cjs/types/index.d.ts.map +1 -1
- package/lib/esm/data-crud.js +125 -36
- package/lib/esm/data-crud.js.map +1 -1
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/index.mjs +2 -2
- package/lib/esm/types/data-crud.d.ts +38 -5
- package/lib/esm/types/index.d.ts +1 -1
- package/package.json +1 -1
package/lib/cjs/data-crud.js
CHANGED
|
@@ -26,6 +26,10 @@ exports.getRelatedObjects = getRelatedObjects;
|
|
|
26
26
|
exports.getRelatedObjectsAsObservable = getRelatedObjectsAsObservable;
|
|
27
27
|
exports.getAccessibleObjects = getAccessibleObjects;
|
|
28
28
|
exports.getAccessibleObjectsAsObservable = getAccessibleObjectsAsObservable;
|
|
29
|
+
exports.getObjectsByKeys = getObjectsByKeys;
|
|
30
|
+
exports.getObjectsByKeysAsObservable = getObjectsByKeysAsObservable;
|
|
31
|
+
exports.saveObject = saveObject;
|
|
32
|
+
exports.saveObjectAsObservable = saveObjectAsObservable;
|
|
29
33
|
exports.saveRelatedObject = saveRelatedObject;
|
|
30
34
|
exports.saveRelatedObjectAsObservable = saveRelatedObjectAsObservable;
|
|
31
35
|
exports.deleteRelatedObject = deleteRelatedObject;
|
|
@@ -47,9 +51,10 @@ exports.deleteRelatedObjectsAsObservable = deleteRelatedObjectsAsObservable;
|
|
|
47
51
|
* @usage
|
|
48
52
|
* ## When to Use
|
|
49
53
|
* - **Read objects without specifying parent scope** → `getAccessibleObjects` (most common read)
|
|
54
|
+
* - **Read specific accessible objects by key list** → `getObjectsByKeys`
|
|
50
55
|
* - **Get single object by key** → `getObject`
|
|
51
56
|
* - **Get related objects (<50)** → `getRelatedObjects`
|
|
52
|
-
* - **Create/update single object** → `
|
|
57
|
+
* - **Create/update single object** → `saveObject`
|
|
53
58
|
* - **Delete single object** → `deleteRelatedObject`
|
|
54
59
|
*
|
|
55
60
|
* ## When NOT to Use
|
|
@@ -61,9 +66,11 @@ exports.deleteRelatedObjectsAsObservable = deleteRelatedObjectsAsObservable;
|
|
|
61
66
|
* | Function | Use For |
|
|
62
67
|
* |----------|---------|
|
|
63
68
|
* | `getAccessibleObjects` | Read objects the current user can access (no parent scope needed) |
|
|
69
|
+
* | `getObjectsByKeys` | Read accessible objects from a specific key list |
|
|
64
70
|
* | `getObject` | Single object by key |
|
|
65
71
|
* | `getRelatedObjects` | Children of a parent (small collections) |
|
|
66
|
-
* | `
|
|
72
|
+
* | `saveObject` | Create or update one object |
|
|
73
|
+
* | `saveRelatedObject` | Create or update one object and establish relationship to a parent |
|
|
67
74
|
* | `deleteRelatedObject` | Delete one object |
|
|
68
75
|
*
|
|
69
76
|
* @example
|
|
@@ -71,6 +78,10 @@ exports.deleteRelatedObjectsAsObservable = deleteRelatedObjectsAsObservable;
|
|
|
71
78
|
* const recipes = await hx.getAccessibleObjects('recipe');
|
|
72
79
|
*
|
|
73
80
|
* @example
|
|
81
|
+
* // Get accessible recipes from a known key list
|
|
82
|
+
* const recipes = await hx.getObjectsByKeys('recipe', recipeKeys);
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
74
85
|
* // Get single recipe
|
|
75
86
|
* const recipe = await hx.getObject('recipe', recipeKey);
|
|
76
87
|
*
|
|
@@ -81,7 +92,14 @@ exports.deleteRelatedObjectsAsObservable = deleteRelatedObjectsAsObservable;
|
|
|
81
92
|
* );
|
|
82
93
|
*
|
|
83
94
|
* @example
|
|
84
|
-
* // Save
|
|
95
|
+
* // Save a recipe
|
|
96
|
+
* await hx.saveObject(
|
|
97
|
+
* 'recipe',
|
|
98
|
+
* { name: 'Soup' }
|
|
99
|
+
* );
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* // Save new ingredient related to a recipe
|
|
85
103
|
* await hx.saveRelatedObject(
|
|
86
104
|
* 'recipe', recipeKey, 'ingredient',
|
|
87
105
|
* { name: 'Salt', amount: '1 tsp' }
|
|
@@ -184,35 +202,12 @@ function getRelatedObjectsAsObservable(parentElementId, parentKey, elementId, fi
|
|
|
184
202
|
*/
|
|
185
203
|
function getAccessibleObjects(dataElementId, filter, fetchedRelationships, applyContext) {
|
|
186
204
|
return __awaiter(this, void 0, void 0, function* () {
|
|
187
|
-
var _a, _b, _c;
|
|
188
205
|
if (!sdk_general_1.getAuthToken) {
|
|
189
206
|
const errorMessage = 'SDK not initialized.';
|
|
190
207
|
console.error(errorMessage);
|
|
191
208
|
throw new Error(errorMessage);
|
|
192
209
|
}
|
|
193
|
-
let params;
|
|
194
|
-
if (filter || fetchedRelationships || applyContext) {
|
|
195
|
-
let p = {};
|
|
196
|
-
if (filter) {
|
|
197
|
-
p.filter = filter;
|
|
198
|
-
}
|
|
199
|
-
if (fetchedRelationships) {
|
|
200
|
-
p.fetchedRelationships = fetchedRelationships.join(",");
|
|
201
|
-
}
|
|
202
|
-
if (applyContext) {
|
|
203
|
-
if (!(sdk_general_1.userContext === null || sdk_general_1.userContext === void 0 ? void 0 : sdk_general_1.userContext.navigationContext)) {
|
|
204
|
-
throw new Error("navigationContext is required but not available on userContext");
|
|
205
|
-
}
|
|
206
|
-
const navigationContext = sdk_general_1.userContext.navigationContext;
|
|
207
|
-
if (!navigationContext.navigationKey) {
|
|
208
|
-
throw new Error("navigationContext is missing navigationKey");
|
|
209
|
-
}
|
|
210
|
-
const userProxyKey = (_a = sdk_general_1.userContext.userProxyKey) !== null && _a !== void 0 ? _a : "";
|
|
211
|
-
const orgProxyKey = (_c = (_b = sdk_general_1.userContext.orgProxyKey) !== null && _b !== void 0 ? _b : navigationContext.orgProxyKey) !== null && _c !== void 0 ? _c : "";
|
|
212
|
-
p.applyContext = `${navigationContext.navigationKey}|${userProxyKey}|${orgProxyKey}`;
|
|
213
|
-
}
|
|
214
|
-
params = new URLSearchParams(p);
|
|
215
|
-
}
|
|
210
|
+
let params = buildAccessibleObjectsParams(filter, fetchedRelationships, applyContext);
|
|
216
211
|
let url = `${sdk_general_1.serviceAddress}/schema/sandboxes/${sdk_general_1.sandboxKey}/${dataElementId}`;
|
|
217
212
|
let authToken = yield (0, rxjs_1.lastValueFrom)((0, sdk_general_1.getAuthToken)());
|
|
218
213
|
console.log("Sending GET request to " + url + " with token " + authToken);
|
|
@@ -229,17 +224,83 @@ function getAccessibleObjects(dataElementId, filter, fetchedRelationships, apply
|
|
|
229
224
|
function getAccessibleObjectsAsObservable(dataElementId, filter, fetchedRelationships, applyContext) {
|
|
230
225
|
return (0, rxjs_1.from)(getAccessibleObjects(dataElementId, filter, fetchedRelationships, applyContext));
|
|
231
226
|
}
|
|
227
|
+
/**
|
|
228
|
+
* Retrieves accessible objects for a data element from a specific key list.
|
|
229
|
+
* Only objects that are accessible to the current user are returned. If applyContext is true, keyed objects outside the current navigation context are also omitted.
|
|
230
|
+
*
|
|
231
|
+
* @param dataElementId - Data element ID
|
|
232
|
+
* @param keys - Object keys to retrieve
|
|
233
|
+
* @param filter - Optional filter; call `dataexpr_agent` to generate the filter expression. Must be less than 200 characters.
|
|
234
|
+
* @param fetchedRelationships - Optional relationships to include as nested objects
|
|
235
|
+
* @param applyContext - Optional flag to apply navigation context scoping. When true, navigation context is read from UserContext.navigationContext and results are limited by the navigation context org proxy.
|
|
236
|
+
* @returns Promise<any[]>
|
|
237
|
+
*/
|
|
238
|
+
function getObjectsByKeys(dataElementId, keys, filter, fetchedRelationships, applyContext) {
|
|
239
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
240
|
+
if (!sdk_general_1.getAuthToken) {
|
|
241
|
+
const errorMessage = 'SDK not initialized.';
|
|
242
|
+
console.error(errorMessage);
|
|
243
|
+
throw new Error(errorMessage);
|
|
244
|
+
}
|
|
245
|
+
let params = buildAccessibleObjectsParams(filter, fetchedRelationships, applyContext, keys);
|
|
246
|
+
let url = `${sdk_general_1.serviceAddress}/schema/sandboxes/${sdk_general_1.sandboxKey}/${dataElementId}`;
|
|
247
|
+
let authToken = yield (0, rxjs_1.lastValueFrom)((0, sdk_general_1.getAuthToken)());
|
|
248
|
+
console.log("Sending GET request to " + url + " with token " + authToken);
|
|
249
|
+
let response = yield axios_1.default.get(url, {
|
|
250
|
+
headers: { "Authorization": `Bearer ${authToken}` },
|
|
251
|
+
params: params,
|
|
252
|
+
});
|
|
253
|
+
return response.data;
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Observable version of getObjectsByKeys. See getObjectsByKeys for details.
|
|
258
|
+
*/
|
|
259
|
+
function getObjectsByKeysAsObservable(dataElementId, keys, filter, fetchedRelationships, applyContext) {
|
|
260
|
+
return (0, rxjs_1.from)(getObjectsByKeys(dataElementId, keys, filter, fetchedRelationships, applyContext));
|
|
261
|
+
}
|
|
232
262
|
// ================================================================================
|
|
233
263
|
// DATA SAVE FUNCTIONS
|
|
234
264
|
// ================================================================================
|
|
235
265
|
/**
|
|
236
|
-
* Saves
|
|
266
|
+
* Saves an object without establishing a parent relationship. Returns saved object with any server-assigned values (objKey, calculated fields).
|
|
267
|
+
*
|
|
268
|
+
* @param dataElementId - Data element ID for the object being saved
|
|
269
|
+
* @param objectToSave - Object data or JSON string of object data
|
|
270
|
+
* @param opts - Optional save options (e.g., bypassValidation, fetchedRelationships)
|
|
271
|
+
* @returns Promise<any> - saved object with updates including server-assigned values (objKey, calculated fields)
|
|
272
|
+
*/
|
|
273
|
+
function saveObject(dataElementId, objectToSave, opts) {
|
|
274
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
275
|
+
if (!sdk_general_1.getAuthToken) {
|
|
276
|
+
const errorMessage = 'SDK not initialized.';
|
|
277
|
+
console.error(errorMessage);
|
|
278
|
+
throw new Error(errorMessage);
|
|
279
|
+
}
|
|
280
|
+
const queryString = buildSaveQueryString(opts);
|
|
281
|
+
let url = `${sdk_general_1.serviceAddress}/schema/sandboxes/${sdk_general_1.sandboxKey}/${dataElementId}?${queryString}`;
|
|
282
|
+
let authToken = yield (0, rxjs_1.lastValueFrom)((0, sdk_general_1.getAuthToken)());
|
|
283
|
+
console.log("Sending POST request to " + url + " with token " + authToken);
|
|
284
|
+
let response = yield axios_1.default.post(url, objectToSave, {
|
|
285
|
+
headers: { "Authorization": `Bearer ${authToken}` },
|
|
286
|
+
});
|
|
287
|
+
return response.data;
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Observable version of saveObject. See saveObject for details.
|
|
292
|
+
*/
|
|
293
|
+
function saveObjectAsObservable(dataElementId, objectToSave, opts) {
|
|
294
|
+
return (0, rxjs_1.from)(saveObject(dataElementId, objectToSave, opts));
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Saves a related object and establishes or updates its relationship to a parent. Returns saved object with any server-assigned values (objKey, calculated fields).
|
|
237
298
|
*
|
|
238
299
|
* @param parentElementId - Parent element ID
|
|
239
300
|
* @param parentKey - Parent object key; important: this establishes the scope of the save operation; use an appropriate scope Key
|
|
240
301
|
* @param elementId - Child element ID for the object being saved
|
|
241
|
-
* @param objectToSave - JSON string of object data
|
|
242
|
-
* @param opts - Optional save options (e.g., bypassValidation)
|
|
302
|
+
* @param objectToSave - Object data or JSON string of object data
|
|
303
|
+
* @param opts - Optional save options (e.g., bypassValidation, fetchedRelationships)
|
|
243
304
|
* @returns Promise<any> - saved object with updates including server-assigned values (objKey, calculated fields)
|
|
244
305
|
*/
|
|
245
306
|
function saveRelatedObject(parentElementId, parentKey, elementId, objectToSave, opts) {
|
|
@@ -249,13 +310,8 @@ function saveRelatedObject(parentElementId, parentKey, elementId, objectToSave,
|
|
|
249
310
|
console.error(errorMessage);
|
|
250
311
|
throw new Error(errorMessage);
|
|
251
312
|
}
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
url += "?bypassValidation=false";
|
|
255
|
-
}
|
|
256
|
-
else {
|
|
257
|
-
url += "?bypassValidation=true";
|
|
258
|
-
}
|
|
313
|
+
const queryString = buildSaveQueryString(opts);
|
|
314
|
+
let url = `${sdk_general_1.serviceAddress}/schema/sandboxes/${sdk_general_1.sandboxKey}/${parentElementId}/${parentKey}/${elementId}?${queryString}`;
|
|
259
315
|
let authToken = yield (0, rxjs_1.lastValueFrom)((0, sdk_general_1.getAuthToken)());
|
|
260
316
|
console.log("Sending POST request to " + url + " with token " + authToken);
|
|
261
317
|
let response = yield axios_1.default.post(url, objectToSave, {
|
|
@@ -335,3 +391,44 @@ function deleteRelatedObjects(parentElementId, parentKey, childElementId, childK
|
|
|
335
391
|
function deleteRelatedObjectsAsObservable(parentElementId, parentKey, childElementId, childKeys) {
|
|
336
392
|
return (0, rxjs_1.from)(deleteRelatedObjects(parentElementId, parentKey, childElementId, childKeys));
|
|
337
393
|
}
|
|
394
|
+
// ================================================================================
|
|
395
|
+
// LOCAL HELPERS
|
|
396
|
+
// ================================================================================
|
|
397
|
+
function buildAccessibleObjectsParams(filter, fetchedRelationships, applyContext, keys) {
|
|
398
|
+
var _a, _b, _c;
|
|
399
|
+
let params;
|
|
400
|
+
if (filter || fetchedRelationships || applyContext || keys) {
|
|
401
|
+
let p = {};
|
|
402
|
+
if (filter) {
|
|
403
|
+
p.filter = filter;
|
|
404
|
+
}
|
|
405
|
+
if (fetchedRelationships) {
|
|
406
|
+
p.fetchedRelationships = fetchedRelationships.join(",");
|
|
407
|
+
}
|
|
408
|
+
if (keys) {
|
|
409
|
+
p.keys = keys.join(",");
|
|
410
|
+
}
|
|
411
|
+
if (applyContext) {
|
|
412
|
+
if (!(sdk_general_1.userContext === null || sdk_general_1.userContext === void 0 ? void 0 : sdk_general_1.userContext.navigationContext)) {
|
|
413
|
+
throw new Error("navigationContext is required but not available on userContext");
|
|
414
|
+
}
|
|
415
|
+
const navigationContext = sdk_general_1.userContext.navigationContext;
|
|
416
|
+
if (!navigationContext.navigationKey) {
|
|
417
|
+
throw new Error("navigationContext is missing navigationKey");
|
|
418
|
+
}
|
|
419
|
+
const userProxyKey = (_a = sdk_general_1.userContext.userProxyKey) !== null && _a !== void 0 ? _a : "";
|
|
420
|
+
const orgProxyKey = (_c = (_b = sdk_general_1.userContext.orgProxyKey) !== null && _b !== void 0 ? _b : navigationContext.orgProxyKey) !== null && _c !== void 0 ? _c : "";
|
|
421
|
+
p.applyContext = `${navigationContext.navigationKey}|${userProxyKey}|${orgProxyKey}`;
|
|
422
|
+
}
|
|
423
|
+
params = new URLSearchParams(p);
|
|
424
|
+
}
|
|
425
|
+
return params;
|
|
426
|
+
}
|
|
427
|
+
function buildSaveQueryString(opts) {
|
|
428
|
+
const params = new URLSearchParams();
|
|
429
|
+
params.set("bypassValidation", (opts === null || opts === void 0 ? void 0 : opts.bypassValidation) === false ? "false" : "true");
|
|
430
|
+
if (opts === null || opts === void 0 ? void 0 : opts.fetchedRelationships) {
|
|
431
|
+
params.set("fetchedRelationships", opts.fetchedRelationships.join(","));
|
|
432
|
+
}
|
|
433
|
+
return params.toString();
|
|
434
|
+
}
|
package/lib/cjs/index.js
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
// Unauthorized use outside the Halix platform is prohibited.
|
|
9
9
|
// Full license terms available in the LICENSE file.
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.
|
|
12
|
-
exports.debounceFn = exports.getValueFromObject = exports.compareValues = exports.sortObjectArray = void 0;
|
|
11
|
+
exports.getAggregateDataAsObservable = exports.getAggregateData = exports.AggregationResponse = exports.massDeleteAsObservable = exports.massDelete = exports.massEditAsObservable = exports.massEdit = exports.getListDataAsObservable = exports.getListData = exports.getOrganizationPreferenceAsObservable = exports.getUserPreferenceAsObservable = exports.getOrganizationPreference = exports.getUserPreference = exports.sendMessageAsObservable = exports.sendMessage = exports.MessageMethod = exports.createOrUpdateResourceAsObservable = exports.createOrUpdateResource = exports.sendFileContentsAsObservable = exports.sendFileContents = exports.saveResourceAsObservable = exports.saveResource = exports.getOrCreateResourceAsObservable = exports.getOrCreateResource = exports.deleteRelatedObjectsAsObservable = exports.deleteRelatedObjects = exports.deleteRelatedObjectAsObservable = exports.deleteRelatedObject = exports.saveRelatedObjectAsObservable = exports.saveRelatedObject = exports.saveObjectAsObservable = exports.saveObject = exports.getObjectsByKeysAsObservable = exports.getObjectsByKeys = exports.getAccessibleObjectsAsObservable = exports.getAccessibleObjects = exports.getRelatedObjectsAsObservable = exports.getRelatedObjects = exports.getObjectAsObservable = exports.getObject = exports.prepareErrorResponse = exports.prepareSuccessResponse = exports.initialize = exports.useBody = exports.params = exports.userContext = exports.actionSubject = exports.serviceAddress = exports.sandboxKey = exports.getAuthToken = void 0;
|
|
12
|
+
exports.debounceFn = exports.getValueFromObject = exports.compareValues = exports.sortObjectArray = exports.sendAIMessageAsObservable = exports.sendAIMessage = exports.submitStandalonePaymentAsObservable = exports.submitStandalonePayment = void 0;
|
|
13
13
|
/**
|
|
14
14
|
* @module @halix/action-sdk
|
|
15
15
|
* @description Halix Platform action SDK for developing NodeJS Lambda-based actions on the Halix
|
|
@@ -43,7 +43,11 @@ Object.defineProperty(exports, "getRelatedObjects", { enumerable: true, get: fun
|
|
|
43
43
|
Object.defineProperty(exports, "getRelatedObjectsAsObservable", { enumerable: true, get: function () { return data_crud_1.getRelatedObjectsAsObservable; } });
|
|
44
44
|
Object.defineProperty(exports, "getAccessibleObjects", { enumerable: true, get: function () { return data_crud_1.getAccessibleObjects; } });
|
|
45
45
|
Object.defineProperty(exports, "getAccessibleObjectsAsObservable", { enumerable: true, get: function () { return data_crud_1.getAccessibleObjectsAsObservable; } });
|
|
46
|
+
Object.defineProperty(exports, "getObjectsByKeys", { enumerable: true, get: function () { return data_crud_1.getObjectsByKeys; } });
|
|
47
|
+
Object.defineProperty(exports, "getObjectsByKeysAsObservable", { enumerable: true, get: function () { return data_crud_1.getObjectsByKeysAsObservable; } });
|
|
46
48
|
// Data Save
|
|
49
|
+
Object.defineProperty(exports, "saveObject", { enumerable: true, get: function () { return data_crud_1.saveObject; } });
|
|
50
|
+
Object.defineProperty(exports, "saveObjectAsObservable", { enumerable: true, get: function () { return data_crud_1.saveObjectAsObservable; } });
|
|
47
51
|
Object.defineProperty(exports, "saveRelatedObject", { enumerable: true, get: function () { return data_crud_1.saveRelatedObject; } });
|
|
48
52
|
Object.defineProperty(exports, "saveRelatedObjectAsObservable", { enumerable: true, get: function () { return data_crud_1.saveRelatedObjectAsObservable; } });
|
|
49
53
|
// Data Delete
|
|
@@ -5,7 +5,10 @@ import { Observable } from 'rxjs';
|
|
|
5
5
|
export interface SaveOptions {
|
|
6
6
|
/** Whether to bypass validation */
|
|
7
7
|
bypassValidation?: boolean;
|
|
8
|
+
/** Optional relationships to include as nested objects in the saved response */
|
|
9
|
+
fetchedRelationships?: string[];
|
|
8
10
|
}
|
|
11
|
+
type SaveBody = string | object;
|
|
9
12
|
/**
|
|
10
13
|
* Retrieves a single object by dataElementId and key. Optionally fetch related objects.
|
|
11
14
|
*
|
|
@@ -46,20 +49,49 @@ export declare function getAccessibleObjects(dataElementId: string, filter?: str
|
|
|
46
49
|
*/
|
|
47
50
|
export declare function getAccessibleObjectsAsObservable(dataElementId: string, filter?: string, fetchedRelationships?: string[], applyContext?: boolean): Observable<any[]>;
|
|
48
51
|
/**
|
|
49
|
-
*
|
|
52
|
+
* Retrieves accessible objects for a data element from a specific key list.
|
|
53
|
+
* Only objects that are accessible to the current user are returned. If applyContext is true, keyed objects outside the current navigation context are also omitted.
|
|
54
|
+
*
|
|
55
|
+
* @param dataElementId - Data element ID
|
|
56
|
+
* @param keys - Object keys to retrieve
|
|
57
|
+
* @param filter - Optional filter; call `dataexpr_agent` to generate the filter expression. Must be less than 200 characters.
|
|
58
|
+
* @param fetchedRelationships - Optional relationships to include as nested objects
|
|
59
|
+
* @param applyContext - Optional flag to apply navigation context scoping. When true, navigation context is read from UserContext.navigationContext and results are limited by the navigation context org proxy.
|
|
60
|
+
* @returns Promise<any[]>
|
|
61
|
+
*/
|
|
62
|
+
export declare function getObjectsByKeys(dataElementId: string, keys: string[], filter?: string, fetchedRelationships?: string[], applyContext?: boolean): Promise<any[]>;
|
|
63
|
+
/**
|
|
64
|
+
* Observable version of getObjectsByKeys. See getObjectsByKeys for details.
|
|
65
|
+
*/
|
|
66
|
+
export declare function getObjectsByKeysAsObservable(dataElementId: string, keys: string[], filter?: string, fetchedRelationships?: string[], applyContext?: boolean): Observable<any[]>;
|
|
67
|
+
/**
|
|
68
|
+
* Saves an object without establishing a parent relationship. Returns saved object with any server-assigned values (objKey, calculated fields).
|
|
69
|
+
*
|
|
70
|
+
* @param dataElementId - Data element ID for the object being saved
|
|
71
|
+
* @param objectToSave - Object data or JSON string of object data
|
|
72
|
+
* @param opts - Optional save options (e.g., bypassValidation, fetchedRelationships)
|
|
73
|
+
* @returns Promise<any> - saved object with updates including server-assigned values (objKey, calculated fields)
|
|
74
|
+
*/
|
|
75
|
+
export declare function saveObject(dataElementId: string, objectToSave: SaveBody, opts?: SaveOptions): Promise<any>;
|
|
76
|
+
/**
|
|
77
|
+
* Observable version of saveObject. See saveObject for details.
|
|
78
|
+
*/
|
|
79
|
+
export declare function saveObjectAsObservable(dataElementId: string, objectToSave: SaveBody, opts?: SaveOptions): Observable<any>;
|
|
80
|
+
/**
|
|
81
|
+
* Saves a related object and establishes or updates its relationship to a parent. Returns saved object with any server-assigned values (objKey, calculated fields).
|
|
50
82
|
*
|
|
51
83
|
* @param parentElementId - Parent element ID
|
|
52
84
|
* @param parentKey - Parent object key; important: this establishes the scope of the save operation; use an appropriate scope Key
|
|
53
85
|
* @param elementId - Child element ID for the object being saved
|
|
54
|
-
* @param objectToSave - JSON string of object data
|
|
55
|
-
* @param opts - Optional save options (e.g., bypassValidation)
|
|
86
|
+
* @param objectToSave - Object data or JSON string of object data
|
|
87
|
+
* @param opts - Optional save options (e.g., bypassValidation, fetchedRelationships)
|
|
56
88
|
* @returns Promise<any> - saved object with updates including server-assigned values (objKey, calculated fields)
|
|
57
89
|
*/
|
|
58
|
-
export declare function saveRelatedObject(parentElementId: string, parentKey: string, elementId: string, objectToSave:
|
|
90
|
+
export declare function saveRelatedObject(parentElementId: string, parentKey: string, elementId: string, objectToSave: SaveBody, opts?: SaveOptions): Promise<any>;
|
|
59
91
|
/**
|
|
60
92
|
* Observable version of saveRelatedObject. See saveRelatedObject for details.
|
|
61
93
|
*/
|
|
62
|
-
export declare function saveRelatedObjectAsObservable(parentElementId: string, parentKey: string, elementId: string, objectToSave:
|
|
94
|
+
export declare function saveRelatedObjectAsObservable(parentElementId: string, parentKey: string, elementId: string, objectToSave: SaveBody, opts?: SaveOptions): Observable<any>;
|
|
63
95
|
/**
|
|
64
96
|
* Deletes a single object related to a parent.
|
|
65
97
|
*
|
|
@@ -81,4 +113,5 @@ export declare function deleteRelatedObjects(parentElementId: string, parentKey:
|
|
|
81
113
|
* Observable version of deleteRelatedObjects. See deleteRelatedObjects for details.
|
|
82
114
|
*/
|
|
83
115
|
export declare function deleteRelatedObjectsAsObservable(parentElementId: string, parentKey: string, childElementId: string, childKeys: string[]): Observable<boolean>;
|
|
116
|
+
export {};
|
|
84
117
|
//# sourceMappingURL=data-crud.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-crud.d.ts","sourceRoot":"","sources":["../../../src/data-crud.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data-crud.d.ts","sourceRoot":"","sources":["../../../src/data-crud.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/types/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* platform. This is the main entry point that provides a unified interface for all SDK functionality.
|
|
5
5
|
*/
|
|
6
6
|
export { getAuthToken, sandboxKey, serviceAddress, actionSubject, userContext, params, useBody, initialize, type UserContext, type IncomingEventBody, type BaseActionResponse, type ActionResponse, type NotificationConfig, type ListActionResponse, type FormTemplateActionResponse, type PageTemplateActionResponse, type ObjectSaveActionResponse, type CalculatedFieldActionResponse, type SingleValueActionResponse, type ErrorResponse, prepareSuccessResponse, prepareErrorResponse } from './sdk-general';
|
|
7
|
-
export { type SaveOptions, getObject, getObjectAsObservable, getRelatedObjects, getRelatedObjectsAsObservable, getAccessibleObjects, getAccessibleObjectsAsObservable, saveRelatedObject, saveRelatedObjectAsObservable, deleteRelatedObject, deleteRelatedObjectAsObservable, deleteRelatedObjects, deleteRelatedObjectsAsObservable } from './data-crud';
|
|
7
|
+
export { type SaveOptions, getObject, getObjectAsObservable, getRelatedObjects, getRelatedObjectsAsObservable, getAccessibleObjects, getAccessibleObjectsAsObservable, getObjectsByKeys, getObjectsByKeysAsObservable, saveObject, saveObjectAsObservable, saveRelatedObject, saveRelatedObjectAsObservable, deleteRelatedObject, deleteRelatedObjectAsObservable, deleteRelatedObjects, deleteRelatedObjectsAsObservable } from './data-crud';
|
|
8
8
|
export { type ContentResource, getOrCreateResource, getOrCreateResourceAsObservable, saveResource, saveResourceAsObservable, sendFileContents, sendFileContentsAsObservable, createOrUpdateResource, createOrUpdateResourceAsObservable } from './content';
|
|
9
9
|
export { MessageMethod, type MessageRequest, sendMessage, sendMessageAsObservable } from './messaging';
|
|
10
10
|
export { getUserPreference, getOrganizationPreference, getUserPreferenceAsObservable, getOrganizationPreferenceAsObservable } from './preferences';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AASA;;;;GAIG;AAMH,OAAO,EAEH,YAAY,EACZ,UAAU,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,MAAM,EACN,OAAO,EAGP,UAAU,EAGV,KAAK,WAAW,EAChB,KAAK,iBAAiB,EAGtB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,6BAA6B,EAClC,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAGlB,sBAAsB,EACtB,oBAAoB,EACvB,MAAM,eAAe,CAAC;AAMvB,OAAO,EAEH,KAAK,WAAW,EAGhB,SAAS,EACT,qBAAqB,EACrB,iBAAiB,EACjB,6BAA6B,EAC7B,oBAAoB,EACpB,gCAAgC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AASA;;;;GAIG;AAMH,OAAO,EAEH,YAAY,EACZ,UAAU,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,MAAM,EACN,OAAO,EAGP,UAAU,EAGV,KAAK,WAAW,EAChB,KAAK,iBAAiB,EAGtB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,6BAA6B,EAClC,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAGlB,sBAAsB,EACtB,oBAAoB,EACvB,MAAM,eAAe,CAAC;AAMvB,OAAO,EAEH,KAAK,WAAW,EAGhB,SAAS,EACT,qBAAqB,EACrB,iBAAiB,EACjB,6BAA6B,EAC7B,oBAAoB,EACpB,gCAAgC,EAChC,gBAAgB,EAChB,4BAA4B,EAG5B,UAAU,EACV,sBAAsB,EACtB,iBAAiB,EACjB,6BAA6B,EAG7B,mBAAmB,EACnB,+BAA+B,EAC/B,oBAAoB,EACpB,gCAAgC,EACnC,MAAM,aAAa,CAAC;AAMrB,OAAO,EAEH,KAAK,eAAe,EAGpB,mBAAmB,EACnB,+BAA+B,EAC/B,YAAY,EACZ,wBAAwB,EACxB,gBAAgB,EAChB,4BAA4B,EAC5B,sBAAsB,EACtB,kCAAkC,EACrC,MAAM,WAAW,CAAC;AAMnB,OAAO,EAEH,aAAa,EAGb,KAAK,cAAc,EAGnB,WAAW,EACX,uBAAuB,EAC1B,MAAM,aAAa,CAAC;AAMrB,OAAO,EAEH,iBAAiB,EACjB,yBAAyB,EACzB,6BAA6B,EAC7B,qCAAqC,EACxC,MAAM,eAAe,CAAC;AAMvB,OAAO,EAEH,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAGvB,WAAW,EACX,uBAAuB,EACvB,QAAQ,EACR,oBAAoB,EACpB,UAAU,EACV,sBAAsB,EACzB,MAAM,SAAS,CAAC;AAMjB,OAAO,EAEH,mBAAmB,EAGnB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAClB,KAAK,eAAe,EAGpB,gBAAgB,EAChB,4BAA4B,EAC/B,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAEH,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAG5B,uBAAuB,EACvB,mCAAmC,EACtC,MAAM,YAAY,CAAC;AAMpB,OAAO,EAEH,KAAK,gBAAgB,EAGrB,aAAa,EACb,yBAAyB,EAC5B,MAAM,MAAM,CAAC;AAMd,OAAO,EACH,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,UAAU,EACb,MAAM,aAAa,CAAC"}
|
package/lib/esm/data-crud.js
CHANGED
|
@@ -21,9 +21,10 @@
|
|
|
21
21
|
* @usage
|
|
22
22
|
* ## When to Use
|
|
23
23
|
* - **Read objects without specifying parent scope** → `getAccessibleObjects` (most common read)
|
|
24
|
+
* - **Read specific accessible objects by key list** → `getObjectsByKeys`
|
|
24
25
|
* - **Get single object by key** → `getObject`
|
|
25
26
|
* - **Get related objects (<50)** → `getRelatedObjects`
|
|
26
|
-
* - **Create/update single object** → `
|
|
27
|
+
* - **Create/update single object** → `saveObject`
|
|
27
28
|
* - **Delete single object** → `deleteRelatedObject`
|
|
28
29
|
*
|
|
29
30
|
* ## When NOT to Use
|
|
@@ -35,9 +36,11 @@
|
|
|
35
36
|
* | Function | Use For |
|
|
36
37
|
* |----------|---------|
|
|
37
38
|
* | `getAccessibleObjects` | Read objects the current user can access (no parent scope needed) |
|
|
39
|
+
* | `getObjectsByKeys` | Read accessible objects from a specific key list |
|
|
38
40
|
* | `getObject` | Single object by key |
|
|
39
41
|
* | `getRelatedObjects` | Children of a parent (small collections) |
|
|
40
|
-
* | `
|
|
42
|
+
* | `saveObject` | Create or update one object |
|
|
43
|
+
* | `saveRelatedObject` | Create or update one object and establish relationship to a parent |
|
|
41
44
|
* | `deleteRelatedObject` | Delete one object |
|
|
42
45
|
*
|
|
43
46
|
* @example
|
|
@@ -45,6 +48,10 @@
|
|
|
45
48
|
* const recipes = await hx.getAccessibleObjects('recipe');
|
|
46
49
|
*
|
|
47
50
|
* @example
|
|
51
|
+
* // Get accessible recipes from a known key list
|
|
52
|
+
* const recipes = await hx.getObjectsByKeys('recipe', recipeKeys);
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
48
55
|
* // Get single recipe
|
|
49
56
|
* const recipe = await hx.getObject('recipe', recipeKey);
|
|
50
57
|
*
|
|
@@ -55,7 +62,14 @@
|
|
|
55
62
|
* );
|
|
56
63
|
*
|
|
57
64
|
* @example
|
|
58
|
-
* // Save
|
|
65
|
+
* // Save a recipe
|
|
66
|
+
* await hx.saveObject(
|
|
67
|
+
* 'recipe',
|
|
68
|
+
* { name: 'Soup' }
|
|
69
|
+
* );
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* // Save new ingredient related to a recipe
|
|
59
73
|
* await hx.saveRelatedObject(
|
|
60
74
|
* 'recipe', recipeKey, 'ingredient',
|
|
61
75
|
* { name: 'Salt', amount: '1 tsp' }
|
|
@@ -158,29 +172,7 @@ export async function getAccessibleObjects(dataElementId, filter, fetchedRelatio
|
|
|
158
172
|
console.error(errorMessage);
|
|
159
173
|
throw new Error(errorMessage);
|
|
160
174
|
}
|
|
161
|
-
let params;
|
|
162
|
-
if (filter || fetchedRelationships || applyContext) {
|
|
163
|
-
let p = {};
|
|
164
|
-
if (filter) {
|
|
165
|
-
p.filter = filter;
|
|
166
|
-
}
|
|
167
|
-
if (fetchedRelationships) {
|
|
168
|
-
p.fetchedRelationships = fetchedRelationships.join(",");
|
|
169
|
-
}
|
|
170
|
-
if (applyContext) {
|
|
171
|
-
if (!userContext?.navigationContext) {
|
|
172
|
-
throw new Error("navigationContext is required but not available on userContext");
|
|
173
|
-
}
|
|
174
|
-
const navigationContext = userContext.navigationContext;
|
|
175
|
-
if (!navigationContext.navigationKey) {
|
|
176
|
-
throw new Error("navigationContext is missing navigationKey");
|
|
177
|
-
}
|
|
178
|
-
const userProxyKey = userContext.userProxyKey ?? "";
|
|
179
|
-
const orgProxyKey = userContext.orgProxyKey ?? navigationContext.orgProxyKey ?? "";
|
|
180
|
-
p.applyContext = `${navigationContext.navigationKey}|${userProxyKey}|${orgProxyKey}`;
|
|
181
|
-
}
|
|
182
|
-
params = new URLSearchParams(p);
|
|
183
|
-
}
|
|
175
|
+
let params = buildAccessibleObjectsParams(filter, fetchedRelationships, applyContext);
|
|
184
176
|
let url = `${serviceAddress}/schema/sandboxes/${sandboxKey}/${dataElementId}`;
|
|
185
177
|
let authToken = await lastValueFrom(getAuthToken());
|
|
186
178
|
console.log("Sending GET request to " + url + " with token " + authToken);
|
|
@@ -196,17 +188,79 @@ export async function getAccessibleObjects(dataElementId, filter, fetchedRelatio
|
|
|
196
188
|
export function getAccessibleObjectsAsObservable(dataElementId, filter, fetchedRelationships, applyContext) {
|
|
197
189
|
return from(getAccessibleObjects(dataElementId, filter, fetchedRelationships, applyContext));
|
|
198
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* Retrieves accessible objects for a data element from a specific key list.
|
|
193
|
+
* Only objects that are accessible to the current user are returned. If applyContext is true, keyed objects outside the current navigation context are also omitted.
|
|
194
|
+
*
|
|
195
|
+
* @param dataElementId - Data element ID
|
|
196
|
+
* @param keys - Object keys to retrieve
|
|
197
|
+
* @param filter - Optional filter; call `dataexpr_agent` to generate the filter expression. Must be less than 200 characters.
|
|
198
|
+
* @param fetchedRelationships - Optional relationships to include as nested objects
|
|
199
|
+
* @param applyContext - Optional flag to apply navigation context scoping. When true, navigation context is read from UserContext.navigationContext and results are limited by the navigation context org proxy.
|
|
200
|
+
* @returns Promise<any[]>
|
|
201
|
+
*/
|
|
202
|
+
export async function getObjectsByKeys(dataElementId, keys, filter, fetchedRelationships, applyContext) {
|
|
203
|
+
if (!getAuthToken) {
|
|
204
|
+
const errorMessage = 'SDK not initialized.';
|
|
205
|
+
console.error(errorMessage);
|
|
206
|
+
throw new Error(errorMessage);
|
|
207
|
+
}
|
|
208
|
+
let params = buildAccessibleObjectsParams(filter, fetchedRelationships, applyContext, keys);
|
|
209
|
+
let url = `${serviceAddress}/schema/sandboxes/${sandboxKey}/${dataElementId}`;
|
|
210
|
+
let authToken = await lastValueFrom(getAuthToken());
|
|
211
|
+
console.log("Sending GET request to " + url + " with token " + authToken);
|
|
212
|
+
let response = await axios.get(url, {
|
|
213
|
+
headers: { "Authorization": `Bearer ${authToken}` },
|
|
214
|
+
params: params,
|
|
215
|
+
});
|
|
216
|
+
return response.data;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Observable version of getObjectsByKeys. See getObjectsByKeys for details.
|
|
220
|
+
*/
|
|
221
|
+
export function getObjectsByKeysAsObservable(dataElementId, keys, filter, fetchedRelationships, applyContext) {
|
|
222
|
+
return from(getObjectsByKeys(dataElementId, keys, filter, fetchedRelationships, applyContext));
|
|
223
|
+
}
|
|
199
224
|
// ================================================================================
|
|
200
225
|
// DATA SAVE FUNCTIONS
|
|
201
226
|
// ================================================================================
|
|
202
227
|
/**
|
|
203
|
-
* Saves
|
|
228
|
+
* Saves an object without establishing a parent relationship. Returns saved object with any server-assigned values (objKey, calculated fields).
|
|
229
|
+
*
|
|
230
|
+
* @param dataElementId - Data element ID for the object being saved
|
|
231
|
+
* @param objectToSave - Object data or JSON string of object data
|
|
232
|
+
* @param opts - Optional save options (e.g., bypassValidation, fetchedRelationships)
|
|
233
|
+
* @returns Promise<any> - saved object with updates including server-assigned values (objKey, calculated fields)
|
|
234
|
+
*/
|
|
235
|
+
export async function saveObject(dataElementId, objectToSave, opts) {
|
|
236
|
+
if (!getAuthToken) {
|
|
237
|
+
const errorMessage = 'SDK not initialized.';
|
|
238
|
+
console.error(errorMessage);
|
|
239
|
+
throw new Error(errorMessage);
|
|
240
|
+
}
|
|
241
|
+
const queryString = buildSaveQueryString(opts);
|
|
242
|
+
let url = `${serviceAddress}/schema/sandboxes/${sandboxKey}/${dataElementId}?${queryString}`;
|
|
243
|
+
let authToken = await lastValueFrom(getAuthToken());
|
|
244
|
+
console.log("Sending POST request to " + url + " with token " + authToken);
|
|
245
|
+
let response = await axios.post(url, objectToSave, {
|
|
246
|
+
headers: { "Authorization": `Bearer ${authToken}` },
|
|
247
|
+
});
|
|
248
|
+
return response.data;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Observable version of saveObject. See saveObject for details.
|
|
252
|
+
*/
|
|
253
|
+
export function saveObjectAsObservable(dataElementId, objectToSave, opts) {
|
|
254
|
+
return from(saveObject(dataElementId, objectToSave, opts));
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Saves a related object and establishes or updates its relationship to a parent. Returns saved object with any server-assigned values (objKey, calculated fields).
|
|
204
258
|
*
|
|
205
259
|
* @param parentElementId - Parent element ID
|
|
206
260
|
* @param parentKey - Parent object key; important: this establishes the scope of the save operation; use an appropriate scope Key
|
|
207
261
|
* @param elementId - Child element ID for the object being saved
|
|
208
|
-
* @param objectToSave - JSON string of object data
|
|
209
|
-
* @param opts - Optional save options (e.g., bypassValidation)
|
|
262
|
+
* @param objectToSave - Object data or JSON string of object data
|
|
263
|
+
* @param opts - Optional save options (e.g., bypassValidation, fetchedRelationships)
|
|
210
264
|
* @returns Promise<any> - saved object with updates including server-assigned values (objKey, calculated fields)
|
|
211
265
|
*/
|
|
212
266
|
export async function saveRelatedObject(parentElementId, parentKey, elementId, objectToSave, opts) {
|
|
@@ -215,13 +269,8 @@ export async function saveRelatedObject(parentElementId, parentKey, elementId, o
|
|
|
215
269
|
console.error(errorMessage);
|
|
216
270
|
throw new Error(errorMessage);
|
|
217
271
|
}
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
url += "?bypassValidation=false";
|
|
221
|
-
}
|
|
222
|
-
else {
|
|
223
|
-
url += "?bypassValidation=true";
|
|
224
|
-
}
|
|
272
|
+
const queryString = buildSaveQueryString(opts);
|
|
273
|
+
let url = `${serviceAddress}/schema/sandboxes/${sandboxKey}/${parentElementId}/${parentKey}/${elementId}?${queryString}`;
|
|
225
274
|
let authToken = await lastValueFrom(getAuthToken());
|
|
226
275
|
console.log("Sending POST request to " + url + " with token " + authToken);
|
|
227
276
|
let response = await axios.post(url, objectToSave, {
|
|
@@ -296,4 +345,44 @@ export async function deleteRelatedObjects(parentElementId, parentKey, childElem
|
|
|
296
345
|
export function deleteRelatedObjectsAsObservable(parentElementId, parentKey, childElementId, childKeys) {
|
|
297
346
|
return from(deleteRelatedObjects(parentElementId, parentKey, childElementId, childKeys));
|
|
298
347
|
}
|
|
348
|
+
// ================================================================================
|
|
349
|
+
// LOCAL HELPERS
|
|
350
|
+
// ================================================================================
|
|
351
|
+
function buildAccessibleObjectsParams(filter, fetchedRelationships, applyContext, keys) {
|
|
352
|
+
let params;
|
|
353
|
+
if (filter || fetchedRelationships || applyContext || keys) {
|
|
354
|
+
let p = {};
|
|
355
|
+
if (filter) {
|
|
356
|
+
p.filter = filter;
|
|
357
|
+
}
|
|
358
|
+
if (fetchedRelationships) {
|
|
359
|
+
p.fetchedRelationships = fetchedRelationships.join(",");
|
|
360
|
+
}
|
|
361
|
+
if (keys) {
|
|
362
|
+
p.keys = keys.join(",");
|
|
363
|
+
}
|
|
364
|
+
if (applyContext) {
|
|
365
|
+
if (!userContext?.navigationContext) {
|
|
366
|
+
throw new Error("navigationContext is required but not available on userContext");
|
|
367
|
+
}
|
|
368
|
+
const navigationContext = userContext.navigationContext;
|
|
369
|
+
if (!navigationContext.navigationKey) {
|
|
370
|
+
throw new Error("navigationContext is missing navigationKey");
|
|
371
|
+
}
|
|
372
|
+
const userProxyKey = userContext.userProxyKey ?? "";
|
|
373
|
+
const orgProxyKey = userContext.orgProxyKey ?? navigationContext.orgProxyKey ?? "";
|
|
374
|
+
p.applyContext = `${navigationContext.navigationKey}|${userProxyKey}|${orgProxyKey}`;
|
|
375
|
+
}
|
|
376
|
+
params = new URLSearchParams(p);
|
|
377
|
+
}
|
|
378
|
+
return params;
|
|
379
|
+
}
|
|
380
|
+
function buildSaveQueryString(opts) {
|
|
381
|
+
const params = new URLSearchParams();
|
|
382
|
+
params.set("bypassValidation", opts?.bypassValidation === false ? "false" : "true");
|
|
383
|
+
if (opts?.fetchedRelationships) {
|
|
384
|
+
params.set("fetchedRelationships", opts.fetchedRelationships.join(","));
|
|
385
|
+
}
|
|
386
|
+
return params.toString();
|
|
387
|
+
}
|
|
299
388
|
//# sourceMappingURL=data-crud.js.map
|
package/lib/esm/data-crud.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-crud.js","sourceRoot":"","sources":["../../src/data-crud.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,mCAAmC;AACnC,EAAE;AACF,oEAAoE;AACpE,0EAA0E;AAC1E,EAAE;AACF,6DAA6D;AAC7D,oDAAoD;AAEpD
|
|
1
|
+
{"version":3,"file":"data-crud.js","sourceRoot":"","sources":["../../src/data-crud.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,mCAAmC;AACnC,EAAE;AACF,oEAAoE;AACpE,0EAA0E;AAC1E,EAAE;AACF,6DAA6D;AAC7D,oDAAoD;AAEpD;;;;GAIG;AAEH,mFAAmF;AACnF,sDAAsD;AACtD,mFAAmF;AAEnF,OAAO;AACH,UAAU;AACV,YAAY,EACZ,UAAU,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,MAAM,EACN,OAAO;AAEP,iBAAiB;AACjB,UAAU;AAkBV,mBAAmB;AACnB,sBAAsB,EACtB,oBAAoB,EACvB,MAAM,eAAe,CAAC;AAEvB,mFAAmF;AACnF,sBAAsB;AACtB,mFAAmF;AAEnF,OAAO;AAIH,iBAAiB;AACjB,SAAS,EACT,qBAAqB,EACrB,iBAAiB,EACjB,6BAA6B,EAC7B,oBAAoB,EACpB,gCAAgC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,mCAAmC;AACnC,EAAE;AACF,oEAAoE;AACpE,0EAA0E;AAC1E,EAAE;AACF,6DAA6D;AAC7D,oDAAoD;AAEpD;;;;GAIG;AAEH,mFAAmF;AACnF,sDAAsD;AACtD,mFAAmF;AAEnF,OAAO;AACH,UAAU;AACV,YAAY,EACZ,UAAU,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,MAAM,EACN,OAAO;AAEP,iBAAiB;AACjB,UAAU;AAkBV,mBAAmB;AACnB,sBAAsB,EACtB,oBAAoB,EACvB,MAAM,eAAe,CAAC;AAEvB,mFAAmF;AACnF,sBAAsB;AACtB,mFAAmF;AAEnF,OAAO;AAIH,iBAAiB;AACjB,SAAS,EACT,qBAAqB,EACrB,iBAAiB,EACjB,6BAA6B,EAC7B,oBAAoB,EACpB,gCAAgC,EAChC,gBAAgB,EAChB,4BAA4B;AAE5B,YAAY;AACZ,UAAU,EACV,sBAAsB,EACtB,iBAAiB,EACjB,6BAA6B;AAE7B,cAAc;AACd,mBAAmB,EACnB,+BAA+B,EAC/B,oBAAoB,EACpB,gCAAgC,EACnC,MAAM,aAAa,CAAC;AAErB,mFAAmF;AACnF,oBAAoB;AACpB,mFAAmF;AAEnF,OAAO;AAIH,oBAAoB;AACpB,mBAAmB,EACnB,+BAA+B,EAC/B,YAAY,EACZ,wBAAwB,EACxB,gBAAgB,EAChB,4BAA4B,EAC5B,sBAAsB,EACtB,kCAAkC,EACrC,MAAM,WAAW,CAAC;AAEnB,mFAAmF;AACnF,sBAAsB;AACtB,mFAAmF;AAEnF,OAAO;AACH,kBAAkB;AAClB,aAAa;AAKb,sBAAsB;AACtB,WAAW,EACX,uBAAuB,EAC1B,MAAM,aAAa,CAAC;AAErB,mFAAmF;AACnF,uBAAuB;AACvB,mFAAmF;AAEnF,OAAO;AACH,uBAAuB;AACvB,iBAAiB,EACjB,yBAAyB,EACzB,6BAA6B,EAC7B,qCAAqC,EACxC,MAAM,eAAe,CAAC;AAEvB,mFAAmF;AACnF,sBAAsB;AACtB,mFAAmF;AAEnF,OAAO;AAcH,YAAY;AACZ,WAAW,EACX,uBAAuB,EACvB,QAAQ,EACR,oBAAoB,EACpB,UAAU,EACV,sBAAsB,EACzB,MAAM,SAAS,CAAC;AAEjB,mFAAmF;AACnF,2BAA2B;AAC3B,mFAAmF;AAEnF,OAAO;AACH,UAAU;AACV,mBAAmB;AAYnB,YAAY;AACZ,gBAAgB,EAChB,4BAA4B,EAC/B,MAAM,kBAAkB,CAAC;AAE1B,mFAAmF;AACnF,oBAAoB;AACpB,mFAAmF;AAEnF,OAAO;AAMH,YAAY;AACZ,uBAAuB,EACvB,mCAAmC,EACtC,MAAM,YAAY,CAAC;AAEpB,mFAAmF;AACnF,eAAe;AACf,mFAAmF;AAEnF,OAAO;AAIH,eAAe;AACf,aAAa,EACb,yBAAyB,EAC5B,MAAM,MAAM,CAAC;AAEd,mFAAmF;AACnF,oBAAoB;AACpB,mFAAmF;AAEnF,OAAO,EACH,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,UAAU,EACb,MAAM,aAAa,CAAC"}
|
package/lib/esm/index.mjs
CHANGED
|
@@ -26,9 +26,9 @@ prepareSuccessResponse, prepareErrorResponse } from './sdk-general';
|
|
|
26
26
|
// ================================================================================
|
|
27
27
|
export {
|
|
28
28
|
// Data Retrieval
|
|
29
|
-
getObject, getObjectAsObservable, getRelatedObjects, getRelatedObjectsAsObservable, getAccessibleObjects, getAccessibleObjectsAsObservable,
|
|
29
|
+
getObject, getObjectAsObservable, getRelatedObjects, getRelatedObjectsAsObservable, getAccessibleObjects, getAccessibleObjectsAsObservable, getObjectsByKeys, getObjectsByKeysAsObservable,
|
|
30
30
|
// Data Save
|
|
31
|
-
saveRelatedObject, saveRelatedObjectAsObservable,
|
|
31
|
+
saveObject, saveObjectAsObservable, saveRelatedObject, saveRelatedObjectAsObservable,
|
|
32
32
|
// Data Delete
|
|
33
33
|
deleteRelatedObject, deleteRelatedObjectAsObservable, deleteRelatedObjects, deleteRelatedObjectsAsObservable } from './data-crud';
|
|
34
34
|
// ================================================================================
|
|
@@ -5,7 +5,10 @@ import { Observable } from 'rxjs';
|
|
|
5
5
|
export interface SaveOptions {
|
|
6
6
|
/** Whether to bypass validation */
|
|
7
7
|
bypassValidation?: boolean;
|
|
8
|
+
/** Optional relationships to include as nested objects in the saved response */
|
|
9
|
+
fetchedRelationships?: string[];
|
|
8
10
|
}
|
|
11
|
+
type SaveBody = string | object;
|
|
9
12
|
/**
|
|
10
13
|
* Retrieves a single object by dataElementId and key. Optionally fetch related objects.
|
|
11
14
|
*
|
|
@@ -46,20 +49,49 @@ export declare function getAccessibleObjects(dataElementId: string, filter?: str
|
|
|
46
49
|
*/
|
|
47
50
|
export declare function getAccessibleObjectsAsObservable(dataElementId: string, filter?: string, fetchedRelationships?: string[], applyContext?: boolean): Observable<any[]>;
|
|
48
51
|
/**
|
|
49
|
-
*
|
|
52
|
+
* Retrieves accessible objects for a data element from a specific key list.
|
|
53
|
+
* Only objects that are accessible to the current user are returned. If applyContext is true, keyed objects outside the current navigation context are also omitted.
|
|
54
|
+
*
|
|
55
|
+
* @param dataElementId - Data element ID
|
|
56
|
+
* @param keys - Object keys to retrieve
|
|
57
|
+
* @param filter - Optional filter; call `dataexpr_agent` to generate the filter expression. Must be less than 200 characters.
|
|
58
|
+
* @param fetchedRelationships - Optional relationships to include as nested objects
|
|
59
|
+
* @param applyContext - Optional flag to apply navigation context scoping. When true, navigation context is read from UserContext.navigationContext and results are limited by the navigation context org proxy.
|
|
60
|
+
* @returns Promise<any[]>
|
|
61
|
+
*/
|
|
62
|
+
export declare function getObjectsByKeys(dataElementId: string, keys: string[], filter?: string, fetchedRelationships?: string[], applyContext?: boolean): Promise<any[]>;
|
|
63
|
+
/**
|
|
64
|
+
* Observable version of getObjectsByKeys. See getObjectsByKeys for details.
|
|
65
|
+
*/
|
|
66
|
+
export declare function getObjectsByKeysAsObservable(dataElementId: string, keys: string[], filter?: string, fetchedRelationships?: string[], applyContext?: boolean): Observable<any[]>;
|
|
67
|
+
/**
|
|
68
|
+
* Saves an object without establishing a parent relationship. Returns saved object with any server-assigned values (objKey, calculated fields).
|
|
69
|
+
*
|
|
70
|
+
* @param dataElementId - Data element ID for the object being saved
|
|
71
|
+
* @param objectToSave - Object data or JSON string of object data
|
|
72
|
+
* @param opts - Optional save options (e.g., bypassValidation, fetchedRelationships)
|
|
73
|
+
* @returns Promise<any> - saved object with updates including server-assigned values (objKey, calculated fields)
|
|
74
|
+
*/
|
|
75
|
+
export declare function saveObject(dataElementId: string, objectToSave: SaveBody, opts?: SaveOptions): Promise<any>;
|
|
76
|
+
/**
|
|
77
|
+
* Observable version of saveObject. See saveObject for details.
|
|
78
|
+
*/
|
|
79
|
+
export declare function saveObjectAsObservable(dataElementId: string, objectToSave: SaveBody, opts?: SaveOptions): Observable<any>;
|
|
80
|
+
/**
|
|
81
|
+
* Saves a related object and establishes or updates its relationship to a parent. Returns saved object with any server-assigned values (objKey, calculated fields).
|
|
50
82
|
*
|
|
51
83
|
* @param parentElementId - Parent element ID
|
|
52
84
|
* @param parentKey - Parent object key; important: this establishes the scope of the save operation; use an appropriate scope Key
|
|
53
85
|
* @param elementId - Child element ID for the object being saved
|
|
54
|
-
* @param objectToSave - JSON string of object data
|
|
55
|
-
* @param opts - Optional save options (e.g., bypassValidation)
|
|
86
|
+
* @param objectToSave - Object data or JSON string of object data
|
|
87
|
+
* @param opts - Optional save options (e.g., bypassValidation, fetchedRelationships)
|
|
56
88
|
* @returns Promise<any> - saved object with updates including server-assigned values (objKey, calculated fields)
|
|
57
89
|
*/
|
|
58
|
-
export declare function saveRelatedObject(parentElementId: string, parentKey: string, elementId: string, objectToSave:
|
|
90
|
+
export declare function saveRelatedObject(parentElementId: string, parentKey: string, elementId: string, objectToSave: SaveBody, opts?: SaveOptions): Promise<any>;
|
|
59
91
|
/**
|
|
60
92
|
* Observable version of saveRelatedObject. See saveRelatedObject for details.
|
|
61
93
|
*/
|
|
62
|
-
export declare function saveRelatedObjectAsObservable(parentElementId: string, parentKey: string, elementId: string, objectToSave:
|
|
94
|
+
export declare function saveRelatedObjectAsObservable(parentElementId: string, parentKey: string, elementId: string, objectToSave: SaveBody, opts?: SaveOptions): Observable<any>;
|
|
63
95
|
/**
|
|
64
96
|
* Deletes a single object related to a parent.
|
|
65
97
|
*
|
|
@@ -81,3 +113,4 @@ export declare function deleteRelatedObjects(parentElementId: string, parentKey:
|
|
|
81
113
|
* Observable version of deleteRelatedObjects. See deleteRelatedObjects for details.
|
|
82
114
|
*/
|
|
83
115
|
export declare function deleteRelatedObjectsAsObservable(parentElementId: string, parentKey: string, childElementId: string, childKeys: string[]): Observable<boolean>;
|
|
116
|
+
export {};
|
package/lib/esm/types/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* platform. This is the main entry point that provides a unified interface for all SDK functionality.
|
|
5
5
|
*/
|
|
6
6
|
export { getAuthToken, sandboxKey, serviceAddress, actionSubject, userContext, params, useBody, initialize, type UserContext, type IncomingEventBody, type BaseActionResponse, type ActionResponse, type NotificationConfig, type ListActionResponse, type FormTemplateActionResponse, type PageTemplateActionResponse, type ObjectSaveActionResponse, type CalculatedFieldActionResponse, type SingleValueActionResponse, type ErrorResponse, prepareSuccessResponse, prepareErrorResponse } from './sdk-general';
|
|
7
|
-
export { type SaveOptions, getObject, getObjectAsObservable, getRelatedObjects, getRelatedObjectsAsObservable, getAccessibleObjects, getAccessibleObjectsAsObservable, saveRelatedObject, saveRelatedObjectAsObservable, deleteRelatedObject, deleteRelatedObjectAsObservable, deleteRelatedObjects, deleteRelatedObjectsAsObservable } from './data-crud';
|
|
7
|
+
export { type SaveOptions, getObject, getObjectAsObservable, getRelatedObjects, getRelatedObjectsAsObservable, getAccessibleObjects, getAccessibleObjectsAsObservable, getObjectsByKeys, getObjectsByKeysAsObservable, saveObject, saveObjectAsObservable, saveRelatedObject, saveRelatedObjectAsObservable, deleteRelatedObject, deleteRelatedObjectAsObservable, deleteRelatedObjects, deleteRelatedObjectsAsObservable } from './data-crud';
|
|
8
8
|
export { type ContentResource, getOrCreateResource, getOrCreateResourceAsObservable, saveResource, saveResourceAsObservable, sendFileContents, sendFileContentsAsObservable, createOrUpdateResource, createOrUpdateResourceAsObservable } from './content';
|
|
9
9
|
export { MessageMethod, type MessageRequest, sendMessage, sendMessageAsObservable } from './messaging';
|
|
10
10
|
export { getUserPreference, getOrganizationPreference, getUserPreferenceAsObservable, getOrganizationPreferenceAsObservable } from './preferences';
|