@memberjunction/react-runtime 5.42.0 → 5.43.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.
@@ -19090,7 +19090,7 @@ function reportUnhandledError(err) {
19090
19090
 
19091
19091
  /***/ },
19092
19092
 
19093
- /***/ 809
19093
+ /***/ 949
19094
19094
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
19095
19095
 
19096
19096
  "use strict";
@@ -19135,10 +19135,10 @@ __webpack_require__.d(__webpack_exports__, {
19135
19135
  IaG: () => (/* reexport */ getGraphQLTypeNameBase)
19136
19136
  });
19137
19137
 
19138
- // UNUSED EXPORTS: AUTH_PROVIDER_TYPES, AfterKeyNotSupportedError, AllMetadata, AllMetadataArrays, ApplicationEntityInfo, ApplicationInfo, ApplicationSettingInfo, AuditLogTypeInfo, AuthorizationEvaluator, AuthorizationInfo, AuthorizationRoleInfo, AuthorizationRoleType, BaseEnginePropertyConfig, BaseEngineRegistry, BaseEntityAIActionParams, BaseEntityEvent, BaseRemotableOperation, CacheCategory, ClearAllDataHooks, CodeNameFromString, ColumnDescriptor, CommonStopWords, ComputeRRF, Concurrent, ConsoleColor, DataObjectParams, DataObjectRelatedEntityParam, DataSnapshot, DataTable, DatabaseProviderBase, EntityDeleteOptions, EntityDependency, EntityDocumentTypeInfo, EntityField, EntityFieldGraphQLType, EntityFieldInfo, EntityFieldValueInfo, EntityFieldValueListType, EntityInfo, EntityMergeOptions, EntityOrganicKeyInfo, EntityOrganicKeyRelatedEntityInfo, EntityPermissionEffect, EntityPermissionInfo, EntityRecordNameInput, EntityRecordNameResult, EntityRelationshipInfo, EntitySaveOptions, EntitySettingInfo, EntityUserPermissionInfo, ExplorerNavigationItem, ExtractActualDefaultValue, FieldValueCollection, FormatConsoleMessage, FormatFileMessage, FormatValue, GeneratedFormSectionType, GetDataHooks, GetEntityNameFromSchemaAndViewString, GridColumnDescriptor, IsKeysetPaginationOrderableType, KEYSET_PAGINATION_ORDERABLE_PK_TYPES, KeyValuePair, LibraryInfo, LoadOnStartup, LocalCacheManager, LogDebug, MJColumnDescriptor, MJ_CORE_SCHEMA, MetadataFromSimpleObject, MetadataFromSimpleObjectWithoutUser, MetadataInfo, NormalizeToTables, ParsePlatformVariants, PotentialDuplicate, PotentialDuplicateRequest, PotentialDuplicateResponse, PotentialDuplicateResult, ProjectRowsToFields, QueryCache, QueryCategoryInfo, QueryDependencyInfo, QueryEntityInfo, QueryExecutionSpec, QueryFieldInfo, QueryInfo, QueryParameterInfo, QueryPermissionInfo, QuerySQLInfo, RUN_QUERY_SQL_FILTERS, RUN_QUERY_SQL_FILTERS_WITH_IMPLEMENTATIONS, RecordChange, RecordChangeStatus, RecordDependency, RecordMergeDetailResult, RecordMergeRequest, RecordMergeResult, RegisterDataHook, ResolvePlatformVariant, RoleInfo, RowLevelSecurityFilterInfo, RunMaybeSerial, RunQuerySQLFilterManager, RunReport, RunViewParams, SQLDialectInfo, SQLFullType, SQLMaxLength, SetProductionStatus, SetVerboseLogging, SeverityType, StripContainingParens, StripSingleQuotes, StripStopWords, StripUnicodePrefix, TelemetryLevelValue, TelemetryManager, TotalAvailableRowCount, TotalRowCount, TransactionPreprocessingItem, TransactionVariable, TypeScriptTypeFromSQLType, TypeScriptTypeFromSQLTypeWithNullableOption, UpdateCurrentConsoleLine, UpdateCurrentConsoleProgress, dispatchRemoteOperationInProcess, getAnsiColorCode, getRunQuerySQLFilter, getRunQuerySQLFilterNames, getSchemaPrefix, isAIParams, isBatchRunQueryParams, isBatchRunViewParams, isCacheParams, isEngineParams, isNetworkParams, isSingleRunQueryParams, isSingleRunViewParams, sanitizeGraphQLName
19138
+ // UNUSED EXPORTS: AUTH_PROVIDER_TYPES, AfterKeyNotSupportedError, AllMetadata, AllMetadataArrays, ApplicationEntityInfo, ApplicationInfo, ApplicationSettingInfo, AuditLogTypeInfo, AuthorizationEvaluator, AuthorizationInfo, AuthorizationRoleInfo, AuthorizationRoleType, BaseEnginePropertyConfig, BaseEngineRegistry, BaseEntityAIActionParams, BaseEntityEvent, BaseEntitySaveQueue, BaseRemotableOperation, CacheCategory, ClearAllDataHooks, CodeNameFromString, ColumnDescriptor, CommonStopWords, ComputeRRF, Concurrent, ConsoleColor, DataObjectParams, DataObjectRelatedEntityParam, DataSnapshot, DataTable, DatabaseProviderBase, EntityDeleteOptions, EntityDependency, EntityDocumentTypeInfo, EntityField, EntityFieldGraphQLType, EntityFieldInfo, EntityFieldRules, EntityFieldValueInfo, EntityFieldValueListType, EntityInfo, EntityMergeOptions, EntityOrganicKeyInfo, EntityOrganicKeyRelatedEntityInfo, EntityPermissionEffect, EntityPermissionInfo, EntityRecordNameInput, EntityRecordNameResult, EntityRelationshipInfo, EntitySaveOptions, EntitySettingInfo, EntityUserPermissionInfo, ExplorerNavigationItem, ExtractActualDefaultValue, FieldValueCollection, FormatConsoleMessage, FormatFileMessage, FormatValue, GeneratedFormSectionType, GetDataHooks, GetEntityNameFromSchemaAndViewString, GridColumnDescriptor, IsKeysetPaginationOrderableType, KEYSET_PAGINATION_ORDERABLE_PK_TYPES, KeyValuePair, LibraryInfo, LoadOnStartup, LocalCacheManager, LogDebug, MJColumnDescriptor, MJ_CORE_SCHEMA, MetadataFromSimpleObject, MetadataFromSimpleObjectWithoutUser, MetadataInfo, NormalizeToTables, ParsePlatformVariants, PotentialDuplicate, PotentialDuplicateRequest, PotentialDuplicateResponse, PotentialDuplicateResult, ProjectRowsToFields, QueryCache, QueryCategoryInfo, QueryDependencyInfo, QueryEntityInfo, QueryExecutionSpec, QueryFieldInfo, QueryInfo, QueryParameterInfo, QueryPermissionInfo, QuerySQLInfo, RUN_QUERY_SQL_FILTERS, RUN_QUERY_SQL_FILTERS_WITH_IMPLEMENTATIONS, RecordChange, RecordChangeStatus, RecordDependency, RecordMergeDetailResult, RecordMergeRequest, RecordMergeResult, RegisterDataHook, ResolvePlatformVariant, RoleInfo, RowLevelSecurityFilterInfo, RunMaybeSerial, RunQuerySQLFilterManager, RunReport, RunViewParams, SQLDialectInfo, SQLFullType, SQLMaxLength, SetProductionStatus, SetVerboseLogging, SeverityType, StripContainingParens, StripSingleQuotes, StripStopWords, StripUnicodePrefix, TelemetryLevelValue, TelemetryManager, TotalAvailableRowCount, TotalRowCount, TransactionPreprocessingItem, TransactionVariable, TypeScriptTypeFromSQLType, TypeScriptTypeFromSQLTypeWithNullableOption, UpdateCurrentConsoleLine, UpdateCurrentConsoleProgress, dispatchRemoteOperationInProcess, getAnsiColorCode, getRunQuerySQLFilter, getRunQuerySQLFilterNames, getSchemaPrefix, isAIParams, isBatchRunQueryParams, isBatchRunViewParams, isCacheParams, isEngineParams, isNetworkParams, isSingleRunQueryParams, isSingleRunViewParams, sanitizeGraphQLName
19139
19139
 
19140
- // EXTERNAL MODULE: ../../MJGlobal/dist/index.js + 18 modules
19141
- var dist = __webpack_require__(297);
19140
+ // EXTERNAL MODULE: ../../MJGlobal/dist/index.js + 22 modules
19141
+ var dist = __webpack_require__(7);
19142
19142
  ;// ../../MJCore/dist/generic/dataHooks.js
19143
19143
  /* unused harmony import specifier */ var GetGlobalObjectStore;
