@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.
Files changed (87) hide show
  1. package/dist/core/build/build-artifact.d.ts +3 -1
  2. package/dist/core/build/build-artifact.js.map +1 -1
  3. package/dist/core/config/config-editor.d.ts +8 -0
  4. package/dist/core/config/config-editor.js +227 -0
  5. package/dist/core/config/config-editor.js.map +1 -0
  6. package/dist/core/config/config-loader.d.ts +1 -1
  7. package/dist/core/config/config-loader.js +4 -3
  8. package/dist/core/config/config-loader.js.map +1 -1
  9. package/dist/core/config/config-parser.d.ts +2 -0
  10. package/dist/core/config/config-parser.js +19 -1
  11. package/dist/core/config/config-parser.js.map +1 -1
  12. package/dist/core/config/config-writes.d.ts +2 -0
  13. package/dist/core/config/config-writes.js +24 -0
  14. package/dist/core/config/config-writes.js.map +1 -0
  15. package/dist/core/config/module-declarations.d.ts +4 -0
  16. package/dist/core/config/module-declarations.js +99 -0
  17. package/dist/core/config/module-declarations.js.map +1 -0
  18. package/dist/core/config/module-entry.d.ts +12 -0
  19. package/dist/core/config/module-entry.js +3 -0
  20. package/dist/core/config/module-entry.js.map +1 -0
  21. package/dist/core/embedded/prepare-embedded.js +5 -4
  22. package/dist/core/embedded/prepare-embedded.js.map +1 -1
  23. package/dist/core/embedded/types.d.ts +1 -0
  24. package/dist/core/interface-registry.d.ts +2 -2
  25. package/dist/core/interface-registry.js +19 -12
  26. package/dist/core/interface-registry.js.map +1 -1
  27. package/dist/core/module-isolation.d.ts +18 -0
  28. package/dist/core/module-isolation.js +107 -0
  29. package/dist/core/module-isolation.js.map +1 -0
  30. package/dist/core/module-manager.d.ts +21 -1
  31. package/dist/core/module-manager.js +199 -22
  32. package/dist/core/module-manager.js.map +1 -1
  33. package/dist/core/module-manifest.d.ts +1 -0
  34. package/dist/core/module-manifest.js +34 -0
  35. package/dist/core/module-manifest.js.map +1 -1
  36. package/dist/core/module-registry.d.ts +1 -0
  37. package/dist/core/module-registry.js +3 -0
  38. package/dist/core/module-registry.js.map +1 -1
  39. package/dist/core/module.d.ts +1 -3
  40. package/dist/core/module.js +0 -18
  41. package/dist/core/module.js.map +1 -1
  42. package/dist/core/resolution/binding-diagnostics.d.ts +30 -0
  43. package/dist/core/resolution/binding-diagnostics.js +65 -0
  44. package/dist/core/resolution/binding-diagnostics.js.map +1 -0
  45. package/dist/core/resolution/binding-graph-order.d.ts +3 -0
  46. package/dist/core/resolution/binding-graph-order.js +49 -0
  47. package/dist/core/resolution/binding-graph-order.js.map +1 -0
  48. package/dist/core/resolution/binding-graph-types.d.ts +46 -0
  49. package/dist/core/resolution/binding-graph-types.js +3 -0
  50. package/dist/core/resolution/binding-graph-types.js.map +1 -0
  51. package/dist/core/resolution/binding-graph-warnings.d.ts +11 -0
  52. package/dist/core/resolution/binding-graph-warnings.js +73 -0
  53. package/dist/core/resolution/binding-graph-warnings.js.map +1 -0
  54. package/dist/core/resolution/binding-graph.d.ts +2 -0
  55. package/dist/core/resolution/binding-graph.js +375 -0
  56. package/dist/core/resolution/binding-graph.js.map +1 -0
  57. package/dist/core/resolution/binding-providers.d.ts +11 -0
  58. package/dist/core/resolution/binding-providers.js +47 -0
  59. package/dist/core/resolution/binding-providers.js.map +1 -0
  60. package/dist/core/resolution/instance-copies.d.ts +5 -0
  61. package/dist/core/resolution/instance-copies.js +109 -0
  62. package/dist/core/resolution/instance-copies.js.map +1 -0
  63. package/dist/core/resolution/interface-dependencies.d.ts +1 -0
  64. package/dist/core/resolution/interface-dependencies.js +27 -0
  65. package/dist/core/resolution/interface-dependencies.js.map +1 -0
  66. package/dist/core/resolution/interface-instances.d.ts +28 -0
  67. package/dist/core/resolution/interface-instances.js +188 -0
  68. package/dist/core/resolution/interface-instances.js.map +1 -0
  69. package/dist/core/resolution/resolver-detour.js +14 -22
  70. package/dist/core/resolution/resolver-detour.js.map +1 -1
  71. package/dist/core/resolution/resolver.d.ts +30 -72
  72. package/dist/core/resolution/resolver.js +201 -659
  73. package/dist/core/resolution/resolver.js.map +1 -1
  74. package/dist/core/runtime/build-runtime.d.ts +1 -1
  75. package/dist/core/runtime/build-runtime.js +11 -1
  76. package/dist/core/runtime/build-runtime.js.map +1 -1
  77. package/dist/core/runtime/dev-server-registry.js +1 -1
  78. package/dist/core/runtime/dev-server-registry.js.map +1 -1
  79. package/dist/core/runtime/launch-sequence.js +30 -5
  80. package/dist/core/runtime/launch-sequence.js.map +1 -1
  81. package/dist/core/runtime/module-loading.d.ts +2 -1
  82. package/dist/core/runtime/module-loading.js +88 -26
  83. package/dist/core/runtime/module-loading.js.map +1 -1
  84. package/dist/core/runtime/project-launch.js +13 -2
  85. package/dist/core/runtime/project-launch.js.map +1 -1
  86. package/dist/core/runtime/runtime-types.d.ts +2 -1
  87. package/package.json +3 -3
