@memberjunction/codegen-lib 3.4.0 → 4.1.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.
- package/README.md +828 -630
- package/dist/Angular/angular-codegen.d.ts +10 -3
- package/dist/Angular/angular-codegen.d.ts.map +1 -1
- package/dist/Angular/angular-codegen.js +164 -199
- package/dist/Angular/angular-codegen.js.map +1 -1
- package/dist/Angular/entity-data-grid-related-entity-component.d.ts +1 -1
- package/dist/Angular/entity-data-grid-related-entity-component.d.ts.map +1 -1
- package/dist/Angular/entity-data-grid-related-entity-component.js +8 -10
- package/dist/Angular/entity-data-grid-related-entity-component.js.map +1 -1
- package/dist/Angular/join-grid-related-entity-component.d.ts +1 -1
- package/dist/Angular/join-grid-related-entity-component.js +8 -36
- package/dist/Angular/join-grid-related-entity-component.js.map +1 -1
- package/dist/Angular/related-entity-components.js +13 -79
- package/dist/Angular/related-entity-components.js.map +1 -1
- package/dist/Angular/timeline-related-entity-component.d.ts +1 -1
- package/dist/Angular/timeline-related-entity-component.js +14 -38
- package/dist/Angular/timeline-related-entity-component.js.map +1 -1
- package/dist/Config/config.d.ts.map +1 -1
- package/dist/Config/config.js +171 -177
- package/dist/Config/config.js.map +1 -1
- package/dist/Config/db-connection.d.ts +1 -1
- package/dist/Config/db-connection.d.ts.map +1 -1
- package/dist/Config/db-connection.js +6 -33
- package/dist/Config/db-connection.js.map +1 -1
- package/dist/Database/dbSchema.js +28 -35
- package/dist/Database/dbSchema.js.map +1 -1
- package/dist/Database/manage-metadata.d.ts +302 -6
- package/dist/Database/manage-metadata.d.ts.map +1 -1
- package/dist/Database/manage-metadata.js +1294 -445
- package/dist/Database/manage-metadata.js.map +1 -1
- package/dist/Database/reorder-columns.d.ts +1 -1
- package/dist/Database/reorder-columns.d.ts.map +1 -1
- package/dist/Database/reorder-columns.js +1 -5
- package/dist/Database/reorder-columns.js.map +1 -1
- package/dist/Database/sql.d.ts +1 -1
- package/dist/Database/sql.d.ts.map +1 -1
- package/dist/Database/sql.js +67 -98
- package/dist/Database/sql.js.map +1 -1
- package/dist/Database/sql_codegen.d.ts +15 -2
- package/dist/Database/sql_codegen.d.ts.map +1 -1
- package/dist/Database/sql_codegen.js +282 -253
- package/dist/Database/sql_codegen.js.map +1 -1
- package/dist/Manifest/GenerateClassRegistrationsManifest.d.ts +11 -0
- package/dist/Manifest/GenerateClassRegistrationsManifest.d.ts.map +1 -1
- package/dist/Manifest/GenerateClassRegistrationsManifest.js +43 -41
- package/dist/Manifest/GenerateClassRegistrationsManifest.js.map +1 -1
- package/dist/Misc/action_subclasses_codegen.d.ts.map +1 -1
- package/dist/Misc/action_subclasses_codegen.js +15 -26
- package/dist/Misc/action_subclasses_codegen.js.map +1 -1
- package/dist/Misc/advanced_generation.d.ts +69 -7
- package/dist/Misc/advanced_generation.d.ts.map +1 -1
- package/dist/Misc/advanced_generation.js +114 -75
- package/dist/Misc/advanced_generation.js.map +1 -1
- package/dist/Misc/createNewUser.d.ts +1 -1
- package/dist/Misc/createNewUser.js +22 -26
- package/dist/Misc/createNewUser.js.map +1 -1
- package/dist/Misc/entity_subclasses_codegen.d.ts +7 -2
- package/dist/Misc/entity_subclasses_codegen.d.ts.map +1 -1
- package/dist/Misc/entity_subclasses_codegen.js +56 -45
- package/dist/Misc/entity_subclasses_codegen.js.map +1 -1
- package/dist/Misc/graphql_server_codegen.d.ts.map +1 -1
- package/dist/Misc/graphql_server_codegen.js +39 -42
- package/dist/Misc/graphql_server_codegen.js.map +1 -1
- package/dist/Misc/runCommand.d.ts +1 -1
- package/dist/Misc/runCommand.js +13 -20
- package/dist/Misc/runCommand.js.map +1 -1
- package/dist/Misc/sql_logging.d.ts +1 -1
- package/dist/Misc/sql_logging.d.ts.map +1 -1
- package/dist/Misc/sql_logging.js +21 -51
- package/dist/Misc/sql_logging.js.map +1 -1
- package/dist/Misc/status_logging.js +45 -60
- package/dist/Misc/status_logging.js.map +1 -1
- package/dist/Misc/system_integrity.d.ts +1 -1
- package/dist/Misc/system_integrity.d.ts.map +1 -1
- package/dist/Misc/system_integrity.js +12 -16
- package/dist/Misc/system_integrity.js.map +1 -1
- package/dist/Misc/temp_batch_file.js +15 -22
- package/dist/Misc/temp_batch_file.js.map +1 -1
- package/dist/Misc/util.d.ts.map +1 -1
- package/dist/Misc/util.js +17 -28
- package/dist/Misc/util.js.map +1 -1
- package/dist/__tests__/metadataConfig.test.d.ts +12 -0
- package/dist/__tests__/metadataConfig.test.d.ts.map +1 -0
- package/dist/__tests__/metadataConfig.test.js +604 -0
- package/dist/__tests__/metadataConfig.test.js.map +1 -0
- package/dist/index.d.ts +21 -21
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -41
- package/dist/index.js.map +1 -1
- package/dist/runCodeGen.d.ts +1 -0
- package/dist/runCodeGen.d.ts.map +1 -1
- package/dist/runCodeGen.js +150 -178
- package/dist/runCodeGen.js.map +1 -1
- package/package.json +29 -23
|
@@ -1,27 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const ai_prompts_1 = require("@memberjunction/ai-prompts");
|
|
7
|
-
const ai_core_plus_1 = require("@memberjunction/ai-core-plus");
|
|
8
|
-
const aiengine_1 = require("@memberjunction/aiengine");
|
|
1
|
+
import { configInfo } from "../Config/config.js";
|
|
2
|
+
import { LogError, LogStatus, Metadata } from "@memberjunction/core";
|
|
3
|
+
import { AIPromptRunner } from "@memberjunction/ai-prompts";
|
|
4
|
+
import { AIPromptParams } from "@memberjunction/ai-core-plus";
|
|
5
|
+
import { AIEngine } from "@memberjunction/aiengine";
|
|
9
6
|
/**
|
|
10
7
|
* Enhanced Advanced Generation system using MJ's AI Prompts architecture.
|
|
11
8
|
* All prompts are now stored in the database as AI Prompt entities with proper model configuration.
|
|
12
9
|
*/
|
|
13
|
-
class AdvancedGeneration {
|
|
14
|
-
_metadata;
|
|
15
|
-
_promptRunner;
|
|
10
|
+
export class AdvancedGeneration {
|
|
16
11
|
constructor() {
|
|
17
|
-
this._metadata = new
|
|
18
|
-
this._promptRunner = new
|
|
12
|
+
this._metadata = new Metadata();
|
|
13
|
+
this._promptRunner = new AIPromptRunner();
|
|
19
14
|
}
|
|
20
15
|
get enabled() {
|
|
21
|
-
return
|
|
16
|
+
return configInfo.advancedGeneration?.enableAdvancedGeneration ?? false;
|
|
22
17
|
}
|
|
23
18
|
features() {
|
|
24
|
-
return
|
|
19
|
+
return configInfo.advancedGeneration?.features;
|
|
25
20
|
}
|
|
26
21
|
getFeature(featureName) {
|
|
27
22
|
return this.features()?.find(f => f.name === featureName);
|
|
@@ -34,7 +29,7 @@ class AdvancedGeneration {
|
|
|
34
29
|
* Prompts include their model configuration via the MJ: AI Prompt Models relationship.
|
|
35
30
|
*/
|
|
36
31
|
async getPromptEntity(promptName, contextUser) {
|
|
37
|
-
const prompt =
|
|
32
|
+
const prompt = AIEngine.Instance.Prompts.find(p => p.Name.trim().toLowerCase() === promptName?.trim().toLowerCase());
|
|
38
33
|
if (!prompt) {
|
|
39
34
|
throw new Error(`Prompt '${promptName}' not found in database. Ensure the prompt metadata has been synced.`);
|
|
40
35
|
}
|
|
@@ -50,7 +45,7 @@ class AdvancedGeneration {
|
|
|
50
45
|
return result;
|
|
51
46
|
}
|
|
52
47
|
catch (error) {
|
|
53
|
-
|
|
48
|
+
LogError(`AdvancedGeneration:Prompt execution failed: ${error}`);
|
|
54
49
|
throw error;
|
|
55
50
|
}
|
|
56
51
|
}
|
|
@@ -63,7 +58,7 @@ class AdvancedGeneration {
|
|
|
63
58
|
}
|
|
64
59
|
try {
|
|
65
60
|
const prompt = await this.getPromptEntity('CodeGen: Smart Field Identification', contextUser);
|
|
66
|
-
const params = new
|
|
61
|
+
const params = new AIPromptParams();
|
|
67
62
|
params.prompt = prompt;
|
|
68
63
|
params.data = {
|
|
69
64
|
entityName: entity.Name,
|
|
@@ -89,12 +84,12 @@ class AdvancedGeneration {
|
|
|
89
84
|
return result.result;
|
|
90
85
|
}
|
|
91
86
|
else {
|
|
92
|
-
|
|
87
|
+
LogError(`AdvancedGeneration:Smart field identification failed: ${result.errorMessage}`);
|
|
93
88
|
return null;
|
|
94
89
|
}
|
|
95
90
|
}
|
|
96
91
|
catch (error) {
|
|
97
|
-
|
|
92
|
+
LogError(`AdvancedGeneration:Error in identifyFields: ${error}`);
|
|
98
93
|
return null; // Graceful fallback
|
|
99
94
|
}
|
|
100
95
|
}
|
|
@@ -107,7 +102,7 @@ class AdvancedGeneration {
|
|
|
107
102
|
}
|
|
108
103
|
try {
|
|
109
104
|
const prompt = await this.getPromptEntity('CodeGen: Transitive Join Intelligence', contextUser);
|
|
110
|
-
const params = new
|
|
105
|
+
const params = new AIPromptParams();
|
|
111
106
|
params.prompt = prompt;
|
|
112
107
|
params.data = {
|
|
113
108
|
sourceEntityName: sourceEntity.Name,
|
|
@@ -129,16 +124,16 @@ class AdvancedGeneration {
|
|
|
129
124
|
params.contextUser = contextUser;
|
|
130
125
|
const result = await this.executePrompt(params);
|
|
131
126
|
if (result.success && result.result) {
|
|
132
|
-
|
|
127
|
+
LogStatus(`Transitive join analysis for ${sourceEntity.Name} → ${targetEntity.Name}: Junction=${result.result.isJunctionTable}`);
|
|
133
128
|
return result.result;
|
|
134
129
|
}
|
|
135
130
|
else {
|
|
136
|
-
|
|
131
|
+
LogError(`AdvancedGeneration:Transitive join analysis failed: ${result.errorMessage}`);
|
|
137
132
|
return null;
|
|
138
133
|
}
|
|
139
134
|
}
|
|
140
135
|
catch (error) {
|
|
141
|
-
|
|
136
|
+
LogError(`AdvancedGeneration:Error in analyzeTransitiveJoin: ${error}`);
|
|
142
137
|
return null;
|
|
143
138
|
}
|
|
144
139
|
}
|
|
@@ -147,7 +142,7 @@ class AdvancedGeneration {
|
|
|
147
142
|
* This looks at ALL fields that have categories assigned, not just locked ones,
|
|
148
143
|
* so the LLM can see and reuse existing categories when categorizing new fields
|
|
149
144
|
*/
|
|
150
|
-
|
|
145
|
+
getExistingFieldCategoryInfo(entity) {
|
|
151
146
|
// Get ALL fields that have categories assigned (not just locked ones)
|
|
152
147
|
// This ensures the LLM sees existing categories and reuses them
|
|
153
148
|
const categorizedFields = entity.Fields.filter((f) => f.Category != null && f.Category.trim() !== '');
|
|
@@ -167,34 +162,8 @@ class AdvancedGeneration {
|
|
|
167
162
|
}
|
|
168
163
|
fieldsByCategory[field.Category].push(field.Name);
|
|
169
164
|
}
|
|
170
|
-
//
|
|
171
|
-
|
|
172
|
-
const infoSetting = entity.Settings?.find((s) => s.Name === 'FieldCategoryInfo');
|
|
173
|
-
if (infoSetting?.Value) {
|
|
174
|
-
try {
|
|
175
|
-
categoryInfo = JSON.parse(infoSetting.Value);
|
|
176
|
-
}
|
|
177
|
-
catch (e) {
|
|
178
|
-
// Invalid JSON, ignore
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
// Fallback: check for legacy FieldCategoryIcons format and convert
|
|
182
|
-
if (!categoryInfo) {
|
|
183
|
-
const iconSetting = entity.Settings?.find((s) => s.Name === 'FieldCategoryIcons');
|
|
184
|
-
if (iconSetting?.Value) {
|
|
185
|
-
try {
|
|
186
|
-
const icons = JSON.parse(iconSetting.Value);
|
|
187
|
-
// Convert legacy format to new format
|
|
188
|
-
categoryInfo = {};
|
|
189
|
-
for (const [category, icon] of Object.entries(icons)) {
|
|
190
|
-
categoryInfo[category] = { icon, description: '' };
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
catch (e) {
|
|
194
|
-
// Invalid JSON, ignore
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
}
|
|
165
|
+
// Use the typed FieldCategories property (auto-populated from EntitySettings with legacy fallback)
|
|
166
|
+
const categoryInfo = entity.FieldCategories ?? null;
|
|
198
167
|
return { categories, fieldsByCategory, categoryInfo };
|
|
199
168
|
}
|
|
200
169
|
/**
|
|
@@ -229,8 +198,11 @@ class AdvancedGeneration {
|
|
|
229
198
|
try {
|
|
230
199
|
const prompt = await this.getPromptEntity('CodeGen: Form Layout Generation', contextUser);
|
|
231
200
|
// Extract existing category information
|
|
232
|
-
const existingInfo = this.
|
|
201
|
+
const existingInfo = this.getExistingFieldCategoryInfo(entity);
|
|
233
202
|
const hasExistingCategories = existingInfo.categories.length > 0;
|
|
203
|
+
// IS-A parent chain context (provided by manage-metadata for child entities)
|
|
204
|
+
const parentChain = entity.ParentChain || [];
|
|
205
|
+
const isChildEntity = entity.IsChildEntity === true && parentChain.length > 0;
|
|
234
206
|
// Map fields with FK flag for statistics calculation
|
|
235
207
|
const mappedFields = entity.Fields.map((f) => ({
|
|
236
208
|
Name: f.Name,
|
|
@@ -244,11 +216,14 @@ class AdvancedGeneration {
|
|
|
244
216
|
ExistingCategory: f.Category || null,
|
|
245
217
|
// HasExistingCategory=true means locked (don't update), false means can update
|
|
246
218
|
HasExistingCategory: !f.AutoUpdateCategory && f.Category != null,
|
|
247
|
-
IsNewField: f.AutoUpdateCategory === true && !f.Category
|
|
219
|
+
IsNewField: f.AutoUpdateCategory === true && !f.Category,
|
|
220
|
+
// IS-A inheritance: which parent entity this field was inherited from (null if own field)
|
|
221
|
+
InheritedFromEntityName: f.InheritedFromEntityName || null,
|
|
222
|
+
InheritedFromEntityID: f.InheritedFromEntityID || null
|
|
248
223
|
}));
|
|
249
224
|
// Calculate FK statistics for entity importance analysis
|
|
250
225
|
const fkStats = this.calculateFkStatistics(mappedFields);
|
|
251
|
-
const params = new
|
|
226
|
+
const params = new AIPromptParams();
|
|
252
227
|
params.prompt = prompt;
|
|
253
228
|
params.data = {
|
|
254
229
|
entityName: entity.Name,
|
|
@@ -266,18 +241,21 @@ class AdvancedGeneration {
|
|
|
266
241
|
fieldsByCategory: existingInfo.fieldsByCategory,
|
|
267
242
|
hasExistingCategories: hasExistingCategories,
|
|
268
243
|
// Pass existing category info (icons + descriptions) so LLM can reference them
|
|
269
|
-
|
|
244
|
+
existingFieldCategoryInfo: existingInfo.categoryInfo || {},
|
|
270
245
|
// Flag to tell LLM whether to bother with entityImportance
|
|
271
|
-
isExistingEntity: !isNewEntity
|
|
246
|
+
isExistingEntity: !isNewEntity,
|
|
247
|
+
// IS-A entity inheritance context
|
|
248
|
+
isChildEntity,
|
|
249
|
+
parentChain
|
|
272
250
|
};
|
|
273
251
|
params.contextUser = contextUser;
|
|
274
252
|
const result = await this.executePrompt(params);
|
|
275
253
|
if (result.success && result.result) {
|
|
276
254
|
// Merge category info - preserve ALL existing categories, only add new ones
|
|
277
255
|
if (existingInfo.categoryInfo) {
|
|
278
|
-
const
|
|
256
|
+
const newFieldCategoryInfo = result.result.categoryInfo || {};
|
|
279
257
|
result.result.categoryInfo = {
|
|
280
|
-
...
|
|
258
|
+
...newFieldCategoryInfo // Only new categories from LLM
|
|
281
259
|
};
|
|
282
260
|
// Preserve existing - don't let LLM overwrite
|
|
283
261
|
for (const [category, info] of Object.entries(existingInfo.categoryInfo)) {
|
|
@@ -292,15 +270,27 @@ class AdvancedGeneration {
|
|
|
292
270
|
result.result.categoryInfo[category] = { icon, description: '' };
|
|
293
271
|
}
|
|
294
272
|
}
|
|
273
|
+
// Stamp inheritedFromEntityID on categories that have inheritedFromEntityName
|
|
274
|
+
// The LLM provides the entity name; we resolve the ID from the parent chain
|
|
275
|
+
if (isChildEntity && result.result.categoryInfo) {
|
|
276
|
+
for (const info of Object.values(result.result.categoryInfo)) {
|
|
277
|
+
if (info.inheritedFromEntityName && !info.inheritedFromEntityID) {
|
|
278
|
+
const matchingParent = parentChain.find(p => p.entityName === info.inheritedFromEntityName);
|
|
279
|
+
if (matchingParent) {
|
|
280
|
+
info.inheritedFromEntityID = matchingParent.entityID;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
295
285
|
return result.result;
|
|
296
286
|
}
|
|
297
287
|
else {
|
|
298
|
-
|
|
288
|
+
LogError(`AdvancedGeneration:Form layout generation failed: ${result.errorMessage}`);
|
|
299
289
|
return null;
|
|
300
290
|
}
|
|
301
291
|
}
|
|
302
292
|
catch (error) {
|
|
303
|
-
|
|
293
|
+
LogError(`AdvancedGeneration:Error in generateFormLayout: ${error}`);
|
|
304
294
|
return null;
|
|
305
295
|
}
|
|
306
296
|
}
|
|
@@ -313,22 +303,22 @@ class AdvancedGeneration {
|
|
|
313
303
|
}
|
|
314
304
|
try {
|
|
315
305
|
const prompt = await this.getPromptEntity('CodeGen: Entity Name Generation', contextUser);
|
|
316
|
-
const params = new
|
|
306
|
+
const params = new AIPromptParams();
|
|
317
307
|
params.prompt = prompt;
|
|
318
308
|
params.data = { tableName };
|
|
319
309
|
params.contextUser = contextUser;
|
|
320
310
|
const result = await this.executePrompt(params);
|
|
321
311
|
if (result.success && result.result) {
|
|
322
|
-
|
|
312
|
+
LogStatus(`Entity name generated for ${tableName}: ${result.result.entityName}`);
|
|
323
313
|
return result.result;
|
|
324
314
|
}
|
|
325
315
|
else {
|
|
326
|
-
|
|
316
|
+
LogError(`AdvancedGeneration:Entity name generation failed: ${result.errorMessage}`);
|
|
327
317
|
return null;
|
|
328
318
|
}
|
|
329
319
|
}
|
|
330
320
|
catch (error) {
|
|
331
|
-
|
|
321
|
+
LogError(`AdvancedGeneration:Error in generateEntityName: ${error}`);
|
|
332
322
|
return null;
|
|
333
323
|
}
|
|
334
324
|
}
|
|
@@ -341,22 +331,22 @@ class AdvancedGeneration {
|
|
|
341
331
|
}
|
|
342
332
|
try {
|
|
343
333
|
const prompt = await this.getPromptEntity('CodeGen: Entity Description Generation', contextUser);
|
|
344
|
-
const params = new
|
|
334
|
+
const params = new AIPromptParams();
|
|
345
335
|
params.prompt = prompt;
|
|
346
336
|
params.data = { entityName, tableName, fields };
|
|
347
337
|
params.contextUser = contextUser;
|
|
348
338
|
const result = await this.executePrompt(params);
|
|
349
339
|
if (result.success && result.result) {
|
|
350
|
-
|
|
340
|
+
LogStatus(`Entity description generated for ${entityName}`);
|
|
351
341
|
return result.result;
|
|
352
342
|
}
|
|
353
343
|
else {
|
|
354
|
-
|
|
344
|
+
LogError(`AdvancedGeneration:Entity description generation failed: ${result.errorMessage}`);
|
|
355
345
|
return null;
|
|
356
346
|
}
|
|
357
347
|
}
|
|
358
348
|
catch (error) {
|
|
359
|
-
|
|
349
|
+
LogError(`AdvancedGeneration:Error in generateEntityDescription: ${error}`);
|
|
360
350
|
return null;
|
|
361
351
|
}
|
|
362
352
|
}
|
|
@@ -369,7 +359,7 @@ class AdvancedGeneration {
|
|
|
369
359
|
}
|
|
370
360
|
try {
|
|
371
361
|
const prompt = await this.getPromptEntity('CodeGen: Check Constraint Parser', contextUser);
|
|
372
|
-
const params = new
|
|
362
|
+
const params = new AIPromptParams();
|
|
373
363
|
params.prompt = prompt;
|
|
374
364
|
params.data = {
|
|
375
365
|
constraintText,
|
|
@@ -382,7 +372,7 @@ class AdvancedGeneration {
|
|
|
382
372
|
const modelId = result.modelInfo?.modelId || result.modelSelectionInfo?.modelSelected?.ID;
|
|
383
373
|
if (!modelId) {
|
|
384
374
|
// shuoldn't ever happen.
|
|
385
|
-
|
|
375
|
+
LogError('AdvancedGeneration: Model ID not found');
|
|
386
376
|
return null;
|
|
387
377
|
}
|
|
388
378
|
else {
|
|
@@ -393,15 +383,64 @@ class AdvancedGeneration {
|
|
|
393
383
|
}
|
|
394
384
|
}
|
|
395
385
|
else {
|
|
396
|
-
|
|
386
|
+
LogError(`AdvancedGeneration:CHECK constraint parsing failed: ${result.errorMessage}`);
|
|
387
|
+
return null;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
catch (error) {
|
|
391
|
+
LogError(`AdvancedGeneration:Error in parseCheckConstraint: ${error}`);
|
|
392
|
+
return null;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Decorates virtual entity fields using LLM analysis of the view definition.
|
|
397
|
+
* Identifies primary keys, foreign keys, generates field descriptions,
|
|
398
|
+
* assigns categories, and suggests entity icons for constraint-less views.
|
|
399
|
+
*
|
|
400
|
+
* @param entityName The virtual entity name
|
|
401
|
+
* @param schemaName The schema containing the view
|
|
402
|
+
* @param viewName The SQL view name
|
|
403
|
+
* @param viewDefinition The SQL view definition text
|
|
404
|
+
* @param entityDescription Optional entity description
|
|
405
|
+
* @param fields Array of field info objects with Name, Type, Length, AllowsNull, IsPrimaryKey, RelatedEntityName
|
|
406
|
+
* @param availableEntities Array of available entities for FK resolution
|
|
407
|
+
* @param sourceEntities Enriched context from source entities referenced in the view SQL
|
|
408
|
+
* @param contextUser The context user for AI operations
|
|
409
|
+
* @returns Decoration result or null if feature disabled or LLM call fails
|
|
410
|
+
*/
|
|
411
|
+
async decorateVirtualEntityFields(entityName, schemaName, viewName, viewDefinition, entityDescription, fields, availableEntities, sourceEntities, contextUser) {
|
|
412
|
+
if (!this.featureEnabled('VirtualEntityFieldDecoration')) {
|
|
413
|
+
return null;
|
|
414
|
+
}
|
|
415
|
+
try {
|
|
416
|
+
const prompt = await this.getPromptEntity('CodeGen: Virtual Entity Field Decoration', contextUser);
|
|
417
|
+
const params = new AIPromptParams();
|
|
418
|
+
params.prompt = prompt;
|
|
419
|
+
params.data = {
|
|
420
|
+
entityName,
|
|
421
|
+
schemaName,
|
|
422
|
+
viewName,
|
|
423
|
+
viewDefinition,
|
|
424
|
+
entityDescription: entityDescription || 'No description available',
|
|
425
|
+
fields,
|
|
426
|
+
availableEntities: availableEntities.slice(0, 200), // Limit to prevent token overflow
|
|
427
|
+
sourceEntities
|
|
428
|
+
};
|
|
429
|
+
params.contextUser = contextUser;
|
|
430
|
+
const result = await this._promptRunner.ExecutePrompt(params);
|
|
431
|
+
if (result.success && result.result) {
|
|
432
|
+
LogStatus(` ${entityName}: ${result.result.primaryKeys?.length || 0} PKs, ${result.result.foreignKeys?.length || 0} FKs identified`);
|
|
433
|
+
return result.result;
|
|
434
|
+
}
|
|
435
|
+
else {
|
|
436
|
+
LogError(`AdvancedGeneration:Virtual entity field decoration failed for ${entityName}: ${result.errorMessage}`);
|
|
397
437
|
return null;
|
|
398
438
|
}
|
|
399
439
|
}
|
|
400
440
|
catch (error) {
|
|
401
|
-
|
|
441
|
+
LogError(`AdvancedGeneration:Error in decorateVirtualEntityFields for ${entityName}: ${error}`);
|
|
402
442
|
return null;
|
|
403
443
|
}
|
|
404
444
|
}
|
|
405
445
|
}
|
|
406
|
-
exports.AdvancedGeneration = AdvancedGeneration;
|
|
407
446
|
//# sourceMappingURL=advanced_generation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advanced_generation.js","sourceRoot":"","sources":["../../src/Misc/advanced_generation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"advanced_generation.js","sourceRoot":"","sources":["../../src/Misc/advanced_generation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const core_1 = require("@memberjunction/core");
|
|
5
|
-
const sqlserver_dataprovider_1 = require("@memberjunction/sqlserver-dataprovider");
|
|
6
|
-
const status_logging_1 = require("./status_logging");
|
|
1
|
+
import { LogError, LogStatus, Metadata, RunView } from "@memberjunction/core";
|
|
2
|
+
import { UserCache } from "@memberjunction/sqlserver-dataprovider";
|
|
3
|
+
import { logError, logStatus } from "./status_logging.js";
|
|
7
4
|
/**
|
|
8
5
|
* Base class for creating a new user in the system, you can sub-class this class to create your own user creation logic
|
|
9
6
|
*/
|
|
10
|
-
class CreateNewUserBase {
|
|
7
|
+
export class CreateNewUserBase {
|
|
11
8
|
async createNewUser(newUserSetup) {
|
|
12
9
|
try {
|
|
13
|
-
const matches =
|
|
14
|
-
const currentUser = matches ? matches :
|
|
10
|
+
const matches = UserCache.Users.find(u => u?.Type?.trim().toLowerCase() === 'owner');
|
|
11
|
+
const currentUser = matches ? matches : UserCache.Users[0]; // if we don't find an Owner, use the first user in the cache
|
|
15
12
|
if (!currentUser) {
|
|
16
13
|
return {
|
|
17
14
|
Success: false,
|
|
@@ -21,11 +18,11 @@ class CreateNewUserBase {
|
|
|
21
18
|
}
|
|
22
19
|
if (newUserSetup) {
|
|
23
20
|
// check for existing user by email
|
|
24
|
-
const existingNewUser =
|
|
21
|
+
const existingNewUser = UserCache.Users.find(u => u.Email === newUserSetup.Email);
|
|
25
22
|
if (!existingNewUser) {
|
|
26
23
|
if (newUserSetup.Email && newUserSetup.Email.length > 0) {
|
|
27
|
-
|
|
28
|
-
const md = new
|
|
24
|
+
logStatus("Attempting to create new user: " + newUserSetup.Email);
|
|
25
|
+
const md = new Metadata();
|
|
29
26
|
const user = await md.GetEntityObject('Users', currentUser);
|
|
30
27
|
user.NewRecord();
|
|
31
28
|
user.Name = newUserSetup.UserName ? newUserSetup.UserName : newUserSetup.Email;
|
|
@@ -40,7 +37,7 @@ class CreateNewUserBase {
|
|
|
40
37
|
const roleName = newUserSetup.Roles[i];
|
|
41
38
|
const roleID = md.Roles.find(r => r.Name === roleName)?.ID;
|
|
42
39
|
if (!roleID) {
|
|
43
|
-
|
|
40
|
+
logError(" Role not found: " + roleName + ", skipping");
|
|
44
41
|
continue;
|
|
45
42
|
}
|
|
46
43
|
const userRole = await md.GetEntityObject('User Roles', currentUser);
|
|
@@ -48,20 +45,20 @@ class CreateNewUserBase {
|
|
|
48
45
|
userRole.UserID = user.ID;
|
|
49
46
|
userRole.RoleID = roleID;
|
|
50
47
|
if (await userRole.Save()) {
|
|
51
|
-
|
|
48
|
+
logStatus(" Created User Role: " + roleName);
|
|
52
49
|
}
|
|
53
50
|
else {
|
|
54
|
-
|
|
51
|
+
logError(" Failed to create User Role: " + roleName);
|
|
55
52
|
}
|
|
56
53
|
}
|
|
57
54
|
// Create UserApplication records if specified in the config
|
|
58
55
|
if (newUserSetup.CreateUserApplicationRecords) {
|
|
59
|
-
|
|
56
|
+
logStatus("Creating User Applications for new user: " + user.Name);
|
|
60
57
|
for (const appName of newUserSetup.UserApplications) {
|
|
61
58
|
const toLowerCase = appName.trim().toLocaleLowerCase();
|
|
62
59
|
const application = md.Applications.find(a => a.Name.trim().toLocaleLowerCase() === toLowerCase);
|
|
63
60
|
if (!application) {
|
|
64
|
-
|
|
61
|
+
logError(`Application ${appName} not found in the Metadata, cannot assign to new user ${user.Name}`);
|
|
65
62
|
continue;
|
|
66
63
|
}
|
|
67
64
|
const userApplication = await md.GetEntityObject('User Applications', currentUser);
|
|
@@ -71,18 +68,18 @@ class CreateNewUserBase {
|
|
|
71
68
|
userApplication.IsActive = true;
|
|
72
69
|
const userApplicationSaveResult = await userApplication.Save();
|
|
73
70
|
if (userApplicationSaveResult) {
|
|
74
|
-
|
|
71
|
+
logStatus(`Created User Application ${appName} for new user ${user.Name}`);
|
|
75
72
|
//now create a UserApplicationEntity records for each entity in the application
|
|
76
|
-
const rv = new
|
|
73
|
+
const rv = new RunView();
|
|
77
74
|
const rvResult = await rv.RunView({
|
|
78
75
|
EntityName: 'Application Entities',
|
|
79
76
|
ExtraFilter: `ApplicationID = '${application.ID}' and DefaultForNewUser = 1`,
|
|
80
77
|
}, currentUser);
|
|
81
78
|
if (!rvResult.Success) {
|
|
82
|
-
|
|
79
|
+
LogError(`Failed to load Application Entities for Application ${appName} for new user ${user.Name}:`, undefined, rvResult.ErrorMessage);
|
|
83
80
|
continue;
|
|
84
81
|
}
|
|
85
|
-
|
|
82
|
+
LogStatus(`Creating ${rvResult.Results.length} User Application Entities for User Application ${appName} for new user ${user.Name}`);
|
|
86
83
|
for (const [index, appEntity] of rvResult.Results.entries()) {
|
|
87
84
|
const userAppEntity = await md.GetEntityObject('User Application Entities', currentUser);
|
|
88
85
|
userAppEntity.NewRecord();
|
|
@@ -91,19 +88,19 @@ class CreateNewUserBase {
|
|
|
91
88
|
userAppEntity.Sequence = index;
|
|
92
89
|
const userAppEntitySaveResult = await userAppEntity.Save();
|
|
93
90
|
if (userAppEntitySaveResult) {
|
|
94
|
-
|
|
91
|
+
LogStatus(`Created User Application Entity ${appEntity.Entity} for new user ${user.Name}`);
|
|
95
92
|
}
|
|
96
93
|
else {
|
|
97
|
-
|
|
94
|
+
LogError(`Failed to create User Application Entity for new user ${user.Name}:`, undefined, userAppEntity.LatestResult);
|
|
98
95
|
}
|
|
99
96
|
}
|
|
100
97
|
}
|
|
101
98
|
else {
|
|
102
|
-
|
|
99
|
+
logError(`Failed to create User Application ${appName} for new user ${user.Name}:`, undefined, userApplication.LatestResult);
|
|
103
100
|
}
|
|
104
101
|
}
|
|
105
102
|
}
|
|
106
|
-
|
|
103
|
+
logStatus("Finished creating new user: " + newUserSetup.Email);
|
|
107
104
|
return {
|
|
108
105
|
Success: true,
|
|
109
106
|
Message: "Successfully created new user: " + newUserSetup.Email,
|
|
@@ -152,5 +149,4 @@ class CreateNewUserBase {
|
|
|
152
149
|
}
|
|
153
150
|
}
|
|
154
151
|
}
|
|
155
|
-
exports.CreateNewUserBase = CreateNewUserBase;
|
|
156
152
|
//# sourceMappingURL=createNewUser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createNewUser.js","sourceRoot":"","sources":["../../src/Misc/createNewUser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createNewUser.js","sourceRoot":"","sources":["../../src/Misc/createNewUser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EntityFieldInfo, EntityInfo } from '@memberjunction/core';
|
|
2
|
-
import { ValidatorResult } from '../Database/manage-metadata';
|
|
3
|
-
import
|
|
2
|
+
import { ValidatorResult } from '../Database/manage-metadata.js';
|
|
3
|
+
import sql from 'mssql';
|
|
4
4
|
/**
|
|
5
5
|
* Base class for generating entity sub-classes, you can sub-class this class to modify/extend your own entity sub-class generator logic
|
|
6
6
|
*/
|
|
@@ -21,6 +21,11 @@ export declare class EntitySubClassGeneratorBase {
|
|
|
21
21
|
* @param includeFileHeader
|
|
22
22
|
*/
|
|
23
23
|
generateEntitySubClass(pool: sql.ConnectionPool, entity: EntityInfo, includeFileHeader?: boolean, skipDBUpdate?: boolean): Promise<string>;
|
|
24
|
+
/**
|
|
25
|
+
* Finds the source parent entity for an IS-A inherited field by walking the parent chain.
|
|
26
|
+
* Returns the name of the parent entity that originally defines the field (as a non-virtual column).
|
|
27
|
+
*/
|
|
28
|
+
protected getISAFieldSourceEntity(entity: EntityInfo, field: EntityFieldInfo): string;
|
|
24
29
|
LogAndGenerateValidateFunction(pool: sql.ConnectionPool, entity: EntityInfo, skipDBUpdate: boolean): Promise<string | null>;
|
|
25
30
|
GenerateValidateFunction(entity: EntityInfo): null | {
|
|
26
31
|
code: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity_subclasses_codegen.d.ts","sourceRoot":"","sources":["../../src/Misc/entity_subclasses_codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA4B,UAAU,EAAuC,MAAM,sBAAsB,CAAC;AAKlI,OAAO,EAAE,eAAe,EAAsB,MAAM,6BAA6B,CAAC;AAGlF,OAAO,
|
|
1
|
+
{"version":3,"file":"entity_subclasses_codegen.d.ts","sourceRoot":"","sources":["../../src/Misc/entity_subclasses_codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA4B,UAAU,EAAuC,MAAM,sBAAsB,CAAC;AAKlI,OAAO,EAAE,eAAe,EAAsB,MAAM,6BAA6B,CAAC;AAGlF,OAAO,GAAG,MAAM,OAAO,CAAC;AAExB;;GAEG;AACH,qBAAa,2BAA2B;IACtC;;;;;;;OAOG;IACU,2BAA2B,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB/I,gCAAgC,IAAI,MAAM;IAYjD;;;;OAIG;IACU,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,GAAE,OAAe,EAAE,YAAY,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAwLrK;;;OAGG;IACH,SAAS,CAAC,uBAAuB,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM;IAaxE,8BAA8B,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA6DjI,wBAAwB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,eAAe,EAAE,CAAA;KAAE;IAyDpG,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAwDjD,sBAAsB,CAAC,WAAW,EAAE,eAAe,GAAG,MAAM;CAiBpE"}
|