19144
19144
  /**
@@ -19656,6 +19656,38 @@ var SQLDialect = /*#__PURE__*/function () {
19656
19656
  get: function get() {
19657
19657
  return Number.MAX_SAFE_INTEGER;
19658
19658
  }
19659
+ /**
19660
+ * Maximum bytes that can be stored in-row for a single row, or `null` when the dialect has no
19661
+ * in-row size limit. SQL Server enforces a hard ~8060-byte in-row limit; PostgreSQL has none
19662
+ * (TOAST stores oversized variable-length values out-of-line). Consumed by schema materialization
19663
+ * to avoid emitting a table whose minimum in-row footprint can never satisfy an INSERT.
19664
+ * Default: `null` (no in-row size limit).
19665
+ */
19666
+ }, {
19667
+ key: "MaxInRowSizeBytes",
19668
+ get: function get() {
19669
+ return null;
19670
+ }
19671
+ /**
19672
+ * Hard maximum number of columns per table, or `null` when effectively unbounded for our purposes.
19673
+ * SQL Server: 1024. PostgreSQL: 1600. Default: `null`.
19674
+ */
19675
+ }, {
19676
+ key: "MaxColumnCount",
19677
+ get: function get() {
19678
+ return null;
19679
+ }
19680
+ /**
19681
+ * Minimum in-row byte footprint of a column of the given raw SQL type. Off-row-capable
19682
+ * variable-length / LOB types contribute only their in-row pointer; fixed-length types contribute
19683
+ * their full size. Only meaningful for dialects that report a {@link MaxInRowSizeBytes}.
19684
+ * Default: 24 (a conservative off-row-pointer floor).
19685
+ */
19686
+ }, {
19687
+ key: "EstimateInRowBytes",
19688
+ value: function EstimateInRowBytes(_rawSqlType) {
19689
+ return 24;
19690
+ }
19659
19691
  /**
19660
19692
  * Returns the dialect's literal representation of NULL as it would
19661
19693
  * appear in generated SQL (e.g. as the result of a default-value
@@ -20095,6 +20127,12 @@ var SQLServerDialect = /*#__PURE__*/function (_SQLDialect) {
20095
20127
  value: function QuoteColumnAlias(aliasName) {
20096
20128
  return aliasName;
20097
20129
  }
20130
+ /** SQL Server is case-insensitive for identifiers; the schema name is stored as-given. */
20131
+ }, {
20132
+ key: "CanonicalSchemaName",
20133
+ value: function CanonicalSchemaName(name) {
20134
+ return name;
20135
+ }
20098
20136
  // ─── Pagination ──────────────────────────────────────────────────
20099
20137
  }, {
20100
20138
  key: "LimitClause",
@@ -20183,6 +20221,49 @@ var SQLServerDialect = /*#__PURE__*/function (_SQLDialect) {
20183
20221
  get: function get() {
20184
20222
  return 450;
20185
20223
  }
20224
+ /** SQL Server enforces a hard ~8060-byte in-row row size; only variable-length values go off-row. */
20225
+ }, {
20226
+ key: "MaxInRowSizeBytes",
20227
+ get: function get() {
20228
+ return 8060;
20229
+ }
20230
+ /** SQL Server's hard per-table column cap. */
20231
+ }, {
20232
+ key: "MaxColumnCount",
20233
+ get: function get() {
20234
+ return 1024;
20235
+ }
20236
+ /**
20237
+ * Minimum in-row byte footprint of a column. Off-row-capable variable-length / LOB types
20238
+ * (incl. `(N)VARCHAR(MAX)`) contribute only a 24-byte in-row pointer; fixed-length types
20239
+ * contribute their full size. Unknown types are treated as off-row pointers (conservative).
20240
+ */
20241
+ }, {
20242
+ key: "EstimateInRowBytes",
20243
+ value: function EstimateInRowBytes(rawSqlType) {
20244
+ var t = (rawSqlType !== null && rawSqlType !== void 0 ? rawSqlType : '').toUpperCase().trim();
20245
+ // Off-row-capable variable-length + LOB types → 24-byte in-row pointer floor.
20246
+ if (/^(N?VARCHAR|VARBINARY)\s*\(/.test(t)) return 24; // covers (N)VARCHAR(MAX) too
20247
+ if (/^(TEXT|NTEXT|IMAGE|XML|SQL_VARIANT)\b/.test(t)) return 24;
20248
+ // Fixed-length character/binary types stay fully in-row.
20249
+ var nchar = t.match(/^NCHAR\s*\(\s*(\d+)\s*\)/);
20250
+ if (nchar) return parseInt(nchar[1], 10) * 2;
20251
+ var chr = t.match(/^(?:CHAR|BINARY)\s*\(\s*(\d+)\s*\)/);
20252
+ if (chr) return parseInt(chr[1], 10);
20253
+ if (/^UNIQUEIDENTIFIER\b/.test(t)) return 16;
20254
+ if (/^BIGINT\b/.test(t)) return 8;
20255
+ if (/^SMALLINT\b/.test(t)) return 2;
20256
+ if (/^TINYINT\b/.test(t)) return 1;
20257
+ if (/^INT\b/.test(t)) return 4;
20258
+ if (/^BIT\b/.test(t)) return 1;
20259
+ if (/^(DECIMAL|NUMERIC|MONEY|SMALLMONEY)\b/.test(t)) return 17;
20260
+ if (/^(FLOAT|REAL)\b/.test(t)) return 8;
20261
+ if (/^DATETIMEOFFSET\b/.test(t)) return 10;
20262
+ if (/^(DATETIME2|DATETIME|SMALLDATETIME)\b/.test(t)) return 8;
20263
+ if (/^DATE\b/.test(t)) return 3;
20264
+ if (/^TIME\b/.test(t)) return 5;
20265
+ return 24; // unknown → treat as off-row variable-length pointer (conservative)
20266
+ }
20186
20267
  }, {
20187
20268
  key: "DateTypeNames",
20188
20269
  get: function get() {
@@ -20959,6 +21040,16 @@ var PostgreSQLDialect = /*#__PURE__*/function (_SQLDialect) {
20959
21040
  get: function get() {
20960
21041
  return 'PostgresQL';
20961
21042
  }
21043
+ /**
21044
+ * PostgreSQL has no in-row row-size limit (TOAST stores oversized variable-length values
21045
+ * out-of-line), so {@link MaxInRowSizeBytes} stays `null` (inherited). It does enforce a
21046
+ * hard 1600-column-per-table cap.
21047
+ */
21048
+ }, {
21049
+ key: "MaxColumnCount",
21050
+ get: function get() {
21051
+ return 1600;
21052
+ }
20962
21053
  // ─── Identifier Quoting ──────────────────────────────────────────
20963
21054
  }, {
20964
21055
  key: "QuoteIdentifier",
@@ -20982,6 +21073,17 @@ var PostgreSQLDialect = /*#__PURE__*/function (_SQLDialect) {
20982
21073
  value: function QuoteColumnAlias(aliasName) {
20983
21074
  return "\"".concat(aliasName, "\"");
20984
21075
  }
21076
+ /**
21077
+ * PostgreSQL folds unquoted identifiers to lowercase, so the physical schema an
21078
+ * unquoted `CREATE SCHEMA __mj_BizAppsCommon` produces is `__mj_bizappscommon`.
21079
+ * Canonicalize to that lowercase form so the engine's quoted operations target the
21080
+ * same physical schema as the app's (typically unquoted) migration DDL.
21081
+ */
21082
+ }, {
21083
+ key: "CanonicalSchemaName",
21084
+ value: function CanonicalSchemaName(name) {
21085
+ return name.toLowerCase();
21086
+ }
20985
21087
  // ─── Pagination ──────────────────────────────────────────────────
20986
21088
  }, {
20987
21089
  key: "LimitClause",
@@ -34602,6 +34704,9 @@ var TelemetryManager = /*#__PURE__*/function (_BaseSingleton) {
34602
34704
  try {
34603
34705
  var insight = analyzer.analyze(event, context);
34604
34706
  if (insight && this.shouldEmitInsight(insight)) {
34707
+ // Correct cache-oriented advice for entities that have caching disabled — the
34708
+ // finding stands, but "cache it" is replaced with a dedupe/consolidate suggestion.
34709
+ this.adjustSuggestionForCacheability(insight);
34605
34710
  this._insights.push(insight);
34606
34711
  this.emitInsightWarning(insight);
34607
34712
  }
@@ -34644,24 +34749,46 @@ var TelemetryManager = /*#__PURE__*/function (_BaseSingleton) {
34644
34749
  * that should never be bulk-loaded into a process-wide engine cache.
34645
34750
  */
34646
34751
  }, {
34647
- key: "isCacheSuggestionForNonCachedEntity",
34752
+ key: "isNonCacheableEntity",
34648
34753
  value:
34649
34754
  /**
34650
- * True when `insight` is an engine-caching suggestion for an entity that has caching disabled.
34651
- * Reuses the existing `AllowCaching` metadata flag as the single source of truth no separate
34652
- * exemption list. Fails open (returns false insight still emits) when metadata is unavailable.
34755
+ * True when the entity has explicitly opted out of caching (`EntityInfo.AllowCaching = false`).
34756
+ * Reuses that metadata flag as the single source of truth. Fails open (false) when metadata is
34757
+ * unavailable, or when `entityName` isn't a single resolvable entity (e.g. a batch insight whose
34758
+ * entityName is a comma-joined list).
34653
34759
  */
34654
- function isCacheSuggestionForNonCachedEntity(insight) {
34655
- if (!insight.entityName) return false;
34656
- if (!TelemetryManager.ENGINE_CACHE_SUGGESTION_ANALYZERS.has(insight.analyzerName)) return false;
34760
+ function isNonCacheableEntity(entityName) {
34761
+ if (!entityName) return false;
34657
34762
  try {
34658
34763
  var _Metadata$Provider, _Metadata$Provider$En;
34659
- var entity = (_Metadata$Provider = Metadata.Provider) === null || _Metadata$Provider === void 0 || (_Metadata$Provider$En = _Metadata$Provider.EntityByName) === null || _Metadata$Provider$En === void 0 ? void 0 : _Metadata$Provider$En.call(_Metadata$Provider, insight.entityName); // global-provider-ok: telemetry aggregates RunView calls process-wide; AllowCaching is structural entity metadata and this check fails open if unavailable
34660
- return (entity === null || entity === void 0 ? void 0 : entity.AllowCaching) === false;
34764
+ // telemetry aggregates RunView calls process-wide; AllowCaching is structural entity
34765
+ // metadata and this check fails open if the provider is unavailable.
34766
+ return ((_Metadata$Provider = Metadata.Provider) === null || _Metadata$Provider === void 0 || (_Metadata$Provider$En = _Metadata$Provider.EntityByName) === null || _Metadata$Provider$En === void 0 || (_Metadata$Provider$En = _Metadata$Provider$En.call(_Metadata$Provider, entityName)) === null || _Metadata$Provider$En === void 0 ? void 0 : _Metadata$Provider$En.AllowCaching) === false; // global-provider-ok: process-wide telemetry, structural metadata, fails open
34661
34767
  } catch (_unused) {
34662
34768
  return false;
34663
34769
  }
34664
34770
  }
34771
+ /**
34772
+ * True when `insight` is a pure engine-caching suggestion for an entity that has caching disabled.
34773
+ * Such insights have no residual value once the cache advice is removed, so they are fully suppressed.
34774
+ */
34775
+ }, {
34776
+ key: "isCacheSuggestionForNonCachedEntity",
34777
+ value: function isCacheSuggestionForNonCachedEntity(insight) {
34778
+ return TelemetryManager.ENGINE_CACHE_SUGGESTION_ANALYZERS.has(insight.analyzerName) && this.isNonCacheableEntity(insight.entityName);
34779
+ }
34780
+ /**
34781
+ * For a non-cacheable entity, rewrite a caching-oriented suggestion (e.g. DuplicateRunView's
34782
+ * "Cache the result or use an engine") to a dedupe/consolidate one. The finding is unchanged and
34783
+ * still emitted — only the advice is corrected. No-op for cacheable entities and other analyzers.
34784
+ */
34785
+ }, {
34786
+ key: "adjustSuggestionForCacheability",
34787
+ value: function adjustSuggestionForCacheability(insight) {
34788
+ if (TelemetryManager.CACHE_SUGGESTION_REWRITE_ANALYZERS.has(insight.analyzerName) && this.isNonCacheableEntity(insight.entityName)) {
34789
+ insight.suggestion = TelemetryManager.NON_CACHEABLE_DEDUPE_SUGGESTION;
34790
+ }
34791
+ }
34665
34792
  }, {
34666
34793
  key: "shouldEmitInsight",
34667
34794
  value: function shouldEmitInsight(insight) {
@@ -34774,12 +34901,16 @@ var TelemetryManager = /*#__PURE__*/function (_BaseSingleton) {
34774
34901
  };
34775
34902
  } else {
34776
34903
  var _params$EntityName, _params$ExtraFilter, _params$OrderBy;
34777
- // Single operation
34904
+ // Single operation. Pagination cursors (StartRow / AfterKey) are part of the key so that
34905
+ // consecutive pages of a sweep over the same entity+filter+orderBy are DISTINCT
34906
+ // fingerprints — otherwise page 2 collides with page 1 and trips the Duplicate analyzer.
34778
34907
  return {
34779
34908
  entity: (_params$EntityName = params.EntityName) === null || _params$EntityName === void 0 ? void 0 : _params$EntityName.toLowerCase().trim(),
34780
34909
  filter: (_params$ExtraFilter = params.ExtraFilter) === null || _params$ExtraFilter === void 0 ? void 0 : _params$ExtraFilter.toLowerCase().trim(),
34781
34910
  orderBy: (_params$OrderBy = params.OrderBy) === null || _params$OrderBy === void 0 ? void 0 : _params$OrderBy.toLowerCase().trim(),
34782
- resultType: params.ResultType
34911
+ resultType: params.ResultType,
34912
+ startRow: params.StartRow,
34913
+ afterKey: params.AfterKey
34783
34914
  };
34784
34915
  }
34785
34916
  }
@@ -35111,6 +35242,15 @@ var TelemetryManager = /*#__PURE__*/function (_BaseSingleton) {
35111
35242
  }(dist/* BaseSingleton */.tC);
35112
35243
  _TelemetryManager = TelemetryManager;
35113
35244
  _TelemetryManager.ENGINE_CACHE_SUGGESTION_ANALYZERS = new Set(['SameEntityMultipleCallsAnalyzer', 'EngineOverlapAnalyzer']);
35245
+ /**
35246
+ * Analyzers whose FINDING is valid for any entity, but whose default suggestion recommends
35247
+ * caching. For an `AllowCaching=false` entity we keep the finding (a real duplicate / redundant
35248
+ * read is worth knowing) but swap the suggestion — "cache it" is not actionable when caching is
35249
+ * deliberately disabled, so we steer the reader to dedupe/consolidate at the call site instead.
35250
+ */
35251
+ _TelemetryManager.CACHE_SUGGESTION_REWRITE_ANALYZERS = new Set(['DuplicateRunViewAnalyzer']);
35252
+ /** Replacement suggestion for cache-oriented findings on a non-cacheable entity. */
35253
+ _TelemetryManager.NON_CACHEABLE_DEDUPE_SUGGESTION = 'This entity has caching disabled (AllowCaching=false), so caching is not an option — ' + 'deduplicate or consolidate the identical call at the call site (read once and reuse), or ' + 'mark an intentional repeat with RunView Telemetry.Exempt';
35114
35254
  // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js
35115
35255
  var BehaviorSubject = __webpack_require__(156);
35116
35256
  // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/Subscription.js + 1 modules
@@ -43842,7 +43982,7 @@ var ProviderBase = /*#__PURE__*/function () {
43842
43982
  key: "PreRunView",
43843
43983
  value: (function () {
43844
43984
  var _PreRunView = providerBase_asyncToGenerator(/*#__PURE__*/providerBase_regenerator().m(function _callee18(params, contextUser) {
43845
- var _params$Telemetry, _params$Telemetry2;
43985
+ var _params$AfterKey, _params$Telemetry, _params$Telemetry2;
43846
43986
  var preViewStart, telemetryStart, telemetryEventId, telemetryTime, entityCheckStart, entityCheckTime, entityLookupStart, callerRequestedFields, entity, willCache, entityLookupTime, cacheCheckStart, cacheStatus, cachedResult, fingerprint, rlsWhereClause, _cached, _cached$totalRowCount, results, cacheCheckTime, totalPreTime;
43847
43987
  return providerBase_regenerator().w(function (_context18) {
43848
43988
  while (1) switch (_context18.n) {
@@ -43867,6 +44007,9 @@ var ProviderBase = /*#__PURE__*/function () {
43867
44007
  ResultType: params.ResultType,
43868
44008
  MaxRows: params.MaxRows,
43869
44009
  StartRow: params.StartRow,
44010
+ // Pagination cursor (keyset) — included so consecutive pages of a sweep are
44011
+ // distinct fingerprints and not falsely flagged as a Duplicate RunView.
44012
+ AfterKey: (_params$AfterKey = params.AfterKey) === null || _params$AfterKey === void 0 ? void 0 : _params$AfterKey.ToConcatenatedString(),
43870
44013
  CacheLocal: params.CacheLocal,
43871
44014
  _fromEngine: params._fromEngine,
43872
44015
  Exempt: (_params$Telemetry = params.Telemetry) === null || _params$Telemetry === void 0 ? void 0 : _params$Telemetry.Exempt,
@@ -45282,7 +45425,7 @@ var ProviderBase = /*#__PURE__*/function () {
45282
45425
  key: "PreProcessRunView",
45283
45426
  value: function () {
45284
45427
  var _PreProcessRunView = providerBase_asyncToGenerator(/*#__PURE__*/providerBase_regenerator().m(function _callee31(params, contextUser) {
45285
- var _params$Telemetry3, _params$Telemetry4;
45428
+ var _params$AfterKey2, _params$Telemetry3, _params$Telemetry4;
45286
45429
  var eventId, entity;
45287
45430
  return providerBase_regenerator().w(function (_context31) {
45288
45431
  while (1) switch (_context31.n) {
@@ -45299,6 +45442,8 @@ var ProviderBase = /*#__PURE__*/function () {
45299
45442
  ResultType: params.ResultType,
45300
45443
  MaxRows: params.MaxRows,
45301
45444
  StartRow: params.StartRow,
45445
+ // Pagination cursor (keyset) — see PreRunView note: distinguishes sweep pages.
45446
+ AfterKey: (_params$AfterKey2 = params.AfterKey) === null || _params$AfterKey2 === void 0 ? void 0 : _params$AfterKey2.ToConcatenatedString(),
45302
45447
  _fromEngine: params._fromEngine,
45303
45448
  Exempt: (_params$Telemetry3 = params.Telemetry) === null || _params$Telemetry3 === void 0 ? void 0 : _params$Telemetry3.Exempt,
45304
45449
  ExemptReason: (_params$Telemetry4 = params.Telemetry) === null || _params$Telemetry4 === void 0 ? void 0 : _params$Telemetry4.Reason
@@ -50081,6 +50226,492 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
50081
50226
  }(dist/* BaseSingleton */.tC);
50082
50227
  _BaseEngine = BaseEngine;
50083
50228
  _BaseEngine._providerInstances = new Map();
50229
+ ;// ../../MJCore/dist/generic/BaseEntitySaveQueue.js
50230
+ /* unused harmony import specifier */ var KeyedSerialTaskQueue;
50231
+ /* unused harmony import specifier */ var BaseEntitySaveQueue_EntitySaveOptions;
50232
+ /* unused harmony import specifier */ var BaseEntitySaveQueue_LogError;
50233
+ function BaseEntitySaveQueue_typeof(o) { "@babel/helpers - typeof"; return BaseEntitySaveQueue_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; }, BaseEntitySaveQueue_typeof(o); }
50234
+ function BaseEntitySaveQueue_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 BaseEntitySaveQueue_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]())) : (BaseEntitySaveQueue_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, BaseEntitySaveQueue_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, BaseEntitySaveQueue_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), BaseEntitySaveQueue_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", BaseEntitySaveQueue_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), BaseEntitySaveQueue_regeneratorDefine2(u), BaseEntitySaveQueue_regeneratorDefine2(u, o, "Generator"), BaseEntitySaveQueue_regeneratorDefine2(u, n, function () { return this; }), BaseEntitySaveQueue_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (BaseEntitySaveQueue_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
50235
+ function BaseEntitySaveQueue_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } BaseEntitySaveQueue_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { BaseEntitySaveQueue_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)); }, BaseEntitySaveQueue_regeneratorDefine2(e, r, n, t); }
50236
+ function BaseEntitySaveQueue_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); }
50237
+ function BaseEntitySaveQueue_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { BaseEntitySaveQueue_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { BaseEntitySaveQueue_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
50238
+ function BaseEntitySaveQueue_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
50239
+ function BaseEntitySaveQueue_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, BaseEntitySaveQueue_toPropertyKey(o.key), o); } }
50240
+ function BaseEntitySaveQueue_createClass(e, r, t) { return r && BaseEntitySaveQueue_defineProperties(e.prototype, r), t && BaseEntitySaveQueue_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
50241
+ function BaseEntitySaveQueue_toPropertyKey(t) { var i = BaseEntitySaveQueue_toPrimitive(t, "string"); return "symbol" == BaseEntitySaveQueue_typeof(i) ? i : i + ""; }
50242
+ function BaseEntitySaveQueue_toPrimitive(t, r) { if ("object" != BaseEntitySaveQueue_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != BaseEntitySaveQueue_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
50243
+ /**
50244
+ * @fileoverview Entity-aware façade over {@link KeyedSerialTaskQueue} for the fire-and-forget save
50245
+ * pattern. Captures the `Save()` calls, `IgnoreDirtyState` force-persist, and error extraction that
50246
+ * the agent-step / action-log / prompt-run logging sites otherwise hand-roll. The key correctness
50247
+ * property is structural: `Update`'s mutation runs *inside* the post-INSERT task, so it can never be
50248
+ * reverted by the INSERT's `finalizeSave` reload (the "stuck at Running" race becomes impossible).
50249
+ * @module @memberjunction/core
50250
+ */
50251
+
50252
+
50253
+
50254
+ /**
50255
+ * A per-entity-instance serial save queue. INSERT and UPDATE of the same `BaseEntity` instance are
50256
+ * serialized (the UPDATE waits for the INSERT to land); different entities save concurrently. All
50257
+ * saves are fire-and-forget and **never throw outward** — a failed `Save()` (returned `false` or a
50258
+ * thrown error) is logged and counted; call {@link Flush} at a run/goal boundary to await them and
50259
+ * surface the failure count.
50260
+ */
50261
+ var BaseEntitySaveQueue = /*#__PURE__*/(/* unused pure expression or super */ null && (function () {
50262
+ /**
50263
+ * @param opts.onError Optional handler for a failed save's diagnostic message. Defaults to the
50264
+ * global `LogError`. Consumers with structured logging (e.g. a category/metadata logger) pass
50265
+ * their own so failures stay in their log stream.
50266
+ */
50267
+ function BaseEntitySaveQueue(opts) {
50268
+ BaseEntitySaveQueue_classCallCheck(this, BaseEntitySaveQueue);
50269
+ this.queue = new KeyedSerialTaskQueue();
50270
+ this.onError = opts === null || opts === void 0 ? void 0 : opts.onError;
50271
+ }
50272
+ /**
50273
+ * Fire-and-forget INSERT of a freshly `NewRecord()`'d entity. The entity instance is the
50274
+ * serialization key, so a subsequent {@link Update} of the same instance waits for this to land.
50275
+ */
50276
+ return BaseEntitySaveQueue_createClass(BaseEntitySaveQueue, [{
50277
+ key: "Insert",
50278
+ value: function Insert(entity) {
50279
+ var _this = this;
50280
+ var label = this.labelFor('Insert', entity);
50281
+ void this.queue.enqueue(entity, function () {
50282
+ return _this.runSave(entity, label);
50283
+ }, {
50284
+ isOk: function isOk(ok) {
50285
+ return ok === true;
50286
+ },
50287
+ label: label
50288
+ });
50289
+ }
50290
+ /**
50291
+ * Fire-and-forget UPDATE chained after the entity's INSERT. `applyMutation` (if given) runs INSIDE
50292
+ * the post-INSERT task — after `finalizeSave`'s reload — so its values always survive; the save is
50293
+ * force-persisted with `IgnoreDirtyState`. Pass no mutation only when the fields are already set
50294
+ * AND cannot race an in-flight INSERT.
50295
+ */
50296
+ }, {
50297
+ key: "Update",
50298
+ value: function Update(entity, applyMutation) {
50299
+ var _this2 = this;
50300
+ var label = this.labelFor('Update', entity);
50301
+ var options = new BaseEntitySaveQueue_EntitySaveOptions();
50302
+ options.IgnoreDirtyState = true;
50303
+ void this.queue.enqueue(entity, function () {
50304
+ return _this2.runSave(entity, label, options, applyMutation);
50305
+ }, {
50306
+ isOk: function isOk(ok) {
50307
+ return ok === true;
50308
+ },
50309
+ label: label
50310
+ });
50311
+ }
50312
+ /** Awaits all pending saves and returns failure diagnostics. Call at the run/goal finalize boundary. */
50313
+ }, {
50314
+ key: "Flush",
50315
+ value: function Flush() {
50316
+ return this.queue.flush();
50317
+ }
50318
+ /**
50319
+ * Applies the optional mutation, saves, and returns success — logging and swallowing both a
50320
+ * `false` result and a thrown error so a fire-and-forget save can never surface as an unhandled
50321
+ * rejection (failures are counted via the queue's `isOk`).
50322
+ */
50323
+ }, {
50324
+ key: "runSave",
50325
+ value: (function () {
50326
+ var _runSave = BaseEntitySaveQueue_asyncToGenerator(/*#__PURE__*/BaseEntitySaveQueue_regenerator().m(function _callee(entity, label, options, applyMutation) {
50327
+ var ok, _t;
50328
+ return BaseEntitySaveQueue_regenerator().w(function (_context) {
50329
+ while (1) switch (_context.p = _context.n) {
50330
+ case 0:
50331
+ _context.p = 0;
50332
+ if (applyMutation) {
50333
+ applyMutation(entity);
50334
+ }
50335
+ _context.n = 1;
50336
+ return entity.Save(options);
50337
+ case 1:
50338
+ ok = _context.v;
50339
+ if (!ok) {
50340
+ this.logFailure("".concat(label, " failed: ").concat(this.saveError(entity)));
50341
+ }
50342
+ return _context.a(2, ok);
50343
+ case 2:
50344
+ _context.p = 2;
50345
+ _t = _context.v;
50346
+ this.logFailure("".concat(label, " threw: ").concat(_t instanceof Error ? _t.message : String(_t)));
50347
+ return _context.a(2, false);
50348
+ }
50349
+ }, _callee, this, [[0, 2]]);
50350
+ }));
50351
+ function runSave(_x, _x2, _x3, _x4) {
50352
+ return _runSave.apply(this, arguments);
50353
+ }
50354
+ return runSave;
50355
+ }() /** Routes a failure message to the caller-supplied handler, or the global `LogError` by default. */)
50356
+ }, {
50357
+ key: "logFailure",
50358
+ value: function logFailure(message) {
50359
+ if (this.onError) {
50360
+ this.onError(message);
50361
+ } else {
50362
+ BaseEntitySaveQueue_LogError(message);
50363
+ }
50364
+ }
50365
+ }, {
50366
+ key: "labelFor",
50367
+ value: function labelFor(op, entity) {
50368
+ var name = 'entity';
50369
+ try {
50370
+ var _entity$EntityInfo$Na, _entity$EntityInfo;
50371
+ name = (_entity$EntityInfo$Na = (_entity$EntityInfo = entity.EntityInfo) === null || _entity$EntityInfo === void 0 ? void 0 : _entity$EntityInfo.Name) !== null && _entity$EntityInfo$Na !== void 0 ? _entity$EntityInfo$Na : 'entity';
50372
+ } catch (_unused) {
50373
+ /* EntityInfo unavailable (e.g. a bare mock) — fall back to the generic label */
50374
+ }
50375
+ return "BaseEntitySaveQueue.".concat(op, "(").concat(name, ")");
50376
+ }
50377
+ }, {
50378
+ key: "saveError",
50379
+ value: function saveError(entity) {
50380
+ var _entity$LatestResult$, _entity$LatestResult;
50381
+ return (_entity$LatestResult$ = (_entity$LatestResult = entity.LatestResult) === null || _entity$LatestResult === void 0 ? void 0 : _entity$LatestResult.CompleteMessage) !== null && _entity$LatestResult$ !== void 0 ? _entity$LatestResult$ : 'Save returned false';
50382
+ }
50383
+ }]);
50384
+ }()));
50385
+ ;// ../../MJCore/dist/generic/EntityFieldRules.js
50386
+ /* unused harmony import specifier */ var FieldRulesEvaluator;
50387
+ /* unused harmony import specifier */ var EntityFieldRules_EntityFieldTSType;
50388
+ /* unused harmony import specifier */ var EntityFieldRules_Metadata;
50389
+ /* unused harmony import specifier */ var EntityFieldRules_RunView;
50390
+ function EntityFieldRules_typeof(o) { "@babel/helpers - typeof"; return EntityFieldRules_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; }, EntityFieldRules_typeof(o); }
50391
+ function EntityFieldRules_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = EntityFieldRules_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; } } }; }
50392
+ function EntityFieldRules_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return EntityFieldRules_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? EntityFieldRules_arrayLikeToArray(r, a) : void 0; } }
50393
+ function EntityFieldRules_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
50394
+ function EntityFieldRules_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 EntityFieldRules_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]())) : (EntityFieldRules_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, EntityFieldRules_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, EntityFieldRules_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), EntityFieldRules_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", EntityFieldRules_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), EntityFieldRules_regeneratorDefine2(u), EntityFieldRules_regeneratorDefine2(u, o, "Generator"), EntityFieldRules_regeneratorDefine2(u, n, function () { return this; }), EntityFieldRules_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (EntityFieldRules_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
50395
+ function EntityFieldRules_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } EntityFieldRules_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { EntityFieldRules_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)); }, EntityFieldRules_regeneratorDefine2(e, r, n, t); }
50396
+ function EntityFieldRules_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
50397
+ function EntityFieldRules_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? EntityFieldRules_ownKeys(Object(t), !0).forEach(function (r) { EntityFieldRules_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : EntityFieldRules_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
50398
+ function EntityFieldRules_defineProperty(e, r, t) { return (r = EntityFieldRules_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
50399
+ function EntityFieldRules_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); }
50400
+ function EntityFieldRules_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { EntityFieldRules_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { EntityFieldRules_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
50401
+ function EntityFieldRules_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
50402
+ function EntityFieldRules_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, EntityFieldRules_toPropertyKey(o.key), o); } }
50403
+ function EntityFieldRules_createClass(e, r, t) { return r && EntityFieldRules_defineProperties(e.prototype, r), t && EntityFieldRules_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
50404
+ function EntityFieldRules_toPropertyKey(t) { var i = EntityFieldRules_toPrimitive(t, "string"); return "symbol" == EntityFieldRules_typeof(i) ? i : i + ""; }
50405
+ function EntityFieldRules_toPrimitive(t, r) { if ("object" != EntityFieldRules_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != EntityFieldRules_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
50406
+ /**
50407
+ * @fileoverview Metadata-aware field rules for MemberJunction entities — the higher-order sibling of
50408
+ * the pure field-rules engine in `@memberjunction/global`.
50409
+ *
50410
+ * The pure engine ({@link FieldRulesEvaluator} / {@link FieldTransformEngine} in `@memberjunction/global`)
50411
+ * is deliberately metadata-blind: it computes a per-field diff from a plain `Record<string, unknown>`
50412
+ * and an injected lookup resolver, so it can run anywhere (client, server, integration sync — wherever
50413
+ * the "record" came from). {@link EntityFieldRules} layers the things that only make sense when the
50414
+ * **target is a real MJ entity**, and which need the metadata layer in this package:
50415
+ *
50416
+ * 1. **Validation** — does each rule's target field exist on the entity, and is it writable
50417
+ * (not a primary key / read-only / virtual)? Source `field` references valid? This is a pre-flight
50418
+ * check a UX can run before anyone presses "Run".
50419
+ * 2. **Type coercion** — a formula that yields the string `"42"` becomes the number `42` for a numeric
50420
+ * column, using each field's {@link EntityFieldInfo.TSType}. The pure engine produces raw values;
50421
+ * this aligns them to the entity's actual SQL types.
50422
+ * 3. **Entity lookups** — a built-in `RunView`-backed resolver for `lookup` rule sources.
50423
+ * 4. **Apply** — write the computed values onto a {@link BaseEntity} and `Save()`, so MJ's Record
50424
+ * Changes versioning captures the before/after automatically. Dry-run returns the diff and writes nothing.
50425
+ *
50426
+ * The **target is always an MJ entity**; the **source** may be the entity's own fields plus an optional
50427
+ * injected `context` (data context, query result, agent output, related-entity lookups) — all data you
50428
+ * already hold. When the *other side* is a live external system (its own protocol, auth, match
50429
+ * resolution, sync direction), that is the domain of `@memberjunction/integration`, which uses the same
50430
+ * pure transform engine for its per-field transforms. One engine, two purpose-built layers.
50431
+ */
50432
+
50433
+
50434
+
50435
+
50436
+ /**
50437
+ * Metadata-aware application of a {@link FieldRuleSet} to MJ entity records. Instantiate once per bulk
50438
+ * run and reuse across records so the underlying expression cache is shared. Holds an acting user for
50439
+ * the built-in lookup resolver.
50440
+ */
50441
+ var EntityFieldRules = /*#__PURE__*/(/* unused pure expression or super */ null && (function () {
50442
+ /**
50443
+ * @param contextUser - The acting user, used by the built-in `RunView`-backed lookup resolver
50444
+ * (required server-side; client-side may omit it).
50445
+ * @param promptResolver - Optional resolver for `prompt` rule sources. Core does not depend on the AI
50446
+ * stack, so this is injected by a higher layer that has an `AIPromptRunner` (the bulk-update
50447
+ * processor supplies one). Omit it and any `prompt` rule reports a clear error instead of running.
50448
+ * @param entityDocumentResolver - Optional resolver for `entityDocument` rule sources. Core does not
50449
+ * depend on the templates/AI stack, so this is injected by a higher layer that can render an Entity
50450
+ * Document (the processor supplies one). Omit it and any `entityDocument` rule reports a clear error.
50451
+ */
50452
+ function EntityFieldRules(contextUser, promptResolver, entityDocumentResolver) {
50453
+ EntityFieldRules_classCallCheck(this, EntityFieldRules);
50454
+ this.contextUser = contextUser;
50455
+ this.evaluator = new FieldRulesEvaluator({
50456
+ LookupResolver: this.buildLookupResolver(),
50457
+ PromptResolver: promptResolver,
50458
+ EntityDocumentResolver: entityDocumentResolver
50459
+ });
50460
+ }
50461
+ /**
50462
+ * Pre-flight validation of a rule set against an entity's metadata. Pure + synchronous — safe to run
50463
+ * in a UX on every edit. Checks each rule's target field exists and is writable, and that any `field`
50464
+ * source reference resolves to a real field.
50465
+ *
50466
+ * @param entityName - The target entity.
50467
+ * @param ruleSet - The rules to validate.
50468
+ * @param provider - Metadata provider to resolve the entity (defaults to the global provider). Pass
50469
+ * the owning provider in multi-provider contexts.
50470
+ */
50471
+ return EntityFieldRules_createClass(EntityFieldRules, [{
50472
+ key: "ComputeForEntity",
50473
+ value: (
50474
+ /**
50475
+ * Computes the per-field changes for a loaded entity — WITHOUT mutating it — coercing each new value
50476
+ * to the target field's type. This is the dry-run primitive.
50477
+ *
50478
+ * @param entity - A loaded entity (its current values are the "old" side of the diff).
50479
+ * @param ruleSet - The rules to evaluate.
50480
+ * @param context - Optional extra data the rules may reference (merged over the entity's fields).
50481
+ */
50482
+ function () {
50483
+ var _ComputeForEntity = EntityFieldRules_asyncToGenerator(/*#__PURE__*/EntityFieldRules_regenerator().m(function _callee(entity, ruleSet, context) {
50484
+ var _this = this;
50485
+ var record, changes;
50486
+ return EntityFieldRules_regenerator().w(function (_context) {
50487
+ while (1) switch (_context.n) {
50488
+ case 0:
50489
+ record = context ? EntityFieldRules_objectSpread(EntityFieldRules_objectSpread({}, entity.GetAll()), context) : entity.GetAll();
50490
+ _context.n = 1;
50491
+ return this.evaluator.ComputeChanges(record, ruleSet);
50492
+ case 1:
50493
+ changes = _context.v;
50494
+ return _context.a(2, changes.map(function (change) {
50495
+ return _this.coerceChange(change, entity);
50496
+ }));
50497
+ }
50498
+ }, _callee, this);
50499
+ }));
50500
+ function ComputeForEntity(_x, _x2, _x3) {
50501
+ return _ComputeForEntity.apply(this, arguments);
50502
+ }
50503
+ return ComputeForEntity;
50504
+ }()
50505
+ /**
50506
+ * Computes and (unless `DryRun`) writes the rule results onto the entity, then `Save()`s it — so MJ
50507
+ * Record Changes versioning captures the before/after. No write occurs if any rule errored or nothing
50508
+ * changed.
50509
+ *
50510
+ * @param entity - A loaded entity to update.
50511
+ * @param ruleSet - The rules to apply.
50512
+ * @param options - {@link EntityFieldRulesOptions} (context + dry-run).
50513
+ */
50514
+ )
50515
+ }, {
50516
+ key: "ApplyToEntity",
50517
+ value: (function () {
50518
+ var _ApplyToEntity = EntityFieldRules_asyncToGenerator(/*#__PURE__*/EntityFieldRules_regenerator().m(function _callee2(entity, ruleSet, options) {
50519
+ var _entity$LatestResult$, _entity$LatestResult;
50520
+ var changes, errors, toApply, base, _iterator, _step, change, saved;
50521
+ return EntityFieldRules_regenerator().w(function (_context2) {
50522
+ while (1) switch (_context2.n) {
50523
+ case 0:
50524
+ _context2.n = 1;
50525
+ return this.ComputeForEntity(entity, ruleSet, options === null || options === void 0 ? void 0 : options.Context);
50526
+ case 1:
50527
+ changes = _context2.v;
50528
+ errors = changes.filter(function (c) {
50529
+ return c.Error;
50530
+ }).map(function (c) {
50531
+ return "".concat(c.Field, ": ").concat(c.Error);
50532
+ });
50533
+ toApply = changes.filter(function (c) {
50534
+ return c.Applied && c.Changed && !c.Error;
50535
+ });
50536
+ base = {
50537
+ Changes: changes,
50538
+ AppliedFields: toApply.map(function (c) {
50539
+ return c.Field;
50540
+ }),
50541
+ Saved: false,
50542
+ DryRun: !!(options !== null && options !== void 0 && options.DryRun),
50543
+ Errors: errors
50544
+ };
50545
+ if (!(options !== null && options !== void 0 && options.DryRun || errors.length > 0 || toApply.length === 0)) {
50546
+ _context2.n = 2;
50547
+ break;
50548
+ }
50549
+ return _context2.a(2, base);
50550
+ case 2:
50551
+ _iterator = EntityFieldRules_createForOfIteratorHelper(toApply);
50552
+ try {
50553
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
50554
+ change = _step.value;
50555
+ // Dynamic, rule-driven field names — the legitimate use of Set() (no compile-time property).
50556
+ entity.Set(change.Field, change.NewValue);
50557
+ }
50558
+ } catch (err) {
50559
+ _iterator.e(err);
50560
+ } finally {
50561
+ _iterator.f();
50562
+ }
50563
+ _context2.n = 3;
50564
+ return entity.Save();
50565
+ case 3:
50566
+ saved = _context2.v;
50567
+ return _context2.a(2, EntityFieldRules_objectSpread(EntityFieldRules_objectSpread({}, base), {}, {
50568
+ Saved: saved,
50569
+ SaveError: saved ? undefined : (_entity$LatestResult$ = (_entity$LatestResult = entity.LatestResult) === null || _entity$LatestResult === void 0 ? void 0 : _entity$LatestResult.CompleteMessage) !== null && _entity$LatestResult$ !== void 0 ? _entity$LatestResult$ : 'save failed'
50570
+ }));
50571
+ }
50572
+ }, _callee2, this);
50573
+ }));
50574
+ function ApplyToEntity(_x4, _x5, _x6) {
50575
+ return _ApplyToEntity.apply(this, arguments);
50576
+ }
50577
+ return ApplyToEntity;
50578
+ }() /** Coerces a computed change's NewValue to the target field's TS type (no-op for un-applied/errored). */)
50579
+ }, {
50580
+ key: "coerceChange",
50581
+ value: function coerceChange(change, entity) {
50582
+ if (!change.Applied || change.Error || change.NewValue == null) {
50583
+ return change;
50584
+ }
50585
+ var field = entity.EntityInfo.Fields.find(function (f) {
50586
+ return f.Name.trim().toLowerCase() === change.Field.trim().toLowerCase();
50587
+ });
50588
+ if (!field) {
50589
+ return change;
50590
+ }
50591
+ var coerced = EntityFieldRules.coerceToType(change.NewValue, field.TSType);
50592
+ return coerced === change.NewValue ? change : EntityFieldRules_objectSpread(EntityFieldRules_objectSpread({}, change), {}, {
50593
+ NewValue: coerced,
50594
+ Changed: !EntityFieldRules.equal(change.OldValue, coerced)
50595
+ });
50596
+ }
50597
+ /** Aligns a raw value to an entity field's TS type. Leaves the value untouched when it can't convert. */
50598
+ }, {
50599
+ key: "buildLookupResolver",
50600
+ value: /** A `RunView`-backed resolver for `lookup` rule sources (match one row, return one field). */
50601
+ function buildLookupResolver() {
50602
+ var _this2 = this;
50603
+ return /*#__PURE__*/function () {
50604
+ var _ref = EntityFieldRules_asyncToGenerator(/*#__PURE__*/EntityFieldRules_regenerator().m(function _callee3(lookup) {
50605
+ var _result$Results;
50606
+ var result;
50607
+ return EntityFieldRules_regenerator().w(function (_context3) {
50608
+ while (1) switch (_context3.n) {
50609
+ case 0:
50610
+ _context3.n = 1;
50611
+ return new EntityFieldRules_RunView().RunView({
50612
+ EntityName: lookup.Entity,
50613
+ ExtraFilter: "[".concat(lookup.MatchField, "] = ").concat(EntityFieldRules.sqlLiteral(lookup.MatchValue)),
50614
+ Fields: [lookup.ReturnField],
50615
+ MaxRows: 1,
50616
+ ResultType: 'simple'
50617
+ }, _this2.contextUser);
50618
+ case 1:
50619
+ result = _context3.v;
50620
+ if (!(!result.Success || !((_result$Results = result.Results) !== null && _result$Results !== void 0 && _result$Results.length))) {
50621
+ _context3.n = 2;
50622
+ break;
50623
+ }
50624
+ return _context3.a(2, undefined);
50625
+ case 2:
50626
+ return _context3.a(2, result.Results[0][lookup.ReturnField]);
50627
+ }
50628
+ }, _callee3);
50629
+ }));
50630
+ return function (_x7) {
50631
+ return _ref.apply(this, arguments);
50632
+ };
50633
+ }();
50634
+ }
50635
+ /** Minimal SQL literal rendering for the lookup filter (escapes string quotes; numbers/bools inline). */
50636
+ }], [{
50637
+ key: "Validate",
50638
+ value: function Validate(entityName, ruleSet, provider) {
50639
+ var md = provider !== null && provider !== void 0 ? provider : EntityFieldRules_Metadata.Provider;
50640
+ var entity = md === null || md === void 0 ? void 0 : md.EntityByName(entityName);
50641
+ if (!entity) {
50642
+ return {
50643
+ Valid: false,
50644
+ Errors: ["entity '".concat(entityName, "' not found in metadata")]
50645
+ };
50646
+ }
50647
+ var field = function field(name) {
50648
+ return entity.Fields.find(function (f) {
50649
+ return f.Name.trim().toLowerCase() === name.trim().toLowerCase();
50650
+ });
50651
+ };
50652
+ var errors = [];
50653
+ ruleSet.Rules.forEach(function (rule, i) {
50654
+ var target = field(rule.TargetField);
50655
+ if (!target) {
50656
+ errors.push("rule ".concat(i + 1, ": target field '").concat(rule.TargetField, "' does not exist on '").concat(entityName, "'"));
50657
+ } else if (target.ReadOnly) {
50658
+ errors.push("rule ".concat(i + 1, ": target field '").concat(rule.TargetField, "' is read-only and cannot be set"));
50659
+ }
50660
+ if (rule.Source.Kind === 'field' && !field(rule.Source.Field)) {
50661
+ errors.push("rule ".concat(i + 1, ": source field '").concat(rule.Source.Field, "' does not exist on '").concat(entityName, "'"));
50662
+ }
50663
+ });
50664
+ return {
50665
+ Valid: errors.length === 0,
50666
+ Errors: errors
50667
+ };
50668
+ }
50669
+ }, {
50670
+ key: "coerceToType",
50671
+ value: function coerceToType(value, tsType) {
50672
+ switch (tsType) {
50673
+ case EntityFieldRules_EntityFieldTSType.Number:
50674
+ {
50675
+ var n = Number(value);
50676
+ return Number.isFinite(n) ? n : value;
50677
+ }
50678
+ case EntityFieldRules_EntityFieldTSType.Boolean:
50679
+ {
50680
+ if (typeof value === 'boolean') return value;
50681
+ if (typeof value === 'number') return value !== 0;
50682
+ var s = String(value).toLowerCase().trim();
50683
+ if (s === 'true' || s === '1' || s === 'yes') return true;
50684
+ if (s === 'false' || s === '0' || s === 'no') return false;
50685
+ return value;
50686
+ }
50687
+ case EntityFieldRules_EntityFieldTSType.Date:
50688
+ {
50689
+ var d = value instanceof Date ? value : new Date(String(value));
50690
+ return isNaN(d.getTime()) ? value : d;
50691
+ }
50692
+ case EntityFieldRules_EntityFieldTSType.String:
50693
+ return typeof value === 'string' ? value : String(value);
50694
+ default:
50695
+ return value;
50696
+ }
50697
+ }
50698
+ }, {
50699
+ key: "equal",
50700
+ value: function equal(a, b) {
50701
+ if (a === b) return true;
50702
+ if (a instanceof Date && b instanceof Date) return a.getTime() === b.getTime();
50703
+ return a == null && b == null;
50704
+ }
50705
+ }, {
50706
+ key: "sqlLiteral",
50707
+ value: function sqlLiteral(value) {
50708
+ if (value == null) return 'NULL';
50709
+ if (typeof value === 'number' || typeof value === 'bigint') return String(value);
50710
+ if (typeof value === 'boolean') return value ? '1' : '0';
50711
+ return "'".concat(String(value).replace(/'/g, "''"), "'");
50712
+ }
50713
+ }]);
50714
+ }()));
50084
50715
  ;// ../../MJCore/dist/generic/baseRemotableOperation.js
50085
50716
  function baseRemotableOperation_typeof(o) { "@babel/helpers - typeof"; return baseRemotableOperation_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; }, baseRemotableOperation_typeof(o); }
50086
50717
  function baseRemotableOperation_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 baseRemotableOperation_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]())) : (baseRemotableOperation_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, baseRemotableOperation_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, baseRemotableOperation_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), baseRemotableOperation_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", baseRemotableOperation_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), baseRemotableOperation_regeneratorDefine2(u), baseRemotableOperation_regeneratorDefine2(u, o, "Generator"), baseRemotableOperation_regeneratorDefine2(u, n, function () { return this; }), baseRemotableOperation_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (baseRemotableOperation_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
@@ -56098,6 +56729,8 @@ var PermissionDeniedError = /*#__PURE__*/function (_Error) {
56098
56729
 
56099
56730
 
56100
56731
 
56732
+
56733
+
56101
56734
 
56102
56735
 
56103
56736
 
@@ -56119,8 +56752,8 @@ __webpack_require__.r(__webpack_exports__);
56119
56752
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
56120
56753
  /* harmony export */ UserViewEngine: () => (/* binding */ UserViewEngine)
56121
56754
  /* harmony export */ });
56122
- /* harmony import */ var _memberjunction_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(809);
56123
- /* harmony import */ var _memberjunction_global__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(297);
56755
+ /* harmony import */ var _memberjunction_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(949);
56756
+ /* harmony import */ var _memberjunction_global__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);
56124
56757
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
56125
56758
  function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
56126
56759
  function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
@@ -56474,7 +57107,7 @@ var UserViewEngine = /*#__PURE__*/function (_BaseEngine) {
56474
57107
 
56475
57108
  /***/ },
56476
57109
 
56477
- /***/ 612
57110
+ /***/ 499
56478
57111
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
56479
57112
 
56480
57113
  "use strict";
@@ -56485,12 +57118,12 @@ __webpack_require__.d(__webpack_exports__, {
56485
57118
  o1C: () => (/* reexport */ ViewInfo)
56486
57119
  });
56487
57120
 
56488
- // UNUSED EXPORTS: AIAgentPermissionProvider, AccessControlRuleProvider, ApplicationRolePermissionProvider, ApplicationSettingEngine, ArtifactExtractor, ArtifactMetadataEngine, ArtifactPermissionProvider, AuditLogTypeEngine, BuildUnregisteredMimeError, CollectionPermissionProvider, ConversationEngine, CreateShareNotification, DEFAULT_AGGREGATE_DISPLAY, DashboardEngine, DashboardPermissionProvider, DecideInlineStorage, EncryptionEngineBase, EntityPermissionProvider, EntityPermissionType, EntitySaveOptions, ExtractBase64FromDataUrl, FileStorageEngineBase, FindArtifactTypeConflicts, GeoDataEngine, INJECTABLE_NOTE_STATUSES, InjectableNoteStatusSQLList, InstanceConfigEngine, InteractiveFormsEngine, IsInjectableNoteStatus, IsTextyMime, KnowledgeHubMetadataEngine, LoadMJAccessControlRuleEntityExtended, LoadMJArtifactPermissionEntityExtended, LoadMJCollectionPermissionEntityExtended, LoadMJConversationDetailEntityExtended, LoadMJDashboardPermissionEntityExtended, LoadPermissionEntityExtensions, LoadPermissionProviders, MCPEngine, MJAIActionEntity, MJAIActionSchema, MJAIAgentActionEntity, MJAIAgentActionSchema, MJAIAgentArtifactTypeEntity, MJAIAgentArtifactTypeSchema, MJAIAgentCategoryEntity, MJAIAgentCategorySchema, MJAIAgentChannelEntity, MJAIAgentChannelSchema, MJAIAgentClientToolEntity, MJAIAgentClientToolSchema, MJAIAgentCoAgentEntity, MJAIAgentCoAgentSchema, MJAIAgentConfigurationEntity, MJAIAgentConfigurationSchema, MJAIAgentDataSourceEntity, MJAIAgentDataSourceSchema, MJAIAgentEntity, MJAIAgentExampleEntity, MJAIAgentExampleSchema, MJAIAgentLearningCycleEntity, MJAIAgentLearningCycleSchema, MJAIAgentModalityEntity, MJAIAgentModalitySchema, MJAIAgentModelEntity, MJAIAgentModelSchema, MJAIAgentNoteEntity, MJAIAgentNoteSchema, MJAIAgentNoteTypeEntity, MJAIAgentNoteTypeSchema, MJAIAgentPermissionEntity, MJAIAgentPermissionSchema, MJAIAgentPromptEntity, MJAIAgentPromptSchema, MJAIAgentRelationshipEntity, MJAIAgentRelationshipSchema, MJAIAgentRequestEntity, MJAIAgentRequestSchema, MJAIAgentRequestTypeEntity, MJAIAgentRequestTypeSchema, MJAIAgentRunEntity, MJAIAgentRunMediaEntity, MJAIAgentRunMediaSchema, MJAIAgentRunSchema, MJAIAgentRunStepEntity, MJAIAgentRunStepSchema, MJAIAgentSchema, MJAIAgentSearchScopeEntity, MJAIAgentSearchScopeSchema, MJAIAgentSessionBridgeEntity, MJAIAgentSessionBridgeParticipantEntity, MJAIAgentSessionBridgeParticipantSchema, MJAIAgentSessionBridgeSchema, MJAIAgentSessionChannelEntity, MJAIAgentSessionChannelSchema, MJAIAgentSessionEntity, MJAIAgentSessionSchema, MJAIAgentStepEntity, MJAIAgentStepPathEntity, MJAIAgentStepPathSchema, MJAIAgentStepSchema, MJAIAgentTypeEntity, MJAIAgentTypeSchema, MJAIArchitectureEntity, MJAIArchitectureSchema, MJAIBridgeAgentIdentityEntity, MJAIBridgeAgentIdentitySchema, MJAIBridgeProviderChannelEntity, MJAIBridgeProviderChannelSchema, MJAIBridgeProviderEntity, MJAIBridgeProviderSchema, MJAIClientToolDefinitionEntity, MJAIClientToolDefinitionSchema, MJAIConfigurationEntity, MJAIConfigurationParamEntity, MJAIConfigurationParamSchema, MJAIConfigurationSchema, MJAICredentialBindingEntity, MJAICredentialBindingSchema, MJAIModalityEntity, MJAIModalitySchema, MJAIModelActionEntity, MJAIModelActionSchema, MJAIModelArchitectureEntity, MJAIModelArchitectureSchema, MJAIModelCostEntity, MJAIModelCostSchema, MJAIModelEntity, MJAIModelModalityEntity, MJAIModelModalitySchema, MJAIModelPriceTypeEntity, MJAIModelPriceTypeSchema, MJAIModelPriceUnitTypeEntity, MJAIModelPriceUnitTypeSchema, MJAIModelSchema, MJAIModelTypeEntity, MJAIModelTypeSchema, MJAIModelVendorEntity, MJAIModelVendorSchema, MJAIPromptCategoryEntity, MJAIPromptCategorySchema, MJAIPromptEntity, MJAIPromptModelEntity, MJAIPromptModelSchema, MJAIPromptRunEntity, MJAIPromptRunMediaEntity, MJAIPromptRunMediaSchema, MJAIPromptRunSchema, MJAIPromptSchema, MJAIPromptTypeEntity, MJAIPromptTypeSchema, MJAIRemoteBrowserProviderEntity, MJAIRemoteBrowserProviderSchema, MJAIResultCacheEntity, MJAIResultCacheSchema, MJAIVendorEntity, MJAIVendorSchema, MJAIVendorTypeDefinitionEntity, MJAIVendorTypeDefinitionSchema, MJAIVendorTypeEntity, MJAIVendorTypeSchema, MJAPIApplicationEntity, MJAPIApplicationSchema, MJAPIApplicationScopeEntity, MJAPIApplicationScopeSchema, MJAPIKeyApplicationEntity, MJAPIKeyApplicationSchema, MJAPIKeyEntity, MJAPIKeySchema, MJAPIKeyScopeEntity, MJAPIKeyScopeSchema, MJAPIKeyUsageLogEntity, MJAPIKeyUsageLogSchema, MJAPIScopeEntity, MJAPIScopeSchema, MJAccessControlRuleEntity, MJAccessControlRuleEntityExtended, MJAccessControlRuleSchema, MJActionAuthorizationEntity, MJActionAuthorizationSchema, MJActionCategoryEntity, MJActionCategorySchema, MJActionContextEntity, MJActionContextSchema, MJActionContextTypeEntity, MJActionContextTypeSchema, MJActionEntity, MJActionExecutionLogEntity, MJActionExecutionLogSchema, MJActionFilterEntity, MJActionFilterSchema, MJActionLibraryEntity, MJActionLibrarySchema, MJActionParamEntity, MJActionParamSchema, MJActionResultCodeEntity, MJActionResultCodeSchema, MJActionSchema, MJApplicationEntity, MJApplicationEntityEntity, MJApplicationEntitySchema, MJApplicationRoleEntity, MJApplicationRoleSchema, MJApplicationSchema, MJApplicationSettingEntity, MJApplicationSettingSchema, MJArchiveConfigurationEntity, MJArchiveConfigurationEntityEntity, MJArchiveConfigurationEntitySchema, MJArchiveConfigurationSchema, MJArchiveRunDetailEntity, MJArchiveRunDetailSchema, MJArchiveRunEntity, MJArchiveRunSchema, MJArtifactEntity, MJArtifactPermissionEntity, MJArtifactPermissionEntityExtended, MJArtifactPermissionSchema, MJArtifactSchema, MJArtifactTypeEntity, MJArtifactTypeSchema, MJArtifactUseEntity, MJArtifactUseSchema, MJArtifactVersionAttributeEntity, MJArtifactVersionAttributeSchema, MJArtifactVersionEntity, MJArtifactVersionSchema, MJAuditLogEntity, MJAuditLogSchema, MJAuditLogTypeEntity, MJAuditLogTypeSchema, MJAuthorizationEntity, MJAuthorizationRoleEntity, MJAuthorizationRoleSchema, MJAuthorizationSchema, MJClusterAnalysisClusterEntity, MJClusterAnalysisClusterSchema, MJClusterAnalysisEntity, MJClusterAnalysisSchema, MJCollectionArtifactEntity, MJCollectionArtifactSchema, MJCollectionEntity, MJCollectionPermissionEntity, MJCollectionPermissionEntityExtended, MJCollectionPermissionSchema, MJCollectionSchema, MJCommunicationBaseMessageTypeEntity, MJCommunicationBaseMessageTypeSchema, MJCommunicationLogEntity, MJCommunicationLogSchema, MJCommunicationProviderEntity, MJCommunicationProviderMessageTypeEntity, MJCommunicationProviderMessageTypeSchema, MJCommunicationProviderSchema, MJCommunicationRunEntity, MJCommunicationRunSchema, MJCompanyEntity, MJCompanyIntegrationEntity, MJCompanyIntegrationEntityMapEntity, MJCompanyIntegrationEntityMapSchema, MJCompanyIntegrationFieldMapEntity, MJCompanyIntegrationFieldMapSchema, MJCompanyIntegrationRecordMapEntity, MJCompanyIntegrationRecordMapSchema, MJCompanyIntegrationRunAPILogEntity, MJCompanyIntegrationRunAPILogSchema, MJCompanyIntegrationRunDetailEntity, MJCompanyIntegrationRunDetailSchema, MJCompanyIntegrationRunEntity, MJCompanyIntegrationRunSchema, MJCompanyIntegrationSchema, MJCompanyIntegrationSyncWatermarkEntity, MJCompanyIntegrationSyncWatermarkSchema, MJCompanySchema, MJComponentDependencyEntity, MJComponentDependencySchema, MJComponentEntity, MJComponentEntityExtended, MJComponentLibraryEntity, MJComponentLibraryLinkEntity, MJComponentLibraryLinkSchema, MJComponentLibrarySchema, MJComponentRegistryEntity, MJComponentRegistrySchema, MJComponentSchema, MJContentFileTypeEntity, MJContentFileTypeSchema, MJContentItemAttributeEntity, MJContentItemAttributeSchema, 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, MJEntityFormOverrideEntity, MJEntityFormOverrideSchema, 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, MJMagicLinkInviteAllowedDomainEntity, MJMagicLinkInviteAllowedDomainSchema, MJMagicLinkInviteAllowedPathEntity, MJMagicLinkInviteAllowedPathSchema, MJMagicLinkInviteApplicationEntity, MJMagicLinkInviteApplicationSchema, MJMagicLinkInviteEntity, MJMagicLinkInviteRoleEntity, MJMagicLinkInviteRoleSchema, MJMagicLinkInviteSchema, MJMagicLinkRedemptionEntity, MJMagicLinkRedemptionSchema, MJOAuthAuthServerMetadataCacheEntity, MJOAuthAuthServerMetadataCacheSchema, MJOAuthAuthorizationStateEntity, MJOAuthAuthorizationStateSchema, MJOAuthClientRegistrationEntity, MJOAuthClientRegistrationSchema, MJOAuthTokenEntity, MJOAuthTokenSchema, MJOpenAppDependencyEntity, MJOpenAppDependencySchema, MJOpenAppEntity, MJOpenAppInstallHistoryEntity, MJOpenAppInstallHistorySchema, MJOpenAppSchema, MJOutputDeliveryTypeEntity, MJOutputDeliveryTypeSchema, MJOutputFormatTypeEntity, MJOutputFormatTypeSchema, MJOutputTriggerTypeEntity, MJOutputTriggerTypeSchema, MJPermissionDomainEntity, MJPermissionDomainSchema, MJProcessRunDetailEntity, MJProcessRunDetailSchema, MJProcessRunEntity, MJProcessRunSchema, MJProjectEntity, MJProjectSchema, MJPublicLinkEntity, MJPublicLinkSchema, MJQueryCategoryEntity, MJQueryCategorySchema, MJQueryDependencyEntity, MJQueryDependencySchema, MJQueryEntity, MJQueryEntityEntity, MJQueryEntityExtended, MJQueryEntitySchema, MJQueryFieldEntity, MJQueryFieldSchema, MJQueryParameterEntity, MJQueryParameterSchema, MJQueryPermissionEntity, MJQueryPermissionSchema, MJQuerySQLEntity, MJQuerySQLSchema, MJQuerySchema, MJQueueEntity, MJQueueSchema, MJQueueTaskEntity, MJQueueTaskSchema, MJQueueTypeEntity, MJQueueTypeSchema, MJRecommendationEntity, MJRecommendationItemEntity, MJRecommendationItemSchema, MJRecommendationProviderEntity, MJRecommendationProviderSchema, MJRecommendationRunEntity, MJRecommendationRunSchema, MJRecommendationSchema, MJRecordChangeEntity, MJRecordChangeReplayRunEntity, MJRecordChangeReplayRunSchema, MJRecordChangeSchema, MJRecordGeoCodeEntity, MJRecordGeoCodeSchema, MJRecordLinkEntity, MJRecordLinkSchema, MJRecordMergeDeletionLogEntity, MJRecordMergeDeletionLogSchema, MJRecordMergeLogEntity, MJRecordMergeLogSchema, MJRecordProcessCategoryEntity, MJRecordProcessCategorySchema, MJRecordProcessEntity, MJRecordProcessSchema, MJRecordProcessWatermarkEntity, MJRecordProcessWatermarkSchema, MJRemoteOperationCategoryEntity, MJRemoteOperationCategorySchema, MJRemoteOperationEntity, MJRemoteOperationSchema, MJReportCategoryEntity, MJReportCategorySchema, MJReportEntity, MJReportSchema, MJReportSnapshotEntity, MJReportSnapshotSchema, MJReportUserStateEntity, MJReportUserStateSchema, MJReportVersionEntity, MJReportVersionSchema, MJResourceLinkEntity, MJResourceLinkSchema, MJResourcePermissionEntity, MJResourcePermissionEntityExtended, MJResourcePermissionSchema, MJResourceTypeEntity, MJResourceTypeSchema, MJRoleEntity, MJRoleSchema, MJRowLevelSecurityFilterEntity, MJRowLevelSecurityFilterSchema, MJSQLDialectEntity, MJSQLDialectSchema, MJScheduledActionEntity, MJScheduledActionEntityExtended, MJScheduledActionParamEntity, MJScheduledActionParamSchema, MJScheduledActionSchema, MJScheduledJobEntity, MJScheduledJobRunEntity, MJScheduledJobRunSchema, MJScheduledJobSchema, MJScheduledJobTypeEntity, MJScheduledJobTypeSchema, MJSchemaInfoEntity, MJSchemaInfoSchema, MJSearchExecutionLogEntity, MJSearchExecutionLogSchema, MJSearchProviderEntity, MJSearchProviderSchema, MJSearchScopeEntity, MJSearchScopeEntityEntity, MJSearchScopeEntitySchema, MJSearchScopeExternalIndexEntity, MJSearchScopeExternalIndexSchema, MJSearchScopePermissionEntity, MJSearchScopePermissionSchema, MJSearchScopeProviderEntity, MJSearchScopeProviderSchema, MJSearchScopeSchema, MJSearchScopeStorageAccountEntity, MJSearchScopeStorageAccountSchema, MJSearchScopeTestQueryEntity, MJSearchScopeTestQuerySchema, MJSignatureAccountEntity, MJSignatureAccountSchema, MJSignatureProviderEntity, MJSignatureProviderSchema, MJSignatureRequestDocumentEntity, MJSignatureRequestDocumentSchema, MJSignatureRequestEntity, MJSignatureRequestLogEntity, MJSignatureRequestLogSchema, MJSignatureRequestRecipientEntity, MJSignatureRequestRecipientSchema, MJSignatureRequestSchema, MJSkillEntity, MJSkillSchema, MJStateProvinceEntity, MJStateProvinceSchema, MJTagAuditLogEntity, MJTagAuditLogSchema, MJTagCoOccurrenceEntity, MJTagCoOccurrenceSchema, MJTagEntity, MJTagSchema, MJTagScopeEntity, MJTagScopeSchema, MJTagSuggestionEntity, MJTagSuggestionSchema, MJTagSynonymEntity, MJTagSynonymSchema, MJTaggedItemEntity, MJTaggedItemSchema, MJTaskDependencyEntity, MJTaskDependencySchema, MJTaskEntity, MJTaskSchema, MJTaskTypeEntity, MJTaskTypeSchema, MJTemplateCategoryEntity, MJTemplateCategorySchema, MJTemplateContentEntity, MJTemplateContentSchema, MJTemplateContentTypeEntity, MJTemplateContentTypeSchema, MJTemplateEntity, MJTemplateEntityExtended, MJTemplateParamEntity, MJTemplateParamSchema, MJTemplateSchema, MJTestEntity, MJTestRubricEntity, MJTestRubricSchema, MJTestRunEntity, MJTestRunFeedbackEntity, MJTestRunFeedbackSchema, MJTestRunOutputEntity, MJTestRunOutputSchema, MJTestRunOutputTypeEntity, MJTestRunOutputTypeSchema, MJTestRunSchema, MJTestSchema, MJTestSuiteEntity, MJTestSuiteRunEntity, MJTestSuiteRunSchema, MJTestSuiteSchema, MJTestSuiteTestEntity, MJTestSuiteTestSchema, MJTestTypeEntity, MJTestTypeSchema, 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, MJViewTypeEntity, MJViewTypeSchema, 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
57121
+ // UNUSED EXPORTS: AIAgentPermissionProvider, AccessControlRuleProvider, ApplicationRolePermissionProvider, ApplicationSettingEngine, ArtifactExtractor, ArtifactMetadataEngine, ArtifactPermissionProvider, AuditLogTypeEngine, BuildUnregisteredMimeError, CollectionPermissionProvider, ConversationEngine, CreateShareNotification, DEFAULT_AGGREGATE_DISPLAY, DashboardEngine, DashboardPermissionProvider, DecideInlineStorage, EncryptionEngineBase, EntityPermissionProvider, EntityPermissionType, EntitySaveOptions, ExtractBase64FromDataUrl, FileStorageEngineBase, FindArtifactTypeConflicts, GeoDataEngine, INJECTABLE_NOTE_STATUSES, InjectableNoteStatusSQLList, InstanceConfigEngine, InteractiveFormsEngine, IsInjectableNoteStatus, IsTextyMime, KnowledgeHubMetadataEngine, LoadMJAccessControlRuleEntityExtended, LoadMJArtifactPermissionEntityExtended, LoadMJCollectionPermissionEntityExtended, LoadMJConversationDetailEntityExtended, LoadMJDashboardPermissionEntityExtended, LoadPermissionEntityExtensions, LoadPermissionProviders, MCPEngine, MJAIActionEntity, MJAIActionSchema, MJAIAgentActionEntity, MJAIAgentActionSchema, MJAIAgentArtifactTypeEntity, MJAIAgentArtifactTypeSchema, MJAIAgentCategoryEntity, MJAIAgentCategorySchema, MJAIAgentChannelEntity, MJAIAgentChannelSchema, MJAIAgentClientToolEntity, MJAIAgentClientToolSchema, MJAIAgentCoAgentEntity, MJAIAgentCoAgentSchema, MJAIAgentConfigurationEntity, MJAIAgentConfigurationSchema, MJAIAgentDataSourceEntity, MJAIAgentDataSourceSchema, MJAIAgentEntity, MJAIAgentExampleEntity, MJAIAgentExampleSchema, MJAIAgentLearningCycleEntity, MJAIAgentLearningCycleSchema, MJAIAgentModalityEntity, MJAIAgentModalitySchema, MJAIAgentModelEntity, MJAIAgentModelSchema, MJAIAgentNoteEntity, MJAIAgentNoteSchema, MJAIAgentNoteTypeEntity, MJAIAgentNoteTypeSchema, MJAIAgentPermissionEntity, MJAIAgentPermissionSchema, MJAIAgentPromptEntity, MJAIAgentPromptSchema, MJAIAgentRelationshipEntity, MJAIAgentRelationshipSchema, MJAIAgentRequestEntity, MJAIAgentRequestSchema, MJAIAgentRequestTypeEntity, MJAIAgentRequestTypeSchema, MJAIAgentRunEntity, MJAIAgentRunMediaEntity, MJAIAgentRunMediaSchema, MJAIAgentRunSchema, MJAIAgentRunStepEntity, MJAIAgentRunStepSchema, MJAIAgentSchema, MJAIAgentSearchScopeEntity, MJAIAgentSearchScopeSchema, MJAIAgentSessionBridgeEntity, MJAIAgentSessionBridgeParticipantEntity, MJAIAgentSessionBridgeParticipantSchema, MJAIAgentSessionBridgeSchema, MJAIAgentSessionChannelEntity, MJAIAgentSessionChannelSchema, MJAIAgentSessionEntity, MJAIAgentSessionSchema, MJAIAgentStepEntity, MJAIAgentStepPathEntity, MJAIAgentStepPathSchema, MJAIAgentStepSchema, MJAIAgentTypeEntity, MJAIAgentTypeSchema, MJAIArchitectureEntity, MJAIArchitectureSchema, MJAIBridgeAgentIdentityEntity, MJAIBridgeAgentIdentitySchema, MJAIBridgeProviderChannelEntity, MJAIBridgeProviderChannelSchema, MJAIBridgeProviderEntity, MJAIBridgeProviderSchema, MJAIClientToolDefinitionEntity, MJAIClientToolDefinitionSchema, MJAIConfigurationEntity, MJAIConfigurationParamEntity, MJAIConfigurationParamSchema, MJAIConfigurationSchema, MJAICredentialBindingEntity, MJAICredentialBindingSchema, MJAIModalityEntity, MJAIModalitySchema, MJAIModelActionEntity, MJAIModelActionSchema, MJAIModelArchitectureEntity, MJAIModelArchitectureSchema, MJAIModelCostEntity, MJAIModelCostSchema, MJAIModelEntity, MJAIModelModalityEntity, MJAIModelModalitySchema, MJAIModelPriceTypeEntity, MJAIModelPriceTypeSchema, MJAIModelPriceUnitTypeEntity, MJAIModelPriceUnitTypeSchema, MJAIModelSchema, MJAIModelTypeEntity, MJAIModelTypeSchema, MJAIModelVendorEntity, MJAIModelVendorSchema, MJAIPromptCategoryEntity, MJAIPromptCategorySchema, MJAIPromptEntity, MJAIPromptModelEntity, MJAIPromptModelSchema, MJAIPromptRunEntity, MJAIPromptRunMediaEntity, MJAIPromptRunMediaSchema, MJAIPromptRunSchema, MJAIPromptSchema, MJAIPromptTypeEntity, MJAIPromptTypeSchema, MJAIRemoteBrowserProviderEntity, MJAIRemoteBrowserProviderSchema, MJAIResultCacheEntity, MJAIResultCacheSchema, MJAIVendorEntity, MJAIVendorSchema, MJAIVendorTypeDefinitionEntity, MJAIVendorTypeDefinitionSchema, MJAIVendorTypeEntity, MJAIVendorTypeSchema, MJAPIApplicationEntity, MJAPIApplicationSchema, MJAPIApplicationScopeEntity, MJAPIApplicationScopeSchema, MJAPIKeyApplicationEntity, MJAPIKeyApplicationSchema, MJAPIKeyEntity, MJAPIKeySchema, MJAPIKeyScopeEntity, MJAPIKeyScopeSchema, MJAPIKeyUsageLogEntity, MJAPIKeyUsageLogSchema, MJAPIScopeEntity, MJAPIScopeSchema, MJAccessControlRuleEntity, MJAccessControlRuleEntityExtended, MJAccessControlRuleSchema, MJActionAuthorizationEntity, MJActionAuthorizationSchema, MJActionCategoryEntity, MJActionCategorySchema, MJActionContextEntity, MJActionContextSchema, MJActionContextTypeEntity, MJActionContextTypeSchema, MJActionEntity, MJActionExecutionLogEntity, MJActionExecutionLogSchema, MJActionFilterEntity, MJActionFilterSchema, MJActionLibraryEntity, MJActionLibrarySchema, MJActionParamEntity, MJActionParamSchema, MJActionResultCodeEntity, MJActionResultCodeSchema, MJActionSchema, MJApplicationEntity, MJApplicationEntityEntity, MJApplicationEntitySchema, MJApplicationRoleEntity, MJApplicationRoleSchema, MJApplicationSchema, MJApplicationSettingEntity, MJApplicationSettingSchema, MJArchiveConfigurationEntity, MJArchiveConfigurationEntityEntity, MJArchiveConfigurationEntitySchema, MJArchiveConfigurationSchema, MJArchiveRunDetailEntity, MJArchiveRunDetailSchema, MJArchiveRunEntity, MJArchiveRunSchema, MJArtifactEntity, MJArtifactPermissionEntity, MJArtifactPermissionEntityExtended, MJArtifactPermissionSchema, MJArtifactSchema, MJArtifactTypeEntity, MJArtifactTypeSchema, MJArtifactUseEntity, MJArtifactUseSchema, MJArtifactVersionAttributeEntity, MJArtifactVersionAttributeSchema, MJArtifactVersionEntity, MJArtifactVersionSchema, MJAuditLogEntity, MJAuditLogSchema, MJAuditLogTypeEntity, MJAuditLogTypeSchema, MJAuthorizationEntity, MJAuthorizationRoleEntity, MJAuthorizationRoleSchema, MJAuthorizationSchema, MJClusterAnalysisClusterEntity, MJClusterAnalysisClusterSchema, MJClusterAnalysisEntity, MJClusterAnalysisSchema, MJCollectionArtifactEntity, MJCollectionArtifactSchema, MJCollectionEntity, MJCollectionPermissionEntity, MJCollectionPermissionEntityExtended, MJCollectionPermissionSchema, MJCollectionSchema, MJCommunicationBaseMessageTypeEntity, MJCommunicationBaseMessageTypeSchema, MJCommunicationLogEntity, MJCommunicationLogSchema, MJCommunicationProviderEntity, MJCommunicationProviderMessageTypeEntity, MJCommunicationProviderMessageTypeSchema, MJCommunicationProviderSchema, MJCommunicationRunEntity, MJCommunicationRunSchema, MJCompanyEntity, MJCompanyIntegrationEntity, MJCompanyIntegrationEntityMapEntity, MJCompanyIntegrationEntityMapSchema, MJCompanyIntegrationFieldMapEntity, MJCompanyIntegrationFieldMapSchema, MJCompanyIntegrationRecordMapEntity, MJCompanyIntegrationRecordMapSchema, MJCompanyIntegrationRunAPILogEntity, MJCompanyIntegrationRunAPILogSchema, MJCompanyIntegrationRunDetailEntity, MJCompanyIntegrationRunDetailSchema, MJCompanyIntegrationRunEntity, MJCompanyIntegrationRunSchema, MJCompanyIntegrationSchema, MJCompanyIntegrationSyncWatermarkEntity, MJCompanyIntegrationSyncWatermarkSchema, MJCompanySchema, MJComponentDependencyEntity, MJComponentDependencySchema, MJComponentEntity, MJComponentEntityExtended, MJComponentLibraryEntity, MJComponentLibraryLinkEntity, MJComponentLibraryLinkSchema, MJComponentLibrarySchema, MJComponentRegistryEntity, MJComponentRegistrySchema, MJComponentSchema, MJContentFileTypeEntity, MJContentFileTypeSchema, MJContentItemAttributeEntity, MJContentItemAttributeSchema, 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, MJEntityFormOverrideEntity, MJEntityFormOverrideSchema, 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, MJMagicLinkInviteAllowedDomainEntity, MJMagicLinkInviteAllowedDomainSchema, MJMagicLinkInviteAllowedPathEntity, MJMagicLinkInviteAllowedPathSchema, MJMagicLinkInviteApplicationEntity, MJMagicLinkInviteApplicationSchema, MJMagicLinkInviteEntity, MJMagicLinkInviteRoleEntity, MJMagicLinkInviteRoleSchema, MJMagicLinkInviteSchema, MJMagicLinkRedemptionEntity, MJMagicLinkRedemptionSchema, MJOAuthAuthServerMetadataCacheEntity, MJOAuthAuthServerMetadataCacheSchema, MJOAuthAuthorizationStateEntity, MJOAuthAuthorizationStateSchema, MJOAuthClientRegistrationEntity, MJOAuthClientRegistrationSchema, MJOAuthTokenEntity, MJOAuthTokenSchema, MJOpenAppDependencyEntity, MJOpenAppDependencySchema, MJOpenAppEntity, MJOpenAppInstallHistoryEntity, MJOpenAppInstallHistorySchema, MJOpenAppSchema, MJOutputDeliveryTypeEntity, MJOutputDeliveryTypeSchema, MJOutputFormatTypeEntity, MJOutputFormatTypeSchema, MJOutputTriggerTypeEntity, MJOutputTriggerTypeSchema, MJPermissionDomainEntity, MJPermissionDomainSchema, MJProcessRunDetailEntity, MJProcessRunDetailSchema, MJProcessRunEntity, MJProcessRunSchema, MJProjectEntity, MJProjectSchema, MJPublicLinkEntity, MJPublicLinkSchema, MJQueryCategoryEntity, MJQueryCategorySchema, MJQueryDependencyEntity, MJQueryDependencySchema, MJQueryEntity, MJQueryEntityEntity, MJQueryEntityExtended, MJQueryEntitySchema, MJQueryFieldEntity, MJQueryFieldSchema, MJQueryParameterEntity, MJQueryParameterSchema, MJQueryPermissionEntity, MJQueryPermissionSchema, MJQuerySQLEntity, MJQuerySQLSchema, MJQuerySchema, MJQueueEntity, MJQueueSchema, MJQueueTaskEntity, MJQueueTaskSchema, MJQueueTypeEntity, MJQueueTypeSchema, MJRecommendationEntity, MJRecommendationItemEntity, MJRecommendationItemSchema, MJRecommendationProviderEntity, MJRecommendationProviderSchema, MJRecommendationRunEntity, MJRecommendationRunSchema, MJRecommendationSchema, MJRecordChangeEntity, MJRecordChangeReplayRunEntity, MJRecordChangeReplayRunSchema, MJRecordChangeSchema, MJRecordGeoCodeEntity, MJRecordGeoCodeSchema, MJRecordLinkEntity, MJRecordLinkSchema, MJRecordMergeDeletionLogEntity, MJRecordMergeDeletionLogSchema, MJRecordMergeLogEntity, MJRecordMergeLogSchema, MJRecordProcessCategoryEntity, MJRecordProcessCategorySchema, MJRecordProcessEntity, MJRecordProcessSchema, MJRecordProcessWatermarkEntity, MJRecordProcessWatermarkSchema, MJRemoteOperationCategoryEntity, MJRemoteOperationCategorySchema, MJRemoteOperationEntity, MJRemoteOperationSchema, MJReportCategoryEntity, MJReportCategorySchema, MJReportEntity, MJReportSchema, MJReportSnapshotEntity, MJReportSnapshotSchema, MJReportUserStateEntity, MJReportUserStateSchema, MJReportVersionEntity, MJReportVersionSchema, MJResourceLinkEntity, MJResourceLinkSchema, MJResourcePermissionEntity, MJResourcePermissionEntityExtended, MJResourcePermissionSchema, MJResourceTypeEntity, MJResourceTypeSchema, MJRoleEntity, MJRoleSchema, MJRowLevelSecurityFilterEntity, MJRowLevelSecurityFilterSchema, MJSQLDialectEntity, MJSQLDialectSchema, MJScheduledActionEntity, MJScheduledActionEntityExtended, MJScheduledActionParamEntity, MJScheduledActionParamSchema, MJScheduledActionSchema, MJScheduledJobEntity, MJScheduledJobRunEntity, MJScheduledJobRunSchema, MJScheduledJobSchema, MJScheduledJobTypeEntity, MJScheduledJobTypeSchema, MJSchemaInfoEntity, MJSchemaInfoSchema, MJSearchExecutionLogEntity, MJSearchExecutionLogSchema, MJSearchProviderEntity, MJSearchProviderSchema, MJSearchScopeEntity, MJSearchScopeEntityEntity, MJSearchScopeEntitySchema, MJSearchScopeExternalIndexEntity, MJSearchScopeExternalIndexSchema, MJSearchScopePermissionEntity, MJSearchScopePermissionSchema, MJSearchScopeProviderEntity, MJSearchScopeProviderSchema, MJSearchScopeSchema, MJSearchScopeStorageAccountEntity, MJSearchScopeStorageAccountSchema, MJSearchScopeTestQueryEntity, MJSearchScopeTestQuerySchema, MJSignatureAccountEntity, MJSignatureAccountSchema, MJSignatureProviderEntity, MJSignatureProviderSchema, MJSignatureRequestDocumentEntity, MJSignatureRequestDocumentSchema, MJSignatureRequestEntity, MJSignatureRequestLogEntity, MJSignatureRequestLogSchema, MJSignatureRequestRecipientEntity, MJSignatureRequestRecipientSchema, MJSignatureRequestSchema, MJSkillEntity, MJSkillSchema, MJStateProvinceEntity, MJStateProvinceSchema, MJTagAuditLogEntity, MJTagAuditLogSchema, MJTagCoOccurrenceEntity, MJTagCoOccurrenceSchema, MJTagEntity, MJTagSchema, MJTagScopeEntity, MJTagScopeSchema, MJTagSuggestionEntity, MJTagSuggestionSchema, MJTagSynonymEntity, MJTagSynonymSchema, MJTaggedItemEntity, MJTaggedItemSchema, MJTaskDependencyEntity, MJTaskDependencySchema, MJTaskEntity, MJTaskSchema, MJTaskTypeEntity, MJTaskTypeSchema, MJTemplateCategoryEntity, MJTemplateCategorySchema, MJTemplateContentEntity, MJTemplateContentSchema, MJTemplateContentTypeEntity, MJTemplateContentTypeSchema, MJTemplateEntity, MJTemplateEntityExtended, MJTemplateParamEntity, MJTemplateParamSchema, MJTemplateSchema, MJTestEntity, MJTestRubricEntity, MJTestRubricSchema, MJTestRunEntity, MJTestRunFeedbackEntity, MJTestRunFeedbackSchema, MJTestRunOutputEntity, MJTestRunOutputSchema, MJTestRunOutputTypeEntity, MJTestRunOutputTypeSchema, MJTestRunSchema, MJTestSchema, MJTestSuiteEntity, MJTestSuiteRunEntity, MJTestSuiteRunSchema, MJTestSuiteSchema, MJTestSuiteTestEntity, MJTestSuiteTestSchema, MJTestTypeEntity, MJTestTypeSchema, 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, MJViewTypeEntity, MJViewTypeSchema, MJWorkflowEngineEntity, MJWorkflowEngineSchema, MJWorkflowEntity, MJWorkflowRunEntity, MJWorkflowRunSchema, MJWorkflowSchema, MJWorkspaceEntity, MJWorkspaceItemEntity, MJWorkspaceItemSchema, MJWorkspaceSchema, PERMISSION_DOMAIN_ICONS, PERMISSION_DOMAIN_ICON_FALLBACK, PermissionEngine, QueryEngine, QueryPermissionProvider, RecordProcessCancelRunOperation, RecordProcessGetRunStatusOperation, RecordProcessPauseRunOperation, RecordProcessResumeRunOperation, RecordProcessRunNowOperation, RegisterShareNotificationHandler, RemoteOperationEngineBase, ResolveArtifactTypeByMime, ResourceData, ResourcePermissionEngine, ResourcePermissionProvider, ResourceTypeEngine, SearchEngineBase, TemplateRunOperation, TypeTablesCache, UserInfoEngine, UserViewEngine, ViewColumnInfo, ViewFilterInfo, ViewFilterLogicInfo, ViewGridState, ViewSortDirectionInfo, ViewSortInfo, assertCallerMayCreateShare, buildActionsSummary, checkShareManagePermission, dispatchShareNotificationAfterSave, loadModule, parseConversationDetailComplete
56489
57122
 
56490
- // EXTERNAL MODULE: ../../MJCore/dist/index.js + 83 modules
56491
- var dist = __webpack_require__(809);
56492
- // EXTERNAL MODULE: ../../MJGlobal/dist/index.js + 18 modules
56493
- var MJGlobal_dist = __webpack_require__(297);
57123
+ // EXTERNAL MODULE: ../../MJCore/dist/index.js + 85 modules
57124
+ var dist = __webpack_require__(949);
57125
+ // EXTERNAL MODULE: ../../MJGlobal/dist/index.js + 22 modules
57126
+ var MJGlobal_dist = __webpack_require__(7);
56494
57127
  ;// ../../MJCoreEntities/node_modules/zod/lib/index.mjs
56495
57128
  var util;
56496
57129
  (function (util) {
@@ -61246,7 +61879,7 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
61246
61879
  * zod schema definition for the entity MJ: Entity Action Invocation Types
61247
61880
  */var MJEntityActionInvocationTypeSchema=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: Name of the invocation type such as Record Created/Updated/etc."),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Description of the invocation type."),DisplaySequence:z.number().describe("\n * * Field Name: DisplaySequence\n * * Display Name: Display Sequence\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Order in which this invocation type appears in UI lists and menus."),__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()")});/**
61248
61881
  * zod schema definition for the entity MJ: Entity Action Invocations
61249
- */var MJEntityActionInvocationSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),EntityActionID:z.string().describe("\n * * Field Name: EntityActionID\n * * Display Name: Entity Action\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entity Actions (vwEntityActions.ID)"),InvocationTypeID:z.string().describe("\n * * Field Name: InvocationTypeID\n * * Display Name: Invocation Type\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entity Action Invocation Types (vwEntityActionInvocationTypes.ID)"),Status:z.union([z.literal('Active'),z.literal('Disabled'),z.literal('Pending')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Pending\n * * Value List Type: List\n * * Possible Values \n * * Active\n * * Disabled\n * * Pending\n * * Description: Status of the entity action invocation (Pending, Active, Disabled)."),__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()"),EntityAction:z.string().describe("\n * * Field Name: EntityAction\n * * Display Name: Entity Action Name\n * * SQL Data Type: nvarchar(425)"),InvocationType:z.string().describe("\n * * Field Name: InvocationType\n * * Display Name: Invocation Type Name\n * * SQL Data Type: nvarchar(255)")});/**
61882
+ */var MJEntityActionInvocationSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),EntityActionID:z.string().describe("\n * * Field Name: EntityActionID\n * * Display Name: Entity Action\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entity Actions (vwEntityActions.ID)"),InvocationTypeID:z.string().describe("\n * * Field Name: InvocationTypeID\n * * Display Name: Invocation Type\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entity Action Invocation Types (vwEntityActionInvocationTypes.ID)"),Status:z.union([z.literal('Active'),z.literal('Disabled'),z.literal('Pending')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Pending\n * * Value List Type: List\n * * Possible Values \n * * Active\n * * Disabled\n * * Pending\n * * Description: Status of the entity action invocation (Pending, Active, Disabled)."),__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()"),RuntimeUXDriverClass:z.string().nullable().describe("\n * * Field Name: RuntimeUXDriverClass\n * * Display Name: Runtime UX Driver Class\n * * SQL Data Type: nvarchar(255)\n * * Description: Optional class name of a registered runtime-UX driver component (a BaseEntityActionRuntimeUX subclass resolved via MJGlobal.ClassFactory) that owns this invocation's interaction \u2014 parameter collection, dry-run preview, confirmation, and progress. NULL invokes the action directly with no custom UX. This lets any action opt into a richer, reusable runtime experience while the grid/toolbar stays operation-agnostic."),EntityAction:z.string().describe("\n * * Field Name: EntityAction\n * * Display Name: Entity Action Name\n * * SQL Data Type: nvarchar(425)"),InvocationType:z.string().describe("\n * * Field Name: InvocationType\n * * Display Name: Invocation Type Name\n * * SQL Data Type: nvarchar(255)")});/**
61250
61883
  * zod schema definition for the entity MJ: Entity Action Params
61251
61884
  */var MJEntityActionParamSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),EntityActionID:z.string().describe("\n * * Field Name: EntityActionID\n * * Display Name: Entity Action ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entity Actions (vwEntityActions.ID)"),ActionParamID:z.string().describe("\n * * Field Name: ActionParamID\n * * Display Name: Action Parameter ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Action Params (vwActionParams.ID)"),ValueType:z.union([z.literal('Entity Field'),z.literal('Entity Object'),z.literal('Script'),z.literal('Static')]).describe("\n * * Field Name: ValueType\n * * Display Name: Value Type\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * Entity Field\n * * Entity Object\n * * Script\n * * Static\n * * Description: Type of the value, which can be Static, Entity Object, or Script."),Value:z.string().nullable().describe("\n * * Field Name: Value\n * * Display Name: Value\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Value of the parameter, used only when ValueType is Static or Script. When value is Script, any valid JavaScript code can be provided. The script will have access to an object called EntityActionContext. This object will have a property called EntityObject on it that will contain the BaseEntity derived sub-class with the current data for the entity object this action is operating against. The script must provide the parameter value to the EntityActionContext.result property. This scripting capabilty is designed for very small and simple code, for anything of meaningful complexity, create a sub-class instead."),Comments:z.string().nullable().describe("\n * * Field Name: Comments\n * * Display Name: Comments\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Additional comments regarding the parameter."),__mj_CreatedAt: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()"),EntityAction:z.string().describe("\n * * Field Name: EntityAction\n * * Display Name: Entity Action\n * * SQL Data Type: nvarchar(425)"),ActionParam:z.string().describe("\n * * Field Name: ActionParam\n * * Display Name: Action Parameter\n * * SQL Data Type: nvarchar(255)")});/**
61252
61885
  * zod schema definition for the entity MJ: Entity Actions
@@ -61374,7 +62007,7 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
61374
62007
  * zod schema definition for the entity MJ: Open App Install Histories
61375
62008
  */var MJOpenAppInstallHistorySchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),OpenAppID:z.string().describe("\n * * Field Name: OpenAppID\n * * Display Name: Open App ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Open Apps (vwOpenApps.ID)"),Version:z.string().describe("\n * * Field Name: Version\n * * Display Name: Version\n * * SQL Data Type: nvarchar(50)\n * * Description: Semver version that was installed or upgraded to in this operation"),PreviousVersion:z.string().nullable().describe("\n * * Field Name: PreviousVersion\n * * Display Name: Previous Version\n * * SQL Data Type: nvarchar(50)\n * * Description: Version that was installed before this operation (NULL for initial installs)"),Action:z.union([z.literal('Install'),z.literal('Remove'),z.literal('Upgrade')]).describe("\n * * Field Name: Action\n * * Display Name: Action\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * Install\n * * Remove\n * * Upgrade\n * * Description: Type of operation performed: Install, Upgrade, or Remove"),ManifestJSON:z.string().describe("\n * * Field Name: ManifestJSON\n * * Display Name: Manifest JSON\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Snapshot of the mj-app.json manifest at the time of this operation"),Summary:z.string().nullable().describe("\n * * Field Name: Summary\n * * Display Name: Summary\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Human-readable summary of what happened during this operation"),ExecutedByUserID:z.string().describe("\n * * Field Name: ExecutedByUserID\n * * Display Name: Executed By User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)"),DurationSeconds:z.number().nullable().describe("\n * * Field Name: DurationSeconds\n * * Display Name: Duration Seconds\n * * SQL Data Type: int\n * * Description: Total wall-clock seconds the operation took to complete"),StartedAt:z.date().nullable().describe("\n * * Field Name: StartedAt\n * * Display Name: Started At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp when the operation began"),EndedAt:z.date().nullable().describe("\n * * Field Name: EndedAt\n * * Display Name: Ended At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp when the operation completed (success or failure)"),Success:z.boolean().describe("\n * * Field Name: Success\n * * Display Name: Success\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Whether the operation completed successfully (1) or failed (0)"),ErrorMessage:z.string().nullable().describe("\n * * Field Name: ErrorMessage\n * * Display Name: Error Message\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Detailed error message if the operation failed"),ErrorPhase:z.union([z.literal('Config'),z.literal('Hooks'),z.literal('Migration'),z.literal('Packages'),z.literal('Record'),z.literal('Schema')]).nullable().describe("\n * * Field Name: ErrorPhase\n * * Display Name: Error Phase\n * * SQL Data Type: nvarchar(50)\n * * Value List Type: List\n * * Possible Values \n * * Config\n * * Hooks\n * * Migration\n * * Packages\n * * Record\n * * Schema\n * * Description: Which phase of the operation failed: Schema, Migration, Packages, Config, Hooks, or Record"),__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()"),OpenApp:z.string().describe("\n * * Field Name: OpenApp\n * * Display Name: Open App\n * * SQL Data Type: nvarchar(64)"),ExecutedByUser:z.string().describe("\n * * Field Name: ExecutedByUser\n * * Display Name: Executed By User\n * * SQL Data Type: nvarchar(100)")});/**
