@halix/action-sdk 1.0.51 → 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/data-crud.js +30 -11
- package/lib/cjs/filter-expression.js +10 -0
- package/lib/cjs/index.js +10 -1
- package/lib/cjs/invoices.js +70 -0
- package/lib/cjs/lists.js +68 -13
- 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 +2 -0
- 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/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 +4 -0
- 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/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 +2 -0
- 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/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
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
// Full license terms available in the LICENSE file.
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
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.
|
|
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
|
|
@@ -158,6 +159,14 @@ var payments_1 = require("./payments");
|
|
|
158
159
|
Object.defineProperty(exports, "submitStandalonePayment", { enumerable: true, get: function () { return payments_1.submitStandalonePayment; } });
|
|
159
160
|
Object.defineProperty(exports, "submitStandalonePaymentAsObservable", { enumerable: true, get: function () { return payments_1.submitStandalonePaymentAsObservable; } });
|
|
160
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
|
+
// ================================================================================
|
|
161
170
|
// AI FUNCTIONS
|
|
162
171
|
// ================================================================================
|
|
163
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
|
}
|
|
@@ -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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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
+
import type { FilterExpression } from './filter-expression';
|
|
2
3
|
/**
|
|
3
4
|
* SaveOptions is an interface for specifying save operation options.
|
|
4
5
|
*/
|
|
@@ -25,45 +26,45 @@ export declare function getObjectAsObservable(dataElementId: string, key: string
|
|
|
25
26
|
* @param parentElementId - Parent element ID
|
|
26
27
|
* @param parentKey - Parent object key; important: this establishes the scope of the query; use an appropriate scope key
|
|
27
28
|
* @param elementId - Child element ID
|
|
28
|
-
* @param filter - Optional filter
|
|
29
|
+
* @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.
|
|
29
30
|
* @param fetchedRelationships - Optional relationships to include as nested objects
|
|
30
31
|
* @returns Promise<any[]>
|
|
31
32
|
*/
|
|
32
|
-
export declare function getRelatedObjects(parentElementId: string, parentKey: string, elementId: string, filter?:
|
|
33
|
+
export declare function getRelatedObjects(parentElementId: string, parentKey: string, elementId: string, filter?: FilterExpression, fetchedRelationships?: string[]): Promise<any[]>;
|
|
33
34
|
/**
|
|
34
35
|
* Observable version of getRelatedObjects. See getRelatedObjects for details.
|
|
35
36
|
*/
|
|
36
|
-
export declare function getRelatedObjectsAsObservable(parentElementId: string, parentKey: string, elementId: string, filter?:
|
|
37
|
+
export declare function getRelatedObjectsAsObservable(parentElementId: string, parentKey: string, elementId: string, filter?: FilterExpression, fetchedRelationships?: string[]): Observable<any[]>;
|
|
37
38
|
/**
|
|
38
39
|
* Retrieves all objects for a data element that the current user has access to.
|
|
39
40
|
*
|
|
40
41
|
* @param dataElementId - Data element ID
|
|
41
|
-
* @param filter - Optional filter
|
|
42
|
+
* @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.
|
|
42
43
|
* @param fetchedRelationships - Optional relationships to include as nested objects
|
|
43
44
|
* @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.
|
|
44
45
|
* @returns Promise<any[]>
|
|
45
46
|
*/
|
|
46
|
-
export declare function getAccessibleObjects(dataElementId: string, filter?:
|
|
47
|
+
export declare function getAccessibleObjects(dataElementId: string, filter?: FilterExpression, fetchedRelationships?: string[], applyContext?: boolean): Promise<any[]>;
|
|
47
48
|
/**
|
|
48
49
|
* Observable version of getAccessibleObjects. See getAccessibleObjects for details.
|
|
49
50
|
*/
|
|
50
|
-
export declare function getAccessibleObjectsAsObservable(dataElementId: string, filter?:
|
|
51
|
+
export declare function getAccessibleObjectsAsObservable(dataElementId: string, filter?: FilterExpression, fetchedRelationships?: string[], applyContext?: boolean): Observable<any[]>;
|
|
51
52
|
/**
|
|
52
53
|
* Retrieves accessible objects for a data element from a specific key list.
|
|
53
54
|
* 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
|
*
|
|
55
56
|
* @param dataElementId - Data element ID
|
|
56
57
|
* @param keys - Object keys to retrieve
|
|
57
|
-
* @param filter - Optional filter
|
|
58
|
+
* @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.
|
|
58
59
|
* @param fetchedRelationships - Optional relationships to include as nested objects
|
|
59
60
|
* @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
61
|
* @returns Promise<any[]>
|
|
61
62
|
*/
|
|
62
|
-
export declare function getObjects(dataElementId: string, keys: string[], filter?:
|
|
63
|
+
export declare function getObjects(dataElementId: string, keys: string[], filter?: FilterExpression, fetchedRelationships?: string[], applyContext?: boolean): Promise<any[]>;
|
|
63
64
|
/**
|
|
64
65
|
* Observable version of getObjects. See getObjects for details.
|
|
65
66
|
*/
|
|
66
|
-
export declare function getObjectsAsObservable(dataElementId: string, keys: string[], filter?:
|
|
67
|
+
export declare function getObjectsAsObservable(dataElementId: string, keys: string[], filter?: FilterExpression, fetchedRelationships?: string[], applyContext?: boolean): Observable<any[]>;
|
|
67
68
|
/**
|
|
68
69
|
* Saves an object without establishing a parent relationship. Returns saved object with any server-assigned values (objKey, calculated fields).
|
|
69
70
|
*
|
|
@@ -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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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Halix data filter expression language string.
|
|
3
|
+
*
|
|
4
|
+
* This is not SQL, JavaScript, or an arbitrary query-string syntax. Use the
|
|
5
|
+
* `build_filter_expression` agent tool to generate filter expressions for SDK
|
|
6
|
+
* calls, list reads, aggregate queries, choosers, and generated TypeScript.
|
|
7
|
+
*
|
|
8
|
+
* Filter expressions are evaluated by Halix services within the request's
|
|
9
|
+
* normal data-access scope. Most filter parameters must be less than 200
|
|
10
|
+
* characters.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* // Boolean comparison
|
|
14
|
+
* const filter: FilterExpression = "archive!=boolean:true";
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* // Date and key comparisons
|
|
18
|
+
* const filter: FilterExpression =
|
|
19
|
+
* "(endDate >= date:2025-06-12) AND (courseKey=string:crs~00~abc)";
|
|
20
|
+
*/
|
|
21
|
+
export type FilterExpression = string;
|
|
22
|
+
//# sourceMappingURL=filter-expression.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-expression.d.ts","sourceRoot":"","sources":["../../../src/filter-expression.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC"}
|
package/lib/cjs/types/index.d.ts
CHANGED
|
@@ -4,6 +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 FilterExpression } from './filter-expression';
|
|
7
8
|
export { type SaveOptions, getObject, getObjectAsObservable, getRelatedObjects, getRelatedObjectsAsObservable, getAccessibleObjects, getAccessibleObjectsAsObservable, getObjects, getObjectsAsObservable, saveObject, saveObjectAsObservable, saveRelatedObject, saveRelatedObjectAsObservable, deleteObject, deleteObjectAsObservable, deleteRelatedObject, deleteRelatedObjectAsObservable, deleteRelatedObjects, deleteRelatedObjectsAsObservable } from './data-crud';
|
|
8
9
|
export { type ScopeKeyItem, type Role, type BusinessPrivilege, type SandboxUser, type UserAccessWrapper, type LinkUserProxyRequest, type UserProxyAccessRosterRow, type ListUserProxyAccessRosterOptions, type InviteOrLinkUserProxyByEmailRequest, type InviteOrLinkUserProxyAction, type InviteOrLinkUserProxyResult, type SetUserProxyRosterRolesRequest, type UpdateAccessRequest, type BusinessPrivilegeCheckResult, type CurrentBusinessPrivilegesResult, type DataElementAccessMode, type DataElementAccessResult, listRoles, listRolesAsObservable, listBusinessPrivileges, listBusinessPrivilegesAsObservable, listSandboxUsers, listSandboxUsersAsObservable, getUserAccess, getUserAccessAsObservable, linkUserProxy, linkUserProxyAsObservable, listUserProxyAccessRoster, listUserProxyAccessRosterAsObservable, inviteOrLinkUserProxyByEmail, inviteOrLinkUserProxyByEmailAsObservable, setUserProxyRosterRoles, setUserProxyRosterRolesAsObservable, removeUserProxyRosterAccess, removeUserProxyRosterAccessAsObservable, updateUserAccess, updateUserAccessAsObservable, removeUserAccess, removeUserAccessAsObservable, hasBusinessPrivilege, hasBusinessPrivilegeAsObservable, userPrivileges, userPrivilegesAsObservable, dataElementAccess, dataElementAccessAsObservable, hasDataElementAccess, hasDataElementAccessAsObservable, canReadDataElement, canReadDataElementAsObservable, canWriteDataElement, canWriteDataElementAsObservable, canDeleteDataElement, canDeleteDataElementAsObservable, } from './access';
|
|
9
10
|
export { type ContentResource, getOrCreateResource, getOrCreateResourceAsObservable, saveResource, saveResourceAsObservable, sendFileContents, sendFileContentsAsObservable, createOrUpdateResource, createOrUpdateResourceAsObservable, downloadResource, downloadResourceAsObservable } from './content';
|
|
@@ -12,6 +13,7 @@ export { getUserPreference, getOrganizationPreference, getUserPreferenceAsObserv
|
|
|
12
13
|
export { type SortField, type DataSortField, type BaseListDataRequest, type PagedListDataRequest, type ListDataResponse, type ListDataOptions, type ListDataSearchOptions, type MassEditValueType, type MassEditRequest, type MassDeleteRequest, type MassChangeResponse, getListData, getListDataAsObservable, massEdit, massEditAsObservable, massDelete, massDeleteAsObservable } from './lists';
|
|
13
14
|
export { AggregationResponse, type AggregationRequest, type AggregationRow, type AggregationGroup, type AggregationSort, type Aggregation, type AggregationGroupTransform, type TransformType, type AggregationType, getAggregateData, getAggregateDataAsObservable } from './data-aggregate';
|
|
14
15
|
export { type GatewayPaymentPreauthResult, type StandalonePaymentRequest, type StandalonePaymentResult, submitStandalonePayment, submitStandalonePaymentAsObservable } from './payments';
|
|
16
|
+
export { type InvoiceDueItem, type PayerInvoiceGroup, type ReminderMatchCriteria, type PaymentReminderRecord, type ChannelCoverage, getEnabledPaymentReminders, getInvoicesMatchingReminder, listEnrolledOrganizations, getReminderDeliveryCoverage } from './invoices';
|
|
15
17
|
export { type AIRequestOptions, sendAIMessage, sendAIMessageAsObservable } from './ai';
|
|
16
18
|
export { sortObjectArray, compareValues, getValueFromObject, debounceFn } from './utilities';
|
|
17
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|