@memberjunction/react-runtime 5.27.0 → 5.28.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.
- package/.turbo/turbo-build.log +15 -15
- package/CHANGELOG.md +23 -0
- package/dist/324.runtime.umd.js +86 -68
- package/dist/runtime.umd.js +886 -387
- package/package.json +6 -6
package/dist/runtime.umd.js
CHANGED
|
@@ -18005,6 +18005,54 @@ function plural(ms, msAbs, n, name) {
|
|
|
18005
18005
|
}
|
|
18006
18006
|
|
|
18007
18007
|
|
|
18008
|
+
/***/ },
|
|
18009
|
+
|
|
18010
|
+
/***/ 156
|
|
18011
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
18012
|
+
|
|
18013
|
+
"use strict";
|
|
18014
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
18015
|
+
/* harmony export */ t: () => (/* binding */ BehaviorSubject)
|
|
18016
|
+
/* harmony export */ });
|
|
18017
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(823);
|
|
18018
|
+
/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49);
|
|
18019
|
+
|
|
18020
|
+
|
|
18021
|
+
var BehaviorSubject = (function (_super) {
|
|
18022
|
+
(0,tslib__WEBPACK_IMPORTED_MODULE_0__/* .__extends */ .C6)(BehaviorSubject, _super);
|
|
18023
|
+
function BehaviorSubject(_value) {
|
|
18024
|
+
var _this = _super.call(this) || this;
|
|
18025
|
+
_this._value = _value;
|
|
18026
|
+
return _this;
|
|
18027
|
+
}
|
|
18028
|
+
Object.defineProperty(BehaviorSubject.prototype, "value", {
|
|
18029
|
+
get: function () {
|
|
18030
|
+
return this.getValue();
|
|
18031
|
+
},
|
|
18032
|
+
enumerable: false,
|
|
18033
|
+
configurable: true
|
|
18034
|
+
});
|
|
18035
|
+
BehaviorSubject.prototype._subscribe = function (subscriber) {
|
|
18036
|
+
var subscription = _super.prototype._subscribe.call(this, subscriber);
|
|
18037
|
+
!subscription.closed && subscriber.next(this._value);
|
|
18038
|
+
return subscription;
|
|
18039
|
+
};
|
|
18040
|
+
BehaviorSubject.prototype.getValue = function () {
|
|
18041
|
+
var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value;
|
|
18042
|
+
if (hasError) {
|
|
18043
|
+
throw thrownError;
|
|
18044
|
+
}
|
|
18045
|
+
this._throwIfClosed();
|
|
18046
|
+
return _value;
|
|
18047
|
+
};
|
|
18048
|
+
BehaviorSubject.prototype.next = function (value) {
|
|
18049
|
+
_super.prototype.next.call(this, (this._value = value));
|
|
18050
|
+
};
|
|
18051
|
+
return BehaviorSubject;
|
|
18052
|
+
}(_Subject__WEBPACK_IMPORTED_MODULE_1__/* .Subject */ .B));
|
|
18053
|
+
|
|
18054
|
+
//# sourceMappingURL=BehaviorSubject.js.map
|
|
18055
|
+
|
|
18008
18056
|
/***/ },
|
|
18009
18057
|
|
|
18010
18058
|
/***/ 600
|
|
@@ -19042,7 +19090,7 @@ function reportUnhandledError(err) {
|
|
|
19042
19090
|
|
|
19043
19091
|
/***/ },
|
|
19044
19092
|
|
|
19045
|
-
/***/
|
|
19093
|
+
/***/ 186
|
|
19046
19094
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
19047
19095
|
|
|
19048
19096
|
"use strict";
|
|
@@ -20002,17 +20050,20 @@ var BaseInfo = /*#__PURE__*/function () {
|
|
|
20002
20050
|
if (initData) {
|
|
20003
20051
|
// copy the properties from the init data to the new class instance we are constructing
|
|
20004
20052
|
var keys = Object.keys(initData);
|
|
20005
|
-
var thisKeys = Object.keys(this);
|
|
20006
20053
|
for (var j = 0; j < keys.length; j++) {
|
|
20054
|
+
var key = keys[j];
|
|
20007
20055
|
// make sure it is one of our keys, we don't want to create NEW fields
|
|
20008
|
-
if (
|
|
20009
|
-
|
|
20056
|
+
if (Object.prototype.hasOwnProperty.call(this, key)) {
|
|
20057
|
+
// fast path for exact match first, fallback to length check + lowercasing
|
|
20058
|
+
if ((key === 'DefaultValue' || key.length === 12 && key.toLowerCase() === 'defaultvalue') && initData[key]) {
|
|
20010
20059
|
// strip parens from default value from the DB, if they exist, for example defaults might be ((1)) or (getdate())
|
|
20011
20060
|
// could also be something like (('Pending')) in which case we'll want to remove the SYMMETRIC parens
|
|
20012
|
-
var initialValue = initData[
|
|
20061
|
+
var initialValue = initData[key];
|
|
20013
20062
|
var trueDefault = ExtractActualDefaultValue(initialValue);
|
|
20014
|
-
this[
|
|
20015
|
-
} else
|
|
20063
|
+
this[key] = trueDefault;
|
|
20064
|
+
} else {
|
|
20065
|
+
this[key] = initData[key];
|
|
20066
|
+
}
|
|
20016
20067
|
}
|
|
20017
20068
|
}
|
|
20018
20069
|
}
|
|
@@ -21525,6 +21576,9 @@ function metadata_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-
|
|
|
21525
21576
|
function metadata_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } metadata_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { metadata_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, metadata_regeneratorDefine2(e, r, n, t); }
|
|
21526
21577
|
function metadata_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
21527
21578
|
function metadata_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { metadata_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { metadata_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
21579
|
+
function metadata_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = metadata_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
21580
|
+
function metadata_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return metadata_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? metadata_arrayLikeToArray(r, a) : void 0; } }
|
|
21581
|
+
function metadata_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
21528
21582
|
function metadata_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
21529
21583
|
function metadata_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, metadata_toPropertyKey(o.key), o); } }
|
|
21530
21584
|
function metadata_createClass(e, r, t) { return r && metadata_defineProperties(e.prototype, r), t && metadata_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
@@ -21541,8 +21595,45 @@ function metadata_toPrimitive(t, r) { if ("object" != metadata_typeof(t) || !t)
|
|
|
21541
21595
|
var Metadata = /*#__PURE__*/function () {
|
|
21542
21596
|
function Metadata() {
|
|
21543
21597
|
metadata_classCallCheck(this, Metadata);
|
|
21598
|
+
this._entityMapByName = new Map();
|
|
21599
|
+
this._entityMapByID = new Map();
|
|
21600
|
+
this._entityMapPopulated = false;
|
|
21544
21601
|
}
|
|
21545
21602
|
return metadata_createClass(Metadata, [{
|
|
21603
|
+
key: "PopulateEntityMaps",
|
|
21604
|
+
value:
|
|
21605
|
+
/**
|
|
21606
|
+
* Bolt Optimization: Populate entity maps on demand to ensure O(1) hash map lookups
|
|
21607
|
+
* in EntityByName and EntityByID instead of O(N) array scans.
|
|
21608
|
+
*/
|
|
21609
|
+
function PopulateEntityMaps() {
|
|
21610
|
+
if (this._entityMapPopulated) return;
|
|
21611
|
+
var entities = this.Entities;
|
|
21612
|
+
if (!entities || entities.length === 0) return;
|
|
21613
|
+
this._entityMapByName.clear();
|
|
21614
|
+
this._entityMapByID.clear();
|
|
21615
|
+
var _iterator = metadata_createForOfIteratorHelper(entities),
|
|
21616
|
+
_step;
|
|
21617
|
+
try {
|
|
21618
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
21619
|
+
var e = _step.value;
|
|
21620
|
+
this._entityMapByName.set(e.Name.toLowerCase().trim(), e);
|
|
21621
|
+
if (e.ID) {
|
|
21622
|
+
this._entityMapByID.set((0,dist/* NormalizeUUID */.Xw)(e.ID), e);
|
|
21623
|
+
}
|
|
21624
|
+
}
|
|
21625
|
+
} catch (err) {
|
|
21626
|
+
_iterator.e(err);
|
|
21627
|
+
} finally {
|
|
21628
|
+
_iterator.f();
|
|
21629
|
+
}
|
|
21630
|
+
this._entityMapPopulated = true;
|
|
21631
|
+
}
|
|
21632
|
+
/**
|
|
21633
|
+
* When an application initializes, the Provider package that is being used for that application will handle setting the provider globally via this static property.
|
|
21634
|
+
* This is done so that the provider can be accessed from anywhere in the application without having to pass it around. This pattern is used sparingly in MJ.
|
|
21635
|
+
*/
|
|
21636
|
+
}, {
|
|
21546
21637
|
key: "Refresh",
|
|
21547
21638
|
value: (
|
|
21548
21639
|
/**
|
|
@@ -21554,12 +21645,13 @@ var Metadata = /*#__PURE__*/function () {
|
|
|
21554
21645
|
return metadata_regenerator().w(function (_context) {
|
|
21555
21646
|
while (1) switch (_context.n) {
|
|
21556
21647
|
case 0:
|
|
21648
|
+
this._entityMapPopulated = false;
|
|
21557
21649
|
_context.n = 1;
|
|
21558
21650
|
return Metadata.Provider.Refresh(providerToUse);
|
|
21559
21651
|
case 1:
|
|
21560
21652
|
return _context.a(2, _context.v);
|
|
21561
21653
|
}
|
|
21562
|
-
}, _callee);
|
|
21654
|
+
}, _callee, this);
|
|
21563
21655
|
}));
|
|
21564
21656
|
function Refresh(_x) {
|
|
21565
21657
|
return _Refresh.apply(this, arguments);
|
|
@@ -21596,8 +21688,12 @@ var Metadata = /*#__PURE__*/function () {
|
|
|
21596
21688
|
if (p !== null && p !== void 0 && p.EntityByName) {
|
|
21597
21689
|
return p.EntityByName(entityName);
|
|
21598
21690
|
}
|
|
21599
|
-
} catch (_unused) {/* Provider not set — fall through to
|
|
21691
|
+
} catch (_unused) {/* Provider not set — fall through to search */}
|
|
21600
21692
|
var key = entityName.trim().toLowerCase();
|
|
21693
|
+
this.PopulateEntityMaps();
|
|
21694
|
+
if (this._entityMapPopulated) {
|
|
21695
|
+
return this._entityMapByName.get(key);
|
|
21696
|
+
}
|
|
21601
21697
|
return this.Entities.find(function (e) {
|
|
21602
21698
|
return e.Name.toLowerCase().trim() === key;
|
|
21603
21699
|
});
|
|
@@ -21610,12 +21706,18 @@ var Metadata = /*#__PURE__*/function () {
|
|
|
21610
21706
|
}, {
|
|
21611
21707
|
key: "EntityByID",
|
|
21612
21708
|
value: function EntityByID(entityID) {
|
|
21709
|
+
if (!entityID) return undefined;
|
|
21613
21710
|
try {
|
|
21614
21711
|
var p = Metadata.Provider;
|
|
21615
21712
|
if (p !== null && p !== void 0 && p.EntityByID) {
|
|
21616
21713
|
return p.EntityByID(entityID);
|
|
21617
21714
|
}
|
|
21618
|
-
} catch (_unused2) {/* Provider not set — fall through to
|
|
21715
|
+
} catch (_unused2) {/* Provider not set — fall through to search */}
|
|
21716
|
+
var key = (0,dist/* NormalizeUUID */.Xw)(entityID);
|
|
21717
|
+
this.PopulateEntityMaps();
|
|
21718
|
+
if (this._entityMapPopulated) {
|
|
21719
|
+
return this._entityMapByID.get(key);
|
|
21720
|
+
}
|
|
21619
21721
|
return this.Entities.find(function (e) {
|
|
21620
21722
|
return (0,dist/* UUIDsEqual */.jd)(e.ID, entityID);
|
|
21621
21723
|
});
|
|
@@ -22485,12 +22587,7 @@ var Metadata = /*#__PURE__*/function () {
|
|
|
22485
22587
|
}())
|
|
22486
22588
|
}], [{
|
|
22487
22589
|
key: "Provider",
|
|
22488
|
-
get:
|
|
22489
|
-
/**
|
|
22490
|
-
* When an application initializes, the Provider package that is being used for that application will handle setting the provider globally via this static property.
|
|
22491
|
-
* This is done so that the provider can be accessed from anywhere in the application without having to pass it around. This pattern is used sparingly in MJ.
|
|
22492
|
-
*/
|
|
22493
|
-
function get() {
|
|
22590
|
+
get: function get() {
|
|
22494
22591
|
var g = dist/* MJGlobal */.rt.Instance.GetGlobalObjectStore();
|
|
22495
22592
|
if (g) return g[Metadata._globalProviderKey];else throw new Error('No global object store, so we cant get the static provider');
|
|
22496
22593
|
},
|
|
@@ -24007,7 +24104,7 @@ var EntityInfo = /*#__PURE__*/function (_BaseInfo0) {
|
|
|
24007
24104
|
}
|
|
24008
24105
|
// copy the Entity Permissions
|
|
24009
24106
|
_this0._Permissions = [];
|
|
24010
|
-
var ep = initData.EntityPermissions || initData._Permissions;
|
|
24107
|
+
var ep = initData.EntityPermissions || initData._Permissions || initData.Permissions;
|
|
24011
24108
|
if (ep) {
|
|
24012
24109
|
for (var _j = 0; _j < ep.length; _j++) {
|
|
24013
24110
|
_this0._Permissions.push(new EntityPermissionInfo(ep[_j]));
|
|
@@ -24015,7 +24112,7 @@ var EntityInfo = /*#__PURE__*/function (_BaseInfo0) {
|
|
|
24015
24112
|
}
|
|
24016
24113
|
// copy the Entity settings
|
|
24017
24114
|
_this0._Settings = [];
|
|
24018
|
-
var es = initData.EntitySettings || initData._Settings;
|
|
24115
|
+
var es = initData.EntitySettings || initData._Settings || initData.Settings;
|
|
24019
24116
|
if (es) {
|
|
24020
24117
|
es.map(function (s) {
|
|
24021
24118
|
return _this0._Settings.push(new EntitySettingInfo(s));
|
|
@@ -26397,15 +26494,70 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
26397
26494
|
function BaseEntity(Entity) {
|
|
26398
26495
|
var Provider = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
26399
26496
|
baseEntity_classCallCheck(this, BaseEntity);
|
|
26497
|
+
/**
|
|
26498
|
+
* Runtime field instances for this record — one `EntityField` per column in `_EntityInfo.Fields`.
|
|
26499
|
+
* Each holds the current value, old value, dirty state, and per-field validation. Populated
|
|
26500
|
+
* in `init()` and used as the primary data store for Get/Set/Save/validate.
|
|
26501
|
+
*/
|
|
26400
26502
|
this._Fields = [];
|
|
26503
|
+
/**
|
|
26504
|
+
* Whether a database record has been loaded into this instance (via `Load`, `NewRecord`,
|
|
26505
|
+
* `LoadFromData`, etc.). Used to gate operations that require loaded state and to distinguish
|
|
26506
|
+
* uninitialized instances from genuinely empty new records.
|
|
26507
|
+
*/
|
|
26401
26508
|
this._recordLoaded = false;
|
|
26509
|
+
/**
|
|
26510
|
+
* The user context to use for server-side operations (permission checks, audit trails).
|
|
26511
|
+
* On the server this MUST be set per-request; on the client it may be null since the
|
|
26512
|
+
* provider knows the logged-in user implicitly.
|
|
26513
|
+
*/
|
|
26402
26514
|
this._contextCurrentUser = null;
|
|
26515
|
+
/**
|
|
26516
|
+
* The transaction group this entity is enlisted in, if any. When set, `Save()` and `Delete()`
|
|
26517
|
+
* defer their provider calls to the group's coordinated `Submit()` so a batch of operations
|
|
26518
|
+
* commits atomically.
|
|
26519
|
+
*/
|
|
26403
26520
|
this._transactionGroup = null;
|
|
26521
|
+
/**
|
|
26522
|
+
* Append-only log of `BaseEntityResult` objects from each Save/Delete attempt. The most
|
|
26523
|
+
* recent entry is exposed via `LatestResult` for error inspection after a failure.
|
|
26524
|
+
*/
|
|
26404
26525
|
this._resultHistory = [];
|
|
26526
|
+
/**
|
|
26527
|
+
* The `IEntityDataProvider` routing DB operations for this specific entity. Resolved lazily
|
|
26528
|
+
* via `ProviderToUse` and may differ from `Metadata.Provider` when a custom provider is
|
|
26529
|
+
* configured per-entity (e.g., entities served from an external system).
|
|
26530
|
+
*/
|
|
26405
26531
|
this._provider = null;
|
|
26532
|
+
/**
|
|
26533
|
+
* Whether this entity instance has ever been persisted (via a successful Save). Distinct
|
|
26534
|
+
* from `IsSaved` because `NewRecord()` resets dirty state; this flag remains true once set.
|
|
26535
|
+
* Used by `Save()` to decide between spCreate vs spUpdate.
|
|
26536
|
+
*/
|
|
26406
26537
|
this._everSaved = false;
|
|
26538
|
+
/**
|
|
26539
|
+
* Whether a `Load*` operation is currently in flight. Used to suppress field-change events
|
|
26540
|
+
* and dirty-tracking while bulk-populating fields from the provider response.
|
|
26541
|
+
*/
|
|
26407
26542
|
this._isLoading = false;
|
|
26543
|
+
/**
|
|
26544
|
+
* Shared `Observable` for an in-flight `Delete()` call. Concurrent Delete attempts return
|
|
26545
|
+
* this same observable so the actual provider call only runs once, avoiding double-deletes
|
|
26546
|
+
* and duplicate error reporting.
|
|
26547
|
+
*/
|
|
26408
26548
|
this._pendingDelete$ = null;
|
|
26549
|
+
/**
|
|
26550
|
+
* Lazy `Map<fieldName, EntityField>` cache for O(1) `GetFieldByName()` lookups. Populated
|
|
26551
|
+
* on first call and cleared on `init()` so re-initialized entities rebuild fresh. Replaces
|
|
26552
|
+
* the previous O(N) `_Fields.find()` scan that dominated `SetMany`/setter/serialization paths.
|
|
26553
|
+
*/
|
|
26554
|
+
this._fieldCache = null;
|
|
26555
|
+
/**
|
|
26556
|
+
* Lazy `Map<codeName, EntityField>` cache for O(1) `GetFieldByCodeName()` lookups. Built the
|
|
26557
|
+
* same way as `_fieldCache` but keyed by the JS-safe `CodeName` rather than the DB field
|
|
26558
|
+
* name. Cleared on `init()`.
|
|
26559
|
+
*/
|
|
26560
|
+
this._codeNameCache = null;
|
|
26409
26561
|
/**************************************************************************
|
|
26410
26562
|
* IS-A Type Relationship — Bidirectional Entity Composition
|
|
26411
26563
|
*
|
|
@@ -26505,6 +26657,20 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
26505
26657
|
*/
|
|
26506
26658
|
this._providerTransaction = null;
|
|
26507
26659
|
this._compositeKey = null;
|
|
26660
|
+
// ────────────────────────────────────────────────────────────────────
|
|
26661
|
+
// Restore context — populated by callers immediately before Save() to
|
|
26662
|
+
// mark the resulting RecordChange row as a Restore (Source='Restore'
|
|
26663
|
+
// with RestoredFromID and optional RestoreReason populated).
|
|
26664
|
+
//
|
|
26665
|
+
// The context lives on the entity instance for exactly one Save() and
|
|
26666
|
+
// is consumed by the data provider when it generates the RecordChange
|
|
26667
|
+
// SQL. Callers should set the context, await Save(), then either
|
|
26668
|
+
// explicitly clear it via ClearRestoreContext() or rely on it being
|
|
26669
|
+
// overwritten on the next restore. We deliberately do NOT auto-clear
|
|
26670
|
+
// inside Save() because TransactionGroup execution is deferred — the
|
|
26671
|
+
// provider may capture the context now but use it later.
|
|
26672
|
+
// ────────────────────────────────────────────────────────────────────
|
|
26673
|
+
this._restoreContext = null;
|
|
26508
26674
|
// Holds the current pending save observable (if any)
|
|
26509
26675
|
this._pendingSave$ = null;
|
|
26510
26676
|
/**
|
|
@@ -27269,9 +27435,57 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
27269
27435
|
return null;
|
|
27270
27436
|
}
|
|
27271
27437
|
var lcase = fieldName.trim().toLowerCase(); // do this once as we will use it multiple times
|
|
27272
|
-
|
|
27273
|
-
|
|
27274
|
-
|
|
27438
|
+
if (this._fieldCache === null) {
|
|
27439
|
+
this._fieldCache = new Map();
|
|
27440
|
+
var _iterator = baseEntity_createForOfIteratorHelper(this.Fields),
|
|
27441
|
+
_step;
|
|
27442
|
+
try {
|
|
27443
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
27444
|
+
var f = _step.value;
|
|
27445
|
+
if (!this._fieldCache.has(f.Name.trim().toLowerCase())) {
|
|
27446
|
+
this._fieldCache.set(f.Name.trim().toLowerCase(), f);
|
|
27447
|
+
}
|
|
27448
|
+
}
|
|
27449
|
+
} catch (err) {
|
|
27450
|
+
_iterator.e(err);
|
|
27451
|
+
} finally {
|
|
27452
|
+
_iterator.f();
|
|
27453
|
+
}
|
|
27454
|
+
}
|
|
27455
|
+
return this._fieldCache.get(lcase) || null;
|
|
27456
|
+
}
|
|
27457
|
+
/**
|
|
27458
|
+
* Convenience method to access a field by code name. This method is case-insensitive and will return null if the field is not found.
|
|
27459
|
+
* @param codeName
|
|
27460
|
+
* @returns
|
|
27461
|
+
*/
|
|
27462
|
+
}, {
|
|
27463
|
+
key: "GetFieldByCodeName",
|
|
27464
|
+
value: function GetFieldByCodeName(codeName) {
|
|
27465
|
+
if (!codeName) {
|
|
27466
|
+
return null;
|
|
27467
|
+
}
|
|
27468
|
+
var lcase = codeName.trim().toLowerCase();
|
|
27469
|
+
if (this._codeNameCache === null) {
|
|
27470
|
+
this._codeNameCache = new Map();
|
|
27471
|
+
// First-write-wins on duplicate code names — matches prior Array.find() behavior
|
|
27472
|
+
var _iterator2 = baseEntity_createForOfIteratorHelper(this.Fields),
|
|
27473
|
+
_step2;
|
|
27474
|
+
try {
|
|
27475
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
27476
|
+
var f = _step2.value;
|
|
27477
|
+
var codeKey = f.CodeName.trim().toLowerCase();
|
|
27478
|
+
if (!this._codeNameCache.has(codeKey)) {
|
|
27479
|
+
this._codeNameCache.set(codeKey, f);
|
|
27480
|
+
}
|
|
27481
|
+
}
|
|
27482
|
+
} catch (err) {
|
|
27483
|
+
_iterator2.e(err);
|
|
27484
|
+
} finally {
|
|
27485
|
+
_iterator2.f();
|
|
27486
|
+
}
|
|
27487
|
+
}
|
|
27488
|
+
return this._codeNameCache.get(lcase) || null;
|
|
27275
27489
|
}
|
|
27276
27490
|
/**
|
|
27277
27491
|
* Returns true if the object is Dirty, meaning something has changed since it was last saved to the database, and false otherwise. For new records, this will always return true.
|
|
@@ -27433,13 +27647,12 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
27433
27647
|
}, {
|
|
27434
27648
|
key: "SetMany",
|
|
27435
27649
|
value: function SetMany(object) {
|
|
27436
|
-
var _this5 = this;
|
|
27437
27650
|
var ignoreNonExistentFields = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
27438
27651
|
var replaceOldValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
27439
27652
|
var ignoreActiveStatusAssertions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
27440
27653
|
if (!object) throw new Error('calling BaseEntity.SetMany(), object cannot be null or undefined');
|
|
27441
|
-
var
|
|
27442
|
-
var field =
|
|
27654
|
+
for (var key in object) {
|
|
27655
|
+
var field = this.GetFieldByName(key);
|
|
27443
27656
|
if (field) {
|
|
27444
27657
|
// check to see if key matches a field name, if so, set it
|
|
27445
27658
|
var priorActiveStatusAssertions = field.ActiveStatusAssertions; // save the current active status assertions
|
|
@@ -27447,7 +27660,7 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
27447
27660
|
field.ActiveStatusAssertions = false; // disable active status assertions for this field
|
|
27448
27661
|
}
|
|
27449
27662
|
// Use SetLocal here so we set on OUR fields (mirrors for parent fields)
|
|
27450
|
-
|
|
27663
|
+
this.SetLocal(key, object[key]);
|
|
27451
27664
|
if (replaceOldValues) {
|
|
27452
27665
|
field.ResetOldValue();
|
|
27453
27666
|
}
|
|
@@ -27457,16 +27670,14 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
27457
27670
|
} else {
|
|
27458
27671
|
// if we don't find a match for the field name, check to see if we have a match for the code name
|
|
27459
27672
|
// because some objects passed in will use the code name
|
|
27460
|
-
var _field =
|
|
27461
|
-
return f.CodeName.trim().toLowerCase() == key.trim().toLowerCase();
|
|
27462
|
-
});
|
|
27673
|
+
var _field = this.GetFieldByCodeName(key);
|
|
27463
27674
|
if (_field) {
|
|
27464
27675
|
var _priorActiveStatusAssertions = _field.ActiveStatusAssertions; // save the current active status assertions
|
|
27465
27676
|
if (ignoreActiveStatusAssertions) {
|
|
27466
27677
|
_field.ActiveStatusAssertions = false; // disable active status assertions for this field
|
|
27467
27678
|
}
|
|
27468
27679
|
// Use SetLocal here so we set on OUR fields (mirrors for parent fields)
|
|
27469
|
-
|
|
27680
|
+
this.SetLocal(_field.Name, object[key]);
|
|
27470
27681
|
if (replaceOldValues) {
|
|
27471
27682
|
_field.ResetOldValue();
|
|
27472
27683
|
}
|
|
@@ -27474,23 +27685,19 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
27474
27685
|
_field.ActiveStatusAssertions = _priorActiveStatusAssertions; // restore the active status assertions
|
|
27475
27686
|
}
|
|
27476
27687
|
} else {
|
|
27477
|
-
var
|
|
27688
|
+
var _this$_parentEntityFi3;
|
|
27478
27689
|
// IS-A routing: parent fields may not have local mirrors (virtual EntityField records)
|
|
27479
27690
|
// yet — they'll be handled by the IS-A routing block below, so skip the error/warning
|
|
27480
|
-
if ((
|
|
27481
|
-
|
|
27482
|
-
// parent field — will be forwarded to _parentEntity below
|
|
27691
|
+
if ((_this$_parentEntityFi3 = this._parentEntityFieldNames) !== null && _this$_parentEntityFi3 !== void 0 && _this$_parentEntityFi3.has(key)) {
|
|
27692
|
+
continue; // parent field — will be forwarded to _parentEntity below
|
|
27483
27693
|
}
|
|
27484
27694
|
// if we get here, we have a field that doesn't match either the field name or the code name, so throw an error
|
|
27485
|
-
if (!ignoreNonExistentFields) throw new Error("Field ".concat(key, " does not exist on ").concat(
|
|
27695
|
+
if (!ignoreNonExistentFields) throw new Error("Field ".concat(key, " does not exist on ").concat(this.EntityInfo.Name));else {
|
|
27486
27696
|
// Record field-not-found warning - will be batched and displayed after debounce period
|
|
27487
|
-
dist/* WarningManager */.aJ.Instance.RecordFieldNotFoundWarning(
|
|
27697
|
+
dist/* WarningManager */.aJ.Instance.RecordFieldNotFoundWarning(this.EntityInfo.Name, key, 'BaseEntity::SetMany');
|
|
27488
27698
|
}
|
|
27489
27699
|
}
|
|
27490
27700
|
}
|
|
27491
|
-
};
|
|
27492
|
-
for (var key in object) {
|
|
27493
|
-
if (_loop(key)) continue;
|
|
27494
27701
|
}
|
|
27495
27702
|
// IS-A routing: forward parent fields to _parentEntity for authoritative state
|
|
27496
27703
|
// This ensures proper OldValue tracking and dirty flags on the parent entity
|
|
@@ -27547,11 +27754,11 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
27547
27754
|
var oldValues = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
27548
27755
|
var onlyDirtyFields = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
27549
27756
|
var obj = {};
|
|
27550
|
-
var
|
|
27551
|
-
|
|
27757
|
+
var _iterator3 = baseEntity_createForOfIteratorHelper(this.Fields),
|
|
27758
|
+
_step3;
|
|
27552
27759
|
try {
|
|
27553
|
-
for (
|
|
27554
|
-
var field =
|
|
27760
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
27761
|
+
var field = _step3.value;
|
|
27555
27762
|
if (!onlyDirtyFields || onlyDirtyFields && field.Dirty) {
|
|
27556
27763
|
var tempStatus = field.ActiveStatusAssertions; // save the current active status assertions
|
|
27557
27764
|
field.ActiveStatusAssertions = false; // disable active status assertions for this field
|
|
@@ -27565,9 +27772,9 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
27565
27772
|
// IS-A composition: merge parent entity data with own data.
|
|
27566
27773
|
// Parent's GetAll() recursively collects from its own parent for N-level chains.
|
|
27567
27774
|
} catch (err) {
|
|
27568
|
-
|
|
27775
|
+
_iterator3.e(err);
|
|
27569
27776
|
} finally {
|
|
27570
|
-
|
|
27777
|
+
_iterator3.f();
|
|
27571
27778
|
}
|
|
27572
27779
|
if (this._parentEntity) {
|
|
27573
27780
|
var parentData = this._parentEntity.GetAll(oldValues, onlyDirtyFields);
|
|
@@ -27646,12 +27853,12 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
27646
27853
|
key: "GetDataObject",
|
|
27647
27854
|
value: (function () {
|
|
27648
27855
|
var _GetDataObject = baseEntity_asyncToGenerator(/*#__PURE__*/baseEntity_regenerator().m(function _callee8() {
|
|
27649
|
-
var
|
|
27856
|
+
var _this5 = this;
|
|
27650
27857
|
var params,
|
|
27651
27858
|
obj,
|
|
27652
27859
|
key,
|
|
27653
27860
|
v,
|
|
27654
|
-
|
|
27861
|
+
_loop,
|
|
27655
27862
|
i,
|
|
27656
27863
|
_args9 = arguments;
|
|
27657
27864
|
return baseEntity_regenerator().w(function (_context9) {
|
|
@@ -27671,12 +27878,12 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
27671
27878
|
_context9.n = 3;
|
|
27672
27879
|
break;
|
|
27673
27880
|
}
|
|
27674
|
-
|
|
27881
|
+
_loop = /*#__PURE__*/baseEntity_regenerator().m(function _loop() {
|
|
27675
27882
|
var re, pre, reData, msg;
|
|
27676
27883
|
return baseEntity_regenerator().w(function (_context8) {
|
|
27677
27884
|
while (1) switch (_context8.n) {
|
|
27678
27885
|
case 0:
|
|
27679
|
-
re =
|
|
27886
|
+
re = _this5._EntityInfo.RelatedEntities[i];
|
|
27680
27887
|
pre = params.relatedEntityList ? params.relatedEntityList.find(function (r) {
|
|
27681
27888
|
return r.relatedEntityName === re.RelatedEntity;
|
|
27682
27889
|
}) : null;
|
|
@@ -27685,7 +27892,7 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
27685
27892
|
break;
|
|
27686
27893
|
}
|
|
27687
27894
|
_context8.n = 1;
|
|
27688
|
-
return
|
|
27895
|
+
return _this5.GetRelatedEntityDataExt(re, pre.filter, pre.maxRecords);
|
|
27689
27896
|
case 1:
|
|
27690
27897
|
reData = _context8.v;
|
|
27691
27898
|
if (reData) {
|
|
@@ -27702,7 +27909,7 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
27702
27909
|
case 2:
|
|
27703
27910
|
return _context8.a(2);
|
|
27704
27911
|
}
|
|
27705
|
-
},
|
|
27912
|
+
}, _loop);
|
|
27706
27913
|
});
|
|
27707
27914
|
i = 0;
|
|
27708
27915
|
case 1:
|
|
@@ -27710,7 +27917,7 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
27710
27917
|
_context9.n = 3;
|
|
27711
27918
|
break;
|
|
27712
27919
|
}
|
|
27713
|
-
return _context9.d(_regeneratorValues(
|
|
27920
|
+
return _context9.d(_regeneratorValues(_loop()), 2);
|
|
27714
27921
|
case 2:
|
|
27715
27922
|
i++;
|
|
27716
27923
|
_context9.n = 1;
|
|
@@ -27800,21 +28007,23 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
27800
28007
|
this._resultHistory = [];
|
|
27801
28008
|
this._recordLoaded = false;
|
|
27802
28009
|
this._Fields = [];
|
|
28010
|
+
this._fieldCache = null;
|
|
28011
|
+
this._codeNameCache = null;
|
|
27803
28012
|
if (this.EntityInfo) {
|
|
27804
|
-
var
|
|
27805
|
-
|
|
28013
|
+
var _iterator4 = baseEntity_createForOfIteratorHelper(this.EntityInfo.Fields),
|
|
28014
|
+
_step4;
|
|
27806
28015
|
try {
|
|
27807
|
-
for (
|
|
27808
|
-
var rawField =
|
|
28016
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
28017
|
+
var rawField = _step4.value;
|
|
27809
28018
|
var key = this.EntityInfo.Name + '.' + rawField.Name;
|
|
27810
28019
|
// support for sub-classes of the EntityField class
|
|
27811
28020
|
var newField = dist/* MJGlobal */.rt.Instance.ClassFactory.CreateInstance(EntityField, key, rawField);
|
|
27812
28021
|
this.Fields.push(newField);
|
|
27813
28022
|
}
|
|
27814
28023
|
} catch (err) {
|
|
27815
|
-
|
|
28024
|
+
_iterator4.e(err);
|
|
27816
28025
|
} finally {
|
|
27817
|
-
|
|
28026
|
+
_iterator4.f();
|
|
27818
28027
|
}
|
|
27819
28028
|
}
|
|
27820
28029
|
}
|
|
@@ -27832,11 +28041,11 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
27832
28041
|
var replaceOldValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
27833
28042
|
try {
|
|
27834
28043
|
// iterate through all of OUR fields and set them to the value of the other object, if they exist in the other object
|
|
27835
|
-
var
|
|
27836
|
-
|
|
28044
|
+
var _iterator5 = baseEntity_createForOfIteratorHelper(this.Fields),
|
|
28045
|
+
_step5;
|
|
27837
28046
|
try {
|
|
27838
|
-
for (
|
|
27839
|
-
var field =
|
|
28047
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
28048
|
+
var field = _step5.value;
|
|
27840
28049
|
if (!field.IsPrimaryKey || includePrimaryKeys) {
|
|
27841
28050
|
var otherField = other.GetFieldByName(field.Name);
|
|
27842
28051
|
if (otherField) {
|
|
@@ -27848,9 +28057,9 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
27848
28057
|
}
|
|
27849
28058
|
}
|
|
27850
28059
|
} catch (err) {
|
|
27851
|
-
|
|
28060
|
+
_iterator5.e(err);
|
|
27852
28061
|
} finally {
|
|
27853
|
-
|
|
28062
|
+
_iterator5.f();
|
|
27854
28063
|
}
|
|
27855
28064
|
return true;
|
|
27856
28065
|
} catch (e) {
|
|
@@ -27880,7 +28089,7 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
27880
28089
|
}, {
|
|
27881
28090
|
key: "NewRecord",
|
|
27882
28091
|
value: function NewRecord(newValues) {
|
|
27883
|
-
var
|
|
28092
|
+
var _this6 = this;
|
|
27884
28093
|
this.init();
|
|
27885
28094
|
this._everSaved = false; // Reset save state for new record
|
|
27886
28095
|
// Clear child entity state — new records don't have children yet
|
|
@@ -27905,7 +28114,7 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
27905
28114
|
newValues.KeyValuePairs.filter(function (kv) {
|
|
27906
28115
|
return kv.Value !== null && kv.Value !== undefined;
|
|
27907
28116
|
}).forEach(function (kv) {
|
|
27908
|
-
|
|
28117
|
+
_this6.Set(kv.FieldName, kv.Value);
|
|
27909
28118
|
});
|
|
27910
28119
|
}
|
|
27911
28120
|
// IS-A composition: propagate PK value to parent entity chain
|
|
@@ -27913,25 +28122,84 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
27913
28122
|
if (this._parentEntity) {
|
|
27914
28123
|
this._parentEntity.NewRecord();
|
|
27915
28124
|
// Propagate PK — child and parent must share the same UUID
|
|
27916
|
-
var
|
|
27917
|
-
|
|
28125
|
+
var _iterator6 = baseEntity_createForOfIteratorHelper(this.EntityInfo.PrimaryKeys),
|
|
28126
|
+
_step6;
|
|
27918
28127
|
try {
|
|
27919
|
-
for (
|
|
27920
|
-
var _pk =
|
|
28128
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
28129
|
+
var _pk = _step6.value;
|
|
27921
28130
|
var pkValue = this.Get(_pk.Name);
|
|
27922
28131
|
if (pkValue != null) {
|
|
27923
28132
|
this._parentEntity.Set(_pk.Name, pkValue);
|
|
27924
28133
|
}
|
|
27925
28134
|
}
|
|
27926
28135
|
} catch (err) {
|
|
27927
|
-
|
|
28136
|
+
_iterator6.e(err);
|
|
27928
28137
|
} finally {
|
|
27929
|
-
|
|
28138
|
+
_iterator6.f();
|
|
27930
28139
|
}
|
|
27931
28140
|
}
|
|
27932
28141
|
this.RaiseEvent('new_record', null);
|
|
27933
28142
|
return true;
|
|
27934
28143
|
}
|
|
28144
|
+
/**
|
|
28145
|
+
* Returns the active restore context for the next save, if any.
|
|
28146
|
+
*
|
|
28147
|
+
* Read by the data provider when generating the RecordChange SQL: when
|
|
28148
|
+
* non-null, the resulting RecordChange row is written with
|
|
28149
|
+
* `Source='Restore'`, `RestoredFromID = SourceChangeID`, and
|
|
28150
|
+
* `RestoreReason = Reason`. Returns null for ordinary saves.
|
|
28151
|
+
*/
|
|
28152
|
+
}, {
|
|
28153
|
+
key: "RestoreContext",
|
|
28154
|
+
get: function get() {
|
|
28155
|
+
return this._restoreContext;
|
|
28156
|
+
}
|
|
28157
|
+
/**
|
|
28158
|
+
* Marks the next Save() as a restore from a historical RecordChange row.
|
|
28159
|
+
*
|
|
28160
|
+
* The provider will write a new RecordChange entry with `Source='Restore'`,
|
|
28161
|
+
* `RestoredFromID` pointing at `sourceChangeId`, and `RestoreReason` set to
|
|
28162
|
+
* `reason` (or NULL). This produces an auditable lineage chain that the
|
|
28163
|
+
* timeline UI can render via the `RestoredFromID` foreign key.
|
|
28164
|
+
*
|
|
28165
|
+
* The context is consumed exactly once per Save() and persists on the
|
|
28166
|
+
* entity until either (a) overwritten by a subsequent SetRestoreContext()
|
|
28167
|
+
* call or (b) explicitly cleared via ClearRestoreContext(). It is NOT
|
|
28168
|
+
* auto-cleared inside Save() because TransactionGroup execution is
|
|
28169
|
+
* deferred — see the comment on `_restoreContext` for details.
|
|
28170
|
+
*
|
|
28171
|
+
* @param sourceChangeId The ID of the historical RecordChange row whose
|
|
28172
|
+
* state is being restored. Required; throws if empty.
|
|
28173
|
+
* @param reason Optional user-entered explanation captured at restore
|
|
28174
|
+
* time. Persisted to RecordChange.RestoreReason for audit purposes.
|
|
28175
|
+
*
|
|
28176
|
+
* @example
|
|
28177
|
+
* record.SetRestoreContext(versionId, 'Reverting incorrect Q2 entries');
|
|
28178
|
+
* const ok = await record.Save();
|
|
28179
|
+
* record.ClearRestoreContext();
|
|
28180
|
+
*/
|
|
28181
|
+
}, {
|
|
28182
|
+
key: "SetRestoreContext",
|
|
28183
|
+
value: function SetRestoreContext(sourceChangeId) {
|
|
28184
|
+
var reason = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
28185
|
+
if (!sourceChangeId || typeof sourceChangeId !== 'string') {
|
|
28186
|
+
throw new Error('BaseEntity.SetRestoreContext: sourceChangeId is required and must be a non-empty string');
|
|
28187
|
+
}
|
|
28188
|
+
this._restoreContext = {
|
|
28189
|
+
SourceChangeID: sourceChangeId,
|
|
28190
|
+
Reason: reason !== null && reason !== void 0 ? reason : null
|
|
28191
|
+
};
|
|
28192
|
+
}
|
|
28193
|
+
/**
|
|
28194
|
+
* Clears any pending restore context. Safe to call when no context is set.
|
|
28195
|
+
* Recommended after Save() returns so a subsequent ordinary save isn't
|
|
28196
|
+
* accidentally tagged as a restore.
|
|
28197
|
+
*/
|
|
28198
|
+
}, {
|
|
28199
|
+
key: "ClearRestoreContext",
|
|
28200
|
+
value: function ClearRestoreContext() {
|
|
28201
|
+
this._restoreContext = null;
|
|
28202
|
+
}
|
|
27935
28203
|
/**
|
|
27936
28204
|
* Saves the current state of the object to the database. Uses the active provider to handle the actual saving of the record.
|
|
27937
28205
|
* If the record is new, it will be created, if it already exists, it will be updated.
|
|
@@ -27946,7 +28214,7 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
27946
28214
|
key: "Save",
|
|
27947
28215
|
value: (function () {
|
|
27948
28216
|
var _Save = baseEntity_asyncToGenerator(/*#__PURE__*/baseEntity_regenerator().m(function _callee1(options) {
|
|
27949
|
-
var
|
|
28217
|
+
var _this7 = this;
|
|
27950
28218
|
return baseEntity_regenerator().w(function (_context10) {
|
|
27951
28219
|
while (1) switch (_context10.n) {
|
|
27952
28220
|
case 0:
|
|
@@ -27966,11 +28234,11 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
27966
28234
|
this._pendingSave$ = of(options).pipe(
|
|
27967
28235
|
// Execute the actual save logic.
|
|
27968
28236
|
switchMap(function (opts) {
|
|
27969
|
-
return from(
|
|
28237
|
+
return from(_this7._InnerSave(opts));
|
|
27970
28238
|
}),
|
|
27971
28239
|
// When the save completes (whether successfully or not), clear the pending save observable.
|
|
27972
28240
|
finalize(function () {
|
|
27973
|
-
|
|
28241
|
+
_this7._pendingSave$ = null;
|
|
27974
28242
|
}),
|
|
27975
28243
|
// Ensure that all subscribers get the same result.
|
|
27976
28244
|
shareReplay(1));
|
|
@@ -27994,7 +28262,7 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
27994
28262
|
key: "_InnerSave",
|
|
27995
28263
|
value: (function () {
|
|
27996
28264
|
var _InnerSave2 = baseEntity_asyncToGenerator(/*#__PURE__*/baseEntity_regenerator().m(function _callee10(options) {
|
|
27997
|
-
var
|
|
28265
|
+
var _this8 = this;
|
|
27998
28266
|
var currentResultCount, newResult, initialDirtyState, _options, isISAInitiator, _this$ProviderToUse, _this$ProviderToUse$B, txn, parentSaveOptions, parentResult, type, saveSubType, parentEntityInfo, valResult, skipAsyncValidation, asyncResult, data, result, _this$ProviderToUse$C, _this$ProviderToUse2, _isISAInitiator, _t;
|
|
27999
28267
|
return baseEntity_regenerator().w(function (_context11) {
|
|
28000
28268
|
while (1) switch (_context11.p = _context11.n) {
|
|
@@ -28155,10 +28423,10 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
28155
28423
|
error = _ref.error;
|
|
28156
28424
|
if (success && results) {
|
|
28157
28425
|
var transItem = results.find(function (r) {
|
|
28158
|
-
return r.Transaction.BaseEntity ===
|
|
28426
|
+
return r.Transaction.BaseEntity === _this8;
|
|
28159
28427
|
});
|
|
28160
28428
|
if (transItem) {
|
|
28161
|
-
|
|
28429
|
+
_this8.finalizeSave(transItem.Result, saveSubType); // we get the resulting data from the transaction result, not data above as that will be blank when in a TG
|
|
28162
28430
|
} else {
|
|
28163
28431
|
// should never get here, but if we do, we need to throw an error
|
|
28164
28432
|
throw new Error('Transaction group did not return a result for the entity object');
|
|
@@ -28225,20 +28493,20 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
28225
28493
|
key: "RunPreSaveHooks",
|
|
28226
28494
|
value: (function () {
|
|
28227
28495
|
var _RunPreSaveHooks = baseEntity_asyncToGenerator(/*#__PURE__*/baseEntity_regenerator().m(function _callee11() {
|
|
28228
|
-
var preSaveHooks,
|
|
28496
|
+
var preSaveHooks, _iterator7, _step7, hook, hookResult, _t2;
|
|
28229
28497
|
return baseEntity_regenerator().w(function (_context12) {
|
|
28230
28498
|
while (1) switch (_context12.p = _context12.n) {
|
|
28231
28499
|
case 0:
|
|
28232
28500
|
preSaveHooks = GetDataHooks('PreSave');
|
|
28233
|
-
|
|
28501
|
+
_iterator7 = baseEntity_createForOfIteratorHelper(preSaveHooks);
|
|
28234
28502
|
_context12.p = 1;
|
|
28235
|
-
|
|
28503
|
+
_iterator7.s();
|
|
28236
28504
|
case 2:
|
|
28237
|
-
if ((
|
|
28505
|
+
if ((_step7 = _iterator7.n()).done) {
|
|
28238
28506
|
_context12.n = 6;
|
|
28239
28507
|
break;
|
|
28240
28508
|
}
|
|
28241
|
-
hook =
|
|
28509
|
+
hook = _step7.value;
|
|
28242
28510
|
_context12.n = 3;
|
|
28243
28511
|
return hook(this, this.ActiveUser);
|
|
28244
28512
|
case 3:
|
|
@@ -28263,10 +28531,10 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
28263
28531
|
case 7:
|
|
28264
28532
|
_context12.p = 7;
|
|
28265
28533
|
_t2 = _context12.v;
|
|
28266
|
-
|
|
28534
|
+
_iterator7.e(_t2);
|
|
28267
28535
|
case 8:
|
|
28268
28536
|
_context12.p = 8;
|
|
28269
|
-
|
|
28537
|
+
_iterator7.f();
|
|
28270
28538
|
return _context12.f(8);
|
|
28271
28539
|
case 9:
|
|
28272
28540
|
return _context12.a(2);
|
|
@@ -28489,18 +28757,18 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
28489
28757
|
key: "Revert",
|
|
28490
28758
|
value: function Revert() {
|
|
28491
28759
|
if (this.Dirty) {
|
|
28492
|
-
var
|
|
28493
|
-
|
|
28760
|
+
var _iterator8 = baseEntity_createForOfIteratorHelper(this.Fields),
|
|
28761
|
+
_step8;
|
|
28494
28762
|
try {
|
|
28495
|
-
for (
|
|
28496
|
-
var field =
|
|
28763
|
+
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
|
28764
|
+
var field = _step8.value;
|
|
28497
28765
|
field.Value = field.OldValue;
|
|
28498
28766
|
}
|
|
28499
28767
|
// IS-A composition: revert parent entity chain as well
|
|
28500
28768
|
} catch (err) {
|
|
28501
|
-
|
|
28769
|
+
_iterator8.e(err);
|
|
28502
28770
|
} finally {
|
|
28503
|
-
|
|
28771
|
+
_iterator8.f();
|
|
28504
28772
|
}
|
|
28505
28773
|
if (this._parentEntity) {
|
|
28506
28774
|
this._parentEntity.Revert();
|
|
@@ -28524,11 +28792,11 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
28524
28792
|
var EntityRelationshipsToLoad,
|
|
28525
28793
|
valResult,
|
|
28526
28794
|
data,
|
|
28527
|
-
|
|
28528
|
-
|
|
28795
|
+
_iterator9,
|
|
28796
|
+
_step9,
|
|
28529
28797
|
f,
|
|
28530
|
-
|
|
28531
|
-
|
|
28798
|
+
_iterator0,
|
|
28799
|
+
_step0,
|
|
28532
28800
|
relationship,
|
|
28533
28801
|
_args15 = arguments;
|
|
28534
28802
|
return baseEntity_regenerator().w(function (_context15) {
|
|
@@ -28582,32 +28850,32 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
28582
28850
|
// writes to ReadOnly fields after the initial load, meaning InnerLoad called a
|
|
28583
28851
|
// second time (e.g. to refresh denormalized data after a related entity changed)
|
|
28584
28852
|
// would fail to update those fields even though the provider returned fresh data.
|
|
28585
|
-
|
|
28853
|
+
_iterator9 = baseEntity_createForOfIteratorHelper(this.Fields);
|
|
28586
28854
|
try {
|
|
28587
|
-
for (
|
|
28588
|
-
f =
|
|
28855
|
+
for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
|
|
28856
|
+
f = _step9.value;
|
|
28589
28857
|
f.ResetNeverSetFlag();
|
|
28590
28858
|
}
|
|
28591
28859
|
} catch (err) {
|
|
28592
|
-
|
|
28860
|
+
_iterator9.e(err);
|
|
28593
28861
|
} finally {
|
|
28594
|
-
|
|
28862
|
+
_iterator9.f();
|
|
28595
28863
|
}
|
|
28596
28864
|
this.SetMany(data, false, true, true); // don't ignore non-existent fields, but DO replace old values
|
|
28597
28865
|
if (EntityRelationshipsToLoad) {
|
|
28598
|
-
|
|
28866
|
+
_iterator0 = baseEntity_createForOfIteratorHelper(EntityRelationshipsToLoad);
|
|
28599
28867
|
try {
|
|
28600
|
-
for (
|
|
28601
|
-
relationship =
|
|
28868
|
+
for (_iterator0.s(); !(_step0 = _iterator0.n()).done;) {
|
|
28869
|
+
relationship = _step0.value;
|
|
28602
28870
|
if (data[relationship]) {
|
|
28603
28871
|
// we have some data, put into an array for ease of access
|
|
28604
28872
|
this[relationship] = data[relationship];
|
|
28605
28873
|
}
|
|
28606
28874
|
}
|
|
28607
28875
|
} catch (err) {
|
|
28608
|
-
|
|
28876
|
+
_iterator0.e(err);
|
|
28609
28877
|
} finally {
|
|
28610
|
-
|
|
28878
|
+
_iterator0.f();
|
|
28611
28879
|
}
|
|
28612
28880
|
}
|
|
28613
28881
|
this._recordLoaded = true;
|
|
@@ -28732,8 +29000,8 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
28732
29000
|
value: (function () {
|
|
28733
29001
|
var _LoadFromData = baseEntity_asyncToGenerator(/*#__PURE__*/baseEntity_regenerator().m(function _callee16(data) {
|
|
28734
29002
|
var _replaceOldValues,
|
|
28735
|
-
|
|
28736
|
-
|
|
29003
|
+
_iterator1,
|
|
29004
|
+
_step1,
|
|
28737
29005
|
pkey,
|
|
28738
29006
|
_args17 = arguments;
|
|
28739
29007
|
return baseEntity_regenerator().w(function (_context17) {
|
|
@@ -28755,10 +29023,10 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
28755
29023
|
}
|
|
28756
29024
|
this._recordLoaded = true; // all primary keys are set, so we are loaded
|
|
28757
29025
|
this._everSaved = true; // Mark as saved since we loaded from data
|
|
28758
|
-
|
|
29026
|
+
_iterator1 = baseEntity_createForOfIteratorHelper(this.PrimaryKeys);
|
|
28759
29027
|
try {
|
|
28760
|
-
for (
|
|
28761
|
-
pkey =
|
|
29028
|
+
for (_iterator1.s(); !(_step1 = _iterator1.n()).done;) {
|
|
29029
|
+
pkey = _step1.value;
|
|
28762
29030
|
if (pkey.Value === null || pkey.Value === undefined) {
|
|
28763
29031
|
this._recordLoaded = false;
|
|
28764
29032
|
this._everSaved = false; // if any primary key is not set, we cannot consider ourselves loaded
|
|
@@ -28766,9 +29034,9 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
28766
29034
|
}
|
|
28767
29035
|
// Cache the record name for faster lookups if successfully loaded
|
|
28768
29036
|
} catch (err) {
|
|
28769
|
-
|
|
29037
|
+
_iterator1.e(err);
|
|
28770
29038
|
} finally {
|
|
28771
|
-
|
|
29039
|
+
_iterator1.f();
|
|
28772
29040
|
}
|
|
28773
29041
|
if (!this._recordLoaded) {
|
|
28774
29042
|
_context17.n = 1;
|
|
@@ -28820,13 +29088,13 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
28820
29088
|
}
|
|
28821
29089
|
// Validate own fields — for IS-A entities, skip parent field mirrors since
|
|
28822
29090
|
// those are validated via _parentEntity above
|
|
28823
|
-
var
|
|
28824
|
-
|
|
29091
|
+
var _iterator10 = baseEntity_createForOfIteratorHelper(this.Fields),
|
|
29092
|
+
_step10;
|
|
28825
29093
|
try {
|
|
28826
|
-
for (
|
|
28827
|
-
var _this$
|
|
28828
|
-
var field =
|
|
28829
|
-
if ((_this$
|
|
29094
|
+
for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
|
|
29095
|
+
var _this$_parentEntityFi4;
|
|
29096
|
+
var field = _step10.value;
|
|
29097
|
+
if ((_this$_parentEntityFi4 = this._parentEntityFieldNames) !== null && _this$_parentEntityFi4 !== void 0 && _this$_parentEntityFi4.has(field.Name)) continue; // skip parent field mirrors — authoritative validation is on _parentEntity
|
|
28830
29098
|
var err = field.Validate();
|
|
28831
29099
|
err.Errors.forEach(function (element) {
|
|
28832
29100
|
result.Errors.push(element);
|
|
@@ -28834,9 +29102,9 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
28834
29102
|
result.Success = result.Success && err.Success; // if any field fails, we fail, but keep going to get all of the validation messages
|
|
28835
29103
|
}
|
|
28836
29104
|
} catch (err) {
|
|
28837
|
-
|
|
29105
|
+
_iterator10.e(err);
|
|
28838
29106
|
} finally {
|
|
28839
|
-
|
|
29107
|
+
_iterator10.f();
|
|
28840
29108
|
}
|
|
28841
29109
|
return result;
|
|
28842
29110
|
}
|
|
@@ -28903,7 +29171,7 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
28903
29171
|
key: "Delete",
|
|
28904
29172
|
value: (function () {
|
|
28905
29173
|
var _Delete = baseEntity_asyncToGenerator(/*#__PURE__*/baseEntity_regenerator().m(function _callee18(options) {
|
|
28906
|
-
var
|
|
29174
|
+
var _this9 = this;
|
|
28907
29175
|
return baseEntity_regenerator().w(function (_context19) {
|
|
28908
29176
|
while (1) switch (_context19.n) {
|
|
28909
29177
|
case 0:
|
|
@@ -28917,11 +29185,11 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
28917
29185
|
this._pendingDelete$ = of(options).pipe(
|
|
28918
29186
|
// Execute the actual delete logic.
|
|
28919
29187
|
switchMap(function (opts) {
|
|
28920
|
-
return from(
|
|
29188
|
+
return from(_this9._InnerDelete(opts));
|
|
28921
29189
|
}),
|
|
28922
29190
|
// When the delete completes (whether successfully or not), clear the pending delete observable.
|
|
28923
29191
|
finalize(function () {
|
|
28924
|
-
|
|
29192
|
+
_this9._pendingDelete$ = null;
|
|
28925
29193
|
}),
|
|
28926
29194
|
// Ensure that all subscribers get the same result.
|
|
28927
29195
|
shareReplay(1));
|
|
@@ -28945,7 +29213,7 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
28945
29213
|
key: "_InnerDelete",
|
|
28946
29214
|
value: (function () {
|
|
28947
29215
|
var _InnerDelete2 = baseEntity_asyncToGenerator(/*#__PURE__*/baseEntity_regenerator().m(function _callee19(options) {
|
|
28948
|
-
var
|
|
29216
|
+
var _this0 = this;
|
|
28949
29217
|
var currentResultCount, newResult, _options, hasParentChain, isISAInitiator, childCheck, cascadeResult, _this$ProviderToUse4, _this$ProviderToUse4$, txn, oldVals, shouldDeleteParent, parentDeleteOptions, parentResult, _this$ProviderToUse$C2, _this$ProviderToUse5, _isISAInitiator2, _t4;
|
|
28950
29218
|
return baseEntity_regenerator().w(function (_context20) {
|
|
28951
29219
|
while (1) switch (_context20.p = _context20.n) {
|
|
@@ -29099,25 +29367,25 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
29099
29367
|
results = _ref2.results,
|
|
29100
29368
|
error = _ref2.error;
|
|
29101
29369
|
if (success) {
|
|
29102
|
-
|
|
29370
|
+
_this0.RaiseEvent('delete', {
|
|
29103
29371
|
OldValues: oldVals
|
|
29104
29372
|
});
|
|
29105
29373
|
// wipe out the current data to flush out the DIRTY flags by calling NewRecord()
|
|
29106
|
-
|
|
29374
|
+
_this0.NewRecord(); // will trigger a new record event here too
|
|
29107
29375
|
} else {
|
|
29108
29376
|
// transaction failed, so we need to add a new result to the history here
|
|
29109
29377
|
newResult.Success = false;
|
|
29110
29378
|
newResult.Type = 'delete';
|
|
29111
29379
|
newResult.Message = error && error.message ? error.message : error;
|
|
29112
29380
|
newResult.Errors = error.Errors || [];
|
|
29113
|
-
newResult.OriginalValues =
|
|
29381
|
+
newResult.OriginalValues = _this0.Fields.map(function (f) {
|
|
29114
29382
|
return {
|
|
29115
29383
|
FieldName: f.CodeName,
|
|
29116
29384
|
Value: f.OldValue
|
|
29117
29385
|
};
|
|
29118
29386
|
});
|
|
29119
29387
|
newResult.EndedAt = new Date();
|
|
29120
|
-
|
|
29388
|
+
_this0.ResultHistory.push(newResult);
|
|
29121
29389
|
}
|
|
29122
29390
|
});
|
|
29123
29391
|
}
|
|
@@ -29173,7 +29441,7 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
29173
29441
|
key: "CheckForChildRecords",
|
|
29174
29442
|
value: (function () {
|
|
29175
29443
|
var _CheckForChildRecords = baseEntity_asyncToGenerator(/*#__PURE__*/baseEntity_regenerator().m(function _callee20() {
|
|
29176
|
-
var childEntities, rv, pkValue,
|
|
29444
|
+
var childEntities, rv, pkValue, _iterator11, _step11, childEntity, pkField, result, _t5;
|
|
29177
29445
|
return baseEntity_regenerator().w(function (_context21) {
|
|
29178
29446
|
while (1) switch (_context21.p = _context21.n) {
|
|
29179
29447
|
case 0:
|
|
@@ -29190,15 +29458,15 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
29190
29458
|
// Use RunView to check each child entity for records with our PK
|
|
29191
29459
|
rv = new RunView();
|
|
29192
29460
|
pkValue = this.PrimaryKey.Values();
|
|
29193
|
-
|
|
29461
|
+
_iterator11 = baseEntity_createForOfIteratorHelper(childEntities);
|
|
29194
29462
|
_context21.p = 2;
|
|
29195
|
-
|
|
29463
|
+
_iterator11.s();
|
|
29196
29464
|
case 3:
|
|
29197
|
-
if ((
|
|
29465
|
+
if ((_step11 = _iterator11.n()).done) {
|
|
29198
29466
|
_context21.n = 7;
|
|
29199
29467
|
break;
|
|
29200
29468
|
}
|
|
29201
|
-
childEntity =
|
|
29469
|
+
childEntity = _step11.value;
|
|
29202
29470
|
pkField = childEntity.PrimaryKeys[0];
|
|
29203
29471
|
if (pkField) {
|
|
29204
29472
|
_context21.n = 4;
|
|
@@ -29233,10 +29501,10 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
29233
29501
|
case 8:
|
|
29234
29502
|
_context21.p = 8;
|
|
29235
29503
|
_t5 = _context21.v;
|
|
29236
|
-
|
|
29504
|
+
_iterator11.e(_t5);
|
|
29237
29505
|
case 9:
|
|
29238
29506
|
_context21.p = 9;
|
|
29239
|
-
|
|
29507
|
+
_iterator11.f();
|
|
29240
29508
|
return _context21.f(9);
|
|
29241
29509
|
case 10:
|
|
29242
29510
|
return _context21.a(2, {
|
|
@@ -29332,7 +29600,7 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
29332
29600
|
*/
|
|
29333
29601
|
function () {
|
|
29334
29602
|
var _EnforceDisjointSubtype = baseEntity_asyncToGenerator(/*#__PURE__*/baseEntity_regenerator().m(function _callee22() {
|
|
29335
|
-
var
|
|
29603
|
+
var _this1 = this;
|
|
29336
29604
|
var md, parentEntityInfo, siblingChildEntities, pkValue, rv, validSiblings, viewParams, results, i, _result$Results, result, sibling;
|
|
29337
29605
|
return baseEntity_regenerator().w(function (_context23) {
|
|
29338
29606
|
while (1) switch (_context23.n) {
|
|
@@ -29353,7 +29621,7 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
29353
29621
|
return _context23.a(2);
|
|
29354
29622
|
case 2:
|
|
29355
29623
|
siblingChildEntities = parentEntityInfo.ChildEntities.filter(function (e) {
|
|
29356
|
-
return !(0,dist/* UUIDsEqual */.jd)(e.ID,
|
|
29624
|
+
return !(0,dist/* UUIDsEqual */.jd)(e.ID, _this1.EntityInfo.ID);
|
|
29357
29625
|
});
|
|
29358
29626
|
if (!(siblingChildEntities.length === 0)) {
|
|
29359
29627
|
_context23.n = 3;
|
|
@@ -29546,21 +29814,21 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
29546
29814
|
key: "GenerateEmbeddingsByFieldName",
|
|
29547
29815
|
value: (function () {
|
|
29548
29816
|
var _GenerateEmbeddingsByFieldName = baseEntity_asyncToGenerator(/*#__PURE__*/baseEntity_regenerator().m(function _callee25(fields) {
|
|
29549
|
-
var promises,
|
|
29817
|
+
var promises, _iterator12, _step12, _step12$value, fieldName, vectorFieldName, modelFieldName, results;
|
|
29550
29818
|
return baseEntity_regenerator().w(function (_context26) {
|
|
29551
29819
|
while (1) switch (_context26.n) {
|
|
29552
29820
|
case 0:
|
|
29553
29821
|
promises = [];
|
|
29554
|
-
|
|
29822
|
+
_iterator12 = baseEntity_createForOfIteratorHelper(fields);
|
|
29555
29823
|
try {
|
|
29556
|
-
for (
|
|
29557
|
-
|
|
29824
|
+
for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
|
|
29825
|
+
_step12$value = _step12.value, fieldName = _step12$value.fieldName, vectorFieldName = _step12$value.vectorFieldName, modelFieldName = _step12$value.modelFieldName;
|
|
29558
29826
|
promises.push(this.GenerateEmbeddingByFieldName(fieldName, vectorFieldName, modelFieldName));
|
|
29559
29827
|
}
|
|
29560
29828
|
} catch (err) {
|
|
29561
|
-
|
|
29829
|
+
_iterator12.e(err);
|
|
29562
29830
|
} finally {
|
|
29563
|
-
|
|
29831
|
+
_iterator12.f();
|
|
29564
29832
|
}
|
|
29565
29833
|
_context26.n = 1;
|
|
29566
29834
|
return Promise.all(promises);
|
|
@@ -29638,21 +29906,21 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
29638
29906
|
key: "GenerateEmbeddings",
|
|
29639
29907
|
value: (function () {
|
|
29640
29908
|
var _GenerateEmbeddings = baseEntity_asyncToGenerator(/*#__PURE__*/baseEntity_regenerator().m(function _callee27(fields) {
|
|
29641
|
-
var promises,
|
|
29909
|
+
var promises, _iterator13, _step13, _step13$value, field, vectorField, modelField, results;
|
|
29642
29910
|
return baseEntity_regenerator().w(function (_context28) {
|
|
29643
29911
|
while (1) switch (_context28.n) {
|
|
29644
29912
|
case 0:
|
|
29645
29913
|
promises = [];
|
|
29646
|
-
|
|
29914
|
+
_iterator13 = baseEntity_createForOfIteratorHelper(fields);
|
|
29647
29915
|
try {
|
|
29648
|
-
for (
|
|
29649
|
-
|
|
29916
|
+
for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
|
|
29917
|
+
_step13$value = _step13.value, field = _step13$value.field, vectorField = _step13$value.vectorField, modelField = _step13$value.modelField;
|
|
29650
29918
|
promises.push(this.GenerateEmbedding(field, vectorField, modelField));
|
|
29651
29919
|
}
|
|
29652
29920
|
} catch (err) {
|
|
29653
|
-
|
|
29921
|
+
_iterator13.e(err);
|
|
29654
29922
|
} finally {
|
|
29655
|
-
|
|
29923
|
+
_iterator13.f();
|
|
29656
29924
|
}
|
|
29657
29925
|
_context28.n = 1;
|
|
29658
29926
|
return Promise.all(promises);
|
|
@@ -29826,7 +30094,7 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
29826
30094
|
key: "ResolveLeafEntityRecursive",
|
|
29827
30095
|
value: (function () {
|
|
29828
30096
|
var _ResolveLeafEntityRecursive = baseEntity_asyncToGenerator(/*#__PURE__*/baseEntity_regenerator().m(function _callee31(entityInfo, primaryKey, contextUser) {
|
|
29829
|
-
var childEntities, rv, pkValue,
|
|
30097
|
+
var childEntities, rv, pkValue, _iterator14, _step14, _result$Results2, child, childPK, result, _t7;
|
|
29830
30098
|
return baseEntity_regenerator().w(function (_context32) {
|
|
29831
30099
|
while (1) switch (_context32.p = _context32.n) {
|
|
29832
30100
|
case 0:
|
|
@@ -29842,15 +30110,15 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
29842
30110
|
case 1:
|
|
29843
30111
|
rv = new RunView();
|
|
29844
30112
|
pkValue = primaryKey.Values();
|
|
29845
|
-
|
|
30113
|
+
_iterator14 = baseEntity_createForOfIteratorHelper(childEntities);
|
|
29846
30114
|
_context32.p = 2;
|
|
29847
|
-
|
|
30115
|
+
_iterator14.s();
|
|
29848
30116
|
case 3:
|
|
29849
|
-
if ((
|
|
30117
|
+
if ((_step14 = _iterator14.n()).done) {
|
|
29850
30118
|
_context32.n = 7;
|
|
29851
30119
|
break;
|
|
29852
30120
|
}
|
|
29853
|
-
child =
|
|
30121
|
+
child = _step14.value;
|
|
29854
30122
|
childPK = child.PrimaryKeys[0];
|
|
29855
30123
|
if (childPK) {
|
|
29856
30124
|
_context32.n = 4;
|
|
@@ -29882,10 +30150,10 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
29882
30150
|
case 8:
|
|
29883
30151
|
_context32.p = 8;
|
|
29884
30152
|
_t7 = _context32.v;
|
|
29885
|
-
|
|
30153
|
+
_iterator14.e(_t7);
|
|
29886
30154
|
case 9:
|
|
29887
30155
|
_context32.p = 9;
|
|
29888
|
-
|
|
30156
|
+
_iterator14.f();
|
|
29889
30157
|
return _context32.f(9);
|
|
29890
30158
|
case 10:
|
|
29891
30159
|
return _context32.a(2, {
|
|
@@ -29924,8 +30192,8 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
29924
30192
|
providerToUse,
|
|
29925
30193
|
results,
|
|
29926
30194
|
changes,
|
|
29927
|
-
|
|
29928
|
-
|
|
30195
|
+
_iterator15,
|
|
30196
|
+
_step15,
|
|
29929
30197
|
result,
|
|
29930
30198
|
_args33 = arguments;
|
|
29931
30199
|
return baseEntity_regenerator().w(function (_context33) {
|
|
@@ -29948,16 +30216,16 @@ var BaseEntity = /*#__PURE__*/function () {
|
|
|
29948
30216
|
break;
|
|
29949
30217
|
}
|
|
29950
30218
|
changes = [];
|
|
29951
|
-
|
|
30219
|
+
_iterator15 = baseEntity_createForOfIteratorHelper(results);
|
|
29952
30220
|
try {
|
|
29953
|
-
for (
|
|
29954
|
-
result =
|
|
30221
|
+
for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
|
|
30222
|
+
result = _step15.value;
|
|
29955
30223
|
changes.push(new RecordChange(result));
|
|
29956
30224
|
}
|
|
29957
30225
|
} catch (err) {
|
|
29958
|
-
|
|
30226
|
+
_iterator15.e(err);
|
|
29959
30227
|
} finally {
|
|
29960
|
-
|
|
30228
|
+
_iterator15.f();
|
|
29961
30229
|
}
|
|
29962
30230
|
return _context33.a(2, changes);
|
|
29963
30231
|
case 3:
|
|
@@ -31354,43 +31622,8 @@ var TelemetryManager = /*#__PURE__*/function (_BaseSingleton) {
|
|
|
31354
31622
|
}
|
|
31355
31623
|
}]);
|
|
31356
31624
|
}(dist/* BaseSingleton */.tC);
|
|
31357
|
-
|
|
31358
|
-
|
|
31359
|
-
|
|
31360
|
-
var BehaviorSubject = (function (_super) {
|
|
31361
|
-
(0,tslib_es6/* __extends */.C6)(BehaviorSubject, _super);
|
|
31362
|
-
function BehaviorSubject(_value) {
|
|
31363
|
-
var _this = _super.call(this) || this;
|
|
31364
|
-
_this._value = _value;
|
|
31365
|
-
return _this;
|
|
31366
|
-
}
|
|
31367
|
-
Object.defineProperty(BehaviorSubject.prototype, "value", {
|
|
31368
|
-
get: function () {
|
|
31369
|
-
return this.getValue();
|
|
31370
|
-
},
|
|
31371
|
-
enumerable: false,
|
|
31372
|
-
configurable: true
|
|
31373
|
-
});
|
|
31374
|
-
BehaviorSubject.prototype._subscribe = function (subscriber) {
|
|
31375
|
-
var subscription = _super.prototype._subscribe.call(this, subscriber);
|
|
31376
|
-
!subscription.closed && subscriber.next(this._value);
|
|
31377
|
-
return subscription;
|
|
31378
|
-
};
|
|
31379
|
-
BehaviorSubject.prototype.getValue = function () {
|
|
31380
|
-
var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value;
|
|
31381
|
-
if (hasError) {
|
|
31382
|
-
throw thrownError;
|
|
31383
|
-
}
|
|
31384
|
-
this._throwIfClosed();
|
|
31385
|
-
return _value;
|
|
31386
|
-
};
|
|
31387
|
-
BehaviorSubject.prototype.next = function (value) {
|
|
31388
|
-
_super.prototype.next.call(this, (this._value = value));
|
|
31389
|
-
};
|
|
31390
|
-
return BehaviorSubject;
|
|
31391
|
-
}(Subject/* Subject */.B));
|
|
31392
|
-
|
|
31393
|
-
//# sourceMappingURL=BehaviorSubject.js.map
|
|
31625
|
+
// EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js
|
|
31626
|
+
var BehaviorSubject = __webpack_require__(156);
|
|
31394
31627
|
// EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/Subscription.js + 1 modules
|
|
31395
31628
|
var Subscription = __webpack_require__(226);
|
|
31396
31629
|
;// ../../../node_modules/rxjs/dist/esm5/internal/scheduler/Action.js
|
|
@@ -37093,13 +37326,13 @@ function IsPlatformSQL(value) {
|
|
|
37093
37326
|
var _ProviderBase;
|
|
37094
37327
|
function providerBase_typeof(o) { "@babel/helpers - typeof"; return providerBase_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, providerBase_typeof(o); }
|
|
37095
37328
|
function providerBase_regeneratorValues(e) { if (null != e) { var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"], r = 0; if (t) return t.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) return { next: function next() { return e && r >= e.length && (e = void 0), { value: e && e[r++], done: !e }; } }; } throw new TypeError(providerBase_typeof(e) + " is not iterable"); }
|
|
37096
|
-
function providerBase_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
37097
|
-
function providerBase_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? providerBase_ownKeys(Object(t), !0).forEach(function (r) { providerBase_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : providerBase_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
37098
|
-
function providerBase_defineProperty(e, r, t) { return (r = providerBase_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
37099
37329
|
function providerBase_toConsumableArray(r) { return providerBase_arrayWithoutHoles(r) || providerBase_iterableToArray(r) || providerBase_unsupportedIterableToArray(r) || providerBase_nonIterableSpread(); }
|
|
37100
37330
|
function providerBase_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
37101
37331
|
function providerBase_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
37102
37332
|
function providerBase_arrayWithoutHoles(r) { if (Array.isArray(r)) return providerBase_arrayLikeToArray(r); }
|
|
37333
|
+
function providerBase_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
37334
|
+
function providerBase_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? providerBase_ownKeys(Object(t), !0).forEach(function (r) { providerBase_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : providerBase_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
37335
|
+
function providerBase_defineProperty(e, r, t) { return (r = providerBase_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
37103
37336
|
function providerBase_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return providerBase_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (providerBase_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, providerBase_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, providerBase_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), providerBase_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", providerBase_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), providerBase_regeneratorDefine2(u), providerBase_regeneratorDefine2(u, o, "Generator"), providerBase_regeneratorDefine2(u, n, function () { return this; }), providerBase_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (providerBase_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
37104
37337
|
function providerBase_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } providerBase_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { providerBase_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, providerBase_regeneratorDefine2(e, r, n, t); }
|
|
37105
37338
|
function providerBase_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
@@ -37831,7 +38064,8 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
37831
38064
|
key: "flushCoalesceQueue",
|
|
37832
38065
|
value: (function () {
|
|
37833
38066
|
var _flushCoalesceQueue = providerBase_asyncToGenerator(/*#__PURE__*/providerBase_regenerator().m(function _callee7() {
|
|
37834
|
-
var
|
|
38067
|
+
var _this3 = this;
|
|
38068
|
+
var queue, entry, results, contextUser, uniqueParams, uniqueKeys, callerIndexMaps, _iterator3, _step3, _entry2, entryIndices, _iterator6, _step6, param, key, idx, entityNames, boundaries, cursor, _iterator4, _step4, _entry3, eventId, uniqueResults, i, callerResults, _iterator5, _step5, _entry, _t, _t2;
|
|
37835
38069
|
return providerBase_regenerator().w(function (_context7) {
|
|
37836
38070
|
while (1) switch (_context7.p = _context7.n) {
|
|
37837
38071
|
case 0:
|
|
@@ -37864,43 +38098,85 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
37864
38098
|
case 5:
|
|
37865
38099
|
return _context7.a(2);
|
|
37866
38100
|
case 6:
|
|
37867
|
-
//
|
|
37868
|
-
|
|
37869
|
-
|
|
38101
|
+
// Build a deduplicated unique-param list and per-caller index maps so a query
|
|
38102
|
+
// the same 5 engines ask for is executed once, not 5 times. Each caller's
|
|
38103
|
+
// params array maps to indices into the unique list, preserving order for
|
|
38104
|
+
// correct result routing.
|
|
38105
|
+
// Use the first caller's contextUser (all should be the same on client-side)
|
|
37870
38106
|
contextUser = queue[0].contextUser;
|
|
38107
|
+
uniqueParams = [];
|
|
38108
|
+
uniqueKeys = new Map();
|
|
38109
|
+
callerIndexMaps = [];
|
|
37871
38110
|
_iterator3 = providerBase_createForOfIteratorHelper(queue);
|
|
37872
38111
|
try {
|
|
37873
38112
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
37874
38113
|
_entry2 = _step3.value;
|
|
37875
|
-
|
|
37876
|
-
|
|
37877
|
-
|
|
37878
|
-
|
|
37879
|
-
|
|
38114
|
+
entryIndices = [];
|
|
38115
|
+
_iterator6 = providerBase_createForOfIteratorHelper(_entry2.params);
|
|
38116
|
+
try {
|
|
38117
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
38118
|
+
param = _step6.value;
|
|
38119
|
+
key = this.GenerateDedupKey([param], contextUser);
|
|
38120
|
+
idx = uniqueKeys.get(key);
|
|
38121
|
+
if (idx === undefined) {
|
|
38122
|
+
idx = uniqueParams.length;
|
|
38123
|
+
uniqueKeys.set(key, idx);
|
|
38124
|
+
uniqueParams.push(param);
|
|
38125
|
+
}
|
|
38126
|
+
entryIndices.push(idx);
|
|
38127
|
+
}
|
|
38128
|
+
} catch (err) {
|
|
38129
|
+
_iterator6.e(err);
|
|
38130
|
+
} finally {
|
|
38131
|
+
_iterator6.f();
|
|
38132
|
+
}
|
|
38133
|
+
callerIndexMaps.push(entryIndices);
|
|
37880
38134
|
}
|
|
37881
38135
|
} catch (err) {
|
|
37882
38136
|
_iterator3.e(err);
|
|
37883
38137
|
} finally {
|
|
37884
38138
|
_iterator3.f();
|
|
37885
38139
|
}
|
|
37886
|
-
entityNames =
|
|
38140
|
+
entityNames = uniqueParams.map(function (p) {
|
|
37887
38141
|
return p.EntityName || p.ViewName || '?';
|
|
37888
|
-
});
|
|
38142
|
+
}); // Boundaries point into the deduplicated unique-param list; each caller's
|
|
38143
|
+
// `count` is the number of their original requests (not the dedup'd count)
|
|
38144
|
+
// so telemetry still reflects what each caller asked for.
|
|
38145
|
+
boundaries = [];
|
|
38146
|
+
cursor = 0;
|
|
38147
|
+
_iterator4 = providerBase_createForOfIteratorHelper(queue);
|
|
38148
|
+
try {
|
|
38149
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
38150
|
+
_entry3 = _step4.value;
|
|
38151
|
+
boundaries.push({
|
|
38152
|
+
start: cursor,
|
|
38153
|
+
count: _entry3.params.length
|
|
38154
|
+
});
|
|
38155
|
+
cursor += _entry3.params.length;
|
|
38156
|
+
}
|
|
38157
|
+
} catch (err) {
|
|
38158
|
+
_iterator4.e(err);
|
|
38159
|
+
} finally {
|
|
38160
|
+
_iterator4.f();
|
|
38161
|
+
}
|
|
37889
38162
|
eventId = TelemetryManager.Instance.StartEvent('Coalesce', 'ProviderBase.flushCoalesceQueue', {
|
|
37890
38163
|
CallerCount: queue.length,
|
|
37891
|
-
TotalEntityCount:
|
|
38164
|
+
TotalEntityCount: uniqueParams.length,
|
|
37892
38165
|
Entities: entityNames,
|
|
37893
|
-
CallerBoundaries:
|
|
38166
|
+
CallerBoundaries: boundaries
|
|
37894
38167
|
});
|
|
37895
38168
|
_context7.p = 7;
|
|
37896
38169
|
_context7.n = 8;
|
|
37897
|
-
return this.RunViewsUncoalesced(
|
|
38170
|
+
return this.RunViewsUncoalesced(uniqueParams, contextUser);
|
|
37898
38171
|
case 8:
|
|
37899
|
-
|
|
37900
|
-
//
|
|
38172
|
+
uniqueResults = _context7.v;
|
|
38173
|
+
// Route deduped results back to each original caller, preserving order.
|
|
38174
|
+
// ShallowCopyResult gives each caller an independent Results array (rows
|
|
38175
|
+
// are still shared refs; callers should not mutate rows in place).
|
|
37901
38176
|
for (i = 0; i < queue.length; i++) {
|
|
37902
|
-
|
|
37903
|
-
|
|
38177
|
+
callerResults = callerIndexMaps[i].map(function (idx) {
|
|
38178
|
+
return _this3.ShallowCopyResult(uniqueResults[idx]);
|
|
38179
|
+
});
|
|
37904
38180
|
queue[i].resolve(callerResults);
|
|
37905
38181
|
}
|
|
37906
38182
|
TelemetryManager.Instance.EndEvent(eventId);
|
|
@@ -37914,16 +38190,16 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
37914
38190
|
error: String(_t2)
|
|
37915
38191
|
});
|
|
37916
38192
|
// If the mega-batch fails, reject all callers
|
|
37917
|
-
|
|
38193
|
+
_iterator5 = providerBase_createForOfIteratorHelper(queue);
|
|
37918
38194
|
try {
|
|
37919
|
-
for (
|
|
37920
|
-
_entry =
|
|
38195
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
38196
|
+
_entry = _step5.value;
|
|
37921
38197
|
_entry.reject(_t2);
|
|
37922
38198
|
}
|
|
37923
38199
|
} catch (err) {
|
|
37924
|
-
|
|
38200
|
+
_iterator5.e(err);
|
|
37925
38201
|
} finally {
|
|
37926
|
-
|
|
38202
|
+
_iterator5.f();
|
|
37927
38203
|
}
|
|
37928
38204
|
case 10:
|
|
37929
38205
|
return _context7.a(2);
|
|
@@ -38083,11 +38359,11 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
38083
38359
|
key: "findBestField",
|
|
38084
38360
|
value: function findBestField(entity, preferredNames) {
|
|
38085
38361
|
var _ref, _textField$Name, _entity$FirstPrimaryK3;
|
|
38086
|
-
var
|
|
38087
|
-
|
|
38362
|
+
var _iterator7 = providerBase_createForOfIteratorHelper(preferredNames),
|
|
38363
|
+
_step7;
|
|
38088
38364
|
try {
|
|
38089
38365
|
var _loop2 = function _loop2() {
|
|
38090
|
-
var name =
|
|
38366
|
+
var name = _step7.value;
|
|
38091
38367
|
var field = entity.Fields.find(function (f) {
|
|
38092
38368
|
return f.Name === name;
|
|
38093
38369
|
});
|
|
@@ -38096,15 +38372,15 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
38096
38372
|
};
|
|
38097
38373
|
},
|
|
38098
38374
|
_ret;
|
|
38099
|
-
for (
|
|
38375
|
+
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
38100
38376
|
_ret = _loop2();
|
|
38101
38377
|
if (_ret) return _ret.v;
|
|
38102
38378
|
}
|
|
38103
38379
|
// Fallback to first text field
|
|
38104
38380
|
} catch (err) {
|
|
38105
|
-
|
|
38381
|
+
_iterator7.e(err);
|
|
38106
38382
|
} finally {
|
|
38107
|
-
|
|
38383
|
+
_iterator7.f();
|
|
38108
38384
|
}
|
|
38109
38385
|
var textField = entity.Fields.find(function (f) {
|
|
38110
38386
|
return f.Type.toLowerCase().includes('varchar') || f.Type.toLowerCase().includes('text');
|
|
@@ -38115,7 +38391,7 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
38115
38391
|
key: "RunViewsUncoalesced",
|
|
38116
38392
|
value: function () {
|
|
38117
38393
|
var _RunViewsUncoalesced = providerBase_asyncToGenerator(/*#__PURE__*/providerBase_regenerator().m(function _callee9(params, contextUser) {
|
|
38118
|
-
var
|
|
38394
|
+
var _this4 = this;
|
|
38119
38395
|
var key, existing, age, _results3, promise, results;
|
|
38120
38396
|
return providerBase_regenerator().w(function (_context9) {
|
|
38121
38397
|
while (1) switch (_context9.n) {
|
|
@@ -38132,7 +38408,7 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
38132
38408
|
break;
|
|
38133
38409
|
}
|
|
38134
38410
|
return _context9.a(2, existing.resolvedResults.map(function (r) {
|
|
38135
|
-
return
|
|
38411
|
+
return _this4.ShallowCopyResult(r);
|
|
38136
38412
|
}));
|
|
38137
38413
|
case 1:
|
|
38138
38414
|
this._inflightViews.delete(key);
|
|
@@ -38146,29 +38422,29 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
38146
38422
|
case 3:
|
|
38147
38423
|
_results3 = _context9.v;
|
|
38148
38424
|
return _context9.a(2, _results3.map(function (r) {
|
|
38149
|
-
return
|
|
38425
|
+
return _this4.ShallowCopyResult(r);
|
|
38150
38426
|
}));
|
|
38151
38427
|
case 4:
|
|
38152
38428
|
// ── Fresh execution ──
|
|
38153
38429
|
promise = this.ExecuteRunViewsPipeline(params, contextUser).then(function (results) {
|
|
38154
|
-
var entry =
|
|
38430
|
+
var entry = _this4._inflightViews.get(key);
|
|
38155
38431
|
if (entry && entry.promise === promise) {
|
|
38156
38432
|
entry.resolvedResults = results;
|
|
38157
38433
|
entry.resolvedAt = Date.now();
|
|
38158
38434
|
if (ProviderBase.DedupLingerMs > 0) {
|
|
38159
38435
|
setTimeout(function () {
|
|
38160
|
-
var current =
|
|
38436
|
+
var current = _this4._inflightViews.get(key);
|
|
38161
38437
|
if (current && current.promise === promise) {
|
|
38162
|
-
|
|
38438
|
+
_this4._inflightViews.delete(key);
|
|
38163
38439
|
}
|
|
38164
38440
|
}, ProviderBase.DedupLingerMs);
|
|
38165
38441
|
} else {
|
|
38166
|
-
|
|
38442
|
+
_this4._inflightViews.delete(key);
|
|
38167
38443
|
}
|
|
38168
38444
|
}
|
|
38169
38445
|
return results;
|
|
38170
38446
|
}).catch(function (err) {
|
|
38171
|
-
|
|
38447
|
+
_this4._inflightViews.delete(key);
|
|
38172
38448
|
throw err;
|
|
38173
38449
|
});
|
|
38174
38450
|
this._inflightViews.set(key, {
|
|
@@ -38179,7 +38455,7 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
38179
38455
|
case 5:
|
|
38180
38456
|
results = _context9.v;
|
|
38181
38457
|
return _context9.a(2, results.map(function (r) {
|
|
38182
|
-
return
|
|
38458
|
+
return _this4.ShallowCopyResult(r);
|
|
38183
38459
|
}));
|
|
38184
38460
|
}
|
|
38185
38461
|
}, _callee9, this);
|
|
@@ -38198,10 +38474,10 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
38198
38474
|
}, {
|
|
38199
38475
|
key: "GenerateDedupKey",
|
|
38200
38476
|
value: function GenerateDedupKey(params, contextUser) {
|
|
38201
|
-
var
|
|
38477
|
+
var _this5 = this;
|
|
38202
38478
|
var parts = params.map(function (p) {
|
|
38203
38479
|
var _p$UserSearchString, _p$ViewID, _p$ViewName, _contextUser$ID;
|
|
38204
|
-
var base = LocalCacheManager.Instance.GenerateRunViewFingerprint(p,
|
|
38480
|
+
var base = LocalCacheManager.Instance.GenerateRunViewFingerprint(p, _this5.InstanceConnectionString);
|
|
38205
38481
|
// Fields is intentionally excluded — cache stores full entity width
|
|
38206
38482
|
// and filters on return, so different Fields values are the same query.
|
|
38207
38483
|
var extras = [(_p$UserSearchString = p.UserSearchString) !== null && _p$UserSearchString !== void 0 ? _p$UserSearchString : '', (_p$ViewID = p.ViewID) !== null && _p$ViewID !== void 0 ? _p$ViewID : '', (_p$ViewName = p.ViewName) !== null && _p$ViewName !== void 0 ? _p$ViewName : '', (_contextUser$ID = contextUser === null || contextUser === void 0 ? void 0 : contextUser.ID) !== null && _contextUser$ID !== void 0 ? _contextUser$ID : ''].join('|');
|
|
@@ -38475,7 +38751,7 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
38475
38751
|
key: "PreRunView",
|
|
38476
38752
|
value: function () {
|
|
38477
38753
|
var _PreRunView = providerBase_asyncToGenerator(/*#__PURE__*/providerBase_regenerator().m(function _callee12(params, contextUser) {
|
|
38478
|
-
var preViewStart, telemetryStart, telemetryEventId, telemetryTime, entityCheckStart, entityCheckTime, entityLookupStart, callerRequestedFields, entity, entityLookupTime, cacheCheckStart, cacheStatus, cachedResult, fingerprint, entityCacheAllowed, cached, _cached$totalRowCount, results, cacheCheckTime, totalPreTime;
|
|
38754
|
+
var preViewStart, telemetryStart, telemetryEventId, telemetryTime, entityCheckStart, entityCheckTime, entityLookupStart, callerRequestedFields, entity, entityLookupTime, cacheCheckStart, cacheStatus, cachedResult, fingerprint, entityCacheAllowed, cached, _cached$totalRowCount, results, requestedFieldSet, keyCache, cacheCheckTime, totalPreTime;
|
|
38479
38755
|
return providerBase_regenerator().w(function (_context12) {
|
|
38480
38756
|
while (1) switch (_context12.n) {
|
|
38481
38757
|
case 0:
|
|
@@ -38539,11 +38815,19 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
38539
38815
|
// Filter cached results to only the caller's requested fields (if specified)
|
|
38540
38816
|
results = cached.results;
|
|
38541
38817
|
if (callerRequestedFields && params.ResultType !== 'entity_object') {
|
|
38818
|
+
// Cache lowercase key→keep decisions across rows to avoid repeated allocations
|
|
38819
|
+
requestedFieldSet = new Set(callerRequestedFields);
|
|
38820
|
+
keyCache = new Map();
|
|
38542
38821
|
results = results.map(function (row) {
|
|
38543
38822
|
var filtered = {};
|
|
38544
38823
|
for (var _i2 = 0, _Object$keys = Object.keys(row); _i2 < _Object$keys.length; _i2++) {
|
|
38545
38824
|
var key = _Object$keys[_i2];
|
|
38546
|
-
|
|
38825
|
+
var keep = keyCache.get(key);
|
|
38826
|
+
if (keep === undefined) {
|
|
38827
|
+
keep = requestedFieldSet.has(key.toLowerCase());
|
|
38828
|
+
keyCache.set(key, keep);
|
|
38829
|
+
}
|
|
38830
|
+
if (keep) {
|
|
38547
38831
|
filtered[key] = row[key];
|
|
38548
38832
|
}
|
|
38549
38833
|
}
|
|
@@ -38603,23 +38887,23 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
38603
38887
|
key: "PreRunViews",
|
|
38604
38888
|
value: (function () {
|
|
38605
38889
|
var _PreRunViews = providerBase_asyncToGenerator(/*#__PURE__*/providerBase_regenerator().m(function _callee13(params, contextUser) {
|
|
38606
|
-
var
|
|
38607
|
-
var
|
|
38890
|
+
var _this6 = this;
|
|
38891
|
+
var _iterator8, _step8, p, i, fromEngine, telemetryEventId, useFastStartup, allHaveCachedData, _iterator9, _step9, param, fp, cached, entityNames, useSmartCacheCheck, _useSmartCacheCheck, cacheStatusMap, uncachedParams, cachedResults, allCached, _loop3, _i3, hasCacheHits, _t4;
|
|
38608
38892
|
return providerBase_regenerator().w(function (_context14) {
|
|
38609
38893
|
while (1) switch (_context14.p = _context14.n) {
|
|
38610
38894
|
case 0:
|
|
38611
38895
|
// Resolve any PlatformSQL values to plain strings for the active platform
|
|
38612
|
-
|
|
38896
|
+
_iterator8 = providerBase_createForOfIteratorHelper(params);
|
|
38613
38897
|
try {
|
|
38614
|
-
for (
|
|
38615
|
-
p =
|
|
38898
|
+
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
|
38899
|
+
p = _step8.value;
|
|
38616
38900
|
this.ResolvePlatformSQLInParams(p);
|
|
38617
38901
|
}
|
|
38618
38902
|
// Run registered PreRunView hooks on each param in the batch
|
|
38619
38903
|
} catch (err) {
|
|
38620
|
-
|
|
38904
|
+
_iterator8.e(err);
|
|
38621
38905
|
} finally {
|
|
38622
|
-
|
|
38906
|
+
_iterator8.f();
|
|
38623
38907
|
}
|
|
38624
38908
|
i = 0;
|
|
38625
38909
|
case 1:
|
|
@@ -38667,15 +38951,15 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
38667
38951
|
}
|
|
38668
38952
|
// Check if we actually have cached data for ALL params
|
|
38669
38953
|
allHaveCachedData = true;
|
|
38670
|
-
|
|
38954
|
+
_iterator9 = providerBase_createForOfIteratorHelper(params);
|
|
38671
38955
|
_context14.p = 5;
|
|
38672
|
-
|
|
38956
|
+
_iterator9.s();
|
|
38673
38957
|
case 6:
|
|
38674
|
-
if ((
|
|
38958
|
+
if ((_step9 = _iterator9.n()).done) {
|
|
38675
38959
|
_context14.n = 9;
|
|
38676
38960
|
break;
|
|
38677
38961
|
}
|
|
38678
|
-
param =
|
|
38962
|
+
param = _step9.value;
|
|
38679
38963
|
if (!param.CacheLocal) {
|
|
38680
38964
|
_context14.n = 8;
|
|
38681
38965
|
break;
|
|
@@ -38700,10 +38984,10 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
38700
38984
|
case 10:
|
|
38701
38985
|
_context14.p = 10;
|
|
38702
38986
|
_t4 = _context14.v;
|
|
38703
|
-
|
|
38987
|
+
_iterator9.e(_t4);
|
|
38704
38988
|
case 11:
|
|
38705
38989
|
_context14.p = 11;
|
|
38706
|
-
|
|
38990
|
+
_iterator9.f();
|
|
38707
38991
|
return _context14.f(11);
|
|
38708
38992
|
case 12:
|
|
38709
38993
|
if (!allHaveCachedData) {
|
|
@@ -38756,20 +39040,20 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
38756
39040
|
cachedResults = [];
|
|
38757
39041
|
allCached = true;
|
|
38758
39042
|
_loop3 = /*#__PURE__*/providerBase_regenerator().m(function _loop3() {
|
|
38759
|
-
var param, callerFields, batchEntity, fingerprint, _cached, _cached$totalRowCount2, results, cachedViewResult;
|
|
39043
|
+
var param, callerFields, batchEntity, fingerprint, _cached, _cached$totalRowCount2, results, requestedFieldSet, keyCache, cachedViewResult;
|
|
38760
39044
|
return providerBase_regenerator().w(function (_context13) {
|
|
38761
39045
|
while (1) switch (_context13.n) {
|
|
38762
39046
|
case 0:
|
|
38763
39047
|
param = params[_i3]; // Entity status check
|
|
38764
39048
|
_context13.n = 1;
|
|
38765
|
-
return
|
|
39049
|
+
return _this6.EntityStatusCheck(param, 'PreRunViews');
|
|
38766
39050
|
case 1:
|
|
38767
39051
|
// Save caller's original Fields, then always fetch all fields from DB.
|
|
38768
39052
|
// One cache entry per entity+filter satisfies all field subsets.
|
|
38769
39053
|
callerFields = param.Fields && param.Fields.length > 0 ? param.Fields.map(function (f) {
|
|
38770
39054
|
return f.trim().toLowerCase();
|
|
38771
39055
|
}) : null;
|
|
38772
|
-
batchEntity = param.EntityName ?
|
|
39056
|
+
batchEntity = param.EntityName ? _this6.EntityByName(param.EntityName) : null;
|
|
38773
39057
|
if (batchEntity) {
|
|
38774
39058
|
param.Fields = batchEntity.Fields.map(function (f) {
|
|
38775
39059
|
return f.Name;
|
|
@@ -38778,11 +39062,11 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
38778
39062
|
// Check local cache if enabled or if server trusts its cache completely
|
|
38779
39063
|
// BypassCache skips cache entirely — used by maintenance actions querying for
|
|
38780
39064
|
// records that were inserted via direct SQL (bypassing BaseEntity.Save())
|
|
38781
|
-
if (!(!param.BypassCache && (param.CacheLocal ||
|
|
39065
|
+
if (!(!param.BypassCache && (param.CacheLocal || _this6.TrustLocalCacheCompletely) && LocalCacheManager.Instance.IsInitialized)) {
|
|
38782
39066
|
_context13.n = 5;
|
|
38783
39067
|
break;
|
|
38784
39068
|
}
|
|
38785
|
-
fingerprint = LocalCacheManager.Instance.GenerateRunViewFingerprint(param,
|
|
39069
|
+
fingerprint = LocalCacheManager.Instance.GenerateRunViewFingerprint(param, _this6.InstanceConnectionString);
|
|
38786
39070
|
_context13.n = 2;
|
|
38787
39071
|
return LocalCacheManager.Instance.GetRunViewResult(fingerprint);
|
|
38788
39072
|
case 2:
|
|
@@ -38794,11 +39078,20 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
38794
39078
|
// Filter cached results to caller's requested fields (if specified and not entity_object)
|
|
38795
39079
|
results = _cached.results;
|
|
38796
39080
|
if (callerFields && param.ResultType !== 'entity_object') {
|
|
39081
|
+
// ⚡ Bolt: Cache key-to-lowercase string resolutions to eliminate O(n*c) string allocations and array search operations.
|
|
39082
|
+
// This improves post-cache filtering by ~40-50% for large datasets with many columns.
|
|
39083
|
+
requestedFieldSet = new Set(callerFields);
|
|
39084
|
+
keyCache = new Map();
|
|
38797
39085
|
results = results.map(function (row) {
|
|
38798
39086
|
var filtered = {};
|
|
38799
39087
|
for (var _i4 = 0, _Object$keys2 = Object.keys(row); _i4 < _Object$keys2.length; _i4++) {
|
|
38800
39088
|
var key = _Object$keys2[_i4];
|
|
38801
|
-
|
|
39089
|
+
var keep = keyCache.get(key);
|
|
39090
|
+
if (keep === undefined) {
|
|
39091
|
+
keep = requestedFieldSet.has(key.toLowerCase());
|
|
39092
|
+
keyCache.set(key, keep);
|
|
39093
|
+
}
|
|
39094
|
+
if (keep) {
|
|
38802
39095
|
filtered[key] = row[key];
|
|
38803
39096
|
}
|
|
38804
39097
|
}
|
|
@@ -38816,9 +39109,9 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
38816
39109
|
AggregateResults: _cached.aggregateResults // Include cached aggregate results
|
|
38817
39110
|
}; // if needed this will transform each result into an entity object
|
|
38818
39111
|
_context13.n = 3;
|
|
38819
|
-
return
|
|
39112
|
+
return _this6.TransformSimpleObjectToEntityObject(param, cachedViewResult, contextUser);
|
|
38820
39113
|
case 3:
|
|
38821
|
-
if (!param.CacheLocal &&
|
|
39114
|
+
if (!param.CacheLocal && _this6.TrustLocalCacheCompletely) {
|
|
38822
39115
|
LogStatusEx({
|
|
38823
39116
|
message: " \u2705 [Server Cache HIT] RunViews \"".concat(param.EntityName || param.ViewName || 'unknown', "\" \u2014 ").concat(_cached.results.length, " rows served from server cache (no DB query)"),
|
|
38824
39117
|
verboseOnly: true
|
|
@@ -38905,20 +39198,20 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
38905
39198
|
key: "prepareSmartCacheCheckParams",
|
|
38906
39199
|
value: (function () {
|
|
38907
39200
|
var _prepareSmartCacheCheckParams = providerBase_asyncToGenerator(/*#__PURE__*/providerBase_regenerator().m(function _callee14(params, telemetryEventId, contextUser) {
|
|
38908
|
-
var smartCacheCheckParams,
|
|
39201
|
+
var smartCacheCheckParams, _iterator0, _step0, param, entity, cacheStatus, fingerprint, cached, _t5;
|
|
38909
39202
|
return providerBase_regenerator().w(function (_context15) {
|
|
38910
39203
|
while (1) switch (_context15.p = _context15.n) {
|
|
38911
39204
|
case 0:
|
|
38912
39205
|
smartCacheCheckParams = [];
|
|
38913
|
-
|
|
39206
|
+
_iterator0 = providerBase_createForOfIteratorHelper(params);
|
|
38914
39207
|
_context15.p = 1;
|
|
38915
|
-
|
|
39208
|
+
_iterator0.s();
|
|
38916
39209
|
case 2:
|
|
38917
|
-
if ((
|
|
39210
|
+
if ((_step0 = _iterator0.n()).done) {
|
|
38918
39211
|
_context15.n = 9;
|
|
38919
39212
|
break;
|
|
38920
39213
|
}
|
|
38921
|
-
param =
|
|
39214
|
+
param = _step0.value;
|
|
38922
39215
|
_context15.n = 3;
|
|
38923
39216
|
return this.EntityStatusCheck(param, 'PreRunViews');
|
|
38924
39217
|
case 3:
|
|
@@ -38968,10 +39261,10 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
38968
39261
|
case 10:
|
|
38969
39262
|
_context15.p = 10;
|
|
38970
39263
|
_t5 = _context15.v;
|
|
38971
|
-
|
|
39264
|
+
_iterator0.e(_t5);
|
|
38972
39265
|
case 11:
|
|
38973
39266
|
_context15.p = 11;
|
|
38974
|
-
|
|
39267
|
+
_iterator0.f();
|
|
38975
39268
|
return _context15.f(11);
|
|
38976
39269
|
case 12:
|
|
38977
39270
|
return _context15.a(2, {
|
|
@@ -39003,8 +39296,8 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
39003
39296
|
key: "executeSmartCacheCheck",
|
|
39004
39297
|
value: (function () {
|
|
39005
39298
|
var _executeSmartCacheCheck = providerBase_asyncToGenerator(/*#__PURE__*/providerBase_regenerator().m(function _callee15(params, preResult, contextUser) {
|
|
39006
|
-
var
|
|
39007
|
-
var provider, response, processingPromises, processedResults, cacheHits, cacheMisses,
|
|
39299
|
+
var _this7 = this;
|
|
39300
|
+
var provider, response, processingPromises, processedResults, cacheHits, cacheMisses, _iterator1, _step1, result;
|
|
39008
39301
|
return providerBase_regenerator().w(function (_context16) {
|
|
39009
39302
|
while (1) switch (_context16.n) {
|
|
39010
39303
|
case 0:
|
|
@@ -39039,7 +39332,7 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
39039
39332
|
case 2:
|
|
39040
39333
|
// Process all results in parallel
|
|
39041
39334
|
processingPromises = params.map(function (param, i) {
|
|
39042
|
-
return
|
|
39335
|
+
return _this7.processSingleSmartCacheResult(param, i, response.results, contextUser);
|
|
39043
39336
|
});
|
|
39044
39337
|
_context16.n = 3;
|
|
39045
39338
|
return Promise.all(processingPromises);
|
|
@@ -39048,18 +39341,18 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
39048
39341
|
// Aggregate telemetry stats
|
|
39049
39342
|
cacheHits = 0;
|
|
39050
39343
|
cacheMisses = 0;
|
|
39051
|
-
|
|
39344
|
+
_iterator1 = providerBase_createForOfIteratorHelper(processedResults);
|
|
39052
39345
|
try {
|
|
39053
|
-
for (
|
|
39054
|
-
result =
|
|
39346
|
+
for (_iterator1.s(); !(_step1 = _iterator1.n()).done;) {
|
|
39347
|
+
result = _step1.value;
|
|
39055
39348
|
if (result.cacheHit) cacheHits++;
|
|
39056
39349
|
if (result.cacheMiss) cacheMisses++;
|
|
39057
39350
|
}
|
|
39058
39351
|
// End telemetry
|
|
39059
39352
|
} catch (err) {
|
|
39060
|
-
|
|
39353
|
+
_iterator1.e(err);
|
|
39061
39354
|
} finally {
|
|
39062
|
-
|
|
39355
|
+
_iterator1.f();
|
|
39063
39356
|
}
|
|
39064
39357
|
TelemetryManager.Instance.EndEvent(preResult.telemetryEventId, {
|
|
39065
39358
|
smartCacheCheck: true,
|
|
@@ -39564,20 +39857,20 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
39564
39857
|
key: "RunPreRunViewHooks",
|
|
39565
39858
|
value: (function () {
|
|
39566
39859
|
var _RunPreRunViewHooks = providerBase_asyncToGenerator(/*#__PURE__*/providerBase_regenerator().m(function _callee21(params, contextUser) {
|
|
39567
|
-
var hooks,
|
|
39860
|
+
var hooks, _iterator10, _step10, hook, _t6;
|
|
39568
39861
|
return providerBase_regenerator().w(function (_context22) {
|
|
39569
39862
|
while (1) switch (_context22.p = _context22.n) {
|
|
39570
39863
|
case 0:
|
|
39571
39864
|
hooks = GetDataHooks('PreRunView');
|
|
39572
|
-
|
|
39865
|
+
_iterator10 = providerBase_createForOfIteratorHelper(hooks);
|
|
39573
39866
|
_context22.p = 1;
|
|
39574
|
-
|
|
39867
|
+
_iterator10.s();
|
|
39575
39868
|
case 2:
|
|
39576
|
-
if ((
|
|
39869
|
+
if ((_step10 = _iterator10.n()).done) {
|
|
39577
39870
|
_context22.n = 5;
|
|
39578
39871
|
break;
|
|
39579
39872
|
}
|
|
39580
|
-
hook =
|
|
39873
|
+
hook = _step10.value;
|
|
39581
39874
|
_context22.n = 3;
|
|
39582
39875
|
return hook(params, contextUser);
|
|
39583
39876
|
case 3:
|
|
@@ -39591,10 +39884,10 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
39591
39884
|
case 6:
|
|
39592
39885
|
_context22.p = 6;
|
|
39593
39886
|
_t6 = _context22.v;
|
|
39594
|
-
|
|
39887
|
+
_iterator10.e(_t6);
|
|
39595
39888
|
case 7:
|
|
39596
39889
|
_context22.p = 7;
|
|
39597
|
-
|
|
39890
|
+
_iterator10.f();
|
|
39598
39891
|
return _context22.f(7);
|
|
39599
39892
|
case 8:
|
|
39600
39893
|
return _context22.a(2, params);
|
|
@@ -39615,20 +39908,20 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
39615
39908
|
key: "RunPostRunViewHooks",
|
|
39616
39909
|
value: (function () {
|
|
39617
39910
|
var _RunPostRunViewHooks = providerBase_asyncToGenerator(/*#__PURE__*/providerBase_regenerator().m(function _callee22(params, result, contextUser) {
|
|
39618
|
-
var hooks,
|
|
39911
|
+
var hooks, _iterator11, _step11, hook, _t7;
|
|
39619
39912
|
return providerBase_regenerator().w(function (_context23) {
|
|
39620
39913
|
while (1) switch (_context23.p = _context23.n) {
|
|
39621
39914
|
case 0:
|
|
39622
39915
|
hooks = GetDataHooks('PostRunView');
|
|
39623
|
-
|
|
39916
|
+
_iterator11 = providerBase_createForOfIteratorHelper(hooks);
|
|
39624
39917
|
_context23.p = 1;
|
|
39625
|
-
|
|
39918
|
+
_iterator11.s();
|
|
39626
39919
|
case 2:
|
|
39627
|
-
if ((
|
|
39920
|
+
if ((_step11 = _iterator11.n()).done) {
|
|
39628
39921
|
_context23.n = 5;
|
|
39629
39922
|
break;
|
|
39630
39923
|
}
|
|
39631
|
-
hook =
|
|
39924
|
+
hook = _step11.value;
|
|
39632
39925
|
_context23.n = 3;
|
|
39633
39926
|
return hook(params, result, contextUser);
|
|
39634
39927
|
case 3:
|
|
@@ -39642,10 +39935,10 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
39642
39935
|
case 6:
|
|
39643
39936
|
_context23.p = 6;
|
|
39644
39937
|
_t7 = _context23.v;
|
|
39645
|
-
|
|
39938
|
+
_iterator11.e(_t7);
|
|
39646
39939
|
case 7:
|
|
39647
39940
|
_context23.p = 7;
|
|
39648
|
-
|
|
39941
|
+
_iterator11.f();
|
|
39649
39942
|
return _context23.f(7);
|
|
39650
39943
|
case 8:
|
|
39651
39944
|
return _context23.a(2, result);
|
|
@@ -39809,11 +40102,11 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
39809
40102
|
key: "extractMaxUpdatedAt",
|
|
39810
40103
|
value: function extractMaxUpdatedAt(results) {
|
|
39811
40104
|
var maxDate = null;
|
|
39812
|
-
var
|
|
39813
|
-
|
|
40105
|
+
var _iterator12 = providerBase_createForOfIteratorHelper(results),
|
|
40106
|
+
_step12;
|
|
39814
40107
|
try {
|
|
39815
|
-
for (
|
|
39816
|
-
var item =
|
|
40108
|
+
for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
|
|
40109
|
+
var item = _step12.value;
|
|
39817
40110
|
if (item && providerBase_typeof(item) === 'object') {
|
|
39818
40111
|
var record = item;
|
|
39819
40112
|
// Check for __mj_UpdatedAt field (standard MJ timestamp field)
|
|
@@ -39827,9 +40120,9 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
39827
40120
|
}
|
|
39828
40121
|
}
|
|
39829
40122
|
} catch (err) {
|
|
39830
|
-
|
|
40123
|
+
_iterator12.e(err);
|
|
39831
40124
|
} finally {
|
|
39832
|
-
|
|
40125
|
+
_iterator12.f();
|
|
39833
40126
|
}
|
|
39834
40127
|
return maxDate ? maxDate.toISOString() : new Date().toISOString();
|
|
39835
40128
|
}
|
|
@@ -39983,7 +40276,7 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
39983
40276
|
key: "PreProcessRunViews",
|
|
39984
40277
|
value: (function () {
|
|
39985
40278
|
var _PreProcessRunViews = providerBase_asyncToGenerator(/*#__PURE__*/providerBase_regenerator().m(function _callee27(params, contextUser) {
|
|
39986
|
-
var fromEngine, eventId,
|
|
40279
|
+
var fromEngine, eventId, _iterator13, _step13, param, entity, _t8;
|
|
39987
40280
|
return providerBase_regenerator().w(function (_context28) {
|
|
39988
40281
|
while (1) switch (_context28.p = _context28.n) {
|
|
39989
40282
|
case 0:
|
|
@@ -40005,15 +40298,15 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
40005
40298
|
_context28.n = 8;
|
|
40006
40299
|
break;
|
|
40007
40300
|
}
|
|
40008
|
-
|
|
40301
|
+
_iterator13 = providerBase_createForOfIteratorHelper(params);
|
|
40009
40302
|
_context28.p = 1;
|
|
40010
|
-
|
|
40303
|
+
_iterator13.s();
|
|
40011
40304
|
case 2:
|
|
40012
|
-
if ((
|
|
40305
|
+
if ((_step13 = _iterator13.n()).done) {
|
|
40013
40306
|
_context28.n = 5;
|
|
40014
40307
|
break;
|
|
40015
40308
|
}
|
|
40016
|
-
param =
|
|
40309
|
+
param = _step13.value;
|
|
40017
40310
|
this.EntityStatusCheck(param, 'PreProcessRunViews');
|
|
40018
40311
|
// FIRST, if the resultType is entity_object, we need to run the view with ALL fields in the entity
|
|
40019
40312
|
// so that we can get the data to populate the entity object with.
|
|
@@ -40041,10 +40334,10 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
40041
40334
|
case 6:
|
|
40042
40335
|
_context28.p = 6;
|
|
40043
40336
|
_t8 = _context28.v;
|
|
40044
|
-
|
|
40337
|
+
_iterator13.e(_t8);
|
|
40045
40338
|
case 7:
|
|
40046
40339
|
_context28.p = 7;
|
|
40047
|
-
|
|
40340
|
+
_iterator13.f();
|
|
40048
40341
|
return _context28.f(7);
|
|
40049
40342
|
case 8:
|
|
40050
40343
|
return _context28.a(2);
|
|
@@ -40422,8 +40715,8 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
40422
40715
|
*/
|
|
40423
40716
|
function () {
|
|
40424
40717
|
var _GetAllMetadata = providerBase_asyncToGenerator(/*#__PURE__*/providerBase_regenerator().m(function _callee32(providerToUse, forceRefresh) {
|
|
40425
|
-
var
|
|
40426
|
-
var d, simpleMetadata,
|
|
40718
|
+
var _this8 = this;
|
|
40719
|
+
var d, simpleMetadata, _iterator14, _step14, r, returnMetadata, _t1;
|
|
40427
40720
|
return providerBase_regenerator().w(function (_context33) {
|
|
40428
40721
|
while (1) switch (_context33.p = _context33.n) {
|
|
40429
40722
|
case 0:
|
|
@@ -40441,17 +40734,17 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
40441
40734
|
case 2:
|
|
40442
40735
|
// got the results, let's build our response in the format we need
|
|
40443
40736
|
simpleMetadata = {};
|
|
40444
|
-
|
|
40737
|
+
_iterator14 = providerBase_createForOfIteratorHelper(d.Results);
|
|
40445
40738
|
try {
|
|
40446
|
-
for (
|
|
40447
|
-
r =
|
|
40739
|
+
for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
|
|
40740
|
+
r = _step14.value;
|
|
40448
40741
|
simpleMetadata[r.Code] = r.Results;
|
|
40449
40742
|
}
|
|
40450
40743
|
// Post Process Entities because there's some special handling of the sub-objects
|
|
40451
40744
|
} catch (err) {
|
|
40452
|
-
|
|
40745
|
+
_iterator14.e(err);
|
|
40453
40746
|
} finally {
|
|
40454
|
-
|
|
40747
|
+
_iterator14.f();
|
|
40455
40748
|
}
|
|
40456
40749
|
simpleMetadata.AllEntities = this.PostProcessEntityMetadata(simpleMetadata.Entities, simpleMetadata.EntityFields, simpleMetadata.EntityFieldValues, simpleMetadata.EntityPermissions, simpleMetadata.EntityRelationships, simpleMetadata.EntitySettings, simpleMetadata.EntityOrganicKeys, simpleMetadata.EntityOrganicKeyRelatedEntities);
|
|
40457
40750
|
// Post Process the Applications, because we want to handle the sub-objects properly.
|
|
@@ -40462,7 +40755,7 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
40462
40755
|
a.ApplicationSettings = simpleMetadata.ApplicationSettings.filter(function (as) {
|
|
40463
40756
|
return (0,dist/* UUIDsEqual */.jd)(as.ApplicationID, a.ID);
|
|
40464
40757
|
});
|
|
40465
|
-
return new ApplicationInfo(a,
|
|
40758
|
+
return new ApplicationInfo(a, _this8);
|
|
40466
40759
|
});
|
|
40467
40760
|
// now we need to construct our return type. The way the return type works, which is an instance of AllMetadata, we have to
|
|
40468
40761
|
// construst each item so it contains an array of the correct type. This is because the AllMetadata class has an array of each type of metadata
|
|
@@ -40515,50 +40808,50 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
40515
40808
|
return a.Name.localeCompare(b.Name);
|
|
40516
40809
|
});
|
|
40517
40810
|
if (fieldValues && fieldValues.length > 0) {
|
|
40518
|
-
var
|
|
40519
|
-
|
|
40811
|
+
var _iterator15 = providerBase_createForOfIteratorHelper(fields),
|
|
40812
|
+
_step15;
|
|
40520
40813
|
try {
|
|
40521
40814
|
var _loop4 = function _loop4() {
|
|
40522
|
-
var f =
|
|
40815
|
+
var f = _step15.value;
|
|
40523
40816
|
// populate the field values for each field, if we have them
|
|
40524
40817
|
f.EntityFieldValues = fieldValues.filter(function (fv) {
|
|
40525
40818
|
return (0,dist/* UUIDsEqual */.jd)(fv.EntityFieldID, f.ID);
|
|
40526
40819
|
});
|
|
40527
40820
|
};
|
|
40528
|
-
for (
|
|
40821
|
+
for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
|
|
40529
40822
|
_loop4();
|
|
40530
40823
|
}
|
|
40531
40824
|
} catch (err) {
|
|
40532
|
-
|
|
40825
|
+
_iterator15.e(err);
|
|
40533
40826
|
} finally {
|
|
40534
|
-
|
|
40827
|
+
_iterator15.f();
|
|
40535
40828
|
}
|
|
40536
40829
|
}
|
|
40537
40830
|
// Link organic key related entities to their parent organic keys
|
|
40538
40831
|
if (organicKeys && organicKeyRelatedEntities && organicKeyRelatedEntities.length > 0) {
|
|
40539
|
-
var
|
|
40540
|
-
|
|
40832
|
+
var _iterator16 = providerBase_createForOfIteratorHelper(organicKeys),
|
|
40833
|
+
_step16;
|
|
40541
40834
|
try {
|
|
40542
40835
|
var _loop5 = function _loop5() {
|
|
40543
|
-
var ok =
|
|
40836
|
+
var ok = _step16.value;
|
|
40544
40837
|
ok.EntityOrganicKeyRelatedEntities = organicKeyRelatedEntities.filter(function (okre) {
|
|
40545
40838
|
return (0,dist/* UUIDsEqual */.jd)(okre.EntityOrganicKeyID, ok.ID);
|
|
40546
40839
|
});
|
|
40547
40840
|
};
|
|
40548
|
-
for (
|
|
40841
|
+
for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
|
|
40549
40842
|
_loop5();
|
|
40550
40843
|
}
|
|
40551
40844
|
} catch (err) {
|
|
40552
|
-
|
|
40845
|
+
_iterator16.e(err);
|
|
40553
40846
|
} finally {
|
|
40554
|
-
|
|
40847
|
+
_iterator16.f();
|
|
40555
40848
|
}
|
|
40556
40849
|
}
|
|
40557
|
-
var
|
|
40558
|
-
|
|
40850
|
+
var _iterator17 = providerBase_createForOfIteratorHelper(sortedEntities),
|
|
40851
|
+
_step17;
|
|
40559
40852
|
try {
|
|
40560
40853
|
var _loop6 = function _loop6() {
|
|
40561
|
-
var e =
|
|
40854
|
+
var e = _step17.value;
|
|
40562
40855
|
e.EntityFields = fields.filter(function (f) {
|
|
40563
40856
|
return (0,dist/* UUIDsEqual */.jd)(f.EntityID, e.ID);
|
|
40564
40857
|
}).sort(function (a, b) {
|
|
@@ -40581,7 +40874,7 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
40581
40874
|
}
|
|
40582
40875
|
result.push(new EntityInfo(e));
|
|
40583
40876
|
};
|
|
40584
|
-
for (
|
|
40877
|
+
for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
|
|
40585
40878
|
_loop6();
|
|
40586
40879
|
}
|
|
40587
40880
|
// Check for schema name collision: if both 'MJ' and 'MJCustom' schemas exist,
|
|
@@ -40589,9 +40882,9 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
40589
40882
|
// 'MJCustom' schema's natural prefix. This is an extremely unlikely scenario but
|
|
40590
40883
|
// would cause silent class name collisions that are very hard to debug.
|
|
40591
40884
|
} catch (err) {
|
|
40592
|
-
|
|
40885
|
+
_iterator17.e(err);
|
|
40593
40886
|
} finally {
|
|
40594
|
-
|
|
40887
|
+
_iterator17.f();
|
|
40595
40888
|
}
|
|
40596
40889
|
var distinctSchemas = new Set(result.map(function (e) {
|
|
40597
40890
|
var _e$SchemaName;
|
|
@@ -41019,21 +41312,21 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
41019
41312
|
key: "GetEntityDependencies",
|
|
41020
41313
|
value: (function () {
|
|
41021
41314
|
var _GetEntityDependencies = providerBase_asyncToGenerator(/*#__PURE__*/providerBase_regenerator().m(function _callee37(entityName) {
|
|
41022
|
-
var eName, result,
|
|
41315
|
+
var eName, result, _iterator18, _step18, _loop7, _t12, _t13;
|
|
41023
41316
|
return providerBase_regenerator().w(function (_context39) {
|
|
41024
41317
|
while (1) switch (_context39.p = _context39.n) {
|
|
41025
41318
|
case 0:
|
|
41026
41319
|
_context39.p = 0;
|
|
41027
41320
|
eName = entityName.trim().toLowerCase();
|
|
41028
41321
|
result = [];
|
|
41029
|
-
|
|
41322
|
+
_iterator18 = providerBase_createForOfIteratorHelper(this.Entities);
|
|
41030
41323
|
_context39.p = 1;
|
|
41031
41324
|
_loop7 = /*#__PURE__*/providerBase_regenerator().m(function _loop7() {
|
|
41032
41325
|
var re, relatedFields;
|
|
41033
41326
|
return providerBase_regenerator().w(function (_context38) {
|
|
41034
41327
|
while (1) switch (_context38.n) {
|
|
41035
41328
|
case 0:
|
|
41036
|
-
re =
|
|
41329
|
+
re = _step18.value;
|
|
41037
41330
|
relatedFields = re.Fields.filter(function (f) {
|
|
41038
41331
|
var _f$RelatedEntity;
|
|
41039
41332
|
return ((_f$RelatedEntity = f.RelatedEntity) === null || _f$RelatedEntity === void 0 ? void 0 : _f$RelatedEntity.trim().toLowerCase()) === eName;
|
|
@@ -41050,9 +41343,9 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
41050
41343
|
}
|
|
41051
41344
|
}, _loop7);
|
|
41052
41345
|
});
|
|
41053
|
-
|
|
41346
|
+
_iterator18.s();
|
|
41054
41347
|
case 2:
|
|
41055
|
-
if ((
|
|
41348
|
+
if ((_step18 = _iterator18.n()).done) {
|
|
41056
41349
|
_context39.n = 4;
|
|
41057
41350
|
break;
|
|
41058
41351
|
}
|
|
@@ -41066,10 +41359,10 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
41066
41359
|
case 5:
|
|
41067
41360
|
_context39.p = 5;
|
|
41068
41361
|
_t12 = _context39.v;
|
|
41069
|
-
|
|
41362
|
+
_iterator18.e(_t12);
|
|
41070
41363
|
case 6:
|
|
41071
41364
|
_context39.p = 6;
|
|
41072
|
-
|
|
41365
|
+
_iterator18.f();
|
|
41073
41366
|
return _context39.f(6);
|
|
41074
41367
|
case 7:
|
|
41075
41368
|
return _context39.a(2, result);
|
|
@@ -41211,7 +41504,7 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
41211
41504
|
key: "IsDatasetCacheUpToDate",
|
|
41212
41505
|
value: (function () {
|
|
41213
41506
|
var _IsDatasetCacheUpToDate = providerBase_asyncToGenerator(/*#__PURE__*/providerBase_regenerator().m(function _callee40(datasetName, itemFilters) {
|
|
41214
|
-
var localDate, status, serverTimestamp, localDataset,
|
|
41507
|
+
var localDate, status, serverTimestamp, localDataset, _iterator19, _step19, _loop8, _ret2, _t14;
|
|
41215
41508
|
return providerBase_regenerator().w(function (_context43) {
|
|
41216
41509
|
while (1) switch (_context43.p = _context43.n) {
|
|
41217
41510
|
case 0:
|
|
@@ -41240,14 +41533,14 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
41240
41533
|
return this.GetCachedDataset(datasetName, itemFilters);
|
|
41241
41534
|
case 3:
|
|
41242
41535
|
localDataset = _context43.v;
|
|
41243
|
-
|
|
41536
|
+
_iterator19 = providerBase_createForOfIteratorHelper(status.EntityUpdateDates);
|
|
41244
41537
|
_context43.p = 4;
|
|
41245
41538
|
_loop8 = /*#__PURE__*/providerBase_regenerator().m(function _loop8() {
|
|
41246
41539
|
var eu, localEntity;
|
|
41247
41540
|
return providerBase_regenerator().w(function (_context42) {
|
|
41248
41541
|
while (1) switch (_context42.n) {
|
|
41249
41542
|
case 0:
|
|
41250
|
-
eu =
|
|
41543
|
+
eu = _step19.value;
|
|
41251
41544
|
localEntity = localDataset.Results.find(function (e) {
|
|
41252
41545
|
return (0,dist/* UUIDsEqual */.jd)(e.EntityID, eu.EntityID);
|
|
41253
41546
|
});
|
|
@@ -41263,9 +41556,9 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
41263
41556
|
}
|
|
41264
41557
|
}, _loop8);
|
|
41265
41558
|
});
|
|
41266
|
-
|
|
41559
|
+
_iterator19.s();
|
|
41267
41560
|
case 5:
|
|
41268
|
-
if ((
|
|
41561
|
+
if ((_step19 = _iterator19.n()).done) {
|
|
41269
41562
|
_context43.n = 8;
|
|
41270
41563
|
break;
|
|
41271
41564
|
}
|
|
@@ -41286,10 +41579,10 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
41286
41579
|
case 9:
|
|
41287
41580
|
_context43.p = 9;
|
|
41288
41581
|
_t14 = _context43.v;
|
|
41289
|
-
|
|
41582
|
+
_iterator19.e(_t14);
|
|
41290
41583
|
case 10:
|
|
41291
41584
|
_context43.p = 10;
|
|
41292
|
-
|
|
41585
|
+
_iterator19.f();
|
|
41293
41586
|
return _context43.f(10);
|
|
41294
41587
|
case 11:
|
|
41295
41588
|
return _context43.a(2, true);
|
|
@@ -41680,18 +41973,18 @@ var ProviderBase = /*#__PURE__*/function () {
|
|
|
41680
41973
|
this._entityMapByName.clear();
|
|
41681
41974
|
this._entityMapByID.clear();
|
|
41682
41975
|
if (entities) {
|
|
41683
|
-
var
|
|
41684
|
-
|
|
41976
|
+
var _iterator20 = providerBase_createForOfIteratorHelper(entities),
|
|
41977
|
+
_step20;
|
|
41685
41978
|
try {
|
|
41686
|
-
for (
|
|
41687
|
-
var e =
|
|
41979
|
+
for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
|
|
41980
|
+
var e = _step20.value;
|
|
41688
41981
|
this._entityMapByName.set(e.Name.trim().toLowerCase(), e);
|
|
41689
41982
|
this._entityMapByID.set((0,dist/* NormalizeUUID */.Xw)(e.ID), e);
|
|
41690
41983
|
}
|
|
41691
41984
|
} catch (err) {
|
|
41692
|
-
|
|
41985
|
+
_iterator20.e(err);
|
|
41693
41986
|
} finally {
|
|
41694
|
-
|
|
41987
|
+
_iterator20.f();
|
|
41695
41988
|
}
|
|
41696
41989
|
}
|
|
41697
41990
|
}
|
|
@@ -41995,7 +42288,7 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
|
|
|
41995
42288
|
baseEngine_classCallCheck(this, BaseEngine);
|
|
41996
42289
|
_this2 = baseEngine_callSuper(this, BaseEngine);
|
|
41997
42290
|
_this2._loaded = false;
|
|
41998
|
-
_this2._loadingSubject = new BehaviorSubject(false);
|
|
42291
|
+
_this2._loadingSubject = new BehaviorSubject/* BehaviorSubject */.t(false);
|
|
41999
42292
|
_this2._metadataConfigs = [];
|
|
42000
42293
|
_this2._dynamicConfigs = new Map();
|
|
42001
42294
|
_this2._dataMap = new Map();
|
|
@@ -42003,6 +42296,7 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
|
|
|
42003
42296
|
_this2._entityEventSubjects = new Map();
|
|
42004
42297
|
_this2._dataChange$ = new Subject/* Subject */.B();
|
|
42005
42298
|
_this2._cacheChangeUnsubscribers = [];
|
|
42299
|
+
_this2._propertySubjects = new Map();
|
|
42006
42300
|
_this2._entityEventDebounceTime = 1500; // Default debounce time in milliseconds (1.5 seconds)
|
|
42007
42301
|
return _this2;
|
|
42008
42302
|
}
|
|
@@ -42025,6 +42319,43 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
|
|
|
42025
42319
|
*/
|
|
42026
42320
|
baseEngine_inherits(BaseEngine, _BaseSingleton);
|
|
42027
42321
|
return baseEngine_createClass(BaseEngine, [{
|
|
42322
|
+
key: "ObserveProperty",
|
|
42323
|
+
value:
|
|
42324
|
+
/**
|
|
42325
|
+
* Returns an Observable for a specific engine array property. Subscribers receive the
|
|
42326
|
+
* current array immediately (BehaviorSubject semantics), then re-receive the same array
|
|
42327
|
+
* reference whenever the engine mutates it (save, delete, remote-invalidate, refresh).
|
|
42328
|
+
*
|
|
42329
|
+
* The BehaviorSubject for a property is lazy-created on first call — engines where no
|
|
42330
|
+
* one observes a property pay zero runtime cost.
|
|
42331
|
+
*
|
|
42332
|
+
* @param propertyName - The name of the backing array property on the engine (e.g. `_UserNotifications`).
|
|
42333
|
+
*/
|
|
42334
|
+
function ObserveProperty(propertyName) {
|
|
42335
|
+
var subject = this._propertySubjects.get(propertyName);
|
|
42336
|
+
if (!subject) {
|
|
42337
|
+
var _this$propertyName;
|
|
42338
|
+
var current = (_this$propertyName = this[propertyName]) !== null && _this$propertyName !== void 0 ? _this$propertyName : [];
|
|
42339
|
+
subject = new BehaviorSubject/* BehaviorSubject */.t(current);
|
|
42340
|
+
this._propertySubjects.set(propertyName, subject);
|
|
42341
|
+
}
|
|
42342
|
+
return subject.asObservable();
|
|
42343
|
+
}
|
|
42344
|
+
/**
|
|
42345
|
+
* Notifies subscribers of `ObserveProperty(propertyName)` that the array has changed.
|
|
42346
|
+
* No-op if no one has ever observed this property (BehaviorSubject not created).
|
|
42347
|
+
* Called from the array mutation sites in BaseEngine.
|
|
42348
|
+
*/
|
|
42349
|
+
}, {
|
|
42350
|
+
key: "emitPropertyChange",
|
|
42351
|
+
value: function emitPropertyChange(propertyName) {
|
|
42352
|
+
var _this$propertyName2;
|
|
42353
|
+
var subject = this._propertySubjects.get(propertyName);
|
|
42354
|
+
if (!subject) return;
|
|
42355
|
+
var current = (_this$propertyName2 = this[propertyName]) !== null && _this$propertyName2 !== void 0 ? _this$propertyName2 : [];
|
|
42356
|
+
subject.next(current);
|
|
42357
|
+
}
|
|
42358
|
+
}, {
|
|
42028
42359
|
key: "DataChange$",
|
|
42029
42360
|
get: function get() {
|
|
42030
42361
|
return this._dataChange$.asObservable();
|
|
@@ -42634,6 +42965,7 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
|
|
|
42634
42965
|
});
|
|
42635
42966
|
this.NotifyDataChange(config, currentData, 'add', entity);
|
|
42636
42967
|
}
|
|
42968
|
+
this.emitPropertyChange(config.PropertyName);
|
|
42637
42969
|
// LocalCacheManager handles its own cache sync by listening for
|
|
42638
42970
|
// remote-invalidate events directly — no need to sync here
|
|
42639
42971
|
case 6:
|
|
@@ -42702,6 +43034,7 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
|
|
|
42702
43034
|
data: currentData
|
|
42703
43035
|
});
|
|
42704
43036
|
this.NotifyDataChange(config, currentData, 'delete', removed);
|
|
43037
|
+
this.emitPropertyChange(config.PropertyName);
|
|
42705
43038
|
}
|
|
42706
43039
|
// LocalCacheManager handles its own cache sync for deletes
|
|
42707
43040
|
}
|
|
@@ -43084,6 +43417,8 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
|
|
|
43084
43417
|
this.NotifyDataChange(config, currentData, 'delete', entity);
|
|
43085
43418
|
}
|
|
43086
43419
|
}
|
|
43420
|
+
// Per-property observable emission for subscribers of ObserveProperty(config.PropertyName)
|
|
43421
|
+
this.emitPropertyChange(config.PropertyName);
|
|
43087
43422
|
// Sync to LocalCacheManager if CacheLocal is enabled for this config
|
|
43088
43423
|
// This keeps IndexedDB/localStorage in sync with in-memory array
|
|
43089
43424
|
if (config.CacheLocal) {
|
|
@@ -43320,6 +43655,7 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
|
|
|
43320
43655
|
case 1:
|
|
43321
43656
|
result = _context14.v;
|
|
43322
43657
|
this.HandleSingleViewResult(config, result);
|
|
43658
|
+
this.emitPropertyChange(config.PropertyName);
|
|
43323
43659
|
case 2:
|
|
43324
43660
|
return _context14.a(2);
|
|
43325
43661
|
}
|
|
@@ -43395,6 +43731,7 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
|
|
|
43395
43731
|
entityNames = [];
|
|
43396
43732
|
for (i = 0; i < configs.length; i++) {
|
|
43397
43733
|
this.HandleSingleViewResult(configs[i], results[i]);
|
|
43734
|
+
this.emitPropertyChange(configs[i].PropertyName);
|
|
43398
43735
|
if (configs[i].EntityName) {
|
|
43399
43736
|
entityNames.push(configs[i].EntityName);
|
|
43400
43737
|
}
|
|
@@ -47023,13 +47360,31 @@ var DatabaseProviderBase = /*#__PURE__*/function (_ProviderBase) {
|
|
|
47023
47360
|
}, {
|
|
47024
47361
|
key: "OnSaveCompleted",
|
|
47025
47362
|
value: (function () {
|
|
47026
|
-
var _OnSaveCompleted = databaseProviderBase_asyncToGenerator(/*#__PURE__*/databaseProviderBase_regenerator().m(function _callee10(
|
|
47363
|
+
var _OnSaveCompleted = databaseProviderBase_asyncToGenerator(/*#__PURE__*/databaseProviderBase_regenerator().m(function _callee10(entity, saveSQLResult, user, options, _context) {
|
|
47364
|
+
var _saveSQLResult$extraD;
|
|
47365
|
+
var overlappingChangeData, _user$ID, transaction;
|
|
47027
47366
|
return databaseProviderBase_regenerator().w(function (_context11) {
|
|
47028
47367
|
while (1) switch (_context11.n) {
|
|
47029
47368
|
case 0:
|
|
47369
|
+
// ISA overlapping-subtype record-change propagation is DB-agnostic: if the save SQL
|
|
47370
|
+
// generation populated `overlappingChangeData` in extraData and the entity tracks
|
|
47371
|
+
// record changes across multiple subtypes, fan the change record out to siblings.
|
|
47372
|
+
// The provider-specific transaction handle (if any) is passed through opaquely
|
|
47373
|
+
// via `connectionSource`; each provider treats it as its native type downstream.
|
|
47374
|
+
overlappingChangeData = (_saveSQLResult$extraD = saveSQLResult.extraData) === null || _saveSQLResult$extraD === void 0 ? void 0 : _saveSQLResult$extraD.overlappingChangeData;
|
|
47375
|
+
if (!(overlappingChangeData && entity.EntityInfo.AllowMultipleSubtypes && entity.EntityInfo.TrackRecordChanges)) {
|
|
47376
|
+
_context11.n = 1;
|
|
47377
|
+
break;
|
|
47378
|
+
}
|
|
47379
|
+
transaction = entity.ProviderTransaction;
|
|
47380
|
+
_context11.n = 1;
|
|
47381
|
+
return this.PropagateRecordChangesToSiblings(entity.EntityInfo, overlappingChangeData, entity.PrimaryKey.Values(), (_user$ID = user === null || user === void 0 ? void 0 : user.ID) !== null && _user$ID !== void 0 ? _user$ID : '', options.ISAActiveChildEntityName, transaction ? {
|
|
47382
|
+
connectionSource: transaction
|
|
47383
|
+
} : undefined);
|
|
47384
|
+
case 1:
|
|
47030
47385
|
return _context11.a(2, null);
|
|
47031
47386
|
}
|
|
47032
|
-
}, _callee10);
|
|
47387
|
+
}, _callee10, this);
|
|
47033
47388
|
}));
|
|
47034
47389
|
function OnSaveCompleted(_x37, _x38, _x39, _x40, _x41) {
|
|
47035
47390
|
return _OnSaveCompleted.apply(this, arguments);
|
|
@@ -48131,12 +48486,12 @@ var DatabaseProviderBase = /*#__PURE__*/function (_ProviderBase) {
|
|
|
48131
48486
|
}, {
|
|
48132
48487
|
key: "LogRecordChange",
|
|
48133
48488
|
value: (function () {
|
|
48134
|
-
var _LogRecordChange = databaseProviderBase_asyncToGenerator(/*#__PURE__*/databaseProviderBase_regenerator().m(function _callee19(newData, oldData, entityName, recordID, entityInfo, type, user) {
|
|
48489
|
+
var _LogRecordChange = databaseProviderBase_asyncToGenerator(/*#__PURE__*/databaseProviderBase_regenerator().m(function _callee19(newData, oldData, entityName, recordID, entityInfo, type, user, restoreContext) {
|
|
48135
48490
|
var sqlResult, _sqlResult$parameters;
|
|
48136
48491
|
return databaseProviderBase_regenerator().w(function (_context21) {
|
|
48137
48492
|
while (1) switch (_context21.n) {
|
|
48138
48493
|
case 0:
|
|
48139
|
-
sqlResult = this.BuildRecordChangeSQL(newData, oldData, entityName, recordID, entityInfo, type, user);
|
|
48494
|
+
sqlResult = this.BuildRecordChangeSQL(newData, oldData, entityName, recordID, entityInfo, type, user, restoreContext);
|
|
48140
48495
|
if (!sqlResult) {
|
|
48141
48496
|
_context21.n = 2;
|
|
48142
48497
|
break;
|
|
@@ -48150,11 +48505,79 @@ var DatabaseProviderBase = /*#__PURE__*/function (_ProviderBase) {
|
|
|
48150
48505
|
}
|
|
48151
48506
|
}, _callee19, this);
|
|
48152
48507
|
}));
|
|
48153
|
-
function LogRecordChange(_x74, _x75, _x76, _x77, _x78, _x79, _x80) {
|
|
48508
|
+
function LogRecordChange(_x74, _x75, _x76, _x77, _x78, _x79, _x80, _x81) {
|
|
48154
48509
|
return _LogRecordChange.apply(this, arguments);
|
|
48155
48510
|
}
|
|
48156
48511
|
return LogRecordChange;
|
|
48157
48512
|
}()
|
|
48513
|
+
/**
|
|
48514
|
+
* Dialect-agnostic predicate: should we write a RecordChange entry for
|
|
48515
|
+
* this entity? Excludes the Record Changes entity itself to prevent
|
|
48516
|
+
* recursion. Provider implementations should call this before invoking
|
|
48517
|
+
* {@link BuildRecordChangePayload} or constructing dialect SQL.
|
|
48518
|
+
*/
|
|
48519
|
+
)
|
|
48520
|
+
}, {
|
|
48521
|
+
key: "ShouldTrackRecordChanges",
|
|
48522
|
+
value: function ShouldTrackRecordChanges(entityInfo) {
|
|
48523
|
+
if (!entityInfo.TrackRecordChanges) return false;
|
|
48524
|
+
var lower = entityInfo.Name.trim().toLowerCase();
|
|
48525
|
+
return lower !== 'record changes' && lower !== 'mj: record changes';
|
|
48526
|
+
}
|
|
48527
|
+
/**
|
|
48528
|
+
* Builds the dialect-agnostic payload for a RecordChange row from the
|
|
48529
|
+
* entity's old/new data and an optional restore context. Concrete
|
|
48530
|
+
* providers consume the returned payload to render their dialect-specific
|
|
48531
|
+
* SQL (SQL Server EXEC, PostgreSQL INSERT, etc.).
|
|
48532
|
+
*
|
|
48533
|
+
* Returns null when there's nothing to log — i.e., an Update where
|
|
48534
|
+
* {@link DiffObjects} found no field-level changes. Creates and Deletes
|
|
48535
|
+
* are always logged (one side of `oldData`/`newData` is null).
|
|
48536
|
+
*
|
|
48537
|
+
* The payload's `recordID` is whatever the caller passes in. PG's
|
|
48538
|
+
* inline CTE save/delete paths can pass an empty string and resolve
|
|
48539
|
+
* the actual RecordID expression in SQL (because the post-INSERT PK
|
|
48540
|
+
* isn't known in JS); the standalone {@link BuildRecordChangeSQL} path
|
|
48541
|
+
* passes a fully-resolved composite-key string.
|
|
48542
|
+
*
|
|
48543
|
+
* @param newData Post-change data (null for deletes).
|
|
48544
|
+
* @param oldData Pre-change data (null for creates).
|
|
48545
|
+
* @param recordID Composite-key serialized RecordID, or empty for CTE callers.
|
|
48546
|
+
* @param entityInfo Entity metadata (provides EntityID + field shapes for diff).
|
|
48547
|
+
* @param type Change type. `Create` and `Delete` skip the change-key short-circuit.
|
|
48548
|
+
* @param user Acting user (provides UserID).
|
|
48549
|
+
* @param restoreContext When non-null, populates `source='Restore'` plus the
|
|
48550
|
+
* lineage columns; otherwise `source='Internal'`.
|
|
48551
|
+
* @param quoteToEscape Quote character for `EscapeQuotesInProperties` and
|
|
48552
|
+
* `DiffObjects`. Defaults to single quote.
|
|
48553
|
+
*/
|
|
48554
|
+
}, {
|
|
48555
|
+
key: "BuildRecordChangePayload",
|
|
48556
|
+
value: function BuildRecordChangePayload(newData, oldData, recordID, entityInfo, type, user, restoreContext) {
|
|
48557
|
+
var _restoreContext$Sourc, _restoreContext$Reaso;
|
|
48558
|
+
var quoteToEscape = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : "'";
|
|
48559
|
+
var isCreateOrDelete = oldData === null || newData === null;
|
|
48560
|
+
var changes = this.DiffObjects(oldData, newData, entityInfo, quoteToEscape);
|
|
48561
|
+
var changesKeys = changes ? Object.keys(changes) : [];
|
|
48562
|
+
if (changesKeys.length === 0 && !isCreateOrDelete) return null;
|
|
48563
|
+
var dataForFullJSON = newData !== null && newData !== void 0 ? newData : oldData;
|
|
48564
|
+
var fullRecordJSON = JSON.stringify(this.EscapeQuotesInProperties(dataForFullJSON, quoteToEscape));
|
|
48565
|
+
var changesJSON = changes !== null ? JSON.stringify(changes) : '';
|
|
48566
|
+
var changesDescription = oldData && newData ? this.CreateUserDescriptionOfChanges(changes) : !oldData ? 'Record Created' : 'Record Deleted';
|
|
48567
|
+
var source = restoreContext ? 'Restore' : 'Internal';
|
|
48568
|
+
return {
|
|
48569
|
+
entityID: entityInfo.ID,
|
|
48570
|
+
recordID: recordID,
|
|
48571
|
+
userID: user.ID,
|
|
48572
|
+
type: type,
|
|
48573
|
+
source: source,
|
|
48574
|
+
changesJSON: changesJSON,
|
|
48575
|
+
changesDescription: changesDescription,
|
|
48576
|
+
fullRecordJSON: fullRecordJSON,
|
|
48577
|
+
restoredFromID: (_restoreContext$Sourc = restoreContext === null || restoreContext === void 0 ? void 0 : restoreContext.SourceChangeID) !== null && _restoreContext$Sourc !== void 0 ? _restoreContext$Sourc : null,
|
|
48578
|
+
restoreReason: (_restoreContext$Reaso = restoreContext === null || restoreContext === void 0 ? void 0 : restoreContext.Reason) !== null && _restoreContext$Reaso !== void 0 ? _restoreContext$Reaso : null
|
|
48579
|
+
};
|
|
48580
|
+
}
|
|
48158
48581
|
/**
|
|
48159
48582
|
* Propagates record change entries to sibling branches of an IS-A hierarchy.
|
|
48160
48583
|
* Called after saving an entity with AllowMultipleSubtypes (overlapping subtypes).
|
|
@@ -48167,7 +48590,6 @@ var DatabaseProviderBase = /*#__PURE__*/function (_ProviderBase) {
|
|
|
48167
48590
|
* @param activeChildEntityName The child entity that initiated the save (to skip)
|
|
48168
48591
|
* @param extraExecOptions Optional provider-specific execution options (e.g. connectionSource for SQL Server transactions)
|
|
48169
48592
|
*/
|
|
48170
|
-
)
|
|
48171
48593
|
}, {
|
|
48172
48594
|
key: "PropagateRecordChangesToSiblings",
|
|
48173
48595
|
value: (function () {
|
|
@@ -48261,7 +48683,7 @@ var DatabaseProviderBase = /*#__PURE__*/function (_ProviderBase) {
|
|
|
48261
48683
|
}
|
|
48262
48684
|
}, _callee20, this, [[4, 9, 10, 11], [1, 13, 14, 15]]);
|
|
48263
48685
|
}));
|
|
48264
|
-
function PropagateRecordChangesToSiblings(
|
|
48686
|
+
function PropagateRecordChangesToSiblings(_x82, _x83, _x84, _x85, _x86, _x87) {
|
|
48265
48687
|
return _PropagateRecordChangesToSiblings.apply(this, arguments);
|
|
48266
48688
|
}
|
|
48267
48689
|
return PropagateRecordChangesToSiblings;
|
|
@@ -48332,7 +48754,7 @@ var DatabaseProviderBase = /*#__PURE__*/function (_ProviderBase) {
|
|
|
48332
48754
|
}
|
|
48333
48755
|
}, _callee21, this);
|
|
48334
48756
|
}));
|
|
48335
|
-
function GetRecordDuplicates(
|
|
48757
|
+
function GetRecordDuplicates(_x88, _x89) {
|
|
48336
48758
|
return _GetRecordDuplicates.apply(this, arguments);
|
|
48337
48759
|
}
|
|
48338
48760
|
return GetRecordDuplicates;
|
|
@@ -48531,7 +48953,7 @@ var DatabaseProviderBase = /*#__PURE__*/function (_ProviderBase) {
|
|
|
48531
48953
|
}
|
|
48532
48954
|
}, _callee22, this, [[12, 19, 20, 21], [9, 28, 29, 30], [3, 33]]);
|
|
48533
48955
|
}));
|
|
48534
|
-
function MergeRecords(
|
|
48956
|
+
function MergeRecords(_x90, _x91, _x92) {
|
|
48535
48957
|
return _MergeRecords.apply(this, arguments);
|
|
48536
48958
|
}
|
|
48537
48959
|
return MergeRecords;
|
|
@@ -48599,7 +49021,7 @@ var DatabaseProviderBase = /*#__PURE__*/function (_ProviderBase) {
|
|
|
48599
49021
|
}
|
|
48600
49022
|
}, _callee23, this, [[0, 7]]);
|
|
48601
49023
|
}));
|
|
48602
|
-
function StartMergeLogging(
|
|
49024
|
+
function StartMergeLogging(_x93, _x94, _x95) {
|
|
48603
49025
|
return _StartMergeLogging.apply(this, arguments);
|
|
48604
49026
|
}
|
|
48605
49027
|
return StartMergeLogging;
|
|
@@ -48695,7 +49117,7 @@ var DatabaseProviderBase = /*#__PURE__*/function (_ProviderBase) {
|
|
|
48695
49117
|
}
|
|
48696
49118
|
}, _callee24, this, [[3, 9, 10, 11], [0, 14]]);
|
|
48697
49119
|
}));
|
|
48698
|
-
function CompleteMergeLogging(
|
|
49120
|
+
function CompleteMergeLogging(_x96, _x97, _x98) {
|
|
48699
49121
|
return _CompleteMergeLogging.apply(this, arguments);
|
|
48700
49122
|
}
|
|
48701
49123
|
return CompleteMergeLogging;
|
|
@@ -48775,7 +49197,7 @@ var DatabaseProviderBase = /*#__PURE__*/function (_ProviderBase) {
|
|
|
48775
49197
|
}
|
|
48776
49198
|
}, _callee25, this);
|
|
48777
49199
|
}));
|
|
48778
|
-
function RunReport(
|
|
49200
|
+
function RunReport(_x99, _x100) {
|
|
48779
49201
|
return _RunReport.apply(this, arguments);
|
|
48780
49202
|
}
|
|
48781
49203
|
return RunReport;
|
|
@@ -49404,7 +49826,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
49404
49826
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
49405
49827
|
/* harmony export */ UserViewEngine: () => (/* binding */ UserViewEngine)
|
|
49406
49828
|
/* harmony export */ });
|
|
49407
|
-
/* harmony import */ var _memberjunction_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
49829
|
+
/* harmony import */ var _memberjunction_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(186);
|
|
49408
49830
|
/* harmony import */ var _memberjunction_global__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(300);
|
|
49409
49831
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
49410
49832
|
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
@@ -49774,8 +50196,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
49774
50196
|
|
|
49775
50197
|
// UNUSED EXPORTS: ArtifactExtractor, ArtifactMetadataEngine, ConversationEngine, DEFAULT_AGGREGATE_DISPLAY, DashboardEngine, EncryptionEngineBase, FileStorageEngineBase, GeoDataEngine, InstanceConfigEngine, KnowledgeHubMetadataEngine, MCPEngine, MJAIActionEntity, MJAIActionSchema, MJAIAgentActionEntity, MJAIAgentActionSchema, MJAIAgentArtifactTypeEntity, MJAIAgentArtifactTypeSchema, MJAIAgentCategoryEntity, MJAIAgentCategorySchema, MJAIAgentClientToolEntity, MJAIAgentClientToolSchema, MJAIAgentConfigurationEntity, MJAIAgentConfigurationSchema, MJAIAgentDataSourceEntity, MJAIAgentDataSourceSchema, MJAIAgentEntity, MJAIAgentExampleEntity, MJAIAgentExampleSchema, MJAIAgentLearningCycleEntity, MJAIAgentLearningCycleSchema, MJAIAgentModalityEntity, MJAIAgentModalitySchema, MJAIAgentModelEntity, MJAIAgentModelSchema, MJAIAgentNoteEntity, MJAIAgentNoteSchema, MJAIAgentNoteTypeEntity, MJAIAgentNoteTypeSchema, MJAIAgentPermissionEntity, MJAIAgentPermissionSchema, MJAIAgentPromptEntity, MJAIAgentPromptSchema, MJAIAgentRelationshipEntity, MJAIAgentRelationshipSchema, MJAIAgentRequestEntity, MJAIAgentRequestSchema, MJAIAgentRequestTypeEntity, MJAIAgentRequestTypeSchema, MJAIAgentRunEntity, MJAIAgentRunMediaEntity, MJAIAgentRunMediaSchema, MJAIAgentRunSchema, MJAIAgentRunStepEntity, MJAIAgentRunStepSchema, MJAIAgentSchema, MJAIAgentStepEntity, MJAIAgentStepPathEntity, MJAIAgentStepPathSchema, MJAIAgentStepSchema, MJAIAgentTypeEntity, MJAIAgentTypeSchema, MJAIArchitectureEntity, MJAIArchitectureSchema, MJAIClientToolDefinitionEntity, MJAIClientToolDefinitionSchema, MJAIConfigurationEntity, MJAIConfigurationParamEntity, MJAIConfigurationParamSchema, MJAIConfigurationSchema, MJAICredentialBindingEntity, MJAICredentialBindingSchema, MJAIModalityEntity, MJAIModalitySchema, MJAIModelActionEntity, MJAIModelActionSchema, MJAIModelArchitectureEntity, MJAIModelArchitectureSchema, MJAIModelCostEntity, MJAIModelCostSchema, MJAIModelEntity, MJAIModelModalityEntity, MJAIModelModalitySchema, MJAIModelPriceTypeEntity, MJAIModelPriceTypeSchema, MJAIModelPriceUnitTypeEntity, MJAIModelPriceUnitTypeSchema, MJAIModelSchema, MJAIModelTypeEntity, MJAIModelTypeSchema, MJAIModelVendorEntity, MJAIModelVendorSchema, MJAIPromptCategoryEntity, MJAIPromptCategorySchema, MJAIPromptEntity, MJAIPromptModelEntity, MJAIPromptModelSchema, MJAIPromptRunEntity, MJAIPromptRunMediaEntity, MJAIPromptRunMediaSchema, MJAIPromptRunSchema, MJAIPromptSchema, MJAIPromptTypeEntity, MJAIPromptTypeSchema, MJAIResultCacheEntity, MJAIResultCacheSchema, MJAIVendorEntity, MJAIVendorSchema, MJAIVendorTypeDefinitionEntity, MJAIVendorTypeDefinitionSchema, MJAIVendorTypeEntity, MJAIVendorTypeSchema, MJAPIApplicationEntity, MJAPIApplicationSchema, MJAPIApplicationScopeEntity, MJAPIApplicationScopeSchema, MJAPIKeyApplicationEntity, MJAPIKeyApplicationSchema, MJAPIKeyEntity, MJAPIKeySchema, MJAPIKeyScopeEntity, MJAPIKeyScopeSchema, MJAPIKeyUsageLogEntity, MJAPIKeyUsageLogSchema, MJAPIScopeEntity, MJAPIScopeSchema, MJAccessControlRuleEntity, MJAccessControlRuleSchema, MJActionAuthorizationEntity, MJActionAuthorizationSchema, MJActionCategoryEntity, MJActionCategorySchema, MJActionContextEntity, MJActionContextSchema, MJActionContextTypeEntity, MJActionContextTypeSchema, MJActionEntity, MJActionExecutionLogEntity, MJActionExecutionLogSchema, MJActionFilterEntity, MJActionFilterSchema, MJActionLibraryEntity, MJActionLibrarySchema, MJActionParamEntity, MJActionParamSchema, MJActionResultCodeEntity, MJActionResultCodeSchema, MJActionSchema, MJApplicationEntity, MJApplicationEntityEntity, MJApplicationEntitySchema, MJApplicationRoleEntity, MJApplicationRoleSchema, MJApplicationSchema, MJApplicationSettingEntity, MJApplicationSettingSchema, MJArtifactEntity, MJArtifactPermissionEntity, MJArtifactPermissionSchema, MJArtifactSchema, MJArtifactTypeEntity, MJArtifactTypeSchema, MJArtifactUseEntity, MJArtifactUseSchema, MJArtifactVersionAttributeEntity, MJArtifactVersionAttributeSchema, MJArtifactVersionEntity, MJArtifactVersionSchema, MJAuditLogEntity, MJAuditLogSchema, MJAuditLogTypeEntity, MJAuditLogTypeSchema, MJAuthorizationEntity, MJAuthorizationRoleEntity, MJAuthorizationRoleSchema, MJAuthorizationSchema, MJCollectionArtifactEntity, MJCollectionArtifactSchema, MJCollectionEntity, MJCollectionPermissionEntity, MJCollectionPermissionSchema, MJCollectionSchema, MJCommunicationBaseMessageTypeEntity, MJCommunicationBaseMessageTypeSchema, MJCommunicationLogEntity, MJCommunicationLogSchema, MJCommunicationProviderEntity, MJCommunicationProviderMessageTypeEntity, MJCommunicationProviderMessageTypeSchema, MJCommunicationProviderSchema, MJCommunicationRunEntity, MJCommunicationRunSchema, MJCompanyEntity, MJCompanyIntegrationEntity, MJCompanyIntegrationEntityMapEntity, MJCompanyIntegrationEntityMapSchema, MJCompanyIntegrationFieldMapEntity, MJCompanyIntegrationFieldMapSchema, MJCompanyIntegrationRecordMapEntity, MJCompanyIntegrationRecordMapSchema, MJCompanyIntegrationRunAPILogEntity, MJCompanyIntegrationRunAPILogSchema, MJCompanyIntegrationRunDetailEntity, MJCompanyIntegrationRunDetailSchema, MJCompanyIntegrationRunEntity, MJCompanyIntegrationRunSchema, MJCompanyIntegrationSchema, MJCompanyIntegrationSyncWatermarkEntity, MJCompanyIntegrationSyncWatermarkSchema, MJCompanySchema, MJComponentDependencyEntity, MJComponentDependencySchema, MJComponentEntity, MJComponentEntityExtended, MJComponentLibraryEntity, MJComponentLibraryLinkEntity, MJComponentLibraryLinkSchema, MJComponentLibrarySchema, MJComponentRegistryEntity, MJComponentRegistrySchema, MJComponentSchema, MJContentFileTypeEntity, MJContentFileTypeSchema, MJContentItemAttributeEntity, MJContentItemAttributeSchema, MJContentItemDuplicateEntity, MJContentItemDuplicateSchema, MJContentItemEntity, MJContentItemSchema, MJContentItemTagEntity, MJContentItemTagSchema, MJContentProcessRunDetailEntity, MJContentProcessRunDetailSchema, MJContentProcessRunEntity, MJContentProcessRunPromptRunEntity, MJContentProcessRunPromptRunSchema, MJContentProcessRunSchema, MJContentSourceEntity, MJContentSourceParamEntity, MJContentSourceParamSchema, MJContentSourceSchema, MJContentSourceTypeEntity, MJContentSourceTypeParamEntity, MJContentSourceTypeParamSchema, MJContentSourceTypeSchema, MJContentTypeAttributeEntity, MJContentTypeAttributeSchema, MJContentTypeEntity, MJContentTypeSchema, MJConversationArtifactEntity, MJConversationArtifactPermissionEntity, MJConversationArtifactPermissionSchema, MJConversationArtifactSchema, MJConversationArtifactVersionEntity, MJConversationArtifactVersionSchema, MJConversationDetailArtifactEntity, MJConversationDetailArtifactSchema, MJConversationDetailAttachmentEntity, MJConversationDetailAttachmentSchema, MJConversationDetailEntity, MJConversationDetailRatingEntity, MJConversationDetailRatingSchema, MJConversationDetailSchema, MJConversationEntity, MJConversationSchema, MJCountryEntity, MJCountrySchema, MJCredentialCategoryEntity, MJCredentialCategorySchema, MJCredentialEntity, MJCredentialSchema, MJCredentialTypeEntity, MJCredentialTypeSchema, MJDashboardCategoryEntity, MJDashboardCategoryLinkEntity, MJDashboardCategoryLinkSchema, MJDashboardCategoryPermissionEntity, MJDashboardCategoryPermissionSchema, MJDashboardCategorySchema, MJDashboardEntity, MJDashboardEntityExtended, MJDashboardPartTypeEntity, MJDashboardPartTypeSchema, MJDashboardPermissionEntity, MJDashboardPermissionSchema, MJDashboardSchema, MJDashboardUserPreferenceEntity, MJDashboardUserPreferenceSchema, MJDashboardUserStateEntity, MJDashboardUserStateSchema, MJDataContextEntity, MJDataContextItemEntity, MJDataContextItemSchema, MJDataContextSchema, MJDatasetEntity, MJDatasetItemEntity, MJDatasetItemSchema, MJDatasetSchema, MJDuplicateRunDetailEntity, MJDuplicateRunDetailMatchEntity, MJDuplicateRunDetailMatchSchema, MJDuplicateRunDetailSchema, MJDuplicateRunEntity, MJDuplicateRunSchema, MJEmployeeCompanyIntegrationEntity, MJEmployeeCompanyIntegrationSchema, MJEmployeeEntity, MJEmployeeRoleEntity, MJEmployeeRoleSchema, MJEmployeeSchema, MJEmployeeSkillEntity, MJEmployeeSkillSchema, MJEncryptionAlgorithmEntity, MJEncryptionAlgorithmSchema, MJEncryptionKeyEntity, MJEncryptionKeySchema, MJEncryptionKeySourceEntity, MJEncryptionKeySourceSchema, MJEntityAIActionEntity, MJEntityAIActionSchema, MJEntityActionEntity, MJEntityActionFilterEntity, MJEntityActionFilterSchema, MJEntityActionInvocationEntity, MJEntityActionInvocationSchema, MJEntityActionInvocationTypeEntity, MJEntityActionInvocationTypeSchema, MJEntityActionParamEntity, MJEntityActionParamSchema, MJEntityActionSchema, MJEntityCommunicationFieldEntity, MJEntityCommunicationFieldSchema, MJEntityCommunicationMessageTypeEntity, MJEntityCommunicationMessageTypeSchema, MJEntityDocumentEntity, MJEntityDocumentRunEntity, MJEntityDocumentRunSchema, MJEntityDocumentSchema, MJEntityDocumentSettingEntity, MJEntityDocumentSettingSchema, MJEntityDocumentTypeEntity, MJEntityDocumentTypeSchema, MJEntityEntity, MJEntityEntityExtended, MJEntityFieldEntity, MJEntityFieldEntityExtended, MJEntityFieldSchema, MJEntityFieldValueEntity, MJEntityFieldValueSchema, MJEntityOrganicKeyEntity, MJEntityOrganicKeyRelatedEntityEntity, MJEntityOrganicKeyRelatedEntitySchema, MJEntityOrganicKeySchema, MJEntityPermissionEntity, MJEntityPermissionSchema, MJEntityRecordDocumentEntity, MJEntityRecordDocumentSchema, MJEntityRelationshipDisplayComponentEntity, MJEntityRelationshipDisplayComponentSchema, MJEntityRelationshipEntity, MJEntityRelationshipSchema, MJEntitySchema, MJEntitySettingEntity, MJEntitySettingSchema, MJEnvironmentEntity, MJEnvironmentEntityExtended, MJEnvironmentSchema, MJErrorLogEntity, MJErrorLogSchema, MJExplorerNavigationItemEntity, MJExplorerNavigationItemSchema, MJFileCategoryEntity, MJFileCategorySchema, MJFileEntity, MJFileEntityRecordLinkEntity, MJFileEntityRecordLinkSchema, MJFileSchema, MJFileStorageAccountEntity, MJFileStorageAccountPermissionEntity, MJFileStorageAccountPermissionSchema, MJFileStorageAccountSchema, MJFileStorageProviderEntity, MJFileStorageProviderSchema, MJGeneratedCodeCategoryEntity, MJGeneratedCodeCategorySchema, MJGeneratedCodeEntity, MJGeneratedCodeSchema, MJInstanceConfigurationEntity, MJInstanceConfigurationSchema, MJIntegrationEntity, MJIntegrationObjectEntity, MJIntegrationObjectFieldEntity, MJIntegrationObjectFieldSchema, MJIntegrationObjectSchema, MJIntegrationSchema, MJIntegrationSourceTypeEntity, MJIntegrationSourceTypeSchema, MJIntegrationURLFormatEntity, MJIntegrationURLFormatSchema, MJKnowledgeHubSavedSearchEntity, MJKnowledgeHubSavedSearchSchema, MJLibraryEntity, MJLibraryItemEntity, MJLibraryItemSchema, MJLibrarySchema, MJListCategoryEntity, MJListCategorySchema, MJListDetailEntity, MJListDetailEntityExtended, MJListDetailSchema, MJListEntity, MJListInvitationEntity, MJListInvitationSchema, MJListSchema, MJListShareEntity, MJListShareSchema, MJMCPServerConnectionEntity, MJMCPServerConnectionPermissionEntity, MJMCPServerConnectionPermissionSchema, MJMCPServerConnectionSchema, MJMCPServerConnectionToolEntity, MJMCPServerConnectionToolSchema, MJMCPServerEntity, MJMCPServerSchema, MJMCPServerToolEntity, MJMCPServerToolSchema, MJMCPToolExecutionLogEntity, MJMCPToolExecutionLogSchema, MJOAuthAuthServerMetadataCacheEntity, MJOAuthAuthServerMetadataCacheSchema, MJOAuthAuthorizationStateEntity, MJOAuthAuthorizationStateSchema, MJOAuthClientRegistrationEntity, MJOAuthClientRegistrationSchema, MJOAuthTokenEntity, MJOAuthTokenSchema, MJOpenAppDependencyEntity, MJOpenAppDependencySchema, MJOpenAppEntity, MJOpenAppInstallHistoryEntity, MJOpenAppInstallHistorySchema, MJOpenAppSchema, MJOutputDeliveryTypeEntity, MJOutputDeliveryTypeSchema, MJOutputFormatTypeEntity, MJOutputFormatTypeSchema, MJOutputTriggerTypeEntity, MJOutputTriggerTypeSchema, MJProjectEntity, MJProjectSchema, MJPublicLinkEntity, MJPublicLinkSchema, MJQueryCategoryEntity, MJQueryCategorySchema, MJQueryDependencyEntity, MJQueryDependencySchema, MJQueryEntity, MJQueryEntityEntity, MJQueryEntitySchema, MJQueryFieldEntity, MJQueryFieldSchema, MJQueryParameterEntity, MJQueryParameterSchema, MJQueryPermissionEntity, MJQueryPermissionSchema, MJQuerySQLEntity, MJQuerySQLSchema, MJQuerySchema, MJQueueEntity, MJQueueSchema, MJQueueTaskEntity, MJQueueTaskSchema, MJQueueTypeEntity, MJQueueTypeSchema, MJRecommendationEntity, MJRecommendationItemEntity, MJRecommendationItemSchema, MJRecommendationProviderEntity, MJRecommendationProviderSchema, MJRecommendationRunEntity, MJRecommendationRunSchema, MJRecommendationSchema, MJRecordChangeEntity, MJRecordChangeReplayRunEntity, MJRecordChangeReplayRunSchema, MJRecordChangeSchema, MJRecordGeoCodeEntity, MJRecordGeoCodeSchema, MJRecordLinkEntity, MJRecordLinkSchema, MJRecordMergeDeletionLogEntity, MJRecordMergeDeletionLogSchema, MJRecordMergeLogEntity, MJRecordMergeLogSchema, MJReportCategoryEntity, MJReportCategorySchema, MJReportEntity, MJReportSchema, MJReportSnapshotEntity, MJReportSnapshotSchema, MJReportUserStateEntity, MJReportUserStateSchema, MJReportVersionEntity, MJReportVersionSchema, MJResourceLinkEntity, MJResourceLinkSchema, MJResourcePermissionEntity, MJResourcePermissionEntityExtended, MJResourcePermissionSchema, MJResourceTypeEntity, MJResourceTypeSchema, MJRoleEntity, MJRoleSchema, MJRowLevelSecurityFilterEntity, MJRowLevelSecurityFilterSchema, MJSQLDialectEntity, MJSQLDialectSchema, MJScheduledActionEntity, MJScheduledActionEntityExtended, MJScheduledActionParamEntity, MJScheduledActionParamSchema, MJScheduledActionSchema, MJScheduledJobEntity, MJScheduledJobRunEntity, MJScheduledJobRunSchema, MJScheduledJobSchema, MJScheduledJobTypeEntity, MJScheduledJobTypeSchema, MJSchemaInfoEntity, MJSchemaInfoSchema, MJSearchProviderEntity, MJSearchProviderSchema, MJSkillEntity, MJSkillSchema, MJStateProvinceEntity, MJStateProvinceSchema, MJTagAuditLogEntity, MJTagAuditLogSchema, MJTagCoOccurrenceEntity, MJTagCoOccurrenceSchema, MJTagEntity, MJTagSchema, MJTaggedItemEntity, MJTaggedItemSchema, MJTaskDependencyEntity, MJTaskDependencySchema, MJTaskEntity, MJTaskSchema, MJTaskTypeEntity, MJTaskTypeSchema, MJTemplateCategoryEntity, MJTemplateCategorySchema, MJTemplateContentEntity, MJTemplateContentSchema, MJTemplateContentTypeEntity, MJTemplateContentTypeSchema, MJTemplateEntity, MJTemplateEntityExtended, MJTemplateParamEntity, MJTemplateParamSchema, MJTemplateSchema, MJTestEntity, MJTestRubricEntity, MJTestRubricSchema, MJTestRunEntity, MJTestRunFeedbackEntity, MJTestRunFeedbackSchema, MJTestRunOutputEntity, MJTestRunOutputSchema, MJTestRunOutputTypeEntity, MJTestRunOutputTypeSchema, MJTestRunSchema, MJTestSchema, MJTestSuiteEntity, MJTestSuiteRunEntity, MJTestSuiteRunSchema, MJTestSuiteSchema, MJTestSuiteTestEntity, MJTestSuiteTestSchema, MJTestTypeEntity, MJTestTypeSchema, MJUserApplicationEntity, MJUserApplicationEntityEntity, MJUserApplicationEntitySchema, MJUserApplicationSchema, MJUserEntity, MJUserFavoriteEntity, MJUserFavoriteSchema, MJUserNotificationEntity, MJUserNotificationPreferenceEntity, MJUserNotificationPreferenceSchema, MJUserNotificationSchema, MJUserNotificationTypeEntity, MJUserNotificationTypeSchema, MJUserRecordLogEntity, MJUserRecordLogSchema, MJUserRoleEntity, MJUserRoleSchema, MJUserSchema, MJUserSettingEntity, MJUserSettingSchema, MJUserViewCategoryEntity, MJUserViewCategorySchema, MJUserViewEntity, MJUserViewEntityExtended, MJUserViewRunDetailEntity, MJUserViewRunDetailSchema, MJUserViewRunEntity, MJUserViewRunSchema, MJUserViewSchema, MJVectorDatabaseEntity, MJVectorDatabaseSchema, MJVectorIndexEntity, MJVectorIndexSchema, MJVersionInstallationEntity, MJVersionInstallationSchema, MJVersionLabelEntity, MJVersionLabelItemEntity, MJVersionLabelItemSchema, MJVersionLabelRestoreEntity, MJVersionLabelRestoreSchema, MJVersionLabelSchema, MJWorkflowEngineEntity, MJWorkflowEngineSchema, MJWorkflowEntity, MJWorkflowRunEntity, MJWorkflowRunSchema, MJWorkflowSchema, MJWorkspaceEntity, MJWorkspaceItemEntity, MJWorkspaceItemSchema, MJWorkspaceSchema, QueryEngine, ResourceData, ResourcePermissionEngine, SearchEngineBase, TypeTablesCache, UserInfoEngine, UserViewEngine, ViewColumnInfo, ViewFilterInfo, ViewFilterLogicInfo, ViewGridState, ViewSortDirectionInfo, ViewSortInfo, loadModule, parseConversationDetailComplete
|
|
49776
50198
|
|
|
49777
|
-
// EXTERNAL MODULE: ../../MJCore/dist/index.js +
|
|
49778
|
-
var dist = __webpack_require__(
|
|
50199
|
+
// EXTERNAL MODULE: ../../MJCore/dist/index.js + 74 modules
|
|
50200
|
+
var dist = __webpack_require__(186);
|
|
49779
50201
|
// EXTERNAL MODULE: ../../MJGlobal/dist/index.js + 16 modules
|
|
49780
50202
|
var MJGlobal_dist = __webpack_require__(300);
|
|
49781
50203
|
;// ../../MJCoreEntities/node_modules/zod/lib/index.mjs
|
|
@@ -54561,9 +54983,9 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
|
|
|
54561
54983
|
* zod schema definition for the entity MJ: Instance Configurations
|
|
54562
54984
|
*/var MJInstanceConfigurationSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),FeatureKey:z.string().describe("\n * * Field Name: FeatureKey\n * * Display Name: Feature Key\n * * SQL Data Type: nvarchar(200)\n * * Description: Unique dot-notation key identifying the feature, e.g. Shell.SearchBar.Enabled."),Value:z.string().describe("\n * * Field Name: Value\n * * Display Name: Current Value\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Current value for this feature setting."),ValueType:z.union([z.literal('boolean'),z.literal('json'),z.literal('number'),z.literal('string')]).describe("\n * * Field Name: ValueType\n * * Display Name: Value Type\n * * SQL Data Type: nvarchar(20)\n * * Default Value: boolean\n * * Value List Type: List\n * * Possible Values \n * * boolean\n * * json\n * * number\n * * string\n * * Description: Data type of the value: boolean, string, number, or json."),Category:z.string().describe("\n * * Field Name: Category\n * * Display Name: Admin Category\n * * SQL Data Type: nvarchar(100)\n * * Default Value: General\n * * Description: Grouping category for admin UI display."),DisplayName:z.string().describe("\n * * Field Name: DisplayName\n * * Display Name: Display Name\n * * SQL Data Type: nvarchar(200)\n * * Description: Human-readable display name for the setting."),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Optional extended description or help text for the setting."),DefaultValue:z.string().describe("\n * * Field Name: DefaultValue\n * * Display Name: Default Value\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Factory default value. Used when resetting to defaults."),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()")});/**
|
|
54563
54985
|
* zod schema definition for the entity MJ: Integration Object Fields
|
|
54564
|
-
*/var MJIntegrationObjectFieldSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()\n * * Description: Primary key"),IntegrationObjectID:z.string().describe("\n * * Field Name: IntegrationObjectID\n * * Display Name: Integration Object\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Integration Objects (vwIntegrationObjects.ID)\n * * Description: Foreign key to the IntegrationObject this field belongs to"),Name:z.string().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(255)\n * * Description: Field name as returned by the external API"),DisplayName:z.string().nullable().describe("\n * * Field Name: DisplayName\n * * Display Name: Display Name\n * * SQL Data Type: nvarchar(255)\n * * Description: Human-friendly display label for the field"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Description of what this field represents"),Category:z.string().nullable().describe("\n * * Field Name: Category\n * * Display Name: Category\n * * SQL Data Type: nvarchar(100)\n * * Description: UI grouping category within the object"),Type:z.string().describe("\n * * Field Name: Type\n * * Display Name: Type\n * * SQL Data Type: nvarchar(100)\n * * Description: Data type of the field (e.g., nvarchar, int, datetime, decimal, bit). Uses same type vocabulary as EntityField."),Length:z.number().nullable().describe("\n * * Field Name: Length\n * * Display Name: Length\n * * SQL Data Type: int\n * * Description: Maximum length for string types"),Precision:z.number().nullable().describe("\n * * Field Name: Precision\n * * Display Name: Precision\n * * SQL Data Type: int\n * * Description: Numeric precision"),Scale:z.number().nullable().describe("\n * * Field Name: Scale\n * * Display Name: Scale\n * * SQL Data Type: int\n * * Description: Numeric scale"),AllowsNull:z.boolean().describe("\n * * Field Name: AllowsNull\n * * Display Name: Allows Null\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Whether the field can contain NULL values"),DefaultValue:z.string().nullable().describe("\n * * Field Name: DefaultValue\n * * Display Name: Default Value\n * * SQL Data Type: nvarchar(255)\n * * Description: Default value from the source system"),IsPrimaryKey:z.boolean().describe("\n * * Field Name: IsPrimaryKey\n * * Display Name: Primary Key\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Whether this field is part of the object primary key"),IsUniqueKey:z.boolean().describe("\n * * Field Name: IsUniqueKey\n * * Display Name: Unique Key\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Whether values must be unique across all records"),IsReadOnly:z.boolean().describe("\n * * Field Name: IsReadOnly\n * * Display Name: Read Only\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Whether this field cannot be written back to the source system"),IsRequired:z.boolean().describe("\n * * Field Name: IsRequired\n * * Display Name: Required\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Whether this field is required for create/update operations"),RelatedIntegrationObjectID:z.string().nullable().describe("\n * * Field Name: RelatedIntegrationObjectID\n * * Display Name: Related Integration Object\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Integration Objects (vwIntegrationObjects.ID)\n * * Description: Foreign key to another IntegrationObject, establishing a relationship. Used for DAG-based dependency ordering and template variable resolution in parent APIPath patterns."),RelatedIntegrationObjectFieldName:z.string().nullable().describe("\n * * Field Name: RelatedIntegrationObjectFieldName\n * * Display Name: Related Field Name\n * * SQL Data Type: nvarchar(255)\n * * Description: The field name on the related IntegrationObject that this FK points to (typically the PK field)"),Sequence:z.number().describe("\n * * Field Name: Sequence\n * * Display Name: Sequence\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Display and processing order within the object. Lower numbers appear first."),Configuration:z.string().nullable().describe("\n * * Field Name: Configuration\n * * Display Name: Configuration\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Freeform JSON for connector-specific field configuration"),Status:z.union([z.literal('Active'),z.literal('Deprecated'),z.literal('Disabled')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(25)\n * * Default Value: Active\n * * Value List Type: List\n * * Possible Values \n * * Active\n * * Deprecated\n * * Disabled\n * * Description: Active, Deprecated, or Disabled. Mirrors EntityField status values."),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),IntegrationObject:z.string().describe("\n * * Field Name: IntegrationObject\n * * Display Name: Integration Object Name\n * * SQL Data Type: nvarchar(255)"),RelatedIntegrationObject:z.string().nullable().describe("\n * * Field Name: RelatedIntegrationObject\n * * Display Name: Related Object Name\n * * SQL Data Type: nvarchar(255)")});/**
|
|
54986
|
+
*/var MJIntegrationObjectFieldSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()\n * * Description: Primary key"),IntegrationObjectID:z.string().describe("\n * * Field Name: IntegrationObjectID\n * * Display Name: Integration Object\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Integration Objects (vwIntegrationObjects.ID)\n * * Description: Foreign key to the IntegrationObject this field belongs to"),Name:z.string().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(255)\n * * Description: Field name as returned by the external API"),DisplayName:z.string().nullable().describe("\n * * Field Name: DisplayName\n * * Display Name: Display Name\n * * SQL Data Type: nvarchar(255)\n * * Description: Human-friendly display label for the field"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Description of what this field represents"),Category:z.string().nullable().describe("\n * * Field Name: Category\n * * Display Name: Category\n * * SQL Data Type: nvarchar(100)\n * * Description: UI grouping category within the object"),Type:z.string().describe("\n * * Field Name: Type\n * * Display Name: Data Type\n * * SQL Data Type: nvarchar(100)\n * * Description: Data type of the field (e.g., nvarchar, int, datetime, decimal, bit). Uses same type vocabulary as EntityField."),Length:z.number().nullable().describe("\n * * Field Name: Length\n * * Display Name: Length\n * * SQL Data Type: int\n * * Description: Maximum length for string types"),Precision:z.number().nullable().describe("\n * * Field Name: Precision\n * * Display Name: Precision\n * * SQL Data Type: int\n * * Description: Numeric precision"),Scale:z.number().nullable().describe("\n * * Field Name: Scale\n * * Display Name: Scale\n * * SQL Data Type: int\n * * Description: Numeric scale"),AllowsNull:z.boolean().describe("\n * * Field Name: AllowsNull\n * * Display Name: Allows Null\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Whether the field can contain NULL values"),DefaultValue:z.string().nullable().describe("\n * * Field Name: DefaultValue\n * * Display Name: Default Value\n * * SQL Data Type: nvarchar(255)\n * * Description: Default value from the source system"),IsPrimaryKey:z.boolean().describe("\n * * Field Name: IsPrimaryKey\n * * Display Name: Is Primary Key\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Whether this field is part of the object primary key"),IsUniqueKey:z.boolean().describe("\n * * Field Name: IsUniqueKey\n * * Display Name: Is Unique Key\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Whether values must be unique across all records"),IsReadOnly:z.boolean().describe("\n * * Field Name: IsReadOnly\n * * Display Name: Is Read Only\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Whether this field cannot be written back to the source system"),IsRequired:z.boolean().describe("\n * * Field Name: IsRequired\n * * Display Name: Is Required\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Whether this field is required for create/update operations"),RelatedIntegrationObjectID:z.string().nullable().describe("\n * * Field Name: RelatedIntegrationObjectID\n * * Display Name: Related Integration Object ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Integration Objects (vwIntegrationObjects.ID)\n * * Description: Foreign key to another IntegrationObject, establishing a relationship. Used for DAG-based dependency ordering and template variable resolution in parent APIPath patterns."),RelatedIntegrationObjectFieldName:z.string().nullable().describe("\n * * Field Name: RelatedIntegrationObjectFieldName\n * * Display Name: Related Field Name\n * * SQL Data Type: nvarchar(255)\n * * Description: The field name on the related IntegrationObject that this FK points to (typically the PK field)"),Sequence:z.number().describe("\n * * Field Name: Sequence\n * * Display Name: Sequence\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Display and processing order within the object. Lower numbers appear first."),Configuration:z.string().nullable().describe("\n * * Field Name: Configuration\n * * Display Name: Configuration\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Freeform JSON for connector-specific field configuration"),Status:z.union([z.literal('Active'),z.literal('Deprecated'),z.literal('Disabled')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(25)\n * * Default Value: Active\n * * Value List Type: List\n * * Possible Values \n * * Active\n * * Deprecated\n * * Disabled\n * * Description: Active, Deprecated, or Disabled. Mirrors EntityField status values."),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),IsCustom:z.boolean().describe("\n * * Field Name: IsCustom\n * * Display Name: Is Custom\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When true, this field was dynamically discovered by IntrospectSchema and is not defined in static connector metadata."),IntegrationObject:z.string().describe("\n * * Field Name: IntegrationObject\n * * Display Name: Integration Object Name\n * * SQL Data Type: nvarchar(255)"),RelatedIntegrationObject:z.string().nullable().describe("\n * * Field Name: RelatedIntegrationObject\n * * Display Name: Related Object Name\n * * SQL Data Type: nvarchar(255)")});/**
|
|
54565
54987
|
* zod schema definition for the entity MJ: Integration Objects
|
|
54566
|
-
*/var MJIntegrationObjectSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()\n * * Description: Primary key"),IntegrationID:z.string().describe("\n * * Field Name: IntegrationID\n * * Display Name: Integration\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Integrations (vwIntegrations.ID)\n * * Description: Foreign key to the Integration that owns this object"),Name:z.string().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(255)\n * * Description: Internal/programmatic name of the external object (e.g., Members, Events)"),DisplayName:z.string().nullable().describe("\n * * Field Name: DisplayName\n * * Display Name: Display Name\n * * SQL Data Type: nvarchar(255)\n * * Description: Human-friendly display label"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Description of what this external object represents"),Category:z.string().nullable().describe("\n * * Field Name: Category\n * * Display Name: Category\n * * SQL Data Type: nvarchar(100)\n * * Description: UI grouping category (e.g., Membership, Events, Finance)"),APIPath:z.string().describe("\n * * Field Name: APIPath\n * * Display Name: API Path\n * * SQL Data Type: nvarchar(500)\n * * Description: API endpoint path, may include template variables like {ProfileID} that are resolved at runtime from parent object records"),ResponseDataKey:z.string().nullable().describe("\n * * Field Name: ResponseDataKey\n * * Display Name: Response Data Key\n * * SQL Data Type: nvarchar(255)\n * * Description: JSON key used to extract the data array from the API response envelope. NULL means the response is a root-level array."),DefaultPageSize:z.number().describe("\n * * Field Name: DefaultPageSize\n * * Display Name: Default Page Size\n * * SQL Data Type: int\n * * Default Value: 100\n * * Description: Number of records to request per page from the API"),SupportsPagination:z.boolean().describe("\n * * Field Name: SupportsPagination\n * * Display Name: Supports Pagination\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Whether this endpoint supports paginated fetching"),PaginationType:z.union([z.literal('Cursor'),z.literal('None'),z.literal('Offset'),z.literal('PageNumber')]).describe("\n * * Field Name: PaginationType\n * * Display Name: Pagination Type\n * * SQL Data Type: nvarchar(20)\n * * Default Value: PageNumber\n * * Value List Type: List\n * * Possible Values \n * * Cursor\n * * None\n * * Offset\n * * PageNumber\n * * Description: Pagination strategy: PageNumber (page index), Offset (record offset), Cursor (opaque token), or None"),SupportsIncrementalSync:z.boolean().describe("\n * * Field Name: SupportsIncrementalSync\n * * Display Name: Supports Incremental Sync\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Whether this object supports watermark-based incremental sync"),SupportsWrite:z.boolean().describe("\n * * Field Name: SupportsWrite\n * * Display Name: Supports Write\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Whether data can be pushed back to this object via the API"),DefaultQueryParams:z.string().nullable().describe("\n * * Field Name: DefaultQueryParams\n * * Display Name: Default Query Parameters\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON object of default query parameters to include with every API request for this object"),Configuration:z.string().nullable().describe("\n * * Field Name: Configuration\n * * Display Name: Configuration\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Freeform JSON for connector-specific configuration not covered by standard columns"),Sequence:z.number().describe("\n * * Field Name: Sequence\n * * Display Name: Sequence\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Processing and display order. Lower numbers are processed first."),Status:z.union([z.literal('Active'),z.literal('Deprecated'),z.literal('Disabled')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(25)\n * * Default Value: Active\n * * Value List Type: List\n * * Possible Values \n * * Active\n * * Deprecated\n * * Disabled\n * * Description: Active, Deprecated, or Disabled. Mirrors EntityField status values."),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),WriteAPIPath:z.string().nullable().describe("\n * * Field Name: WriteAPIPath\n * * Display Name: Write API Path\n * * SQL Data Type: nvarchar(500)\n * * Description: API path for create/update operations when different from the read APIPath. If NULL, the read APIPath is used for writes as well."),WriteMethod:z.string().nullable().describe("\n * * Field Name: WriteMethod\n * * Display Name: Write Method\n * * SQL Data Type: nvarchar(10)\n * * Default Value: POST\n * * Description: HTTP method for create operations. Defaults to POST."),DeleteMethod:z.string().nullable().describe("\n * * Field Name: DeleteMethod\n * * Display Name: Delete Method\n * * SQL Data Type: nvarchar(10)\n * * Default Value: DELETE\n * * Description: HTTP method for delete operations. Defaults to DELETE."),Integration:z.string().describe("\n * * Field Name: Integration\n * * Display Name: Integration Name\n * * SQL Data Type: nvarchar(100)")});/**
|
|
54988
|
+
*/var MJIntegrationObjectSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()\n * * Description: Primary key"),IntegrationID:z.string().describe("\n * * Field Name: IntegrationID\n * * Display Name: Integration\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Integrations (vwIntegrations.ID)\n * * Description: Foreign key to the Integration that owns this object"),Name:z.string().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(255)\n * * Description: Internal/programmatic name of the external object (e.g., Members, Events)"),DisplayName:z.string().nullable().describe("\n * * Field Name: DisplayName\n * * Display Name: Display Name\n * * SQL Data Type: nvarchar(255)\n * * Description: Human-friendly display label"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Description of what this external object represents"),Category:z.string().nullable().describe("\n * * Field Name: Category\n * * Display Name: Category\n * * SQL Data Type: nvarchar(100)\n * * Description: UI grouping category (e.g., Membership, Events, Finance)"),APIPath:z.string().describe("\n * * Field Name: APIPath\n * * Display Name: API Path\n * * SQL Data Type: nvarchar(500)\n * * Description: API endpoint path, may include template variables like {ProfileID} that are resolved at runtime from parent object records"),ResponseDataKey:z.string().nullable().describe("\n * * Field Name: ResponseDataKey\n * * Display Name: Response Data Key\n * * SQL Data Type: nvarchar(255)\n * * Description: JSON key used to extract the data array from the API response envelope. NULL means the response is a root-level array."),DefaultPageSize:z.number().describe("\n * * Field Name: DefaultPageSize\n * * Display Name: Default Page Size\n * * SQL Data Type: int\n * * Default Value: 100\n * * Description: Number of records to request per page from the API"),SupportsPagination:z.boolean().describe("\n * * Field Name: SupportsPagination\n * * Display Name: Supports Pagination\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Whether this endpoint supports paginated fetching"),PaginationType:z.union([z.literal('Cursor'),z.literal('None'),z.literal('Offset'),z.literal('PageNumber')]).describe("\n * * Field Name: PaginationType\n * * Display Name: Pagination Type\n * * SQL Data Type: nvarchar(20)\n * * Default Value: PageNumber\n * * Value List Type: List\n * * Possible Values \n * * Cursor\n * * None\n * * Offset\n * * PageNumber\n * * Description: Pagination strategy: PageNumber (page index), Offset (record offset), Cursor (opaque token), or None"),SupportsIncrementalSync:z.boolean().describe("\n * * Field Name: SupportsIncrementalSync\n * * Display Name: Supports Incremental Sync\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Whether this object supports watermark-based incremental sync"),SupportsWrite:z.boolean().describe("\n * * Field Name: SupportsWrite\n * * Display Name: Supports Write\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Whether data can be pushed back to this object via the API"),DefaultQueryParams:z.string().nullable().describe("\n * * Field Name: DefaultQueryParams\n * * Display Name: Default Query Parameters\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON object of default query parameters to include with every API request for this object"),Configuration:z.string().nullable().describe("\n * * Field Name: Configuration\n * * Display Name: Configuration\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Freeform JSON for connector-specific configuration not covered by standard columns"),Sequence:z.number().describe("\n * * Field Name: Sequence\n * * Display Name: Sequence\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Processing and display order. Lower numbers are processed first."),Status:z.union([z.literal('Active'),z.literal('Deprecated'),z.literal('Disabled')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(25)\n * * Default Value: Active\n * * Value List Type: List\n * * Possible Values \n * * Active\n * * Deprecated\n * * Disabled\n * * Description: Active, Deprecated, or Disabled. Mirrors EntityField status values."),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),WriteAPIPath:z.string().nullable().describe("\n * * Field Name: WriteAPIPath\n * * Display Name: Write API Path\n * * SQL Data Type: nvarchar(500)\n * * Description: API path for create/update operations when different from the read APIPath. If NULL, the read APIPath is used for writes as well."),WriteMethod:z.string().nullable().describe("\n * * Field Name: WriteMethod\n * * Display Name: Write Method\n * * SQL Data Type: nvarchar(10)\n * * Default Value: POST\n * * Description: HTTP method for create operations. Defaults to POST."),DeleteMethod:z.string().nullable().describe("\n * * Field Name: DeleteMethod\n * * Display Name: Delete Method\n * * SQL Data Type: nvarchar(10)\n * * Default Value: DELETE\n * * Description: HTTP method for delete operations. Defaults to DELETE."),IsCustom:z.boolean().describe("\n * * Field Name: IsCustom\n * * Display Name: Is Custom\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When true, this object was dynamically discovered by IntrospectSchema and is not defined in static connector metadata."),Integration:z.string().describe("\n * * Field Name: Integration\n * * Display Name: Integration Name\n * * SQL Data Type: nvarchar(100)")});/**
|
|
54567
54989
|
* zod schema definition for the entity MJ: Integration Source Types
|
|
54568
54990
|
*/var MJIntegrationSourceTypeSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),Name:z.string().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(200)\n * * Description: Display name for this source type (e.g. SaaS API, Relational Database, File Feed)."),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Optional longer description of this source type."),DriverClass:z.string().describe("\n * * Field Name: DriverClass\n * * Display Name: Driver Class\n * * SQL Data Type: nvarchar(500)\n * * Description: Fully-qualified class name registered via @RegisterClass that implements BaseIntegrationConnector for this source type."),IconClass:z.string().nullable().describe("\n * * Field Name: IconClass\n * * Display Name: Icon Class\n * * SQL Data Type: nvarchar(200)\n * * Description: Font Awesome icon class for UI display."),Status:z.union([z.literal('Active'),z.literal('Inactive')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(50)\n * * Default Value: Active\n * * Value List Type: List\n * * Possible Values \n * * Active\n * * Inactive\n * * Description: Whether this source type is available for use. Active or Inactive."),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()")});/**
|
|
54569
54991
|
* zod schema definition for the entity MJ: Integration URL Formats
|
|
@@ -54655,7 +55077,7 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
|
|
|
54655
55077
|
* zod schema definition for the entity MJ: Record Change Replay Runs
|
|
54656
55078
|
*/var MJRecordChangeReplayRunSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),StartedAt:z.date().describe("\n * * Field Name: StartedAt\n * * Display Name: Started At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp when the replay run started"),EndedAt:z.date().nullable().describe("\n * * Field Name: EndedAt\n * * Display Name: Ended At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp when the replay run ended"),Status:z.union([z.literal('Complete'),z.literal('Error'),z.literal('In Progress'),z.literal('Pending')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(50)\n * * Value List Type: List\n * * Possible Values \n * * Complete\n * * Error\n * * In Progress\n * * Pending\n * * Description: Status of the replay run (Pending, In Progress, Complete, Error)"),UserID:z.string().describe("\n * * Field Name: UserID\n * * Display Name: User\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),User:z.string().describe("\n * * Field Name: User\n * * Display Name: User\n * * SQL Data Type: nvarchar(100)")});/**
|
|
54657
55079
|
* zod schema definition for the entity MJ: Record Changes
|
|
54658
|
-
*/var MJRecordChangeSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),EntityID:z.string().describe("\n * * Field Name: EntityID\n * * Display Name: Entity ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)"),RecordID:z.string().describe("\n * * Field Name: RecordID\n * * Display Name: Record ID\n * * SQL Data Type: nvarchar(750)\n * * Description: Field RecordID for entity Record Changes."),UserID:z.string().describe("\n * * Field Name: UserID\n * * Display Name: User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)"),Type:z.union([z.literal('Create'),z.literal('Delete'),z.literal('Snapshot'),z.literal('Update')]).describe("\n * * Field Name: Type\n * * Display Name: Change Type\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Create\n * * Value List Type: List\n * * Possible Values \n * * Create\n * * Delete\n * * Snapshot\n * * Update\n * * Description: Create, Update, or Delete"),Source:z.union([z.literal('External'),z.literal('Internal')]).describe("\n * * Field Name: Source\n * * Display Name: Source\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Internal\n * * Value List Type: List\n * * Possible Values \n * * External\n * * Internal\n * * Description: Internal or External"),ChangedAt:z.date().describe("\n * * Field Name: ChangedAt\n * * Display Name: Changed At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()\n * * Description: The date/time that the change occured."),ChangesJSON:z.string().describe("\n * * Field Name: ChangesJSON\n * * Display Name: Changes JSON\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON structure that describes what was changed in a structured format."),ChangesDescription:z.string().describe("\n * * Field Name: ChangesDescription\n * * Display Name: Changes Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: A generated, human-readable description of what was changed."),FullRecordJSON:z.string().describe("\n * * Field Name: FullRecordJSON\n * * Display Name: Full Record
|
|
55080
|
+
*/var MJRecordChangeSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),EntityID:z.string().describe("\n * * Field Name: EntityID\n * * Display Name: Entity ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)"),RecordID:z.string().describe("\n * * Field Name: RecordID\n * * Display Name: Record ID\n * * SQL Data Type: nvarchar(750)\n * * Description: Field RecordID for entity Record Changes."),UserID:z.string().describe("\n * * Field Name: UserID\n * * Display Name: User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)"),Type:z.union([z.literal('Create'),z.literal('Delete'),z.literal('Snapshot'),z.literal('Update')]).describe("\n * * Field Name: Type\n * * Display Name: Change Type\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Create\n * * Value List Type: List\n * * Possible Values \n * * Create\n * * Delete\n * * Snapshot\n * * Update\n * * Description: Create, Update, or Delete"),Source:z.union([z.literal('External'),z.literal('Internal'),z.literal('Restore')]).describe("\n * * Field Name: Source\n * * Display Name: Source\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Internal\n * * Value List Type: List\n * * Possible Values \n * * External\n * * Internal\n * * Restore\n * * Description: Internal or External"),ChangedAt:z.date().describe("\n * * Field Name: ChangedAt\n * * Display Name: Changed At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()\n * * Description: The date/time that the change occured."),ChangesJSON:z.string().describe("\n * * Field Name: ChangesJSON\n * * Display Name: Changes JSON\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON structure that describes what was changed in a structured format."),ChangesDescription:z.string().describe("\n * * Field Name: ChangesDescription\n * * Display Name: Changes Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: A generated, human-readable description of what was changed."),FullRecordJSON:z.string().describe("\n * * Field Name: FullRecordJSON\n * * Display Name: Full Record JSON\n * * SQL Data Type: nvarchar(MAX)\n * * Description: A complete snapshot of the record AFTER the change was applied in a JSON format that can be parsed."),Status:z.union([z.literal('Complete'),z.literal('Error'),z.literal('Pending')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(50)\n * * Default Value: Complete\n * * Value List Type: List\n * * Possible Values \n * * Complete\n * * Error\n * * Pending\n * * Description: For internal record changes generated within MJ, the status is immediately Complete. For external changes that are detected, the workflow starts off as Pending, then In Progress and finally either Complete or Error"),ErrorLog:z.string().nullable().describe("\n * * Field Name: ErrorLog\n * * Display Name: Error Log\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Field ErrorLog for entity Record Changes."),ReplayRunID:z.string().nullable().describe("\n * * Field Name: ReplayRunID\n * * Display Name: Replay Run ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Record Change Replay Runs (vwRecordChangeReplayRuns.ID)"),IntegrationID:z.string().nullable().describe("\n * * Field Name: IntegrationID\n * * Display Name: Integration ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Integrations (vwIntegrations.ID)"),Comments:z.string().nullable().describe("\n * * Field Name: Comments\n * * Display Name: Comments\n * * SQL Data Type: nvarchar(MAX)"),CreatedAt:z.date().describe("\n * * Field Name: CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()\n * * Description: Field CreatedAt for entity Record Changes."),UpdatedAt:z.date().describe("\n * * Field Name: UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()\n * * Description: Field UpdatedAt for entity Record Changes."),RestoredFromID:z.string().nullable().describe("\n * * Field Name: RestoredFromID\n * * Display Name: Restored From ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Record Changes (vwRecordChanges.ID)\n * * Description: When this RecordChange was produced by a restore operation, points at the historical RecordChange whose state was restored. NULL for ordinary changes. Together with Source='Restore' this builds the version-chain lineage for auditing and timeline navigation."),RestoreReason:z.string().nullable().describe("\n * * Field Name: RestoreReason\n * * Display Name: Restore Reason\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Optional user-entered explanation captured at restore time. Persisted for audit purposes (regulated industries often require a reason for every reversal). NULL when the user did not enter one or when the change was not a restore."),Entity:z.string().describe("\n * * Field Name: Entity\n * * Display Name: Entity Name\n * * SQL Data Type: nvarchar(255)"),User:z.string().describe("\n * * Field Name: User\n * * Display Name: User\n * * SQL Data Type: nvarchar(100)"),ReplayRun:z.string().nullable().describe("\n * * Field Name: ReplayRun\n * * Display Name: Replay Run\n * * SQL Data Type: nvarchar(100)"),Integration:z.string().nullable().describe("\n * * Field Name: Integration\n * * Display Name: Integration\n * * SQL Data Type: nvarchar(100)"),RestoredFrom:z.string().nullable().describe("\n * * Field Name: RestoredFrom\n * * Display Name: Restored From\n * * SQL Data Type: nvarchar(750)"),RootRestoredFromID:z.string().nullable().describe("\n * * Field Name: RootRestoredFromID\n * * Display Name: Root Restored From ID\n * * SQL Data Type: uniqueidentifier")});/**
|
|
54659
55081
|
* zod schema definition for the entity MJ: Record Geo Codes
|
|
54660
55082
|
*/var MJRecordGeoCodeSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),EntityID:z.string().describe("\n * * Field Name: EntityID\n * * Display Name: Entity\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)\n * * Description: Foreign key to Entity. Identifies which entity this geocode belongs to."),RecordID:z.string().describe("\n * * Field Name: RecordID\n * * Display Name: Record\n * * SQL Data Type: nvarchar(450)\n * * Description: MJ composite primary key format string identifying the source record (e.g., \"ID|<uuid>\"). Max 450 chars for SQL Server index support."),LocationType:z.string().describe("\n * * Field Name: LocationType\n * * Display Name: Location Type\n * * SQL Data Type: nvarchar(50)\n * * Default Value: Primary\n * * Description: Discriminator for multi-location entities. Default \"Primary\" for single-address entities. Multi-address examples: \"Home\", \"Business\", \"Mailing\", \"PO Box\"."),Latitude:z.number().nullable().describe("\n * * Field Name: Latitude\n * * Display Name: Latitude\n * * SQL Data Type: decimal(10, 6)\n * * Description: Geocoded latitude coordinate. NULL when Status is \"pending\" or \"failed\"."),Longitude:z.number().nullable().describe("\n * * Field Name: Longitude\n * * Display Name: Longitude\n * * SQL Data Type: decimal(10, 6)\n * * Description: Geocoded longitude coordinate. NULL when Status is \"pending\" or \"failed\"."),Precision:z.union([z.literal('city'),z.literal('country'),z.literal('county'),z.literal('exact'),z.literal('postal_code'),z.literal('state_province')]).nullable().describe("\n * * Field Name: Precision\n * * Display Name: Precision\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * city\n * * country\n * * county\n * * exact\n * * postal_code\n * * state_province\n * * Description: Precision level of the geocoded result: exact (street address), postal_code, city, county, state_province, or country."),CountryID:z.string().nullable().describe("\n * * Field Name: CountryID\n * * Display Name: Country\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Countries (vwCountries.ID)\n * * Description: Optional FK to Country reference table. Populated alongside lat/lng to enable choropleth grouping without reverse-geocoding at render time."),StateProvinceID:z.string().nullable().describe("\n * * Field Name: StateProvinceID\n * * Display Name: State Province\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: State Provinces (vwStateProvinces.ID)\n * * Description: Optional FK to StateProvince reference table. Populated alongside lat/lng to enable state-level choropleth grouping."),Status:z.union([z.literal('failed'),z.literal('pending'),z.literal('success')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(20)\n * * Default Value: pending\n * * Value List Type: List\n * * Possible Values \n * * failed\n * * pending\n * * success\n * * Description: Current geocoding status: \"pending\" (awaiting geocode), \"success\" (geocoded), or \"failed\" (geocoding error). Used by scheduled job for retry logic."),ErrorMessage:z.string().nullable().describe("\n * * Field Name: ErrorMessage\n * * Display Name: Error Message\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Error details when Status is \"failed\". Captures API error messages, rate limit info, etc. for debugging."),RetryCount:z.number().describe("\n * * Field Name: RetryCount\n * * Display Name: Retry Count\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Number of geocoding attempts. Used for exponential backoff in the scheduled retry job. Stops retrying at configurable maxRetries (default 3)."),SourceFieldHash:z.string().nullable().describe("\n * * Field Name: SourceFieldHash\n * * Display Name: Source Field Hash\n * * SQL Data Type: nvarchar(64)\n * * Description: SHA-256 hash of the source field values that produced this geocode. When source fields change on save, the hash won't match and re-geocoding is triggered. Format: SHA-256(concat(field1, \"|\", field2, ...))."),GeocodedAt:z.date().nullable().describe("\n * * Field Name: GeocodedAt\n * * Display Name: Geocoded At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp of when geocoding was last attempted (success or failure)."),GeocodingSource:z.union([z.literal('google'),z.literal('ip_geolocation'),z.literal('manual'),z.literal('native'),z.literal('reference_data'),z.literal('reverse')]).nullable().describe("\n * * Field Name: GeocodingSource\n * * Display Name: Geocoding Source\n * * SQL Data Type: nvarchar(30)\n * * Value List Type: List\n * * Possible Values \n * * google\n * * ip_geolocation\n * * manual\n * * native\n * * reference_data\n * * reverse\n * * Description: How this geocode was produced: google (Google Geocoding API), reference_data (resolved via Country/StateProvince tables), manual (user-entered), ip_geolocation (IP lookup), native (copied from entity lat/lng fields), reverse (reverse geocode from coordinates)."),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Entity:z.string().describe("\n * * Field Name: Entity\n * * Display Name: Entity Name\n * * SQL Data Type: nvarchar(255)"),Country:z.string().nullable().describe("\n * * Field Name: Country\n * * Display Name: Country Name\n * * SQL Data Type: nvarchar(200)"),StateProvince:z.string().nullable().describe("\n * * Field Name: StateProvince\n * * Display Name: State Province Name\n * * SQL Data Type: nvarchar(200)")});/**
|
|
54661
55083
|
* zod schema definition for the entity MJ: Record Links
|
|
@@ -54783,7 +55205,7 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
|
|
|
54783
55205
|
* zod schema definition for the entity MJ: Version Installations
|
|
54784
55206
|
*/var MJVersionInstallationSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),MajorVersion:z.number().describe("\n * * Field Name: MajorVersion\n * * Display Name: Major Version\n * * SQL Data Type: int\n * * Description: Major version number installed."),MinorVersion:z.number().describe("\n * * Field Name: MinorVersion\n * * Display Name: Minor Version\n * * SQL Data Type: int\n * * Description: Minor version number installed."),PatchVersion:z.number().describe("\n * * Field Name: PatchVersion\n * * Display Name: Patch Version\n * * SQL Data Type: int\n * * Description: Patch version number installed."),Type:z.union([z.literal('New'),z.literal('Upgrade')]).nullable().describe("\n * * Field Name: Type\n * * Display Name: Installation Type\n * * SQL Data Type: nvarchar(20)\n * * Default Value: System\n * * Value List Type: List\n * * Possible Values \n * * New\n * * Upgrade\n * * Description: What type of installation was applied"),InstalledAt:z.date().describe("\n * * Field Name: InstalledAt\n * * Display Name: Installed At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp when this version was installed."),Status:z.union([z.literal('Complete'),z.literal('Failed'),z.literal('In Progress'),z.literal('Pending')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Pending\n * * Value List Type: List\n * * Possible Values \n * * Complete\n * * Failed\n * * In Progress\n * * Pending\n * * Description: Pending, Complete, Failed"),InstallLog:z.string().nullable().describe("\n * * Field Name: InstallLog\n * * Display Name: Install Log\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Any logging that was saved from the installation process"),Comments:z.string().nullable().describe("\n * * Field Name: Comments\n * * Display Name: Comments\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Optional, comments the administrator wants to save for each installed version"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),CompleteVersion:z.string().nullable().describe("\n * * Field Name: CompleteVersion\n * * Display Name: Complete Version\n * * SQL Data Type: nvarchar(302)")});/**
|
|
54785
55207
|
* zod schema definition for the entity MJ: Version Label Items
|
|
54786
|
-
*/var MJVersionLabelItemSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),VersionLabelID:z.string().describe("\n * * Field Name: VersionLabelID\n * * Display Name: Version Label\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Version Labels (vwVersionLabels.ID)\n * * Description: The version label this item belongs to"),RecordChangeID:z.string().describe("\n * * Field Name: RecordChangeID\n * * Display Name: Record Change\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Record Changes (vwRecordChanges.ID)\n * * Description: The specific RecordChange entry representing the record state at label creation time"),EntityID:z.string().describe("\n * * Field Name: EntityID\n * * Display Name: Entity\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)\n * * Description: Denormalized entity reference for query performance"),RecordID:z.string().describe("\n * * Field Name: RecordID\n * * Display Name: Record ID\n * * SQL Data Type: nvarchar(750)\n * * Description: Denormalized record primary key for query performance"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),VersionLabel:z.string().describe("\n * * Field Name: VersionLabel\n * * Display Name: Version Label\n * * SQL Data Type: nvarchar(200)"),RecordChange:z.string().describe("\n * * Field Name: RecordChange\n * * Display Name: Record Change\n * * SQL Data Type: nvarchar(
|
|
55208
|
+
*/var MJVersionLabelItemSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),VersionLabelID:z.string().describe("\n * * Field Name: VersionLabelID\n * * Display Name: Version Label\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Version Labels (vwVersionLabels.ID)\n * * Description: The version label this item belongs to"),RecordChangeID:z.string().describe("\n * * Field Name: RecordChangeID\n * * Display Name: Record Change\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Record Changes (vwRecordChanges.ID)\n * * Description: The specific RecordChange entry representing the record state at label creation time"),EntityID:z.string().describe("\n * * Field Name: EntityID\n * * Display Name: Entity\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)\n * * Description: Denormalized entity reference for query performance"),RecordID:z.string().describe("\n * * Field Name: RecordID\n * * Display Name: Record ID\n * * SQL Data Type: nvarchar(750)\n * * Description: Denormalized record primary key for query performance"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),VersionLabel:z.string().describe("\n * * Field Name: VersionLabel\n * * Display Name: Version Label\n * * SQL Data Type: nvarchar(200)"),RecordChange:z.string().describe("\n * * Field Name: RecordChange\n * * Display Name: Record Change\n * * SQL Data Type: nvarchar(750)"),Entity:z.string().describe("\n * * Field Name: Entity\n * * Display Name: Entity\n * * SQL Data Type: nvarchar(255)")});/**
|
|
54787
55209
|
* zod schema definition for the entity MJ: Version Label Restores
|
|
54788
55210
|
*/var MJVersionLabelRestoreSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),VersionLabelID:z.string().describe("\n * * Field Name: VersionLabelID\n * * Display Name: Version Label ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Version Labels (vwVersionLabels.ID)\n * * Description: The version label being restored to"),Status:z.union([z.literal('Complete'),z.literal('Error'),z.literal('In Progress'),z.literal('Partial'),z.literal('Pending')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(50)\n * * Default Value: Pending\n * * Value List Type: List\n * * Possible Values \n * * Complete\n * * Error\n * * In Progress\n * * Partial\n * * Pending\n * * Description: Current status of the restore operation"),StartedAt:z.date().describe("\n * * Field Name: StartedAt\n * * Display Name: Started At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()\n * * Description: When the restore operation began"),EndedAt:z.date().nullable().describe("\n * * Field Name: EndedAt\n * * Display Name: Ended At\n * * SQL Data Type: datetimeoffset\n * * Description: When the restore operation completed or failed"),UserID:z.string().describe("\n * * Field Name: UserID\n * * Display Name: User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)\n * * Description: The user who initiated the restore"),TotalItems:z.number().describe("\n * * Field Name: TotalItems\n * * Display Name: Total Items\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Total number of records to restore"),CompletedItems:z.number().describe("\n * * Field Name: CompletedItems\n * * Display Name: Completed Items\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Number of records successfully restored so far"),FailedItems:z.number().describe("\n * * Field Name: FailedItems\n * * Display Name: Failed Items\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Number of records that failed to restore"),ErrorLog:z.string().nullable().describe("\n * * Field Name: ErrorLog\n * * Display Name: Error Log\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Detailed error information for failed restore items"),PreRestoreLabelID:z.string().nullable().describe("\n * * Field Name: PreRestoreLabelID\n * * Display Name: Pre-Restore Label ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Version Labels (vwVersionLabels.ID)\n * * Description: Reference to the automatically created safety-net label that captured state before the restore began"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),VersionLabel:z.string().describe("\n * * Field Name: VersionLabel\n * * Display Name: Version Label\n * * SQL Data Type: nvarchar(200)"),User:z.string().describe("\n * * Field Name: User\n * * Display Name: User\n * * SQL Data Type: nvarchar(100)"),PreRestoreLabel:z.string().nullable().describe("\n * * Field Name: PreRestoreLabel\n * * Display Name: Pre-Restore Label\n * * SQL Data Type: nvarchar(200)")});/**
|
|
54789
55211
|
* zod schema definition for the entity MJ: Version Labels
|
|
@@ -74059,7 +74481,7 @@ var isUserValid=this.Type==="User"&&this.UserID!=null&&this.RoleID==null;var isR
|
|
|
74059
74481
|
* * Description: UI grouping category within the object
|
|
74060
74482
|
*/},{key:"Category",get:function get(){return this.Get('Category');},set:function set(value){this.Set('Category',value);}/**
|
|
74061
74483
|
* * Field Name: Type
|
|
74062
|
-
* * Display Name: Type
|
|
74484
|
+
* * Display Name: Data Type
|
|
74063
74485
|
* * SQL Data Type: nvarchar(100)
|
|
74064
74486
|
* * Description: Data type of the field (e.g., nvarchar, int, datetime, decimal, bit). Uses same type vocabulary as EntityField.
|
|
74065
74487
|
*/},{key:"Type",get:function get(){return this.Get('Type');},set:function set(value){this.Set('Type',value);}/**
|
|
@@ -74090,31 +74512,31 @@ var isUserValid=this.Type==="User"&&this.UserID!=null&&this.RoleID==null;var isR
|
|
|
74090
74512
|
* * Description: Default value from the source system
|
|
74091
74513
|
*/},{key:"DefaultValue",get:function get(){return this.Get('DefaultValue');},set:function set(value){this.Set('DefaultValue',value);}/**
|
|
74092
74514
|
* * Field Name: IsPrimaryKey
|
|
74093
|
-
* * Display Name: Primary Key
|
|
74515
|
+
* * Display Name: Is Primary Key
|
|
74094
74516
|
* * SQL Data Type: bit
|
|
74095
74517
|
* * Default Value: 0
|
|
74096
74518
|
* * Description: Whether this field is part of the object primary key
|
|
74097
74519
|
*/},{key:"IsPrimaryKey",get:function get(){return this.Get('IsPrimaryKey');},set:function set(value){this.Set('IsPrimaryKey',value);}/**
|
|
74098
74520
|
* * Field Name: IsUniqueKey
|
|
74099
|
-
* * Display Name: Unique Key
|
|
74521
|
+
* * Display Name: Is Unique Key
|
|
74100
74522
|
* * SQL Data Type: bit
|
|
74101
74523
|
* * Default Value: 0
|
|
74102
74524
|
* * Description: Whether values must be unique across all records
|
|
74103
74525
|
*/},{key:"IsUniqueKey",get:function get(){return this.Get('IsUniqueKey');},set:function set(value){this.Set('IsUniqueKey',value);}/**
|
|
74104
74526
|
* * Field Name: IsReadOnly
|
|
74105
|
-
* * Display Name: Read Only
|
|
74527
|
+
* * Display Name: Is Read Only
|
|
74106
74528
|
* * SQL Data Type: bit
|
|
74107
74529
|
* * Default Value: 0
|
|
74108
74530
|
* * Description: Whether this field cannot be written back to the source system
|
|
74109
74531
|
*/},{key:"IsReadOnly",get:function get(){return this.Get('IsReadOnly');},set:function set(value){this.Set('IsReadOnly',value);}/**
|
|
74110
74532
|
* * Field Name: IsRequired
|
|
74111
|
-
* * Display Name: Required
|
|
74533
|
+
* * Display Name: Is Required
|
|
74112
74534
|
* * SQL Data Type: bit
|
|
74113
74535
|
* * Default Value: 0
|
|
74114
74536
|
* * Description: Whether this field is required for create/update operations
|
|
74115
74537
|
*/},{key:"IsRequired",get:function get(){return this.Get('IsRequired');},set:function set(value){this.Set('IsRequired',value);}/**
|
|
74116
74538
|
* * Field Name: RelatedIntegrationObjectID
|
|
74117
|
-
* * Display Name: Related Integration Object
|
|
74539
|
+
* * Display Name: Related Integration Object ID
|
|
74118
74540
|
* * SQL Data Type: uniqueidentifier
|
|
74119
74541
|
* * Related Entity/Foreign Key: MJ: Integration Objects (vwIntegrationObjects.ID)
|
|
74120
74542
|
* * Description: Foreign key to another IntegrationObject, establishing a relationship. Used for DAG-based dependency ordering and template variable resolution in parent APIPath patterns.
|
|
@@ -74156,6 +74578,12 @@ var isUserValid=this.Type==="User"&&this.UserID!=null&&this.RoleID==null;var isR
|
|
|
74156
74578
|
* * SQL Data Type: datetimeoffset
|
|
74157
74579
|
* * Default Value: getutcdate()
|
|
74158
74580
|
*/},{key:"__mj_UpdatedAt",get:function get(){return this.Get('__mj_UpdatedAt');}/**
|
|
74581
|
+
* * Field Name: IsCustom
|
|
74582
|
+
* * Display Name: Is Custom
|
|
74583
|
+
* * SQL Data Type: bit
|
|
74584
|
+
* * Default Value: 0
|
|
74585
|
+
* * Description: When true, this field was dynamically discovered by IntrospectSchema and is not defined in static connector metadata.
|
|
74586
|
+
*/},{key:"IsCustom",get:function get(){return this.Get('IsCustom');},set:function set(value){this.Set('IsCustom',value);}/**
|
|
74159
74587
|
* * Field Name: IntegrationObject
|
|
74160
74588
|
* * Display Name: Integration Object Name
|
|
74161
74589
|
* * SQL Data Type: nvarchar(255)
|
|
@@ -74316,6 +74744,12 @@ var isUserValid=this.Type==="User"&&this.UserID!=null&&this.RoleID==null;var isR
|
|
|
74316
74744
|
* * Default Value: DELETE
|
|
74317
74745
|
* * Description: HTTP method for delete operations. Defaults to DELETE.
|
|
74318
74746
|
*/},{key:"DeleteMethod",get:function get(){return this.Get('DeleteMethod');},set:function set(value){this.Set('DeleteMethod',value);}/**
|
|
74747
|
+
* * Field Name: IsCustom
|
|
74748
|
+
* * Display Name: Is Custom
|
|
74749
|
+
* * SQL Data Type: bit
|
|
74750
|
+
* * Default Value: 0
|
|
74751
|
+
* * Description: When true, this object was dynamically discovered by IntrospectSchema and is not defined in static connector metadata.
|
|
74752
|
+
*/},{key:"IsCustom",get:function get(){return this.Get('IsCustom');},set:function set(value){this.Set('IsCustom',value);}/**
|
|
74319
74753
|
* * Field Name: Integration
|
|
74320
74754
|
* * Display Name: Integration Name
|
|
74321
74755
|
* * SQL Data Type: nvarchar(100)
|
|
@@ -78227,6 +78661,7 @@ provider=dist/* Metadata */.OS.Provider;_context229.p=1;_context229.n=2;return p
|
|
|
78227
78661
|
* * Possible Values
|
|
78228
78662
|
* * External
|
|
78229
78663
|
* * Internal
|
|
78664
|
+
* * Restore
|
|
78230
78665
|
* * Description: Internal or External
|
|
78231
78666
|
*/},{key:"Source",get:function get(){return this.Get('Source');},set:function set(value){this.Set('Source',value);}/**
|
|
78232
78667
|
* * Field Name: ChangedAt
|
|
@@ -78246,7 +78681,7 @@ provider=dist/* Metadata */.OS.Provider;_context229.p=1;_context229.n=2;return p
|
|
|
78246
78681
|
* * Description: A generated, human-readable description of what was changed.
|
|
78247
78682
|
*/},{key:"ChangesDescription",get:function get(){return this.Get('ChangesDescription');},set:function set(value){this.Set('ChangesDescription',value);}/**
|
|
78248
78683
|
* * Field Name: FullRecordJSON
|
|
78249
|
-
* * Display Name: Full Record
|
|
78684
|
+
* * Display Name: Full Record JSON
|
|
78250
78685
|
* * SQL Data Type: nvarchar(MAX)
|
|
78251
78686
|
* * Description: A complete snapshot of the record AFTER the change was applied in a JSON format that can be parsed.
|
|
78252
78687
|
*/},{key:"FullRecordJSON",get:function get(){return this.Get('FullRecordJSON');},set:function set(value){this.Set('FullRecordJSON',value);}/**
|
|
@@ -78292,8 +78727,19 @@ provider=dist/* Metadata */.OS.Provider;_context229.p=1;_context229.n=2;return p
|
|
|
78292
78727
|
* * Default Value: getutcdate()
|
|
78293
78728
|
* * Description: Field UpdatedAt for entity Record Changes.
|
|
78294
78729
|
*/},{key:"UpdatedAt",get:function get(){return this.Get('UpdatedAt');}/**
|
|
78730
|
+
* * Field Name: RestoredFromID
|
|
78731
|
+
* * Display Name: Restored From ID
|
|
78732
|
+
* * SQL Data Type: uniqueidentifier
|
|
78733
|
+
* * Related Entity/Foreign Key: MJ: Record Changes (vwRecordChanges.ID)
|
|
78734
|
+
* * Description: When this RecordChange was produced by a restore operation, points at the historical RecordChange whose state was restored. NULL for ordinary changes. Together with Source='Restore' this builds the version-chain lineage for auditing and timeline navigation.
|
|
78735
|
+
*/},{key:"RestoredFromID",get:function get(){return this.Get('RestoredFromID');},set:function set(value){this.Set('RestoredFromID',value);}/**
|
|
78736
|
+
* * Field Name: RestoreReason
|
|
78737
|
+
* * Display Name: Restore Reason
|
|
78738
|
+
* * SQL Data Type: nvarchar(MAX)
|
|
78739
|
+
* * Description: Optional user-entered explanation captured at restore time. Persisted for audit purposes (regulated industries often require a reason for every reversal). NULL when the user did not enter one or when the change was not a restore.
|
|
78740
|
+
*/},{key:"RestoreReason",get:function get(){return this.Get('RestoreReason');},set:function set(value){this.Set('RestoreReason',value);}/**
|
|
78295
78741
|
* * Field Name: Entity
|
|
78296
|
-
* * Display Name: Entity
|
|
78742
|
+
* * Display Name: Entity Name
|
|
78297
78743
|
* * SQL Data Type: nvarchar(255)
|
|
78298
78744
|
*/},{key:"Entity",get:function get(){return this.Get('Entity');}/**
|
|
78299
78745
|
* * Field Name: User
|
|
@@ -78307,7 +78753,15 @@ provider=dist/* Metadata */.OS.Provider;_context229.p=1;_context229.n=2;return p
|
|
|
78307
78753
|
* * Field Name: Integration
|
|
78308
78754
|
* * Display Name: Integration
|
|
78309
78755
|
* * SQL Data Type: nvarchar(100)
|
|
78310
|
-
*/},{key:"Integration",get:function get(){return this.Get('Integration');}
|
|
78756
|
+
*/},{key:"Integration",get:function get(){return this.Get('Integration');}/**
|
|
78757
|
+
* * Field Name: RestoredFrom
|
|
78758
|
+
* * Display Name: Restored From
|
|
78759
|
+
* * SQL Data Type: nvarchar(750)
|
|
78760
|
+
*/},{key:"RestoredFrom",get:function get(){return this.Get('RestoredFrom');}/**
|
|
78761
|
+
* * Field Name: RootRestoredFromID
|
|
78762
|
+
* * Display Name: Root Restored From ID
|
|
78763
|
+
* * SQL Data Type: uniqueidentifier
|
|
78764
|
+
*/},{key:"RootRestoredFromID",get:function get(){return this.Get('RootRestoredFromID');}}]);}(dist/* BaseEntity */.HC);MJRecordChangeEntity=__decorate([(0,MJGlobal_dist/* RegisterClass */.Y5)(dist/* BaseEntity */.HC,'MJ: Record Changes')],MJRecordChangeEntity);/**
|
|
78311
78765
|
* MJ: Record Geo Codes - strongly typed entity sub-class
|
|
78312
78766
|
* * Schema: __mj
|
|
78313
78767
|
* * Base Table: RecordGeoCode
|
|
@@ -84004,7 +84458,7 @@ if(this.RepeatCount!=null&&this.RepeatCount<=0){result.Errors.push(new dist/* Va
|
|
|
84004
84458
|
*/},{key:"VersionLabel",get:function get(){return this.Get('VersionLabel');}/**
|
|
84005
84459
|
* * Field Name: RecordChange
|
|
84006
84460
|
* * Display Name: Record Change
|
|
84007
|
-
* * SQL Data Type: nvarchar(
|
|
84461
|
+
* * SQL Data Type: nvarchar(750)
|
|
84008
84462
|
*/},{key:"RecordChange",get:function get(){return this.Get('RecordChange');}/**
|
|
84009
84463
|
* * Field Name: Entity
|
|
84010
84464
|
* * Display Name: Entity
|
|
@@ -88857,12 +89311,45 @@ var UserInfoEngine = /*#__PURE__*/function (_BaseEngine) {
|
|
|
88857
89311
|
}
|
|
88858
89312
|
return Config;
|
|
88859
89313
|
}() // ========================================================================
|
|
89314
|
+
// OBSERVABLE ACCESSORS
|
|
89315
|
+
// ========================================================================
|
|
89316
|
+
/**
|
|
89317
|
+
* Observable stream of the notifications cache array. Emits the current array on subscribe
|
|
89318
|
+
* and re-emits whenever the cache is mutated (save, delete, remote-invalidate, refresh).
|
|
89319
|
+
*
|
|
89320
|
+
* Emits the raw unfiltered cache (all users). Consumers that need per-user filtering should
|
|
89321
|
+
* `pipe(map(...))` — the public {@link UserNotifications} getter applies the current-user filter.
|
|
89322
|
+
*/
|
|
89323
|
+
)
|
|
89324
|
+
}, {
|
|
89325
|
+
key: "UserNotifications$",
|
|
89326
|
+
get: function get() {
|
|
89327
|
+
return this.ObserveProperty('_UserNotifications');
|
|
89328
|
+
}
|
|
89329
|
+
/**
|
|
89330
|
+
* Observable stream of the user favorites cache array. Emits the current array on subscribe
|
|
89331
|
+
* and re-emits whenever the cache is mutated.
|
|
89332
|
+
*/
|
|
89333
|
+
}, {
|
|
89334
|
+
key: "UserFavorites$",
|
|
89335
|
+
get: function get() {
|
|
89336
|
+
return this.ObserveProperty('_UserFavorites');
|
|
89337
|
+
}
|
|
89338
|
+
/**
|
|
89339
|
+
* Observable stream of the user applications cache array. Emits the current array on subscribe
|
|
89340
|
+
* and re-emits whenever the cache is mutated.
|
|
89341
|
+
*/
|
|
89342
|
+
}, {
|
|
89343
|
+
key: "UserApplications$",
|
|
89344
|
+
get: function get() {
|
|
89345
|
+
return this.ObserveProperty('_UserApplications');
|
|
89346
|
+
}
|
|
89347
|
+
// ========================================================================
|
|
88860
89348
|
// PUBLIC ACCESSORS
|
|
88861
89349
|
// ========================================================================
|
|
88862
89350
|
/**
|
|
88863
89351
|
* Get all notifications for the current user, ordered by creation date (newest first)
|
|
88864
89352
|
*/
|
|
88865
|
-
)
|
|
88866
89353
|
}, {
|
|
88867
89354
|
key: "UserNotifications",
|
|
88868
89355
|
get: function get() {
|
|
@@ -93982,7 +94469,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
93982
94469
|
gZ: () => (/* reexport */ uuidv4)
|
|
93983
94470
|
});
|
|
93984
94471
|
|
|
93985
|
-
// UNUSED EXPORTS: ALLOWED_SQL_FUNCTIONS, ClassFactory, ClassRegistration, CleanJSON, CleanJavaScript, ConvertMarkdownStringToHtmlList, CopyScalarsAndArrays, DANGEROUS_SQL_KEYWORDS, DeepDiffer, DeprecationWarningManager, DiffChangeType, ENCRYPTED_SENTINEL, FULL_QUERY_ALLOWED_KEYWORDS, GetClassInheritance, GetClassName, GetFullClassHierarchy, GetRootClass, GetSuperclass, InvokeManualResize, IsClassConstructor, IsDescendantClassOf, IsEncryptedSentinel, IsOnlyTimezoneShift, IsRootClass, IsSubclassOf, IsValueEncrypted, JSONValidator, MJEvent, MJGlobalProperty, ObjectCache, ObjectCacheEntry, ParseJSONRecursive, SafeExpressionEvaluator, adjustCasing, compareStringsByLine, convertCamelCaseToHaveSpaces, createDisplayName, defaultExpressionEvaluator, ensureRegExp, ensureRegExps, generatePluralName, getIrregularPlural, matchesAllPatterns, matchesAnyPattern, parsePattern, parsePatterns, replaceAllSpaces, stripTrailingChars, stripWhitespace
|
|
94472
|
+
// UNUSED EXPORTS: ALLOWED_SQL_FUNCTIONS, ClassFactory, ClassRegistration, CleanJSON, CleanJavaScript, ConvertMarkdownStringToHtmlList, CopyScalarsAndArrays, DANGEROUS_SQL_KEYWORDS, DeepDiffer, DeprecationWarningManager, DiffChangeType, ENCRYPTED_SENTINEL, EscapeHTML, FULL_QUERY_ALLOWED_KEYWORDS, GetClassInheritance, GetClassName, GetFullClassHierarchy, GetRootClass, GetSuperclass, InvokeManualResize, IsClassConstructor, IsDescendantClassOf, IsEncryptedSentinel, IsOnlyTimezoneShift, IsRootClass, IsSubclassOf, IsValueEncrypted, JSONValidator, MJEvent, MJGlobalProperty, ObjectCache, ObjectCacheEntry, ParseJSONRecursive, SafeExpressionEvaluator, adjustCasing, compareStringsByLine, convertCamelCaseToHaveSpaces, createDisplayName, defaultExpressionEvaluator, ensureRegExp, ensureRegExps, generatePluralName, getIrregularPlural, matchesAllPatterns, matchesAnyPattern, parsePattern, parsePatterns, replaceAllSpaces, stripTrailingChars, stripWhitespace
|
|
93986
94473
|
|
|
93987
94474
|
;// ../../MJGlobal/dist/interface.js
|
|
93988
94475
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
@@ -95085,6 +95572,18 @@ function recursiveReplaceKey(value, options, depth, path) {
|
|
|
95085
95572
|
return value; // return as-is for non-string, non-array, and non-object types
|
|
95086
95573
|
}
|
|
95087
95574
|
}
|
|
95575
|
+
/**
|
|
95576
|
+
* Escape HTML entities in a string to prevent Cross-Site Scripting (XSS) attacks.
|
|
95577
|
+
* This is particularly important when rendering un-sanitized user input via mechanisms
|
|
95578
|
+
* like Angular's `[innerHTML]`.
|
|
95579
|
+
*
|
|
95580
|
+
* @param text - The string to escape.
|
|
95581
|
+
* @returns The escaped HTML string.
|
|
95582
|
+
*/
|
|
95583
|
+
function EscapeHTML(text) {
|
|
95584
|
+
if (!text) return text;
|
|
95585
|
+
return text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''');
|
|
95586
|
+
}
|
|
95088
95587
|
/**
|
|
95089
95588
|
* Checks if two dates differ only by a timezone-like shift.
|
|
95090
95589
|
* Returns true if the difference is EXACTLY a whole number of hours
|
|
@@ -102988,8 +103487,8 @@ var ComponentRegistry = /*#__PURE__*/function () {
|
|
|
102988
103487
|
}
|
|
102989
103488
|
}]);
|
|
102990
103489
|
}();
|
|
102991
|
-
// EXTERNAL MODULE: ../../MJCore/dist/index.js +
|
|
102992
|
-
var dist = __webpack_require__(
|
|
103490
|
+
// EXTERNAL MODULE: ../../MJCore/dist/index.js + 74 modules
|
|
103491
|
+
var dist = __webpack_require__(186);
|
|
102993
103492
|
// EXTERNAL MODULE: ../../MJGlobal/dist/index.js + 16 modules
|
|
102994
103493
|
var MJGlobal_dist = __webpack_require__(300);
|
|
102995
103494
|
// EXTERNAL MODULE: ../../MJCoreEntities/dist/index.js + 28 modules
|