61376
62009
  * zod schema definition for the entity MJ: Open Apps
61377
- */var MJOpenAppSchema=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(64)\n * * Description: Unique lowercase identifier for the app (e.g. acme-crm). Must contain only lowercase letters, digits, and hyphens."),DisplayName:z.string().describe("\n * * Field Name: DisplayName\n * * Display Name: Display Name\n * * SQL Data Type: nvarchar(200)\n * * Description: Human-readable display name shown in the UI (e.g. Acme CRM)"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Optional long description of what this app does"),Version:z.string().describe("\n * * Field Name: Version\n * * Display Name: Version\n * * SQL Data Type: nvarchar(50)\n * * Description: Currently installed semver version string (e.g. 1.2.3)"),Publisher:z.string().describe("\n * * Field Name: Publisher\n * * Display Name: Publisher\n * * SQL Data Type: nvarchar(200)\n * * Description: Name of the organization or individual who published the app"),PublisherEmail:z.string().nullable().describe("\n * * Field Name: PublisherEmail\n * * Display Name: Publisher Email\n * * SQL Data Type: nvarchar(255)\n * * Description: Optional contact email for the publisher"),PublisherURL:z.string().nullable().describe("\n * * Field Name: PublisherURL\n * * Display Name: Publisher URL\n * * SQL Data Type: nvarchar(500)\n * * Description: Optional website URL for the publisher"),RepositoryURL:z.string().describe("\n * * Field Name: RepositoryURL\n * * Display Name: Repository URL\n * * SQL Data Type: nvarchar(500)\n * * Description: GitHub repository URL where this app is hosted"),SchemaName:z.string().nullable().describe("\n * * Field Name: SchemaName\n * * Display Name: Schema Name\n * * SQL Data Type: nvarchar(128)\n * * Description: Database schema name used by this app for its tables and objects. Unique per instance."),MJVersionRange:z.string().describe("\n * * Field Name: MJVersionRange\n * * Display Name: MJ Version Range\n * * SQL Data Type: nvarchar(100)\n * * Description: Semver range specifying which MJ versions this app is compatible with (e.g. >=4.0.0 <5.0.0)"),License:z.string().nullable().describe("\n * * Field Name: License\n * * Display Name: License\n * * SQL Data Type: nvarchar(50)\n * * Description: SPDX license identifier for this app (e.g. MIT, Apache-2.0)"),Icon:z.string().nullable().describe("\n * * Field Name: Icon\n * * Display Name: Icon\n * * SQL Data Type: nvarchar(100)\n * * Description: Optional icon identifier (e.g. Font Awesome class) for UI display"),Color:z.string().nullable().describe("\n * * Field Name: Color\n * * Display Name: Color\n * * SQL Data Type: nvarchar(20)\n * * Description: Optional hex color code for branding in the UI (e.g. #FF5733)"),ManifestJSON:z.string().describe("\n * * Field Name: ManifestJSON\n * * Display Name: Manifest JSON\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Full mj-app.json manifest stored as JSON for the currently installed version"),ConfigurationSchemaJSON:z.string().nullable().describe("\n * * Field Name: ConfigurationSchemaJSON\n * * Display Name: Configuration Schema JSON\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Optional JSON Schema defining the configuration options this app accepts"),InstalledByUserID:z.string().describe("\n * * Field Name: InstalledByUserID\n * * Display Name: Installed By User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)"),Status:z.union([z.literal('Active'),z.literal('Disabled'),z.literal('Error'),z.literal('Installing'),z.literal('Removed'),z.literal('Removing'),z.literal('Upgrading')]).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 * * Disabled\n * * Error\n * * Installing\n * * Removed\n * * Removing\n * * Upgrading\n * * Description: Current lifecycle status of the app: Active, Disabled, Error, Installing, Upgrading, Removing, or Removed"),__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()"),InstalledByUser:z.string().describe("\n * * Field Name: InstalledByUser\n * * Display Name: Installed By User\n * * SQL Data Type: nvarchar(100)")});/**
62010
+ */var MJOpenAppSchema=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(64)\n * * Description: Unique lowercase identifier for the app (e.g. acme-crm). Must contain only lowercase letters, digits, and hyphens."),DisplayName:z.string().describe("\n * * Field Name: DisplayName\n * * Display Name: Display Name\n * * SQL Data Type: nvarchar(200)\n * * Description: Human-readable display name shown in the UI (e.g. Acme CRM)"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Optional long description of what this app does"),Version:z.string().describe("\n * * Field Name: Version\n * * Display Name: Version\n * * SQL Data Type: nvarchar(50)\n * * Description: Currently installed semver version string (e.g. 1.2.3)"),Publisher:z.string().describe("\n * * Field Name: Publisher\n * * Display Name: Publisher\n * * SQL Data Type: nvarchar(200)\n * * Description: Name of the organization or individual who published the app"),PublisherEmail:z.string().nullable().describe("\n * * Field Name: PublisherEmail\n * * Display Name: Publisher Email\n * * SQL Data Type: nvarchar(255)\n * * Description: Optional contact email for the publisher"),PublisherURL:z.string().nullable().describe("\n * * Field Name: PublisherURL\n * * Display Name: Publisher URL\n * * SQL Data Type: nvarchar(500)\n * * Description: Optional website URL for the publisher"),RepositoryURL:z.string().describe("\n * * Field Name: RepositoryURL\n * * Display Name: Repository URL\n * * SQL Data Type: nvarchar(500)\n * * Description: GitHub repository URL where this app is hosted"),SchemaName:z.string().nullable().describe("\n * * Field Name: SchemaName\n * * Display Name: Schema Name\n * * SQL Data Type: nvarchar(128)\n * * Description: Database schema name used by this app for its tables and objects. Unique per instance."),MJVersionRange:z.string().describe("\n * * Field Name: MJVersionRange\n * * Display Name: MJ Version Range\n * * SQL Data Type: nvarchar(100)\n * * Description: Semver range specifying which MJ versions this app is compatible with (e.g. >=4.0.0 <5.0.0)"),License:z.string().nullable().describe("\n * * Field Name: License\n * * Display Name: License\n * * SQL Data Type: nvarchar(50)\n * * Description: SPDX license identifier for this app (e.g. MIT, Apache-2.0)"),Icon:z.string().nullable().describe("\n * * Field Name: Icon\n * * Display Name: Icon\n * * SQL Data Type: nvarchar(100)\n * * Description: Optional icon identifier (e.g. Font Awesome class) for UI display"),Color:z.string().nullable().describe("\n * * Field Name: Color\n * * Display Name: Color\n * * SQL Data Type: nvarchar(20)\n * * Description: Optional hex color code for branding in the UI (e.g. #FF5733)"),ManifestJSON:z.string().describe("\n * * Field Name: ManifestJSON\n * * Display Name: Manifest JSON\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Full mj-app.json manifest stored as JSON for the currently installed version"),ConfigurationSchemaJSON:z.string().nullable().describe("\n * * Field Name: ConfigurationSchemaJSON\n * * Display Name: Configuration Schema JSON\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Optional JSON Schema defining the configuration options this app accepts"),InstalledByUserID:z.string().describe("\n * * Field Name: InstalledByUserID\n * * Display Name: Installed By User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)"),Status:z.union([z.literal('Active'),z.literal('Disabled'),z.literal('Error'),z.literal('Installing'),z.literal('Removed'),z.literal('Removing'),z.literal('Upgrading')]).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 * * Disabled\n * * Error\n * * Installing\n * * Removed\n * * Removing\n * * Upgrading\n * * Description: Current lifecycle status of the app: Active, Disabled, Error, Installing, Upgrading, Removing, or Removed"),__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()"),Subpath:z.string().nullable().describe("\n * * Field Name: Subpath\n * * Display Name: Subpath\n * * SQL Data Type: nvarchar(500)\n * * Description: In-repo subdirectory the app was installed from for multi-app repositories (e.g. 'CRM/HubSpot'). NULL when the app's mj-app.json is at the repository root."),InstalledByUser:z.string().describe("\n * * Field Name: InstalledByUser\n * * Display Name: Installed By User\n * * SQL Data Type: nvarchar(100)")});/**
61378
62011
  * zod schema definition for the entity MJ: Output Delivery Types
61379
62012
  */var MJOutputDeliveryTypeSchema=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)"),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: 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()")});/**
61380
62013
  * zod schema definition for the entity MJ: Output Format Types
@@ -61386,7 +62019,7 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
61386
62019
  * zod schema definition for the entity MJ: Process Run Details
61387
62020
  */var MJProcessRunDetailSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ProcessRunID:z.string().describe("\n * * Field Name: ProcessRunID\n * * Display Name: Process Run\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Process Runs (vwProcessRuns.ID)\n * * Description: Foreign key to the parent Process Run"),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)\n * * Description: Foreign key to the entity of the processed record. Stored (not inherited) because a single run may span entities for ad-hoc / engine-driven runs."),RecordID:z.string().describe("\n * * Field Name: RecordID\n * * Display Name: Record ID\n * * SQL Data Type: nvarchar(450)\n * * Description: Primary key of the processed record, stored as text to remain composite-key safe"),Status:z.union([z.literal('Failed'),z.literal('Pending'),z.literal('Skipped'),z.literal('Succeeded')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Pending\n * * Value List Type: List\n * * Possible Values \n * * Failed\n * * Pending\n * * Skipped\n * * Succeeded\n * * Description: Per-record status: Pending, Succeeded, Failed, or Skipped"),StartedAt:z.date().nullable().describe("\n * * Field Name: StartedAt\n * * Display Name: Started At\n * * SQL Data Type: datetimeoffset\n * * Description: When processing of this record started"),CompletedAt:z.date().nullable().describe("\n * * Field Name: CompletedAt\n * * Display Name: Completed At\n * * SQL Data Type: datetimeoffset\n * * Description: When processing of this record completed"),DurationMs:z.number().nullable().describe("\n * * Field Name: DurationMs\n * * Display Name: Duration (ms)\n * * SQL Data Type: int\n * * Description: Processing duration for this record in milliseconds"),AttemptCount:z.number().describe("\n * * Field Name: AttemptCount\n * * Display Name: Attempt Count\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Number of processing attempts for this record (supports retry)"),ResultPayload:z.string().nullable().describe("\n * * Field Name: ResultPayload\n * * Display Name: Result Payload\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Structured output payload (JSON) produced for this record"),ErrorMessage:z.string().nullable().describe("\n * * Field Name: ErrorMessage\n * * Display Name: Error Message\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Per-record error message when Status=Failed"),ActionExecutionLogID:z.string().nullable().describe("\n * * Field Name: ActionExecutionLogID\n * * Display Name: Action Execution Log ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Action Execution Logs (vwActionExecutionLogs.ID)\n * * Description: Foreign key to the Action Execution Log for deep tracing, when the work was an Action"),AIAgentRunID:z.string().nullable().describe("\n * * Field Name: AIAgentRunID\n * * Display Name: AI Agent Run ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Agent Runs (vwAIAgentRuns.ID)\n * * Description: Foreign key to the AI Agent Run for deep tracing, when the work was an 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()"),Entity:z.string().describe("\n * * Field Name: Entity\n * * Display Name: Entity Name\n * * SQL Data Type: nvarchar(255)"),ActionExecutionLog:z.string().nullable().describe("\n * * Field Name: ActionExecutionLog\n * * Display Name: Action Execution Log\n * * SQL Data Type: nvarchar(425)"),AIAgentRun:z.string().nullable().describe("\n * * Field Name: AIAgentRun\n * * Display Name: AI Agent Run\n * * SQL Data Type: nvarchar(255)")});/**
61388
62021
  * zod schema definition for the entity MJ: Process Runs
61389
- */var MJProcessRunSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),RecordProcessID:z.string().nullable().describe("\n * * Field Name: RecordProcessID\n * * Display Name: Record Process\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Record Processes (vwRecordProcesses.ID)\n * * Description: Foreign key to the Record Process that spawned this run; NULL for ad-hoc / engine-driven runs not tied to a saved definition"),EntityID:z.string().nullable().describe("\n * * Field Name: EntityID\n * * Display Name: Entity\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)\n * * Description: Foreign key to the entity processed by this run, when the run is entity-scoped"),TriggeredBy:z.union([z.literal('Manual'),z.literal('OnChange'),z.literal('OnDemand'),z.literal('Schedule')]).describe("\n * * Field Name: TriggeredBy\n * * Display Name: Triggered By\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * Manual\n * * OnChange\n * * OnDemand\n * * Schedule\n * * Description: What triggered this run: OnChange, Schedule, OnDemand, or Manual"),SourceType:z.union([z.literal('Array'),z.literal('Filter'),z.literal('Keyset'),z.literal('List'),z.literal('SingleRecord'),z.literal('View')]).describe("\n * * Field Name: SourceType\n * * Display Name: Source Type\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * Array\n * * Filter\n * * Keyset\n * * List\n * * SingleRecord\n * * View\n * * Description: The kind of record-set source resolved for this run: View, List, Filter, Array, Keyset, or SingleRecord"),SourceID:z.string().nullable().describe("\n * * Field Name: SourceID\n * * Display Name: Source ID\n * * SQL Data Type: uniqueidentifier\n * * Description: Polymorphic source identifier (e.g., ViewID or ListID) when applicable; no FK because it spans entities"),SourceFilter:z.string().nullable().describe("\n * * Field Name: SourceFilter\n * * Display Name: Source Filter\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Resolved filter snapshot used to materialize the record set for this run"),ScheduledJobRunID:z.string().nullable().describe("\n * * Field Name: ScheduledJobRunID\n * * Display Name: Scheduled Job Run\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Scheduled Job Runs (vwScheduledJobRuns.ID)\n * * Description: Foreign key to the Scheduled Job Run that launched this run, when scheduler-launched"),Status:z.union([z.literal('Cancelled'),z.literal('Completed'),z.literal('Failed'),z.literal('Paused'),z.literal('Pending'),z.literal('Running')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Pending\n * * Value List Type: List\n * * Possible Values \n * * Cancelled\n * * Completed\n * * Failed\n * * Paused\n * * Pending\n * * Running\n * * Description: Run status: Pending, Running, Paused, Completed, Failed, or Cancelled"),StartTime:z.date().nullable().describe("\n * * Field Name: StartTime\n * * Display Name: Start Time\n * * SQL Data Type: datetimeoffset\n * * Description: When the run started"),EndTime:z.date().nullable().describe("\n * * Field Name: EndTime\n * * Display Name: End Time\n * * SQL Data Type: datetimeoffset\n * * Description: When the run ended"),TotalItemCount:z.number().nullable().describe("\n * * Field Name: TotalItemCount\n * * Display Name: Total Item Count\n * * SQL Data Type: int\n * * Description: Estimated or known total number of records to process"),ProcessedItems:z.number().describe("\n * * Field Name: ProcessedItems\n * * Display Name: Processed Items\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Count of records processed so far"),SuccessCount:z.number().describe("\n * * Field Name: SuccessCount\n * * Display Name: Success Count\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Count of records processed successfully"),ErrorCount:z.number().describe("\n * * Field Name: ErrorCount\n * * Display Name: Error Count\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Count of records that failed processing"),SkippedCount:z.number().describe("\n * * Field Name: SkippedCount\n * * Display Name: Skipped Count\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Count of records skipped (e.g., unchanged per watermark)"),LastProcessedOffset:z.number().nullable().describe("\n * * Field Name: LastProcessedOffset\n * * Display Name: Last Processed Offset\n * * SQL Data Type: int\n * * Description: Offset-based resume cursor (StartRow) for sources that paginate by offset"),LastProcessedKey:z.string().nullable().describe("\n * * Field Name: LastProcessedKey\n * * Display Name: Last Processed Key\n * * SQL Data Type: nvarchar(450)\n * * Description: Keyset-based resume cursor (AfterKey) for sources that paginate by seek"),BatchSize:z.number().nullable().describe("\n * * Field Name: BatchSize\n * * Display Name: Batch Size\n * * SQL Data Type: int\n * * Description: Effective batch size for this run"),CancellationRequested:z.boolean().describe("\n * * Field Name: CancellationRequested\n * * Display Name: Cancellation Requested\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Pause/cancel handshake flag honored by the processor between batches"),Configuration:z.string().nullable().describe("\n * * Field Name: Configuration\n * * Display Name: Configuration\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON snapshot of the effective configuration for this run"),ErrorMessage:z.string().nullable().describe("\n * * Field Name: ErrorMessage\n * * Display Name: Error Message\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Run-level error message when Status=Failed"),StartedByUserID:z.string().nullable().describe("\n * * Field Name: StartedByUserID\n * * Display Name: Started By User\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)\n * * Description: Foreign key to the user who started the run"),__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()"),RecordProcess:z.string().nullable().describe("\n * * Field Name: RecordProcess\n * * Display Name: Record Process Name\n * * SQL Data Type: nvarchar(255)"),Entity:z.string().nullable().describe("\n * * Field Name: Entity\n * * Display Name: Entity Name\n * * SQL Data Type: nvarchar(255)"),ScheduledJobRun:z.string().nullable().describe("\n * * Field Name: ScheduledJobRun\n * * Display Name: Scheduled Job Run Name\n * * SQL Data Type: nvarchar(200)"),StartedByUser:z.string().nullable().describe("\n * * Field Name: StartedByUser\n * * Display Name: Started By User Name\n * * SQL Data Type: nvarchar(100)")});/**
62022
+ */var MJProcessRunSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),RecordProcessID:z.string().nullable().describe("\n * * Field Name: RecordProcessID\n * * Display Name: Record Process\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Record Processes (vwRecordProcesses.ID)\n * * Description: Foreign key to the Record Process that spawned this run; NULL for ad-hoc / engine-driven runs not tied to a saved definition"),EntityID:z.string().nullable().describe("\n * * Field Name: EntityID\n * * Display Name: Entity\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)\n * * Description: Foreign key to the entity processed by this run, when the run is entity-scoped"),TriggeredBy:z.union([z.literal('Manual'),z.literal('OnChange'),z.literal('OnDemand'),z.literal('Schedule')]).describe("\n * * Field Name: TriggeredBy\n * * Display Name: Triggered By\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * Manual\n * * OnChange\n * * OnDemand\n * * Schedule\n * * Description: What triggered this run: OnChange, Schedule, OnDemand, or Manual"),SourceType:z.union([z.literal('Array'),z.literal('Filter'),z.literal('Keyset'),z.literal('List'),z.literal('SingleRecord'),z.literal('View')]).describe("\n * * Field Name: SourceType\n * * Display Name: Source Type\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * Array\n * * Filter\n * * Keyset\n * * List\n * * SingleRecord\n * * View\n * * Description: The kind of record-set source resolved for this run: View, List, Filter, Array, Keyset, or SingleRecord"),SourceID:z.string().nullable().describe("\n * * Field Name: SourceID\n * * Display Name: Source ID\n * * SQL Data Type: uniqueidentifier\n * * Description: Polymorphic source identifier (e.g., ViewID or ListID) when applicable; no FK because it spans entities"),SourceFilter:z.string().nullable().describe("\n * * Field Name: SourceFilter\n * * Display Name: Source Filter\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Resolved filter snapshot used to materialize the record set for this run"),ScheduledJobRunID:z.string().nullable().describe("\n * * Field Name: ScheduledJobRunID\n * * Display Name: Scheduled Job Run\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Scheduled Job Runs (vwScheduledJobRuns.ID)\n * * Description: Foreign key to the Scheduled Job Run that launched this run, when scheduler-launched"),Status:z.union([z.literal('Cancelled'),z.literal('Completed'),z.literal('Failed'),z.literal('Paused'),z.literal('Pending'),z.literal('Running')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Pending\n * * Value List Type: List\n * * Possible Values \n * * Cancelled\n * * Completed\n * * Failed\n * * Paused\n * * Pending\n * * Running\n * * Description: Run status: Pending, Running, Paused, Completed, Failed, or Cancelled"),StartTime:z.date().nullable().describe("\n * * Field Name: StartTime\n * * Display Name: Start Time\n * * SQL Data Type: datetimeoffset\n * * Description: When the run started"),EndTime:z.date().nullable().describe("\n * * Field Name: EndTime\n * * Display Name: End Time\n * * SQL Data Type: datetimeoffset\n * * Description: When the run ended"),TotalItemCount:z.number().nullable().describe("\n * * Field Name: TotalItemCount\n * * Display Name: Total Item Count\n * * SQL Data Type: int\n * * Description: Estimated or known total number of records to process"),ProcessedItems:z.number().describe("\n * * Field Name: ProcessedItems\n * * Display Name: Processed Items\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Count of records processed so far"),SuccessCount:z.number().describe("\n * * Field Name: SuccessCount\n * * Display Name: Success Count\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Count of records processed successfully"),ErrorCount:z.number().describe("\n * * Field Name: ErrorCount\n * * Display Name: Error Count\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Count of records that failed processing"),SkippedCount:z.number().describe("\n * * Field Name: SkippedCount\n * * Display Name: Skipped Count\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Count of records skipped (e.g., unchanged per watermark)"),LastProcessedOffset:z.number().nullable().describe("\n * * Field Name: LastProcessedOffset\n * * Display Name: Last Processed Offset\n * * SQL Data Type: int\n * * Description: Offset-based resume cursor (StartRow) for sources that paginate by offset"),LastProcessedKey:z.string().nullable().describe("\n * * Field Name: LastProcessedKey\n * * Display Name: Last Processed Key\n * * SQL Data Type: nvarchar(450)\n * * Description: Keyset-based resume cursor (AfterKey) for sources that paginate by seek"),BatchSize:z.number().nullable().describe("\n * * Field Name: BatchSize\n * * Display Name: Batch Size\n * * SQL Data Type: int\n * * Description: Effective batch size for this run"),CancellationRequested:z.boolean().describe("\n * * Field Name: CancellationRequested\n * * Display Name: Cancellation Requested\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Pause/cancel handshake flag honored by the processor between batches"),Configuration:z.string().nullable().describe("\n * * Field Name: Configuration\n * * Display Name: Configuration JSON\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON snapshot of the effective configuration for this run"),ErrorMessage:z.string().nullable().describe("\n * * Field Name: ErrorMessage\n * * Display Name: Error Message\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Run-level error message when Status=Failed"),StartedByUserID:z.string().nullable().describe("\n * * Field Name: StartedByUserID\n * * Display Name: Started By User\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)\n * * Description: Foreign key to the user who started the run"),__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()"),DryRun:z.boolean().describe("\n * * Field Name: DryRun\n * * Display Name: Is Dry Run\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When 1, this run was a dry-run (compute-only) preview: the per-record diffs were computed and persisted as Process Run Details, but no changes were written back to the target records. When 0, the run applied its changes."),RecordProcess:z.string().nullable().describe("\n * * Field Name: RecordProcess\n * * Display Name: Record Process Name\n * * SQL Data Type: nvarchar(255)"),Entity:z.string().nullable().describe("\n * * Field Name: Entity\n * * Display Name: Entity Name\n * * SQL Data Type: nvarchar(255)"),ScheduledJobRun:z.string().nullable().describe("\n * * Field Name: ScheduledJobRun\n * * Display Name: Scheduled Job Run Name\n * * SQL Data Type: nvarchar(200)"),StartedByUser:z.string().nullable().describe("\n * * Field Name: StartedByUser\n * * Display Name: Started By User Name\n * * SQL Data Type: nvarchar(100)")});/**
61390
62023
  * zod schema definition for the entity MJ: Projects
61391
62024
  */var MJProjectSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),EnvironmentID:z.string().describe("\n * * Field Name: EnvironmentID\n * * Display Name: Environment ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Environments (vwEnvironments.ID)\n * * Default Value: F51358F3-9447-4176-B313-BF8025FD8D09"),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: Projects (vwProjects.ID)"),Name:z.string().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(255)\n * * Description: Display name for the project"),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 project goals and scope"),Color:z.string().nullable().describe("\n * * Field Name: Color\n * * Display Name: Color\n * * SQL Data Type: nvarchar(7)\n * * Description: Hex color code for project badges in UI (#RRGGBB format)"),Icon:z.string().nullable().describe("\n * * Field Name: Icon\n * * Display Name: Icon\n * * SQL Data Type: nvarchar(50)\n * * Description: Font Awesome icon class for UI display"),IsArchived:z.boolean().describe("\n * * Field Name: IsArchived\n * * Display Name: Is Archived\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Indicates if this project is archived and should be hidden from active lists"),__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()"),Environment:z.string().describe("\n * * Field Name: Environment\n * * Display Name: Environment\n * * SQL Data Type: nvarchar(255)"),Parent:z.string().nullable().describe("\n * * Field Name: Parent\n * * Display Name: Parent\n * * SQL Data Type: nvarchar(255)"),RootParentID:z.string().nullable().describe("\n * * Field Name: RootParentID\n * * Display Name: Root Parent ID\n * * SQL Data Type: uniqueidentifier")});/**
61392
62025
  * zod schema definition for the entity MJ: Public Links
@@ -61438,11 +62071,11 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
61438
62071
  * zod schema definition for the entity MJ: Record Process Watermarks
61439
62072
  */var MJRecordProcessWatermarkSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),RecordProcessID:z.string().describe("\n * * Field Name: RecordProcessID\n * * Display Name: Record Process\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Record Processes (vwRecordProcesses.ID)\n * * Description: Foreign key to the Record Process this watermark belongs to"),EntityID:z.string().describe("\n * * Field Name: EntityID\n * * Display Name: Entity\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)\n * * Description: Foreign key to the entity of the watermarked record"),RecordID:z.string().describe("\n * * Field Name: RecordID\n * * Display Name: Record ID\n * * SQL Data Type: nvarchar(450)\n * * Description: Primary key of the watermarked record, stored as text to remain composite-key safe"),Hash:z.string().describe("\n * * Field Name: Hash\n * * Display Name: Content Hash\n * * SQL Data Type: nvarchar(128)\n * * Description: Content hash of the record as of the last time it was processed by this Record Process"),LastProcessedAt:z.date().describe("\n * * Field Name: LastProcessedAt\n * * Display Name: Last Processed At\n * * SQL Data Type: datetimeoffset\n * * Description: When this record was last processed by this Record Process"),__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()"),RecordProcess:z.string().describe("\n * * Field Name: RecordProcess\n * * Display Name: Record Process Name\n * * SQL Data Type: nvarchar(255)"),Entity:z.string().describe("\n * * Field Name: Entity\n * * Display Name: Entity Name\n * * SQL Data Type: nvarchar(255)")});/**
