@memberjunction/core 6.1.4 → 6.2.0-edge.1
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/generic/JSONType-interfaces/IEntitySubtypeSelectorConfig.d.ts +14 -0
- package/dist/generic/JSONType-interfaces/IEntitySubtypeSelectorConfig.d.ts.map +1 -1
- package/dist/generic/JSONType-interfaces/IQueryConfiguration.d.ts +60 -0
- package/dist/generic/JSONType-interfaces/IQueryConfiguration.d.ts.map +1 -0
- package/dist/generic/JSONType-interfaces/IQueryConfiguration.js +6 -0
- package/dist/generic/JSONType-interfaces/IQueryConfiguration.js.map +1 -0
- package/dist/generic/QueryCache.d.ts +17 -0
- package/dist/generic/QueryCache.d.ts.map +1 -1
- package/dist/generic/QueryCache.js +25 -5
- package/dist/generic/QueryCache.js.map +1 -1
- package/dist/generic/RegisterForStartup.d.ts +5 -5
- package/dist/generic/RegisterForStartup.js +12 -12
- package/dist/generic/applicationInfo.d.ts +4 -2
- package/dist/generic/applicationInfo.d.ts.map +1 -1
- package/dist/generic/applicationInfo.js +13 -9
- package/dist/generic/applicationInfo.js.map +1 -1
- package/dist/generic/baseEngine.d.ts +16 -1
- package/dist/generic/baseEngine.d.ts.map +1 -1
- package/dist/generic/baseEngine.js +61 -20
- package/dist/generic/baseEngine.js.map +1 -1
- package/dist/generic/baseEngineRegistry.d.ts +22 -9
- package/dist/generic/baseEngineRegistry.d.ts.map +1 -1
- package/dist/generic/baseEngineRegistry.js +43 -25
- package/dist/generic/baseEngineRegistry.js.map +1 -1
- package/dist/generic/baseEntity.d.ts +232 -18
- package/dist/generic/baseEntity.d.ts.map +1 -1
- package/dist/generic/baseEntity.js +581 -113
- package/dist/generic/baseEntity.js.map +1 -1
- package/dist/generic/baseInfo.d.ts +12 -0
- package/dist/generic/baseInfo.d.ts.map +1 -1
- package/dist/generic/baseInfo.js +22 -1
- package/dist/generic/baseInfo.js.map +1 -1
- package/dist/generic/column-descriptors.d.ts +25 -5
- package/dist/generic/column-descriptors.d.ts.map +1 -1
- package/dist/generic/column-descriptors.js +45 -5
- package/dist/generic/column-descriptors.js.map +1 -1
- package/dist/generic/compositeKey.d.ts +1 -1
- package/dist/generic/compositeKey.js +2 -2
- package/dist/generic/data-table.js +2 -2
- package/dist/generic/data-table.js.map +1 -1
- package/dist/generic/databaseProviderBase.d.ts +7 -0
- package/dist/generic/databaseProviderBase.d.ts.map +1 -1
- package/dist/generic/databaseProviderBase.js +19 -4
- package/dist/generic/databaseProviderBase.js.map +1 -1
- package/dist/generic/entityInfo.d.ts +209 -38
- package/dist/generic/entityInfo.d.ts.map +1 -1
- package/dist/generic/entityInfo.js +362 -77
- package/dist/generic/entityInfo.js.map +1 -1
- package/dist/generic/entitySubtypeResolver.d.ts +51 -5
- package/dist/generic/entitySubtypeResolver.d.ts.map +1 -1
- package/dist/generic/entitySubtypeResolver.js +50 -3
- package/dist/generic/entitySubtypeResolver.js.map +1 -1
- package/dist/generic/filters/compositeFilter.d.ts +19 -19
- package/dist/generic/filters/compositeFilter.js +60 -60
- package/dist/generic/graphqlTypeNames.d.ts +6 -0
- package/dist/generic/graphqlTypeNames.d.ts.map +1 -1
- package/dist/generic/graphqlTypeNames.js +18 -6
- package/dist/generic/graphqlTypeNames.js.map +1 -1
- package/dist/generic/interfaces.d.ts +35 -1
- package/dist/generic/interfaces.d.ts.map +1 -1
- package/dist/generic/interfaces.js +3 -3
- package/dist/generic/interfaces.js.map +1 -1
- package/dist/generic/logging.d.ts +2 -0
- package/dist/generic/logging.d.ts.map +1 -1
- package/dist/generic/logging.js +7 -3
- package/dist/generic/logging.js.map +1 -1
- package/dist/generic/metadata.d.ts +1 -1
- package/dist/generic/metadata.js +3 -3
- package/dist/generic/providerBase.d.ts +35 -7
- package/dist/generic/providerBase.d.ts.map +1 -1
- package/dist/generic/providerBase.js +87 -27
- package/dist/generic/providerBase.js.map +1 -1
- package/dist/generic/queryInfo.d.ts +47 -0
- package/dist/generic/queryInfo.d.ts.map +1 -1
- package/dist/generic/queryInfo.js +76 -0
- package/dist/generic/queryInfo.js.map +1 -1
- package/dist/generic/queryInfoInterfaces.d.ts +6 -0
- package/dist/generic/queryInfoInterfaces.d.ts.map +1 -1
- package/dist/generic/queryResultEnricher.d.ts +2 -0
- package/dist/generic/queryResultEnricher.d.ts.map +1 -1
- package/dist/generic/queryResultEnricher.js +5 -1
- package/dist/generic/queryResultEnricher.js.map +1 -1
- package/dist/generic/querySQLFilters.d.ts +4 -0
- package/dist/generic/querySQLFilters.d.ts.map +1 -1
- package/dist/generic/querySQLFilters.js +10 -2
- package/dist/generic/querySQLFilters.js.map +1 -1
- package/dist/generic/relatedRecordCollection.d.ts +2 -0
- package/dist/generic/relatedRecordCollection.d.ts.map +1 -1
- package/dist/generic/relatedRecordCollection.js +5 -1
- package/dist/generic/relatedRecordCollection.js.map +1 -1
- package/dist/generic/remoteOperationDispatch.d.ts +2 -0
- package/dist/generic/remoteOperationDispatch.d.ts.map +1 -1
- package/dist/generic/remoteOperationDispatch.js +5 -1
- package/dist/generic/remoteOperationDispatch.js.map +1 -1
- package/dist/generic/runQuerySQLFilterImplementations.d.ts +8 -0
- package/dist/generic/runQuerySQLFilterImplementations.d.ts.map +1 -1
- package/dist/generic/runQuerySQLFilterImplementations.js +20 -4
- package/dist/generic/runQuerySQLFilterImplementations.js.map +1 -1
- package/dist/generic/schemaHydration.d.ts +8 -0
- package/dist/generic/schemaHydration.d.ts.map +1 -1
- package/dist/generic/schemaHydration.js +21 -5
- package/dist/generic/schemaHydration.js.map +1 -1
- package/dist/generic/securityInfo.d.ts +11 -9
- package/dist/generic/securityInfo.d.ts.map +1 -1
- package/dist/generic/securityInfo.js +31 -27
- package/dist/generic/securityInfo.js.map +1 -1
- package/dist/generic/telemetryManager.d.ts +16 -0
- package/dist/generic/telemetryManager.d.ts.map +1 -1
- package/dist/generic/telemetryManager.js +52 -20
- package/dist/generic/telemetryManager.js.map +1 -1
- package/dist/generic/transactionGroup.d.ts +1 -1
- package/dist/generic/transactionGroup.js +4 -4
- package/dist/generic/transactionGroup.js.map +1 -1
- package/dist/generic/util.d.ts +22 -0
- package/dist/generic/util.d.ts.map +1 -1
- package/dist/generic/util.js +33 -0
- package/dist/generic/util.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/dist/views/viewInfo.d.ts +2 -2
- package/dist/views/viewInfo.js +13 -13
- package/dist/views/viewInfo.js.map +1 -1
- package/package.json +3 -3
|
@@ -23,5 +23,19 @@ export interface IEntitySubtypeSelectorConfig {
|
|
|
23
23
|
* reading the target subtype entity name.
|
|
24
24
|
*/
|
|
25
25
|
Path: string;
|
|
26
|
+
/**
|
|
27
|
+
* Whether `BaseEntity` also walks {@link Path} for a record it LOADS, not only for one it creates,
|
|
28
|
+
* so the load can fetch the named child's row directly instead of first querying every child's
|
|
29
|
+
* table. Optional; `false` or absent keeps loads as they were, with the discovery query.
|
|
30
|
+
*
|
|
31
|
+
* On load, only hops that a loaded `BaseEngine` holds as entity objects are walked. A hop that
|
|
32
|
+
* isn't cached gives no hint, never a query. Turn it on when records of a subtyped type have
|
|
33
|
+
* their subtype row: a record whose type names a child it has no row for costs one extra round
|
|
34
|
+
* trip per load.
|
|
35
|
+
*
|
|
36
|
+
* Ignored while an `EntitySubtypeResolver` is registered for the entity: the resolver owns the
|
|
37
|
+
* rule, and gives load hints by overriding its `ResolveLoadHint` method.
|
|
38
|
+
*/
|
|
39
|
+
UseForLoadedRecords?: boolean;
|
|
26
40
|
}
|
|
27
41
|
//# sourceMappingURL=IEntitySubtypeSelectorConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IEntitySubtypeSelectorConfig.d.ts","sourceRoot":"","sources":["../../../src/generic/JSONType-interfaces/IEntitySubtypeSelectorConfig.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,WAAW,4BAA4B;IACzC;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"IEntitySubtypeSelectorConfig.d.ts","sourceRoot":"","sources":["../../../src/generic/JSONType-interfaces/IEntitySubtypeSelectorConfig.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,WAAW,4BAA4B;IACzC;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AUTO-COPIED FROM metadata/entities/JSONType-interfaces/IQueryConfiguration.ts
|
|
3
|
+
* DO NOT EDIT DIRECTLY. Run `pnpm run build` in MJCore to refresh.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Optional per-query configuration bag.
|
|
7
|
+
*
|
|
8
|
+
* Stored as JSON in `MJ: Queries.Configuration`. CodeGen emits a typed
|
|
9
|
+
* `ConfigurationObject` accessor on `MJQueryEntity` that returns
|
|
10
|
+
* `IQueryConfiguration | null`.
|
|
11
|
+
*
|
|
12
|
+
* Expand by adding a property here — no schema migration. Anything the engine
|
|
13
|
+
* filters, sorts, or joins on stays a column on `Query`. Semantic layer options,
|
|
14
|
+
* execution logging policies, and AI agent bounds belong in this bag.
|
|
15
|
+
*/
|
|
16
|
+
export interface IQueryConfiguration {
|
|
17
|
+
/**
|
|
18
|
+
* Relative ranking / ground-truth priority for semantic query selection (1-100).
|
|
19
|
+
* High values (e.g. 90-100) mark authoritative, enterprise-certified ground truth queries
|
|
20
|
+
* that should be preferred when multiple similar queries match an agent's request.
|
|
21
|
+
* Default: 50.
|
|
22
|
+
*/
|
|
23
|
+
Priority?: number;
|
|
24
|
+
/**
|
|
25
|
+
* Controls execution logging for this query.
|
|
26
|
+
* When true (default), executions are logged to `MJ: Query Execution Logs`.
|
|
27
|
+
* Set to false to opt out of execution logging (useful for high-frequency health checks,
|
|
28
|
+
* internal pollers, or sensitive data queries).
|
|
29
|
+
* Default: true.
|
|
30
|
+
*/
|
|
31
|
+
LogExecution?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Explicit flag indicating this query is an enterprise ground-truth / canonical query
|
|
34
|
+
* for its domain or question type. Agents can filter or prioritize canonical queries.
|
|
35
|
+
* Default: false.
|
|
36
|
+
*/
|
|
37
|
+
IsCanonical?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Alternative questions, natural language phrasings, and query aliases.
|
|
40
|
+
* Included in composite embeddings and semantic search indexing to boost vector recall
|
|
41
|
+
* across varied phrasing without diluting the primary description.
|
|
42
|
+
*/
|
|
43
|
+
AlternativeQuestions?: string[];
|
|
44
|
+
/**
|
|
45
|
+
* Usage guidance for AI agents and callers. Provides prescriptive context on when
|
|
46
|
+
* this query should be chosen and how its results should be interpreted.
|
|
47
|
+
*/
|
|
48
|
+
UsageGuidance?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Explicit negative bounding / anti-patterns for AI agents.
|
|
51
|
+
* E.g. "Do NOT use for unbilled orders; use 'Unbilled Orders by Region' instead."
|
|
52
|
+
*/
|
|
53
|
+
WhenNotToUse?: string;
|
|
54
|
+
/**
|
|
55
|
+
* Operational domain or persona scopes where this query applies
|
|
56
|
+
* (e.g. ['Sales', 'Finance', 'Executive']).
|
|
57
|
+
*/
|
|
58
|
+
DomainScope?: string[];
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=IQueryConfiguration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IQueryConfiguration.d.ts","sourceRoot":"","sources":["../../../src/generic/JSONType-interfaces/IQueryConfiguration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAmB;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IQueryConfiguration.js","sourceRoot":"","sources":["../../../src/generic/JSONType-interfaces/IQueryConfiguration.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -47,6 +47,8 @@ export declare class QueryCache {
|
|
|
47
47
|
* @param config - Cache configuration settings
|
|
48
48
|
* @returns The cached entry if valid, null otherwise
|
|
49
49
|
*/
|
|
50
|
+
Get(queryId: string, params: Record<string, unknown>, config: QueryCacheConfig): QueryCacheEntry | null;
|
|
51
|
+
/** @deprecated Use {@link Get}. */
|
|
50
52
|
get(queryId: string, params: Record<string, unknown>, config: QueryCacheConfig): QueryCacheEntry | null;
|
|
51
53
|
/**
|
|
52
54
|
* Cache query results with TTL and LRU eviction.
|
|
@@ -57,6 +59,8 @@ export declare class QueryCache {
|
|
|
57
59
|
* @param results - The query results to cache
|
|
58
60
|
* @param config - Cache configuration settings
|
|
59
61
|
*/
|
|
62
|
+
Set(queryId: string, params: Record<string, unknown>, results: unknown[], config: QueryCacheConfig): void;
|
|
63
|
+
/** @deprecated Use {@link Set}. */
|
|
60
64
|
set(queryId: string, params: Record<string, unknown>, results: unknown[], config: QueryCacheConfig): void;
|
|
61
65
|
/**
|
|
62
66
|
* Get cached results for a specific page of a paged query.
|
|
@@ -81,6 +85,8 @@ export declare class QueryCache {
|
|
|
81
85
|
*
|
|
82
86
|
* @param queryId - Optional query ID to clear specific query cache
|
|
83
87
|
*/
|
|
88
|
+
Clear(queryId?: string): void;
|
|
89
|
+
/** @deprecated Use {@link Clear}. */
|
|
84
90
|
clear(queryId?: string): void;
|
|
85
91
|
/**
|
|
86
92
|
* Update the access order for LRU tracking.
|
|
@@ -100,6 +106,15 @@ export declare class QueryCache {
|
|
|
100
106
|
*
|
|
101
107
|
* @returns Object containing cache performance metrics
|
|
102
108
|
*/
|
|
109
|
+
GetStats(): {
|
|
110
|
+
size: number;
|
|
111
|
+
hits: number;
|
|
112
|
+
misses: number;
|
|
113
|
+
hitRate: number;
|
|
114
|
+
evictions: number;
|
|
115
|
+
expirations: number;
|
|
116
|
+
};
|
|
117
|
+
/** @deprecated Use {@link GetStats}. */
|
|
103
118
|
getStats(): {
|
|
104
119
|
size: number;
|
|
105
120
|
hits: number;
|
|
@@ -114,6 +129,8 @@ export declare class QueryCache {
|
|
|
114
129
|
*
|
|
115
130
|
* @returns Number of expired entries removed
|
|
116
131
|
*/
|
|
132
|
+
CleanupExpired(): number;
|
|
133
|
+
/** @deprecated Use {@link CleanupExpired}. */
|
|
117
134
|
cleanupExpired(): number;
|
|
118
135
|
}
|
|
119
136
|
//# sourceMappingURL=QueryCache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryCache.d.ts","sourceRoot":"","sources":["../../src/generic/QueryCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAYvE;;;;;;;;;GASG;AACH,qBAAa,UAAU;IACnB,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,UAAU,CAAsC;IACxD,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAM;IAE1C;;OAEG;IACH,OAAO,CAAC,KAAK,CAKX;IAEF;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAYnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;;OAGG;IACH,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIjD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IASxB;;;;;;;;OAQG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,gBAAgB,GAAG,eAAe,GAAG,IAAI;IA+BvG;;;;;;;;OAQG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"QueryCache.d.ts","sourceRoot":"","sources":["../../src/generic/QueryCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,7 +79,7 @@ export class QueryCache {
|
|
|
79
79
|
* @param config - Cache configuration settings
|
|
80
80
|
* @returns The cached entry if valid, null otherwise
|
|
81
81
|
*/
|
|
82
|
-
|
|
82
|
+
Get(queryId, params, config) {
|
|
83
83
|
if (!config.enabled)
|
|
84
84
|
return null;
|
|
85
85
|
const key = this.getCacheKey(queryId, params);
|
|
@@ -104,6 +104,10 @@ export class QueryCache {
|
|
|
104
104
|
this.stats.hits++;
|
|
105
105
|
return entry;
|
|
106
106
|
}
|
|
107
|
+
/** @deprecated Use {@link Get}. */
|
|
108
|
+
get(queryId, params, config) {
|
|
109
|
+
return this.Get(queryId, params, config);
|
|
110
|
+
}
|
|
107
111
|
/**
|
|
108
112
|
* Cache query results with TTL and LRU eviction.
|
|
109
113
|
* Evicts least recently used entries when at capacity.
|
|
@@ -113,7 +117,7 @@ export class QueryCache {
|
|
|
113
117
|
* @param results - The query results to cache
|
|
114
118
|
* @param config - Cache configuration settings
|
|
115
119
|
*/
|
|
116
|
-
|
|
120
|
+
Set(queryId, params, results, config) {
|
|
117
121
|
if (!config.enabled)
|
|
118
122
|
return;
|
|
119
123
|
const key = this.getCacheKey(queryId, params);
|
|
@@ -138,6 +142,10 @@ export class QueryCache {
|
|
|
138
142
|
this.cache.set(key, entry);
|
|
139
143
|
this.updateAccessOrder(key);
|
|
140
144
|
}
|
|
145
|
+
/** @deprecated Use {@link Set}. */
|
|
146
|
+
set(queryId, params, results, config) {
|
|
147
|
+
return this.Set(queryId, params, results, config);
|
|
148
|
+
}
|
|
141
149
|
// ────────────────────────────────────────────────────────────────────────
|
|
142
150
|
// Paged cache methods
|
|
143
151
|
// ────────────────────────────────────────────────────────────────────────
|
|
@@ -231,7 +239,7 @@ export class QueryCache {
|
|
|
231
239
|
*
|
|
232
240
|
* @param queryId - Optional query ID to clear specific query cache
|
|
233
241
|
*/
|
|
234
|
-
|
|
242
|
+
Clear(queryId) {
|
|
235
243
|
if (queryId) {
|
|
236
244
|
// Clear all data entries for specific query
|
|
237
245
|
const keysToDelete = Array.from(this.cache.keys())
|
|
@@ -256,6 +264,10 @@ export class QueryCache {
|
|
|
256
264
|
LogStatus(`Cleared entire query cache (${size} data + ${countSize} count entries)`);
|
|
257
265
|
}
|
|
258
266
|
}
|
|
267
|
+
/** @deprecated Use {@link Clear}. */
|
|
268
|
+
clear(queryId) {
|
|
269
|
+
return this.Clear(queryId);
|
|
270
|
+
}
|
|
259
271
|
/**
|
|
260
272
|
* Update the access order for LRU tracking.
|
|
261
273
|
* Moves the accessed key to the end of the array (most recently used).
|
|
@@ -285,7 +297,7 @@ export class QueryCache {
|
|
|
285
297
|
*
|
|
286
298
|
* @returns Object containing cache performance metrics
|
|
287
299
|
*/
|
|
288
|
-
|
|
300
|
+
GetStats() {
|
|
289
301
|
const total = this.stats.hits + this.stats.misses;
|
|
290
302
|
const hitRate = total > 0 ? this.stats.hits / total : 0;
|
|
291
303
|
return {
|
|
@@ -297,13 +309,17 @@ export class QueryCache {
|
|
|
297
309
|
expirations: this.stats.expirations
|
|
298
310
|
};
|
|
299
311
|
}
|
|
312
|
+
/** @deprecated Use {@link GetStats}. */
|
|
313
|
+
getStats() {
|
|
314
|
+
return this.GetStats();
|
|
315
|
+
}
|
|
300
316
|
/**
|
|
301
317
|
* Clean up expired entries from the cache.
|
|
302
318
|
* This can be called periodically to free up memory.
|
|
303
319
|
*
|
|
304
320
|
* @returns Number of expired entries removed
|
|
305
321
|
*/
|
|
306
|
-
|
|
322
|
+
CleanupExpired() {
|
|
307
323
|
const now = Date.now();
|
|
308
324
|
let cleaned = 0;
|
|
309
325
|
for (const [key, entry] of this.cache.entries()) {
|
|
@@ -324,5 +340,9 @@ export class QueryCache {
|
|
|
324
340
|
}
|
|
325
341
|
return cleaned;
|
|
326
342
|
}
|
|
343
|
+
/** @deprecated Use {@link CleanupExpired}. */
|
|
344
|
+
cleanupExpired() {
|
|
345
|
+
return this.CleanupExpired();
|
|
346
|
+
}
|
|
327
347
|
}
|
|
328
348
|
//# sourceMappingURL=QueryCache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryCache.js","sourceRoot":"","sources":["../../src/generic/QueryCache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAWtC;;;;;;;;;GASG;AACH,MAAM,OAAO,UAAU;IAAvB;QACY,UAAK,GAAG,IAAI,GAAG,EAA2B,CAAC;QAC3C,eAAU,GAAG,IAAI,GAAG,EAA2B,CAAC;QAChD,gBAAW,GAAa,EAAE,CAAC;QAClB,qBAAgB,GAAG,IAAI,CAAC;QACxB,wBAAmB,GAAG,EAAE,CAAC;QAE1C;;WAEG;QACK,UAAK,GAAG;YACZ,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;SACjB,CAAC;
|
|
1
|
+
{"version":3,"file":"QueryCache.js","sourceRoot":"","sources":["../../src/generic/QueryCache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAWtC;;;;;;;;;GASG;AACH,MAAM,OAAO,UAAU;IAAvB;QACY,UAAK,GAAG,IAAI,GAAG,EAA2B,CAAC;QAC3C,eAAU,GAAG,IAAI,GAAG,EAA2B,CAAC;QAChD,gBAAW,GAAa,EAAE,CAAC;QAClB,qBAAgB,GAAG,IAAI,CAAC;QACxB,wBAAmB,GAAG,EAAE,CAAC;QAE1C;;WAEG;QACK,UAAK,GAAG;YACZ,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;SACjB,CAAC;IAoYN,CAAC;IAlYG;;;;OAIG;IACK,WAAW,CAAC,OAAe,EAAE,MAA+B,EAAE,QAAiB,EAAE,OAAgB;QACrG,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAChE,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,GAAG,CAAC;QACf,CAAC,EAAE,EAA6B,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,GAAG,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1D,IAAI,QAAQ,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YACtC,OAAO,GAAG,IAAI,SAAS,QAAQ,IAAI,OAAO,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,OAAe,EAAE,MAA+B;QACrE,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAChE,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,GAAG,CAAC;QACf,CAAC,EAAE,EAA6B,CAAC,CAAC;QAClC,OAAO,GAAG,OAAO,UAAU,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,qBAAqB,CAAC,GAAW;QACpC,OAAO,SAAS,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;IAChD,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,SAAS,CAAC,KAAa;QAClC,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,mBAAmB;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,4BAA4B;QAClE,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;;;OAQG;IACH,GAAG,CAAC,OAAe,EAAE,MAA+B,EAAE,MAAwB;QAC1E,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAEjC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAEpE,IAAI,GAAG,GAAG,UAAU,EAAE,CAAC;YACnB,oBAAoB;YACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC5B,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAElB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,mCAAmC;IACnC,GAAG,CAAC,OAAe,EAAE,MAA+B,EAAE,MAAwB;QAC1E,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;OAQG;IACH,GAAG,CAAC,OAAe,EAAE,MAA+B,EAAE,OAAkB,EAAE,MAAwB;QAC9F,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QAE5B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,CAAC;QAE7D,mCAAmC;QACnC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACxC,IAAI,MAAM,EAAE,CAAC;gBACT,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC1B,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBACvB,SAAS,CAAC,6CAA6C,MAAM,EAAE,CAAC,CAAC;YACrE,CAAC;QACL,CAAC;QAED,MAAM,KAAK,GAAoB;YAC3B,OAAO;YACP,UAAU,EAAE,MAAiC;YAC7C,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,mBAAmB;YACzD,QAAQ,EAAE,CAAC;SACd,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,mCAAmC;IACnC,GAAG,CAAC,OAAe,EAAE,MAA+B,EAAE,OAAkB,EAAE,MAAwB;QAC9F,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,2EAA2E;IAC3E,sBAAsB;IACtB,2EAA2E;IAE3E;;;OAGG;IACH,QAAQ,CACJ,OAAe,EACf,MAA+B,EAC/B,QAAgB,EAChB,OAAe,EACf,MAAwB;QAExB,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAEjC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC5B,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,QAAQ,CACJ,OAAe,EACf,MAA+B,EAC/B,QAAgB,EAChB,OAAe,EACf,OAAkB,EAClB,MAAwB;QAExB,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QAE5B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,CAAC;QAE7D,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACxC,IAAI,MAAM,EAAE,CAAC;gBACT,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC1B,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YAC3B,CAAC;QACL,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAChB,OAAO;YACP,UAAU,EAAE,MAAM;YAClB,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,mBAAmB;YACzD,QAAQ,EAAE,CAAC;SACd,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,2EAA2E;IAC3E,qEAAqE;IACrE,uBAAuB;IACvB,2EAA2E;IAE3E;;;OAGG;IACH,gBAAgB,CAAC,OAAe,EAAE,MAA+B,EAAE,MAAwB;QACvF,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAEjC,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,KAAK,CAAC,KAAK,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,OAAe,EAAE,MAA+B,EAAE,KAAa,EAAE,MAAwB;QACtG,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QAE5B,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE;YACrB,KAAK;YACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,mBAAmB;SAC5D,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAgB;QAClB,IAAI,OAAO,EAAE,CAAC;YACV,4CAA4C;YAC5C,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;iBAC7C,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC;YAClD,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACvB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACvB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YAEH,yCAAyC;YACzC,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;iBACvD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC;YAClD,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAE9D,SAAS,CAAC,WAAW,YAAY,CAAC,MAAM,WAAW,iBAAiB,CAAC,MAAM,kCAAkC,OAAO,EAAE,CAAC,CAAC;QAC5H,CAAC;aAAM,CAAC;YACJ,qBAAqB;YACrB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,SAAS,CAAC,+BAA+B,IAAI,WAAW,SAAS,iBAAiB,CAAC,CAAC;QACxF,CAAC;IACL,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,OAAgB;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACK,iBAAiB,CAAC,GAAW;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACK,qBAAqB,CAAC,GAAW;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,QAAQ;QAQJ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAClD,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAExD,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACzB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG;YACxC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;SACtC,CAAC;IACN,CAAC;IAED,wCAAwC;IACxC,QAAQ;QAQJ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACH,cAAc;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9C,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACzD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACvB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;gBAChC,OAAO,EAAE,CAAC;YACd,CAAC;QACL,CAAC;QAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;YACnD,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACzD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC5B,OAAO,EAAE,CAAC;YACd,CAAC;QACL,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YACd,SAAS,CAAC,cAAc,OAAO,wBAAwB,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,8CAA8C;IAC9C,cAAc;QACV,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;IACjC,CAAC;CACJ"}
|
|
@@ -299,14 +299,14 @@ export declare class StartupManager extends BaseSingleton<StartupManager> {
|
|
|
299
299
|
/**
|
|
300
300
|
* Internal method that performs the actual startup loading work.
|
|
301
301
|
*/
|
|
302
|
-
private
|
|
302
|
+
private executeLoad;
|
|
303
303
|
/**
|
|
304
304
|
* Completes a 'task'-mode startup: no registered engines execute (sync or
|
|
305
305
|
* deferred); each lazy-loads on first touch via its own Config()/EnsureLoaded().
|
|
306
306
|
* Marks startup completed so idempotency semantics match 'full' mode — the
|
|
307
307
|
* result is cached and repeat Startup() calls return it without re-running.
|
|
308
308
|
*/
|
|
309
|
-
private
|
|
309
|
+
private completeTaskModeLoad;
|
|
310
310
|
/**
|
|
311
311
|
* Fires HandleStartup() for each deferred registration in parallel without
|
|
312
312
|
* awaiting. Logs per-engine completion / failure so the dev console shows
|
|
@@ -314,15 +314,15 @@ export declare class StartupManager extends BaseSingleton<StartupManager> {
|
|
|
314
314
|
* configured severity but never propagate — the app boot has already
|
|
315
315
|
* returned by the time this runs.
|
|
316
316
|
*/
|
|
317
|
-
private
|
|
317
|
+
private kickOffDeferredEngines;
|
|
318
318
|
/**
|
|
319
319
|
* Resolve the priority from options, defaulting to 100 if not specified.
|
|
320
320
|
*/
|
|
321
|
-
private
|
|
321
|
+
private resolvePriority;
|
|
322
322
|
/**
|
|
323
323
|
* Group registrations by their priority for parallel loading within priority levels.
|
|
324
324
|
*/
|
|
325
|
-
private
|
|
325
|
+
private groupByPriority;
|
|
326
326
|
/**
|
|
327
327
|
* Reset startup registrations. Use with caution, primarily for testing.
|
|
328
328
|
*/
|
|
@@ -143,8 +143,8 @@ export class StartupManager extends BaseSingleton {
|
|
|
143
143
|
*/
|
|
144
144
|
GetRegistrations() {
|
|
145
145
|
return [...this._registrations].sort((a, b) => {
|
|
146
|
-
const priorityA = this.
|
|
147
|
-
const priorityB = this.
|
|
146
|
+
const priorityA = this.resolvePriority(a.options);
|
|
147
|
+
const priorityB = this.resolvePriority(b.options);
|
|
148
148
|
return priorityA - priorityB;
|
|
149
149
|
});
|
|
150
150
|
}
|
|
@@ -189,7 +189,7 @@ export class StartupManager extends BaseSingleton {
|
|
|
189
189
|
this._lastResult = null;
|
|
190
190
|
}
|
|
191
191
|
// Start loading and store the promise so other callers can await it
|
|
192
|
-
this._loadPromise = this.
|
|
192
|
+
this._loadPromise = this.executeLoad(contextUser, provider, options);
|
|
193
193
|
try {
|
|
194
194
|
this._lastResult = await this._loadPromise;
|
|
195
195
|
return this._lastResult;
|
|
@@ -202,7 +202,7 @@ export class StartupManager extends BaseSingleton {
|
|
|
202
202
|
/**
|
|
203
203
|
* Internal method that performs the actual startup loading work.
|
|
204
204
|
*/
|
|
205
|
-
async
|
|
205
|
+
async executeLoad(contextUser, provider, options) {
|
|
206
206
|
// first, init the LocalCacheManager and await its completion — this is
|
|
207
207
|
// provider infrastructure and runs in BOTH startup modes
|
|
208
208
|
// Get the storage provider from the metadata provider (uses IndexedDB)
|
|
@@ -214,7 +214,7 @@ export class StartupManager extends BaseSingleton {
|
|
|
214
214
|
const allRegistrations = this.GetRegistrations();
|
|
215
215
|
const mode = options?.mode ?? 'full';
|
|
216
216
|
if (mode === 'task') {
|
|
217
|
-
return this.
|
|
217
|
+
return this.completeTaskModeLoad(allRegistrations, startTime);
|
|
218
218
|
}
|
|
219
219
|
const activeRegistrations = options?.engineFilter
|
|
220
220
|
? allRegistrations.filter(options.engineFilter)
|
|
@@ -226,7 +226,7 @@ export class StartupManager extends BaseSingleton {
|
|
|
226
226
|
// GraphQL coalesce window.
|
|
227
227
|
const syncRegistrations = activeRegistrations.filter(r => !r.options.deferred);
|
|
228
228
|
const deferredRegistrations = activeRegistrations.filter(r => r.options.deferred);
|
|
229
|
-
const groups = this.
|
|
229
|
+
const groups = this.groupByPriority(syncRegistrations);
|
|
230
230
|
const results = [];
|
|
231
231
|
for (const group of groups) {
|
|
232
232
|
const groupResults = await Promise.all(group.map(async (reg) => {
|
|
@@ -288,7 +288,7 @@ export class StartupManager extends BaseSingleton {
|
|
|
288
288
|
// its own .EnsureLoaded() call which dedupes against the in-flight load
|
|
289
289
|
// (BaseEngine._loadingSubject handles concurrent callers).
|
|
290
290
|
if (deferredRegistrations.length > 0) {
|
|
291
|
-
this.
|
|
291
|
+
this.kickOffDeferredEngines(deferredRegistrations, contextUser, provider);
|
|
292
292
|
}
|
|
293
293
|
return {
|
|
294
294
|
success: results.every(r => r.success || r.severity !== 'fatal'),
|
|
@@ -302,7 +302,7 @@ export class StartupManager extends BaseSingleton {
|
|
|
302
302
|
* Marks startup completed so idempotency semantics match 'full' mode — the
|
|
303
303
|
* result is cached and repeat Startup() calls return it without re-running.
|
|
304
304
|
*/
|
|
305
|
-
|
|
305
|
+
completeTaskModeLoad(registrations, startTime) {
|
|
306
306
|
this._loadCompleted = true;
|
|
307
307
|
// One non-verbose line so a slow first AI call is never a debugging mystery
|
|
308
308
|
LogStatus(`MJ startup: task mode — engine pre-warm skipped (${registrations.length} engine(s) deferred to first use)`);
|
|
@@ -323,7 +323,7 @@ export class StartupManager extends BaseSingleton {
|
|
|
323
323
|
* configured severity but never propagate — the app boot has already
|
|
324
324
|
* returned by the time this runs.
|
|
325
325
|
*/
|
|
326
|
-
|
|
326
|
+
kickOffDeferredEngines(registrations, contextUser, provider) {
|
|
327
327
|
const names = registrations.map(r => r.constructor.name).join(', ');
|
|
328
328
|
LogStatusEx({ message: `[StartupManager] Kicking off ${registrations.length} deferred engine(s) in background: [${names}]`, verboseOnly: true });
|
|
329
329
|
for (const reg of registrations) {
|
|
@@ -358,16 +358,16 @@ export class StartupManager extends BaseSingleton {
|
|
|
358
358
|
/**
|
|
359
359
|
* Resolve the priority from options, defaulting to 100 if not specified.
|
|
360
360
|
*/
|
|
361
|
-
|
|
361
|
+
resolvePriority(options) {
|
|
362
362
|
return options.priority ?? 100;
|
|
363
363
|
}
|
|
364
364
|
/**
|
|
365
365
|
* Group registrations by their priority for parallel loading within priority levels.
|
|
366
366
|
*/
|
|
367
|
-
|
|
367
|
+
groupByPriority(registrations) {
|
|
368
368
|
const groups = new Map();
|
|
369
369
|
for (const reg of registrations) {
|
|
370
|
-
const priority = this.
|
|
370
|
+
const priority = this.resolvePriority(reg.options);
|
|
371
371
|
if (!groups.has(priority)) {
|
|
372
372
|
groups.set(priority, []);
|
|
373
373
|
}
|
|
@@ -89,6 +89,8 @@ export declare class ApplicationEntityInfo extends BaseInfo {
|
|
|
89
89
|
* @returns {EntityInfo} The entity information object
|
|
90
90
|
*/
|
|
91
91
|
get EntityInfo(): EntityInfo;
|
|
92
|
+
SetEntity(entity: EntityInfo): void;
|
|
93
|
+
/** @deprecated Use {@link SetEntity}. */
|
|
92
94
|
_setEntity(entity: EntityInfo): void;
|
|
93
95
|
constructor(initData?: any);
|
|
94
96
|
}
|
|
@@ -180,13 +182,13 @@ export declare class ApplicationInfo extends BaseInfo {
|
|
|
180
182
|
* Set to false to manually control the Path value. Defaults to true for new applications.
|
|
181
183
|
*/
|
|
182
184
|
AutoUpdatePath: boolean;
|
|
183
|
-
private
|
|
185
|
+
private _applicationEntities;
|
|
184
186
|
/**
|
|
185
187
|
* Gets the list of entities that belong to this application with their display sequence.
|
|
186
188
|
* @returns {ApplicationEntityInfo[]} Array of application entity mappings
|
|
187
189
|
*/
|
|
188
190
|
get ApplicationEntities(): ApplicationEntityInfo[];
|
|
189
|
-
private
|
|
191
|
+
private _applicationSettings;
|
|
190
192
|
/**
|
|
191
193
|
* Gets the configuration settings for this application.
|
|
192
194
|
* @returns {ApplicationSettingInfo[]} Array of key-value settings
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applicationInfo.d.ts","sourceRoot":"","sources":["../../src/generic/applicationInfo.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"applicationInfo.d.ts","sourceRoot":"","sources":["../../src/generic/applicationInfo.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,9 +47,13 @@ export class ApplicationEntityInfo extends BaseInfo {
|
|
|
47
47
|
get EntityInfo() {
|
|
48
48
|
return this._EntityInfo;
|
|
49
49
|
}
|
|
50
|
-
|
|
50
|
+
SetEntity(entity) {
|
|
51
51
|
this._EntityInfo = entity;
|
|
52
52
|
}
|
|
53
|
+
/** @deprecated Use {@link SetEntity}. */
|
|
54
|
+
_setEntity(entity) {
|
|
55
|
+
return this.SetEntity(entity);
|
|
56
|
+
}
|
|
53
57
|
constructor(initData = null) {
|
|
54
58
|
super();
|
|
55
59
|
/**
|
|
@@ -96,7 +100,7 @@ export class ApplicationEntityInfo extends BaseInfo {
|
|
|
96
100
|
* Code-friendly name of the entity's base table
|
|
97
101
|
*/
|
|
98
102
|
this.EntityBaseTableCodeName = null;
|
|
99
|
-
this._EntityInfo = null;
|
|
103
|
+
this._EntityInfo = null; // case-violation-ok-legacy-back-compat: a class in the same hierarchy already declares the camelCase name — TypeScript rejects two declarations of one private property (TS2415)
|
|
100
104
|
this.copyInitData(initData);
|
|
101
105
|
}
|
|
102
106
|
}
|
|
@@ -110,14 +114,14 @@ export class ApplicationInfo extends BaseInfo {
|
|
|
110
114
|
* @returns {ApplicationEntityInfo[]} Array of application entity mappings
|
|
111
115
|
*/
|
|
112
116
|
get ApplicationEntities() {
|
|
113
|
-
return this.
|
|
117
|
+
return this._applicationEntities;
|
|
114
118
|
}
|
|
115
119
|
/**
|
|
116
120
|
* Gets the configuration settings for this application.
|
|
117
121
|
* @returns {ApplicationSettingInfo[]} Array of key-value settings
|
|
118
122
|
*/
|
|
119
123
|
get ApplicationSettings() {
|
|
120
|
-
return this.
|
|
124
|
+
return this._applicationSettings;
|
|
121
125
|
}
|
|
122
126
|
constructor(initData = null, md) {
|
|
123
127
|
super();
|
|
@@ -204,16 +208,16 @@ export class ApplicationInfo extends BaseInfo {
|
|
|
204
208
|
* Set to false to manually control the Path value. Defaults to true for new applications.
|
|
205
209
|
*/
|
|
206
210
|
this.AutoUpdatePath = true;
|
|
207
|
-
this.
|
|
208
|
-
this.
|
|
211
|
+
this._applicationEntities = [];
|
|
212
|
+
this._applicationSettings = [];
|
|
209
213
|
this.copyInitData(initData);
|
|
210
214
|
if (initData) {
|
|
211
215
|
let ae = initData.ApplicationEntities || initData._ApplicationEntities;
|
|
212
216
|
if (ae) {
|
|
213
|
-
this.
|
|
217
|
+
this._applicationEntities = [];
|
|
214
218
|
for (let i = 0; i < ae.length; i++) {
|
|
215
219
|
const aei = new ApplicationEntityInfo(ae[i]);
|
|
216
|
-
this.
|
|
220
|
+
this._applicationEntities.push(aei);
|
|
217
221
|
const match = md.EntityByID(ae[i].EntityID);
|
|
218
222
|
if (match)
|
|
219
223
|
aei._setEntity(match);
|
|
@@ -221,7 +225,7 @@ export class ApplicationInfo extends BaseInfo {
|
|
|
221
225
|
}
|
|
222
226
|
let as = initData.ApplicationSettings || initData._ApplicationSettings;
|
|
223
227
|
if (as)
|
|
224
|
-
this.
|
|
228
|
+
this._applicationSettings = as.map(s => new ApplicationSettingInfo(s));
|
|
225
229
|
}
|
|
226
230
|
}
|
|
227
231
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applicationInfo.js","sourceRoot":"","sources":["../../src/generic/applicationInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAKrC;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,QAAQ;IAoChD,YAAa,WAAgB,IAAI;QAC7B,KAAK,EAAE,CAAA;QApCX;;WAEG;QACH,OAAE,GAAW,IAAI,CAAA;QAEjB;;WAEG;QACH,oBAAe,GAAW,IAAI,CAAA;QAE9B;;WAEG;QACH,SAAI,GAAW,IAAI,CAAA;QAEnB;;WAEG;QACH,UAAK,GAAW,IAAI,CAAA;QAEpB;;WAEG;QACH,aAAQ,GAAW,IAAI,CAAA;QAEvB;;WAEG;QACH,mBAAc,GAAS,IAAI,CAAA;QAE3B;;WAEG;QACH,mBAAc,GAAS,IAAI,CAAA;QAIvB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC/B,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,QAAQ;IAyD/C;;;OAGG;IACH,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAA;IAC3B,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"applicationInfo.js","sourceRoot":"","sources":["../../src/generic/applicationInfo.ts"],"names":[],"mappings":"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"}
|
|
@@ -381,6 +381,14 @@ export declare abstract class BaseEngine<T> extends BaseSingleton<T> implements
|
|
|
381
381
|
* Returns a COPY of the metadata configs array for the engine. This is a copy so you can't modify the original configs by modifying this array.
|
|
382
382
|
*/
|
|
383
383
|
get Configs(): BaseEnginePropertyConfig[];
|
|
384
|
+
/**
|
|
385
|
+
* The engine's metadata configs themselves, not a copy: read them, never change them.
|
|
386
|
+
*
|
|
387
|
+
* {@link Configs} deep-copies on every read. `BaseEngineRegistry.FindCachedEntity()` reads the
|
|
388
|
+
* configs of every loaded engine on each call, and runs for every record an IsA parent with an
|
|
389
|
+
* opted-in `SubtypeSelector` loads, so it reads this instead.
|
|
390
|
+
*/
|
|
391
|
+
get ReadonlyConfigs(): ReadonlyArray<Readonly<BaseEnginePropertyConfig>>;
|
|
384
392
|
/**
|
|
385
393
|
* Configures the engine by loading metadata from the database.
|
|
386
394
|
* Subclasses must implement this method to define their configuration behavior.
|
|
@@ -657,6 +665,13 @@ export declare abstract class BaseEngine<T> extends BaseSingleton<T> implements
|
|
|
657
665
|
* @returns true if the entity is in the array (by reference or by primary key)
|
|
658
666
|
*/
|
|
659
667
|
protected isEntityInArrayByRefOrKey(config: BaseEnginePropertyConfig, entity: BaseEntity, preDeleteValues?: Record<string, unknown>): boolean;
|
|
668
|
+
/**
|
|
669
|
+
* Index of `entity` in `currentData` by reference, else by primary key. When `preDeleteValues`
|
|
670
|
+
* carries a complete key it is the ONLY key used: after a delete the live entity's key has
|
|
671
|
+
* been regenerated by NewRecord(), so it can never match the deleted row (see
|
|
672
|
+
* {@link isEntityInArrayByRefOrKey}).
|
|
673
|
+
*/
|
|
674
|
+
private indexOfEntityByRefOrKey;
|
|
660
675
|
/**
|
|
661
676
|
* Emits change notifications for a config whose backing array ALREADY reflects the
|
|
662
677
|
* entity event — e.g., engine code saved the array's own cached instance in place,
|
|
@@ -915,7 +930,7 @@ export declare abstract class BaseEngine<T> extends BaseSingleton<T> implements
|
|
|
915
930
|
* @param propertyName - The name of the property
|
|
916
931
|
* @param expiration - The expiration time in milliseconds
|
|
917
932
|
*/
|
|
918
|
-
private
|
|
933
|
+
private setExpirationTimer;
|
|
919
934
|
/**
|
|
920
935
|
* Adds a dynamic metadata configuration at runtime.
|
|
921
936
|
* @param config - The metadata configuration to add
|