@memberjunction/react-runtime 5.51.0 → 6.1.0-edge.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.
@@ -11,7 +11,7 @@
11
11
  return /******/ (() => { // webpackBootstrap
12
12
  /******/ var __webpack_modules__ = ({
13
13
 
14
- /***/ 503
14
+ /***/ 332
15
15
  (module, exports, __webpack_require__) {
16
16
 
17
17
  /* eslint-env browser */
@@ -271,7 +271,7 @@ function localstorage() {
271
271
  }
272
272
  }
273
273
 
274
- module.exports = __webpack_require__(50)(exports);
274
+ module.exports = __webpack_require__(235)(exports);
275
275
 
276
276
  const {formatters} = module.exports;
277
277
 
@@ -290,7 +290,7 @@ formatters.j = function (v) {
290
290
 
291
291
  /***/ },
292
292
 
293
- /***/ 50
293
+ /***/ 235
294
294
  (module, __unused_webpack_exports, __webpack_require__) {
295
295
 
296
296
 
@@ -306,7 +306,7 @@ function setup(env) {
306
306
  createDebug.disable = disable;
307
307
  createDebug.enable = enable;
308
308
  createDebug.enabled = enabled;
309
- createDebug.humanize = __webpack_require__(339);
309
+ createDebug.humanize = __webpack_require__(207);
310
310
  createDebug.destroy = destroy;
311
311
 
312
312
  Object.keys(env).forEach(key => {
@@ -589,7 +589,7 @@ module.exports = setup;
589
589
 
590
590
  /***/ },
591
591
 
592
- /***/ 637
592
+ /***/ 923
593
593
  (module, exports, __webpack_require__) {
594
594
 
595
595
  /* module decorator */ module = __webpack_require__.nmd(module);
@@ -17838,7 +17838,7 @@ var __WEBPACK_AMD_DEFINE_RESULT__;/**
17838
17838
 
17839
17839
  /***/ },
17840
17840
 
17841
- /***/ 339
17841
+ /***/ 207
17842
17842
  (module) {
17843
17843
 
17844
17844
  /**
@@ -18007,15 +18007,15 @@ function plural(ms, msAbs, n, name) {
18007
18007
 
18008
18008
  /***/ },
18009
18009
 
18010
- /***/ 156
18010
+ /***/ 562
18011
18011
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
18012
18012
 
18013
18013
  "use strict";
18014
18014
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
18015
18015
  /* harmony export */ t: () => (/* binding */ BehaviorSubject)
18016
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);
18017
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(198);
18018
+ /* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(291);
18019
18019
 
18020
18020
 
18021
18021
  var BehaviorSubject = (function (_super) {
@@ -18055,7 +18055,7 @@ var BehaviorSubject = (function (_super) {
18055
18055
 
18056
18056
  /***/ },
18057
18057
 
18058
- /***/ 600
18058
+ /***/ 942
18059
18059
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
18060
18060
 
18061
18061
  "use strict";
@@ -18065,18 +18065,18 @@ __webpack_require__.d(__webpack_exports__, {
18065
18065
  c: () => (/* binding */ Observable)
18066
18066
  });
18067
18067
 
18068
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/Subscriber.js + 1 modules
18069
- var Subscriber = __webpack_require__(290);
18070
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/Subscription.js + 1 modules
18071
- var Subscription = __webpack_require__(226);
18072
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/symbol/observable.js
18073
- var observable = __webpack_require__(6);
18074
- ;// ../../../node_modules/rxjs/dist/esm5/internal/util/identity.js
18068
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscriber.js + 1 modules
18069
+ var Subscriber = __webpack_require__(380);
18070
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscription.js + 1 modules
18071
+ var Subscription = __webpack_require__(112);
18072
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/symbol/observable.js
18073
+ var observable = __webpack_require__(348);
18074
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/identity.js
18075
18075
  function identity(x) {
18076
18076
  return x;
18077
18077
  }
18078
18078
  //# sourceMappingURL=identity.js.map
18079
- ;// ../../../node_modules/rxjs/dist/esm5/internal/util/pipe.js
18079
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/pipe.js
18080
18080
 
18081
18081
  function pipe() {
18082
18082
  var fns = [];
@@ -18097,13 +18097,13 @@ function pipeFromArray(fns) {
18097
18097
  };
18098
18098
  }
18099
18099
  //# sourceMappingURL=pipe.js.map
18100
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/config.js
18101
- var config = __webpack_require__(906);
18102
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/util/isFunction.js
18103
- var isFunction = __webpack_require__(407);
18104
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/util/errorContext.js
18105
- var errorContext = __webpack_require__(834);
18106
- ;// ../../../node_modules/rxjs/dist/esm5/internal/Observable.js
18100
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/config.js
18101
+ var config = __webpack_require__(656);
18102
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isFunction.js
18103
+ var isFunction = __webpack_require__(41);
18104
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/errorContext.js
18105
+ var errorContext = __webpack_require__(640);
18106
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Observable.js
18107
18107
 
18108
18108
 
18109
18109
 
@@ -18209,16 +18209,16 @@ function isSubscriber(value) {
18209
18209
 
18210
18210
  /***/ },
18211
18211
 
18212
- /***/ 107
18212
+ /***/ 205
18213
18213
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
18214
18214
 
18215
18215
  "use strict";
18216
18216
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
18217
18217
  /* harmony export */ m: () => (/* binding */ ReplaySubject)
18218
18218
  /* harmony export */ });
18219
- /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(823);
18220
- /* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49);
18221
- /* harmony import */ var _scheduler_dateTimestampProvider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(953);
18219
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(198);
18220
+ /* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(291);
18221
+ /* harmony import */ var _scheduler_dateTimestampProvider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(987);
18222
18222
 
18223
18223
 
18224
18224
 
@@ -18280,7 +18280,7 @@ var ReplaySubject = (function (_super) {
18280
18280
 
18281
18281
  /***/ },
18282
18282
 
18283
- /***/ 49
18283
+ /***/ 291
18284
18284
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
18285
18285
 
18286
18286
  "use strict";
@@ -18292,15 +18292,15 @@ __webpack_require__.d(__webpack_exports__, {
18292
18292
 
18293
18293
  // UNUSED EXPORTS: AnonymousSubject
18294
18294
 
18295
- // EXTERNAL MODULE: ../../../node_modules/tslib/tslib.es6.mjs
18296
- var tslib_es6 = __webpack_require__(823);
18297
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/Observable.js + 2 modules
18298
- var Observable = __webpack_require__(600);
18299
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/Subscription.js + 1 modules
18300
- var Subscription = __webpack_require__(226);
18301
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js
18302
- var createErrorClass = __webpack_require__(525);
18303
- ;// ../../../node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js
18295
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs
18296
+ var tslib_es6 = __webpack_require__(198);
18297
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Observable.js + 2 modules
18298
+ var Observable = __webpack_require__(942);
18299
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscription.js + 1 modules
18300
+ var Subscription = __webpack_require__(112);
18301
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js
18302
+ var createErrorClass = __webpack_require__(755);
18303
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js
18304
18304
 
18305
18305
  var ObjectUnsubscribedError = (0,createErrorClass/* createErrorClass */.L)(function (_super) {
18306
18306
  return function ObjectUnsubscribedErrorImpl() {
@@ -18310,11 +18310,11 @@ var ObjectUnsubscribedError = (0,createErrorClass/* createErrorClass */.L)(funct
18310
18310
  };
18311
18311
  });
18312
18312
  //# sourceMappingURL=ObjectUnsubscribedError.js.map
18313
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/util/arrRemove.js
18314
- var arrRemove = __webpack_require__(444);
18315
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/util/errorContext.js
18316
- var errorContext = __webpack_require__(834);
18317
- ;// ../../../node_modules/rxjs/dist/esm5/internal/Subject.js
18313
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js
18314
+ var arrRemove = __webpack_require__(750);
18315
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/errorContext.js
18316
+ var errorContext = __webpack_require__(640);
18317
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subject.js
18318
18318
 
18319
18319
 
18320
18320
 
@@ -18480,7 +18480,7 @@ var AnonymousSubject = (function (_super) {
18480
18480
 
18481
18481
  /***/ },
18482
18482
 
18483
- /***/ 290
18483
+ /***/ 380
18484
18484
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
18485
18485
 
18486
18486
  "use strict";
@@ -18493,19 +18493,19 @@ __webpack_require__.d(__webpack_exports__, {
18493
18493
 
18494
18494
  // UNUSED EXPORTS: EMPTY_OBSERVER
18495
18495
 
18496
- // EXTERNAL MODULE: ../../../node_modules/tslib/tslib.es6.mjs
18497
- var tslib_es6 = __webpack_require__(823);
18498
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/util/isFunction.js
18499
- var isFunction = __webpack_require__(407);
18500
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/Subscription.js + 1 modules
18501
- var Subscription = __webpack_require__(226);
18502
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/config.js
18503
- var config = __webpack_require__(906);
18504
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js
18505
- var reportUnhandledError = __webpack_require__(174);
18506
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/util/noop.js
18507
- var noop = __webpack_require__(788);
18508
- ;// ../../../node_modules/rxjs/dist/esm5/internal/NotificationFactories.js
18496
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs
18497
+ var tslib_es6 = __webpack_require__(198);
18498
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isFunction.js
18499
+ var isFunction = __webpack_require__(41);
18500
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscription.js + 1 modules
18501
+ var Subscription = __webpack_require__(112);
18502
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/config.js
18503
+ var config = __webpack_require__(656);
18504
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js
18505
+ var reportUnhandledError = __webpack_require__(564);
18506
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/noop.js
18507
+ var noop = __webpack_require__(821);
18508
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/NotificationFactories.js
18509
18509
  var COMPLETE_NOTIFICATION = (function () { return createNotification('C', undefined, undefined); })();
18510
18510
  function errorNotification(error) {
18511
18511
  return createNotification('E', undefined, error);
@@ -18521,11 +18521,11 @@ function createNotification(kind, value, error) {
18521
18521
  };
18522
18522
  }
18523
18523
  //# sourceMappingURL=NotificationFactories.js.map
18524
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js
18525
- var timeoutProvider = __webpack_require__(438);
18526
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/util/errorContext.js
18527
- var errorContext = __webpack_require__(834);
18528
- ;// ../../../node_modules/rxjs/dist/esm5/internal/Subscriber.js
18524
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js
18525
+ var timeoutProvider = __webpack_require__(64);
18526
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/errorContext.js
18527
+ var errorContext = __webpack_require__(640);
18528
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscriber.js
18529
18529
 
18530
18530
 
18531
18531
 
@@ -18713,7 +18713,7 @@ var EMPTY_OBSERVER = {
18713
18713
 
18714
18714
  /***/ },
18715
18715
 
18716
- /***/ 226
18716
+ /***/ 112
18717
18717
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
18718
18718
 
18719
18719
  "use strict";
@@ -18725,13 +18725,13 @@ __webpack_require__.d(__webpack_exports__, {
18725
18725
  Uv: () => (/* binding */ isSubscription)
18726
18726
  });
18727
18727
 
18728
- // EXTERNAL MODULE: ../../../node_modules/tslib/tslib.es6.mjs
18729
- var tslib_es6 = __webpack_require__(823);
18730
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/util/isFunction.js
18731
- var isFunction = __webpack_require__(407);
18732
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js
18733
- var createErrorClass = __webpack_require__(525);
18734
- ;// ../../../node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js
18728
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs
18729
+ var tslib_es6 = __webpack_require__(198);
18730
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isFunction.js
18731
+ var isFunction = __webpack_require__(41);
18732
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js
18733
+ var createErrorClass = __webpack_require__(755);
18734
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js
18735
18735
 
18736
18736
  var UnsubscriptionError = (0,createErrorClass/* createErrorClass */.L)(function (_super) {
18737
18737
  return function UnsubscriptionErrorImpl(errors) {
@@ -18744,9 +18744,9 @@ var UnsubscriptionError = (0,createErrorClass/* createErrorClass */.L)(function
18744
18744
  };
18745
18745
  });
18746
18746
  //# sourceMappingURL=UnsubscriptionError.js.map
18747
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/util/arrRemove.js
18748
- var arrRemove = __webpack_require__(444);
18749
- ;// ../../../node_modules/rxjs/dist/esm5/internal/Subscription.js
18747
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js
18748
+ var arrRemove = __webpack_require__(750);
18749
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscription.js
18750
18750
 
18751
18751
 
18752
18752
 
@@ -18893,7 +18893,7 @@ function execFinalizer(finalizer) {
18893
18893
 
18894
18894
  /***/ },
18895
18895
 
18896
- /***/ 906
18896
+ /***/ 656
18897
18897
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
18898
18898
 
18899
18899
  "use strict";
@@ -18911,7 +18911,7 @@ var config = {
18911
18911
 
18912
18912
  /***/ },
18913
18913
 
18914
- /***/ 953
18914
+ /***/ 987
18915
18915
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
18916
18916
 
18917
18917
  "use strict";
@@ -18928,14 +18928,14 @@ var dateTimestampProvider = {
18928
18928
 
18929
18929
  /***/ },
18930
18930
 
18931
- /***/ 438
18931
+ /***/ 64
18932
18932
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
18933
18933
 
18934
18934
  "use strict";
18935
18935
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
18936
18936
  /* harmony export */ f: () => (/* binding */ timeoutProvider)
18937
18937
  /* harmony export */ });
18938
- /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(823);
18938
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(198);
18939
18939
 
18940
18940
  var timeoutProvider = {
18941
18941
  setTimeout: function (handler, timeout) {
@@ -18959,7 +18959,7 @@ var timeoutProvider = {
18959
18959
 
18960
18960
  /***/ },
18961
18961
 
18962
- /***/ 6
18962
+ /***/ 348
18963
18963
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
18964
18964
 
18965
18965
  "use strict";
@@ -18971,7 +18971,7 @@ var observable = (function () { return (typeof Symbol === 'function' && Symbol.o
18971
18971
 
18972
18972
  /***/ },
18973
18973
 
18974
- /***/ 444
18974
+ /***/ 750
18975
18975
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
18976
18976
 
18977
18977
  "use strict";
@@ -18988,7 +18988,7 @@ function arrRemove(arr, item) {
18988
18988
 
18989
18989
  /***/ },
18990
18990
 
18991
- /***/ 525
18991
+ /***/ 755
18992
18992
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
18993
18993
 
18994
18994
  "use strict";
@@ -19009,7 +19009,7 @@ function createErrorClass(createImpl) {
19009
19009
 
19010
19010
  /***/ },
19011
19011
 
19012
- /***/ 834
19012
+ /***/ 640
19013
19013
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
19014
19014
 
19015
19015
  "use strict";
@@ -19017,7 +19017,7 @@ function createErrorClass(createImpl) {
19017
19017
  /* harmony export */ Y: () => (/* binding */ errorContext),
19018
19018
  /* harmony export */ l: () => (/* binding */ captureError)
19019
19019
  /* harmony export */ });
19020
- /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(906);
19020
+ /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(656);
19021
19021
 
19022
19022
  var context = null;
19023
19023
  function errorContext(cb) {
@@ -19049,7 +19049,7 @@ function captureError(err) {
19049
19049
 
19050
19050
  /***/ },
19051
19051
 
19052
- /***/ 407
19052
+ /***/ 41
19053
19053
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
19054
19054
 
19055
19055
  "use strict";
@@ -19063,7 +19063,7 @@ function isFunction(value) {
19063
19063
 
19064
19064
  /***/ },
19065
19065
 
19066
- /***/ 788
19066
+ /***/ 821
19067
19067
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
19068
19068
 
19069
19069
  "use strict";
@@ -19075,15 +19075,15 @@ function noop() { }
19075
19075
 
19076
19076
  /***/ },
19077
19077
 
19078
- /***/ 174
19078
+ /***/ 564
19079
19079
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
19080
19080
 
19081
19081
  "use strict";
19082
19082
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
19083
19083
  /* harmony export */ m: () => (/* binding */ reportUnhandledError)
19084
19084
  /* harmony export */ });
19085
- /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(906);
19086
- /* harmony import */ var _scheduler_timeoutProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(438);
19085
+ /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(656);
19086
+ /* harmony import */ var _scheduler_timeoutProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64);
19087
19087
 
19088
19088
 
19089
19089
  function reportUnhandledError(err) {
@@ -19101,7 +19101,7 @@ function reportUnhandledError(err) {
19101
19101
 
19102
19102
  /***/ },
19103
19103
 
19104
- /***/ 752
19104
+ /***/ 63
19105
19105
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
19106
19106
 
19107
19107
  "use strict";
@@ -19149,7 +19149,7 @@ __webpack_require__.d(__webpack_exports__, {
19149
19149
  // UNUSED EXPORTS: AUTH_PROVIDER_TYPES, AfterKeyNotSupportedError, AllMetadata, AllMetadataArrays, ApplicationEntityInfo, ApplicationInfo, ApplicationSettingInfo, AuditLogTypeInfo, AuthorizationEvaluator, AuthorizationInfo, AuthorizationRoleInfo, AuthorizationRoleType, BaseEnginePropertyConfig, BaseEngineRegistry, BaseEntityAIActionParams, BaseEntityEvent, BaseEntitySaveQueue, BaseRemotableOperation, CacheCategory, ClearAllDataHooks, CodeNameFromString, ColumnDescriptor, CommonStopWords, ComputeRRF, Concurrent, ConsoleColor, DataObjectParams, DataObjectRelatedEntityParam, DataSnapshot, DataTable, DatabaseProviderBase, EntityDeleteOptions, EntityDependency, EntityDocumentTypeInfo, EntityField, EntityFieldGraphQLType, EntityFieldInfo, EntityFieldRules, EntityFieldValueInfo, EntityFieldValueListType, EntityInfo, EntityMergeOptions, EntityOrganicKeyInfo, EntityOrganicKeyRelatedEntityInfo, EntityPermissionEffect, EntityPermissionInfo, EntityRecordNameInput, EntityRecordNameResult, EntityRelationshipInfo, EntitySaveOptions, EntitySettingInfo, EntityUserPermissionInfo, ExplorerNavigationItem, ExternalDataSourceReadRouter, ExtractActualDefaultValue, FieldValueCollection, FormatConsoleMessage, FormatFileMessage, FormatValue, GeneratedFormSectionType, GetDataHooks, GetEntityNameFromSchemaAndViewString, GridColumnDescriptor, IsKeysetPaginationOrderableType, KEYSET_PAGINATION_ORDERABLE_PK_TYPES, KeyValuePair, LibraryInfo, LoadOnStartup, LocalCacheManager, LogDebug, MJColumnDescriptor, MJ_CORE_SCHEMA, MetadataFromSimpleObject, MetadataFromSimpleObjectWithoutUser, MetadataInfo, NormalizeToTables, ParsePlatformVariants, PermissionConstrainedError, PotentialDuplicate, PotentialDuplicateRequest, PotentialDuplicateResponse, PotentialDuplicateResult, ProjectRowsToFields, QueryCache, QueryCategoryInfo, QueryDependencyInfo, QueryEntityInfo, QueryExecutionSpec, QueryFieldInfo, QueryInfo, QueryParameterInfo, QueryPermissionInfo, QueryResultEnricherBase, QuerySQLInfo, RUN_QUERY_SQL_FILTERS, RUN_QUERY_SQL_FILTERS_WITH_IMPLEMENTATIONS, RecordChange, RecordChangeStatus, RecordDependency, RecordMergeDetailResult, RecordMergeRequest, RecordMergeResult, RegisterDataHook, ResolvePlatformVariant, ResolveStartupMode, RoleInfo, RowLevelSecurityFilterInfo, RunMaybeSerial, RunQuerySQLFilterManager, RunReport, RunViewParams, SQLDialectInfo, SQLFullType, SQLMaxLength, STARTUP_MODE_ENV_VAR, SetProductionStatus, SetVerboseLogging, SeverityType, StripContainingParens, StripSingleQuotes, StripStopWords, StripUnicodePrefix, TelemetryLevelValue, TelemetryManager, TotalAvailableRowCount, TotalRowCount, TransactionPreprocessingItem, TransactionVariable, TypeScriptTypeFromSQLType, TypeScriptTypeFromSQLTypeWithNullableOption, UpdateCurrentConsoleLine, UpdateCurrentConsoleProgress, dispatchRemoteOperationInProcess, getAnsiColorCode, getRunQuerySQLFilter, getRunQuerySQLFilterNames, getSchemaPrefix, isAIParams, isBatchRunQueryParams, isBatchRunViewParams, isCacheParams, isEngineParams, isNetworkParams, isSingleRunQueryParams, isSingleRunViewParams, resolveQueryResultEnricher, sanitizeGraphQLName
19150
19150
 
19151
19151
  // EXTERNAL MODULE: ../../MJGlobal/dist/index.js + 24 modules
19152
- var dist = __webpack_require__(198);
19152
+ var dist = __webpack_require__(899);
19153
19153
  ;// ../../MJCore/dist/generic/dataHooks.js
19154
19154
  /* unused harmony import specifier */ var GetGlobalObjectStore;
19155
19155
  /**
@@ -19204,8 +19204,8 @@ function ClearAllDataHooks() {
19204
19204
  gos[DATA_HOOKS_KEY] = {};
19205
19205
  }
19206
19206
  }
19207
- // EXTERNAL MODULE: ../../../node_modules/debug/src/browser.js
19208
- var browser = __webpack_require__(503);
19207
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/debug@4.4.3_supports-color@5.5.0/node_modules/debug/src/browser.js
19208
+ var browser = __webpack_require__(332);
19209
19209
  ;// ../../MJCore/dist/generic/logging.js
19210
19210
  function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
19211
19211
  function _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."); }
@@ -22626,8 +22626,16 @@ function ResolvePlatformVariant(variants, fieldName, platform) {
22626
22626
  }
22627
22627
  ;// ../../MJCore/dist/generic/securityInfo.js
22628
22628
  function securityInfo_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = securityInfo_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; } } }; }
22629
+ function securityInfo_toConsumableArray(r) { return securityInfo_arrayWithoutHoles(r) || securityInfo_iterableToArray(r) || securityInfo_unsupportedIterableToArray(r) || securityInfo_nonIterableSpread(); }
22630
+ function securityInfo_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."); }
22631
+ function securityInfo_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
22632
+ function securityInfo_arrayWithoutHoles(r) { if (Array.isArray(r)) return securityInfo_arrayLikeToArray(r); }
22633
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || securityInfo_unsupportedIterableToArray(r, e) || _nonIterableRest(); }
22634
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
22629
22635
  function securityInfo_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return securityInfo_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) ? securityInfo_arrayLikeToArray(r, a) : void 0; } }
22630
22636
  function securityInfo_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; }
22637
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
22638
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
22631
22639
  function securityInfo_typeof(o) { "@babel/helpers - typeof"; return securityInfo_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; }, securityInfo_typeof(o); }
22632
22640
  function securityInfo_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
22633
22641
  function securityInfo_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, securityInfo_toPropertyKey(o.key), o); } }
@@ -22753,6 +22761,8 @@ var UserInfo = /*#__PURE__*/function (_BaseInfo) {
22753
22761
  _this.EmployeeSupervisorEmail = null;
22754
22762
  _this._TenantContext = undefined;
22755
22763
  _this._MagicLinkScope = undefined;
22764
+ _this._APIKeyActingContext = undefined;
22765
+ _this._APIKeyRowFilters = undefined;
22756
22766
  _this._ReturningVisitorContext = undefined;
22757
22767
  _this._WidgetGuestContext = undefined;
22758
22768
  _this._IsMagicLinkAnonymous = false;
@@ -22799,6 +22809,41 @@ var UserInfo = /*#__PURE__*/function (_BaseInfo) {
22799
22809
  set: function set(value) {
22800
22810
  this._MagicLinkScope = value;
22801
22811
  }
22812
+ /**
22813
+ * Per-request acting context for an API-key session. Set server-side in the
22814
+ * API-key auth path from an authenticated identity, ON A CLONED UserInfo
22815
+ * (the resolved userRecord may be the shared UserCache instance — stamping
22816
+ * it in place leaks one session's scope to every concurrent session of the
22817
+ * same user). Consumed by API-key row filters via the {{Acting*}} tokens.
22818
+ * Same getter/setter (non-enumerable accessor) rationale as TenantContext —
22819
+ * not a DB/GraphQL field, and it must NEVER be exposed via a resolver.
22820
+ */
22821
+ }, {
22822
+ key: "APIKeyActingContext",
22823
+ get: function get() {
22824
+ return this._APIKeyActingContext;
22825
+ },
22826
+ set: function set(value) {
22827
+ this._APIKeyActingContext = value;
22828
+ }
22829
+ /**
22830
+ * Row-filter bindings for the API key this session authenticated with,
22831
+ * resolved per request from the key's scope rules and stamped on the CLONED
22832
+ * per-request UserInfo. Consumed by
22833
+ * {@link EntityInfo.GetEffectiveRowFilterWhereClause}, which AND-composes
22834
+ * each matching binding's filter with role RLS — outside the role-RLS
22835
+ * exemption. Plain data on purpose: MJCore cannot depend on the APIKeys
22836
+ * packages, so the bridge is this carrier. Never a DB/GraphQL field; never
22837
+ * exposed to or settable by a client.
22838
+ */
22839
+ }, {
22840
+ key: "APIKeyRowFilters",
22841
+ get: function get() {
22842
+ return this._APIKeyRowFilters;
22843
+ },
22844
+ set: function set(value) {
22845
+ this._APIKeyRowFilters = value;
22846
+ }
22802
22847
  /**
22803
22848
  * Returning-visitor context for a public web-widget guest session. Set at request time from the
22804
22849
  * verified session token's claims (the widget mint embeds the resolved VisitorKey / prior
@@ -23010,7 +23055,7 @@ var RowLevelSecurityFilterInfo = /*#__PURE__*/function (_BaseInfo4) {
23010
23055
  */
23011
23056
  }, {
23012
23057
  key: "MarkupFilterText",
23013
- value: function MarkupFilterText(user) {
23058
+ value: function MarkupFilterText(user, options) {
23014
23059
  var ret = this.FilterText;
23015
23060
  if (user) {
23016
23061
  var _scope$ResourceID, _scope$ResourceType;
@@ -23018,23 +23063,72 @@ var RowLevelSecurityFilterInfo = /*#__PURE__*/function (_BaseInfo4) {
23018
23063
  for (var i = 0; i < keys.length; i++) {
23019
23064
  var key = keys[i];
23020
23065
  var val = user[key];
23021
- if (val !== null && securityInfo_typeof(val) !== 'object') {
23022
- ret = ret.replace(new RegExp("{{User".concat(key, "}}"), 'g'), String(val));
23066
+ // `val != null` deliberately excludes BOTH null and undefined. The old
23067
+ // `val !== null` guard let `undefined` through, substituting the literal
23068
+ // string "undefined" — which made negation-shaped filters
23069
+ // (Col <> '{{UserX}}') match every row. Undefined is unresolved, period.
23070
+ if (val != null && securityInfo_typeof(val) !== 'object') {
23071
+ // Escape embedded quotes in the substituted value: a user-sourced value
23072
+ // containing an apostrophe must not break (or rewrite) the predicate —
23073
+ // the same defect class as the tenant-header injection, in the engine
23074
+ // every RLS filter depends on.
23075
+ ret = ret.replace(new RegExp("{{User".concat(key, "}}"), 'g'), String(val).replace(/'/g, "''"));
23023
23076
  }
23024
23077
  }
23025
23078
  // Per-session magic-link resource scope. Fail-closed: an absent scope resolves
23026
23079
  // to '' so a resource-pinned predicate (e.g. ID = '{{ScopeResourceID}}') matches
23027
23080
  // NO rows rather than leaking — a session without the scope sees nothing.
23028
23081
  var scope = user.MagicLinkScope;
23029
- ret = ret.replace(/\{\{ScopeResourceID\}\}/g, (_scope$ResourceID = scope === null || scope === void 0 ? void 0 : scope.ResourceID) !== null && _scope$ResourceID !== void 0 ? _scope$ResourceID : '');
23030
- ret = ret.replace(/\{\{ScopeResourceType\}\}/g, (_scope$ResourceType = scope === null || scope === void 0 ? void 0 : scope.ResourceType) !== null && _scope$ResourceType !== void 0 ? _scope$ResourceType : '');
23082
+ ret = ret.replace(/\{\{ScopeResourceID\}\}/g, ((_scope$ResourceID = scope === null || scope === void 0 ? void 0 : scope.ResourceID) !== null && _scope$ResourceID !== void 0 ? _scope$ResourceID : '').replace(/'/g, "''"));
23083
+ ret = ret.replace(/\{\{ScopeResourceType\}\}/g, ((_scope$ResourceType = scope === null || scope === void 0 ? void 0 : scope.ResourceType) !== null && _scope$ResourceType !== void 0 ? _scope$ResourceType : '').replace(/'/g, "''"));
23084
+ ret = this.resolveActingTokens(ret, user);
23031
23085
  }
23032
- var unresolvedMatch = ret.match(/\{\{User\w+\}\}/);
23086
+ var unresolvedMatch = ret.match(/\{\{(?:User|Acting)\w+\}\}/);
23033
23087
  if (unresolvedMatch) {
23088
+ if ((options === null || options === void 0 ? void 0 : options.unresolvedBehavior) === 'match-nothing') {
23089
+ // API-key row filters fail closed AND diagnosably: '' substitution is only
23090
+ // safe for equality shapes (Col <> '' or LIKE '%%' match everything), so an
23091
+ // unresolved token collapses the ENTIRE filter to a predicate that matches
23092
+ // nothing regardless of the expression's operators.
23093
+ LogError('Row filter has unresolved token after markup — resolving filter to (1=0): ' + unresolvedMatch[0] + ' in filter: ' + this.FilterText);
23094
+ return '(1=0)';
23095
+ }
23034
23096
  LogError('RLS filter has unresolved token after markup: ' + unresolvedMatch[0] + ' in filter: ' + this.FilterText);
23035
23097
  }
23036
23098
  return ret;
23037
23099
  }
23100
+ /**
23101
+ * Resolves the `{{Acting*}}` token family from {@link UserInfo.APIKeyActingContext}.
23102
+ * Scalars substitute escaped; the list token renders as a canonical (sorted),
23103
+ * per-element-escaped, quoted list for use inside `IN (...)`. Sorting is not
23104
+ * cosmetic: the resolved clause participates in the RunView cache fingerprint,
23105
+ * so the same set must always produce the same clause bytes (INV-2). An absent
23106
+ * context or empty list leaves tokens unresolved, which the caller's
23107
+ * unresolved-token handling turns into a match-nothing filter for key filters.
23108
+ */
23109
+ }, {
23110
+ key: "resolveActingTokens",
23111
+ value: function resolveActingTokens(text, user) {
23112
+ var acting = user.APIKeyActingContext;
23113
+ var ret = text;
23114
+ var scalars = [['ActingOrganizationID', acting === null || acting === void 0 ? void 0 : acting.ActingOrganizationID], ['ActingPersonID', acting === null || acting === void 0 ? void 0 : acting.ActingPersonID], ['ActingScopeID', acting === null || acting === void 0 ? void 0 : acting.ActingScopeID]];
23115
+ for (var _i = 0, _scalars = scalars; _i < _scalars.length; _i++) {
23116
+ var _scalars$_i = _slicedToArray(_scalars[_i], 2),
23117
+ token = _scalars$_i[0],
23118
+ value = _scalars$_i[1];
23119
+ if (value != null && value.length > 0) {
23120
+ ret = ret.replace(new RegExp("\\{\\{".concat(token, "\\}\\}"), 'g'), value.replace(/'/g, "''"));
23121
+ }
23122
+ }
23123
+ var companies = acting === null || acting === void 0 ? void 0 : acting.ActingCompanyIDs;
23124
+ if (companies && companies.length > 0) {
23125
+ var rendered = securityInfo_toConsumableArray(companies).sort().map(function (c) {
23126
+ return "'".concat(c.replace(/'/g, "''"), "'");
23127
+ }).join(',');
23128
+ ret = ret.replace(/\{\{ActingCompanyIDs\}\}/g, rendered);
23129
+ }
23130
+ return ret;
23131
+ }
23038
23132
  }]);
23039
23133
  }(BaseInfo);
23040
23134
  /**
@@ -23301,10 +23395,10 @@ var AuditLogTypeInfo = /*#__PURE__*/function (_BaseInfo7) {
23301
23395
  ;// ../../MJCore/dist/generic/compositeKey.js
23302
23396
  function compositeKey_typeof(o) { "@babel/helpers - typeof"; return compositeKey_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; }, compositeKey_typeof(o); }
23303
23397
  var _FieldValueCollection;
23304
- function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || compositeKey_unsupportedIterableToArray(r, e) || _nonIterableRest(); }
23305
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
23306
- function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
23307
- function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
23398
+ function compositeKey_slicedToArray(r, e) { return compositeKey_arrayWithHoles(r) || compositeKey_iterableToArrayLimit(r, e) || compositeKey_unsupportedIterableToArray(r, e) || compositeKey_nonIterableRest(); }
23399
+ function compositeKey_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
23400
+ function compositeKey_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
23401
+ function compositeKey_arrayWithHoles(r) { if (Array.isArray(r)) return r; }
23308
23402
  function compositeKey_callSuper(t, o, e) { return o = compositeKey_getPrototypeOf(o), compositeKey_possibleConstructorReturn(t, compositeKey_isNativeReflectConstruct() ? Reflect.construct(o, e || [], compositeKey_getPrototypeOf(t).constructor) : o.apply(t, e)); }
23309
23403
  function compositeKey_possibleConstructorReturn(t, e) { if (e && ("object" == compositeKey_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return compositeKey_assertThisInitialized(t); }
23310
23404
  function compositeKey_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
@@ -23788,7 +23882,7 @@ var CompositeKey = /*#__PURE__*/function (_FieldValueCollection2) {
23788
23882
  try {
23789
23883
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
23790
23884
  var _kvPair$Value, _sourcekvPair$Value;
23791
- var _step3$value = _slicedToArray(_step3.value, 2),
23885
+ var _step3$value = compositeKey_slicedToArray(_step3.value, 2),
23792
23886
  index = _step3$value[0],
23793
23887
  kvPair = _step3$value[1];
23794
23888
  var sourcekvPair = this.KeyValuePairs[index];
@@ -26787,6 +26881,30 @@ var EntityInfo = /*#__PURE__*/function (_BaseInfo0) {
26787
26881
  * Whether the base view is generated by CodeGen (true) or manually created (false)
26788
26882
  */
26789
26883
  _this0.BaseViewGenerated = null;
26884
+ /**
26885
+ * When set, CodeGen generates the entity's full base view under THIS name instead of
26886
+ * {@link BaseView}, and the application owns `BaseView` — which is expected to wrap it:
26887
+ *
26888
+ * ```sql
26889
+ * CREATE VIEW vwOrderHeaders AS
26890
+ * SELECT g.*, CASE WHEN ... END AS IsOverdue
26891
+ * FROM vwOrderHeadersGenerated g
26892
+ * ```
26893
+ *
26894
+ * This is how an entity gets a custom base view WITHOUT inheriting the generated SQL. With
26895
+ * `BaseViewGenerated = 0` alone the application takes over the whole view — every related-entity
26896
+ * display join, the geo join, the recursive root-ID apply — and must hand-maintain it forever;
26897
+ * a foreign key added later then silently never appears, because nothing regenerates the join.
26898
+ * Naming an inner view keeps all of that regenerating underneath a thin, reviewable custom layer.
26899
+ *
26900
+ * NULL (the default, and every pre-existing entity) preserves the original behaviour exactly:
26901
+ * `BaseViewGenerated` alone decides whether CodeGen writes `BaseView`, and there is no second view.
26902
+ *
26903
+ * `BaseView` remains the public surface either way — field discovery, permissions and the
26904
+ * generated CRUD procedures all target it, so a column added by the custom layer becomes a
26905
+ * first-class virtual `EntityField`.
26906
+ */
26907
+ _this0.GeneratedBaseViewName = null;
26790
26908
  /**
26791
26909
  * Database schema that contains this entity's table and view
26792
26910
  */
@@ -26871,6 +26989,47 @@ var EntityInfo = /*#__PURE__*/function (_BaseInfo0) {
26871
26989
  * Global flag controlling whether records can be deleted via API
26872
26990
  */
26873
26991
  _this0.AllowDeleteAPI = false;
26992
+ /**
26993
+ * Whether rows may be INSERTed by SQL that does not go through {@link BaseEntity}.Save() —
26994
+ * bulk loads, ETL/integration sync, or rows created as a side effect of a stored procedure.
26995
+ *
26996
+ * `false` (the default, and every entity that has not opted in) means all inserts are expected
26997
+ * to flow through `BaseEntity`, which is the only path where record-change tracking, entity
26998
+ * actions, validation and cache invalidation actually run.
26999
+ *
27000
+ * **This DECLARES intent; it enforces nothing.** No constraint, trigger or grant prevents
27001
+ * anyone from executing SQL. It exists so the code paths and tooling that *choose* to honour
27002
+ * the platform contract — bulk/ETL and integration sync, record-set processing, and generators
27003
+ * or agents authoring SQL — have one authoritative answer instead of tribal knowledge.
27004
+ *
27005
+ * A database CHECK requires {@link TrackRecordChanges} and {@link TrustServerCacheCompletely}
27006
+ * to both be `false` when this is set, because a direct insert produces neither an audit row
27007
+ * nor a cache-invalidation event — leaving either on yields an audit trail that looks complete
27008
+ * but is not, and a server cache that serves stale rows indefinitely.
27009
+ */
27010
+ _this0.AllowDirectSQLInsert = false;
27011
+ /**
27012
+ * Whether rows may be UPDATEd by SQL that does not go through {@link BaseEntity}.Save() —
27013
+ * bulk backfills, integration sync, or maintenance routines.
27014
+ *
27015
+ * `false` (the default) means all updates are expected to flow through `BaseEntity`. See
27016
+ * {@link AllowDirectSQLInsert} for the full rationale, the "declares, does not enforce"
27017
+ * caveat, and the `TrackRecordChanges` / `TrustServerCacheCompletely` requirement.
27018
+ */
27019
+ _this0.AllowDirectSQLUpdate = false;
27020
+ /**
27021
+ * Whether rows may be DELETEd by SQL that does not go through {@link BaseEntity}.Delete() —
27022
+ * purge and retention routines, or integration sync reconciling against a remote source.
27023
+ *
27024
+ * `false` (the default) means all deletes are expected to flow through `BaseEntity`. See
27025
+ * {@link AllowDirectSQLInsert} for the full rationale and the `TrackRecordChanges` /
27026
+ * {@link TrustServerCacheCompletely} requirement.
27027
+ *
27028
+ * Additionally requires {@link DeleteType} to be `'Hard'`: a direct `DELETE` removes the row
27029
+ * outright rather than setting `DeletedAt`, so sanctioning it on a soft-delete entity would
27030
+ * quietly defeat soft delete. A database CHECK refuses the combination.
27031
+ */
27032
+ _this0.AllowDirectSQLDelete = false;
26874
27033
  /**
26875
27034
  * If true, uses a custom resolver for GraphQL operations instead of standard CRUD
26876
27035
  */
@@ -27210,8 +27369,44 @@ var EntityInfo = /*#__PURE__*/function (_BaseInfo0) {
27210
27369
  }
27211
27370
  entityInfo_inherits(EntityInfo, _BaseInfo0);
27212
27371
  return entityInfo_createClass(EntityInfo, [{
27213
- key: "FieldByName",
27214
- value:
27372
+ key: "GeneratedViewName",
27373
+ get:
27374
+ /**
27375
+ * The view CodeGen actually WRITES for this entity.
27376
+ *
27377
+ * Normally {@link BaseView}. When {@link GeneratedBaseViewName} is set, the generated SQL goes
27378
+ * there instead and `BaseView` belongs to the application, which layers over it — see
27379
+ * {@link HasLayeredBaseView}.
27380
+ *
27381
+ * Resolved in ONE place because the two names must never drift: several call sites decide where
27382
+ * to write the view, what to call the emitted file, and which object to refresh, and a
27383
+ * disagreement between any two of them produces a view that exists under a name nothing reads.
27384
+ *
27385
+ * Derived FROM {@link HasLayeredBaseView} rather than re-testing `GeneratedBaseViewName`, so the
27386
+ * two getters cannot disagree by construction. Testing the raw column here would diverge on a
27387
+ * name that differs from `BaseView` only by case: `HasLayeredBaseView` would say "not layered"
27388
+ * (it compares case-insensitively, because SQL Server object names are) while this getter
27389
+ * returned the differently-cased string — leaving CodeGen writing to one object while every
27390
+ * layering-gated code path believed there was no second view at all.
27391
+ */
27392
+ function get() {
27393
+ if (this.HasLayeredBaseView) return this.GeneratedBaseViewName.trim();
27394
+ return this.BaseView ? this.BaseView : "vw".concat(this.CodeName);
27395
+ }
27396
+ /**
27397
+ * True when this entity has a generated inner view with an application-owned `BaseView` on top.
27398
+ *
27399
+ * In that arrangement CodeGen still generates everything — related-entity display fields, geo
27400
+ * columns, recursive root-ID columns — into {@link GeneratedViewName}, so the custom layer stays
27401
+ * thin and does not go stale when the schema gains a foreign key.
27402
+ */
27403
+ }, {
27404
+ key: "HasLayeredBaseView",
27405
+ get: function get() {
27406
+ var _this$GeneratedBaseVi, _this$BaseView;
27407
+ var layered = (_this$GeneratedBaseVi = this.GeneratedBaseViewName) === null || _this$GeneratedBaseVi === void 0 ? void 0 : _this$GeneratedBaseVi.trim();
27408
+ return !!layered && layered.toLowerCase() !== ((_this$BaseView = this.BaseView) !== null && _this$BaseView !== void 0 ? _this$BaseView : '').toLowerCase();
27409
+ }
27215
27410
  /**
27216
27411
  * O(1) case-insensitive field lookup by name. Use this instead of `Fields.find(f => f.Name === name)`
27217
27412
  * on hot paths — it builds a lowercased+trimmed `Map` once (lazily) and reuses it.
@@ -27223,7 +27418,9 @@ var EntityInfo = /*#__PURE__*/function (_BaseInfo0) {
27223
27418
  * @param name field name (matched case-insensitively, whitespace-trimmed)
27224
27419
  * @returns the matching EntityFieldInfo, or undefined if not found
27225
27420
  */
27226
- function FieldByName(name) {
27421
+ }, {
27422
+ key: "FieldByName",
27423
+ value: function FieldByName(name) {
27227
27424
  if (name == null) return undefined;
27228
27425
  if (this._fieldByNameMap === null) {
27229
27426
  var map = new Map();
@@ -27792,6 +27989,12 @@ var EntityInfo = /*#__PURE__*/function (_BaseInfo0) {
27792
27989
  }
27793
27990
  /**
27794
27991
  * Generates a where clause for SQL filtering for a given entity for a given user and permission type. If there is no RLS for a given entity or the user is exempt from RLS for the entity, a blank string is returned.
27992
+ *
27993
+ * @deprecated ROLE RLS ONLY — this method is subject to the role-RLS exemption and
27994
+ * silently omits API-key row filters, so a caller reaching for this familiar name gets
27995
+ * a clause that is fail-open for filtered API-key sessions. Use
27996
+ * {@link GetEffectiveRowFilterWhereClause}, which composes every filter layer. A repo
27997
+ * test asserts no non-test caller exists outside that method.
27795
27998
  * @param user
27796
27999
  * @param type
27797
28000
  * @param returnPrefix
@@ -27816,6 +28019,80 @@ var EntityInfo = /*#__PURE__*/function (_BaseInfo0) {
27816
28019
  return sRLSSQL.length > 0 ? "".concat(returnPrefix && returnPrefix.length > 0 ? returnPrefix + ' ' : '').concat(sRLSSQL) : '';
27817
28020
  } else return '';
27818
28021
  }
28022
+ /**
28023
+ * The EFFECTIVE row-filter clause for a user + permission type: role RLS (subject to the
28024
+ * role exemption) AND the API-key row filters carried on the session (NOT subject to the
28025
+ * role exemption — a key ceiling exists precisely to bind principals whose roles are
28026
+ * unrestricted; see UserExemptFromRowLevelSecurity, which exempts off the mere presence
28027
+ * of a filter-less permission row). Composition: OR within the role layer (roles are
28028
+ * additive), AND across layers (no layer can widen another). Returns '' only when no
28029
+ * layer contributes.
28030
+ *
28031
+ * This is THE method every enforcement point must call. Deterministic by construction —
28032
+ * key-filter clauses render in FilterID order and list tokens sort their elements —
28033
+ * because the identical clause participates in the RunView cache fingerprint (INV-2):
28034
+ * any nondeterminism silently splits or merges cache slots.
28035
+ *
28036
+ * The application-ceiling layer (APIApplicationScope.RowFilterID) is deferred to v2 by
28037
+ * design decision; the column ships unused and the term composes here when it lands.
28038
+ */
28039
+ }, {
28040
+ key: "GetEffectiveRowFilterWhereClause",
28041
+ value: function GetEffectiveRowFilterWhereClause(user, type, returnPrefix) {
28042
+ var layers = [];
28043
+ var roleClause = this.GetUserRowLevelSecurityWhereClause(user, type, '');
28044
+ if (roleClause && roleClause.length > 0) {
28045
+ layers.push("(".concat(roleClause, ")"));
28046
+ }
28047
+ var keyClause = this.getAPIKeyRowFilterClause(user, type);
28048
+ if (keyClause && keyClause.length > 0) {
28049
+ layers.push("(".concat(keyClause, ")"));
28050
+ }
28051
+ if (layers.length === 0) {
28052
+ return '';
28053
+ }
28054
+ var sql = layers.join(' AND ');
28055
+ return "".concat(returnPrefix && returnPrefix.length > 0 ? returnPrefix + ' ' : '').concat(sql);
28056
+ }
28057
+ /**
28058
+ * Resolves the API-key row-filter clause for this entity + permission type from the
28059
+ * bindings stamped on the session UserInfo. Multiple matching bindings AND together
28060
+ * (most-restrictive-wins — an unfiltered grant elsewhere cannot cancel a filter).
28061
+ * Fail-closed at every edge: a binding whose filter is missing from metadata (dangling
28062
+ * or unloaded) contributes `(1=0)`, and unresolved tokens inside a filter collapse it
28063
+ * to `(1=0)` via the match-nothing markup mode.
28064
+ */
28065
+ }, {
28066
+ key: "getAPIKeyRowFilterClause",
28067
+ value: function getAPIKeyRowFilterClause(user, type) {
28068
+ var _this14 = this;
28069
+ var bindings = user === null || user === void 0 ? void 0 : user.APIKeyRowFilters;
28070
+ if (!bindings || bindings.length === 0) {
28071
+ return '';
28072
+ }
28073
+ var mine = bindings.filter(function (b) {
28074
+ return (0,dist/* UUIDsEqual */.jd)(b.EntityID, _this14.ID) && b.PermissionType === type;
28075
+ });
28076
+ if (mine.length === 0) {
28077
+ return '';
28078
+ }
28079
+ var clauses = entityInfo_toConsumableArray(mine).sort(function (a, b) {
28080
+ return a.FilterID.localeCompare(b.FilterID);
28081
+ }) // deterministic order for the cache fingerprint (INV-2)
28082
+ .map(function (b) {
28083
+ var filter = Metadata.Provider.RowLevelSecurityFilters.find(function (f) {
28084
+ return (0,dist/* UUIDsEqual */.jd)(f.ID, b.FilterID);
28085
+ }); // global-provider-ok: same resolution path as RLSFilter() above — stateless info class proxying to global metadata
28086
+ if (!filter) {
28087
+ LogError("API-key row filter ".concat(b.FilterID, " for entity ").concat(_this14.Name, " not found in metadata \u2014 resolving to (1=0)"));
28088
+ return '(1=0)';
28089
+ }
28090
+ return "(".concat(filter.MarkupFilterText(user, {
28091
+ unresolvedBehavior: 'match-nothing'
28092
+ }), ")");
28093
+ });
28094
+ return clauses.join(' AND ');
28095
+ }
27819
28096
  /**
27820
28097
  * Returns a RunViewParams object that is setup to filter the related entity for the provided record
27821
28098
  * @param record
@@ -28484,11 +28761,11 @@ var AllMetadata = /*#__PURE__*/interfaces_createClass(function AllMetadata() {
28484
28761
  this.AllLibraries = [];
28485
28762
  this.AllExplorerNavigationItems = [];
28486
28763
  });
28487
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/Subject.js + 1 modules
28488
- var Subject = __webpack_require__(49);
28489
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js
28490
- var createErrorClass = __webpack_require__(525);
28491
- ;// ../../../node_modules/rxjs/dist/esm5/internal/util/EmptyError.js
28764
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subject.js + 1 modules
28765
+ var Subject = __webpack_require__(291);
28766
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js
28767
+ var createErrorClass = __webpack_require__(755);
28768
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/EmptyError.js
28492
28769
 
28493
28770
  var EmptyError = (0,createErrorClass/* createErrorClass */.L)(function (_super) {
28494
28771
  return function EmptyErrorImpl() {
@@ -28498,9 +28775,9 @@ var EmptyError = (0,createErrorClass/* createErrorClass */.L)(function (_super)
28498
28775
  };
28499
28776
  });
28500
28777
  //# sourceMappingURL=EmptyError.js.map
28501
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/Subscriber.js + 1 modules
28502
- var Subscriber = __webpack_require__(290);
28503
- ;// ../../../node_modules/rxjs/dist/esm5/internal/firstValueFrom.js
28778
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscriber.js + 1 modules
28779
+ var Subscriber = __webpack_require__(380);
28780
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/firstValueFrom.js
28504
28781
 
28505
28782
 
28506
28783
  function firstValueFrom(source, config) {
@@ -28525,15 +28802,15 @@ function firstValueFrom(source, config) {
28525
28802
  });
28526
28803
  }
28527
28804
  //# sourceMappingURL=firstValueFrom.js.map
28528
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/util/isFunction.js
28529
- var isFunction = __webpack_require__(407);
28530
- ;// ../../../node_modules/rxjs/dist/esm5/internal/util/isScheduler.js
28805
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isFunction.js
28806
+ var isFunction = __webpack_require__(41);
28807
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isScheduler.js
28531
28808
 
28532
28809
  function isScheduler(value) {
28533
28810
  return value && (0,isFunction/* isFunction */.T)(value.schedule);
28534
28811
  }
28535
28812
  //# sourceMappingURL=isScheduler.js.map
28536
- ;// ../../../node_modules/rxjs/dist/esm5/internal/util/args.js
28813
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/args.js
28537
28814
  /* unused harmony import specifier */ var args_isFunction;
28538
28815
 
28539
28816
 
@@ -28550,40 +28827,40 @@ function popNumber(args, defaultValue) {
28550
28827
  return typeof last(args) === 'number' ? args.pop() : defaultValue;
28551
28828
  }
28552
28829
  //# sourceMappingURL=args.js.map
28553
- // EXTERNAL MODULE: ../../../node_modules/tslib/tslib.es6.mjs
28554
- var tslib_es6 = __webpack_require__(823);
28555
- ;// ../../../node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js
28830
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs
28831
+ var tslib_es6 = __webpack_require__(198);
28832
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js
28556
28833
  var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });
28557
28834
  //# sourceMappingURL=isArrayLike.js.map
28558
- ;// ../../../node_modules/rxjs/dist/esm5/internal/util/isPromise.js
28835
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isPromise.js
28559
28836
 
28560
28837
  function isPromise(value) {
28561
28838
  return (0,isFunction/* isFunction */.T)(value === null || value === void 0 ? void 0 : value.then);
28562
28839
  }
28563
28840
  //# sourceMappingURL=isPromise.js.map
28564
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/Observable.js + 2 modules
28565
- var Observable = __webpack_require__(600);
28566
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/symbol/observable.js
28567
- var observable = __webpack_require__(6);
28568
- ;// ../../../node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js
28841
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Observable.js + 2 modules
28842
+ var Observable = __webpack_require__(942);
28843
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/symbol/observable.js
28844
+ var observable = __webpack_require__(348);
28845
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js
28569
28846
 
28570
28847
 
28571
28848
  function isInteropObservable(input) {
28572
28849
  return (0,isFunction/* isFunction */.T)(input[observable/* observable */.s]);
28573
28850
  }
28574
28851
  //# sourceMappingURL=isInteropObservable.js.map
28575
- ;// ../../../node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js
28852
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js
28576
28853
 
28577
28854
  function isAsyncIterable(obj) {
28578
28855
  return Symbol.asyncIterator && (0,isFunction/* isFunction */.T)(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);
28579
28856
  }
28580
28857
  //# sourceMappingURL=isAsyncIterable.js.map
28581
- ;// ../../../node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js
28858
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js
28582
28859
  function createInvalidObservableTypeError(input) {
28583
28860
  return new TypeError("You provided " + (input !== null && typeof input === 'object' ? 'an invalid object' : "'" + input + "'") + " where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.");
28584
28861
  }
28585
28862
  //# sourceMappingURL=throwUnobservableError.js.map
28586
- ;// ../../../node_modules/rxjs/dist/esm5/internal/symbol/iterator.js
28863
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/symbol/iterator.js
28587
28864
  function getSymbolIterator() {
28588
28865
  if (typeof Symbol !== 'function' || !Symbol.iterator) {
28589
28866
  return '@@iterator';
@@ -28592,14 +28869,14 @@ function getSymbolIterator() {
28592
28869
  }
28593
28870
  var iterator_iterator = getSymbolIterator();
28594
28871
  //# sourceMappingURL=iterator.js.map
28595
- ;// ../../../node_modules/rxjs/dist/esm5/internal/util/isIterable.js
28872
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isIterable.js
28596
28873
 
28597
28874
 
28598
28875
  function isIterable(input) {
28599
28876
  return (0,isFunction/* isFunction */.T)(input === null || input === void 0 ? void 0 : input[iterator_iterator]);
28600
28877
  }
28601
28878
  //# sourceMappingURL=isIterable.js.map
28602
- ;// ../../../node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js
28879
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js
28603
28880
 
28604
28881
 
28605
28882
  function readableStreamLikeToAsyncGenerator(readableStream) {
@@ -28640,9 +28917,9 @@ function isReadableStreamLike(obj) {
28640
28917
  return (0,isFunction/* isFunction */.T)(obj === null || obj === void 0 ? void 0 : obj.getReader);
28641
28918
  }
28642
28919
  //# sourceMappingURL=isReadableStreamLike.js.map
28643
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js
28644
- var reportUnhandledError = __webpack_require__(174);
28645
- ;// ../../../node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js
28920
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js
28921
+ var reportUnhandledError = __webpack_require__(564);
28922
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js
28646
28923
 
28647
28924
 
28648
28925
 
@@ -28786,7 +29063,7 @@ function innerFrom_process(asyncIterable, subscriber) {
28786
29063
  });
28787
29064
  }
28788
29065
  //# sourceMappingURL=innerFrom.js.map
28789
- ;// ../../../node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js
29066
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js
28790
29067
  function executeSchedule(parentSubscription, scheduler, work, delay, repeat) {
28791
29068
  if (delay === void 0) { delay = 0; }
28792
29069
  if (repeat === void 0) { repeat = false; }
@@ -28805,7 +29082,7 @@ function executeSchedule(parentSubscription, scheduler, work, delay, repeat) {
28805
29082
  }
28806
29083
  }
28807
29084
  //# sourceMappingURL=executeSchedule.js.map
28808
- ;// ../../../node_modules/rxjs/dist/esm5/internal/util/lift.js
29085
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/lift.js
28809
29086
 
28810
29087
  function hasLift(source) {
28811
29088
  return (0,isFunction/* isFunction */.T)(source === null || source === void 0 ? void 0 : source.lift);
@@ -28826,7 +29103,7 @@ function operate(init) {
28826
29103
  };
28827
29104
  }
28828
29105
  //# sourceMappingURL=lift.js.map
28829
- ;// ../../../node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js
29106
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js
28830
29107
 
28831
29108
 
28832
29109
  function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {
@@ -28888,7 +29165,7 @@ var OperatorSubscriber = (function (_super) {
28888
29165
  }(Subscriber/* Subscriber */.vU));
28889
29166
 
28890
29167
  //# sourceMappingURL=OperatorSubscriber.js.map
28891
- ;// ../../../node_modules/rxjs/dist/esm5/internal/operators/observeOn.js
29168
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/observeOn.js
28892
29169
 
28893
29170
 
28894
29171
 
@@ -28899,7 +29176,7 @@ function observeOn(scheduler, delay) {
28899
29176
  });
28900
29177
  }
28901
29178
  //# sourceMappingURL=observeOn.js.map
28902
- ;// ../../../node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js
29179
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js
28903
29180
 
28904
29181
  function subscribeOn(scheduler, delay) {
28905
29182
  if (delay === void 0) { delay = 0; }
@@ -28908,7 +29185,7 @@ function subscribeOn(scheduler, delay) {
28908
29185
  });
28909
29186
  }
28910
29187
  //# sourceMappingURL=subscribeOn.js.map
28911
- ;// ../../../node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js
29188
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js
28912
29189
 
28913
29190
 
28914
29191
 
@@ -28916,7 +29193,7 @@ function scheduleObservable(input, scheduler) {
28916
29193
  return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));
28917
29194
  }
28918
29195
  //# sourceMappingURL=scheduleObservable.js.map
28919
- ;// ../../../node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js
29196
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js
28920
29197
 
28921
29198
 
28922
29199
 
@@ -28924,7 +29201,7 @@ function schedulePromise(input, scheduler) {
28924
29201
  return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));
28925
29202
  }
28926
29203
  //# sourceMappingURL=schedulePromise.js.map
28927
- ;// ../../../node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js
29204
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js
28928
29205
 
28929
29206
  function scheduleArray(input, scheduler) {
28930
29207
  return new Observable/* Observable */.c(function (subscriber) {
@@ -28943,7 +29220,7 @@ function scheduleArray(input, scheduler) {
28943
29220
  });
28944
29221
  }
28945
29222
  //# sourceMappingURL=scheduleArray.js.map
28946
- ;// ../../../node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js
29223
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js
28947
29224
 
28948
29225
 
28949
29226
 
@@ -28976,7 +29253,7 @@ function scheduleIterable(input, scheduler) {
28976
29253
  });
28977
29254
  }
28978
29255
  //# sourceMappingURL=scheduleIterable.js.map
28979
- ;// ../../../node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js
29256
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js
28980
29257
 
28981
29258
 
28982
29259
  function scheduleAsyncIterable(input, scheduler) {
@@ -29000,14 +29277,14 @@ function scheduleAsyncIterable(input, scheduler) {
29000
29277
  });
29001
29278
  }
29002
29279
  //# sourceMappingURL=scheduleAsyncIterable.js.map
29003
- ;// ../../../node_modules/rxjs/dist/esm5/internal/scheduled/scheduleReadableStreamLike.js
29280
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleReadableStreamLike.js
29004
29281
 
29005
29282
 
29006
29283
  function scheduleReadableStreamLike(input, scheduler) {
29007
29284
  return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);
29008
29285
  }
29009
29286
  //# sourceMappingURL=scheduleReadableStreamLike.js.map
29010
- ;// ../../../node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js
29287
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js
29011
29288
 
29012
29289
 
29013
29290
 
@@ -29045,14 +29322,14 @@ function scheduled(input, scheduler) {
29045
29322
  throw createInvalidObservableTypeError(input);
29046
29323
  }
29047
29324
  //# sourceMappingURL=scheduled.js.map
29048
- ;// ../../../node_modules/rxjs/dist/esm5/internal/observable/from.js
29325
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/from.js
29049
29326
 
29050
29327
 
29051
29328
  function from(input, scheduler) {
29052
29329
  return scheduler ? scheduled(input, scheduler) : innerFrom(input);
29053
29330
  }
29054
29331
  //# sourceMappingURL=from.js.map
29055
- ;// ../../../node_modules/rxjs/dist/esm5/internal/observable/of.js
29332
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/of.js
29056
29333
 
29057
29334
 
29058
29335
  function of() {
@@ -29064,7 +29341,7 @@ function of() {
29064
29341
  return from(args, scheduler);
29065
29342
  }
29066
29343
  //# sourceMappingURL=of.js.map
29067
- ;// ../../../node_modules/rxjs/dist/esm5/internal/operators/switchMap.js
29344
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/switchMap.js
29068
29345
 
29069
29346
 
29070
29347
 
@@ -29089,7 +29366,7 @@ function switchMap(project, resultSelector) {
29089
29366
  });
29090
29367
  }
29091
29368
  //# sourceMappingURL=switchMap.js.map
29092
- ;// ../../../node_modules/rxjs/dist/esm5/internal/operators/finalize.js
29369
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/finalize.js
29093
29370
 
29094
29371
  function finalize(callback) {
29095
29372
  return operate(function (source, subscriber) {
@@ -29102,9 +29379,9 @@ function finalize(callback) {
29102
29379
  });
29103
29380
  }
29104
29381
  //# sourceMappingURL=finalize.js.map
29105
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/ReplaySubject.js
29106
- var ReplaySubject = __webpack_require__(107);
29107
- ;// ../../../node_modules/rxjs/dist/esm5/internal/operators/share.js
29382
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/ReplaySubject.js
29383
+ var ReplaySubject = __webpack_require__(205);
29384
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/share.js
29108
29385
 
29109
29386
 
29110
29387
 
@@ -29190,7 +29467,7 @@ function handleReset(reset, on) {
29190
29467
  return innerFrom(on.apply(void 0, (0,tslib_es6/* __spreadArray */.fX)([], (0,tslib_es6/* __read */.zs)(args)))).subscribe(onSubscriber);
29191
29468
  }
29192
29469
  //# sourceMappingURL=share.js.map
29193
- ;// ../../../node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js
29470
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js
29194
29471
 
29195
29472
 
29196
29473
  function shareReplay(configOrBufferSize, windowTime, scheduler) {
@@ -35543,11 +35820,11 @@ _TelemetryManager.ENGINE_CACHE_SUGGESTION_ANALYZERS = new Set(['SameEntityMultip
35543
35820
  _TelemetryManager.CACHE_SUGGESTION_REWRITE_ANALYZERS = new Set(['DuplicateRunViewAnalyzer']);
35544
35821
  /** Replacement suggestion for cache-oriented findings on a non-cacheable entity. */
35545
35822
  _TelemetryManager.NON_CACHEABLE_DEDUPE_SUGGESTION = 'This entity has caching disabled (AllowCaching=false), so caching is not an option — ' + 'deduplicate or consolidate the identical call at the call site (read once and reuse), or ' + 'mark an intentional repeat with RunView Telemetry.Exempt';
35546
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js
35547
- var BehaviorSubject = __webpack_require__(156);
35548
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/util/noop.js
35549
- var noop = __webpack_require__(788);
35550
- ;// ../../../node_modules/rxjs/dist/esm5/internal/operators/buffer.js
35823
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js
35824
+ var BehaviorSubject = __webpack_require__(562);
35825
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/noop.js
35826
+ var noop = __webpack_require__(821);
35827
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/buffer.js
35551
35828
 
35552
35829
 
35553
35830
 
@@ -35570,9 +35847,9 @@ function buffer(closingNotifier) {
35570
35847
  });
35571
35848
  }
35572
35849
  //# sourceMappingURL=buffer.js.map
35573
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/Subscription.js + 1 modules
35574
- var Subscription = __webpack_require__(226);
35575
- ;// ../../../node_modules/rxjs/dist/esm5/internal/scheduler/Action.js
35850
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscription.js + 1 modules
35851
+ var Subscription = __webpack_require__(112);
35852
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/Action.js
35576
35853
 
35577
35854
 
35578
35855
  var Action = (function (_super) {
@@ -35588,7 +35865,7 @@ var Action = (function (_super) {
35588
35865
  }(Subscription/* Subscription */.yU));
35589
35866
 
35590
35867
  //# sourceMappingURL=Action.js.map
35591
- ;// ../../../node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js
35868
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js
35592
35869
 
35593
35870
  var intervalProvider = {
35594
35871
  setInterval: function (handler, timeout) {
@@ -35609,9 +35886,9 @@ var intervalProvider = {
35609
35886
  delegate: undefined,
35610
35887
  };
35611
35888
  //# sourceMappingURL=intervalProvider.js.map
35612
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/util/arrRemove.js
35613
- var arrRemove = __webpack_require__(444);
35614
- ;// ../../../node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js
35889
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js
35890
+ var arrRemove = __webpack_require__(750);
35891
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js
35615
35892
 
35616
35893
 
35617
35894
 
@@ -35702,9 +35979,9 @@ var AsyncAction = (function (_super) {
35702
35979
  }(Action));
35703
35980
 
35704
35981
  //# sourceMappingURL=AsyncAction.js.map
35705
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js
35706
- var dateTimestampProvider = __webpack_require__(953);
35707
- ;// ../../../node_modules/rxjs/dist/esm5/internal/Scheduler.js
35982
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js
35983
+ var dateTimestampProvider = __webpack_require__(987);
35984
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Scheduler.js
35708
35985
 
35709
35986
  var Scheduler = (function () {
35710
35987
  function Scheduler(schedulerActionCtor, now) {
@@ -35721,7 +35998,7 @@ var Scheduler = (function () {
35721
35998
  }());
35722
35999
 
35723
36000
  //# sourceMappingURL=Scheduler.js.map
35724
- ;// ../../../node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js
36001
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js
35725
36002
 
35726
36003
 
35727
36004
  var AsyncScheduler = (function (_super) {
@@ -35758,13 +36035,13 @@ var AsyncScheduler = (function (_super) {
35758
36035
  }(Scheduler));
35759
36036
 
35760
36037
  //# sourceMappingURL=AsyncScheduler.js.map
35761
- ;// ../../../node_modules/rxjs/dist/esm5/internal/scheduler/async.js
36038
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/async.js
35762
36039
 
35763
36040
 
35764
36041
  var asyncScheduler = new AsyncScheduler(AsyncAction);
35765
36042
  var async_async = (/* unused pure expression or super */ null && (asyncScheduler));
35766
36043
  //# sourceMappingURL=async.js.map
35767
- ;// ../../../node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js
36044
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js
35768
36045
 
35769
36046
 
35770
36047
 
@@ -35809,7 +36086,7 @@ function debounceTime(dueTime, scheduler) {
35809
36086
  });
35810
36087
  }
35811
36088
  //# sourceMappingURL=debounceTime.js.map
35812
- ;// ../../../node_modules/rxjs/dist/esm5/internal/operators/filter.js
36089
+ ;// ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/filter.js
35813
36090
 
35814
36091
 
35815
36092
  function filter(predicate, thisArg) {
@@ -45073,7 +45350,7 @@ var ProviderBase = /*#__PURE__*/function () {
45073
45350
  if (!user || !params.EntityName) return '';
45074
45351
  var entity = this.EntityByName(params.EntityName);
45075
45352
  if (!entity) return '';
45076
- return entity.GetUserRowLevelSecurityWhereClause(user, EntityPermissionType.Read, '');
45353
+ return entity.GetEffectiveRowFilterWhereClause(user, EntityPermissionType.Read, '');
45077
45354
  }
45078
45355
  /**
45079
45356
  * Pre-processing hook for RunView.
@@ -50992,7 +51269,18 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
50992
51269
  // Compare all primary key values
50993
51270
  return primaryKeys.every(function (pk, idx) {
50994
51271
  var entityValue = e[pk.Name];
50995
- return entityValue === targetKeyValues[idx];
51272
+ var targetValue = targetKeyValues[idx];
51273
+ // UUID columns must compare case-insensitively: the SAME id can arrive with
51274
+ // different casing depending on its source (a client-minted lowercase UUID from
51275
+ // BaseEntity.NewRecord vs. an uppercase value loaded from SQL Server). A raw `===`
51276
+ // then misses the match, and the caller's "not found → add it" branch appends a
51277
+ // DUPLICATE copy of the row into the engine cache. Drive this off metadata
51278
+ // (EntityFieldInfo.IsUniqueIdentifier, which is PG-aware) — never a string-shape
51279
+ // heuristic. See guides/UUID_COMPARISON_GUIDE.md.
51280
+ if (pk.IsUniqueIdentifier) {
51281
+ return (0,dist/* UUIDsEqual */.jd)(entityValue, targetValue);
51282
+ }
51283
+ return entityValue === targetValue;
50996
51284
  });
50997
51285
  });
50998
51286
  }
@@ -55800,7 +56088,9 @@ var DatabaseProviderBase = /*#__PURE__*/function (_ProviderBase) {
55800
56088
  var stringLiteralPattern = /(['"])(?:(?=(\\?))\2[\s\S])*?\1/g;
55801
56089
  var clauseWithoutStrings = clause.replace(stringLiteralPattern, '');
55802
56090
  var lowerClause = clauseWithoutStrings.toLowerCase();
55803
- var forbiddenPatterns = [/\binsert\b/, /\bupdate\b/, /\bdelete\b/, /\bexec\b/, /\bexecute\b/, /\bdrop\b/, /--/, /\/\*/, /\*\//, /\bunion\b/, /\bxp_/, /;/];
56091
+ var forbiddenPatterns = [/\binsert\b/, /\bupdate\b/, /\bdelete\b/, /\bexec\b/, /\bexecute\b/, /\bdrop\b/, /--/, /\/\*/, /\*\//, /\bunion\b/, /\bxp_/, /;/,
56092
+ // Time-based blind injection vector — no legitimate filter/order-by clause uses WAITFOR.
56093
+ /\bwaitfor\b/];
55804
56094
  for (var _i = 0, _forbiddenPatterns = forbiddenPatterns; _i < _forbiddenPatterns.length; _i++) {
55805
56095
  var pattern = _forbiddenPatterns[_i];
55806
56096
  if (pattern.test(lowerClause)) return false;
@@ -56204,7 +56494,7 @@ var DatabaseProviderBase = /*#__PURE__*/function (_ProviderBase) {
56204
56494
  value: (function () {
56205
56495
  var _Save = databaseProviderBase_asyncToGenerator(/*#__PURE__*/databaseProviderBase_regenerator().m(function _callee15(entity, user, options) {
56206
56496
  var _this5 = this;
56207
- var entityResult, bNewRecord, bReplay, saveContext, validationMessage, createRLSPass, updateRLSPass, sqlDetails, _sqlDetails$parameter, extraData, result, _sqlDetails$parameter2, execOptions, rawResult, patches, _t8;
56497
+ var entityResult, bNewRecord, bReplay, saveContext, validationMessage, createRLSPass, updateRLSPass, postHookCreatePass, postImagePass, sqlDetails, _sqlDetails$parameter, extraData, result, _sqlDetails$parameter2, execOptions, rawResult, patches, _t8;
56208
56498
  return databaseProviderBase_regenerator().w(function (_context17) {
56209
56499
  while (1) switch (_context17.p = _context17.n) {
56210
56500
  case 0:
@@ -56241,7 +56531,7 @@ var DatabaseProviderBase = /*#__PURE__*/function (_ProviderBase) {
56241
56531
  throw new Error("CREATE not allowed for entity ".concat(entity.EntityInfo.Name));
56242
56532
  case 4:
56243
56533
  if (!(entity.Dirty || options.IgnoreDirtyState || options.ReplayOnly)) {
56244
- _context17.n = 23;
56534
+ _context17.n = 28;
56245
56535
  break;
56246
56536
  }
56247
56537
  entityResult.StartedAt = new Date();
@@ -56330,12 +56620,49 @@ var DatabaseProviderBase = /*#__PURE__*/function (_ProviderBase) {
56330
56620
  _context17.n = 12;
56331
56621
  return this.OnBeforeSaveExecute(entity, user, options, saveContext);
56332
56622
  case 12:
56623
+ if (bReplay) {
56624
+ _context17.n = 17;
56625
+ break;
56626
+ }
56627
+ if (!bNewRecord) {
56628
+ _context17.n = 15;
56629
+ break;
56630
+ }
56333
56631
  _context17.n = 13;
56334
- return this.GenerateSaveSQL(entity, bNewRecord, user);
56632
+ return this.CheckCreateRLS(entity, user);
56335
56633
  case 13:
56634
+ postHookCreatePass = _context17.v;
56635
+ if (postHookCreatePass) {
56636
+ _context17.n = 14;
56637
+ break;
56638
+ }
56639
+ entityResult.Success = false;
56640
+ entityResult.EndedAt = new Date();
56641
+ entityResult.Message = "Access denied for new ".concat(entity.EntityInfo.Name, " record: a before-save hook produced field values that no longer pass row-level security");
56642
+ throw new Error(entityResult.Message);
56643
+ case 14:
56644
+ _context17.n = 17;
56645
+ break;
56646
+ case 15:
56647
+ _context17.n = 16;
56648
+ return this.CheckUpdateRLSPostImage(entity, user);
56649
+ case 16:
56650
+ postImagePass = _context17.v;
56651
+ if (postImagePass) {
56652
+ _context17.n = 17;
56653
+ break;
56654
+ }
56655
+ entityResult.Success = false;
56656
+ entityResult.EndedAt = new Date();
56657
+ entityResult.Message = "Access denied: the requested changes would move this ".concat(entity.EntityInfo.Name, " record outside your permitted row scope");
56658
+ throw new Error(entityResult.Message);
56659
+ case 17:
56660
+ _context17.n = 18;
56661
+ return this.GenerateSaveSQL(entity, bNewRecord, user);
56662
+ case 18:
56336
56663
  sqlDetails = _context17.v;
56337
56664
  if (!(entity.TransactionGroup && !bReplay)) {
56338
- _context17.n = 14;
56665
+ _context17.n = 19;
56339
56666
  break;
56340
56667
  }
56341
56668
  // ---- Transaction Group path ----
@@ -56359,31 +56686,31 @@ var DatabaseProviderBase = /*#__PURE__*/function (_ProviderBase) {
56359
56686
  }
56360
56687
  }));
56361
56688
  return _context17.a(2, true);
56362
- case 14:
56689
+ case 19:
56363
56690
  // ---- Direct execution path ----
56364
56691
  this.OnSuspendRefresh();
56365
56692
  if (!bReplay) {
56366
- _context17.n = 15;
56693
+ _context17.n = 20;
56367
56694
  break;
56368
56695
  }
56369
56696
  result = [entity.GetAll()];
56370
- _context17.n = 18;
56697
+ _context17.n = 23;
56371
56698
  break;
56372
- case 15:
56699
+ case 20:
56373
56700
  execOptions = this.BuildSaveExecuteOptions(entity, sqlDetails);
56374
- _context17.n = 16;
56701
+ _context17.n = 21;
56375
56702
  return this.ExecuteSQL(sqlDetails.fullSQL, (_sqlDetails$parameter2 = sqlDetails.parameters) !== null && _sqlDetails$parameter2 !== void 0 ? _sqlDetails$parameter2 : undefined, execOptions, user);
56376
- case 16:
56703
+ case 21:
56377
56704
  rawResult = _context17.v;
56378
- _context17.n = 17;
56705
+ _context17.n = 22;
56379
56706
  return this.PostProcessRows(rawResult, entity.EntityInfo, user);
56380
- case 17:
56707
+ case 22:
56381
56708
  result = _context17.v;
56382
- case 18:
56709
+ case 23:
56383
56710
  this.OnResumeRefresh();
56384
56711
  entityResult.EndedAt = new Date();
56385
56712
  if (!(result && result.length > 0)) {
56386
- _context17.n = 20;
56713
+ _context17.n = 25;
56387
56714
  break;
56388
56715
  }
56389
56716
  this.OnAfterSaveExecute(entity, user, options, saveContext);
@@ -56391,42 +56718,42 @@ var DatabaseProviderBase = /*#__PURE__*/function (_ProviderBase) {
56391
56718
  // OnSaveCompleted may return patch fields (e.g., updated lat/lng
56392
56719
  // from geocoding) that need to be merged onto the SP result before
56393
56720
  // the entity loads the data via finalizeSave().
56394
- _context17.n = 19;
56721
+ _context17.n = 24;
56395
56722
  return this.OnSaveCompleted(entity, sqlDetails, user, options, saveContext);
56396
- case 19:
56723
+ case 24:
56397
56724
  patches = _context17.v;
56398
56725
  if (patches) {
56399
56726
  Object.assign(result[0], patches);
56400
56727
  }
56401
56728
  return _context17.a(2, result[0]);
56402
- case 20:
56729
+ case 25:
56403
56730
  if (!bNewRecord) {
56404
- _context17.n = 21;
56731
+ _context17.n = 26;
56405
56732
  break;
56406
56733
  }
56407
56734
  throw new Error("SQL Error: Error creating new record, no rows returned from SQL: ".concat(sqlDetails.fullSQL));
56408
- case 21:
56735
+ case 26:
56409
56736
  throw new Error("SQL Error: Error updating record, no MATCHING rows found within the database: ".concat(sqlDetails.fullSQL));
56410
- case 22:
56411
- _context17.n = 24;
56737
+ case 27:
56738
+ _context17.n = 29;
56412
56739
  break;
56413
- case 23:
56740
+ case 28:
56414
56741
  return _context17.a(2, entity);
56415
- case 24:
56416
- _context17.n = 26;
56742
+ case 29:
56743
+ _context17.n = 31;
56417
56744
  break;
56418
- case 25:
56419
- _context17.p = 25;
56745
+ case 30:
56746
+ _context17.p = 30;
56420
56747
  _t8 = _context17.v;
56421
56748
  this.OnResumeRefresh();
56422
56749
  entityResult.EndedAt = new Date();
56423
56750
  entityResult.Message = _t8.message;
56424
56751
  LogError(_t8);
56425
56752
  throw _t8;
56426
- case 26:
56753
+ case 31:
56427
56754
  return _context17.a(2);
56428
56755
  }
56429
- }, _callee15, this, [[1, 25]]);
56756
+ }, _callee15, this, [[1, 30]]);
56430
56757
  }));
56431
56758
  function Save(_x54, _x55, _x56) {
56432
56759
  return _Save.apply(this, arguments);
@@ -58744,7 +59071,7 @@ function SetProvider(provider) {
58744
59071
 
58745
59072
  /***/ },
58746
59073
 
58747
- /***/ 964
59074
+ /***/ 791
58748
59075
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
58749
59076
 
58750
59077
  "use strict";
@@ -58752,8 +59079,8 @@ __webpack_require__.r(__webpack_exports__);
58752
59079
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
58753
59080
  /* harmony export */ UserViewEngine: () => (/* binding */ UserViewEngine)
58754
59081
  /* harmony export */ });
58755
- /* harmony import */ var _memberjunction_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(752);
58756
- /* harmony import */ var _memberjunction_global__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(198);
59082
+ /* harmony import */ var _memberjunction_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(63);
59083
+ /* harmony import */ var _memberjunction_global__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(899);
58757
59084
  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); }
58758
59085
  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 }; })(); }
58759
59086
  function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _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)); }, _regeneratorDefine2(e, r, n, t); }
@@ -59107,7 +59434,7 @@ var UserViewEngine = /*#__PURE__*/function (_BaseEngine) {
59107
59434
 
59108
59435
  /***/ },
59109
59436
 
59110
- /***/ 148
59437
+ /***/ 835
59111
59438
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
59112
59439
 
59113
59440
  "use strict";
@@ -59121,10 +59448,10 @@ __webpack_require__.d(__webpack_exports__, {
59121
59448
  // UNUSED EXPORTS: AIAgentPermissionProvider, AISkillExportMarkdownOperation, AISkillImportMarkdownOperation, AISkillPermissionProvider, AccessControlRuleProvider, ApplicationRolePermissionProvider, ApplicationSettingEngine, ArtifactExtractor, ArtifactMetadataEngine, ArtifactPermissionProvider, AuditLogTypeEngine, BuildUnregisteredMimeError, CollectionPermissionProvider, ConversationEngine, ConversationWindowFields, CreateShareNotification, DEFAULT_AGGREGATE_DISPLAY, DashboardEngine, DashboardPermissionProvider, DecideInlineStorage, EncryptionEngineBase, EntityPermissionProvider, EntityPermissionType, EntitySaveOptions, ExtractBase64FromDataUrl, FileStorageEngineBase, FindArtifactTypeConflicts, GeoDataEngine, INJECTABLE_NOTE_STATUSES, InjectableNoteStatusSQLList, InstanceConfigEngine, InteractiveFormsEngine, IsInjectableNoteStatus, IsTextyMime, KnowledgeHubMetadataEngine, LoadMJAccessControlRuleEntityExtended, LoadMJArtifactPermissionEntityExtended, LoadMJCollectionPermissionEntityExtended, LoadMJConversationDetailEntityExtended, LoadMJDashboardPermissionEntityExtended, LoadPermissionEntityExtensions, LoadPermissionProviders, MCPEngine, MJAIActionEntity, MJAIActionSchema, MJAIAgentActionEntity, MJAIAgentActionSchema, MJAIAgentArtifactTypeEntity, MJAIAgentArtifactTypeSchema, MJAIAgentCategoryEntity, MJAIAgentCategorySchema, MJAIAgentChannelEntity, MJAIAgentChannelSchema, MJAIAgentClientToolEntity, MJAIAgentClientToolSchema, MJAIAgentCoAgentEntity, MJAIAgentCoAgentSchema, 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, MJAIAgentSearchScopeEntity, MJAIAgentSearchScopeSchema, MJAIAgentSessionBridgeEntity, MJAIAgentSessionBridgeParticipantEntity, MJAIAgentSessionBridgeParticipantSchema, MJAIAgentSessionBridgeSchema, MJAIAgentSessionChannelEntity, MJAIAgentSessionChannelSchema, MJAIAgentSessionEntity, MJAIAgentSessionSchema, MJAIAgentSkillEntity, MJAIAgentSkillSchema, MJAIAgentStepEntity, MJAIAgentStepPathEntity, MJAIAgentStepPathSchema, MJAIAgentStepSchema, MJAIAgentTypeEntity, MJAIAgentTypeSchema, MJAIArchitectureEntity, MJAIArchitectureSchema, MJAIBridgeAgentIdentityEntity, MJAIBridgeAgentIdentitySchema, MJAIBridgeProviderChannelEntity, MJAIBridgeProviderChannelSchema, MJAIBridgeProviderEntity, MJAIBridgeProviderSchema, 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, MJAIRemoteBrowserProviderEntity, MJAIRemoteBrowserProviderSchema, MJAIResultCacheEntity, MJAIResultCacheSchema, MJAISkillActionEntity, MJAISkillActionSchema, MJAISkillEntity, MJAISkillPermissionEntity, MJAISkillPermissionSchema, MJAISkillSchema, MJAISkillSearchScopeEntity, MJAISkillSearchScopeSchema, MJAISkillSubAgentEntity, MJAISkillSubAgentSchema, MJAIVendorEntity, MJAIVendorSchema, MJAIVendorTypeDefinitionEntity, MJAIVendorTypeDefinitionSchema, MJAIVendorTypeEntity, MJAIVendorTypeSchema, MJAPIApplicationEntity, MJAPIApplicationSchema, MJAPIApplicationScopeEntity, MJAPIApplicationScopeSchema, MJAPIKeyApplicationEntity, MJAPIKeyApplicationSchema, MJAPIKeyEntity, MJAPIKeySchema, MJAPIKeyScopeEntity, MJAPIKeyScopeSchema, MJAPIKeyUsageLogEntity, MJAPIKeyUsageLogSchema, MJAPIScopeEntity, MJAPIScopeSchema, MJAccessControlRuleEntity, MJAccessControlRuleEntityExtended, 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, MJArchiveConfigurationEntity, MJArchiveConfigurationEntityEntity, MJArchiveConfigurationEntitySchema, MJArchiveConfigurationSchema, MJArchiveRunDetailEntity, MJArchiveRunDetailSchema, MJArchiveRunEntity, MJArchiveRunSchema, MJArtifactEntity, MJArtifactPermissionEntity, MJArtifactPermissionEntityExtended, MJArtifactPermissionSchema, MJArtifactSchema, MJArtifactTypeEntity, MJArtifactTypeSchema, MJArtifactUseEntity, MJArtifactUseSchema, MJArtifactVersionAttributeEntity, MJArtifactVersionAttributeSchema, MJArtifactVersionEntity, MJArtifactVersionSchema, MJAuditLogEntity, MJAuditLogSchema, MJAuditLogTypeEntity, MJAuditLogTypeSchema, MJAuthorizationEntity, MJAuthorizationRoleEntity, MJAuthorizationRoleSchema, MJAuthorizationSchema, MJClusterAnalysisClusterEntity, MJClusterAnalysisClusterSchema, MJClusterAnalysisEntity, MJClusterAnalysisSchema, MJCollectionArtifactEntity, MJCollectionArtifactSchema, MJCollectionEntity, MJCollectionPermissionEntity, MJCollectionPermissionEntityExtended, 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, MJContentItemChunkEntity, MJContentItemChunkSchema, 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, MJConversationCompactionRunEntity, MJConversationCompactionRunSchema, MJConversationDetailArtifactEntity, MJConversationDetailArtifactSchema, MJConversationDetailAttachmentEntity, MJConversationDetailAttachmentSchema, MJConversationDetailEntity, MJConversationDetailEntityExtended, MJConversationDetailRatingEntity, MJConversationDetailRatingSchema, MJConversationDetailSchema, MJConversationEntity, MJConversationSchema, MJConversationWidgetInstanceEntity, MJConversationWidgetInstanceSchema, MJCountryEntity, MJCountrySchema, MJCredentialCategoryEntity, MJCredentialCategorySchema, MJCredentialEntity, MJCredentialSchema, MJCredentialTypeEntity, MJCredentialTypeSchema, MJDashboardCategoryEntity, MJDashboardCategoryLinkEntity, MJDashboardCategoryLinkSchema, MJDashboardCategoryPermissionEntity, MJDashboardCategoryPermissionSchema, MJDashboardCategorySchema, MJDashboardEntity, MJDashboardEntityExtended, MJDashboardPartTypeEntity, MJDashboardPartTypeSchema, MJDashboardPermissionEntity, MJDashboardPermissionEntityExtended, 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, MJEntityFormOverrideEntity, MJEntityFormOverrideSchema, MJEntityOrganicKeyEntity, MJEntityOrganicKeyRelatedEntityEntity, MJEntityOrganicKeyRelatedEntitySchema, MJEntityOrganicKeySchema, MJEntityPermissionEntity, MJEntityPermissionSchema, MJEntityRecordDocumentEntity, MJEntityRecordDocumentSchema, MJEntityRelationshipDisplayComponentEntity, MJEntityRelationshipDisplayComponentSchema, MJEntityRelationshipEntity, MJEntityRelationshipSchema, MJEntitySchema, MJEntitySettingEntity, MJEntitySettingSchema, MJEnvironmentEntity, MJEnvironmentEntityExtended, MJEnvironmentSchema, MJErrorLogEntity, MJErrorLogSchema, MJExperimentEntity, MJExperimentSchema, MJExperimentSessionEntity, MJExperimentSessionIterationEntity, MJExperimentSessionIterationSchema, MJExperimentSessionSchema, MJExplorerNavigationItemEntity, MJExplorerNavigationItemSchema, MJExternalDataSourceEntity, MJExternalDataSourceSchema, MJExternalDataSourceTypeEntity, MJExternalDataSourceTypeSchema, 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, MJListEntityExtended, MJListInvitationEntity, MJListInvitationSchema, MJListSchema, MJListShareEntity, MJListShareSchema, MJMCPServerConnectionEntity, MJMCPServerConnectionPermissionEntity, MJMCPServerConnectionPermissionSchema, MJMCPServerConnectionSchema, MJMCPServerConnectionToolEntity, MJMCPServerConnectionToolSchema, MJMCPServerEntity, MJMCPServerSchema, MJMCPServerToolEntity, MJMCPServerToolSchema, MJMCPToolExecutionLogEntity, MJMCPToolExecutionLogSchema, MJMCPToolFavoriteEntity, MJMCPToolFavoriteSchema, MJMLAlgorithmEntity, MJMLAlgorithmSchema, MJMLAlgorithmUseCaseEntity, MJMLAlgorithmUseCaseRankingEntity, MJMLAlgorithmUseCaseRankingSchema, MJMLAlgorithmUseCaseSchema, MJMLModelEntity, MJMLModelSchema, MJMLModelScoringBindingEntity, MJMLModelScoringBindingSchema, MJMLTrainingPipelineEntity, MJMLTrainingPipelineSchema, MJMLTrainingRunEntity, MJMLTrainingRunSchema, MJMagicLinkInviteAllowedDomainEntity, MJMagicLinkInviteAllowedDomainSchema, MJMagicLinkInviteAllowedPathEntity, MJMagicLinkInviteAllowedPathSchema, MJMagicLinkInviteApplicationEntity, MJMagicLinkInviteApplicationSchema, MJMagicLinkInviteEntity, MJMagicLinkInviteRoleEntity, MJMagicLinkInviteRoleSchema, MJMagicLinkInviteSchema, MJMagicLinkRedemptionEntity, MJMagicLinkRedemptionSchema, MJOAuthAuthServerMetadataCacheEntity, MJOAuthAuthServerMetadataCacheSchema, MJOAuthAuthorizationStateEntity, MJOAuthAuthorizationStateSchema, MJOAuthClientRegistrationEntity, MJOAuthClientRegistrationSchema, MJOAuthTokenEntity, MJOAuthTokenSchema, MJOpenAppDependencyEntity, MJOpenAppDependencySchema, MJOpenAppEntity, MJOpenAppInstallHistoryEntity, MJOpenAppInstallHistorySchema, MJOpenAppSchema, MJOutputDeliveryTypeEntity, MJOutputDeliveryTypeSchema, MJOutputFormatTypeEntity, MJOutputFormatTypeSchema, MJOutputTriggerTypeEntity, MJOutputTriggerTypeSchema, MJPermissionDomainEntity, MJPermissionDomainSchema, MJProcessRunDetailEntity, MJProcessRunDetailSchema, MJProcessRunEntity, MJProcessRunSchema, MJProjectEntity, MJProjectSchema, MJPublicLinkEntity, MJPublicLinkSchema, MJQueryCategoryEntity, MJQueryCategorySchema, MJQueryDependencyEntity, MJQueryDependencySchema, MJQueryEntity, MJQueryEntityEntity, MJQueryEntityExtended, 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, MJRecordProcessCategoryEntity, MJRecordProcessCategorySchema, MJRecordProcessEntity, MJRecordProcessSchema, MJRecordProcessWatermarkEntity, MJRecordProcessWatermarkSchema, MJRemoteOperationCategoryEntity, MJRemoteOperationCategorySchema, MJRemoteOperationEntity, MJRemoteOperationSchema, 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, MJScopedPromptConfigEntity, MJScopedPromptConfigSchema, MJScopedPromptPartEntity, MJScopedPromptPartSchema, MJSearchExecutionLogEntity, MJSearchExecutionLogSchema, MJSearchProviderEntity, MJSearchProviderSchema, MJSearchScopeEntity, MJSearchScopeEntityEntity, MJSearchScopeEntitySchema, MJSearchScopeExternalIndexEntity, MJSearchScopeExternalIndexSchema, MJSearchScopePermissionEntity, MJSearchScopePermissionSchema, MJSearchScopeProviderEntity, MJSearchScopeProviderSchema, MJSearchScopeSchema, MJSearchScopeStorageAccountEntity, MJSearchScopeStorageAccountSchema, MJSearchScopeTestQueryEntity, MJSearchScopeTestQuerySchema, MJSignatureAccountEntity, MJSignatureAccountSchema, MJSignatureProviderEntity, MJSignatureProviderSchema, MJSignatureRequestDocumentEntity, MJSignatureRequestDocumentSchema, MJSignatureRequestEntity, MJSignatureRequestLogEntity, MJSignatureRequestLogSchema, MJSignatureRequestRecipientEntity, MJSignatureRequestRecipientSchema, MJSignatureRequestSchema, MJSkillEntity, MJSkillSchema, MJStateProvinceEntity, MJStateProvinceSchema, MJTagAuditLogEntity, MJTagAuditLogSchema, MJTagCoOccurrenceEntity, MJTagCoOccurrenceSchema, MJTagEntity, MJTagSchema, MJTagScopeEntity, MJTagScopeSchema, MJTagSuggestionEntity, MJTagSuggestionSchema, MJTagSynonymEntity, MJTagSynonymSchema, 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, MJThemeEntity, MJThemeSchema, MJUserApplicationEntity, MJUserApplicationEntityEntity, MJUserApplicationEntitySchema, MJUserApplicationSchema, MJUserEntity, MJUserFavoriteEntity, MJUserFavoriteSchema, MJUserNotificationEntity, MJUserNotificationPreferenceEntity, MJUserNotificationPreferenceSchema, MJUserNotificationSchema, MJUserNotificationTypeEntity, MJUserNotificationTypeSchema, MJUserRecordLogEntity, MJUserRecordLogSchema, MJUserRoleEntity, MJUserRoleSchema, MJUserRoutineEntity, MJUserRoutineRecipientEntity, MJUserRoutineRecipientSchema, MJUserRoutineRunEntity, MJUserRoutineRunSchema, MJUserRoutineSchema, MJUserSchema, MJUserSettingEntity, MJUserSettingSchema, MJUserViewCategoryEntity, MJUserViewCategorySchema, MJUserViewEntity, MJUserViewEntityExtended, MJUserViewRunDetailEntity, MJUserViewRunDetailSchema, MJUserViewRunEntity, MJUserViewRunSchema, MJUserViewSchema, MJVectorDatabaseEntity, MJVectorDatabaseSchema, MJVectorIndexEntity, MJVectorIndexSchema, MJVersionInstallationEntity, MJVersionInstallationSchema, MJVersionLabelEntity, MJVersionLabelItemEntity, MJVersionLabelItemSchema, MJVersionLabelRestoreEntity, MJVersionLabelRestoreSchema, MJVersionLabelSchema, MJViewTypeEntity, MJViewTypeSchema, MJWorkflowEngineEntity, MJWorkflowEngineSchema, MJWorkflowEntity, MJWorkflowRunEntity, MJWorkflowRunSchema, MJWorkflowSchema, MJWorkspaceEntity, MJWorkspaceItemEntity, MJWorkspaceItemSchema, MJWorkspaceSchema, PERMISSION_DOMAIN_ICONS, PERMISSION_DOMAIN_ICON_FALLBACK, PermissionEngine, PredictiveStudioControlExperimentSessionOperation, PredictiveStudioCreateScoringProcessOperation, PredictiveStudioPromoteModelOperation, PredictiveStudioRunFeaturePipelineOperation, PredictiveStudioScoreRecordSetOperation, PredictiveStudioStartExperimentSessionOperation, PredictiveStudioTrainModelOperation, QueryEngine, QueryPermissionProvider, ReadOnlyExternalBaseEntity, RecordComparisonCompareOperation, RecordProcessCancelRunOperation, RecordProcessGetRunStatusOperation, RecordProcessPauseRunOperation, RecordProcessResumeRunOperation, RecordProcessRunNowOperation, RegisterShareNotificationHandler, RemoteOperationEngineBase, ResolveArtifactTypeByMime, ResourceData, ResourcePermissionEngine, ResourcePermissionProvider, ResourceTypeEngine, SearchEngineBase, TemplateRunOperation, TypeTablesCache, UserInfoEngine, UserRoutineEngine, UserViewEngine, ViewColumnInfo, ViewFilterInfo, ViewFilterLogicInfo, ViewGridState, ViewSortDirectionInfo, ViewSortInfo, assertCallerMayCreateShare, buildActionsSummary, checkShareManagePermission, dispatchShareNotificationAfterSave, loadModule, parseConversationDetailComplete
59122
59449
 
59123
59450
  // EXTERNAL MODULE: ../../MJCore/dist/index.js + 88 modules
59124
- var dist = __webpack_require__(752);
59451
+ var dist = __webpack_require__(63);
59125
59452
  // EXTERNAL MODULE: ../../MJGlobal/dist/index.js + 24 modules
59126
- var MJGlobal_dist = __webpack_require__(198);
59127
- ;// ../../../node_modules/zod/v3/helpers/util.js
59453
+ var MJGlobal_dist = __webpack_require__(899);
59454
+ ;// ../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js
59128
59455
  var util;
59129
59456
  (function (util) {
59130
59457
  util.assertEqual = (_) => { };
@@ -59259,7 +59586,7 @@ const getParsedType = (data) => {
59259
59586
  }
59260
59587
  };
59261
59588
 
59262
- ;// ../../../node_modules/zod/v3/ZodError.js
59589
+ ;// ../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js
59263
59590
 
59264
59591
  const ZodIssueCode = util.arrayToEnum([
59265
59592
  "invalid_type",
@@ -59394,7 +59721,7 @@ ZodError.create = (issues) => {
59394
59721
  return error;
59395
59722
  };
59396
59723
 
59397
- ;// ../../../node_modules/zod/v3/locales/en.js
59724
+ ;// ../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js
59398
59725
 
59399
59726
 
59400
59727
  const errorMap = (issue, _ctx) => {
@@ -59505,7 +59832,7 @@ const errorMap = (issue, _ctx) => {
59505
59832
  };
59506
59833
  /* harmony default export */ const en = (errorMap);
59507
59834
 
59508
- ;// ../../../node_modules/zod/v3/errors.js
59835
+ ;// ../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js
59509
59836
 
59510
59837
  let overrideErrorMap = en;
59511
59838
 
@@ -59516,7 +59843,7 @@ function getErrorMap() {
59516
59843
  return overrideErrorMap;
59517
59844
  }
59518
59845
 
59519
- ;// ../../../node_modules/zod/v3/helpers/errorUtil.js
59846
+ ;// ../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js
59520
59847
  var errorUtil;
59521
59848
  (function (errorUtil) {
59522
59849
  errorUtil.errToObj = (message) => typeof message === "string" ? { message } : message || {};
@@ -59524,7 +59851,7 @@ var errorUtil;
59524
59851
  errorUtil.toString = (message) => typeof message === "string" ? message : message?.message;
59525
59852
  })(errorUtil || (errorUtil = {}));
59526
59853
 
59527
- ;// ../../../node_modules/zod/v3/helpers/parseUtil.js
59854
+ ;// ../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js
59528
59855
 
59529
59856
 
59530
59857
  const makeIssue = (params) => {
@@ -59635,7 +59962,7 @@ const isDirty = (x) => x.status === "dirty";
59635
59962
  const isValid = (x) => x.status === "valid";
59636
59963
  const isAsync = (x) => typeof Promise !== "undefined" && x instanceof Promise;
59637
59964
 
59638
- ;// ../../../node_modules/zod/v3/types.js
59965
+ ;// ../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js
59639
59966
  /* unused harmony import specifier */ var types_INVALID;
59640
59967
 
59641
59968
 
@@ -63345,13 +63672,13 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
63345
63672
  * zod schema definition for the entity MJ: Action Contexts
63346
63673
  */var MJActionContextSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ActionID:stringType().describe("\n * * Field Name: ActionID\n * * Display Name: Action ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Actions (vwActions.ID)"),ContextTypeID:stringType().nullable().describe("\n * * Field Name: ContextTypeID\n * * Display Name: Context Type ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Action Context Types (vwActionContextTypes.ID)"),Status:unionType([literalType('Active'),literalType('Disabled'),literalType('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 * * Active\n * * Disabled\n * * Pending\n * * Description: Status of the action context (Pending, Active, Disabled)."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Action:stringType().describe("\n * * Field Name: Action\n * * Display Name: Action\n * * SQL Data Type: nvarchar(425)"),ContextType:stringType().nullable().describe("\n * * Field Name: ContextType\n * * Display Name: Context Type\n * * SQL Data Type: nvarchar(255)")});/**
63347
63674
  * zod schema definition for the entity MJ: Action Execution Logs
63348
- */var MJActionExecutionLogSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ActionID:stringType().describe("\n * * Field Name: ActionID\n * * Display Name: Action ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Actions (vwActions.ID)"),StartedAt:dateType().describe("\n * * Field Name: StartedAt\n * * Display Name: Started At\n * * SQL Data Type: datetimeoffset\n * * Default Value: sysdatetimeoffset()\n * * Description: Timestamp when the action execution started (timezone-aware)"),EndedAt:dateType().nullable().describe("\n * * Field Name: EndedAt\n * * Display Name: Ended At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp when the action execution ended (timezone-aware)"),Params:stringType().nullable().describe("\n * * Field Name: Params\n * * Display Name: Params\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON-formatted input parameters passed to the action during execution, storing the exact values used for this specific run."),ResultCode:stringType().nullable().describe("\n * * Field Name: ResultCode\n * * Display Name: Result Code\n * * SQL Data Type: nvarchar(255)\n * * Description: The outcome code returned by the action execution, indicating success, failure, or specific error conditions as defined in Action Result Codes."),UserID:stringType().describe("\n * * Field Name: UserID\n * * Display Name: User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)"),RetentionPeriod:numberType().nullable().describe("\n * * Field Name: RetentionPeriod\n * * Display Name: Retention Period\n * * SQL Data Type: int\n * * Description: Number of days to retain the log; NULL for indefinite retention."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Message:stringType().nullable().describe("\n * * Field Name: Message\n * * Display Name: Message\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON-formatted output data or response from the action execution"),Action:stringType().describe("\n * * Field Name: Action\n * * Display Name: Action\n * * SQL Data Type: nvarchar(425)"),User:stringType().describe("\n * * Field Name: User\n * * Display Name: User\n * * SQL Data Type: nvarchar(100)")});/**
63675
+ */var MJActionExecutionLogSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ActionID:stringType().describe("\n * * Field Name: ActionID\n * * Display Name: Action ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Actions (vwActions.ID)"),StartedAt:dateType().describe("\n * * Field Name: StartedAt\n * * Display Name: Started At\n * * SQL Data Type: datetimeoffset\n * * Default Value: sysdatetimeoffset()\n * * Description: Timestamp when the action execution started (timezone-aware)"),EndedAt:dateType().nullable().describe("\n * * Field Name: EndedAt\n * * Display Name: Ended At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp when the action execution ended (timezone-aware)"),Params:stringType().nullable().describe("\n * * Field Name: Params\n * * Display Name: Params\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON-formatted input parameters AS THE ACTION WAS CALLED, captured once when execution starts and never overwritten. Custom and Generated actions mutate their parameter array in place, so this is the only durable record of the values actually passed in; the final state lives in ResultParams. Parameter values may be redacted per ActionParam.LogValue / EntityActionParam.LogValue, and whole-record value types are never written - see the parameter's own documentation."),ResultCode:stringType().nullable().describe("\n * * Field Name: ResultCode\n * * Display Name: Result Code\n * * SQL Data Type: nvarchar(255)\n * * Description: The outcome code returned by the action execution, indicating success, failure, or specific error conditions as defined in Action Result Codes."),UserID:stringType().describe("\n * * Field Name: UserID\n * * Display Name: User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)"),RetentionPeriod:numberType().nullable().describe("\n * * Field Name: RetentionPeriod\n * * Display Name: Retention Period\n * * SQL Data Type: int\n * * Description: Number of days to retain the log; NULL for indefinite retention."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Message:stringType().nullable().describe("\n * * Field Name: Message\n * * Display Name: Message\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Human-readable summary message returned by the action - the reason for a refusal, or a short description of what was done. Not the action's output data: parameter values live in Params and ResultParams, and the outcome code in ResultCode."),EntityActionID:stringType().nullable().describe("\n * * Field Name: EntityActionID\n * * Display Name: Entity Action ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entity Actions (vwEntityActions.ID)\n * * Description: Optional. The Entity Action binding that caused this run. NULL when the action was invoked directly - from a resolver, a script, an agent step or a scheduled action."),EntityActionInvocationTypeID:stringType().nullable().describe("\n * * Field Name: EntityActionInvocationTypeID\n * * Display Name: Entity Action Invocation Type ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entity Action Invocation Types (vwEntityActionInvocationTypes.ID)\n * * Description: Optional. Which lifecycle event fired the binding - AfterUpdate, Validate, List and so on. Recorded separately from EntityActionID because one binding may be attached to several invocation types, and telling a Validate refusal apart from an AfterUpdate side effect is the first question anyone asks of this log."),TargetEntityID:stringType().nullable().describe("\n * * Field Name: TargetEntityID\n * * Display Name: Target Entity ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)\n * * Description: Optional. The entity of the record this run operated on. Deliberately denormalized rather than joined through EntityActionID: it survives the binding being deleted or retargeted, and it lets the log be queried by record with no join. Kept generic because every invoker has a subject - not only Entity Actions."),TargetRecordID:stringType().nullable().describe("\n * * Field Name: TargetRecordID\n * * Display Name: Target Record ID\n * * SQL Data Type: nvarchar(450)\n * * Description: Optional. The primary key of the record this run operated on, as text, paired with TargetEntityID. For multi-record invocation types (List, View) one log row is written per record, so this is always a single record."),ResultParams:stringType().nullable().describe("\n * * Field Name: ResultParams\n * * Display Name: Result Params\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON-formatted FINAL parameter set captured when the action finished - the inputs as the action left them, plus any output parameters it produced. Written on FAILURE exactly as on success, under the same redaction rules: a failed run's partially-mutated inputs are usually the most diagnostic thing available, and an audit trail that records only successes is not an audit trail. Distinct from Params, which holds the values the action was called with and is never overwritten. NULL means one thing only - the run never finished (process died, host killed) - so it is a signal rather than an absence, and must not be backfilled."),Action:stringType().describe("\n * * Field Name: Action\n * * Display Name: Action\n * * SQL Data Type: nvarchar(425)"),User:stringType().describe("\n * * Field Name: User\n * * Display Name: User\n * * SQL Data Type: nvarchar(100)"),EntityAction:stringType().nullable().describe("\n * * Field Name: EntityAction\n * * Display Name: Entity Action\n * * SQL Data Type: nvarchar(425)"),EntityActionInvocationType:stringType().nullable().describe("\n * * Field Name: EntityActionInvocationType\n * * Display Name: Entity Action Invocation Type\n * * SQL Data Type: nvarchar(255)"),TargetEntity:stringType().nullable().describe("\n * * Field Name: TargetEntity\n * * Display Name: Target Entity\n * * SQL Data Type: nvarchar(255)")});/**
63349
63676
  * zod schema definition for the entity MJ: Action Filters
63350
63677
  */var MJActionFilterSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),UserDescription:stringType().describe("\n * * Field Name: UserDescription\n * * Display Name: User Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Human-readable explanation of what this filter checks and when it should prevent action execution, written for non-technical users."),UserComments:stringType().nullable().describe("\n * * Field Name: UserComments\n * * Display Name: User Comments\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Additional notes or implementation details about the filter logic, including examples or edge cases to consider."),Code:stringType().describe("\n * * Field Name: Code\n * * Display Name: Code\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JavaScript code that evaluates to true (allow action) or false (prevent action), executed in the same context as the action."),CodeExplanation:stringType().nullable().describe("\n * * Field Name: CodeExplanation\n * * Display Name: Code Explanation\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Technical documentation of the filter code logic, including expected inputs, outputs, and any dependencies or assumptions."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: __mj _Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: __mj _Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()")});/**
63351
63678
  * zod schema definition for the entity MJ: Action Libraries
63352
63679
  */var MJActionLibrarySchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ActionID:stringType().describe("\n * * Field Name: ActionID\n * * Display Name: Action ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Actions (vwActions.ID)"),LibraryID:stringType().describe("\n * * Field Name: LibraryID\n * * Display Name: Library ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Libraries (vwLibraries.ID)"),ItemsUsed:stringType().nullable().describe("\n * * Field Name: ItemsUsed\n * * Display Name: Items Used\n * * SQL Data Type: nvarchar(MAX)\n * * Description: List of classes and functions used by the action from the library."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Action:stringType().describe("\n * * Field Name: Action\n * * Display Name: Action\n * * SQL Data Type: nvarchar(425)"),Library:stringType().describe("\n * * Field Name: Library\n * * Display Name: Library\n * * SQL Data Type: nvarchar(255)")});/**
63353
63680
  * zod schema definition for the entity MJ: Action Params
63354
- */var MJActionParamSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ActionID:stringType().describe("\n * * Field Name: ActionID\n * * Display Name: Action\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Actions (vwActions.ID)"),Name:stringType().describe("\n * * Field Name: Name\n * * Display Name: Parameter Name\n * * SQL Data Type: nvarchar(255)"),DefaultValue:stringType().nullable().describe("\n * * Field Name: DefaultValue\n * * Display Name: Default Value\n * * SQL Data Type: nvarchar(MAX)\n * * Description: The default value for this parameter if not provided during action execution, can be a literal value or JSON for complex types."),Type:unionType([literalType('Both'),literalType('Input'),literalType('Output')]).describe("\n * * Field Name: Type\n * * Display Name: Parameter Direction\n * * SQL Data Type: nchar(10)\n * * Value List Type: List\n * * Possible Values \n * * Both\n * * Input\n * * Output\n * * Description: Specifies whether this parameter is used for Input, Output, or Both directions in the action execution flow."),ValueType:unionType([literalType('BaseEntity Sub-Class'),literalType('BaseEntity Sub-Class'),literalType('MediaOutput'),literalType('Other'),literalType('Other'),literalType('Scalar'),literalType('Scalar'),literalType('Simple Object'),literalType('Simple Object')]).describe("\n * * Field Name: ValueType\n * * Display Name: Value Type\n * * SQL Data Type: nvarchar(30)\n * * Value List Type: List\n * * Possible Values \n * * BaseEntity Sub-Class\n * * BaseEntity Sub-Class\n * * MediaOutput\n * * Other\n * * Other\n * * Scalar\n * * Scalar\n * * Simple Object\n * * Simple Object\n * * Description: Tracks the basic value type of the parameter, additional information can be provided in the Description field"),IsArray:booleanType().describe("\n * * Field Name: IsArray\n * * Display Name: Is Array\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Indicates whether this parameter accepts or returns an array of values rather than a single value."),Description:stringType().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)"),IsRequired:booleanType().describe("\n * * Field Name: IsRequired\n * * Display Name: Is Required\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Determines if this parameter must be provided for input parameters or will always be populated for output parameters."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),MediaModality:unionType([literalType('Audio'),literalType('Image'),literalType('Video')]).nullable().describe("\n * * Field Name: MediaModality\n * * Display Name: Media Modality\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * Audio\n * * Image\n * * Video\n * * Description: Specifies the type of media this parameter outputs when ValueType is MediaOutput. Used for action discovery and validation."),Action:stringType().describe("\n * * Field Name: Action\n * * Display Name: Action\n * * SQL Data Type: nvarchar(425)")});/**
63681
+ */var MJActionParamSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ActionID:stringType().describe("\n * * Field Name: ActionID\n * * Display Name: Action\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Actions (vwActions.ID)"),Name:stringType().describe("\n * * Field Name: Name\n * * Display Name: Parameter Name\n * * SQL Data Type: nvarchar(255)"),DefaultValue:stringType().nullable().describe("\n * * Field Name: DefaultValue\n * * Display Name: Default Value\n * * SQL Data Type: nvarchar(MAX)\n * * Description: The default value for this parameter if not provided during action execution, can be a literal value or JSON for complex types."),Type:unionType([literalType('Both'),literalType('Input'),literalType('Output')]).describe("\n * * Field Name: Type\n * * Display Name: Parameter Direction\n * * SQL Data Type: nchar(10)\n * * Value List Type: List\n * * Possible Values \n * * Both\n * * Input\n * * Output\n * * Description: Specifies whether this parameter is used for Input, Output, or Both directions in the action execution flow."),ValueType:unionType([literalType('BaseEntity Sub-Class'),literalType('BaseEntity Sub-Class'),literalType('MediaOutput'),literalType('Other'),literalType('Other'),literalType('Scalar'),literalType('Scalar'),literalType('Simple Object'),literalType('Simple Object')]).describe("\n * * Field Name: ValueType\n * * Display Name: Value Type\n * * SQL Data Type: nvarchar(30)\n * * Value List Type: List\n * * Possible Values \n * * BaseEntity Sub-Class\n * * BaseEntity Sub-Class\n * * MediaOutput\n * * Other\n * * Other\n * * Scalar\n * * Scalar\n * * Simple Object\n * * Simple Object\n * * Description: Tracks the basic value type of the parameter, additional information can be provided in the Description field"),IsArray:booleanType().describe("\n * * Field Name: IsArray\n * * Display Name: Is Array\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Indicates whether this parameter accepts or returns an array of values rather than a single value."),Description:stringType().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)"),IsRequired:booleanType().describe("\n * * Field Name: IsRequired\n * * Display Name: Is Required\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Determines if this parameter must be provided for input parameters or will always be populated for output parameters."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),MediaModality:unionType([literalType('Audio'),literalType('Image'),literalType('Video')]).nullable().describe("\n * * Field Name: MediaModality\n * * Display Name: Media Modality\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * Audio\n * * Image\n * * Video\n * * Description: Specifies the type of media this parameter outputs when ValueType is MediaOutput. Used for action discovery and validation."),LogValue:booleanType().describe("\n * * Field Name: LogValue\n * * Display Name: Log Value\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Whether this parameter's VALUE may be written to ActionExecutionLog.Params. Default 1. Set to 0 for parameters that carry records, credentials or personal data - for example the Data payload of Execute Agent. Independent of the hard rule that Entity Action params of ValueType 'Entity Object' or 'Entity Object Data' are never logged regardless of this flag. When logging is suppressed the log records the parameter name, its type and a redaction marker, never the value."),Action:stringType().describe("\n * * Field Name: Action\n * * Display Name: Action\n * * SQL Data Type: nvarchar(425)")});/**
63355
63682
  * zod schema definition for the entity MJ: Action Result Codes
63356
63683
  */var MJActionResultCodeSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ActionID:stringType().describe("\n * * Field Name: ActionID\n * * Display Name: Action ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Actions (vwActions.ID)"),ResultCode:stringType().describe("\n * * Field Name: ResultCode\n * * Display Name: Result Code\n * * SQL Data Type: nvarchar(255)\n * * Description: The unique code string returned by the action to indicate specific outcomes, used for programmatic handling of results."),IsSuccess:booleanType().describe("\n * * Field Name: IsSuccess\n * * Display Name: Is Success\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Indicates if the result code is a success or not. It is possible an action might have more than one failure condition/result code and same for success conditions."),Description:stringType().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Description of the result code."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Action:stringType().describe("\n * * Field Name: Action\n * * Display Name: Action\n * * SQL Data Type: nvarchar(425)")});/**
63357
63684
  * zod schema definition for the entity MJ: Actions
@@ -63491,13 +63818,13 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
63491
63818
  * zod schema definition for the entity MJ: AI Vendors
63492
63819
  */var MJAIVendorSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),Name:stringType().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(50)\n * * Description: The unique name of the vendor."),Description:stringType().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Detailed description of the vendor and their AI offerings."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),CredentialTypeID:stringType().nullable().describe("\n * * Field Name: CredentialTypeID\n * * Display Name: Credential Type ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Credential Types (vwCredentialTypes.ID)\n * * Description: Reference to the type of credential this vendor expects (e.g., API Key, GCP Service Account, Azure Service Principal). Used for type-based default credential resolution when no explicit binding exists, and for UI guidance when creating credentials."),CredentialType:stringType().nullable().describe("\n * * Field Name: CredentialType\n * * Display Name: Credential Type\n * * SQL Data Type: nvarchar(100)")});/**
63493
63820
  * zod schema definition for the entity MJ: API Application Scopes
63494
- */var MJAPIApplicationScopeSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ApplicationID:stringType().describe("\n * * Field Name: ApplicationID\n * * Display Name: Application\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: API Applications (vwAPIApplications.ID)\n * * Description: Reference to the application this ceiling rule applies to."),ScopeID:stringType().describe("\n * * Field Name: ScopeID\n * * Display Name: Scope\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: API Scopes (vwAPIScopes.ID)\n * * Description: Reference to the scope this rule applies to."),ResourcePattern:stringType().nullable().describe("\n * * Field Name: ResourcePattern\n * * Display Name: Resource Pattern\n * * SQL Data Type: nvarchar(750)\n * * Description: Glob pattern for matching resources (e.g., Users,Accounts or Skip* or *). NULL means match all resources."),PatternType:unionType([literalType('Exclude'),literalType('Include')]).describe("\n * * Field Name: PatternType\n * * Display Name: Pattern Type\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Include\n * * Value List Type: List\n * * Possible Values \n * * Exclude\n * * Include\n * * Description: How to interpret the pattern: Include (grant if matches) or Exclude (grant if does NOT match)."),IsDeny:booleanType().describe("\n * * Field Name: IsDeny\n * * Display Name: Deny\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: If true, this rule explicitly DENIES access. Deny rules trump allow rules at the same priority level."),Priority:numberType().describe("\n * * Field Name: Priority\n * * Display Name: Priority\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Rule evaluation order. Higher priority rules are evaluated first. Within same priority, deny rules are evaluated before allow rules."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Application:stringType().describe("\n * * Field Name: Application\n * * Display Name: Application Name\n * * SQL Data Type: nvarchar(100)"),Scope:stringType().describe("\n * * Field Name: Scope\n * * Display Name: Scope Name\n * * SQL Data Type: nvarchar(100)")});/**
63821
+ */var MJAPIApplicationScopeSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ApplicationID:stringType().describe("\n * * Field Name: ApplicationID\n * * Display Name: Application\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: API Applications (vwAPIApplications.ID)\n * * Description: Reference to the application this ceiling rule applies to."),ScopeID:stringType().describe("\n * * Field Name: ScopeID\n * * Display Name: Scope\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: API Scopes (vwAPIScopes.ID)\n * * Description: Reference to the scope this rule applies to."),ResourcePattern:stringType().nullable().describe("\n * * Field Name: ResourcePattern\n * * Display Name: Resource Pattern\n * * SQL Data Type: nvarchar(750)\n * * Description: Glob pattern for matching resources (e.g., Users,Accounts or Skip* or *). NULL means match all resources."),PatternType:unionType([literalType('Exclude'),literalType('Include')]).describe("\n * * Field Name: PatternType\n * * Display Name: Pattern Type\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Include\n * * Value List Type: List\n * * Possible Values \n * * Exclude\n * * Include\n * * Description: How to interpret the pattern: Include (grant if matches) or Exclude (grant if does NOT match)."),IsDeny:booleanType().describe("\n * * Field Name: IsDeny\n * * Display Name: Deny\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: If true, this rule explicitly DENIES access. Deny rules trump allow rules at the same priority level."),Priority:numberType().describe("\n * * Field Name: Priority\n * * Display Name: Priority\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Rule evaluation order. Higher priority rules are evaluated first. Within same priority, deny rules are evaluated before allow rules."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),RowFilterID:stringType().nullable().describe("\n * * Field Name: RowFilterID\n * * Display Name: Row Filter ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Row Level Security Filters (vwRowLevelSecurityFilters.ID)\n * * Description: Optional row-level filter acting as a CEILING for every API key operating under this application \u2014 a restriction keys inherit and cannot widen. Composes with the per-key filter (APIKeyScope.RowFilterID) and with role-based RLS using AND, never OR, so no layer can broaden another. References the same RowLevelSecurityFilter catalog used by role-based RLS. NULL (the default) means the application imposes no row ceiling. The same authoring constraints as APIKeyScope.RowFilterID apply: exact single-entity resource pattern, all referenced columns must exist on that entity, and all referrers of the filter record must resolve to the same entity."),Application:stringType().describe("\n * * Field Name: Application\n * * Display Name: Application Name\n * * SQL Data Type: nvarchar(100)"),Scope:stringType().describe("\n * * Field Name: Scope\n * * Display Name: Scope Name\n * * SQL Data Type: nvarchar(100)"),RowFilter:stringType().nullable().describe("\n * * Field Name: RowFilter\n * * Display Name: Row Filter\n * * SQL Data Type: nvarchar(100)")});/**
63495
63822
  * zod schema definition for the entity MJ: API Applications
63496
63823
  */var MJAPIApplicationSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),Name:stringType().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(100)\n * * Description: Unique name identifying the application (e.g., MJAPI, MCPServer, Portal, CLI)."),Description:stringType().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(500)\n * * Description: Human-readable description of the application and its purpose."),IsActive:booleanType().describe("\n * * Field Name: IsActive\n * * Display Name: Active\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Whether this application is currently active. Inactive applications reject all API key authentication."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()")});/**
63497
63824
  * zod schema definition for the entity MJ: API Key Applications
63498
63825
  */var MJAPIKeyApplicationSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),APIKeyID:stringType().describe("\n * * Field Name: APIKeyID\n * * Display Name: API Key\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: API Keys (vwAPIKeys.ID)\n * * Description: Reference to the API key being bound to an application."),ApplicationID:stringType().describe("\n * * Field Name: ApplicationID\n * * Display Name: Application\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: API Applications (vwAPIApplications.ID)\n * * Description: Reference to the application this key is authorized to use."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),APIKey:stringType().describe("\n * * Field Name: APIKey\n * * Display Name: API Key Value\n * * SQL Data Type: nvarchar(255)"),Application:stringType().describe("\n * * Field Name: Application\n * * Display Name: Application Name\n * * SQL Data Type: nvarchar(100)")});/**
63499
63826
  * zod schema definition for the entity MJ: API Key Scopes
63500
- */var MJAPIKeyScopeSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),APIKeyID:stringType().describe("\n * * Field Name: APIKeyID\n * * Display Name: API Key\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: API Keys (vwAPIKeys.ID)"),ScopeID:stringType().describe("\n * * Field Name: ScopeID\n * * Display Name: Scope\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: API Scopes (vwAPIScopes.ID)"),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ResourcePattern:stringType().nullable().describe("\n * * Field Name: ResourcePattern\n * * Display Name: Resource Pattern\n * * SQL Data Type: nvarchar(750)\n * * Description: Glob pattern for matching resources (e.g., Users,Accounts or Skip* or *). NULL means match all resources under this scope."),PatternType:unionType([literalType('Exclude'),literalType('Include')]).describe("\n * * Field Name: PatternType\n * * Display Name: Pattern Type\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Include\n * * Value List Type: List\n * * Possible Values \n * * Exclude\n * * Include\n * * Description: How to interpret the pattern: Include (grant if matches) or Exclude (grant if does NOT match)."),IsDeny:booleanType().describe("\n * * Field Name: IsDeny\n * * Display Name: Is Deny\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: If true, this rule explicitly DENIES access. Deny rules trump allow rules at the same priority level."),Priority:numberType().describe("\n * * Field Name: Priority\n * * Display Name: Priority\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Rule evaluation order. Higher priority rules are evaluated first. Within same priority, deny rules are evaluated before allow rules."),APIKey:stringType().describe("\n * * Field Name: APIKey\n * * Display Name: API Key\n * * SQL Data Type: nvarchar(255)"),Scope:stringType().describe("\n * * Field Name: Scope\n * * Display Name: Scope\n * * SQL Data Type: nvarchar(100)")});/**
63827
+ */var MJAPIKeyScopeSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),APIKeyID:stringType().describe("\n * * Field Name: APIKeyID\n * * Display Name: API Key\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: API Keys (vwAPIKeys.ID)"),ScopeID:stringType().describe("\n * * Field Name: ScopeID\n * * Display Name: Scope\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: API Scopes (vwAPIScopes.ID)"),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ResourcePattern:stringType().nullable().describe("\n * * Field Name: ResourcePattern\n * * Display Name: Resource Pattern\n * * SQL Data Type: nvarchar(750)\n * * Description: Glob pattern for matching resources (e.g., Users,Accounts or Skip* or *). NULL means match all resources under this scope."),PatternType:unionType([literalType('Exclude'),literalType('Include')]).describe("\n * * Field Name: PatternType\n * * Display Name: Pattern Type\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Include\n * * Value List Type: List\n * * Possible Values \n * * Exclude\n * * Include\n * * Description: How to interpret the pattern: Include (grant if matches) or Exclude (grant if does NOT match)."),IsDeny:booleanType().describe("\n * * Field Name: IsDeny\n * * Display Name: Is Deny\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: If true, this rule explicitly DENIES access. Deny rules trump allow rules at the same priority level."),Priority:numberType().describe("\n * * Field Name: Priority\n * * Display Name: Priority\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Rule evaluation order. Higher priority rules are evaluated first. Within same priority, deny rules are evaluated before allow rules."),RowFilterID:stringType().nullable().describe("\n * * Field Name: RowFilterID\n * * Display Name: Row Filter ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Row Level Security Filters (vwRowLevelSecurityFilters.ID)\n * * Description: Optional row-level filter narrowing WHICH RECORDS this scope grant applies to, in addition to the resource pattern that governs which entities. References the same RowLevelSecurityFilter catalog used by role-based RLS, so the filter text flows through the standard {{Token}} substitution engine and every existing RLS enforcement point (RunView, Load by primary key, save, delete, search). NULL (the default) means no row restriction \u2014 behavior identical to before this column existed. When set, the rule's ResourcePattern must name a single exact entity (no wildcards, no comma-separated lists), every column the filter references must resolve to a real non-virtual field on that entity, and every other referrer of the same filter record must resolve to that same entity. Critically, this filter is evaluated INDEPENDENTLY of the role-RLS exemption: a user exempt from role RLS is still bound by their key's filter, because narrowing a principal below what their roles allow is the entire purpose of a key ceiling."),APIKey:stringType().describe("\n * * Field Name: APIKey\n * * Display Name: API Key\n * * SQL Data Type: nvarchar(255)"),Scope:stringType().describe("\n * * Field Name: Scope\n * * Display Name: Scope\n * * SQL Data Type: nvarchar(100)"),RowFilter:stringType().nullable().describe("\n * * Field Name: RowFilter\n * * Display Name: Row Filter\n * * SQL Data Type: nvarchar(100)")});/**
63501
63828
  * zod schema definition for the entity MJ: API Key Usage Logs
63502
63829
  */var MJAPIKeyUsageLogSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),APIKeyID:stringType().describe("\n * * Field Name: APIKeyID\n * * Display Name: API Key\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: API Keys (vwAPIKeys.ID)"),Endpoint:stringType().describe("\n * * Field Name: Endpoint\n * * Display Name: Endpoint\n * * SQL Data Type: nvarchar(500)\n * * Description: The API endpoint path that was accessed (e.g., /mcp, /graphql, /api/v1/entities)."),Operation:stringType().nullable().describe("\n * * Field Name: Operation\n * * Display Name: Operation\n * * SQL Data Type: nvarchar(255)\n * * Description: The specific operation performed, such as the GraphQL operation name or MCP tool invoked (e.g., Get_Users_Record, Run_Agent)."),Method:stringType().describe("\n * * Field Name: Method\n * * Display Name: Method\n * * SQL Data Type: nvarchar(10)\n * * Description: HTTP method used for the request (GET, POST, PUT, DELETE, etc.)."),StatusCode:numberType().describe("\n * * Field Name: StatusCode\n * * Display Name: Status Code\n * * SQL Data Type: int\n * * Description: HTTP response status code returned to the client (e.g., 200 for success, 401 for unauthorized, 500 for server error)."),ResponseTimeMs:numberType().nullable().describe("\n * * Field Name: ResponseTimeMs\n * * Display Name: Response Time (ms)\n * * SQL Data Type: int\n * * Description: Total time in milliseconds to process the request and return a response. Useful for performance monitoring."),IPAddress:stringType().nullable().describe("\n * * Field Name: IPAddress\n * * Display Name: IP Address\n * * SQL Data Type: nvarchar(45)\n * * Description: Client IP address that made the request. Supports both IPv4 and IPv6 addresses (up to 45 characters)."),UserAgent:stringType().nullable().describe("\n * * Field Name: UserAgent\n * * Display Name: User Agent\n * * SQL Data Type: nvarchar(500)\n * * Description: User-Agent header from the HTTP request, identifying the client application or library making the API call."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ApplicationID:stringType().nullable().describe("\n * * Field Name: ApplicationID\n * * Display Name: Application\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: API Applications (vwAPIApplications.ID)\n * * Description: The application through which this request was made (MJAPI, MCPServer, etc.)."),RequestedResource:stringType().nullable().describe("\n * * Field Name: RequestedResource\n * * Display Name: Requested Resource\n * * SQL Data Type: nvarchar(500)\n * * Description: The specific resource that was requested (e.g., entity name, agent name, query name)."),ScopesEvaluated:stringType().nullable().describe("\n * * Field Name: ScopesEvaluated\n * * Display Name: Scopes Evaluated\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON array containing detailed evaluation of each scope rule checked during authorization."),AuthorizationResult:unionType([literalType('Allowed'),literalType('Denied'),literalType('NoScopesRequired')]).describe("\n * * Field Name: AuthorizationResult\n * * Display Name: Authorization Result\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Allowed\n * * Value List Type: List\n * * Possible Values \n * * Allowed\n * * Denied\n * * NoScopesRequired\n * * Description: Final authorization result: Allowed, Denied, or NoScopesRequired (for operations that do not require scope checks)."),DeniedReason:stringType().nullable().describe("\n * * Field Name: DeniedReason\n * * Display Name: Denied Reason\n * * SQL Data Type: nvarchar(500)\n * * Description: When authorization is denied, explains why (e.g., app ceiling blocked, no matching key scope, explicit deny rule)."),APIKey:stringType().describe("\n * * Field Name: APIKey\n * * Display Name: API Key\n * * SQL Data Type: nvarchar(255)"),Application:stringType().nullable().describe("\n * * Field Name: Application\n * * Display Name: Application\n * * SQL Data Type: nvarchar(100)")});/**
63503
63830
  * zod schema definition for the entity MJ: API Keys
@@ -63593,7 +63920,7 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
63593
63920
  * zod schema definition for the entity MJ: Content Item Attributes
63594
63921
  */var MJContentItemAttributeSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ContentItemID:stringType().describe("\n * * Field Name: ContentItemID\n * * Display Name: Content Item ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Content Items (vwContentItems.ID)"),Name:stringType().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(100)"),Value:stringType().describe("\n * * Field Name: Value\n * * Display Name: Value\n * * SQL Data Type: nvarchar(MAX)\n * * Description: The extracted or assigned value for this attribute on the content item."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ContentItem:stringType().nullable().describe("\n * * Field Name: ContentItem\n * * Display Name: Content Item\n * * SQL Data Type: nvarchar(250)")});/**
63595
63922
  * zod schema definition for the entity MJ: Content Item Chunks
63596
- */var MJContentItemChunkSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ContentItemID:stringType().describe("\n * * Field Name: ContentItemID\n * * Display Name: Content Item\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Content Items (vwContentItems.ID)"),Sequence:numberType().describe("\n * * Field Name: Sequence\n * * Display Name: Sequence\n * * SQL Data Type: int\n * * Description: Zero-based ordinal position of this chunk within the parent Content Item, preserving the original order in which the text was split."),Text:stringType().nullable().describe("\n * * Field Name: Text\n * * Display Name: Text\n * * SQL Data Type: nvarchar(MAX)\n * * Description: The chunk of extracted text (from the parent Content Item) that was embedded to produce this chunk's vector. NULL for media-only segments (for example an image, or a video window with no transcript), where the embedded payload is the media itself and any readable representation lives in Description/Transcript."),VectorRecordID:stringType().nullable().describe("\n * * Field Name: VectorRecordID\n * * Display Name: Vector Record ID\n * * SQL Data Type: nvarchar(100)\n * * Description: The identifier of this chunk's vector record in the vector database (e.g. Pinecone) \u2014 the deterministic key MemberJunction assigns and upserts the chunk's embedding under. Provides traceability from the chunk back to its stored vector."),EmbeddingStatus:unionType([literalType('Active'),literalType('Complete'),literalType('Failed'),literalType('Pending'),literalType('Processed'),literalType('Processing'),literalType('Skipped')]).describe("\n * * Field Name: EmbeddingStatus\n * * Display Name: Embedding Status\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Pending\n * * Value List Type: List\n * * Possible Values \n * * Active\n * * Complete\n * * Failed\n * * Pending\n * * Processed\n * * Processing\n * * Skipped\n * * Description: Embedding lifecycle state of this chunk: Pending (default), Processing, Active, Complete, Processed, Failed, or Skipped."),TaggingStatus:unionType([literalType('Active'),literalType('Complete'),literalType('Failed'),literalType('Pending'),literalType('Processed'),literalType('Processing'),literalType('Skipped')]).describe("\n * * Field Name: TaggingStatus\n * * Display Name: Tagging Status\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Pending\n * * Value List Type: List\n * * Possible Values \n * * Active\n * * Complete\n * * Failed\n * * Pending\n * * Processed\n * * Processing\n * * Skipped\n * * Description: Tagging lifecycle state of this chunk: Pending (default), Processing, Active, Complete, Processed, Failed, or Skipped."),DeleteStatus:unionType([literalType('Deleted'),literalType('Pending')]).nullable().describe("\n * * Field Name: DeleteStatus\n * * Display Name: Delete Status\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * Deleted\n * * Pending\n * * Description: Deletion lifecycle state of this chunk's vector: NULL when not slated for deletion, Pending when vector removal is queued, or Deleted once the vector has been removed from the vector database."),LastEmbeddedAt:dateType().nullable().describe("\n * * Field Name: LastEmbeddedAt\n * * Display Name: Last Embedded At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp of the last successful embedding of this chunk."),LastTaggedAt:dateType().nullable().describe("\n * * Field Name: LastTaggedAt\n * * Display Name: Last Tagged At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp of the last successful tagging of this chunk."),LastDeletedAt:dateType().nullable().describe("\n * * Field Name: LastDeletedAt\n * * Display Name: Last Deleted At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp of the last successful deletion of this chunk's vector from the vector database."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Modality:unionType([literalType('audio'),literalType('image'),literalType('multimodal'),literalType('text'),literalType('video')]).describe("\n * * Field Name: Modality\n * * Display Name: Modality\n * * SQL Data Type: nvarchar(20)\n * * Default Value: text\n * * Value List Type: List\n * * Possible Values \n * * audio\n * * image\n * * multimodal\n * * text\n * * video\n * * Description: The modality of this chunk's embedded payload: text (default), image, audio, video, or multimodal (text and media fused into a single vector). Determines which vector index the chunk's embedding belongs to, since a multimodal embedding model produces vectors of a different dimension than a text model, and is used at retrieval time to merge results per modality rather than taking a single global top-k."),StartOffset:numberType().nullable().describe("\n * * Field Name: StartOffset\n * * Display Name: Start Offset\n * * SQL Data Type: int\n * * Description: Inclusive character offset where this chunk begins within the parent Content Item's extracted text. Together with EndOffset this is the provenance link that resolves a search hit back to the exact passage in the source document. NULL for media segments, which are positioned by StartMs/EndMs instead."),EndOffset:numberType().nullable().describe("\n * * Field Name: EndOffset\n * * Display Name: End Offset\n * * SQL Data Type: int\n * * Description: Exclusive character offset where this chunk ends within the parent Content Item's extracted text. See StartOffset. NULL for media segments."),StartMs:numberType().nullable().describe("\n * * Field Name: StartMs\n * * Display Name: Start (ms)\n * * SQL Data Type: int\n * * Description: Start of this chunk's time window, in milliseconds from the beginning of the parent audio or video asset. Set by transcript- or window-based segmentation; enables time-windowed playback deep-links from a search result (for example 14:22-15:05 of a session recording). NULL for text segments."),EndMs:numberType().nullable().describe("\n * * Field Name: EndMs\n * * Display Name: End (ms)\n * * SQL Data Type: int\n * * Description: End of this chunk's time window, in milliseconds from the beginning of the parent audio or video asset. See StartMs. NULL for text segments."),PageNumber:numberType().nullable().describe("\n * * Field Name: PageNumber\n * * Display Name: Page Number\n * * SQL Data Type: int\n * * Description: One-based page number this chunk came from, for paginated sources such as PDFs or slide decks. Provides citation-grade provenance alongside the character offsets. NULL when the source is not paginated."),SegmentTitle:stringType().nullable().describe("\n * * Field Name: SegmentTitle\n * * Display Name: Segment Title\n * * SQL Data Type: nvarchar(500)\n * * Description: Human-readable label for this segment \u2014 a document heading for structure-based segmentation, or a generated chapter title for topic- and transcript-based segmentation. Displayed with search results and prepended to the embedded text so a chunk's vector carries its own topic."),Description:stringType().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: An AI-generated description of this chunk's content, primarily for non-text segments. Retrieval of a media chunk otherwise yields only a pointer (an asset and a time window) that an agent cannot reason over; this column is the readable representation that an agent reads, a cross-encoder reranks, and lexical search matches. A short summary of it may be mirrored into the vector record's metadata for display and filtering, but the full text belongs here."),Transcript:stringType().nullable().describe("\n * * Field Name: Transcript\n * * Display Name: Transcript\n * * SQL Data Type: nvarchar(MAX)\n * * Description: The verbatim transcript covering this chunk's time window, for audio and video segments, including speaker labels where the source provides them. Distinct from Description, which is a generated summary: this is what was actually said, and it is what makes a recording findable by lexical search."),SegmenterKey:stringType().nullable().describe("\n * * Field Name: SegmenterKey\n * * Display Name: Segmenter Key\n * * SQL Data Type: nvarchar(100)\n * * Description: Registration key of the segmentation strategy that produced this chunk (for example StructuralText, SemanticText, Transcript, or FixedWindow). Provenance: when a Content Source's configured strategy changes, this identifies which chunks were produced by the previous strategy and therefore need re-chunking."),ParentChunkID:stringType().nullable().describe("\n * * Field Name: ParentChunkID\n * * Display Name: Parent Chunk\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Content Item Chunks (vwContentItemChunks.ID)\n * * Description: Optional self-reference to another chunk of the same Content Item that is the parent of this one, expressing a chapter to sub-chapter hierarchy \u2014 for example a five-minute chapter of a recording and the individual speaker turns within it, or a document section and its subsections. NULL for top-level segments."),ContentItem:stringType().nullable().describe("\n * * Field Name: ContentItem\n * * Display Name: Content Item\n * * SQL Data Type: nvarchar(250)"),RootParentChunkID:stringType().nullable().describe("\n * * Field Name: RootParentChunkID\n * * Display Name: Root Parent Chunk\n * * SQL Data Type: uniqueidentifier")});/**
63923
+ */var MJContentItemChunkSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ContentItemID:stringType().describe("\n * * Field Name: ContentItemID\n * * Display Name: Content Item\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Content Items (vwContentItems.ID)"),Sequence:numberType().describe("\n * * Field Name: Sequence\n * * Display Name: Sequence\n * * SQL Data Type: int\n * * Description: Zero-based ordinal position of this chunk within the parent Content Item, preserving the original order in which the text was split."),Text:stringType().nullable().describe("\n * * Field Name: Text\n * * Display Name: Text\n * * SQL Data Type: nvarchar(MAX)\n * * Description: The chunk of extracted text (from the parent Content Item) that was embedded to produce this chunk's vector. NULL for media-only segments (for example an image, or a video window with no transcript), where the embedded payload is the media itself and any readable representation lives in Description/Transcript."),VectorRecordID:stringType().nullable().describe("\n * * Field Name: VectorRecordID\n * * Display Name: Vector Record ID\n * * SQL Data Type: nvarchar(100)\n * * Description: The identifier of this chunk's vector record in the vector database (e.g. Pinecone) \u2014 the deterministic key MemberJunction assigns and upserts the chunk's embedding under. Provides traceability from the chunk back to its stored vector."),EmbeddingStatus:unionType([literalType('Active'),literalType('Complete'),literalType('Failed'),literalType('Pending'),literalType('Processed'),literalType('Processing'),literalType('Skipped')]).describe("\n * * Field Name: EmbeddingStatus\n * * Display Name: Embedding Status\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Pending\n * * Value List Type: List\n * * Possible Values \n * * Active\n * * Complete\n * * Failed\n * * Pending\n * * Processed\n * * Processing\n * * Skipped\n * * Description: Embedding lifecycle state of this chunk: Pending (default), Processing, Active, Complete, Processed, Failed, or Skipped."),TaggingStatus:unionType([literalType('Active'),literalType('Complete'),literalType('Failed'),literalType('Pending'),literalType('Processed'),literalType('Processing'),literalType('Skipped')]).describe("\n * * Field Name: TaggingStatus\n * * Display Name: Tagging Status\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Pending\n * * Value List Type: List\n * * Possible Values \n * * Active\n * * Complete\n * * Failed\n * * Pending\n * * Processed\n * * Processing\n * * Skipped\n * * Description: Tagging lifecycle state of this chunk: Pending (default), Processing, Active, Complete, Processed, Failed, or Skipped."),DeleteStatus:unionType([literalType('Deleted'),literalType('Pending')]).nullable().describe("\n * * Field Name: DeleteStatus\n * * Display Name: Delete Status\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * Deleted\n * * Pending\n * * Description: Deletion lifecycle state of this chunk's vector: NULL when not slated for deletion, Pending when vector removal is queued, or Deleted once the vector has been removed from the vector database."),LastEmbeddedAt:dateType().nullable().describe("\n * * Field Name: LastEmbeddedAt\n * * Display Name: Last Embedded At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp of the last successful embedding of this chunk."),LastTaggedAt:dateType().nullable().describe("\n * * Field Name: LastTaggedAt\n * * Display Name: Last Tagged At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp of the last successful tagging of this chunk."),LastDeletedAt:dateType().nullable().describe("\n * * Field Name: LastDeletedAt\n * * Display Name: Last Deleted At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp of the last successful deletion of this chunk's vector from the vector database."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Modality:unionType([literalType('audio'),literalType('image'),literalType('multimodal'),literalType('text'),literalType('video')]).describe("\n * * Field Name: Modality\n * * Display Name: Modality\n * * SQL Data Type: nvarchar(20)\n * * Default Value: text\n * * Value List Type: List\n * * Possible Values \n * * audio\n * * image\n * * multimodal\n * * text\n * * video\n * * Description: The modality of this chunk's embedded payload: text (default), image, audio, video, or multimodal (text and media fused into a single vector). Determines which vector index the chunk's embedding belongs to, since a multimodal embedding model produces vectors of a different dimension than a text model, and is used at retrieval time to merge results per modality rather than taking a single global top-k."),StartOffset:numberType().nullable().describe("\n * * Field Name: StartOffset\n * * Display Name: Start Offset\n * * SQL Data Type: int\n * * Description: Inclusive character offset where this chunk begins within the parent Content Item's extracted text. Together with EndOffset this is the provenance link that resolves a search hit back to the exact passage in the source document. NULL for media segments, which are positioned by StartMs/EndMs instead."),EndOffset:numberType().nullable().describe("\n * * Field Name: EndOffset\n * * Display Name: End Offset\n * * SQL Data Type: int\n * * Description: Exclusive character offset where this chunk ends within the parent Content Item's extracted text. See StartOffset. NULL for media segments."),StartMs:numberType().nullable().describe("\n * * Field Name: StartMs\n * * Display Name: Start Milliseconds\n * * SQL Data Type: int\n * * Description: Start of this chunk's time window, in milliseconds from the beginning of the parent audio or video asset. Set by transcript- or window-based segmentation; enables time-windowed playback deep-links from a search result (for example 14:22-15:05 of a session recording). NULL for text segments."),EndMs:numberType().nullable().describe("\n * * Field Name: EndMs\n * * Display Name: End Milliseconds\n * * SQL Data Type: int\n * * Description: End of this chunk's time window, in milliseconds from the beginning of the parent audio or video asset. See StartMs. NULL for text segments."),PageNumber:numberType().nullable().describe("\n * * Field Name: PageNumber\n * * Display Name: Page Number\n * * SQL Data Type: int\n * * Description: One-based page number this chunk came from, for paginated sources such as PDFs or slide decks. Provides citation-grade provenance alongside the character offsets. NULL when the source is not paginated."),SegmentTitle:stringType().nullable().describe("\n * * Field Name: SegmentTitle\n * * Display Name: Segment Title\n * * SQL Data Type: nvarchar(500)\n * * Description: Human-readable label for this segment \u2014 a document heading for structure-based segmentation, or a generated chapter title for topic- and transcript-based segmentation. Displayed with search results and prepended to the embedded text so a chunk's vector carries its own topic."),Description:stringType().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: An AI-generated description of this chunk's content, primarily for non-text segments. Retrieval of a media chunk otherwise yields only a pointer (an asset and a time window) that an agent cannot reason over; this column is the readable representation that an agent reads, a cross-encoder reranks, and lexical search matches. A short summary of it may be mirrored into the vector record's metadata for display and filtering, but the full text belongs here."),Transcript:stringType().nullable().describe("\n * * Field Name: Transcript\n * * Display Name: Transcript\n * * SQL Data Type: nvarchar(MAX)\n * * Description: The verbatim transcript covering this chunk's time window, for audio and video segments, including speaker labels where the source provides them. Distinct from Description, which is a generated summary: this is what was actually said, and it is what makes a recording findable by lexical search."),SegmenterKey:stringType().nullable().describe("\n * * Field Name: SegmenterKey\n * * Display Name: Segmenter Key\n * * SQL Data Type: nvarchar(100)\n * * Description: Registration key of the segmentation strategy that produced this chunk (for example StructuralText, SemanticText, Transcript, or FixedWindow). Provenance: when a Content Source's configured strategy changes, this identifies which chunks were produced by the previous strategy and therefore need re-chunking."),ParentChunkID:stringType().nullable().describe("\n * * Field Name: ParentChunkID\n * * Display Name: Parent Chunk\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Content Item Chunks (vwContentItemChunks.ID)\n * * Description: Optional self-reference to another chunk of the same Content Item that is the parent of this one, expressing a chapter to sub-chapter hierarchy \u2014 for example a five-minute chapter of a recording and the individual speaker turns within it, or a document section and its subsections. NULL for top-level segments."),ContentItem:stringType().nullable().describe("\n * * Field Name: ContentItem\n * * Display Name: Content Item Name\n * * SQL Data Type: nvarchar(250)"),ParentChunk:stringType().nullable().describe("\n * * Field Name: ParentChunk\n * * Display Name: Parent Chunk Name\n * * SQL Data Type: nvarchar(500)"),RootParentChunkID:stringType().nullable().describe("\n * * Field Name: RootParentChunkID\n * * Display Name: Root Parent Chunk\n * * SQL Data Type: uniqueidentifier")});/**
63597
63924
  * zod schema definition for the entity MJ: Content Item Duplicates
63598
63925
  */var MJContentItemDuplicateSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ContentItemAID:stringType().describe("\n * * Field Name: ContentItemAID\n * * Display Name: Content Item A ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Content Items (vwContentItems.ID)"),ContentItemBID:stringType().describe("\n * * Field Name: ContentItemBID\n * * Display Name: Content Item B ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Content Items (vwContentItems.ID)"),SimilarityScore:numberType().describe("\n * * Field Name: SimilarityScore\n * * Display Name: Similarity Score\n * * SQL Data Type: decimal(5, 4)\n * * Description: Cosine similarity (for Vector) or exact match score (1.0 for Checksum/URL). Range 0.0-1.0."),DetectionMethod:unionType([literalType('Checksum'),literalType('Title'),literalType('URL'),literalType('Vector')]).describe("\n * * Field Name: DetectionMethod\n * * Display Name: Detection Method\n * * SQL Data Type: nvarchar(30)\n * * Default Value: Checksum\n * * Value List Type: List\n * * Possible Values \n * * Checksum\n * * Title\n * * URL\n * * Vector\n * * Description: How the duplicate was detected: Checksum (identical text hash), Vector (embedding similarity), Title (same title text), URL (same source URL)."),Status:unionType([literalType('Confirmed'),literalType('Dismissed'),literalType('Merged'),literalType('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 * * Confirmed\n * * Dismissed\n * * Merged\n * * Pending\n * * Description: Current status: Pending (awaiting review), Confirmed (verified duplicate), Dismissed (not a duplicate), Merged (one item was removed)."),ResolvedByUserID:stringType().nullable().describe("\n * * Field Name: ResolvedByUserID\n * * Display Name: Resolved By User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)"),ResolvedAt:dateType().nullable().describe("\n * * Field Name: ResolvedAt\n * * Display Name: Resolved At\n * * SQL Data Type: datetimeoffset"),Resolution:unionType([literalType('KeepA'),literalType('KeepB'),literalType('MergeBoth'),literalType('NotDuplicate')]).nullable().describe("\n * * Field Name: Resolution\n * * Display Name: Resolution\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * KeepA\n * * KeepB\n * * MergeBoth\n * * NotDuplicate\n * * Description: How the duplicate was resolved: KeepA (keep first, remove second), KeepB (keep second, remove first), MergeBoth (combine into one), NotDuplicate (false positive)."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ContentItemA:stringType().nullable().describe("\n * * Field Name: ContentItemA\n * * Display Name: Content Item A\n * * SQL Data Type: nvarchar(250)"),ContentItemB:stringType().nullable().describe("\n * * Field Name: ContentItemB\n * * Display Name: Content Item B\n * * SQL Data Type: nvarchar(250)"),ResolvedByUser:stringType().nullable().describe("\n * * Field Name: ResolvedByUser\n * * Display Name: Resolved By User\n * * SQL Data Type: nvarchar(100)")});/**
63599
63926
  * zod schema definition for the entity MJ: Content Item Tags
@@ -63691,7 +64018,7 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
63691
64018
  * zod schema definition for the entity MJ: Encryption Keys
63692
64019
  */var MJEncryptionKeySchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()\n * * Description: Unique identifier for the encryption key configuration."),Name:stringType().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(100)\n * * Description: Unique name for this key (e.g., PII Master Key, API Secrets Key)."),Description:stringType().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Description of this key purpose and scope."),EncryptionKeySourceID:stringType().describe("\n * * Field Name: EncryptionKeySourceID\n * * Display Name: Encryption Key Source ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Encryption Key Sources (vwEncryptionKeySources.ID)\n * * Description: References the key source that provides the key material."),EncryptionAlgorithmID:stringType().describe("\n * * Field Name: EncryptionAlgorithmID\n * * Display Name: Encryption Algorithm ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Encryption Algorithms (vwEncryptionAlgorithms.ID)\n * * Description: References the algorithm to use for encryption/decryption."),KeyLookupValue:stringType().describe("\n * * Field Name: KeyLookupValue\n * * Display Name: Key Lookup Value\n * * SQL Data Type: nvarchar(500)\n * * Description: Source-specific lookup value (e.g., environment variable name, vault path)."),KeyVersion:stringType().describe("\n * * Field Name: KeyVersion\n * * Display Name: Key Version\n * * SQL Data Type: nvarchar(20)\n * * Default Value: 1\n * * Description: Version string for key rotation tracking. Incremented during rotation."),Marker:stringType().describe("\n * * Field Name: Marker\n * * Display Name: Marker\n * * SQL Data Type: nvarchar(20)\n * * Default Value: $ENC$\n * * Description: Prefix marker for encrypted values (default: $ENC$)."),IsActive:booleanType().describe("\n * * Field Name: IsActive\n * * Display Name: Is Active\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Whether this key can be used for new encryption operations."),Status:unionType([literalType('Active'),literalType('Expired'),literalType('Inactive'),literalType('Rotating')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Active\n * * Value List Type: List\n * * Possible Values \n * * Active\n * * Expired\n * * Inactive\n * * Rotating\n * * Description: Current status: Active, Inactive, Rotating, or Expired."),ActivatedAt:dateType().nullable().describe("\n * * Field Name: ActivatedAt\n * * Display Name: Activated At\n * * SQL Data Type: datetimeoffset\n * * Description: When the current key version was activated."),ExpiresAt:dateType().nullable().describe("\n * * Field Name: ExpiresAt\n * * Display Name: Expires At\n * * SQL Data Type: datetimeoffset\n * * Description: Optional expiration date. Keys past this date cannot be used for new encryption."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),EncryptionKeySource:stringType().describe("\n * * Field Name: EncryptionKeySource\n * * Display Name: Encryption Key Source\n * * SQL Data Type: nvarchar(100)"),EncryptionAlgorithm:stringType().describe("\n * * Field Name: EncryptionAlgorithm\n * * Display Name: Encryption Algorithm\n * * SQL Data Type: nvarchar(50)")});/**
63693
64020
  * zod schema definition for the entity MJ: Entities
63694
- */var MJEntitySchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ParentID:stringType().nullable().describe("\n * * Field Name: ParentID\n * * Display Name: Parent\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)"),Name:stringType().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(255)\n * * Description: The canonical, unique name for this entity. For entities in schemas with an EntityNamePrefix configured (e.g., \"MJ: \" for the core schema), the Name includes the prefix: \"MJ: AI Models\", \"MJ: Users\", etc. This is the value used in GetEntityObject(), RunView({ EntityName }), and @RegisterClass decorators. The DisplayName column provides the shorter, UI-friendly alternative without the prefix."),NameSuffix:stringType().nullable().describe("\n * * Field Name: NameSuffix\n * * Display Name: Name Suffix\n * * SQL Data Type: nvarchar(255)\n * * Description: Optional suffix appended to entity names for display purposes."),Description:stringType().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)"),AutoUpdateDescription:booleanType().describe("\n * * Field Name: AutoUpdateDescription\n * * Display Name: Auto-Update Description\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When set to 1 (default), whenever a description is modified in the underlying view (first choice) or table (second choice), the Description column in the entity definition will be automatically updated. If you never set metadata in the database directly, you can leave this alone. However, if you have metadata set in the database level for description, and you want to provide a DIFFERENT description in this entity definition, turn this bit off and then set the Description field and future CodeGen runs will NOT override the Description field here."),BaseTable:stringType().describe("\n * * Field Name: BaseTable\n * * Display Name: Base Table\n * * SQL Data Type: nvarchar(255)\n * * Description: The underlying database table name for this entity."),BaseView:stringType().describe("\n * * Field Name: BaseView\n * * Display Name: Base View\n * * SQL Data Type: nvarchar(255)\n * * Description: The \"wrapper\" database view used for querying this entity with joins and computed fields."),BaseViewGenerated:booleanType().describe("\n * * Field Name: BaseViewGenerated\n * * Display Name: Base View Generated\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When set to 0, CodeGen no longer generates a base view for the entity."),SchemaName:stringType().describe("\n * * Field Name: SchemaName\n * * Display Name: Schema Name\n * * SQL Data Type: nvarchar(255)\n * * Default Value: dbo\n * * Description: Database schema containing this entity's table and view."),VirtualEntity:booleanType().describe("\n * * Field Name: VirtualEntity\n * * Display Name: Is Virtual Entity\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Indicates if this is a virtual entity without a physical database table."),TrackRecordChanges:booleanType().describe("\n * * Field Name: TrackRecordChanges\n * * Display Name: Track Record Changes\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When set to 1, changes made via the MemberJunction architecture will result in tracking records being created in the RecordChange table. In addition, when turned on CodeGen will ensure that your table has two fields: __mj_CreatedAt and __mj_UpdatedAt which are special fields used in conjunction with the RecordChange table to track changes to rows in your entity."),AuditRecordAccess:booleanType().describe("\n * * Field Name: AuditRecordAccess\n * * Display Name: Audit Record Access\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When set to 1, accessing a record by an end-user will result in an Audit Log record being created"),AuditViewRuns:booleanType().describe("\n * * Field Name: AuditViewRuns\n * * Display Name: Audit View Runs\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When set to 1, users running a view against this entity will result in an Audit Log record being created."),IncludeInAPI:booleanType().describe("\n * * Field Name: IncludeInAPI\n * * Display Name: Include In API\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: If set to 0, the entity will not be available at all in the GraphQL API or the object model."),AllowAllRowsAPI:booleanType().describe("\n * * Field Name: AllowAllRowsAPI\n * * Display Name: Allow All Rows API\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: If set to 1, a GraphQL query will be enabled that allows access to all rows in the entity."),AllowUpdateAPI:booleanType().describe("\n * * Field Name: AllowUpdateAPI\n * * Display Name: Allow Update API\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Global flag controlling if updates are allowed for any user, or not. If set to 1, a GraqhQL mutation and stored procedure are created. Permissions are still required to perform the action but if this flag is set to 0, no user will be able to perform the action."),AllowCreateAPI:booleanType().describe("\n * * Field Name: AllowCreateAPI\n * * Display Name: Allow Create API\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Global flag controlling if creates are allowed for any user, or not. If set to 1, a GraqhQL mutation and stored procedure are created. Permissions are still required to perform the action but if this flag is set to 0, no user will be able to perform the action."),AllowDeleteAPI:booleanType().describe("\n * * Field Name: AllowDeleteAPI\n * * Display Name: Allow Delete API\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Global flag controlling if deletes are allowed for any user, or not. If set to 1, a GraqhQL mutation and stored procedure are created. Permissions are still required to perform the action but if this flag is set to 0, no user will be able to perform the action."),CustomResolverAPI:booleanType().describe("\n * * Field Name: CustomResolverAPI\n * * Display Name: Custom Resolver API\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Set to 1 if a custom resolver has been created for the entity."),AllowUserSearchAPI:booleanType().describe("\n * * Field Name: AllowUserSearchAPI\n * * Display Name: Allow User Search API\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Enabling this bit will result in search being possible at the API and UI layers"),FullTextSearchEnabled:booleanType().describe("\n * * Field Name: FullTextSearchEnabled\n * * Display Name: Full-Text Search Enabled\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Whether full-text search indexing is enabled for this entity."),FullTextCatalog:stringType().nullable().describe("\n * * Field Name: FullTextCatalog\n * * Display Name: Full-Text Catalog\n * * SQL Data Type: nvarchar(255)\n * * Description: Name of the SQL Server full-text catalog if search is enabled."),FullTextCatalogGenerated:booleanType().describe("\n * * Field Name: FullTextCatalogGenerated\n * * Display Name: Full-Text Catalog Generated\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Indicates if the full-text catalog was auto-generated by CodeGen."),FullTextIndex:stringType().nullable().describe("\n * * Field Name: FullTextIndex\n * * Display Name: Full-Text Index\n * * SQL Data Type: nvarchar(255)\n * * Description: Name of the full-text index on this entity's table."),FullTextIndexGenerated:booleanType().describe("\n * * Field Name: FullTextIndexGenerated\n * * Display Name: Full-Text Index Generated\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Indicates if the full-text index was auto-generated by CodeGen."),FullTextSearchFunction:stringType().nullable().describe("\n * * Field Name: FullTextSearchFunction\n * * Display Name: Full-Text Search Function\n * * SQL Data Type: nvarchar(255)\n * * Description: Name of the function used for full-text searching this entity."),FullTextSearchFunctionGenerated:booleanType().describe("\n * * Field Name: FullTextSearchFunctionGenerated\n * * Display Name: Full-Text Search Function Generated\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Indicates if the search function was auto-generated by CodeGen."),UserViewMaxRows:numberType().nullable().describe("\n * * Field Name: UserViewMaxRows\n * * Display Name: User View Max Rows\n * * SQL Data Type: int\n * * Default Value: 1000\n * * Description: Maximum number of rows to return in user-created views for this entity."),spCreate:stringType().nullable().describe("\n * * Field Name: spCreate\n * * Display Name: Create Procedure\n * * SQL Data Type: nvarchar(255)\n * * Description: Name of the stored procedure for creating records in this entity."),spUpdate:stringType().nullable().describe("\n * * Field Name: spUpdate\n * * Display Name: Update Procedure\n * * SQL Data Type: nvarchar(255)\n * * Description: Name of the stored procedure for updating records in this entity."),spDelete:stringType().nullable().describe("\n * * Field Name: spDelete\n * * Display Name: Delete Procedure\n * * SQL Data Type: nvarchar(255)\n * * Description: Name of the stored procedure for deleting records in this entity."),spCreateGenerated:booleanType().describe("\n * * Field Name: spCreateGenerated\n * * Display Name: Create Procedure Generated\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Indicates if the create procedure was auto-generated by CodeGen."),spUpdateGenerated:booleanType().describe("\n * * Field Name: spUpdateGenerated\n * * Display Name: Update Procedure Generated\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Indicates if the update procedure was auto-generated by CodeGen."),spDeleteGenerated:booleanType().describe("\n * * Field Name: spDeleteGenerated\n * * Display Name: Delete Procedure Generated\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Indicates if the delete procedure was auto-generated by CodeGen."),CascadeDeletes:booleanType().describe("\n * * Field Name: CascadeDeletes\n * * Display Name: Cascade Deletes\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When set to 1, the deleted spDelete will pre-process deletion to related entities that have 1:M cardinality with this entity. This does not have effect if spDeleteGenerated = 0"),DeleteType:unionType([literalType('Hard'),literalType('Soft')]).describe("\n * * Field Name: DeleteType\n * * Display Name: Delete Type\n * * SQL Data Type: nvarchar(10)\n * * Default Value: Hard\n * * Value List Type: List\n * * Possible Values \n * * Hard\n * * Soft\n * * Description: Hard deletes physically remove rows from the underlying BaseTable. Soft deletes do not remove rows but instead mark the row as deleted by using the special field __mj_DeletedAt which will automatically be added to the entity's basetable by the CodeGen tool."),AllowRecordMerge:booleanType().describe("\n * * Field Name: AllowRecordMerge\n * * Display Name: Allow Record Merge\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: This field must be turned on in order to enable merging of records for the entity. For AllowRecordMerge to be turned on, AllowDeleteAPI must be set to 1, and DeleteType must be set to Soft"),spMatch:stringType().nullable().describe("\n * * Field Name: spMatch\n * * Display Name: Match Procedure\n * * SQL Data Type: nvarchar(255)\n * * Description: When specified, this stored procedure is used to find matching records in this particular entity. The convention is to pass in the primary key(s) columns for the given entity to the procedure and the return will be zero to many rows where there is a column for each primary key field(s) and a ProbabilityScore (numeric(1,12)) column that has a 0 to 1 value of the probability of a match."),RelationshipDefaultDisplayType:unionType([literalType('Dropdown'),literalType('Search')]).describe("\n * * Field Name: RelationshipDefaultDisplayType\n * * Display Name: Default Display Type\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Search\n * * Value List Type: List\n * * Possible Values \n * * Dropdown\n * * Search\n * * Description: When another entity links to this entity with a foreign key, this is the default component type that will be used in the UI. CodeGen will populate the RelatedEntityDisplayType column in the Entity Fields entity with whatever is provided here whenever a new foreign key is detected by CodeGen. The selection can be overridden on a per-foreign-key basis in each row of the Entity Fields entity."),UserFormGenerated:booleanType().describe("\n * * Field Name: UserFormGenerated\n * * Display Name: User Form Generated\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Indicates if the default user form was auto-generated for this entity."),EntityObjectSubclassName:stringType().nullable().describe("\n * * Field Name: EntityObjectSubclassName\n * * Display Name: Subclass Name\n * * SQL Data Type: nvarchar(255)\n * * Description: TypeScript class name for the entity subclass in the codebase."),EntityObjectSubclassImport:stringType().nullable().describe("\n * * Field Name: EntityObjectSubclassImport\n * * Display Name: Subclass Import\n * * SQL Data Type: nvarchar(255)\n * * Description: Import path for the entity subclass in the TypeScript codebase."),PreferredCommunicationField:stringType().nullable().describe("\n * * Field Name: PreferredCommunicationField\n * * Display Name: Preferred Communication Field\n * * SQL Data Type: nvarchar(255)\n * * Description: Used to specify a field within the entity that in turn contains the field name that will be used for record-level communication preferences. For example in a hypothetical entity called Contacts, say there is a field called PreferredComm and that field had possible values of Email1, SMS, and Phone, and those value in turn corresponded to field names in the entity. Each record in the Contacts entity could have a specific preference for which field would be used for communication. The MJ Communication Framework will use this information when available, as a priority ahead of the data in the Entity Communication Fields entity which is entity-level and not record-level."),Icon:stringType().nullable().describe("\n * * Field Name: Icon\n * * Display Name: Icon\n * * SQL Data Type: nvarchar(500)\n * * Description: Optional, specify an icon (CSS Class) for each entity for display in the UI"),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ScopeDefault:stringType().nullable().describe("\n * * Field Name: ScopeDefault\n * * Display Name: Default Scope\n * * SQL Data Type: nvarchar(100)\n * * Description: Optional, comma-delimited string indicating the default scope for entity visibility. Options include Users, Admins, AI, and All. Defaults to All when NULL. This is used for simple defaults for filtering entity visibility, not security enforcement."),RowsToPackWithSchema:unionType([literalType('All'),literalType('None'),literalType('Sample')]).describe("\n * * Field Name: RowsToPackWithSchema\n * * Display Name: Rows To Pack With Schema\n * * SQL Data Type: nvarchar(20)\n * * Default Value: None\n * * Value List Type: List\n * * Possible Values \n * * All\n * * None\n * * Sample\n * * Description: Determines how entity rows should be packaged for external use. Options include None, Sample, and All. Defaults to None."),RowsToPackSampleMethod:unionType([literalType('bottom n'),literalType('random'),literalType('top n')]).describe("\n * * Field Name: RowsToPackSampleMethod\n * * Display Name: Rows To Pack Sample Method\n * * SQL Data Type: nvarchar(20)\n * * Default Value: random\n * * Value List Type: List\n * * Possible Values \n * * bottom n\n * * random\n * * top n\n * * Description: Defines the sampling method for row packing when RowsToPackWithSchema is set to Sample. Options include random, top n, and bottom n. Defaults to random."),RowsToPackSampleCount:numberType().describe("\n * * Field Name: RowsToPackSampleCount\n * * Display Name: Rows To Pack Sample Count\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: The number of rows to pack when RowsToPackWithSchema is set to Sample, based on the designated sampling method. Defaults to 0."),RowsToPackSampleOrder:stringType().nullable().describe("\n * * Field Name: RowsToPackSampleOrder\n * * Display Name: Rows To Pack Sample Order\n * * SQL Data Type: nvarchar(MAX)\n * * Description: An optional ORDER BY clause for row packing when RowsToPackWithSchema is set to Sample. Allows custom ordering for selected entity data when using top n and bottom n."),AutoRowCountFrequency:numberType().nullable().describe("\n * * Field Name: AutoRowCountFrequency\n * * Display Name: Auto Row Count Frequency\n * * SQL Data Type: int\n * * Description: Frequency in hours for automatically performing row counts on this entity. If NULL, automatic row counting is disabled. If greater than 0, schedules recurring SELECT COUNT(*) queries at the specified interval."),RowCount:numberType().nullable().describe("\n * * Field Name: RowCount\n * * Display Name: Row Count\n * * SQL Data Type: bigint\n * * Description: Cached row count for this entity, populated by automatic row count processes when AutoRowCountFrequency is configured."),RowCountRunAt:dateType().nullable().describe("\n * * Field Name: RowCountRunAt\n * * Display Name: Row Count Run At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp indicating when the last automatic row count was performed for this entity."),Status:unionType([literalType('Active'),literalType('Deprecated'),literalType('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: Status of the entity. Active: fully functional; Deprecated: functional but generates console warnings when used; Disabled: not available for use even though metadata and physical table remain."),DisplayName:stringType().nullable().describe("\n * * Field Name: DisplayName\n * * Display Name: Display Name\n * * SQL Data Type: nvarchar(255)\n * * Description: User-friendly display name shown in the Explorer UI and other interfaces. When set, this is used instead of the entity Name for display purposes. Typically contains the entity name without the schema prefix \u2014 e.g., \"AI Models\" when Name is \"MJ: AI Models\". If NULL, the UI falls back to using the full Name."),AllowMultipleSubtypes:booleanType().describe("\n * * Field Name: AllowMultipleSubtypes\n * * Display Name: Allow Multiple Subtypes\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When false (default), child types are disjoint - a record can only be one child type at a time. When true, a record can simultaneously exist as multiple child types (e.g., a Person can be both a Member and a Volunteer)."),AutoUpdateFullTextSearch:booleanType().describe("\n * * Field Name: AutoUpdateFullTextSearch\n * * Display Name: Auto-Update Full-Text Search\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When true, CodeGen LLM can auto-configure full-text search settings (FullTextSearchEnabled, catalog, index, function) during code generation runs."),AutoUpdateAllowUserSearchAPI:booleanType().describe("\n * * Field Name: AutoUpdateAllowUserSearchAPI\n * * Display Name: Auto-Update Search API\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When true, CodeGen LLM can auto-set AllowUserSearchAPI during code generation runs."),TrustServerCacheCompletely:booleanType().describe("\n * * Field Name: TrustServerCacheCompletely\n * * Display Name: Trust Server Cache Completely\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When true (default), the server-side RunView cache will store and return cached results for this entity, trusting that all mutations flow through BaseEntity.Save() which fires cache invalidation events. Set to false for entities whose rows are created as side-effects of other operations via raw SQL (e.g., Record Changes created by spCreateRecordChange_Internal), since those inserts bypass BaseEntity and never trigger cache invalidation."),SupportsGeoCoding:booleanType().describe("\n * * Field Name: SupportsGeoCoding\n * * Display Name: Supports Geo-Coding\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When true, CodeGen generates geo-aware subclass code, adds __mj_Latitude/__mj_Longitude virtual fields to the base view, and the UI shows a map view toggle. Auto-set by CodeGen when LLM detects geo-capable fields (address, lat/lng, etc.)."),AutoUpdateSupportsGeoCoding:booleanType().describe("\n * * Field Name: AutoUpdateSupportsGeoCoding\n * * Display Name: Auto-Update Geo-Coding\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When true (default), CodeGen can automatically set SupportsGeoCoding based on LLM analysis of entity fields. Set to 0 to lock the value and prevent CodeGen from changing it."),AllowCaching:booleanType().describe("\n * * Field Name: AllowCaching\n * * Display Name: Allow Caching\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Controls whether this entity participates in server-side and client-side caching. When false, all cache operations (PreRunView checks, auto-cache storage, BaseEntity event fingerprint scans, client-side IndexedDB cache) are skipped entirely. This column is the single source of truth at runtime; schema-level defaults are applied at CodeGen time via newEntityDefaults.AllowCachingBySchema."),DetectExternalChanges:booleanType().describe("\n * * Field Name: DetectExternalChanges\n * * Display Name: Detect External Changes\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When set to 1 AND TrackRecordChanges is also 1, the external change detection system will scan this entity for changes made outside the MJ framework (direct SQL, third-party tools, etc.) and replay them through Save() to create proper RecordChange audit entries. Default is 0 (opt-out) because most entities, especially __mj schema metadata tables, are managed by migrations/CodeGen and should not be scanned."),ExternalDataSourceID:stringType().nullable().describe("\n * * Field Name: ExternalDataSourceID\n * * Display Name: External Data Source ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: External Data Sources (vwExternalDataSources.ID)"),ExternalObjectName:stringType().nullable().describe("\n * * Field Name: ExternalObjectName\n * * Display Name: External Object Name\n * * SQL Data Type: nvarchar(255)\n * * Description: Remote object name (table / view / collection) on the external system that backs this entity. Resolved against the data source DefaultSchema/DefaultDatabase when unqualified. Only meaningful when ExternalDataSourceID is set."),CodeName:stringType().nullable().describe("\n * * Field Name: CodeName\n * * Display Name: Code Name\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Schema-based programmatic code name derived from the entity Name. Uses GetClassNameSchemaPrefix(SchemaName) as the prefix, then strips EntityNamePrefix from the Name and removes spaces. For \"__mj\" schema with entity \"MJ: AI Models\", this produces \"MJAIModels\". For entities in other schemas, the sanitized schema name is prepended. Used in GraphQL type generation and internal code references."),ClassName:stringType().nullable().describe("\n * * Field Name: ClassName\n * * Display Name: Class Name\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Schema-based programmatic class name used for TypeScript entity classes, Zod schemas, and Angular form components. Computed as GetProgrammaticName(GetClassNameSchemaPrefix(SchemaName) + BaseTable + NameSuffix). The prefix is derived from SchemaName (guaranteed unique by SQL Server), not from EntityNamePrefix. For the core __mj schema, the prefix is \"MJ\"; for all other schemas it is the alphanumeric-sanitized schema name. This prevents cross-schema collisions and aligns with GraphQL type naming in getGraphQLTypeNameBase()."),BaseTableCodeName:stringType().nullable().describe("\n * * Field Name: BaseTableCodeName\n * * Display Name: Base Table Code Name\n * * SQL Data Type: nvarchar(MAX)"),ParentEntity:stringType().nullable().describe("\n * * Field Name: ParentEntity\n * * Display Name: Parent Entity\n * * SQL Data Type: nvarchar(255)"),ParentBaseTable:stringType().nullable().describe("\n * * Field Name: ParentBaseTable\n * * Display Name: Parent Base Table\n * * SQL Data Type: nvarchar(255)"),ParentBaseView:stringType().nullable().describe("\n * * Field Name: ParentBaseView\n * * Display Name: Parent Base View\n * * SQL Data Type: nvarchar(255)"),CanonicalSchemaName:stringType().nullable().describe("\n * * Field Name: CanonicalSchemaName\n * * Display Name: Canonical Schema Name\n * * SQL Data Type: nvarchar(50)")});/**
64021
+ */var MJEntitySchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ParentID:stringType().nullable().describe("\n * * Field Name: ParentID\n * * Display Name: Parent\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)"),Name:stringType().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(255)\n * * Description: The canonical, unique name for this entity. For entities in schemas with an EntityNamePrefix configured (e.g., \"MJ: \" for the core schema), the Name includes the prefix: \"MJ: AI Models\", \"MJ: Users\", etc. This is the value used in GetEntityObject(), RunView({ EntityName }), and @RegisterClass decorators. The DisplayName column provides the shorter, UI-friendly alternative without the prefix."),NameSuffix:stringType().nullable().describe("\n * * Field Name: NameSuffix\n * * Display Name: Name Suffix\n * * SQL Data Type: nvarchar(255)\n * * Description: Optional suffix appended to entity names for display purposes."),Description:stringType().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)"),AutoUpdateDescription:booleanType().describe("\n * * Field Name: AutoUpdateDescription\n * * Display Name: Auto-Update Description\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When set to 1 (default), whenever a description is modified in the underlying view (first choice) or table (second choice), the Description column in the entity definition will be automatically updated. If you never set metadata in the database directly, you can leave this alone. However, if you have metadata set in the database level for description, and you want to provide a DIFFERENT description in this entity definition, turn this bit off and then set the Description field and future CodeGen runs will NOT override the Description field here."),BaseTable:stringType().describe("\n * * Field Name: BaseTable\n * * Display Name: Base Table\n * * SQL Data Type: nvarchar(255)\n * * Description: The underlying database table name for this entity."),BaseView:stringType().describe("\n * * Field Name: BaseView\n * * Display Name: Base View\n * * SQL Data Type: nvarchar(255)\n * * Description: The \"wrapper\" database view used for querying this entity with joins and computed fields."),BaseViewGenerated:booleanType().describe("\n * * Field Name: BaseViewGenerated\n * * Display Name: Base View Generated\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When set to 0, CodeGen no longer generates a base view for the entity."),SchemaName:stringType().describe("\n * * Field Name: SchemaName\n * * Display Name: Schema Name\n * * SQL Data Type: nvarchar(255)\n * * Default Value: dbo\n * * Description: Database schema containing this entity's table and view."),VirtualEntity:booleanType().describe("\n * * Field Name: VirtualEntity\n * * Display Name: Is Virtual Entity\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Indicates if this is a virtual entity without a physical database table."),TrackRecordChanges:booleanType().describe("\n * * Field Name: TrackRecordChanges\n * * Display Name: Track Record Changes\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When set to 1, changes made via the MemberJunction architecture will result in tracking records being created in the RecordChange table. In addition, when turned on CodeGen will ensure that your table has two fields: __mj_CreatedAt and __mj_UpdatedAt which are special fields used in conjunction with the RecordChange table to track changes to rows in your entity."),AuditRecordAccess:booleanType().describe("\n * * Field Name: AuditRecordAccess\n * * Display Name: Audit Record Access\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When set to 1, accessing a record by an end-user will result in an Audit Log record being created"),AuditViewRuns:booleanType().describe("\n * * Field Name: AuditViewRuns\n * * Display Name: Audit View Runs\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When set to 1, users running a view against this entity will result in an Audit Log record being created."),IncludeInAPI:booleanType().describe("\n * * Field Name: IncludeInAPI\n * * Display Name: Include In API\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: If set to 0, the entity will not be available at all in the GraphQL API or the object model."),AllowAllRowsAPI:booleanType().describe("\n * * Field Name: AllowAllRowsAPI\n * * Display Name: Allow All Rows API\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: If set to 1, a GraphQL query will be enabled that allows access to all rows in the entity."),AllowUpdateAPI:booleanType().describe("\n * * Field Name: AllowUpdateAPI\n * * Display Name: Allow Update API\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Global flag controlling if updates are allowed for any user, or not. If set to 1, a GraqhQL mutation and stored procedure are created. Permissions are still required to perform the action but if this flag is set to 0, no user will be able to perform the action."),AllowCreateAPI:booleanType().describe("\n * * Field Name: AllowCreateAPI\n * * Display Name: Allow Create API\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Global flag controlling if creates are allowed for any user, or not. If set to 1, a GraqhQL mutation and stored procedure are created. Permissions are still required to perform the action but if this flag is set to 0, no user will be able to perform the action."),AllowDeleteAPI:booleanType().describe("\n * * Field Name: AllowDeleteAPI\n * * Display Name: Allow Delete API\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Global flag controlling if deletes are allowed for any user, or not. If set to 1, a GraqhQL mutation and stored procedure are created. Permissions are still required to perform the action but if this flag is set to 0, no user will be able to perform the action."),CustomResolverAPI:booleanType().describe("\n * * Field Name: CustomResolverAPI\n * * Display Name: Custom Resolver API\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Set to 1 if a custom resolver has been created for the entity."),AllowUserSearchAPI:booleanType().describe("\n * * Field Name: AllowUserSearchAPI\n * * Display Name: Allow User Search API\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Enabling this bit will result in search being possible at the API and UI layers"),FullTextSearchEnabled:booleanType().describe("\n * * Field Name: FullTextSearchEnabled\n * * Display Name: Full-Text Search Enabled\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Whether full-text search indexing is enabled for this entity."),FullTextCatalog:stringType().nullable().describe("\n * * Field Name: FullTextCatalog\n * * Display Name: Full-Text Catalog\n * * SQL Data Type: nvarchar(255)\n * * Description: Name of the SQL Server full-text catalog if search is enabled."),FullTextCatalogGenerated:booleanType().describe("\n * * Field Name: FullTextCatalogGenerated\n * * Display Name: Full-Text Catalog Generated\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Indicates if the full-text catalog was auto-generated by CodeGen."),FullTextIndex:stringType().nullable().describe("\n * * Field Name: FullTextIndex\n * * Display Name: Full-Text Index\n * * SQL Data Type: nvarchar(255)\n * * Description: Name of the full-text index on this entity's table."),FullTextIndexGenerated:booleanType().describe("\n * * Field Name: FullTextIndexGenerated\n * * Display Name: Full-Text Index Generated\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Indicates if the full-text index was auto-generated by CodeGen."),FullTextSearchFunction:stringType().nullable().describe("\n * * Field Name: FullTextSearchFunction\n * * Display Name: Full-Text Search Function\n * * SQL Data Type: nvarchar(255)\n * * Description: Name of the function used for full-text searching this entity."),FullTextSearchFunctionGenerated:booleanType().describe("\n * * Field Name: FullTextSearchFunctionGenerated\n * * Display Name: Full-Text Search Function Generated\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Indicates if the search function was auto-generated by CodeGen."),UserViewMaxRows:numberType().nullable().describe("\n * * Field Name: UserViewMaxRows\n * * Display Name: User View Max Rows\n * * SQL Data Type: int\n * * Default Value: 1000\n * * Description: Maximum number of rows to return in user-created views for this entity."),spCreate:stringType().nullable().describe("\n * * Field Name: spCreate\n * * Display Name: Create Procedure\n * * SQL Data Type: nvarchar(255)\n * * Description: Name of the stored procedure for creating records in this entity."),spUpdate:stringType().nullable().describe("\n * * Field Name: spUpdate\n * * Display Name: Update Procedure\n * * SQL Data Type: nvarchar(255)\n * * Description: Name of the stored procedure for updating records in this entity."),spDelete:stringType().nullable().describe("\n * * Field Name: spDelete\n * * Display Name: Delete Procedure\n * * SQL Data Type: nvarchar(255)\n * * Description: Name of the stored procedure for deleting records in this entity."),spCreateGenerated:booleanType().describe("\n * * Field Name: spCreateGenerated\n * * Display Name: Create Procedure Generated\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Indicates if the create procedure was auto-generated by CodeGen."),spUpdateGenerated:booleanType().describe("\n * * Field Name: spUpdateGenerated\n * * Display Name: Update Procedure Generated\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Indicates if the update procedure was auto-generated by CodeGen."),spDeleteGenerated:booleanType().describe("\n * * Field Name: spDeleteGenerated\n * * Display Name: Delete Procedure Generated\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Indicates if the delete procedure was auto-generated by CodeGen."),CascadeDeletes:booleanType().describe("\n * * Field Name: CascadeDeletes\n * * Display Name: Cascade Deletes\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When set to 1, the deleted spDelete will pre-process deletion to related entities that have 1:M cardinality with this entity. This does not have effect if spDeleteGenerated = 0"),DeleteType:unionType([literalType('Hard'),literalType('Soft')]).describe("\n * * Field Name: DeleteType\n * * Display Name: Delete Type\n * * SQL Data Type: nvarchar(10)\n * * Default Value: Hard\n * * Value List Type: List\n * * Possible Values \n * * Hard\n * * Soft\n * * Description: Hard deletes physically remove rows from the underlying BaseTable. Soft deletes do not remove rows but instead mark the row as deleted by using the special field __mj_DeletedAt which will automatically be added to the entity's basetable by the CodeGen tool."),AllowRecordMerge:booleanType().describe("\n * * Field Name: AllowRecordMerge\n * * Display Name: Allow Record Merge\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: This field must be turned on in order to enable merging of records for the entity. For AllowRecordMerge to be turned on, AllowDeleteAPI must be set to 1, and DeleteType must be set to Soft"),spMatch:stringType().nullable().describe("\n * * Field Name: spMatch\n * * Display Name: Match Procedure\n * * SQL Data Type: nvarchar(255)\n * * Description: When specified, this stored procedure is used to find matching records in this particular entity. The convention is to pass in the primary key(s) columns for the given entity to the procedure and the return will be zero to many rows where there is a column for each primary key field(s) and a ProbabilityScore (numeric(1,12)) column that has a 0 to 1 value of the probability of a match."),RelationshipDefaultDisplayType:unionType([literalType('Dropdown'),literalType('Search')]).describe("\n * * Field Name: RelationshipDefaultDisplayType\n * * Display Name: Default Display Type\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Search\n * * Value List Type: List\n * * Possible Values \n * * Dropdown\n * * Search\n * * Description: When another entity links to this entity with a foreign key, this is the default component type that will be used in the UI. CodeGen will populate the RelatedEntityDisplayType column in the Entity Fields entity with whatever is provided here whenever a new foreign key is detected by CodeGen. The selection can be overridden on a per-foreign-key basis in each row of the Entity Fields entity."),UserFormGenerated:booleanType().describe("\n * * Field Name: UserFormGenerated\n * * Display Name: User Form Generated\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Indicates if the default user form was auto-generated for this entity."),EntityObjectSubclassName:stringType().nullable().describe("\n * * Field Name: EntityObjectSubclassName\n * * Display Name: Subclass Name\n * * SQL Data Type: nvarchar(255)\n * * Description: TypeScript class name for the entity subclass in the codebase."),EntityObjectSubclassImport:stringType().nullable().describe("\n * * Field Name: EntityObjectSubclassImport\n * * Display Name: Subclass Import\n * * SQL Data Type: nvarchar(255)\n * * Description: Import path for the entity subclass in the TypeScript codebase."),PreferredCommunicationField:stringType().nullable().describe("\n * * Field Name: PreferredCommunicationField\n * * Display Name: Preferred Communication Field\n * * SQL Data Type: nvarchar(255)\n * * Description: Used to specify a field within the entity that in turn contains the field name that will be used for record-level communication preferences. For example in a hypothetical entity called Contacts, say there is a field called PreferredComm and that field had possible values of Email1, SMS, and Phone, and those value in turn corresponded to field names in the entity. Each record in the Contacts entity could have a specific preference for which field would be used for communication. The MJ Communication Framework will use this information when available, as a priority ahead of the data in the Entity Communication Fields entity which is entity-level and not record-level."),Icon:stringType().nullable().describe("\n * * Field Name: Icon\n * * Display Name: Icon\n * * SQL Data Type: nvarchar(500)\n * * Description: Optional, specify an icon (CSS Class) for each entity for display in the UI"),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ScopeDefault:stringType().nullable().describe("\n * * Field Name: ScopeDefault\n * * Display Name: Default Scope\n * * SQL Data Type: nvarchar(100)\n * * Description: Optional, comma-delimited string indicating the default scope for entity visibility. Options include Users, Admins, AI, and All. Defaults to All when NULL. This is used for simple defaults for filtering entity visibility, not security enforcement."),RowsToPackWithSchema:unionType([literalType('All'),literalType('None'),literalType('Sample')]).describe("\n * * Field Name: RowsToPackWithSchema\n * * Display Name: Rows To Pack With Schema\n * * SQL Data Type: nvarchar(20)\n * * Default Value: None\n * * Value List Type: List\n * * Possible Values \n * * All\n * * None\n * * Sample\n * * Description: Determines how entity rows should be packaged for external use. Options include None, Sample, and All. Defaults to None."),RowsToPackSampleMethod:unionType([literalType('bottom n'),literalType('random'),literalType('top n')]).describe("\n * * Field Name: RowsToPackSampleMethod\n * * Display Name: Rows To Pack Sample Method\n * * SQL Data Type: nvarchar(20)\n * * Default Value: random\n * * Value List Type: List\n * * Possible Values \n * * bottom n\n * * random\n * * top n\n * * Description: Defines the sampling method for row packing when RowsToPackWithSchema is set to Sample. Options include random, top n, and bottom n. Defaults to random."),RowsToPackSampleCount:numberType().describe("\n * * Field Name: RowsToPackSampleCount\n * * Display Name: Rows To Pack Sample Count\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: The number of rows to pack when RowsToPackWithSchema is set to Sample, based on the designated sampling method. Defaults to 0."),RowsToPackSampleOrder:stringType().nullable().describe("\n * * Field Name: RowsToPackSampleOrder\n * * Display Name: Rows To Pack Sample Order\n * * SQL Data Type: nvarchar(MAX)\n * * Description: An optional ORDER BY clause for row packing when RowsToPackWithSchema is set to Sample. Allows custom ordering for selected entity data when using top n and bottom n."),AutoRowCountFrequency:numberType().nullable().describe("\n * * Field Name: AutoRowCountFrequency\n * * Display Name: Auto Row Count Frequency\n * * SQL Data Type: int\n * * Description: Frequency in hours for automatically performing row counts on this entity. If NULL, automatic row counting is disabled. If greater than 0, schedules recurring SELECT COUNT(*) queries at the specified interval."),RowCount:numberType().nullable().describe("\n * * Field Name: RowCount\n * * Display Name: Row Count\n * * SQL Data Type: bigint\n * * Description: Cached row count for this entity, populated by automatic row count processes when AutoRowCountFrequency is configured."),RowCountRunAt:dateType().nullable().describe("\n * * Field Name: RowCountRunAt\n * * Display Name: Row Count Run At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp indicating when the last automatic row count was performed for this entity."),Status:unionType([literalType('Active'),literalType('Deprecated'),literalType('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: Status of the entity. Active: fully functional; Deprecated: functional but generates console warnings when used; Disabled: not available for use even though metadata and physical table remain."),DisplayName:stringType().nullable().describe("\n * * Field Name: DisplayName\n * * Display Name: Display Name\n * * SQL Data Type: nvarchar(255)\n * * Description: User-friendly display name shown in the Explorer UI and other interfaces. When set, this is used instead of the entity Name for display purposes. Typically contains the entity name without the schema prefix \u2014 e.g., \"AI Models\" when Name is \"MJ: AI Models\". If NULL, the UI falls back to using the full Name."),AllowMultipleSubtypes:booleanType().describe("\n * * Field Name: AllowMultipleSubtypes\n * * Display Name: Allow Multiple Subtypes\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When false (default), child types are disjoint - a record can only be one child type at a time. When true, a record can simultaneously exist as multiple child types (e.g., a Person can be both a Member and a Volunteer)."),AutoUpdateFullTextSearch:booleanType().describe("\n * * Field Name: AutoUpdateFullTextSearch\n * * Display Name: Auto-Update Full-Text Search\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When true, CodeGen LLM can auto-configure full-text search settings (FullTextSearchEnabled, catalog, index, function) during code generation runs."),AutoUpdateAllowUserSearchAPI:booleanType().describe("\n * * Field Name: AutoUpdateAllowUserSearchAPI\n * * Display Name: Auto-Update Search API\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When true, CodeGen LLM can auto-set AllowUserSearchAPI during code generation runs."),TrustServerCacheCompletely:booleanType().describe("\n * * Field Name: TrustServerCacheCompletely\n * * Display Name: Trust Server Cache Completely\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When true (default), the server-side RunView cache will store and return cached results for this entity, trusting that all mutations flow through BaseEntity.Save() which fires cache invalidation events. Set to false for entities whose rows are created as side-effects of other operations via raw SQL (e.g., Record Changes created by spCreateRecordChange_Internal), since those inserts bypass BaseEntity and never trigger cache invalidation."),SupportsGeoCoding:booleanType().describe("\n * * Field Name: SupportsGeoCoding\n * * Display Name: Supports Geo-Coding\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When true, CodeGen generates geo-aware subclass code, adds __mj_Latitude/__mj_Longitude virtual fields to the base view, and the UI shows a map view toggle. Auto-set by CodeGen when LLM detects geo-capable fields (address, lat/lng, etc.)."),AutoUpdateSupportsGeoCoding:booleanType().describe("\n * * Field Name: AutoUpdateSupportsGeoCoding\n * * Display Name: Auto-Update Geo-Coding\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When true (default), CodeGen can automatically set SupportsGeoCoding based on LLM analysis of entity fields. Set to 0 to lock the value and prevent CodeGen from changing it."),AllowCaching:booleanType().describe("\n * * Field Name: AllowCaching\n * * Display Name: Allow Caching\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Controls whether this entity participates in server-side and client-side caching. When false, all cache operations (PreRunView checks, auto-cache storage, BaseEntity event fingerprint scans, client-side IndexedDB cache) are skipped entirely. This column is the single source of truth at runtime; schema-level defaults are applied at CodeGen time via newEntityDefaults.AllowCachingBySchema."),DetectExternalChanges:booleanType().describe("\n * * Field Name: DetectExternalChanges\n * * Display Name: Detect External Changes\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When set to 1 AND TrackRecordChanges is also 1, the external change detection system will scan this entity for changes made outside the MJ framework (direct SQL, third-party tools, etc.) and replay them through Save() to create proper RecordChange audit entries. Default is 0 (opt-out) because most entities, especially __mj schema metadata tables, are managed by migrations/CodeGen and should not be scanned."),ExternalDataSourceID:stringType().nullable().describe("\n * * Field Name: ExternalDataSourceID\n * * Display Name: External Data Source\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: External Data Sources (vwExternalDataSources.ID)"),ExternalObjectName:stringType().nullable().describe("\n * * Field Name: ExternalObjectName\n * * Display Name: External Object Name\n * * SQL Data Type: nvarchar(255)\n * * Description: Remote object name (table / view / collection) on the external system that backs this entity. Resolved against the data source DefaultSchema/DefaultDatabase when unqualified. Only meaningful when ExternalDataSourceID is set."),GeneratedBaseViewName:stringType().nullable().describe("\n * * Field Name: GeneratedBaseViewName\n * * Display Name: Generated Base View Name\n * * SQL Data Type: nvarchar(255)\n * * Description: When set, CodeGen generates the entity's full base view under THIS name instead of BaseView, and the application owns BaseView \u2014 which is expected to wrap it (SELECT g.*, <extras> FROM <GeneratedBaseViewName> g). This gives an entity a custom base view WITHOUT inheriting the generated SQL: related-entity display joins, geo columns and recursive root-ID columns keep regenerating underneath, so a foreign key added later still appears. NULL (the default, and every pre-existing row) means the previous all-or-nothing behaviour: BaseViewGenerated alone decides whether CodeGen writes BaseView, and there is no second view. BaseView remains the public surface \u2014 entity field discovery, permissions and the generated CRUD procedures all target it. SQL SERVER ONLY: layering relies on sp_refreshview to re-resolve the application-owned outer view's SELECT * against a regenerated inner view. PostgreSQL freezes a view's column list at creation and has no refresh equivalent, so CodeGen rejects this column on PostgreSQL rather than let the outer view go silently stale."),AllowDirectSQLInsert:booleanType().describe("\n * * Field Name: AllowDirectSQLInsert\n * * Display Name: Allow Direct SQL Insert\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When 1, this entity may be populated by INSERT statements that do not go through BaseEntity.Save() \u2014 bulk loads, ETL/integration sync, or rows created as a side effect of a stored procedure. Default 0, meaning every insert is expected to flow through BaseEntity so that record-change tracking, entity actions, validation and cache invalidation all run. This column DECLARES intent for the code paths and tooling that consult it; it does not and cannot prevent anyone from executing SQL. Requires TrackRecordChanges = 0 and TrustServerCacheCompletely = 0, because a direct insert produces neither an audit row nor a cache-invalidation event."),AllowDirectSQLUpdate:booleanType().describe("\n * * Field Name: AllowDirectSQLUpdate\n * * Display Name: Allow Direct SQL Update\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When 1, this entity may be modified by UPDATE statements that do not go through BaseEntity.Save() \u2014 bulk backfills, integration sync, or maintenance routines. Default 0, meaning every update is expected to flow through BaseEntity so that record-change tracking, entity actions, validation and cache invalidation all run. This column DECLARES intent for the code paths and tooling that consult it; it does not and cannot prevent anyone from executing SQL. Requires TrackRecordChanges = 0 and TrustServerCacheCompletely = 0, because a direct update produces neither an audit row nor a cache-invalidation event."),AllowDirectSQLDelete:booleanType().describe("\n * * Field Name: AllowDirectSQLDelete\n * * Display Name: Allow Direct SQL Delete\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When 1, this entity may have rows removed by DELETE statements that do not go through BaseEntity.Delete() \u2014 purge and retention routines, or integration sync reconciling a remote source. Default 0, meaning every delete is expected to flow through BaseEntity so that record-change tracking, entity actions, cascade handling and cache invalidation all run. This column DECLARES intent for the code paths and tooling that consult it; it does not and cannot prevent anyone from executing SQL. Requires TrackRecordChanges = 0 and TrustServerCacheCompletely = 0, and additionally requires DeleteType = 'Hard' \u2014 a direct DELETE removes the row outright rather than setting DeletedAt, which would defeat soft delete."),CodeName:stringType().nullable().describe("\n * * Field Name: CodeName\n * * Display Name: Code Name\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Schema-based programmatic code name derived from the entity Name. Uses GetClassNameSchemaPrefix(SchemaName) as the prefix, then strips EntityNamePrefix from the Name and removes spaces. For \"__mj\" schema with entity \"MJ: AI Models\", this produces \"MJAIModels\". For entities in other schemas, the sanitized schema name is prepended. Used in GraphQL type generation and internal code references."),ClassName:stringType().nullable().describe("\n * * Field Name: ClassName\n * * Display Name: Class Name\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Schema-based programmatic class name used for TypeScript entity classes, Zod schemas, and Angular form components. Computed as GetProgrammaticName(GetClassNameSchemaPrefix(SchemaName) + BaseTable + NameSuffix). The prefix is derived from SchemaName (guaranteed unique by SQL Server), not from EntityNamePrefix. For the core __mj schema, the prefix is \"MJ\"; for all other schemas it is the alphanumeric-sanitized schema name. This prevents cross-schema collisions and aligns with GraphQL type naming in getGraphQLTypeNameBase()."),BaseTableCodeName:stringType().nullable().describe("\n * * Field Name: BaseTableCodeName\n * * Display Name: Base Table Code Name\n * * SQL Data Type: nvarchar(MAX)"),ParentEntity:stringType().nullable().describe("\n * * Field Name: ParentEntity\n * * Display Name: Parent Entity\n * * SQL Data Type: nvarchar(255)"),ParentBaseTable:stringType().nullable().describe("\n * * Field Name: ParentBaseTable\n * * Display Name: Parent Base Table\n * * SQL Data Type: nvarchar(255)"),ParentBaseView:stringType().nullable().describe("\n * * Field Name: ParentBaseView\n * * Display Name: Parent Base View\n * * SQL Data Type: nvarchar(255)"),CanonicalSchemaName:stringType().nullable().describe("\n * * Field Name: CanonicalSchemaName\n * * Display Name: Canonical Schema Name\n * * SQL Data Type: nvarchar(50)")});/**
63695
64022
  * zod schema definition for the entity MJ: Entity Action Filters
63696
64023
  */var MJEntityActionFilterSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),EntityActionID:stringType().describe("\n * * Field Name: EntityActionID\n * * Display Name: Entity Action\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entity Actions (vwEntityActions.ID)"),ActionFilterID:stringType().describe("\n * * Field Name: ActionFilterID\n * * Display Name: Action Filter\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Action Filters (vwActionFilters.ID)"),Sequence:numberType().describe("\n * * Field Name: Sequence\n * * Display Name: Sequence\n * * SQL Data Type: int\n * * Description: Order of filter execution."),Status:unionType([literalType('Active'),literalType('Disabled'),literalType('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 * * Active\n * * Disabled\n * * Pending\n * * Description: Status of the entity action filter (Pending, Active, Disabled)."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),EntityAction:stringType().describe("\n * * Field Name: EntityAction\n * * Display Name: Entity Action Name\n * * SQL Data Type: nvarchar(425)"),ActionFilter:stringType().describe("\n * * Field Name: ActionFilter\n * * Display Name: Action Filter Name\n * * SQL Data Type: nvarchar(MAX)")});/**
63697
64024
  * zod schema definition for the entity MJ: Entity Action Invocation Types
@@ -63699,9 +64026,9 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
63699
64026
  * zod schema definition for the entity MJ: Entity Action Invocations
63700
64027
  */var MJEntityActionInvocationSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),EntityActionID:stringType().describe("\n * * Field Name: EntityActionID\n * * Display Name: Entity Action\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entity Actions (vwEntityActions.ID)"),InvocationTypeID:stringType().describe("\n * * Field Name: InvocationTypeID\n * * Display Name: Invocation Type\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entity Action Invocation Types (vwEntityActionInvocationTypes.ID)"),Status:unionType([literalType('Active'),literalType('Disabled'),literalType('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 * * Active\n * * Disabled\n * * Pending\n * * Description: Status of the entity action invocation (Pending, Active, Disabled)."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),RuntimeUXDriverClass:stringType().nullable().describe("\n * * Field Name: RuntimeUXDriverClass\n * * Display Name: Runtime UX Driver Class\n * * SQL Data Type: nvarchar(255)\n * * Description: Optional class name of a registered runtime-UX driver component (a BaseEntityActionRuntimeUX subclass resolved via MJGlobal.ClassFactory) that owns this invocation's interaction \u2014 parameter collection, dry-run preview, confirmation, and progress. NULL invokes the action directly with no custom UX. This lets any action opt into a richer, reusable runtime experience while the grid/toolbar stays operation-agnostic."),EntityAction:stringType().describe("\n * * Field Name: EntityAction\n * * Display Name: Entity Action Name\n * * SQL Data Type: nvarchar(425)"),InvocationType:stringType().describe("\n * * Field Name: InvocationType\n * * Display Name: Invocation Type Name\n * * SQL Data Type: nvarchar(255)")});/**
63701
64028
  * zod schema definition for the entity MJ: Entity Action Params
63702
- */var MJEntityActionParamSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),EntityActionID:stringType().describe("\n * * Field Name: EntityActionID\n * * Display Name: Entity Action ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entity Actions (vwEntityActions.ID)"),ActionParamID:stringType().describe("\n * * Field Name: ActionParamID\n * * Display Name: Action Parameter ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Action Params (vwActionParams.ID)"),ValueType:unionType([literalType('Entity Field'),literalType('Entity Object'),literalType('Script'),literalType('Static')]).describe("\n * * Field Name: ValueType\n * * Display Name: Value Type\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * Entity Field\n * * Entity Object\n * * Script\n * * Static\n * * Description: Type of the value, which can be Static, Entity Object, or Script."),Value:stringType().nullable().describe("\n * * Field Name: Value\n * * Display Name: Value\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Value of the parameter, used only when ValueType is Static or Script. When value is Script, any valid JavaScript code can be provided. The script will have access to an object called EntityActionContext. This object will have a property called EntityObject on it that will contain the BaseEntity derived sub-class with the current data for the entity object this action is operating against. The script must provide the parameter value to the EntityActionContext.result property. This scripting capabilty is designed for very small and simple code, for anything of meaningful complexity, create a sub-class instead."),Comments:stringType().nullable().describe("\n * * Field Name: Comments\n * * Display Name: Comments\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Additional comments regarding the parameter."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),EntityAction:stringType().describe("\n * * Field Name: EntityAction\n * * Display Name: Entity Action\n * * SQL Data Type: nvarchar(425)"),ActionParam:stringType().describe("\n * * Field Name: ActionParam\n * * Display Name: Action Parameter\n * * SQL Data Type: nvarchar(255)")});/**
64029
+ */var MJEntityActionParamSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),EntityActionID:stringType().describe("\n * * Field Name: EntityActionID\n * * Display Name: Entity Action ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entity Actions (vwEntityActions.ID)"),ActionParamID:stringType().describe("\n * * Field Name: ActionParamID\n * * Display Name: Action Parameter ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Action Params (vwActionParams.ID)"),ValueType:unionType([literalType('Entity Field'),literalType('Entity Object'),literalType('Entity Object Data'),literalType('Script'),literalType('Static')]).describe("\n * * Field Name: ValueType\n * * Display Name: Value Type\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * Entity Field\n * * Entity Object\n * * Entity Object Data\n * * Script\n * * Static\n * * Description: How the parameter value is produced at invocation time. Static = the literal Value (parsed as JSON when it parses). Entity Object = the live BaseEntity instance, for actions that call entity methods. Entity Object Data = entity.GetAll(), a plain object - use this for any action that SERIALIZES the value, such as the Data payload of Execute Agent, because a BaseEntity serializes to {} (its fields are getters, not enumerable own properties). Entity Field = the named field's value. Script = evaluated expression with the entity in scope."),Value:stringType().nullable().describe("\n * * Field Name: Value\n * * Display Name: Value\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Value of the parameter, used only when ValueType is Static or Script. When value is Script, any valid JavaScript code can be provided. The script will have access to an object called EntityActionContext. This object will have a property called EntityObject on it that will contain the BaseEntity derived sub-class with the current data for the entity object this action is operating against. The script must provide the parameter value to the EntityActionContext.result property. This scripting capabilty is designed for very small and simple code, for anything of meaningful complexity, create a sub-class instead."),Comments:stringType().nullable().describe("\n * * Field Name: Comments\n * * Display Name: Comments\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Additional comments regarding the parameter."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),LogValue:booleanType().nullable().describe("\n * * Field Name: LogValue\n * * Display Name: Log Value\n * * SQL Data Type: bit\n * * Description: Optional per-binding override of ActionParam.LogValue. NULL (the default) inherits the parameter definition. Set to 0 when this particular binding passes something sensitive through a parameter that is ordinarily safe to log - a message body through a generic Text parameter, for instance. Cannot re-enable logging for a value type the hard rule suppresses."),EntityAction:stringType().describe("\n * * Field Name: EntityAction\n * * Display Name: Entity Action\n * * SQL Data Type: nvarchar(425)"),ActionParam:stringType().describe("\n * * Field Name: ActionParam\n * * Display Name: Action Parameter\n * * SQL Data Type: nvarchar(255)")});/**
63703
64030
  * zod schema definition for the entity MJ: Entity Actions
63704
- */var MJEntityActionSchema=objectType({EntityID:stringType().describe("\n * * Field Name: EntityID\n * * Display Name: Entity ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)"),ActionID:stringType().describe("\n * * Field Name: ActionID\n * * Display Name: Action ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Actions (vwActions.ID)"),Status:unionType([literalType('Active'),literalType('Disabled'),literalType('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 * * Active\n * * Disabled\n * * Pending\n * * Description: Status of the entity action (Pending, Active, Disabled)."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: __mj _Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: __mj _Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),Entity:stringType().describe("\n * * Field Name: Entity\n * * Display Name: Entity\n * * SQL Data Type: nvarchar(255)"),Action:stringType().describe("\n * * Field Name: Action\n * * Display Name: Action\n * * SQL Data Type: nvarchar(425)")});/**
64031
+ */var MJEntityActionSchema=objectType({EntityID:stringType().describe("\n * * Field Name: EntityID\n * * Display Name: Entity ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)"),ActionID:stringType().describe("\n * * Field Name: ActionID\n * * Display Name: Action ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Actions (vwActions.ID)"),Status:unionType([literalType('Active'),literalType('Disabled'),literalType('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 * * Active\n * * Disabled\n * * Pending\n * * Description: Status of the entity action (Pending, Active, Disabled)."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: __mj _Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: __mj _Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),Sequence:numberType().describe("\n * * Field Name: Sequence\n * * Display Name: Sequence\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Execution order when multiple Entity Actions are bound to the same entity and invocation type. Lower runs first; ties fall back to creation order. Defaults to 0 so existing rows are unaffected."),ScopeEntityID:stringType().nullable().describe("\n * * Field Name: ScopeEntityID\n * * Display Name: Scope Entity ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)\n * * Description: Optional. Together with ScopeRecordID, narrows this Entity Action to records related to ONE specific record - for example a single Deal Type, Contract Type, Pipeline or Company - rather than every record of EntityID. NULL (the default) means the action applies to all records, which is the pre-existing behaviour. How a scope record relates to the subject record is resolved by the app that owns the scope entity; the framework only stores and filters on the pair."),ScopeRecordID:stringType().nullable().describe("\n * * Field Name: ScopeRecordID\n * * Display Name: Scope Record ID\n * * SQL Data Type: nvarchar(450)\n * * Description: Optional. The primary key of the scope record, as text, paired with ScopeEntityID. Both columns are NULL or both are set (CK_EntityAction_Scope). Lets a configuration record such as a Deal Type surface \"the workflows bound to me\" as a real relationship rather than something buried in filter code."),LoggingMode:unionType([literalType('All'),literalType('FailuresOnly'),literalType('None')]).describe("\n * * Field Name: LoggingMode\n * * Display Name: Logging Mode\n * * SQL Data Type: nvarchar(20)\n * * Default Value: All\n * * Value List Type: List\n * * Possible Values \n * * All\n * * FailuresOnly\n * * None\n * * Description: How much of this binding's activity reaches ActionExecutionLog. All (default) writes a row per invocation. FailuresOnly writes only runs that did not succeed - the right setting for a high-frequency binding on a busy entity, where the successful runs are noise. None disables logging for the binding entirely and should be rare, because it also removes the failure record."),Entity:stringType().describe("\n * * Field Name: Entity\n * * Display Name: Entity\n * * SQL Data Type: nvarchar(255)"),Action:stringType().describe("\n * * Field Name: Action\n * * Display Name: Action\n * * SQL Data Type: nvarchar(425)"),ScopeEntity:stringType().nullable().describe("\n * * Field Name: ScopeEntity\n * * Display Name: Scope Entity\n * * SQL Data Type: nvarchar(255)")});/**
63705
64032
  * zod schema definition for the entity MJ: Entity AI Actions
63706
64033
  */var MJEntityAIActionSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),EntityID:stringType().describe("\n * * Field Name: EntityID\n * * Display Name: Entity ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)"),AIModelID:stringType().describe("\n * * Field Name: AIModelID\n * * Display Name: AI Model ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Models (vwAIModels.ID)"),AIActionID:stringType().describe("\n * * Field Name: AIActionID\n * * Display Name: AI Action ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Actions (vwAIActions.ID)"),Name:stringType().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(255)"),Prompt:stringType().nullable().describe("\n * * Field Name: Prompt\n * * Display Name: Prompt\n * * SQL Data Type: nvarchar(MAX)\n * * Description: The AI prompt template used when this action is triggered by entity changes."),TriggerEvent:unionType([literalType('after save'),literalType('before save')]).describe("\n * * Field Name: TriggerEvent\n * * Display Name: Trigger Event\n * * SQL Data Type: nchar(15)\n * * Default Value: After Save\n * * Value List Type: List\n * * Possible Values \n * * after save\n * * before save\n * * Description: The entity event that triggers this AI action (After Save, Before Delete, etc.)."),UserMessage:stringType().describe("\n * * Field Name: UserMessage\n * * Display Name: User Message\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Message shown to users when this AI action is executed."),OutputType:unionType([literalType('entity'),literalType('field')]).describe("\n * * Field Name: OutputType\n * * Display Name: Output Type\n * * SQL Data Type: nchar(10)\n * * Default Value: FIeld\n * * Value List Type: List\n * * Possible Values \n * * entity\n * * field\n * * Description: Where the AI output should be stored (Field, Message, File)."),OutputField:stringType().nullable().describe("\n * * Field Name: OutputField\n * * Display Name: Output Field\n * * SQL Data Type: nvarchar(50)\n * * Description: The field name where AI output should be stored if OutputType is Field."),SkipIfOutputFieldNotEmpty:booleanType().describe("\n * * Field Name: SkipIfOutputFieldNotEmpty\n * * Display Name: Skip If Output Field Not Empty\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Whether to skip AI processing if the output field already contains data."),OutputEntityID:stringType().nullable().describe("\n * * Field Name: OutputEntityID\n * * Display Name: Output Entity ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)"),Comments:stringType().nullable().describe("\n * * Field Name: Comments\n * * Display Name: Comments\n * * SQL Data Type: nvarchar(MAX)"),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: __mj _Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: __mj _Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Entity:stringType().describe("\n * * Field Name: Entity\n * * Display Name: Entity\n * * SQL Data Type: nvarchar(255)"),AIModel:stringType().describe("\n * * Field Name: AIModel\n * * Display Name: AIModel\n * * SQL Data Type: nvarchar(50)"),AIAction:stringType().describe("\n * * Field Name: AIAction\n * * Display Name: AIAction\n * * SQL Data Type: nvarchar(50)"),OutputEntity:stringType().nullable().describe("\n * * Field Name: OutputEntity\n * * Display Name: Output Entity\n * * SQL Data Type: nvarchar(255)")});/**
63707
64034
  * zod schema definition for the entity MJ: Entity Communication Fields
@@ -64069,7 +64396,7 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
64069
64396
  * zod schema definition for the entity MJ: User View Categories
64070
64397
  */var MJUserViewCategorySchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),Name:stringType().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(100)"),Description:stringType().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)"),ParentID:stringType().nullable().describe("\n * * Field Name: ParentID\n * * Display Name: Parent ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: User View Categories (vwUserViewCategories.ID)"),EntityID:stringType().describe("\n * * Field Name: EntityID\n * * Display Name: Entity ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)"),UserID:stringType().describe("\n * * Field Name: UserID\n * * Display Name: User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)"),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Parent:stringType().nullable().describe("\n * * Field Name: Parent\n * * Display Name: Parent\n * * SQL Data Type: nvarchar(100)"),Entity:stringType().describe("\n * * Field Name: Entity\n * * Display Name: Entity\n * * SQL Data Type: nvarchar(255)"),User:stringType().describe("\n * * Field Name: User\n * * Display Name: User\n * * SQL Data Type: nvarchar(100)"),RootParentID:stringType().nullable().describe("\n * * Field Name: RootParentID\n * * Display Name: Root Parent ID\n * * SQL Data Type: uniqueidentifier")});/**
64071
64398
  * zod schema definition for the entity MJ: User View Run Details
64072
- */var MJUserViewRunDetailSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),UserViewRunID:stringType().describe("\n * * Field Name: UserViewRunID\n * * Display Name: User View Run ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: User View Runs (vwUserViewRuns.ID)"),RecordID:stringType().describe("\n * * Field Name: RecordID\n * * Display Name: Record\n * * SQL Data Type: nvarchar(450)\n * * Description: Field RecordID for entity User View Run Details."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),UserViewID:stringType().describe("\n * * Field Name: UserViewID\n * * Display Name: User View\n * * SQL Data Type: uniqueidentifier"),EntityID:stringType().describe("\n * * Field Name: EntityID\n * * Display Name: Entity\n * * SQL Data Type: uniqueidentifier")});/**
64399
+ */var MJUserViewRunDetailSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),UserViewRunID:stringType().describe("\n * * Field Name: UserViewRunID\n * * Display Name: User View Run\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: User View Runs (vwUserViewRuns.ID)"),RecordID:stringType().describe("\n * * Field Name: RecordID\n * * Display Name: Record\n * * SQL Data Type: nvarchar(450)\n * * Description: Field RecordID for entity User View Run Details."),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),UserViewRun:stringType().describe("\n * * Field Name: UserViewRun\n * * Display Name: User View Run Name\n * * SQL Data Type: nvarchar(100)"),UserViewID:stringType().describe("\n * * Field Name: UserViewID\n * * Display Name: User View\n * * SQL Data Type: uniqueidentifier"),EntityID:stringType().describe("\n * * Field Name: EntityID\n * * Display Name: Entity\n * * SQL Data Type: uniqueidentifier")});/**
64073
64400
  * zod schema definition for the entity MJ: User View Runs
64074
64401
  */var MJUserViewRunSchema=objectType({ID:stringType().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),UserViewID:stringType().describe("\n * * Field Name: UserViewID\n * * Display Name: User View\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: User Views (vwUserViews.ID)"),RunAt:dateType().describe("\n * * Field Name: RunAt\n * * Display Name: Run At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp when the view was executed."),RunByUserID:stringType().describe("\n * * Field Name: RunByUserID\n * * Display Name: Run By User\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)"),__mj_CreatedAt:dateType().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:dateType().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),UserView:stringType().describe("\n * * Field Name: UserView\n * * Display Name: User View\n * * SQL Data Type: nvarchar(100)"),RunByUser:stringType().describe("\n * * Field Name: RunByUser\n * * Display Name: Run By User\n * * SQL Data Type: nvarchar(100)")});/**
64075
64402
  * zod schema definition for the entity MJ: User Views
@@ -64487,7 +64814,7 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
64487
64814
  * * Field Name: Params
64488
64815
  * * Display Name: Params
64489
64816
  * * SQL Data Type: nvarchar(MAX)
64490
- * * Description: JSON-formatted input parameters passed to the action during execution, storing the exact values used for this specific run.
64817
+ * * Description: JSON-formatted input parameters AS THE ACTION WAS CALLED, captured once when execution starts and never overwritten. Custom and Generated actions mutate their parameter array in place, so this is the only durable record of the values actually passed in; the final state lives in ResultParams. Parameter values may be redacted per ActionParam.LogValue / EntityActionParam.LogValue, and whole-record value types are never written - see the parameter's own documentation.
64491
64818
  */},{key:"Params",get:function get(){return this.Get('Params');},set:function set(value){this.Set('Params',value);}/**
64492
64819
  * * Field Name: ResultCode
64493
64820
  * * Display Name: Result Code
@@ -64517,8 +64844,36 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
64517
64844
  * * Field Name: Message
64518
64845
  * * Display Name: Message
64519
64846
  * * SQL Data Type: nvarchar(MAX)
64520
- * * Description: JSON-formatted output data or response from the action execution
64847
+ * * Description: Human-readable summary message returned by the action - the reason for a refusal, or a short description of what was done. Not the action's output data: parameter values live in Params and ResultParams, and the outcome code in ResultCode.
64521
64848
  */},{key:"Message",get:function get(){return this.Get('Message');},set:function set(value){this.Set('Message',value);}/**
64849
+ * * Field Name: EntityActionID
64850
+ * * Display Name: Entity Action ID
64851
+ * * SQL Data Type: uniqueidentifier
64852
+ * * Related Entity/Foreign Key: MJ: Entity Actions (vwEntityActions.ID)
64853
+ * * Description: Optional. The Entity Action binding that caused this run. NULL when the action was invoked directly - from a resolver, a script, an agent step or a scheduled action.
64854
+ */},{key:"EntityActionID",get:function get(){return this.Get('EntityActionID');},set:function set(value){this.Set('EntityActionID',value);}/**
64855
+ * * Field Name: EntityActionInvocationTypeID
64856
+ * * Display Name: Entity Action Invocation Type ID
64857
+ * * SQL Data Type: uniqueidentifier
64858
+ * * Related Entity/Foreign Key: MJ: Entity Action Invocation Types (vwEntityActionInvocationTypes.ID)
64859
+ * * Description: Optional. Which lifecycle event fired the binding - AfterUpdate, Validate, List and so on. Recorded separately from EntityActionID because one binding may be attached to several invocation types, and telling a Validate refusal apart from an AfterUpdate side effect is the first question anyone asks of this log.
64860
+ */},{key:"EntityActionInvocationTypeID",get:function get(){return this.Get('EntityActionInvocationTypeID');},set:function set(value){this.Set('EntityActionInvocationTypeID',value);}/**
64861
+ * * Field Name: TargetEntityID
64862
+ * * Display Name: Target Entity ID
64863
+ * * SQL Data Type: uniqueidentifier
64864
+ * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)
64865
+ * * Description: Optional. The entity of the record this run operated on. Deliberately denormalized rather than joined through EntityActionID: it survives the binding being deleted or retargeted, and it lets the log be queried by record with no join. Kept generic because every invoker has a subject - not only Entity Actions.
64866
+ */},{key:"TargetEntityID",get:function get(){return this.Get('TargetEntityID');},set:function set(value){this.Set('TargetEntityID',value);}/**
64867
+ * * Field Name: TargetRecordID
64868
+ * * Display Name: Target Record ID
64869
+ * * SQL Data Type: nvarchar(450)
64870
+ * * Description: Optional. The primary key of the record this run operated on, as text, paired with TargetEntityID. For multi-record invocation types (List, View) one log row is written per record, so this is always a single record.
64871
+ */},{key:"TargetRecordID",get:function get(){return this.Get('TargetRecordID');},set:function set(value){this.Set('TargetRecordID',value);}/**
64872
+ * * Field Name: ResultParams
64873
+ * * Display Name: Result Params
64874
+ * * SQL Data Type: nvarchar(MAX)
64875
+ * * Description: JSON-formatted FINAL parameter set captured when the action finished - the inputs as the action left them, plus any output parameters it produced. Written on FAILURE exactly as on success, under the same redaction rules: a failed run's partially-mutated inputs are usually the most diagnostic thing available, and an audit trail that records only successes is not an audit trail. Distinct from Params, which holds the values the action was called with and is never overwritten. NULL means one thing only - the run never finished (process died, host killed) - so it is a signal rather than an absence, and must not be backfilled.
64876
+ */},{key:"ResultParams",get:function get(){return this.Get('ResultParams');},set:function set(value){this.Set('ResultParams',value);}/**
64522
64877
  * * Field Name: Action
64523
64878
  * * Display Name: Action
64524
64879
  * * SQL Data Type: nvarchar(425)
@@ -64526,7 +64881,19 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
64526
64881
  * * Field Name: User
64527
64882
  * * Display Name: User
64528
64883
  * * SQL Data Type: nvarchar(100)
64529
- */},{key:"User",get:function get(){return this.Get('User');}}]);}(dist/* BaseEntity */.HCJ);MJActionExecutionLogEntity=__decorate([(0,MJGlobal_dist/* RegisterClass */.Y5)(dist/* BaseEntity */.HCJ,'MJ: Action Execution Logs')],MJActionExecutionLogEntity);/**
64884
+ */},{key:"User",get:function get(){return this.Get('User');}/**
64885
+ * * Field Name: EntityAction
64886
+ * * Display Name: Entity Action
64887
+ * * SQL Data Type: nvarchar(425)
64888
+ */},{key:"EntityAction",get:function get(){return this.Get('EntityAction');}/**
64889
+ * * Field Name: EntityActionInvocationType
64890
+ * * Display Name: Entity Action Invocation Type
64891
+ * * SQL Data Type: nvarchar(255)
64892
+ */},{key:"EntityActionInvocationType",get:function get(){return this.Get('EntityActionInvocationType');}/**
64893
+ * * Field Name: TargetEntity
64894
+ * * Display Name: Target Entity
64895
+ * * SQL Data Type: nvarchar(255)
64896
+ */},{key:"TargetEntity",get:function get(){return this.Get('TargetEntity');}}]);}(dist/* BaseEntity */.HCJ);MJActionExecutionLogEntity=__decorate([(0,MJGlobal_dist/* RegisterClass */.Y5)(dist/* BaseEntity */.HCJ,'MJ: Action Execution Logs')],MJActionExecutionLogEntity);/**
64530
64897
  * MJ: Action Filters - strongly typed entity sub-class
64531
64898
  * * Schema: __mj
64532
64899
  * * Base Table: ActionFilter
@@ -64741,6 +65108,12 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
64741
65108
  * * Video
64742
65109
  * * Description: Specifies the type of media this parameter outputs when ValueType is MediaOutput. Used for action discovery and validation.
64743
65110
  */},{key:"MediaModality",get:function get(){return this.Get('MediaModality');},set:function set(value){this.Set('MediaModality',value);}/**
65111
+ * * Field Name: LogValue
65112
+ * * Display Name: Log Value
65113
+ * * SQL Data Type: bit
65114
+ * * Default Value: 1
65115
+ * * Description: Whether this parameter's VALUE may be written to ActionExecutionLog.Params. Default 1. Set to 0 for parameters that carry records, credentials or personal data - for example the Data payload of Execute Agent. Independent of the hard rule that Entity Action params of ValueType 'Entity Object' or 'Entity Object Data' are never logged regardless of this flag. When logging is suppressed the log records the parameter name, its type and a redaction marker, never the value.
65116
+ */},{key:"LogValue",get:function get(){return this.Get('LogValue');},set:function set(value){this.Set('LogValue',value);}/**
64744
65117
  * * Field Name: Action
64745
65118
  * * Display Name: Action
64746
65119
  * * SQL Data Type: nvarchar(425)
@@ -69034,7 +69407,7 @@ _context44.p=1;_context44.n=2;return provider.BeginTransaction();case 2:_context
69034
69407
  * @param result - the ValidationResult object to add any errors or warnings to
69035
69408
  * @public
69036
69409
  * @method
69037
- */},{key:"ValidateCompactionTriggerPercentRange",value:function ValidateCompactionTriggerPercentRange(result){if(this.CompactionTriggerPercent!=null&&(this.CompactionTriggerPercent<1||this.CompactionTriggerPercent>100)){result.Errors.push(new dist/* ValidationErrorInfo */.Omh("CompactionTriggerPercent","Compaction trigger percentage must be between 1 and 100.",this.CompactionTriggerPercent,dist/* ValidationErrorType */.wX$.Failure));}}/**
69410
+ */},{key:"ValidateCompactionTriggerPercentRange",value:function ValidateCompactionTriggerPercentRange(result){if(this.CompactionTriggerPercent<1||this.CompactionTriggerPercent>100){result.Errors.push(new dist/* ValidationErrorInfo */.Omh("CompactionTriggerPercent","Compaction trigger percentage must be between 1 and 100.",this.CompactionTriggerPercent,dist/* ValidationErrorType */.wX$.Failure));}}/**
69038
69411
  * The maximum tokens for the context window must be a positive number greater than 0.
69039
69412
  * @param result - the ValidationResult object to add any errors or warnings to
69040
69413
  * @public
@@ -73903,6 +74276,12 @@ _context74.p=1;_context74.n=2;return provider.BeginTransaction();case 2:_context
73903
74276
  * * SQL Data Type: datetimeoffset
73904
74277
  * * Default Value: getutcdate()
73905
74278
  */},{key:"__mj_UpdatedAt",get:function get(){return this.Get('__mj_UpdatedAt');}/**
74279
+ * * Field Name: RowFilterID
74280
+ * * Display Name: Row Filter ID
74281
+ * * SQL Data Type: uniqueidentifier
74282
+ * * Related Entity/Foreign Key: MJ: Row Level Security Filters (vwRowLevelSecurityFilters.ID)
74283
+ * * Description: Optional row-level filter acting as a CEILING for every API key operating under this application — a restriction keys inherit and cannot widen. Composes with the per-key filter (APIKeyScope.RowFilterID) and with role-based RLS using AND, never OR, so no layer can broaden another. References the same RowLevelSecurityFilter catalog used by role-based RLS. NULL (the default) means the application imposes no row ceiling. The same authoring constraints as APIKeyScope.RowFilterID apply: exact single-entity resource pattern, all referenced columns must exist on that entity, and all referrers of the filter record must resolve to the same entity.
74284
+ */},{key:"RowFilterID",get:function get(){return this.Get('RowFilterID');},set:function set(value){this.Set('RowFilterID',value);}/**
73906
74285
  * * Field Name: Application
73907
74286
  * * Display Name: Application Name
73908
74287
  * * SQL Data Type: nvarchar(100)
@@ -73910,7 +74289,11 @@ _context74.p=1;_context74.n=2;return provider.BeginTransaction();case 2:_context
73910
74289
  * * Field Name: Scope
73911
74290
  * * Display Name: Scope Name
73912
74291
  * * SQL Data Type: nvarchar(100)
73913
- */},{key:"Scope",get:function get(){return this.Get('Scope');}}]);}(dist/* BaseEntity */.HCJ);MJAPIApplicationScopeEntity=__decorate([(0,MJGlobal_dist/* RegisterClass */.Y5)(dist/* BaseEntity */.HCJ,'MJ: API Application Scopes')],MJAPIApplicationScopeEntity);/**
74292
+ */},{key:"Scope",get:function get(){return this.Get('Scope');}/**
74293
+ * * Field Name: RowFilter
74294
+ * * Display Name: Row Filter
74295
+ * * SQL Data Type: nvarchar(100)
74296
+ */},{key:"RowFilter",get:function get(){return this.Get('RowFilter');}}]);}(dist/* BaseEntity */.HCJ);MJAPIApplicationScopeEntity=__decorate([(0,MJGlobal_dist/* RegisterClass */.Y5)(dist/* BaseEntity */.HCJ,'MJ: API Application Scopes')],MJAPIApplicationScopeEntity);/**
73914
74297
  * MJ: API Applications - strongly typed entity sub-class
73915
74298
  * * Schema: __mj
73916
74299
  * * Base Table: APIApplication
@@ -74089,6 +74472,12 @@ _context74.p=1;_context74.n=2;return provider.BeginTransaction();case 2:_context
74089
74472
  * * Default Value: 0
74090
74473
  * * Description: Rule evaluation order. Higher priority rules are evaluated first. Within same priority, deny rules are evaluated before allow rules.
74091
74474
  */},{key:"Priority",get:function get(){return this.Get('Priority');},set:function set(value){this.Set('Priority',value);}/**
74475
+ * * Field Name: RowFilterID
74476
+ * * Display Name: Row Filter ID
74477
+ * * SQL Data Type: uniqueidentifier
74478
+ * * Related Entity/Foreign Key: MJ: Row Level Security Filters (vwRowLevelSecurityFilters.ID)
74479
+ * * Description: Optional row-level filter narrowing WHICH RECORDS this scope grant applies to, in addition to the resource pattern that governs which entities. References the same RowLevelSecurityFilter catalog used by role-based RLS, so the filter text flows through the standard {{Token}} substitution engine and every existing RLS enforcement point (RunView, Load by primary key, save, delete, search). NULL (the default) means no row restriction — behavior identical to before this column existed. When set, the rule's ResourcePattern must name a single exact entity (no wildcards, no comma-separated lists), every column the filter references must resolve to a real non-virtual field on that entity, and every other referrer of the same filter record must resolve to that same entity. Critically, this filter is evaluated INDEPENDENTLY of the role-RLS exemption: a user exempt from role RLS is still bound by their key's filter, because narrowing a principal below what their roles allow is the entire purpose of a key ceiling.
74480
+ */},{key:"RowFilterID",get:function get(){return this.Get('RowFilterID');},set:function set(value){this.Set('RowFilterID',value);}/**
74092
74481
  * * Field Name: APIKey
74093
74482
  * * Display Name: API Key
74094
74483
  * * SQL Data Type: nvarchar(255)
@@ -74096,7 +74485,11 @@ _context74.p=1;_context74.n=2;return provider.BeginTransaction();case 2:_context
74096
74485
  * * Field Name: Scope
74097
74486
  * * Display Name: Scope
74098
74487
  * * SQL Data Type: nvarchar(100)
74099
- */},{key:"Scope",get:function get(){return this.Get('Scope');}}]);}(dist/* BaseEntity */.HCJ);MJAPIKeyScopeEntity=__decorate([(0,MJGlobal_dist/* RegisterClass */.Y5)(dist/* BaseEntity */.HCJ,'MJ: API Key Scopes')],MJAPIKeyScopeEntity);/**
74488
+ */},{key:"Scope",get:function get(){return this.Get('Scope');}/**
74489
+ * * Field Name: RowFilter
74490
+ * * Display Name: Row Filter
74491
+ * * SQL Data Type: nvarchar(100)
74492
+ */},{key:"RowFilter",get:function get(){return this.Get('RowFilter');}}]);}(dist/* BaseEntity */.HCJ);MJAPIKeyScopeEntity=__decorate([(0,MJGlobal_dist/* RegisterClass */.Y5)(dist/* BaseEntity */.HCJ,'MJ: API Key Scopes')],MJAPIKeyScopeEntity);/**
74100
74493
  * MJ: API Key Usage Logs - strongly typed entity sub-class
74101
74494
  * * Schema: __mj
74102
74495
  * * Base Table: APIKeyUsageLog
@@ -78552,12 +78945,12 @@ _context96.p=1;_context96.n=2;return provider.BeginTransaction();case 2:_context
78552
78945
  * * Description: Exclusive character offset where this chunk ends within the parent Content Item's extracted text. See StartOffset. NULL for media segments.
78553
78946
  */},{key:"EndOffset",get:function get(){return this.Get('EndOffset');},set:function set(value){this.Set('EndOffset',value);}/**
78554
78947
  * * Field Name: StartMs
78555
- * * Display Name: Start (ms)
78948
+ * * Display Name: Start Milliseconds
78556
78949
  * * SQL Data Type: int
78557
78950
  * * Description: Start of this chunk's time window, in milliseconds from the beginning of the parent audio or video asset. Set by transcript- or window-based segmentation; enables time-windowed playback deep-links from a search result (for example 14:22-15:05 of a session recording). NULL for text segments.
78558
78951
  */},{key:"StartMs",get:function get(){return this.Get('StartMs');},set:function set(value){this.Set('StartMs',value);}/**
78559
78952
  * * Field Name: EndMs
78560
- * * Display Name: End (ms)
78953
+ * * Display Name: End Milliseconds
78561
78954
  * * SQL Data Type: int
78562
78955
  * * Description: End of this chunk's time window, in milliseconds from the beginning of the parent audio or video asset. See StartMs. NULL for text segments.
78563
78956
  */},{key:"EndMs",get:function get(){return this.Get('EndMs');},set:function set(value){this.Set('EndMs',value);}/**
@@ -78593,9 +78986,13 @@ _context96.p=1;_context96.n=2;return provider.BeginTransaction();case 2:_context
78593
78986
  * * Description: Optional self-reference to another chunk of the same Content Item that is the parent of this one, expressing a chapter to sub-chapter hierarchy — for example a five-minute chapter of a recording and the individual speaker turns within it, or a document section and its subsections. NULL for top-level segments.
78594
78987
  */},{key:"ParentChunkID",get:function get(){return this.Get('ParentChunkID');},set:function set(value){this.Set('ParentChunkID',value);}/**
78595
78988
  * * Field Name: ContentItem
78596
- * * Display Name: Content Item
78989
+ * * Display Name: Content Item Name
78597
78990
  * * SQL Data Type: nvarchar(250)
78598
78991
  */},{key:"ContentItem",get:function get(){return this.Get('ContentItem');}/**
78992
+ * * Field Name: ParentChunk
78993
+ * * Display Name: Parent Chunk Name
78994
+ * * SQL Data Type: nvarchar(500)
78995
+ */},{key:"ParentChunk",get:function get(){return this.Get('ParentChunk');}/**
78599
78996
  * * Field Name: RootParentChunkID
78600
78997
  * * Display Name: Root Parent Chunk
78601
78998
  * * SQL Data Type: uniqueidentifier
@@ -83229,15 +83626,39 @@ _context176.p=1;_context176.n=2;return provider.BeginTransaction();case 2:_conte
83229
83626
  */function(){var _Load177=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee191(ID,EntityRelationshipsToLoad){var compositeKey;return _regenerator().w(function(_context191){while(1)switch(_context191.n){case 0:compositeKey=new dist/* CompositeKey */.BT8();compositeKey.KeyValuePairs.push({FieldName:'ID',Value:ID});_context191.n=1;return _superPropGet(MJEntityEntity,"InnerLoad",this,3)([compositeKey,EntityRelationshipsToLoad]);case 1:return _context191.a(2,_context191.v);}},_callee191,this);}));function Load(_x369,_x370){return _Load177.apply(this,arguments);}return Load;}()/**
83230
83627
  * Validate() method override for MJ: Entities entity. This is an auto-generated method that invokes the generated validators for this entity for the following fields:
83231
83628
  * * Table-Level: This rule ensures that if deleting via the API is allowed and the delete type is set to 'Soft', then record merging must also be allowed. In other words, you cannot allow API deletes with a soft delete type without also allowing record merging.
83629
+ * * Table-Level: If direct SQL deletion is allowed, the delete type must be set to 'Hard' to ensure data integrity.
83630
+ * * Table-Level: Direct SQL operations (Insert, Update, and Delete) must be disabled if Track Record Changes or Trust Server Cache Completely is enabled, ensuring that cache integrity and change tracking are not bypassed.
83631
+ * * Table-Level: If the base view is marked as generated, the generated base view name must be null. A generated base view name can only be set when the base view is not marked as generated.
83632
+ * * Table-Level: If a generated base view name is specified, a base view must also be defined, and the generated base view name cannot be the same as the base view name to prevent naming conflicts.
83232
83633
  * @public
83233
83634
  * @method
83234
83635
  * @override
83235
- */)},{key:"Validate",value:function Validate(){var result=_superPropGet(MJEntityEntity,"Validate",this,3)([]);this.ValidateAllowRecordMergeForSoftDeleteAPI(result);result.Success=result.Success&&result.Errors.length===0;return result;}/**
83636
+ */)},{key:"Validate",value:function Validate(){var result=_superPropGet(MJEntityEntity,"Validate",this,3)([]);this.ValidateAllowRecordMergeForSoftDeleteAPI(result);this.ValidateDeleteTypeForDirectSQLDelete(result);this.ValidateDirectSQLAndTrackingConstraints(result);this.ValidateGeneratedBaseViewNameAndBaseViewGenerated(result);this.ValidateGeneratedBaseViewNameDifferentFromBaseView(result);result.Success=result.Success&&result.Errors.length===0;return result;}/**
83236
83637
  * This rule ensures that if deleting via the API is allowed and the delete type is set to 'Soft', then record merging must also be allowed. In other words, you cannot allow API deletes with a soft delete type without also allowing record merging.
83237
83638
  * @param result - the ValidationResult object to add any errors or warnings to
83238
83639
  * @public
83239
83640
  * @method
83240
83641
  */},{key:"ValidateAllowRecordMergeForSoftDeleteAPI",value:function ValidateAllowRecordMergeForSoftDeleteAPI(result){if(this.AllowDeleteAPI&&this.DeleteType==="Soft"&&!this.AllowRecordMerge){result.Errors.push(new dist/* ValidationErrorInfo */.Omh("AllowRecordMerge","When API deletes are allowed and delete type is 'Soft', record merging must be allowed.",this.AllowRecordMerge,dist/* ValidationErrorType */.wX$.Failure));}}/**
83642
+ * If direct SQL deletion is allowed, the delete type must be set to 'Hard' to ensure data integrity.
83643
+ * @param result - the ValidationResult object to add any errors or warnings to
83644
+ * @public
83645
+ * @method
83646
+ */},{key:"ValidateDeleteTypeForDirectSQLDelete",value:function ValidateDeleteTypeForDirectSQLDelete(result){if(this.AllowDirectSQLDelete&&this.DeleteType!=="Hard"){result.Errors.push(new dist/* ValidationErrorInfo */.Omh("DeleteType","Delete Type must be 'Hard' if Allow Direct SQL Delete is enabled.",this.DeleteType,dist/* ValidationErrorType */.wX$.Failure));}}/**
83647
+ * Direct SQL operations (Insert, Update, and Delete) must be disabled if Track Record Changes or Trust Server Cache Completely is enabled, ensuring that cache integrity and change tracking are not bypassed.
83648
+ * @param result - the ValidationResult object to add any errors or warnings to
83649
+ * @public
83650
+ * @method
83651
+ */},{key:"ValidateDirectSQLAndTrackingConstraints",value:function ValidateDirectSQLAndTrackingConstraints(result){if((this.AllowDirectSQLInsert||this.AllowDirectSQLUpdate||this.AllowDirectSQLDelete)&&(this.TrackRecordChanges||this.TrustServerCacheCompletely)){result.Errors.push(new dist/* ValidationErrorInfo */.Omh("AllowDirectSQLInsert","Direct SQL operations (Insert, Update, Delete) cannot be enabled when Track Record Changes or Trust Server Cache Completely is enabled.",this.AllowDirectSQLInsert,dist/* ValidationErrorType */.wX$.Failure));}}/**
83652
+ * If the base view is marked as generated, the generated base view name must be null. A generated base view name can only be set when the base view is not marked as generated.
83653
+ * @param result - the ValidationResult object to add any errors or warnings to
83654
+ * @public
83655
+ * @method
83656
+ */},{key:"ValidateGeneratedBaseViewNameAndBaseViewGenerated",value:function ValidateGeneratedBaseViewNameAndBaseViewGenerated(result){if(this.GeneratedBaseViewName!=null&&this.BaseViewGenerated){result.Errors.push(new dist/* ValidationErrorInfo */.Omh("GeneratedBaseViewName","Generated Base View Name must be empty when Base View Generated is enabled.",this.GeneratedBaseViewName,dist/* ValidationErrorType */.wX$.Failure));}}/**
83657
+ * If a generated base view name is specified, a base view must also be defined, and the generated base view name cannot be the same as the base view name to prevent naming conflicts.
83658
+ * @param result - the ValidationResult object to add any errors or warnings to
83659
+ * @public
83660
+ * @method
83661
+ */},{key:"ValidateGeneratedBaseViewNameDifferentFromBaseView",value:function ValidateGeneratedBaseViewNameDifferentFromBaseView(result){if(this.GeneratedBaseViewName!=null&&this.GeneratedBaseViewName.trim()!==""){if(this.BaseView==null||this.BaseView.trim()===""){result.Errors.push(new dist/* ValidationErrorInfo */.Omh("GeneratedBaseViewName","A Base View must be specified when a Generated Base View Name is provided.",this.GeneratedBaseViewName,dist/* ValidationErrorType */.wX$.Failure));}else if(this.GeneratedBaseViewName===this.BaseView){result.Errors.push(new dist/* ValidationErrorInfo */.Omh("GeneratedBaseViewName","The Generated Base View Name cannot be the same as the Base View name.",this.GeneratedBaseViewName,dist/* ValidationErrorType */.wX$.Failure));}}}/**
83241
83662
  * * Field Name: ID
83242
83663
  * * Display Name: ID
83243
83664
  * * SQL Data Type: uniqueidentifier
@@ -83625,7 +84046,7 @@ _context176.p=1;_context176.n=2;return provider.BeginTransaction();case 2:_conte
83625
84046
  * * Description: When set to 1 AND TrackRecordChanges is also 1, the external change detection system will scan this entity for changes made outside the MJ framework (direct SQL, third-party tools, etc.) and replay them through Save() to create proper RecordChange audit entries. Default is 0 (opt-out) because most entities, especially __mj schema metadata tables, are managed by migrations/CodeGen and should not be scanned.
83626
84047
  */},{key:"DetectExternalChanges",get:function get(){return this.Get('DetectExternalChanges');},set:function set(value){this.Set('DetectExternalChanges',value);}/**
83627
84048
  * * Field Name: ExternalDataSourceID
83628
- * * Display Name: External Data Source ID
84049
+ * * Display Name: External Data Source
83629
84050
  * * SQL Data Type: uniqueidentifier
83630
84051
  * * Related Entity/Foreign Key: MJ: External Data Sources (vwExternalDataSources.ID)
83631
84052
  */},{key:"ExternalDataSourceID",get:function get(){return this.Get('ExternalDataSourceID');},set:function set(value){this.Set('ExternalDataSourceID',value);}/**
@@ -83634,6 +84055,29 @@ _context176.p=1;_context176.n=2;return provider.BeginTransaction();case 2:_conte
83634
84055
  * * SQL Data Type: nvarchar(255)
83635
84056
  * * Description: Remote object name (table / view / collection) on the external system that backs this entity. Resolved against the data source DefaultSchema/DefaultDatabase when unqualified. Only meaningful when ExternalDataSourceID is set.
83636
84057
  */},{key:"ExternalObjectName",get:function get(){return this.Get('ExternalObjectName');},set:function set(value){this.Set('ExternalObjectName',value);}/**
84058
+ * * Field Name: GeneratedBaseViewName
84059
+ * * Display Name: Generated Base View Name
84060
+ * * SQL Data Type: nvarchar(255)
84061
+ * * Description: When set, CodeGen generates the entity's full base view under THIS name instead of BaseView, and the application owns BaseView — which is expected to wrap it (SELECT g.*, <extras> FROM <GeneratedBaseViewName> g). This gives an entity a custom base view WITHOUT inheriting the generated SQL: related-entity display joins, geo columns and recursive root-ID columns keep regenerating underneath, so a foreign key added later still appears. NULL (the default, and every pre-existing row) means the previous all-or-nothing behaviour: BaseViewGenerated alone decides whether CodeGen writes BaseView, and there is no second view. BaseView remains the public surface — entity field discovery, permissions and the generated CRUD procedures all target it. SQL SERVER ONLY: layering relies on sp_refreshview to re-resolve the application-owned outer view's SELECT * against a regenerated inner view. PostgreSQL freezes a view's column list at creation and has no refresh equivalent, so CodeGen rejects this column on PostgreSQL rather than let the outer view go silently stale.
84062
+ */},{key:"GeneratedBaseViewName",get:function get(){return this.Get('GeneratedBaseViewName');},set:function set(value){this.Set('GeneratedBaseViewName',value);}/**
84063
+ * * Field Name: AllowDirectSQLInsert
84064
+ * * Display Name: Allow Direct SQL Insert
84065
+ * * SQL Data Type: bit
84066
+ * * Default Value: 0
84067
+ * * Description: When 1, this entity may be populated by INSERT statements that do not go through BaseEntity.Save() — bulk loads, ETL/integration sync, or rows created as a side effect of a stored procedure. Default 0, meaning every insert is expected to flow through BaseEntity so that record-change tracking, entity actions, validation and cache invalidation all run. This column DECLARES intent for the code paths and tooling that consult it; it does not and cannot prevent anyone from executing SQL. Requires TrackRecordChanges = 0 and TrustServerCacheCompletely = 0, because a direct insert produces neither an audit row nor a cache-invalidation event.
84068
+ */},{key:"AllowDirectSQLInsert",get:function get(){return this.Get('AllowDirectSQLInsert');},set:function set(value){this.Set('AllowDirectSQLInsert',value);}/**
84069
+ * * Field Name: AllowDirectSQLUpdate
84070
+ * * Display Name: Allow Direct SQL Update
84071
+ * * SQL Data Type: bit
84072
+ * * Default Value: 0
84073
+ * * Description: When 1, this entity may be modified by UPDATE statements that do not go through BaseEntity.Save() — bulk backfills, integration sync, or maintenance routines. Default 0, meaning every update is expected to flow through BaseEntity so that record-change tracking, entity actions, validation and cache invalidation all run. This column DECLARES intent for the code paths and tooling that consult it; it does not and cannot prevent anyone from executing SQL. Requires TrackRecordChanges = 0 and TrustServerCacheCompletely = 0, because a direct update produces neither an audit row nor a cache-invalidation event.
84074
+ */},{key:"AllowDirectSQLUpdate",get:function get(){return this.Get('AllowDirectSQLUpdate');},set:function set(value){this.Set('AllowDirectSQLUpdate',value);}/**
84075
+ * * Field Name: AllowDirectSQLDelete
84076
+ * * Display Name: Allow Direct SQL Delete
84077
+ * * SQL Data Type: bit
84078
+ * * Default Value: 0
84079
+ * * Description: When 1, this entity may have rows removed by DELETE statements that do not go through BaseEntity.Delete() — purge and retention routines, or integration sync reconciling a remote source. Default 0, meaning every delete is expected to flow through BaseEntity so that record-change tracking, entity actions, cascade handling and cache invalidation all run. This column DECLARES intent for the code paths and tooling that consult it; it does not and cannot prevent anyone from executing SQL. Requires TrackRecordChanges = 0 and TrustServerCacheCompletely = 0, and additionally requires DeleteType = 'Hard' — a direct DELETE removes the row outright rather than setting DeletedAt, which would defeat soft delete.
84080
+ */},{key:"AllowDirectSQLDelete",get:function get(){return this.Get('AllowDirectSQLDelete');},set:function set(value){this.Set('AllowDirectSQLDelete',value);}/**
83637
84081
  * * Field Name: CodeName
83638
84082
  * * Display Name: Code Name
83639
84083
  * * SQL Data Type: nvarchar(MAX)
@@ -83895,9 +84339,10 @@ _context176.p=1;_context176.n=2;return provider.BeginTransaction();case 2:_conte
83895
84339
  * * Possible Values
83896
84340
  * * Entity Field
83897
84341
  * * Entity Object
84342
+ * * Entity Object Data
83898
84343
  * * Script
83899
84344
  * * Static
83900
- * * Description: Type of the value, which can be Static, Entity Object, or Script.
84345
+ * * Description: How the parameter value is produced at invocation time. Static = the literal Value (parsed as JSON when it parses). Entity Object = the live BaseEntity instance, for actions that call entity methods. Entity Object Data = entity.GetAll(), a plain object - use this for any action that SERIALIZES the value, such as the Data payload of Execute Agent, because a BaseEntity serializes to {} (its fields are getters, not enumerable own properties). Entity Field = the named field's value. Script = evaluated expression with the entity in scope.
83901
84346
  */},{key:"ValueType",get:function get(){return this.Get('ValueType');},set:function set(value){this.Set('ValueType',value);}/**
83902
84347
  * * Field Name: Value
83903
84348
  * * Display Name: Value
@@ -83919,6 +84364,11 @@ _context176.p=1;_context176.n=2;return provider.BeginTransaction();case 2:_conte
83919
84364
  * * SQL Data Type: datetimeoffset
83920
84365
  * * Default Value: getutcdate()
83921
84366
  */},{key:"__mj_UpdatedAt",get:function get(){return this.Get('__mj_UpdatedAt');}/**
84367
+ * * Field Name: LogValue
84368
+ * * Display Name: Log Value
84369
+ * * SQL Data Type: bit
84370
+ * * Description: Optional per-binding override of ActionParam.LogValue. NULL (the default) inherits the parameter definition. Set to 0 when this particular binding passes something sensitive through a parameter that is ordinarily safe to log - a message body through a generic Text parameter, for instance. Cannot re-enable logging for a value type the hard rule suppresses.
84371
+ */},{key:"LogValue",get:function get(){return this.Get('LogValue');},set:function set(value){this.Set('LogValue',value);}/**
83922
84372
  * * Field Name: EntityAction
83923
84373
  * * Display Name: Entity Action
83924
84374
  * * SQL Data Type: nvarchar(425)
@@ -83947,11 +84397,22 @@ _context176.p=1;_context176.n=2;return provider.BeginTransaction();case 2:_conte
83947
84397
  * @method
83948
84398
  * @override
83949
84399
  */function(){var _Load182=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee196(ID,EntityRelationshipsToLoad){var compositeKey;return _regenerator().w(function(_context196){while(1)switch(_context196.n){case 0:compositeKey=new dist/* CompositeKey */.BT8();compositeKey.KeyValuePairs.push({FieldName:'ID',Value:ID});_context196.n=1;return _superPropGet(MJEntityActionEntity,"InnerLoad",this,3)([compositeKey,EntityRelationshipsToLoad]);case 1:return _context196.a(2,_context196.v);}},_callee196,this);}));function Load(_x379,_x380){return _Load182.apply(this,arguments);}return Load;}()/**
84400
+ * Validate() method override for MJ: Entity Actions entity. This is an auto-generated method that invokes the generated validators for this entity for the following fields:
84401
+ * * Table-Level: Both Scope Entity and Scope Record must be provided together, or both must be left blank. You cannot specify one without the other.
84402
+ * @public
84403
+ * @method
84404
+ * @override
84405
+ */)},{key:"Validate",value:function Validate(){var result=_superPropGet(MJEntityActionEntity,"Validate",this,3)([]);this.ValidateScopeEntityAndRecordCoexistence(result);result.Success=result.Success&&result.Errors.length===0;return result;}/**
84406
+ * Both Scope Entity and Scope Record must be provided together, or both must be left blank. You cannot specify one without the other.
84407
+ * @param result - the ValidationResult object to add any errors or warnings to
84408
+ * @public
84409
+ * @method
84410
+ */},{key:"ValidateScopeEntityAndRecordCoexistence",value:function ValidateScopeEntityAndRecordCoexistence(result){if(this.ScopeEntityID==null&&this.ScopeRecordID!=null||this.ScopeEntityID!=null&&this.ScopeRecordID==null){result.Errors.push(new dist/* ValidationErrorInfo */.Omh("ScopeEntityID","Scope Entity and Scope Record must either both be specified or both be empty.",this.ScopeEntityID,dist/* ValidationErrorType */.wX$.Failure));}}/**
83950
84411
  * * Field Name: EntityID
83951
84412
  * * Display Name: Entity ID
83952
84413
  * * SQL Data Type: uniqueidentifier
83953
84414
  * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)
83954
- */)},{key:"EntityID",get:function get(){return this.Get('EntityID');},set:function set(value){this.Set('EntityID',value);}/**
84415
+ */},{key:"EntityID",get:function get(){return this.Get('EntityID');},set:function set(value){this.Set('EntityID',value);}/**
83955
84416
  * * Field Name: ActionID
83956
84417
  * * Display Name: Action ID
83957
84418
  * * SQL Data Type: uniqueidentifier
@@ -83983,6 +84444,34 @@ _context176.p=1;_context176.n=2;return provider.BeginTransaction();case 2:_conte
83983
84444
  * * SQL Data Type: uniqueidentifier
83984
84445
  * * Default Value: newsequentialid()
83985
84446
  */},{key:"ID",get:function get(){return this.Get('ID');},set:function set(value){this.Set('ID',value);}/**
84447
+ * * Field Name: Sequence
84448
+ * * Display Name: Sequence
84449
+ * * SQL Data Type: int
84450
+ * * Default Value: 0
84451
+ * * Description: Execution order when multiple Entity Actions are bound to the same entity and invocation type. Lower runs first; ties fall back to creation order. Defaults to 0 so existing rows are unaffected.
84452
+ */},{key:"Sequence",get:function get(){return this.Get('Sequence');},set:function set(value){this.Set('Sequence',value);}/**
84453
+ * * Field Name: ScopeEntityID
84454
+ * * Display Name: Scope Entity ID
84455
+ * * SQL Data Type: uniqueidentifier
84456
+ * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)
84457
+ * * Description: Optional. Together with ScopeRecordID, narrows this Entity Action to records related to ONE specific record - for example a single Deal Type, Contract Type, Pipeline or Company - rather than every record of EntityID. NULL (the default) means the action applies to all records, which is the pre-existing behaviour. How a scope record relates to the subject record is resolved by the app that owns the scope entity; the framework only stores and filters on the pair.
84458
+ */},{key:"ScopeEntityID",get:function get(){return this.Get('ScopeEntityID');},set:function set(value){this.Set('ScopeEntityID',value);}/**
84459
+ * * Field Name: ScopeRecordID
84460
+ * * Display Name: Scope Record ID
84461
+ * * SQL Data Type: nvarchar(450)
84462
+ * * Description: Optional. The primary key of the scope record, as text, paired with ScopeEntityID. Both columns are NULL or both are set (CK_EntityAction_Scope). Lets a configuration record such as a Deal Type surface "the workflows bound to me" as a real relationship rather than something buried in filter code.
84463
+ */},{key:"ScopeRecordID",get:function get(){return this.Get('ScopeRecordID');},set:function set(value){this.Set('ScopeRecordID',value);}/**
84464
+ * * Field Name: LoggingMode
84465
+ * * Display Name: Logging Mode
84466
+ * * SQL Data Type: nvarchar(20)
84467
+ * * Default Value: All
84468
+ * * Value List Type: List
84469
+ * * Possible Values
84470
+ * * All
84471
+ * * FailuresOnly
84472
+ * * None
84473
+ * * Description: How much of this binding's activity reaches ActionExecutionLog. All (default) writes a row per invocation. FailuresOnly writes only runs that did not succeed - the right setting for a high-frequency binding on a busy entity, where the successful runs are noise. None disables logging for the binding entirely and should be rare, because it also removes the failure record.
84474
+ */},{key:"LoggingMode",get:function get(){return this.Get('LoggingMode');},set:function set(value){this.Set('LoggingMode',value);}/**
83986
84475
  * * Field Name: Entity
83987
84476
  * * Display Name: Entity
83988
84477
  * * SQL Data Type: nvarchar(255)
@@ -83990,7 +84479,11 @@ _context176.p=1;_context176.n=2;return provider.BeginTransaction();case 2:_conte
83990
84479
  * * Field Name: Action
83991
84480
  * * Display Name: Action
83992
84481
  * * SQL Data Type: nvarchar(425)
83993
- */},{key:"Action",get:function get(){return this.Get('Action');}}]);}(dist/* BaseEntity */.HCJ);MJEntityActionEntity=__decorate([(0,MJGlobal_dist/* RegisterClass */.Y5)(dist/* BaseEntity */.HCJ,'MJ: Entity Actions')],MJEntityActionEntity);/**
84482
+ */},{key:"Action",get:function get(){return this.Get('Action');}/**
84483
+ * * Field Name: ScopeEntity
84484
+ * * Display Name: Scope Entity
84485
+ * * SQL Data Type: nvarchar(255)
84486
+ */},{key:"ScopeEntity",get:function get(){return this.Get('ScopeEntity');}}]);}(dist/* BaseEntity */.HCJ);MJEntityActionEntity=__decorate([(0,MJGlobal_dist/* RegisterClass */.Y5)(dist/* BaseEntity */.HCJ,'MJ: Entity Actions')],MJEntityActionEntity);/**
83994
84487
  * MJ: Entity AI Actions - strongly typed entity sub-class
83995
84488
  * * Schema: __mj
83996
84489
  * * Base Table: EntityAIAction
@@ -101682,11 +102175,12 @@ _context372.p=1;_context372.n=2;return provider.BeginTransaction();case 2:_conte
101682
102175
  * @override
101683
102176
  */function(){var _Load366=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee384(ID,EntityRelationshipsToLoad){var compositeKey;return _regenerator().w(function(_context384){while(1)switch(_context384.n){case 0:compositeKey=new dist/* CompositeKey */.BT8();compositeKey.KeyValuePairs.push({FieldName:'ID',Value:ID});_context384.n=1;return _superPropGet(MJUserViewRunDetailEntity,"InnerLoad",this,3)([compositeKey,EntityRelationshipsToLoad]);case 1:return _context384.a(2,_context384.v);}},_callee384,this);}));function Load(_x751,_x752){return _Load366.apply(this,arguments);}return Load;}()/**
101684
102177
  * * Field Name: ID
102178
+ * * Display Name: ID
101685
102179
  * * SQL Data Type: uniqueidentifier
101686
102180
  * * Default Value: newsequentialid()
101687
102181
  */)},{key:"ID",get:function get(){return this.Get('ID');},set:function set(value){this.Set('ID',value);}/**
101688
102182
  * * Field Name: UserViewRunID
101689
- * * Display Name: User View Run ID
102183
+ * * Display Name: User View Run
101690
102184
  * * SQL Data Type: uniqueidentifier
101691
102185
  * * Related Entity/Foreign Key: MJ: User View Runs (vwUserViewRuns.ID)
101692
102186
  */},{key:"UserViewRunID",get:function get(){return this.Get('UserViewRunID');},set:function set(value){this.Set('UserViewRunID',value);}/**
@@ -101705,6 +102199,10 @@ _context372.p=1;_context372.n=2;return provider.BeginTransaction();case 2:_conte
101705
102199
  * * SQL Data Type: datetimeoffset
101706
102200
  * * Default Value: getutcdate()
101707
102201
  */},{key:"__mj_UpdatedAt",get:function get(){return this.Get('__mj_UpdatedAt');}/**
102202
+ * * Field Name: UserViewRun
102203
+ * * Display Name: User View Run Name
102204
+ * * SQL Data Type: nvarchar(100)
102205
+ */},{key:"UserViewRun",get:function get(){return this.Get('UserViewRun');}/**
101708
102206
  * * Field Name: UserViewID
101709
102207
  * * Display Name: User View
101710
102208
  * * SQL Data Type: uniqueidentifier
@@ -104760,7 +105258,7 @@ var ViewInfo = /*#__PURE__*/function () {
104760
105258
  while (1) switch (_context0.n) {
104761
105259
  case 0:
104762
105260
  _context0.n = 1;
104763
- return Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 964));
105261
+ return Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 791));
104764
105262
  case 1:
