@memberjunction/global 2.112.0 → 2.113.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/package.json +1 -1
  2. package/dist/Core.d.ts +0 -29
  3. package/dist/Core.d.ts.map +0 -1
  4. package/dist/Core.js +0 -58
  5. package/dist/Core.js.map +0 -1
  6. package/dist/generic/QueryCache.d.ts +0 -85
  7. package/dist/generic/QueryCache.d.ts.map +0 -1
  8. package/dist/generic/QueryCache.js +0 -198
  9. package/dist/generic/QueryCache.js.map +0 -1
  10. package/dist/generic/QueryCacheConfig.d.ts +0 -72
  11. package/dist/generic/QueryCacheConfig.d.ts.map +0 -1
  12. package/dist/generic/QueryCacheConfig.js +0 -3
  13. package/dist/generic/QueryCacheConfig.js.map +0 -1
  14. package/dist/generic/applicationInfo.d.ts +0 -138
  15. package/dist/generic/applicationInfo.d.ts.map +0 -1
  16. package/dist/generic/applicationInfo.js +0 -177
  17. package/dist/generic/applicationInfo.js.map +0 -1
  18. package/dist/generic/authEvaluator.d.ts +0 -25
  19. package/dist/generic/authEvaluator.d.ts.map +0 -1
  20. package/dist/generic/authEvaluator.js +0 -49
  21. package/dist/generic/authEvaluator.js.map +0 -1
  22. package/dist/generic/authTypes.d.ts +0 -193
  23. package/dist/generic/authTypes.d.ts.map +0 -1
  24. package/dist/generic/authTypes.js +0 -19
  25. package/dist/generic/authTypes.js.map +0 -1
  26. package/dist/generic/baseEngine.d.ts +0 -260
  27. package/dist/generic/baseEngine.d.ts.map +0 -1
  28. package/dist/generic/baseEngine.js +0 -510
  29. package/dist/generic/baseEngine.js.map +0 -1
  30. package/dist/generic/baseEntity.d.ts +0 -691
  31. package/dist/generic/baseEntity.d.ts.map +0 -1
  32. package/dist/generic/baseEntity.js +0 -1688
  33. package/dist/generic/baseEntity.js.map +0 -1
  34. package/dist/generic/baseInfo.d.ts +0 -24
  35. package/dist/generic/baseInfo.d.ts.map +0 -1
  36. package/dist/generic/baseInfo.js +0 -53
  37. package/dist/generic/baseInfo.js.map +0 -1
  38. package/dist/generic/compositeKey.d.ts +0 -206
  39. package/dist/generic/compositeKey.d.ts.map +0 -1
  40. package/dist/generic/compositeKey.js +0 -412
  41. package/dist/generic/compositeKey.js.map +0 -1
  42. package/dist/generic/databaseProviderBase.d.ts +0 -46
  43. package/dist/generic/databaseProviderBase.d.ts.map +0 -1
  44. package/dist/generic/databaseProviderBase.js +0 -14
  45. package/dist/generic/databaseProviderBase.js.map +0 -1
  46. package/dist/generic/entityInfo.d.ts +0 -983
  47. package/dist/generic/entityInfo.d.ts.map +0 -1
  48. package/dist/generic/entityInfo.js +0 -1401
  49. package/dist/generic/entityInfo.js.map +0 -1
  50. package/dist/generic/explorerNavigationItem.d.ts +0 -20
  51. package/dist/generic/explorerNavigationItem.d.ts.map +0 -1
  52. package/dist/generic/explorerNavigationItem.js +0 -29
  53. package/dist/generic/explorerNavigationItem.js.map +0 -1
  54. package/dist/generic/interfaces.d.ts +0 -610
  55. package/dist/generic/interfaces.d.ts.map +0 -1
  56. package/dist/generic/interfaces.js +0 -211
  57. package/dist/generic/interfaces.js.map +0 -1
  58. package/dist/generic/libraryInfo.d.ts +0 -40
  59. package/dist/generic/libraryInfo.d.ts.map +0 -1
  60. package/dist/generic/libraryInfo.js +0 -56
  61. package/dist/generic/libraryInfo.js.map +0 -1
  62. package/dist/generic/logging.d.ts +0 -179
  63. package/dist/generic/logging.d.ts.map +0 -1
  64. package/dist/generic/logging.js +0 -382
  65. package/dist/generic/logging.js.map +0 -1
  66. package/dist/generic/metadata.d.ts +0 -305
  67. package/dist/generic/metadata.d.ts.map +0 -1
  68. package/dist/generic/metadata.js +0 -454
  69. package/dist/generic/metadata.js.map +0 -1
  70. package/dist/generic/metadataUtil.d.ts +0 -8
  71. package/dist/generic/metadataUtil.d.ts.map +0 -1
  72. package/dist/generic/metadataUtil.js +0 -36
  73. package/dist/generic/metadataUtil.js.map +0 -1
  74. package/dist/generic/providerBase.d.ts +0 -546
  75. package/dist/generic/providerBase.d.ts.map +0 -1
  76. package/dist/generic/providerBase.js +0 -999
  77. package/dist/generic/providerBase.js.map +0 -1
  78. package/dist/generic/queryInfo.d.ts +0 -460
  79. package/dist/generic/queryInfo.d.ts.map +0 -1
  80. package/dist/generic/queryInfo.js +0 -633
  81. package/dist/generic/queryInfo.js.map +0 -1
  82. package/dist/generic/querySQLFilters.d.ts +0 -54
  83. package/dist/generic/querySQLFilters.d.ts.map +0 -1
  84. package/dist/generic/querySQLFilters.js +0 -84
  85. package/dist/generic/querySQLFilters.js.map +0 -1
  86. package/dist/generic/runQuery.d.ts +0 -96
  87. package/dist/generic/runQuery.d.ts.map +0 -1
  88. package/dist/generic/runQuery.js +0 -66
  89. package/dist/generic/runQuery.js.map +0 -1
  90. package/dist/generic/runQuerySQLFilterImplementations.d.ts +0 -51
  91. package/dist/generic/runQuerySQLFilterImplementations.d.ts.map +0 -1
  92. package/dist/generic/runQuerySQLFilterImplementations.js +0 -238
  93. package/dist/generic/runQuerySQLFilterImplementations.js.map +0 -1
  94. package/dist/generic/runReport.d.ts +0 -25
  95. package/dist/generic/runReport.d.ts.map +0 -1
  96. package/dist/generic/runReport.js +0 -42
  97. package/dist/generic/runReport.js.map +0 -1
  98. package/dist/generic/securityInfo.d.ts +0 -355
  99. package/dist/generic/securityInfo.d.ts.map +0 -1
  100. package/dist/generic/securityInfo.js +0 -425
  101. package/dist/generic/securityInfo.js.map +0 -1
  102. package/dist/generic/transactionGroup.d.ts +0 -184
  103. package/dist/generic/transactionGroup.d.ts.map +0 -1
  104. package/dist/generic/transactionGroup.js +0 -357
  105. package/dist/generic/transactionGroup.js.map +0 -1
  106. package/dist/generic/util.d.ts +0 -81
  107. package/dist/generic/util.d.ts.map +0 -1
  108. package/dist/generic/util.js +0 -301
  109. package/dist/generic/util.js.map +0 -1
  110. package/dist/views/runView.d.ts +0 -150
  111. package/dist/views/runView.d.ts.map +0 -1
  112. package/dist/views/runView.js +0 -100
  113. package/dist/views/runView.js.map +0 -1
  114. package/dist/views/viewInfo.d.ts +0 -121
  115. package/dist/views/viewInfo.d.ts.map +0 -1
  116. package/dist/views/viewInfo.js +0 -182
  117. package/dist/views/viewInfo.js.map +0 -1
