@halix/action-sdk 1.0.50 → 1.0.52
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/access.js +38 -9
- package/lib/cjs/data-crud.js +30 -11
- package/lib/cjs/filter-expression.js +10 -0
- package/lib/cjs/index.js +13 -2
- package/lib/cjs/invoices.js +70 -0
- package/lib/cjs/lists.js +68 -13
- package/lib/cjs/types/access.d.ts +26 -2
- package/lib/cjs/types/access.d.ts.map +1 -1
- package/lib/cjs/types/data-aggregate.d.ts +4 -3
- package/lib/cjs/types/data-aggregate.d.ts.map +1 -1
- package/lib/cjs/types/data-crud.d.ts +10 -9
- package/lib/cjs/types/data-crud.d.ts.map +1 -1
- package/lib/cjs/types/filter-expression.d.ts +22 -0
- package/lib/cjs/types/filter-expression.d.ts.map +1 -0
- package/lib/cjs/types/index.d.ts +3 -1
- package/lib/cjs/types/index.d.ts.map +1 -1
- package/lib/cjs/types/invoices.d.ts +72 -0
- package/lib/cjs/types/invoices.d.ts.map +1 -0
- package/lib/cjs/types/lists.d.ts +76 -29
- package/lib/cjs/types/lists.d.ts.map +1 -1
- package/lib/cjs/types/sdk-general.d.ts +25 -0
- package/lib/cjs/types/sdk-general.d.ts.map +1 -1
- package/lib/esm/access.js +34 -6
- package/lib/esm/access.js.map +1 -1
- package/lib/esm/data-aggregate.js.map +1 -1
- package/lib/esm/data-crud.js +30 -11
- package/lib/esm/data-crud.js.map +1 -1
- package/lib/esm/filter-expression.js +10 -0
- package/lib/esm/filter-expression.js.map +1 -0
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/index.mjs +5 -1
- package/lib/esm/invoices.js +43 -0
- package/lib/esm/invoices.js.map +1 -0
- package/lib/esm/lists.js +66 -13
- package/lib/esm/lists.js.map +1 -1
- package/lib/esm/sdk-general.js.map +1 -1
- package/lib/esm/types/access.d.ts +26 -2
- package/lib/esm/types/data-aggregate.d.ts +4 -3
- package/lib/esm/types/data-crud.d.ts +10 -9
- package/lib/esm/types/filter-expression.d.ts +21 -0
- package/lib/esm/types/index.d.ts +3 -1
- package/lib/esm/types/invoices.d.ts +71 -0
- package/lib/esm/types/lists.d.ts +76 -29
- package/lib/esm/types/sdk-general.d.ts +25 -0
- package/package.json +1 -1
package/lib/cjs/access.js
CHANGED
|
@@ -36,6 +36,8 @@ exports.inviteOrLinkUserProxyByEmail = inviteOrLinkUserProxyByEmail;
|
|
|
36
36
|
exports.inviteOrLinkUserProxyByEmailAsObservable = inviteOrLinkUserProxyByEmailAsObservable;
|
|
37
37
|
exports.setUserProxyRosterRoles = setUserProxyRosterRoles;
|
|
38
38
|
exports.setUserProxyRosterRolesAsObservable = setUserProxyRosterRolesAsObservable;
|
|
39
|
+
exports.removeUserProxyRosterAccess = removeUserProxyRosterAccess;
|
|
40
|
+
exports.removeUserProxyRosterAccessAsObservable = removeUserProxyRosterAccessAsObservable;
|
|
39
41
|
exports.updateUserAccess = updateUserAccess;
|
|
40
42
|
exports.updateUserAccessAsObservable = updateUserAccessAsObservable;
|
|
41
43
|
exports.removeUserAccess = removeUserAccess;
|
|
@@ -67,9 +69,10 @@ exports.canDeleteDataElementAsObservable = canDeleteDataElementAsObservable;
|
|
|
67
69
|
* - Data element access checks use stable data element IDs and resolve to persisted keys on the server.
|
|
68
70
|
* - `ScopeKeyItem` entries define the data scope a user receives for an organization, user proxy, or custom data scope.
|
|
69
71
|
* - `linkUserProxy` links an existing platform user (`userKey`) to an existing unlinked user proxy record.
|
|
70
|
-
* - `listUserProxyAccessRoster` and `
|
|
71
|
-
* the access service to join shared user proxy identity records with
|
|
72
|
-
* state. Do not infer current-solution access from shared proxy records
|
|
72
|
+
* - `listUserProxyAccessRoster`, `inviteOrLinkUserProxyByEmail`, and `removeUserProxyRosterAccess` are the standard
|
|
73
|
+
* user-access page helpers. They use the access service to join shared user proxy identity records with
|
|
74
|
+
* current-sandbox login, invite, scope, and role state. Do not infer current-solution access from shared proxy records
|
|
75
|
+
* alone.
|
|
73
76
|
*
|
|
74
77
|
* @usage
|
|
75
78
|
* ## When to Use
|
|
@@ -99,6 +102,7 @@ exports.canDeleteDataElementAsObservable = canDeleteDataElementAsObservable;
|
|
|
99
102
|
* | `listUserProxyAccessRoster` | Read shared proxy rows enriched with current-sandbox access status |
|
|
100
103
|
* | `inviteOrLinkUserProxyByEmail` | Reuse/create a proxy, invite/link by email, and return refreshed access state |
|
|
101
104
|
* | `setUserProxyRosterRoles` | Update roles for one roster row |
|
|
105
|
+
* | `removeUserProxyRosterAccess` | Remove current-sandbox access for one roster row |
|
|
102
106
|
* | `updateUserAccess` | Add or update one user scope entry |
|
|
103
107
|
* | `removeUserAccess` | Remove one user scope entry |
|
|
104
108
|
* | `hasBusinessPrivilege` | Server-check whether the current user has a privilege ID |
|
|
@@ -272,20 +276,20 @@ function linkUserProxyAsObservable(req) {
|
|
|
272
276
|
* @param orgProxyKey - Organization proxy object key for the roster context
|
|
273
277
|
* @param orgProxyElementId - Organization proxy data element ID
|
|
274
278
|
* @param userProxyElementId - User proxy/member data element ID
|
|
279
|
+
* @param options - Optional roster listing controls
|
|
275
280
|
*/
|
|
276
|
-
function listUserProxyAccessRoster(orgProxyKey, orgProxyElementId, userProxyElementId) {
|
|
281
|
+
function listUserProxyAccessRoster(orgProxyKey, orgProxyElementId, userProxyElementId, options) {
|
|
277
282
|
return __awaiter(this, void 0, void 0, function* () {
|
|
278
|
-
const
|
|
279
|
-
|
|
280
|
-
});
|
|
283
|
+
const params = (options === null || options === void 0 ? void 0 : options.activeOnly) ? { activeOnly: 'true' } : undefined;
|
|
284
|
+
const response = yield axios_1.default.get(`${sdk_general_1.serviceAddress}/access/sandboxes/${sdk_general_1.sandboxKey}/userProxyRoster/${encodeURIComponent(orgProxyKey)}/${encodeURIComponent(orgProxyElementId)}/${encodeURIComponent(userProxyElementId)}`, Object.assign({ headers: yield authHeaders() }, (params ? { params } : {})));
|
|
281
285
|
return response.data;
|
|
282
286
|
});
|
|
283
287
|
}
|
|
284
288
|
/**
|
|
285
289
|
* Observable version of `listUserProxyAccessRoster`. See `listUserProxyAccessRoster` for details.
|
|
286
290
|
*/
|
|
287
|
-
function listUserProxyAccessRosterAsObservable(orgProxyKey, orgProxyElementId, userProxyElementId) {
|
|
288
|
-
return (0, rxjs_1.from)(listUserProxyAccessRoster(orgProxyKey, orgProxyElementId, userProxyElementId));
|
|
291
|
+
function listUserProxyAccessRosterAsObservable(orgProxyKey, orgProxyElementId, userProxyElementId, options) {
|
|
292
|
+
return (0, rxjs_1.from)(listUserProxyAccessRoster(orgProxyKey, orgProxyElementId, userProxyElementId, options));
|
|
289
293
|
}
|
|
290
294
|
/**
|
|
291
295
|
* Invites or links a user by email through the access service roster helper.
|
|
@@ -337,6 +341,31 @@ function setUserProxyRosterRoles(orgProxyKey, orgProxyElementId, userProxyElemen
|
|
|
337
341
|
function setUserProxyRosterRolesAsObservable(orgProxyKey, orgProxyElementId, userProxyElementId, proxyKey, req) {
|
|
338
342
|
return (0, rxjs_1.from)(setUserProxyRosterRoles(orgProxyKey, orgProxyElementId, userProxyElementId, proxyKey, req));
|
|
339
343
|
}
|
|
344
|
+
/**
|
|
345
|
+
* Removes current-sandbox access for one roster row and returns the refreshed row.
|
|
346
|
+
*
|
|
347
|
+
* This removes the user's access for the requested roster context. It does not delete the shared user proxy identity
|
|
348
|
+
* record or unlink the proxy from the platform user.
|
|
349
|
+
*
|
|
350
|
+
* @param orgProxyKey - Organization proxy object key for the roster context
|
|
351
|
+
* @param orgProxyElementId - Organization proxy data element ID
|
|
352
|
+
* @param userProxyElementId - User proxy/member data element ID
|
|
353
|
+
* @param proxyKey - User proxy object key for the row being removed from current access
|
|
354
|
+
*/
|
|
355
|
+
function removeUserProxyRosterAccess(orgProxyKey, orgProxyElementId, userProxyElementId, proxyKey) {
|
|
356
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
357
|
+
const response = yield axios_1.default.delete(`${sdk_general_1.serviceAddress}/access/sandboxes/${sdk_general_1.sandboxKey}/userProxyRoster/${encodeURIComponent(orgProxyKey)}/${encodeURIComponent(orgProxyElementId)}/${encodeURIComponent(userProxyElementId)}/proxy/${encodeURIComponent(proxyKey)}/access`, {
|
|
358
|
+
headers: yield authHeaders(),
|
|
359
|
+
});
|
|
360
|
+
return response.data;
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Observable version of `removeUserProxyRosterAccess`. See `removeUserProxyRosterAccess` for details.
|
|
365
|
+
*/
|
|
366
|
+
function removeUserProxyRosterAccessAsObservable(orgProxyKey, orgProxyElementId, userProxyElementId, proxyKey) {
|
|
367
|
+
return (0, rxjs_1.from)(removeUserProxyRosterAccess(orgProxyKey, orgProxyElementId, userProxyElementId, proxyKey));
|
|
368
|
+
}
|
|
340
369
|
/**
|
|
341
370
|
* Adds or updates one user's sandbox scope entry.
|
|
342
371
|
*
|
package/lib/cjs/data-crud.js
CHANGED
|
@@ -42,7 +42,6 @@ exports.deleteRelatedObjectsAsObservable = deleteRelatedObjectsAsObservable;
|
|
|
42
42
|
* @module @halix/action-sdk/data-crud
|
|
43
43
|
* @description Data CRUD operations for the Halix Platform action SDK. This module provides functions
|
|
44
44
|
* for creating, reading, updating, and deleting data objects through the Halix data service API.
|
|
45
|
-
* Note: for list-like displays, the `lists` module is preferred.
|
|
46
45
|
*
|
|
47
46
|
* Key features:
|
|
48
47
|
* - Retrieve one object a time
|
|
@@ -52,32 +51,52 @@ exports.deleteRelatedObjectsAsObservable = deleteRelatedObjectsAsObservable;
|
|
|
52
51
|
*
|
|
53
52
|
* @usage
|
|
54
53
|
* ## When to Use
|
|
55
|
-
* - **Read objects without specifying parent scope** → `getAccessibleObjects`
|
|
54
|
+
* - **Read objects without specifying parent scope** → `getAccessibleObjects`
|
|
55
|
+
* - **Bounded accessible-record reads without pagination, totals, server sort, or list field projection** → `getAccessibleObjects`, with a filter when date/status/foreign-key fields can narrow the payload
|
|
56
56
|
* - **Read specific accessible objects by key list** → `getObjects`
|
|
57
57
|
* - **Get single object by key** → `getObject`
|
|
58
|
-
* - **
|
|
58
|
+
* - **Fetch a known parent's child records** → `getRelatedObjects`
|
|
59
59
|
* - **Create/update single object** → `saveObject`
|
|
60
60
|
* - **Delete single object** → `deleteObject`
|
|
61
61
|
*
|
|
62
|
+
* ## Record Retrieval Decision
|
|
63
|
+
* - Use `getAccessibleObjects` for bounded accessible-record reads where you do not need pagination,
|
|
64
|
+
* total count, server sort, or list-specific field projection. Pass its optional filter argument
|
|
65
|
+
* when the relevant subset can be expressed by date, status, foreign key, or other schema-backed fields.
|
|
66
|
+
* - Use `getRelatedObjects` when the component already has a concrete parent key and is fetching
|
|
67
|
+
* that parent's children.
|
|
68
|
+
* - Use `getListData` from the lists module for paginated list UIs, server-side filtering/sorting,
|
|
69
|
+
* explicit totals, or bounded report reads.
|
|
70
|
+
* - Use `getAggregateData` from the data-aggregate module for counts, sums, rankings, and grouped metrics.
|
|
71
|
+
*
|
|
62
72
|
* ## When NOT to Use
|
|
63
|
-
* - **
|
|
73
|
+
* - **High-cardinality report reads without a narrowing filter**
|
|
74
|
+
* - **List UI pagination, explicit totals, server sort/filter, or field projection** → use lists skill with `getListData`
|
|
64
75
|
* - **Bulk updates** → use lists skill with `massEdit`
|
|
65
76
|
* - **Aggregations** → use data-aggregate skill
|
|
66
77
|
*
|
|
67
78
|
* ## Key Functions
|
|
68
79
|
* | Function | Use For |
|
|
69
80
|
* |----------|---------|
|
|
70
|
-
* | `getAccessibleObjects` | Read objects the current user can access (no parent scope needed) |
|
|
81
|
+
* | `getAccessibleObjects` | Read filtered/bounded objects the current user can access (no parent scope needed) |
|
|
71
82
|
* | `getObjects` | Read accessible objects from a specific key list |
|
|
72
83
|
* | `getObject` | Single object by key |
|
|
73
|
-
* | `getRelatedObjects` | Children of a parent
|
|
84
|
+
* | `getRelatedObjects` | Children of a known parent record |
|
|
74
85
|
* | `saveObject` | Create or update one object |
|
|
75
86
|
* | `saveRelatedObject` | Create or update one object and establish relationship to a parent |
|
|
76
87
|
* | `deleteObject` | Delete one object without parent scope |
|
|
77
88
|
* | `deleteRelatedObject` | Delete one related object |
|
|
78
89
|
*
|
|
79
90
|
* @example
|
|
80
|
-
* // Get
|
|
91
|
+
* // Get accessible class enrollments for a bounded date window
|
|
92
|
+
* // Create the filter expression with build_filter_expression before coding it here.
|
|
93
|
+
* const recentEnrollments = await hx.getAccessibleObjects(
|
|
94
|
+
* 'classEnrollment',
|
|
95
|
+
* "startDate>=date:'2025-01-01'"
|
|
96
|
+
* );
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* // Get all accessible recipes only when the accessible set is naturally small
|
|
81
100
|
* const recipes = await hx.getAccessibleObjects('recipe');
|
|
82
101
|
*
|
|
83
102
|
* @example
|
|
@@ -89,7 +108,7 @@ exports.deleteRelatedObjectsAsObservable = deleteRelatedObjectsAsObservable;
|
|
|
89
108
|
* const recipe = await hx.getObject('recipe', recipeKey);
|
|
90
109
|
*
|
|
91
110
|
* @example
|
|
92
|
-
* // Get ingredients
|
|
111
|
+
* // Get ingredients for a known recipe
|
|
93
112
|
* const ingredients = await hx.getRelatedObjects(
|
|
94
113
|
* 'recipe', recipeKey, 'ingredient'
|
|
95
114
|
* );
|
|
@@ -160,7 +179,7 @@ function getObjectAsObservable(dataElementId, key, fetchedRelationships) {
|
|
|
160
179
|
* @param parentElementId - Parent element ID
|
|
161
180
|
* @param parentKey - Parent object key; important: this establishes the scope of the query; use an appropriate scope key
|
|
162
181
|
* @param elementId - Child element ID
|
|
163
|
-
* @param filter - Optional filter
|
|
182
|
+
* @param filter - Optional Halix filter expression. This is not SQL or JavaScript syntax. Call `build_filter_expression` to generate it. Must be less than 200 characters.
|
|
164
183
|
* @param fetchedRelationships - Optional relationships to include as nested objects
|
|
165
184
|
* @returns Promise<any[]>
|
|
166
185
|
*/
|
|
@@ -202,7 +221,7 @@ function getRelatedObjectsAsObservable(parentElementId, parentKey, elementId, fi
|
|
|
202
221
|
* Retrieves all objects for a data element that the current user has access to.
|
|
203
222
|
*
|
|
204
223
|
* @param dataElementId - Data element ID
|
|
205
|
-
* @param filter - Optional filter
|
|
224
|
+
* @param filter - Optional Halix filter expression. This is not SQL or JavaScript syntax. Call `build_filter_expression` to generate it. Must be less than 200 characters.
|
|
206
225
|
* @param fetchedRelationships - Optional relationships to include as nested objects
|
|
207
226
|
* @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.
|
|
208
227
|
* @returns Promise<any[]>
|
|
@@ -237,7 +256,7 @@ function getAccessibleObjectsAsObservable(dataElementId, filter, fetchedRelation
|
|
|
237
256
|
*
|
|
238
257
|
* @param dataElementId - Data element ID
|
|
239
258
|
* @param keys - Object keys to retrieve
|
|
240
|
-
* @param filter - Optional filter
|
|
259
|
+
* @param filter - Optional Halix filter expression. This is not SQL or JavaScript syntax. Call `build_filter_expression` to generate it. Must be less than 200 characters.
|
|
241
260
|
* @param fetchedRelationships - Optional relationships to include as nested objects
|
|
242
261
|
* @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.
|
|
243
262
|
* @returns Promise<any[]>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Halix SDK License v1.0
|
|
3
|
+
// Copyright (c) 2025 halix.io LLC.
|
|
4
|
+
//
|
|
5
|
+
// This source code is licensed for use **only** within applications
|
|
6
|
+
// running on the Halix platform, in accordance with Halix SDK guidelines.
|
|
7
|
+
//
|
|
8
|
+
// Unauthorized use outside the Halix platform is prohibited.
|
|
9
|
+
// Full license terms available in the LICENSE file.
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
package/lib/cjs/index.js
CHANGED
|
@@ -8,8 +8,9 @@
|
|
|
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.
|
|
11
|
+
exports.removeUserAccessAsObservable = exports.removeUserAccess = exports.updateUserAccessAsObservable = exports.updateUserAccess = exports.removeUserProxyRosterAccessAsObservable = exports.removeUserProxyRosterAccess = exports.setUserProxyRosterRolesAsObservable = exports.setUserProxyRosterRoles = exports.inviteOrLinkUserProxyByEmailAsObservable = exports.inviteOrLinkUserProxyByEmail = exports.listUserProxyAccessRosterAsObservable = exports.listUserProxyAccessRoster = exports.linkUserProxyAsObservable = exports.linkUserProxy = exports.getUserAccessAsObservable = exports.getUserAccess = exports.listSandboxUsersAsObservable = exports.listSandboxUsers = exports.listBusinessPrivilegesAsObservable = exports.listBusinessPrivileges = exports.listRolesAsObservable = exports.listRoles = exports.deleteRelatedObjectsAsObservable = exports.deleteRelatedObjects = exports.deleteRelatedObjectAsObservable = exports.deleteRelatedObject = exports.deleteObjectAsObservable = exports.deleteObject = exports.saveRelatedObjectAsObservable = exports.saveRelatedObject = exports.saveObjectAsObservable = exports.saveObject = exports.getObjectsAsObservable = exports.getObjects = 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.compareValues = exports.sortObjectArray = exports.sendAIMessageAsObservable = exports.sendAIMessage = exports.getReminderDeliveryCoverage = exports.listEnrolledOrganizations = exports.getInvoicesMatchingReminder = exports.getEnabledPaymentReminders = exports.submitStandalonePaymentAsObservable = exports.submitStandalonePayment = 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.downloadResourceAsObservable = exports.downloadResource = exports.createOrUpdateResourceAsObservable = exports.createOrUpdateResource = exports.sendFileContentsAsObservable = exports.sendFileContents = exports.saveResourceAsObservable = exports.saveResource = exports.getOrCreateResourceAsObservable = exports.getOrCreateResource = exports.canDeleteDataElementAsObservable = exports.canDeleteDataElement = exports.canWriteDataElementAsObservable = exports.canWriteDataElement = exports.canReadDataElementAsObservable = exports.canReadDataElement = exports.hasDataElementAccessAsObservable = exports.hasDataElementAccess = exports.dataElementAccessAsObservable = exports.dataElementAccess = exports.userPrivilegesAsObservable = exports.userPrivileges = exports.hasBusinessPrivilegeAsObservable = exports.hasBusinessPrivilege = void 0;
|
|
13
|
+
exports.debounceFn = exports.getValueFromObject = void 0;
|
|
13
14
|
/**
|
|
14
15
|
* @module @halix/action-sdk
|
|
15
16
|
* @description Halix Platform action SDK for developing NodeJS Lambda-based actions on the Halix
|
|
@@ -77,6 +78,8 @@ Object.defineProperty(exports, "inviteOrLinkUserProxyByEmail", { enumerable: tru
|
|
|
77
78
|
Object.defineProperty(exports, "inviteOrLinkUserProxyByEmailAsObservable", { enumerable: true, get: function () { return access_1.inviteOrLinkUserProxyByEmailAsObservable; } });
|
|
78
79
|
Object.defineProperty(exports, "setUserProxyRosterRoles", { enumerable: true, get: function () { return access_1.setUserProxyRosterRoles; } });
|
|
79
80
|
Object.defineProperty(exports, "setUserProxyRosterRolesAsObservable", { enumerable: true, get: function () { return access_1.setUserProxyRosterRolesAsObservable; } });
|
|
81
|
+
Object.defineProperty(exports, "removeUserProxyRosterAccess", { enumerable: true, get: function () { return access_1.removeUserProxyRosterAccess; } });
|
|
82
|
+
Object.defineProperty(exports, "removeUserProxyRosterAccessAsObservable", { enumerable: true, get: function () { return access_1.removeUserProxyRosterAccessAsObservable; } });
|
|
80
83
|
Object.defineProperty(exports, "updateUserAccess", { enumerable: true, get: function () { return access_1.updateUserAccess; } });
|
|
81
84
|
Object.defineProperty(exports, "updateUserAccessAsObservable", { enumerable: true, get: function () { return access_1.updateUserAccessAsObservable; } });
|
|
82
85
|
Object.defineProperty(exports, "removeUserAccess", { enumerable: true, get: function () { return access_1.removeUserAccess; } });
|
|
@@ -156,6 +159,14 @@ var payments_1 = require("./payments");
|
|
|
156
159
|
Object.defineProperty(exports, "submitStandalonePayment", { enumerable: true, get: function () { return payments_1.submitStandalonePayment; } });
|
|
157
160
|
Object.defineProperty(exports, "submitStandalonePaymentAsObservable", { enumerable: true, get: function () { return payments_1.submitStandalonePaymentAsObservable; } });
|
|
158
161
|
// ================================================================================
|
|
162
|
+
// INVOICE FUNCTIONS
|
|
163
|
+
// ================================================================================
|
|
164
|
+
var invoices_1 = require("./invoices");
|
|
165
|
+
Object.defineProperty(exports, "getEnabledPaymentReminders", { enumerable: true, get: function () { return invoices_1.getEnabledPaymentReminders; } });
|
|
166
|
+
Object.defineProperty(exports, "getInvoicesMatchingReminder", { enumerable: true, get: function () { return invoices_1.getInvoicesMatchingReminder; } });
|
|
167
|
+
Object.defineProperty(exports, "listEnrolledOrganizations", { enumerable: true, get: function () { return invoices_1.listEnrolledOrganizations; } });
|
|
168
|
+
Object.defineProperty(exports, "getReminderDeliveryCoverage", { enumerable: true, get: function () { return invoices_1.getReminderDeliveryCoverage; } });
|
|
169
|
+
// ================================================================================
|
|
159
170
|
// AI FUNCTIONS
|
|
160
171
|
// ================================================================================
|
|
161
172
|
var ai_1 = require("./ai");
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Halix SDK License v1.0
|
|
3
|
+
// Copyright (c) 2025 halix.io LLC.
|
|
4
|
+
//
|
|
5
|
+
// This source code is licensed for use **only** within applications
|
|
6
|
+
// running on the Halix platform, in accordance with Halix SDK guidelines.
|
|
7
|
+
//
|
|
8
|
+
// Unauthorized use outside the Halix platform is prohibited.
|
|
9
|
+
// Full license terms available in the LICENSE file.
|
|
10
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
11
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
12
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
13
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
14
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
15
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
16
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
20
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
21
|
+
};
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.getEnabledPaymentReminders = getEnabledPaymentReminders;
|
|
24
|
+
exports.getInvoicesMatchingReminder = getInvoicesMatchingReminder;
|
|
25
|
+
exports.listEnrolledOrganizations = listEnrolledOrganizations;
|
|
26
|
+
exports.getReminderDeliveryCoverage = getReminderDeliveryCoverage;
|
|
27
|
+
/**
|
|
28
|
+
* @module @halix/action-sdk/invoices
|
|
29
|
+
* @description Invoice and payment-reminder helpers for Halix action lambdas.
|
|
30
|
+
*/
|
|
31
|
+
const axios_1 = __importDefault(require("axios"));
|
|
32
|
+
const rxjs_1 = require("rxjs");
|
|
33
|
+
const sdk_general_1 = require("./sdk-general");
|
|
34
|
+
const data_crud_1 = require("./data-crud");
|
|
35
|
+
function authHeaders() {
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
if (!sdk_general_1.getAuthToken) {
|
|
38
|
+
throw new Error('SDK not initialized.');
|
|
39
|
+
}
|
|
40
|
+
const authToken = yield (0, rxjs_1.lastValueFrom)((0, sdk_general_1.getAuthToken)());
|
|
41
|
+
return { Authorization: `Bearer ${authToken}` };
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
function getEnabledPaymentReminders(orgKey) {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
const filter = `(enabled=boolean:true) AND (organizationKey=string:${orgKey})`;
|
|
47
|
+
return (0, data_crud_1.getAccessibleObjects)('paymentReminder', filter);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
function getInvoicesMatchingReminder(orgKey, criteria, today) {
|
|
51
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
const url = `${sdk_general_1.serviceAddress}/billing/sandboxes/${sdk_general_1.sandboxKey}/invoices/matchingReminder`;
|
|
53
|
+
const response = yield axios_1.default.post(url, { orgKey, criteria, today }, { headers: yield authHeaders() });
|
|
54
|
+
return response.data;
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function listEnrolledOrganizations(solutionKey) {
|
|
58
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
59
|
+
const url = `${sdk_general_1.serviceAddress}/billing/sandboxes/${sdk_general_1.sandboxKey}/solutions/${solutionKey}/enrolledOrganizations`;
|
|
60
|
+
const response = yield axios_1.default.get(url, { headers: yield authHeaders() });
|
|
61
|
+
return response.data;
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
function getReminderDeliveryCoverage(args) {
|
|
65
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
66
|
+
const url = `${sdk_general_1.serviceAddress}/billing/sandboxes/${sdk_general_1.sandboxKey}/reminders/coverage`;
|
|
67
|
+
const response = yield axios_1.default.post(url, args, { headers: yield authHeaders() });
|
|
68
|
+
return response.data;
|
|
69
|
+
});
|
|
70
|
+
}
|
package/lib/cjs/lists.js
CHANGED
|
@@ -16,6 +16,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
16
16
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
17
17
|
});
|
|
18
18
|
};
|
|
19
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
20
|
+
var t = {};
|
|
21
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
22
|
+
t[p] = s[p];
|
|
23
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
24
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
25
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
26
|
+
t[p[i]] = s[p[i]];
|
|
27
|
+
}
|
|
28
|
+
return t;
|
|
29
|
+
};
|
|
19
30
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
20
31
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
21
32
|
};
|
|
@@ -52,8 +63,13 @@ const sdk_general_1 = require("./sdk-general");
|
|
|
52
63
|
* Retrieves paginated list data. Supports authenticated/public access, filtering, sorting, and binary search.
|
|
53
64
|
*
|
|
54
65
|
* Common usage:
|
|
66
|
+
* - Use `getListData` when you need list-specific behavior: pagination, explicit totals,
|
|
67
|
+
* server-side sort/filter, field projection, search, selection, or bulk operations.
|
|
68
|
+
* - Do not choose `getListData` only because the task is a report. Prefer `getAccessibleObjects`
|
|
69
|
+
* for bounded accessible-record reads without list behavior, `getRelatedObjects` when a
|
|
70
|
+
* concrete parent key is already known, or `getAggregateData` for grouped counts/sums.
|
|
55
71
|
* - For most custom-element list UIs, start with only `dataElementId`, pagination fields,
|
|
56
|
-
* and `
|
|
72
|
+
* and `fields`.
|
|
57
73
|
* - Omit `parentDataElementId` and `parentKey` when you want the records the current user
|
|
58
74
|
* can already access.
|
|
59
75
|
* - Add `parentDataElementId` and `parentKey` only when the list must be anchored to a
|
|
@@ -61,48 +77,77 @@ const sdk_general_1 = require("./sdk-general");
|
|
|
61
77
|
* - Most callers should omit `options`. Use `options.search` only for binary-search
|
|
62
78
|
* navigation scenarios, and use `options.bypassTotal` only when you explicitly do not
|
|
63
79
|
* need the total count.
|
|
80
|
+
* - For bounded report reads that genuinely need list behavior, set `pageNumber`, an explicit
|
|
81
|
+
* `pageSize`, and `fields` for every field used in filtering, grouping, sorting,
|
|
82
|
+
* aggregation, or rendering.
|
|
83
|
+
*
|
|
84
|
+
* Response shape:
|
|
85
|
+
* - `response.data` is the row array.
|
|
86
|
+
* - `response.total` is the total matching record count across all pages when
|
|
87
|
+
* requested. If `response.total > response.data.length`, this response is
|
|
88
|
+
* a page slice, not the full result set.
|
|
89
|
+
* - Do not read `response.objects`, `response.items`, or the response object itself as
|
|
90
|
+
* the row array.
|
|
91
|
+
*
|
|
92
|
+
* Pagination guidance:
|
|
93
|
+
* - Use `response.total` to decide whether the current page covers the full
|
|
94
|
+
* query. For page 1 with pageSize 100 and total 5,000, local aggregation over
|
|
95
|
+
* `response.data` covers only the first 100 rows.
|
|
96
|
+
* - Do not treat a first page or large page as complete report data just because
|
|
97
|
+
* it contains rows.
|
|
64
98
|
*
|
|
65
99
|
* Request shape:
|
|
66
100
|
* - `dataElementId` (required): root data element to retrieve
|
|
67
101
|
* - `pageNumber` / `pageSize` (optional): pagination
|
|
68
|
-
* - `
|
|
102
|
+
* - `fields` (optional): fields to populate in returned objects
|
|
69
103
|
* - `sort` (optional): sort fields such as `[{ attributeId: 'name' }]`
|
|
70
104
|
* - `filter` (optional): filter expression
|
|
71
105
|
* - `parentDataElementId` / `parentKey` (optional): explicit parent scope
|
|
72
106
|
*
|
|
73
107
|
* @param request - List configuration including dataElementId, parentDataElementId, parentKey, pagination, sort, filter
|
|
74
108
|
* @param options - Optional: isPublic, bypassTotal, search
|
|
75
|
-
* @returns Promise<ListDataResponse
|
|
109
|
+
* @returns Promise<ListDataResponse<TRecord>> with data array, total count, pageNumber
|
|
76
110
|
*
|
|
77
111
|
* @example
|
|
78
112
|
* // Most common case: one page of records the current user can access.
|
|
79
|
-
*
|
|
113
|
+
* type StudentRow = {
|
|
114
|
+
* name: string;
|
|
115
|
+
* studentNumber: string;
|
|
116
|
+
* email: string;
|
|
117
|
+
* grade: string;
|
|
118
|
+
* };
|
|
119
|
+
* const response = await getListData<StudentRow>({
|
|
80
120
|
* dataElementId: 'student',
|
|
81
121
|
* pageNumber: 1,
|
|
82
122
|
* pageSize: 10,
|
|
83
|
-
*
|
|
123
|
+
* fields: ['name', 'studentNumber', 'email', 'grade']
|
|
84
124
|
* });
|
|
125
|
+
* const rows = response.data;
|
|
85
126
|
*
|
|
86
127
|
* @example
|
|
87
128
|
* // Custom element pagination with an optional sort.
|
|
88
|
-
*
|
|
129
|
+
* type StudentListRow = { name: string; studentNumber: string; email: string; grade: string };
|
|
130
|
+
* const response = await getListData<StudentListRow>({
|
|
89
131
|
* dataElementId: 'student',
|
|
90
132
|
* pageNumber: currentPage,
|
|
91
133
|
* pageSize: 10,
|
|
92
|
-
*
|
|
134
|
+
* fields: ['name', 'studentNumber', 'email', 'grade'],
|
|
93
135
|
* sort: [{ attributeId: 'name' }]
|
|
94
136
|
* });
|
|
137
|
+
* const rows = response.data;
|
|
95
138
|
*
|
|
96
139
|
* @example
|
|
97
140
|
* // Explicit parent scoping when the list must be anchored to a specific parent.
|
|
98
|
-
*
|
|
141
|
+
* type CustomerRow = { firstName: string; lastName: string; email: string };
|
|
142
|
+
* const listData = await getListData<CustomerRow>({
|
|
99
143
|
* dataElementId: 'customer',
|
|
100
144
|
* parentDataElementId: 'company',
|
|
101
145
|
* parentKey: orgProxyKey,
|
|
102
146
|
* pageNumber: 1,
|
|
103
147
|
* pageSize: 50,
|
|
104
|
-
*
|
|
148
|
+
* fields: ['firstName', 'lastName', 'email']
|
|
105
149
|
* });
|
|
150
|
+
* const rows = listData.data;
|
|
106
151
|
*
|
|
107
152
|
* @example
|
|
108
153
|
* // options is rarely needed; omit it unless you need one of these behaviors.
|
|
@@ -111,7 +156,7 @@ const sdk_general_1 = require("./sdk-general");
|
|
|
111
156
|
* dataElementId: 'student',
|
|
112
157
|
* pageNumber: 1,
|
|
113
158
|
* pageSize: 10,
|
|
114
|
-
*
|
|
159
|
+
* fields: ['name']
|
|
115
160
|
* },
|
|
116
161
|
* {
|
|
117
162
|
* search: {
|
|
@@ -169,7 +214,7 @@ function getListData(request, options) {
|
|
|
169
214
|
console.log("Sending POST request to " + url + " (public endpoint)");
|
|
170
215
|
}
|
|
171
216
|
// Make the API request
|
|
172
|
-
let response = yield axios_1.default.post(url, request, {
|
|
217
|
+
let response = yield axios_1.default.post(url, _toServerListDataRequest(request), {
|
|
173
218
|
headers,
|
|
174
219
|
params: Object.keys(params).length > 0 ? params : undefined,
|
|
175
220
|
});
|
|
@@ -186,6 +231,16 @@ function getListData(request, options) {
|
|
|
186
231
|
function getListDataAsObservable(request, options) {
|
|
187
232
|
return (0, rxjs_1.from)(getListData(request, options));
|
|
188
233
|
}
|
|
234
|
+
function _toServerListDataRequest(request) {
|
|
235
|
+
const { fields } = request, rest = __rest(request, ["fields"]);
|
|
236
|
+
return Object.assign(Object.assign({}, rest), (fields ? { displayFields: fields } : {}));
|
|
237
|
+
}
|
|
238
|
+
function _toServerMassEditRequest(request) {
|
|
239
|
+
return Object.assign(Object.assign({}, request), { dataRequest: _toServerListDataRequest(request.dataRequest) });
|
|
240
|
+
}
|
|
241
|
+
function _toServerMassDeleteRequest(request) {
|
|
242
|
+
return Object.assign(Object.assign({}, request), { dataRequest: _toServerListDataRequest(request.dataRequest) });
|
|
243
|
+
}
|
|
189
244
|
// ================================================================================
|
|
190
245
|
// MASS EDIT AND DELETE FUNCTIONS
|
|
191
246
|
// ================================================================================
|
|
@@ -221,7 +276,7 @@ function massEdit(request) {
|
|
|
221
276
|
};
|
|
222
277
|
console.log("Sending POST request to " + url + " with token " + authToken);
|
|
223
278
|
// Make the API request
|
|
224
|
-
let response = yield axios_1.default.post(url, request, { headers });
|
|
279
|
+
let response = yield axios_1.default.post(url, _toServerMassEditRequest(request), { headers });
|
|
225
280
|
return response.data;
|
|
226
281
|
});
|
|
227
282
|
}
|
|
@@ -260,7 +315,7 @@ function massDelete(request) {
|
|
|
260
315
|
};
|
|
261
316
|
console.log("Sending POST request to " + url + " with token " + authToken);
|
|
262
317
|
// Make the API request
|
|
263
|
-
let response = yield axios_1.default.post(url, request, { headers });
|
|
318
|
+
let response = yield axios_1.default.post(url, _toServerMassDeleteRequest(request), { headers });
|
|
264
319
|
return response.data;
|
|
265
320
|
});
|
|
266
321
|
}
|
|
@@ -121,6 +121,13 @@ export interface UserProxyAccessRosterRow {
|
|
|
121
121
|
/** Role metadata for `roleKeys`, when available. */
|
|
122
122
|
roles?: Role[];
|
|
123
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* Options for listing user proxy roster rows.
|
|
126
|
+
*/
|
|
127
|
+
export interface ListUserProxyAccessRosterOptions {
|
|
128
|
+
/** When true, return only linked active members with current-sandbox access for the roster context. */
|
|
129
|
+
activeOnly?: boolean;
|
|
130
|
+
}
|
|
124
131
|
/**
|
|
125
132
|
* Request body for access-service managed user proxy invite/link flow.
|
|
126
133
|
*/
|
|
@@ -284,12 +291,13 @@ export declare function linkUserProxyAsObservable(req: LinkUserProxyRequest): Ob
|
|
|
284
291
|
* @param orgProxyKey - Organization proxy object key for the roster context
|
|
285
292
|
* @param orgProxyElementId - Organization proxy data element ID
|
|
286
293
|
* @param userProxyElementId - User proxy/member data element ID
|
|
294
|
+
* @param options - Optional roster listing controls
|
|
287
295
|
*/
|
|
288
|
-
export declare function listUserProxyAccessRoster(orgProxyKey: string, orgProxyElementId: string, userProxyElementId: string): Promise<UserProxyAccessRosterRow[]>;
|
|
296
|
+
export declare function listUserProxyAccessRoster(orgProxyKey: string, orgProxyElementId: string, userProxyElementId: string, options?: ListUserProxyAccessRosterOptions): Promise<UserProxyAccessRosterRow[]>;
|
|
289
297
|
/**
|
|
290
298
|
* Observable version of `listUserProxyAccessRoster`. See `listUserProxyAccessRoster` for details.
|
|
291
299
|
*/
|
|
292
|
-
export declare function listUserProxyAccessRosterAsObservable(orgProxyKey: string, orgProxyElementId: string, userProxyElementId: string): Observable<UserProxyAccessRosterRow[]>;
|
|
300
|
+
export declare function listUserProxyAccessRosterAsObservable(orgProxyKey: string, orgProxyElementId: string, userProxyElementId: string, options?: ListUserProxyAccessRosterOptions): Observable<UserProxyAccessRosterRow[]>;
|
|
293
301
|
/**
|
|
294
302
|
* Invites or links a user by email through the access service roster helper.
|
|
295
303
|
*
|
|
@@ -322,6 +330,22 @@ export declare function setUserProxyRosterRoles(orgProxyKey: string, orgProxyEle
|
|
|
322
330
|
* Observable version of `setUserProxyRosterRoles`. See `setUserProxyRosterRoles` for details.
|
|
323
331
|
*/
|
|
324
332
|
export declare function setUserProxyRosterRolesAsObservable(orgProxyKey: string, orgProxyElementId: string, userProxyElementId: string, proxyKey: string, req: SetUserProxyRosterRolesRequest): Observable<UserProxyAccessRosterRow>;
|
|
333
|
+
/**
|
|
334
|
+
* Removes current-sandbox access for one roster row and returns the refreshed row.
|
|
335
|
+
*
|
|
336
|
+
* This removes the user's access for the requested roster context. It does not delete the shared user proxy identity
|
|
337
|
+
* record or unlink the proxy from the platform user.
|
|
338
|
+
*
|
|
339
|
+
* @param orgProxyKey - Organization proxy object key for the roster context
|
|
340
|
+
* @param orgProxyElementId - Organization proxy data element ID
|
|
341
|
+
* @param userProxyElementId - User proxy/member data element ID
|
|
342
|
+
* @param proxyKey - User proxy object key for the row being removed from current access
|
|
343
|
+
*/
|
|
344
|
+
export declare function removeUserProxyRosterAccess(orgProxyKey: string, orgProxyElementId: string, userProxyElementId: string, proxyKey: string): Promise<UserProxyAccessRosterRow>;
|
|
345
|
+
/**
|
|
346
|
+
* Observable version of `removeUserProxyRosterAccess`. See `removeUserProxyRosterAccess` for details.
|
|
347
|
+
*/
|
|
348
|
+
export declare function removeUserProxyRosterAccessAsObservable(orgProxyKey: string, orgProxyElementId: string, userProxyElementId: string, proxyKey: string): Observable<UserProxyAccessRosterRow>;
|
|
325
349
|
/**
|
|
326
350
|
* Adds or updates one user's sandbox scope entry.
|
|
327
351
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../../src/access.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../../src/access.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
+
import type { FilterExpression } from './filter-expression';
|
|
2
3
|
/**
|
|
3
4
|
* TransformType specifies the type of transformation to apply to a group field.
|
|
4
5
|
*/
|
|
@@ -74,10 +75,10 @@ export interface AggregationRequest {
|
|
|
74
75
|
*/
|
|
75
76
|
parentKeyField?: string;
|
|
76
77
|
/**
|
|
77
|
-
*
|
|
78
|
-
* filter expression.
|
|
78
|
+
* Halix filter expression to limit records before aggregation. This is not SQL or
|
|
79
|
+
* JavaScript syntax. Call `build_filter_expression` to generate the filter expression.
|
|
79
80
|
*/
|
|
80
|
-
filter?:
|
|
81
|
+
filter?: FilterExpression;
|
|
81
82
|
/**
|
|
82
83
|
* List of grouping specifications. Groups are formed by field values with optional transforms.
|
|
83
84
|
* Results will be grouped by these fields in the order specified.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-aggregate.d.ts","sourceRoot":"","sources":["../../../src/data-aggregate.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAQ,UAAU,EAAiB,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"data-aggregate.d.ts","sourceRoot":"","sources":["../../../src/data-aggregate.ts"],"names":[],"mappings":"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"}
|