61440
62073
  * zod schema definition for the entity MJ: Record Processes
61441
- */var MJRecordProcessSchema=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: Human-readable name of the process definition (e.g., \"Weekly Customer Health Summary\")"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Optional description of what this process does"),CategoryID:z.string().nullable().describe("\n * * Field Name: CategoryID\n * * Display Name: Category\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Record Process Categories (vwRecordProcessCategories.ID)\n * * Description: Optional hierarchical category for organizing this process in the UI"),EntityID:z.string().describe("\n * * Field Name: EntityID\n * * Display Name: Entity\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)\n * * Description: Foreign key to the target entity whose records this process operates on"),Status:z.union([z.literal('Active'),z.literal('Disabled'),z.literal('Draft')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Draft\n * * Value List Type: List\n * * Possible Values \n * * Active\n * * Disabled\n * * Draft\n * * Description: Lifecycle status: Draft (not yet wired), Active (triggers live), or Disabled"),WorkType:z.union([z.literal('Action'),z.literal('Agent'),z.literal('Infer')]).describe("\n * * Field Name: WorkType\n * * Display Name: Work Type\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * Action\n * * Agent\n * * Infer\n * * Description: Whether the work is an Action, an Agent, or an Infer (per-record AI Prompt). Agents are dispatched through the Execute Agent action and must be top-level + ExposeAsAction; Infer runs the AI Prompt named by PromptID for each record and writes its structured output back via OutputMapping."),ActionID:z.string().nullable().describe("\n * * Field Name: ActionID\n * * Display Name: Action\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Actions (vwActions.ID)\n * * Description: Foreign key to the Action to run, when WorkType=Action"),AgentID:z.string().nullable().describe("\n * * Field Name: AgentID\n * * Display Name: Agent\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Agents (vwAIAgents.ID)\n * * Description: Foreign key to the AI Agent to run, when WorkType=Agent"),PromptID:z.string().nullable().describe("\n * * Field Name: PromptID\n * * Display Name: Prompt\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)\n * * Description: Foreign key to the AI Prompt to run for each record, when WorkType=Infer. The prompt's structured output is written back to the data model via OutputMapping."),ScopeType:z.union([z.literal('Filter'),z.literal('List'),z.literal('SingleRecord'),z.literal('View')]).describe("\n * * Field Name: ScopeType\n * * Display Name: Scope Type\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * Filter\n * * List\n * * SingleRecord\n * * View\n * * Description: How the record set is scoped for the Schedule and On-Demand triggers: SingleRecord, View, List, or Filter. The On-Change trigger is always single-record and ignores this."),ScopeViewID:z.string().nullable().describe("\n * * Field Name: ScopeViewID\n * * Display Name: Scope View\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: User Views (vwUserViews.ID)\n * * Description: Foreign key to the User View defining the scope, when ScopeType=View"),ScopeListID:z.string().nullable().describe("\n * * Field Name: ScopeListID\n * * Display Name: Scope List\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Lists (vwLists.ID)\n * * Description: Foreign key to the List defining the scope, when ScopeType=List"),ScopeFilter:z.string().nullable().describe("\n * * Field Name: ScopeFilter\n * * Display Name: Scope Filter\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Ad-hoc WHERE clause used to resolve the record set, when ScopeType=Filter"),OnChangeEnabled:z.boolean().describe("\n * * Field Name: OnChangeEnabled\n * * Display Name: On-Change Enabled\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When 1, the process runs per-record on save via an owned Entity Action"),OnChangeInvocationType:z.union([z.literal('AfterCreate'),z.literal('AfterDelete'),z.literal('AfterUpdate'),z.literal('Validate')]).nullable().describe("\n * * Field Name: OnChangeInvocationType\n * * Display Name: On-Change Invocation Type\n * * SQL Data Type: nvarchar(30)\n * * Value List Type: List\n * * Possible Values \n * * AfterCreate\n * * AfterDelete\n * * AfterUpdate\n * * Validate\n * * Description: Which save event fires the on-change trigger: AfterCreate, AfterUpdate, AfterDelete, or Validate"),OnChangeFilter:z.string().nullable().describe("\n * * Field Name: OnChangeFilter\n * * Display Name: On-Change Filter\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Gating expression evaluated against the changed record (with changed-fields context) that compiles into the owned Entity Action Filter; only when it passes does the on-change trigger fire"),ScheduleEnabled:z.boolean().describe("\n * * Field Name: ScheduleEnabled\n * * Display Name: Schedule Enabled\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When 1, the process runs on a cron schedule via an owned Scheduled Job"),CronExpression:z.string().nullable().describe("\n * * Field Name: CronExpression\n * * Display Name: Cron Expression\n * * SQL Data Type: nvarchar(120)\n * * Description: Cron expression for the schedule trigger, when ScheduleEnabled=1"),Timezone:z.string().nullable().describe("\n * * Field Name: Timezone\n * * Display Name: Timezone\n * * SQL Data Type: nvarchar(100)\n * * Default Value: UTC\n * * Description: IANA timezone for evaluating the cron expression (default UTC)"),OnDemandEnabled:z.boolean().describe("\n * * Field Name: OnDemandEnabled\n * * Display Name: On-Demand Enabled\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When 1, the process can be run on demand (button / resolver)"),InputMapping:z.string().nullable().describe("\n * * Field Name: InputMapping\n * * Display Name: Input Mapping\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON mapping describing how a record maps to the work inputs (optionally including an EntityDocumentID for render-to-text)"),OutputMapping:z.string().nullable().describe("\n * * Field Name: OutputMapping\n * * Display Name: Output Mapping\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON mapping describing how the structured output payload writes back (to fields, a child record, or tags)"),SkipUnchanged:z.boolean().describe("\n * * Field Name: SkipUnchanged\n * * Display Name: Skip Unchanged\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When 1, records whose watermark indicates no change since the last run are skipped"),WatermarkStrategy:z.union([z.literal('Checksum'),z.literal('None'),z.literal('UpdatedAt')]).nullable().describe("\n * * Field Name: WatermarkStrategy\n * * Display Name: Watermark Strategy\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * Checksum\n * * None\n * * UpdatedAt\n * * Description: How unchanged records are detected for SkipUnchanged: Checksum (per-record content hash, stored in RecordProcessWatermark), UpdatedAt (compares __mj_UpdatedAt, stores nothing), or None"),BatchSize:z.number().nullable().describe("\n * * Field Name: BatchSize\n * * Display Name: Batch Size\n * * SQL Data Type: int\n * * Default Value: 100\n * * Description: Number of records processed per batch (default 100)"),MaxConcurrency:z.number().nullable().describe("\n * * Field Name: MaxConcurrency\n * * Display Name: Max Concurrency\n * * SQL Data Type: int\n * * Default Value: 1\n * * Description: Maximum number of records processed concurrently within a batch (default 1)"),__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()"),Category:z.string().nullable().describe("\n * * Field Name: Category\n * * Display Name: Category (Display)\n * * SQL Data Type: nvarchar(255)"),Entity:z.string().describe("\n * * Field Name: Entity\n * * Display Name: Entity (Display)\n * * SQL Data Type: nvarchar(255)"),Action:z.string().nullable().describe("\n * * Field Name: Action\n * * Display Name: Action (Display)\n * * SQL Data Type: nvarchar(425)"),Agent:z.string().nullable().describe("\n * * Field Name: Agent\n * * Display Name: Agent (Display)\n * * SQL Data Type: nvarchar(255)"),Prompt:z.string().nullable().describe("\n * * Field Name: Prompt\n * * Display Name: Prompt (Display)\n * * SQL Data Type: nvarchar(255)"),ScopeView:z.string().nullable().describe("\n * * Field Name: ScopeView\n * * Display Name: Scope View (Display)\n * * SQL Data Type: nvarchar(100)"),ScopeList:z.string().nullable().describe("\n * * Field Name: ScopeList\n * * Display Name: Scope List (Display)\n * * SQL Data Type: nvarchar(100)")});/**
62074
+ */var MJRecordProcessSchema=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: Human-readable name of the process definition (e.g., \"Weekly Customer Health Summary\")"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Optional description of what this process does"),CategoryID:z.string().nullable().describe("\n * * Field Name: CategoryID\n * * Display Name: Category\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Record Process Categories (vwRecordProcessCategories.ID)\n * * Description: Optional hierarchical category for organizing this process in the UI"),EntityID:z.string().describe("\n * * Field Name: EntityID\n * * Display Name: Entity\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)\n * * Description: Foreign key to the target entity whose records this process operates on"),Status:z.union([z.literal('Active'),z.literal('Disabled'),z.literal('Draft')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Draft\n * * Value List Type: List\n * * Possible Values \n * * Active\n * * Disabled\n * * Draft\n * * Description: Lifecycle status: Draft (not yet wired), Active (triggers live), or Disabled"),WorkType:z.union([z.literal('Action'),z.literal('Agent'),z.literal('FieldRules'),z.literal('Infer')]).describe("\n * * Field Name: WorkType\n * * Display Name: Work Type\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * Action\n * * Agent\n * * FieldRules\n * * Infer\n * * Description: Whether the work is an Action, an Agent, or an Infer (per-record AI Prompt). Agents are dispatched through the Execute Agent action and must be top-level + ExposeAsAction; Infer runs the AI Prompt named by PromptID for each record and writes its structured output back via OutputMapping."),ActionID:z.string().nullable().describe("\n * * Field Name: ActionID\n * * Display Name: Action\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Actions (vwActions.ID)\n * * Description: Foreign key to the Action to run, when WorkType=Action"),AgentID:z.string().nullable().describe("\n * * Field Name: AgentID\n * * Display Name: Agent\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Agents (vwAIAgents.ID)\n * * Description: Foreign key to the AI Agent to run, when WorkType=Agent"),PromptID:z.string().nullable().describe("\n * * Field Name: PromptID\n * * Display Name: Prompt\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)\n * * Description: Foreign key to the AI Prompt to run for each record, when WorkType=Infer. The prompt's structured output is written back to the data model via OutputMapping."),ScopeType:z.union([z.literal('Filter'),z.literal('List'),z.literal('SingleRecord'),z.literal('View')]).describe("\n * * Field Name: ScopeType\n * * Display Name: Scope Type\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * Filter\n * * List\n * * SingleRecord\n * * View\n * * Description: How the record set is scoped for the Schedule and On-Demand triggers: SingleRecord, View, List, or Filter. The On-Change trigger is always single-record and ignores this."),ScopeViewID:z.string().nullable().describe("\n * * Field Name: ScopeViewID\n * * Display Name: Scope View\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: User Views (vwUserViews.ID)\n * * Description: Foreign key to the User View defining the scope, when ScopeType=View"),ScopeListID:z.string().nullable().describe("\n * * Field Name: ScopeListID\n * * Display Name: Scope List\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Lists (vwLists.ID)\n * * Description: Foreign key to the List defining the scope, when ScopeType=List"),ScopeFilter:z.string().nullable().describe("\n * * Field Name: ScopeFilter\n * * Display Name: Scope Filter\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Ad-hoc WHERE clause used to resolve the record set, when ScopeType=Filter"),OnChangeEnabled:z.boolean().describe("\n * * Field Name: OnChangeEnabled\n * * Display Name: On-Change Enabled\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When 1, the process runs per-record on save via an owned Entity Action"),OnChangeInvocationType:z.union([z.literal('AfterCreate'),z.literal('AfterDelete'),z.literal('AfterUpdate'),z.literal('Validate')]).nullable().describe("\n * * Field Name: OnChangeInvocationType\n * * Display Name: On-Change Invocation Type\n * * SQL Data Type: nvarchar(30)\n * * Value List Type: List\n * * Possible Values \n * * AfterCreate\n * * AfterDelete\n * * AfterUpdate\n * * Validate\n * * Description: Which save event fires the on-change trigger: AfterCreate, AfterUpdate, AfterDelete, or Validate"),OnChangeFilter:z.string().nullable().describe("\n * * Field Name: OnChangeFilter\n * * Display Name: On-Change Filter\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Gating expression evaluated against the changed record (with changed-fields context) that compiles into the owned Entity Action Filter; only when it passes does the on-change trigger fire"),ScheduleEnabled:z.boolean().describe("\n * * Field Name: ScheduleEnabled\n * * Display Name: Schedule Enabled\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When 1, the process runs on a cron schedule via an owned Scheduled Job"),CronExpression:z.string().nullable().describe("\n * * Field Name: CronExpression\n * * Display Name: Cron Expression\n * * SQL Data Type: nvarchar(120)\n * * Description: Cron expression for the schedule trigger, when ScheduleEnabled=1"),Timezone:z.string().nullable().describe("\n * * Field Name: Timezone\n * * Display Name: Timezone\n * * SQL Data Type: nvarchar(100)\n * * Default Value: UTC\n * * Description: IANA timezone for evaluating the cron expression (default UTC)"),OnDemandEnabled:z.boolean().describe("\n * * Field Name: OnDemandEnabled\n * * Display Name: On-Demand Enabled\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When 1, the process can be run on demand (button / resolver)"),InputMapping:z.string().nullable().describe("\n * * Field Name: InputMapping\n * * Display Name: Input Mapping\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON mapping describing how a record maps to the work inputs (optionally including an EntityDocumentID for render-to-text)"),OutputMapping:z.string().nullable().describe("\n * * Field Name: OutputMapping\n * * Display Name: Output Mapping\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON mapping describing how the structured output payload writes back (to fields, a child record, or tags)"),SkipUnchanged:z.boolean().describe("\n * * Field Name: SkipUnchanged\n * * Display Name: Skip Unchanged\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When 1, records whose watermark indicates no change since the last run are skipped"),WatermarkStrategy:z.union([z.literal('Checksum'),z.literal('None'),z.literal('UpdatedAt')]).nullable().describe("\n * * Field Name: WatermarkStrategy\n * * Display Name: Watermark Strategy\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * Checksum\n * * None\n * * UpdatedAt\n * * Description: How unchanged records are detected for SkipUnchanged: Checksum (per-record content hash, stored in RecordProcessWatermark), UpdatedAt (compares __mj_UpdatedAt, stores nothing), or None"),BatchSize:z.number().nullable().describe("\n * * Field Name: BatchSize\n * * Display Name: Batch Size\n * * SQL Data Type: int\n * * Default Value: 100\n * * Description: Number of records processed per batch (default 100)"),MaxConcurrency:z.number().nullable().describe("\n * * Field Name: MaxConcurrency\n * * Display Name: Max Concurrency\n * * SQL Data Type: int\n * * Default Value: 1\n * * Description: Maximum number of records processed concurrently within a batch (default 1)"),__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()"),Configuration:z.string().nullable().describe("\n * * Field Name: Configuration\n * * Display Name: Configuration\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON configuration for the process's work, used by work types that need structured config beyond Input/Output mappings. For WorkType='FieldRules' this holds the serialized FieldRuleSet (the rules applied to each record). NULL for work types that do not use it."),Category:z.string().nullable().describe("\n * * Field Name: Category\n * * Display Name: Category Name\n * * SQL Data Type: nvarchar(255)"),Entity:z.string().describe("\n * * Field Name: Entity\n * * Display Name: Entity Name\n * * SQL Data Type: nvarchar(255)"),Action:z.string().nullable().describe("\n * * Field Name: Action\n * * Display Name: Action Name\n * * SQL Data Type: nvarchar(425)"),Agent:z.string().nullable().describe("\n * * Field Name: Agent\n * * Display Name: Agent Name\n * * SQL Data Type: nvarchar(255)"),Prompt:z.string().nullable().describe("\n * * Field Name: Prompt\n * * Display Name: Prompt Name\n * * SQL Data Type: nvarchar(255)"),ScopeView:z.string().nullable().describe("\n * * Field Name: ScopeView\n * * Display Name: Scope View Name\n * * SQL Data Type: nvarchar(100)"),ScopeList:z.string().nullable().describe("\n * * Field Name: ScopeList\n * * Display Name: Scope List Name\n * * SQL Data Type: nvarchar(100)")});/**
61442
62075
  * zod schema definition for the entity MJ: Remote Operation Categories
