@memberjunction/codegen-lib 6.1.0-edge.6 → 6.1.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.
Files changed (56) hide show
  1. package/dist/Config/config.d.ts +22 -37
  2. package/dist/Config/config.d.ts.map +1 -1
  3. package/dist/Config/config.js +35 -12
  4. package/dist/Config/config.js.map +1 -1
  5. package/dist/Database/codeGenDatabaseProvider.d.ts +45 -0
  6. package/dist/Database/codeGenDatabaseProvider.d.ts.map +1 -1
  7. package/dist/Database/codeGenDatabaseProvider.js +12 -0
  8. package/dist/Database/codeGenDatabaseProvider.js.map +1 -1
  9. package/dist/Database/manage-metadata.d.ts +34 -2
  10. package/dist/Database/manage-metadata.d.ts.map +1 -1
  11. package/dist/Database/manage-metadata.js +72 -61
  12. package/dist/Database/manage-metadata.js.map +1 -1
  13. package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.d.ts +8 -0
  14. package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.d.ts.map +1 -1
  15. package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.js +24 -2
  16. package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.js.map +1 -1
  17. package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.d.ts +46 -1
  18. package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.d.ts.map +1 -1
  19. package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.js +128 -7
  20. package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.js.map +1 -1
  21. package/dist/Database/reconcileFieldLevelSecurity.d.ts +22 -0
  22. package/dist/Database/reconcileFieldLevelSecurity.d.ts.map +1 -0
  23. package/dist/Database/reconcileFieldLevelSecurity.js +47 -0
  24. package/dist/Database/reconcileFieldLevelSecurity.js.map +1 -0
  25. package/dist/Database/sql_codegen.d.ts +25 -0
  26. package/dist/Database/sql_codegen.d.ts.map +1 -1
  27. package/dist/Database/sql_codegen.js +99 -0
  28. package/dist/Database/sql_codegen.js.map +1 -1
  29. package/dist/Misc/advanced_generation.d.ts +10 -0
  30. package/dist/Misc/advanced_generation.d.ts.map +1 -1
  31. package/dist/Misc/advanced_generation.js +35 -0
  32. package/dist/Misc/advanced_generation.js.map +1 -1
  33. package/dist/Misc/graphql_server_codegen.d.ts +39 -0
  34. package/dist/Misc/graphql_server_codegen.d.ts.map +1 -1
  35. package/dist/Misc/graphql_server_codegen.js +51 -4
  36. package/dist/Misc/graphql_server_codegen.js.map +1 -1
  37. package/dist/Misc/remote_operations_codegen.d.ts +36 -1
  38. package/dist/Misc/remote_operations_codegen.d.ts.map +1 -1
  39. package/dist/Misc/remote_operations_codegen.js +174 -5
  40. package/dist/Misc/remote_operations_codegen.js.map +1 -1
  41. package/dist/index.d.ts +0 -2
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +0 -2
  44. package/dist/index.js.map +1 -1
  45. package/dist/runCodeGen.d.ts.map +1 -1
  46. package/dist/runCodeGen.js +94 -13
  47. package/dist/runCodeGen.js.map +1 -1
  48. package/package.json +29 -29
  49. package/dist/Database/decision-metadata-format.d.ts +0 -124
  50. package/dist/Database/decision-metadata-format.d.ts.map +0 -1
  51. package/dist/Database/decision-metadata-format.js +0 -279
  52. package/dist/Database/decision-metadata-format.js.map +0 -1
  53. package/dist/Database/decision-metadata-writer.d.ts +0 -48
  54. package/dist/Database/decision-metadata-writer.d.ts.map +0 -1
  55. package/dist/Database/decision-metadata-writer.js +0 -482
  56. package/dist/Database/decision-metadata-writer.js.map +0 -1
