@memberjunction/core-entities 5.37.0 → 5.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/custom/MJQueryEntityExtended.d.ts +73 -0
  2. package/dist/custom/MJQueryEntityExtended.d.ts.map +1 -0
  3. package/dist/custom/MJQueryEntityExtended.js +195 -0
  4. package/dist/custom/MJQueryEntityExtended.js.map +1 -0
  5. package/dist/custom/ResourcePermissions/ResourcePermissionEngine.js +2 -2
  6. package/dist/custom/ResourcePermissions/ResourcePermissionEngine.js.map +1 -1
  7. package/dist/engines/QueryEngine.d.ts +28 -7
  8. package/dist/engines/QueryEngine.d.ts.map +1 -1
  9. package/dist/engines/QueryEngine.js +40 -1
  10. package/dist/engines/QueryEngine.js.map +1 -1
  11. package/dist/engines/UserInfoEngine.d.ts +9 -0
  12. package/dist/engines/UserInfoEngine.d.ts.map +1 -1
  13. package/dist/engines/UserInfoEngine.js +12 -0
  14. package/dist/engines/UserInfoEngine.js.map +1 -1
  15. package/dist/engines/conversations.d.ts +42 -2
  16. package/dist/engines/conversations.d.ts.map +1 -1
  17. package/dist/engines/conversations.js +49 -6
  18. package/dist/engines/conversations.js.map +1 -1
  19. package/dist/engines/interactive-forms.d.ts +132 -0
  20. package/dist/engines/interactive-forms.d.ts.map +1 -0
  21. package/dist/engines/interactive-forms.js +212 -0
  22. package/dist/engines/interactive-forms.js.map +1 -0
  23. package/dist/generated/entity_subclasses.d.ts +843 -104
  24. package/dist/generated/entity_subclasses.d.ts.map +1 -1
  25. package/dist/generated/entity_subclasses.js +1257 -138
  26. package/dist/generated/entity_subclasses.js.map +1 -1
  27. package/dist/index.d.ts +2 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +2 -0
  30. package/dist/index.js.map +1 -1
  31. package/package.json +5 -5
  32. package/readme.md +3 -3