61443
62076
  */var MJRemoteOperationCategorySchema=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 category"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Optional description of what belongs in this category"),ParentID:z.string().nullable().describe("\n * * Field Name: ParentID\n * * Display Name: Parent Category\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Remote Operation Categories (vwRemoteOperationCategories.ID)\n * * Description: Self-referencing foreign key to the parent category, enabling a nested folder hierarchy (NULL for a top-level category)"),__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()"),Parent:z.string().nullable().describe("\n * * Field Name: Parent\n * * Display Name: Parent Name\n * * SQL Data Type: nvarchar(255)"),RootParentID:z.string().nullable().describe("\n * * Field Name: RootParentID\n * * Display Name: Root Parent\n * * SQL Data Type: uniqueidentifier")});/**
61444
62077
  * zod schema definition for the entity MJ: Remote Operations
61445
- */var MJRemoteOperationSchema=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: Human-readable name of the operation"),OperationKey:z.string().describe("\n * * Field Name: OperationKey\n * * Display Name: Operation Key\n * * SQL Data Type: nvarchar(255)\n * * Description: Stable, unique registry key and wire token used to dispatch the operation (e.g., \"RecordProcess.RunNow\"). Namespaced by convention."),CategoryID:z.string().nullable().describe("\n * * Field Name: CategoryID\n * * Display Name: Category\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Remote Operation Categories (vwRemoteOperationCategories.ID)\n * * Description: Optional hierarchical category for organizing this operation in the UI"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Human description of the operation; also the seed for AI-generated implementation code when GenerationType=AI"),InputTypeName:z.string().nullable().describe("\n * * Field Name: InputTypeName\n * * Display Name: Input Type Name\n * * SQL Data Type: nvarchar(255)\n * * Description: TypeScript type name for the operation input (emitted by CodeGen as the TInput interface)"),InputTypeDefinition:z.string().nullable().describe("\n * * Field Name: InputTypeDefinition\n * * Display Name: Input Type Definition\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Raw TypeScript interface/type source defining the input shape (same mechanism as EntityField JSON-type definitions)"),InputTypeIsArray:z.boolean().describe("\n * * Field Name: InputTypeIsArray\n * * Display Name: Is Input Array\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When 1, the input type is emitted as an array (TInput[])"),OutputTypeName:z.string().nullable().describe("\n * * Field Name: OutputTypeName\n * * Display Name: Output Type Name\n * * SQL Data Type: nvarchar(255)\n * * Description: TypeScript type name for the operation output (emitted by CodeGen as the TOutput interface)"),OutputTypeDefinition:z.string().nullable().describe("\n * * Field Name: OutputTypeDefinition\n * * Display Name: Output Type Definition\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Raw TypeScript interface/type source defining the output shape"),OutputTypeIsArray:z.boolean().describe("\n * * Field Name: OutputTypeIsArray\n * * Display Name: Is Output Array\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When 1, the output type is emitted as an array (TOutput[])"),ExecutionMode:z.union([z.literal('LongRunning'),z.literal('Sync')]).describe("\n * * Field Name: ExecutionMode\n * * Display Name: Execution Mode\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Sync\n * * Value List Type: List\n * * Possible Values \n * * LongRunning\n * * Sync\n * * Description: Sync (request/response) or LongRunning (returns a handle; supports detached and attached consumption)"),RequiredScope:z.string().nullable().describe("\n * * Field Name: RequiredScope\n * * Display Name: Required Scope\n * * SQL Data Type: nvarchar(255)\n * * Description: Optional API-key scope string (e.g., recordprocess:execute) enforced for API-key/MCP callers; NULL means no scope gate (interactive users are still bounded by their entity permissions)"),RequiresSystemUser:z.boolean().describe("\n * * Field Name: RequiresSystemUser\n * * Display Name: Requires System User\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When 1, only the system user may invoke this operation"),GenerationType:z.union([z.literal('AI'),z.literal('Default'),z.literal('Manual')]).describe("\n * * Field Name: GenerationType\n * * Display Name: Generation Type\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Manual\n * * Value List Type: List\n * * Possible Values \n * * AI\n * * Default\n * * Manual\n * * Description: How the server implementation is provided: Manual (hand-written subclass), AI (generated from Description), or Default (standard generated plumbing)"),Code:z.string().nullable().describe("\n * * Field Name: Code\n * * Display Name: Implementation Code\n * * SQL Data Type: nvarchar(MAX)\n * * Description: The AI-generated implementation body (when GenerationType=AI); regenerated only when Description changes"),CodeApprovalStatus:z.union([z.literal('Approved'),z.literal('Pending'),z.literal('Rejected')]).describe("\n * * Field Name: CodeApprovalStatus\n * * Display Name: Approval Status\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Pending\n * * Value List Type: List\n * * Possible Values \n * * Approved\n * * Pending\n * * Rejected\n * * Description: Human approval gate for AI-generated code: Pending, Approved, or Rejected. Only Approved AI code is emitted and routable."),CodeApprovedByUserID:z.string().nullable().describe("\n * * Field Name: CodeApprovedByUserID\n * * Display Name: Approved By User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)\n * * Description: Foreign key to the user who approved the generated code"),CodeApprovedAt:z.date().nullable().describe("\n * * Field Name: CodeApprovedAt\n * * Display Name: Approved At\n * * SQL Data Type: datetimeoffset\n * * Description: When the generated code was approved"),ContractFingerprint:z.string().nullable().describe("\n * * Field Name: ContractFingerprint\n * * Display Name: Contract Fingerprint\n * * SQL Data Type: nvarchar(100)\n * * Description: Fingerprint of the input/output contract; carried in the wire envelope so the server can reject a stale client loudly instead of mis-deserializing"),Status:z.union([z.literal('Active'),z.literal('Disabled'),z.literal('Pending')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Pending\n * * Value List Type: List\n * * Possible Values \n * * Active\n * * Disabled\n * * Pending\n * * Description: Lifecycle status: Active (routable), Disabled, or Pending. Only Active operations can be invoked."),CacheTTLSeconds:z.number().nullable().describe("\n * * Field Name: CacheTTLSeconds\n * * Display Name: Cache TTL (Seconds)\n * * SQL Data Type: int\n * * Description: Optional result cache TTL in seconds (NULL = no caching)"),TimeoutMS:z.number().nullable().describe("\n * * Field Name: TimeoutMS\n * * Display Name: Timeout (MS)\n * * SQL Data Type: int\n * * Description: Optional execution timeout in milliseconds"),MaxConcurrency:z.number().nullable().describe("\n * * Field Name: MaxConcurrency\n * * Display Name: Max Concurrency\n * * SQL Data Type: int\n * * Description: Optional cap on concurrent executions of this operation"),__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()"),Category:z.string().nullable().describe("\n * * Field Name: Category\n * * Display Name: Category Name\n * * SQL Data Type: nvarchar(255)"),CodeApprovedByUser:z.string().nullable().describe("\n * * Field Name: CodeApprovedByUser\n * * Display Name: Approved By User\n * * SQL Data Type: nvarchar(100)")});/**
62078
+ */var MJRemoteOperationSchema=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: Human-readable name of the operation"),OperationKey:z.string().describe("\n * * Field Name: OperationKey\n * * Display Name: Operation Key\n * * SQL Data Type: nvarchar(255)\n * * Description: Stable, unique registry key and wire token used to dispatch the operation (e.g., \"RecordProcess.RunNow\"). Namespaced by convention."),CategoryID:z.string().nullable().describe("\n * * Field Name: CategoryID\n * * Display Name: Category\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Remote Operation Categories (vwRemoteOperationCategories.ID)\n * * Description: Optional hierarchical category for organizing this operation in the UI"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Human description of the operation; also the seed for AI-generated implementation code when GenerationType=AI"),InputTypeName:z.string().nullable().describe("\n * * Field Name: InputTypeName\n * * Display Name: Input Type Name\n * * SQL Data Type: nvarchar(255)\n * * Description: TypeScript type name for the operation input (emitted by CodeGen as the TInput interface)"),InputTypeDefinition:z.string().nullable().describe("\n * * Field Name: InputTypeDefinition\n * * Display Name: Input Type Definition\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Raw TypeScript interface/type source defining the input shape (same mechanism as EntityField JSON-type definitions)"),InputTypeIsArray:z.boolean().describe("\n * * Field Name: InputTypeIsArray\n * * Display Name: Input Is Array\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When 1, the input type is emitted as an array (TInput[])"),OutputTypeName:z.string().nullable().describe("\n * * Field Name: OutputTypeName\n * * Display Name: Output Type Name\n * * SQL Data Type: nvarchar(255)\n * * Description: TypeScript type name for the operation output (emitted by CodeGen as the TOutput interface)"),OutputTypeDefinition:z.string().nullable().describe("\n * * Field Name: OutputTypeDefinition\n * * Display Name: Output Type Definition\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Raw TypeScript interface/type source defining the output shape"),OutputTypeIsArray:z.boolean().describe("\n * * Field Name: OutputTypeIsArray\n * * Display Name: Output Is Array\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When 1, the output type is emitted as an array (TOutput[])"),ExecutionMode:z.union([z.literal('LongRunning'),z.literal('Sync')]).describe("\n * * Field Name: ExecutionMode\n * * Display Name: Execution Mode\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Sync\n * * Value List Type: List\n * * Possible Values \n * * LongRunning\n * * Sync\n * * Description: Sync (request/response) or LongRunning (returns a handle; supports detached and attached consumption)"),RequiredScope:z.string().nullable().describe("\n * * Field Name: RequiredScope\n * * Display Name: Required Scope\n * * SQL Data Type: nvarchar(255)\n * * Description: Optional API-key scope string (e.g., recordprocess:execute) enforced for API-key/MCP callers; NULL means no scope gate (interactive users are still bounded by their entity permissions)"),RequiresSystemUser:z.boolean().describe("\n * * Field Name: RequiresSystemUser\n * * Display Name: Requires System User\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When 1, only the system user may invoke this operation"),GenerationType:z.union([z.literal('AI'),z.literal('Default'),z.literal('Manual')]).describe("\n * * Field Name: GenerationType\n * * Display Name: Generation Type\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Manual\n * * Value List Type: List\n * * Possible Values \n * * AI\n * * Default\n * * Manual\n * * Description: How the server implementation is provided: Manual (hand-written subclass), AI (generated from Description), or Default (standard generated plumbing)"),Code:z.string().nullable().describe("\n * * Field Name: Code\n * * Display Name: Code\n * * SQL Data Type: nvarchar(MAX)\n * * Description: The AI-generated implementation body (when GenerationType=AI); regenerated only when Description changes"),CodeApprovalStatus:z.union([z.literal('Approved'),z.literal('Pending'),z.literal('Rejected')]).describe("\n * * Field Name: CodeApprovalStatus\n * * Display Name: Code Approval Status\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Pending\n * * Value List Type: List\n * * Possible Values \n * * Approved\n * * Pending\n * * Rejected\n * * Description: Human approval gate for AI-generated code: Pending, Approved, or Rejected. Only Approved AI code is emitted and routable."),CodeApprovedByUserID:z.string().nullable().describe("\n * * Field Name: CodeApprovedByUserID\n * * Display Name: Code Approved By User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)\n * * Description: Foreign key to the user who approved the generated code"),CodeApprovedAt:z.date().nullable().describe("\n * * Field Name: CodeApprovedAt\n * * Display Name: Code Approved At\n * * SQL Data Type: datetimeoffset\n * * Description: When the generated code was approved"),ContractFingerprint:z.string().nullable().describe("\n * * Field Name: ContractFingerprint\n * * Display Name: Contract Fingerprint\n * * SQL Data Type: nvarchar(100)\n * * Description: Fingerprint of the input/output contract; carried in the wire envelope so the server can reject a stale client loudly instead of mis-deserializing"),Status:z.union([z.literal('Active'),z.literal('Disabled'),z.literal('Pending')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Pending\n * * Value List Type: List\n * * Possible Values \n * * Active\n * * Disabled\n * * Pending\n * * Description: Lifecycle status: Active (routable), Disabled, or Pending. Only Active operations can be invoked."),CacheTTLSeconds:z.number().nullable().describe("\n * * Field Name: CacheTTLSeconds\n * * Display Name: Cache TTL (Seconds)\n * * SQL Data Type: int\n * * Description: Optional result cache TTL in seconds (NULL = no caching)"),TimeoutMS:z.number().nullable().describe("\n * * Field Name: TimeoutMS\n * * Display Name: Timeout (MS)\n * * SQL Data Type: int\n * * Description: Optional execution timeout in milliseconds"),MaxConcurrency:z.number().nullable().describe("\n * * Field Name: MaxConcurrency\n * * Display Name: Max Concurrency\n * * SQL Data Type: int\n * * Description: Optional cap on concurrent executions of this operation"),__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()"),CodeLocked:z.boolean().describe("\n * * Field Name: CodeLocked\n * * Display Name: Code Locked\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When 1, the AI-generated Code is frozen and Save() will not regenerate it even if Description changes (the Generated-Actions CodeLocked analog). Default 0."),CodeComments:z.string().nullable().describe("\n * * Field Name: CodeComments\n * * Display Name: Code Comments\n * * SQL Data Type: nvarchar(MAX)\n * * Description: The model's explanation / comments for the AI-generated Code (populated alongside Code when GenerationType=AI). Human-facing review aid."),Libraries:z.any().nullable().describe("\n * * Field Name: Libraries\n * * Display Name: Libraries\n * * SQL Data Type: nvarchar(MAX)\n * * JSON Type: Array<MJRemoteOperationEntity_RemoteOperationLibrary>\n * * Description: JSON array of the libraries the generated body imports: [{ \"Library\": \"@memberjunction/ai-prompts\", \"ItemsUsed\": [\"AIPromptRunner\"] }, ...]. Bound to the RemoteOperationLibrary JSONType via metadata sync so CodeGen emits a typed LibrariesObject accessor; CodeGen uses it to emit the imports at the top of the generated remote_operations.ts. NULL/empty = only the default always-available libraries are imported."),Category:z.string().nullable().describe("\n * * Field Name: Category\n * * Display Name: Category Name\n * * SQL Data Type: nvarchar(255)"),CodeApprovedByUser:z.string().nullable().describe("\n * * Field Name: CodeApprovedByUser\n * * Display Name: Code Approved By User\n * * SQL Data Type: nvarchar(100)")});/**
61446
62079
  * zod schema definition for the entity MJ: Report Categories
