@memberjunction/core-entities-server 6.2.0-edge.6 → 6.2.0-edge.7
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/README.md +155 -100
- package/dist/custom/MJAIAgentExampleEntityServer.server.d.ts +2 -0
- package/dist/custom/MJAIAgentExampleEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJAIAgentExampleEntityServer.server.js +8 -5
- package/dist/custom/MJAIAgentExampleEntityServer.server.js.map +1 -1
- package/dist/custom/MJAIAgentNoteEntityServer.server.d.ts +2 -0
- package/dist/custom/MJAIAgentNoteEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJAIAgentNoteEntityServer.server.js +8 -5
- package/dist/custom/MJAIAgentNoteEntityServer.server.js.map +1 -1
- package/dist/custom/MJAIAgentRelationshipEntityServer.server.d.ts +17 -0
- package/dist/custom/MJAIAgentRelationshipEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJAIAgentRelationshipEntityServer.server.js +71 -0
- package/dist/custom/MJAIAgentRelationshipEntityServer.server.js.map +1 -0
- package/dist/custom/MJAIAgentSessionEntityServer.server.d.ts +8 -22
- package/dist/custom/MJAIAgentSessionEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJAIAgentSessionEntityServer.server.js +24 -1
- package/dist/custom/MJAIAgentSessionEntityServer.server.js.map +1 -1
- package/dist/custom/MJAIAgentUserPolicyEntityServer.server.d.ts +23 -0
- package/dist/custom/MJAIAgentUserPolicyEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJAIAgentUserPolicyEntityServer.server.js +53 -0
- package/dist/custom/MJAIAgentUserPolicyEntityServer.server.js.map +1 -0
- package/dist/custom/MJAIPromptEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJAIPromptEntityServer.server.js +2 -1
- package/dist/custom/MJAIPromptEntityServer.server.js.map +1 -1
- package/dist/custom/MJBrandKitEntityServer.server.d.ts +14 -0
- package/dist/custom/MJBrandKitEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJBrandKitEntityServer.server.js +75 -0
- package/dist/custom/MJBrandKitEntityServer.server.js.map +1 -0
- package/dist/custom/MJCompanyIntegrationEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJCompanyIntegrationEntityServer.server.js +1 -0
- package/dist/custom/MJCompanyIntegrationEntityServer.server.js.map +1 -1
- package/dist/custom/MJComponentEntityServer.server.d.ts +2 -0
- package/dist/custom/MJComponentEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJComponentEntityServer.server.js +5 -1
- package/dist/custom/MJComponentEntityServer.server.js.map +1 -1
- package/dist/custom/MJEntityDocumentEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJEntityDocumentEntityServer.server.js +1 -0
- package/dist/custom/MJEntityDocumentEntityServer.server.js.map +1 -1
- package/dist/custom/MJListDetailEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJListDetailEntityServer.server.js +1 -0
- package/dist/custom/MJListDetailEntityServer.server.js.map +1 -1
- package/dist/custom/MJQueryEntityServer.server.d.ts +177 -47
- package/dist/custom/MJQueryEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJQueryEntityServer.server.js +465 -162
- package/dist/custom/MJQueryEntityServer.server.js.map +1 -1
- package/dist/custom/MJQuerySQLEntityServer.server.d.ts +15 -18
- package/dist/custom/MJQuerySQLEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJQuerySQLEntityServer.server.js +34 -42
- package/dist/custom/MJQuerySQLEntityServer.server.js.map +1 -1
- package/dist/custom/MJTagEntityServer.server.d.ts +2 -0
- package/dist/custom/MJTagEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJTagEntityServer.server.js +13 -7
- package/dist/custom/MJTagEntityServer.server.js.map +1 -1
- package/dist/custom/MJUserRoutineEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJUserRoutineEntityServer.server.js +8 -1
- package/dist/custom/MJUserRoutineEntityServer.server.js.map +1 -1
- package/dist/custom/query-extraction/childRowWriter.d.ts +77 -0
- package/dist/custom/query-extraction/childRowWriter.d.ts.map +1 -0
- package/dist/custom/query-extraction/childRowWriter.js +277 -0
- package/dist/custom/query-extraction/childRowWriter.js.map +1 -0
- package/dist/custom/query-extraction/compositionTargets.d.ts +40 -0
- package/dist/custom/query-extraction/compositionTargets.d.ts.map +1 -0
- package/dist/custom/query-extraction/compositionTargets.js +99 -0
- package/dist/custom/query-extraction/compositionTargets.js.map +1 -0
- package/dist/custom/query-extraction/declared.d.ts +79 -0
- package/dist/custom/query-extraction/declared.d.ts.map +1 -0
- package/dist/custom/query-extraction/declared.js +91 -0
- package/dist/custom/query-extraction/declared.js.map +1 -0
- package/dist/custom/query-extraction/describeFacts.d.ts +40 -0
- package/dist/custom/query-extraction/describeFacts.d.ts.map +1 -0
- package/dist/custom/query-extraction/describeFacts.js +225 -0
- package/dist/custom/query-extraction/describeFacts.js.map +1 -0
- package/dist/custom/query-extraction/descriptionPass.d.ts +23 -0
- package/dist/custom/query-extraction/descriptionPass.d.ts.map +1 -0
- package/dist/custom/query-extraction/descriptionPass.js +95 -0
- package/dist/custom/query-extraction/descriptionPass.js.map +1 -0
- package/dist/custom/query-extraction/extractQuery.d.ts +25 -0
- package/dist/custom/query-extraction/extractQuery.d.ts.map +1 -0
- package/dist/custom/query-extraction/extractQuery.js +146 -0
- package/dist/custom/query-extraction/extractQuery.js.map +1 -0
- package/dist/custom/query-extraction/extractionTypes.d.ts +133 -0
- package/dist/custom/query-extraction/extractionTypes.d.ts.map +1 -0
- package/dist/custom/query-extraction/extractionTypes.js +2 -0
- package/dist/custom/query-extraction/extractionTypes.js.map +1 -0
- package/dist/custom/query-extraction/index.d.ts +16 -0
- package/dist/custom/query-extraction/index.d.ts.map +1 -1
- package/dist/custom/query-extraction/index.js +11 -1
- package/dist/custom/query-extraction/index.js.map +1 -1
- package/dist/custom/query-extraction/pipeline.d.ts +6 -2
- package/dist/custom/query-extraction/pipeline.d.ts.map +1 -1
- package/dist/custom/query-extraction/pipeline.js +21 -14
- package/dist/custom/query-extraction/pipeline.js.map +1 -1
- package/dist/custom/query-extraction/resolve.d.ts +7 -2
- package/dist/custom/query-extraction/resolve.d.ts.map +1 -1
- package/dist/custom/query-extraction/resolve.js +17 -14
- package/dist/custom/query-extraction/resolve.js.map +1 -1
- package/dist/custom/query-extraction/sourceBinding.d.ts +57 -0
- package/dist/custom/query-extraction/sourceBinding.d.ts.map +1 -0
- package/dist/custom/query-extraction/sourceBinding.js +104 -0
- package/dist/custom/query-extraction/sourceBinding.js.map +1 -0
- package/dist/custom/query-extraction/sync.d.ts +27 -3
- package/dist/custom/query-extraction/sync.d.ts.map +1 -1
- package/dist/custom/query-extraction/sync.js +69 -44
- package/dist/custom/query-extraction/sync.js.map +1 -1
- package/dist/custom/query-extraction/templateFacts.d.ts +62 -0
- package/dist/custom/query-extraction/templateFacts.d.ts.map +1 -0
- package/dist/custom/query-extraction/templateFacts.js +229 -0
- package/dist/custom/query-extraction/templateFacts.js.map +1 -0
- package/dist/custom/query-extraction/types.d.ts +4 -0
- package/dist/custom/query-extraction/types.d.ts.map +1 -1
- package/dist/custom/query-refresh/QueryExtractionService.d.ts +54 -0
- package/dist/custom/query-refresh/QueryExtractionService.d.ts.map +1 -0
- package/dist/custom/query-refresh/QueryExtractionService.js +207 -0
- package/dist/custom/query-refresh/QueryExtractionService.js.map +1 -0
- package/dist/custom/query-refresh/QueryRefreshExtractionServerOperation.d.ts +28 -0
- package/dist/custom/query-refresh/QueryRefreshExtractionServerOperation.d.ts.map +1 -0
- package/dist/custom/query-refresh/QueryRefreshExtractionServerOperation.js +106 -0
- package/dist/custom/query-refresh/QueryRefreshExtractionServerOperation.js.map +1 -0
- package/dist/custom/query-refresh/index.d.ts +14 -0
- package/dist/custom/query-refresh/index.d.ts.map +1 -0
- package/dist/custom/query-refresh/index.js +10 -0
- package/dist/custom/query-refresh/index.js.map +1 -0
- package/dist/custom/query-refresh/queryRebind.d.ts +33 -0
- package/dist/custom/query-refresh/queryRebind.d.ts.map +1 -0
- package/dist/custom/query-refresh/queryRebind.js +85 -0
- package/dist/custom/query-refresh/queryRebind.js.map +1 -0
- package/dist/custom/query-refresh/refreshAuthorization.d.ts +29 -0
- package/dist/custom/query-refresh/refreshAuthorization.d.ts.map +1 -0
- package/dist/custom/query-refresh/refreshAuthorization.js +66 -0
- package/dist/custom/query-refresh/refreshAuthorization.js.map +1 -0
- package/dist/custom/query-refresh/refreshFormat.d.ts +16 -0
- package/dist/custom/query-refresh/refreshFormat.d.ts.map +1 -0
- package/dist/custom/query-refresh/refreshFormat.js +67 -0
- package/dist/custom/query-refresh/refreshFormat.js.map +1 -0
- package/dist/custom/query-refresh/refreshOrder.d.ts +25 -0
- package/dist/custom/query-refresh/refreshOrder.d.ts.map +1 -0
- package/dist/custom/query-refresh/refreshOrder.js +95 -0
- package/dist/custom/query-refresh/refreshOrder.js.map +1 -0
- package/dist/custom/query-refresh/refreshSelection.d.ts +15 -0
- package/dist/custom/query-refresh/refreshSelection.d.ts.map +1 -0
- package/dist/custom/query-refresh/refreshSelection.js +99 -0
- package/dist/custom/query-refresh/refreshSelection.js.map +1 -0
- package/dist/custom/query-refresh/refreshTypes.d.ts +81 -0
- package/dist/custom/query-refresh/refreshTypes.d.ts.map +1 -0
- package/dist/custom/query-refresh/refreshTypes.js +5 -0
- package/dist/custom/query-refresh/refreshTypes.js.map +1 -0
- package/dist/custom/util.d.ts +8 -0
- package/dist/custom/util.d.ts.map +1 -1
- package/dist/custom/util.js +18 -1
- package/dist/custom/util.js.map +1 -1
- package/dist/engines/QueryEngineServer.d.ts +4 -1
- package/dist/engines/QueryEngineServer.d.ts.map +1 -1
- package/dist/engines/QueryEngineServer.js +10 -7
- package/dist/engines/QueryEngineServer.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/package.json +30 -30
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { EntityInfo } from "@memberjunction/core";
|
|
2
|
+
import type { DescribedColumnSource } from "@memberjunction/generic-database-provider";
|
|
3
|
+
import type { TableReference } from "@memberjunction/sql-parser";
|
|
4
|
+
import type { QueryEntityFact } from "./extractionTypes.js";
|
|
5
|
+
/** A database object that backs an entity: its base view, base table, or one of its alternate base views. */
|
|
6
|
+
interface EntityObject {
|
|
7
|
+
readonly Entity: EntityInfo;
|
|
8
|
+
/** The alternate base view the object is; `null` for the base view or base table. */
|
|
9
|
+
readonly AlternateBaseViewID: string | null;
|
|
10
|
+
}
|
|
11
|
+
/** Where an output column comes from, in the terms a Query Field row stores. */
|
|
12
|
+
export interface BoundColumnSource {
|
|
13
|
+
readonly SourceEntityID: string | null;
|
|
14
|
+
readonly SourceEntityFieldID: string | null;
|
|
15
|
+
readonly SourceFieldName: string | null;
|
|
16
|
+
readonly SourceObjectName: string | null;
|
|
17
|
+
/** The entity field's description, when the column maps to one. */
|
|
18
|
+
readonly SourceDescription: string | null;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Maps database objects (schema + view or table) to the entities they back, through MJ
|
|
22
|
+
* metadata: an entity's base view, its base table, and its alternate base views. Names compare
|
|
23
|
+
* without case. The first entity registered for an object wins, base view before base table
|
|
24
|
+
* before alternate base view, matching how the run-time field security reads sources.
|
|
25
|
+
*/
|
|
26
|
+
export declare class EntityObjectIndex {
|
|
27
|
+
private readonly qualified;
|
|
28
|
+
private readonly byName;
|
|
29
|
+
constructor(catalog: readonly EntityInfo[]);
|
|
30
|
+
/** The entity object at `schema.name`, or `undefined`. */
|
|
31
|
+
Find(schema: string, name: string): EntityObject | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* The entity object an unqualified `name` reads: the one in `defaultSchema`, else the only one
|
|
34
|
+
* with that name in any schema; `undefined` when there is none or more than one.
|
|
35
|
+
*/
|
|
36
|
+
FindUnqualified(name: string, defaultSchema: string): EntityObject | undefined;
|
|
37
|
+
private add;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Maps the source the database server reported for an output column to MJ metadata.
|
|
41
|
+
*
|
|
42
|
+
* - The object backs an entity and the column names one of its fields: the entity, the field
|
|
43
|
+
* and the field's name.
|
|
44
|
+
* - Otherwise: the object as `schema.object` and the column's name, as reported.
|
|
45
|
+
* - No source: nothing.
|
|
46
|
+
*/
|
|
47
|
+
export declare function BindColumnSource(source: DescribedColumnSource | null, index: EntityObjectIndex): BoundColumnSource;
|
|
48
|
+
/**
|
|
49
|
+
* The entities a query reads, from its table references: every table and view read anywhere in
|
|
50
|
+
* the query, CTE names and table-valued functions excluded. One row per entity (and alternate base
|
|
51
|
+
* view), in order of first reference.
|
|
52
|
+
*
|
|
53
|
+
* @param defaultSchema - The schema an unqualified name is looked up in first.
|
|
54
|
+
*/
|
|
55
|
+
export declare function BindTableReferences(references: readonly TableReference[], index: EntityObjectIndex, defaultSchema: string): QueryEntityFact[];
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=sourceBinding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceBinding.d.ts","sourceRoot":"","sources":["../../../src/custom/query-extraction/sourceBinding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,6GAA6G;AAC7G,UAAU,YAAY;IAClB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,qFAAqF;IACrF,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/C;AAED,gFAAgF;AAChF,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,mEAAmE;IACnE,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAOD;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmC;IAC7D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;gBAEhD,OAAO,EAAE,SAAS,UAAU,EAAE;IAU1C,0DAA0D;IAC1D,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI5D;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAQ9E,OAAO,CAAC,GAAG;CASd;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,EAAE,KAAK,EAAE,iBAAiB,GAAG,iBAAiB,CAOlH;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,GAAG,eAAe,EAAE,CAe7I"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/** A column with no source: computed, aggregated, a literal or a set-operation output. */
|
|
2
|
+
const NO_SOURCE = Object.freeze({
|
|
3
|
+
SourceEntityID: null, SourceEntityFieldID: null, SourceFieldName: null, SourceObjectName: null, SourceDescription: null,
|
|
4
|
+
});
|
|
5
|
+
/**
|
|
6
|
+
* Maps database objects (schema + view or table) to the entities they back, through MJ
|
|
7
|
+
* metadata: an entity's base view, its base table, and its alternate base views. Names compare
|
|
8
|
+
* without case. The first entity registered for an object wins, base view before base table
|
|
9
|
+
* before alternate base view, matching how the run-time field security reads sources.
|
|
10
|
+
*/
|
|
11
|
+
export class EntityObjectIndex {
|
|
12
|
+
constructor(catalog) {
|
|
13
|
+
this.qualified = new Map();
|
|
14
|
+
this.byName = new Map();
|
|
15
|
+
for (const entity of catalog) {
|
|
16
|
+
this.add(entity.SchemaName, entity.BaseView, { Entity: entity, AlternateBaseViewID: null });
|
|
17
|
+
this.add(entity.SchemaName, entity.BaseTable, { Entity: entity, AlternateBaseViewID: null });
|
|
18
|
+
for (const view of entity.AlternateBaseViews ?? []) {
|
|
19
|
+
this.add(view.SchemaName ?? entity.SchemaName, view.ViewName, { Entity: entity, AlternateBaseViewID: view.ID });
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/** The entity object at `schema.name`, or `undefined`. */
|
|
24
|
+
Find(schema, name) {
|
|
25
|
+
return this.qualified.get(objectKey(schema, name));
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The entity object an unqualified `name` reads: the one in `defaultSchema`, else the only one
|
|
29
|
+
* with that name in any schema; `undefined` when there is none or more than one.
|
|
30
|
+
*/
|
|
31
|
+
FindUnqualified(name, defaultSchema) {
|
|
32
|
+
const inDefault = this.Find(defaultSchema, name);
|
|
33
|
+
if (inDefault)
|
|
34
|
+
return inDefault;
|
|
35
|
+
const candidates = this.byName.get(name.toLowerCase()) ?? [];
|
|
36
|
+
const entities = new Set(candidates.map(c => c.Entity.ID));
|
|
37
|
+
return entities.size === 1 ? candidates[0] : undefined;
|
|
38
|
+
}
|
|
39
|
+
add(schema, name, target) {
|
|
40
|
+
if (!schema || !name)
|
|
41
|
+
return;
|
|
42
|
+
const key = objectKey(schema, name);
|
|
43
|
+
if (this.qualified.has(key))
|
|
44
|
+
return;
|
|
45
|
+
this.qualified.set(key, target);
|
|
46
|
+
const list = this.byName.get(name.toLowerCase()) ?? [];
|
|
47
|
+
list.push(target);
|
|
48
|
+
this.byName.set(name.toLowerCase(), list);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Maps the source the database server reported for an output column to MJ metadata.
|
|
53
|
+
*
|
|
54
|
+
* - The object backs an entity and the column names one of its fields: the entity, the field
|
|
55
|
+
* and the field's name.
|
|
56
|
+
* - Otherwise: the object as `schema.object` and the column's name, as reported.
|
|
57
|
+
* - No source: nothing.
|
|
58
|
+
*/
|
|
59
|
+
export function BindColumnSource(source, index) {
|
|
60
|
+
if (!source)
|
|
61
|
+
return NO_SOURCE;
|
|
62
|
+
const field = fieldOf(index.Find(source.Schema, source.Object), source.Column);
|
|
63
|
+
if (field) {
|
|
64
|
+
return { SourceEntityID: field.EntityID, SourceEntityFieldID: field.ID, SourceFieldName: field.Name, SourceObjectName: null, SourceDescription: field.Description || null };
|
|
65
|
+
}
|
|
66
|
+
return { SourceEntityID: null, SourceEntityFieldID: null, SourceFieldName: source.Column, SourceObjectName: `${source.Schema}.${source.Object}`, SourceDescription: null };
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* The entities a query reads, from its table references: every table and view read anywhere in
|
|
70
|
+
* the query, CTE names and table-valued functions excluded. One row per entity (and alternate base
|
|
71
|
+
* view), in order of first reference.
|
|
72
|
+
*
|
|
73
|
+
* @param defaultSchema - The schema an unqualified name is looked up in first.
|
|
74
|
+
*/
|
|
75
|
+
export function BindTableReferences(references, index, defaultSchema) {
|
|
76
|
+
const facts = [];
|
|
77
|
+
const seen = new Set();
|
|
78
|
+
for (const reference of references) {
|
|
79
|
+
if (reference.Kind !== 'Table')
|
|
80
|
+
continue;
|
|
81
|
+
const name = reference.Name.Parts[reference.Name.Parts.length - 1]?.Value;
|
|
82
|
+
if (!name)
|
|
83
|
+
continue;
|
|
84
|
+
const target = reference.Schema ? index.Find(reference.Schema, name) : index.FindUnqualified(name, defaultSchema);
|
|
85
|
+
if (!target)
|
|
86
|
+
continue;
|
|
87
|
+
const key = `${target.Entity.ID.toLowerCase()}|${(target.AlternateBaseViewID ?? '').toLowerCase()}`;
|
|
88
|
+
if (seen.has(key))
|
|
89
|
+
continue;
|
|
90
|
+
seen.add(key);
|
|
91
|
+
facts.push({ EntityID: target.Entity.ID, AlternateBaseViewID: target.AlternateBaseViewID });
|
|
92
|
+
}
|
|
93
|
+
return facts;
|
|
94
|
+
}
|
|
95
|
+
function fieldOf(target, column) {
|
|
96
|
+
if (!target)
|
|
97
|
+
return undefined;
|
|
98
|
+
const wanted = column.toLowerCase();
|
|
99
|
+
return target.Entity.Fields.find(f => f.Name.toLowerCase() === wanted);
|
|
100
|
+
}
|
|
101
|
+
function objectKey(schema, name) {
|
|
102
|
+
return `${schema.toLowerCase()}.${name.toLowerCase()}`;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=sourceBinding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceBinding.js","sourceRoot":"","sources":["../../../src/custom/query-extraction/sourceBinding.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,46 @@
|
|
|
1
1
|
import { IMetadataProvider, IRunViewProvider, UserInfo, DatabasePlatform } from "@memberjunction/core";
|
|
2
2
|
import type { ExtractedField, ExtractedParameter, EntityMetadataEntry, ResolvedCompositionReference } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* The names of the parameter or field rows extraction must not add, update or delete: the rows the
|
|
5
|
+
* same save declared, and every stored row a person authored (`DetectionMethod` `Manual`, as a
|
|
6
|
+
* metadata file's declared rows are). An authored row keeps its descriptions and other annotations
|
|
7
|
+
* whichever save triggers extraction, including the re-extraction a dialect variant's save runs,
|
|
8
|
+
* which declares nothing.
|
|
9
|
+
*
|
|
10
|
+
* @param stored - The rows stored for the query.
|
|
11
|
+
* @param declaredNames - Lower-cased names the same save declared.
|
|
12
|
+
* @returns Lower-cased names.
|
|
13
|
+
*/
|
|
14
|
+
export declare function NamesExtractionLeavesAlone(stored: ReadonlyArray<{
|
|
15
|
+
Name: string;
|
|
16
|
+
DetectionMethod: string;
|
|
17
|
+
}>, declaredNames: ReadonlySet<string>): Set<string>;
|
|
3
18
|
/**
|
|
4
19
|
* Synchronizes extracted query parameters with the database.
|
|
5
20
|
* Filters out "query" params (composition token safety net), handles add/update/remove,
|
|
6
21
|
* and maps types to database-supported types.
|
|
22
|
+
*
|
|
23
|
+
* @param declaredNames - Lower-cased names of parameters the same save declared. Those rows are the
|
|
24
|
+
* caller's: they are never added, updated or deleted here, whatever the SQL says. Stored rows a
|
|
25
|
+
* person authored are left alone the same way ({@link NamesExtractionLeavesAlone}).
|
|
7
26
|
*/
|
|
8
|
-
export declare function SyncParameters(queryID: string, extractedParams: ExtractedParameter[], contextUser: UserInfo, metadataProvider: IMetadataProvider, runViewProvider: IRunViewProvider, isSaved: boolean): Promise<void>;
|
|
27
|
+
export declare function SyncParameters(queryID: string, extractedParams: ExtractedParameter[], contextUser: UserInfo, metadataProvider: IMetadataProvider, runViewProvider: IRunViewProvider, isSaved: boolean, declaredNames?: ReadonlySet<string>): Promise<void>;
|
|
9
28
|
/**
|
|
10
29
|
* Synchronizes extracted query fields with the database.
|
|
11
30
|
* Expands wildcards, maps ExtractedField to MJQueryFieldEntity with sqlBaseType/sqlFullType override,
|
|
12
31
|
* handles add/update/remove.
|
|
32
|
+
*
|
|
33
|
+
* @param declaredNames - Lower-cased names of fields the same save declared; see {@link SyncParameters}.
|
|
13
34
|
*/
|
|
14
|
-
export declare function SyncFields(queryID: string, extractedFields: ExtractedField[], contextUser: UserInfo, metadataProvider: IMetadataProvider, runViewProvider: IRunViewProvider, isSaved: boolean, platform?: DatabasePlatform): Promise<void>;
|
|
35
|
+
export declare function SyncFields(queryID: string, extractedFields: ExtractedField[], contextUser: UserInfo, metadataProvider: IMetadataProvider, runViewProvider: IRunViewProvider, isSaved: boolean, platform?: DatabasePlatform, declaredNames?: ReadonlySet<string>): Promise<void>;
|
|
15
36
|
/**
|
|
16
37
|
* Synchronizes extracted entity metadata entries with QueryEntity records in the database.
|
|
17
38
|
* Matches by `(EntityID, AlternateBaseViewID)`, handling add, update, and remove.
|
|
39
|
+
*
|
|
40
|
+
* @param declaredEntityKeys - Entity links the same save declared, keyed by `QueryEntityKey`; see
|
|
41
|
+
* {@link SyncParameters}.
|
|
18
42
|
*/
|
|
19
|
-
export declare function SyncEntities(queryID: string, entityMetadata: EntityMetadataEntry[], contextUser: UserInfo, metadataProvider: IMetadataProvider, runViewProvider: IRunViewProvider, isSaved: boolean): Promise<void>;
|
|
43
|
+
export declare function SyncEntities(queryID: string, entityMetadata: EntityMetadataEntry[], contextUser: UserInfo, metadataProvider: IMetadataProvider, runViewProvider: IRunViewProvider, isSaved: boolean, declaredEntityKeys?: ReadonlySet<string>): Promise<void>;
|
|
20
44
|
/**
|
|
21
45
|
* Converts ResolvedCompositionReference[] to dependency records, checks for cycles, and syncs.
|
|
22
46
|
* Matches by DependsOnQueryID + ReferencePath for uniqueness.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/custom/query-extraction/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAA2D,QAAQ,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAShK,OAAO,KAAK,EACR,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,4BAA4B,EAC/B,MAAM,SAAS,CAAC;AAiFjB
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/custom/query-extraction/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAA2D,QAAQ,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAShK,OAAO,KAAK,EACR,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,4BAA4B,EAC/B,MAAM,SAAS,CAAC;AAiFjB;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACtC,MAAM,EAAE,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC,EAChE,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,GACnC,GAAG,CAAC,MAAM,CAAC,CAQb;AAMD;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAChC,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,kBAAkB,EAAE,EACrC,WAAW,EAAE,QAAQ,EACrB,gBAAgB,EAAE,iBAAiB,EACnC,eAAe,EAAE,gBAAgB,EACjC,OAAO,EAAE,OAAO,EAChB,aAAa,GAAE,WAAW,CAAC,MAAM,CAAqB,GACvD,OAAO,CAAC,IAAI,CAAC,CAyDf;AAmFD;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC5B,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,cAAc,EAAE,EACjC,WAAW,EAAE,QAAQ,EACrB,gBAAgB,EAAE,iBAAiB,EACnC,eAAe,EAAE,gBAAgB,EACjC,OAAO,EAAE,OAAO,EAChB,QAAQ,GAAE,gBAA8B,EACxC,aAAa,GAAE,WAAW,CAAC,MAAM,CAAqB,GACvD,OAAO,CAAC,IAAI,CAAC,CA0Df;AA2ND;;;;;;GAMG;AACH,wBAAsB,YAAY,CAC9B,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,mBAAmB,EAAE,EACrC,WAAW,EAAE,QAAQ,EACrB,gBAAgB,EAAE,iBAAiB,EACnC,eAAe,EAAE,gBAAgB,EACjC,OAAO,EAAE,OAAO,EAChB,kBAAkB,GAAE,WAAW,CAAC,MAAM,CAAqB,GAC5D,OAAO,CAAC,IAAI,CAAC,CAsCf;AAMD;;;GAGG;AACH,wBAAsB,gBAAgB,CAClC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,4BAA4B,EAAE,EAC5C,WAAW,EAAE,QAAQ,EACrB,gBAAgB,EAAE,iBAAiB,EACnC,eAAe,EAAE,gBAAgB,EACjC,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,CAAC,CA+Ef;AA8BD;;;GAGG;AACH,wBAAsB,gBAAgB,CAClC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,QAAQ,EACrB,eAAe,EAAE,gBAAgB,EACjC,OAAO,EAAE,OAAO,EAChB,gBAAgB,CAAC,EAAE,iBAAiB,GACrC,OAAO,CAAC,IAAI,CAAC,CAuBf"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LogError, LogStatus, QUERY_CONTEXT_NAME, RunMaybeSerial } from "@memberjunction/core";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { EscapeSQLString, IndexByUUID, NormalizeUUID, UUIDsEqual } from "@memberjunction/global";
|
|
3
|
+
import { QueryChildNameKey, QueryEntityKey } from "./declared.js";
|
|
4
4
|
// =============================================================================
|
|
5
5
|
// Database sync engine for the query extraction pipeline.
|
|
6
6
|
//
|
|
@@ -64,20 +64,49 @@ function defaultSQLTypesForField(fieldType, platform = 'sqlserver') {
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
// ---------------------------------------------------------------------------
|
|
67
|
+
// Rows extraction leaves alone
|
|
68
|
+
// ---------------------------------------------------------------------------
|
|
69
|
+
/**
|
|
70
|
+
* The names of the parameter or field rows extraction must not add, update or delete: the rows the
|
|
71
|
+
* same save declared, and every stored row a person authored (`DetectionMethod` `Manual`, as a
|
|
72
|
+
* metadata file's declared rows are). An authored row keeps its descriptions and other annotations
|
|
73
|
+
* whichever save triggers extraction, including the re-extraction a dialect variant's save runs,
|
|
74
|
+
* which declares nothing.
|
|
75
|
+
*
|
|
76
|
+
* @param stored - The rows stored for the query.
|
|
77
|
+
* @param declaredNames - Lower-cased names the same save declared.
|
|
78
|
+
* @returns Lower-cased names.
|
|
79
|
+
*/
|
|
80
|
+
export function NamesExtractionLeavesAlone(stored, declaredNames) {
|
|
81
|
+
const names = new Set(declaredNames);
|
|
82
|
+
for (const row of stored) {
|
|
83
|
+
if (row.DetectionMethod === 'Manual') {
|
|
84
|
+
names.add(QueryChildNameKey(row.Name));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return names;
|
|
88
|
+
}
|
|
89
|
+
// ---------------------------------------------------------------------------
|
|
67
90
|
// SyncParameters
|
|
68
91
|
// ---------------------------------------------------------------------------
|
|
69
92
|
/**
|
|
70
93
|
* Synchronizes extracted query parameters with the database.
|
|
71
94
|
* Filters out "query" params (composition token safety net), handles add/update/remove,
|
|
72
95
|
* and maps types to database-supported types.
|
|
96
|
+
*
|
|
97
|
+
* @param declaredNames - Lower-cased names of parameters the same save declared. Those rows are the
|
|
98
|
+
* caller's: they are never added, updated or deleted here, whatever the SQL says. Stored rows a
|
|
99
|
+
* person authored are left alone the same way ({@link NamesExtractionLeavesAlone}).
|
|
73
100
|
*/
|
|
74
|
-
export async function SyncParameters(queryID, extractedParams, contextUser, metadataProvider, runViewProvider, isSaved) {
|
|
75
|
-
// Filter out any parameter named "query" that came from {{query:"..."}} composition tokens, and
|
|
76
|
-
// the reserved Context object: `{{ Context.UserID }}` reads a server-set value, and a parameter
|
|
77
|
-
// named Context would shadow it.
|
|
78
|
-
const filteredParams = extractedParams.filter(p => p.name !== 'query' && !isReservedContextName(p.name));
|
|
101
|
+
export async function SyncParameters(queryID, extractedParams, contextUser, metadataProvider, runViewProvider, isSaved, declaredNames = new Set()) {
|
|
79
102
|
try {
|
|
80
|
-
const
|
|
103
|
+
const storedParams = await loadExistingRecords('MJ: Query Parameters', queryID, runViewProvider, contextUser, isSaved);
|
|
104
|
+
const leftAlone = NamesExtractionLeavesAlone(storedParams, declaredNames);
|
|
105
|
+
const existingParams = storedParams.filter(ep => !leftAlone.has(QueryChildNameKey(ep.Name)));
|
|
106
|
+
// Filter out any parameter named "query" that came from {{query:"..."}} composition tokens, and
|
|
107
|
+
// the reserved Context object: `{{ Context.UserID }}` reads a server-set value, and a parameter
|
|
108
|
+
// named Context would shadow it. Declared and authored parameters are left as they are.
|
|
109
|
+
const filteredParams = extractedParams.filter(p => p.name !== 'query' && !isReservedContextName(p.name) && !leftAlone.has(QueryChildNameKey(p.name)));
|
|
81
110
|
const extractedParamNames = filteredParams.map(p => p.name.toLowerCase());
|
|
82
111
|
const paramsToAdd = filteredParams.filter(p => !existingParams.some(ep => ep.Name.toLowerCase() === p.name.toLowerCase()));
|
|
83
112
|
const paramsToUpdate = existingParams.filter(ep => filteredParams.some(p => p.name.toLowerCase() === ep.Name.toLowerCase()));
|
|
@@ -178,12 +207,19 @@ function updateParameterIfChanged(existing, extracted) {
|
|
|
178
207
|
* Synchronizes extracted query fields with the database.
|
|
179
208
|
* Expands wildcards, maps ExtractedField to MJQueryFieldEntity with sqlBaseType/sqlFullType override,
|
|
180
209
|
* handles add/update/remove.
|
|
210
|
+
*
|
|
211
|
+
* @param declaredNames - Lower-cased names of fields the same save declared; see {@link SyncParameters}.
|
|
181
212
|
*/
|
|
182
|
-
export async function SyncFields(queryID, extractedFields, contextUser, metadataProvider, runViewProvider, isSaved, platform = 'sqlserver') {
|
|
213
|
+
export async function SyncFields(queryID, extractedFields, contextUser, metadataProvider, runViewProvider, isSaved, platform = 'sqlserver', declaredNames = new Set()) {
|
|
183
214
|
try {
|
|
184
|
-
|
|
215
|
+
// Fields the same save declared, and fields a person authored, are never added, updated or
|
|
216
|
+
// deleted here.
|
|
217
|
+
const storedFields = await loadExistingRecords('MJ: Query Fields', queryID, runViewProvider, contextUser, isSaved);
|
|
218
|
+
const leftAlone = NamesExtractionLeavesAlone(storedFields, declaredNames);
|
|
219
|
+
const existingFields = storedFields.filter(ef => !leftAlone.has(QueryChildNameKey(ef.Name)));
|
|
185
220
|
const fieldNamesToSync = extractedFields.map(f => f.name.toLowerCase());
|
|
186
|
-
const fieldsToAdd = extractedFields.filter(f => !
|
|
221
|
+
const fieldsToAdd = extractedFields.filter(f => !leftAlone.has(QueryChildNameKey(f.name))
|
|
222
|
+
&& !existingFields.some(ef => ef.Name.toLowerCase() === f.name.toLowerCase()));
|
|
187
223
|
const fieldsToUpdate = existingFields.filter(ef => extractedFields.some(f => f.name.toLowerCase() === ef.Name.toLowerCase()));
|
|
188
224
|
const fieldsToRemove = existingFields.filter(ef => !fieldNamesToSync.includes(ef.Name.toLowerCase()));
|
|
189
225
|
const factories = [];
|
|
@@ -374,11 +410,16 @@ function partitionQueryEntityDiff(entityMappings, existingEntities) {
|
|
|
374
410
|
/**
|
|
375
411
|
* Synchronizes extracted entity metadata entries with QueryEntity records in the database.
|
|
376
412
|
* Matches by `(EntityID, AlternateBaseViewID)`, handling add, update, and remove.
|
|
413
|
+
*
|
|
414
|
+
* @param declaredEntityKeys - Entity links the same save declared, keyed by `QueryEntityKey`; see
|
|
415
|
+
* {@link SyncParameters}.
|
|
377
416
|
*/
|
|
378
|
-
export async function SyncEntities(queryID, entityMetadata, contextUser, metadataProvider, runViewProvider, isSaved) {
|
|
417
|
+
export async function SyncEntities(queryID, entityMetadata, contextUser, metadataProvider, runViewProvider, isSaved, declaredEntityKeys = new Set()) {
|
|
379
418
|
try {
|
|
380
|
-
|
|
381
|
-
const
|
|
419
|
+
// Entity links the same save declared are the caller's: never added, updated or deleted here.
|
|
420
|
+
const existingEntities = (await loadExistingRecords('MJ: Query Entities', queryID, runViewProvider, contextUser, isSaved)).filter(ee => !declaredEntityKeys.has(QueryEntityKey(ee)));
|
|
421
|
+
const entityMappings = mapExtractedEntitiesToMetadata(entityMetadata, metadataProvider)
|
|
422
|
+
.filter(m => !declaredEntityKeys.has(QueryEntityKey({ EntityID: m.entityID })));
|
|
382
423
|
const { entitiesToAdd, entitiesToUpdate, entitiesToRemove } = partitionQueryEntityDiff(entityMappings, existingEntities);
|
|
383
424
|
const factories = [];
|
|
384
425
|
for (const mapping of entitiesToAdd) {
|
|
@@ -495,7 +536,8 @@ export async function RemoveAllRecords(queryID, entityName, contextUser, runView
|
|
|
495
536
|
const existingResult = await runViewProvider.RunView({
|
|
496
537
|
EntityName: entityName,
|
|
497
538
|
ExtraFilter: `QueryID='${queryID}'`,
|
|
498
|
-
ResultType: 'entity_object'
|
|
539
|
+
ResultType: 'entity_object',
|
|
540
|
+
IgnoreMaxRows: true
|
|
499
541
|
}, contextUser);
|
|
500
542
|
if (!existingResult.Success) {
|
|
501
543
|
throw new Error(`Failed to load existing ${entityName}: ${existingResult.ErrorMessage}`);
|
|
@@ -517,42 +559,25 @@ export async function RemoveAllRecords(queryID, entityName, contextUser, runView
|
|
|
517
559
|
* Returns an empty array if the query has not been saved yet.
|
|
518
560
|
*/
|
|
519
561
|
/**
|
|
520
|
-
* Loads
|
|
562
|
+
* Loads a query's stored child records from the database, never from QueryEngine's cache.
|
|
521
563
|
*
|
|
522
|
-
*
|
|
523
|
-
*
|
|
524
|
-
*
|
|
525
|
-
*
|
|
526
|
-
* or
|
|
527
|
-
*
|
|
528
|
-
*
|
|
529
|
-
* `UQ_QueryParameter_QueryID_Name` (and the sibling unique constraints), which
|
|
530
|
-
* on PostgreSQL aborts the entire push transaction and rolls back the run.
|
|
564
|
+
* Extraction often runs inside a transaction the cache does not see yet: an atomic metadata push
|
|
565
|
+
* saves the query with its declared children, then saves a dialect variant, whose save re-runs
|
|
566
|
+
* extraction. The cache is updated when the transaction commits, so inside it the cache still holds
|
|
567
|
+
* the rows from before the push. Syncing against those rows would treat rows the push just wrote as
|
|
568
|
+
* missing or stale, and saving the cached objects would write their old values back over the new
|
|
569
|
+
* ones. Reading on the extraction's own provider sees the transaction's writes. (A cold cache in a
|
|
570
|
+
* short-lived CLI process is the same problem: it would make persisted children look new.)
|
|
531
571
|
*/
|
|
532
572
|
async function loadExistingRecords(entityName, queryID, runViewProvider, contextUser, isSaved) {
|
|
533
573
|
if (!isSaved)
|
|
534
574
|
return [];
|
|
535
|
-
const qe = QueryEngine.Instance;
|
|
536
|
-
if (qe.Loaded) {
|
|
537
|
-
switch (entityName) {
|
|
538
|
-
case 'MJ: Query Parameters':
|
|
539
|
-
return qe.GetQueryParameters(queryID);
|
|
540
|
-
case 'MJ: Query Fields':
|
|
541
|
-
return qe.GetQueryFields(queryID);
|
|
542
|
-
case 'MJ: Query Entities':
|
|
543
|
-
return qe.QueryEntities.filter(e => UUIDsEqual(e.QueryID, queryID));
|
|
544
|
-
case 'MJ: Query Dependencies':
|
|
545
|
-
return qe.Dependencies.filter(d => UUIDsEqual(d.QueryID, queryID));
|
|
546
|
-
default:
|
|
547
|
-
return [];
|
|
548
|
-
}
|
|
549
|
-
}
|
|
550
|
-
// Cache cold — read straight from the DB so the add/update/remove delta is
|
|
551
|
-
// computed against real persisted state, not an empty cache.
|
|
552
575
|
const result = await runViewProvider.RunView({
|
|
553
576
|
EntityName: entityName,
|
|
554
|
-
ExtraFilter: `QueryID='${queryID}'`,
|
|
555
|
-
ResultType: 'entity_object'
|
|
577
|
+
ExtraFilter: `QueryID='${EscapeSQLString(queryID)}'`,
|
|
578
|
+
ResultType: 'entity_object',
|
|
579
|
+
BypassCache: true,
|
|
580
|
+
IgnoreMaxRows: true,
|
|
556
581
|
}, contextUser);
|
|
557
582
|
if (!result.Success) {
|
|
558
583
|
throw new Error(`Failed to load existing ${entityName} for query ${queryID}: ${result.ErrorMessage}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/custom/query-extraction/sync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/custom/query-extraction/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { DatabasePlatform } from "@memberjunction/core";
|
|
2
|
+
import { QueryTemplate } from "@memberjunction/sql-parser";
|
|
3
|
+
import type { DeclaredTemplateParameter, Diagnostic, KnownTemplateParameterType } from "@memberjunction/sql-parser";
|
|
4
|
+
import type { QueryDependencyFact, QueryEntityFact, KnownQueryParameter, QueryExtractionInput, QueryParameterFact } from "./extractionTypes.js";
|
|
5
|
+
/** What MJ's own reading of the query (lexer, template layer, structural parser) establishes. */
|
|
6
|
+
export interface TemplateAnalysis {
|
|
7
|
+
readonly Template: QueryTemplate;
|
|
8
|
+
readonly UsesTemplate: boolean;
|
|
9
|
+
readonly Parameters: readonly QueryParameterFact[];
|
|
10
|
+
/** `null` when a composition could not be resolved, so the stored rows are kept. */
|
|
11
|
+
readonly Dependencies: readonly QueryDependencyFact[] | null;
|
|
12
|
+
/** `null` when the SQL could not be read completely, so the stored rows are kept. */
|
|
13
|
+
readonly Entities: readonly QueryEntityFact[] | null;
|
|
14
|
+
/** Output names the select list writes more than once (case-insensitive). */
|
|
15
|
+
readonly DuplicateOutputNames: readonly string[];
|
|
16
|
+
/**
|
|
17
|
+
* Whether a table or view the query reads is named by a template parameter
|
|
18
|
+
* (`FROM {{ Schema | sqlIdentifier }}.{{ View | sqlIdentifier }}`), so its output columns depend
|
|
19
|
+
* on the arguments and no single render describes them.
|
|
20
|
+
*/
|
|
21
|
+
readonly ReadsParameterNamedSource: boolean;
|
|
22
|
+
/** `@field` / `--:` descriptions, by lower-cased field name. */
|
|
23
|
+
readonly FieldDocs: ReadonlyMap<string, string>;
|
|
24
|
+
/** Save-time rule errors and warnings (`QueryTemplate.Validate`), and doc-comment warnings. */
|
|
25
|
+
readonly Errors: readonly Diagnostic[];
|
|
26
|
+
readonly Warnings: readonly Diagnostic[];
|
|
27
|
+
/** Notes about facts that could not be established. */
|
|
28
|
+
readonly Notes: readonly string[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Reads the query with MJ's parser: whether it is a template, its parameters (with composition
|
|
32
|
+
* pass-throughs), its compositions, the entities it reads, duplicate output names, doc comments
|
|
33
|
+
* and the save-time rules. Never touches the database.
|
|
34
|
+
*/
|
|
35
|
+
export declare function AnalyzeQueryTemplate(input: QueryExtractionInput): TemplateAnalysis;
|
|
36
|
+
/**
|
|
37
|
+
* The parameter rows that declare a type to the save-time rules: the rows a person wrote
|
|
38
|
+
* (`DetectionMethod` `Manual`), and the server-set rows, whose flag only a person sets. A row
|
|
39
|
+
* extraction detected records what the previous SQL implied, so it declares nothing: the SQL may
|
|
40
|
+
* change that parameter's filter, and the row then follows the new type.
|
|
41
|
+
*/
|
|
42
|
+
export declare function DeclaredTemplateParameters(known: readonly KnownQueryParameter[]): DeclaredTemplateParameter[];
|
|
43
|
+
/**
|
|
44
|
+
* The types the detected parameter rows record (the rows {@link DeclaredTemplateParameters} leaves
|
|
45
|
+
* out). They are not authoritative, so they never decide whether a filter fits. They only type a
|
|
46
|
+
* value written without a filter when the SQL gives no type. Without them, a string written
|
|
47
|
+
* unfiltered into a query whose rows were all detected would only be warned about, not refused.
|
|
48
|
+
*/
|
|
49
|
+
export declare function DetectedTemplateParameterTypes(known: readonly KnownQueryParameter[]): KnownTemplateParameterType[];
|
|
50
|
+
/**
|
|
51
|
+
* Whether `sql` holds any MJ template tag (`{{ }}`, `{% %}`, `{# #}`, a composition) outside SQL
|
|
52
|
+
* comments, read by the lexer of `platform`'s dialect. This is what `UsesTemplate` records: a
|
|
53
|
+
* lexical fact, whatever extraction finds.
|
|
54
|
+
*/
|
|
55
|
+
export declare function SQLUsesTemplate(sql: string, platform: DatabasePlatform): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* A diagnostic as one line of `ExtractionMessage` or a refusal: code, location, message and fix,
|
|
58
|
+
* in the shared format clients read back with `ParseQueryDiagnostic`. The location is the line and
|
|
59
|
+
* column of the diagnostic's start in `sql`, the text it was found in; without `sql` it is left out.
|
|
60
|
+
*/
|
|
61
|
+
export declare function DescribeDiagnostic(diagnostic: Diagnostic, sql?: string): string;
|
|
62
|
+
//# sourceMappingURL=templateFacts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templateFacts.d.ts","sourceRoot":"","sources":["../../../src/custom/query-extraction/templateFacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAI7D,OAAO,EAIH,aAAa,EAGhB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAIR,yBAAyB,EACzB,UAAU,EACV,0BAA0B,EAG7B,MAAM,4BAA4B,CAAC;AAKpC,OAAO,KAAK,EACR,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAErB,MAAM,mBAAmB,CAAC;AAE3B,iGAAiG;AACjG,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD,oFAAoF;IACpF,QAAQ,CAAC,YAAY,EAAE,SAAS,mBAAmB,EAAE,GAAG,IAAI,CAAC;IAC7D,qFAAqF;IACrF,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,GAAG,IAAI,CAAC;IACrD,6EAA6E;IAC7E,QAAQ,CAAC,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD;;;;OAIG;IACH,QAAQ,CAAC,yBAAyB,EAAE,OAAO,CAAC;IAC5C,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,+FAA+F;IAC/F,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;IACzC,uDAAuD;IACvD,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAQD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,GAAG,gBAAgB,CA2BlF;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GAAG,yBAAyB,EAAE,CAE7G;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GAAG,0BAA0B,EAAE,CAElH;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAEhF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAS/E"}
|