@memberjunction/core-entities-server 5.15.0 → 5.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/custom/MJQueryEntityServer.server.d.ts +10 -89
  2. package/dist/custom/MJQueryEntityServer.server.d.ts.map +1 -1
  3. package/dist/custom/MJQueryEntityServer.server.js +68 -1089
  4. package/dist/custom/MJQueryEntityServer.server.js.map +1 -1
  5. package/dist/custom/query-extraction/dialect.d.ts +23 -0
  6. package/dist/custom/query-extraction/dialect.d.ts.map +1 -0
  7. package/dist/custom/query-extraction/dialect.js +45 -0
  8. package/dist/custom/query-extraction/dialect.js.map +1 -0
  9. package/dist/custom/query-extraction/enrich.d.ts +51 -0
  10. package/dist/custom/query-extraction/enrich.d.ts.map +1 -0
  11. package/dist/custom/query-extraction/enrich.js +180 -0
  12. package/dist/custom/query-extraction/enrich.js.map +1 -0
  13. package/dist/custom/query-extraction/index.d.ts +9 -0
  14. package/dist/custom/query-extraction/index.d.ts.map +1 -0
  15. package/dist/custom/query-extraction/index.js +15 -0
  16. package/dist/custom/query-extraction/index.js.map +1 -0
  17. package/dist/custom/query-extraction/parse.d.ts +7 -0
  18. package/dist/custom/query-extraction/parse.d.ts.map +1 -0
  19. package/dist/custom/query-extraction/parse.js +13 -0
  20. package/dist/custom/query-extraction/parse.js.map +1 -0
  21. package/dist/custom/query-extraction/pipeline.d.ts +24 -0
  22. package/dist/custom/query-extraction/pipeline.d.ts.map +1 -0
  23. package/dist/custom/query-extraction/pipeline.js +101 -0
  24. package/dist/custom/query-extraction/pipeline.js.map +1 -0
  25. package/dist/custom/query-extraction/resolve.d.ts +110 -0
  26. package/dist/custom/query-extraction/resolve.d.ts.map +1 -0
  27. package/dist/custom/query-extraction/resolve.js +677 -0
  28. package/dist/custom/query-extraction/resolve.js.map +1 -0
  29. package/dist/custom/query-extraction/sync.d.ts +30 -0
  30. package/dist/custom/query-extraction/sync.d.ts.map +1 -0
  31. package/dist/custom/query-extraction/sync.js +456 -0
  32. package/dist/custom/query-extraction/sync.js.map +1 -0
  33. package/dist/custom/query-extraction/types.d.ts +114 -0
  34. package/dist/custom/query-extraction/types.d.ts.map +1 -0
  35. package/dist/custom/query-extraction/types.js +2 -0
  36. package/dist/custom/query-extraction/types.js.map +1 -0
  37. package/package.json +19 -19
@@ -0,0 +1,114 @@
1
+ import type { IMetadataProvider, IRunViewProvider, QueryInfo, UserInfo } from "@memberjunction/core";
2
+ import type { MJParameterInfo, MJParseResult, SQLSelectColumn, SQLTableReference } from "@memberjunction/sql-parser";
3
+ /**
4
+ * A parameter extracted from a query's SQL — the final merged result
5
+ * combining deterministic parsing, dependency metadata, and LLM enrichment.
6
+ */
7
+ export interface ExtractedParameter {
8
+ name: string;
9
+ type: 'string' | 'number' | 'date' | 'boolean' | 'array' | 'object';
10
+ isRequired: boolean;
11
+ description: string;
12
+ usage: string[];
13
+ defaultValue: string | null;
14
+ sampleValue: string | null;
15
+ }
16
+ /**
17
+ * A field extracted from a query's SELECT clause.
18
+ * May be enriched with deterministic SQL types from dependency query fields or entity metadata.
19
+ */
20
+ export interface ExtractedField {
21
+ name: string;
22
+ dynamicName?: boolean;
23
+ description: string;
24
+ type: 'number' | 'string' | 'date' | 'boolean';
25
+ optional: boolean;
26
+ sourceEntity?: string | null;
27
+ sourceFieldName?: string | null;
28
+ isComputed?: boolean;
29
+ isSummary?: boolean;
30
+ computationDescription?: string;
31
+ /** Deterministic SQL base type (e.g., "nvarchar", "int", "decimal") — takes priority over generic type mapping */
32
+ sqlBaseType?: string | null;
33
+ /** Deterministic SQL full type (e.g., "nvarchar(100)", "decimal(18,2)") — takes priority over generic type mapping */
34
+ sqlFullType?: string | null;
35
+ }
36
+ /**
37
+ * Result from LLM enrichment prompt.
38
+ */
39
+ export interface ParameterExtractionResult {
40
+ parameters: ExtractedParameter[];
41
+ selectClause?: ExtractedField[];
42
+ }
43
+ /**
44
+ * Metadata inherited from a dependency query's parameter for passthrough parameters.
45
+ * Used as a fallback source for description and sampleValue when LLM enrichment is unavailable.
46
+ */
47
+ export interface PassthroughParamContext {
48
+ description: string | null;
49
+ sampleValue: string | null;
50
+ depQueryName: string;
51
+ depParamName: string;
52
+ }
53
+ /**
54
+ * A fully resolved composition reference. Produced once by the resolve stage,
55
+ * then consumed by both dependency sync and passthrough parameter extraction.
56
+ */
57
+ export interface ResolvedCompositionReference {
58
+ depQuery: QueryInfo;
59
+ referencePath: string;
60
+ alias: string | null;
61
+ parameterMapping: Record<string, string> | null;
62
+ passthroughMappings: Array<{
63
+ parentParamName: string;
64
+ depParamName: string;
65
+ }>;
66
+ }
67
+ /**
68
+ * Typed entity metadata entry extracted from SQL table references.
69
+ */
70
+ export interface EntityMetadataEntry {
71
+ name: string;
72
+ schemaName: string;
73
+ baseView: string;
74
+ fields: Array<{
75
+ name: string;
76
+ type: string;
77
+ isPrimaryKey: boolean;
78
+ }>;
79
+ }
80
+ /**
81
+ * Result of the parse stage — computed once from the SQL, consumed by all downstream stages.
82
+ */
83
+ export interface ParseResult {
84
+ analysis: MJParseResult;
85
+ deterministicParams: MJParameterInfo[];
86
+ tableRefs: SQLTableReference[];
87
+ selectColumns: SQLSelectColumn[];
88
+ }
89
+ /**
90
+ * Result of the resolve stage — deterministic resolution of composition refs,
91
+ * parameters, fields, and entity metadata.
92
+ */
93
+ export interface ResolveResult {
94
+ resolvedCompositionRefs: ResolvedCompositionReference[];
95
+ allDeterministicParams: MJParameterInfo[];
96
+ passthroughContext: Map<string, PassthroughParamContext>;
97
+ entityMetadata: EntityMetadataEntry[];
98
+ /** Non-null if SELECT * was detected and fields were expanded deterministically */
99
+ selectStarFields: ExtractedField[] | null;
100
+ }
101
+ /**
102
+ * Everything the pipeline stages need from the entity instance.
103
+ * Decouples helpers from BaseEntity so they are stateless and testable.
104
+ */
105
+ export interface QuerySyncContext {
106
+ queryID: string;
107
+ queryName: string;
108
+ sql: string;
109
+ isSaved: boolean;
110
+ contextUser: UserInfo;
111
+ metadataProvider: IMetadataProvider;
112
+ runViewProvider: IRunViewProvider;
113
+ }
114
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/custom/query-extraction/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/custom/query-extraction/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@memberjunction/core-entities-server",
3
3
  "type": "module",