@@ -0,0 +1,73 @@
1
+ import { UserInfo, QueryCacheConfig } from "@memberjunction/core";
2
+ import { MJQueryEntity, MJQueryFieldEntity, MJQueryParameterEntity, MJQueryEntityEntity, MJQueryPermissionEntity, MJQueryDependencyEntity, MJQueryCategoryEntity } from "../generated/entity_subclasses.js";
3
+ import type { DatabasePlatform } from "@memberjunction/core";
4
+ /**
5
+ * Extended query entity with child-relationship getters and business logic.
6
+ * All child data reads through `QueryEngine`'s event-driven cache — always
7
+ * fresh, no `provider.Refresh()` needed.
8
+ *
9
+ * Available on both client and server. Server-specific logic (embedding,
10
+ * extraction pipeline, dialect conversion) lives in `MJQueryEntityServer`.
11
+ */
12
+ export declare class MJQueryEntityExtended extends MJQueryEntity {
13
+ /** All field definitions for this query */
14
+ get QueryFields(): MJQueryFieldEntity[];
15
+ /** All parameter definitions for this query */
16
+ get QueryParameters(): MJQueryParameterEntity[];
17
+ /** All entity associations for this query */
18
+ get QueryEntities(): MJQueryEntityEntity[];
19
+ /** All permission records for this query */
20
+ get QueryPermissions(): MJQueryPermissionEntity[];
21
+ /** All composition dependency records (queries this query references via {{query:"..."}} syntax) */
22
+ get QueryDependencies(): MJQueryDependencyEntity[];
23
+ /** Queries that depend on (reference) this query via {{query:"..."}} syntax */
24
+ get QueryDependents(): MJQueryDependencyEntity[];
25
+ /** Gets the category entity for this query, or undefined if uncategorized */
26
+ get CategoryEntity(): MJQueryCategoryEntity | undefined;
27
+ private _categoryPath;
28
+ /**
29
+ * Gets the full hierarchical path of this query's category (e.g., "Ground-Truth-Queries/Sales").
30
+ * Returns empty string if the query is not categorized.
31
+ */
32
+ get CategoryPath(): string;
33
+ /**
34
+ * Builds a category path string from a CategoryID by walking up the category hierarchy.
35
+ */
36
+ BuildCategoryPath(categoryID: string): string;
37
+ /**
38
+ * Checks if a user has permission to run this query based on their roles.
39
+ * A user can run a query if:
40
+ * 1. The query has no permissions defined (open to all)
41
+ * 2. The user has at least one role that is granted permission
42
+ */
43
+ UserHasRunPermissions(user: UserInfo): boolean;
44
+ /**
45
+ * Checks if a user can run this query based on permissions.
46
+ * Non-approved queries are allowed to execute (with a server-side warning)
47
+ * to enable testing before formal approval.
48
+ */
49
+ UserCanRun(user: UserInfo): boolean;
50
+ /** Whether this query has been formally approved for production use */
51
+ get IsApproved(): boolean;
52
+ /**
53
+ * Whether this query can be referenced by other queries via composition syntax.
54
+ * A query is composable only when both Reusable=true and Status='Approved'.
55
+ */
56
+ get IsComposable(): boolean;
57
+ /**
58
+ * Resolves the SQL for a given database platform.
59
+ * Resolution order:
60
+ * 1. QuerySQL child table entry matching this query + platform's dialect
61
+ * 2. Base SQL property (the query's primary SQL)
62
+ */
63
+ GetPlatformSQL(platform: DatabasePlatform): string;
64
+ private _cacheConfig;
65
+ /**
66
+ * Gets the cache configuration for this query.
67
+ * If the query has no explicit cache config but category inheritance is enabled,
68
+ * walks up the category tree to find inherited cache settings.
69
+ */
70
+ get CacheConfig(): QueryCacheConfig;
71
+ private getInheritedCacheConfig;
72
+ }
73
+ //# sourceMappingURL=MJQueryEntityExtended.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MJQueryEntityExtended.d.ts","sourceRoot":"","sources":["../../src/custom/MJQueryEntityExtended.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,QAAQ,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE9E,OAAO,EACH,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACxB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;;GAOG;AACH,qBACa,qBAAsB,SAAQ,aAAa;IAIpD,2CAA2C;IAC3C,IAAW,WAAW,IAAI,kBAAkB,EAAE,CAE7C;IAED,+CAA+C;IAC/C,IAAW,eAAe,IAAI,sBAAsB,EAAE,CAErD;IAED,6CAA6C;IAC7C,IAAW,aAAa,IAAI,mBAAmB,EAAE,CAEhD;IAED,4CAA4C;IAC5C,IAAW,gBAAgB,IAAI,uBAAuB,EAAE,CAEvD;IAED,oGAAoG;IACpG,IAAW,iBAAiB,IAAI,uBAAuB,EAAE,CAExD;IAED,+EAA+E;IAC/E,IAAW,eAAe,IAAI,uBAAuB,EAAE,CAEtD;IAID,6EAA6E;IAC7E,IAAW,cAAc,IAAI,qBAAqB,GAAG,SAAS,CAG7D;IAED,OAAO,CAAC,aAAa,CAAuB;IAE5C;;;OAGG;IACH,IAAW,YAAY,IAAI,MAAM,CAKhC;IAED;;OAEG;IACI,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAmBpD;;;;;OAKG;IACI,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAkBrD;;;;OAIG;IACI,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAM1C,uEAAuE;IACvE,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED;;;OAGG;IACH,IAAW,YAAY,IAAI,OAAO,CAEjC;IAID;;;;;OAKG;IACI,cAAc,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM;IAgBzD,OAAO,CAAC,YAAY,CAAiC;IAErD;;;;OAIG;IACH,IAAW,WAAW,IAAI,gBAAgB,CAuBzC;IAED,OAAO,CAAC,uBAAuB;CAqBlC"}
@@ -0,0 +1,195 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { BaseEntity } from "@memberjunction/core";
8
+ import { RegisterClass, UUIDsEqual } from "@memberjunction/global";
9
+ import { MJQueryEntity } from "../generated/entity_subclasses.js";
10
+ import { QueryEngine } from "../engines/QueryEngine.js";
11
+ /**
12
+ * Extended query entity with child-relationship getters and business logic.
13
+ * All child data reads through `QueryEngine`'s event-driven cache — always
14
+ * fresh, no `provider.Refresh()` needed.
15
+ *
16
+ * Available on both client and server. Server-specific logic (embedding,
17
+ * extraction pipeline, dialect conversion) lives in `MJQueryEntityServer`.
18
+ */
19
+ let MJQueryEntityExtended = class MJQueryEntityExtended extends MJQueryEntity {
20
+ constructor() {
21
+ // ─── Child Relationship Getters (read-through from QueryEngine) ─────────────
22
+ super(...arguments);
23
+ this._categoryPath = null;
24
+ // ─── Cache Configuration ────────────────────────────────────────────────────
25
+ this._cacheConfig = null;
26
+ }
27
+ /** All field definitions for this query */
28
+ get QueryFields() {
29
+ return QueryEngine.Instance.GetQueryFields(this.ID);
30
+ }
31
+ /** All parameter definitions for this query */
32
+ get QueryParameters() {
33
+ return QueryEngine.Instance.GetQueryParameters(this.ID);
34
+ }
35
+ /** All entity associations for this query */
36
+ get QueryEntities() {
37
+ return QueryEngine.Instance.QueryEntities.filter(e => UUIDsEqual(e.QueryID, this.ID));
38
+ }
39
+ /** All permission records for this query */
40
+ get QueryPermissions() {
41
+ return QueryEngine.Instance.GetQueryPermissions(this.ID);
42
+ }
43
+ /** All composition dependency records (queries this query references via {{query:"..."}} syntax) */
44
+ get QueryDependencies() {
45
+ return QueryEngine.Instance.Dependencies.filter(d => UUIDsEqual(d.QueryID, this.ID));
46
+ }
47
+ /** Queries that depend on (reference) this query via {{query:"..."}} syntax */
48
+ get QueryDependents() {
49
+ return QueryEngine.Instance.Dependencies.filter(d => UUIDsEqual(d.DependsOnQueryID, this.ID));
50
+ }
51
+ // ─── Category Navigation ────────────────────────────────────────────────────
52
+ /** Gets the category entity for this query, or undefined if uncategorized */
53
+ get CategoryEntity() {
54
+ if (!this.CategoryID)
55
+ return undefined;
56
+ return QueryEngine.Instance.Categories.find(c => UUIDsEqual(c.ID, this.CategoryID));
57
+ }
58
+ /**
59
+ * Gets the full hierarchical path of this query's category (e.g., "Ground-Truth-Queries/Sales").
60
+ * Returns empty string if the query is not categorized.
61
+ */
62
+ get CategoryPath() {
63
+ if (this._categoryPath === null) {
64
+ this._categoryPath = this.BuildCategoryPath(this.CategoryID);
65
+ }
66
+ return this._categoryPath;
67
+ }
68
+ /**
69
+ * Builds a category path string from a CategoryID by walking up the category hierarchy.
70
+ */
71
+ BuildCategoryPath(categoryID) {
72
+ if (!categoryID)
73
+ return '';
74
+ const categories = QueryEngine.Instance.Categories;
75
+ const segments = [];
76
+ let currentID = categoryID;
77
+ while (currentID) {
78
+ const cat = categories.find(c => UUIDsEqual(c.ID, currentID));
79
+ if (!cat)
80
+ break;
81
+ segments.unshift(cat.Name);
82
+ currentID = cat.ParentID;
83
+ }
84
+ return segments.join('/');
85
+ }
86
+ // ─── Permission Checks ──────────────────────────────────────────────────────
87
+ /**
88
+ * Checks if a user has permission to run this query based on their roles.
89
+ * A user can run a query if:
90
+ * 1. The query has no permissions defined (open to all)
91
+ * 2. The user has at least one role that is granted permission
92
+ */
93
+ UserHasRunPermissions(user) {
94
+ const permissions = this.QueryPermissions;
95
+ if (!permissions || permissions.length === 0) {
96
+ return true;
97
+ }
98
+ if (user && user.UserRoles) {
99
+ for (const userRole of user.UserRoles) {
100
+ if (permissions.some(p => p.Role.trim().toLowerCase() === userRole.Role.trim().toLowerCase())) {
101
+ return true;
102
+ }
103
+ }
104
+ }
105
+ return false;
106
+ }
107
+ /**
108
+ * Checks if a user can run this query based on permissions.
109
+ * Non-approved queries are allowed to execute (with a server-side warning)
110
+ * to enable testing before formal approval.
111
+ */
112
+ UserCanRun(user) {
113
+ return this.UserHasRunPermissions(user);
114
+ }
115
+ // ─── Status Checks ──────────────────────────────────────────────────────────
116
+ /** Whether this query has been formally approved for production use */
117
+ get IsApproved() {
118
+ return this.Status === 'Approved';
119
+ }
120
+ /**
121
+ * Whether this query can be referenced by other queries via composition syntax.
122
+ * A query is composable only when both Reusable=true and Status='Approved'.
123
+ */
124
+ get IsComposable() {
125
+ return this.Reusable && this.IsApproved;
126
+ }
127
+ // ─── Platform SQL Resolution ────────────────────────────────────────────────
128
+ /**
129
+ * Resolves the SQL for a given database platform.
130
+ * Resolution order:
131
+ * 1. QuerySQL child table entry matching this query + platform's dialect
132
+ * 2. Base SQL property (the query's primary SQL)
133
+ */
134
+ GetPlatformSQL(platform) {
135
+ const qe = QueryEngine.Instance;
136
+ const dialect = qe.SQLDialects.find(d => d.PlatformKey === platform);
137
+ if (dialect) {
138
+ const entry = qe.QuerySQLs.find(qs => UUIDsEqual(qs.QueryID, this.ID) && UUIDsEqual(qs.SQLDialectID, dialect.ID));
139
+ if (entry?.SQL)
140
+ return entry.SQL;
141
+ }
142
+ return this.SQL;
143
+ }
144
+ /**
145
+ * Gets the cache configuration for this query.
146
+ * If the query has no explicit cache config but category inheritance is enabled,
147
+ * walks up the category tree to find inherited cache settings.
148
+ */
149
+ get CacheConfig() {
150
+ if (this._cacheConfig !== null) {
151
+ return this._cacheConfig;
152
+ }
153
+ if (this.CacheEnabled) {
154
+ this._cacheConfig = {
155
+ enabled: true,
156
+ ttlMinutes: this.CacheTTLMinutes || 60,
157
+ maxCacheSize: this.CacheMaxSize || undefined,
158
+ cacheKey: 'exact'
159
+ };
160
+ return this._cacheConfig;
161
+ }
162
+ const inherited = this.getInheritedCacheConfig();
163
+ if (inherited) {
164
+ this._cacheConfig = inherited;
165
+ return this._cacheConfig;
166
+ }
167
+ this._cacheConfig = { enabled: false, ttlMinutes: 0 };
168
+ return this._cacheConfig;
169
+ }
170
+ getInheritedCacheConfig() {
171
+ const categories = QueryEngine.Instance.Categories;
172
+ let catID = this.CategoryID;
173
+ while (catID) {
174
+ const cat = categories.find(c => UUIDsEqual(c.ID, catID));
175
+ if (!cat)
176
+ break;
177
+ if (cat.DefaultCacheEnabled && cat.CacheInheritanceEnabled) {
178
+ return {
179
+ enabled: true,
180
+ ttlMinutes: cat.DefaultCacheTTLMinutes || 60,
181
+ maxCacheSize: cat.DefaultCacheMaxSize || undefined,
182
+ cacheKey: 'exact',
183
+ inheritFromCategory: true
184
+ };
185
+ }
186
+ catID = cat.ParentID;
187
+ }
188
+ return null;
189
+ }
190
+ };
191
+ MJQueryEntityExtended = __decorate([
192
+ RegisterClass(BaseEntity, 'MJ: Queries')
193
+ ], MJQueryEntityExtended);
194
+ export { MJQueryEntityExtended };
195
+ //# sourceMappingURL=MJQueryEntityExtended.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MJQueryEntityExtended.js","sourceRoot":"","sources":["../../src/custom/MJQueryEntityExtended.ts"],"names":[],"mappings":"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"}
@@ -34,10 +34,10 @@ let ResourcePermissionEngine = class ResourcePermissionEngine extends BaseEngine
34
34
  await super.Load(c, provider, forceRefresh, contextUser);