61447
62080
  */var MJReportCategorySchema=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)"),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: Report Categories (vwReportCategories.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)"),__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()"),Parent:z.string().nullable().describe("\n * * Field Name: Parent\n * * Display Name: Parent\n * * SQL Data Type: nvarchar(100)"),User:z.string().describe("\n * * Field Name: User\n * * Display Name: User\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")});/**
61448
62081
  * zod schema definition for the entity MJ: Report Snapshots
@@ -80031,6 +80664,11 @@ _context167.p=1;_context167.n=2;return provider.BeginTransaction();case 2:_conte
80031
80664
  * * SQL Data Type: datetimeoffset
80032
80665
  * * Default Value: getutcdate()
80033
80666
  */},{key:"__mj_UpdatedAt",get:function get(){return this.Get('__mj_UpdatedAt');}/**
80667
+ * * Field Name: RuntimeUXDriverClass
80668
+ * * Display Name: Runtime UX Driver Class
80669
+ * * SQL Data Type: nvarchar(255)
80670
+ * * Description: Optional class name of a registered runtime-UX driver component (a BaseEntityActionRuntimeUX subclass resolved via MJGlobal.ClassFactory) that owns this invocation's interaction — parameter collection, dry-run preview, confirmation, and progress. NULL invokes the action directly with no custom UX. This lets any action opt into a richer, reusable runtime experience while the grid/toolbar stays operation-agnostic.
80671
+ */},{key:"RuntimeUXDriverClass",get:function get(){return this.Get('RuntimeUXDriverClass');},set:function set(value){this.Set('RuntimeUXDriverClass',value);}/**
80034
80672
  * * Field Name: EntityAction
80035
80673
  * * Display Name: Entity Action Name
80036
80674
  * * SQL Data Type: nvarchar(425)
@@ -86322,6 +86960,11 @@ var regex=/^[a-z0-9-]+$/;if(this.Name!=null&&!regex.test(this.Name)){result.Erro
86322
86960
  * * SQL Data Type: datetimeoffset
86323
86961
  * * Default Value: getutcdate()
86324
86962
  */},{key:"__mj_UpdatedAt",get:function get(){return this.Get('__mj_UpdatedAt');}/**
86963
+ * * Field Name: Subpath
86964
+ * * Display Name: Subpath
86965
+ * * SQL Data Type: nvarchar(500)
86966
+ * * Description: In-repo subdirectory the app was installed from for multi-app repositories (e.g. 'CRM/HubSpot'). NULL when the app's mj-app.json is at the repository root.
86967
+ */},{key:"Subpath",get:function get(){return this.Get('Subpath');},set:function set(value){this.Set('Subpath',value);}/**
86325
86968
  * * Field Name: InstalledByUser
86326
86969
  * * Display Name: Installed By User
86327
86970
  * * SQL Data Type: nvarchar(100)
@@ -86829,7 +87472,7 @@ var regex=/^[a-z0-9-]+$/;if(this.Name!=null&&!regex.test(this.Name)){result.Erro
86829
87472
  * * Description: Pause/cancel handshake flag honored by the processor between batches
86830
87473
  */},{key:"CancellationRequested",get:function get(){return this.Get('CancellationRequested');},set:function set(value){this.Set('CancellationRequested',value);}/**
86831
87474
  * * Field Name: Configuration
86832
- * * Display Name: Configuration
87475
+ * * Display Name: Configuration JSON
86833
87476
  * * SQL Data Type: nvarchar(MAX)
86834
87477
  * * Description: JSON snapshot of the effective configuration for this run
86835
87478
  */},{key:"Configuration",get:function get(){return this.Get('Configuration');},set:function set(value){this.Set('Configuration',value);}/**
@@ -86854,6 +87497,12 @@ var regex=/^[a-z0-9-]+$/;if(this.Name!=null&&!regex.test(this.Name)){result.Erro
86854
87497
  * * SQL Data Type: datetimeoffset
86855
87498
  * * Default Value: getutcdate()
86856
87499
  */},{key:"__mj_UpdatedAt",get:function get(){return this.Get('__mj_UpdatedAt');}/**
87500
+ * * Field Name: DryRun
87501
+ * * Display Name: Is Dry Run
87502
+ * * SQL Data Type: bit
87503
+ * * Default Value: 0
87504
+ * * Description: When 1, this run was a dry-run (compute-only) preview: the per-record diffs were computed and persisted as Process Run Details, but no changes were written back to the target records. When 0, the run applied its changes.
87505
+ */},{key:"DryRun",get:function get(){return this.Get('DryRun');},set:function set(value){this.Set('DryRun',value);}/**
86857
87506
  * * Field Name: RecordProcess
86858
87507
  * * Display Name: Record Process Name
86859
87508
  * * SQL Data Type: nvarchar(255)
@@ -89124,6 +89773,7 @@ _context260.p=1;_context260.n=2;return provider.BeginTransaction();case 2:_conte
89124
89773
  * * Possible Values
89125
89774
  * * Action
89126
89775
  * * Agent
89776
+ * * FieldRules
89127
89777
  * * Infer
89128
89778
  * * Description: Whether the work is an Action, an Agent, or an Infer (per-record AI Prompt). Agents are dispatched through the Execute Agent action and must be top-level + ExposeAsAction; Infer runs the AI Prompt named by PromptID for each record and writes its structured output back via OutputMapping.
89129
89779
  */},{key:"WorkType",get:function get(){return this.Get('WorkType');},set:function set(value){this.Set('WorkType',value);}/**
@@ -89266,32 +89916,37 @@ _context260.p=1;_context260.n=2;return provider.BeginTransaction();case 2:_conte
89266
89916
  * * SQL Data Type: datetimeoffset
89267
89917
  * * Default Value: getutcdate()
89268
89918
  */},{key:"__mj_UpdatedAt",get:function get(){return this.Get('__mj_UpdatedAt');}/**
89919
+ * * Field Name: Configuration
89920
+ * * Display Name: Configuration
89921
+ * * SQL Data Type: nvarchar(MAX)
89922
+ * * Description: JSON configuration for the process's work, used by work types that need structured config beyond Input/Output mappings. For WorkType='FieldRules' this holds the serialized FieldRuleSet (the rules applied to each record). NULL for work types that do not use it.
89923
+ */},{key:"Configuration",get:function get(){return this.Get('Configuration');},set:function set(value){this.Set('Configuration',value);}/**
89269
89924
  * * Field Name: Category
89270
- * * Display Name: Category (Display)
89925
+ * * Display Name: Category Name
89271
89926
  * * SQL Data Type: nvarchar(255)
89272
89927
  */},{key:"Category",get:function get(){return this.Get('Category');}/**
89273
89928
  * * Field Name: Entity
89274
- * * Display Name: Entity (Display)
89929
+ * * Display Name: Entity Name
89275
89930
  * * SQL Data Type: nvarchar(255)
89276
89931
  */},{key:"Entity",get:function get(){return this.Get('Entity');}/**
89277
89932
  * * Field Name: Action
89278
- * * Display Name: Action (Display)
89933
+ * * Display Name: Action Name
89279
89934
  * * SQL Data Type: nvarchar(425)
89280
89935
  */},{key:"Action",get:function get(){return this.Get('Action');}/**
89281
89936
  * * Field Name: Agent
89282
- * * Display Name: Agent (Display)
89937
+ * * Display Name: Agent Name
89283
89938
  * * SQL Data Type: nvarchar(255)
89284
89939
  */},{key:"Agent",get:function get(){return this.Get('Agent');}/**
89285
89940
  * * Field Name: Prompt
89286
- * * Display Name: Prompt (Display)
89941
+ * * Display Name: Prompt Name
89287
89942
  * * SQL Data Type: nvarchar(255)
89288
89943
  */},{key:"Prompt",get:function get(){return this.Get('Prompt');}/**
89289
89944
  * * Field Name: ScopeView
89290
- * * Display Name: Scope View (Display)
89945
+ * * Display Name: Scope View Name
89291
89946
  * * SQL Data Type: nvarchar(100)
89292
89947
  */},{key:"ScopeView",get:function get(){return this.Get('ScopeView');}/**
89293
89948
  * * Field Name: ScopeList
89294
- * * Display Name: Scope List (Display)
89949
+ * * Display Name: Scope List Name
89295
89950
  * * SQL Data Type: nvarchar(100)
89296
89951
  */},{key:"ScopeList",get:function get(){return this.Get('ScopeList');}}]);}(dist/* BaseEntity */.HCJ);MJRecordProcessEntity=__decorate([(0,MJGlobal_dist/* RegisterClass */.Y5)(dist/* BaseEntity */.HCJ,'MJ: Record Processes')],MJRecordProcessEntity);/**
89297
89952
  * MJ: Remote Operation Categories - strongly typed entity sub-class
@@ -89362,7 +90017,7 @@ _context260.p=1;_context260.n=2;return provider.BeginTransaction();case 2:_conte
89362
90017
  * @extends {BaseEntity}
89363
90018
  * @class
89364
90019
  * @public
89365
- */var MJRemoteOperationEntity=/*#__PURE__*/function(_BaseEntity269){function MJRemoteOperationEntity(){_classCallCheck(this,MJRemoteOperationEntity);return _callSuper(this,MJRemoteOperationEntity,arguments);}_inherits(MJRemoteOperationEntity,_BaseEntity269);return _createClass(MJRemoteOperationEntity,[{key:"Load",value:(/**
90020
+ */var MJRemoteOperationEntity=/*#__PURE__*/function(_BaseEntity269){function MJRemoteOperationEntity(){var _this9;_classCallCheck(this,MJRemoteOperationEntity);_this9=_callSuper(this,MJRemoteOperationEntity,arguments);_this9._LibrariesObject_cached=undefined;_this9._LibrariesObject_lastRaw=null;return _this9;}/**
89366
90021
  * Loads the MJ: Remote Operations record from the database
89367
90022
  * @param ID: string - primary key value to load the MJ: Remote Operations record.
89368
90023
  * @param EntityRelationshipsToLoad - (optional) the relationships to load
@@ -89372,7 +90027,7 @@ _context260.p=1;_context260.n=2;return provider.BeginTransaction();case 2:_conte
89372
90027
  * @memberof MJRemoteOperationEntity
89373
90028
  * @method
89374
90029
  * @override
89375
- */function(){var _Load269=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee285(ID,EntityRelationshipsToLoad){var compositeKey;return _regenerator().w(function(_context285){while(1)switch(_context285.n){case 0:compositeKey=new dist/* CompositeKey */.BT8();compositeKey.KeyValuePairs.push({FieldName:'ID',Value:ID});_context285.n=1;return _superPropGet(MJRemoteOperationEntity,"InnerLoad",this,3)([compositeKey,EntityRelationshipsToLoad]);case 1:return _context285.a(2,_context285.v);}},_callee285,this);}));function Load(_x555,_x556){return _Load269.apply(this,arguments);}return Load;}()/**
90030
+ */_inherits(MJRemoteOperationEntity,_BaseEntity269);return _createClass(MJRemoteOperationEntity,[{key:"Load",value:(function(){var _Load269=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee285(ID,EntityRelationshipsToLoad){var compositeKey;return _regenerator().w(function(_context285){while(1)switch(_context285.n){case 0:compositeKey=new dist/* CompositeKey */.BT8();compositeKey.KeyValuePairs.push({FieldName:'ID',Value:ID});_context285.n=1;return _superPropGet(MJRemoteOperationEntity,"InnerLoad",this,3)([compositeKey,EntityRelationshipsToLoad]);case 1:return _context285.a(2,_context285.v);}},_callee285,this);}));function Load(_x555,_x556){return _Load269.apply(this,arguments);}return Load;}()/**
89376
90031
  * * Field Name: ID
89377
90032
  * * Display Name: ID
89378
90033
  * * SQL Data Type: uniqueidentifier
@@ -89410,7 +90065,7 @@ _context260.p=1;_context260.n=2;return provider.BeginTransaction();case 2:_conte
89410
90065
  * * Description: Raw TypeScript interface/type source defining the input shape (same mechanism as EntityField JSON-type definitions)
89411
90066
  */},{key:"InputTypeDefinition",get:function get(){return this.Get('InputTypeDefinition');},set:function set(value){this.Set('InputTypeDefinition',value);}/**
89412
90067
  * * Field Name: InputTypeIsArray
89413
- * * Display Name: Is Input Array
90068
+ * * Display Name: Input Is Array
89414
90069
  * * SQL Data Type: bit
89415
90070
  * * Default Value: 0
89416
90071
  * * Description: When 1, the input type is emitted as an array (TInput[])
@@ -89426,7 +90081,7 @@ _context260.p=1;_context260.n=2;return provider.BeginTransaction();case 2:_conte
89426
90081
  * * Description: Raw TypeScript interface/type source defining the output shape
89427
90082
  */},{key:"OutputTypeDefinition",get:function get(){return this.Get('OutputTypeDefinition');},set:function set(value){this.Set('OutputTypeDefinition',value);}/**
89428
90083
  * * Field Name: OutputTypeIsArray
89429
- * * Display Name: Is Output Array
90084
+ * * Display Name: Output Is Array
89430
90085
  * * SQL Data Type: bit
89431
90086
  * * Default Value: 0
89432
90087
  * * Description: When 1, the output type is emitted as an array (TOutput[])
@@ -89464,12 +90119,12 @@ _context260.p=1;_context260.n=2;return provider.BeginTransaction();case 2:_conte
89464
90119
  * * Description: How the server implementation is provided: Manual (hand-written subclass), AI (generated from Description), or Default (standard generated plumbing)
89465
90120
  */},{key:"GenerationType",get:function get(){return this.Get('GenerationType');},set:function set(value){this.Set('GenerationType',value);}/**
89466
90121
  * * Field Name: Code
89467
- * * Display Name: Implementation Code
90122
+ * * Display Name: Code
89468
90123
  * * SQL Data Type: nvarchar(MAX)
89469
90124
  * * Description: The AI-generated implementation body (when GenerationType=AI); regenerated only when Description changes
89470
90125
  */},{key:"Code",get:function get(){return this.Get('Code');},set:function set(value){this.Set('Code',value);}/**
89471
90126
  * * Field Name: CodeApprovalStatus
89472
- * * Display Name: Approval Status
90127
+ * * Display Name: Code Approval Status
89473
90128
  * * SQL Data Type: nvarchar(20)
89474
90129
  * * Default Value: Pending
89475
90130
  * * Value List Type: List
@@ -89480,13 +90135,13 @@ _context260.p=1;_context260.n=2;return provider.BeginTransaction();case 2:_conte
89480
90135
  * * Description: Human approval gate for AI-generated code: Pending, Approved, or Rejected. Only Approved AI code is emitted and routable.
89481
90136
  */},{key:"CodeApprovalStatus",get:function get(){return this.Get('CodeApprovalStatus');},set:function set(value){this.Set('CodeApprovalStatus',value);}/**
89482
90137
  * * Field Name: CodeApprovedByUserID
89483
- * * Display Name: Approved By User ID
90138
+ * * Display Name: Code Approved By User ID
89484
90139
  * * SQL Data Type: uniqueidentifier
89485
90140
  * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
89486
90141
  * * Description: Foreign key to the user who approved the generated code
89487
90142
  */},{key:"CodeApprovedByUserID",get:function get(){return this.Get('CodeApprovedByUserID');},set:function set(value){this.Set('CodeApprovedByUserID',value);}/**
89488
90143
  * * Field Name: CodeApprovedAt
89489
- * * Display Name: Approved At
90144
+ * * Display Name: Code Approved At
89490
90145
  * * SQL Data Type: datetimeoffset
89491
90146
  * * Description: When the generated code was approved
89492
90147
  */},{key:"CodeApprovedAt",get:function get(){return this.Get('CodeApprovedAt');},set:function set(value){this.Set('CodeApprovedAt',value);}/**
@@ -89531,12 +90186,32 @@ _context260.p=1;_context260.n=2;return provider.BeginTransaction();case 2:_conte
89531
90186
  * * SQL Data Type: datetimeoffset
89532
90187
  * * Default Value: getutcdate()
89533
90188
  */},{key:"__mj_UpdatedAt",get:function get(){return this.Get('__mj_UpdatedAt');}/**
90189
+ * * Field Name: CodeLocked
90190
+ * * Display Name: Code Locked
90191
+ * * SQL Data Type: bit
90192
+ * * Default Value: 0
90193
+ * * Description: When 1, the AI-generated Code is frozen and Save() will not regenerate it even if Description changes (the Generated-Actions CodeLocked analog). Default 0.
90194
+ */},{key:"CodeLocked",get:function get(){return this.Get('CodeLocked');},set:function set(value){this.Set('CodeLocked',value);}/**
90195
+ * * Field Name: CodeComments
90196
+ * * Display Name: Code Comments
90197
+ * * SQL Data Type: nvarchar(MAX)
90198
+ * * Description: The model's explanation / comments for the AI-generated Code (populated alongside Code when GenerationType=AI). Human-facing review aid.
90199
+ */},{key:"CodeComments",get:function get(){return this.Get('CodeComments');},set:function set(value){this.Set('CodeComments',value);}/**
90200
+ * * Field Name: Libraries
90201
+ * * Display Name: Libraries
90202
+ * * SQL Data Type: nvarchar(MAX)
90203
+ * * JSON Type: Array<MJRemoteOperationEntity_RemoteOperationLibrary>
90204
+ * * Description: JSON array of the libraries the generated body imports: [{ "Library": "@memberjunction/ai-prompts", "ItemsUsed": ["AIPromptRunner"] }, ...]. Bound to the RemoteOperationLibrary JSONType via metadata sync so CodeGen emits a typed LibrariesObject accessor; CodeGen uses it to emit the imports at the top of the generated remote_operations.ts. NULL/empty = only the default always-available libraries are imported.
90205
+ */},{key:"Libraries",get:function get(){return this.Get('Libraries');},set:function set(value){this.Set('Libraries',value);}/**
90206
+ * Typed accessor for Libraries — returns parsed JSON as Array<MJRemoteOperationEntity_RemoteOperationLibrary>.
90207
+ * Uses lazy parsing with cache invalidation when the underlying raw value changes.
90208
+ */},{key:"LibrariesObject",get:function get(){var raw=this.Libraries;if(raw!==this._LibrariesObject_lastRaw){this._LibrariesObject_cached=raw?JSON.parse(raw):null;this._LibrariesObject_lastRaw=raw;}return this._LibrariesObject_cached;},set:function set(value){var raw=value?JSON.stringify(value):null;this.Libraries=raw;this._LibrariesObject_cached=value;this._LibrariesObject_lastRaw=raw;}/**
89534
90209
  * * Field Name: Category
89535
90210
  * * Display Name: Category Name
89536
90211
  * * SQL Data Type: nvarchar(255)
89537
90212
  */},{key:"Category",get:function get(){return this.Get('Category');}/**
89538
90213
  * * Field Name: CodeApprovedByUser
89539
- * * Display Name: Approved By User
90214
+ * * Display Name: Code Approved By User
89540
90215
  * * SQL Data Type: nvarchar(100)
89541
90216
  */},{key:"CodeApprovedByUser",get:function get(){return this.Get('CodeApprovedByUser');}}]);}(dist/* BaseEntity */.HCJ);MJRemoteOperationEntity=__decorate([(0,MJGlobal_dist/* RegisterClass */.Y5)(dist/* BaseEntity */.HCJ,'MJ: Remote Operations')],MJRemoteOperationEntity);/**
89542
90217
  * MJ: Report Categories - strongly typed entity sub-class
@@ -95783,7 +96458,7 @@ _context348.p=1;_context348.n=2;return provider.BeginTransaction();case 2:_conte
95783
96458
  * @extends {BaseEntity}
95784
96459
  * @class
95785
96460
  * @public
95786
- */var MJUserViewEntity=/*#__PURE__*/function(_BaseEntity341){function MJUserViewEntity(){var _this9;_classCallCheck(this,MJUserViewEntity);_this9=_callSuper(this,MJUserViewEntity,arguments);_this9._GridStateObject_cached=undefined;_this9._GridStateObject_lastRaw=null;_this9._FilterStateObject_cached=undefined;_this9._FilterStateObject_lastRaw=null;_this9._SortStateObject_cached=undefined;_this9._SortStateObject_lastRaw=null;_this9._CardStateObject_cached=undefined;_this9._CardStateObject_lastRaw=null;_this9._DisplayStateObject_cached=undefined;_this9._DisplayStateObject_lastRaw=null;return _this9;}/**
96461
+ */var MJUserViewEntity=/*#__PURE__*/function(_BaseEntity341){function MJUserViewEntity(){var _this0;_classCallCheck(this,MJUserViewEntity);_this0=_callSuper(this,MJUserViewEntity,arguments);_this0._GridStateObject_cached=undefined;_this0._GridStateObject_lastRaw=null;_this0._FilterStateObject_cached=undefined;_this0._FilterStateObject_lastRaw=null;_this0._SortStateObject_cached=undefined;_this0._SortStateObject_lastRaw=null;_this0._CardStateObject_cached=undefined;_this0._CardStateObject_lastRaw=null;_this0._DisplayStateObject_cached=undefined;_this0._DisplayStateObject_lastRaw=null;return _this0;}/**
95787
96462
  * Loads the MJ: User Views record from the database
95788
96463
  * @param ID: string - primary key value to load the MJ: User Views record.
95789
96464
  * @param EntityRelationshipsToLoad - (optional) the relationships to load
@@ -97062,6 +97737,170 @@ _context348.p=1;_context348.n=2;return provider.BeginTransaction();case 2:_conte
97062
97737
  * * Display Name: User
97063
97738
  * * SQL Data Type: nvarchar(100)
97064
97739
  */},{key:"User",get:function get(){return this.Get('User');}}]);}(dist/* BaseEntity */.HCJ);MJWorkspaceEntity=__decorate([(0,MJGlobal_dist/* RegisterClass */.Y5)(dist/* BaseEntity */.HCJ,'MJ: Workspaces')],MJWorkspaceEntity);
