@halix/action-sdk 1.0.44 → 1.0.46

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.
@@ -0,0 +1,350 @@
1
+ // Halix SDK License v1.0
2
+ // Copyright (c) 2025 halix.io LLC.
3
+ //
4
+ // This source code is licensed for use **only** within applications
5
+ // running on the Halix platform, in accordance with Halix SDK guidelines.
6
+ //
7
+ // Unauthorized use outside the Halix platform is prohibited.
8
+ // Full license terms available in the LICENSE file.
9
+ /**
10
+ * @module @halix/action-sdk/access
11
+ * @description Access, roles, business privileges, invitations, and user scope assignment for the Halix Platform action SDK.
12
+ * This module lets custom code inspect role and privilege metadata, invite users, and update a user's access inside the
13
+ * current sandbox.
14
+ *
15
+ * Key concepts:
16
+ * - `Role.id` is the stable semantic role identifier used by configuration and generated code.
17
+ * - `Role.objKey` is the persisted role object key. APIs that accept `roleKeys` require `Role.objKey`, not `Role.id`.
18
+ * - `BusinessPrivilege.id` is the stable privilege identifier used by server-validated checks such as `hasBusinessPrivilege`.
19
+ * - Data element access checks use stable data element IDs and resolve to persisted keys on the server.
20
+ * - `ScopeKeyItem` entries define the data scope a user receives for an organization, user proxy, or custom data scope.
21
+ *
22
+ * @usage
23
+ * ## When to Use
24
+ * - **Build role assignment UI** -> `listRoles`, then submit matching `role.objKey` values as `roleKeys`
25
+ * - **Show or check business privileges** -> `listBusinessPrivileges`, `hasBusinessPrivilege`, `userPrivileges`
26
+ * - **List users in the current sandbox** -> `listSandboxUsers`
27
+ * - **Inspect one user's access** -> `getUserAccess`
28
+ * - **Invite a user by email** -> `inviteUser`
29
+ * - **Add or update a user's scope entry** -> `updateUserAccess`
30
+ * - **Remove one user scope entry** -> `removeUserAccess`
31
+ *
32
+ * ## Role Key Rule
33
+ * Never submit semantic role IDs as `roleKeys`. Resolve them first:
34
+ * 1. call `listRoles()`
35
+ * 2. find the role where `role.id` matches the semantic ID
36
+ * 3. submit `role.objKey` in `InviteUserRequest.roleKeys` or `UpdateAccessRequest.roleKeys`
37
+ *
38
+ * ## Key Functions
39
+ * | Function | Use For |
40
+ * |----------|---------|
41
+ * | `listRoles` | Read assignable roles for the current sandbox |
42
+ * | `listBusinessPrivileges` | Read business privilege metadata |
43
+ * | `listSandboxUsers` | Read users with access to the current sandbox |
44
+ * | `getUserAccess` | Read one user's current scope entries and roles |
45
+ * | `inviteUser` | Invite a new user and assign initial role keys/scopes |
46
+ * | `updateUserAccess` | Add or update one user scope entry |
47
+ * | `removeUserAccess` | Remove one user scope entry |
48
+ * | `hasBusinessPrivilege` | Server-check whether the current user has a privilege ID |
49
+ * | `userPrivileges` | Server-read the current user's privilege IDs |
50
+ * | `dataElementAccess` | Server-check current user's read/write/delete access to a data element ID |
51
+ * | `hasDataElementAccess` | Server-check one read/write/delete access mode |
52
+ * | `canReadDataElement` | Server-check read access to a data element ID |
53
+ * | `canWriteDataElement` | Server-check write access to a data element ID |
54
+ * | `canDeleteDataElement` | Server-check delete access to a data element ID |
55
+ *
56
+ * @example
57
+ * // Resolve a semantic role ID to the persisted object key before assignment
58
+ * const roles = await hx.listRoles();
59
+ * const memberRole = roles.find((role) => role.id === 'householdMember');
60
+ * if (!memberRole?.objKey) {
61
+ * throw new Error('Required role not found.');
62
+ * }
63
+ * await hx.updateUserAccess(userKey, {
64
+ * roleKeys: [memberRole.objKey],
65
+ * scopeKeyItems: [{ scopeKey: orgKey, dataElementId: 'family' }],
66
+ * });
67
+ *
68
+ * @example
69
+ * // Check the current user's business privilege
70
+ * if (await hx.hasBusinessPrivilege('manageSharedLists')) {
71
+ * // Show controls for sharing list access
72
+ * }
73
+ *
74
+ * @example
75
+ * // Check current user's data access before showing a CRUD control
76
+ * if (await hx.canWriteDataElement('shoppingList')) {
77
+ * // Show controls that create or update shopping list records
78
+ * }
79
+ */
80
+ import axios from 'axios';
81
+ import { from, lastValueFrom } from 'rxjs';
82
+ import { getAuthToken, sandboxKey, serviceAddress } from './sdk-general';
83
+ async function authHeaders() {
84
+ if (!getAuthToken) {
85
+ throw new Error('SDK not initialized.');
86
+ }
87
+ const authToken = await lastValueFrom(getAuthToken());
88
+ return { Authorization: `Bearer ${authToken}` };
89
+ }
90
+ /**
91
+ * Lists roles available in the current sandbox.
92
+ *
93
+ * Use this before assigning roles so semantic role IDs can be resolved to persisted `objKey` values. Assignment
94
+ * requests must send `Role.objKey` values in `roleKeys`.
95
+ *
96
+ * @returns Promise resolving to role metadata for the current sandbox
97
+ */
98
+ export async function listRoles() {
99
+ const response = await axios.get(`${serviceAddress}/access/sandboxes/${sandboxKey}/allRoles`, {
100
+ headers: await authHeaders(),
101
+ });
102
+ return response.data;
103
+ }
104
+ /**
105
+ * Observable version of `listRoles`. See `listRoles` for details.
106
+ */
107
+ export function listRolesAsObservable() {
108
+ return from(listRoles());
109
+ }
110
+ /**
111
+ * Lists business privileges available in the current sandbox.
112
+ *
113
+ * Business privilege IDs are used by `hasBusinessPrivilege`, current-user privilege checks, and role
114
+ * `businessPrivilegeIds`.
115
+ *
116
+ * @returns Promise resolving to business privilege metadata
117
+ */
118
+ export async function listBusinessPrivileges() {
119
+ const response = await axios.get(`${serviceAddress}/access/sandboxes/${sandboxKey}/businessPrivileges`, {
120
+ headers: await authHeaders(),
121
+ });
122
+ return response.data;
123
+ }
124
+ /**
125
+ * Observable version of `listBusinessPrivileges`. See `listBusinessPrivileges` for details.
126
+ */
127
+ export function listBusinessPrivilegesAsObservable() {
128
+ return from(listBusinessPrivileges());
129
+ }
130
+ /**
131
+ * Lists users with access to the current sandbox.
132
+ *
133
+ * Use `getUserAccess` when full scope-entry details are needed for a specific user.
134
+ *
135
+ * @returns Promise resolving to sandbox user summaries
136
+ */
137
+ export async function listSandboxUsers() {
138
+ const response = await axios.get(`${serviceAddress}/access/sandboxes/${sandboxKey}/users`, {
139
+ headers: await authHeaders(),
140
+ });
141
+ return response.data;
142
+ }
143
+ /**
144
+ * Observable version of `listSandboxUsers`. See `listSandboxUsers` for details.
145
+ */
146
+ export function listSandboxUsersAsObservable() {
147
+ return from(listSandboxUsers());
148
+ }
149
+ /**
150
+ * Gets one user's current sandbox access, including scope entries and any role metadata returned by the access service.
151
+ *
152
+ * @param userKey - Persisted user object key
153
+ * @returns Promise resolving to the user's access wrapper
154
+ */
155
+ export async function getUserAccess(userKey) {
156
+ const response = await axios.get(`${serviceAddress}/access/sandboxes/${sandboxKey}/user/${userKey}/access`, {
157
+ headers: await authHeaders(),
158
+ });
159
+ return response.data;
160
+ }
161
+ /**
162
+ * Observable version of `getUserAccess`. See `getUserAccess` for details.
163
+ */
164
+ export function getUserAccessAsObservable(userKey) {
165
+ return from(getUserAccess(userKey));
166
+ }
167
+ /**
168
+ * Invites a user by email and assigns initial sandbox access.
169
+ *
170
+ * `req.roleKeys` must contain persisted role object keys from `Role.objKey`, not semantic role IDs. Resolve desired
171
+ * semantic IDs with `listRoles` before calling this function.
172
+ *
173
+ * @param req - Invitation and initial access request
174
+ * @returns Promise resolving to invitation result metadata
175
+ */
176
+ export async function inviteUser(req) {
177
+ const response = await axios.post(`${serviceAddress}/access/sandboxes/${sandboxKey}/inviteByEmail`, req, {
178
+ headers: await authHeaders(),
179
+ });
180
+ return response.data;
181
+ }
182
+ /**
183
+ * Observable version of `inviteUser`. See `inviteUser` for details.
184
+ */
185
+ export function inviteUserAsObservable(req) {
186
+ return from(inviteUser(req));
187
+ }
188
+ /**
189
+ * Adds or updates one user's sandbox scope entry.
190
+ *
191
+ * If `req.scopeElementId` is present, the existing scope entry is updated. If it is omitted, a new scope entry is
192
+ * added. `req.roleKeys` must contain persisted role object keys from `Role.objKey`, not semantic role IDs.
193
+ *
194
+ * @param userKey - Persisted user object key
195
+ * @param req - Scope-entry access update request
196
+ */
197
+ export async function updateUserAccess(userKey, req) {
198
+ const path = req.scopeElementId ? 'updateScopeElement' : 'addScopeElement';
199
+ await axios.post(`${serviceAddress}/access/sandboxes/${sandboxKey}/user/${userKey}/${path}`, req, {
200
+ headers: await authHeaders(),
201
+ });
202
+ }
203
+ /**
204
+ * Observable version of `updateUserAccess`. See `updateUserAccess` for details.
205
+ */
206
+ export function updateUserAccessAsObservable(userKey, req) {
207
+ return from(updateUserAccess(userKey, req));
208
+ }
209
+ /**
210
+ * Removes one sandbox scope entry from a user.
211
+ *
212
+ * @param userKey - Persisted user object key
213
+ * @param scopeElementId - Scope element ID to remove from the user
214
+ */
215
+ export async function removeUserAccess(userKey, scopeElementId) {
216
+ await axios.delete(`${serviceAddress}/access/sandboxes/${sandboxKey}/user/${userKey}/removeScopeElements`, {
217
+ headers: await authHeaders(),
218
+ data: { scopeElementIds: [scopeElementId] },
219
+ });
220
+ }
221
+ /**
222
+ * Observable version of `removeUserAccess`. See `removeUserAccess` for details.
223
+ */
224
+ export function removeUserAccessAsObservable(userKey, scopeElementId) {
225
+ return from(removeUserAccess(userKey, scopeElementId));
226
+ }
227
+ /**
228
+ * Checks whether the authenticated user has a business privilege ID by calling the access service.
229
+ *
230
+ * This intentionally does not read `userContext.businessPrivileges`, because browser-local context can be manipulated.
231
+ * Treat this as an authorization check and await the server response.
232
+ *
233
+ * @param privilegeId - Stable business privilege ID
234
+ * @returns Promise resolving to true when the current user has the privilege
235
+ */
236
+ export async function hasBusinessPrivilege(privilegeId) {
237
+ const response = await axios.get(`${serviceAddress}/access/sandboxes/${sandboxKey}/businessPrivileges/${encodeURIComponent(privilegeId)}/currentUserHasPrivilege`, {
238
+ headers: await authHeaders(),
239
+ });
240
+ return response.data.hasPrivilege;
241
+ }
242
+ /**
243
+ * Observable version of `hasBusinessPrivilege`. See `hasBusinessPrivilege` for details.
244
+ */
245
+ export function hasBusinessPrivilegeAsObservable(privilegeId) {
246
+ return from(hasBusinessPrivilege(privilegeId));
247
+ }
248
+ /**
249
+ * Returns the authenticated user's business privilege IDs by calling the access service.
250
+ *
251
+ * This intentionally does not read `userContext.businessPrivileges`, because browser-local context can be manipulated.
252
+ *
253
+ * @returns Promise resolving to business privilege IDs for the current user
254
+ */
255
+ export async function userPrivileges() {
256
+ const response = await axios.get(`${serviceAddress}/access/sandboxes/${sandboxKey}/currentBusinessPrivileges`, {
257
+ headers: await authHeaders(),
258
+ });
259
+ return response.data.businessPrivileges ?? [];
260
+ }
261
+ /**
262
+ * Observable version of `userPrivileges`. See `userPrivileges` for details.
263
+ */
264
+ export function userPrivilegesAsObservable() {
265
+ return from(userPrivileges());
266
+ }
267
+ /**
268
+ * Checks the authenticated user's data element read/write/delete access through the access service.
269
+ *
270
+ * The caller passes the stable data element ID. The server resolves that ID to the persisted data element key before
271
+ * checking the user's token, so generated code does not need to manage ID-to-key mappings.
272
+ *
273
+ * @param dataElementId - Stable data element ID
274
+ * @returns Promise resolving to the current user's data element access flags
275
+ */
276
+ export async function dataElementAccess(dataElementId) {
277
+ const response = await axios.get(`${serviceAddress}/access/sandboxes/${sandboxKey}/dataElements/${encodeURIComponent(dataElementId)}/currentUserAccess`, {
278
+ headers: await authHeaders(),
279
+ });
280
+ return response.data;
281
+ }
282
+ /**
283
+ * Observable version of `dataElementAccess`. See `dataElementAccess` for details.
284
+ */
285
+ export function dataElementAccessAsObservable(dataElementId) {
286
+ return from(dataElementAccess(dataElementId));
287
+ }
288
+ /**
289
+ * Checks one data element access mode for the authenticated user through the access service.
290
+ *
291
+ * @param dataElementId - Stable data element ID
292
+ * @param access - Access mode to check: `read`, `write`, or `delete`
293
+ * @returns Promise resolving to true when the current user has the requested data access
294
+ */
295
+ export async function hasDataElementAccess(dataElementId, access) {
296
+ const result = await dataElementAccess(dataElementId);
297
+ switch (access) {
298
+ case 'read':
299
+ return result.canRead;
300
+ case 'write':
301
+ return result.canWrite;
302
+ case 'delete':
303
+ return result.canDelete;
304
+ default:
305
+ return false;
306
+ }
307
+ }
308
+ /**
309
+ * Observable version of `hasDataElementAccess`. See `hasDataElementAccess` for details.
310
+ */
311
+ export function hasDataElementAccessAsObservable(dataElementId, access) {
312
+ return from(hasDataElementAccess(dataElementId, access));
313
+ }
314
+ /**
315
+ * Checks whether the authenticated user can read records for a data element ID.
316
+ */
317
+ export function canReadDataElement(dataElementId) {
318
+ return hasDataElementAccess(dataElementId, 'read');
319
+ }
320
+ /**
321
+ * Observable version of `canReadDataElement`. See `canReadDataElement` for details.
322
+ */
323
+ export function canReadDataElementAsObservable(dataElementId) {
324
+ return from(canReadDataElement(dataElementId));
325
+ }
326
+ /**
327
+ * Checks whether the authenticated user can create or update records for a data element ID.
328
+ */
329
+ export function canWriteDataElement(dataElementId) {
330
+ return hasDataElementAccess(dataElementId, 'write');
331
+ }
332
+ /**
333
+ * Observable version of `canWriteDataElement`. See `canWriteDataElement` for details.
334
+ */
335
+ export function canWriteDataElementAsObservable(dataElementId) {
336
+ return from(canWriteDataElement(dataElementId));
337
+ }
338
+ /**
339
+ * Checks whether the authenticated user can delete records for a data element ID.
340
+ */
341
+ export function canDeleteDataElement(dataElementId) {
342
+ return hasDataElementAccess(dataElementId, 'delete');
343
+ }
344
+ /**
345
+ * Observable version of `canDeleteDataElement`. See `canDeleteDataElement` for details.
346
+ */
347
+ export function canDeleteDataElementAsObservable(dataElementId) {
348
+ return from(canDeleteDataElement(dataElementId));
349
+ }
350
+ //# sourceMappingURL=access.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access.js","sourceRoot":"","sources":["../../src/access.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,mCAAmC;AACnC,EAAE;AACF,oEAAoE;AACpE,0EAA0E;AAC1E,EAAE;AACF,6DAA6D;AAC7D,oDAAoD;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,aAAa,EAAc,MAAM,MAAM,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAgLzE,KAAK,UAAU,WAAW;IACtB,IAAI,CAAC,YAAY,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC;IACtD,OAAO,EAAE,aAAa,EAAE,UAAU,SAAS,EAAE,EAAE,CAAC;AACpD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS;IAC3B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,cAAc,qBAAqB,UAAU,WAAW,EAAE;QAC1F,OAAO,EAAE,MAAM,WAAW,EAAE;KAC/B,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,IAAI,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACjC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB;IACxC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,cAAc,qBAAqB,UAAU,qBAAqB,EAAE;QACpG,OAAO,EAAE,MAAM,WAAW,EAAE;KAC/B,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,IAAI,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kCAAkC;IAC9C,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IAClC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,cAAc,qBAAqB,UAAU,QAAQ,EAAE;QACvF,OAAO,EAAE,MAAM,WAAW,EAAE;KAC/B,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,IAAI,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B;IACxC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAe;IAC/C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,cAAc,qBAAqB,UAAU,SAAS,OAAO,SAAS,EAAE;QACxG,OAAO,EAAE,MAAM,WAAW,EAAE;KAC/B,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,IAAI,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAe;IACrD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAsB;IACnD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,qBAAqB,UAAU,gBAAgB,EAAE,GAAG,EAAE;QACrG,OAAO,EAAE,MAAM,WAAW,EAAE;KAC/B,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,IAAI,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAsB;IACzD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAe,EAAE,GAAwB;IAC5E,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAC3E,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,qBAAqB,UAAU,SAAS,OAAO,IAAI,IAAI,EAAE,EAAE,GAAG,EAAE;QAC9F,OAAO,EAAE,MAAM,WAAW,EAAE;KAC/B,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAC,OAAe,EAAE,GAAwB;IAClF,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAe,EAAE,cAAsB;IAC1E,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,cAAc,qBAAqB,UAAU,SAAS,OAAO,sBAAsB,EAAE;QACvG,OAAO,EAAE,MAAM,WAAW,EAAE;QAC5B,IAAI,EAAE,EAAE,eAAe,EAAE,CAAC,cAAc,CAAC,EAAE;KAC9C,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAC,OAAe,EAAE,cAAsB;IAChF,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,WAAmB;IAC1D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAC5B,GAAG,cAAc,qBAAqB,UAAU,uBAAuB,kBAAkB,CAAC,WAAW,CAAC,0BAA0B,EAChI;QACI,OAAO,EAAE,MAAM,WAAW,EAAE;KAC/B,CACJ,CAAC;IACF,OAAO,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAAC,WAAmB;IAChE,OAAO,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAChC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAC5B,GAAG,cAAc,qBAAqB,UAAU,4BAA4B,EAC5E;QACI,OAAO,EAAE,MAAM,WAAW,EAAE;KAC/B,CACJ,CAAC;IACF,OAAO,QAAQ,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B;IACtC,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,aAAqB;IACzD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAC5B,GAAG,cAAc,qBAAqB,UAAU,iBAAiB,kBAAkB,CAAC,aAAa,CAAC,oBAAoB,EACtH;QACI,OAAO,EAAE,MAAM,WAAW,EAAE;KAC/B,CACJ,CAAC;IACF,OAAO,QAAQ,CAAC,IAAI,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAAC,aAAqB;IAC/D,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,aAAqB,EAAE,MAA6B;IAC3F,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACtD,QAAQ,MAAM,EAAE,CAAC;QACb,KAAK,MAAM;YACP,OAAO,MAAM,CAAC,OAAO,CAAC;QAC1B,KAAK,OAAO;YACR,OAAO,MAAM,CAAC,QAAQ,CAAC;QAC3B,KAAK,QAAQ;YACT,OAAO,MAAM,CAAC,SAAS,CAAC;QAC5B;YACI,OAAO,KAAK,CAAC;IACrB,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAC5C,aAAqB,EACrB,MAA6B;IAE7B,OAAO,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,aAAqB;IACpD,OAAO,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAAC,aAAqB;IAChE,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,aAAqB;IACrD,OAAO,oBAAoB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,+BAA+B,CAAC,aAAqB;IACjE,OAAO,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,aAAqB;IACtD,OAAO,oBAAoB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAAC,aAAqB;IAClE,OAAO,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC;AACrD,CAAC"}
@@ -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,EAChC,UAAU,EACV,sBAAsB;AAEtB,YAAY;AACZ,UAAU,EACV,sBAAsB,EACtB,iBAAiB,EACjB,6BAA6B;AAE7B,cAAc;AACd,YAAY,EACZ,wBAAwB,EACxB,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,EAClC,gBAAgB,EAChB,4BAA4B,EAC/B,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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/lib/esm/index.mjs CHANGED
@@ -32,6 +32,10 @@ saveObject, saveObjectAsObservable, saveRelatedObject, saveRelatedObjectAsObserv
32
32
  // Data Delete
