@memberjunction/react-runtime 5.35.0 → 5.36.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.
@@ -46000,41 +46000,56 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46000
46000
  return Load;
46001
46001
  }()
46002
46002
  /**********************************************************************
46003
- * This section is for handling caching of multiple instances when needed
46004
- * We use the primary singleton as the instance to store a cache of instances
46005
- * that are tied to specific providers. This is useful when we have multiple
46006
- * providers in a given app going to different connections.
46003
+ * This section is for handling caching of multiple instances when needed.
46004
+ * We cache engine instances keyed by the **connection** they target not by
46005
+ * the provider object reference. Multiple per-request providers pointing at
46006
+ * the same database share one cached engine instance.
46007
+ *
46008
+ * Keying by IMetadataProvider.InstanceConnectionString (a stable
46009
+ * credential-free identifier like `mssql://host:port/db`) means:
46010
+ * - Multi-server clients still get separate engine instances per server
46011
+ * (different connection strings → different cache entries)
46012
+ * - Per-request providers on the server hit the cache (same connection
46013
+ * string as the persistent startup provider) instead of allocating a
46014
+ * fresh engine and running a full DB load every request
46015
+ * - Transient provider objects never get pinned by the cache, so they're
46016
+ * GC-eligible at end of request as designed
46007
46017
  *********************************************************************/
46008
- // private static _providerInstances: Map<{provider: IMetadataProvider, subclassConstructor: any}, any> = new Map();
46009
- // private static get ProviderInstances(): Map<{provider: IMetadataProvider, subclassConstructor: any}, any> {
46010
- // return BaseEngine._providerInstances;
46011
- // }
46012
46018
  )