35
35
  }
36
36
  get ResourceTypes() {
37
- return this._ResourceTypes.ResourceTypes;
37
+ return this._ResourceTypes?.ResourceTypes ?? [];
38
38
  }
39
39
  get Permissions() {
40
- return this._Permissions;
40
+ return this._Permissions ?? [];
41
41
  }
42
42
  /**
43
43
  * Case-insensitive name → ID lookup against the cached `MJ: Resource Types`
@@ -1 +1 @@
1
- {"version":3,"file":"ResourcePermissionEngine.js","sourceRoot":"","sources":["../../../src/custom/ResourcePermissions/ResourcePermissionEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResourcePermissionEngine.js","sourceRoot":"","sources":["../../../src/custom/ResourcePermissions/ResourcePermissionEngine.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import { BaseEngine, IMetadataProvider, UserInfo } from "@memberjunction/core";
2
- import { MJQueryEntity, MJQueryCategoryEntity, MJQueryFieldEntity, MJQueryParameterEntity, MJQueryEntityEntity, MJQueryPermissionEntity } from "../generated/entity_subclasses.js";
2
+ import { MJQueryCategoryEntity, MJQueryFieldEntity, MJQueryParameterEntity, MJQueryEntityEntity, MJQueryPermissionEntity, MJQueryDependencyEntity, MJQuerySQLEntity, MJSQLDialectEntity } from "../generated/entity_subclasses.js";
3
+ import { MJQueryEntityExtended } from "../custom/MJQueryEntityExtended.js";
3
4
  /**
4
5
  * Caching of metadata for queries and related data, with auto-refresh on entity changes.
5
- * Replaces the static query metadata previously loaded by ProviderBase._localMetadata.
6
+ * Returns `MJQueryEntityExtended` instances which include child-relationship getters
7
+ * (QueryFields, QueryParameters, etc.) and business logic (UserCanRun, CategoryPath, etc.).
6
8
  */