104765
105263
  _yield$import = _context0.v;
104766
105264
  UserViewEngine = _yield$import.UserViewEngine;
@@ -104805,7 +105303,7 @@ var ViewInfo = /*#__PURE__*/function () {
104805
105303
  while (1) switch (_context1.n) {
104806
105304
  case 0:
104807
105305
  _context1.n = 1;
104808
- return Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 964));
105306
+ return Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 791));
104809
105307
  case 1:
104810
105308
  _yield$import2 = _context1.v;
104811
105309
  UserViewEngine = _yield$import2.UserViewEngine;
@@ -107604,8 +108102,8 @@ var MJQueryEntityExtended = /*#__PURE__*/function (_MJQueryEntity) {
107604
108102
  }(MJQueryEntity);
107605
108103
  MJQueryEntityExtended = MJQueryEntityExtended_decorate([(0,MJGlobal_dist/* RegisterClass */.Y5)(dist/* BaseEntity */.HCJ, 'MJ: Queries')], MJQueryEntityExtended);
107606
108104
 
107607
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js
107608
- var BehaviorSubject = __webpack_require__(156);
108105
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js
108106
+ var BehaviorSubject = __webpack_require__(562);
107609
108107
  ;// ../../MJCoreEntities/dist/engines/artifact-mime-resolver.js
