@memberjunction/open-app-engine 5.42.0 → 5.44.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/dist/dependency/dependency-graph-builder.d.ts +1 -1
- package/dist/dependency/dependency-graph-builder.d.ts.map +1 -1
- package/dist/dependency/dependency-graph-builder.js +5 -3
- package/dist/dependency/dependency-graph-builder.js.map +1 -1
- package/dist/dependency/dependency-resolver.d.ts +1 -0
- package/dist/dependency/dependency-resolver.d.ts.map +1 -1
- package/dist/dependency/dependency-resolver.js.map +1 -1
- package/dist/github/github-client.d.ts +10 -5
- package/dist/github/github-client.d.ts.map +1 -1
- package/dist/github/github-client.js +110 -94
- package/dist/github/github-client.js.map +1 -1
- package/dist/index.d.ts +2 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/install/config-manager.d.ts +2 -1
- package/dist/install/config-manager.d.ts.map +1 -1
- package/dist/install/config-manager.js +258 -33
- package/dist/install/config-manager.js.map +1 -1
- package/dist/install/history-recorder.d.ts +14 -3
- package/dist/install/history-recorder.d.ts.map +1 -1
- package/dist/install/history-recorder.js +82 -48
- package/dist/install/history-recorder.js.map +1 -1
- package/dist/install/install-orchestrator.d.ts +9 -2
- package/dist/install/install-orchestrator.d.ts.map +1 -1
- package/dist/install/install-orchestrator.js +341 -162
- package/dist/install/install-orchestrator.js.map +1 -1
- package/dist/install/migration-runner.d.ts +25 -0
- package/dist/install/migration-runner.d.ts.map +1 -1
- package/dist/install/migration-runner.js +5 -3
- package/dist/install/migration-runner.js.map +1 -1
- package/dist/install/package-manager.d.ts.map +1 -1
- package/dist/install/package-manager.js +51 -20
- package/dist/install/package-manager.js.map +1 -1
- package/dist/install/schema-manager.d.ts.map +1 -1
- package/dist/install/schema-manager.js +11 -14
- package/dist/install/schema-manager.js.map +1 -1
- package/dist/manifest/manifest-schema.d.ts +53 -6
- package/dist/manifest/manifest-schema.d.ts.map +1 -1
- package/dist/manifest/manifest-schema.js +20 -7
- package/dist/manifest/manifest-schema.js.map +1 -1
- package/dist/types/open-app-types.d.ts +3 -0
- package/dist/types/open-app-types.d.ts.map +1 -1
- package/package.json +6 -3
- package/dist/install/client-bootstrap-gen.d.ts +0 -8
- package/dist/install/client-bootstrap-gen.d.ts.map +0 -1
- package/dist/install/client-bootstrap-gen.js +0 -38
- package/dist/install/client-bootstrap-gen.js.map +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { readFileSync, writeFileSync, existsSync } from 'node:fs';
|
|
2
2
|
import { resolve } from 'node:path';
|
|
3
|
+
import { compileFunction } from 'node:vm';
|
|
3
4
|
const CONFIG_FILE_NAME = 'mj.config.cjs';
|
|
4
5
|
export function AddServerDynamicPackages(repoRoot, manifest) {
|
|
5
6
|
const configPath = resolveConfigPath(repoRoot);
|
|
@@ -13,10 +14,35 @@ export function AddServerDynamicPackages(repoRoot, manifest) {
|
|
|
13
14
|
try {
|
|
14
15
|
let content = readFileSync(configPath, 'utf-8');
|
|
15
16
|
content = EnsureDynamicPackagesSection(content);
|
|
17
|
+
content = EnsureDynamicArrayPresent(content, 'server');
|
|
16
18
|
for (const entry of serverPackages) {
|
|
17
|
-
content =
|
|
19
|
+
content = AddEntryToDynamicArray(content, entry, 'server');
|
|
18
20
|
}
|
|
19
|
-
|
|
21
|
+
WriteConfigChecked(configPath, content);
|
|
22
|
+
return { Success: true };
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
26
|
+
return { Success: false, ErrorMessage: `Failed to update config: ${message}` };
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export function AddClientDynamicPackages(repoRoot, manifest) {
|
|
30
|
+
const configPath = resolveConfigPath(repoRoot);
|
|
31
|
+
if (!configPath) {
|
|
32
|
+
return { Success: false, ErrorMessage: `No MJ config file found in ${repoRoot}. Expected: ${CONFIG_FILE_NAME}` };
|
|
33
|
+
}
|
|
34
|
+
const clientPackages = GetClientPackagesFromManifest(manifest);
|
|
35
|
+
if (clientPackages.length === 0) {
|
|
36
|
+
return { Success: true };
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
let content = readFileSync(configPath, 'utf-8');
|
|
40
|
+
content = EnsureDynamicPackagesSection(content);
|
|
41
|
+
content = EnsureDynamicArrayPresent(content, 'client');
|
|
42
|
+
for (const entry of clientPackages) {
|
|
43
|
+
content = AddEntryToDynamicArray(content, entry, 'client');
|
|
44
|
+
}
|
|
45
|
+
WriteConfigChecked(configPath, content);
|
|
20
46
|
return { Success: true };
|
|
21
47
|
}
|
|
22
48
|
catch (error) {
|
|
@@ -32,7 +58,7 @@ export function RemoveServerDynamicPackages(repoRoot, appName) {
|
|
|
32
58
|
try {
|
|
33
59
|
let content = readFileSync(configPath, 'utf-8');
|
|
34
60
|
content = RemoveEntriesForApp(content, appName);
|
|
35
|
-
|
|
61
|
+
WriteConfigChecked(configPath, content);
|
|
36
62
|
return { Success: true };
|
|
37
63
|
}
|
|
38
64
|
catch (error) {
|
|
@@ -48,7 +74,7 @@ export function ToggleServerDynamicPackages(repoRoot, appName, enabled) {
|
|
|
48
74
|
try {
|
|
49
75
|
let content = readFileSync(configPath, 'utf-8');
|
|
50
76
|
content = ToggleEntriesForApp(content, appName, enabled);
|
|
51
|
-
|
|
77
|
+
WriteConfigChecked(configPath, content);
|
|
52
78
|
return { Success: true };
|
|
53
79
|
}
|
|
54
80
|
catch (error) {
|
|
@@ -60,6 +86,17 @@ function resolveConfigPath(repoRoot) {
|
|
|
60
86
|
const candidate = resolve(repoRoot, CONFIG_FILE_NAME);
|
|
61
87
|
return existsSync(candidate) ? candidate : undefined;
|
|
62
88
|
}
|
|
89
|
+
function WriteConfigChecked(configPath, content) {
|
|
90
|
+
try {
|
|
91
|
+
compileFunction(content);
|
|
92
|
+
}
|
|
93
|
+
catch (parseError) {
|
|
94
|
+
const message = parseError instanceof Error ? parseError.message : String(parseError);
|
|
95
|
+
throw new Error(`the edit would produce invalid JavaScript (${message}); the file was left unchanged. ` +
|
|
96
|
+
`This is a bug in the Open App config editor — please report it with your mj.config.cjs shape.`);
|
|
97
|
+
}
|
|
98
|
+
writeFileSync(configPath, content, 'utf-8');
|
|
99
|
+
}
|
|
63
100
|
function GetServerPackagesFromManifest(manifest) {
|
|
64
101
|
const entries = [];
|
|
65
102
|
const serverPkgs = manifest.packages?.server ?? [];
|
|
@@ -76,40 +113,92 @@ function GetServerPackagesFromManifest(manifest) {
|
|
|
76
113
|
}
|
|
77
114
|
return entries;
|
|
78
115
|
}
|
|
116
|
+
function GetClientPackagesFromManifest(manifest) {
|
|
117
|
+
const entries = [];
|
|
118
|
+
const clientPkgs = manifest.packages?.client ?? [];
|
|
119
|
+
const sharedPkgs = manifest.packages?.shared ?? [];
|
|
120
|
+
for (const pkg of [...clientPkgs, ...sharedPkgs]) {
|
|
121
|
+
entries.push({
|
|
122
|
+
PackageName: pkg.name,
|
|
123
|
+
AppName: manifest.name,
|
|
124
|
+
Enabled: true
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
return entries;
|
|
128
|
+
}
|
|
79
129
|
function EnsureDynamicPackagesSection(content) {
|
|
80
|
-
if (content
|
|
130
|
+
if (/dynamicPackages\s*:/.test(content)) {
|
|
81
131
|
return content;
|
|
82
132
|
}
|
|
83
|
-
const
|
|
84
|
-
|
|
133
|
+
const section = `\n dynamicPackages: {\n server: [],\n client: []\n },\n`;
|
|
134
|
+
return InsertBeforeModuleExportsClose(content, section);
|
|
135
|
+
}
|
|
136
|
+
function EnsureDynamicArrayPresent(content, arrayName) {
|
|
137
|
+
const dynMatch = content.match(/dynamicPackages\s*:\s*\{/);
|
|
138
|
+
if (!dynMatch || dynMatch.index === undefined) {
|
|
139
|
+
throw new Error('dynamicPackages section not found in mj.config.cjs.');
|
|
140
|
+
}
|
|
141
|
+
const openBracePos = dynMatch.index + dynMatch[0].length - 1;
|
|
142
|
+
const closeBracePos = FindMatchingBracket(content, openBracePos);
|
|
143
|
+
if (closeBracePos === -1) {
|
|
144
|
+
throw new Error('Could not find the closing brace of the dynamicPackages section in mj.config.cjs.');
|
|
145
|
+
}
|
|
146
|
+
const sectionBody = content.slice(openBracePos, closeBracePos);
|
|
147
|
+
if (new RegExp(`${arrayName}\\s*:\\s*\\[`).test(sectionBody)) {
|
|
85
148
|
return content;
|
|
86
149
|
}
|
|
87
|
-
|
|
88
|
-
return content.slice(0, insertionPoint) + section + content.slice(insertionPoint);
|
|
150
|
+
return content.slice(0, openBracePos + 1) + `\n ${arrayName}: [],` + content.slice(openBracePos + 1);
|
|
89
151
|
}
|
|
90
|
-
function
|
|
91
|
-
const existsPattern = new RegExp(`PackageName:\\s*'${EscapeRegex(entry.PackageName)}'[^{}]*AppName:\\s*'${EscapeRegex(entry.AppName)}'`);
|
|
152
|
+
function AddEntryToDynamicArray(content, entry, arrayName) {
|
|
153
|
+
const existsPattern = new RegExp(`PackageName:\\s*['"]${EscapeRegex(entry.PackageName)}['"][^{}]*AppName:\\s*['"]${EscapeRegex(entry.AppName)}['"]`);
|
|
92
154
|
if (existsPattern.test(content)) {
|
|
93
155
|
return content;
|
|
94
156
|
}
|
|
95
|
-
const
|
|
96
|
-
if (!
|
|
97
|
-
|
|
157
|
+
const dynMatch = content.match(/dynamicPackages\s*:\s*\{/);
|
|
158
|
+
if (!dynMatch || dynMatch.index === undefined) {
|
|
159
|
+
throw new Error(`dynamicPackages section not found in mj.config.cjs when adding a ${arrayName} package.`);
|
|
160
|
+
}
|
|
161
|
+
const afterDyn = content.slice(dynMatch.index);
|
|
162
|
+
const arrayRel = afterDyn.match(new RegExp(`${arrayName}:\\s*\\[`));
|
|
163
|
+
if (!arrayRel || arrayRel.index === undefined) {
|
|
164
|
+
throw new Error(`dynamicPackages.${arrayName} array not found in mj.config.cjs.`);
|
|
98
165
|
}
|
|
99
|
-
const
|
|
100
|
-
const
|
|
166
|
+
const arrayIndex = dynMatch.index + arrayRel.index;
|
|
167
|
+
const startupLine = entry.StartupExport ? `\n StartupExport: '${entry.StartupExport}',` : '';
|
|
168
|
+
const entryStr = `\n {\n PackageName: '${entry.PackageName}',${startupLine}\n AppName: '${entry.AppName}',\n Enabled: ${entry.Enabled}\n },`;
|
|
169
|
+
const arrayStart = arrayIndex + arrayRel[0].length;
|
|
101
170
|
const closingBracket = FindMatchingBracket(content, arrayStart - 1);
|
|
102
171
|
if (closingBracket === -1) {
|
|
103
|
-
|
|
172
|
+
throw new Error(`Could not find the closing bracket of dynamicPackages.${arrayName} in mj.config.cjs.`);
|
|
104
173
|
}
|
|
105
174
|
return content.slice(0, closingBracket) + entryStr + '\n ' + content.slice(closingBracket);
|
|
106
175
|
}
|
|
107
176
|
function RemoveEntriesForApp(content, appName) {
|
|
108
|
-
const pattern = new RegExp(`\\s*\\{[^{}]*AppName:\\s*'${EscapeRegex(appName)}'[^{}]*\\},?`, 'g');
|
|
109
|
-
|
|
177
|
+
const pattern = new RegExp(`\\s*\\{[^{}]*AppName:\\s*['"]${EscapeRegex(appName)}['"][^{}]*\\},?`, 'g');
|
|
178
|
+
let result = content.replace(pattern, '');
|
|
179
|
+
result = NormalizeEmptyDynamicArray(result, 'server');
|
|
180
|
+
result = NormalizeEmptyDynamicArray(result, 'client');
|
|
181
|
+
return result;
|
|
182
|
+
}
|
|
183
|
+
function NormalizeEmptyDynamicArray(content, arrayName) {
|
|
184
|
+
const dynMatch = content.match(/dynamicPackages\s*:\s*\{/);
|
|
185
|
+
if (!dynMatch || dynMatch.index === undefined)
|
|
186
|
+
return content;
|
|
187
|
+
const afterDyn = content.slice(dynMatch.index);
|
|
188
|
+
const arrayRel = afterDyn.match(new RegExp(`${arrayName}:\\s*\\[`));
|
|
189
|
+
if (!arrayRel || arrayRel.index === undefined)
|
|
190
|
+
return content;
|
|
191
|
+
const openBracketPos = dynMatch.index + arrayRel.index + arrayRel[0].length - 1;
|
|
192
|
+
const closePos = FindMatchingBracket(content, openBracketPos);
|
|
193
|
+
if (closePos === -1)
|
|
194
|
+
return content;
|
|
195
|
+
if (content.slice(openBracketPos + 1, closePos).trim() === '') {
|
|
196
|
+
return content.slice(0, openBracketPos) + '[]' + content.slice(closePos + 1);
|
|
197
|
+
}
|
|
198
|
+
return content;
|
|
110
199
|
}
|
|
111
200
|
function ToggleEntriesForApp(content, appName, enabled) {
|
|
112
|
-
const pattern = new RegExp(`(AppName:\\s*'${EscapeRegex(appName)}'[^{}]*Enabled:\\s*)(?:true|false)`, 'g');
|
|
201
|
+
const pattern = new RegExp(`(AppName:\\s*['"]${EscapeRegex(appName)}['"][^{}]*Enabled:\\s*)(?:true|false)`, 'g');
|
|
113
202
|
return content.replace(pattern, `$1${enabled}`);
|
|
114
203
|
}
|
|
115
204
|
function FindMatchingBracket(content, openPos) {
|
|
@@ -117,15 +206,138 @@ function FindMatchingBracket(content, openPos) {
|
|
|
117
206
|
const closeChar = openChar === '[' ? ']' : '}';
|
|
118
207
|
let depth = 1;
|
|
119
208
|
let pos = openPos + 1;
|
|
209
|
+
let inString = null;
|
|
210
|
+
let inLineComment = false;
|
|
211
|
+
let inBlockComment = false;
|
|
120
212
|
while (pos < content.length && depth > 0) {
|
|
121
|
-
|
|
213
|
+
const ch = content[pos];
|
|
214
|
+
if (inLineComment) {
|
|
215
|
+
if (ch === '\n')
|
|
216
|
+
inLineComment = false;
|
|
217
|
+
pos++;
|
|
218
|
+
continue;
|
|
219
|
+
}
|
|
220
|
+
if (inBlockComment) {
|
|
221
|
+
if (ch === '*' && content[pos + 1] === '/') {
|
|
222
|
+
inBlockComment = false;
|
|
223
|
+
pos += 2;
|
|
224
|
+
continue;
|
|
225
|
+
}
|
|
226
|
+
pos++;
|
|
227
|
+
continue;
|
|
228
|
+
}
|
|
229
|
+
if (inString) {
|
|
230
|
+
if (ch === '\\') {
|
|
231
|
+
pos += 2;
|
|
232
|
+
continue;
|
|
233
|
+
}
|
|
234
|
+
if (ch === inString)
|
|
235
|
+
inString = null;
|
|
236
|
+
pos++;
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
239
|
+
if (ch === '/' && content[pos + 1] === '/') {
|
|
240
|
+
inLineComment = true;
|
|
241
|
+
pos += 2;
|
|
242
|
+
continue;
|
|
243
|
+
}
|
|
244
|
+
if (ch === '/' && content[pos + 1] === '*') {
|
|
245
|
+
inBlockComment = true;
|
|
246
|
+
pos += 2;
|
|
247
|
+
continue;
|
|
248
|
+
}
|
|
249
|
+
if (ch === '"' || ch === "'" || ch === '`') {
|
|
250
|
+
inString = ch;
|
|
251
|
+
pos++;
|
|
252
|
+
continue;
|
|
253
|
+
}
|
|
254
|
+
if (ch === openChar)
|
|
122
255
|
depth++;
|
|
123
|
-
if (
|
|
256
|
+
else if (ch === closeChar)
|
|
124
257
|
depth--;
|
|
125
258
|
pos++;
|
|
126
259
|
}
|
|
127
260
|
return depth === 0 ? pos - 1 : -1;
|
|
128
261
|
}
|
|
262
|
+
function LastSignificantCharIndex(content, end) {
|
|
263
|
+
let pos = 0;
|
|
264
|
+
let last = -1;
|
|
265
|
+
let inString = null;
|
|
266
|
+
let inLineComment = false;
|
|
267
|
+
let inBlockComment = false;
|
|
268
|
+
while (pos < end) {
|
|
269
|
+
const ch = content[pos];
|
|
270
|
+
if (inLineComment) {
|
|
271
|
+
if (ch === '\n')
|
|
272
|
+
inLineComment = false;
|
|
273
|
+
pos++;
|
|
274
|
+
continue;
|
|
275
|
+
}
|
|
276
|
+
if (inBlockComment) {
|
|
277
|
+
if (ch === '*' && content[pos + 1] === '/') {
|
|
278
|
+
inBlockComment = false;
|
|
279
|
+
pos += 2;
|
|
280
|
+
continue;
|
|
281
|
+
}
|
|
282
|
+
pos++;
|
|
283
|
+
continue;
|
|
284
|
+
}
|
|
285
|
+
if (inString) {
|
|
286
|
+
if (ch === '\\') {
|
|
287
|
+
pos += 2;
|
|
288
|
+
continue;
|
|
289
|
+
}
|
|
290
|
+
if (ch === inString) {
|
|
291
|
+
inString = null;
|
|
292
|
+
last = pos;
|
|
293
|
+
}
|
|
294
|
+
pos++;
|
|
295
|
+
continue;
|
|
296
|
+
}
|
|
297
|
+
if (ch === '/' && content[pos + 1] === '/') {
|
|
298
|
+
inLineComment = true;
|
|
299
|
+
pos += 2;
|
|
300
|
+
continue;
|
|
301
|
+
}
|
|
302
|
+
if (ch === '/' && content[pos + 1] === '*') {
|
|
303
|
+
inBlockComment = true;
|
|
304
|
+
pos += 2;
|
|
305
|
+
continue;
|
|
306
|
+
}
|
|
307
|
+
if (ch === '"' || ch === "'" || ch === '`') {
|
|
308
|
+
inString = ch;
|
|
309
|
+
last = pos;
|
|
310
|
+
pos++;
|
|
311
|
+
continue;
|
|
312
|
+
}
|
|
313
|
+
if (ch !== ' ' && ch !== '\t' && ch !== '\r' && ch !== '\n') {
|
|
314
|
+
last = pos;
|
|
315
|
+
}
|
|
316
|
+
pos++;
|
|
317
|
+
}
|
|
318
|
+
return last;
|
|
319
|
+
}
|
|
320
|
+
function EnsureTrailingComma(before, openBracePos) {
|
|
321
|
+
const idx = LastSignificantCharIndex(before, before.length);
|
|
322
|
+
if (idx <= openBracePos || before[idx] === ',') {
|
|
323
|
+
return before;
|
|
324
|
+
}
|
|
325
|
+
return before.slice(0, idx + 1) + ',' + before.slice(idx + 1);
|
|
326
|
+
}
|
|
327
|
+
function InsertBeforeModuleExportsClose(content, section) {
|
|
328
|
+
const exportMatch = content.match(/module\.exports\s*=\s*\{/);
|
|
329
|
+
if (!exportMatch || exportMatch.index === undefined) {
|
|
330
|
+
throw new Error('Could not find a `module.exports = { ... }` object literal in mj.config.cjs to insert into. ' +
|
|
331
|
+
'If module.exports references a variable (e.g. `module.exports = config;`), add the section manually.');
|
|
332
|
+
}
|
|
333
|
+
const bracePos = content.indexOf('{', exportMatch.index);
|
|
334
|
+
const closePos = FindMatchingBracket(content, bracePos);
|
|
335
|
+
if (closePos === -1) {
|
|
336
|
+
throw new Error('Could not locate the closing brace of module.exports in mj.config.cjs.');
|
|
337
|
+
}
|
|
338
|
+
const before = EnsureTrailingComma(content.slice(0, closePos), bracePos);
|
|
339
|
+
return before + section + content.slice(closePos);
|
|
340
|
+
}
|
|
129
341
|
export function AddEntityPackageMapping(repoRoot, manifest) {
|
|
130
342
|
const schemaName = manifest.schema?.name;
|
|
131
343
|
if (!schemaName) {
|
|
@@ -143,7 +355,7 @@ export function AddEntityPackageMapping(repoRoot, manifest) {
|
|
|
143
355
|
let content = readFileSync(configPath, 'utf-8');
|
|
144
356
|
content = EnsureEntityPackageNameSection(content);
|
|
145
357
|
content = AddEntityPackageEntry(content, schemaName, entityPkg);
|
|
146
|
-
|
|
358
|
+
WriteConfigChecked(configPath, content);
|
|
147
359
|
return { Success: true };
|
|
148
360
|
}
|
|
149
361
|
catch (error) {
|
|
@@ -162,7 +374,7 @@ export function RemoveEntityPackageMapping(repoRoot, schemaName) {
|
|
|
162
374
|
try {
|
|
163
375
|
let content = readFileSync(configPath, 'utf-8');
|
|
164
376
|
content = RemoveEntityPackageEntry(content, schemaName);
|
|
165
|
-
|
|
377
|
+
WriteConfigChecked(configPath, content);
|
|
166
378
|
return { Success: true };
|
|
167
379
|
}
|
|
168
380
|
catch (error) {
|
|
@@ -186,29 +398,42 @@ function EnsureEntityPackageNameSection(content) {
|
|
|
186
398
|
const stringMatch = content.match(/entityPackageName\s*:\s*['"]([^'"]*)['"]\s*,?/);
|
|
187
399
|
if (stringMatch) {
|
|
188
400
|
const oldValue = stringMatch[1];
|
|
189
|
-
const
|
|
401
|
+
const isDefaultString = oldValue === '' || oldValue === 'mj_generatedentities';
|
|
402
|
+
if (!isDefaultString) {
|
|
403
|
+
throw new Error(`mj.config.cjs sets entityPackageName: '${oldValue}' (a string that applies to ALL non-core schemas). ` +
|
|
404
|
+
`Installing an app needs a per-schema Record, but auto-converting would silently change other schemas ` +
|
|
405
|
+
`to 'mj_generatedentities' (a Record's fallback), not '${oldValue}'. Manually convert entityPackageName ` +
|
|
406
|
+
`to a Record that preserves '${oldValue}' for your existing schemas, then re-run the install.`);
|
|
407
|
+
}
|
|
408
|
+
const replacement = `entityPackageName: {\n },`;
|
|
190
409
|
return content.replace(stringMatch[0], replacement);
|
|
191
410
|
}
|
|
192
|
-
const insertionPoint = content.lastIndexOf('};');
|
|
193
|
-
if (insertionPoint === -1) {
|
|
194
|
-
return content;
|
|
195
|
-
}
|
|
196
411
|
const section = `\n entityPackageName: {\n },\n`;
|
|
197
|
-
return content
|
|
412
|
+
return InsertBeforeModuleExportsClose(content, section);
|
|
198
413
|
}
|
|
199
414
|
function AddEntityPackageEntry(content, schemaName, packageName) {
|
|
200
415
|
content = RemoveEntityPackageEntry(content, schemaName);
|
|
201
416
|
const recordMatch = content.match(/entityPackageName\s*:\s*\{/);
|
|
202
417
|
if (!recordMatch || recordMatch.index === undefined) {
|
|
203
|
-
|
|
418
|
+
throw new Error('entityPackageName record not found in mj.config.cjs when adding a schema mapping.');
|
|
204
419
|
}
|
|
205
420
|
const bracePos = content.indexOf('{', recordMatch.index);
|
|
206
421
|
const entryStr = `\n '${schemaName}': '${packageName}',`;
|
|
207
422
|
return content.slice(0, bracePos + 1) + entryStr + content.slice(bracePos + 1);
|
|
208
423
|
}
|
|
209
424
|
function RemoveEntityPackageEntry(content, schemaName) {
|
|
210
|
-
const
|
|
211
|
-
|
|
425
|
+
const recordMatch = content.match(/entityPackageName\s*:\s*\{/);
|
|
426
|
+
if (!recordMatch || recordMatch.index === undefined) {
|
|
427
|
+
return content;
|
|
428
|
+
}
|
|
429
|
+
const bracePos = content.indexOf('{', recordMatch.index);
|
|
430
|
+
const closePos = FindMatchingBracket(content, bracePos);
|
|
431
|
+
if (closePos === -1) {
|
|
432
|
+
return content;
|
|
433
|
+
}
|
|
434
|
+
const pattern = new RegExp(`\\s*['"]${EscapeRegex(schemaName)}['"]\\s*:\\s*['"][^'"]*['"]\\s*,?`, 'g');
|
|
435
|
+
const inner = content.slice(bracePos + 1, closePos).replace(pattern, '');
|
|
436
|
+
return content.slice(0, bracePos + 1) + inner + content.slice(closePos);
|
|
212
437
|
}
|
|
213
438
|
function EscapeRegex(str) {
|
|
214
439
|
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../../src/install/config-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../../src/install/config-manager.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAI1C,MAAM,gBAAgB,GAAG,eAAe,CAAC;AAiCzC,MAAM,UAAU,wBAAwB,CACpC,QAAgB,EAChB,QAAuB;IAEvB,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,8BAA8B,QAAQ,eAAe,gBAAgB,EAAE,EAAE,CAAC;IACrH,CAAC;IACD,MAAM,cAAc,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IAE/D,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI,CAAC;QACD,IAAI,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,GAAG,yBAAyB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAEvD,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACjC,OAAO,GAAG,sBAAsB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/D,CAAC;QAED,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IACD,OAAO,KAAc,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,4BAA4B,OAAO,EAAE,EAAE,CAAC;IACnF,CAAC;AACL,CAAC;AAeD,MAAM,UAAU,wBAAwB,CACpC,QAAgB,EAChB,QAAuB;IAEvB,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,8BAA8B,QAAQ,eAAe,gBAAgB,EAAE,EAAE,CAAC;IACrH,CAAC;IACD,MAAM,cAAc,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IAE/D,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI,CAAC;QACD,IAAI,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,GAAG,yBAAyB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAEvD,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACjC,OAAO,GAAG,sBAAsB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/D,CAAC;QAED,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IACD,OAAO,KAAc,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,4BAA4B,OAAO,EAAE,EAAE,CAAC;IACnF,CAAC;AACL,CAAC;AAWD,MAAM,UAAU,2BAA2B,CACvC,QAAgB,EAChB,OAAe;IAEf,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,8BAA8B,QAAQ,EAAE,EAAE,CAAC;IACtF,CAAC;IAED,IAAI,CAAC;QACD,IAAI,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAChD,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IACD,OAAO,KAAc,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,4BAA4B,OAAO,EAAE,EAAE,CAAC;IACnF,CAAC;AACL,CAAC;AAUD,MAAM,UAAU,2BAA2B,CACvC,QAAgB,EAChB,OAAe,EACf,OAAgB;IAEhB,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,8BAA8B,QAAQ,EAAE,EAAE,CAAC;IACtF,CAAC;IAED,IAAI,CAAC;QACD,IAAI,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACzD,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IACD,OAAO,KAAc,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,4BAA4B,OAAO,EAAE,EAAE,CAAC;IACnF,CAAC;AACL,CAAC;AAMD,SAAS,iBAAiB,CAAC,QAAgB;IACvC,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IACtD,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC;AAcD,SAAS,kBAAkB,CAAC,UAAkB,EAAE,OAAe;IAC3D,IAAI,CAAC;QACD,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,UAAmB,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACtF,MAAM,IAAI,KAAK,CACX,8CAA8C,OAAO,kCAAkC;YACvF,+FAA+F,CAClG,CAAC;IACN,CAAC;IACD,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAKD,SAAS,6BAA6B,CAAC,QAAuB;IAC1D,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;IACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;IAEnD,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QAC/C,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC;gBACT,WAAW,EAAE,GAAG,CAAC,IAAI;gBACrB,aAAa,EAAE,GAAG,CAAC,aAAa;gBAChC,OAAO,EAAE,QAAQ,CAAC,IAAI;gBACtB,OAAO,EAAE,IAAI;aAChB,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAQD,SAAS,6BAA6B,CAAC,QAAuB;IAC1D,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;IACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;IAEnD,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC;YACT,WAAW,EAAE,GAAG,CAAC,IAAI;YACrB,OAAO,EAAE,QAAQ,CAAC,IAAI;YACtB,OAAO,EAAE,IAAI;SAChB,CAAC,CAAC;IACP,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAOD,SAAS,4BAA4B,CAAC,OAAe;IAIjD,IAAI,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC;IACnB,CAAC;IAMD,MAAM,OAAO,GAAG,iEAAiE,CAAC;IAClF,OAAO,8BAA8B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC;AAOD,SAAS,yBAAyB,CAAC,OAAe,EAAE,SAA8B;IAC9E,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC3D,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACjE,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;IACzG,CAAC;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IAE/D,IAAI,IAAI,MAAM,CAAC,GAAG,SAAS,cAAc,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3D,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,GAAG,SAAS,SAAS,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AAC5G,CAAC;AAMD,SAAS,sBAAsB,CAAC,OAAe,EAAE,KAA0B,EAAE,SAA8B;IAEvG,MAAM,aAAa,GAAG,IAAI,MAAM,CAC5B,uBAAuB,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,6BAA6B,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CACrH,CAAC;IACF,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC;IACnB,CAAC;IAID,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC3D,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,oEAAoE,SAAS,WAAW,CAAC,CAAC;IAC9G,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,UAAU,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,oCAAoC,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAEnD,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,6BAA6B,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACpG,MAAM,QAAQ,GAAG,oCAAoC,KAAK,CAAC,WAAW,KAAK,WAAW,uBAAuB,KAAK,CAAC,OAAO,wBAAwB,KAAK,CAAC,OAAO,YAAY,CAAC;IAG5K,MAAM,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACnD,MAAM,cAAc,GAAG,mBAAmB,CAAC,OAAO,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;IACpE,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,yDAAyD,SAAS,oBAAoB,CAAC,CAAC;IAC5G,CAAC;IAED,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAClG,CAAC;AAOD,SAAS,mBAAmB,CAAC,OAAe,EAAE,OAAe;IAIzD,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,gCAAgC,WAAW,CAAC,OAAO,CAAC,iBAAiB,EACrE,GAAG,CACN,CAAC;IACF,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,GAAG,0BAA0B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtD,MAAM,GAAG,0BAA0B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtD,OAAO,MAAM,CAAC;AAClB,CAAC;AASD,SAAS,0BAA0B,CAAC,OAAe,EAAE,SAA8B;IAC/E,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC3D,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,UAAU,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAC9D,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAChF,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC9D,IAAI,QAAQ,KAAK,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IACpC,IAAI,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC5D,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAKD,SAAS,mBAAmB,CAAC,OAAe,EAAE,OAAe,EAAE,OAAgB;IAG3E,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,oBAAoB,WAAW,CAAC,OAAO,CAAC,uCAAuC,EAC/E,GAAG,CACN,CAAC;IACF,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;AACpD,CAAC;AAUD,SAAS,mBAAmB,CAAC,OAAe,EAAE,OAAe;IACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC/C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC;IACtB,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,OAAO,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAExB,IAAI,aAAa,EAAE,CAAC;YAChB,IAAI,EAAE,KAAK,IAAI;gBAAE,aAAa,GAAG,KAAK,CAAC;YACvC,GAAG,EAAE,CAAC;YACN,SAAS;QACb,CAAC;QACD,IAAI,cAAc,EAAE,CAAC;YACjB,IAAI,EAAE,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACzC,cAAc,GAAG,KAAK,CAAC;gBACvB,GAAG,IAAI,CAAC,CAAC;gBACT,SAAS;YACb,CAAC;YACD,GAAG,EAAE,CAAC;YACN,SAAS;QACb,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACX,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAAC,GAAG,IAAI,CAAC,CAAC;gBAAC,SAAS;YAAC,CAAC;YACxC,IAAI,EAAE,KAAK,QAAQ;gBAAE,QAAQ,GAAG,IAAI,CAAC;YACrC,GAAG,EAAE,CAAC;YACN,SAAS;QACb,CAAC;QAGD,IAAI,EAAE,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAAC,aAAa,GAAG,IAAI,CAAC;YAAC,GAAG,IAAI,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QACzF,IAAI,EAAE,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAAC,cAAc,GAAG,IAAI,CAAC;YAAC,GAAG,IAAI,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QAC1F,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAAC,QAAQ,GAAG,EAAE,CAAC;YAAC,GAAG,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QAE/E,IAAI,EAAE,KAAK,QAAQ;YAAE,KAAK,EAAE,CAAC;aACxB,IAAI,EAAE,KAAK,SAAS;YAAE,KAAK,EAAE,CAAC;QACnC,GAAG,EAAE,CAAC;IACV,CAAC;IAED,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAQD,SAAS,wBAAwB,CAAC,OAAe,EAAE,GAAW;IAC1D,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;IACd,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,OAAO,GAAG,GAAG,GAAG,EAAE,CAAC;QACf,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAExB,IAAI,aAAa,EAAE,CAAC;YAChB,IAAI,EAAE,KAAK,IAAI;gBAAE,aAAa,GAAG,KAAK,CAAC;YACvC,GAAG,EAAE,CAAC;YACN,SAAS;QACb,CAAC;QACD,IAAI,cAAc,EAAE,CAAC;YACjB,IAAI,EAAE,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAAC,cAAc,GAAG,KAAK,CAAC;gBAAC,GAAG,IAAI,CAAC,CAAC;gBAAC,SAAS;YAAC,CAAC;YAC3F,GAAG,EAAE,CAAC;YACN,SAAS;QACb,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACX,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAAC,GAAG,IAAI,CAAC,CAAC;gBAAC,SAAS;YAAC,CAAC;YACxC,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;gBAAC,QAAQ,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,GAAG,CAAC;YAAC,CAAC;YACrD,GAAG,EAAE,CAAC;YACN,SAAS;QACb,CAAC;QAED,IAAI,EAAE,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAAC,aAAa,GAAG,IAAI,CAAC;YAAC,GAAG,IAAI,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QACzF,IAAI,EAAE,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAAC,cAAc,GAAG,IAAI,CAAC;YAAC,GAAG,IAAI,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QAC1F,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAAC,QAAQ,GAAG,EAAE,CAAC;YAAC,IAAI,GAAG,GAAG,CAAC;YAAC,GAAG,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QAE3F,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAC1D,IAAI,GAAG,GAAG,CAAC;QACf,CAAC;QACD,GAAG,EAAE,CAAC;IACV,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AASD,SAAS,mBAAmB,CAAC,MAAc,EAAE,YAAoB;IAC7D,MAAM,GAAG,GAAG,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5D,IAAI,GAAG,IAAI,YAAY,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAClE,CAAC;AAUD,SAAS,8BAA8B,CAAC,OAAe,EAAE,OAAe;IACpE,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9D,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CACX,8FAA8F;YAC9F,sGAAsG,CACzG,CAAC;IACN,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxD,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC9F,CAAC;IAMD,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;IACzE,OAAO,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACtD,CAAC;AAiBD,MAAM,UAAU,uBAAuB,CACnC,QAAgB,EAChB,QAAuB;IAEvB,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACzC,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,SAAS,GAAG,gCAAgC,CAAC,QAAQ,CAAC,CAAC;IAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,8BAA8B,QAAQ,eAAe,gBAAgB,EAAE,EAAE,CAAC;IACrH,CAAC;IAED,IAAI,CAAC;QACD,IAAI,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,GAAG,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAChE,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IACD,OAAO,KAAc,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,8CAA8C,OAAO,EAAE,EAAE,CAAC;IACrG,CAAC;AACL,CAAC;AASD,MAAM,UAAU,0BAA0B,CACtC,QAAgB,EAChB,UAAkB;IAElB,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,8BAA8B,QAAQ,EAAE,EAAE,CAAC;IACtF,CAAC;IAED,IAAI,CAAC;QACD,IAAI,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,GAAG,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACxD,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IACD,OAAO,KAAc,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,+CAA+C,OAAO,EAAE,EAAE,CAAC;IACtG,CAAC;AACL,CAAC;AASD,SAAS,gCAAgC,CAAC,QAAuB;IAE7D,IAAI,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC;IACzC,CAAC;IAGD,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;IACnD,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAC/B,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CACjF,CAAC;IACF,OAAO,WAAW,EAAE,IAAI,CAAC;AAC7B,CAAC;AAOD,SAAS,8BAA8B,CAAC,OAAe;IAEnD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChE,IAAI,WAAW,EAAE,CAAC;QACd,OAAO,OAAO,CAAC;IACnB,CAAC;IAGD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnF,IAAI,WAAW,EAAE,CAAC;QACd,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAShC,MAAM,eAAe,GAAG,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,sBAAsB,CAAC;QAC/E,IAAI,CAAC,eAAe,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACX,0CAA0C,QAAQ,qDAAqD;gBACvG,uGAAuG;gBACvG,yDAAyD,QAAQ,wCAAwC;gBACzG,+BAA+B,QAAQ,uDAAuD,CACjG,CAAC;QACN,CAAC;QAED,MAAM,WAAW,GAAG,4BAA4B,CAAC;QACjD,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IACxD,CAAC;IAID,MAAM,OAAO,GAAG,kCAAkC,CAAC;IACnD,OAAO,8BAA8B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC;AAMD,SAAS,qBAAqB,CAAC,OAAe,EAAE,UAAkB,EAAE,WAAmB;IAEnF,OAAO,GAAG,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAGxD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChE,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;IACzG,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,UAAU,UAAU,OAAO,WAAW,IAAI,CAAC;IAG5D,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AACnF,CAAC;AAKD,SAAS,wBAAwB,CAAC,OAAe,EAAE,UAAkB;IAIjE,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChE,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAClD,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxD,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,WAAW,WAAW,CAAC,UAAU,CAAC,mCAAmC,EACrE,GAAG,CACN,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACzE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC5E,CAAC;AAKD,SAAS,WAAW,CAAC,GAAW;IAC5B,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { UserInfo, TransactionGroupBase, IMetadataProvider } from '@memberjunction/core';
|
|
2
|
+
import type { MJOpenAppEntity } from '@memberjunction/core-entities';
|
|
2
3
|
import type { AppStatus, InstallAction, ErrorPhase, InstalledAppInfo, AppInstallCallbacks } from '../types/open-app-types.js';
|
|
3
4
|
import type { MJAppManifest } from '../manifest/manifest-schema.js';
|
|
4
|
-
export declare function RecordAppInstallation(contextUser: UserInfo, manifest: MJAppManifest, callbacks?: AppInstallCallbacks, transactionGroup?: TransactionGroupBase, initialStatus?: AppStatus, provider?: IMetadataProvider): Promise<string>;
|
|
5
|
-
export declare function UpdateAppRecord(contextUser: UserInfo, appId: string, updates:
|
|
5
|
+
export declare function RecordAppInstallation(contextUser: UserInfo, manifest: MJAppManifest, callbacks?: AppInstallCallbacks, transactionGroup?: TransactionGroupBase, initialStatus?: AppStatus, provider?: IMetadataProvider, subpath?: string): Promise<string>;
|
|
6
|
+
export declare function UpdateAppRecord(contextUser: UserInfo, appId: string, updates: Partial<MJOpenAppEntity>, provider?: IMetadataProvider): Promise<void>;
|
|
6
7
|
export declare function SetAppStatus(contextUser: UserInfo, appId: string, status: AppStatus): Promise<void>;
|
|
7
8
|
export declare function RecordInstallHistoryEntry(contextUser: UserInfo, appId: string, action: InstallAction, manifest: MJAppManifest, details: {
|
|
8
9
|
PreviousVersion?: string;
|
|
@@ -18,8 +19,18 @@ export declare function RecordAppDependencies(contextUser: UserInfo, appId: stri
|
|
|
18
19
|
version?: string;
|
|
19
20
|
repository?: string;
|
|
20
21
|
}>, transactionGroup?: TransactionGroupBase, provider?: IMetadataProvider): Promise<void>;
|
|
21
|
-
export declare function DeleteAppDependencies(contextUser: UserInfo, appId: string): Promise<void>;
|
|
22
|
+
export declare function DeleteAppDependencies(contextUser: UserInfo, appId: string, transactionGroup?: TransactionGroupBase): Promise<void>;
|
|
23
|
+
export declare function ReplaceAppDependenciesAtomically(contextUser: UserInfo, appId: string, dependencies: Record<string, string | {
|
|
24
|
+
version?: string;
|
|
25
|
+
repository?: string;
|
|
26
|
+
}>, provider?: IMetadataProvider): Promise<boolean>;
|
|
22
27
|
export declare function FindInstalledApp(contextUser: UserInfo, appName: string, provider?: IMetadataProvider): Promise<InstalledAppInfo | null>;
|
|
28
|
+
export interface SchemaShareCheck {
|
|
29
|
+
Shared: boolean;
|
|
30
|
+
CheckFailed: boolean;
|
|
31
|
+
ErrorMessage?: string;
|
|
32
|
+
}
|
|
33
|
+
export declare function CheckSchemaSharedByOtherApps(contextUser: UserInfo, schemaName: string, excludeAppId: string, provider?: IMetadataProvider): Promise<SchemaShareCheck>;
|
|
23
34
|
export declare function ListInstalledApps(contextUser: UserInfo): Promise<InstalledAppInfo[]>;
|
|
24
35
|
export declare function FindDependentApps(contextUser: UserInfo, appName: string): Promise<string[]>;
|
|
25
36
|
//# sourceMappingURL=history-recorder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history-recorder.d.ts","sourceRoot":"","sources":["../../src/install/history-recorder.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAc,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC1G,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC9H,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAuBpE,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,QAAQ,EACrB,QAAQ,EAAE,aAAa,EACvB,SAAS,CAAC,EAAE,mBAAmB,EAC/B,gBAAgB,CAAC,EAAE,oBAAoB,EACvC,aAAa,GAAE,SAAoB,EACnC,QAAQ,CAAC,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"history-recorder.d.ts","sourceRoot":"","sources":["../../src/install/history-recorder.ts"],"names":[],"mappings":"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"}
|