97740
+ ;// ../../MJCoreEntities/dist/generated/remote_operations.js
97741
+ /* unused harmony import specifier */ var BaseRemotableOperation;
97742
+ function remote_operations_typeof(o) { "@babel/helpers - typeof"; return remote_operations_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; }, remote_operations_typeof(o); }
97743
+ function remote_operations_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, remote_operations_toPropertyKey(o.key), o); } }
97744
+ function remote_operations_createClass(e, r, t) { return r && remote_operations_defineProperties(e.prototype, r), t && remote_operations_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
97745
+ function remote_operations_toPropertyKey(t) { var i = remote_operations_toPrimitive(t, "string"); return "symbol" == remote_operations_typeof(i) ? i : i + ""; }
97746
+ function remote_operations_toPrimitive(t, r) { if ("object" != remote_operations_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != remote_operations_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
97747
+ function remote_operations_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
97748
+ function remote_operations_callSuper(t, o, e) { return o = remote_operations_getPrototypeOf(o), remote_operations_possibleConstructorReturn(t, remote_operations_isNativeReflectConstruct() ? Reflect.construct(o, e || [], remote_operations_getPrototypeOf(t).constructor) : o.apply(t, e)); }
97749
+ function remote_operations_possibleConstructorReturn(t, e) { if (e && ("object" == remote_operations_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return remote_operations_assertThisInitialized(t); }
97750
+ function remote_operations_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
97751
+ function remote_operations_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (remote_operations_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
97752
+ function remote_operations_getPrototypeOf(t) { return remote_operations_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, remote_operations_getPrototypeOf(t); }
97753
+ function remote_operations_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 && remote_operations_setPrototypeOf(t, e); }
97754
+ function remote_operations_setPrototypeOf(t, e) { return remote_operations_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, remote_operations_setPrototypeOf(t, e); }
97755
+ /*************************************************
97756
+ * GENERATED CODE - DO NOT MODIFY
97757
+ * Generated by MemberJunction CodeGen — Remote Operation typed bases
97758
+ *
97759
+ * One typed base class per "MJ: Remote Operations" row (a subclass of BaseRemotableOperation),
97760
+ * emitted from the operation's metadata: OperationKey, ExecutionMode, RequiredScope, and the raw
97761
+ * TypeScript Input/Output type definitions. GenerationType=Manual rows emit a typed SHELL — a
97762
+ * hand-authored server subclass (registered via @RegisterClass) supplies the InternalExecute body.
97763
+ * GenerationType=AI/Default rows with Approved Code emit a complete, registered class.
97764
+ **************************************************/
97765
+
97766
+ // ============================================================
97767
+ // RecordProcess.CancelRun — Cancel Record Process Run
97768
+ // ============================================================
97769
+ /**
97770
+ * Cancel Record Process Run
97771
+ * Request cancellation of a running Record Process (honored at the next checkpoint). Returns the run's status. Implemented by RecordProcessCancelRunOperation in @memberjunction/record-set-processor.
97772
+ * GenerationType=Manual — the server body is supplied by a hand-authored subclass registered
97773
+ * under 'RecordProcess.CancelRun'. This generated base provides the typed contract only (client-safe).
97774
+ */
97775
+ var RecordProcessCancelRunOperation = /*#__PURE__*/(/* unused pure expression or super */ null && (function (_BaseRemotableOperati) {
97776
+ function RecordProcessCancelRunOperation() {
97777
+ var _this;
97778
+ remote_operations_classCallCheck(this, RecordProcessCancelRunOperation);
97779
+ _this = remote_operations_callSuper(this, RecordProcessCancelRunOperation, arguments);
97780
+ _this.OperationKey = "RecordProcess.CancelRun";
97781
+ _this.ExecutionMode = 'Sync';
97782
+ _this.RequiredScope = "recordprocess:execute";
97783
+ _this.RequiresSystemUser = false;
97784
+ return _this;
97785
+ }
97786
+ remote_operations_inherits(RecordProcessCancelRunOperation, _BaseRemotableOperati);
97787
+ return remote_operations_createClass(RecordProcessCancelRunOperation);
97788
+ }(BaseRemotableOperation)));
97789
+ // ============================================================
97790
+ // RecordProcess.GetRunStatus — Get Record Process Run Status
97791
+ // ============================================================
97792
+ /**
97793
+ * Get Record Process Run Status
97794
+ * Return a snapshot of a Record Process run's progress (status + processed/total/success/error/skipped counts) by ProcessRunID. Implemented by RecordProcessGetRunStatusOperation in @memberjunction/record-set-processor.
97795
+ * GenerationType=Manual — the server body is supplied by a hand-authored subclass registered
97796
+ * under 'RecordProcess.GetRunStatus'. This generated base provides the typed contract only (client-safe).
97797
+ */
97798
+ var RecordProcessGetRunStatusOperation = /*#__PURE__*/(/* unused pure expression or super */ null && (function (_BaseRemotableOperati2) {
97799
+ function RecordProcessGetRunStatusOperation() {
97800
+ var _this2;
97801
+ remote_operations_classCallCheck(this, RecordProcessGetRunStatusOperation);
97802
+ _this2 = remote_operations_callSuper(this, RecordProcessGetRunStatusOperation, arguments);
97803
+ _this2.OperationKey = "RecordProcess.GetRunStatus";
97804
+ _this2.ExecutionMode = 'Sync';
97805
+ _this2.RequiredScope = "recordprocess:execute";
97806
+ _this2.RequiresSystemUser = false;
97807
+ return _this2;
97808
+ }
97809
+ remote_operations_inherits(RecordProcessGetRunStatusOperation, _BaseRemotableOperati2);
97810
+ return remote_operations_createClass(RecordProcessGetRunStatusOperation);
97811
+ }(BaseRemotableOperation)));
97812
+ // ============================================================
97813
+ // RecordProcess.PauseRun — Pause Record Process Run
97814
+ // ============================================================
97815
+ /**
97816
+ * Pause Record Process Run
97817
+ * Request a graceful pause of a running Record Process (honored at the next checkpoint). Returns the run's status. Implemented by RecordProcessPauseRunOperation in @memberjunction/record-set-processor.
97818
+ * GenerationType=Manual — the server body is supplied by a hand-authored subclass registered
97819
+ * under 'RecordProcess.PauseRun'. This generated base provides the typed contract only (client-safe).
97820
+ */
97821
+ var RecordProcessPauseRunOperation = /*#__PURE__*/(/* unused pure expression or super */ null && (function (_BaseRemotableOperati3) {
97822
+ function RecordProcessPauseRunOperation() {
97823
+ var _this3;
97824
+ remote_operations_classCallCheck(this, RecordProcessPauseRunOperation);
97825
+ _this3 = remote_operations_callSuper(this, RecordProcessPauseRunOperation, arguments);
97826
+ _this3.OperationKey = "RecordProcess.PauseRun";
97827
+ _this3.ExecutionMode = 'Sync';
97828
+ _this3.RequiredScope = "recordprocess:execute";
97829
+ _this3.RequiresSystemUser = false;
97830
+ return _this3;
97831
+ }
97832
+ remote_operations_inherits(RecordProcessPauseRunOperation, _BaseRemotableOperati3);
97833
+ return remote_operations_createClass(RecordProcessPauseRunOperation);
97834
+ }(BaseRemotableOperation)));
97835
+ // ============================================================
97836
+ // RecordProcess.ResumeRun — Resume Record Process Run
97837
+ // ============================================================
97838
+ /**
97839
+ * Resume Record Process Run
97840
+ * Resume a paused Record Process run. Returns the run's status. Implemented by RecordProcessResumeRunOperation in @memberjunction/record-set-processor.
97841
+ * GenerationType=Manual — the server body is supplied by a hand-authored subclass registered
97842
+ * under 'RecordProcess.ResumeRun'. This generated base provides the typed contract only (client-safe).
97843
+ */
97844
+ var RecordProcessResumeRunOperation = /*#__PURE__*/(/* unused pure expression or super */ null && (function (_BaseRemotableOperati4) {
97845
+ function RecordProcessResumeRunOperation() {
97846
+ var _this4;
97847
+ remote_operations_classCallCheck(this, RecordProcessResumeRunOperation);
97848
+ _this4 = remote_operations_callSuper(this, RecordProcessResumeRunOperation, arguments);
97849
+ _this4.OperationKey = "RecordProcess.ResumeRun";
97850
+ _this4.ExecutionMode = 'Sync';
97851
+ _this4.RequiredScope = "recordprocess:execute";
97852
+ _this4.RequiresSystemUser = false;
97853
+ return _this4;
97854
+ }
97855
+ remote_operations_inherits(RecordProcessResumeRunOperation, _BaseRemotableOperati4);
97856
+ return remote_operations_createClass(RecordProcessResumeRunOperation);
97857
+ }(BaseRemotableOperation)));
97858
+ // ============================================================
97859
+ // RecordProcess.RunNow — Run Record Process
97860
+ // ============================================================
97861
+ /**
97862
+ * Run Record Process
97863
+ * Run a Record Process on demand over an optional runtime scope (selected records / view / list / filter), optionally as a dry-run preview that computes the per-record changes without writing. Returns the run summary (status + processed/success/error/skipped counts + the MJ: Process Runs ID). Implemented by RecordProcessRunNowServerOperation in @memberjunction/record-set-processor.
97864
+ * GenerationType=Manual — the server body is supplied by a hand-authored subclass registered
97865
+ * under 'RecordProcess.RunNow'. This generated base provides the typed contract only (client-safe).
97866
+ */
97867
+ var RecordProcessRunNowOperation = /*#__PURE__*/(/* unused pure expression or super */ null && (function (_BaseRemotableOperati5) {
97868
+ function RecordProcessRunNowOperation() {
97869
+ var _this5;
97870
+ remote_operations_classCallCheck(this, RecordProcessRunNowOperation);
97871
+ _this5 = remote_operations_callSuper(this, RecordProcessRunNowOperation, arguments);
97872
+ _this5.OperationKey = "RecordProcess.RunNow";
97873
+ _this5.ExecutionMode = 'LongRunning';
97874
+ _this5.RequiredScope = "recordprocess:execute";
97875
+ _this5.RequiresSystemUser = false;
97876
+ return _this5;
97877
+ }
97878
+ remote_operations_inherits(RecordProcessRunNowOperation, _BaseRemotableOperati5);
97879
+ return remote_operations_createClass(RecordProcessRunNowOperation);
97880
+ }(BaseRemotableOperation)));
97881
+ // ============================================================
97882
+ // Template.Run — Run Template
97883
+ // ============================================================
97884
+ /**
97885
+ * Run Template
97886
+ * Render a template by ID with optional render data. Returns the rendered output + wall-clock render time. Implemented by TemplateRunServerOperation in @memberjunction/templates.
97887
+ * GenerationType=Manual — the server body is supplied by a hand-authored subclass registered
97888
+ * under 'Template.Run'. This generated base provides the typed contract only (client-safe).
97889
+ */
97890
+ var TemplateRunOperation = /*#__PURE__*/(/* unused pure expression or super */ null && (function (_BaseRemotableOperati6) {
97891
+ function TemplateRunOperation() {
97892
+ var _this6;
97893
+ remote_operations_classCallCheck(this, TemplateRunOperation);
97894
+ _this6 = remote_operations_callSuper(this, TemplateRunOperation, arguments);
97895
+ _this6.OperationKey = "Template.Run";
97896
+ _this6.ExecutionMode = 'Sync';
97897
+ _this6.RequiredScope = "template:execute";
97898
+ _this6.RequiresSystemUser = false;
97899
+ return _this6;
97900
+ }
97901
+ remote_operations_inherits(TemplateRunOperation, _BaseRemotableOperati6);
97902
+ return remote_operations_createClass(TemplateRunOperation);
97903
+ }(BaseRemotableOperation)));
97065
97904
  ;// ../../MJCoreEntities/dist/custom/ResourcePermissions/ResourcePermissionEngine.js
97066
97905
  function ResourcePermissionEngine_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 ResourcePermissionEngine_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]())) : (ResourcePermissionEngine_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, ResourcePermissionEngine_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, ResourcePermissionEngine_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), ResourcePermissionEngine_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", ResourcePermissionEngine_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), ResourcePermissionEngine_regeneratorDefine2(u), ResourcePermissionEngine_regeneratorDefine2(u, o, "Generator"), ResourcePermissionEngine_regeneratorDefine2(u, n, function () { return this; }), ResourcePermissionEngine_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (ResourcePermissionEngine_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
97067
97906
  function ResourcePermissionEngine_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } ResourcePermissionEngine_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { ResourcePermissionEngine_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)); }, ResourcePermissionEngine_regeneratorDefine2(e, r, n, t); }
@@ -105737,6 +106576,150 @@ var EncryptionEngineBase = /*#__PURE__*/function (_BaseEngine) {
105737
106576
  }(dist/* BaseEngine */.G95);
105738
106577
  EncryptionEngineBase = EncryptionEngineBase_decorate([(0,dist/* RegisterForStartup */.imK)()], EncryptionEngineBase);
105739
106578
 