107610
108108
  function artifact_mime_resolver_toConsumableArray(r) { return artifact_mime_resolver_arrayWithoutHoles(r) || artifact_mime_resolver_iterableToArray(r) || artifact_mime_resolver_unsupportedIterableToArray(r) || artifact_mime_resolver_nonIterableSpread(); }
107611
108109
  function artifact_mime_resolver_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."); }
@@ -113670,7 +114168,8 @@ var UserInfoEngine = UserInfoEngine_1 = /*#__PURE__*/function (_BaseEngine) {
113670
114168
  return workspaces.length > 0 ? workspaces[0] : null;
113671
114169
  }
113672
114170
  /**
113673
- * Get all applications enabled for the current user, ordered by sequence then application name
114171
+ * Get all applications enabled for the current user, ordered by sequence, then the
114172
+ * application's DefaultSequence, then application name
113674
114173
  */
113675
114174
  }, {
113676
114175
  key: "UserApplications",
@@ -113680,13 +114179,39 @@ var UserInfoEngine = UserInfoEngine_1 = /*#__PURE__*/function (_BaseEngine) {
113680
114179
  return this.GetConfigData('_UserApplications').filter(function (ua) {
113681
114180
  return (0,MJGlobal_dist/* UUIDsEqual */.jd)(ua.UserID, _this6._loadedForUserId);
113682
114181
  }).sort(function (a, b) {
113683
- // Sort by Sequence first, then by Application name
113684
- if (a.Sequence !== b.Sequence) {
113685
- return a.Sequence - b.Sequence;
113686
- }
113687
- return (a.Application || '').localeCompare(b.Application || '');
114182
+ return _this6.compareUserApplications(a, b);
113688
114183
  });
113689
114184
  }
114185
+ /**
114186
+ * Canonical ordering for a user's UserApplication rows: user-owned `Sequence` first,
114187
+ * ties broken by the application's `DefaultSequence` (Home ships at -1, so it wins a
114188
+ * tie it didn't ask for), then application name as the final stable tie-break.
114189
+ * Duplicate Sequences are reachable without user action (new rows default to 0 and
114190
+ * `nextUserApplicationSequence` returns 0 for a user with no active rows), so the
114191
+ * tie-break must be deliberate rather than incidental.
114192
+ */
114193
+ }, {
114194
+ key: "compareUserApplications",
114195
+ value: function compareUserApplications(a, b) {
114196
+ if (a.Sequence !== b.Sequence) {
114197
+ return a.Sequence - b.Sequence;
114198
+ }
114199
+ var defaultSequenceDiff = this.applicationDefaultSequence(a.ApplicationID) - this.applicationDefaultSequence(b.ApplicationID);
114200
+ if (defaultSequenceDiff !== 0) {
114201
+ return defaultSequenceDiff;
114202
+ }
114203
+ return (a.Application || '').localeCompare(b.Application || '');
114204
+ }
114205
+ /**
114206
+ * The application's DefaultSequence from metadata, or the schema default (100) when
114207
+ * the application is not found.
114208
+ */
114209
+ }, {
114210
+ key: "applicationDefaultSequence",
114211
+ value: function applicationDefaultSequence(applicationId) {
114212
+ var _this$GetApplicationI, _this$GetApplicationI2;
114213
+ return (_this$GetApplicationI = (_this$GetApplicationI2 = this.GetApplicationInfo(applicationId)) === null || _this$GetApplicationI2 === void 0 ? void 0 : _this$GetApplicationI2.DefaultSequence) !== null && _this$GetApplicationI !== void 0 ? _this$GetApplicationI : 100;
114214
+ }
113690
114215
  /**
113691
114216
  * Get all favorites for the current user, ordered by creation date (newest first)
113692
114217
  */
@@ -113756,13 +114281,11 @@ var UserInfoEngine = UserInfoEngine_1 = /*#__PURE__*/function (_BaseEngine) {
113756
114281
  }, {
113757
114282
  key: "GetUserApplicationsForUser",
113758
114283
  value: function GetUserApplicationsForUser(userId) {
114284
+ var _this9 = this;
113759
114285
  return (this._UserApplications || []).filter(function (ua) {
113760
114286
  return (0,MJGlobal_dist/* UUIDsEqual */.jd)(ua.UserID, userId);
113761
114287
  }).sort(function (a, b) {
113762
- if (a.Sequence !== b.Sequence) {
113763
- return a.Sequence - b.Sequence;
113764
- }
113765
- return (a.Application || '').localeCompare(b.Application || '');
114288
+ return _this9.compareUserApplications(a, b);
113766
114289
  });
113767
114290
  }
113768
114291
  // ========================================================================
@@ -114654,10 +115177,10 @@ var UserInfoEngine = UserInfoEngine_1 = /*#__PURE__*/function (_BaseEngine) {
114654
115177
  }, {
114655
115178
  key: "NotificationPreferences",
114656
115179
  get: function get() {
114657
- var _this9 = this;
115180
+ var _this0 = this;
114658
115181
  if (!this._loadedForUserId) return [];
114659
115182
  return this.GetConfigData('_UserNotificationPreferences').filter(function (p) {
114660
- return (0,MJGlobal_dist/* UUIDsEqual */.jd)(p.UserID, _this9._loadedForUserId);
115183
+ return (0,MJGlobal_dist/* UUIDsEqual */.jd)(p.UserID, _this0._loadedForUserId);
114661
115184
  });
114662
115185
  }
114663
115186
  }, {
@@ -115597,7 +116120,7 @@ var ApplicationSettingEngine = /*#__PURE__*/function (_BaseEngine) {
115597
116120
  ApplicationSettingEngine = ApplicationSettingEngine_decorate([(0,dist/* RegisterForStartup */.imK)()], ApplicationSettingEngine);
115598
116121
 
115599
116122
  // EXTERNAL MODULE: ../../MJCoreEntities/dist/engines/UserViewEngine.js
115600
- var UserViewEngine = __webpack_require__(964);
116123
+ var UserViewEngine = __webpack_require__(791);
115601
116124
  ;// ../../MJCoreEntities/dist/engines/FileStorageEngine.js
115602
116125
  /* unused harmony import specifier */ var FileStorageEngine_BaseEngine;
115603
116126
  /* unused harmony import specifier */ var FileStorageEngine_UUIDsEqual;
@@ -124247,7 +124770,7 @@ LoadPermissionEntityExtensions();
124247
124770
 
124248
124771
  /***/ },
124249
124772
 
124250
- /***/ 198
124773
+ /***/ 899
124251
124774
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
124252
124775
 
124253
124776
  "use strict";
@@ -124275,7 +124798,7 @@ __webpack_require__.d(__webpack_exports__, {
124275
124798
  gZ: () => (/* reexport */ uuidv4)
124276
124799
  });
124277
124800
 
124278
- // UNUSED EXPORTS: ALLOWED_SQL_FUNCTIONS, BuildCronExpression, CRON_DAY_NAMES, ClassFactory, ClassIsOptionalKeyedSpecialization, ClassRegistration, ClassRequiresSubclass, CleanJSON, CleanJavaScript, ConvertMarkdownStringToHtmlList, CopyScalarsAndArrays, DANGEROUS_SQL_KEYWORDS, DEFAULT_RICH_TEXT_SCAN_LENGTH, DeepDiffer, DefaultCronSchedule, DeprecationWarningManager, DescribeCronExpression, DiffChangeType, ENCRYPTED_SENTINEL, EscapeHTML, FULL_QUERY_ALLOWED_KEYWORDS, FieldRulesEvaluator, FieldTransformEngine, FormatTimeOfDay, GetClassInheritance, GetClassName, GetFieldTransform, GetFullClassHierarchy, GetRootClass, GetSuperclass, HighlightSearchMatches, InvokeManualResize, IsClassConstructor, IsDescendantClassOf, IsEncryptedSentinel, IsOnlyTimezoneShift, IsPlausibleCronExpression, IsRootClass, IsSubclassOf, IsValidUUID, IsValueEncrypted, JSONValidator, KeyedSerialTaskQueue, MJEvent, MJGlobalProperty, OPTIONAL_KEYED_SPECIALIZATION_KEY, ObjectCache, ObjectCacheEntry, Ordinal, ParseCronExpression, ParseJSONRecursive, REQUIRES_SUBCLASS_KEY, RegisterClassEx, RegisterFieldTransform, SafeExpressionEvaluator, ShutdownRegistry, ToJSONSafe, adjustCasing, compareStringsByLine, convertCamelCaseToHaveSpaces, createDisplayName, defaultExpressionEvaluator, detectRichTextFormat, ensureRegExp, ensureRegExps, generatePluralName, getIrregularPlural, getValueAtPath, matchesAllPatterns, matchesAnyPattern, parsePattern, parsePatterns, replaceAllSpaces, resolveMappingRef, resolveValueMapping, stripTrailingChars, stripWhitespace
124801
+ // UNUSED EXPORTS: ALLOWED_SQL_FUNCTIONS, BLOCKED_SYSTEM_OBJECT_PATTERNS, BuildCronExpression, CRON_DAY_NAMES, ClassFactory, ClassIsOptionalKeyedSpecialization, ClassRegistration, ClassRequiresSubclass, CleanJSON, CleanJavaScript, ConvertMarkdownStringToHtmlList, CopyScalarsAndArrays, DANGEROUS_SQL_KEYWORDS, DEFAULT_RICH_TEXT_SCAN_LENGTH, DeepDiffer, DefaultCronSchedule, DeprecationWarningManager, DescribeCronExpression, DiffChangeType, ENCRYPTED_SENTINEL, EscapeHTML, FULL_QUERY_ALLOWED_KEYWORDS, FieldRulesEvaluator, FieldTransformEngine, FormatTimeOfDay, GetClassInheritance, GetClassName, GetFieldTransform, GetFullClassHierarchy, GetRootClass, GetSuperclass, HighlightSearchMatches, InvokeManualResize, IsClassConstructor, IsDescendantClassOf, IsEncryptedSentinel, IsOnlyTimezoneShift, IsPlausibleCronExpression, IsRootClass, IsSubclassOf, IsValidUUID, IsValueEncrypted, JSONValidator, KeyedSerialTaskQueue, MJEvent, MJGlobalProperty, OPTIONAL_KEYED_SPECIALIZATION_KEY, ObjectCache, ObjectCacheEntry, Ordinal, ParseCronExpression, ParseJSONRecursive, REQUIRES_SUBCLASS_KEY, RegisterClassEx, RegisterFieldTransform, SafeExpressionEvaluator, ShutdownRegistry, ToJSONSafe, adjustCasing, compareStringsByLine, convertCamelCaseToHaveSpaces, createDisplayName, defaultExpressionEvaluator, detectRichTextFormat, ensureRegExp, ensureRegExps, generatePluralName, getIrregularPlural, getValueAtPath, matchesAllPatterns, matchesAnyPattern, parsePattern, parsePatterns, replaceAllSpaces, resolveMappingRef, resolveValueMapping, stripTrailingChars, stripWhitespace
124279
124802
 
124280
124803
  ;// ../../MJGlobal/dist/ClassUtils.js
124281
124804
  /**
@@ -125316,10 +125839,10 @@ var MJEventType = {
125316
125839
  DisplaySimpleNotificationRequest: 'DisplaySimpleNotificationRequest',
125317
125840
  TenantChanged: 'TenantChanged'
125318
125841
  };
125319
- // EXTERNAL MODULE: ../../../node_modules/uuid/dist/v4.js + 3 modules
125320
- var v4 = __webpack_require__(718);
125321
- // EXTERNAL MODULE: ../../../node_modules/lodash/lodash.js
125322
- var lodash = __webpack_require__(637);
125842
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/uuid@13.0.0/node_modules/uuid/dist/v4.js + 3 modules
125843
+ var v4 = __webpack_require__(289);
125844
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/lodash.js
125845
+ var lodash = __webpack_require__(923);
125323
125846
  ;// ../../MJGlobal/dist/util.js
125324
125847
  /* unused harmony import specifier */ var _;
125325
125848
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || util_unsupportedIterableToArray(r, e) || _nonIterableRest(); }
@@ -129136,6 +129659,25 @@ var FULL_QUERY_ALLOWED_KEYWORDS = [
129136
129659
  // standalone SELECT statement, so allowing FOR in full-query context is safe.
129137
129660
  // (FOR UPDATE remains blocked via the independent UPDATE keyword.)
129138
129661
  'FOR'];
129662
+ /**
129663
+ * System catalog / metadata objects that must never be referenced from a user-supplied
129664
+ * expression or ad-hoc query, in ANY context (including `full_query`). These sit outside
129665
+ * MemberJunction's entity-permission model, so allowing them turns a validated SELECT into
129666
+ * a schema-enumeration and credential-exfiltration primitive
129667
+ * (e.g. `SELECT name, password_hash FROM sys.sql_logins`,
129668
+ * `SELECT * FROM INFORMATION_SCHEMA.COLUMNS`, `SELECT * FROM pg_catalog.pg_authid`).
129669
+ * String literals are stripped before this check runs, so a literal value like `'sys.x'` is safe.
129670
+ */
129671
+ var BLOCKED_SYSTEM_OBJECT_PATTERNS = [/\bSYS\s*\.\s*\w/i,
129672
+ // SQL Server system catalog schema: sys.sql_logins, sys.objects, sys.fn_*, ...
129673
+ /\bINFORMATION_SCHEMA\b/i,
129674
+ // ANSI catalog views — schema/table/column enumeration
129675
+ /\bSYSLOGINS\b/i,
129676
+ // legacy SQL Server logins view
129677
+ /\bPG_CATALOG\s*\./i,
129678
+ // PostgreSQL system catalog schema
129679
+ /\bPG_(AUTHID|SHADOW|USER|ROLES)\b/i // PostgreSQL credential / role catalogs
129680
+ ];
129139
129681
  /**
129140
129682
  * Safe SQL functions allowed in expressions, organized by category
129141
129683
  */
@@ -129308,15 +129850,29 @@ var SQLExpressionValidator = /*#__PURE__*/function (_BaseSingleton) {
129308
129850
  };
129309
129851
  }
129310
129852
  }
