@dougongjs/core 0.0.3 → 0.1.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/README.md +18 -18
- package/dist/change-set.d.ts +27 -27
- package/dist/change-set.d.ts.map +1 -1
- package/dist/configuration.d.ts +4 -0
- package/dist/configuration.d.ts.map +1 -0
- package/dist/contract-registry.d.ts +1 -1
- package/dist/contract-registry.d.ts.map +1 -1
- package/dist/contracts.d.ts +6 -5
- package/dist/contracts.d.ts.map +1 -1
- package/dist/{extension-store.d.ts → contribution-store.d.ts} +14 -15
- package/dist/contribution-store.d.ts.map +1 -0
- package/dist/diagnostics.d.ts +13 -12
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/engine.d.ts +32 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/errors.d.ts +6 -9
- package/dist/errors.d.ts.map +1 -1
- package/dist/event-hub.d.ts +6 -2
- package/dist/event-hub.d.ts.map +1 -1
- package/dist/group-coordinator.d.ts +27 -26
- package/dist/group-coordinator.d.ts.map +1 -1
- package/dist/group-lifecycle.d.ts +2 -2
- package/dist/group-lifecycle.d.ts.map +1 -1
- package/dist/group.d.ts +2 -2
- package/dist/group.d.ts.map +1 -1
- package/dist/host-api.d.ts +72 -0
- package/dist/host-api.d.ts.map +1 -0
- package/dist/host.d.ts +6 -0
- package/dist/host.d.ts.map +1 -0
- package/dist/index.d.ts +8 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1412 -1166
- package/dist/installation-graph.d.ts +17 -0
- package/dist/installation-graph.d.ts.map +1 -0
- package/dist/installation-registry.d.ts +49 -0
- package/dist/installation-registry.d.ts.map +1 -0
- package/dist/installation.d.ts +46 -0
- package/dist/installation.d.ts.map +1 -0
- package/dist/lifecycle-status.d.ts +2 -0
- package/dist/lifecycle-status.d.ts.map +1 -0
- package/dist/lifetime-diagnostics.d.ts +2 -2
- package/dist/lifetime-diagnostics.d.ts.map +1 -1
- package/dist/lifetime.d.ts +17 -16
- package/dist/lifetime.d.ts.map +1 -1
- package/dist/plugin.d.ts +11 -7
- package/dist/plugin.d.ts.map +1 -1
- package/dist/readonly-map.d.ts.map +1 -1
- package/dist/record.d.ts +8 -0
- package/dist/record.d.ts.map +1 -0
- package/dist/resource.d.ts +7 -3
- package/dist/resource.d.ts.map +1 -1
- package/dist/runtime.d.ts +33 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/snapshot-view.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/application-api.d.ts +0 -51
- package/dist/application-api.d.ts.map +0 -1
- package/dist/application-runtime.d.ts +0 -36
- package/dist/application-runtime.d.ts.map +0 -1
- package/dist/application.d.ts +0 -6
- package/dist/application.d.ts.map +0 -1
- package/dist/extension-store.d.ts.map +0 -1
- package/dist/plugin-graph.d.ts +0 -17
- package/dist/plugin-graph.d.ts.map +0 -1
- package/dist/plugin-installation.d.ts +0 -44
- package/dist/plugin-installation.d.ts.map +0 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ContractKind } from './contracts';
|
|
2
|
+
import { InstallationRecord } from './installation';
|
|
3
|
+
/** Immutable validated dependency plan over one Host-wide installation graph. */
|
|
4
|
+
export declare class InstallationGraph {
|
|
5
|
+
#private;
|
|
6
|
+
readonly order: ReadonlyArray<InstallationRecord>;
|
|
7
|
+
readonly layers: ReadonlyArray<ReadonlyArray<InstallationRecord>>;
|
|
8
|
+
readonly providers: ReadonlyMap<string, InstallationRecord>;
|
|
9
|
+
readonly dependents: ReadonlyMap<InstallationRecord, ReadonlySet<InstallationRecord>>;
|
|
10
|
+
readonly contractKinds: ReadonlyMap<string, ContractKind>;
|
|
11
|
+
private constructor();
|
|
12
|
+
static build(source: Iterable<InstallationRecord>, committedKinds: ReadonlyMap<string, ContractKind>): InstallationGraph;
|
|
13
|
+
providerFor(installation: InstallationRecord, serviceId: string): InstallationRecord | undefined;
|
|
14
|
+
provider(serviceId: string): InstallationRecord | undefined;
|
|
15
|
+
affectedByTransitionTo(other: InstallationGraph, changed: ReadonlySet<InstallationRecord>): Set<InstallationRecord>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=installation-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installation-graph.d.ts","sourceRoot":"","sources":["../src/installation-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,iFAAiF;AACjF,qBAAa,iBAAiB;;IAO1B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,kBAAkB,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACjE,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAC3D,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,kBAAkB,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACrF,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC;IAL3D,OAAO;IAWP,MAAM,CAAC,KAAK,CACV,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC;IAsBnD,WAAW,CAAC,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM;IAI/D,QAAQ,CAAC,SAAS,EAAE,MAAM;IAI1B,sBAAsB,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,CAAC,kBAAkB,CAAC;CAmB1F"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { ChangeOperation } from './change-set';
|
|
2
|
+
import { GroupNode } from './group';
|
|
3
|
+
import { Installation, InstallationUpdate } from './host-api';
|
|
4
|
+
import { InstallationDeclaration, InstallationRecord } from './installation';
|
|
5
|
+
import { ErasedPlugin, Provisions, Requirements } from './plugin';
|
|
6
|
+
type ErasedInstallation = Installation<unknown, Requirements, Provisions, unknown>;
|
|
7
|
+
type ErasedUpdate = InstallationUpdate<unknown, Requirements, Provisions, unknown>;
|
|
8
|
+
interface InstallationRegistryPort {
|
|
9
|
+
readonly notifyChanged: () => void;
|
|
10
|
+
readonly update: (installation: InstallationRecord, facade: ErasedInstallation, update: ErasedUpdate) => Promise<void>;
|
|
11
|
+
readonly remove: (installation: InstallationRecord, facade: ErasedInstallation) => Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
interface InstallationCapture {
|
|
14
|
+
readonly id: string;
|
|
15
|
+
readonly installation: InstallationRecord;
|
|
16
|
+
readonly declaration: InstallationDeclaration;
|
|
17
|
+
}
|
|
18
|
+
declare class InstallationFacade<Config, Requires extends Requirements, Provides extends Provisions, ConfigInput> implements Installation<Config, Requires, Provides, ConfigInput> {
|
|
19
|
+
#private;
|
|
20
|
+
constructor(installation: InstallationRecord);
|
|
21
|
+
get id(): string;
|
|
22
|
+
get groupId(): string;
|
|
23
|
+
get status(): import('./lifecycle-status').LifecycleStatus;
|
|
24
|
+
ready(): Promise<void>;
|
|
25
|
+
update(update: InstallationUpdate<Config, Requires, Provides, ConfigInput>): Promise<void>;
|
|
26
|
+
remove(): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
/** Owns Installation declarations, public facade authority and stable lookup. */
|
|
29
|
+
export declare class InstallationRegistry {
|
|
30
|
+
#private;
|
|
31
|
+
constructor(port: InstallationRegistryPort);
|
|
32
|
+
values(): MapIterator<InstallationRecord>;
|
|
33
|
+
has(id: string): boolean;
|
|
34
|
+
contains(installation: InstallationRecord): boolean;
|
|
35
|
+
create(group: GroupNode, plugin: ErasedPlugin, config: unknown): {
|
|
36
|
+
record: InstallationRecord;
|
|
37
|
+
publicInstallation: InstallationFacade<unknown, Readonly<Record<string, import('./contracts').Requirement>>, Readonly<Record<string, import('./contracts').Service<unknown>>>, unknown>;
|
|
38
|
+
};
|
|
39
|
+
resolve(value: object): InstallationRecord;
|
|
40
|
+
attach(installation: InstallationRecord): void;
|
|
41
|
+
apply(operations: ReadonlyArray<ChangeOperation>): void;
|
|
42
|
+
settleChanges(operations: ReadonlyArray<ChangeOperation>, active: boolean): void;
|
|
43
|
+
settleReadiness(records: Iterable<InstallationRecord>): void;
|
|
44
|
+
discard(installation: InstallationRecord, error: unknown): void;
|
|
45
|
+
capture(): ReadonlyArray<InstallationCapture>;
|
|
46
|
+
restore(snapshot: ReadonlyArray<InstallationCapture>): void;
|
|
47
|
+
}
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=installation-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installation-registry.d.ts","sourceRoot":"","sources":["../src/installation-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAEL,KAAK,uBAAuB,EAC5B,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEvE,KAAK,kBAAkB,GAAG,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AACnF,KAAK,YAAY,GAAG,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAEnF,UAAU,wBAAwB;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,CACf,YAAY,EAAE,kBAAkB,EAChC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,YAAY,KACjB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClG;AAED,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAC;CAC/C;AAyBD,cAAM,kBAAkB,CACtB,MAAM,EACN,QAAQ,SAAS,YAAY,EAC7B,QAAQ,SAAS,UAAU,EAC3B,WAAW,CACX,YAAW,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC;;gBAIpD,YAAY,EAAE,kBAAkB;IAsB5C,IAAI,EAAE,WAEL;IAED,IAAI,OAAO,WAEV;IAED,IAAI,MAAM,iDAET;IAED,KAAK;IAIC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC;IAO1E,MAAM;CAYb;AAED,iFAAiF;AACjF,qBAAa,oBAAoB;;gBAOnB,IAAI,EAAE,wBAAwB;IAI1C,MAAM;IAIN,GAAG,CAAC,EAAE,EAAE,MAAM;IAId,QAAQ,CAAC,YAAY,EAAE,kBAAkB;IAIzC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO;;;;IAe9D,OAAO,CAAC,KAAK,EAAE,MAAM;IAMrB,MAAM,CAAC,YAAY,EAAE,kBAAkB;IAYvC,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC;IA0ChD,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,OAAO;IAYzE,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,kBAAkB,CAAC;IAIrD,OAAO,CAAC,YAAY,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO;IAKxD,OAAO,IAAI,aAAa,CAAC,mBAAmB,CAAC;IAQ7C,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,mBAAmB,CAAC;CAgBrD"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Lifetime } from './lifetime';
|
|
2
|
+
import { LifecycleStatus } from './lifecycle-status';
|
|
3
|
+
import { ErasedPlugin } from './plugin';
|
|
4
|
+
import { GroupNode } from './group';
|
|
5
|
+
export interface InstallationDeclaration {
|
|
6
|
+
readonly plugin: ErasedPlugin;
|
|
7
|
+
readonly config: unknown;
|
|
8
|
+
}
|
|
9
|
+
export interface Instance {
|
|
10
|
+
readonly plugin: ErasedPlugin;
|
|
11
|
+
readonly config: unknown;
|
|
12
|
+
readonly lifetime: Lifetime;
|
|
13
|
+
}
|
|
14
|
+
export declare function createInstallationDeclaration(plugin: ErasedPlugin, config: unknown): InstallationDeclaration;
|
|
15
|
+
/**
|
|
16
|
+
* An installation is a stable identity whose declaration and active Instance
|
|
17
|
+
* may change. State transitions and ready waiters live here so orchestration
|
|
18
|
+
* code cannot create a status that disagrees with the owned Instance.
|
|
19
|
+
*/
|
|
20
|
+
export declare class InstallationRecord {
|
|
21
|
+
#private;
|
|
22
|
+
readonly id: string;
|
|
23
|
+
readonly index: number;
|
|
24
|
+
readonly groupId: string;
|
|
25
|
+
constructor(id: string, index: number, group: GroupNode, declaration: InstallationDeclaration);
|
|
26
|
+
attach(notifyChanged: () => void): void;
|
|
27
|
+
get status(): LifecycleStatus;
|
|
28
|
+
/** Whether the owning ChangeSet has granted this Installation Host authority. */
|
|
29
|
+
get attached(): boolean;
|
|
30
|
+
get instance(): Instance | undefined;
|
|
31
|
+
get error(): Error | undefined;
|
|
32
|
+
get group(): GroupNode;
|
|
33
|
+
get declaration(): InstallationDeclaration;
|
|
34
|
+
replaceDeclaration(declaration: InstallationDeclaration): void;
|
|
35
|
+
ready(): Promise<void>;
|
|
36
|
+
unavailableError(): Error;
|
|
37
|
+
trackReadiness(operation: Promise<void>): void;
|
|
38
|
+
activate(instance: Instance): void;
|
|
39
|
+
settleReady(): void;
|
|
40
|
+
beginStopping(): boolean;
|
|
41
|
+
deactivate(): void;
|
|
42
|
+
fail(error: unknown): Error;
|
|
43
|
+
discard(error: unknown): void;
|
|
44
|
+
remove(): void;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=installation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installation.d.ts","sourceRoot":"","sources":["../src/installation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,OAAO,GACd,uBAAuB,CAEzB;AAwCD;;;;GAIG;AACH,qBAAa,kBAAkB;;IAa3B,QAAQ,CAAC,EAAE,EAAE,MAAM;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM;IATxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAQd,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACtB,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,uBAAuB;IAMtC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI;IAMhC,IAAI,MAAM,IAAI,eAAe,CAE5B;IAED,iFAAiF;IACjF,IAAI,QAAQ,YAEX;IAED,IAAI,QAAQ,yBAGX;IAED,IAAI,KAAK,sBAWR;IAED,IAAI,KAAK,cAER;IAED,IAAI,WAAW,4BAEd;IAED,kBAAkB,CAAC,WAAW,EAAE,uBAAuB;IAIvD,KAAK;IAML,gBAAgB;IAUhB,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC;IAuCvC,QAAQ,CAAC,QAAQ,EAAE,QAAQ;IAI3B,WAAW;IAkBX,aAAa;IAOb,UAAU;IAIV,IAAI,CAAC,KAAK,EAAE,OAAO;IAInB,OAAO,CAAC,KAAK,EAAE,OAAO;IAuBtB,MAAM;CAwBP"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle-status.d.ts","sourceRoot":"","sources":["../src/lifecycle-status.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC"}
|
|
@@ -8,11 +8,11 @@ export interface LifetimeSnapshot {
|
|
|
8
8
|
readonly tasks: number;
|
|
9
9
|
readonly listeners: number;
|
|
10
10
|
readonly contributions: number;
|
|
11
|
-
readonly
|
|
11
|
+
readonly contributionViews: number;
|
|
12
12
|
readonly subscriptions: number;
|
|
13
13
|
readonly children: ReadonlyArray<LifetimeSnapshot>;
|
|
14
14
|
}
|
|
15
|
-
export type LifetimeResourceKind = "cleanups" | "tasks" | "listeners" | "contributions" | "
|
|
15
|
+
export type LifetimeResourceKind = "cleanups" | "tasks" | "listeners" | "contributions" | "contributionViews" | "subscriptions";
|
|
16
16
|
/** Internal state that mirrors a Lifetime without retaining any owned resource. */
|
|
17
17
|
export interface LifetimeDiagnosticNode {
|
|
18
18
|
readonly label: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifetime-diagnostics.d.ts","sourceRoot":"","sources":["../src/lifetime-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEvE,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAEhE,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"lifetime-diagnostics.d.ts","sourceRoot":"","sources":["../src/lifetime-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEvE,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAEhE,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;CACpD;AAED,MAAM,MAAM,oBAAoB,GAC9B,UAAU,GAAG,OAAO,GAAG,WAAW,GAAG,eAAe,GAAG,mBAAmB,GAAG,eAAe,CAAC;AAE/F,mFAAmF;AACnF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAC/C,KAAK,EAAE,aAAa,CAAC;CACtB;AAED,+EAA+E;AAC/E,qBAAa,mBAAmB;;IAG9B,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC;gBAElC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IAM/D,UAAU,CAAC,KAAK,EAAE,MAAM;IAIxB,MAAM,CAAC,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,sBAAsB;IAMpE,MAAM,CAAC,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,sBAAsB;IAKpE,MAAM,CAAC,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;IAO9E,cAAc,CAAC,IAAI,EAAE,sBAAsB;IAM3C,UAAU;CAMX"}
|
package/dist/lifetime.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Event,
|
|
2
|
-
import { Contribution,
|
|
1
|
+
import { Event, ExtensionPoint } from './contracts';
|
|
2
|
+
import { Contribution, ContributionLeaseKind } from './contribution-store';
|
|
3
3
|
import { EventListener } from './event-hub';
|
|
4
4
|
import { LifetimeDiagnostics, LifetimeDiagnosticNode } from './lifetime-diagnostics';
|
|
5
|
-
import { Disposable, Publication, StagedResource } from './resource';
|
|
5
|
+
import { AsyncDisposable, Disposable, Publication, StagedResource } from './resource';
|
|
6
6
|
export type { LifetimePhase, LifetimeSnapshot } from './lifetime-diagnostics';
|
|
7
7
|
export interface Logger {
|
|
8
8
|
debug(message: unknown, ...details: unknown[]): void;
|
|
@@ -10,32 +10,33 @@ export interface Logger {
|
|
|
10
10
|
warn(message: unknown, ...details: unknown[]): void;
|
|
11
11
|
error(message: unknown, ...details: unknown[]): void;
|
|
12
12
|
}
|
|
13
|
-
export
|
|
14
|
-
|
|
13
|
+
export declare function isLogger(value: unknown): value is Logger;
|
|
14
|
+
export interface InstanceMeta {
|
|
15
|
+
readonly hostName: string;
|
|
15
16
|
readonly pluginName: string;
|
|
16
17
|
readonly installationId: string;
|
|
17
18
|
readonly groupId: string;
|
|
18
19
|
}
|
|
19
|
-
export interface Task<T = void> extends
|
|
20
|
+
export interface Task<T = void> extends AsyncDisposable {
|
|
20
21
|
readonly result: Promise<T>;
|
|
21
22
|
}
|
|
22
23
|
export type Cleanup = () => unknown;
|
|
23
24
|
export type BackgroundTask<T> = (signal: AbortSignal) => T | PromiseLike<T>;
|
|
24
25
|
export interface LifetimeOperations {
|
|
25
26
|
readonly signal: AbortSignal;
|
|
26
|
-
cleanup(dispose: Cleanup):
|
|
27
|
+
cleanup(dispose: Cleanup): AsyncDisposable;
|
|
27
28
|
lifetime(label: string): LifetimeContext;
|
|
28
29
|
spawn<T>(task: BackgroundTask<T>): Task<T>;
|
|
29
30
|
on<T>(token: Event<T>, listener: EventListener<T>): Disposable;
|
|
30
31
|
emit<T>(token: Event<T>, payload: T): Promise<void>;
|
|
31
|
-
contribute<T>(token:
|
|
32
|
+
contribute<T>(token: ExtensionPoint<T>, key: string, value: T): Contribution<T>;
|
|
32
33
|
}
|
|
33
|
-
export interface LifetimeContext extends LifetimeOperations,
|
|
34
|
+
export interface LifetimeContext extends LifetimeOperations, AsyncDisposable {
|
|
34
35
|
}
|
|
35
|
-
export interface
|
|
36
|
+
export interface LifetimePort {
|
|
36
37
|
stageOn<T>(ownerId: string, token: Event<T>, listener: EventListener<T>, release: (publication: Publication) => void): StagedResource<Disposable>;
|
|
37
38
|
emit<T>(ownerId: string, token: Event<T>, payload: T): Promise<void>;
|
|
38
|
-
stageContribution<T>(ownerId: string, token:
|
|
39
|
+
stageContribution<T>(ownerId: string, token: ExtensionPoint<T>, key: string, value: T, release: (publication: Publication) => void): StagedResource<Contribution<T>>;
|
|
39
40
|
report(error: unknown): void;
|
|
40
41
|
}
|
|
41
42
|
interface LifetimeOptions {
|
|
@@ -47,16 +48,16 @@ interface LifetimeOptions {
|
|
|
47
48
|
readonly diagnosticNode: LifetimeDiagnosticNode;
|
|
48
49
|
};
|
|
49
50
|
}
|
|
50
|
-
declare class CleanupRecord implements
|
|
51
|
+
declare class CleanupRecord implements AsyncDisposable {
|
|
51
52
|
#private;
|
|
52
|
-
constructor(cleanup: Cleanup, detachFromParent: (resource:
|
|
53
|
+
constructor(cleanup: Cleanup, detachFromParent: (resource: AsyncDisposable) => void);
|
|
53
54
|
dispose(): Promise<void>;
|
|
54
55
|
[Symbol.asyncDispose](): Promise<void>;
|
|
55
56
|
}
|
|
56
57
|
export declare class Lifetime implements LifetimeContext {
|
|
57
58
|
#private;
|
|
58
59
|
readonly handle: LifetimeContext;
|
|
59
|
-
constructor(
|
|
60
|
+
constructor(port: LifetimePort, ownerId: string, options?: LifetimeOptions);
|
|
60
61
|
get signal(): AbortSignal;
|
|
61
62
|
get diagnostics(): import('./snapshot-view').SnapshotView<import('./lifetime-diagnostics').LifetimeSnapshot>;
|
|
62
63
|
cleanup(dispose: Cleanup): CleanupRecord;
|
|
@@ -64,9 +65,9 @@ export declare class Lifetime implements LifetimeContext {
|
|
|
64
65
|
spawn<T>(task: BackgroundTask<T>): Task<T>;
|
|
65
66
|
on<T>(token: Event<T>, listener: EventListener<T>): Disposable;
|
|
66
67
|
emit<T>(token: Event<T>, payload: T): Promise<void>;
|
|
67
|
-
contribute<T>(token:
|
|
68
|
+
contribute<T>(token: ExtensionPoint<T>, key: string, value: T): Contribution<T>;
|
|
68
69
|
/** Owns an internal live capability without exposing a second Context API. */
|
|
69
|
-
ownLease(resource: Disposable, kind:
|
|
70
|
+
ownLease(resource: Disposable, kind: ContributionLeaseKind): () => boolean;
|
|
70
71
|
/** Releases a temporary startup cancellation edge after its layer commits. */
|
|
71
72
|
detachStartupSignal(): void;
|
|
72
73
|
/** Atomically makes all declarations staged during setup visible. */
|
package/dist/lifetime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifetime.d.ts","sourceRoot":"","sources":["../src/lifetime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"lifetime.d.ts","sourceRoot":"","sources":["../src/lifetime.ts"],"names":[],"mappings":"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"}
|
package/dist/plugin.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { StandardSchemaV1 } from '@standard-schema/spec';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { LifetimeOperations, Logger
|
|
2
|
+
import { ExtensionPoint, OptionalService, Requirement, Service } from './contracts';
|
|
3
|
+
import { ContributionView } from './contribution-store';
|
|
4
|
+
import { InstanceMeta, LifetimeOperations, Logger } from './lifetime';
|
|
5
5
|
import { Awaitable } from './resource';
|
|
6
6
|
export type { Awaitable } from './resource';
|
|
7
7
|
export type Requirements = Readonly<Record<string, Requirement>>;
|
|
8
8
|
export type Provisions = Readonly<Record<string, Service<unknown>>>;
|
|
9
9
|
type ServiceValue<T> = T extends Service<infer Value> ? Value : never;
|
|
10
|
-
export type ResolvedRequirement<T> = T extends OptionalService<infer Value> ? Value | undefined : T extends Service<infer Value> ? Value : T extends
|
|
10
|
+
export type ResolvedRequirement<T> = T extends OptionalService<infer Value> ? Value | undefined : T extends Service<infer Value> ? Value : T extends ExtensionPoint<infer Value> ? ContributionView<Value> : never;
|
|
11
11
|
export type ResolvedRequirements<T extends Requirements> = {
|
|
12
12
|
readonly [Key in keyof T]: ResolvedRequirement<T[Key]>;
|
|
13
13
|
};
|
|
@@ -16,15 +16,19 @@ export type ProvidedServices<T extends Provisions> = {
|
|
|
16
16
|
};
|
|
17
17
|
type SetupOutput<T extends Provisions> = keyof T extends never ? void : ProvidedServices<T>;
|
|
18
18
|
export type PluginContext<T extends Requirements = Requirements> = LifetimeOperations & ResolvedRequirements<T> & {
|
|
19
|
-
readonly meta:
|
|
19
|
+
readonly meta: InstanceMeta;
|
|
20
20
|
readonly log: Logger;
|
|
21
21
|
};
|
|
22
|
-
export interface
|
|
22
|
+
export interface Plugin<Config = void, Requires extends Requirements = {}, Provides extends Provisions = {}, ConfigInput = Config> {
|
|
23
23
|
readonly name: string;
|
|
24
24
|
readonly config?: StandardSchemaV1<ConfigInput, Config>;
|
|
25
25
|
readonly requires?: Requires;
|
|
26
26
|
readonly provides?: Provides;
|
|
27
27
|
readonly setup: (context: PluginContext<Requires>, config: Config) => Awaitable<SetupOutput<NoInfer<Provides>>>;
|
|
28
28
|
}
|
|
29
|
-
|
|
29
|
+
/** Execution representation after public generic information has been checked and erased. */
|
|
30
|
+
export type ErasedPlugin = Plugin<unknown, Requirements, Provisions, unknown>;
|
|
31
|
+
export declare function definePlugin<Config = void, Requires extends Requirements = {}, Provides extends Provisions = {}, ConfigInput = Config>(plugin: Plugin<Config, Requires, Provides, ConfigInput>): Plugin<Config, Requires, Provides, ConfigInput>;
|
|
32
|
+
/** The sole boundary that validates a public Plugin and erases authoring-only generics. */
|
|
33
|
+
export declare function normalizePlugin<Config, Requires extends Requirements, Provides extends Provisions, ConfigInput>(plugin: Plugin<Config, Requires, Provides, ConfigInput>): ErasedPlugin;
|
|
30
34
|
//# sourceMappingURL=plugin.d.ts.map
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readonly-map.d.ts","sourceRoot":"","sources":["../src/readonly-map.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,qBAAa,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAE,YAAW,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC;;gBAGjE,MAAM,
|
|
1
|
+
{"version":3,"file":"readonly-map.d.ts","sourceRoot":"","sources":["../src/readonly-map.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,qBAAa,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAE,YAAW,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC;;gBAGjE,MAAM,GAAE,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAM;IAYlF,IAAI,IAAI,WAEP;IAED,GAAG,CAAC,GAAG,EAAE,GAAG;IAIZ,GAAG,CAAC,GAAG,EAAE,GAAG;IAIZ,OAAO,CACL,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,IAAI,EACxE,OAAO,CAAC,EAAE,OAAO;IAKnB,OAAO;IAIP,IAAI;IAIJ,MAAM;IAIN,CAAC,MAAM,CAAC,QAAQ,CAAC;CAGlB"}
|
package/dist/record.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface PlainRecordOptions {
|
|
2
|
+
readonly fields?: ReadonlySet<string>;
|
|
3
|
+
readonly createError?: (message: string) => Error;
|
|
4
|
+
}
|
|
5
|
+
/** Validates declaration bags without reading through their prototype chain. */
|
|
6
|
+
export declare function assertPlainRecord(value: unknown, label: string, options?: PlainRecordOptions): asserts value is object;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=record.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"AAAA,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC;CACnD;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,KAAK,IAAI,MAAM,CAgBzB"}
|
package/dist/resource.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
export type Awaitable<T> = T | PromiseLike<T>;
|
|
2
2
|
export interface Disposable {
|
|
3
|
-
dispose(): void
|
|
4
|
-
[Symbol.dispose]
|
|
5
|
-
[Symbol.asyncDispose]?(): Promise<void>;
|
|
3
|
+
dispose(): void;
|
|
4
|
+
[Symbol.dispose](): void;
|
|
6
5
|
}
|
|
6
|
+
export interface AsyncDisposable {
|
|
7
|
+
dispose(): Promise<void>;
|
|
8
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
export type Resource = Disposable | AsyncDisposable;
|
|
7
11
|
export interface Publication extends Disposable {
|
|
8
12
|
publish(): void;
|
|
9
13
|
}
|
package/dist/resource.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAE9C,MAAM,WAAW,UAAU;IACzB,OAAO,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAE9C,MAAM,WAAW,UAAU;IACzB,OAAO,IAAI,IAAI,CAAC;IAChB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAED,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,eAAe,CAAC;AAEpD,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,WAAW;IACvE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;CACpB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ContractRegistryDraft } from './contract-registry';
|
|
2
|
+
import { InstallationGraph } from './installation-graph';
|
|
3
|
+
import { InstallationRecord } from './installation';
|
|
4
|
+
import { Logger } from './lifetime';
|
|
5
|
+
interface RuntimeOptions {
|
|
6
|
+
readonly hostName: string;
|
|
7
|
+
readonly logger: Logger;
|
|
8
|
+
readonly isInstalled: (installationId: string) => boolean;
|
|
9
|
+
readonly report: (error: unknown) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare class IncompleteActivationCleanupError extends AggregateError {
|
|
12
|
+
}
|
|
13
|
+
/** Owns live Instances and the capabilities reachable from their Lifetimes. */
|
|
14
|
+
export declare class Runtime {
|
|
15
|
+
#private;
|
|
16
|
+
constructor(options: RuntimeOptions);
|
|
17
|
+
readService(provider: InstallationRecord, serviceId: string): {
|
|
18
|
+
found: true;
|
|
19
|
+
value: unknown;
|
|
20
|
+
} | {
|
|
21
|
+
found: false;
|
|
22
|
+
value?: never;
|
|
23
|
+
};
|
|
24
|
+
captureConfigs(installations: Iterable<InstallationRecord>): Map<InstallationRecord, unknown>;
|
|
25
|
+
resetActivationState(): void;
|
|
26
|
+
commitActivationOrder(order: ReadonlyArray<InstallationRecord>): void;
|
|
27
|
+
deactivateAll(): Promise<unknown[]>;
|
|
28
|
+
activate(plan: InstallationGraph, installations: ReadonlySet<InstallationRecord>, configs: ReadonlyMap<InstallationRecord, unknown>, contracts: ContractRegistryDraft): Promise<void>;
|
|
29
|
+
deactivate(installations: ReadonlySet<InstallationRecord>): Promise<unknown[]>;
|
|
30
|
+
withContributionBatch<T>(operation: () => Promise<T>): Promise<T>;
|
|
31
|
+
}
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAKjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAY,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAkD,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAUzF,UAAU,cAAc;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1D,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC3C;AAED,qBAAa,gCAAiC,SAAQ,cAAc;CAAG;AAEvE,+EAA+E;AAC/E,qBAAa,OAAO;;gBAUN,OAAO,EAAE,cAAc;IAQnC,WAAW,CAAC,QAAQ,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM;;;;;;;IAO3D,cAAc,CAAC,aAAa,EAAE,QAAQ,CAAC,kBAAkB,CAAC;IAS1D,oBAAoB;IAKpB,qBAAqB,CAAC,KAAK,EAAE,aAAa,CAAC,kBAAkB,CAAC;IAI9D,aAAa;IAIP,QAAQ,CACZ,IAAI,EAAE,iBAAiB,EACvB,aAAa,EAAE,WAAW,CAAC,kBAAkB,CAAC,EAC9C,OAAO,EAAE,WAAW,CAAC,kBAAkB,EAAE,OAAO,CAAC,EACjD,SAAS,EAAE,qBAAqB;IA6D5B,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC,kBAAkB,CAAC;IAwBzD,qBAAqB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC;CA+N3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-view.d.ts","sourceRoot":"","sources":["../src/snapshot-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,GAAG,IAAI,CAAC,CAAC;IACT,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,UAAU,CAAC;CAC7C;AAoBD,8DAA8D;AAC9D,qBAAa,iBAAiB,CAAC,CAAC,CAAE,YAAW,UAAU;;gBAMzC,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IAU3D,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAG3B;IAEH,UAAU;
|
|
1
|
+
{"version":3,"file":"snapshot-view.d.ts","sourceRoot":"","sources":["../src/snapshot-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,GAAG,IAAI,CAAC,CAAC;IACT,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,UAAU,CAAC;CAC7C;AAoBD,8DAA8D;AAC9D,qBAAa,iBAAiB,CAAC,CAAC,CAAE,YAAW,UAAU;;gBAMzC,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IAU3D,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAG3B;IAEH,UAAU;IAoBV,OAAO;IAcP,CAAC,MAAM,CAAC,OAAO,CAAC;CAgCjB"}
|
package/package.json
CHANGED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { ApplicationSnapshot, ApplicationStatus } from './diagnostics';
|
|
2
|
-
import { Logger } from './lifetime';
|
|
3
|
-
import { InstallationStatus } from './plugin-installation';
|
|
4
|
-
import { PluginDefinition, Provisions, Requirements } from './plugin';
|
|
5
|
-
import { Service } from './contracts';
|
|
6
|
-
import { SnapshotView } from './snapshot-view';
|
|
7
|
-
export type PluginUpdate<Config, Requires extends Requirements = Requirements, Provides extends Provisions = Provisions, ConfigInput = Config> = {
|
|
8
|
-
readonly plugin: PluginDefinition<Config, Requires, Provides, ConfigInput>;
|
|
9
|
-
readonly config?: ConfigInput;
|
|
10
|
-
} | {
|
|
11
|
-
readonly plugin?: never;
|
|
12
|
-
readonly config: ConfigInput;
|
|
13
|
-
};
|
|
14
|
-
export interface InstallationHandle {
|
|
15
|
-
readonly id: string;
|
|
16
|
-
readonly status: InstallationStatus;
|
|
17
|
-
ready(): Promise<void>;
|
|
18
|
-
remove(): Promise<void>;
|
|
19
|
-
}
|
|
20
|
-
export interface PluginHandle<Config = unknown, Requires extends Requirements = Requirements, Provides extends Provisions = Provisions, ConfigInput = Config> extends InstallationHandle {
|
|
21
|
-
readonly groupId: string;
|
|
22
|
-
update(update: PluginUpdate<Config, Requires, Provides, ConfigInput>): Promise<void>;
|
|
23
|
-
}
|
|
24
|
-
export interface PluginChangeSet {
|
|
25
|
-
install<Config, Requires extends Requirements, Provides extends Provisions, ConfigInput>(plugin: PluginDefinition<Config, Requires, Provides, ConfigInput>, ...config: [ConfigInput] extends [void] ? [config?: ConfigInput] : [config: ConfigInput]): PluginHandle<Config, Requires, Provides, ConfigInput>;
|
|
26
|
-
update<Config, Requires extends Requirements, Provides extends Provisions, ConfigInput>(handle: PluginHandle<Config, Requires, Provides, ConfigInput>, update: PluginUpdate<Config, Requires, Provides, ConfigInput>): this;
|
|
27
|
-
remove<Config, Requires extends Requirements, Provides extends Provisions, ConfigInput>(handle: PluginHandle<Config, Requires, Provides, ConfigInput>): this;
|
|
28
|
-
commit(): Promise<void>;
|
|
29
|
-
}
|
|
30
|
-
export interface CreateAppOptions {
|
|
31
|
-
readonly name?: string;
|
|
32
|
-
readonly logger?: Logger;
|
|
33
|
-
readonly onError?: (error: unknown) => void;
|
|
34
|
-
}
|
|
35
|
-
export interface PluginContainer {
|
|
36
|
-
install<Config, Requires extends Requirements, Provides extends Provisions, ConfigInput>(plugin: PluginDefinition<Config, Requires, Provides, ConfigInput>, ...config: [ConfigInput] extends [void] ? [config?: ConfigInput] : [config: ConfigInput]): PluginHandle<Config, Requires, Provides, ConfigInput>;
|
|
37
|
-
change(): PluginChangeSet;
|
|
38
|
-
group(name: string, configure: (group: PluginGroup) => void): PluginGroup;
|
|
39
|
-
}
|
|
40
|
-
export interface PluginGroup extends PluginContainer, InstallationHandle {
|
|
41
|
-
readonly name: string;
|
|
42
|
-
}
|
|
43
|
-
export interface Application extends PluginContainer {
|
|
44
|
-
readonly name: string;
|
|
45
|
-
readonly status: ApplicationStatus;
|
|
46
|
-
readonly diagnostics: SnapshotView<ApplicationSnapshot>;
|
|
47
|
-
get<T>(token: Service<T>): T;
|
|
48
|
-
start(): Promise<void>;
|
|
49
|
-
stop(): Promise<void>;
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=application-api.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"application-api.d.ts","sourceRoot":"","sources":["../src/application-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Service } from './contracts';
|
|
2
|
-
import { Logger } from './lifetime';
|
|
3
|
-
import { PluginGraph } from './plugin-graph';
|
|
4
|
-
import { PluginInstallation } from './plugin-installation';
|
|
5
|
-
export type RuntimeChangeOutcome = {
|
|
6
|
-
readonly kind: "committed";
|
|
7
|
-
readonly affected: ReadonlySet<PluginInstallation>;
|
|
8
|
-
} | {
|
|
9
|
-
readonly kind: "rolled-back";
|
|
10
|
-
readonly affected: ReadonlySet<PluginInstallation>;
|
|
11
|
-
readonly error: unknown;
|
|
12
|
-
};
|
|
13
|
-
interface ApplicationRuntimeOptions {
|
|
14
|
-
readonly applicationName: string;
|
|
15
|
-
readonly logger: Logger;
|
|
16
|
-
readonly isInstalled: (installationId: string) => boolean;
|
|
17
|
-
readonly report: (error: unknown) => void;
|
|
18
|
-
}
|
|
19
|
-
type ServiceAvailability = "available" | "unavailable";
|
|
20
|
-
/**
|
|
21
|
-
* Owns the committed plugin runtime: contracts, services, events, extensions,
|
|
22
|
-
* Lifetimes and graph transitions. The Application owns declarations and
|
|
23
|
-
* command serialization; neither side duplicates the other's state.
|
|
24
|
-
*/
|
|
25
|
-
export declare class ApplicationRuntime {
|
|
26
|
-
#private;
|
|
27
|
-
constructor(options: ApplicationRuntimeOptions);
|
|
28
|
-
get hasCommittedPlan(): boolean;
|
|
29
|
-
get<T>(token: Service<T>, availability: ServiceAvailability): T;
|
|
30
|
-
buildPlan(installations: Iterable<PluginInstallation>): PluginGraph;
|
|
31
|
-
start(plan: PluginGraph): Promise<void>;
|
|
32
|
-
stop(): Promise<unknown[]>;
|
|
33
|
-
transition(nextPlan: PluginGraph, changed: ReadonlySet<PluginInstallation>, restoreDeclarations: () => void): Promise<RuntimeChangeOutcome>;
|
|
34
|
-
}
|
|
35
|
-
export {};
|
|
36
|
-
//# sourceMappingURL=application-runtime.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"application-runtime.d.ts","sourceRoot":"","sources":["../src/application-runtime.ts"],"names":[],"mappings":"AAEA,OAAO,EAA8C,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAIvF,OAAO,EAA+B,KAAK,MAAM,EAAmB,MAAM,YAAY,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAkB,KAAK,kBAAkB,EAAsB,MAAM,uBAAuB,CAAC;AAIpG,MAAM,MAAM,oBAAoB,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAA;CAAE,GAClF;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;AAQN,UAAU,yBAAyB;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1D,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC3C;AAED,KAAK,mBAAmB,GAAG,WAAW,GAAG,aAAa,CAAC;AAIvD;;;;GAIG;AACH,qBAAa,kBAAkB;;gBAajB,OAAO,EAAE,yBAAyB;IAQ9C,IAAI,gBAAgB,YAEnB;IAED,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,mBAAmB,GAAG,CAAC;IAc/D,SAAS,CAAC,aAAa,EAAE,QAAQ,CAAC,kBAAkB,CAAC;IAI/C,KAAK,CAAC,IAAI,EAAE,WAAW;IAYvB,IAAI;IAQJ,UAAU,CACd,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,WAAW,CAAC,kBAAkB,CAAC,EACxC,mBAAmB,EAAE,MAAM,IAAI,GAC9B,OAAO,CAAC,oBAAoB,CAAC;CA8ajC"}
|
package/dist/application.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { Application, CreateAppOptions } from './application-api';
|
|
2
|
-
export type { InstallationStatus } from './plugin-installation';
|
|
3
|
-
export type { ApplicationSnapshot, ApplicationStatus, GroupSnapshot, PluginSnapshot, } from './diagnostics';
|
|
4
|
-
export type { Application, CreateAppOptions, InstallationHandle, PluginChangeSet, PluginContainer, PluginGroup, PluginHandle, PluginUpdate, } from './application-api';
|
|
5
|
-
export declare function createApp(options?: CreateAppOptions): Application;
|
|
6
|
-
//# sourceMappingURL=application.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAKjB,MAAM,mBAAmB,CAAC;AAuB3B,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,WAAW,EACX,YAAY,EACZ,YAAY,GACb,MAAM,mBAAmB,CAAC;AAid3B,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,WAAW,CAEjE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extension-store.d.ts","sourceRoot":"","sources":["../src/extension-store.ts"],"names":[],"mappings":"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"}
|
package/dist/plugin-graph.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { ContractKind } from './contracts';
|
|
2
|
-
import { PluginInstallation } from './plugin-installation';
|
|
3
|
-
/** Immutable validated dependency plan over one application-wide capability graph. */
|
|
4
|
-
export declare class PluginGraph {
|
|
5
|
-
#private;
|
|
6
|
-
readonly order: ReadonlyArray<PluginInstallation>;
|
|
7
|
-
readonly layers: ReadonlyArray<ReadonlyArray<PluginInstallation>>;
|
|
8
|
-
readonly providers: ReadonlyMap<string, PluginInstallation>;
|
|
9
|
-
readonly dependents: ReadonlyMap<PluginInstallation, ReadonlySet<PluginInstallation>>;
|
|
10
|
-
readonly contractKinds: ReadonlyMap<string, ContractKind>;
|
|
11
|
-
private constructor();
|
|
12
|
-
static build(source: Iterable<PluginInstallation>, committedKinds: ReadonlyMap<string, ContractKind>): PluginGraph;
|
|
13
|
-
providerFor(installation: PluginInstallation, serviceId: string): PluginInstallation | undefined;
|
|
14
|
-
provider(serviceId: string): PluginInstallation | undefined;
|
|
15
|
-
affectedByTransitionTo(other: PluginGraph, changed: ReadonlySet<PluginInstallation>): Set<PluginInstallation>;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=plugin-graph.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-graph.d.ts","sourceRoot":"","sources":["../src/plugin-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,sFAAsF;AACtF,qBAAa,WAAW;;IAOpB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,kBAAkB,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACjE,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAC3D,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,kBAAkB,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACrF,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC;IAL3D,OAAO;IAWP,MAAM,CAAC,KAAK,CACV,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACpC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC;IAsBnD,WAAW,CAAC,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM;IAI/D,QAAQ,CAAC,SAAS,EAAE,MAAM;IAI1B,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,kBAAkB,CAAC;CAmBpF"}
|