33
33
  deleteObject, deleteObjectAsObservable, deleteRelatedObject, deleteRelatedObjectAsObservable, deleteRelatedObjects, deleteRelatedObjectsAsObservable } from './data-crud';
34
34
  // ================================================================================
35
+ // ACCESS FUNCTIONS
36
+ // ================================================================================
37
+ export { listRoles, listRolesAsObservable, listBusinessPrivileges, listBusinessPrivilegesAsObservable, listSandboxUsers, listSandboxUsersAsObservable, getUserAccess, getUserAccessAsObservable, inviteUser, inviteUserAsObservable, updateUserAccess, updateUserAccessAsObservable, removeUserAccess, removeUserAccessAsObservable, hasBusinessPrivilege, hasBusinessPrivilegeAsObservable, userPrivileges, userPrivilegesAsObservable, dataElementAccess, dataElementAccessAsObservable, hasDataElementAccess, hasDataElementAccessAsObservable, canReadDataElement, canReadDataElementAsObservable, canWriteDataElement, canWriteDataElementAsObservable, canDeleteDataElement, canDeleteDataElementAsObservable, } from './access';
38
+ // ================================================================================
35
39
  // CONTENT FUNCTIONS
36
40
  // ================================================================================
37
41
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-general.js","sourceRoot":"","sources":["../../src/sdk-general.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,mCAAmC;AACnC,EAAE;AACF,oEAAoE;AACpE,0EAA0E;AAC1E,EAAE;AACF,6DAA6D;AAC7D,oDAAoD;AAEpD;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAc,EAAE,EAAE,MAAM,MAAM,CAAC;AAEtC,mFAAmF;AACnF,sCAAsC;AACtC,mFAAmF;AAEnF;;GAEG;AACH,MAAM,CAAC,IAAI,YAAsC,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,IAAI,UAAkB,CAAC;AAE9B;;GAEG;AACH,MAAM,CAAC,IAAI,cAAsB,CAAC;AAElC;;GAEG;AACH,MAAM,CAAC,IAAI,aAAkB,CAAC;AAE9B;;GAEG;AACH,MAAM,CAAC,IAAI,WAAwB,CAAC;AAEpC;;GAEG;AACH,MAAM,CAAC,IAAI,MAAc,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,IAAI,OAAgB,CAAC;AAE5B;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAmC;IAE1D,IAAI,IAAI,GAAQ,KAAK,CAAC;IACtB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAClB,OAAO,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACP,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;QAE5E,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,YAAY,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACjC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC3C,CAAC;IACL,CAAC;AACL,CAAC;AAwKD,mFAAmF;AACnF,4BAA4B;AAC5B,mFAAmF;AAEnF;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,eAA+B;IAClE,IAAI,OAAO,EAAE,CAAC;QACV,OAAO;YACH,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;SACxC,CAAC;IACN,CAAC;IAED,OAAO,eAAe,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,YAAoB;IACrD,IAAI,OAAO,EAAE,CAAC;QACV,OAAO;YACH,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;SACzC,CAAC;IACN,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"sdk-general.js","sourceRoot":"","sources":["../../src/sdk-general.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,mCAAmC;AACnC,EAAE;AACF,oEAAoE;AACpE,0EAA0E;AAC1E,EAAE;AACF,6DAA6D;AAC7D,oDAAoD;AAEpD;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAc,EAAE,EAAE,MAAM,MAAM,CAAC;AAEtC,mFAAmF;AACnF,sCAAsC;AACtC,mFAAmF;AAEnF;;GAEG;AACH,MAAM,CAAC,IAAI,YAAsC,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,IAAI,UAAkB,CAAC;AAE9B;;GAEG;AACH,MAAM,CAAC,IAAI,cAAsB,CAAC;AAElC;;GAEG;AACH,MAAM,CAAC,IAAI,aAAkB,CAAC;AAE9B;;GAEG;AACH,MAAM,CAAC,IAAI,WAAwB,CAAC;AAEpC;;GAEG;AACH,MAAM,CAAC,IAAI,MAAc,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,IAAI,OAAgB,CAAC;AAE5B;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAmC;IAE1D,IAAI,IAAI,GAAQ,KAAK,CAAC;IACtB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAClB,OAAO,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACP,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;QAE5E,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,YAAY,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACjC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC3C,CAAC;IACL,CAAC;AACL,CAAC;AA6KD,mFAAmF;AACnF,4BAA4B;AAC5B,mFAAmF;AAEnF;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,eAA+B;IAClE,IAAI,OAAO,EAAE,CAAC;QACV,OAAO;YACH,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;SACxC,CAAC;IACN,CAAC;IAED,OAAO,eAAe,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,YAAoB;IACrD,IAAI,OAAO,EAAE,CAAC;QACV,OAAO;YACH,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;SACzC,CAAC;IACN,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACnD,CAAC"}