129311
- // Check statement terminator (prevents multi-statement injection).
129312
- // For full_query context, strip comments first (a trailing semicolon may be followed by
129313
- // an inline comment like `ORDER BY x DESC; -- highest first`), then strip the trailing
129314
- // semicolon. Only reject if semicolons remain mid-statement, indicating injection.
129853
+ // Block references to database system catalogs / metadata objects in ALL contexts
129854
+ // (including full_query). These live outside MemberJunction's entity-permission model, so
129855
+ // permitting them turns a validated SELECT into a schema-enumeration / credential-exfiltration
129856
+ // primitive. String literals were already stripped upstream, so legitimate literal values are safe.
129315
129857
  } catch (err) {
129316
129858
  _iterator.e(err);
129317
129859
  } finally {
129318
129860
  _iterator.f();
129319
129861
  }
129862
+ for (var _i = 0, _BLOCKED_SYSTEM_OBJEC = BLOCKED_SYSTEM_OBJECT_PATTERNS; _i < _BLOCKED_SYSTEM_OBJEC.length; _i++) {
129863
+ var sysPattern = _BLOCKED_SYSTEM_OBJEC[_i];
129864
+ if (sysPattern.test(textToCheck)) {
129865
+ return {
129866
+ valid: false,
129867
+ error: 'Access to database system catalogs / metadata objects is not allowed',
129868
+ trigger: 'system-object'
129869
+ };
129870
+ }
129871
+ }
129872
+ // Check statement terminator (prevents multi-statement injection).
129873
+ // For full_query context, strip comments first (a trailing semicolon may be followed by
129874
+ // an inline comment like `ORDER BY x DESC; -- highest first`), then strip the trailing
129875
+ // semicolon. Only reject if semicolons remain mid-statement, indicating injection.
129320
129876
  var textForSemicolonCheck = isFullQuery ? this.stripSQLComments(expression).replace(/;\s*$/, '') // strip comments then trailing semicolon