4
- "version": "5.15.0",
4
+ "version": "5.17.0",
5
5
  "description": "Entity subclasses for the metadata layer of MemberJunction that are only used on server side applications like MJAPI, distributed as part of each release of MemberJunction",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -21,24 +21,24 @@
21
21
  "typescript": "^5.9.3"
22
22
  },
23
23
  "dependencies": {
24
- "@memberjunction/actions-base": "5.15.0",
25
- "@memberjunction/ai": "5.15.0",
26
- "@memberjunction/ai-core-plus": "5.15.0",
27
- "@memberjunction/ai-engine-base": "5.15.0",
28
- "@memberjunction/ai-prompts": "5.15.0",
29
- "@memberjunction/ai-provider-bundle": "5.15.0",
30
- "@memberjunction/ai-vector-dupe": "5.15.0",
31
- "@memberjunction/ai-vectors-memory": "5.15.0",
32
- "@memberjunction/aiengine": "5.15.0",
33
- "@memberjunction/core": "5.15.0",
34
- "@memberjunction/core-entities": "5.15.0",
35
- "@memberjunction/generic-database-provider": "5.15.0",
36
- "@memberjunction/doc-utils": "5.15.0",
37
- "@memberjunction/global": "5.15.0",
38
- "@memberjunction/skip-types": "5.15.0",
39
- "@memberjunction/sql-converter": "5.15.0",
40
- "@memberjunction/sql-parser": "5.15.0",
41
- "@memberjunction/sqlserver-dataprovider": "5.15.0",
24
+ "@memberjunction/actions-base": "5.17.0",
25
+ "@memberjunction/ai": "5.17.0",
26
+ "@memberjunction/ai-core-plus": "5.17.0",
27
+ "@memberjunction/ai-engine-base": "5.17.0",
28
+ "@memberjunction/ai-prompts": "5.17.0",
29
+ "@memberjunction/ai-provider-bundle": "5.17.0",
30
+ "@memberjunction/ai-vector-dupe": "5.17.0",
31
+ "@memberjunction/ai-vectors-memory": "5.17.0",
32
+ "@memberjunction/aiengine": "5.17.0",
33
+ "@memberjunction/core": "5.17.0",
34
+ "@memberjunction/core-entities": "5.17.0",
35
+ "@memberjunction/generic-database-provider": "5.17.0",
36
+ "@memberjunction/doc-utils": "5.17.0",
37
+ "@memberjunction/global": "5.17.0",
38
+ "@memberjunction/skip-types": "5.17.0",
39
+ "@memberjunction/sql-converter": "5.17.0",
40
+ "@memberjunction/sql-parser": "5.17.0",
41
+ "@memberjunction/sqlserver-dataprovider": "5.17.0",
42
42
  "rxjs": "~7.8.1",
43
43
  "zod": "~3.24.4"
44
44
  },