@@ -1,279 +0,0 @@
1
- import fs from 'fs-extra';
2
- import path from 'path';
3
- import { ordinalCompare } from '@memberjunction/global';
4
- import { canonicalJSONStringify } from '../Misc/util.js';
5
- /**
6
- * Standard comment block placed at the top of generated decision metadata files.
7
- */
8
- export function buildDecisionComments(entityName, schemaName) {
9
- const schema = (schemaName || 'dbo').trim();
10
- return [
11
- `CodeGen decision record for ${entityName} (schema ${schema}). Written by CodeGen; edit by hand to`,
12
- `override — CodeGen never rewrites a value that exists (plan §3). CodeGen-owned columns`,
13
- `(Type, Length, Sequence, AllowsNull, RelatedEntityID, …) are deliberately absent.`
14
- ];
15
- }
16
- /**
17
- * Entity-level decision columns managed by CodeGen.
18
- */
19
- export const ALLOWED_ENTITY_DECISION_COLUMNS = new Set([
20
- 'Icon',
21
- 'AllowUserSearchAPI',
22
- 'FullTextSearchEnabled',
23
- 'SupportsGeoCoding',
24
- 'AutoUpdateAllowUserSearchAPI',
25
- 'AutoUpdateFullTextSearch',
26
- 'AutoUpdateSupportsGeoCoding'
27
- ]);
28
- /**
29
- * Field-level decision columns managed by CodeGen.
30
- */
31
- export const ALLOWED_FIELD_DECISION_COLUMNS = new Set([
32
- 'DisplayName',
33
- 'Category',
34
- 'GeneratedFormSection',
35
- 'ExtendedType',
36
- 'CodeType',
37
- 'DefaultInView',
38
- 'IncludeInUserSearchAPI',
39
- 'UserSearchPredicateAPI',
40
- 'IsNameField',
41
- 'FullTextSearchEnabled',
42
- 'AutoUpdateDisplayName',
43
- 'AutoUpdateCategory',
44
- 'AutoUpdateExtendedType',
45
- 'AutoUpdateDefaultInView',
46
- 'AutoUpdateIncludeInUserSearchAPI',
47
- 'AutoUpdateUserSearchPredicate',
48
- 'AutoUpdateIsNameField',
49
- 'AutoUpdateFullTextSearch'
50
- ]);
51
- /**
52
- * EntitySetting names managed by CodeGen decisions.
53
- */
54
- export const ALLOWED_SETTING_DECISION_NAMES = new Set([
55
- 'FieldCategoryInfo',
56
- 'FieldCategoryIcons'
57
- ]);
58
- /**
59
- * ApplicationEntity columns managed by CodeGen decisions.
60
- */
61
- export const ALLOWED_APP_ENTITY_DECISION_COLUMNS = new Set([
62
- 'DefaultForNewUser',
63
- 'AutoUpdateDefaultForNewUser'
64
- ]);
65
- /**
66
- * Columns that must NEVER be authored in decision metadata records.
67
- * Saving any of these would trigger schema sync fight or validation failures.
68
- */
69
- export const DISALLOWED_COLUMNS = new Set([
70
- 'Description',
71
- 'Type',
72
- 'Length',
73
- 'Precision',
74
- 'Scale',
75
- 'Sequence',
76
- 'AllowsNull',
77
- 'DefaultValue',
78
- 'IsPrimaryKey',
79
- 'IsUnique',
80
- 'IsVirtual',
81
- 'IsComputed',
82
- 'AutoIncrement',
83
- 'ValueListType',
84
- 'RelatedEntityID',
85
- 'RelatedEntityFieldName',
86
- 'RelatedEntityNameFieldMap',
87
- 'Configuration',
88
- 'JSONType',
89
- 'JSONTypeDefinition',
90
- 'JSONTypeIsArray'
91
- ]);
92
- /**
93
- * Converts an entity name to a safe, deterministic kebab-case slug for filenames.
94
- * E.g. "MJ: Entities" -> "mj-entities", "Company Integrations" -> "company-integrations".
95
- */
96
- export function toEntitySlug(entityName) {
97
- return (entityName ?? '')
98
- .trim()
99
- .toLowerCase()
100
- .replace(/[^a-z0-9]+/g, '-')
101
- .replace(/^-+|-+$/g, '');
102
- }
103
- /**
104
- * Constructs the filename for an entity's decision metadata file.
105
- * Format: .<schema>.<entity-slug>.json
106
- */
107
- export function getDecisionFileName(schemaName, entityName) {
108
- const cleanSchema = (schemaName || 'dbo')
109
- .trim()
110
- .toLowerCase()
111
- .replace(/[^a-z0-9_]+/g, '-');
112
- const slug = toEntitySlug(entityName);
113
- return `.${cleanSchema}.${slug}.json`;
114
- }
115
- // ─── Lookup Primary Key Helpers ──────────────────────────────────────────────
116
- export function buildEntityLookup(entityName) {
117
- return `@lookup:MJ: Entities.Name=${entityName}`;
118
- }
119
- export function buildFieldLookup(entityName, fieldName) {
120
- return `@lookup:MJ: Entity Fields.EntityID=@lookup:MJ: Entities.Name=${entityName}&Name=${fieldName}`;
121
- }
122
- export function buildSettingLookup(entityName, settingName) {
123
- return `@lookup:MJ: Entity Settings.EntityID=@lookup:MJ: Entities.Name=${entityName}&Name=${settingName}`;
124
- }
125
- export function buildAppEntityLookup(appName, entityName) {
126
- return `@lookup:MJ: Application Entities.ApplicationID=@lookup:MJ: Applications.Name=${appName}&EntityID=@lookup:MJ: Entities.Name=${entityName}`;
127
- }
128
- // ─── Normalization & Formatting ──────────────────────────────────────────────
129
- const KNOWN_RECORD_KEYS = ['_comments', 'fields', 'relatedEntities', 'primaryKey', 'sync', '__mj_sync_notes', 'deleteRecord'];
130
- const FIELD_ORDER_PREFERENCE = [
131
- 'Name',
132
- 'DisplayName',
133
- 'Description',
134
- 'Category',
135
- 'GeneratedFormSection',
136
- 'ExtendedType',
137
- 'CodeType',
138
- 'DefaultInView',
139
- 'IncludeInUserSearchAPI',
140
- 'UserSearchPredicateAPI',
141
- 'IsNameField',
142
- 'FullTextSearchEnabled'
143
- ];
144
- const ENTITY_ORDER_PREFERENCE = [
145
- 'Name',
146
- 'Description',
147
- 'Icon',
148
- 'AllowUserSearchAPI',
149
- 'FullTextSearchEnabled',
150
- 'SupportsGeoCoding'
151
- ];
152
- function stripNulls(obj) {
153
- const res = {};
154
- for (const [k, v] of Object.entries(obj)) {
155
- if (v !== null && v !== undefined) {
156
- res[k] = v;
157
- }
158
- }
159
- return res;
160
- }
161
- function sortObjectKeysByOrder(obj, preferredOrder) {
162
- const result = {};
163
- const remainingKeys = Object.keys(obj).filter(k => !preferredOrder.includes(k)).sort(ordinalCompare);
164
- for (const key of preferredOrder) {
165
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
166
- if (obj[key] !== null && obj[key] !== undefined) {
167
- result[key] = obj[key];
168
- }
169
- }
170
- }
171
- for (const key of remainingKeys) {
172
- if (obj[key] !== null && obj[key] !== undefined) {
173
- result[key] = obj[key];
174
- }
175
- }
176
- return result;
177
- }
178
- function normalizeRecord(record) {
179
- const result = {};
180
- // Preserve _comments first if present
181
- if (record._comments !== undefined) {
182
- result._comments = record._comments;
183
- }
184
- // Known keys in canonical order
185
- for (const key of KNOWN_RECORD_KEYS) {
186
- if (key === '_comments')
187
- continue; // handled above
188
- if (record[key] !== undefined) {
189
- if (key === 'fields' && record.fields && typeof record.fields === 'object') {
190
- const fieldsObj = record.fields;
191
- // If it's a field record
192
- if ('DisplayName' in fieldsObj || 'Category' in fieldsObj || 'ExtendedType' in fieldsObj) {
193
- result.fields = sortObjectKeysByOrder(fieldsObj, FIELD_ORDER_PREFERENCE);
194
- }
195
- else if ('Icon' in fieldsObj || 'AllowUserSearchAPI' in fieldsObj) {
196
- result.fields = sortObjectKeysByOrder(fieldsObj, ENTITY_ORDER_PREFERENCE);
197
- }
198
- else if ('Value' in fieldsObj && typeof fieldsObj.Value === 'object' && fieldsObj.Value !== null) {
199
- result.fields = {
200
- Name: fieldsObj.Name,
201
- Value: JSON.parse(canonicalJSONStringify(fieldsObj.Value))
202
- };
203
- }
204
- else {
205
- result.fields = stripNulls(fieldsObj);
206
- }
207
- }
208
- else if (key === 'relatedEntities' && record.relatedEntities && typeof record.relatedEntities === 'object') {
209
- const rel = record.relatedEntities;
210
- const normalizedRel = {};
211
- const relKeys = Object.keys(rel).sort((a, b) => {
212
- // Standard MemberJunction child order
213
- const standardOrder = ['MJ: Entity Fields', 'MJ: Entity Settings', 'MJ: Application Entities'];
214
- const idxA = standardOrder.indexOf(a);
215
- const idxB = standardOrder.indexOf(b);
216
- if (idxA !== -1 && idxB !== -1)
217
- return idxA - idxB;
218
- if (idxA !== -1)
219
- return -1;
220
- if (idxB !== -1)
221
- return 1;
222
- return ordinalCompare(a, b);
223
- });
224
- for (const relKey of relKeys) {
225
- const list = rel[relKey];
226
- if (Array.isArray(list)) {
227
- normalizedRel[relKey] = list.map(item => normalizeRecord(item));
228
- }
229
- else {
230
- normalizedRel[relKey] = list;
231
- }
232
- }
233
- result.relatedEntities = normalizedRel;
234
- }
235
- else {
236
- result[key] = record[key];
237
- }
238
- }
239
- }
240
- // Any other unknown top-level keys
241
- for (const key of Object.keys(record)) {
242
- if (!KNOWN_RECORD_KEYS.includes(key) && result[key] === undefined) {
243
- result[key] = record[key];
244
- }
245
- }
246
- return result;
247
- }
248
- /**
249
- * Formats decision record(s) into deterministic JSON byte-identical to JsonWriteHelper.
250
- * 2-space indentation, no trailing newline.
251
- */
252
- export function formatDecisionRecordData(data) {
253
- const normalized = Array.isArray(data)
254
- ? data.map(item => normalizeRecord(item))
255
- : normalizeRecord(data);
256
- return JSON.stringify(normalized, null, 2);
257
- }
258
- /**
259
- * Writes content to a file only if the content differs from the existing file on disk.
260
- * Preserves mtime when content is unchanged.
261
- * Returns true if file was written, false if unchanged.
262
- */
263
- export async function writeIfChanged(filePath, content) {
264
- try {
265
- if (await fs.pathExists(filePath)) {
266
- const existing = await fs.readFile(filePath, 'utf8');
267
- if (existing === content) {
268
- return false;
269
- }
270
- }
271
- }
272
- catch {
273
- // If read fails for any reason, proceed to write
274
- }
275
- await fs.ensureDir(path.dirname(filePath));
276
- await fs.writeFile(filePath, content, 'utf8');
277
- return true;
278
- }
279
- //# sourceMappingURL=decision-metadata-format.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decision-metadata-format.js","sourceRoot":"","sources":["../../src/Database/decision-metadata-format.ts"],"names":[],"mappings":"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"}
@@ -1,48 +0,0 @@
1
- import { BaseSingleton } from '@memberjunction/global';
2
- /**
3
- * Singleton writer that collects CodeGen decision outputs (field categories,
4
- * display names, extended types, search flags, name fields, entity icons, etc.)
5
- * during a run and persists them as declarative JSON records under
6
- * metadata/entities/decisions/.
7
- */
8
- export declare class DecisionMetadataWriter extends BaseSingleton<DecisionMetadataWriter> {
9
- protected constructor();
10
- static get Instance(): DecisionMetadataWriter;
11
- private _warnedMissingDir;
12
- droppedDisallowedColumnCount: number;
13
- recordsRemovedCount: number;
14
- recordsUnchangedCount: number;
15
- recordsWrittenCount: number;
16
- recordsSkippedCount: number;
17
- private _entityDecisions;
18
- private _fieldDecisions;
19
- private _settingDecisions;
20
- private _appEntityDecisions;
21
- private _configOwnedEntityColumns;
22
- private _configOwnedFieldColumns;
23
- private _loggedConflicts;
24
- clear(): void;
25
- private ensureConfigOwnedColumnsLoaded;
26
- loadConfigOwnedColumns(config: Record<string, unknown>): void;
27
- isEntityColumnOwnedByConfig(entityName: string, column: string): boolean;
28
- isFieldColumnOwnedByConfig(entityName: string, fieldName: string, column: string): boolean;
29
- private logConfigConflictOnce;
30
- recordEntityDecision(entityName: string, column: string, value: unknown): void;
31
- recordFieldDecision(entityName: string, fieldName: string, column: string, value: unknown): void;
32
- recordEntitySetting(entityName: string, settingName: string, value: unknown): void;
33
- recordApplicationEntityDecision(entityName: string, appName: string, column: string, value: unknown): void;
34
- resolveDecisionsDirectory(): string | null;
35
- /**
36
- * Flush pending decision metadata for an entity to disk.
37
- */
38
- flushEntity(entity: {
39
- ID?: string;
40
- Name: string;
41
- SchemaName?: string;
42
- Fields: Array<{
43
- Name: string;
44
- Sequence?: number;
45
- }>;
46
- }): Promise<void>;
47
- }
48
- //# sourceMappingURL=decision-metadata-writer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decision-metadata-writer.d.ts","sourceRoot":"","sources":["../../src/Database/decision-metadata-writer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAkB,MAAM,wBAAwB,CAAC;AAwBvE;;;;;GAKG;AACH,qBAAa,sBAAuB,SAAQ,aAAa,CAAC,sBAAsB,CAAC;IAC/E,SAAS;IAIT,WAAkB,QAAQ,IAAI,sBAAsB,CAEnD;IAED,OAAO,CAAC,iBAAiB,CAAS;IAC3B,4BAA4B,SAAK;IACjC,mBAAmB,SAAK;IACxB,qBAAqB,SAAK;IAC1B,mBAAmB,SAAK;IACxB,mBAAmB,SAAK;IAG/B,OAAO,CAAC,gBAAgB,CAA2C;IACnE,OAAO,CAAC,eAAe,CAAwD;IAC/E,OAAO,CAAC,iBAAiB,CAA2C;IACpE,OAAO,CAAC,mBAAmB,CAAwD;IAEnF,OAAO,CAAC,yBAAyB,CAAyC;IAC1E,OAAO,CAAC,wBAAwB,CAAsD;IACtF,OAAO,CAAC,gBAAgB,CAAqB;IAEtC,KAAK,IAAI,IAAI;IAgBpB,OAAO,CAAC,8BAA8B;IAqB/B,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IA8E7D,2BAA2B,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IASxE,0BAA0B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAWjG,OAAO,CAAC,qBAAqB;IAWtB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IA2B9E,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAiChG,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAiBlF,+BAA+B,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAwB1G,yBAAyB,IAAI,MAAM,GAAG,IAAI;IA8BjD;;OAEG;IACU,WAAW,CAAC,MAAM,EAAE;QAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACpD,GAAG,OAAO,CAAC,IAAI,CAAC;CA+LlB"}