129321
129877
  : expression;
129322
129878
  if (textForSemicolonCheck.includes(';')) {
@@ -130086,10 +130642,10 @@ function IsValueEncrypted(value, encryptionMarker) {
130086
130642
  function IsEncryptedSentinel(value) {
130087
130643
  return value === ENCRYPTED_SENTINEL;
130088
130644
  }
130089
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/Subject.js + 1 modules
130090
- var Subject = __webpack_require__(49);
130091
- // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/ReplaySubject.js
130092
- var ReplaySubject = __webpack_require__(107);
130645
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subject.js + 1 modules
130646
+ var Subject = __webpack_require__(291);
130647
+ // EXTERNAL MODULE: ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/ReplaySubject.js
130648
+ var ReplaySubject = __webpack_require__(205);
130093
130649
  ;// ../../MJGlobal/dist/ObjectCache.js
130094
130650
  function ObjectCache_typeof(o) { "@babel/helpers - typeof"; return ObjectCache_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; }, ObjectCache_typeof(o); }
130095
130651
  function ObjectCache_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, ObjectCache_toPropertyKey(o.key), o); } }
@@ -130457,7 +131013,7 @@ function RegisterClassEx(baseClass) {
130457
131013
 
130458
131014
  /***/ },
130459
131015
 
130460
- /***/ 823
131016
+ /***/ 198
130461
131017
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
130462
131018
 