7
9
  export declare class QueryEngine extends BaseEngine<QueryEngine> {
8
10
  /**
@@ -16,25 +18,44 @@ export declare class QueryEngine extends BaseEngine<QueryEngine> {
16
18
  private _parameters;
17
19
  private _queryEntities;
18
20
  private _permissions;
21
+ private _dependencies;
22
+ private _querySQLs;
23
+ private _sqlDialects;
19
24
  Config(forceRefresh?: boolean, contextUser?: UserInfo, provider?: IMetadataProvider): Promise<void>;
20
25
  /** All queries in the system */
21
- get Queries(): MJQueryEntity[];
26
+ get Queries(): MJQueryEntityExtended[];
22
27
  /** All query categories */
23
28
  get Categories(): MJQueryCategoryEntity[];
29
+ /** Alias for `Categories` — matches IMetadataProvider naming convention */
30
+ get QueryCategories(): MJQueryCategoryEntity[];
24
31
  /** All query field definitions */
25
32
  get Fields(): MJQueryFieldEntity[];
33
+ /** Alias for `Fields` — matches IMetadataProvider naming convention */
34
+ get QueryFields(): MJQueryFieldEntity[];
26
35
  /** All query parameter definitions */
27
36
  get Parameters(): MJQueryParameterEntity[];
37
+ /** Alias for `Parameters` — matches IMetadataProvider naming convention */
38
+ get QueryParameters(): MJQueryParameterEntity[];
28
39
  /** All query-to-entity relationship mappings */
29
40
  get QueryEntities(): MJQueryEntityEntity[];
30
41
  /** All query permission records */
31
42
  get Permissions(): MJQueryPermissionEntity[];
43
+ /** Alias for `Permissions` — matches IMetadataProvider naming convention */
44
+ get QueryPermissions(): MJQueryPermissionEntity[];
45
+ /** All query dependency records (composition references) */
46
+ get Dependencies(): MJQueryDependencyEntity[];
47
+ /** Alias for `Dependencies` — matches IMetadataProvider naming convention */
48
+ get QueryDependencies(): MJQueryDependencyEntity[];
49
+ /** All query SQL dialect-specific entries */
50
+ get QuerySQLs(): MJQuerySQLEntity[];
51
+ /** All SQL dialect definitions */
52
+ get SQLDialects(): MJSQLDialectEntity[];
32
53
  /** Returns only queries with Status === 'Approved' */
33
- get ApprovedQueries(): MJQueryEntity[];
54
+ get ApprovedQueries(): MJQueryEntityExtended[];
34
55
  /** Find a query by its ID */
35
- FindQueryByID(id: string): MJQueryEntity | undefined;
56
+ FindQueryByID(id: string): MJQueryEntityExtended | undefined;
36
57
  /** Find a query by name, optionally scoped to a category */
37
- FindQueryByName(name: string, categoryId?: string): MJQueryEntity | undefined;
58
+ FindQueryByName(name: string, categoryId?: string): MJQueryEntityExtended | undefined;
38
59
  /** Get all field definitions for a specific query */
39
60
  GetQueryFields(queryId: string): MJQueryFieldEntity[];
40
61
  /** Get all parameter definitions for a specific query */
@@ -42,7 +63,7 @@ export declare class QueryEngine extends BaseEngine<QueryEngine> {
42
63
  /** Get all permission records for a specific query */
43
64
  GetQueryPermissions(queryId: string): MJQueryPermissionEntity[];
44
65
  /** Get all queries belonging to a specific category */
45
- GetQueriesByCategory(categoryId: string): MJQueryEntity[];
66
+ GetQueriesByCategory(categoryId: string): MJQueryEntityExtended[];
46
67
  /** Find a category by name (case-insensitive) */
47
68
  FindCategory(name: string): MJQueryCategoryEntity | undefined;
48
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"QueryEngine.d.ts","sourceRoot":"","sources":["../../src/engines/QueryEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,iBAAiB,EAAsB,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE7H,OAAO,EACH,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EAC1B,MAAM,gCAAgC,CAAC;AAExC;;;GAGG;AACH,qBACa,WAAY,SAAQ,UAAU,CAAC,WAAW,CAAC;IACpD;;;OAGG;IACH,WAAkB,QAAQ,IAAI,WAAW,CAExC;IAED,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,YAAY,CAAiC;IAExC,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB;IAchG,gCAAgC;IAChC,IAAW,OAAO,IAAI,aAAa,EAAE,CAEpC;IAED,2BAA2B;IAC3B,IAAW,UAAU,IAAI,qBAAqB,EAAE,CAE/C;IAED,kCAAkC;IAClC,IAAW,MAAM,IAAI,kBAAkB,EAAE,CAExC;IAED,sCAAsC;IACtC,IAAW,UAAU,IAAI,sBAAsB,EAAE,CAEhD;IAED,gDAAgD;IAChD,IAAW,aAAa,IAAI,mBAAmB,EAAE,CAEhD;IAED,mCAAmC;IACnC,IAAW,WAAW,IAAI,uBAAuB,EAAE,CAElD;IAID,sDAAsD;IACtD,IAAW,eAAe,IAAI,aAAa,EAAE,CAE5C;IAED,6BAA6B;IACtB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAM3D,4DAA4D;IACrD,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAWpF,qDAAqD;IAC9C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAI5D,yDAAyD;IAClD,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB,EAAE;IAIpE,sDAAsD;IAC/C,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,uBAAuB,EAAE;IAItE,uDAAuD;IAChD,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,EAAE;IAIhE,iDAAiD;IAC1C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;CAKvE"}
1
+ {"version":3,"file":"QueryEngine.d.ts","sourceRoot":"","sources":["../../src/engines/QueryEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,iBAAiB,EAAsB,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE7H,OAAO,EACH,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE;;;;GAIG;AACH,qBACa,WAAY,SAAQ,UAAU,CAAC,WAAW,CAAC;IACpD;;;OAGG;IACH,WAAkB,QAAQ,IAAI,WAAW,CAExC;IAED,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,YAAY,CAA4B;IAEnC,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB;IAiBhG,gCAAgC;IAChC,IAAW,OAAO,IAAI,qBAAqB,EAAE,CAE5C;IAED,2BAA2B;IAC3B,IAAW,UAAU,IAAI,qBAAqB,EAAE,CAE/C;IAED,2EAA2E;IAC3E,IAAW,eAAe,IAAI,qBAAqB,EAAE,CAEpD;IAED,kCAAkC;IAClC,IAAW,MAAM,IAAI,kBAAkB,EAAE,CAExC;IAED,uEAAuE;IACvE,IAAW,WAAW,IAAI,kBAAkB,EAAE,CAE7C;IAED,sCAAsC;IACtC,IAAW,UAAU,IAAI,sBAAsB,EAAE,CAEhD;IAED,2EAA2E;IAC3E,IAAW,eAAe,IAAI,sBAAsB,EAAE,CAErD;IAED,gDAAgD;IAChD,IAAW,aAAa,IAAI,mBAAmB,EAAE,CAEhD;IAED,mCAAmC;IACnC,IAAW,WAAW,IAAI,uBAAuB,EAAE,CAElD;IAED,4EAA4E;IAC5E,IAAW,gBAAgB,IAAI,uBAAuB,EAAE,CAEvD;IAED,4DAA4D;IAC5D,IAAW,YAAY,IAAI,uBAAuB,EAAE,CAEnD;IAED,6EAA6E;IAC7E,IAAW,iBAAiB,IAAI,uBAAuB,EAAE,CAExD;IAED,6CAA6C;IAC7C,IAAW,SAAS,IAAI,gBAAgB,EAAE,CAEzC;IAED,kCAAkC;IAClC,IAAW,WAAW,IAAI,kBAAkB,EAAE,CAE7C;IAID,sDAAsD;IACtD,IAAW,eAAe,IAAI,qBAAqB,EAAE,CAEpD;IAED,6BAA6B;IACtB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAMnE,4DAA4D;IACrD,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAW5F,qDAAqD;IAC9C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAI5D,yDAAyD;IAClD,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB,EAAE;IAIpE,sDAAsD;IAC/C,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,uBAAuB,EAAE;IAItE,uDAAuD;IAChD,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,qBAAqB,EAAE;IAIxE,iDAAiD;IAC1C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;CAKvE"}
@@ -8,7 +8,8 @@ import { BaseEngine, RegisterForStartup } from "@memberjunction/core";
8
8
  import { UUIDsEqual } from "@memberjunction/global";
9
9
  /**
10
10
  * Caching of metadata for queries and related data, with auto-refresh on entity changes.
11
- * Replaces the static query metadata previously loaded by ProviderBase._localMetadata.
11
+ * Returns `MJQueryEntityExtended` instances which include child-relationship getters
12
+ * (QueryFields, QueryParameters, etc.) and business logic (UserCanRun, CategoryPath, etc.).
12
13
  */
13
14
  let QueryEngine = class QueryEngine extends BaseEngine {
14
15
  constructor() {
@@ -19,6 +20,9 @@ let QueryEngine = class QueryEngine extends BaseEngine {
19
20
  this._parameters = [];
20
21
  this._queryEntities = [];
21
22
  this._permissions = [];
23
+ this._dependencies = [];
24
+ this._querySQLs = [];
25
+ this._sqlDialects = [];
22
26
  }
23
27
  /**
24
28
  * Returns the global instance of the class. This is a singleton class, so there is only one instance of it in the application.
@@ -35,6 +39,9 @@ let QueryEngine = class QueryEngine extends BaseEngine {
35
39
  { Type: 'entity', EntityName: 'MJ: Query Parameters', PropertyName: '_parameters', CacheLocal: true },
36
40
  { Type: 'entity', EntityName: 'MJ: Query Entities', PropertyName: '_queryEntities', CacheLocal: true },
37
41
  { Type: 'entity', EntityName: 'MJ: Query Permissions', PropertyName: '_permissions', CacheLocal: true },
42
+ { Type: 'entity', EntityName: 'MJ: Query Dependencies', PropertyName: '_dependencies', CacheLocal: true },
43
+ { Type: 'entity', EntityName: 'MJ: Query SQLs', PropertyName: '_querySQLs', CacheLocal: true },
44
+ { Type: 'entity', EntityName: 'MJ: SQL Dialects', PropertyName: '_sqlDialects', CacheLocal: true },
38
45
  ];
39
46
  await this.Load(configs, provider, forceRefresh, contextUser);
40
47
  }
@@ -47,14 +54,26 @@ let QueryEngine = class QueryEngine extends BaseEngine {
47
54
  get Categories() {
48
55
  return this._categories;
49
56
  }
57
+ /** Alias for `Categories` — matches IMetadataProvider naming convention */
58
+ get QueryCategories() {
59
+ return this._categories;
60
+ }
50
61
  /** All query field definitions */
51
62
  get Fields() {
52
63
  return this._fields;
53
64
  }
65
+ /** Alias for `Fields` — matches IMetadataProvider naming convention */
66
+ get QueryFields() {
67
+ return this._fields;
68
+ }
54
69
  /** All query parameter definitions */
55
70
  get Parameters() {
56
71
  return this._parameters;
57
72
  }
73
+ /** Alias for `Parameters` — matches IMetadataProvider naming convention */
74
+ get QueryParameters() {
75
+ return this._parameters;
76
+ }
58
77
  /** All query-to-entity relationship mappings */
59
78
  get QueryEntities() {
60
79
  return this._queryEntities;
@@ -63,6 +82,26 @@ let QueryEngine = class QueryEngine extends BaseEngine {
63
82
  get Permissions() {
64
83
  return this._permissions;
65
84
  }
85
+ /** Alias for `Permissions` — matches IMetadataProvider naming convention */
86
+ get QueryPermissions() {
87
+ return this._permissions;
88
+ }
89
+ /** All query dependency records (composition references) */
90
+ get Dependencies() {
91
+ return this._dependencies;
92
+ }
93
+ /** Alias for `Dependencies` — matches IMetadataProvider naming convention */
94
+ get QueryDependencies() {
95
+ return this._dependencies;
96
+ }
97
+ /** All query SQL dialect-specific entries */
98
+ get QuerySQLs() {
99
+ return this._querySQLs;
100
+ }
101
+ /** All SQL dialect definitions */
102
+ get SQLDialects() {
103
+ return this._sqlDialects;
104
+ }
66
105
  // --- Convenience helpers ---
67
106
  /** Returns only queries with Status === 'Approved' */
68
107
  get ApprovedQueries() {
@@ -1 +1 @@
1
- {"version":3,"file":"QueryEngine.js","sourceRoot":"","sources":["../../src/engines/QueryEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueryEngine.js","sourceRoot":"","sources":["../../src/engines/QueryEngine.ts"],"names":[],"mappings":"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"}
@@ -103,6 +103,15 @@ export declare class UserInfoEngine extends BaseEngine<UserInfoEngine> {
103
103
  get UserSettings(): MJUserSettingEntity[];
104
104
  /**
105
105
  * Get a user setting value by key.
106
+ *
107
+ * **Read-after-write semantics**: this consults the in-memory pending-
108
+ * debounced-writes map FIRST. Without that, a `SetSettingDebounced`
109
+ * followed immediately by `GetSetting` would return the old DB-cached
110
+ * value because the debounce timer hasn't fired yet and the entity
111
+ * hasn't been saved. Callers that update a preference and re-render
112
+ * synchronously (e.g. form-variant picker → form reload) depend on
113
+ * this freshness guarantee.
114
+ *
106
115
  * @param settingKey - The setting key to find (e.g., "default-view-setting/Contacts")
107
116
  * @returns The setting value string, or undefined if not found
108
117
  */
@@ -1 +1 @@
1
- {"version":3,"file":"UserInfoEngine.d.ts","sourceRoot":"","sources":["../../src/engines/UserInfoEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserInfoEngine.d.ts","sourceRoot":"","sources":["../../src/engines/UserInfoEngine.ts"],"names":[],"mappings":"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"}
@@ -219,10 +219,22 @@ let UserInfoEngine = class UserInfoEngine extends BaseEngine {
219
219
  }
220
220
  /**
221
221
  * Get a user setting value by key.
222
+ *
223
+ * **Read-after-write semantics**: this consults the in-memory pending-
224
+ * debounced-writes map FIRST. Without that, a `SetSettingDebounced`
225
+ * followed immediately by `GetSetting` would return the old DB-cached
226
+ * value because the debounce timer hasn't fired yet and the entity
227
+ * hasn't been saved. Callers that update a preference and re-render
228
+ * synchronously (e.g. form-variant picker → form reload) depend on
229
+ * this freshness guarantee.
230
+ *
222
231
  * @param settingKey - The setting key to find (e.g., "default-view-setting/Contacts")
223
232
  * @returns The setting value string, or undefined if not found
224
233
  */
225
234
  GetSetting(settingKey) {
235
+ const pending = this._pendingSettings.get(settingKey);
236
+ if (pending !== undefined)
237
+ return pending.value;
226
238
  const setting = this.UserSettings.find((s) => s.Setting === settingKey);
227
239
  return setting?.Value ?? undefined;
228
240
  }