@@ -10,13 +10,11 @@ export declare class Module {
10
10
  version: string;
11
11
  private callbacks?;
12
12
  private lifecycle;
13
- private executionContext;
13
+ private readonly executionContext;
14
14
  constructor(manifest: ModuleManifest, loader?: ModuleLoader);
15
15
  get state(): ModuleLifecycle["state"];
16
16
  private diagnosticsContext;
17
- setProviderRoutes(providerRoutes: Readonly<Record<string, string>>, isProvider: boolean): void;
18
17
  runInContext<T>(callback: () => T): T;
19
- private updateProviderRoutes;
20
18
  reload(): Promise<void>;
21
19
  provide(config: unknown): Promise<ConfigVars | void>;
22
20
  construct(config: unknown): Promise<void>;
@@ -71,27 +71,9 @@ class Module {
71
71
  diagnosticsContext() {
72
72
  return (0, diagnostics_1.moduleDiagnosticsContext)(this.id, this.version);
73
73
  }
74
- setProviderRoutes(providerRoutes, isProvider) {
75
- const activeRoutes = this.updateProviderRoutes(providerRoutes);
76
- this.executionContext = {
77
- module: this.id,
78
- owner: this.executionContext.owner,
79
- provider: isProvider ? this.id : undefined,
80
- providerRoutes: activeRoutes,
81
- };
82
- }
83
74
  runInContext(callback) {
84
75
  return (0, modules_1.RunWithModuleContext)(this.executionContext, callback);
85
76
  }
86
- updateProviderRoutes(providerRoutes) {
87
- const nextRoutes = { ...providerRoutes };
88
- const activeRoutes = (this.executionContext.providerRoutes ?? {});
89
- for (const identity of Object.keys(activeRoutes)) {
90
- delete activeRoutes[identity];
91
- }
92
- Object.assign(activeRoutes, nextRoutes);
93
- return activeRoutes;
94
- }
95
77
  async reload() {
96
78
  await (0, modules_1.RunWithModuleContext)(this.executionContext, async () => {
97
79
  await this.destroy();
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/core/module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/core/module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ export interface CarriedBinding {
2
+ value: string;
3
+ source?: string;
4
+ path: readonly string[];
5
+ }
6
+ export interface DiamondSide {
7
+ carried: CarriedBinding;
8
+ path: readonly string[];
9
+ }
10
+ export declare function describeDiamond(merge: string, interfaceName: string, first: DiamondSide, second: DiamondSide): string;
11
+ export declare function describeRunningRebind(moduleId: string, interfaceName: string, running: string, carried: CarriedBinding): string;
12
+ export declare function describeRunningProviderGone(moduleId: string, interfaceName: string, running: string): string;
13
+ export declare function describePinWithoutProvider(moduleId: string, interfaceName: string, pinned: string): string;
14
+ export declare function describeImplementedPin(moduleId: string, interfaceName: string, pinned: string): string;
15
+ export declare function describeUnsettledCycle(modules: readonly string[]): string;
16
+ export interface AmbiguousDefault {
17
+ moduleId: string;
18
+ interfaceName: string;
19
+ chosen: string;
20
+ providers: readonly string[];
21
+ priorities: ReadonlyMap<string, number>;
22
+ pinTargets: readonly string[];
23
+ }
24
+ export declare function describeAmbiguousDefault(ambiguity: AmbiguousDefault): string;
25
+ export declare function describeUnusedPin(moduleId: string, interfaceName: string): string;
26
+ export declare function describeStartupDivergence(moduleId: string, interfaceName: string, running: string, fresh: string): string;
27
+ export declare class InterfaceBindingError extends Error {
28
+ readonly problems: readonly string[];
29
+ constructor(problems: readonly string[]);
30
+ }
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InterfaceBindingError = void 0;
4
+ exports.describeDiamond = describeDiamond;
5
+ exports.describeRunningRebind = describeRunningRebind;
6
+ exports.describeRunningProviderGone = describeRunningProviderGone;
7
+ exports.describePinWithoutProvider = describePinWithoutProvider;
8
+ exports.describeImplementedPin = describeImplementedPin;
9
+ exports.describeUnsettledCycle = describeUnsettledCycle;
10
+ exports.describeAmbiguousDefault = describeAmbiguousDefault;
11
+ exports.describeUnusedPin = describeUnusedPin;
12
+ exports.describeStartupDivergence = describeStartupDivergence;
13
+ const INTERFACE_BINDING_ERROR_NAME = "InterfaceBindingError";
14
+ const INTERFACE_BINDING_HEADLINE = "Inconsistent interface bindings:";
15
+ const PATH_SEPARATOR = " -> ";
16
+ function describeSide({ carried, path }) {
17
+ const how = carried.source ? "pins" : "uses the default";
18
+ return `${path.join(PATH_SEPARATOR)} ${how} '${carried.value}'`;
19
+ }
20
+ function describeDiamond(merge, interfaceName, first, second) {
21
+ return `${merge} is reached with two bindings for ${interfaceName}: ${describeSide(first)}, ${describeSide(second)}. Pin ${interfaceName} on ${merge} to choose.`;
22
+ }
23
+ function describeRunningRebind(moduleId, interfaceName, running, carried) {
24
+ const how = carried.source ? "a pin of" : "the default";
25
+ return `Loading would re-bind running module ${moduleId}: ${[...carried.path, moduleId].join(PATH_SEPARATOR)} carries ${how} '${carried.value}' for ${interfaceName}, and ${moduleId} runs on '${running}'.`;
26
+ }
27
+ function describeRunningProviderGone(moduleId, interfaceName, running) {
28
+ return `Loading would leave running module ${moduleId} bound to '${running}', which no longer provides ${interfaceName}.`;
29
+ }
30
+ function describePinWithoutProvider(moduleId, interfaceName, pinned) {
31
+ return `Module '${moduleId}' pins ${interfaceName} to '${pinned}', which does not provide it.`;
32
+ }
33
+ function describeImplementedPin(moduleId, interfaceName, pinned) {
34
+ return `Module '${moduleId}' implements ${interfaceName} but pins it to '${pinned}'.`;
35
+ }
36
+ function describeUnsettledCycle(modules) {
37
+ return `Interface bindings do not settle in the module cycle ${modules.join(", ")}.`;
38
+ }
39
+ function describeAmbiguousDefault(ambiguity) {
40
+ const { moduleId, interfaceName, chosen, priorities } = ambiguity;
41
+ const listed = ambiguity.providers.map((provider) => {
42
+ const priority = priorities.get(provider) ?? 0;
43
+ return priority === 0 ? provider : `${provider} [${priority}]`;
44
+ });
45
+ return `${moduleId} resolves ${interfaceName} to '${chosen}' by default (providers: ${listed.join(", ")}). Pin ${interfaceName} on ${ambiguity.pinTargets.join(" or ")}.`;
46
+ }
47
+ function describeUnusedPin(moduleId, interfaceName) {
48
+ return `Module '${moduleId}' pins ${interfaceName}, but that pin decides no binding.`;
49
+ }
50
+ function describeStartupDivergence(moduleId, interfaceName, running, fresh) {
51
+ return `${moduleId} keeps ${interfaceName} on '${running}' while running; the next startup binds it to '${fresh}'.`;
52
+ }
53
+ class InterfaceBindingError extends Error {
54
+ problems;
55
+ constructor(problems) {
56
+ super([
57
+ INTERFACE_BINDING_HEADLINE,
58
+ ...problems.map((problem) => ` - ${problem}`),
59
+ ].join("\n"));
60
+ this.problems = problems;
61
+ this.name = INTERFACE_BINDING_ERROR_NAME;
62
+ }
63
+ }
64
+ exports.InterfaceBindingError = InterfaceBindingError;
65
+ //# sourceMappingURL=binding-diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding-diagnostics.js","sourceRoot":"","sources":["../../../src/core/resolution/binding-diagnostics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ type Successors = ReadonlyMap<string, ReadonlySet<string>>;
2
+ export declare function orderComponents(nodes: readonly string[], successors: Successors): string[][];
3
+ export {};
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.orderComponents = orderComponents;
4
+ function visit(node, successors, state) {
5
+ state.indices.set(node, state.index);
6
+ state.lowLinks.set(node, state.index);
7
+ state.index += 1;
8
+ state.stack.push(node);
9
+ state.onStack.add(node);
10
+ for (const next of successors.get(node) ?? []) {
11
+ if (!state.indices.has(next)) {
12
+ visit(next, successors, state);
13
+ state.lowLinks.set(node, Math.min(state.lowLinks.get(node), state.lowLinks.get(next)));
14
+ }
15
+ else if (state.onStack.has(next)) {
16
+ state.lowLinks.set(node, Math.min(state.lowLinks.get(node), state.indices.get(next)));
17
+ }
18
+ }
19
+ if (state.lowLinks.get(node) === state.indices.get(node)) {
20
+ state.components.push(popComponent(node, state));
21
+ }
22
+ }
23
+ function popComponent(root, state) {
24
+ const component = [];
25
+ let member;
26
+ do {
27
+ member = state.stack.pop();
28
+ state.onStack.delete(member);
29
+ component.push(member);
30
+ } while (member !== root);
31
+ return component.sort();
32
+ }
33
+ function orderComponents(nodes, successors) {
34
+ const state = {
35
+ index: 0,
36
+ indices: new Map(),
37
+ lowLinks: new Map(),
38
+ stack: [],
39
+ onStack: new Set(),
40
+ components: [],
41
+ };
42
+ for (const node of nodes) {
43
+ if (!state.indices.has(node)) {
44
+ visit(node, successors, state);
45
+ }
46
+ }
47
+ return state.components.reverse();
48
+ }
49
+ //# sourceMappingURL=binding-graph-order.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding-graph-order.js","sourceRoot":"","sources":["../../../src/core/resolution/binding-graph-order.ts"],"names":[],"mappings":";;AAmDA,0CAkBC;AA1DD,SAAS,KAAK,CAAC,IAAY,EAAE,UAAsB,EAAE,KAAkB;IACrE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACrC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACtC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;IACjB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;YAC/B,KAAK,CAAC,QAAQ,CAAC,GAAG,CAChB,IAAI,EACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,CAC/D,CAAC;QACJ,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAChB,IAAI,EACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,CAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACzD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,KAAkB;IACpD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,MAA0B,CAAC;IAC/B,GAAG,CAAC;QACF,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAG,CAAC;QAC5B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC,QAAQ,MAAM,KAAK,IAAI,EAAE;IAC1B,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;AAC1B,CAAC;AAMD,SAAgB,eAAe,CAC7B,KAAwB,EACxB,UAAsB;IAEtB,MAAM,KAAK,GAAgB;QACzB,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,IAAI,GAAG,EAAE;QAClB,QAAQ,EAAE,IAAI,GAAG,EAAE;QACnB,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,IAAI,GAAG,EAAE;QAClB,UAAU,EAAE,EAAE;KACf,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;AACpC,CAAC"}
@@ -0,0 +1,46 @@
1
+ export interface BindingInterface {
2
+ name: string;
3
+ dependencies: readonly string[];
4
+ }
5
+ export interface BindingConnection {
6
+ id?: string;
7
+ source?: string;
8
+ }
9
+ export interface BindingModule {
10
+ id: string;
11
+ implements: readonly string[];
12
+ uses: readonly string[];
13
+ connections: ReadonlyMap<string, readonly BindingConnection[]>;
14
+ listedConnections?: ReadonlyMap<string, readonly BindingConnection[]>;
15
+ exportPriority: ReadonlyMap<string, number>;
16
+ }
17
+ export interface BindingGraphInput {
18
+ interfaces: ReadonlyMap<string, BindingInterface>;
19
+ modules: ReadonlyMap<string, BindingModule>;
20
+ running?: ReadonlyMap<string, ReadonlyMap<string, string>>;
21
+ }
22
+ type BindingReason = "implements" | "pin" | "running" | "carried" | "default" | "self-hosted";
23
+ export interface InterfaceBinding {
24
+ provider?: string;
25
+ reason: BindingReason;
26
+ source?: string;
27
+ }
28
+ export interface InstanceDescriptor {
29
+ key: string;
30
+ interfaceName: string;
31
+ provider?: string;
32
+ dependencies: readonly string[];
33
+ }
34
+ export interface ModuleBindings {
35
+ scope: ReadonlyMap<string, InterfaceBinding>;
36
+ keys: ReadonlyMap<string, string>;
37
+ connectionKeys: ReadonlyMap<string, readonly string[]>;
38
+ }
39
+ export interface BindingGraph {
40
+ modules: ReadonlyMap<string, ModuleBindings>;
41
+ instances: ReadonlyMap<string, InstanceDescriptor>;
42
+ edges: ReadonlyMap<string, ReadonlySet<string>>;
43
+ errors: readonly string[];
44
+ warnings: readonly string[];
45
+ }
46
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=binding-graph-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding-graph-types.js","sourceRoot":"","sources":["../../../src/core/resolution/binding-graph-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import type { ProviderTable } from "./binding-providers";
2
+ import type { BindingGraph, InterfaceBinding } from "./binding-graph-types";
3
+ export interface BindingWarningView {
4
+ moduleIds: readonly string[];
5
+ scopes: ReadonlyMap<string, ReadonlyMap<string, InterfaceBinding>>;
6
+ edges: ReadonlyMap<string, ReadonlySet<string>>;
7
+ pins: ReadonlyMap<string, ReadonlyMap<string, string>>;
8
+ providers: ProviderTable;
9
+ }
10
+ export declare function collectBindingWarnings(view: BindingWarningView): string[];
11
+ export declare function collectStartupDivergence(running: ReadonlyMap<string, ReadonlyMap<string, string>>, fresh: BindingGraph): string[];
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.collectBindingWarnings = collectBindingWarnings;
4
+ exports.collectStartupDivergence = collectStartupDivergence;
5
+ const binding_diagnostics_1 = require("./binding-diagnostics");
6
+ function pinTargets(view, moduleId) {
7
+ const roots = new Set();
8
+ const seen = new Set();
9
+ const climb = (id) => {
10
+ if (seen.has(id)) {
11
+ return;
12
+ }
13
+ seen.add(id);
14
+ const parents = view.moduleIds.filter((parent) => view.edges.get(parent)?.has(id));
15
+ if (parents.length === 0) {
16
+ roots.add(id);
17
+ }
18
+ parents.forEach(climb);
19
+ };
20
+ climb(moduleId);
21
+ return [...roots].sort();
22
+ }
23
+ function isAmbiguous(view, interfaceName, binding) {
24
+ return (binding.reason === "default" &&
25
+ view.providers.providersOf(interfaceName).length > 1 &&
26
+ view.providers.defaultCandidates(interfaceName).length > 1);
27
+ }
28
+ function ambiguityWarning(view, moduleId, interfaceName) {
29
+ const providers = view.providers.providersOf(interfaceName);
30
+ return (0, binding_diagnostics_1.describeAmbiguousDefault)({
31
+ moduleId,
32
+ interfaceName,
33
+ chosen: view.providers.defaultProvider(interfaceName),
34
+ providers,
35
+ priorities: new Map(providers.map((provider) => [
36
+ provider,
37
+ view.providers.priorityOf(provider, interfaceName),
38
+ ])),
39
+ pinTargets: pinTargets(view, moduleId),
40
+ });
41
+ }
42
+ function ambiguityWarnings(view) {
43
+ return [...view.scopes].flatMap(([moduleId, scope]) => [...scope]
44
+ .filter(([interfaceName, binding]) => isAmbiguous(view, interfaceName, binding))
45
+ .map(([interfaceName]) => ambiguityWarning(view, moduleId, interfaceName)));
46
+ }
47
+ function hasEffect(view, source, interfaceName) {
48
+ return [...view.scopes].some(([moduleId, scope]) => {
49
+ const binding = scope.get(interfaceName);
50
+ return moduleId === source
51
+ ? binding?.reason === "pin"
52
+ : binding?.reason === "carried" && binding.source === source;
53
+ });
54
+ }
55
+ function unusedPinWarnings(view) {
56
+ return view.moduleIds.flatMap((id) => [...(view.pins.get(id)?.keys() ?? [])]
57
+ .filter((interfaceName) => !hasEffect(view, id, interfaceName))
58
+ .map((interfaceName) => (0, binding_diagnostics_1.describeUnusedPin)(id, interfaceName)));
59
+ }
60
+ function collectBindingWarnings(view) {
61
+ return [...ambiguityWarnings(view), ...unusedPinWarnings(view)];
62
+ }
63
+ function collectStartupDivergence(running, fresh) {
64
+ return [...running].flatMap(([moduleId, bindings]) => [...bindings].flatMap(([interfaceName, provider]) => {
65
+ const next = fresh.modules.get(moduleId)?.scope.get(interfaceName);
66
+ return next?.provider && next.provider !== provider
67
+ ? [
68
+ (0, binding_diagnostics_1.describeStartupDivergence)(moduleId, interfaceName, provider, next.provider),
69
+ ]
70
+ : [];
71
+ }));
72
+ }
73
+ //# sourceMappingURL=binding-graph-warnings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding-graph-warnings.js","sourceRoot":"","sources":["../../../src/core/resolution/binding-graph-warnings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { BindingGraph, BindingGraphInput } from "./binding-graph-types";
2
+ export declare function buildBindingGraph(input: BindingGraphInput): BindingGraph;