@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare-embedded.js","sourceRoot":"","sources":["../../../src/core/embedded/prepare-embedded.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"prepare-embedded.js","sourceRoot":"","sources":["../../../src/core/embedded/prepare-embedded.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export interface InterfaceConnectionRef {
|
|
2
|
-
module
|
|
2
|
+
module?: string;
|
|
3
3
|
id?: string;
|
|
4
4
|
}
|
|
5
5
|
export declare class InterfaceRegistry {
|
|
6
6
|
private readonly owner;
|
|
7
7
|
private readonly moduleIds;
|
|
8
|
-
setConnections(moduleId: string, connections: Map<string, InterfaceConnectionRef[]>, selectedProviders?: Map<string, string>): void;
|
|
8
|
+
setConnections(moduleId: string, connections: Map<string, InterfaceConnectionRef[]>, selectedProviders?: Map<string, string | undefined>): void;
|
|
9
9
|
clear(): void;
|
|
10
10
|
private getCurrentOwners;
|
|
11
11
|
private removeOwner;
|
|
@@ -2,24 +2,31 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.InterfaceRegistry = void 0;
|
|
4
4
|
const internal_1 = require("@antelopejs/interface-core/internal");
|
|
5
|
+
const resolver_1 = require("./resolution/resolver");
|
|
5
6
|
const ownersByModule = new Map();
|
|
7
|
+
function createEntry(interfaceName, { module, id }, index, isSelected) {
|
|
8
|
+
const entry = {
|
|
9
|
+
path: isSelected ? interfaceName : (0, resolver_1.connectionPath)(index, interfaceName),
|
|
10
|
+
selected: isSelected,
|
|
11
|
+
};
|
|
12
|
+
if (module !== undefined) {
|
|
13
|
+
entry.provider = module;
|
|
14
|
+
}
|
|
15
|
+
if (id !== undefined) {
|
|
16
|
+
entry.id = id;
|
|
17
|
+
}
|
|
18
|
+
return entry;
|
|
19
|
+
}
|
|
6
20
|
class InterfaceRegistry {
|
|
7
21
|
owner = Symbol("interface-registry");
|
|
8
22
|
moduleIds = new Set();
|
|
9
23
|
setConnections(moduleId, connections, selectedProviders = new Map()) {
|
|
10
24
|
const connectionIDs = {};
|
|
11
|
-
for (const [interfaceName,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
selected: selectedProviders.get(interfaceName) === module,
|
|
17
|
-
};
|
|
18
|
-
if (id !== undefined) {
|
|
19
|
-
entry.id = id;
|
|
20
|
-
}
|
|
21
|
-
return entry;
|
|
22
|
-
});
|
|
25
|
+
for (const [interfaceName, listed] of connections) {
|
|
26
|
+
const selectedIndex = selectedProviders.has(interfaceName)
|
|
27
|
+
? listed.findIndex(({ module }) => module === selectedProviders.get(interfaceName))
|
|
28
|
+
: -1;
|
|
29
|
+
connectionIDs[interfaceName] = listed.map((connection, index) => createEntry(interfaceName, connection, index, index === selectedIndex));
|
|
23
30
|
}
|
|
24
31
|
const owners = this.getCurrentOwners(moduleId);
|
|
25
32
|
owners.set(this.owner, connectionIDs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface-registry.js","sourceRoot":"","sources":["../../src/core/interface-registry.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"interface-registry.js","sourceRoot":"","sources":["../../src/core/interface-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ModuleManifest } from "./module-manifest";
|
|
2
|
+
export declare const INSTANCES_FOLDER = ".instances";
|
|
3
|
+
export declare class ModuleIsolation {
|
|
4
|
+
private root;
|
|
5
|
+
private readonly origins;
|
|
6
|
+
private readonly copies;
|
|
7
|
+
private readonly pendingOrigins;
|
|
8
|
+
private readonly prunedRoots;
|
|
9
|
+
constructor(root?: string);
|
|
10
|
+
setRoot(root: string): void;
|
|
11
|
+
place(moduleId: string, manifest: ModuleManifest): ModuleManifest;
|
|
12
|
+
adopt(moduleId: string, manifest: ModuleManifest): void;
|
|
13
|
+
discard(manifest: ModuleManifest): void;
|
|
14
|
+
forget(moduleId: string): void;
|
|
15
|
+
releaseAll(): void;
|
|
16
|
+
private createCopy;
|
|
17
|
+
private removeCopy;
|
|
18
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
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.ModuleIsolation = exports.INSTANCES_FOLDER = void 0;
|
|
7
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
const node_fs_1 = require("node:fs");
|
|
10
|
+
const package_resolution_1 = require("./resolution/package-resolution");
|
|
11
|
+
const instance_copies_1 = require("./resolution/instance-copies");
|
|
12
|
+
const DEFAULT_INSTANCE_ROOT = node_path_1.default.join(node_os_1.default.tmpdir(), "antelopejs-instances");
|
|
13
|
+
exports.INSTANCES_FOLDER = ".instances";
|
|
14
|
+
function realFolder(folder) {
|
|
15
|
+
try {
|
|
16
|
+
return node_fs_1.realpathSync.native(folder);
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return node_path_1.default.resolve(folder);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function evictFolder(folder) {
|
|
23
|
+
const isInFolder = (0, package_resolution_1.createPathWithinMatcher)(folder);
|
|
24
|
+
for (const filePath of Object.keys(require.cache)) {
|
|
25
|
+
if (isInFolder(filePath)) {
|
|
26
|
+
delete require.cache[filePath];
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
class ModuleIsolation {
|
|
31
|
+
root;
|
|
32
|
+
origins = new Map();
|
|
33
|
+
copies = new Map();
|
|
34
|
+
pendingOrigins = new Map();
|
|
35
|
+
prunedRoots = new Set();
|
|
36
|
+
constructor(root = DEFAULT_INSTANCE_ROOT) {
|
|
37
|
+
this.root = root;
|
|
38
|
+
}
|
|
39
|
+
setRoot(root) {
|
|
40
|
+
this.root = root;
|
|
41
|
+
}
|
|
42
|
+
place(moduleId, manifest) {
|
|
43
|
+
const origin = realFolder(manifest.folder);
|
|
44
|
+
const isTaken = [...this.origins].some(([id, taken]) => id !== moduleId && taken === origin);
|
|
45
|
+
if (!isTaken) {
|
|
46
|
+
return manifest;
|
|
47
|
+
}
|
|
48
|
+
const copy = this.createCopy(moduleId, manifest.folder);
|
|
49
|
+
this.pendingOrigins.set(copy, origin);
|
|
50
|
+
return manifest.relocate(copy);
|
|
51
|
+
}
|
|
52
|
+
adopt(moduleId, manifest) {
|
|
53
|
+
const folder = manifest.folder;
|
|
54
|
+
const origin = this.pendingOrigins.get(folder) ?? realFolder(folder);
|
|
55
|
+
this.pendingOrigins.delete(folder);
|
|
56
|
+
const previous = this.copies.get(moduleId);
|
|
57
|
+
if (previous && previous !== folder) {
|
|
58
|
+
this.removeCopy(previous);
|
|
59
|
+
}
|
|
60
|
+
this.origins.set(moduleId, origin);
|
|
61
|
+
if (origin === realFolder(folder)) {
|
|
62
|
+
this.copies.delete(moduleId);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
this.copies.set(moduleId, folder);
|
|
66
|
+
}
|
|
67
|
+
discard(manifest) {
|
|
68
|
+
if (this.pendingOrigins.delete(manifest.folder)) {
|
|
69
|
+
this.removeCopy(manifest.folder);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
forget(moduleId) {
|
|
73
|
+
const copy = this.copies.get(moduleId);
|
|
74
|
+
if (copy) {
|
|
75
|
+
this.removeCopy(copy);
|
|
76
|
+
}
|
|
77
|
+
this.copies.delete(moduleId);
|
|
78
|
+
this.origins.delete(moduleId);
|
|
79
|
+
}
|
|
80
|
+
releaseAll() {
|
|
81
|
+
for (const copy of this.copies.values()) {
|
|
82
|
+
this.removeCopy(copy);
|
|
83
|
+
}
|
|
84
|
+
for (const copy of this.pendingOrigins.keys()) {
|
|
85
|
+
this.removeCopy(copy);
|
|
86
|
+
}
|
|
87
|
+
this.copies.clear();
|
|
88
|
+
this.pendingOrigins.clear();
|
|
89
|
+
this.origins.clear();
|
|
90
|
+
}
|
|
91
|
+
createCopy(moduleId, folder) {
|
|
92
|
+
if (!this.prunedRoots.has(this.root)) {
|
|
93
|
+
(0, instance_copies_1.pruneStaleInstanceCopies)(this.root);
|
|
94
|
+
this.prunedRoots.add(this.root);
|
|
95
|
+
}
|
|
96
|
+
const base = node_path_1.default.join(this.root, encodeURIComponent(moduleId));
|
|
97
|
+
const copy = (0, instance_copies_1.nextInstanceCopyPath)(base);
|
|
98
|
+
(0, instance_copies_1.createInstanceCopy)(folder, copy);
|
|
99
|
+
return copy;
|
|
100
|
+
}
|
|
101
|
+
removeCopy(copy) {
|
|
102
|
+
evictFolder(copy);
|
|
103
|
+
(0, instance_copies_1.removeInstanceCopy)(copy);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
exports.ModuleIsolation = ModuleIsolation;
|
|
107
|
+
//# sourceMappingURL=module-isolation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-isolation.js","sourceRoot":"","sources":["../../src/core/module-isolation.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,13 @@ import { ModuleRegistry } from "./module-registry";
|
|
|
5
5
|
import type { UnresolvedInterface } from "./resolution/interface-resolution";
|
|
6
6
|
import { type ModuleManifest } from "./module-manifest";
|
|
7
7
|
import { type InterfaceConnectionRef, InterfaceRegistry } from "./interface-registry";
|
|
8
|
+
import type { BindingGraph } from "./resolution/binding-graph-types";
|
|
8
9
|
export interface ModuleConfig {
|
|
9
10
|
config?: unknown;
|
|
10
11
|
importOverrides?: Map<string, InterfaceConnectionRef[]>;
|
|
11
12
|
disabledExports?: Set<string>;
|
|
13
|
+
exportPriority?: Map<string, number>;
|
|
14
|
+
optional?: boolean;
|
|
12
15
|
}
|
|
13
16
|
export interface ManagedModule {
|
|
14
17
|
module: Module;
|
|
@@ -35,6 +38,8 @@ export declare class ModuleManager {
|
|
|
35
38
|
private readonly interfacePackagePlans;
|
|
36
39
|
private readonly configVars;
|
|
37
40
|
private pendingCleanup;
|
|
41
|
+
private bindingGraph?;
|
|
42
|
+
private readonly isolation;
|
|
38
43
|
private startupOrder;
|
|
39
44
|
constructor(deps?: ModuleManagerDeps);
|
|
40
45
|
addStaticModule(entry: {
|
|
@@ -45,6 +50,8 @@ export declare class ModuleManager {
|
|
|
45
50
|
manifest: ModuleManifest;
|
|
46
51
|
config?: ModuleConfig;
|
|
47
52
|
}>): ManagedModule[];
|
|
53
|
+
private restoreModules;
|
|
54
|
+
discardModules(ids: readonly string[]): void;
|
|
48
55
|
listModules(): string[];
|
|
49
56
|
getModule(id: string): Module | undefined;
|
|
50
57
|
getModuleEntry(id: string): ManagedModule | undefined;
|
|
@@ -55,12 +62,17 @@ export declare class ModuleManager {
|
|
|
55
62
|
private evictModuleFiles;
|
|
56
63
|
private collectAvoidedFolders;
|
|
57
64
|
private belongsToInterfacePackageTree;
|
|
65
|
+
setInstanceRoot(root: string): void;
|
|
66
|
+
placeModule(moduleId: string, manifest: ModuleManifest): ModuleManifest;
|
|
67
|
+
checkReplacement(moduleId: string, replacement: Module): void;
|
|
68
|
+
discardPlacedModule(manifest: ModuleManifest): void;
|
|
58
69
|
replaceLoadedModule(id: string, module: Module): ManagedModule | undefined;
|
|
59
70
|
refreshAssociations(): void;
|
|
60
71
|
hasResolvedInterface(moduleId: string, interfaceName: string): boolean;
|
|
61
72
|
registerStubbedInterfaces(stubbed: UnresolvedInterface[]): void;
|
|
62
73
|
private registerStubbedInterfacePackage;
|
|
63
74
|
private applyInterfaceStubs;
|
|
75
|
+
private neutralizeInstances;
|
|
64
76
|
private collectImplementedInterfaces;
|
|
65
77
|
constructAll(): Promise<void>;
|
|
66
78
|
constructModules(modules: ManagedModule[]): Promise<void>;
|
|
@@ -85,7 +97,14 @@ export declare class ModuleManager {
|
|
|
85
97
|
private clearManagedState;
|
|
86
98
|
private releaseRuntimeState;
|
|
87
99
|
private trackModuleStart;
|
|
100
|
+
getBindingGraph(): BindingGraph | undefined;
|
|
88
101
|
private rebuildAssociations;
|
|
102
|
+
private buildBindings;
|
|
103
|
+
private runningBindings;
|
|
104
|
+
private logBindingWarnings;
|
|
105
|
+
private bindablePackages;
|
|
106
|
+
private collectBindingInterfaces;
|
|
107
|
+
private collectBindingModules;
|
|
89
108
|
private collectInterfaceSources;
|
|
90
109
|
private resolveInterfacePackagePaths;
|
|
91
110
|
private resolveImplementedPackage;
|
|
@@ -99,6 +118,7 @@ export declare class ModuleManager {
|
|
|
99
118
|
private applyImportOverrides;
|
|
100
119
|
private addInterfaceSource;
|
|
101
120
|
private validateImportOverrides;
|
|
102
|
-
private
|
|
121
|
+
private validateOverrideSource;
|
|
122
|
+
private validateSelfHostedConnection;
|
|
103
123
|
}
|
|
104
124
|
export {};
|