130463
131019
  "use strict";
@@ -130878,7 +131434,7 @@ function __rewriteRelativeImportExtension(path, preserveJsx) {
130878
131434
 
130879
131435
  /***/ },
130880
131436
 
130881
- /***/ 718
131437
+ /***/ 289
130882
131438
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
130883
131439
 
130884
131440
  "use strict";
@@ -130888,11 +131444,11 @@ __webpack_require__.d(__webpack_exports__, {
130888
131444
  A: () => (/* binding */ dist_v4)
130889
131445
  });
130890
131446
 
130891
- ;// ../../../node_modules/uuid/dist/native.js
131447
+ ;// ../../../node_modules/.pnpm/uuid@13.0.0/node_modules/uuid/dist/native.js
130892
131448
  const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
130893
131449
  /* harmony default export */ const dist_native = ({ randomUUID });
130894
131450
 
130895
- ;// ../../../node_modules/uuid/dist/rng.js
131451
+ ;// ../../../node_modules/.pnpm/uuid@13.0.0/node_modules/uuid/dist/rng.js
130896
131452
  let getRandomValues;
130897
131453
  const rnds8 = new Uint8Array(16);
130898
131454
  function rng() {
@@ -130905,7 +131461,7 @@ function rng() {
130905
131461
  return getRandomValues(rnds8);
130906
131462
  }
130907
131463
 
130908
- ;// ../../../node_modules/uuid/dist/stringify.js
131464
+ ;// ../../../node_modules/.pnpm/uuid@13.0.0/node_modules/uuid/dist/stringify.js
130909
131465
  /* unused harmony import specifier */ var validate;
130910
131466
 
130911
131467
  const byteToHex = [];
@@ -130943,7 +131499,7 @@ function stringify(arr, offset = 0) {
130943
131499
  }
130944
131500
  /* harmony default export */ const dist_stringify = ((/* unused pure expression or super */ null && (stringify)));
130945
131501
 
130946
- ;// ../../../node_modules/uuid/dist/v4.js
131502
+ ;// ../../../node_modules/.pnpm/uuid@13.0.0/node_modules/uuid/dist/v4.js
130947
131503
 
130948
131504
 
130949
131505
 
@@ -131250,6 +131806,7 @@ __webpack_require__.r(__webpack_exports__);
131250
131806
 
131251
131807
  // EXPORTS
131252
131808
  __webpack_require__.d(__webpack_exports__, {
131809
+ ApplyStyleOverrides: () => (/* reexport */ ApplyStyleOverrides),
131253
131810
  BuildStylesFromTheme: () => (/* reexport */ BuildStylesFromTheme),
131254
131811
  CacheManager: () => (/* reexport */ CacheManager),
131255
131812
  ComponentCompiler: () => (/* reexport */ ComponentCompiler),
@@ -135064,11 +135621,11 @@ var ComponentRegistry = /*#__PURE__*/function () {
135064
135621
  }]);
135065
135622
  }();