46013
46019
  }, {
46014
46020
  key: "SetProvider",
46015
46021
  value:
46016
46022
  /**
46017
- * Internal method to set the provider when an engine is loaded
46018
- * @param provider
46023
+ * Internal method to set the provider when an engine is loaded. Once this engine instance has
46024
+ * a provider bound, subsequent calls are no-ops — preventing transient per-request providers
46025
+ * from displacing the persistent provider that first bound to this connection. The cache key
46026
+ * is the connection (not the object), so the first persistent provider to load an engine for
46027
+ * a connection "owns" the engine for that connection's lifetime.
46019
46028
  */
46020
46029
  function SetProvider(provider) {
46021
- this._provider = provider;
46022
- // BaseEngine.ProviderInstances.set({provider: this.ProviderToUse, subclassConstructor: this.constructor} /*use default provider if one wasn't provided to use*/, <T><any>this);
46023
- this.CheckAddToProviderInstances(this.ProviderToUse);
46030
+ // First-wins on the persistent _provider binding so transient per-request providers
46031
+ // can't displace the persistent provider that first owned this engine.
46032
+ if (!this._provider && provider) {
46033
+ this._provider = provider;
46034
+ }
46035
+ // Always register under the incoming provider's connection key (or ProviderToUse if
46036
+ // none was passed) so future GetProviderInstance lookups for that connection can find
46037
+ // this engine. Multiple registrations for the same key are idempotent.
46038
+ this.CheckAddToProviderInstances(provider || this.ProviderToUse);
46024
46039
  }
46025
46040
  }, {
46026
46041
  key: "CheckAddToProviderInstances",
46027
46042
  value: function CheckAddToProviderInstances(provider) {
46028
- var _this4 = this;
46029
- var existingEntry = BaseEngine.ProviderInstances.find(function (entry) {
46030
- return entry.provider === provider && entry.subclassConstructor === _this4.constructor;
46031
- });
46032
- if (!existingEntry) {
46033
- BaseEngine.ProviderInstances.push({
46034
- provider: provider,
46035
- subclassConstructor: this.constructor,
46036
- instance: this
46037
- });
46043
+ if (!provider) return; // no provider available (e.g. global default not yet initialized)
46044
+ var connectionKey = provider.InstanceConnectionString;
46045
+ if (!connectionKey) return; // provider not fully configured yet skip registration
46046
+ var perConnectionMap = BaseEngine._providerInstances.get(connectionKey);
46047
+ if (!perConnectionMap) {
46048
+ perConnectionMap = new Map();
46049
+ BaseEngine._providerInstances.set(connectionKey, perConnectionMap);
46050
+ }
46051
+ if (!perConnectionMap.has(this.constructor)) {
46052
+ perConnectionMap.set(this.constructor, this);
46038
46053
  }
46039
46054
  }
46040
46055
  /**
@@ -46046,7 +46061,7 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46046
46061
  key: "SetupGlobalEventListener",
46047
46062
  value: (function () {
46048
46063
  var _SetupGlobalEventListener = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee6() {
46049
- var _this5 = this;
46064
+ var _this4 = this;
46050
46065
  var _t2;
46051
46066
  return baseEngine_regenerator().w(function (_context6) {
46052
46067
  while (1) switch (_context6.p = _context6.n) {
@@ -46060,7 +46075,7 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46060
46075
  while (1) switch (_context5.n) {
46061
46076
  case 0:
46062
46077
  _context5.n = 1;
46063
- return _this5.HandleIndividualEvent(event);
46078
+ return _this4.HandleIndividualEvent(event);
46064
46079
  case 1:
46065
46080
  return _context5.a(2);
46066
46081
  }
@@ -46138,8 +46153,8 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46138
46153
  key: "HandleIndividualBaseEntityEvent",
46139
46154
  value: (function () {
46140
46155
  var _HandleIndividualBaseEntityEvent = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee8(event) {
46141
- var _this6 = this;
46142
- var eName, matchingConfigs, allCanUseImmediate, _iterator, _step, config, _t3;
46156
+ var _this5 = this;
46157
+ var eName, matchingConfigs, allCanUseImmediate, _iterator, _step, config, _t3, _t4;
46143
46158
  return baseEngine_regenerator().w(function (_context8) {
46144
46159
  while (1) switch (_context8.p = _context8.n) {
46145
46160
  case 0:
@@ -46154,7 +46169,7 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46154
46169
  return _context8.a(2, _context8.v);
46155
46170
  case 2:
46156
46171
  if (!(event.type === 'delete' || event.type === 'save')) {
46157
- _context8.n = 5;
46172
+ _context8.n = 12;
46158
46173
  break;
46159
46174
  }
46160
46175
  eName = event.baseEntity.EntityInfo.Name.toLowerCase().trim();
@@ -46169,36 +46184,52 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46169
46184
  case 3:
46170
46185
  // Check if ALL matching configs can use immediate mutation
46171
46186
  allCanUseImmediate = matchingConfigs.every(function (config) {
46172
- return _this6.canUseImmediateMutation(config);
46187
+ return _this5.canUseImmediateMutation(config);
46173
46188
  });
46174
46189
  if (!allCanUseImmediate) {
46175
- _context8.n = 4;
46190
+ _context8.n = 11;
46176
46191
  break;
46177
46192
  }
46178
- // Process immediately without debounce - synchronous array mutations
46193
+ // Process immediately without debounce - mutation requires await because the
46194
+ // entity must be cloned (with its provider rebound) before being cached
46179
46195
  _iterator = baseEngine_createForOfIteratorHelper(matchingConfigs);
46180
- try {
46181
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
46182
- config = _step.value;
46183
- this.applyImmediateMutation(config, event);
46184
- }
46185
- } catch (err) {
46186
- _iterator.e(err);
46187
- } finally {
46188
- _iterator.f();
46196
+ _context8.p = 4;
46197
+ _iterator.s();
46198
+ case 5:
46199
+ if ((_step = _iterator.n()).done) {
46200
+ _context8.n = 7;
46201
+ break;
46189
46202
  }
46203
+ config = _step.value;
46204
+ _context8.n = 6;
46205
+ return this.applyImmediateMutation(config, event);
46206
+ case 6:
46207
+ _context8.n = 5;
46208
+ break;
46209
+ case 7:
46210
+ _context8.n = 9;
46211
+ break;
46212
+ case 8:
46213
+ _context8.p = 8;
46214
+ _t3 = _context8.v;
46215
+ _iterator.e(_t3);
46216
+ case 9:
46217
+ _context8.p = 9;
46218
+ _iterator.f();
46219
+ return _context8.f(9);
46220
+ case 10:
46190
46221
  return _context8.a(2, true);
46191
- case 4:
46222
+ case 11:
46192
46223
  return _context8.a(2, this.DebounceIndividualBaseEntityEvent(event));
46193
- case 5:
46224
+ case 12:
46194
46225
  return _context8.a(2, true);
46195
- case 6:
46196
- _context8.p = 6;
46197
- _t3 = _context8.v;
46198
- LogError(_t3);
46226
+ case 13:
46227
+ _context8.p = 13;
46228
+ _t4 = _context8.v;
46229
+ LogError(_t4);
46199
46230
  return _context8.a(2, false);
46200
46231
  }
46201
- }, _callee8, this, [[0, 6]]);
46232
+ }, _callee8, this, [[4, 8, 9, 10], [0, 13]]);
46202
46233
  }));
46203
46234
  function HandleIndividualBaseEntityEvent(_x9) {
46204
46235
  return _HandleIndividualBaseEntityEvent.apply(this, arguments);
@@ -46219,7 +46250,7 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46219
46250
  key: "HandleRemoteInvalidateEvent",
46220
46251
  value: (function () {
46221
46252
  var _HandleRemoteInvalidateEvent = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee9(event) {
46222
- var _event$entityName, entityName, matchingConfigs, payload, action, applied, removed, refreshCount, _iterator2, _step2, config, _t4, _t5;
46253
+ var _event$entityName, entityName, matchingConfigs, payload, action, applied, removed, refreshCount, _iterator2, _step2, config, _t5, _t6;
46223
46254
  return baseEngine_regenerator().w(function (_context9) {
46224
46255
  while (1) switch (_context9.p = _context9.n) {
46225
46256
  case 0:
@@ -46293,8 +46324,8 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46293
46324
  break;
46294
46325
  case 12:
46295
46326
  _context9.p = 12;
46296
- _t4 = _context9.v;
46297
- _iterator2.e(_t4);
46327
+ _t5 = _context9.v;
46328
+ _iterator2.e(_t5);
46298
46329
  case 13:
46299
46330
  _context9.p = 13;
46300
46331
  _iterator2.f();
@@ -46310,8 +46341,8 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46310
46341
  return _context9.a(2, true);
46311
46342
  case 16:
46312
46343
  _context9.p = 16;
46313
- _t5 = _context9.v;
46314
- LogError(_t5);
46344
+ _t6 = _context9.v;
46345
+ LogError(_t6);
46315
46346
  return _context9.a(2, false);
46316
46347
  }
46317
46348
  }, _callee9, this, [[7, 12, 13, 14], [0, 16]]);
@@ -46333,7 +46364,7 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46333
46364
  key: "applyRemoteRecordData",
46334
46365
  value: (function () {
46335
46366
  var _applyRemoteRecordData = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee0(matchingConfigs, entityName, recordDataJSON) {
46336
- var recordData, md, originalEntityName, entity, _iterator3, _step3, config, currentData, index, _t6, _t7;
46367
+ var recordData, md, originalEntityName, entity, _iterator3, _step3, config, currentData, index, _t7, _t8;
46337
46368
  return baseEngine_regenerator().w(function (_context0) {
46338
46369
  while (1) switch (_context0.p = _context0.n) {
46339
46370
  case 0:
@@ -46398,8 +46429,8 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46398
46429
  break;
46399
46430
  case 8:
46400
46431
  _context0.p = 8;
46401
- _t6 = _context0.v;
46402
- _iterator3.e(_t6);
46432
+ _t7 = _context0.v;
46433
+ _iterator3.e(_t7);
46403
46434
  case 9:
46404
46435
  _context0.p = 9;
46405
46436
  _iterator3.f();
@@ -46411,8 +46442,8 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46411
46442
  return _context0.a(2, true);
46412
46443
  case 12:
46413
46444
  _context0.p = 12;
46414
- _t7 = _context0.v;
46415
- LogError(_t7);
46445
+ _t8 = _context0.v;
46446
+ LogError(_t8);
46416
46447
  return _context0.a(2, false);
46417
46448
  }
46418
46449
  }, _callee0, this, [[2, 8, 9, 10], [0, 12]]);
@@ -46485,8 +46516,8 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46485
46516
  key: "DebounceIndividualBaseEntityEvent",
46486
46517
  value: (function () {
46487
46518
  var _DebounceIndividualBaseEntityEvent = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee10(event) {
46488
- var _this7 = this;
46489
- var entityName, _matchingConfig$Debou, matchingConfig, debounceTimeValue, subject, _t8;
46519
+ var _this6 = this;
46520
+ var entityName, _matchingConfig$Debou, matchingConfig, debounceTimeValue, subject, _t9;
46490
46521
  return baseEngine_regenerator().w(function (_context10) {
46491
46522
  while (1) switch (_context10.p = _context10.n) {
46492
46523
  case 0:
@@ -46506,7 +46537,7 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46506
46537
  while (1) switch (_context1.n) {
46507
46538
  case 0:
46508
46539
  _context1.n = 1;
46509
- return _this7.ProcessEntityEvent(e);
46540
+ return _this6.ProcessEntityEvent(e);
46510
46541
  case 1:
46511
46542
  return _context1.a(2);
46512
46543
  }
@@ -46522,8 +46553,8 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46522
46553
  return _context10.a(2, true);
46523
46554
  case 1:
46524
46555
  _context10.p = 1;
46525
- _t8 = _context10.v;
46526
- LogError(_t8);
46556
+ _t9 = _context10.v;
46557
+ LogError(_t9);
46527
46558
  return _context10.a(2, false);
46528
46559
  }
46529
46560
  }, _callee10, this, [[0, 1]]);
@@ -46558,7 +46589,7 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46558
46589
  key: "ProcessEntityEvent",
46559
46590
  value: (function () {
46560
46591
  var _ProcessEntityEvent = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee11(event) {
46561
- var entityName, refreshCount, _iterator5, _step5, _config$EntityName, config, _t9, _t0;
46592
+ var entityName, refreshCount, _iterator5, _step5, _config$EntityName, config, _t0, _t1;
46562
46593
  return baseEngine_regenerator().w(function (_context11) {
46563
46594
  while (1) switch (_context11.p = _context11.n) {
46564
46595
  case 0:
@@ -46570,12 +46601,12 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46570
46601
  _iterator5.s();
46571
46602
  case 2:
46572
46603
  if ((_step5 = _iterator5.n()).done) {
46573
- _context11.n = 9;
46604
+ _context11.n = 10;
46574
46605
  break;
46575
46606
  }
46576
46607
  config = _step5.value;
46577
46608
  if (!(config.AutoRefresh && config.Type === 'entity' && ((_config$EntityName = config.EntityName) === null || _config$EntityName === void 0 ? void 0 : _config$EntityName.trim().toLowerCase()) === entityName)) {
46578
- _context11.n = 8;
46609
+ _context11.n = 9;
46579
46610
  break;
46580
46611
  }
46581
46612
  if (!(event.type === 'save' && event.saveSubType === 'update')) {
@@ -46586,7 +46617,7 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46586
46617
  _context11.n = 3;
46587
46618
  break;
46588
46619
  }
46589
- return _context11.a(3, 8);
46620
+ return _context11.a(3, 9);
46590
46621
  case 3:
46591
46622
  if (!(event.type === 'save' && event.saveSubType === 'create')) {
46592
46623
  _context11.n = 4;
@@ -46596,7 +46627,7 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46596
46627
  _context11.n = 4;
46597
46628
  break;
46598
46629
  }
46599
- return _context11.a(3, 8);
46630
+ return _context11.a(3, 9);
46600
46631
  case 4:
46601
46632
  if (!(event.type === 'delete')) {
46602
46633
  _context11.n = 5;
@@ -46606,53 +46637,54 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46606
46637
  _context11.n = 5;
46607
46638
  break;
46608
46639
  }
46609
- return _context11.a(3, 8);
46640
+ return _context11.a(3, 9);
46610
46641
  case 5:
46611
46642
  if (!this.canUseImmediateMutation(config)) {
46612
- _context11.n = 6;
46643
+ _context11.n = 7;
46613
46644
  break;
46614
46645
  }
46615
- // LogStatus(`>>> Immediate mutation for ${config.PropertyName} due to BaseEntity ${event.type} event for: ${event.baseEntity.EntityInfo.Name}`);
46616
- this.applyImmediateMutation(config, event);
46617
- _context11.n = 8;
46618
- break;
46646
+ _context11.n = 6;
46647
+ return this.applyImmediateMutation(config, event);
46619
46648
  case 6:
46620
- _context11.n = 7;
46621
- return this.LoadSingleConfig(config, this._contextUser);
46649
+ _context11.n = 9;
46650
+ break;
46622
46651
  case 7:
46623
- refreshCount++;
46652
+ _context11.n = 8;
46653
+ return this.LoadSingleConfig(config, this._contextUser);
46624
46654
  case 8:
46625
- _context11.n = 2;
46626
- break;
46655
+ refreshCount++;
46627
46656
  case 9:
46628
- _context11.n = 11;
46657
+ _context11.n = 2;
46629
46658
  break;
46630
46659
  case 10:
46631
- _context11.p = 10;
46632
- _t9 = _context11.v;
46633
- _iterator5.e(_t9);
46660
+ _context11.n = 12;
46661
+ break;
46634
46662
  case 11:
46635
46663
  _context11.p = 11;
46636
- _iterator5.f();
46637
- return _context11.f(11);
46664
+ _t0 = _context11.v;
46665
+ _iterator5.e(_t0);
46638
46666
  case 12:
46667
+ _context11.p = 12;
46668
+ _iterator5.f();
46669
+ return _context11.f(12);
46670
+ case 13:
46639
46671
  if (!(refreshCount > 0)) {
46640
- _context11.n = 13;
46672
+ _context11.n = 14;
46641
46673
  break;
46642
46674
  }
46643
- _context11.n = 13;
46675
+ _context11.n = 14;
46644
46676
  return this.AdditionalLoading(this._contextUser);
46645
- case 13:
46646
- _context11.n = 15;
46647
- break;
46648
46677
  case 14:
46649
- _context11.p = 14;
46650
- _t0 = _context11.v;
46651
- LogError(_t0);
46678
+ _context11.n = 16;
46679
+ break;
46652
46680
  case 15:
46681
+ _context11.p = 15;
46682
+ _t1 = _context11.v;
46683
+ LogError(_t1);
46684
+ case 16:
46653
46685
  return _context11.a(2);
46654
46686
  }
46655
- }, _callee11, this, [[1, 10, 11, 12], [0, 14]]);
46687
+ }, _callee11, this, [[1, 11, 12, 13], [0, 15]]);
46656
46688
  }));
46657
46689
  function ProcessEntityEvent(_x14) {
46658
46690
  return _ProcessEntityEvent.apply(this, arguments);
@@ -46770,104 +46802,189 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46770
46802
  * Applies an immediate array mutation based on the entity event type.
46771
46803
  * This is faster than running a full view refresh for simple add/update/delete operations.
46772
46804
  *
46805
+ * On save, the cached entry is a clone owned by this engine's provider — not the saver's
46806
+ * entity instance. Storing the saver's instance would pin the saver's provider (often a
46807
+ * per-request provider) inside the engine's cache for the engine's full lifetime, which
46808
+ * leaks the provider and all its associated state.
46809
+ *
46773
46810
  * @param config - The configuration for the property being mutated
46774
46811
  * @param event - The entity event containing the affected entity and event type
46775
46812
  */
46776
46813
  }, {
46777
46814
  key: "applyImmediateMutation",
46778
- value: function applyImmediateMutation(config, event) {
46779
- var currentData = this[config.PropertyName];
46780
- if (!currentData) {
46781
- // No existing array, nothing to mutate
46782
- return;
46783
- }
46784
- var entity = event.baseEntity;
46785
- if (event.type === 'save') {
46786
- if (event.saveSubType === 'create') {
46787
- // For create, first check if the exact object is already in the array
46788
- var existsByRef = currentData.indexOf(entity) >= 0;
46789
- // if already in the array, nothing to do, but we keep going
46790
- // in the method as there is stuff below the outer if block
46791
- if (!existsByRef) {
46792
- // Check by composite primary key in case it was added with a different object reference
46793
- var indexByKey = this.findEntityIndexByPrimaryKeys(currentData, entity);
46794
- if (indexByKey >= 0) {
46795
- // Already exists by key, treat as update
46796
- currentData[indexByKey] = entity;
46797
- this._dataMap.set(config.PropertyName, {
46798
- entityName: config.EntityName,
46799
- data: currentData,
46800
- loadedSuccessfully: true
46801
- });
46802
- this.NotifyDataChange(config, currentData, 'update', entity);
46803
- } else {
46804
- // Add the new entity to the array
46805
- currentData.push(entity);
46806
- this._dataMap.set(config.PropertyName, {
46807
- entityName: config.EntityName,
46808
- data: currentData,
46809
- loadedSuccessfully: true
46810
- });
46811
- this.NotifyDataChange(config, currentData, 'add', entity);
46812
- }
46813
- }
46814
- } else {
46815
- // Update: first check if the exact object is already in the array
46816
- // if already in the array, we don't do anything but we keep going
46817
- // in the method so stuff at end can be done
46818
- var _existsByRef = currentData.indexOf(entity) >= 0;
46819
- if (!_existsByRef) {
46820
- // Find by composite primary key and replace
46821
- var index = this.findEntityIndexByPrimaryKeys(currentData, entity);
46822
- if (index >= 0) {
46823
- currentData[index] = entity;
46824
- this._dataMap.set(config.PropertyName, {
46825
- entityName: config.EntityName,
46826
- data: currentData,
46827
- loadedSuccessfully: true
46828
- });
46829
- this.NotifyDataChange(config, currentData, 'update', entity);
46830
- } else {
46831
- // Entity not found in array - this shouldn't happen normally,
46832
- // but if it does, add it (might have been created before we started listening)
46833
- currentData.push(entity);
46834
- this._dataMap.set(config.PropertyName, {
46835
- entityName: config.EntityName,
46836
- data: currentData,
46837
- loadedSuccessfully: true
46838
- });
46839
- this.NotifyDataChange(config, currentData, 'add', entity);
46840
- }
46815
+ value: (function () {
46816
+ var _applyImmediateMutation = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee12(config, event) {
46817
+ var currentData, entity, cached, existsByRef, indexByKey, _existsByRef, index, _index;
46818
+ return baseEngine_regenerator().w(function (_context12) {
46819
+ while (1) switch (_context12.n) {
46820
+ case 0:
46821
+ currentData = this[config.PropertyName];
46822
+ if (currentData) {
46823
+ _context12.n = 1;
46824
+ break;
46825
+ }
46826
+ return _context12.a(2);
46827
+ case 1:
46828
+ entity = event.baseEntity;
46829
+ if (!(event.type === 'save')) {
46830
+ _context12.n = 4;
46831
+ break;
46832
+ }
46833
+ _context12.n = 2;
46834
+ return this.cloneEntityForCache(entity, config);
46835
+ case 2:
46836
+ cached = _context12.v;
46837
+ if (cached) {
46838
+ _context12.n = 3;
46839
+ break;
46840
+ }
46841
+ LogError("BaseEngine.applyImmediateMutation: failed to clone entity for ".concat(config.EntityName, "; skipping immediate mutation"));
46842
+ return _context12.a(2);
46843
+ case 3:
46844
+ if (event.saveSubType === 'create') {
46845
+ // For create, first check if the exact object is already in the array
46846
+ existsByRef = currentData.indexOf(entity) >= 0; // if already in the array, nothing to do, but we keep going
46847
+ // in the method as there is stuff below the outer if block
46848
+ if (!existsByRef) {
46849
+ // Check by composite primary key in case it was added with a different object reference
46850
+ indexByKey = this.findEntityIndexByPrimaryKeys(currentData, entity);
46851
+ if (indexByKey >= 0) {
46852
+ // Already exists by key, treat as update
46853
+ currentData[indexByKey] = cached;
46854
+ this._dataMap.set(config.PropertyName, {
46855
+ entityName: config.EntityName,
46856
+ data: currentData,
46857
+ loadedSuccessfully: true
46858
+ });
46859
+ this.NotifyDataChange(config, currentData, 'update', cached);
46860
+ } else {
46861
+ // Add the new entity to the array
46862
+ currentData.push(cached);
46863
+ this._dataMap.set(config.PropertyName, {
46864
+ entityName: config.EntityName,
46865
+ data: currentData,
46866
+ loadedSuccessfully: true
46867
+ });
46868
+ this.NotifyDataChange(config, currentData, 'add', cached);
46869
+ }
46870
+ }
46871
+ } else {
46872
+ // Update: first check if the exact object is already in the array
46873
+ // if already in the array, we don't do anything but we keep going
46874
+ // in the method so stuff at end can be done
46875
+ _existsByRef = currentData.indexOf(entity) >= 0;
46876
+ if (!_existsByRef) {
46877
+ // Find by composite primary key and replace
46878
+ index = this.findEntityIndexByPrimaryKeys(currentData, entity);
46879
+ if (index >= 0) {
46880
+ currentData[index] = cached;
46881
+ this._dataMap.set(config.PropertyName, {
46882
+ entityName: config.EntityName,
46883
+ data: currentData,
46884
+ loadedSuccessfully: true
46885
+ });
46886
+ this.NotifyDataChange(config, currentData, 'update', cached);
46887
+ } else {
46888
+ // Entity not found in array - this shouldn't happen normally,
46889
+ // but if it does, add it (might have been created before we started listening)
46890
+ currentData.push(cached);
46891
+ this._dataMap.set(config.PropertyName, {
46892
+ entityName: config.EntityName,
46893
+ data: currentData,
46894
+ loadedSuccessfully: true
46895
+ });
46896
+ this.NotifyDataChange(config, currentData, 'add', cached);
46897
+ }
46898
+ }
46899
+ }
46900
+ _context12.n = 5;
46901
+ break;
46902
+ case 4:
46903
+ if (event.type === 'delete') {
46904
+ // For delete, first try to find by object reference
46905
+ _index = currentData.indexOf(entity);
46906
+ if (_index < 0) {
46907
+ // Not found by reference, search by composite primary key
46908
+ _index = this.findEntityIndexByPrimaryKeys(currentData, entity);
46909
+ }
46910
+ if (_index >= 0) {
46911
+ currentData.splice(_index, 1);
46912
+ this._dataMap.set(config.PropertyName, {
46913
+ entityName: config.EntityName,
46914
+ data: currentData,
46915
+ loadedSuccessfully: true
46916
+ });
46917
+ this.NotifyDataChange(config, currentData, 'delete', entity);
46918
+ }
46919
+ }
46920
+ case 5:
46921
+ // Per-property observable emission for subscribers of ObserveProperty(config.PropertyName)
46922
+ this.emitPropertyChange(config.PropertyName);
46923
+ // Sync to LocalCacheManager if CacheLocal is enabled for this config
46924
+ // This keeps IndexedDB/localStorage in sync with in-memory array
46925
+ if (config.CacheLocal) {
46926
+ this.syncLocalCacheForConfig(config, event).catch(function (e) {
46927
+ // Log status but don't fail - cache will self-correct on next fetch
46928
+ LogStatus("BaseEngine: Failed to sync local cache for ".concat(config.EntityName, ": ").concat(e));
46929
+ });
46930
+ }
46931
+ case 6:
46932
+ return _context12.a(2);
46841
46933
  }
46842
- }
46843
- } else if (event.type === 'delete') {
46844
- // For delete, first try to find by object reference
46845
- var _index = currentData.indexOf(entity);
46846
- if (_index < 0) {
46847
- // Not found by reference, search by composite primary key
46848
- _index = this.findEntityIndexByPrimaryKeys(currentData, entity);
46849
- }
46850
- if (_index >= 0) {
46851
- currentData.splice(_index, 1);
46852
- this._dataMap.set(config.PropertyName, {
46853
- entityName: config.EntityName,
46854
- data: currentData,
46855
- loadedSuccessfully: true
46856
- });
46857
- this.NotifyDataChange(config, currentData, 'delete', entity);
46858
- }
46934
+ }, _callee12, this);
46935
+ }));
46936
+ function applyImmediateMutation(_x15, _x16) {
46937
+ return _applyImmediateMutation.apply(this, arguments);
46859
46938
  }
46860
- // Per-property observable emission for subscribers of ObserveProperty(config.PropertyName)
46861
- this.emitPropertyChange(config.PropertyName);
46862
- // Sync to LocalCacheManager if CacheLocal is enabled for this config
46863
- // This keeps IndexedDB/localStorage in sync with in-memory array
46864
- if (config.CacheLocal) {
46865
- this.syncLocalCacheForConfig(config, event).catch(function (e) {
46866
- // Log status but don't fail - cache will self-correct on next fetch
46867
- LogStatus("BaseEngine: Failed to sync local cache for ".concat(config.EntityName, ": ").concat(e));
46868
- });
46939
+ return applyImmediateMutation;
46940
+ }()
46941
+ /**
46942
+ * Creates a fresh BaseEntity owned by this engine's provider and populates it from the
46943
+ * given source entity's field values. Used by applyImmediateMutation to avoid pinning
46944
+ * the source entity's provider inside this engine's cache.
46945
+ */
46946
+ )
46947
+ }, {
46948
+ key: "cloneEntityForCache",
46949
+ value: (function () {
46950
+ var _cloneEntityForCache = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee13(source, config) {
46951
+ var provider, fresh, _t10;
46952
+ return baseEngine_regenerator().w(function (_context13) {
46953
+ while (1) switch (_context13.p = _context13.n) {
46954
+ case 0:
46955
+ _context13.p = 0;
46956
+ provider = this.ProviderToUse;
46957
+ if (provider) {
46958
+ _context13.n = 1;
46959
+ break;
46960
+ }
46961
+ return _context13.a(2, null);
46962
+ case 1:
46963
+ _context13.n = 2;
46964
+ return provider.GetEntityObject(config.EntityName, this._contextUser);
46965
+ case 2:
46966
+ fresh = _context13.v;
46967
+ if (fresh) {
46968
+ _context13.n = 3;
46969
+ break;
46970
+ }
46971
+ return _context13.a(2, null);
46972
+ case 3:
46973
+ fresh.LoadFromData(source.GetAll());
46974
+ return _context13.a(2, fresh);
46975
+ case 4:
46976
+ _context13.p = 4;
46977
+ _t10 = _context13.v;
46978
+ LogError(_t10);
46979
+ return _context13.a(2, null);
46980
+ }
46981
+ }, _callee13, this, [[0, 4]]);
46982
+ }));
46983
+ function cloneEntityForCache(_x17, _x18) {
46984
+ return _cloneEntityForCache.apply(this, arguments);
46869
46985
  }
46870
- }
46986
+ return cloneEntityForCache;
46987
+ }()
46871
46988
  /**
46872
46989
  * Syncs an entity change to the LocalCacheManager for a config with CacheLocal enabled.
46873
46990
  * This ensures that IndexedDB/localStorage stays in sync with the engine's in-memory array.
@@ -46878,19 +46995,20 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46878
46995
  * @param config - The configuration for the property being synced
46879
46996
  * @param event - The entity event containing the affected entity and event type
46880
46997
  */
46998
+ )
46881
46999
  }, {
46882
47000
  key: "syncLocalCacheForConfig",
46883
47001
  value: (function () {
46884
- var _syncLocalCacheForConfig = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee12(config, event) {
47002
+ var _syncLocalCacheForConfig = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee14(config, event) {
46885
47003
  var entity, provider, connectionString, params, fingerprint, key, rawUpdatedAt, updatedAt, entityData;
46886
- return baseEngine_regenerator().w(function (_context12) {
46887
- while (1) switch (_context12.n) {
47004
+ return baseEngine_regenerator().w(function (_context14) {
47005
+ while (1) switch (_context14.n) {
46888
47006
  case 0:
46889
47007
  if (LocalCacheManager.Instance.IsInitialized) {
46890
- _context12.n = 1;
47008
+ _context14.n = 1;
46891
47009
  break;
46892
47010
  }
46893
- return _context12.a(2);
47011
+ return _context14.a(2);
46894
47012
  case 1:
46895
47013
  entity = event.baseEntity; // Get the connection string from the provider for fingerprint generation
46896
47014
  // The provider is needed because fingerprints include connection prefix
@@ -46912,11 +47030,11 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46912
47030
  if (!(!key || key.KeyValuePairs.length === 0 || key.KeyValuePairs.some(function (kv) {
46913
47031
  return kv.Value == null;
46914
47032
  }))) {
46915
- _context12.n = 2;
47033
+ _context14.n = 2;
46916
47034
  break;
46917
47035
  }
46918
47036
  LogStatus("BaseEngine.syncLocalCacheForConfig: Cannot sync - primary key is incomplete for ".concat(config.EntityName));
46919
- return _context12.a(2);
47037
+ return _context14.a(2);
46920
47038
  case 2:
46921
47039
  // Get the updated timestamp from the entity and normalize to an ISO string.
46922
47040
  // entity.Get returns Date|string|number|null depending on field hydration and the
@@ -46927,24 +47045,24 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
46927
47045
  rawUpdatedAt = entity.Get('__mj_UpdatedAt');
46928
47046
  updatedAt = rawUpdatedAt ? new Date(rawUpdatedAt).toISOString() : new Date().toISOString();
46929
47047
  if (!(event.type === 'delete')) {
46930
- _context12.n = 4;
47048
+ _context14.n = 4;
46931
47049
  break;
46932
47050
  }
46933
- _context12.n = 3;
47051
+ _context14.n = 3;
46934
47052
  return LocalCacheManager.Instance.RemoveSingleEntity(fingerprint, key, updatedAt);
46935
47053
  case 3:
46936
- _context12.n = 5;
47054
+ _context14.n = 5;
46937
47055
  break;
46938
47056
  case 4:
46939
47057
  entityData = entity.GetAll();
46940
- _context12.n = 5;
47058
+ _context14.n = 5;
46941
47059
  return LocalCacheManager.Instance.UpsertSingleEntity(fingerprint, entityData, key, updatedAt);
46942
47060
  case 5:
46943
- return _context12.a(2);
47061
+ return _context14.a(2);
46944
47062
  }
46945
- }, _callee12, this);
47063
+ }, _callee14, this);
46946
47064
  }));
46947
- function syncLocalCacheForConfig(_x15, _x16) {
47065
+ function syncLocalCacheForConfig(_x19, _x20) {
46948
47066
  return _syncLocalCacheForConfig.apply(this, arguments);
46949
47067
  }
46950
47068
  return syncLocalCacheForConfig;
@@ -47002,18 +47120,18 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47002
47120
  }, {
47003
47121
  key: "LoadConfigs",
47004
47122
  value: (function () {
47005
- var _LoadConfigs = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee13(configs, contextUser) {
47006
- var _this8 = this;
47123
+ var _LoadConfigs = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee15(configs, contextUser) {
47124
+ var _this7 = this;
47007
47125
  var bypassCache,
47008
47126
  entityConfigs,
47009
47127
  datasetConfigs,
47010
- _args13 = arguments;
47011
- return baseEngine_regenerator().w(function (_context13) {
47012
- while (1) switch (_context13.n) {
47128
+ _args15 = arguments;
47129
+ return baseEngine_regenerator().w(function (_context15) {
47130
+ while (1) switch (_context15.n) {
47013
47131
  case 0:
47014
- bypassCache = _args13.length > 2 && _args13[2] !== undefined ? _args13[2] : false;
47132
+ bypassCache = _args15.length > 2 && _args15[2] !== undefined ? _args15[2] : false;
47015
47133
  this._metadataConfigs = configs.map(function (c) {
47016
- return _this8.UpgradeObjectToConfig(c);
47134
+ return _this7.UpgradeObjectToConfig(c);
47017
47135
  });
47018
47136
  // now, break up the configs into two chunks, datasets and views of entities so we can load all the views in a single network call via RunViews()
47019
47137
  entityConfigs = this._metadataConfigs.filter(function (c) {
@@ -47022,19 +47140,19 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47022
47140
  datasetConfigs = this._metadataConfigs.filter(function (c) {
47023
47141
  return c.Type === 'dataset';
47024
47142
  });
47025
- _context13.n = 1;
47143
+ _context15.n = 1;
47026
47144
  return Promise.all([].concat(baseEngine_toConsumableArray(datasetConfigs.map(function (c) {
47027
- return _this8.LoadSingleDatasetConfig(c, contextUser, bypassCache);
47145
+ return _this7.LoadSingleDatasetConfig(c, contextUser, bypassCache);
47028
47146
  })), [this.LoadMultipleEntityConfigs(entityConfigs, contextUser, bypassCache)]));
47029
47147
  case 1:
47030
47148
  // Register cross-server cache change callbacks for entity configs
47031
47149
  this.RegisterCacheChangeCallbacks(entityConfigs);
47032
47150
  case 2:
47033
- return _context13.a(2);
47151
+ return _context15.a(2);
47034
47152
  }
47035
- }, _callee13, this);
47153
+ }, _callee15, this);
47036
47154
  }));
47037
- function LoadConfigs(_x17, _x18) {
47155
+ function LoadConfigs(_x21, _x22) {
47038
47156
  return _LoadConfigs.apply(this, arguments);
47039
47157
  }
47040
47158
  return LoadConfigs;
@@ -47049,32 +47167,32 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47049
47167
  }, {
47050
47168
  key: "LoadSingleConfig",
47051
47169
  value: (function () {
47052
- var _LoadSingleConfig = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee14(config, contextUser) {
47170
+ var _LoadSingleConfig = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee16(config, contextUser) {
47053
47171
  var bypassCache,
47054
- _args14 = arguments;
47055
- return baseEngine_regenerator().w(function (_context14) {
47056
- while (1) switch (_context14.n) {
47172
+ _args16 = arguments;
47173
+ return baseEngine_regenerator().w(function (_context16) {
47174
+ while (1) switch (_context16.n) {
47057
47175
  case 0:
47058
- bypassCache = _args14.length > 2 && _args14[2] !== undefined ? _args14[2] : false;
47176
+ bypassCache = _args16.length > 2 && _args16[2] !== undefined ? _args16[2] : false;
47059
47177
  if (!(config.Type === 'dataset')) {
47060
- _context14.n = 2;
47178
+ _context16.n = 2;
47061
47179
  break;
47062
47180
  }
47063
- _context14.n = 1;
47181
+ _context16.n = 1;
47064
47182
  return this.LoadSingleDatasetConfig(config, contextUser, bypassCache);
47065
47183
  case 1:
47066
- return _context14.a(2, _context14.v);
47184
+ return _context16.a(2, _context16.v);
47067
47185
  case 2:
47068
- _context14.n = 3;
47186
+ _context16.n = 3;
47069
47187
  return this.LoadSingleEntityConfig(config, contextUser, bypassCache);
47070
47188
  case 3:
47071
- return _context14.a(2, _context14.v);
47189
+ return _context16.a(2, _context16.v);
47072
47190
  case 4:
47073
- return _context14.a(2);
47191
+ return _context16.a(2);
47074
47192
  }
47075
- }, _callee14, this);
47193
+ }, _callee16, this);
47076
47194
  }));
47077
- function LoadSingleConfig(_x19, _x20) {
47195
+ function LoadSingleConfig(_x23, _x24) {
47078
47196
  return _LoadSingleConfig.apply(this, arguments);
47079
47197
  }
47080
47198
  return LoadSingleConfig;
@@ -47089,19 +47207,19 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47089
47207
  }, {
47090
47208
  key: "LoadSingleEntityConfig",
47091
47209
  value: (function () {
47092
- var _LoadSingleEntityConfig = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee15(config, contextUser) {
47210
+ var _LoadSingleEntityConfig = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee17(config, contextUser) {
47093
47211
  var bypassCache,
47094
47212
  p,
47095
47213
  rv,
47096
47214
  result,
47097
- _args15 = arguments;
47098
- return baseEngine_regenerator().w(function (_context15) {
47099
- while (1) switch (_context15.n) {
47215
+ _args17 = arguments;
47216
+ return baseEngine_regenerator().w(function (_context17) {
47217
+ while (1) switch (_context17.n) {
47100
47218
  case 0:
47101
- bypassCache = _args15.length > 2 && _args15[2] !== undefined ? _args15[2] : false;
47219
+ bypassCache = _args17.length > 2 && _args17[2] !== undefined ? _args17[2] : false;
47102
47220
  p = this.RunViewProviderToUse;
47103
47221
  rv = new RunView(p);
47104
- _context15.n = 1;
47222
+ _context17.n = 1;
47105
47223
  return rv.RunView({
47106
47224
  EntityName: config.EntityName,
47107
47225
  ResultType: config.ResultType || this.EngineDefaultResultType,
@@ -47116,15 +47234,15 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47116
47234
  BypassCache: bypassCache
47117
47235
  }, contextUser);
47118
47236
  case 1:
47119
- result = _context15.v;
47237
+ result = _context17.v;
47120
47238
  this.HandleSingleViewResult(config, result);
47121
47239
  this.emitPropertyChange(config.PropertyName);
47122
47240
  case 2:
47123
- return _context15.a(2);
47241
+ return _context17.a(2);
47124
47242
  }
47125
- }, _callee15, this);
47243
+ }, _callee17, this);
47126
47244
  }));
47127
- function LoadSingleEntityConfig(_x21, _x22) {
47245
+ function LoadSingleEntityConfig(_x25, _x26) {
47128
47246
  return _LoadSingleEntityConfig.apply(this, arguments);
47129
47247
  }
47130
47248
  return LoadSingleEntityConfig;
@@ -47172,8 +47290,8 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47172
47290
  }, {
47173
47291
  key: "LoadMultipleEntityConfigs",
47174
47292
  value: (function () {
47175
- var _LoadMultipleEntityConfigs = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee16(configs, contextUser) {
47176
- var _this9 = this;
47293
+ var _LoadMultipleEntityConfigs = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee18(configs, contextUser) {
47294
+ var _this8 = this;
47177
47295
  var bypassCache,
47178
47296
  p,
47179
47297
  rv,
@@ -47181,13 +47299,13 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47181
47299
  results,
47182
47300
  entityNames,
47183
47301
  i,
47184
- _args16 = arguments;
47185
- return baseEngine_regenerator().w(function (_context16) {
47186
- while (1) switch (_context16.n) {
47302
+ _args18 = arguments;
47303
+ return baseEngine_regenerator().w(function (_context18) {
47304
+ while (1) switch (_context18.n) {
47187
47305
  case 0:
47188
- bypassCache = _args16.length > 2 && _args16[2] !== undefined ? _args16[2] : false;
47306
+ bypassCache = _args18.length > 2 && _args18[2] !== undefined ? _args18[2] : false;
47189
47307
  if (!(configs && configs.length > 0)) {
47190
- _context16.n = 2;
47308
+ _context18.n = 2;
47191
47309
  break;
47192
47310
  }
47193
47311
  p = this.RunViewProviderToUse;
@@ -47195,7 +47313,7 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47195
47313
  viewConfigs = configs.map(function (c) {
47196
47314
  return {
47197
47315
  EntityName: c.EntityName,
47198
- ResultType: c.ResultType || _this9.EngineDefaultResultType,
47316
+ ResultType: c.ResultType || _this8.EngineDefaultResultType,
47199
47317
  ExtraFilter: c.Filter,
47200
47318
  OrderBy: c.OrderBy,
47201
47319
  IgnoreMaxRows: true,
@@ -47207,10 +47325,10 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47207
47325
  BypassCache: bypassCache
47208
47326
  };
47209
47327
  });
47210
- _context16.n = 1;
47328
+ _context18.n = 1;
47211
47329
  return rv.RunViews(viewConfigs, contextUser);
47212
47330
  case 1:
47213
- results = _context16.v;
47331
+ results = _context18.v;
47214
47332
  // Process results and record entity loads for redundancy detection
47215
47333
  entityNames = [];
47216
47334
  for (i = 0; i < configs.length; i++) {
@@ -47227,11 +47345,11 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47227
47345
  BaseEngineRegistry.Instance.RecordEntityLoads(this, entityNames);
47228
47346
  }
47229
47347
  case 2:
47230
- return _context16.a(2);
47348
+ return _context18.a(2);
47231
47349
  }
47232
- }, _callee16, this);
47350
+ }, _callee18, this);
47233
47351
  }));
47234
- function LoadMultipleEntityConfigs(_x23, _x24) {
47352
+ function LoadMultipleEntityConfigs(_x27, _x28) {
47235
47353
  return _LoadMultipleEntityConfigs.apply(this, arguments);
47236
47354
  }
47237
47355
  return LoadMultipleEntityConfigs;
@@ -47248,7 +47366,7 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47248
47366
  }, {
47249
47367
  key: "LoadSingleDatasetConfig",
47250
47368
  value: (function () {
47251
- var _LoadSingleDatasetConfig = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee17(config, contextUser) {
47369
+ var _LoadSingleDatasetConfig = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee19(config, contextUser) {
47252
47370
  var bypassCache,
47253
47371
  p,
47254
47372
  result,
@@ -47265,61 +47383,61 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47265
47383
  _iterator8,
47266
47384
  _step8,
47267
47385
  _item,
47268
- _args17 = arguments,
47269
- _t1,
47270
- _t10;
47271
- return baseEngine_regenerator().w(function (_context17) {
47272
- while (1) switch (_context17.p = _context17.n) {
47386
+ _args19 = arguments,
47387
+ _t11,
47388
+ _t12;
47389
+ return baseEngine_regenerator().w(function (_context19) {
47390
+ while (1) switch (_context19.p = _context19.n) {
47273
47391
  case 0:
47274
- bypassCache = _args17.length > 2 && _args17[2] !== undefined ? _args17[2] : false;
47392
+ bypassCache = _args19.length > 2 && _args19[2] !== undefined ? _args19[2] : false;
47275
47393
  p = this.ProviderToUse; // When bypassing cache, use GetDatasetByName with forceRefresh to skip all cache reads,
47276
47394
  // then CacheDataset to store the fresh results for subsequent non-forced calls.
47277
47395
  // Otherwise, use GetAndCacheDatasetByName which validates staleness before returning cached data.
47278
47396
  if (!bypassCache) {
47279
- _context17.n = 3;
47397
+ _context19.n = 3;
47280
47398
  break;
47281
47399
  }
47282
- _context17.n = 1;
47400
+ _context19.n = 1;
47283
47401
  return p.GetDatasetByName(config.DatasetName, config.DatasetItemFilters, contextUser, undefined, true);
47284
47402
  case 1:
47285
- result = _context17.v;
47286
- _context17.n = 2;
47403
+ result = _context19.v;
47404
+ _context19.n = 2;
47287
47405
  return p.CacheDataset(config.DatasetName, config.DatasetItemFilters, result);
47288
47406
  case 2:
47289
- _context17.n = 5;
47407
+ _context19.n = 5;
47290
47408
  break;
47291
47409
  case 3:
47292
- _context17.n = 4;
47410
+ _context19.n = 4;
47293
47411
  return p.GetAndCacheDatasetByName(config.DatasetName, config.DatasetItemFilters);
47294
47412
  case 4:
47295
- result = _context17.v;
47413
+ result = _context19.v;
47296
47414
  case 5:
47297
47415
  if (result) {
47298
- _context17.n = 6;
47416
+ _context19.n = 6;
47299
47417
  break;
47300
47418
  }
47301
47419
  LogError("LoadSingleDatasetConfig: GetAndCacheDatasetByName(\"".concat(config.DatasetName, "\") returned undefined/null \u2014 provider: ").concat(p === null || p === void 0 || (_p$constructor = p.constructor) === null || _p$constructor === void 0 ? void 0 : _p$constructor.name));
47302
- return _context17.a(2);
47420
+ return _context19.a(2);
47303
47421
  case 6:
47304
47422
  if (!result.Success) {
47305
- _context17.n = 24;
47423
+ _context19.n = 24;
47306
47424
  break;
47307
47425
  }
47308
47426
  if (!(config.AddToObject !== false)) {
47309
- _context17.n = 23;
47427
+ _context19.n = 23;
47310
47428
  break;
47311
47429
  }
47312
47430
  if (!(config.DatasetResultHandling === 'single_property')) {
47313
- _context17.n = 22;
47431
+ _context19.n = 22;
47314
47432
  break;
47315
47433
  }
47316
47434
  singleObject = {};
47317
47435
  _iterator6 = baseEngine_createForOfIteratorHelper(result.Results);
47318
- _context17.p = 7;
47436
+ _context19.p = 7;
47319
47437
  _iterator6.s();
47320
47438
  case 8:
47321
47439
  if ((_step6 = _iterator6.n()).done) {
47322
- _context17.n = 18;
47440
+ _context19.n = 18;
47323
47441
  break;
47324
47442
  }
47325
47443
  item = _step6.value;
@@ -47327,53 +47445,53 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47327
47445
  //adding them to the singleObject
47328
47446
  entities = [];
47329
47447
  _iterator7 = baseEngine_createForOfIteratorHelper(item.Results);
47330
- _context17.p = 9;
47448
+ _context19.p = 9;
47331
47449
  _iterator7.s();
47332
47450
  case 10:
47333
47451
  if ((_step7 = _iterator7.n()).done) {
47334
- _context17.n = 13;
47452
+ _context19.n = 13;
47335
47453
  break;
47336
47454
  }
47337
47455
  entityData = _step7.value;
47338
- _context17.n = 11;
47456
+ _context19.n = 11;
47339
47457
  return p.GetEntityObject(item.EntityName, contextUser);
47340
47458
  case 11:
47341
- entity = _context17.v;
47459
+ entity = _context19.v;
47342
47460
  entity.SetMany(entityData);
47343
47461
  entities.push(entity);
47344
47462
  case 12:
47345
- _context17.n = 10;
47463
+ _context19.n = 10;
47346
47464
  break;
47347
47465
  case 13:
47348
- _context17.n = 15;
47466
+ _context19.n = 15;
47349
47467
  break;
47350
47468
  case 14:
47351
- _context17.p = 14;
47352
- _t1 = _context17.v;
47353
- _iterator7.e(_t1);
47469
+ _context19.p = 14;
47470
+ _t11 = _context19.v;
47471
+ _iterator7.e(_t11);
47354
47472
  case 15:
47355
- _context17.p = 15;
47473
+ _context19.p = 15;
47356
47474
  _iterator7.f();
47357
- return _context17.f(15);
47475
+ return _context19.f(15);
47358
47476
  case 16:
47359
47477
  singleObject[item.Code] = entities;
47360
47478
  case 17:
47361
- _context17.n = 8;
47479
+ _context19.n = 8;
47362
47480
  break;
47363
47481
  case 18:
47364
- _context17.n = 20;
47482
+ _context19.n = 20;
47365
47483
  break;
47366
47484
  case 19:
47367
- _context17.p = 19;
47368
- _t10 = _context17.v;
47369
- _iterator6.e(_t10);
47485
+ _context19.p = 19;
47486
+ _t12 = _context19.v;
47487
+ _iterator6.e(_t12);
47370
47488
  case 20:
47371
- _context17.p = 20;
47489
+ _context19.p = 20;
47372
47490
  _iterator6.f();
47373
- return _context17.f(20);
47491
+ return _context19.f(20);
47374
47492
  case 21:
47375
47493
  this[config.PropertyName] = singleObject;
47376
- _context17.n = 23;
47494
+ _context19.n = 23;
47377
47495
  break;
47378
47496
  case 22:
47379
47497
  // explode out the items within the DS into individual properties
@@ -47398,11 +47516,11 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47398
47516
  this.SetExpirationTimer(config.PropertyName, config.Expiration);
47399
47517
  }
47400
47518
  case 24:
47401
- return _context17.a(2);
47519
+ return _context19.a(2);
47402
47520
  }
47403
- }, _callee17, this, [[9, 14, 15, 16], [7, 19, 20, 21]]);
47521
+ }, _callee19, this, [[9, 14, 15, 16], [7, 19, 20, 21]]);
47404
47522
  }));
47405
- function LoadSingleDatasetConfig(_x25, _x26) {
47523
+ function LoadSingleDatasetConfig(_x29, _x30) {
47406
47524
  return _LoadSingleDatasetConfig.apply(this, arguments);
47407
47525
  }
47408
47526
  return LoadSingleDatasetConfig;
@@ -47422,7 +47540,7 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47422
47540
  }, {
47423
47541
  key: "RegisterCacheChangeCallbacks",
47424
47542
  value: function RegisterCacheChangeCallbacks(entityConfigs) {
47425
- var _this0 = this;
47543
+ var _this9 = this;
47426
47544
  // Unsubscribe any previous callbacks (e.g., on forceRefresh reload)
47427
47545
  var _iterator9 = baseEngine_createForOfIteratorHelper(this._cacheChangeUnsubscribers),
47428
47546
  _step9;
@@ -47453,9 +47571,9 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47453
47571
  ResultType: 'entity_object'
47454
47572
  }, connectionPrefix);
47455
47573
  var unsubscribe = LocalCacheManager.Instance.RegisterChangeCallback(fingerprint, function (event) {
47456
- return _this0.OnExternalCacheChange(config, event);
47574
+ return _this9.OnExternalCacheChange(config, event);
47457
47575
  });
47458
- _this0._cacheChangeUnsubscribers.push(unsubscribe);
47576
+ _this9._cacheChangeUnsubscribers.push(unsubscribe);
47459
47577
  };
47460
47578
  for (_iterator0.s(); !(_step0 = _iterator0.n()).done;) {
47461
47579
  _loop();
@@ -47479,19 +47597,19 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47479
47597
  }, {
47480
47598
  key: "OnExternalCacheChange",
47481
47599
  value: (function () {
47482
- var _OnExternalCacheChange = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee18(config, event) {
47483
- var parsed, _parsed$totalRowCount, _t11;
47484
- return baseEngine_regenerator().w(function (_context18) {
47485
- while (1) switch (_context18.p = _context18.n) {
47600
+ var _OnExternalCacheChange = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee20(config, event) {
47601
+ var parsed, _parsed$totalRowCount, _t13;
47602
+ return baseEngine_regenerator().w(function (_context20) {
47603
+ while (1) switch (_context20.p = _context20.n) {
47486
47604
  case 0:
47487
47605
  if (!(event.Data && event.Action === 'set')) {
47488
- _context18.n = 4;
47606
+ _context20.n = 4;
47489
47607
  break;
47490
47608
  }
47491
- _context18.p = 1;
47609
+ _context20.p = 1;
47492
47610
  parsed = JSON.parse(event.Data);
47493
47611
  if (!(parsed !== null && parsed !== void 0 && parsed.results && Array.isArray(parsed.results))) {
47494
- _context18.n = 2;
47612
+ _context20.n = 2;
47495
47613
  break;
47496
47614
  }
47497
47615
  this.HandleSingleViewResult(config, {
@@ -47503,22 +47621,22 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47503
47621
  ErrorMessage: '',
47504
47622
  UserViewRunID: ''
47505
47623
  });
47506
- return _context18.a(2);
47624
+ return _context20.a(2);
47507
47625
  case 2:
47508
- _context18.n = 4;
47626
+ _context20.n = 4;
47509
47627
  break;
47510
47628
  case 3:
47511
- _context18.p = 3;
47512
- _t11 = _context18.v;
47629
+ _context20.p = 3;
47630
+ _t13 = _context20.v;
47513
47631
  case 4:
47514
- _context18.n = 5;
47632
+ _context20.n = 5;
47515
47633
  return this.LoadSingleConfig(config, this._contextUser);
47516
47634
  case 5:
47517
- return _context18.a(2);
47635
+ return _context20.a(2);
47518
47636
  }
47519
- }, _callee18, this, [[1, 3]]);
47637
+ }, _callee20, this, [[1, 3]]);
47520
47638
  }));
47521
- function OnExternalCacheChange(_x27, _x28) {
47639
+ function OnExternalCacheChange(_x31, _x32) {
47522
47640
  return _OnExternalCacheChange.apply(this, arguments);
47523
47641
  }
47524
47642
  return OnExternalCacheChange;
@@ -47532,12 +47650,12 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47532
47650
  }, {
47533
47651
  key: "SetExpirationTimer",
47534
47652
  value: function SetExpirationTimer(propertyName, expiration) {
47535
- var _this1 = this;
47653
+ var _this0 = this;
47536
47654
  if (this._expirationTimers.has(propertyName)) {
47537
47655
  clearTimeout(this._expirationTimers.get(propertyName));
47538
47656
  }
47539
47657
  var timer = setTimeout(function () {
47540
- return _this1.RefreshItem(propertyName);
47658
+ return _this0.RefreshItem(propertyName);
47541
47659
  }, expiration);
47542
47660
  this._expirationTimers.set(propertyName, timer);
47543
47661
  }
@@ -47549,21 +47667,21 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47549
47667
  }, {
47550
47668
  key: "AddDynamicConfig",
47551
47669
  value: (function () {
47552
- var _AddDynamicConfig = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee19(config, contextUser) {
47670
+ var _AddDynamicConfig = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee21(config, contextUser) {
47553
47671
  var c;
47554
- return baseEngine_regenerator().w(function (_context19) {
47555
- while (1) switch (_context19.n) {
47672
+ return baseEngine_regenerator().w(function (_context21) {
47673
+ while (1) switch (_context21.n) {
47556
47674
  case 0:
47557
47675
  c = this.UpgradeObjectToConfig(config);
47558
47676
  this._dynamicConfigs.set(c.PropertyName, c);
47559
- _context19.n = 1;
47677
+ _context21.n = 1;
47560
47678
  return this.LoadSingleConfig(c, contextUser || this._contextUser);
47561
47679
  case 1:
47562
- return _context19.a(2);
47680
+ return _context21.a(2);
47563
47681
  }
47564
- }, _callee19, this);
47682
+ }, _callee21, this);
47565
47683
  }));
47566
- function AddDynamicConfig(_x29, _x30) {
47684
+ function AddDynamicConfig(_x33, _x34) {
47567
47685
  return _AddDynamicConfig.apply(this, arguments);
47568
47686
  }
47569
47687
  return AddDynamicConfig;
@@ -47590,26 +47708,26 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47590
47708
  }, {
47591
47709
  key: "RefreshItem",
47592
47710
  value: (function () {
47593
- var _RefreshItem = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee20(propertyName) {
47711
+ var _RefreshItem = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee22(propertyName) {
47594
47712
  var config;
47595
- return baseEngine_regenerator().w(function (_context20) {
47596
- while (1) switch (_context20.n) {
47713
+ return baseEngine_regenerator().w(function (_context22) {
47714
+ while (1) switch (_context22.n) {
47597
47715
  case 0:
47598
47716
  config = this._metadataConfigs.find(function (c) {
47599
47717
  return c.PropertyName === propertyName;
47600
47718
  }) || this._dynamicConfigs.get(propertyName);
47601
47719
  if (!config) {
47602
- _context20.n = 1;
47720
+ _context22.n = 1;
47603
47721
  break;
47604
47722
  }
47605
- _context20.n = 1;
47723
+ _context22.n = 1;
47606
47724
  return this.LoadSingleConfig(config, this._contextUser);
47607
47725
  case 1:
47608
- return _context20.a(2);
47726
+ return _context22.a(2);
47609
47727
  }
47610
- }, _callee20, this);
47728
+ }, _callee22, this);
47611
47729
  }));
47612
- function RefreshItem(_x31) {
47730
+ function RefreshItem(_x35) {
47613
47731
  return _RefreshItem.apply(this, arguments);
47614
47732
  }
47615
47733
  return RefreshItem;
@@ -47621,16 +47739,16 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47621
47739
  }, {
47622
47740
  key: "RefreshAllItems",
47623
47741
  value: (function () {
47624
- var _RefreshAllItems = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee21() {
47625
- return baseEngine_regenerator().w(function (_context21) {
47626
- while (1) switch (_context21.n) {
47742
+ var _RefreshAllItems = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee23() {
47743
+ return baseEngine_regenerator().w(function (_context23) {
47744
+ while (1) switch (_context23.n) {
47627
47745
  case 0:
47628
- _context21.n = 1;
47746
+ _context23.n = 1;
47629
47747
  return this.LoadConfigs([].concat(baseEngine_toConsumableArray(this._metadataConfigs), baseEngine_toConsumableArray(Array.from(this._dynamicConfigs.values()))), this._contextUser);
47630
47748
  case 1:
47631
- return _context21.a(2);
47749
+ return _context23.a(2);
47632
47750
  }
47633
- }, _callee21, this);
47751
+ }, _callee23, this);
47634
47752
  }));
47635
47753
  function RefreshAllItems() {
47636
47754
  return _RefreshAllItems.apply(this, arguments);
@@ -47645,15 +47763,15 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47645
47763
  }, {
47646
47764
  key: "AdditionalLoading",
47647
47765
  value: (function () {
47648
- var _AdditionalLoading = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee22(contextUser) {
47649
- return baseEngine_regenerator().w(function (_context22) {
47650
- while (1) switch (_context22.n) {
47766
+ var _AdditionalLoading = baseEngine_asyncToGenerator(/*#__PURE__*/baseEngine_regenerator().m(function _callee24(contextUser) {
47767
+ return baseEngine_regenerator().w(function (_context24) {
47768
+ while (1) switch (_context24.n) {
47651
47769
  case 0:
47652
- return _context22.a(2);
47770
+ return _context24.a(2);
47653
47771
  }
47654
- }, _callee22);
47772
+ }, _callee24);
47655
47773
  }));
47656
- function AdditionalLoading(_x32) {
47774
+ function AdditionalLoading(_x36) {
47657
47775
  return _AdditionalLoading.apply(this, arguments);
47658
47776
  }
47659
47777
  return AdditionalLoading;
@@ -47737,34 +47855,44 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47737
47855
  if (!this.Loaded) throw new Error("Data not loaded, call Config() first.");
47738
47856
  }
47739
47857
  }], [{
47740
- key: "ProviderInstances",
47741
- get: function get() {
47742
- return BaseEngine._providerInstances;
47858
+ key: "GetProviderInstance",
47859
+ value:
47860
+ /**
47861
+ * Returns the cached engine instance for this engine subclass on the connection the given
47862
+ * provider points to, creating one if none exists yet. Lookup is keyed by the provider's
47863
+ * `InstanceConnectionString` so multiple provider objects targeting the same connection
47864
+ * share a single cached engine.
47865
+ */
47866
+ function GetProviderInstance(provider, subclassConstructor) {
47867
+ var connectionKey = provider === null || provider === void 0 ? void 0 : provider.InstanceConnectionString;
47868
+ if (connectionKey) {
47869
+ var perConnectionMap = BaseEngine._providerInstances.get(connectionKey);
47870
+ if (perConnectionMap) {
47871
+ var existing = perConnectionMap.get(subclassConstructor);
47872
+ if (existing) {
47873
+ return existing;
47874
+ }
47875
+ }
47876
+ }
47877
+ var newInstance = new subclassConstructor();
47878
+ newInstance.SetProvider(provider); // SetProvider -> CheckAddToProviderInstances handles registration
47879
+ return newInstance;
47743
47880
  }
47744
47881
  /**
47745
- * This method will check for the existence of an instance of this engine class that is tied to a specific provider. If one exists, it will return it, otherwise it will create a new instance
47882
+ * Removes all cached engine instances for the given connection. Call this when a connection
47883
+ * is being torn down (e.g. multi-tenant client logging out) to release the cached engines'
47884
+ * memory eagerly. For normal server operation this is rarely needed — the cache is bounded
47885
+ * by (distinct connections × engine classes), which is small.
47746
47886
  */
47747
47887
  }, {
47748
- key: "GetProviderInstance",
47749
- value: function GetProviderInstance(provider, subclassConstructor) {
47750
- var existingEntry = BaseEngine.ProviderInstances.find(function (entry) {
47751
- return entry.provider === provider && entry.subclassConstructor === subclassConstructor;
47752
- });
47753
- if (existingEntry) {
47754
- return existingEntry.instance;
47755
- } else {
47756
- // we don't have an existing instance for this provider, so we need to create one
47757
- var newInstance = new subclassConstructor();
47758
- newInstance.SetProvider(provider);
47759
- // BaseEngine.ProviderInstances.set({provider, subclassConstructor}, newInstance);
47760
- //BaseEngine.ProviderInstances.push({ provider, subclassConstructor, instance: newInstance });
47761
- return newInstance;
47762
- }
47888
+ key: "RemoveConnectionInstances",
47889
+ value: function RemoveConnectionInstances(connectionKey) {
47890
+ BaseEngine._providerInstances.delete(connectionKey);
47763
47891
  }
47764
47892
  }]);
47765
47893
  }(dist/* BaseSingleton */.tC);
47766
47894
  _BaseEngine = BaseEngine;
47767
- _BaseEngine._providerInstances = [];
47895
+ _BaseEngine._providerInstances = new Map();
47768
47896
  ;// ../../MJCore/dist/generic/transactionGroup.js
47769
47897
  function transactionGroup_typeof(o) { "@babel/helpers - typeof"; return transactionGroup_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; }, transactionGroup_typeof(o); }
47770
47898
  function transactionGroup_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = transactionGroup_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; } } }; }
@@ -54371,7 +54499,7 @@ var UserViewEngine = /*#__PURE__*/function (_BaseEngine) {
54371
54499
 
54372
54500
  /***/ },
54373
54501
 
54374
- /***/ 760
54502
+ /***/ 793
54375
54503
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
54376
54504
 
54377
54505
  "use strict";
@@ -54382,7 +54510,7 @@ __webpack_require__.d(__webpack_exports__, {
54382
54510
  o1C: () => (/* reexport */ ViewInfo)
54383
54511
  });
54384
54512
 
54385
- // UNUSED EXPORTS: AIAgentPermissionProvider, AccessControlRuleProvider, ApplicationRolePermissionProvider, ArtifactExtractor, ArtifactMetadataEngine, ArtifactPermissionProvider, BuildUnregisteredMimeError, CollectionPermissionProvider, ConversationEngine, CreateShareNotification, DEFAULT_AGGREGATE_DISPLAY, DashboardEngine, DashboardPermissionProvider, DecideInlineStorage, EncryptionEngineBase, EntityPermissionProvider, EntityPermissionType, EntitySaveOptions, ExtractBase64FromDataUrl, FileStorageEngineBase, FindArtifactTypeConflicts, GeoDataEngine, InstanceConfigEngine, IsTextyMime, KnowledgeHubMetadataEngine, LoadMJAccessControlRuleEntityExtended, LoadMJArtifactPermissionEntityExtended, LoadMJCollectionPermissionEntityExtended, LoadMJConversationDetailEntityExtended, LoadMJDashboardPermissionEntityExtended, LoadPermissionEntityExtensions, LoadPermissionProviders, MCPEngine, MJAIActionEntity, MJAIActionSchema, MJAIAgentActionEntity, MJAIAgentActionSchema, MJAIAgentArtifactTypeEntity, MJAIAgentArtifactTypeSchema, MJAIAgentCategoryEntity, MJAIAgentCategorySchema, MJAIAgentClientToolEntity, MJAIAgentClientToolSchema, MJAIAgentConfigurationEntity, MJAIAgentConfigurationSchema, MJAIAgentDataSourceEntity, MJAIAgentDataSourceSchema, MJAIAgentEntity, MJAIAgentExampleEntity, MJAIAgentExampleSchema, MJAIAgentLearningCycleEntity, MJAIAgentLearningCycleSchema, MJAIAgentModalityEntity, MJAIAgentModalitySchema, MJAIAgentModelEntity, MJAIAgentModelSchema, MJAIAgentNoteEntity, MJAIAgentNoteSchema, MJAIAgentNoteTypeEntity, MJAIAgentNoteTypeSchema, MJAIAgentPermissionEntity, MJAIAgentPermissionSchema, MJAIAgentPromptEntity, MJAIAgentPromptSchema, MJAIAgentRelationshipEntity, MJAIAgentRelationshipSchema, MJAIAgentRequestEntity, MJAIAgentRequestSchema, MJAIAgentRequestTypeEntity, MJAIAgentRequestTypeSchema, MJAIAgentRunEntity, MJAIAgentRunMediaEntity, MJAIAgentRunMediaSchema, MJAIAgentRunSchema, MJAIAgentRunStepEntity, MJAIAgentRunStepSchema, MJAIAgentSchema, MJAIAgentSearchScopeEntity, MJAIAgentSearchScopeSchema, MJAIAgentStepEntity, MJAIAgentStepPathEntity, MJAIAgentStepPathSchema, MJAIAgentStepSchema, MJAIAgentTypeEntity, MJAIAgentTypeSchema, MJAIArchitectureEntity, MJAIArchitectureSchema, MJAIClientToolDefinitionEntity, MJAIClientToolDefinitionSchema, MJAIConfigurationEntity, MJAIConfigurationParamEntity, MJAIConfigurationParamSchema, MJAIConfigurationSchema, MJAICredentialBindingEntity, MJAICredentialBindingSchema, MJAIModalityEntity, MJAIModalitySchema, MJAIModelActionEntity, MJAIModelActionSchema, MJAIModelArchitectureEntity, MJAIModelArchitectureSchema, MJAIModelCostEntity, MJAIModelCostSchema, MJAIModelEntity, MJAIModelModalityEntity, MJAIModelModalitySchema, MJAIModelPriceTypeEntity, MJAIModelPriceTypeSchema, MJAIModelPriceUnitTypeEntity, MJAIModelPriceUnitTypeSchema, MJAIModelSchema, MJAIModelTypeEntity, MJAIModelTypeSchema, MJAIModelVendorEntity, MJAIModelVendorSchema, MJAIPromptCategoryEntity, MJAIPromptCategorySchema, MJAIPromptEntity, MJAIPromptModelEntity, MJAIPromptModelSchema, MJAIPromptRunEntity, MJAIPromptRunMediaEntity, MJAIPromptRunMediaSchema, MJAIPromptRunSchema, MJAIPromptSchema, MJAIPromptTypeEntity, MJAIPromptTypeSchema, MJAIResultCacheEntity, MJAIResultCacheSchema, MJAIVendorEntity, MJAIVendorSchema, MJAIVendorTypeDefinitionEntity, MJAIVendorTypeDefinitionSchema, MJAIVendorTypeEntity, MJAIVendorTypeSchema, MJAPIApplicationEntity, MJAPIApplicationSchema, MJAPIApplicationScopeEntity, MJAPIApplicationScopeSchema, MJAPIKeyApplicationEntity, MJAPIKeyApplicationSchema, MJAPIKeyEntity, MJAPIKeySchema, MJAPIKeyScopeEntity, MJAPIKeyScopeSchema, MJAPIKeyUsageLogEntity, MJAPIKeyUsageLogSchema, MJAPIScopeEntity, MJAPIScopeSchema, MJAccessControlRuleEntity, 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, 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, MJContentItemDuplicateEntity, MJContentItemDuplicateSchema, MJContentItemEntity, MJContentItemSchema, MJContentItemTagEntity, MJContentItemTagSchema, MJContentProcessRunDetailEntity, MJContentProcessRunDetailSchema, MJContentProcessRunEntity, MJContentProcessRunPromptRunEntity, MJContentProcessRunPromptRunSchema, MJContentProcessRunSchema, MJContentSourceEntity, MJContentSourceParamEntity, MJContentSourceParamSchema, MJContentSourceSchema, MJContentSourceTypeEntity, MJContentSourceTypeParamEntity, MJContentSourceTypeParamSchema, MJContentSourceTypeSchema, MJContentTypeAttributeEntity, MJContentTypeAttributeSchema, MJContentTypeEntity, MJContentTypeSchema, MJConversationArtifactEntity, MJConversationArtifactPermissionEntity, MJConversationArtifactPermissionSchema, MJConversationArtifactSchema, MJConversationArtifactVersionEntity, MJConversationArtifactVersionSchema, MJConversationDetailArtifactEntity, MJConversationDetailArtifactSchema, MJConversationDetailAttachmentEntity, MJConversationDetailAttachmentSchema, MJConversationDetailEntity, MJConversationDetailEntityExtended, MJConversationDetailRatingEntity, MJConversationDetailRatingSchema, MJConversationDetailSchema, MJConversationEntity, MJConversationSchema, 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, MJEntityOrganicKeyEntity, MJEntityOrganicKeyRelatedEntityEntity, MJEntityOrganicKeyRelatedEntitySchema, MJEntityOrganicKeySchema, MJEntityPermissionEntity, MJEntityPermissionSchema, MJEntityRecordDocumentEntity, MJEntityRecordDocumentSchema, MJEntityRelationshipDisplayComponentEntity, MJEntityRelationshipDisplayComponentSchema, MJEntityRelationshipEntity, MJEntityRelationshipSchema, MJEntitySchema, MJEntitySettingEntity, MJEntitySettingSchema, MJEnvironmentEntity, MJEnvironmentEntityExtended, MJEnvironmentSchema, MJErrorLogEntity, MJErrorLogSchema, MJExplorerNavigationItemEntity, MJExplorerNavigationItemSchema, MJFileCategoryEntity, MJFileCategorySchema, MJFileEntity, MJFileEntityRecordLinkEntity, MJFileEntityRecordLinkSchema, MJFileSchema, MJFileStorageAccountEntity, MJFileStorageAccountPermissionEntity, MJFileStorageAccountPermissionSchema, MJFileStorageAccountSchema, MJFileStorageProviderEntity, MJFileStorageProviderSchema, MJGeneratedCodeCategoryEntity, MJGeneratedCodeCategorySchema, MJGeneratedCodeEntity, MJGeneratedCodeSchema, MJInstanceConfigurationEntity, MJInstanceConfigurationSchema, MJIntegrationEntity, MJIntegrationObjectEntity, MJIntegrationObjectFieldEntity, MJIntegrationObjectFieldSchema, MJIntegrationObjectSchema, MJIntegrationSchema, MJIntegrationSourceTypeEntity, MJIntegrationSourceTypeSchema, MJIntegrationURLFormatEntity, MJIntegrationURLFormatSchema, MJKnowledgeHubSavedSearchEntity, MJKnowledgeHubSavedSearchSchema, MJLibraryEntity, MJLibraryItemEntity, MJLibraryItemSchema, MJLibrarySchema, MJListCategoryEntity, MJListCategorySchema, MJListDetailEntity, MJListDetailEntityExtended, MJListDetailSchema, MJListEntity, MJListInvitationEntity, MJListInvitationSchema, MJListSchema, MJListShareEntity, MJListShareSchema, MJMCPServerConnectionEntity, MJMCPServerConnectionPermissionEntity, MJMCPServerConnectionPermissionSchema, MJMCPServerConnectionSchema, MJMCPServerConnectionToolEntity, MJMCPServerConnectionToolSchema, MJMCPServerEntity, MJMCPServerSchema, MJMCPServerToolEntity, MJMCPServerToolSchema, MJMCPToolExecutionLogEntity, MJMCPToolExecutionLogSchema, MJMCPToolFavoriteEntity, MJMCPToolFavoriteSchema, MJOAuthAuthServerMetadataCacheEntity, MJOAuthAuthServerMetadataCacheSchema, MJOAuthAuthorizationStateEntity, MJOAuthAuthorizationStateSchema, MJOAuthClientRegistrationEntity, MJOAuthClientRegistrationSchema, MJOAuthTokenEntity, MJOAuthTokenSchema, MJOpenAppDependencyEntity, MJOpenAppDependencySchema, MJOpenAppEntity, MJOpenAppInstallHistoryEntity, MJOpenAppInstallHistorySchema, MJOpenAppSchema, MJOutputDeliveryTypeEntity, MJOutputDeliveryTypeSchema, MJOutputFormatTypeEntity, MJOutputFormatTypeSchema, MJOutputTriggerTypeEntity, MJOutputTriggerTypeSchema, MJPermissionDomainEntity, MJPermissionDomainSchema, MJProjectEntity, MJProjectSchema, MJPublicLinkEntity, MJPublicLinkSchema, MJQueryCategoryEntity, MJQueryCategorySchema, MJQueryDependencyEntity, MJQueryDependencySchema, MJQueryEntity, MJQueryEntityEntity, MJQueryEntitySchema, MJQueryFieldEntity, MJQueryFieldSchema, MJQueryParameterEntity, MJQueryParameterSchema, MJQueryPermissionEntity, MJQueryPermissionSchema, MJQuerySQLEntity, MJQuerySQLSchema, MJQuerySchema, MJQueueEntity, MJQueueSchema, MJQueueTaskEntity, MJQueueTaskSchema, MJQueueTypeEntity, MJQueueTypeSchema, MJRecommendationEntity, MJRecommendationItemEntity, MJRecommendationItemSchema, MJRecommendationProviderEntity, MJRecommendationProviderSchema, MJRecommendationRunEntity, MJRecommendationRunSchema, MJRecommendationSchema, MJRecordChangeEntity, MJRecordChangeReplayRunEntity, MJRecordChangeReplayRunSchema, MJRecordChangeSchema, MJRecordGeoCodeEntity, MJRecordGeoCodeSchema, MJRecordLinkEntity, MJRecordLinkSchema, MJRecordMergeDeletionLogEntity, MJRecordMergeDeletionLogSchema, MJRecordMergeLogEntity, MJRecordMergeLogSchema, MJReportCategoryEntity, MJReportCategorySchema, MJReportEntity, MJReportSchema, MJReportSnapshotEntity, MJReportSnapshotSchema, MJReportUserStateEntity, MJReportUserStateSchema, MJReportVersionEntity, MJReportVersionSchema, MJResourceLinkEntity, MJResourceLinkSchema, MJResourcePermissionEntity, MJResourcePermissionEntityExtended, MJResourcePermissionSchema, MJResourceTypeEntity, MJResourceTypeSchema, MJRoleEntity, MJRoleSchema, MJRowLevelSecurityFilterEntity, MJRowLevelSecurityFilterSchema, MJSQLDialectEntity, MJSQLDialectSchema, MJScheduledActionEntity, MJScheduledActionEntityExtended, MJScheduledActionParamEntity, MJScheduledActionParamSchema, MJScheduledActionSchema, MJScheduledJobEntity, MJScheduledJobRunEntity, MJScheduledJobRunSchema, MJScheduledJobSchema, MJScheduledJobTypeEntity, MJScheduledJobTypeSchema, MJSchemaInfoEntity, MJSchemaInfoSchema, MJSearchExecutionLogEntity, MJSearchExecutionLogSchema, MJSearchProviderEntity, MJSearchProviderSchema, MJSearchScopeEntity, MJSearchScopeEntityEntity, MJSearchScopeEntitySchema, MJSearchScopeExternalIndexEntity, MJSearchScopeExternalIndexSchema, MJSearchScopePermissionEntity, MJSearchScopePermissionSchema, MJSearchScopeProviderEntity, MJSearchScopeProviderSchema, MJSearchScopeSchema, MJSearchScopeStorageAccountEntity, MJSearchScopeStorageAccountSchema, MJSearchScopeTestQueryEntity, MJSearchScopeTestQuerySchema, 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, MJUserApplicationEntity, MJUserApplicationEntityEntity, MJUserApplicationEntitySchema, MJUserApplicationSchema, MJUserEntity, MJUserFavoriteEntity, MJUserFavoriteSchema, MJUserNotificationEntity, MJUserNotificationPreferenceEntity, MJUserNotificationPreferenceSchema, MJUserNotificationSchema, MJUserNotificationTypeEntity, MJUserNotificationTypeSchema, MJUserRecordLogEntity, MJUserRecordLogSchema, MJUserRoleEntity, MJUserRoleSchema, MJUserSchema, MJUserSettingEntity, MJUserSettingSchema, MJUserViewCategoryEntity, MJUserViewCategorySchema, MJUserViewEntity, MJUserViewEntityExtended, MJUserViewRunDetailEntity, MJUserViewRunDetailSchema, MJUserViewRunEntity, MJUserViewRunSchema, MJUserViewSchema, MJVectorDatabaseEntity, MJVectorDatabaseSchema, MJVectorIndexEntity, MJVectorIndexSchema, MJVersionInstallationEntity, MJVersionInstallationSchema, MJVersionLabelEntity, MJVersionLabelItemEntity, MJVersionLabelItemSchema, MJVersionLabelRestoreEntity, MJVersionLabelRestoreSchema, MJVersionLabelSchema, MJWorkflowEngineEntity, MJWorkflowEngineSchema, MJWorkflowEntity, MJWorkflowRunEntity, MJWorkflowRunSchema, MJWorkflowSchema, MJWorkspaceEntity, MJWorkspaceItemEntity, MJWorkspaceItemSchema, MJWorkspaceSchema, PERMISSION_DOMAIN_ICONS, PERMISSION_DOMAIN_ICON_FALLBACK, PermissionEngine, QueryEngine, QueryPermissionProvider, RegisterShareNotificationHandler, ResolveArtifactTypeByMime, ResourceData, ResourcePermissionEngine, ResourcePermissionProvider, SearchEngineBase, TypeTablesCache, UserInfoEngine, UserViewEngine, ViewColumnInfo, ViewFilterInfo, ViewFilterLogicInfo, ViewGridState, ViewSortDirectionInfo, ViewSortInfo, assertCallerMayCreateShare, buildActionsSummary, checkShareManagePermission, dispatchShareNotificationAfterSave, loadModule, parseConversationDetailComplete
54513
+ // UNUSED EXPORTS: AIAgentPermissionProvider, AccessControlRuleProvider, ApplicationRolePermissionProvider, ArtifactExtractor, ArtifactMetadataEngine, ArtifactPermissionProvider, AuditLogTypeEngine, BuildUnregisteredMimeError, CollectionPermissionProvider, ConversationEngine, CreateShareNotification, DEFAULT_AGGREGATE_DISPLAY, DashboardEngine, DashboardPermissionProvider, DecideInlineStorage, EncryptionEngineBase, EntityPermissionProvider, EntityPermissionType, EntitySaveOptions, ExtractBase64FromDataUrl, FileStorageEngineBase, FindArtifactTypeConflicts, GeoDataEngine, InstanceConfigEngine, IsTextyMime, KnowledgeHubMetadataEngine, LoadMJAccessControlRuleEntityExtended, LoadMJArtifactPermissionEntityExtended, LoadMJCollectionPermissionEntityExtended, LoadMJConversationDetailEntityExtended, LoadMJDashboardPermissionEntityExtended, LoadPermissionEntityExtensions, LoadPermissionProviders, MCPEngine, MJAIActionEntity, MJAIActionSchema, MJAIAgentActionEntity, MJAIAgentActionSchema, MJAIAgentArtifactTypeEntity, MJAIAgentArtifactTypeSchema, MJAIAgentCategoryEntity, MJAIAgentCategorySchema, MJAIAgentClientToolEntity, MJAIAgentClientToolSchema, MJAIAgentConfigurationEntity, MJAIAgentConfigurationSchema, MJAIAgentDataSourceEntity, MJAIAgentDataSourceSchema, MJAIAgentEntity, MJAIAgentExampleEntity, MJAIAgentExampleSchema, MJAIAgentLearningCycleEntity, MJAIAgentLearningCycleSchema, MJAIAgentModalityEntity, MJAIAgentModalitySchema, MJAIAgentModelEntity, MJAIAgentModelSchema, MJAIAgentNoteEntity, MJAIAgentNoteSchema, MJAIAgentNoteTypeEntity, MJAIAgentNoteTypeSchema, MJAIAgentPermissionEntity, MJAIAgentPermissionSchema, MJAIAgentPromptEntity, MJAIAgentPromptSchema, MJAIAgentRelationshipEntity, MJAIAgentRelationshipSchema, MJAIAgentRequestEntity, MJAIAgentRequestSchema, MJAIAgentRequestTypeEntity, MJAIAgentRequestTypeSchema, MJAIAgentRunEntity, MJAIAgentRunMediaEntity, MJAIAgentRunMediaSchema, MJAIAgentRunSchema, MJAIAgentRunStepEntity, MJAIAgentRunStepSchema, MJAIAgentSchema, MJAIAgentSearchScopeEntity, MJAIAgentSearchScopeSchema, MJAIAgentStepEntity, MJAIAgentStepPathEntity, MJAIAgentStepPathSchema, MJAIAgentStepSchema, MJAIAgentTypeEntity, MJAIAgentTypeSchema, MJAIArchitectureEntity, MJAIArchitectureSchema, MJAIClientToolDefinitionEntity, MJAIClientToolDefinitionSchema, MJAIConfigurationEntity, MJAIConfigurationParamEntity, MJAIConfigurationParamSchema, MJAIConfigurationSchema, MJAICredentialBindingEntity, MJAICredentialBindingSchema, MJAIModalityEntity, MJAIModalitySchema, MJAIModelActionEntity, MJAIModelActionSchema, MJAIModelArchitectureEntity, MJAIModelArchitectureSchema, MJAIModelCostEntity, MJAIModelCostSchema, MJAIModelEntity, MJAIModelModalityEntity, MJAIModelModalitySchema, MJAIModelPriceTypeEntity, MJAIModelPriceTypeSchema, MJAIModelPriceUnitTypeEntity, MJAIModelPriceUnitTypeSchema, MJAIModelSchema, MJAIModelTypeEntity, MJAIModelTypeSchema, MJAIModelVendorEntity, MJAIModelVendorSchema, MJAIPromptCategoryEntity, MJAIPromptCategorySchema, MJAIPromptEntity, MJAIPromptModelEntity, MJAIPromptModelSchema, MJAIPromptRunEntity, MJAIPromptRunMediaEntity, MJAIPromptRunMediaSchema, MJAIPromptRunSchema, MJAIPromptSchema, MJAIPromptTypeEntity, MJAIPromptTypeSchema, MJAIResultCacheEntity, MJAIResultCacheSchema, MJAIVendorEntity, MJAIVendorSchema, MJAIVendorTypeDefinitionEntity, MJAIVendorTypeDefinitionSchema, MJAIVendorTypeEntity, MJAIVendorTypeSchema, MJAPIApplicationEntity, MJAPIApplicationSchema, MJAPIApplicationScopeEntity, MJAPIApplicationScopeSchema, MJAPIKeyApplicationEntity, MJAPIKeyApplicationSchema, MJAPIKeyEntity, MJAPIKeySchema, MJAPIKeyScopeEntity, MJAPIKeyScopeSchema, MJAPIKeyUsageLogEntity, MJAPIKeyUsageLogSchema, MJAPIScopeEntity, MJAPIScopeSchema, MJAccessControlRuleEntity, 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, 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, MJContentItemDuplicateEntity, MJContentItemDuplicateSchema, MJContentItemEntity, MJContentItemSchema, MJContentItemTagEntity, MJContentItemTagSchema, MJContentProcessRunDetailEntity, MJContentProcessRunDetailSchema, MJContentProcessRunEntity, MJContentProcessRunPromptRunEntity, MJContentProcessRunPromptRunSchema, MJContentProcessRunSchema, MJContentSourceEntity, MJContentSourceParamEntity, MJContentSourceParamSchema, MJContentSourceSchema, MJContentSourceTypeEntity, MJContentSourceTypeParamEntity, MJContentSourceTypeParamSchema, MJContentSourceTypeSchema, MJContentTypeAttributeEntity, MJContentTypeAttributeSchema, MJContentTypeEntity, MJContentTypeSchema, MJConversationArtifactEntity, MJConversationArtifactPermissionEntity, MJConversationArtifactPermissionSchema, MJConversationArtifactSchema, MJConversationArtifactVersionEntity, MJConversationArtifactVersionSchema, MJConversationDetailArtifactEntity, MJConversationDetailArtifactSchema, MJConversationDetailAttachmentEntity, MJConversationDetailAttachmentSchema, MJConversationDetailEntity, MJConversationDetailEntityExtended, MJConversationDetailRatingEntity, MJConversationDetailRatingSchema, MJConversationDetailSchema, MJConversationEntity, MJConversationSchema, 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, MJEntityOrganicKeyEntity, MJEntityOrganicKeyRelatedEntityEntity, MJEntityOrganicKeyRelatedEntitySchema, MJEntityOrganicKeySchema, MJEntityPermissionEntity, MJEntityPermissionSchema, MJEntityRecordDocumentEntity, MJEntityRecordDocumentSchema, MJEntityRelationshipDisplayComponentEntity, MJEntityRelationshipDisplayComponentSchema, MJEntityRelationshipEntity, MJEntityRelationshipSchema, MJEntitySchema, MJEntitySettingEntity, MJEntitySettingSchema, MJEnvironmentEntity, MJEnvironmentEntityExtended, MJEnvironmentSchema, MJErrorLogEntity, MJErrorLogSchema, MJExplorerNavigationItemEntity, MJExplorerNavigationItemSchema, MJFileCategoryEntity, MJFileCategorySchema, MJFileEntity, MJFileEntityRecordLinkEntity, MJFileEntityRecordLinkSchema, MJFileSchema, MJFileStorageAccountEntity, MJFileStorageAccountPermissionEntity, MJFileStorageAccountPermissionSchema, MJFileStorageAccountSchema, MJFileStorageProviderEntity, MJFileStorageProviderSchema, MJGeneratedCodeCategoryEntity, MJGeneratedCodeCategorySchema, MJGeneratedCodeEntity, MJGeneratedCodeSchema, MJInstanceConfigurationEntity, MJInstanceConfigurationSchema, MJIntegrationEntity, MJIntegrationObjectEntity, MJIntegrationObjectFieldEntity, MJIntegrationObjectFieldSchema, MJIntegrationObjectSchema, MJIntegrationSchema, MJIntegrationSourceTypeEntity, MJIntegrationSourceTypeSchema, MJIntegrationURLFormatEntity, MJIntegrationURLFormatSchema, MJKnowledgeHubSavedSearchEntity, MJKnowledgeHubSavedSearchSchema, MJLibraryEntity, MJLibraryItemEntity, MJLibraryItemSchema, MJLibrarySchema, MJListCategoryEntity, MJListCategorySchema, MJListDetailEntity, MJListDetailEntityExtended, MJListDetailSchema, MJListEntity, MJListInvitationEntity, MJListInvitationSchema, MJListSchema, MJListShareEntity, MJListShareSchema, MJMCPServerConnectionEntity, MJMCPServerConnectionPermissionEntity, MJMCPServerConnectionPermissionSchema, MJMCPServerConnectionSchema, MJMCPServerConnectionToolEntity, MJMCPServerConnectionToolSchema, MJMCPServerEntity, MJMCPServerSchema, MJMCPServerToolEntity, MJMCPServerToolSchema, MJMCPToolExecutionLogEntity, MJMCPToolExecutionLogSchema, MJMCPToolFavoriteEntity, MJMCPToolFavoriteSchema, MJOAuthAuthServerMetadataCacheEntity, MJOAuthAuthServerMetadataCacheSchema, MJOAuthAuthorizationStateEntity, MJOAuthAuthorizationStateSchema, MJOAuthClientRegistrationEntity, MJOAuthClientRegistrationSchema, MJOAuthTokenEntity, MJOAuthTokenSchema, MJOpenAppDependencyEntity, MJOpenAppDependencySchema, MJOpenAppEntity, MJOpenAppInstallHistoryEntity, MJOpenAppInstallHistorySchema, MJOpenAppSchema, MJOutputDeliveryTypeEntity, MJOutputDeliveryTypeSchema, MJOutputFormatTypeEntity, MJOutputFormatTypeSchema, MJOutputTriggerTypeEntity, MJOutputTriggerTypeSchema, MJPermissionDomainEntity, MJPermissionDomainSchema, MJProjectEntity, MJProjectSchema, MJPublicLinkEntity, MJPublicLinkSchema, MJQueryCategoryEntity, MJQueryCategorySchema, MJQueryDependencyEntity, MJQueryDependencySchema, MJQueryEntity, MJQueryEntityEntity, MJQueryEntitySchema, MJQueryFieldEntity, MJQueryFieldSchema, MJQueryParameterEntity, MJQueryParameterSchema, MJQueryPermissionEntity, MJQueryPermissionSchema, MJQuerySQLEntity, MJQuerySQLSchema, MJQuerySchema, MJQueueEntity, MJQueueSchema, MJQueueTaskEntity, MJQueueTaskSchema, MJQueueTypeEntity, MJQueueTypeSchema, MJRecommendationEntity, MJRecommendationItemEntity, MJRecommendationItemSchema, MJRecommendationProviderEntity, MJRecommendationProviderSchema, MJRecommendationRunEntity, MJRecommendationRunSchema, MJRecommendationSchema, MJRecordChangeEntity, MJRecordChangeReplayRunEntity, MJRecordChangeReplayRunSchema, MJRecordChangeSchema, MJRecordGeoCodeEntity, MJRecordGeoCodeSchema, MJRecordLinkEntity, MJRecordLinkSchema, MJRecordMergeDeletionLogEntity, MJRecordMergeDeletionLogSchema, MJRecordMergeLogEntity, MJRecordMergeLogSchema, MJReportCategoryEntity, MJReportCategorySchema, MJReportEntity, MJReportSchema, MJReportSnapshotEntity, MJReportSnapshotSchema, MJReportUserStateEntity, MJReportUserStateSchema, MJReportVersionEntity, MJReportVersionSchema, MJResourceLinkEntity, MJResourceLinkSchema, MJResourcePermissionEntity, MJResourcePermissionEntityExtended, MJResourcePermissionSchema, MJResourceTypeEntity, MJResourceTypeSchema, MJRoleEntity, MJRoleSchema, MJRowLevelSecurityFilterEntity, MJRowLevelSecurityFilterSchema, MJSQLDialectEntity, MJSQLDialectSchema, MJScheduledActionEntity, MJScheduledActionEntityExtended, MJScheduledActionParamEntity, MJScheduledActionParamSchema, MJScheduledActionSchema, MJScheduledJobEntity, MJScheduledJobRunEntity, MJScheduledJobRunSchema, MJScheduledJobSchema, MJScheduledJobTypeEntity, MJScheduledJobTypeSchema, MJSchemaInfoEntity, MJSchemaInfoSchema, MJSearchExecutionLogEntity, MJSearchExecutionLogSchema, MJSearchProviderEntity, MJSearchProviderSchema, MJSearchScopeEntity, MJSearchScopeEntityEntity, MJSearchScopeEntitySchema, MJSearchScopeExternalIndexEntity, MJSearchScopeExternalIndexSchema, MJSearchScopePermissionEntity, MJSearchScopePermissionSchema, MJSearchScopeProviderEntity, MJSearchScopeProviderSchema, MJSearchScopeSchema, MJSearchScopeStorageAccountEntity, MJSearchScopeStorageAccountSchema, MJSearchScopeTestQueryEntity, MJSearchScopeTestQuerySchema, 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, MJUserApplicationEntity, MJUserApplicationEntityEntity, MJUserApplicationEntitySchema, MJUserApplicationSchema, MJUserEntity, MJUserFavoriteEntity, MJUserFavoriteSchema, MJUserNotificationEntity, MJUserNotificationPreferenceEntity, MJUserNotificationPreferenceSchema, MJUserNotificationSchema, MJUserNotificationTypeEntity, MJUserNotificationTypeSchema, MJUserRecordLogEntity, MJUserRecordLogSchema, MJUserRoleEntity, MJUserRoleSchema, MJUserSchema, MJUserSettingEntity, MJUserSettingSchema, MJUserViewCategoryEntity, MJUserViewCategorySchema, MJUserViewEntity, MJUserViewEntityExtended, MJUserViewRunDetailEntity, MJUserViewRunDetailSchema, MJUserViewRunEntity, MJUserViewRunSchema, MJUserViewSchema, MJVectorDatabaseEntity, MJVectorDatabaseSchema, MJVectorIndexEntity, MJVectorIndexSchema, MJVersionInstallationEntity, MJVersionInstallationSchema, MJVersionLabelEntity, MJVersionLabelItemEntity, MJVersionLabelItemSchema, MJVersionLabelRestoreEntity, MJVersionLabelRestoreSchema, MJVersionLabelSchema, MJWorkflowEngineEntity, MJWorkflowEngineSchema, MJWorkflowEntity, MJWorkflowRunEntity, MJWorkflowRunSchema, MJWorkflowSchema, MJWorkspaceEntity, MJWorkspaceItemEntity, MJWorkspaceItemSchema, MJWorkspaceSchema, PERMISSION_DOMAIN_ICONS, PERMISSION_DOMAIN_ICON_FALLBACK, PermissionEngine, QueryEngine, QueryPermissionProvider, RegisterShareNotificationHandler, ResolveArtifactTypeByMime, ResourceData, ResourcePermissionEngine, ResourcePermissionProvider, ResourceTypeEngine, SearchEngineBase, TypeTablesCache, UserInfoEngine, UserViewEngine, ViewColumnInfo, ViewFilterInfo, ViewFilterLogicInfo, ViewGridState, ViewSortDirectionInfo, ViewSortInfo, assertCallerMayCreateShare, buildActionsSummary, checkShareManagePermission, dispatchShareNotificationAfterSave, loadModule, parseConversationDetailComplete
54386
54514
 
54387
54515
  // EXTERNAL MODULE: ../../MJCore/dist/index.js + 81 modules
54388
54516
  var dist = __webpack_require__(310);
@@ -58957,9 +59085,9 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
58957
59085
  * zod schema definition for the entity MJ: Artifact Types
58958
59086
  */var MJArtifactTypeSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier"),Name:z.string().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(100)\n * * Description: Display name of the artifact type"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Detailed description of the artifact type"),ContentType:z.string().describe("\n * * Field Name: ContentType\n * * Display Name: Content Type\n * * SQL Data Type: nvarchar(100)\n * * Description: MIME type or content identifier for this artifact type"),IsEnabled:z.boolean().describe("\n * * Field Name: IsEnabled\n * * Display Name: Is Enabled\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Indicates if this artifact type is currently available for use"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ParentID:z.string().nullable().describe("\n * * Field Name: ParentID\n * * Display Name: Parent ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifact Types (vwArtifactTypes.ID)\n * * Description: Parent artifact type ID for hierarchical artifact type organization. Child types inherit ExtractRules from parent but can override."),ExtractRules:z.string().nullable().describe("\n * * Field Name: ExtractRules\n * * Display Name: Extraction Rules\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON array of extraction rules defining how to extract attributes from artifact content. Each rule has: name (string), description (string), type (TypeScript type), standardProperty ('name'|'description'|'displayMarkdown'|'displayHtml'|null), extractor (JavaScript code string). Child types inherit parent rules and can override by name."),DriverClass:z.string().nullable().describe("\n * * Field Name: DriverClass\n * * Display Name: Driver Class\n * * SQL Data Type: nvarchar(255)\n * * Description: Driver class name for the artifact viewer plugin. References Angular component registered with @RegisterClass decorator."),Icon:z.string().nullable().describe("\n * * Field Name: Icon\n * * Display Name: Icon\n * * SQL Data Type: nvarchar(255)\n * * Description: Font Awesome icon class name for displaying this artifact type in the UI (e.g., fa-file-code, fa-chart-line)"),ContentCategory:z.union([z.literal('File'),z.literal('Text')]).describe("\n * * Field Name: ContentCategory\n * * Display Name: Content Category\n * * SQL Data Type: nvarchar(10)\n * * Default Value: Text\n * * Value List Type: List\n * * Possible Values \n * * File\n * * Text\n * * Description: Classifies whether this artifact type stores text content ('Text', the default for all existing types) or a binary file in MJStorage ('File'). Used by AgentRunner and viewer components to route file-based artifacts correctly."),ToolLibraryClass:z.string().nullable().describe("\n * * Field Name: ToolLibraryClass\n * * Display Name: Tool Library Class\n * * SQL Data Type: nvarchar(100)\n * * Description: Class name for the BaseArtifactToolLibrary subclass that provides type-specific artifact exploration tools for agents. Resolved via ClassFactory. When NULL, ArtifactToolManager uses name-based fallback resolution."),Priority:z.number().describe("\n * * Field Name: Priority\n * * Display Name: Priority\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Deterministic tiebreaker when multiple Artifact Types match the same MIME pattern. Higher values win. Within a specificity tier (exact > subtype-wildcard), the resolver sorts by Priority desc, then SystemSupplied = false beats SystemSupplied = true, then lowest ID wins."),DefaultDeliveryMode:z.union([z.literal('Inline'),z.literal('ToolsOnly')]).describe("\n * * Field Name: DefaultDeliveryMode\n * * Display Name: Default Delivery Mode\n * * SQL Data Type: nvarchar(20)\n * * Default Value: ToolsOnly\n * * Value List Type: List\n * * Possible Values \n * * Inline\n * * ToolsOnly\n * * Description: How artifacts of this type are delivered to the LLM by default. Inline: emitted as an inline content block (image_url, audio_url, small text, etc.) when the model supports the modality and the size is under the inline cap. ToolsOnly: never inlined; the agent reaches the bytes only through tool calls (get_full, library-specific tools). Per-instance override is one-way via ConversationArtifactVersion.ForceToolsOnly \u2014 an instance can opt out of inline but never opt in when the type default is ToolsOnly."),SystemSupplied:z.boolean().describe("\n * * Field Name: SystemSupplied\n * * Display Name: System Supplied\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: True for Artifact Types shipped as part of the MemberJunction default registry (JSON, PDF, Office variants, Image/Audio/Video, Generic Text, Generic Binary). False for user/org-supplied customizations. Used as a tiebreaker in MIME pattern resolution: user customizations win over shipped defaults at equal Priority."),Parent:z.string().nullable().describe("\n * * Field Name: Parent\n * * Display Name: Parent\n * * SQL Data Type: nvarchar(100)"),RootParentID:z.string().nullable().describe("\n * * Field Name: RootParentID\n * * Display Name: Root Parent ID\n * * SQL Data Type: uniqueidentifier")});/**
58959
59087
  * zod schema definition for the entity MJ: Artifact Uses
58960
- */var MJArtifactUseSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ArtifactVersionID:z.string().describe("\n * * Field Name: ArtifactVersionID\n * * Display Name: Artifact Version ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifact Versions (vwArtifactVersions.ID)\n * * Description: The specific version of the artifact being used."),UserID:z.string().describe("\n * * Field Name: UserID\n * * Display Name: User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)\n * * Description: The user performing the action."),UsageType:z.union([z.literal('Exported'),z.literal('Opened'),z.literal('Saved'),z.literal('Shared'),z.literal('Viewed')]).describe("\n * * Field Name: UsageType\n * * Display Name: Usage Type\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * Exported\n * * Opened\n * * Saved\n * * Shared\n * * Viewed\n * * Description: Type of usage: Viewed (artifact displayed), Opened (artifact accessed), Shared (artifact shared with others), Saved (artifact bookmarked), or Exported (artifact downloaded)."),UsageContext:z.string().nullable().describe("\n * * Field Name: UsageContext\n * * Display Name: Usage Context\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Optional JSON context with additional metadata about the usage event (e.g., source page, referrer, device info)."),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ArtifactVersion:z.string().nullable().describe("\n * * Field Name: ArtifactVersion\n * * Display Name: Artifact Version\n * * SQL Data Type: nvarchar(255)"),User:z.string().describe("\n * * Field Name: User\n * * Display Name: User\n * * SQL Data Type: nvarchar(100)")});/**
59088
+ */var MJArtifactUseSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ArtifactVersionID:z.string().describe("\n * * Field Name: ArtifactVersionID\n * * Display Name: Artifact Version ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifact Versions (vwArtifactVersions.ID)\n * * Description: The specific version of the artifact being used."),UserID:z.string().describe("\n * * Field Name: UserID\n * * Display Name: User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)\n * * Description: The user performing the action."),UsageType:z.union([z.literal('Exported'),z.literal('Opened'),z.literal('Saved'),z.literal('Shared'),z.literal('Viewed')]).describe("\n * * Field Name: UsageType\n * * Display Name: Usage Type\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * Exported\n * * Opened\n * * Saved\n * * Shared\n * * Viewed\n * * Description: Type of usage: Viewed (artifact displayed), Opened (artifact accessed), Shared (artifact shared with others), Saved (artifact bookmarked), or Exported (artifact downloaded)."),UsageContext:z.string().nullable().describe("\n * * Field Name: UsageContext\n * * Display Name: Usage Context\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Optional JSON context with additional metadata about the usage event (e.g., source page, referrer, device info)."),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ArtifactVersion:z.number().describe("\n * * Field Name: ArtifactVersion\n * * Display Name: Artifact Version\n * * SQL Data Type: int"),User:z.string().describe("\n * * Field Name: User\n * * Display Name: User\n * * SQL Data Type: nvarchar(100)")});/**
58961
59089
  * zod schema definition for the entity MJ: Artifact Version Attributes
58962
- */var MJArtifactVersionAttributeSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ArtifactVersionID:z.string().describe("\n * * Field Name: ArtifactVersionID\n * * Display Name: Artifact Version ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifact Versions (vwArtifactVersions.ID)\n * * Description: The artifact version this attribute belongs to"),Name:z.string().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(255)\n * * Description: Name of the extracted attribute (matches ExtractRule.name)"),Type:z.string().describe("\n * * Field Name: Type\n * * Display Name: Type\n * * SQL Data Type: nvarchar(500)\n * * Description: TypeScript type definition of the value (e.g., 'string', 'number', 'Date', 'Array<{x: number, y: string}>')"),Value:z.string().nullable().describe("\n * * Field Name: Value\n * * Display Name: Value\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON-serialized extracted value"),StandardProperty:z.union([z.literal('description'),z.literal('displayHtml'),z.literal('displayMarkdown'),z.literal('name')]).nullable().describe("\n * * Field Name: StandardProperty\n * * Display Name: Standard Property\n * * SQL Data Type: nvarchar(50)\n * * Value List Type: List\n * * Possible Values \n * * description\n * * displayHtml\n * * displayMarkdown\n * * name\n * * Description: Maps this attribute to a standard property for UI rendering: 'name', 'description', 'displayMarkdown', 'displayHtml', or NULL for custom attributes"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ArtifactVersion:z.string().nullable().describe("\n * * Field Name: ArtifactVersion\n * * Display Name: Artifact Version\n * * SQL Data Type: nvarchar(255)")});/**
59090
+ */var MJArtifactVersionAttributeSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ArtifactVersionID:z.string().describe("\n * * Field Name: ArtifactVersionID\n * * Display Name: Artifact Version ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifact Versions (vwArtifactVersions.ID)\n * * Description: The artifact version this attribute belongs to"),Name:z.string().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(255)\n * * Description: Name of the extracted attribute (matches ExtractRule.name)"),Type:z.string().describe("\n * * Field Name: Type\n * * Display Name: Type\n * * SQL Data Type: nvarchar(500)\n * * Description: TypeScript type definition of the value (e.g., 'string', 'number', 'Date', 'Array<{x: number, y: string}>')"),Value:z.string().nullable().describe("\n * * Field Name: Value\n * * Display Name: Value\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON-serialized extracted value"),StandardProperty:z.union([z.literal('description'),z.literal('displayHtml'),z.literal('displayMarkdown'),z.literal('name')]).nullable().describe("\n * * Field Name: StandardProperty\n * * Display Name: Standard Property\n * * SQL Data Type: nvarchar(50)\n * * Value List Type: List\n * * Possible Values \n * * description\n * * displayHtml\n * * displayMarkdown\n * * name\n * * Description: Maps this attribute to a standard property for UI rendering: 'name', 'description', 'displayMarkdown', 'displayHtml', or NULL for custom attributes"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ArtifactVersion:z.number().describe("\n * * Field Name: ArtifactVersion\n * * Display Name: Artifact Version\n * * SQL Data Type: int")});/**
58963
59091
  * zod schema definition for the entity MJ: Artifact Versions
58964
59092
  */var MJArtifactVersionSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ArtifactID:z.string().describe("\n * * Field Name: ArtifactID\n * * Display Name: Artifact\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifacts (vwArtifacts.ID)"),VersionNumber:z.number().describe("\n * * Field Name: VersionNumber\n * * Display Name: Version Number\n * * SQL Data Type: int\n * * Description: Sequential version number for this artifact"),Content:z.string().nullable().describe("\n * * Field Name: Content\n * * Display Name: Content\n * * SQL Data Type: nvarchar(MAX)\n * * Description: The content of the artifact at this version"),Configuration:z.string().nullable().describe("\n * * Field Name: Configuration\n * * Display Name: Configuration\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON configuration for this version"),Comments:z.string().nullable().describe("\n * * Field Name: Comments\n * * Display Name: Comments\n * * SQL Data Type: nvarchar(MAX)\n * * Description: User comments specific to this version"),UserID:z.string().describe("\n * * Field Name: UserID\n * * Display Name: User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ContentHash:z.string().nullable().describe("\n * * Field Name: ContentHash\n * * Display Name: Content Hash\n * * SQL Data Type: nvarchar(500)\n * * Description: SHA-256 hash of the Content field for duplicate detection and version comparison"),Name:z.string().nullable().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(255)\n * * Description: Name of this artifact version. Can differ from Artifact.Name as it may evolve with versions."),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Description of this artifact version. Can differ from Artifact.Description as it may evolve with versions."),FileID:z.string().nullable().describe("\n * * Field Name: FileID\n * * Display Name: File ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Files (vwFiles.ID)\n * * Description: Foreign key to the MJ: Files entity. When ContentMode is 'File', this references the binary file stored in MJStorage. NULL when ContentMode is 'Text'."),ContentMode:z.union([z.literal('File'),z.literal('Text')]).describe("\n * * Field Name: ContentMode\n * * Display Name: Content Mode\n * * SQL Data Type: nvarchar(10)\n * * Default Value: Text\n * * Value List Type: List\n * * Possible Values \n * * File\n * * Text\n * * Description: Determines how artifact content is stored. 'Text' (default) means the Content column holds the data. 'File' means FileID references a binary file in MJStorage and Content is unused."),MimeType:z.string().nullable().describe("\n * * Field Name: MimeType\n * * Display Name: MIME Type\n * * SQL Data Type: nvarchar(200)\n * * Description: MIME type of the stored file (e.g. application/pdf). Denormalized from the File entity for display without joins. Only populated when ContentMode is 'File'."),FileName:z.string().nullable().describe("\n * * Field Name: FileName\n * * Display Name: File Name\n * * SQL Data Type: nvarchar(500)\n * * Description: Original filename of the stored file (e.g. report.pdf). Denormalized from the File entity for display without joins. Only populated when ContentMode is 'File'."),ContentSizeBytes:z.number().nullable().describe("\n * * Field Name: ContentSizeBytes\n * * Display Name: Content Size (Bytes)\n * * SQL Data Type: bigint\n * * Description: Size of the stored file in bytes. Denormalized for display without loading the file. Only populated when ContentMode is 'File'."),ForceToolsOnly:z.boolean().describe("\n * * Field Name: ForceToolsOnly\n * * Display Name: Force Tools Only\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: One-way override that forces this artifact version to be delivered via tools regardless of the Artifact Type's DefaultDeliveryMode. When true, the resolver never emits an inline content block for this version. There is no inverse override \u2014 an instance cannot be widened from ToolsOnly to Inline. Default false."),Artifact:z.string().describe("\n * * Field Name: Artifact\n * * Display Name: Artifact\n * * SQL Data Type: nvarchar(255)"),User:z.string().describe("\n * * Field Name: User\n * * Display Name: User\n * * SQL Data Type: nvarchar(100)"),File:z.string().nullable().describe("\n * * Field Name: File\n * * Display Name: File\n * * SQL Data Type: nvarchar(500)")});/**
58965
59093
  * zod schema definition for the entity MJ: Artifacts
@@ -58973,7 +59101,7 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
58973
59101
  * zod schema definition for the entity MJ: Authorizations
58974
59102
  */var MJAuthorizationSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ParentID:z.string().nullable().describe("\n * * Field Name: ParentID\n * * Display Name: Parent ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Authorizations (vwAuthorizations.ID)"),Name:z.string().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(100)"),IsActive:z.boolean().describe("\n * * Field Name: IsActive\n * * Display Name: Is Active\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Indicates whether this authorization is currently active and can be granted to users or roles."),UseAuditLog:z.boolean().describe("\n * * Field Name: UseAuditLog\n * * Display Name: Use Audit Log\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When set to 1, Audit Log records are created whenever this authorization is invoked for a user"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: __mj _Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: __mj _Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Parent:z.string().nullable().describe("\n * * Field Name: Parent\n * * Display Name: Parent\n * * SQL Data Type: nvarchar(100)"),RootParentID:z.string().nullable().describe("\n * * Field Name: RootParentID\n * * Display Name: Root Parent ID\n * * SQL Data Type: uniqueidentifier")});/**
58975
59103
  * zod schema definition for the entity MJ: Collection Artifacts
58976
- */var MJCollectionArtifactSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),CollectionID:z.string().describe("\n * * Field Name: CollectionID\n * * Display Name: Collection ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Collections (vwCollections.ID)"),Sequence:z.number().describe("\n * * Field Name: Sequence\n * * Display Name: Sequence\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Sequence number for ordering artifacts within a collection"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ArtifactVersionID:z.string().describe("\n * * Field Name: ArtifactVersionID\n * * Display Name: Artifact Version ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifact Versions (vwArtifactVersions.ID)\n * * Description: Required. Specific version of the artifact saved to this collection. Collections store version-specific artifacts to enable proper version tracking and Links tab filtering."),Collection:z.string().describe("\n * * Field Name: Collection\n * * Display Name: Collection\n * * SQL Data Type: nvarchar(255)"),ArtifactVersion:z.string().nullable().describe("\n * * Field Name: ArtifactVersion\n * * Display Name: Artifact Version\n * * SQL Data Type: nvarchar(255)")});/**
59104
+ */var MJCollectionArtifactSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),CollectionID:z.string().describe("\n * * Field Name: CollectionID\n * * Display Name: Collection ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Collections (vwCollections.ID)"),Sequence:z.number().describe("\n * * Field Name: Sequence\n * * Display Name: Sequence\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Sequence number for ordering artifacts within a collection"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ArtifactVersionID:z.string().describe("\n * * Field Name: ArtifactVersionID\n * * Display Name: Artifact Version ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifact Versions (vwArtifactVersions.ID)\n * * Description: Required. Specific version of the artifact saved to this collection. Collections store version-specific artifacts to enable proper version tracking and Links tab filtering."),Collection:z.string().describe("\n * * Field Name: Collection\n * * Display Name: Collection\n * * SQL Data Type: nvarchar(255)"),ArtifactVersion:z.number().describe("\n * * Field Name: ArtifactVersion\n * * Display Name: Artifact Version\n * * SQL Data Type: int")});/**
58977
59105
  * zod schema definition for the entity MJ: Collection Permissions
58978
59106
  */var MJCollectionPermissionSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),CollectionID:z.string().describe("\n * * Field Name: CollectionID\n * * Display Name: Collection ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Collections (vwCollections.ID)"),UserID:z.string().describe("\n * * Field Name: UserID\n * * Display Name: User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)"),CanRead:z.boolean().describe("\n * * Field Name: CanRead\n * * Display Name: Can Read\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Always 1 - users must have read permission to access a shared collection"),CanShare:z.boolean().describe("\n * * Field Name: CanShare\n * * Display Name: Can Share\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Can share this collection with others (but cannot grant more permissions than they have)"),CanEdit:z.boolean().describe("\n * * Field Name: CanEdit\n * * Display Name: Can Edit\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Can add/remove artifacts to/from this collection"),CanDelete:z.boolean().describe("\n * * Field Name: CanDelete\n * * Display Name: Can Delete\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Can delete the collection, child collections, and artifacts"),SharedByUserID:z.string().nullable().describe("\n * * Field Name: SharedByUserID\n * * Display Name: Shared By User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)\n * * Description: The user who shared this collection (NULL if shared by owner)"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Collection:z.string().describe("\n * * Field Name: Collection\n * * Display Name: Collection\n * * SQL Data Type: nvarchar(255)"),User:z.string().describe("\n * * Field Name: User\n * * Display Name: User\n * * SQL Data Type: nvarchar(100)"),SharedByUser:z.string().nullable().describe("\n * * Field Name: SharedByUser\n * * Display Name: Shared By User\n * * SQL Data Type: nvarchar(100)")});/**
58979
59107
  * zod schema definition for the entity MJ: Collections
@@ -59051,9 +59179,9 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
59051
59179
  * zod schema definition for the entity MJ: Conversation Artifacts
59052
59180
  */var MJConversationArtifactSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),Name:z.string().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(255)\n * * Description: Display name of the artifact"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Extended description of the artifact"),ConversationID:z.string().describe("\n * * Field Name: ConversationID\n * * Display Name: Conversation ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Conversations (vwConversations.ID)\n * * Description: Reference to the conversation this artifact belongs to"),ArtifactTypeID:z.string().describe("\n * * Field Name: ArtifactTypeID\n * * Display Name: Artifact Type ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifact Types (vwArtifactTypes.ID)\n * * Description: Reference to the type of artifact"),SharingScope:z.union([z.literal('Everyone'),z.literal('None'),z.literal('Public'),z.literal('SpecificUsers')]).describe("\n * * Field Name: SharingScope\n * * Display Name: Sharing Scope\n * * SQL Data Type: nvarchar(50)\n * * Value List Type: List\n * * Possible Values \n * * Everyone\n * * None\n * * Public\n * * SpecificUsers\n * * Description: Controls who can view this artifact (None, SpecificUsers, Everyone, Public)"),Comments:z.string().nullable().describe("\n * * Field Name: Comments\n * * Display Name: Comments\n * * SQL Data Type: nvarchar(MAX)\n * * Description: User comments about the artifact"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Conversation:z.string().nullable().describe("\n * * Field Name: Conversation\n * * Display Name: Conversation\n * * SQL Data Type: nvarchar(255)"),ArtifactType:z.string().describe("\n * * Field Name: ArtifactType\n * * Display Name: Artifact Type\n * * SQL Data Type: nvarchar(100)")});/**
59053
59181
  * zod schema definition for the entity MJ: Conversation Detail Artifacts
59054
- */var MJConversationDetailArtifactSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ConversationDetailID:z.string().describe("\n * * Field Name: ConversationDetailID\n * * Display Name: Conversation Detail\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Conversation Details (vwConversationDetails.ID)\n * * Description: Foreign key to ConversationDetail - the conversation message associated with this artifact"),ArtifactVersionID:z.string().describe("\n * * Field Name: ArtifactVersionID\n * * Display Name: Artifact Version\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifact Versions (vwArtifactVersions.ID)\n * * Description: Foreign key to ArtifactVersion - the specific artifact version linked to this conversation message"),Direction:z.union([z.literal('Input'),z.literal('Output')]).describe("\n * * Field Name: Direction\n * * Display Name: Direction\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Output\n * * Value List Type: List\n * * Possible Values \n * * Input\n * * Output\n * * Description: Direction of artifact flow: Input (fed to agent) or Output (produced by agent)"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ConversationDetail:z.string().describe("\n * * Field Name: ConversationDetail\n * * Display Name: Conversation Detail Summary\n * * SQL Data Type: nvarchar(MAX)"),ArtifactVersion:z.string().nullable().describe("\n * * Field Name: ArtifactVersion\n * * Display Name: Artifact Version Summary\n * * SQL Data Type: nvarchar(255)")});/**
59182
+ */var MJConversationDetailArtifactSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ConversationDetailID:z.string().describe("\n * * Field Name: ConversationDetailID\n * * Display Name: Conversation Detail\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Conversation Details (vwConversationDetails.ID)\n * * Description: Foreign key to ConversationDetail - the conversation message associated with this artifact"),ArtifactVersionID:z.string().describe("\n * * Field Name: ArtifactVersionID\n * * Display Name: Artifact Version\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifact Versions (vwArtifactVersions.ID)\n * * Description: Foreign key to ArtifactVersion - the specific artifact version linked to this conversation message"),Direction:z.union([z.literal('Input'),z.literal('Output')]).describe("\n * * Field Name: Direction\n * * Display Name: Direction\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Output\n * * Value List Type: List\n * * Possible Values \n * * Input\n * * Output\n * * Description: Direction of artifact flow: Input (fed to agent) or Output (produced by agent)"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ConversationDetail:z.string().describe("\n * * Field Name: ConversationDetail\n * * Display Name: Conversation Detail Summary\n * * SQL Data Type: nvarchar(MAX)"),ArtifactVersion:z.number().describe("\n * * Field Name: ArtifactVersion\n * * Display Name: Artifact Version Summary\n * * SQL Data Type: int")});/**
59055
59183
  * zod schema definition for the entity MJ: Conversation Detail Attachments
59056
- */var MJConversationDetailAttachmentSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ConversationDetailID:z.string().describe("\n * * Field Name: ConversationDetailID\n * * Display Name: Conversation Detail\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Conversation Details (vwConversationDetails.ID)"),ModalityID:z.string().describe("\n * * Field Name: ModalityID\n * * Display Name: Modality\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Modalities (vwAIModalities.ID)\n * * Description: The modality type of this attachment (Image, Audio, Video, File, etc.). References the AIModality table."),MimeType:z.string().describe("\n * * Field Name: MimeType\n * * Display Name: MIME Type\n * * SQL Data Type: nvarchar(100)\n * * Description: MIME type of the attachment (e.g., image/png, video/mp4, audio/mp3)."),FileName:z.string().nullable().describe("\n * * Field Name: FileName\n * * Display Name: File Name\n * * SQL Data Type: nvarchar(4000)\n * * Description: Original filename of the attachment. Supports long cloud storage paths up to 4000 characters."),FileSizeBytes:z.number().describe("\n * * Field Name: FileSizeBytes\n * * Display Name: File Size (Bytes)\n * * SQL Data Type: int\n * * Description: Size of the attachment in bytes."),Width:z.number().nullable().describe("\n * * Field Name: Width\n * * Display Name: Width\n * * SQL Data Type: int\n * * Description: Width in pixels for images and videos."),Height:z.number().nullable().describe("\n * * Field Name: Height\n * * Display Name: Height\n * * SQL Data Type: int\n * * Description: Height in pixels for images and videos."),DurationSeconds:z.number().nullable().describe("\n * * Field Name: DurationSeconds\n * * Display Name: Duration (Seconds)\n * * SQL Data Type: int\n * * Description: Duration in seconds for audio and video files."),InlineData:z.string().nullable().describe("\n * * Field Name: InlineData\n * * Display Name: Inline Data\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Base64-encoded file data for small attachments stored inline. Mutually exclusive with FileID - exactly one must be populated."),FileID:z.string().nullable().describe("\n * * Field Name: FileID\n * * Display Name: File ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Files (vwFiles.ID)\n * * Description: Reference to File entity for large attachments stored in MJStorage. Mutually exclusive with InlineData - exactly one must be populated."),DisplayOrder:z.number().describe("\n * * Field Name: DisplayOrder\n * * Display Name: Display Order\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Display order for multiple attachments in a message. Lower numbers appear first."),ThumbnailBase64:z.string().nullable().describe("\n * * Field Name: ThumbnailBase64\n * * Display Name: Thumbnail\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Base64-encoded thumbnail image for quick preview display. Max 200px on longest side."),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Description of the attachment providing context about its content and purpose."),ArtifactVersionID:z.string().nullable().describe("\n * * Field Name: ArtifactVersionID\n * * Display Name: Artifact Version ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifact Versions (vwArtifactVersions.ID)\n * * Description: Foreign key to the ArtifactVersion created alongside this attachment by the storage-unification path. When set, the agent resolver routes via the artifact path (manifest + tool dispatch) and skips inline embedding of the attachment to avoid double-processing. NULL for pre-v5.35 attachment rows authored before storage unification."),ConversationDetail:z.string().describe("\n * * Field Name: ConversationDetail\n * * Display Name: Conversation Detail Record\n * * SQL Data Type: nvarchar(MAX)"),Modality:z.string().describe("\n * * Field Name: Modality\n * * Display Name: Modality Record\n * * SQL Data Type: nvarchar(50)"),File:z.string().nullable().describe("\n * * Field Name: File\n * * Display Name: File Record\n * * SQL Data Type: nvarchar(500)"),ArtifactVersion:z.string().nullable().describe("\n * * Field Name: ArtifactVersion\n * * Display Name: Artifact Version Record\n * * SQL Data Type: nvarchar(255)")});/**
59184
+ */var MJConversationDetailAttachmentSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ConversationDetailID:z.string().describe("\n * * Field Name: ConversationDetailID\n * * Display Name: Conversation Detail\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Conversation Details (vwConversationDetails.ID)"),ModalityID:z.string().describe("\n * * Field Name: ModalityID\n * * Display Name: Modality\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Modalities (vwAIModalities.ID)\n * * Description: The modality type of this attachment (Image, Audio, Video, File, etc.). References the AIModality table."),MimeType:z.string().describe("\n * * Field Name: MimeType\n * * Display Name: MIME Type\n * * SQL Data Type: nvarchar(100)\n * * Description: MIME type of the attachment (e.g., image/png, video/mp4, audio/mp3)."),FileName:z.string().nullable().describe("\n * * Field Name: FileName\n * * Display Name: File Name\n * * SQL Data Type: nvarchar(4000)\n * * Description: Original filename of the attachment. Supports long cloud storage paths up to 4000 characters."),FileSizeBytes:z.number().describe("\n * * Field Name: FileSizeBytes\n * * Display Name: File Size (Bytes)\n * * SQL Data Type: int\n * * Description: Size of the attachment in bytes."),Width:z.number().nullable().describe("\n * * Field Name: Width\n * * Display Name: Width\n * * SQL Data Type: int\n * * Description: Width in pixels for images and videos."),Height:z.number().nullable().describe("\n * * Field Name: Height\n * * Display Name: Height\n * * SQL Data Type: int\n * * Description: Height in pixels for images and videos."),DurationSeconds:z.number().nullable().describe("\n * * Field Name: DurationSeconds\n * * Display Name: Duration (Seconds)\n * * SQL Data Type: int\n * * Description: Duration in seconds for audio and video files."),InlineData:z.string().nullable().describe("\n * * Field Name: InlineData\n * * Display Name: Inline Data\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Base64-encoded file data for small attachments stored inline. Mutually exclusive with FileID - exactly one must be populated."),FileID:z.string().nullable().describe("\n * * Field Name: FileID\n * * Display Name: File ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Files (vwFiles.ID)\n * * Description: Reference to File entity for large attachments stored in MJStorage. Mutually exclusive with InlineData - exactly one must be populated."),DisplayOrder:z.number().describe("\n * * Field Name: DisplayOrder\n * * Display Name: Display Order\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Display order for multiple attachments in a message. Lower numbers appear first."),ThumbnailBase64:z.string().nullable().describe("\n * * Field Name: ThumbnailBase64\n * * Display Name: Thumbnail\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Base64-encoded thumbnail image for quick preview display. Max 200px on longest side."),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Description of the attachment providing context about its content and purpose."),ArtifactVersionID:z.string().nullable().describe("\n * * Field Name: ArtifactVersionID\n * * Display Name: Artifact Version ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifact Versions (vwArtifactVersions.ID)\n * * Description: Foreign key to the ArtifactVersion created alongside this attachment by the storage-unification path. When set, the agent resolver routes via the artifact path (manifest + tool dispatch) and skips inline embedding of the attachment to avoid double-processing. NULL for pre-v5.35 attachment rows authored before storage unification."),ConversationDetail:z.string().describe("\n * * Field Name: ConversationDetail\n * * Display Name: Conversation Detail Record\n * * SQL Data Type: nvarchar(MAX)"),Modality:z.string().describe("\n * * Field Name: Modality\n * * Display Name: Modality Record\n * * SQL Data Type: nvarchar(50)"),File:z.string().nullable().describe("\n * * Field Name: File\n * * Display Name: File Record\n * * SQL Data Type: nvarchar(500)"),ArtifactVersion:z.number().nullable().describe("\n * * Field Name: ArtifactVersion\n * * Display Name: Artifact Version Record\n * * SQL Data Type: int")});/**
59057
59185
  * zod schema definition for the entity MJ: Conversation Detail Ratings
59058
59186
  */var MJConversationDetailRatingSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ConversationDetailID:z.string().describe("\n * * Field Name: ConversationDetailID\n * * Display Name: Conversation Detail\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Conversation Details (vwConversationDetails.ID)\n * * Description: The conversation message being rated."),UserID:z.string().describe("\n * * Field Name: UserID\n * * Display Name: User\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)\n * * Description: The user providing the rating."),Rating:z.number().describe("\n * * Field Name: Rating\n * * Display Name: Rating\n * * SQL Data Type: int\n * * Description: Rating on a 1-10 scale where 1 is thumbs down and 10 is thumbs up."),Comments:z.string().nullable().describe("\n * * Field Name: Comments\n * * Display Name: Comments\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Optional textual feedback from the user about this message."),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ConversationDetail:z.string().describe("\n * * Field Name: ConversationDetail\n * * Display Name: Conversation Detail\n * * SQL Data Type: nvarchar(MAX)"),User:z.string().describe("\n * * Field Name: User\n * * Display Name: User\n * * SQL Data Type: nvarchar(100)")});/**
59059
59187
  * zod schema definition for the entity MJ: Conversation Details
@@ -59205,7 +59333,7 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
59205
59333
  * zod schema definition for the entity MJ: List Shares
59206
59334
  */var MJListShareSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()\n * * Description: Unique identifier for the share record."),ListID:z.string().describe("\n * * Field Name: ListID\n * * Display Name: List\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Lists (vwLists.ID)\n * * Description: The list being shared."),UserID:z.string().describe("\n * * Field Name: UserID\n * * Display Name: User\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)\n * * Description: The user receiving access to the list."),Role:z.union([z.literal('Editor'),z.literal('Viewer')]).describe("\n * * Field Name: Role\n * * Display Name: Role\n * * SQL Data Type: nvarchar(50)\n * * Value List Type: List\n * * Possible Values \n * * Editor\n * * Viewer\n * * Description: The permission level granted (Editor or Viewer)."),Status:z.union([z.literal('Active'),z.literal('Pending')]).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 * * Pending\n * * Description: Current status of the share (Active or Pending)."),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),List:z.string().describe("\n * * Field Name: List\n * * Display Name: List Name\n * * SQL Data Type: nvarchar(100)"),User:z.string().describe("\n * * Field Name: User\n * * Display Name: User Name\n * * SQL Data Type: nvarchar(100)")});/**
59207
59335
  * zod schema definition for the entity MJ: Lists
59208
- */var MJListSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),Name:z.string().describe("\n * * Field Name: Name\n * * SQL Data Type: nvarchar(100)"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * SQL Data Type: nvarchar(MAX)"),EntityID:z.string().describe("\n * * Field Name: EntityID\n * * Display Name: Entity ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)"),UserID:z.string().describe("\n * * Field Name: UserID\n * * Display Name: User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)"),CategoryID:z.string().nullable().describe("\n * * Field Name: CategoryID\n * * Display Name: Category ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: List Categories (vwListCategories.ID)"),ExternalSystemRecordID:z.string().nullable().describe("\n * * Field Name: ExternalSystemRecordID\n * * Display Name: External System Record ID\n * * SQL Data Type: nvarchar(100)\n * * Description: Identifier for this list in an external system, used for synchronization."),CompanyIntegrationID:z.string().nullable().describe("\n * * Field Name: CompanyIntegrationID\n * * Display Name: Company Integration ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Company Integrations (vwCompanyIntegrations.ID)"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Entity:z.string().describe("\n * * Field Name: Entity\n * * Display Name: Entity\n * * SQL Data Type: nvarchar(255)"),User:z.string().describe("\n * * Field Name: User\n * * Display Name: User\n * * SQL Data Type: nvarchar(100)"),Category:z.string().nullable().describe("\n * * Field Name: Category\n * * Display Name: Category\n * * SQL Data Type: nvarchar(100)"),CompanyIntegration:z.string().nullable().describe("\n * * Field Name: CompanyIntegration\n * * Display Name: Company Integration\n * * SQL Data Type: nvarchar(255)")});/**
59336
+ */var MJListSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),Name:z.string().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(100)"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)"),EntityID:z.string().describe("\n * * Field Name: EntityID\n * * Display Name: Entity\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)"),UserID:z.string().describe("\n * * Field Name: UserID\n * * Display Name: User\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)"),CategoryID:z.string().nullable().describe("\n * * Field Name: CategoryID\n * * Display Name: Category\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: List Categories (vwListCategories.ID)"),ExternalSystemRecordID:z.string().nullable().describe("\n * * Field Name: ExternalSystemRecordID\n * * Display Name: External System Record ID\n * * SQL Data Type: nvarchar(100)\n * * Description: Identifier for this list in an external system, used for synchronization."),CompanyIntegrationID:z.string().nullable().describe("\n * * Field Name: CompanyIntegrationID\n * * Display Name: Company Integration\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Company Integrations (vwCompanyIntegrations.ID)"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),SourceViewID:z.string().nullable().describe("\n * * Field Name: SourceViewID\n * * Display Name: Source View\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: User Views (vwUserViews.ID)\n * * Description: Optional ID of the User View this list was materialized from. NULL for hand-built lists. When set, the list can be refreshed against this view via ListOperations.RefreshFromSource."),SourceFilterSnapshot:z.string().nullable().describe("\n * * Field Name: SourceFilterSnapshot\n * * Display Name: Source Filter Snapshot\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON snapshot of the source filter at materialization time. When UseSnapshot=1, refreshes re-apply this snapshot rather than re-reading the live source view. Null when no snapshot was captured."),LastRefreshedAt:z.date().nullable().describe("\n * * Field Name: LastRefreshedAt\n * * Display Name: Last Refreshed At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp (UTC) of the most recent successful RefreshFromSource. Null when the list has never been refreshed."),LastRefreshedByUserID:z.string().nullable().describe("\n * * Field Name: LastRefreshedByUserID\n * * Display Name: Last Refreshed By User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)\n * * Description: User who triggered the most recent successful RefreshFromSource. Null when the list has never been refreshed."),RefreshMode:z.union([z.literal('Additive'),z.literal('Sync')]).describe("\n * * Field Name: RefreshMode\n * * Display Name: Refresh Mode\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Additive\n * * Value List Type: List\n * * Possible Values \n * * Additive\n * * Sync\n * * Description: Default refresh mode for this list. Additive only adds new members; Sync reconciles in both directions (may remove members no longer in the source \u2014 requires explicit drop-confirmation)."),UseSnapshot:z.boolean().describe("\n * * Field Name: UseSnapshot\n * * Display Name: Use Snapshot\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When 1, RefreshFromSource uses SourceFilterSnapshot as the source. When 0 (default), it re-reads the live SourceView."),Entity:z.string().describe("\n * * Field Name: Entity\n * * Display Name: Entity Name\n * * SQL Data Type: nvarchar(255)"),User:z.string().describe("\n * * Field Name: User\n * * Display Name: User Name\n * * SQL Data Type: nvarchar(100)"),Category:z.string().nullable().describe("\n * * Field Name: Category\n * * Display Name: Category Name\n * * SQL Data Type: nvarchar(100)"),CompanyIntegration:z.string().nullable().describe("\n * * Field Name: CompanyIntegration\n * * Display Name: Company Integration Name\n * * SQL Data Type: nvarchar(255)"),SourceView:z.string().nullable().describe("\n * * Field Name: SourceView\n * * Display Name: Source View Name\n * * SQL Data Type: nvarchar(100)"),LastRefreshedByUser:z.string().nullable().describe("\n * * Field Name: LastRefreshedByUser\n * * Display Name: Last Refreshed By User\n * * SQL Data Type: nvarchar(100)")});/**
59209
59337
  * zod schema definition for the entity MJ: MCP Server Connection Permissions
59210
59338
  */var MJMCPServerConnectionPermissionSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),MCPServerConnectionID:z.string().describe("\n * * Field Name: MCPServerConnectionID\n * * Display Name: MCP Server Connection ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: MCP Server Connections (vwMCPServerConnections.ID)"),UserID:z.string().nullable().describe("\n * * Field Name: UserID\n * * Display Name: User\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)\n * * Description: FK to User (mutually exclusive with RoleID)"),RoleID:z.string().nullable().describe("\n * * Field Name: RoleID\n * * Display Name: Role\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Roles (vwRoles.ID)\n * * Description: FK to Role (mutually exclusive with UserID)"),CanExecute:z.boolean().describe("\n * * Field Name: CanExecute\n * * Display Name: Can Execute\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Can invoke tools via this connection"),CanModify:z.boolean().describe("\n * * Field Name: CanModify\n * * Display Name: Can Modify\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Can modify connection settings"),CanViewCredentials:z.boolean().describe("\n * * Field Name: CanViewCredentials\n * * Display Name: Can View Credentials\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Can see credential info (but not decrypt)"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),MCPServerConnection:z.string().describe("\n * * Field Name: MCPServerConnection\n * * Display Name: MCP Server Connection\n * * SQL Data Type: nvarchar(255)"),User:z.string().nullable().describe("\n * * Field Name: User\n * * Display Name: User Name\n * * SQL Data Type: nvarchar(100)"),Role:z.string().nullable().describe("\n * * Field Name: Role\n * * Display Name: Role Name\n * * SQL Data Type: nvarchar(50)")});/**
59211
59339
  * zod schema definition for the entity MJ: MCP Server Connection Tools
@@ -68997,7 +69125,7 @@ _context64.p=1;_context64.n=2;return provider.BeginTransaction();case 2:_context
68997
69125
  */},{key:"__mj_UpdatedAt",get:function get(){return this.Get('__mj_UpdatedAt');}/**
68998
69126
  * * Field Name: ArtifactVersion
68999
69127
  * * Display Name: Artifact Version
69000
- * * SQL Data Type: nvarchar(255)
69128
+ * * SQL Data Type: int
69001
69129
  */},{key:"ArtifactVersion",get:function get(){return this.Get('ArtifactVersion');}/**
69002
69130
  * * Field Name: User
69003
69131
  * * Display Name: User
@@ -69072,7 +69200,7 @@ _context64.p=1;_context64.n=2;return provider.BeginTransaction();case 2:_context
69072
69200
  */},{key:"__mj_UpdatedAt",get:function get(){return this.Get('__mj_UpdatedAt');}/**
69073
69201
  * * Field Name: ArtifactVersion
69074
69202
  * * Display Name: Artifact Version
69075
- * * SQL Data Type: nvarchar(255)
69203
+ * * SQL Data Type: int
69076
69204
  */},{key:"ArtifactVersion",get:function get(){return this.Get('ArtifactVersion');}}]);}(dist/* BaseEntity */.HCJ);MJArtifactVersionAttributeEntity=__decorate([(0,MJGlobal_dist/* RegisterClass */.Y5)(dist/* BaseEntity */.HCJ,'MJ: Artifact Version Attributes')],MJArtifactVersionAttributeEntity);/**
69077
69205
  * MJ: Artifact Versions - strongly typed entity sub-class
69078
69206
  * * Schema: __mj
@@ -69639,7 +69767,7 @@ _context64.p=1;_context64.n=2;return provider.BeginTransaction();case 2:_context
69639
69767
  */},{key:"Collection",get:function get(){return this.Get('Collection');}/**
69640
69768
  * * Field Name: ArtifactVersion
69641
69769
  * * Display Name: Artifact Version
69642
- * * SQL Data Type: nvarchar(255)
69770
+ * * SQL Data Type: int
69643
69771
  */},{key:"ArtifactVersion",get:function get(){return this.Get('ArtifactVersion');}}]);}(dist/* BaseEntity */.HCJ);MJCollectionArtifactEntity=__decorate([(0,MJGlobal_dist/* RegisterClass */.Y5)(dist/* BaseEntity */.HCJ,'MJ: Collection Artifacts')],MJCollectionArtifactEntity);/**
69644
69772
  * MJ: Collection Permissions - strongly typed entity sub-class
69645
69773
  * * Schema: __mj
@@ -73120,7 +73248,7 @@ _context134.p=1;_context134.n=2;return provider.BeginTransaction();case 2:_conte
73120
73248
  */},{key:"ConversationDetail",get:function get(){return this.Get('ConversationDetail');}/**
73121
73249
  * * Field Name: ArtifactVersion
73122
73250
  * * Display Name: Artifact Version Summary
73123
- * * SQL Data Type: nvarchar(255)
73251
+ * * SQL Data Type: int
73124
73252
  */},{key:"ArtifactVersion",get:function get(){return this.Get('ArtifactVersion');}}]);}(dist/* BaseEntity */.HCJ);MJConversationDetailArtifactEntity=__decorate([(0,MJGlobal_dist/* RegisterClass */.Y5)(dist/* BaseEntity */.HCJ,'MJ: Conversation Detail Artifacts')],MJConversationDetailArtifactEntity);/**
73125
73253
  * MJ: Conversation Detail Attachments - strongly typed entity sub-class
73126
73254
  * * Schema: __mj
@@ -73258,7 +73386,7 @@ if(this.InlineData==null&&this.FileID==null){result.Errors.push(new dist/* Valid
73258
73386
  */},{key:"File",get:function get(){return this.Get('File');}/**
73259
73387
  * * Field Name: ArtifactVersion
73260
73388
  * * Display Name: Artifact Version Record
73261
- * * SQL Data Type: nvarchar(255)
73389
+ * * SQL Data Type: int
73262
73390
  */},{key:"ArtifactVersion",get:function get(){return this.Get('ArtifactVersion');}}]);}(dist/* BaseEntity */.HCJ);MJConversationDetailAttachmentEntity=__decorate([(0,MJGlobal_dist/* RegisterClass */.Y5)(dist/* BaseEntity */.HCJ,'MJ: Conversation Detail Attachments')],MJConversationDetailAttachmentEntity);/**
73263
73391
  * MJ: Conversation Detail Ratings - strongly typed entity sub-class
73264
73392
  * * Schema: __mj
@@ -80492,27 +80620,30 @@ var isUserValid=this.Type==="User"&&this.UserID!=null&&this.RoleID==null;var isR
80492
80620
  * @override
80493
80621
  */function(){var _Load202=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee215(ID,EntityRelationshipsToLoad){var compositeKey;return _regenerator().w(function(_context215){while(1)switch(_context215.n){case 0:compositeKey=new dist/* CompositeKey */.BT8();compositeKey.KeyValuePairs.push({FieldName:'ID',Value:ID});_context215.n=1;return _superPropGet(MJListEntity,"InnerLoad",this,3)([compositeKey,EntityRelationshipsToLoad]);case 1:return _context215.a(2,_context215.v);}},_callee215,this);}));function Load(_x418,_x419){return _Load202.apply(this,arguments);}return Load;}()/**
80494
80622
  * * Field Name: ID
80623
+ * * Display Name: ID
80495
80624
  * * SQL Data Type: uniqueidentifier
80496
80625
  * * Default Value: newsequentialid()
80497
80626
  */)},{key:"ID",get:function get(){return this.Get('ID');},set:function set(value){this.Set('ID',value);}/**
80498
80627
  * * Field Name: Name
80628
+ * * Display Name: Name
80499
80629
  * * SQL Data Type: nvarchar(100)
80500
80630
  */},{key:"Name",get:function get(){return this.Get('Name');},set:function set(value){this.Set('Name',value);}/**
80501
80631
  * * Field Name: Description
80632
+ * * Display Name: Description
80502
80633
  * * SQL Data Type: nvarchar(MAX)
80503
80634
  */},{key:"Description",get:function get(){return this.Get('Description');},set:function set(value){this.Set('Description',value);}/**
80504
80635
  * * Field Name: EntityID
80505
- * * Display Name: Entity ID
80636
+ * * Display Name: Entity
80506
80637
  * * SQL Data Type: uniqueidentifier
80507
80638
  * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)
80508
80639
  */},{key:"EntityID",get:function get(){return this.Get('EntityID');},set:function set(value){this.Set('EntityID',value);}/**
80509
80640
  * * Field Name: UserID
80510
- * * Display Name: User ID
80641
+ * * Display Name: User
80511
80642
  * * SQL Data Type: uniqueidentifier
80512
80643
  * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
80513
80644
  */},{key:"UserID",get:function get(){return this.Get('UserID');},set:function set(value){this.Set('UserID',value);}/**
80514
80645
  * * Field Name: CategoryID
80515
- * * Display Name: Category ID
80646
+ * * Display Name: Category
80516
80647
  * * SQL Data Type: uniqueidentifier
80517
80648
  * * Related Entity/Foreign Key: MJ: List Categories (vwListCategories.ID)
80518
80649
  */},{key:"CategoryID",get:function get(){return this.Get('CategoryID');},set:function set(value){this.Set('CategoryID',value);}/**
@@ -80522,7 +80653,7 @@ var isUserValid=this.Type==="User"&&this.UserID!=null&&this.RoleID==null;var isR
80522
80653
  * * Description: Identifier for this list in an external system, used for synchronization.
80523
80654
  */},{key:"ExternalSystemRecordID",get:function get(){return this.Get('ExternalSystemRecordID');},set:function set(value){this.Set('ExternalSystemRecordID',value);}/**
80524
80655
  * * Field Name: CompanyIntegrationID
80525
- * * Display Name: Company Integration ID
80656
+ * * Display Name: Company Integration
80526
80657
  * * SQL Data Type: uniqueidentifier
80527
80658
  * * Related Entity/Foreign Key: MJ: Company Integrations (vwCompanyIntegrations.ID)
80528
80659
  */},{key:"CompanyIntegrationID",get:function get(){return this.Get('CompanyIntegrationID');},set:function set(value){this.Set('CompanyIntegrationID',value);}/**
@@ -80536,22 +80667,68 @@ var isUserValid=this.Type==="User"&&this.UserID!=null&&this.RoleID==null;var isR
80536
80667
  * * SQL Data Type: datetimeoffset
80537
80668
  * * Default Value: getutcdate()
80538
80669
  */},{key:"__mj_UpdatedAt",get:function get(){return this.Get('__mj_UpdatedAt');}/**
80670
+ * * Field Name: SourceViewID
80671
+ * * Display Name: Source View
80672
+ * * SQL Data Type: uniqueidentifier
80673
+ * * Related Entity/Foreign Key: MJ: User Views (vwUserViews.ID)
80674
+ * * Description: Optional ID of the User View this list was materialized from. NULL for hand-built lists. When set, the list can be refreshed against this view via ListOperations.RefreshFromSource.
80675
+ */},{key:"SourceViewID",get:function get(){return this.Get('SourceViewID');},set:function set(value){this.Set('SourceViewID',value);}/**
80676
+ * * Field Name: SourceFilterSnapshot
80677
+ * * Display Name: Source Filter Snapshot
80678
+ * * SQL Data Type: nvarchar(MAX)
80679
+ * * Description: JSON snapshot of the source filter at materialization time. When UseSnapshot=1, refreshes re-apply this snapshot rather than re-reading the live source view. Null when no snapshot was captured.
80680
+ */},{key:"SourceFilterSnapshot",get:function get(){return this.Get('SourceFilterSnapshot');},set:function set(value){this.Set('SourceFilterSnapshot',value);}/**
80681
+ * * Field Name: LastRefreshedAt
80682
+ * * Display Name: Last Refreshed At
80683
+ * * SQL Data Type: datetimeoffset
80684
+ * * Description: Timestamp (UTC) of the most recent successful RefreshFromSource. Null when the list has never been refreshed.
80685
+ */},{key:"LastRefreshedAt",get:function get(){return this.Get('LastRefreshedAt');},set:function set(value){this.Set('LastRefreshedAt',value);}/**
80686
+ * * Field Name: LastRefreshedByUserID
80687
+ * * Display Name: Last Refreshed By User ID
80688
+ * * SQL Data Type: uniqueidentifier
80689
+ * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
80690
+ * * Description: User who triggered the most recent successful RefreshFromSource. Null when the list has never been refreshed.
80691
+ */},{key:"LastRefreshedByUserID",get:function get(){return this.Get('LastRefreshedByUserID');},set:function set(value){this.Set('LastRefreshedByUserID',value);}/**
80692
+ * * Field Name: RefreshMode
80693
+ * * Display Name: Refresh Mode
80694
+ * * SQL Data Type: nvarchar(20)
80695
+ * * Default Value: Additive
80696
+ * * Value List Type: List
80697
+ * * Possible Values
80698
+ * * Additive
80699
+ * * Sync
80700
+ * * Description: Default refresh mode for this list. Additive only adds new members; Sync reconciles in both directions (may remove members no longer in the source — requires explicit drop-confirmation).
80701
+ */},{key:"RefreshMode",get:function get(){return this.Get('RefreshMode');},set:function set(value){this.Set('RefreshMode',value);}/**
80702
+ * * Field Name: UseSnapshot
80703
+ * * Display Name: Use Snapshot
80704
+ * * SQL Data Type: bit
80705
+ * * Default Value: 0
80706
+ * * Description: When 1, RefreshFromSource uses SourceFilterSnapshot as the source. When 0 (default), it re-reads the live SourceView.
80707
+ */},{key:"UseSnapshot",get:function get(){return this.Get('UseSnapshot');},set:function set(value){this.Set('UseSnapshot',value);}/**
80539
80708
  * * Field Name: Entity
80540
- * * Display Name: Entity
80709
+ * * Display Name: Entity Name
80541
80710
  * * SQL Data Type: nvarchar(255)
80542
80711
  */},{key:"Entity",get:function get(){return this.Get('Entity');}/**
80543
80712
  * * Field Name: User
80544
- * * Display Name: User
80713
+ * * Display Name: User Name
80545
80714
  * * SQL Data Type: nvarchar(100)
80546
80715
  */},{key:"User",get:function get(){return this.Get('User');}/**
80547
80716
  * * Field Name: Category
80548
- * * Display Name: Category
80717
+ * * Display Name: Category Name
80549
80718
  * * SQL Data Type: nvarchar(100)
80550
80719
  */},{key:"Category",get:function get(){return this.Get('Category');}/**
80551
80720
  * * Field Name: CompanyIntegration
80552
- * * Display Name: Company Integration
80721
+ * * Display Name: Company Integration Name
80553
80722
  * * SQL Data Type: nvarchar(255)
80554
- */},{key:"CompanyIntegration",get:function get(){return this.Get('CompanyIntegration');}}]);}(dist/* BaseEntity */.HCJ);MJListEntity=__decorate([(0,MJGlobal_dist/* RegisterClass */.Y5)(dist/* BaseEntity */.HCJ,'MJ: Lists')],MJListEntity);/**
80723
+ */},{key:"CompanyIntegration",get:function get(){return this.Get('CompanyIntegration');}/**
80724
+ * * Field Name: SourceView
80725
+ * * Display Name: Source View Name
80726
+ * * SQL Data Type: nvarchar(100)
80727
+ */},{key:"SourceView",get:function get(){return this.Get('SourceView');}/**
80728
+ * * Field Name: LastRefreshedByUser
80729
+ * * Display Name: Last Refreshed By User
80730
+ * * SQL Data Type: nvarchar(100)
80731
+ */},{key:"LastRefreshedByUser",get:function get(){return this.Get('LastRefreshedByUser');}}]);}(dist/* BaseEntity */.HCJ);MJListEntity=__decorate([(0,MJGlobal_dist/* RegisterClass */.Y5)(dist/* BaseEntity */.HCJ,'MJ: Lists')],MJListEntity);/**
80555
80732
  * MJ: MCP Server Connection Permissions - strongly typed entity sub-class
80556
80733
  * * Schema: __mj
80557
80734
  * * Base Table: MCPServerConnectionPermission
@@ -93432,6 +93609,10 @@ var MJListDetailEntityExtended = /*#__PURE__*/function (_MJListDetailEntity) {
93432
93609
  }
