@memberjunction/core-entities-server 6.2.0-edge.1 → 6.2.0-edge.3
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 +7 -3
- package/dist/custom/FormComponentGuard.d.ts +48 -0
- package/dist/custom/FormComponentGuard.d.ts.map +1 -0
- package/dist/custom/FormComponentGuard.js +236 -0
- package/dist/custom/FormComponentGuard.js.map +1 -0
- package/dist/custom/FormScopeGuard.d.ts +52 -0
- package/dist/custom/FormScopeGuard.d.ts.map +1 -0
- package/dist/custom/FormScopeGuard.js +111 -0
- package/dist/custom/FormScopeGuard.js.map +1 -0
- package/dist/custom/MJAIAgentExampleEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJAIAgentExampleEntityServer.server.js +3 -2
- package/dist/custom/MJAIAgentExampleEntityServer.server.js.map +1 -1
- package/dist/custom/MJAIAgentNoteEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJAIAgentNoteEntityServer.server.js +3 -2
- package/dist/custom/MJAIAgentNoteEntityServer.server.js.map +1 -1
- package/dist/custom/MJActionEntityServer.server.js +1 -1
- package/dist/custom/MJActionEntityServer.server.js.map +1 -1
- package/dist/custom/MJComponentEntityServer.server.d.ts +30 -2
- package/dist/custom/MJComponentEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJComponentEntityServer.server.js +64 -5
- package/dist/custom/MJComponentEntityServer.server.js.map +1 -1
- package/dist/custom/MJDuplicateRunEntityServer.server.d.ts +2 -1
- package/dist/custom/MJDuplicateRunEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJDuplicateRunEntityServer.server.js +2 -2
- package/dist/custom/MJDuplicateRunEntityServer.server.js.map +1 -1
- package/dist/custom/MJEntityFormContributionEntityServer.server.d.ts +37 -0
- package/dist/custom/MJEntityFormContributionEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJEntityFormContributionEntityServer.server.js +89 -0
- package/dist/custom/MJEntityFormContributionEntityServer.server.js.map +1 -0
- package/dist/custom/MJEntityFormOverrideEntityServer.server.d.ts +37 -0
- package/dist/custom/MJEntityFormOverrideEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJEntityFormOverrideEntityServer.server.js +89 -0
- package/dist/custom/MJEntityFormOverrideEntityServer.server.js.map +1 -0
- package/dist/custom/MJInteractionEventEntityServer.server.d.ts +23 -0
- package/dist/custom/MJInteractionEventEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJInteractionEventEntityServer.server.js +70 -0
- package/dist/custom/MJInteractionEventEntityServer.server.js.map +1 -0
- package/dist/custom/MJQueryEntityServer.server.d.ts +9 -1
- package/dist/custom/MJQueryEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJQueryEntityServer.server.js +28 -8
- package/dist/custom/MJQueryEntityServer.server.js.map +1 -1
- package/dist/custom/MJRecordChangeEntityServer.server.d.ts +11 -0
- package/dist/custom/MJRecordChangeEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJRecordChangeEntityServer.server.js +103 -0
- package/dist/custom/MJRecordChangeEntityServer.server.js.map +1 -0
- package/dist/custom/MJRecordProcessEntityServer.server.d.ts +6 -2
- package/dist/custom/MJRecordProcessEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJRecordProcessEntityServer.server.js +6 -2
- package/dist/custom/MJRecordProcessEntityServer.server.js.map +1 -1
- package/dist/custom/MJRemoteOperationEntityServer.server.js +1 -1
- package/dist/custom/MJRemoteOperationEntityServer.server.js.map +1 -1
- package/dist/custom/MJRubricBandEntityServer.server.d.ts +9 -0
- package/dist/custom/MJRubricBandEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJRubricBandEntityServer.server.js +34 -0
- package/dist/custom/MJRubricBandEntityServer.server.js.map +1 -0
- package/dist/custom/MJRubricCriterionEntityServer.server.d.ts +16 -0
- package/dist/custom/MJRubricCriterionEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJRubricCriterionEntityServer.server.js +43 -0
- package/dist/custom/MJRubricCriterionEntityServer.server.js.map +1 -0
- package/dist/custom/MJRubricCriterionLevelEntityServer.server.d.ts +10 -0
- package/dist/custom/MJRubricCriterionLevelEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJRubricCriterionLevelEntityServer.server.js +43 -0
- package/dist/custom/MJRubricCriterionLevelEntityServer.server.js.map +1 -0
- package/dist/custom/MJRubricEvaluationEntityServer.server.d.ts +43 -0
- package/dist/custom/MJRubricEvaluationEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJRubricEvaluationEntityServer.server.js +243 -0
- package/dist/custom/MJRubricEvaluationEntityServer.server.js.map +1 -0
- package/dist/custom/MJRubricEvaluationScoreEntityServer.server.d.ts +26 -0
- package/dist/custom/MJRubricEvaluationScoreEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJRubricEvaluationScoreEntityServer.server.js +49 -0
- package/dist/custom/MJRubricEvaluationScoreEntityServer.server.js.map +1 -0
- package/dist/custom/MJRubricScaleEntityServer.server.d.ts +24 -0
- package/dist/custom/MJRubricScaleEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJRubricScaleEntityServer.server.js +88 -0
- package/dist/custom/MJRubricScaleEntityServer.server.js.map +1 -0
- package/dist/custom/MJRubricScaleLevelEntityServer.server.d.ts +16 -0
- package/dist/custom/MJRubricScaleLevelEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJRubricScaleLevelEntityServer.server.js +80 -0
- package/dist/custom/MJRubricScaleLevelEntityServer.server.js.map +1 -0
- package/dist/custom/MJRubricVersionEntityServer.server.d.ts +46 -0
- package/dist/custom/MJRubricVersionEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJRubricVersionEntityServer.server.js +131 -0
- package/dist/custom/MJRubricVersionEntityServer.server.js.map +1 -0
- package/dist/custom/MJTagEntityServer.server.d.ts +1 -1
- package/dist/custom/MJTagEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJTagEntityServer.server.js +7 -3
- package/dist/custom/MJTagEntityServer.server.js.map +1 -1
- package/dist/custom/MJVectorIndexEntityServer.server.d.ts +2 -1
- package/dist/custom/MJVectorIndexEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJVectorIndexEntityServer.server.js +6 -4
- package/dist/custom/MJVectorIndexEntityServer.server.js.map +1 -1
- package/dist/custom/query-extraction/pipeline.js +1 -1
- package/dist/custom/query-extraction/pipeline.js.map +1 -1
- package/dist/custom/query-extraction/resolve.d.ts +5 -2
- package/dist/custom/query-extraction/resolve.d.ts.map +1 -1
- package/dist/custom/query-extraction/resolve.js +6 -3
- package/dist/custom/query-extraction/resolve.js.map +1 -1
- package/dist/custom/query-extraction/sync.d.ts.map +1 -1
- package/dist/custom/query-extraction/sync.js +4 -2
- package/dist/custom/query-extraction/sync.js.map +1 -1
- package/dist/custom/rubrics/evaluationSubmit.d.ts +95 -0
- package/dist/custom/rubrics/evaluationSubmit.d.ts.map +1 -0
- package/dist/custom/rubrics/evaluationSubmit.js +142 -0
- package/dist/custom/rubrics/evaluationSubmit.js.map +1 -0
- package/dist/custom/rubrics/scaleFreeze.d.ts +21 -0
- package/dist/custom/rubrics/scaleFreeze.d.ts.map +1 -0
- package/dist/custom/rubrics/scaleFreeze.js +30 -0
- package/dist/custom/rubrics/scaleFreeze.js.map +1 -0
- package/dist/custom/rubrics/statusRules.d.ts +13 -0
- package/dist/custom/rubrics/statusRules.d.ts.map +1 -0
- package/dist/custom/rubrics/statusRules.js +57 -0
- package/dist/custom/rubrics/statusRules.js.map +1 -0
- package/dist/custom/rubrics/versionPublish.d.ts +67 -0
- package/dist/custom/rubrics/versionPublish.d.ts.map +1 -0
- package/dist/custom/rubrics/versionPublish.js +222 -0
- package/dist/custom/rubrics/versionPublish.js.map +1 -0
- package/dist/engines/IdentityClaimEngineServer.d.ts +9 -0
- package/dist/engines/IdentityClaimEngineServer.d.ts.map +1 -1
- package/dist/engines/IdentityClaimEngineServer.js +38 -8
- package/dist/engines/IdentityClaimEngineServer.js.map +1 -1
- package/dist/engines/QueryEngineServer.d.ts.map +1 -1
- package/dist/engines/QueryEngineServer.js +15 -16
- package/dist/engines/QueryEngineServer.js.map +1 -1
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -1
- package/package.json +30 -28
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { BaseEntity } from '@memberjunction/core';
|
|
8
|
+
import { MJRubricScaleLevelEntity } from '@memberjunction/core-entities';
|
|
9
|
+
import { RegisterClass } from '@memberjunction/global';
|
|
10
|
+
import { FrozenScaleChange } from './rubrics/scaleFreeze.js';
|
|
11
|
+
/**
|
|
12
|
+
* A level whose scale is used by a published version cannot change its value
|
|
13
|
+
* or normalized value. Label and description may change. The scale server
|
|
14
|
+
* covers the scale row; this server covers the level row, which is a
|
|
15
|
+
* separate save.
|
|
16
|
+
*/
|
|
17
|
+
let MJRubricScaleLevelEntityServer = class MJRubricScaleLevelEntityServer extends MJRubricScaleLevelEntity {
|
|
18
|
+
/**
|
|
19
|
+
* Refuses a value edit when a published version uses this scale.
|
|
20
|
+
* A description or label edit passes.
|
|
21
|
+
*/
|
|
22
|
+
async ValidateAsync() {
|
|
23
|
+
const result = await super.ValidateAsync();
|
|
24
|
+
const provider = this.ProviderToUse;
|
|
25
|
+
if (!provider?.RunView || !this.ScaleID)
|
|
26
|
+
return result;
|
|
27
|
+
const criteria = await provider.RunView({ EntityName: 'MJ: Rubric Criteria', ExtraFilter: `ScaleID='${this.ScaleID}'` }, this.ContextCurrentUser);
|
|
28
|
+
const versionIds = [...new Set((criteria.Results ?? []).map(row => String(row.RubricVersionID ?? '')).filter(id => id))];
|
|
29
|
+
let used = false;
|
|
30
|
+
for (const versionId of versionIds) {
|
|
31
|
+
const versions = await provider.RunView({ EntityName: 'MJ: Rubric Versions', ExtraFilter: `ID='${versionId}'` }, this.ContextCurrentUser);
|
|
32
|
+
if ((versions.Results ?? []).some(row => row.Status === 'Published'))
|
|
33
|
+
used = true;
|
|
34
|
+
}
|
|
35
|
+
if (!used)
|
|
36
|
+
return result;
|
|
37
|
+
const stored = await provider.RunView({ EntityName: 'MJ: Rubric Scale Levels', ExtraFilter: `ID='${this.ID}'` }, this.ContextCurrentUser);
|
|
38
|
+
const scales = await provider.RunView({ EntityName: 'MJ: Rubric Scales', ExtraFilter: `ID='${this.ScaleID}'` }, this.ContextCurrentUser);
|
|
39
|
+
const storedLevel = stored.Results?.[0];
|
|
40
|
+
const scale = scales.Results?.[0];
|
|
41
|
+
if (!scale)
|
|
42
|
+
return result;
|
|
43
|
+
if (!storedLevel) {
|
|
44
|
+
result.Success = false;
|
|
45
|
+
result.Errors.push({ Message: 'A scale used by a published version cannot add a level.', FieldName: 'Value' });
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
const shape = (level) => ({
|
|
49
|
+
scaleType: String(scale.ScaleType ?? 'Levels'),
|
|
50
|
+
minValue: (scale.MinValue ?? null),
|
|
51
|
+
maxValue: (scale.MaxValue ?? null),
|
|
52
|
+
step: (scale.Step ?? null),
|
|
53
|
+
higherIsBetter: Boolean(scale.HigherIsBetter),
|
|
54
|
+
levels: [level],
|
|
55
|
+
});
|
|
56
|
+
const message = FrozenScaleChange(true, shape({
|
|
57
|
+
id: this.ID,
|
|
58
|
+
value: Number(storedLevel.Value),
|
|
59
|
+
normalizedValue: Number(storedLevel.NormalizedValue),
|
|
60
|
+
label: String(storedLevel.Label ?? ''),
|
|
61
|
+
description: (storedLevel.Description ?? null),
|
|
62
|
+
}), shape({
|
|
63
|
+
id: this.ID,
|
|
64
|
+
value: this.Value,
|
|
65
|
+
normalizedValue: this.NormalizedValue,
|
|
66
|
+
label: this.Label,
|
|
67
|
+
description: this.Description,
|
|
68
|
+
}));
|
|
69
|
+
if (message) {
|
|
70
|
+
result.Success = false;
|
|
71
|
+
result.Errors.push({ Message: message, FieldName: 'NormalizedValue' });
|
|
72
|
+
}
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
MJRubricScaleLevelEntityServer = __decorate([
|
|
77
|
+
RegisterClass(BaseEntity, 'MJ: Rubric Scale Levels')
|
|
78
|
+
], MJRubricScaleLevelEntityServer);
|
|
79
|
+
export { MJRubricScaleLevelEntityServer };
|
|
80
|
+
//# sourceMappingURL=MJRubricScaleLevelEntityServer.server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MJRubricScaleLevelEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJRubricScaleLevelEntityServer.server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type EntitySaveOptions, type ValidationResult } from '@memberjunction/core';
|
|
2
|
+
import { MJRubricVersionEntity } from '@memberjunction/core-entities';
|
|
3
|
+
import type { RubricVersionSnapshot } from '@memberjunction/rubrics-base';
|
|
4
|
+
import { type PublishResult } from './rubrics/versionPublish.js';
|
|
5
|
+
/**
|
|
6
|
+
* Draft, publish, and hash a rubric version.
|
|
7
|
+
*
|
|
8
|
+
* `publish` refuses a tree with duplicate keys, a missing or cyclic parent, a
|
|
9
|
+
* criterion without a scale, or a gate without a minimum, and refuses a draft
|
|
10
|
+
* identical to its base. It writes the bump, version numbers, change details,
|
|
11
|
+
* ContentHash, and ScoringHash from RubricVersionDiff. It does not write a
|
|
12
|
+
* second copy of the scoring math.
|
|
13
|
+
*/
|
|
14
|
+
export declare class MJRubricVersionEntityServer extends MJRubricVersionEntity {
|
|
15
|
+
/**
|
|
16
|
+
* Deep-clones criteria onto a new draft. Keys are kept. Ids and parent ids
|
|
17
|
+
* are new. The caller sets Status to Draft and BasedOnVersionID to the source.
|
|
18
|
+
*/
|
|
19
|
+
CloneNodes(source: RubricVersionSnapshot['nodes']): RubricVersionSnapshot['nodes'];
|
|
20
|
+
/**
|
|
21
|
+
* Computes the publish result and copies it onto this version. Refuses the
|
|
22
|
+
* cases documented on the class. The caller saves inside its transaction.
|
|
23
|
+
*/
|
|
24
|
+
Publish(base: RubricVersionSnapshot | null, draft: RubricVersionSnapshot, requestedBump?: 'Major' | 'Minor' | 'Patch' | null): Promise<PublishResult>;
|
|
25
|
+
/**
|
|
26
|
+
* A new version is Draft. Draft becomes Published only through Publish.
|
|
27
|
+
* A frozen version moves only between Published and Retired, and none of
|
|
28
|
+
* the columns the immutability trigger freezes may change on that move.
|
|
29
|
+
*/
|
|
30
|
+
ValidateAsync(): Promise<ValidationResult>;
|
|
31
|
+
/**
|
|
32
|
+
* A repeat metadata push reapplies the draft file onto a version the
|
|
33
|
+
* publication file already published. Leaving Status untouched keeps the
|
|
34
|
+
* loaded row clean, so sync counts it unchanged instead of updating it.
|
|
35
|
+
*/
|
|
36
|
+
Set(fieldName: string, value: unknown): void;
|
|
37
|
+
/**
|
|
38
|
+
* When Status moves Draft → Published, loads the draft tree and its base
|
|
39
|
+
* version and calls {@link publish}. Setting Status and saving is enough.
|
|
40
|
+
* Refuses the cases documented on the class. Writes PublishedAt with the
|
|
41
|
+
* status, which the published-version check constraint requires, and stamps
|
|
42
|
+
* PublishedByUserID from the current user. Retiring stamps RetiredAt.
|
|
43
|
+
*/
|
|
44
|
+
Save(options?: EntitySaveOptions): Promise<boolean>;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=MJRubricVersionEntityServer.server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MJRubricVersionEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJRubricVersionEntityServer.server.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E,OAAO,EAAgE,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE/H;;;;;;;;GAQG;AACH,qBACa,2BAA4B,SAAQ,qBAAqB;IAClE;;;OAGG;IACI,UAAU,CAAC,MAAM,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,qBAAqB,CAAC,OAAO,CAAC;IAIzF;;;OAGG;IACU,OAAO,CAChB,IAAI,EAAE,qBAAqB,GAAG,IAAI,EAClC,KAAK,EAAE,qBAAqB,EAC5B,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,GACnD,OAAO,CAAC,aAAa,CAAC;IAezB;;;;OAIG;IACmB,aAAa,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAkBhE;;;;OAIG;IACa,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAK5D;;;;;;OAMG;IACmB,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;CAmC5E"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { BaseEntity, CompositeKey } from '@memberjunction/core';
|
|
8
|
+
import { MJRubricVersionEntity } from '@memberjunction/core-entities';
|
|
9
|
+
import { RegisterClass } from '@memberjunction/global';
|
|
10
|
+
import { FROZEN_VERSION_FIELDS, PushFailure, VersionStatusError } from './rubrics/statusRules.js';
|
|
11
|
+
import { CloneVersionNodes, LoadDraftForPublish, PublishRubricVersion } from './rubrics/versionPublish.js';
|
|
12
|
+
/**
|
|
13
|
+
* Draft, publish, and hash a rubric version.
|
|
14
|
+
*
|
|
15
|
+
* `publish` refuses a tree with duplicate keys, a missing or cyclic parent, a
|
|
16
|
+
* criterion without a scale, or a gate without a minimum, and refuses a draft
|
|
17
|
+
* identical to its base. It writes the bump, version numbers, change details,
|
|
18
|
+
* ContentHash, and ScoringHash from RubricVersionDiff. It does not write a
|
|
19
|
+
* second copy of the scoring math.
|
|
20
|
+
*/
|
|
21
|
+
let MJRubricVersionEntityServer = class MJRubricVersionEntityServer extends MJRubricVersionEntity {
|
|
22
|
+
/**
|
|
23
|
+
* Deep-clones criteria onto a new draft. Keys are kept. Ids and parent ids
|
|
24
|
+
* are new. The caller sets Status to Draft and BasedOnVersionID to the source.
|
|
25
|
+
*/
|
|
26
|
+
CloneNodes(source) {
|
|
27
|
+
return CloneVersionNodes(source);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Computes the publish result and copies it onto this version. Refuses the
|
|
31
|
+
* cases documented on the class. The caller saves inside its transaction.
|
|
32
|
+
*/
|
|
33
|
+
async Publish(base, draft, requestedBump) {
|
|
34
|
+
const result = await PublishRubricVersion(base, draft, requestedBump);
|
|
35
|
+
this.Status = 'Published';
|
|
36
|
+
this.MajorVersion = result.majorVersion;
|
|
37
|
+
this.MinorVersion = result.minorVersion;
|
|
38
|
+
this.PatchVersion = result.patchVersion;
|
|
39
|
+
this.ComputedBump = result.computedBump;
|
|
40
|
+
this.AppliedBump = result.appliedBump;
|
|
41
|
+
this.ContentHash = result.contentHash;
|
|
42
|
+
this.ScoringHash = result.scoringHash;
|
|
43
|
+
this.ChangeDetails = JSON.stringify(result.changeDetails);
|
|
44
|
+
this.PublishedAt = result.publishedAt;
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* A new version is Draft. Draft becomes Published only through Publish.
|
|
49
|
+
* A frozen version moves only between Published and Retired, and none of
|
|
50
|
+
* the columns the immutability trigger freezes may change on that move.
|
|
51
|
+
*/
|
|
52
|
+
async ValidateAsync() {
|
|
53
|
+
const result = await super.ValidateAsync();
|
|
54
|
+
const status = this.GetFieldByName('Status');
|
|
55
|
+
const previous = this.IsSaved === false ? null : String(status?.OldValue ?? this.Status);
|
|
56
|
+
const statusError = VersionStatusError(this.IsSaved === false, previous, this.Status);
|
|
57
|
+
if (statusError)
|
|
58
|
+
PushFailure(result, 'Status', statusError, this.Status);
|
|
59
|
+
if (this.IsSaved !== false && previous && previous !== 'Draft') {
|
|
60
|
+
for (const name of FROZEN_VERSION_FIELDS) {
|
|
61
|
+
const field = this.GetFieldByName(name);
|
|
62
|
+
if (field?.Dirty) {
|
|
63
|
+
PushFailure(result, name, 'A published rubric version is immutable. Create a new draft version to change it; only its Status may move between Published and Retired.', field.Value);
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* A repeat metadata push reapplies the draft file onto a version the
|
|
72
|
+
* publication file already published. Leaving Status untouched keeps the
|
|
73
|
+
* loaded row clean, so sync counts it unchanged instead of updating it.
|
|
74
|
+
*/
|
|
75
|
+
Set(fieldName, value) {
|
|
76
|
+
if (fieldName === 'Status' && value === 'Draft' && this.IsSaved !== false && (this.Status === 'Published' || this.Status === 'Retired'))
|
|
77
|
+
return;
|
|
78
|
+
super.Set(fieldName, value);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* When Status moves Draft → Published, loads the draft tree and its base
|
|
82
|
+
* version and calls {@link publish}. Setting Status and saving is enough.
|
|
83
|
+
* Refuses the cases documented on the class. Writes PublishedAt with the
|
|
84
|
+
* status, which the published-version check constraint requires, and stamps
|
|
85
|
+
* PublishedByUserID from the current user. Retiring stamps RetiredAt.
|
|
86
|
+
*/
|
|
87
|
+
async Save(options) {
|
|
88
|
+
const incoming = this.GetFieldByName('Status');
|
|
89
|
+
if (this.IsSaved !== false && incoming?.OldValue === 'Published' && this.Status === 'Draft') {
|
|
90
|
+
this.Status = 'Published';
|
|
91
|
+
if (!this.Dirty)
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
if (this.IsSaved === false && this.Status === 'Published' && this.ID) {
|
|
95
|
+
const provider = this.ProviderToUse;
|
|
96
|
+
if (provider?.GetEntityObject) {
|
|
97
|
+
const existing = await provider.GetEntityObject('MJ: Rubric Versions', this.ContextCurrentUser);
|
|
98
|
+
if (await existing.InnerLoad(CompositeKey.FromID(this.ID))) {
|
|
99
|
+
if (existing.Status === 'Draft') {
|
|
100
|
+
existing.Status = 'Published';
|
|
101
|
+
return existing.Save(options);
|
|
102
|
+
}
|
|
103
|
+
if (existing.Status === 'Published' || existing.Status === 'Retired')
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
const status = this.GetFieldByName('Status');
|
|
109
|
+
if (status?.Dirty && status.OldValue === 'Draft' && this.Status === 'Published') {
|
|
110
|
+
const provider = this.ProviderToUse;
|
|
111
|
+
if (!provider?.RunView)
|
|
112
|
+
throw new Error('Publishing a rubric version requires a provider that can load the draft tree.');
|
|
113
|
+
const run = (entityName, filter) => provider.RunView({ EntityName: entityName, ExtraFilter: filter }, this.ContextCurrentUser);
|
|
114
|
+
const loaded = await LoadDraftForPublish(run, this.ID, this.RubricID, this.BasedOnVersionID);
|
|
115
|
+
const requested = this.RequestedBump ?? null;
|
|
116
|
+
await this.Publish(loaded.base, loaded.draft, requested);
|
|
117
|
+
const userId = this.ContextCurrentUser?.ID;
|
|
118
|
+
if (userId && !this.PublishedByUserID)
|
|
119
|
+
this.PublishedByUserID = userId;
|
|
120
|
+
}
|
|
121
|
+
if (status?.Dirty && this.Status === 'Retired' && !this.RetiredAt) {
|
|
122
|
+
this.RetiredAt = new Date();
|
|
123
|
+
}
|
|
124
|
+
return super.Save(options);
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
MJRubricVersionEntityServer = __decorate([
|
|
128
|
+
RegisterClass(BaseEntity, 'MJ: Rubric Versions')
|
|
129
|
+
], MJRubricVersionEntityServer);
|
|
130
|
+
export { MJRubricVersionEntityServer };
|
|
131
|
+
//# sourceMappingURL=MJRubricVersionEntityServer.server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MJRubricVersionEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJRubricVersionEntityServer.server.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ export declare class MJTagEntityServer extends MJTagEntity {
|
|
|
29
29
|
Save(options?: EntitySaveOptions): Promise<boolean>;
|
|
30
30
|
Delete(): Promise<boolean>;
|
|
31
31
|
/**
|
|
32
|
-
* Refresh `EmbeddingVector` + `EmbeddingModelID` when the tag is new or its
|
|
32
|
+
* Refresh `EmbeddingVector` + `EmbeddingVectorBinary` + `EmbeddingModelID` when the tag is new or its
|
|
33
33
|
* Name/Description has changed. Failures here log and clear the vector
|
|
34
34
|
* fields rather than blocking the save — the tag is still functional, just
|
|
35
35
|
* without semantic matching until the next successful refresh.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MJTagEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJTagEntityServer.server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,iBAAiB,EAAgC,qBAAqB,EAA4C,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEtL,OAAO,EAAE,WAAW,EAAoB,MAAM,+BAA+B,CAAC;AAI9E;;;;;;;;;;;;;GAaG;AACH,qBACa,iBAAkB,SAAQ,WAAW;IAE9C,yEAAyE;IACzE,IAAoB,0BAA0B,IAAI,OAAO,CAExD;cAEwB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAI5E,sBAAsB,IAAI,OAAO;IAIjD;;;;;OAKG;IACmB,aAAa,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAsB1C,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BnD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IA2ChD;;;;;OAKG;YACW,wBAAwB;
|
|
1
|
+
{"version":3,"file":"MJTagEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJTagEntityServer.server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,iBAAiB,EAAgC,qBAAqB,EAA4C,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEtL,OAAO,EAAE,WAAW,EAAoB,MAAM,+BAA+B,CAAC;AAI9E;;;;;;;;;;;;;GAaG;AACH,qBACa,iBAAkB,SAAQ,WAAW;IAE9C,yEAAyE;IACzE,IAAoB,0BAA0B,IAAI,OAAO,CAExD;cAEwB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAI5E,sBAAsB,IAAI,OAAO;IAIjD;;;;;OAKG;IACmB,aAAa,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAsB1C,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BnD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IA2ChD;;;;;OAKG;YACW,wBAAwB;YAsCxB,iBAAiB;CAUlC"}
|
|
@@ -5,7 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { BaseEntity, LogError, LogStatus, RunView, ValidationErrorInfo, ValidationErrorType } from '@memberjunction/core';
|
|
8
|
-
import { RegisterClass } from '@memberjunction/global';
|
|
8
|
+
import { Float32VectorToBase64, RegisterClass } from '@memberjunction/global';
|
|
9
9
|
import { MJTagEntity } from '@memberjunction/core-entities';
|
|
10
10
|
import { TagEngine } from '@memberjunction/tag-engine';
|
|
11
11
|
import { EmbedTextLocalHelper } from './util.js';
|
|
@@ -68,7 +68,7 @@ let MJTagEntityServer = class MJTagEntityServer extends MJTagEntity {
|
|
|
68
68
|
// Mirror to in-memory vector service. Reads the just-persisted vector
|
|
69
69
|
// from this.EmbeddingVector — no recompute.
|
|
70
70
|
try {
|
|
71
|
-
if (this.Status === 'Active' && this.EmbeddingVector) {
|
|
71
|
+
if (this.Status === 'Active' && (this.EmbeddingVectorBinary || this.EmbeddingVector)) {
|
|
72
72
|
TagEngine.Instance.AddOrUpdateSingleTagEmbeddingFromPersisted(this);
|
|
73
73
|
}
|
|
74
74
|
else {
|
|
@@ -125,7 +125,7 @@ let MJTagEntityServer = class MJTagEntityServer extends MJTagEntity {
|
|
|
125
125
|
return deleteResult;
|
|
126
126
|
}
|
|
127
127
|
/**
|
|
128
|
-
* Refresh `EmbeddingVector` + `EmbeddingModelID` when the tag is new or its
|
|
128
|
+
* Refresh `EmbeddingVector` + `EmbeddingVectorBinary` + `EmbeddingModelID` when the tag is new or its
|
|
129
129
|
* Name/Description has changed. Failures here log and clear the vector
|
|
130
130
|
* fields rather than blocking the save — the tag is still functional, just
|
|
131
131
|
* without semantic matching until the next successful refresh.
|
|
@@ -140,6 +140,7 @@ let MJTagEntityServer = class MJTagEntityServer extends MJTagEntity {
|
|
|
140
140
|
const trimmedName = this.Name?.trim();
|
|
141
141
|
if (!trimmedName) {
|
|
142
142
|
this.EmbeddingVector = null;
|
|
143
|
+
this.EmbeddingVectorBinary = null;
|
|
143
144
|
this.EmbeddingModelID = null;
|
|
144
145
|
return;
|
|
145
146
|
}
|
|
@@ -149,17 +150,20 @@ let MJTagEntityServer = class MJTagEntityServer extends MJTagEntity {
|
|
|
149
150
|
const result = await this.EmbedTextLocal(text);
|
|
150
151
|
if (result?.vector && result.vector.length > 0) {
|
|
151
152
|
this.EmbeddingVector = JSON.stringify(result.vector);
|
|
153
|
+
this.EmbeddingVectorBinary = Float32VectorToBase64(result.vector);
|
|
152
154
|
if (result.modelID)
|
|
153
155
|
this.EmbeddingModelID = result.modelID;
|
|
154
156
|
}
|
|
155
157
|
else {
|
|
156
158
|
this.EmbeddingVector = null;
|
|
159
|
+
this.EmbeddingVectorBinary = null;
|
|
157
160
|
this.EmbeddingModelID = null;
|
|
158
161
|
}
|
|
159
162
|
}
|
|
160
163
|
catch (error) {
|
|
161
164
|
LogError(`[MJTagEntityServer] Embedding refresh failed for tag "${this.Name}": ${error instanceof Error ? error.message : String(error)}`);
|
|
162
165
|
this.EmbeddingVector = null;
|
|
166
|
+
this.EmbeddingVectorBinary = null;
|
|
163
167
|
this.EmbeddingModelID = null;
|
|
164
168
|
}
|
|
165
169
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MJTagEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJTagEntityServer.server.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAqB,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAyB,mBAAmB,EAAE,mBAAmB,EAAoB,MAAM,sBAAsB,CAAC;AACtL,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"MJTagEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJTagEntityServer.server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EntitySaveOptions } from "@memberjunction/core";
|
|
1
2
|
import { MJVectorIndexEntity } from "@memberjunction/core-entities";
|
|
2
3
|
/**
|
|
3
4
|
* Server-side VectorIndex entity that syncs with the vector database provider.
|
|
@@ -8,7 +9,7 @@ export declare class MJVectorIndexEntityServer extends MJVectorIndexEntity {
|
|
|
8
9
|
/**
|
|
9
10
|
* After saving, if this is a new record, create the index in the provider.
|
|
10
11
|
*/
|
|
11
|
-
Save(): Promise<boolean>;
|
|
12
|
+
Save(options?: EntitySaveOptions): Promise<boolean>;
|
|
12
13
|
/**
|
|
13
14
|
* Before deleting, remove the index from the provider.
|
|
14
15
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MJVectorIndexEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJVectorIndexEntityServer.server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MJVectorIndexEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJVectorIndexEntityServer.server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,iBAAiB,EAA0C,MAAM,sBAAsB,CAAC;AAE7G,OAAO,EAAE,mBAAmB,EAA0B,MAAM,+BAA+B,CAAC;AAK5F;;;;GAIG;AACH,qBACa,yBAA0B,SAAQ,mBAAmB;IAC9D;;OAEG;IACmB,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAazE;;OAEG;IACmB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAShD;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;OAEG;YACW,qBAAqB;IAuCnC;;OAEG;YACW,uBAAuB;IAmBrC;;;OAGG;YACW,mBAAmB;IAgDjC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;OAGG;YACW,oBAAoB;CAiCrC"}
|
|
@@ -9,6 +9,7 @@ import { RegisterClass, MJGlobal } from "@memberjunction/global";
|
|
|
9
9
|
import { MJVectorIndexEntity } from "@memberjunction/core-entities";
|
|
10
10
|
import { VectorDBBase } from "@memberjunction/ai-vectordb";
|
|
11
11
|
import { GetAIAPIKey } from "@memberjunction/ai";
|
|
12
|
+
import { AIEngineBase } from "@memberjunction/ai-engine-base";
|
|
12
13
|
/**
|
|
13
14
|
* Server-side VectorIndex entity that syncs with the vector database provider.
|
|
14
15
|
* On create: calls vectorDB.CreateIndex() to provision the index in the provider (e.g., Pinecone).
|
|
@@ -18,9 +19,9 @@ let MJVectorIndexEntityServer = class MJVectorIndexEntityServer extends MJVector
|
|
|
18
19
|
/**
|
|
19
20
|
* After saving, if this is a new record, create the index in the provider.
|
|
20
21
|
*/
|
|
21
|
-
async Save() {
|
|
22
|
+
async Save(options) {
|
|
22
23
|
const isNew = this.IsSaved === false;
|
|
23
|
-
const saveResult = await super.Save();
|
|
24
|
+
const saveResult = await super.Save(options);
|
|
24
25
|
if (saveResult && isNew) {
|
|
25
26
|
this.createIndexInProvider().catch((error) => {
|
|
26
27
|
LogError(`Failed to create index "${this.Name}" in vector DB provider`, undefined, error);
|
|
@@ -108,8 +109,9 @@ let MJVectorIndexEntityServer = class MJVectorIndexEntityServer extends MJVector
|
|
|
108
109
|
LogError(`Cannot delete index: no VectorDB instance for database ${this.VectorDatabaseID}`);
|
|
109
110
|
return;
|
|
110
111
|
}
|
|
111
|
-
//
|
|
112
|
-
|
|
112
|
+
// Same rule every read path uses to address the index on its provider (ExternalID, else Name).
|
|
113
|
+
// An index provisioned through Save() above always has ExternalID set to its sanitized name.
|
|
114
|
+
const providerIndexName = AIEngineBase.Instance.GetProviderIndexName(this);
|
|
113
115
|
LogStatus(`Deleting index "${providerIndexName}" from vector DB provider...`);
|
|
114
116
|
const result = await vectorDB.DeleteIndex({ id: providerIndexName });
|
|
115
117
|
if (result.success) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MJVectorIndexEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJVectorIndexEntityServer.server.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"MJVectorIndexEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJVectorIndexEntityServer.server.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,7 +50,7 @@ function resolve(ctx, parseResult) {
|
|
|
50
50
|
const { params: passthroughParams, contextMap: passthroughContext } = BuildPassthroughParams(resolvedCompositionRefs);
|
|
51
51
|
const allDeterministicParams = MergePassthroughParams(parseResult.DeterministicParams, passthroughParams);
|
|
52
52
|
// Entity metadata (for LLM context and entity sync)
|
|
53
|
-
const entityMetadata = ExtractEntityMetadataFromSQL(ctx.sql, parseResult.TableRefs, md);
|
|
53
|
+
const entityMetadata = ExtractEntityMetadataFromSQL(ctx.sql, parseResult.TableRefs, md, ctx.platform);
|
|
54
54
|
// Field resolution: try SELECT * expansion first (uses entity metadata), fall back to explicit SELECT columns
|
|
55
55
|
const resolvedFields = BuildFieldsForSelectStar(ctx.sql, parseResult.TableRefs, parseResult.SelectColumns, md)
|
|
56
56
|
?? BuildFieldsFromSelectColumns(parseResult.SelectColumns);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/custom/query-extraction/pipeline.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/custom/query-extraction/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Contains all deterministic resolution logic — no LLM calls, no database writes.
|
|
5
5
|
* Every function is stateless: context is passed in as parameters rather than via `this`.
|
|
6
6
|
*/
|
|
7
|
-
import { EntityInfo, IMetadataProvider } from "@memberjunction/core";
|
|
7
|
+
import { DatabasePlatform, EntityInfo, IMetadataProvider } from "@memberjunction/core";
|
|
8
8
|
import { MJQueryEntityExtended, MJQueryDependencyEntity } from "@memberjunction/core-entities";
|
|
9
9
|
import type { MJParameterInfo, SQLSelectColumn, SQLTableReference } from "@memberjunction/sql-parser";
|
|
10
10
|
import type { EntityMetadataEntry, ExtractedField, PassthroughParamContext, ResolvedCompositionReference } from "./types.js";
|
|
@@ -109,8 +109,11 @@ export declare function ExpandWildcardFields(fields: ExtractedField[], md: IMeta
|
|
|
109
109
|
/**
|
|
110
110
|
* Extracts entity metadata from the SQL to provide context for parameter type inference.
|
|
111
111
|
* Uses SQLParser for robust SQL parsing with MJ template support.
|
|
112
|
+
*
|
|
113
|
+
* @param platform The platform the SQL is written for; selects the grammar used to read its
|
|
114
|
+
* column references. Defaults to SQL Server.
|
|
112
115
|
*/
|
|
113
|
-
export declare function ExtractEntityMetadataFromSQL(sql: string, tableRefs: SQLTableReference[], md: IMetadataProvider): EntityMetadataEntry[];
|
|
116
|
+
export declare function ExtractEntityMetadataFromSQL(sql: string, tableRefs: SQLTableReference[], md: Pick<IMetadataProvider, 'Entities'>, platform?: DatabasePlatform): EntityMetadataEntry[];
|
|
114
117
|
/**
|
|
115
118
|
* Detects circular dependencies by walking the dependency graph.
|
|
116
119
|
* Returns a descriptive error string if a cycle is found, or null if clean.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../src/custom/query-extraction/resolve.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAA6B,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../src/custom/query-extraction/resolve.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,iBAAiB,EAA6B,MAAM,sBAAsB,CAAC;AAClH,OAAO,EAAE,qBAAqB,EAAsB,uBAAuB,EAAe,MAAM,+BAA+B,CAAC;AAKhI,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEtG,OAAO,KAAK,EACR,mBAAmB,EACnB,cAAc,EACd,uBAAuB,EACvB,4BAA4B,EAC/B,MAAM,SAAS,CAAC;AAOjB;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CACxC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,qBAAqB,EAAE,GACpC,4BAA4B,EAAE,CAyChC;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CACzC,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,UAAU,EAAE,qBAAqB,EAAE,GACpC,qBAAqB,GAAG,SAAS,CAcnC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAClC,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,GAC5F;IACC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAChD,mBAAmB,EAAE,KAAK,CAAC;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjF,CAsBA;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmBjF;AAOD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAClC,YAAY,EAAE,4BAA4B,EAAE,GAC7C;IACC,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CACpD,CAkCA;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAClC,mBAAmB,EAAE,eAAe,EAAE,EACtC,iBAAiB,EAAE,eAAe,EAAE,GACrC,eAAe,EAAE,CAcnB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CACzC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GACzD,eAAe,CAAC,MAAM,CAAC,CAGzB;AAOD;;;;;;;;;;;;GAYG;AACH,wBAAgB,4BAA4B,CACxC,aAAa,EAAE,eAAe,EAAE,GACjC,cAAc,EAAE,GAAG,IAAI,CASzB;AAqBD;;;;GAIG;AACH,wBAAgB,wBAAwB,CACpC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,iBAAiB,EAAE,EAC9B,aAAa,EAAE,eAAe,EAAE,EAChC,EAAE,EAAE,iBAAiB,GACtB,cAAc,EAAE,GAAG,IAAI,CAWzB;AA6FD;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAC5C,MAAM,EAAE,cAAc,EAAE,EACxB,YAAY,EAAE,4BAA4B,EAAE,EAC5C,aAAa,EAAE,eAAe,EAAE,EAChC,EAAE,EAAE,iBAAiB,GACtB,cAAc,EAAE,CAmBlB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kCAAkC,CAC9C,MAAM,EAAE,cAAc,EAAE,EACxB,aAAa,EAAE,eAAe,EAAE,EAChC,SAAS,EAAE,iBAAiB,EAAE,EAC9B,EAAE,EAAE,iBAAiB,GACtB,cAAc,EAAE,CAyBlB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAChC,MAAM,EAAE,cAAc,EAAE,EACxB,EAAE,EAAE,iBAAiB,GACtB,cAAc,EAAE,CAsBlB;AAOD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CACxC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,iBAAiB,EAAE,EAC9B,EAAE,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,EACvC,QAAQ,GAAE,gBAA8B,GACzC,mBAAmB,EAAE,CA4BvB;AAOD;;;GAGG;AACH,wBAAgB,sBAAsB,CAClC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,KAAK,CAAC;IAAE,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAC,EACjD,eAAe,EAAE,uBAAuB,EAAE,EAC1C,UAAU,EAAE,qBAAqB,EAAE,GACpC,MAAM,GAAG,IAAI,CAef;AA8VD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAK5F"}
|
|
@@ -9,7 +9,7 @@ import { QueryEngine } from "@memberjunction/core-entities";
|
|
|
9
9
|
import { QueryCompositionEngine } from "@memberjunction/generic-database-provider";
|
|
10
10
|
import { UUIDsEqual } from "@memberjunction/global";
|
|
11
11
|
import { SQLParser } from "@memberjunction/sql-parser";
|
|
12
|
-
import {
|
|
12
|
+
import { GetDialect } from "@memberjunction/sql-dialect";
|
|
13
13
|
// ═══════════════════════════════════════════════════
|
|
14
14
|
// Composition Reference Resolution
|
|
15
15
|
// ═══════════════════════════════════════════════════
|
|
@@ -394,11 +394,14 @@ export function ExpandWildcardFields(fields, md) {
|
|
|
394
394
|
/**
|
|
395
395
|
* Extracts entity metadata from the SQL to provide context for parameter type inference.
|
|
396
396
|
* Uses SQLParser for robust SQL parsing with MJ template support.
|
|
397
|
+
*
|
|
398
|
+
* @param platform The platform the SQL is written for; selects the grammar used to read its
|
|
399
|
+
* column references. Defaults to SQL Server.
|
|
397
400
|
*/
|
|
398
|
-
export function ExtractEntityMetadataFromSQL(sql, tableRefs, md) {
|
|
401
|
+
export function ExtractEntityMetadataFromSQL(sql, tableRefs, md, platform = 'sqlserver') {
|
|
399
402
|
const results = [];
|
|
400
403
|
try {
|
|
401
|
-
const columnRefs = SQLParser.ExtractColumnRefs(sql,
|
|
404
|
+
const columnRefs = SQLParser.ExtractColumnRefs(sql, GetDialect(platform));
|
|
402
405
|
for (const tableRef of tableRefs) {
|
|
403
406
|
const matchingEntity = findEntityByTableRef(md, tableRef);
|
|
404
407
|
if (matchingEntity) {
|