135066
135623
  // EXTERNAL MODULE: ../../MJCore/dist/index.js + 88 modules
135067
- var dist = __webpack_require__(752);
135624
+ var dist = __webpack_require__(63);
135068
135625
  // EXTERNAL MODULE: ../../MJGlobal/dist/index.js + 24 modules
135069
- var MJGlobal_dist = __webpack_require__(198);
135626
+ var MJGlobal_dist = __webpack_require__(899);
135070
135627
  // EXTERNAL MODULE: ../../MJCoreEntities/dist/index.js + 66 modules
135071
- var MJCoreEntities_dist = __webpack_require__(148);
135628
+ var MJCoreEntities_dist = __webpack_require__(835);
135072
135629
  ;// ./dist/registry/component-registry-service.js
135073
135630
  function component_registry_service_typeof(o) { "@babel/helpers - typeof"; return component_registry_service_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; }, component_registry_service_typeof(o); }
135074
135631
  var _ComponentRegistryService;
@@ -135154,7 +135711,7 @@ var ComponentRegistryService = /*#__PURE__*/function () {
135154
135711
  }
135155
135712
  _context.p = 3;
135156
135713
  _context.n = 4;
135157
- return Promise.all(/* import() */[__webpack_require__.e(490), __webpack_require__.e(324)]).then(__webpack_require__.bind(__webpack_require__, 324));
135714
+ return Promise.all(/* import() */[__webpack_require__.e(456), __webpack_require__.e(324)]).then(__webpack_require__.bind(__webpack_require__, 324));
135158
135715
  case 4:
