@antelopejs/core 1.13.5 → 1.15.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/core/build/build-artifact.d.ts +3 -1
- package/dist/core/build/build-artifact.js.map +1 -1
- package/dist/core/config/config-editor.d.ts +8 -0
- package/dist/core/config/config-editor.js +227 -0
- package/dist/core/config/config-editor.js.map +1 -0
- package/dist/core/config/config-loader.d.ts +1 -1
- package/dist/core/config/config-loader.js +4 -3
- package/dist/core/config/config-loader.js.map +1 -1
- package/dist/core/config/config-parser.d.ts +2 -0
- package/dist/core/config/config-parser.js +19 -1
- package/dist/core/config/config-parser.js.map +1 -1
- package/dist/core/config/config-writes.d.ts +2 -0
- package/dist/core/config/config-writes.js +24 -0
- package/dist/core/config/config-writes.js.map +1 -0
- package/dist/core/config/module-declarations.d.ts +4 -0
- package/dist/core/config/module-declarations.js +99 -0
- package/dist/core/config/module-declarations.js.map +1 -0
- package/dist/core/config/module-entry.d.ts +12 -0
- package/dist/core/config/module-entry.js +3 -0
- package/dist/core/config/module-entry.js.map +1 -0
- package/dist/core/embedded/prepare-embedded.js +5 -4
- package/dist/core/embedded/prepare-embedded.js.map +1 -1
- package/dist/core/embedded/types.d.ts +1 -0
- package/dist/core/interface-registry.d.ts +2 -2
- package/dist/core/interface-registry.js +19 -12
- package/dist/core/interface-registry.js.map +1 -1
- package/dist/core/module-isolation.d.ts +18 -0
- package/dist/core/module-isolation.js +107 -0
- package/dist/core/module-isolation.js.map +1 -0
- package/dist/core/module-manager.d.ts +21 -1
- package/dist/core/module-manager.js +199 -22
- package/dist/core/module-manager.js.map +1 -1
- package/dist/core/module-manifest.d.ts +1 -0
- package/dist/core/module-manifest.js +34 -0
- package/dist/core/module-manifest.js.map +1 -1
- package/dist/core/module-registry.d.ts +1 -0
- package/dist/core/module-registry.js +3 -0
- package/dist/core/module-registry.js.map +1 -1
- package/dist/core/module.d.ts +1 -3
- package/dist/core/module.js +0 -18
- package/dist/core/module.js.map +1 -1
- package/dist/core/resolution/binding-diagnostics.d.ts +30 -0
- package/dist/core/resolution/binding-diagnostics.js +65 -0
- package/dist/core/resolution/binding-diagnostics.js.map +1 -0
- package/dist/core/resolution/binding-graph-order.d.ts +3 -0
- package/dist/core/resolution/binding-graph-order.js +49 -0
- package/dist/core/resolution/binding-graph-order.js.map +1 -0
- package/dist/core/resolution/binding-graph-types.d.ts +46 -0
- package/dist/core/resolution/binding-graph-types.js +3 -0
- package/dist/core/resolution/binding-graph-types.js.map +1 -0
- package/dist/core/resolution/binding-graph-warnings.d.ts +11 -0
- package/dist/core/resolution/binding-graph-warnings.js +73 -0
- package/dist/core/resolution/binding-graph-warnings.js.map +1 -0
- package/dist/core/resolution/binding-graph.d.ts +2 -0
- package/dist/core/resolution/binding-graph.js +375 -0
- package/dist/core/resolution/binding-graph.js.map +1 -0
- package/dist/core/resolution/binding-providers.d.ts +11 -0
- package/dist/core/resolution/binding-providers.js +47 -0
- package/dist/core/resolution/binding-providers.js.map +1 -0
- package/dist/core/resolution/instance-copies.d.ts +5 -0
- package/dist/core/resolution/instance-copies.js +109 -0
- package/dist/core/resolution/instance-copies.js.map +1 -0
- package/dist/core/resolution/interface-dependencies.d.ts +1 -0
- package/dist/core/resolution/interface-dependencies.js +27 -0
- package/dist/core/resolution/interface-dependencies.js.map +1 -0
- package/dist/core/resolution/interface-instances.d.ts +28 -0
- package/dist/core/resolution/interface-instances.js +188 -0
- package/dist/core/resolution/interface-instances.js.map +1 -0
- package/dist/core/resolution/resolver-detour.js +14 -22
- package/dist/core/resolution/resolver-detour.js.map +1 -1
- package/dist/core/resolution/resolver.d.ts +30 -72
- package/dist/core/resolution/resolver.js +201 -659
- package/dist/core/resolution/resolver.js.map +1 -1
- package/dist/core/runtime/build-runtime.d.ts +1 -1
- package/dist/core/runtime/build-runtime.js +11 -1
- package/dist/core/runtime/build-runtime.js.map +1 -1
- package/dist/core/runtime/dev-server-registry.js +1 -1
- package/dist/core/runtime/dev-server-registry.js.map +1 -1
- package/dist/core/runtime/launch-sequence.js +30 -5
- package/dist/core/runtime/launch-sequence.js.map +1 -1
- package/dist/core/runtime/module-loading.d.ts +2 -1
- package/dist/core/runtime/module-loading.js +88 -26
- package/dist/core/runtime/module-loading.js.map +1 -1
- package/dist/core/runtime/project-launch.js +13 -2
- package/dist/core/runtime/project-launch.js.map +1 -1
- package/dist/core/runtime/runtime-types.d.ts +2 -1
- package/package.json +3 -3
|
@@ -12,7 +12,7 @@ export interface BuildAliasEntry {
|
|
|
12
12
|
}
|
|
13
13
|
export interface BuildImportOverride {
|
|
14
14
|
interface: string;
|
|
15
|
-
source
|
|
15
|
+
source?: string;
|
|
16
16
|
id?: string;
|
|
17
17
|
}
|
|
18
18
|
export interface BuildArtifactConfig {
|
|
@@ -36,6 +36,8 @@ export interface BuildModuleEntry {
|
|
|
36
36
|
config?: unknown;
|
|
37
37
|
importOverrides?: BuildImportOverride[];
|
|
38
38
|
disabledExports?: string[];
|
|
39
|
+
exportPriority?: Record<string, number>;
|
|
40
|
+
optional?: boolean;
|
|
39
41
|
}
|
|
40
42
|
export interface BuildArtifact {
|
|
41
43
|
version: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-artifact.js","sourceRoot":"","sources":["../../../src/core/build/build-artifact.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"build-artifact.js","sourceRoot":"","sources":["../../../src/core/build/build-artifact.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type * as TypeScript from "typescript";
|
|
2
|
+
type TS = typeof TypeScript;
|
|
3
|
+
export type ModuleEntryChanges = Record<string, unknown>;
|
|
4
|
+
export declare class ConfigEditError extends Error {
|
|
5
|
+
}
|
|
6
|
+
export declare function setModuleEntry(ts: TS, fileName: string, source: string, key: string, changes: ModuleEntryChanges): string;
|
|
7
|
+
export declare function removeModuleEntry(ts: TS, fileName: string, source: string, key: string): string;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConfigEditError = void 0;
|
|
4
|
+
exports.setModuleEntry = setModuleEntry;
|
|
5
|
+
exports.removeModuleEntry = removeModuleEntry;
|
|
6
|
+
const MODULES_KEY = "modules";
|
|
7
|
+
const DEFINE_CONFIG = "defineConfig";
|
|
8
|
+
const PACKAGE_SOURCE = "package";
|
|
9
|
+
const SAFE_KEY = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/;
|
|
10
|
+
const NEWLINE = "\n";
|
|
11
|
+
const FIRST_INDENT = /\n([\t ]+)\S/;
|
|
12
|
+
const TAB = "\t";
|
|
13
|
+
const LEADING_SPACE = /^[ \t]*/;
|
|
14
|
+
const DEFAULT_UNIT = " ";
|
|
15
|
+
class ConfigEditError extends Error {
|
|
16
|
+
}
|
|
17
|
+
exports.ConfigEditError = ConfigEditError;
|
|
18
|
+
function parse(context, source) {
|
|
19
|
+
const { ts } = context;
|
|
20
|
+
return ts.createSourceFile(context.fileName, source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
|
|
21
|
+
}
|
|
22
|
+
function rootObject(context, file) {
|
|
23
|
+
const { ts } = context;
|
|
24
|
+
const assignment = file.statements.find((statement) => ts.isExportAssignment(statement) && !statement.isExportEquals);
|
|
25
|
+
let expression = assignment?.expression;
|
|
26
|
+
if (expression &&
|
|
27
|
+
ts.isCallExpression(expression) &&
|
|
28
|
+
ts.isIdentifier(expression.expression) &&
|
|
29
|
+
expression.expression.text === DEFINE_CONFIG) {
|
|
30
|
+
expression = expression.arguments[0];
|
|
31
|
+
}
|
|
32
|
+
if (!expression || !ts.isObjectLiteralExpression(expression)) {
|
|
33
|
+
throw new ConfigEditError("The configuration's default export is not an object literal it can edit");
|
|
34
|
+
}
|
|
35
|
+
return expression;
|
|
36
|
+
}
|
|
37
|
+
function propertyName(context, property) {
|
|
38
|
+
const { ts } = context;
|
|
39
|
+
if (!ts.isPropertyAssignment(property))
|
|
40
|
+
return undefined;
|
|
41
|
+
const { name } = property;
|
|
42
|
+
if (ts.isIdentifier(name) || ts.isStringLiteralLike(name))
|
|
43
|
+
return name.text;
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
function findProperty(context, object, name) {
|
|
47
|
+
return object.properties.find((property) => propertyName(context, property) === name);
|
|
48
|
+
}
|
|
49
|
+
function lineIndent(source, position) {
|
|
50
|
+
const lineStart = source.lastIndexOf(NEWLINE, position - 1) + 1;
|
|
51
|
+
return source.slice(lineStart).match(LEADING_SPACE)?.[0] ?? "";
|
|
52
|
+
}
|
|
53
|
+
function serializeValue(value, unit, indent) {
|
|
54
|
+
return serializeAt(value, unit, 0).split(NEWLINE).join(`${NEWLINE}${indent}`);
|
|
55
|
+
}
|
|
56
|
+
function serializeAt(value, unit, depth) {
|
|
57
|
+
if (value === null || typeof value !== "object") {
|
|
58
|
+
return JSON.stringify(value) ?? "undefined";
|
|
59
|
+
}
|
|
60
|
+
const inner = unit.repeat(depth + 1);
|
|
61
|
+
const outer = unit.repeat(depth);
|
|
62
|
+
if (Array.isArray(value)) {
|
|
63
|
+
if (value.length === 0)
|
|
64
|
+
return "[]";
|
|
65
|
+
const items = value.map((item) => serializeAt(item, unit, depth + 1));
|
|
66
|
+
return `[\n${items.map((item) => `${inner}${item}`).join(",\n")},\n${outer}]`;
|
|
67
|
+
}
|
|
68
|
+
const entries = Object.entries(value).filter(([, v]) => v !== undefined);
|
|
69
|
+
if (entries.length === 0)
|
|
70
|
+
return "{}";
|
|
71
|
+
const lines = entries.map(([key, v]) => `${inner}${formatKey(key)}: ${serializeAt(v, unit, depth + 1)}`);
|
|
72
|
+
return `{\n${lines.join(",\n")},\n${outer}}`;
|
|
73
|
+
}
|
|
74
|
+
function formatKey(key) {
|
|
75
|
+
return SAFE_KEY.test(key) ? key : JSON.stringify(key);
|
|
76
|
+
}
|
|
77
|
+
function closingBrace(object) {
|
|
78
|
+
return object.end - 1;
|
|
79
|
+
}
|
|
80
|
+
function insertProperty(context, source, object, key, value) {
|
|
81
|
+
const close = closingBrace(object);
|
|
82
|
+
const closeIndent = lineIndent(source, close);
|
|
83
|
+
const last = object.properties.at(-1);
|
|
84
|
+
const indent = last
|
|
85
|
+
? lineIndent(source, last.getStart())
|
|
86
|
+
: `${closeIndent}${context.unit}`;
|
|
87
|
+
const property = `${indent}${formatKey(key)}: ${serializeValue(value, context.unit, indent)},`;
|
|
88
|
+
if (!last) {
|
|
89
|
+
const text = `{\n${property}\n${closeIndent}}`;
|
|
90
|
+
return { start: object.getStart(), end: object.end, text };
|
|
91
|
+
}
|
|
92
|
+
const between = source.slice(last.end, close);
|
|
93
|
+
const hasComma = between.trimStart().startsWith(",");
|
|
94
|
+
const anchor = hasComma ? last.end + between.indexOf(",") + 1 : last.end;
|
|
95
|
+
const text = `${hasComma ? "" : ","}\n${property}`;
|
|
96
|
+
return { start: anchor, end: anchor, text };
|
|
97
|
+
}
|
|
98
|
+
function replaceValue(context, source, property, value) {
|
|
99
|
+
const indent = lineIndent(source, property.getStart());
|
|
100
|
+
return {
|
|
101
|
+
start: property.initializer.getStart(),
|
|
102
|
+
end: property.initializer.end,
|
|
103
|
+
text: serializeValue(value, context.unit, indent),
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
function removeProperty(source, property) {
|
|
107
|
+
const lineStart = source.lastIndexOf(NEWLINE, property.getStart() - 1) + 1;
|
|
108
|
+
const before = source.slice(lineStart, property.getStart());
|
|
109
|
+
const start = before.trim() === "" ? lineStart : property.getStart();
|
|
110
|
+
let end = property.end;
|
|
111
|
+
const rest = source.slice(end);
|
|
112
|
+
const comma = rest.match(/^\s*,/);
|
|
113
|
+
if (comma)
|
|
114
|
+
end += comma[0].length;
|
|
115
|
+
const newline = source.slice(end).match(/^[ \t]*\n/);
|
|
116
|
+
if (newline && start === lineStart)
|
|
117
|
+
end += newline[0].length;
|
|
118
|
+
return { start, end, text: "" };
|
|
119
|
+
}
|
|
120
|
+
function applyEdit(source, edit) {
|
|
121
|
+
return `${source.slice(0, edit.start)}${edit.text}${source.slice(edit.end)}`;
|
|
122
|
+
}
|
|
123
|
+
function detectUnit(source) {
|
|
124
|
+
const match = source.match(FIRST_INDENT);
|
|
125
|
+
if (!match)
|
|
126
|
+
return DEFAULT_UNIT;
|
|
127
|
+
return match[1].startsWith(TAB) ? TAB : match[1];
|
|
128
|
+
}
|
|
129
|
+
function modulesObject(context, file) {
|
|
130
|
+
const property = findProperty(context, rootObject(context, file), MODULES_KEY);
|
|
131
|
+
if (!property)
|
|
132
|
+
return undefined;
|
|
133
|
+
if (!context.ts.isObjectLiteralExpression(property.initializer)) {
|
|
134
|
+
throw new ConfigEditError("The configuration's `modules` is not an object literal it can edit");
|
|
135
|
+
}
|
|
136
|
+
return property.initializer;
|
|
137
|
+
}
|
|
138
|
+
function assertParses(context, source) {
|
|
139
|
+
const file = parse(context, source);
|
|
140
|
+
if ((file.parseDiagnostics ?? []).length > 0) {
|
|
141
|
+
throw new ConfigEditError("The edited configuration would not parse");
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
function createContext(ts, fileName, source) {
|
|
145
|
+
return { ts, fileName, unit: detectUnit(source) };
|
|
146
|
+
}
|
|
147
|
+
function entryObject(context, source, key) {
|
|
148
|
+
const modules = modulesObject(context, parse(context, source));
|
|
149
|
+
const entry = modules && findProperty(context, modules, key);
|
|
150
|
+
if (!entry || !context.ts.isObjectLiteralExpression(entry.initializer)) {
|
|
151
|
+
throw new ConfigEditError(`Module '${key}' has no entry it can edit`);
|
|
152
|
+
}
|
|
153
|
+
return entry.initializer;
|
|
154
|
+
}
|
|
155
|
+
function setEntryField(context, source, key, field, value) {
|
|
156
|
+
const object = entryObject(context, source, key);
|
|
157
|
+
const property = findProperty(context, object, field);
|
|
158
|
+
if (value === undefined || value === null) {
|
|
159
|
+
return property
|
|
160
|
+
? applyEdit(source, removeProperty(source, property))
|
|
161
|
+
: source;
|
|
162
|
+
}
|
|
163
|
+
const edit = property
|
|
164
|
+
? replaceValue(context, source, property, value)
|
|
165
|
+
: insertProperty(context, source, object, field, value);
|
|
166
|
+
return applyEdit(source, edit);
|
|
167
|
+
}
|
|
168
|
+
function expandShorthand(context, source, entry, key) {
|
|
169
|
+
const { ts } = context;
|
|
170
|
+
if (!ts.isStringLiteralLike(entry.initializer))
|
|
171
|
+
return source;
|
|
172
|
+
const expanded = {
|
|
173
|
+
source: {
|
|
174
|
+
type: PACKAGE_SOURCE,
|
|
175
|
+
package: key,
|
|
176
|
+
version: entry.initializer.text,
|
|
177
|
+
},
|
|
178
|
+
};
|
|
179
|
+
return applyEdit(source, replaceValue(context, source, entry, expanded));
|
|
180
|
+
}
|
|
181
|
+
function definedFields(changes) {
|
|
182
|
+
return Object.fromEntries(Object.entries(changes).filter(([, value]) => value !== undefined && value !== null));
|
|
183
|
+
}
|
|
184
|
+
function addEntry(context, source, key, changes) {
|
|
185
|
+
const file = parse(context, source);
|
|
186
|
+
const modules = modulesObject(context, file);
|
|
187
|
+
const fields = definedFields(changes);
|
|
188
|
+
const edit = modules
|
|
189
|
+
? insertProperty(context, source, modules, key, fields)
|
|
190
|
+
: insertProperty(context, source, rootObject(context, file), MODULES_KEY, {
|
|
191
|
+
[key]: fields,
|
|
192
|
+
});
|
|
193
|
+
return applyEdit(source, edit);
|
|
194
|
+
}
|
|
195
|
+
function ensureEntry(context, source, key, changes) {
|
|
196
|
+
const modules = modulesObject(context, parse(context, source));
|
|
197
|
+
const entry = modules && findProperty(context, modules, key);
|
|
198
|
+
if (!entry) {
|
|
199
|
+
return { source: addEntry(context, source, key, changes), isNew: true };
|
|
200
|
+
}
|
|
201
|
+
const { ts } = context;
|
|
202
|
+
if (!ts.isObjectLiteralExpression(entry.initializer) &&
|
|
203
|
+
!ts.isStringLiteralLike(entry.initializer)) {
|
|
204
|
+
throw new ConfigEditError(`Module '${key}' is not declared by an object it can edit`);
|
|
205
|
+
}
|
|
206
|
+
return { source: expandShorthand(context, source, entry, key), isNew: false };
|
|
207
|
+
}
|
|
208
|
+
function setModuleEntry(ts, fileName, source, key, changes) {
|
|
209
|
+
const context = createContext(ts, fileName, source);
|
|
210
|
+
const ensured = ensureEntry(context, source, key, changes);
|
|
211
|
+
const result = ensured.isNew
|
|
212
|
+
? ensured.source
|
|
213
|
+
: Object.entries(changes).reduce((current, [field, value]) => setEntryField(context, current, key, field, value), ensured.source);
|
|
214
|
+
assertParses(context, result);
|
|
215
|
+
return result;
|
|
216
|
+
}
|
|
217
|
+
function removeModuleEntry(ts, fileName, source, key) {
|
|
218
|
+
const context = createContext(ts, fileName, source);
|
|
219
|
+
const modules = modulesObject(context, parse(context, source));
|
|
220
|
+
const entry = modules && findProperty(context, modules, key);
|
|
221
|
+
if (!entry)
|
|
222
|
+
return source;
|
|
223
|
+
const result = applyEdit(source, removeProperty(source, entry));
|
|
224
|
+
assertParses(context, result);
|
|
225
|
+
return result;
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=config-editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-editor.js","sourceRoot":"","sources":["../../../src/core/config/config-editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ export interface LoadedConfig {
|
|
|
9
9
|
envOverrides: Record<string, string | string[]>;
|
|
10
10
|
test?: AntelopeTestConfig;
|
|
11
11
|
}
|
|
12
|
-
export declare function loadTsConfigFile(configPath: string, environment?: string): Promise<AntelopeConfig>;
|
|
12
|
+
export declare function loadTsConfigFile(configPath: string, environment?: string, fresh?: boolean): Promise<AntelopeConfig>;
|
|
13
13
|
export declare class ConfigLoader {
|
|
14
14
|
private fs;
|
|
15
15
|
private parser;
|
|
@@ -42,15 +42,16 @@ const config_parser_1 = require("./config-parser");
|
|
|
42
42
|
const config_paths_1 = require("./config-paths");
|
|
43
43
|
const CORE_CONFIG_PACKAGE = "@antelopejs/interface-core/config";
|
|
44
44
|
const CORE_CONFIG_ENTRY = require.resolve(CORE_CONFIG_PACKAGE);
|
|
45
|
-
async function importConfigInput(configPath) {
|
|
45
|
+
async function importConfigInput(configPath, fresh = false) {
|
|
46
46
|
const jiti = (0, jiti_1.createJiti)(configPath, {
|
|
47
47
|
alias: { [CORE_CONFIG_PACKAGE]: CORE_CONFIG_ENTRY },
|
|
48
|
+
...(fresh ? { moduleCache: false, fsCache: false } : {}),
|
|
48
49
|
});
|
|
49
50
|
const loaded = await jiti.import(configPath);
|
|
50
51
|
return loaded.default ?? loaded;
|
|
51
52
|
}
|
|
52
|
-
async function loadTsConfigFile(configPath, environment) {
|
|
53
|
-
const configInput = await importConfigInput(configPath);
|
|
53
|
+
async function loadTsConfigFile(configPath, environment, fresh = false) {
|
|
54
|
+
const configInput = await importConfigInput(configPath, fresh);
|
|
54
55
|
if (typeof configInput === "function") {
|
|
55
56
|
return await configInput({ env: environment ?? config_paths_1.DEFAULT_ENV });
|
|
56
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../src/core/config/config-loader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../src/core/config/config-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,8 @@ export interface ExpandedModuleConfig {
|
|
|
4
4
|
config: unknown;
|
|
5
5
|
importOverrides: ImportOverride[];
|
|
6
6
|
disabledExports: string[];
|
|
7
|
+
exportPriority?: Record<string, number>;
|
|
8
|
+
optional?: boolean;
|
|
7
9
|
}
|
|
8
10
|
export declare class ConfigParser {
|
|
9
11
|
processTemplates<T extends Record<string, any>>(config: T): T;
|
|
@@ -3,6 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ConfigParser = void 0;
|
|
4
4
|
const config_vars_1 = require("./config-vars");
|
|
5
5
|
const object_1 = require("../../utils/object");
|
|
6
|
+
function readExportPriority(name, priorities) {
|
|
7
|
+
for (const [interfaceName, priority] of Object.entries(priorities)) {
|
|
8
|
+
if (!Number.isInteger(priority)) {
|
|
9
|
+
throw new Error(`Module '${name}' gives '${interfaceName}' the export priority ${String(priority)}; priorities are integers.`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return { ...priorities };
|
|
13
|
+
}
|
|
6
14
|
class ConfigParser {
|
|
7
15
|
processTemplates(config) {
|
|
8
16
|
const flatValues = this.flattenConfig(config);
|
|
@@ -92,7 +100,11 @@ class ConfigParser {
|
|
|
92
100
|
}
|
|
93
101
|
expandModuleShorthand(modules) {
|
|
94
102
|
const result = {};
|
|
95
|
-
for (const [name,
|
|
103
|
+
for (const [name, entry] of Object.entries(modules)) {
|
|
104
|
+
const config = entry;
|
|
105
|
+
if (typeof config === "object" && config.disabled) {
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
96
108
|
if (typeof config === "string") {
|
|
97
109
|
result[name] = {
|
|
98
110
|
source: {
|
|
@@ -132,6 +144,12 @@ class ConfigParser {
|
|
|
132
144
|
importOverrides,
|
|
133
145
|
disabledExports: config.disabledExports ?? [],
|
|
134
146
|
};
|
|
147
|
+
if (config.optional) {
|
|
148
|
+
result[name].optional = true;
|
|
149
|
+
}
|
|
150
|
+
if (config.exportPriority) {
|
|
151
|
+
result[name].exportPriority = readExportPriority(name, config.exportPriority);
|
|
152
|
+
}
|
|
135
153
|
}
|
|
136
154
|
}
|
|
137
155
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-parser.js","sourceRoot":"","sources":["../../../src/core/config/config-parser.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"config-parser.js","sourceRoot":"","sources":["../../../src/core/config/config-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.recordOwnConfigWrite = recordOwnConfigWrite;
|
|
7
|
+
exports.consumeOwnConfigWrite = consumeOwnConfigWrite;
|
|
8
|
+
const node_crypto_1 = require("node:crypto");
|
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
const HASH_ALGORITHM = "sha256";
|
|
11
|
+
const ownWrites = new Map();
|
|
12
|
+
function digest(content) {
|
|
13
|
+
return (0, node_crypto_1.createHash)(HASH_ALGORITHM).update(content).digest("hex");
|
|
14
|
+
}
|
|
15
|
+
function recordOwnConfigWrite(filePath, content) {
|
|
16
|
+
ownWrites.set(node_path_1.default.resolve(filePath), digest(content));
|
|
17
|
+
}
|
|
18
|
+
function consumeOwnConfigWrite(filePath, content) {
|
|
19
|
+
const resolved = node_path_1.default.resolve(filePath);
|
|
20
|
+
const recorded = ownWrites.get(resolved);
|
|
21
|
+
ownWrites.delete(resolved);
|
|
22
|
+
return recorded === digest(content);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=config-writes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-writes.js","sourceRoot":"","sources":["../../../src/core/config/config-writes.ts"],"names":[],"mappings":";;;;;AAgBA,oDAEC;AAMD,sDAQC;AAhCD,6CAAyC;AACzC,0DAA6B;AAE7B,MAAM,cAAc,GAAG,QAAQ,CAAC;AAGhC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE5C,SAAS,MAAM,CAAC,OAAe;IAC7B,OAAO,IAAA,wBAAU,EAAC,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAMD,SAAgB,oBAAoB,CAAC,QAAgB,EAAE,OAAe;IACpE,SAAS,CAAC,GAAG,CAAC,mBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACzD,CAAC;AAMD,SAAgB,qBAAqB,CACnC,QAAgB,EAChB,OAAe;IAEf,MAAM,QAAQ,GAAG,mBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3B,OAAO,QAAQ,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ModuleDeclaration, ModuleDeclarationChanges } from "./module-entry";
|
|
2
|
+
export declare function listModuleDeclarations(projectFolder: string): Promise<Record<string, ModuleDeclaration>>;
|
|
3
|
+
export declare function saveModuleDeclaration(projectFolder: string, key: string, changes: ModuleDeclarationChanges): Promise<void>;
|
|
4
|
+
export declare function removeModuleDeclaration(projectFolder: string, key: string): Promise<void>;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.listModuleDeclarations = listModuleDeclarations;
|
|
37
|
+
exports.saveModuleDeclaration = saveModuleDeclaration;
|
|
38
|
+
exports.removeModuleDeclaration = removeModuleDeclaration;
|
|
39
|
+
const promises_1 = require("node:fs/promises");
|
|
40
|
+
const filesystem_1 = require("../filesystem");
|
|
41
|
+
const config_writes_1 = require("./config-writes");
|
|
42
|
+
const config_loader_1 = require("./config-loader");
|
|
43
|
+
const config_paths_1 = require("./config-paths");
|
|
44
|
+
const config_editor_1 = require("./config-editor");
|
|
45
|
+
const FILE_ENCODING = "utf-8";
|
|
46
|
+
const PACKAGE_SOURCE = "package";
|
|
47
|
+
let pendingWrite = Promise.resolve();
|
|
48
|
+
function toDeclaration(key, entry) {
|
|
49
|
+
if (typeof entry === "string") {
|
|
50
|
+
const source = {
|
|
51
|
+
type: PACKAGE_SOURCE,
|
|
52
|
+
package: key,
|
|
53
|
+
version: entry,
|
|
54
|
+
};
|
|
55
|
+
return { source };
|
|
56
|
+
}
|
|
57
|
+
const versionSource = entry.version
|
|
58
|
+
? { type: PACKAGE_SOURCE, package: key, version: entry.version }
|
|
59
|
+
: undefined;
|
|
60
|
+
return {
|
|
61
|
+
source: entry.source ?? versionSource,
|
|
62
|
+
config: entry.config,
|
|
63
|
+
disabled: entry.disabled,
|
|
64
|
+
optional: entry.optional,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
async function listModuleDeclarations(projectFolder) {
|
|
68
|
+
const configPath = await (0, config_paths_1.findConfigPath)(projectFolder, new filesystem_1.NodeFileSystem());
|
|
69
|
+
const config = await (0, config_loader_1.loadTsConfigFile)(configPath, undefined, true);
|
|
70
|
+
return Object.fromEntries(Object.entries(config.modules ?? {}).map(([key, entry]) => [
|
|
71
|
+
key,
|
|
72
|
+
toDeclaration(key, entry),
|
|
73
|
+
]));
|
|
74
|
+
}
|
|
75
|
+
function editConfigFile(projectFolder, edit) {
|
|
76
|
+
const run = pendingWrite.then(async () => {
|
|
77
|
+
const configPath = await (0, config_paths_1.findConfigPath)(projectFolder, new filesystem_1.NodeFileSystem());
|
|
78
|
+
const source = await (0, promises_1.readFile)(configPath, FILE_ENCODING);
|
|
79
|
+
const edited = edit(source, configPath);
|
|
80
|
+
if (edited === source)
|
|
81
|
+
return;
|
|
82
|
+
(0, config_writes_1.recordOwnConfigWrite)(configPath, edited);
|
|
83
|
+
await (0, promises_1.writeFile)(configPath, edited, FILE_ENCODING);
|
|
84
|
+
});
|
|
85
|
+
pendingWrite = run.catch(() => undefined);
|
|
86
|
+
return run;
|
|
87
|
+
}
|
|
88
|
+
async function loadTypeScript() {
|
|
89
|
+
return Promise.resolve().then(() => __importStar(require("typescript")));
|
|
90
|
+
}
|
|
91
|
+
async function saveModuleDeclaration(projectFolder, key, changes) {
|
|
92
|
+
const ts = await loadTypeScript();
|
|
93
|
+
await editConfigFile(projectFolder, (source, fileName) => (0, config_editor_1.setModuleEntry)(ts, fileName, source, key, { ...changes }));
|
|
94
|
+
}
|
|
95
|
+
async function removeModuleDeclaration(projectFolder, key) {
|
|
96
|
+
const ts = await loadTypeScript();
|
|
97
|
+
await editConfigFile(projectFolder, (source, fileName) => (0, config_editor_1.removeModuleEntry)(ts, fileName, source, key));
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=module-declarations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-declarations.js","sourceRoot":"","sources":["../../../src/core/config/module-declarations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AntelopeModuleConfig, ModuleSourceGit, ModuleSourceLocal, ModuleSourceLocalFolder, ModuleSourcePackage } from "@antelopejs/interface-core/config";
|
|
2
|
+
export interface ModuleEntryConfig extends AntelopeModuleConfig {
|
|
3
|
+
disabled?: boolean;
|
|
4
|
+
optional?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface ModuleDeclaration {
|
|
7
|
+
source?: ModuleSourceLocal | ModuleSourceGit | ModuleSourcePackage | ModuleSourceLocalFolder;
|
|
8
|
+
config?: unknown;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
optional?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export type ModuleDeclarationChanges = Partial<ModuleDeclaration>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-entry.js","sourceRoot":"","sources":["../../../src/core/config/module-entry.ts"],"names":[],"mappings":""}
|
|
@@ -7,6 +7,7 @@ exports.HOST_MODULE_ID = void 0;
|
|
|
7
7
|
exports.prepareEmbedded = prepareEmbedded;
|
|
8
8
|
const node_path_1 = __importDefault(require("node:path"));
|
|
9
9
|
const filesystem_1 = require("../filesystem");
|
|
10
|
+
const module_isolation_1 = require("../module-isolation");
|
|
10
11
|
const module_manifest_1 = require("../module-manifest");
|
|
11
12
|
const package_resolution_1 = require("../resolution/package-resolution");
|
|
12
13
|
const launch_sequence_1 = require("../runtime/launch-sequence");
|
|
@@ -38,6 +39,7 @@ function buildEntryConfig(moduleConfig) {
|
|
|
38
39
|
config: moduleConfig.config,
|
|
39
40
|
importOverrides: (0, module_loading_1.buildModuleOverrides)(moduleConfig.importOverrides),
|
|
40
41
|
disabledExports: new Set(moduleConfig.disabledExports ?? []),
|
|
42
|
+
exportPriority: new Map(Object.entries(moduleConfig.exportPriority ?? {})),
|
|
41
43
|
};
|
|
42
44
|
}
|
|
43
45
|
function createHostEntry(projectFolder, options) {
|
|
@@ -80,16 +82,15 @@ async function createEmbeddedEntries(options, projectFolder, fs) {
|
|
|
80
82
|
function prepareEmbedded(options, projectFolder) {
|
|
81
83
|
return async () => {
|
|
82
84
|
const fs = new filesystem_1.NodeFileSystem();
|
|
85
|
+
const cacheFolder = node_path_1.default.join(projectFolder, ...EMBEDDED_CACHE_SEGMENTS);
|
|
83
86
|
return {
|
|
84
87
|
fs,
|
|
85
88
|
dev: false,
|
|
86
89
|
logging: options.logging,
|
|
87
|
-
loadContext: (0, launch_sequence_1.memoizeLoaderContext)(() => (0, module_loading_1.createLoaderContext)({
|
|
88
|
-
projectFolder,
|
|
89
|
-
cacheFolder: node_path_1.default.join(projectFolder, ...EMBEDDED_CACHE_SEGMENTS),
|
|
90
|
-
}, fs)),
|
|
90
|
+
loadContext: (0, launch_sequence_1.memoizeLoaderContext)(() => (0, module_loading_1.createLoaderContext)({ projectFolder, cacheFolder }, fs)),
|
|
91
91
|
verify: async () => { },
|
|
92
92
|
createEntries: () => createEmbeddedEntries(options, projectFolder, fs),
|
|
93
|
+
instanceRoot: node_path_1.default.join(cacheFolder, module_isolation_1.INSTANCES_FOLDER),
|
|
93
94
|
};
|
|
94
95
|
};
|
|
95
96
|
}
|