@@ -1,425 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AuditLogTypeInfo = exports.AuthorizationRoleInfo = exports.AuthorizationRoleType = exports.AuthorizationInfo = exports.RowLevelSecurityFilterInfo = exports.RoleInfo = exports.UserRoleInfo = exports.UserInfo = void 0;
4
- const baseInfo_1 = require("./baseInfo");
5
- /**
6
- * A list of all users who have or had access to the system.
7
- * Contains user profile information, authentication details, and role assignments.
8
- */
9
- class UserInfo extends baseInfo_1.BaseInfo {
10
- /**
11
- * Gets the roles assigned to this user.
12
- * @returns {UserRoleInfo[]} Array of user role assignments
13
- */
14
- get UserRoles() {
15
- return this._UserRoles;
16
- }
17
- /**
18
- * Constructs a new instance of the UserInfo class, optionally initializing it with the provided metadata and initial data.
19
- * If newGlobalRoles are provided, the user roles will be set up to validate against those roles instead of fetching them from the metadata provider.
20
- * @param md
21
- * @param initData
22
- * @param newGlobalRoles
23
- */
24
- constructor(md = null, initData = null) {
25
- super();
26
- /**
27
- * Unique identifier for the user
28
- */
29
- this.ID = null;
30
- /**
31
- * Name of the user that is used in various places in UIs/etc, can be anything including FirstLast, Email, a Handle, etc
32
- */
33
- this.Name = null;
34
- /**
35
- * User's first name or given name
36
- */
37
- this.FirstName = null;
38
- /**
39
- * User's last name or surname
40
- */
41
- this.LastName = null;
42
- /**
43
- * User's professional title or salutation
44
- */
45
- this.Title = null;
46
- /**
47
- * Unique email address for the user. This field must be unique across all users in the system
48
- */
49
- this.Email = null;
50
- /**
51
- * User account type (User, Owner)
52
- */
53
- this.Type = null;
54
- /**
55
- * Whether this user account is currently active and can log in
56
- */
57
- this.IsActive = null;
58
- /**
59
- * Type of record this user is linked to (None, Employee, Contact, etc.)
60
- */
61
- this.LinkedRecordType = null;
62
- /**
63
- * Foreign key reference to the Employee entity
64
- */
65
- this.EmployeeID = null;
66
- /**
67
- * Foreign key reference to the Entities table
68
- */
69
- this.LinkedEntityID = null;
70
- /**
71
- * ID of the specific record this user is linked to
72
- */
73
- this.LinkedEntityRecordID = null;
74
- /**
75
- * Timestamp when the user record was created
76
- */
77
- this.__mj_CreatedAt = null;
78
- /**
79
- * Timestamp when the user record was last updated
80
- */
81
- this.__mj_UpdatedAt = null;
82
- // virtual fields - returned by the database VIEW
83
- /**
84
- * Concatenated first and last name
85
- */
86
- this.FirstLast = null;
87
- /**
88
- * Employee's concatenated first and last name
89
- */
90
- this.EmployeeFirstLast = null;
91
- /**
92
- * Employee's email address
93
- */
94
- this.EmployeeEmail = null;
95
- /**
96
- * Employee's job title
97
- */
98
- this.EmployeeTitle = null;
99
- /**
100
- * Name of the employee's supervisor
101
- */
102
- this.EmployeeSupervisor = null;
103
- /**
104
- * Email address of the employee's supervisor
105
- */
106
- this.EmployeeSupervisorEmail = null;
107
- this._UserRoles = [];
108
- this.copyInitData(initData);
109
- if (initData) {
110
- this._UserRoles = initData.UserRoles || initData._UserRoles;
111
- }
112
- }
113
- }
114
- exports.UserInfo = UserInfo;
115
- /**
116
- * Associates users with roles in the system, managing role-based access control and permission inheritance.
117
- */
118
- class UserRoleInfo extends baseInfo_1.BaseInfo {
119
- constructor(initData) {
120
- super();
121
- /**
122
- * Foreign key reference to the Users table
123
- */
124
- this.UserID = null;
125
- /**
126
- * Foreign key reference to the Roles table
127
- */
128
- this.RoleID = null;
129
- /**
130
- * Timestamp when the user-role association was created
131
- */
132
- this.__mj_CreatedAt = null;
133
- /**
134
- * Timestamp when the user-role association was last updated
135
- */
136
- this.__mj_UpdatedAt = null;
137
- // virtual fields - returned by the database VIEW
138
- /**
139
- * Name of the user
140
- */
141
- this.User = null;
142
- /**
143
- * Name of the role
144
- */
145
- this.Role = null;
146
- this.copyInitData(initData);
147
- }
148
- }
149
- exports.UserRoleInfo = UserRoleInfo;
150
- /**
151
- * Roles are used for security administration and can have zero to many Users as members.
152
- * Defines groups of permissions that can be assigned to multiple users.
153
- */
154
- class RoleInfo extends baseInfo_1.BaseInfo {
155
- constructor(initData) {
156
- super();
157
- /**
158
- * Unique identifier for the role
159
- */
160
- this.ID = null;
161
- /**
162
- * Name of the role
163
- */
164
- this.Name = null;
165
- /**
166
- * Description of the role
167
- */
168
- this.Description = null;
169
- /**
170
- * The unique ID of the role in the directory being used for authentication, for example an ID in Azure
171
- */
172
- this.DirectoryID = null;
173
- /**
174
- * The name of the role in the database, this is used for auto-generating permission statements by CodeGen
175
- */
176
- this.SQLName = null;
177
- /**
178
- * Timestamp when the role was created
179
- */
180
- this.__mj_CreatedAt = null;
181
- /**
182
- * Timestamp when the role was last updated
183
- */
184
- this.__mj_UpdatedAt = null;
185
- this.copyInitData(initData);
186
- }
187
- }
188
- exports.RoleInfo = RoleInfo;
189
- /**
190
- * Defines data access rules that filter records based on user context, implementing fine-grained security at the row level.
191
- */
192
- class RowLevelSecurityFilterInfo extends baseInfo_1.BaseInfo {
193
- constructor(initData) {
194
- super();
195
- /**
196
- * Unique identifier for the row level security filter
197
- */
198
- this.ID = null;
199
- /**
200
- * Name of the row level security filter
201
- */
202
- this.Name = null;
203
- /**
204
- * Description of the row level security filter
205
- */
206
- this.Description = null;
207
- /**
208
- * SQL WHERE clause template that filters records based on user context variables
209
- */
210
- this.FilterText = null;
211
- /**
212
- * Timestamp when the filter was created
213
- */
214
- this.__mj_CreatedAt = null;
215
- /**
216
- * Timestamp when the filter was last updated
217
- */
218
- this.__mj_UpdatedAt = null;
219
- this.copyInitData(initData);
220
- }
221
- /**
222
- * Replaces user-specific tokens in the filter text with actual user values.
223
- * Tokens are in the format {{UserFieldName}} where FieldName is any property of the UserInfo object.
224
- * @param {UserInfo} user - The user whose properties will be substituted into the filter text
225
- * @returns {string} The filter text with all user tokens replaced with actual values
226
- */
227
- MarkupFilterText(user) {
228
- let ret = this.FilterText;
229
- if (user) {
230
- const keys = Object.keys(user);
231
- for (let i = 0; i < keys.length; i++) {
232
- const key = keys[i];
233
- const val = user[key];
234
- if (val && typeof val == 'string') {
235
- ret = ret.replace(new RegExp(`{{User${key}}}`, 'g'), val);
236
- }
237
- }
238
- }
239
- return ret;
240
- }
241
- }
242
- exports.RowLevelSecurityFilterInfo = RowLevelSecurityFilterInfo;
243
- /**
244
- * Stores the fundamental permissions and access rights that can be granted to users and roles throughout the system.
245
- */
246
- class AuthorizationInfo extends baseInfo_1.BaseInfo {
247
- get Roles() {
248
- return this._AuthorizationRoles;
249
- }
250
- constructor(md, initData = null) {
251
- super();
252
- /**
253
- * Unique identifier for the authorization
254
- */
255
- this.ID = null;
256
- /**
257
- * The unique identifier for the parent authorization, if applicable
258
- */
259
- this.ParentID = null;
260
- /**
261
- * Name of the authorization
262
- */
263
- this.Name = null;
264
- /**
265
- * Indicates whether this authorization is currently active and can be granted to users or roles
266
- */
267
- this.IsActive = null;
268
- /**
269
- * When set to 1, Audit Log records are created whenever this authorization is invoked for a user
270
- */
271
- this.UseAuditLog = null;
272
- /**
273
- * Description of the authorization
274
- */
275
- this.Description = null;
276
- /**
277
- * Timestamp when the authorization was created
278
- */
279
- this.__mj_CreatedAt = null;
280
- /**
281
- * Timestamp when the authorization was last updated
282
- */
283
- this.__mj_UpdatedAt = null;
284
- this._AuthorizationRoles = [];
285
- this.copyInitData(initData);
286
- if (initData)
287
- this.SetupAuthorizationRoles(md, initData.AuthorizationRoles || initData._AuthorizationRoles);
288
- }
289
- /**
290
- * Sets up the roles associated with this authorization using the provided metadata and initial data.
291
- *
292
- * @param {IMetadataProvider} md - The metadata provider to fetch role information.
293
- * @param {AuthorizationRoleInfo[]} authorizationRoles - An array of `AuthorizationRoleInfo` instances or equivalent data to be associated with this authorization.
294
- */
295
- SetupAuthorizationRoles(md, authorizationRoles) {
296
- if (authorizationRoles) {
297
- const mdRoles = md.Roles;
298
- this._AuthorizationRoles = [];
299
- for (let i = 0; i < authorizationRoles.length; i++) {
300
- //
301
- const ari = new AuthorizationRoleInfo(authorizationRoles[i]);
302
- this._AuthorizationRoles.push(ari);
303
- const match = mdRoles.find(r => r.ID === ari.RoleID);
304
- if (match)
305
- ari._setRole(match);
306
- }
307
- }
308
- }
309
- /**
310
- * Determines if a given user can execute actions under this authorization based on their roles.
311
- *
312
- * @param {UserInfo} user - The user to check for execution rights.
313
- * @returns {boolean} True if the user can execute actions under this authorization, otherwise false.
314
- */
315
- UserCanExecute(user) {
316
- if (this.IsActive && user && user.UserRoles) {
317
- for (let i = 0; i < user.UserRoles.length; i++) {
318
- const matchingRole = this.Roles.find(r => r.ID === user.UserRoles[i].RoleID);
319
- if (matchingRole)
320
- return true; // as soon as we find a single matching role we can bail out as the user can execute
321
- }
322
- }
323
- return false;
324
- }
325
- /**
326
- * Determines if a given role can execute actions under this authorization.
327
- *
328
- * @param {RoleInfo} role - The role to check for execution rights.
329
- * @returns {boolean} True if the role can execute actions under this authorization, otherwise false.
330
- */
331
- RoleCanExecute(role) {
332
- if (this.IsActive) {
333
- return this.Roles.find(r => r.ID === role.ID) != null;
334
- }
335
- return false;
336
- }
337
- }
338
- exports.AuthorizationInfo = AuthorizationInfo;
339
- exports.AuthorizationRoleType = {
340
- Allow: 'Allow',
341
- Deny: 'Deny',
342
- };
343
- /**
344
- * Links authorizations to roles, defining which permissions are granted to users assigned to specific roles in the system.
345
- */
346
- class AuthorizationRoleInfo extends baseInfo_1.BaseInfo {
347
- get RoleInfo() {
348
- return this._RoleInfo;
349
- }
350
- AuthorizationType() {
351
- return this.Type.trim().toLowerCase() === 'allow' ? exports.AuthorizationRoleType.Allow : exports.AuthorizationRoleType.Deny;
352
- }
353
- _setRole(role) {
354
- this._RoleInfo = role;
355
- }
356
- constructor(initData) {
357
- super();
358
- /**
359
- * Unique identifier for the authorization-role mapping
360
- */
361
- this.ID = null;
362
- /**
363
- * Foreign key reference to the Authorizations table
364
- */
365
- this.AuthorizationID = null;
366
- /**
367
- * Foreign key reference to the Roles table
368
- */
369
- this.RoleID = null;
370
- /**
371
- * Specifies whether this authorization is granted to ('Allow') or explicitly denied ('Deny') for the role. Deny overrides Allow from all other roles a user may be part of
372
- */
373
- this.Type = null;
374
- /**
375
- * Timestamp when the authorization-role mapping was created
376
- */
377
- this.__mj_CreatedAt = null;
378
- /**
379
- * Timestamp when the authorization-role mapping was last updated
380
- */
381
- this.__mj_UpdatedAt = null;
382
- this._RoleInfo = null;
383
- this.copyInitData(initData);
384
- }
385
- }
386
- exports.AuthorizationRoleInfo = AuthorizationRoleInfo;
387
- /**
388
- * Defines the types of events that can be recorded in the audit log, enabling categorization and filtering of system activities.
389
- */
390
- class AuditLogTypeInfo extends baseInfo_1.BaseInfo {
391
- constructor(initData) {
392
- super();
393
- /**
394
- * Unique identifier for the audit log type
395
- */
396
- this.ID = null;
397
- /**
398
- * Foreign key reference to the parent Audit Log Type
399
- */
400
- this.ParentID = null;
401
- /**
402
- * Name of the audit log type
403
- */
404
- this.Name = null;
405
- /**
406
- * Description of the audit log type
407
- */
408
- this.Description = null;
409
- /**
410
- * Name of the associated authorization
411
- */
412
- this.AuthorizationName = null;
413
- /**
414
- * Timestamp when the audit log type was created
415
- */
416
- this.__mj_CreatedAt = null;
417
- /**
418
- * Timestamp when the audit log type was last updated
419
- */
420
- this.__mj_UpdatedAt = null;
421
- this.copyInitData(initData);
422
- }
423
- }
424
- exports.AuditLogTypeInfo = AuditLogTypeInfo;
425
- //# sourceMappingURL=securityInfo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"securityInfo.js","sourceRoot":"","sources":["../../src/generic/securityInfo.ts"],"names":[],"mappings":"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"}
@@ -1,184 +0,0 @@
1
- import { BaseEntity } from "./baseEntity";
2
- /**
3
- * Internal class used by TransactionGroupBase and sub-classes to manage individual transactions
4
- */
5
- export declare class TransactionItem {
6
- private _instruction;
7
- private _vars;
8
- /**
9
- * Callback function to call when the transaction is complete
10
- * @param result The result of the transaction - a row/record with field name/value pairs
11
- * @param success Whether the transaction completed successfully
12
- */
13
- private _callBack;
14
- private _extraData;
15
- private _baseEntity;
16
- private _operationType;
17
- get Vars(): any;
18
- get ExtraData(): any;
19
- get Instruction(): string;
20
- set Instruction(value: string);
21
- /**
22
- * Callback function that gets called when the transaction is complete
23
- * @returns A function that takes a result object (database row) and a success boolean
24
- */
25
- get CallBack(): (result: Record<string, any>, success: boolean) => void;
26
- get BaseEntity(): BaseEntity;
27
- get OperationType(): 'Create' | 'Update' | 'Delete';
28
- /**
29
- * Creates a new TransactionItem
30
- * @param baseEntity The base entity object this transaction is associated with
31
- * @param operationType The type of operation (Create, Update, Delete)
32
- * @param instruction The SQL or GraphQL instruction to execute
33
- * @param vars Variables to pass to the SQL or GraphQL
34
- * @param extraData Additional data needed for processing by the provider
35
- * @param callBack Callback function that gets called when the transaction completes
36
- */
37
- constructor(baseEntity: BaseEntity, operationType: 'Create' | 'Update' | 'Delete', instruction: string, vars: any, extraData: any, callBack: (result: Record<string, any>, success: boolean) => void);
38
- }
39
- /**
40
- * Tracks the individual transactions within a transaction group and their commit results
41
- */
42
- export declare class TransactionResult {
43
- Transaction: TransactionItem;
44
- Result: any;
45
- /**
46
- * True if the transaction was successful, false if it failed. If it failed, check the TransactionItem's BaseEntity.ResultHistory and BaseEntity.LatestResult
47
- */
48
- Success: boolean;
49
- constructor(transaction: TransactionItem, result: any, success: boolean);
50
- }
51
- /**
52
- * Used internally within the transaction group to manage the preprocessing of entities before a transaction is submitted
53
- */
54
- export declare class TransactionPreprocessingItem {
55
- entity: BaseEntity;
56
- complete: boolean;
57
- completionPromise: Promise<void>;
58
- constructor(entity: BaseEntity, completionPromise: Promise<void>);
59
- }
60
- /**
61
- * This class is used to encapsulate the concept of a variable to be used within a transaction group. This is designed to allow for the flow
62
- * of data from one item in a transaction group to another. For example say you had a transaction group where you are creating a new record in
63
- * EntityA and you wanted to get the newly created ID value from that record and then set it into a field called "EntityA_ID" in a record in EntityB.
64
- * You can do this by telling the TransactionGroup about these variables with the AddVariable() method in the TransactionGroupBase/sub-classes.
65
- */
66
- export declare class TransactionVariable {
67
- private _name;
68
- private _entityObject;
69
- private _fieldName;
70
- private _type;
71
- private _processedValue;
72
- private _isProcessed;
73
- get Name(): string;
74
- get EntityObject(): BaseEntity;
75
- get FieldName(): string;
76
- get Type(): 'Define' | 'Use';
77
- /**
78
- * Indicates if the variable has been processed. This is only true after the transaction group has been submitted and the results have been mapped back to the variables.
79
- */
80
- get IsProcessed(): boolean;
81
- /**
82
- * Processed Value is only available after the related transaction item has been executed and the results have been mapped back to the variables that are related to that transaction item.
83
- */
84
- get ProcessedValue(): any;
85
- set ProcessedValue(value: any);
86
- constructor(name: string, entityObject: BaseEntity, fieldName: string, type: 'Define' | 'Use');
87
- }
88
- /**
89
- * TransactionGroup is a class that handles the bundling of multiple transactions into a single request. The provider handles
90
- * the implementation details. If a transaction group is provided to the baseEntity object before either Save() or Delete() is called
91
- * instead of just immediately executing its SQL or GQL, it provides the instructions to the TransactionGroup object instead.
92
- *
93
- * Then, whenever the TransactionGroup object instance has its Submit() method called, all of the requests will be bundled into a single
94
- * request and handled. For example in the case of the GraphQLDataProvider, we queue up all of the GQL statements for all of the
95
- * mutations and send them across as a single GraphQL request. The GraphQL server handles the actual DB transaction stuff.
96
- *
97
- * TransactionGroup will call a callback function, if provided, after the transaction has either completed succesfully or failed.
98
- * If it is succesful, for Save() method calls, the latest data for that record will be provided back.
99
- * For Delete() method calls, the callback will be called with no data.
100
- *
101
- * This class is the base class for managing a group of transactions and submitting it to the provider so it can be handled as an ATOMic transaction
102
- */
103
- export declare abstract class TransactionGroupBase {
104
- private _pendingTransactions;
105
- private _variables;
106
- private _status;
107
- protected get PendingTransactions(): TransactionItem[];
108
- get Status(): 'Pending' | 'In Progress' | 'Complete' | 'Failed';
109
- /**
110
- * The array of variables that are to be used within the transaction group. These are used to pass data from one transaction item to another. See documentation on @class TransactionVariable
111
- */
112
- get Variables(): TransactionVariable[];
113
- /**
114
- * Adds a new variable to the transaction group.
115
- */
116
- AddVariable(newVariable: TransactionVariable): void;
117
- private transactionNotifier;
118
- get TransactionNotifications$(): import("rxjs").Observable<{
119
- success: boolean;
120
- results?: TransactionResult[];
121
- error?: any;
122
- }>;
123
- /**
124
- * Notifies observers about transaction success or failure
125
- * @param success Whether the transaction was successful
126
- * @param results The transaction results (if applicable)
127
- * @param error Any error that occurred (if applicable)
128
- */
129
- private NotifyTransactionStatus;
130
- private _preprocessingItems;
131
- /**
132
- * If an entity object needs to conduct any type of asynchronous preprocessing before a transaction is submitted, it must notify its transaction group
133
- * that it is doing so with this method. This causes the TransactionGroup to wait for all preprocessing to be completed before submitting the transaction.
134
- * This method checks to see if an the entity has already been registered for preprocessing and if so, does nothing.
135
- * @param entity
136
- */
137
- RegisterPreprocessing(entity: BaseEntity): void;
138
- /**
139
- * Indicates whether all of the entities that have registered with this transaction group have completed their preprocessing
140
- * @returns
141
- */
142
- PreprocessingComplete(): boolean;
143
- /**
144
- * Waits for all preprocessing to be complete.
145
- */
146
- protected waitForPreprocessing(): Promise<void>;
147
- /**
148
- * This is used by the BaseEntity/Provider objects to manage transactions on your behalf.
149
- * WARNING: Do NOT directly call this method. Instead set the TransactionGroup property on
150
- * the @BaseEntity class to make an entity object part of a transaction group.
151
- * @param transaction
152
- */
153
- AddTransaction(transaction: TransactionItem): void;
154
- /**
155
- * Subclasses of the TransactionGroupBase class must implement this method to handle the actual transaction submission which is provider-specific.
156
- */
157
- protected abstract HandleSubmit(): Promise<TransactionResult[]>;
158
- /**
159
- * Helper method for sub-classes to map a variable to a position in the pending transactions array
160
- * @param variable
161
- * @returns
162
- */
163
- protected MapVariableEntityObjectToPosition(variable: TransactionVariable): number;
164
- /**
165
- * Submits the transaction group to the provider for handling. The provider will handle the actual transaction and call the callback functions
166
- * @returns true if the transaction was successful, false if it failed. If the method fails, check each of the individual BaseEntity objects within
167
- * the TransactionGroup for their result histories using BaseEntity.ResultHistory and BaseEntity.LatestResult
168
- * @param allowRetryOfFailedTransaction If true, the transaction group will be resubmitted even if it has failed. If false, the transaction group will not be resubmitted if it has failed.
169
- */
170
- Submit(allowRetryOfFailedTransaction?: boolean): Promise<boolean>;
171
- /**
172
- * This utility method is to be used by sub-classes to set the values of the variables on the BaseEntity objects before the transaction is executed for variables
173
- * that are defined as 'Use' type. This is used to pass values from one transaction item to another.
174
- * @param entityObject
175
- * @returns the number of values set on the entity object
176
- */
177
- protected SetEntityValuesFromVariables(entityObject: BaseEntity): number;
178
- /**
179
- * This utility method is to be used by sub-classes to set the values of the variables on the BaseEntity objects after the transaction is executed for variables
180
- * @returns the number of variables that had their processed values set from the provided entity object
181
- */
182
- protected SetVariableValuesFromEntity(entityObject: BaseEntity, queryResults: any): number;
183
- }
184
- //# sourceMappingURL=transactionGroup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transactionGroup.d.ts","sourceRoot":"","sources":["../../src/generic/transactionGroup.ts"],"names":[],"mappings":"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"}