135159
135716
  graphqlModule = _context.v;
135160
135717
  GraphQLComponentRegistryClient = graphqlModule.GraphQLComponentRegistryClient;
@@ -137873,7 +138430,7 @@ var ComponentManager = /*#__PURE__*/function () {
137873
138430
  break;
137874
138431
  }
137875
138432
  _context0.n = 1;
137876
- return Promise.all(/* import() */[__webpack_require__.e(490), __webpack_require__.e(324)]).then(__webpack_require__.bind(__webpack_require__, 324));
138433
+ return Promise.all(/* import() */[__webpack_require__.e(456), __webpack_require__.e(324)]).then(__webpack_require__.bind(__webpack_require__, 324));
137877
138434
  case 1:
137878
138435
  _yield$import = _context0.v;
137879
138436
  GraphQLComponentRegistryClient = _yield$import.GraphQLComponentRegistryClient;
@@ -138428,7 +138985,7 @@ var ComponentHierarchyRegistrar = /*#__PURE__*/function () {
138428
138985
  return _context.a(2, null);
138429
138986
  case 1:
138430
138987
  _context.n = 2;
138431
- return Promise.all(/* import() */[__webpack_require__.e(490), __webpack_require__.e(324)]).then(__webpack_require__.bind(__webpack_require__, 324));
138988
+ return Promise.all(/* import() */[__webpack_require__.e(456), __webpack_require__.e(324)]).then(__webpack_require__.bind(__webpack_require__, 324));
138432
138989
  case 2:
138433
138990
  _yield$import = _context.v;
138434
138991
  GraphQLComponentRegistryClient = _yield$import.GraphQLComponentRegistryClient;
@@ -139223,6 +139780,12 @@ var reactRootManager = new ReactRootManager();
139223
139780
 
139224
139781
 
139225
139782
  ;// ./dist/utilities/component-styles.js
139783
+ function component_styles_typeof(o) { "@babel/helpers - typeof"; return component_styles_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; }, component_styles_typeof(o); }
139784
+ function component_styles_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; }
139785
+ function component_styles_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? component_styles_ownKeys(Object(t), !0).forEach(function (r) { component_styles_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : component_styles_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
139786
+ function component_styles_defineProperty(e, r, t) { return (r = component_styles_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
139787
+ function component_styles_toPropertyKey(t) { var i = component_styles_toPrimitive(t, "string"); return "symbol" == component_styles_typeof(i) ? i : i + ""; }
139788
+ function component_styles_toPrimitive(t, r) { if ("object" != component_styles_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != component_styles_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
139226
139789
  function component_styles_slicedToArray(r, e) { return component_styles_arrayWithHoles(r) || component_styles_iterableToArrayLimit(r, e) || component_styles_unsupportedIterableToArray(r, e) || component_styles_nonIterableRest(); }
139227
139790
  function component_styles_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
139228
139791
  function component_styles_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return component_styles_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) ? component_styles_arrayLikeToArray(r, a) : void 0; } }
@@ -139240,15 +139803,24 @@ function SetupStyles() {
139240
139803
  secondaryHover: '#475569',
139241
139804
  success: '#10B981',
139242
139805
  successLight: '#D1FAE5',
139806
+ successText: '#047857',
139807
+ successBorder: '#b7eb8f',
139243
139808
  warning: '#F59E0B',
139244
139809
  warningLight: '#FEF3C7',
139810
+ warningText: '#8c6c00',
139811
+ warningBorder: '#ffe58f',
139245
139812
  error: '#EF4444',
139246
139813
  errorLight: '#FEE2E2',
139814
+ errorText: '#B91C1C',
139815
+ errorBorder: '#FECACA',
139247
139816
  info: '#3B82F6',
139248
139817
  infoLight: '#DBEAFE',
139818
+ infoText: '#1D4ED8',
139819
+ infoBorder: '#91d5ff',
139249
139820
  background: '#FFFFFF',
139250
139821
  surface: '#F8FAFC',
139251
139822
  surfaceHover: '#F1F5F9',
139823
+ overlay: 'rgba(0, 0, 0, 0.5)',
139252
139824
  text: '#1E293B',
139253
139825
  textSecondary: '#64748B',
139254
139826
  textTertiary: '#94A3B8',
@@ -139322,7 +139894,13 @@ function SetupStyles() {
139322
139894
  slow: '350ms ease-in-out'
139323
139895
  },
139324
139896
  overflow: 'auto',
139325
- chartPalette: ['#2196F3', '#4CAF50', '#FF9800', '#E91E63', '#9C27B0', '#00BCD4', '#F44336', '#8BC34A', '#FF5722', '#3F51B5']
139897
+ chartPalette: ['#2196F3', '#4CAF50', '#FF9800', '#E91E63', '#9C27B0', '#00BCD4', '#F44336', '#8BC34A', '#FF5722', '#3F51B5'],
139898
+ sequentialScale: ['#E3F2FD', '#BBDEFB', '#90CAF9', '#42A5F5', '#2196F3', '#1976D2', '#0D47A1'],
139899
+ divergingScale: {
139900
+ low: '#F44336',
139901
+ mid: '#EEEEEE',
139902
+ high: '#4CAF50'
139903
+ }
139326
139904
  };
139327
139905
  }
139328
139906
  var createDefaultComponentStyles = SetupStyles;
@@ -139331,17 +139909,28 @@ var THEME_COLOR_TOKEN_MAP = {
139331
139909
  primaryHover: '--mj-brand-primary-hover',
139332
139910
  primaryActive: '--mj-brand-primary-active',
139333
139911
  primaryLight: '--mj-brand-primary-light',
139912
+ secondary: '--mj-brand-secondary',
139913
+ secondaryHover: '--mj-brand-secondary-hover',
139334
139914
  success: '--mj-status-success',
139335
139915
  successLight: '--mj-status-success-bg',
139916
+ successText: '--mj-status-success-text',
139917
+ successBorder: '--mj-status-success-border',
139336
139918
  warning: '--mj-status-warning',
139337
139919
  warningLight: '--mj-status-warning-bg',
139920
+ warningText: '--mj-status-warning-text',
139921
+ warningBorder: '--mj-status-warning-border',
139338
139922
  error: '--mj-status-error',
139339
139923
  errorLight: '--mj-status-error-bg',
139924
+ errorText: '--mj-status-error-text',
139925
+ errorBorder: '--mj-status-error-border',
139340
139926
  info: '--mj-status-info',
139341
139927
  infoLight: '--mj-status-info-bg',
139928
+ infoText: '--mj-status-info-text',
139929
+ infoBorder: '--mj-status-info-border',
139342
139930
  background: '--mj-bg-page',
139343
139931
  surface: '--mj-bg-surface',
139344
139932
  surfaceHover: '--mj-bg-surface-hover',
139933
+ overlay: '--mj-bg-overlay',
139345
139934
  text: '--mj-text-primary',
139346
139935
  textSecondary: '--mj-text-secondary',
139347
139936
  textTertiary: '--mj-text-muted',
@@ -139353,6 +139942,7 @@ var THEME_COLOR_TOKEN_MAP = {
139353
139942
  borderFocus: '--mj-border-focus'
139354
139943
  };
139355
139944
  var VIZ_TOKEN_COUNT = 10;
139945
+ var VIZ_SEQ_TOKEN_COUNT = 7;
139356
139946
  function BuildStylesFromTheme(root) {
139357
139947
  var base = SetupStyles();
139358
139948
  var el = root !== null && root !== void 0 ? root : typeof document !== 'undefined' ? document.documentElement : undefined;
@@ -139382,8 +139972,72 @@ function BuildStylesFromTheme(root) {
139382
139972
  if (palette.length > 0) {
139383
139973
  base.chartPalette = palette;
139384
139974
  }
139975
+ var sequential = [];
139976
+ for (var _i2 = 1; _i2 <= VIZ_SEQ_TOKEN_COUNT; _i2++) {
139977
+ var _value2 = read("--mj-viz-seq-".concat(_i2));
139978
+ if (_value2) {
139979
+ sequential.push(_value2);
139980
+ }
139981
+ }
139982
+ if (sequential.length > 1) {
139983
+ base.sequentialScale = sequential;
139984
+ }
139985
+ var divLow = read('--mj-viz-div-low');
139986
+ var divHigh = read('--mj-viz-div-high');
139987
+ if (divLow && divHigh) {
139988
+ var divMid = read('--mj-viz-div-mid');
139989
+ base.divergingScale = divMid ? {
139990
+ low: divLow,
139991
+ mid: divMid,
139992
+ high: divHigh
139993
+ } : {
139994
+ low: divLow,
139995
+ high: divHigh
139996
+ };
139997
+ }
139385
139998
  return base;
139386
139999
  }
140000
+ var FONT_SCALE_FACTOR = {
140001
+ small: 0.875,
140002
+ large: 1.25
140003
+ };
140004
+ var MIN_FONT_SIZE_PX = 10;
140005
+ function scaleFontSizes(fontSize, factor) {
140006
+ var scaled = {};
140007
+ for (var _i3 = 0, _Object$entries2 = Object.entries(fontSize); _i3 < _Object$entries2.length; _i3++) {
140008
+ var _Object$entries2$_i = component_styles_slicedToArray(_Object$entries2[_i3], 2),
140009
+ key = _Object$entries2$_i[0],
140010
+ value = _Object$entries2$_i[1];
140011
+ var px = typeof value === 'string' ? /^\s*(\d+(?:\.\d+)?)px\s*$/.exec(value) : null;
140012
+ scaled[key] = px ? "".concat(Math.max(MIN_FONT_SIZE_PX, Math.round(parseFloat(px[1]) * factor)), "px") : value;
140013
+ }
140014
+ return scaled;
140015
+ }
140016
+ function ApplyStyleOverrides(base, overrides) {
140017
+ var _overrides$divergingS, _overrides$divergingS2, _base$typography;
140018
+ if (!overrides) {
140019
+ return base;
140020
+ }
140021
+ var hasChartPalette = Array.isArray(overrides.chartPalette) && overrides.chartPalette.length > 0;
140022
+ var hasSequential = Array.isArray(overrides.sequentialScale) && overrides.sequentialScale.length > 1;
140023
+ var hasDiverging = !!((_overrides$divergingS = overrides.divergingScale) !== null && _overrides$divergingS !== void 0 && _overrides$divergingS.low) && !!((_overrides$divergingS2 = overrides.divergingScale) !== null && _overrides$divergingS2 !== void 0 && _overrides$divergingS2.high);
140024
+ var fontFactor = overrides.fontScale ? FONT_SCALE_FACTOR[overrides.fontScale] : undefined;
140025
+ var hasFontScale = !!fontFactor && !!((_base$typography = base.typography) !== null && _base$typography !== void 0 && _base$typography.fontSize);
140026
+ if (!hasChartPalette && !hasSequential && !hasDiverging && !hasFontScale) {
140027
+ return base;
140028
+ }
140029
+ return component_styles_objectSpread(component_styles_objectSpread(component_styles_objectSpread(component_styles_objectSpread(component_styles_objectSpread({}, base), hasChartPalette ? {
140030
+ chartPalette: overrides.chartPalette
140031
+ } : {}), hasSequential ? {
140032
+ sequentialScale: overrides.sequentialScale
140033
+ } : {}), hasDiverging ? {
140034
+ divergingScale: overrides.divergingScale
140035
+ } : {}), hasFontScale ? {
140036
+ typography: component_styles_objectSpread(component_styles_objectSpread({}, base.typography), {}, {
140037
+ fontSize: scaleFontSizes(base.typography.fontSize, fontFactor)
140038
+ })
140039
+ } : {});
140040
+ }
139387
140041
  ;// ./dist/utilities/component-library-theming.js
139388
140042
 
139389
140043
  function colorLuminance(color) {