@memberjunction/core-entities 6.2.0-edge.4 → 6.2.0-edge.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/custom/ConversationWriteAccess.d.ts +5 -0
- package/dist/custom/ConversationWriteAccess.d.ts.map +1 -1
- package/dist/custom/ConversationWriteAccess.js +6 -6
- package/dist/custom/ConversationWriteAccess.js.map +1 -1
- package/dist/custom/MJConversationDetailEntityExtended.d.ts +46 -4
- package/dist/custom/MJConversationDetailEntityExtended.d.ts.map +1 -1
- package/dist/custom/MJConversationDetailEntityExtended.js +185 -28
- package/dist/custom/MJConversationDetailEntityExtended.js.map +1 -1
- package/dist/custom/MJThemeEntityExtended.d.ts +13 -0
- package/dist/custom/MJThemeEntityExtended.d.ts.map +1 -0
- package/dist/custom/MJThemeEntityExtended.js +37 -0
- package/dist/custom/MJThemeEntityExtended.js.map +1 -0
- package/dist/engines/InstanceConfigEngine.d.ts.map +1 -1
- package/dist/engines/InstanceConfigEngine.js +13 -3
- package/dist/engines/InstanceConfigEngine.js.map +1 -1
- package/dist/engines/PermissionEngine.d.ts +5 -4
- package/dist/engines/PermissionEngine.d.ts.map +1 -1
- package/dist/engines/PermissionEngine.js +7 -5
- package/dist/engines/PermissionEngine.js.map +1 -1
- package/dist/engines/QueryEngine.d.ts +81 -6
- package/dist/engines/QueryEngine.d.ts.map +1 -1
- package/dist/engines/QueryEngine.js +283 -4
- package/dist/engines/QueryEngine.js.map +1 -1
- package/dist/engines/UserInfoEngine.d.ts +48 -2
- package/dist/engines/UserInfoEngine.d.ts.map +1 -1
- package/dist/engines/UserInfoEngine.js +65 -8
- package/dist/engines/UserInfoEngine.js.map +1 -1
- package/dist/engines/conversations.d.ts +19 -1
- package/dist/engines/conversations.d.ts.map +1 -1
- package/dist/engines/conversations.js +125 -22
- package/dist/engines/conversations.js.map +1 -1
- package/dist/generated/entities/__mj.d.ts +1762 -44
- package/dist/generated/entities/__mj.d.ts.map +1 -1
- package/dist/generated/entities/__mj.js +2231 -18
- package/dist/generated/entities/__mj.js.map +1 -1
- package/dist/generated/remote_operations.d.ts +17 -5
- package/dist/generated/remote_operations.d.ts.map +1 -1
- package/dist/generated/remote_operations.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +6 -5
|
@@ -65,10 +65,10 @@ export const PERMISSION_DOMAIN_ICON_FALLBACK = 'fa-solid fa-lock';
|
|
|
65
65
|
* );
|
|
66
66
|
* ```
|
|
67
67
|
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
68
|
+
* Runs at the default startup priority (100) alongside `UserInfoEngine`, `ApplicationManager`,
|
|
69
|
+
* and `DashboardEngine` so its `MJ: Permission Domains` `RunView` coalesces into the main
|
|
70
|
+
* synchronous startup batch rather than forcing a solo round-trip. Providers lazy-resolve
|
|
71
|
+
* their backing engines on first use, so configure order within the priority group does not matter.
|
|
72
72
|
*/
|
|
73
73
|
let PermissionEngine = class PermissionEngine extends BaseEngine {
|
|
74
74
|
constructor() {
|
|
@@ -89,6 +89,8 @@ let PermissionEngine = class PermissionEngine extends BaseEngine {
|
|
|
89
89
|
},
|
|
90
90
|
];
|
|
91
91
|
await super.Load(configs, provider, forceRefresh, contextUser);
|
|
92
|
+
}
|
|
93
|
+
async AdditionalLoading() {
|
|
92
94
|
this.instantiateProviders();
|
|
93
95
|
}
|
|
94
96
|
/**
|
|
@@ -345,7 +347,7 @@ let PermissionEngine = class PermissionEngine extends BaseEngine {
|
|
|
345
347
|
}
|
|
346
348
|
};
|
|
347
349
|
PermissionEngine = __decorate([
|
|
348
|
-
RegisterForStartup({
|
|
350
|
+
RegisterForStartup({ severity: 'warn', description: 'PermissionEngine — unified permission provider registry' })
|
|
349
351
|
], PermissionEngine);
|
|
350
352
|
export { PermissionEngine };
|
|
351
353
|
//# sourceMappingURL=PermissionEngine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionEngine.js","sourceRoot":"","sources":["../../src/engines/PermissionEngine.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EACH,UAAU,EAGV,QAAQ,EACR,WAAW,EAMX,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,OAAO,GAEV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAIlD;;;;GAIG;AACH,MAAM,wBAAwB,GAA6B;IACvD,oBAAoB,EAAE,CAAC,wBAAwB,CAAC;IAChD,mBAAmB,EAAE,CAAC,uBAAuB,CAAC;IAC9C,uBAAuB,EAAE,CAAC,2BAA2B,EAAE,oCAAoC,CAAC;IAC5F,sBAAsB,EAAE,CAAC,0BAA0B,CAAC;IACpD,sBAAsB,EAAE,CAAC,0BAA0B,CAAC;IACpD,wBAAwB,EAAE,CAAC,4BAA4B,CAAC;IACxD,sBAAsB,EAAE,CAAC,0BAA0B,CAAC;IACpD,sBAAsB,EAAE,CAAC,0BAA0B,CAAC;IACpD,mBAAmB,EAAE,CAAC,uBAAuB,CAAC;IAC9C,sBAAsB,EAAE,CAAC,0BAA0B,CAAC;CACvD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA2B;IAC3D,oBAAoB,EAAE,sBAAsB;IAC5C,mBAAmB,EAAE,2BAA2B;IAChD,uBAAuB,EAAE,wBAAwB;IACjD,sBAAsB,EAAE,yBAAyB;IACjD,sBAAsB,EAAE,wBAAwB;IAChD,wBAAwB,EAAE,yBAAyB;IACnD,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,iCAAiC;IACzD,mBAAmB,EAAE,8BAA8B;IACnD,sBAAsB,EAAE,kBAAkB;CAC7C,CAAC;AAEF,wFAAwF;AACxF,MAAM,CAAC,MAAM,+BAA+B,GAAG,kBAAkB,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEI,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,UAA4B;IAA3D;;QAKK,aAAQ,GAA+B,EAAE,CAAC;QAC1C,eAAU,GAAwC,IAAI,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"PermissionEngine.js","sourceRoot":"","sources":["../../src/engines/PermissionEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
import { BaseEngine, IMetadataProvider, UserInfo } from "@memberjunction/core";
|
|
1
|
+
import { BaseEngine, BaseEnginePropertyConfig, BaseEntity, BaseEntityEvent, DatabasePlatform, EngineDataChangeEvent, IMetadataProvider, QueryDefinitionSignature, UserInfo } from "@memberjunction/core";
|
|
2
2
|
import { MJQueryCategoryEntity, MJQueryFieldEntity, MJQueryParameterEntity, MJQueryEntityEntity, MJQueryPermissionEntity, MJQueryDependencyEntity, MJQuerySQLEntity, MJSQLDialectEntity } from "../generated/entity_subclasses.js";
|
|
3
3
|
import { MJQueryEntityExtended } from "../custom/MJQueryEntityExtended.js";
|
|
4
|
-
/**
|
|
5
|
-
* Caching of metadata for queries and related data, with auto-refresh on entity changes.
|
|
6
|
-
* Returns `MJQueryEntityExtended` instances which include child-relationship getters
|
|
7
|
-
* (QueryFields, QueryParameters, etc.) and business logic (UserCanRun, CategoryPath, etc.).
|
|
8
|
-
*/
|
|
9
4
|
export declare class QueryEngine extends BaseEngine<QueryEngine> {
|
|
10
5
|
/**
|
|
11
6
|
* Returns the global instance of the class. This is a singleton class, so there is only one instance of it in the application.
|
|
@@ -66,5 +61,85 @@ export declare class QueryEngine extends BaseEngine<QueryEngine> {
|
|
|
66
61
|
GetQueriesByCategory(categoryId: string): MJQueryEntityExtended[];
|
|
67
62
|
/** Find a category by name (case-insensitive) */
|
|
68
63
|
FindCategory(name: string): MJQueryCategoryEntity | undefined;
|
|
64
|
+
/** Definition signatures by `queryID|platform`, cleared whenever a definition property changes. */
|
|
65
|
+
private _definitionMemo;
|
|
66
|
+
/** Lookup indexes for computing signatures, built on first use after the memo was cleared. */
|
|
67
|
+
private _definitionIndexes;
|
|
68
|
+
/** Saves seen starting with a result-affecting column dirty; see {@link trackDefinitionEdit}. */
|
|
69
|
+
private _resultAffectingSaves;
|
|
70
|
+
/** Pending slot invalidations by lowercased query ID; see {@link scheduleSlotInvalidation}. */
|
|
71
|
+
private _pendingSlotInvalidations;
|
|
72
|
+
/**
|
|
73
|
+
* How long, in milliseconds, a query must go without a result-affecting save on this process
|
|
74
|
+
* before its cached results are deleted. One edit saves the query, then its parameters, fields,
|
|
75
|
+
* entities and dependencies, then the query again, over several seconds; waiting for the burst
|
|
76
|
+
* to settle deletes the slots once instead of once per save.
|
|
77
|
+
*/
|
|
78
|
+
protected get DefinitionEditSettleMs(): number;
|
|
79
|
+
/**
|
|
80
|
+
* The signature of what a query's results are computed from on `platform`: a hash of the SQL
|
|
81
|
+
* that runs there (`GetPlatformSQL`), the columns that change how it runs (`UsesTemplate`,
|
|
82
|
+
* `ExternalDataSourceID`, `IsMaterialized`, `SQLDialectID`), its `CacheValidationSQL`, its
|
|
83
|
+
* parameters' names, types, required flags and validation filters, and, recursively, the signatures of the queries it composes (a cycle
|
|
84
|
+
* is hashed as a marker rather than followed). Descriptive columns, parameter default values
|
|
85
|
+
* (informational only), field rows, permissions and cache settings are not part of it.
|
|
86
|
+
*
|
|
87
|
+
* The stamp is the newest `__mj_UpdatedAt` across the same rows. Computed once per query and
|
|
88
|
+
* platform, and again only after this engine's query data changes.
|
|
89
|
+
*
|
|
90
|
+
* @returns The signature, or undefined when the engine does not hold the query
|
|
91
|
+
*/
|
|
92
|
+
GetDefinitionSignature(queryID: string, platform: DatabasePlatform): QueryDefinitionSignature | undefined;
|
|
93
|
+
/**
|
|
94
|
+
* The memoized signature, computing it (and any composed query's) on a miss. A signature whose
|
|
95
|
+
* computation met a cycle is not memoized: its value depends on where the walk entered the
|
|
96
|
+
* cycle, and two processes must agree on every query's hash.
|
|
97
|
+
*/
|
|
98
|
+
private definitionSignature;
|
|
99
|
+
/** The hashed text of one query's own definition, without its composed queries. */
|
|
100
|
+
private definitionParts;
|
|
101
|
+
/** Dependency rows in a stable order, so the hash does not depend on load order. */
|
|
102
|
+
private static sortedDependencies;
|
|
103
|
+
/** Builds (once per memo generation) the lookups signature computation reads. */
|
|
104
|
+
private definitionIndexes;
|
|
105
|
+
/** Forgets every computed signature, so the next request recomputes from current data. */
|
|
106
|
+
private clearDefinitionMemo;
|
|
107
|
+
protected NotifyDataChange(config: BaseEnginePropertyConfig, data: unknown[], changeType?: EngineDataChangeEvent['changeType'], affectedEntity?: BaseEntity): void;
|
|
108
|
+
protected emitPropertyChange(propertyName: string): void;
|
|
109
|
+
/** Milliseconds since the epoch for a row timestamp, or 0 when absent or unreadable. */
|
|
110
|
+
private static timestampMs;
|
|
111
|
+
/**
|
|
112
|
+
* A 53-bit hash of `text` as hex (cyrb53). Plain JavaScript, so a browser and a server hash the
|
|
113
|
+
* same text to the same value.
|
|
114
|
+
*/
|
|
115
|
+
private static hashText;
|
|
116
|
+
/**
|
|
117
|
+
* Notes result-affecting edits made in this process before the base class applies the event.
|
|
118
|
+
* Only local saves and deletes count: every server's engine also hears about the edit, through
|
|
119
|
+
* the shared cache, but only the server that made it deletes the slots, so a fleet does not
|
|
120
|
+
* delete the same slots once per server while the others refill them.
|
|
121
|
+
*/
|
|
122
|
+
protected HandleIndividualBaseEntityEvent(event: BaseEntityEvent): Promise<boolean>;
|
|
123
|
+
/**
|
|
124
|
+
* Follows one save or delete of a query definition row. A save is judged when it starts, while
|
|
125
|
+
* the record still knows which columns are dirty, and acted on when it succeeds. A delete
|
|
126
|
+
* always counts. The slots of the affected query and of every query that composes it are then
|
|
127
|
+
* deleted once the edit settles (see {@link DefinitionEditSettleMs}). Deleting them is
|
|
128
|
+
* housekeeping: a read under the new definition already misses them (see
|
|
129
|
+
* {@link GetDefinitionSignature}).
|
|
130
|
+
*/
|
|
131
|
+
private trackDefinitionEdit;
|
|
132
|
+
/** True for a create, or an update with any of `columns` dirty. */
|
|
133
|
+
private static isResultAffectingSave;
|
|
134
|
+
/** The query a definition row belongs to: the row itself for a query, else its QueryID. */
|
|
135
|
+
private static editedQueryID;
|
|
136
|
+
/** Schedules slot deletion for `queryID` and every query that composes it, directly or not. */
|
|
137
|
+
private invalidateAfterEdit;
|
|
138
|
+
/** `queryID` plus every query that reaches it through composition. Cycles end the walk. */
|
|
139
|
+
private queryAndDependents;
|
|
140
|
+
/** (Re)starts the settle timer for one query's slot deletion. */
|
|
141
|
+
private scheduleSlotInvalidation;
|
|
142
|
+
/** Deletes one query's cached results. Never throws. */
|
|
143
|
+
private invalidateQuerySlots;
|
|
69
144
|
}
|
|
70
145
|
//# sourceMappingURL=QueryEngine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryEngine.d.ts","sourceRoot":"","sources":["../../src/engines/QueryEngine.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"QueryEngine.d.ts","sourceRoot":"","sources":["../../src/engines/QueryEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,14 +4,29 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
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
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
|
|
8
|
-
import {
|
|
7
|
+
var QueryEngine_1;
|
|
8
|
+
import { BaseEngine, LocalCacheManager, LogError, LogStatusEx, RegisterForStartup } from "@memberjunction/core";
|
|
9
|
+
import { GroupByUUID, IndexByUUID, UUIDsEqual } from "@memberjunction/global";
|
|
9
10
|
/**
|
|
10
11
|
* Caching of metadata for queries and related data, with auto-refresh on entity changes.
|
|
11
12
|
* Returns `MJQueryEntityExtended` instances which include child-relationship getters
|
|
12
13
|
* (QueryFields, QueryParameters, etc.) and business logic (UserCanRun, CategoryPath, etc.).
|
|
13
14
|
*/
|
|
14
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Per entity, the columns whose change can change a query's results. `'all'` means any change.
|
|
17
|
+
* Name and CategoryID are in the cache key rather than in the definition hash: editing them leaves
|
|
18
|
+
* the old slots unreachable, so they are reclaimed too. A parameter's DefaultValue is not here:
|
|
19
|
+
* it is informational, never applied when the query runs (`QueryParameterProcessor`).
|
|
20
|
+
*/
|
|
21
|
+
const RESULT_AFFECTING_COLUMNS = {
|
|
22
|
+
'mj: queries': ['SQL', 'SQLDialectID', 'UsesTemplate', 'ExternalDataSourceID', 'IsMaterialized', 'CacheValidationSQL', 'Name', 'CategoryID'],
|
|
23
|
+
'mj: query sqls': 'all',
|
|
24
|
+
'mj: query parameters': ['QueryID', 'Name', 'Type', 'IsRequired', 'ValidationFilters'],
|
|
25
|
+
'mj: query dependencies': 'all',
|
|
26
|
+
};
|
|
27
|
+
/** Engine properties a query definition is computed from. A change to any of them clears the memo. */
|
|
28
|
+
const DEFINITION_PROPERTIES = new Set(['_queries', '_parameters', '_dependencies', '_querySQLs', '_sqlDialects']);
|
|
29
|
+
let QueryEngine = QueryEngine_1 = class QueryEngine extends BaseEngine {
|
|
15
30
|
constructor() {
|
|
16
31
|
super(...arguments);
|
|
17
32
|
this._queries = [];
|
|
@@ -23,6 +38,15 @@ let QueryEngine = class QueryEngine extends BaseEngine {
|
|
|
23
38
|
this._dependencies = [];
|
|
24
39
|
this._querySQLs = [];
|
|
25
40
|
this._sqlDialects = [];
|
|
41
|
+
// --- Query definition signatures ---
|
|
42
|
+
/** Definition signatures by `queryID|platform`, cleared whenever a definition property changes. */
|
|
43
|
+
this._definitionMemo = new Map();
|
|
44
|
+
/** Lookup indexes for computing signatures, built on first use after the memo was cleared. */
|
|
45
|
+
this._definitionIndexes = null;
|
|
46
|
+
/** Saves seen starting with a result-affecting column dirty; see {@link trackDefinitionEdit}. */
|
|
47
|
+
this._resultAffectingSaves = new WeakSet();
|
|
48
|
+
/** Pending slot invalidations by lowercased query ID; see {@link scheduleSlotInvalidation}. */
|
|
49
|
+
this._pendingSlotInvalidations = new Map();
|
|
26
50
|
}
|
|
27
51
|
/**
|
|
28
52
|
* Returns the global instance of the class. This is a singleton class, so there is only one instance of it in the application.
|
|
@@ -152,8 +176,263 @@ let QueryEngine = class QueryEngine extends BaseEngine {
|
|
|
152
176
|
const lower = name.trim().toLowerCase();
|
|
153
177
|
return this._categories.find(c => c.Name.trim().toLowerCase() === lower);
|
|
154
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* How long, in milliseconds, a query must go without a result-affecting save on this process
|
|
181
|
+
* before its cached results are deleted. One edit saves the query, then its parameters, fields,
|
|
182
|
+
* entities and dependencies, then the query again, over several seconds; waiting for the burst
|
|
183
|
+
* to settle deletes the slots once instead of once per save.
|
|
184
|
+
*/
|
|
185
|
+
get DefinitionEditSettleMs() {
|
|
186
|
+
return 3000;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* The signature of what a query's results are computed from on `platform`: a hash of the SQL
|
|
190
|
+
* that runs there (`GetPlatformSQL`), the columns that change how it runs (`UsesTemplate`,
|
|
191
|
+
* `ExternalDataSourceID`, `IsMaterialized`, `SQLDialectID`), its `CacheValidationSQL`, its
|
|
192
|
+
* parameters' names, types, required flags and validation filters, and, recursively, the signatures of the queries it composes (a cycle
|
|
193
|
+
* is hashed as a marker rather than followed). Descriptive columns, parameter default values
|
|
194
|
+
* (informational only), field rows, permissions and cache settings are not part of it.
|
|
195
|
+
*
|
|
196
|
+
* The stamp is the newest `__mj_UpdatedAt` across the same rows. Computed once per query and
|
|
197
|
+
* platform, and again only after this engine's query data changes.
|
|
198
|
+
*
|
|
199
|
+
* @returns The signature, or undefined when the engine does not hold the query
|
|
200
|
+
*/
|
|
201
|
+
GetDefinitionSignature(queryID, platform) {
|
|
202
|
+
if (!queryID)
|
|
203
|
+
return undefined;
|
|
204
|
+
return this.definitionSignature(queryID, platform, new Set())?.Signature;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* The memoized signature, computing it (and any composed query's) on a miss. A signature whose
|
|
208
|
+
* computation met a cycle is not memoized: its value depends on where the walk entered the
|
|
209
|
+
* cycle, and two processes must agree on every query's hash.
|
|
210
|
+
*/
|
|
211
|
+
definitionSignature(queryID, platform, visiting) {
|
|
212
|
+
const key = `${queryID.trim().toLowerCase()}|${platform}`;
|
|
213
|
+
const memo = this._definitionMemo.get(key);
|
|
214
|
+
if (memo)
|
|
215
|
+
return { Signature: memo, Cyclic: false };
|
|
216
|
+
const indexes = this.definitionIndexes();
|
|
217
|
+
const query = indexes.QueriesByID.Get(queryID);
|
|
218
|
+
if (!query)
|
|
219
|
+
return undefined;
|
|
220
|
+
visiting.add(key);
|
|
221
|
+
const parts = this.definitionParts(query, platform, indexes);
|
|
222
|
+
let newest = QueryEngine_1.timestampMs(query.__mj_UpdatedAt);
|
|
223
|
+
for (const row of [...(indexes.ParametersByQuery.Get(query.ID) ?? []), ...(indexes.QuerySQLsByQuery.Get(query.ID) ?? [])]) {
|
|
224
|
+
newest = Math.max(newest, QueryEngine_1.timestampMs(row.__mj_UpdatedAt));
|
|
225
|
+
}
|
|
226
|
+
let cyclic = false;
|
|
227
|
+
for (const dependency of QueryEngine_1.sortedDependencies(indexes.DependenciesByQuery.Get(query.ID))) {
|
|
228
|
+
newest = Math.max(newest, QueryEngine_1.timestampMs(dependency.__mj_UpdatedAt));
|
|
229
|
+
const dependencyID = dependency.DependsOnQueryID.toLowerCase();
|
|
230
|
+
if (visiting.has(`${dependencyID}|${platform}`)) {
|
|
231
|
+
cyclic = true;
|
|
232
|
+
parts.push(`dep:${dependencyID}:cycle`);
|
|
233
|
+
continue;
|
|
234
|
+
}
|
|
235
|
+
const composed = this.definitionSignature(dependency.DependsOnQueryID, platform, visiting);
|
|
236
|
+
cyclic = cyclic || composed?.Cyclic === true;
|
|
237
|
+
parts.push(`dep:${dependencyID}:${composed?.Signature.Hash ?? 'missing'}`);
|
|
238
|
+
newest = Math.max(newest, QueryEngine_1.timestampMs(composed?.Signature.Stamp));
|
|
239
|
+
}
|
|
240
|
+
visiting.delete(key);
|
|
241
|
+
const signature = {
|
|
242
|
+
QueryID: query.ID,
|
|
243
|
+
Hash: QueryEngine_1.hashText(parts.join('\u0001')),
|
|
244
|
+
Stamp: newest > 0 ? new Date(newest).toISOString() : undefined,
|
|
245
|
+
};
|
|
246
|
+
if (!cyclic) {
|
|
247
|
+
this._definitionMemo.set(key, signature);
|
|
248
|
+
}
|
|
249
|
+
return { Signature: signature, Cyclic: cyclic };
|
|
250
|
+
}
|
|
251
|
+
/** The hashed text of one query's own definition, without its composed queries. */
|
|
252
|
+
definitionParts(query, platform, indexes) {
|
|
253
|
+
const parts = [
|
|
254
|
+
`sql:${query.GetPlatformSQL(platform) ?? ''}`,
|
|
255
|
+
`dialect:${(query.SQLDialectID ?? '').toLowerCase()}`,
|
|
256
|
+
`template:${query.UsesTemplate ? 1 : 0}`,
|
|
257
|
+
`external:${(query.ExternalDataSourceID ?? '').toLowerCase()}`,
|
|
258
|
+
`materialized:${query.IsMaterialized ? 1 : 0}`,
|
|
259
|
+
`validation:${query.CacheValidationSQL ?? ''}`,
|
|
260
|
+
];
|
|
261
|
+
const parameters = [...(indexes.ParametersByQuery.Get(query.ID) ?? [])]
|
|
262
|
+
.sort((a, b) => a.Name.toLowerCase().localeCompare(b.Name.toLowerCase()));
|
|
263
|
+
for (const p of parameters) {
|
|
264
|
+
parts.push(`param:${p.Name.toLowerCase()}\u0002${p.Type}\u0002${p.IsRequired ? 1 : 0}\u0002${p.ValidationFilters ?? ''}`);
|
|
265
|
+
}
|
|
266
|
+
return parts;
|
|
267
|
+
}
|
|
268
|
+
/** Dependency rows in a stable order, so the hash does not depend on load order. */
|
|
269
|
+
static sortedDependencies(rows) {
|
|
270
|
+
return [...(rows ?? [])].sort((a, b) => a.DependsOnQueryID.toLowerCase().localeCompare(b.DependsOnQueryID.toLowerCase()));
|
|
271
|
+
}
|
|
272
|
+
/** Builds (once per memo generation) the lookups signature computation reads. */
|
|
273
|
+
definitionIndexes() {
|
|
274
|
+
if (!this._definitionIndexes) {
|
|
275
|
+
this._definitionIndexes = {
|
|
276
|
+
QueriesByID: IndexByUUID(this.Queries),
|
|
277
|
+
ParametersByQuery: GroupByUUID(this.Parameters, p => p.QueryID),
|
|
278
|
+
DependenciesByQuery: GroupByUUID(this.Dependencies, d => d.QueryID),
|
|
279
|
+
DependentsByQuery: GroupByUUID(this.Dependencies, d => d.DependsOnQueryID),
|
|
280
|
+
QuerySQLsByQuery: GroupByUUID(this.QuerySQLs, q => q.QueryID),
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
return this._definitionIndexes;
|
|
284
|
+
}
|
|
285
|
+
/** Forgets every computed signature, so the next request recomputes from current data. */
|
|
286
|
+
clearDefinitionMemo(propertyName) {
|
|
287
|
+
if (DEFINITION_PROPERTIES.has(propertyName)) {
|
|
288
|
+
this._definitionMemo.clear();
|
|
289
|
+
this._definitionIndexes = null;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
NotifyDataChange(config, data, changeType = 'refresh', affectedEntity) {
|
|
293
|
+
this.clearDefinitionMemo(config.PropertyName);
|
|
294
|
+
super.NotifyDataChange(config, data, changeType, affectedEntity);
|
|
295
|
+
}
|
|
296
|
+
emitPropertyChange(propertyName) {
|
|
297
|
+
this.clearDefinitionMemo(propertyName);
|
|
298
|
+
super.emitPropertyChange(propertyName);
|
|
299
|
+
}
|
|
300
|
+
/** Milliseconds since the epoch for a row timestamp, or 0 when absent or unreadable. */
|
|
301
|
+
static timestampMs(value) {
|
|
302
|
+
if (value == null)
|
|
303
|
+
return 0;
|
|
304
|
+
const ms = value instanceof Date ? value.getTime() : Date.parse(value);
|
|
305
|
+
return Number.isNaN(ms) ? 0 : ms;
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* A 53-bit hash of `text` as hex (cyrb53). Plain JavaScript, so a browser and a server hash the
|
|
309
|
+
* same text to the same value.
|
|
310
|
+
*/
|
|
311
|
+
static hashText(text) {
|
|
312
|
+
let h1 = 0xdeadbeef;
|
|
313
|
+
let h2 = 0x41c6ce57;
|
|
314
|
+
for (let i = 0; i < text.length; i++) {
|
|
315
|
+
const ch = text.charCodeAt(i);
|
|
316
|
+
h1 = Math.imul(h1 ^ ch, 2654435761);
|
|
317
|
+
h2 = Math.imul(h2 ^ ch, 1597334677);
|
|
318
|
+
}
|
|
319
|
+
h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^ Math.imul(h2 ^ (h2 >>> 13), 3266489909);
|
|
320
|
+
h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^ Math.imul(h1 ^ (h1 >>> 13), 3266489909);
|
|
321
|
+
return (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString(16);
|
|
322
|
+
}
|
|
323
|
+
// --- Deleting cached results after an edit ---
|
|
324
|
+
/**
|
|
325
|
+
* Notes result-affecting edits made in this process before the base class applies the event.
|
|
326
|
+
* Only local saves and deletes count: every server's engine also hears about the edit, through
|
|
327
|
+
* the shared cache, but only the server that made it deletes the slots, so a fleet does not
|
|
328
|
+
* delete the same slots once per server while the others refill them.
|
|
329
|
+
*/
|
|
330
|
+
async HandleIndividualBaseEntityEvent(event) {
|
|
331
|
+
try {
|
|
332
|
+
this.trackDefinitionEdit(event);
|
|
333
|
+
}
|
|
334
|
+
catch (e) {
|
|
335
|
+
LogError(`QueryEngine: tracking a query edit failed: ${e instanceof Error ? e.message : String(e)}`);
|
|
336
|
+
}
|
|
337
|
+
return super.HandleIndividualBaseEntityEvent(event);
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Follows one save or delete of a query definition row. A save is judged when it starts, while
|
|
341
|
+
* the record still knows which columns are dirty, and acted on when it succeeds. A delete
|
|
342
|
+
* always counts. The slots of the affected query and of every query that composes it are then
|
|
343
|
+
* deleted once the edit settles (see {@link DefinitionEditSettleMs}). Deleting them is
|
|
344
|
+
* housekeeping: a read under the new definition already misses them (see
|
|
345
|
+
* {@link GetDefinitionSignature}).
|
|
346
|
+
*/
|
|
347
|
+
trackDefinitionEdit(event) {
|
|
348
|
+
const entity = event.baseEntity;
|
|
349
|
+
const columns = entity ? RESULT_AFFECTING_COLUMNS[entity.EntityInfo.Name.trim().toLowerCase()] : undefined;
|
|
350
|
+
if (!entity || !columns)
|
|
351
|
+
return;
|
|
352
|
+
if (event.type === 'save_started') {
|
|
353
|
+
if (QueryEngine_1.isResultAffectingSave(entity, columns)) {
|
|
354
|
+
this._resultAffectingSaves.add(entity);
|
|
355
|
+
}
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
if (event.type === 'save' && this._resultAffectingSaves.has(entity)) {
|
|
359
|
+
this._resultAffectingSaves.delete(entity);
|
|
360
|
+
this.invalidateAfterEdit(QueryEngine_1.editedQueryID(entity, undefined));
|
|
361
|
+
}
|
|
362
|
+
else if (event.type === 'delete') {
|
|
363
|
+
const payload = event.payload;
|
|
364
|
+
this.invalidateAfterEdit(QueryEngine_1.editedQueryID(entity, payload?.OldValues));
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
/** True for a create, or an update with any of `columns` dirty. */
|
|
368
|
+
static isResultAffectingSave(entity, columns) {
|
|
369
|
+
if (!entity.IsSaved || columns === 'all')
|
|
370
|
+
return true;
|
|
371
|
+
return columns.some(name => entity.GetFieldByName(name)?.Dirty === true);
|
|
372
|
+
}
|
|
373
|
+
/** The query a definition row belongs to: the row itself for a query, else its QueryID. */
|
|
374
|
+
static editedQueryID(entity, deletedValues) {
|
|
375
|
+
const isQuery = entity.EntityInfo.Name.trim().toLowerCase() === 'mj: queries';
|
|
376
|
+
const field = isQuery ? 'ID' : 'QueryID';
|
|
377
|
+
const value = deletedValues?.[field] ?? entity.GetFieldByName(field)?.Value;
|
|
378
|
+
return typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
379
|
+
}
|
|
380
|
+
/** Schedules slot deletion for `queryID` and every query that composes it, directly or not. */
|
|
381
|
+
invalidateAfterEdit(queryID) {
|
|
382
|
+
if (!queryID)
|
|
383
|
+
return;
|
|
384
|
+
for (const id of this.queryAndDependents(queryID)) {
|
|
385
|
+
this.scheduleSlotInvalidation(id);
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
/** `queryID` plus every query that reaches it through composition. Cycles end the walk. */
|
|
389
|
+
queryAndDependents(queryID) {
|
|
390
|
+
const dependents = this.definitionIndexes().DependentsByQuery;
|
|
391
|
+
const seen = new Set();
|
|
392
|
+
const result = [];
|
|
393
|
+
const pending = [queryID];
|
|
394
|
+
while (pending.length > 0) {
|
|
395
|
+
const id = pending.pop();
|
|
396
|
+
const key = id.trim().toLowerCase();
|
|
397
|
+
if (seen.has(key))
|
|
398
|
+
continue;
|
|
399
|
+
seen.add(key);
|
|
400
|
+
result.push(id);
|
|
401
|
+
for (const row of dependents.Get(id) ?? []) {
|
|
402
|
+
pending.push(row.QueryID);
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
return result;
|
|
406
|
+
}
|
|
407
|
+
/** (Re)starts the settle timer for one query's slot deletion. */
|
|
408
|
+
scheduleSlotInvalidation(queryID) {
|
|
409
|
+
const key = queryID.trim().toLowerCase();
|
|
410
|
+
const existing = this._pendingSlotInvalidations.get(key);
|
|
411
|
+
if (existing)
|
|
412
|
+
clearTimeout(existing);
|
|
413
|
+
const timer = setTimeout(() => {
|
|
414
|
+
this._pendingSlotInvalidations.delete(key);
|
|
415
|
+
void this.invalidateQuerySlots(queryID);
|
|
416
|
+
}, this.DefinitionEditSettleMs);
|
|
417
|
+
// A pending deletion must not keep a short-lived process (a CLI run) alive.
|
|
418
|
+
timer.unref?.();
|
|
419
|
+
this._pendingSlotInvalidations.set(key, timer);
|
|
420
|
+
}
|
|
421
|
+
/** Deletes one query's cached results. Never throws. */
|
|
422
|
+
async invalidateQuerySlots(queryID) {
|
|
423
|
+
try {
|
|
424
|
+
const cache = LocalCacheManager.Instance;
|
|
425
|
+
if (!cache.IsInitialized)
|
|
426
|
+
return;
|
|
427
|
+
const removed = await cache.InvalidateRunQueryResultsForQuery(queryID);
|
|
428
|
+
LogStatusEx({ message: `QueryEngine: deleted ${removed} cached result slot(s) of query ${queryID} after its definition changed`, verboseOnly: true });
|
|
429
|
+
}
|
|
430
|
+
catch (e) {
|
|
431
|
+
LogError(`QueryEngine: deleting cached results of query ${queryID} failed: ${e instanceof Error ? e.message : String(e)}`);
|
|
432
|
+
}
|
|
433
|
+
}
|
|
155
434
|
};
|
|
156
|
-
QueryEngine = __decorate([
|
|
435
|
+
QueryEngine = QueryEngine_1 = __decorate([
|
|
157
436
|
RegisterForStartup()
|
|
158
437
|
], QueryEngine);
|
|
159
438
|
export { QueryEngine };
|
|
@@ -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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"}
|