106579
+ ;// ../../MJCoreEntities/dist/engines/RemoteOperationEngineBase.js
106580
+ function RemoteOperationEngineBase_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 RemoteOperationEngineBase_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]())) : (RemoteOperationEngineBase_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, RemoteOperationEngineBase_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, RemoteOperationEngineBase_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), RemoteOperationEngineBase_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", RemoteOperationEngineBase_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), RemoteOperationEngineBase_regeneratorDefine2(u), RemoteOperationEngineBase_regeneratorDefine2(u, o, "Generator"), RemoteOperationEngineBase_regeneratorDefine2(u, n, function () { return this; }), RemoteOperationEngineBase_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (RemoteOperationEngineBase_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
106581
+ function RemoteOperationEngineBase_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } RemoteOperationEngineBase_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { RemoteOperationEngineBase_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)); }, RemoteOperationEngineBase_regeneratorDefine2(e, r, n, t); }
106582
+ function RemoteOperationEngineBase_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); }
106583
+ function RemoteOperationEngineBase_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { RemoteOperationEngineBase_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { RemoteOperationEngineBase_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
106584
+ function RemoteOperationEngineBase_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
106585
+ function RemoteOperationEngineBase_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, RemoteOperationEngineBase_toPropertyKey(o.key), o); } }
106586
+ function RemoteOperationEngineBase_createClass(e, r, t) { return r && RemoteOperationEngineBase_defineProperties(e.prototype, r), t && RemoteOperationEngineBase_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
106587
+ function RemoteOperationEngineBase_toPropertyKey(t) { var i = RemoteOperationEngineBase_toPrimitive(t, "string"); return "symbol" == RemoteOperationEngineBase_typeof(i) ? i : i + ""; }
106588
+ function RemoteOperationEngineBase_toPrimitive(t, r) { if ("object" != RemoteOperationEngineBase_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != RemoteOperationEngineBase_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
106589
+ function RemoteOperationEngineBase_callSuper(t, o, e) { return o = RemoteOperationEngineBase_getPrototypeOf(o), RemoteOperationEngineBase_possibleConstructorReturn(t, RemoteOperationEngineBase_isNativeReflectConstruct() ? Reflect.construct(o, e || [], RemoteOperationEngineBase_getPrototypeOf(t).constructor) : o.apply(t, e)); }
106590
+ function RemoteOperationEngineBase_possibleConstructorReturn(t, e) { if (e && ("object" == RemoteOperationEngineBase_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return RemoteOperationEngineBase_assertThisInitialized(t); }
106591
+ function RemoteOperationEngineBase_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
106592
+ function RemoteOperationEngineBase_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (RemoteOperationEngineBase_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
106593
+ function RemoteOperationEngineBase_superPropGet(t, o, e, r) { var p = RemoteOperationEngineBase_get(RemoteOperationEngineBase_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
106594
+ function RemoteOperationEngineBase_get() { return RemoteOperationEngineBase_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = RemoteOperationEngineBase_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, RemoteOperationEngineBase_get.apply(null, arguments); }
106595
+ function RemoteOperationEngineBase_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = RemoteOperationEngineBase_getPrototypeOf(t));); return t; }
106596
+ function RemoteOperationEngineBase_getPrototypeOf(t) { return RemoteOperationEngineBase_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, RemoteOperationEngineBase_getPrototypeOf(t); }
106597
+ function RemoteOperationEngineBase_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 && RemoteOperationEngineBase_setPrototypeOf(t, e); }
106598
+ function RemoteOperationEngineBase_setPrototypeOf(t, e) { return RemoteOperationEngineBase_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, RemoteOperationEngineBase_setPrototypeOf(t, e); }
106599
+ function RemoteOperationEngineBase_typeof(o) { "@babel/helpers - typeof"; return RemoteOperationEngineBase_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; }, RemoteOperationEngineBase_typeof(o); }
106600
+ var RemoteOperationEngineBase_decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) {
106601
+ var c = arguments.length,
106602
+ r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
106603
+ d;
106604
+ if ((typeof Reflect === "undefined" ? "undefined" : RemoteOperationEngineBase_typeof(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
106605
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
106606
+ };
106607
+ /**
106608
+ * @fileoverview Metadata cache for `MJ: Remote Operations` rows — the `@RegisterForStartup` engine the
106609
+ * generic `ExecuteRemoteOperation` resolver consults to gate dispatch on the operation's metadata
106610
+ * (Status / approval), independent of the in-code ClassFactory registration.
106611
+ *
106612
+ * Why this exists as defense-in-depth: CodeGen only emits Active + Approved operations, so a Disabled or
106613
+ * unapproved op normally has no generated class and is therefore unregistered + already unreachable. But a
106614
+ * hand-authored (`GenerationType='Manual'`) op keeps its `@RegisterClass` decorator in source even if the
106615
+ * metadata row is later set to `Status='Disabled'`. This engine lets the resolver honor that metadata state
106616
+ * at runtime — a registered-but-disabled op is rejected — with a synchronous in-memory cache hit (no per-call
106617
+ * DB query), kept fresh by the BaseEngine entity-event subscription.
106618
+ *
106619
+ * @module @memberjunction/core-entities
106620
+ */
106621
+
106622
+ /**
106623
+ * Caches every `MJ: Remote Operations` row and answers "may this operation key be dispatched?" from metadata.
106624
+ * Client-safe (pure metadata caching); the server resolver uses it as a defense-in-depth gate.
106625
+ */
106626
+ var RemoteOperationEngineBase = /*#__PURE__*/function (_BaseEngine) {
106627
+ function RemoteOperationEngineBase() {
106628
+ var _this;
106629
+ RemoteOperationEngineBase_classCallCheck(this, RemoteOperationEngineBase);
106630
+ _this = RemoteOperationEngineBase_callSuper(this, RemoteOperationEngineBase, arguments);
106631
+ _this._remoteOperations = [];
106632
+ _this._byKey = null;
106633
+ return _this;
106634
+ }
106635
+ /** The process-wide singleton. */
106636
+ RemoteOperationEngineBase_inherits(RemoteOperationEngineBase, _BaseEngine);
106637
+ return RemoteOperationEngineBase_createClass(RemoteOperationEngineBase, [{
106638
+ key: "Config",
106639
+ value: (/** Loads (or refreshes) the cached Remote Operation rows. */function () {
106640
+ var _Config = RemoteOperationEngineBase_asyncToGenerator(/*#__PURE__*/RemoteOperationEngineBase_regenerator().m(function _callee(forceRefresh, contextUser, provider) {
106641
+ var configs;
106642
+ return RemoteOperationEngineBase_regenerator().w(function (_context) {
106643
+ while (1) switch (_context.n) {
106644
+ case 0:
106645
+ configs = [{
106646
+ PropertyName: '_remoteOperations',
106647
+ EntityName: 'MJ: Remote Operations',
106648
+ CacheLocal: true
106649
+ }];
106650
+ this._byKey = null; // invalidate the key index; rebuilt lazily after (re)load
106651
+ _context.n = 1;
106652
+ return this.Load(configs, provider, forceRefresh, contextUser);
106653
+ case 1:
106654
+ return _context.a(2);
106655
+ }
106656
+ }, _callee, this);
106657
+ }));
106658
+ function Config(_x, _x2, _x3) {
106659
+ return _Config.apply(this, arguments);
106660
+ }
106661
+ return Config;
106662
+ }() /** All cached Remote Operation rows. */)
106663
+ }, {
106664
+ key: "RemoteOperations",
106665
+ get: function get() {
106666
+ return this._remoteOperations;
106667
+ }
106668
+ /** Case-insensitive lookup of an operation row by its `OperationKey` (`undefined` if there is no row). */
106669
+ }, {
106670
+ key: "GetOperationByKey",
106671
+ value: function GetOperationByKey(operationKey) {
106672
+ if (!operationKey) {
106673
+ return undefined;
106674
+ }
106675
+ if (!this._byKey) {
106676
+ this._byKey = new Map(this._remoteOperations.map(function (o) {
106677
+ return [o.OperationKey.trim().toLowerCase(), o];
106678
+ }));
106679
+ }
106680
+ return this._byKey.get(operationKey.trim().toLowerCase());
106681
+ }
106682
+ /**
106683
+ * Decides whether the operation key may be dispatched, from its metadata row. When there is NO row for the
106684
+ * key (a code-only operation), it is considered invokable — the in-code ClassFactory registration governs.
106685
+ * When a row exists it must be `Active`, and `AI`-generated ops must additionally be `Approved`.
106686
+ */
106687
+ }, {
106688
+ key: "IsInvokable",
106689
+ value: function IsInvokable(operationKey) {
106690
+ var row = this.GetOperationByKey(operationKey);
106691
+ if (!row) {
106692
+ return {
106693
+ Invokable: true
106694
+ }; // no metadata row → governed solely by code registration
106695
+ }
106696
+ if (row.Status !== 'Active') {
106697
+ return {
106698
+ Invokable: false,
106699
+ ResultCode: 'OPERATION_DISABLED',
106700
+ Reason: "Remote operation '".concat(operationKey, "' is not active (Status='").concat(row.Status, "')")
106701
+ };
106702
+ }
106703
+ if (row.GenerationType === 'AI' && row.CodeApprovalStatus !== 'Approved') {
106704
+ return {
106705
+ Invokable: false,
106706
+ ResultCode: 'OPERATION_NOT_APPROVED',
106707
+ Reason: "Remote operation '".concat(operationKey, "' has unapproved AI-generated code (CodeApprovalStatus='").concat(row.CodeApprovalStatus, "')")
106708
+ };
106709
+ }
106710
+ return {
106711
+ Invokable: true
106712
+ };
106713
+ }
106714
+ }], [{
106715
+ key: "Instance",
106716
+ get: function get() {
106717
+ return RemoteOperationEngineBase_superPropGet(RemoteOperationEngineBase, "getInstance", this, 2)([]);
106718
+ }
106719
+ }]);
106720
+ }(dist/* BaseEngine */.G95);
106721
+ RemoteOperationEngineBase = RemoteOperationEngineBase_decorate([(0,dist/* RegisterForStartup */.imK)()], RemoteOperationEngineBase);
106722
+
105740
106723
  ;// ../../MJCoreEntities/dist/engines/UserInfoEngine.js
105741
106724
  function UserInfoEngine_slicedToArray(r, e) { return UserInfoEngine_arrayWithHoles(r) || UserInfoEngine_iterableToArrayLimit(r, e) || UserInfoEngine_unsupportedIterableToArray(r, e) || UserInfoEngine_nonIterableRest(); }
105742
106725
  function UserInfoEngine_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -116063,6 +117046,8 @@ function LoadPermissionEntityExtensions() {
116063
117046
 
116064
117047
 
116065
117048
 
117049
+
117050
+
116066
117051
 
116067
117052
 
116068
117053
 
@@ -116071,7 +117056,7 @@ LoadPermissionEntityExtensions();
116071
117056
 
116072
117057
  /***/ },
116073
117058
 
116074
- /***/ 297
117059
+ /***/ 7
116075
117060
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
116076
117061
 
116077
117062
  "use strict";
@@ -116096,7 +117081,7 @@ __webpack_require__.d(__webpack_exports__, {
116096
117081
  gZ: () => (/* reexport */ uuidv4)
116097
117082
  });
116098
117083
 
116099
- // UNUSED EXPORTS: ALLOWED_SQL_FUNCTIONS, ClassFactory, ClassRegistration, CleanJSON, CleanJavaScript, ConvertMarkdownStringToHtmlList, CopyScalarsAndArrays, DANGEROUS_SQL_KEYWORDS, DEFAULT_RICH_TEXT_SCAN_LENGTH, DeepDiffer, DeprecationWarningManager, DiffChangeType, ENCRYPTED_SENTINEL, EscapeHTML, FULL_QUERY_ALLOWED_KEYWORDS, GetClassInheritance, GetClassName, GetFullClassHierarchy, GetRootClass, GetSuperclass, HighlightSearchMatches, InvokeManualResize, IsClassConstructor, IsDescendantClassOf, IsEncryptedSentinel, IsOnlyTimezoneShift, IsRootClass, IsSubclassOf, IsValueEncrypted, JSONValidator, MJEvent, MJGlobalProperty, MJLruCache, ObjectCache, ObjectCacheEntry, ParseJSONRecursive, RegisterClassEx, SafeExpressionEvaluator, ShutdownRegistry, ToJSONSafe, adjustCasing, compareStringsByLine, convertCamelCaseToHaveSpaces, createDisplayName, defaultExpressionEvaluator, detectRichTextFormat, ensureRegExp, ensureRegExps, generatePluralName, getIrregularPlural, getValueAtPath, matchesAllPatterns, matchesAnyPattern, parsePattern, parsePatterns, replaceAllSpaces, resolveMappingRef, resolveValueMapping, stripTrailingChars, stripWhitespace
117084
+ // UNUSED EXPORTS: ALLOWED_SQL_FUNCTIONS, ClassFactory, ClassRegistration, CleanJSON, CleanJavaScript, ConvertMarkdownStringToHtmlList, CopyScalarsAndArrays, DANGEROUS_SQL_KEYWORDS, DEFAULT_RICH_TEXT_SCAN_LENGTH, DeepDiffer, DeprecationWarningManager, DiffChangeType, ENCRYPTED_SENTINEL, EscapeHTML, FULL_QUERY_ALLOWED_KEYWORDS, FieldRulesEvaluator, FieldTransformEngine, GetClassInheritance, GetClassName, GetFieldTransform, GetFullClassHierarchy, GetRootClass, GetSuperclass, HighlightSearchMatches, InvokeManualResize, IsClassConstructor, IsDescendantClassOf, IsEncryptedSentinel, IsOnlyTimezoneShift, IsRootClass, IsSubclassOf, IsValueEncrypted, JSONValidator, KeyedSerialTaskQueue, MJEvent, MJGlobalProperty, MJLruCache, ObjectCache, ObjectCacheEntry, ParseJSONRecursive, RegisterClassEx, RegisterFieldTransform, SafeExpressionEvaluator, ShutdownRegistry, ToJSONSafe, adjustCasing, compareStringsByLine, convertCamelCaseToHaveSpaces, createDisplayName, defaultExpressionEvaluator, detectRichTextFormat, ensureRegExp, ensureRegExps, generatePluralName, getIrregularPlural, getValueAtPath, matchesAllPatterns, matchesAnyPattern, parsePattern, parsePatterns, replaceAllSpaces, resolveMappingRef, resolveValueMapping, stripTrailingChars, stripWhitespace
116100
117085
 
116101
117086
  ;// ../../MJGlobal/dist/interface.js
116102
117087
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
@@ -119222,6 +120207,620 @@ _SafeExpressionEvaluator.DANGEROUS_PATTERNS = [/\beval\s*\(/i, /\bnew\s+Function
119222
120207
  */
119223
120208
  _SafeExpressionEvaluator.SAFE_METHODS = ['length', 'includes', 'startsWith', 'endsWith', 'indexOf', 'lastIndexOf', 'toLowerCase', 'toUpperCase', 'trim', 'trimStart', 'trimEnd', 'toString', 'valueOf', 'some', 'every', 'find', 'filter', 'map', 'reduce'];
119224
120209
  var defaultExpressionEvaluator = new SafeExpressionEvaluator();
120210
+ ;// ../../MJGlobal/dist/fieldRules/transformRegistry.js
120211
+ /* unused harmony import specifier */ var GetGlobalObjectStore;
120212
+
120213
+ /** Global-object-store key so registrations survive bundlers that duplicate this module. */
120214
+ var STORE_KEY = '__mj_FieldTransformPlugins__';
120215
+ function registry() {
120216
+ var _GetGlobalObjectStore;
120217
+ var store = (_GetGlobalObjectStore = GetGlobalObjectStore()) !== null && _GetGlobalObjectStore !== void 0 ? _GetGlobalObjectStore : globalThis;
120218
+ var map = store[STORE_KEY];
120219
+ if (!map) {
120220
+ map = new Map();
120221
+ store[STORE_KEY] = map;
120222
+ }
120223
+ return map;
120224
+ }
120225
+ /**
120226
+ * Registers a transform plugin by type name so the {@link FieldTransformEngine} can dispatch a
120227
+ * non-built-in transform to it.
120228
+ *
120229
+ * This is how heavier transforms (e.g. `jsonpath`, `xpath`) are added WITHOUT making their libraries
120230
+ * (jsonpath-plus, xpath, @xmldom/xmldom, …) dependencies of this foundational package: a separate
120231
+ * package owns the libs, implements the handler, and calls this at module-load to register it. Any
120232
+ * `FieldTransformEngine` in the process (integration sync, rules-based bulk update, …) then supports the
120233
+ * transform — the engine stays lib-free, the plugin owns the deps. Idempotent per type (last wins).
120234
+ *
120235
+ * @param type - The transform `Type` string (case-insensitive), e.g. `'jsonpath'`.
120236
+ * @param plugin - The handler.
120237
+ */
120238
+ function RegisterFieldTransform(type, plugin) {
120239
+ registry().set(type.trim().toLowerCase(), plugin);
120240
+ }
120241
+ /** Returns the registered plugin for a transform type, or `undefined` if none is registered. */
120242
+ function GetFieldTransform(type) {
120243
+ return registry().get(type.trim().toLowerCase());
120244
+ }
120245
+ ;// ../../MJGlobal/dist/fieldRules/FieldTransformEngine.js
120246
+ /* unused harmony import specifier */ var FieldTransformEngine_MJLruCache;
120247
+ /* unused harmony import specifier */ var FieldTransformEngine_GetFieldTransform;
120248
+ function FieldTransformEngine_typeof(o) { "@babel/helpers - typeof"; return FieldTransformEngine_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; }, FieldTransformEngine_typeof(o); }
120249
+ function FieldTransformEngine_slicedToArray(r, e) { return FieldTransformEngine_arrayWithHoles(r) || FieldTransformEngine_iterableToArrayLimit(r, e) || FieldTransformEngine_unsupportedIterableToArray(r, e) || FieldTransformEngine_nonIterableRest(); }
120250
+ function FieldTransformEngine_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
120251
+ function FieldTransformEngine_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
120252
+ function FieldTransformEngine_arrayWithHoles(r) { if (Array.isArray(r)) return r; }
120253
+ function FieldTransformEngine_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = FieldTransformEngine_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; } } }; }
120254
+ function FieldTransformEngine_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return FieldTransformEngine_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? FieldTransformEngine_arrayLikeToArray(r, a) : void 0; } }
120255
+ function FieldTransformEngine_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
120256
+ function FieldTransformEngine_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
120257
+ function FieldTransformEngine_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, FieldTransformEngine_toPropertyKey(o.key), o); } }
120258
+ function FieldTransformEngine_createClass(e, r, t) { return r && FieldTransformEngine_defineProperties(e.prototype, r), t && FieldTransformEngine_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
120259
+ function FieldTransformEngine_toPropertyKey(t) { var i = FieldTransformEngine_toPrimitive(t, "string"); return "symbol" == FieldTransformEngine_typeof(i) ? i : i + ""; }
120260
+ function FieldTransformEngine_toPrimitive(t, r) { if ("object" != FieldTransformEngine_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != FieldTransformEngine_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
120261
+
120262
+
120263
+ /**
120264
+ * Framework-agnostic engine that runs a field-value transform pipeline over a single `(value, fields)`
120265
+ * pair. Lifted from the MemberJunction integration field-mapping engine so the integration sync AND the
120266
+ * rules-based bulk-update processor share one implementation of every transform type.
120267
+ *
120268
+ * Holds an LRU cache of compiled custom/formula expressions (an identical expression compiles once, not
120269
+ * once per record). A failed compile is cached as the `Error` it threw and re-thrown from cache, so a
120270
+ * malformed expression is compiled exactly once across a whole batch.
120271
+ */
120272
+ var FieldTransformEngine = /*#__PURE__*/(/* unused pure expression or super */ null && (function () {
120273
+ function FieldTransformEngine() {
120274
+ FieldTransformEngine_classCallCheck(this, FieldTransformEngine);
120275
+ this.compiledExpressionCache = new FieldTransformEngine_MJLruCache();
120276
+ }
120277
+ /**
120278
+ * Runs `value` through every step of `steps`, returning the final value (or `Skipped` when an
120279
+ * OnError='Skip' step drops the field). `fields` is the full record, available to combine/custom steps.
120280
+ */
120281
+ return FieldTransformEngine_createClass(FieldTransformEngine, [{
120282
+ key: "ExecutePipeline",
120283
+ value: function ExecutePipeline(value, fields, steps) {
120284
+ var current = value;
120285
+ var _iterator = FieldTransformEngine_createForOfIteratorHelper(steps),
120286
+ _step;
120287
+ try {
120288
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
120289
+ var step = _step.value;
120290
+ var result = this.ExecuteStep(step, current, fields);
120291
+ if (result.Skipped) {
120292
+ return result;
120293
+ }
120294
+ current = result.Value;
120295
+ }
120296
+ } catch (err) {
120297
+ _iterator.e(err);
120298
+ } finally {
120299
+ _iterator.f();
120300
+ }
120301
+ return {
120302
+ Value: current,
120303
+ Skipped: false
120304
+ };
120305
+ }
120306
+ /**
120307
+ * Executes a single transform step, applying the configured transformation and handling errors
120308
+ * according to the step's OnError strategy (default 'Null' — grace: null the field, keep going).
120309
+ */
120310
+ }, {
120311
+ key: "ExecuteStep",
120312
+ value: function ExecuteStep(step, value, fields) {
120313
+ var _step$OnError;
120314
+ var onError = (_step$OnError = step.OnError) !== null && _step$OnError !== void 0 ? _step$OnError : 'Null';
120315
+ try {
120316
+ return {
120317
+ Value: this.dispatch(step, value, fields),
120318
+ Skipped: false
120319
+ };
120320
+ } catch (err) {
120321
+ return this.handleError(onError, err);
120322
+ }
120323
+ }
120324
+ /**
120325
+ * Evaluates a value-producing expression against the record. Reuses the compiled-expression cache.
120326
+ * The expression sees the current field value as `value` and all record fields as `fields`
120327
+ * (e.g. `fields.FirstName + ' ' + fields.LastName`).
120328
+ */
120329
+ }, {
120330
+ key: "Evaluate",
120331
+ value: function Evaluate(expression, value, fields) {
120332
+ return this.getCompiled(expression)(value, fields);
120333
+ }
120334
+ }, {
120335
+ key: "dispatch",
120336
+ value: function dispatch(step, value, fields) {
120337
+ switch (step.Type) {
120338
+ case 'direct':
120339
+ return this.applyDirect(value, step.Config);
120340
+ case 'regex':
120341
+ return this.applyRegex(value, step.Config);
120342
+ case 'split':
120343
+ return this.applySplit(value, step.Config);
120344
+ case 'combine':
120345
+ return this.applyCombine(fields, step.Config);
120346
+ case 'lookup':
120347
+ return this.applyLookup(value, step.Config);
120348
+ case 'format':
120349
+ return this.applyFormat(value, step.Config);
120350
+ case 'coerce':
120351
+ return this.applyCoerce(value, step.Config);
120352
+ case 'substring':
120353
+ return this.applySubstring(value, step.Config);
120354
+ case 'custom':
120355
+ try {
120356
+ return this.Evaluate(step.Config.Expression, value, fields);
120357
+ } catch (err) {
120358
+ throw new Error("Custom transform expression failed: ".concat(err instanceof Error ? err.message : String(err)));
120359
+ }
120360
+ default:
120361
+ {
120362
+ // Not a built-in — dispatch to a registered plugin (e.g. 'jsonpath' / 'xpath', whose
120363
+ // libraries must not be deps of this package). See {@link RegisterFieldTransform}.
120364
+ var plugin = FieldTransformEngine_GetFieldTransform(step.Type);
120365
+ if (plugin) {
120366
+ return plugin(value, fields, step.Config);
120367
+ }
120368
+ throw new Error("Unknown transform type '".concat(step.Type, "'. If it is a plugin transform (e.g. 'jsonpath'/'xpath'), import the package that registers it before running."));
120369
+ }
120370
+ }
120371
+ }
120372
+ }, {
120373
+ key: "handleError",
120374
+ value: function handleError(onError, err) {
120375
+ switch (onError) {
120376
+ case 'Skip':
120377
+ return {
120378
+ Value: undefined,
120379
+ Skipped: true
120380
+ };
120381
+ case 'Null':
120382
+ return {
120383
+ Value: null,
120384
+ Skipped: false
120385
+ };
120386
+ case 'Fail':
120387
+ throw err;
120388
+ }
120389
+ }
120390
+ }, {
120391
+ key: "applyDirect",
120392
+ value: function applyDirect(value, config) {
120393
+ return value == null && config.DefaultValue !== undefined ? config.DefaultValue : value;
120394
+ }
120395
+ }, {
120396
+ key: "applyRegex",
120397
+ value: function applyRegex(value, config) {
120398
+ var _config$Flags;
120399
+ return String(value !== null && value !== void 0 ? value : '').replace(new RegExp(config.Pattern, (_config$Flags = config.Flags) !== null && _config$Flags !== void 0 ? _config$Flags : ''), config.Replacement);
120400
+ }
120401
+ }, {
120402
+ key: "applySplit",
120403
+ value: function applySplit(value, config) {
120404
+ var _String$split$config$;
120405
+ return (_String$split$config$ = String(value !== null && value !== void 0 ? value : '').split(config.Delimiter)[config.Index]) !== null && _String$split$config$ !== void 0 ? _String$split$config$ : null;
120406
+ }
120407
+ }, {
120408
+ key: "applyCombine",
120409
+ value: function applyCombine(fields, config) {
120410
+ return config.SourceFields.map(function (f) {
120411
+ var _fields$f;
120412
+ return String((_fields$f = fields[f]) !== null && _fields$f !== void 0 ? _fields$f : '');
120413
+ }).join(config.Separator);
120414
+ }
120415
+ }, {
120416
+ key: "applyLookup",
120417
+ value: function applyLookup(value, config) {
120418
+ var _config$Default;
120419
+ var lowerKey = String(value !== null && value !== void 0 ? value : '').toLowerCase();
120420
+ var entry = Object.entries(config.Map).find(function (_ref) {
120421
+ var _ref2 = FieldTransformEngine_slicedToArray(_ref, 1),
120422
+ key = _ref2[0];
120423
+ return key.toLowerCase() === lowerKey;
120424
+ });
120425
+ return entry ? entry[1] : (_config$Default = config.Default) !== null && _config$Default !== void 0 ? _config$Default : null;
120426
+ }
120427
+ }, {
120428
+ key: "applyFormat",
120429
+ value: function applyFormat(value, config) {
120430
+ if (config.FormatType === 'date') {
120431
+ var dateVal = value instanceof Date ? value : new Date(String(value));
120432
+ if (isNaN(dateVal.getTime())) {
120433
+ throw new Error("Cannot format \"".concat(String(value), "\" as a date"));
120434
+ }
120435
+ return config.FormatString.toLowerCase() === 'iso' || config.FormatString === 'ISO8601' ? dateVal.toISOString() : dateVal.toLocaleDateString('en-US');
120436
+ }
120437
+ if (config.FormatType === 'number') {
120438
+ var numVal = Number(value);
120439
+ if (!Number.isFinite(numVal)) {
120440
+ throw new Error("Cannot format \"".concat(String(value), "\" as a number"));
120441
+ }
120442
+ return numVal.toFixed(Number(config.FormatString) || 0);
120443
+ }
120444
+ return String(value !== null && value !== void 0 ? value : '');
120445
+ }
120446
+ }, {
120447
+ key: "applyCoerce",
120448
+ value: function applyCoerce(value, config) {
120449
+ switch (config.TargetType) {
120450
+ case 'string':
120451
+ return String(value !== null && value !== void 0 ? value : '');
120452
+ case 'number':
120453
+ {
120454
+ var num = Number(value);
120455
+ if (isNaN(num)) {
120456
+ throw new Error("Cannot coerce \"".concat(String(value), "\" to number"));
120457
+ }
120458
+ return num;
120459
+ }
120460
+ case 'boolean':
120461
+ {
120462
+ if (typeof value === 'boolean') return value;
120463
+ if (typeof value === 'number') return value !== 0;
120464
+ var s = String(value).toLowerCase().trim();
120465
+ return s === 'true' || s === '1' || s === 'yes';
120466
+ }
120467
+ case 'date':
120468
+ {
120469
+ var d = new Date(String(value));
120470
+ if (isNaN(d.getTime())) {
120471
+ throw new Error("Cannot coerce \"".concat(String(value), "\" to date"));
120472
+ }
120473
+ return d;
120474
+ }
120475
+ default:
120476
+ throw new Error("Unknown coerce target type: ".concat(config.TargetType));
120477
+ }
120478
+ }
120479
+ }, {
120480
+ key: "applySubstring",
120481
+ value: function applySubstring(value, config) {
120482
+ var s = String(value !== null && value !== void 0 ? value : '');
120483
+ return config.Length !== undefined ? s.substring(config.Start, config.Start + config.Length) : s.substring(config.Start);
120484
+ }
120485
+ }, {
120486
+ key: "getCompiled",
120487
+ value: function getCompiled(expression) {
120488
+ var cached = this.compiledExpressionCache.Get(expression);
120489
+ if (cached === undefined) {
120490
+ cached = this.compile(expression);
120491
+ this.compiledExpressionCache.Set(expression, cached);
120492
+ }
120493
+ if (cached instanceof Error) {
120494
+ throw cached;
120495
+ }
120496
+ return cached;
120497
+ }
120498
+ }, {
120499
+ key: "compile",
120500
+ value: function compile(expression) {
120501
+ try {
120502
+ // eslint-disable-next-line @typescript-eslint/no-implied-eval
120503
+ return new Function('value', 'fields', "return (".concat(expression, ");"));
120504
+ } catch (err) {
120505
+ return err instanceof Error ? err : new Error(String(err));
120506
+ }
120507
+ }
120508
+ }]);
120509
+ }()));
120510
+ ;// ../../MJGlobal/dist/fieldRules/FieldRulesEvaluator.js
120511
+ /* unused harmony import specifier */ var FieldRulesEvaluator_SafeExpressionEvaluator;
120512
+ /* unused harmony import specifier */ var FieldRulesEvaluator_FieldTransformEngine;
120513
+ function FieldRulesEvaluator_typeof(o) { "@babel/helpers - typeof"; return FieldRulesEvaluator_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; }, FieldRulesEvaluator_typeof(o); }
120514
+ function FieldRulesEvaluator_slicedToArray(r, e) { return FieldRulesEvaluator_arrayWithHoles(r) || FieldRulesEvaluator_iterableToArrayLimit(r, e) || FieldRulesEvaluator_unsupportedIterableToArray(r, e) || FieldRulesEvaluator_nonIterableRest(); }
120515
+ function FieldRulesEvaluator_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
120516
+ function FieldRulesEvaluator_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
120517
+ function FieldRulesEvaluator_arrayWithHoles(r) { if (Array.isArray(r)) return r; }
120518
+ function FieldRulesEvaluator_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
120519
+ function FieldRulesEvaluator_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? FieldRulesEvaluator_ownKeys(Object(t), !0).forEach(function (r) { FieldRulesEvaluator_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : FieldRulesEvaluator_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
120520
+ function FieldRulesEvaluator_defineProperty(e, r, t) { return (r = FieldRulesEvaluator_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
120521
+ function FieldRulesEvaluator_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 FieldRulesEvaluator_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]())) : (FieldRulesEvaluator_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, FieldRulesEvaluator_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, FieldRulesEvaluator_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), FieldRulesEvaluator_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", FieldRulesEvaluator_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), FieldRulesEvaluator_regeneratorDefine2(u), FieldRulesEvaluator_regeneratorDefine2(u, o, "Generator"), FieldRulesEvaluator_regeneratorDefine2(u, n, function () { return this; }), FieldRulesEvaluator_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (FieldRulesEvaluator_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
120522
+ function FieldRulesEvaluator_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } FieldRulesEvaluator_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { FieldRulesEvaluator_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)); }, FieldRulesEvaluator_regeneratorDefine2(e, r, n, t); }
120523
+ function FieldRulesEvaluator_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = FieldRulesEvaluator_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; } } }; }
120524
+ function FieldRulesEvaluator_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return FieldRulesEvaluator_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? FieldRulesEvaluator_arrayLikeToArray(r, a) : void 0; } }
120525
+ function FieldRulesEvaluator_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
120526
+ function FieldRulesEvaluator_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); }
120527
+ function FieldRulesEvaluator_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { FieldRulesEvaluator_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { FieldRulesEvaluator_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
120528
+ function FieldRulesEvaluator_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
120529
+ function FieldRulesEvaluator_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, FieldRulesEvaluator_toPropertyKey(o.key), o); } }
120530
+ function FieldRulesEvaluator_createClass(e, r, t) { return r && FieldRulesEvaluator_defineProperties(e.prototype, r), t && FieldRulesEvaluator_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
120531
+ function FieldRulesEvaluator_toPropertyKey(t) { var i = FieldRulesEvaluator_toPrimitive(t, "string"); return "symbol" == FieldRulesEvaluator_typeof(i) ? i : i + ""; }
120532
+ function FieldRulesEvaluator_toPrimitive(t, r) { if ("object" != FieldRulesEvaluator_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != FieldRulesEvaluator_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
120533
+
120534
+
120535
+ /**
120536
+ * Computes the field changes a {@link FieldRuleSet} would make to a record — WITHOUT mutating anything.
120537
+ *
120538
+ * Returning a list of {@link FieldChange} (old → new per rule) is what makes a dry-run preview possible:
120539
+ * the caller decides whether to apply. Conditions are evaluated with the safe expression evaluator;
120540
+ * value formulas + the transform pipeline run through the shared {@link FieldTransformEngine}; entity
120541
+ * lookups go through the injected resolver. The engine never touches a database itself.
120542
+ */
120543
+ var FieldRulesEvaluator = /*#__PURE__*/(/* unused pure expression or super */ null && (function () {
120544
+ function FieldRulesEvaluator(options) {
120545
+ FieldRulesEvaluator_classCallCheck(this, FieldRulesEvaluator);
120546
+ this.transforms = new FieldRulesEvaluator_FieldTransformEngine();
120547
+ this.conditions = new FieldRulesEvaluator_SafeExpressionEvaluator();
120548
+ this.lookupResolver = options === null || options === void 0 ? void 0 : options.LookupResolver;
120549
+ this.promptResolver = options === null || options === void 0 ? void 0 : options.PromptResolver;
120550
+ this.entityDocumentResolver = options === null || options === void 0 ? void 0 : options.EntityDocumentResolver;
120551
+ }
120552
+ /** Computes one {@link FieldChange} per rule for a record (a row of field name → current value). */
120553
+ return FieldRulesEvaluator_createClass(FieldRulesEvaluator, [{
120554
+ key: "ComputeChanges",
120555
+ value: (function () {
120556
+ var _ComputeChanges = FieldRulesEvaluator_asyncToGenerator(/*#__PURE__*/FieldRulesEvaluator_regenerator().m(function _callee(record, ruleSet) {
120557
+ var changes, _iterator, _step, rule, _t, _t2;
120558
+ return FieldRulesEvaluator_regenerator().w(function (_context) {
120559
+ while (1) switch (_context.p = _context.n) {
120560
+ case 0:
120561
+ changes = [];
120562
+ _iterator = FieldRulesEvaluator_createForOfIteratorHelper(ruleSet.Rules);
120563
+ _context.p = 1;
120564
+ _iterator.s();
120565
+ case 2:
120566
+ if ((_step = _iterator.n()).done) {
120567
+ _context.n = 5;
120568
+ break;
120569
+ }
120570
+ rule = _step.value;
120571
+ _t = changes;
120572
+ _context.n = 3;
120573
+ return this.evaluateRule(record, rule);
120574
+ case 3:
120575
+ _t.push.call(_t, _context.v);
120576
+ case 4:
120577
+ _context.n = 2;
120578
+ break;
120579
+ case 5:
120580
+ _context.n = 7;
120581
+ break;
120582
+ case 6:
120583
+ _context.p = 6;
120584
+ _t2 = _context.v;
120585
+ _iterator.e(_t2);
120586
+ case 7:
120587
+ _context.p = 7;
120588
+ _iterator.f();
120589
+ return _context.f(7);
120590
+ case 8:
120591
+ return _context.a(2, changes);
120592
+ }
120593
+ }, _callee, this, [[1, 6, 7, 8]]);
120594
+ }));
120595
+ function ComputeChanges(_x, _x2) {
120596
+ return _ComputeChanges.apply(this, arguments);
120597
+ }
120598
+ return ComputeChanges;
120599
+ }())
120600
+ }, {
120601
+ key: "evaluateRule",
120602
+ value: function () {
120603
+ var _evaluateRule = FieldRulesEvaluator_asyncToGenerator(/*#__PURE__*/FieldRulesEvaluator_regenerator().m(function _callee2(record, rule) {
120604
+ var _rule$Transforms;
120605
+ var oldValue, unchanged, condition, value, result, _t3, _t4;
120606
+ return FieldRulesEvaluator_regenerator().w(function (_context2) {
120607
+ while (1) switch (_context2.p = _context2.n) {
120608
+ case 0:
120609
+ oldValue = record[rule.TargetField];
120610
+ unchanged = function unchanged(extra) {
120611
+ return FieldRulesEvaluator_objectSpread({
120612
+ Field: rule.TargetField,
120613
+ OldValue: oldValue,
120614
+ NewValue: oldValue,
120615
+ Changed: false,
120616
+ Applied: false
120617
+ }, extra);
120618
+ };
120619
+ condition = this.checkCondition(record, rule);
120620
+ if (!condition.error) {
120621
+ _context2.n = 1;
120622
+ break;
120623
+ }
120624
+ return _context2.a(2, unchanged({
120625
+ Error: condition.error
120626
+ }));
120627
+ case 1:
120628
+ if (condition.passed) {
120629
+ _context2.n = 2;
120630
+ break;
120631
+ }
120632
+ return _context2.a(2, unchanged({
120633
+ SkipReason: 'condition evaluated false'
120634
+ }));
120635
+ case 2:
120636
+ _context2.p = 2;
120637
+ _context2.n = 3;
120638
+ return this.resolveSource(record, rule.Source);
120639
+ case 3:
120640
+ value = _context2.v;
120641
+ _context2.n = 5;
120642
+ break;
120643
+ case 4:
120644
+ _context2.p = 4;
120645
+ _t3 = _context2.v;
120646
+ return _context2.a(2, unchanged({
120647
+ Error: "source: ".concat(this.message(_t3))
120648
+ }));
120649
+ case 5:
120650
+ if (!((_rule$Transforms = rule.Transforms) !== null && _rule$Transforms !== void 0 && _rule$Transforms.length)) {
120651
+ _context2.n = 9;
120652
+ break;
120653
+ }
120654
+ _context2.p = 6;
120655
+ result = this.transforms.ExecutePipeline(value, record, rule.Transforms);
120656
+ if (!result.Skipped) {
120657
+ _context2.n = 7;
120658
+ break;
120659
+ }
120660
+ return _context2.a(2, unchanged({
120661
+ SkipReason: 'transform skipped the field'
120662
+ }));
120663
+ case 7:
120664
+ value = result.Value;
120665
+ _context2.n = 9;
120666
+ break;
120667
+ case 8:
120668
+ _context2.p = 8;
120669
+ _t4 = _context2.v;
120670
+ return _context2.a(2, unchanged({
120671
+ Error: "transform: ".concat(this.message(_t4))
120672
+ }));
120673
+ case 9:
120674
+ return _context2.a(2, {
120675
+ Field: rule.TargetField,
120676
+ OldValue: oldValue,
120677
+ NewValue: value,
120678
+ Changed: !this.equal(oldValue, value),
120679
+ Applied: true
120680
+ });
120681
+ }
120682
+ }, _callee2, this, [[6, 8], [2, 4]]);
120683
+ }));
120684
+ function evaluateRule(_x3, _x4) {
120685
+ return _evaluateRule.apply(this, arguments);
120686
+ }
120687
+ return evaluateRule;
120688
+ }()
120689
+ }, {
120690
+ key: "checkCondition",
120691
+ value: function checkCondition(record, rule) {
120692
+ if (!rule.Condition) {
120693
+ return {
120694
+ passed: true
120695
+ };
120696
+ }
120697
+ var result = this.conditions.evaluate(rule.Condition, record);
120698
+ if (!result.success) {
120699
+ var _result$error;
120700
+ return {
120701
+ passed: false,
120702
+ error: "condition: ".concat((_result$error = result.error) !== null && _result$error !== void 0 ? _result$error : 'invalid expression')
120703
+ };
120704
+ }
120705
+ return {
120706
+ passed: result.value === true
120707
+ };
120708
+ }
120709
+ }, {
120710
+ key: "resolveSource",
120711
+ value: function () {
120712
+ var _resolveSource = FieldRulesEvaluator_asyncToGenerator(/*#__PURE__*/FieldRulesEvaluator_regenerator().m(function _callee3(record, source) {
120713
+ var _source$Lookup$Defaul, matchValue, resolved, data, _i, _Object$entries, _Object$entries$_i, key, valueSource, _source$EntityDocumen, _t5;
120714
+ return FieldRulesEvaluator_regenerator().w(function (_context3) {
120715
+ while (1) switch (_context3.n) {
120716
+ case 0:
120717
+ _t5 = source.Kind;
120718
+ _context3.n = _t5 === 'static' ? 1 : _t5 === 'field' ? 2 : _t5 === 'formula' ? 3 : _t5 === 'lookup' ? 4 : _t5 === 'prompt' ? 8 : _t5 === 'entityDocument' ? 14 : 16;
120719
+ break;
120720
+ case 1:
120721
+ return _context3.a(2, source.Value);
120722
+ case 2:
120723
+ return _context3.a(2, record[source.Field]);
120724
+ case 3:
120725
+ return _context3.a(2, this.transforms.Evaluate(source.Expression, undefined, record));
120726
+ case 4:
120727
+ if (this.lookupResolver) {
120728
+ _context3.n = 5;
120729
+ break;
120730
+ }
120731
+ throw new Error('a lookup rule was used but no LookupResolver was provided');
120732
+ case 5:
120733
+ _context3.n = 6;
120734
+ return this.resolveSource(record, source.Lookup.MatchValue);
120735
+ case 6:
120736
+ matchValue = _context3.v;
120737
+ _context3.n = 7;
120738
+ return this.lookupResolver({
120739
+ Entity: source.Lookup.Entity,
120740
+ MatchField: source.Lookup.MatchField,
120741
+ MatchValue: matchValue,
120742
+ ReturnField: source.Lookup.ReturnField
120743
+ });
120744
+ case 7:
120745
+ resolved = _context3.v;
120746
+ return _context3.a(2, resolved === undefined ? (_source$Lookup$Defaul = source.Lookup.Default) !== null && _source$Lookup$Defaul !== void 0 ? _source$Lookup$Defaul : null : resolved);
120747
+ case 8:
120748
+ if (this.promptResolver) {
120749
+ _context3.n = 9;
120750
+ break;
120751
+ }
120752
+ throw new Error('a prompt rule was used but no PromptResolver was provided');
120753
+ case 9:
120754
+ // By default hand the WHOLE record to the prompt; otherwise resolve each shaped Data entry
120755
+ // through the same source machinery (so Data values can be fields, formulas, statics, …).
120756
+ data = record;
120757
+ if (!source.Prompt.Data) {
120758
+ _context3.n = 13;
120759
+ break;
120760
+ }
120761
+ data = {};
120762
+ _i = 0, _Object$entries = Object.entries(source.Prompt.Data);
120763
+ case 10:
120764
+ if (!(_i < _Object$entries.length)) {
120765
+ _context3.n = 13;
120766
+ break;
120767
+ }
120768
+ _Object$entries$_i = FieldRulesEvaluator_slicedToArray(_Object$entries[_i], 2), key = _Object$entries$_i[0], valueSource = _Object$entries$_i[1];
120769
+ _context3.n = 11;
120770
+ return this.resolveSource(record, valueSource);
120771
+ case 11:
120772
+ data[key] = _context3.v;
120773
+ case 12:
120774
+ _i++;
120775
+ _context3.n = 10;
120776
+ break;
120777
+ case 13:
120778
+ return _context3.a(2, this.promptResolver({
120779
+ PromptID: source.Prompt.PromptID,
120780
+ Data: data
120781
+ }));
120782
+ case 14:
120783
+ if (this.entityDocumentResolver) {
120784
+ _context3.n = 15;
120785
+ break;
120786
+ }
120787
+ throw new Error('an entityDocument rule was used but no EntityDocumentResolver was provided');
120788
+ case 15:
120789
+ return _context3.a(2, this.entityDocumentResolver({
120790
+ EntityDocumentID: (_source$EntityDocumen = source.EntityDocument) === null || _source$EntityDocumen === void 0 ? void 0 : _source$EntityDocumen.EntityDocumentID,
120791
+ Record: record
120792
+ }));
120793
+ case 16:
120794
+ return _context3.a(2);
120795
+ }
120796
+ }, _callee3, this);
120797
+ }));
120798
+ function resolveSource(_x5, _x6) {
120799
+ return _resolveSource.apply(this, arguments);
120800
+ }
120801
+ return resolveSource;
120802
+ }()
120803
+ }, {
120804
+ key: "equal",
120805
+ value: function equal(a, b) {
120806
+ if (a === b) return true;
120807
+ if (a instanceof Date && b instanceof Date) return a.getTime() === b.getTime();
120808
+ if (a == null && b == null) return true;
120809
+ return false;
120810
+ }
120811
+ }, {
120812
+ key: "message",
120813
+ value: function message(err) {
120814
+ return err instanceof Error ? err.message : String(err);
120815
+ }
120816
+ }]);
120817
+ }()));
120818
+ ;// ../../MJGlobal/dist/fieldRules/index.js
120819
+
120820
+
120821
+
120822
+
120823
+
119225
120824
  ;// ../../MJGlobal/dist/SQLExpressionValidator.js
119226
120825
  function SQLExpressionValidator_typeof(o) { "@babel/helpers - typeof"; return SQLExpressionValidator_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; }, SQLExpressionValidator_typeof(o); }
119227
120826
  function SQLExpressionValidator_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = SQLExpressionValidator_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; } } }; }
@@ -121256,6 +122855,8 @@ function RegisterClassEx(baseClass) {
121256
122855
 
121257
122856
 
121258
122857
 
122858
+
122859
+
121259
122860
 
121260
122861
  // NOTE: TelemetryManager has moved to @memberjunction/core
121261
122862
  // Import from there instead of here
@@ -125852,12 +127453,12 @@ var ComponentRegistry = /*#__PURE__*/function () {
125852
127453
  }
125853
127454
  }]);
125854
127455
  }();
125855
- // EXTERNAL MODULE: ../../MJCore/dist/index.js + 83 modules
125856
- var dist = __webpack_require__(809);
125857
- // EXTERNAL MODULE: ../../MJGlobal/dist/index.js + 18 modules
125858
- var MJGlobal_dist = __webpack_require__(297);
125859
- // EXTERNAL MODULE: ../../MJCoreEntities/dist/index.js + 54 modules
125860
- var MJCoreEntities_dist = __webpack_require__(612);
127456
+ // EXTERNAL MODULE: ../../MJCore/dist/index.js + 85 modules
127457
+ var dist = __webpack_require__(949);
127458
+ // EXTERNAL MODULE: ../../MJGlobal/dist/index.js + 22 modules
127459
+ var MJGlobal_dist = __webpack_require__(7);
127460
+ // EXTERNAL MODULE: ../../MJCoreEntities/dist/index.js + 56 modules
127461
+ var MJCoreEntities_dist = __webpack_require__(499);
125861
127462
  ;// ./dist/registry/component-registry-service.js
125862
127463
  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); }
125863
127464
  var _ComponentRegistryService;