93433
93610
  throw new Error('ContextCurrentUser cannot be null');
93434
93611
  case 4:
93612
+ if (this.IsSaved) {
93613
+ _context.n = 7;
93614
+ break;
93615
+ }
93435
93616
  _context.n = 5;
93436
93617
  return rv.RunView({
93437
93618
  EntityName: 'MJ: List Details',
@@ -103076,6 +103257,210 @@ PermissionEngine = PermissionEngine_decorate([(0,dist/* RegisterForStartup */.im
103076
103257
  description: 'PermissionEngine — unified permission provider registry'
103077
103258
  })], PermissionEngine);
103078
103259
 
103260
+ ;// ../../MJCoreEntities/dist/engines/AuditLogTypeEngine.js
103261
+ /* unused harmony import specifier */ var AuditLogTypeEngine_BaseEngine;
103262
+ function AuditLogTypeEngine_typeof(o) { "@babel/helpers - typeof"; return AuditLogTypeEngine_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; }, AuditLogTypeEngine_typeof(o); }
103263
+ function AuditLogTypeEngine_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 AuditLogTypeEngine_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]())) : (AuditLogTypeEngine_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, AuditLogTypeEngine_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, AuditLogTypeEngine_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), AuditLogTypeEngine_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", AuditLogTypeEngine_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), AuditLogTypeEngine_regeneratorDefine2(u), AuditLogTypeEngine_regeneratorDefine2(u, o, "Generator"), AuditLogTypeEngine_regeneratorDefine2(u, n, function () { return this; }), AuditLogTypeEngine_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (AuditLogTypeEngine_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
103264
+ function AuditLogTypeEngine_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } AuditLogTypeEngine_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { AuditLogTypeEngine_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)); }, AuditLogTypeEngine_regeneratorDefine2(e, r, n, t); }
103265
+ function AuditLogTypeEngine_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
103266
+ function AuditLogTypeEngine_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { AuditLogTypeEngine_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { AuditLogTypeEngine_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
103267
+ function AuditLogTypeEngine_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
103268
+ function AuditLogTypeEngine_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, AuditLogTypeEngine_toPropertyKey(o.key), o); } }
103269
+ function AuditLogTypeEngine_createClass(e, r, t) { return r && AuditLogTypeEngine_defineProperties(e.prototype, r), t && AuditLogTypeEngine_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
103270
+ function AuditLogTypeEngine_toPropertyKey(t) { var i = AuditLogTypeEngine_toPrimitive(t, "string"); return "symbol" == AuditLogTypeEngine_typeof(i) ? i : i + ""; }
103271
+ function AuditLogTypeEngine_toPrimitive(t, r) { if ("object" != AuditLogTypeEngine_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != AuditLogTypeEngine_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
103272
+ function AuditLogTypeEngine_callSuper(t, o, e) { return o = AuditLogTypeEngine_getPrototypeOf(o), AuditLogTypeEngine_possibleConstructorReturn(t, AuditLogTypeEngine_isNativeReflectConstruct() ? Reflect.construct(o, e || [], AuditLogTypeEngine_getPrototypeOf(t).constructor) : o.apply(t, e)); }
103273
+ function AuditLogTypeEngine_possibleConstructorReturn(t, e) { if (e && ("object" == AuditLogTypeEngine_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return AuditLogTypeEngine_assertThisInitialized(t); }
103274
+ function AuditLogTypeEngine_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
103275
+ function AuditLogTypeEngine_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (AuditLogTypeEngine_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
103276
+ function AuditLogTypeEngine_superPropGet(t, o, e, r) { var p = AuditLogTypeEngine_get(AuditLogTypeEngine_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
103277
+ function AuditLogTypeEngine_get() { return AuditLogTypeEngine_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = AuditLogTypeEngine_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, AuditLogTypeEngine_get.apply(null, arguments); }
103278
+ function AuditLogTypeEngine_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = AuditLogTypeEngine_getPrototypeOf(t));); return t; }
103279
+ function AuditLogTypeEngine_getPrototypeOf(t) { return AuditLogTypeEngine_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, AuditLogTypeEngine_getPrototypeOf(t); }
103280
+ function AuditLogTypeEngine_inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && AuditLogTypeEngine_setPrototypeOf(t, e); }
103281
+ function AuditLogTypeEngine_setPrototypeOf(t, e) { return AuditLogTypeEngine_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, AuditLogTypeEngine_setPrototypeOf(t, e); }
103282
+
103283
+ /**
103284
+ * Caches the rows of `MJ: Audit Log Types` so callers that emit audit-log
103285
+ * entries can resolve `AuditLogTypeID` by NAME instead of by hardcoded UUID.
103286
+ *
103287
+ * The seed data (under `metadata/audit-log-types/`) is the source of truth
103288
+ * for the IDs — code that hardcodes them goes stale silently if a row is
103289
+ * renamed or replaced. Code that calls `ByName(...)` fails loud at the
103290
+ * lookup site instead, which is much easier to track down.
103291
+ *
103292
+ * Singleton via `BaseEngine`. Idempotent `Config()` — subsequent calls
103293
+ * short-circuit once the cache is loaded.
103294
+ *
103295
+ * @example
103296
+ * await AuditLogTypeEngine.Instance.Config(false, contextUser, provider);
103297
+ * const t = AuditLogTypeEngine.Instance.ByName('List Shared');
103298
+ * if (!t) throw new Error('Audit log type "List Shared" not seeded');
103299
+ * auditLog.AuditLogTypeID = t.ID;
103300
+ */
103301
+ var AuditLogTypeEngine = /*#__PURE__*/(/* unused pure expression or super */ null && (function (_BaseEngine) {
103302
+ function AuditLogTypeEngine() {
103303
+ var _this;
103304
+ AuditLogTypeEngine_classCallCheck(this, AuditLogTypeEngine);
103305
+ _this = AuditLogTypeEngine_callSuper(this, AuditLogTypeEngine, arguments);
103306
+ _this._AuditLogTypes = [];
103307
+ return _this;
103308
+ }
103309
+ AuditLogTypeEngine_inherits(AuditLogTypeEngine, _BaseEngine);
103310
+ return AuditLogTypeEngine_createClass(AuditLogTypeEngine, [{
103311
+ key: "Config",
103312
+ value: function () {
103313
+ var _Config = AuditLogTypeEngine_asyncToGenerator(/*#__PURE__*/AuditLogTypeEngine_regenerator().m(function _callee(forceRefresh, contextUser, provider) {
103314
+ var c;
103315
+ return AuditLogTypeEngine_regenerator().w(function (_context) {
103316
+ while (1) switch (_context.n) {
103317
+ case 0:
103318
+ c = [{
103319
+ Type: 'entity',
103320
+ EntityName: 'MJ: Audit Log Types',
103321
+ PropertyName: '_AuditLogTypes',
103322
+ CacheLocal: true
103323
+ }];
103324
+ _context.n = 1;
103325
+ return this.Load(c, provider, forceRefresh, contextUser);
103326
+ case 1:
103327
+ return _context.a(2);
103328
+ }
103329
+ }, _callee, this);
103330
+ }));
103331
+ function Config(_x, _x2, _x3) {
103332
+ return _Config.apply(this, arguments);
103333
+ }
103334
+ return Config;
103335
+ }()
103336
+ }, {
103337
+ key: "AuditLogTypes",
103338
+ get: function get() {
103339
+ return this._AuditLogTypes;
103340
+ }
103341
+ /**
103342
+ * Look up a row by exact `Name`. Returns `undefined` if the engine
103343
+ * hasn't been configured yet or no row matches — callers should treat
103344
+ * the latter as "seed metadata missing" and throw, never silently
103345
+ * persist rows with an undefined `AuditLogTypeID`.
103346
+ */
103347
+ }, {
103348
+ key: "ByName",
103349
+ value: function ByName(name) {
103350
+ return this._AuditLogTypes.find(function (t) {
103351
+ return t.Name === name;
103352
+ });
103353
+ }
103354
+ }], [{
103355
+ key: "Instance",
103356
+ get: function get() {
103357
+ return AuditLogTypeEngine_superPropGet(AuditLogTypeEngine, "getInstance", this, 2)([]);
103358
+ }
103359
+ }]);
103360
+ }(AuditLogTypeEngine_BaseEngine)));
103361
+ ;// ../../MJCoreEntities/dist/engines/ResourceTypeEngine.js
103362
+ /* unused harmony import specifier */ var ResourceTypeEngine_BaseEngine;
103363
+ function ResourceTypeEngine_typeof(o) { "@babel/helpers - typeof"; return ResourceTypeEngine_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; }, ResourceTypeEngine_typeof(o); }
103364
+ function ResourceTypeEngine_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 ResourceTypeEngine_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]())) : (ResourceTypeEngine_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, ResourceTypeEngine_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, ResourceTypeEngine_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), ResourceTypeEngine_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", ResourceTypeEngine_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), ResourceTypeEngine_regeneratorDefine2(u), ResourceTypeEngine_regeneratorDefine2(u, o, "Generator"), ResourceTypeEngine_regeneratorDefine2(u, n, function () { return this; }), ResourceTypeEngine_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (ResourceTypeEngine_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
103365
+ function ResourceTypeEngine_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } ResourceTypeEngine_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { ResourceTypeEngine_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)); }, ResourceTypeEngine_regeneratorDefine2(e, r, n, t); }
103366
+ function ResourceTypeEngine_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
103367
+ function ResourceTypeEngine_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { ResourceTypeEngine_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { ResourceTypeEngine_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
103368
+ function ResourceTypeEngine_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
103369
+ function ResourceTypeEngine_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, ResourceTypeEngine_toPropertyKey(o.key), o); } }
103370
+ function ResourceTypeEngine_createClass(e, r, t) { return r && ResourceTypeEngine_defineProperties(e.prototype, r), t && ResourceTypeEngine_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
103371
+ function ResourceTypeEngine_toPropertyKey(t) { var i = ResourceTypeEngine_toPrimitive(t, "string"); return "symbol" == ResourceTypeEngine_typeof(i) ? i : i + ""; }
103372
+ function ResourceTypeEngine_toPrimitive(t, r) { if ("object" != ResourceTypeEngine_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != ResourceTypeEngine_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
103373
+ function ResourceTypeEngine_callSuper(t, o, e) { return o = ResourceTypeEngine_getPrototypeOf(o), ResourceTypeEngine_possibleConstructorReturn(t, ResourceTypeEngine_isNativeReflectConstruct() ? Reflect.construct(o, e || [], ResourceTypeEngine_getPrototypeOf(t).constructor) : o.apply(t, e)); }
103374
+ function ResourceTypeEngine_possibleConstructorReturn(t, e) { if (e && ("object" == ResourceTypeEngine_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ResourceTypeEngine_assertThisInitialized(t); }
103375
+ function ResourceTypeEngine_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
103376
+ function ResourceTypeEngine_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ResourceTypeEngine_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
103377
+ function ResourceTypeEngine_superPropGet(t, o, e, r) { var p = ResourceTypeEngine_get(ResourceTypeEngine_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
103378
+ function ResourceTypeEngine_get() { return ResourceTypeEngine_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ResourceTypeEngine_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ResourceTypeEngine_get.apply(null, arguments); }
103379
+ function ResourceTypeEngine_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ResourceTypeEngine_getPrototypeOf(t));); return t; }
103380
+ function ResourceTypeEngine_getPrototypeOf(t) { return ResourceTypeEngine_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ResourceTypeEngine_getPrototypeOf(t); }
103381
+ function ResourceTypeEngine_inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && ResourceTypeEngine_setPrototypeOf(t, e); }
103382
+ function ResourceTypeEngine_setPrototypeOf(t, e) { return ResourceTypeEngine_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, ResourceTypeEngine_setPrototypeOf(t, e); }
103383
+
103384
+ /**
103385
+ * Caches the rows of `MJ: Resource Types` so callers that scope a
103386
+ * `MJResourcePermission` (or any resource-typed surface) to a specific kind
103387
+ * of resource can resolve `ResourceTypeID` by NAME instead of by hardcoded
103388
+ * UUID.
103389
+ *
103390
+ * The seed data (under `metadata/resource-types/`) is the source of truth
103391
+ * for the IDs — code that hardcodes them goes stale silently if a row is
103392
+ * renamed or replaced. Code that calls `ByName(...)` fails loud at the
103393
+ * lookup site, which is much easier to track down.
103394
+ *
103395
+ * Singleton via `BaseEngine`. Idempotent `Config()` — subsequent calls
103396
+ * short-circuit once the cache is loaded.
103397
+ *
103398
+ * @example
103399
+ * await ResourceTypeEngine.Instance.Config(false, contextUser, provider);
103400
+ * const rt = ResourceTypeEngine.Instance.ByName('Lists');
103401
+ * if (!rt) throw new Error('Resource type "Lists" not seeded');
103402
+ * permission.ResourceTypeID = rt.ID;
103403
+ */
103404
+ var ResourceTypeEngine = /*#__PURE__*/(/* unused pure expression or super */ null && (function (_BaseEngine) {
103405
+ function ResourceTypeEngine() {
103406
+ var _this;
103407
+ ResourceTypeEngine_classCallCheck(this, ResourceTypeEngine);
103408
+ _this = ResourceTypeEngine_callSuper(this, ResourceTypeEngine, arguments);
103409
+ _this._ResourceTypes = [];
103410
+ return _this;
103411
+ }
103412
+ ResourceTypeEngine_inherits(ResourceTypeEngine, _BaseEngine);
103413
+ return ResourceTypeEngine_createClass(ResourceTypeEngine, [{
103414
+ key: "Config",
103415
+ value: function () {
103416
+ var _Config = ResourceTypeEngine_asyncToGenerator(/*#__PURE__*/ResourceTypeEngine_regenerator().m(function _callee(forceRefresh, contextUser, provider) {
103417
+ var c;
103418
+ return ResourceTypeEngine_regenerator().w(function (_context) {
103419
+ while (1) switch (_context.n) {
103420
+ case 0:
103421
+ c = [{
103422
+ Type: 'entity',
103423
+ EntityName: 'MJ: Resource Types',
103424
+ PropertyName: '_ResourceTypes',
103425
+ CacheLocal: true
103426
+ }];
103427
+ _context.n = 1;
103428
+ return this.Load(c, provider, forceRefresh, contextUser);
103429
+ case 1:
103430
+ return _context.a(2);
103431
+ }
103432
+ }, _callee, this);
103433
+ }));
103434
+ function Config(_x, _x2, _x3) {
103435
+ return _Config.apply(this, arguments);
103436
+ }
103437
+ return Config;
103438
+ }()
103439
+ }, {
103440
+ key: "ResourceTypes",
103441
+ get: function get() {
103442
+ return this._ResourceTypes;
103443
+ }
103444
+ /**
103445
+ * Look up a row by exact `Name`. Returns `undefined` if the engine
103446
+ * hasn't been configured yet or no row matches — callers should treat
103447
+ * the latter as "seed metadata missing" and throw, never silently
103448
+ * persist rows with an undefined `ResourceTypeID`.
103449
+ */
103450
+ }, {
103451
+ key: "ByName",
103452
+ value: function ByName(name) {
103453
+ return this._ResourceTypes.find(function (rt) {
103454
+ return rt.Name === name;
103455
+ });
103456
+ }
103457
+ }], [{
103458
+ key: "Instance",
103459
+ get: function get() {
103460
+ return ResourceTypeEngine_superPropGet(ResourceTypeEngine, "getInstance", this, 2)([]);
103461
+ }
103462
+ }]);
103463
+ }(ResourceTypeEngine_BaseEngine)));
103079
103464
  ;// ../../MJCoreEntities/dist/custom/PermissionProviders/EntityPermissionProvider.js
103080
103465
  function _regeneratorValues(e) { if (null != e) { var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"], r = 0; if (t) return t.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) return { next: function next() { return e && r >= e.length && (e = void 0), { value: e && e[r++], done: !e }; } }; } throw new TypeError(EntityPermissionProvider_typeof(e) + " is not iterable"); }
103081
103466
  function EntityPermissionProvider_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = EntityPermissionProvider_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; } } }; }
@@ -108115,6 +108500,8 @@ function LoadPermissionEntityExtensions() {
108115
108500
 
108116
108501
 
108117
108502
 
108503
+
108504
+
108118
108505
 
108119
108506
 
108120
108507
 
@@ -117421,8 +117808,8 @@ var ComponentRegistry = /*#__PURE__*/function () {
117421
117808
  var dist = __webpack_require__(310);
117422
117809
  // EXTERNAL MODULE: ../../MJGlobal/dist/index.js + 17 modules
117423
117810
  var MJGlobal_dist = __webpack_require__(232);
117424
- // EXTERNAL MODULE: ../../MJCoreEntities/dist/index.js + 49 modules
117425
- var MJCoreEntities_dist = __webpack_require__(760);
117811
+ // EXTERNAL MODULE: ../../MJCoreEntities/dist/index.js + 51 modules
117812
+ var MJCoreEntities_dist = __webpack_require__(793);
117426
117813
  ;// ./dist/registry/component-registry-service.js
117427
117814
  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); }
117428
117815
  var _ComponentRegistryService;