@dougongjs/core 0.2.0 → 0.3.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.
@@ -1,15 +1,15 @@
1
- import { ChangeSet, Installation, InstallationUpdate } from './host-api';
1
+ import { ChangeSet, Installation, InstallationUpdate, PluginConfigArguments } from './host-api';
2
2
  import { InstallationRecord } from './installation';
3
- import { ErasedPlugin, Plugin, Provisions, Requirements } from './plugin';
3
+ import { AnyPlugin, NormalizedPlugin } from './plugin';
4
4
  type DeclarationUpdate = {
5
5
  readonly kind: "plugin";
6
- readonly plugin: ErasedPlugin;
6
+ readonly plugin: NormalizedPlugin;
7
7
  } | {
8
8
  readonly kind: "config";
9
9
  readonly config: unknown;
10
10
  } | {
11
11
  readonly kind: "plugin-and-config";
12
- readonly plugin: ErasedPlugin;
12
+ readonly plugin: NormalizedPlugin;
13
13
  readonly config: unknown;
14
14
  };
15
15
  export type ChangeOperation = {
@@ -24,7 +24,7 @@ export type ChangeOperation = {
24
24
  readonly installation: InstallationRecord;
25
25
  };
26
26
  interface ChangePort {
27
- create(plugin: ErasedPlugin, config: unknown): {
27
+ create(plugin: NormalizedPlugin, config: unknown): {
28
28
  readonly record: InstallationRecord;
29
29
  readonly publicInstallation: object;
30
30
  };
@@ -42,9 +42,9 @@ export declare function discardChangeSetDraft(draft: ChangeSetDraft, error: unkn
42
42
  export declare class ChangeSetDraft implements ChangeSet {
43
43
  #private;
44
44
  constructor(port: ChangePort);
45
- install<Config, Requires extends Requirements, Provides extends Provisions, ConfigInput>(plugin: Plugin<Config, Requires, Provides, ConfigInput>, ...config: [ConfigInput] extends [void] ? [config?: ConfigInput] : [config: ConfigInput]): Installation<Config, Requires, Provides, ConfigInput>;
46
- update<Config, Requires extends Requirements, Provides extends Provisions, ConfigInput>(installation: Installation<Config, Requires, Provides, ConfigInput>, update: InstallationUpdate<Config, Requires, Provides, ConfigInput>): void;
47
- remove<Config, Requires extends Requirements, Provides extends Provisions, ConfigInput>(installation: Installation<Config, Requires, Provides, ConfigInput>): void;
45
+ install<Declaration extends AnyPlugin>(plugin: Declaration, ...config: PluginConfigArguments<Declaration>): Installation<Declaration>;
46
+ update<Declaration extends AnyPlugin>(installation: Installation<Declaration>, update: InstallationUpdate<Declaration>): void;
47
+ remove<Declaration extends AnyPlugin>(installation: Installation<Declaration>): void;
48
48
  commit(): Promise<void>;
49
49
  }
50
50
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"change-set.d.ts","sourceRoot":"","sources":["../src/change-set.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"change-set.d.ts","sourceRoot":"","sources":["../src/change-set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAElF,KAAK,iBAAiB,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,GAC9D;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACrD;IACE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B,CAAC;AAIN,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAA;CAAE,GACvE;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;CACzC,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAE3E,UAAU,UAAU;IAClB,MAAM,CACJ,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,OAAO,GACd;QACD,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;QACpC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;KACrC,CAAC;IACF,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,kBAAkB,CAAC;IAClD,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,MAAM,CAAC,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC/C,OAAO,CAAC,YAAY,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CACjE;AAUD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,QAE1E;AAED;;;;GAIG;AACH,qBAAa,cAAe,YAAW,SAAS;;gBAIlC,IAAI,EAAE,UAAU;IAM5B,OAAO,CAAC,WAAW,SAAS,SAAS,EACnC,MAAM,EAAE,WAAW,EACnB,GAAG,MAAM,EAAE,qBAAqB,CAAC,WAAW,CAAC,GAC5C,YAAY,CAAC,WAAW,CAAC;IAQ5B,MAAM,CAAC,WAAW,SAAS,SAAS,EAClC,YAAY,EAAE,YAAY,CAAC,WAAW,CAAC,EACvC,MAAM,EAAE,kBAAkB,CAAC,WAAW,CAAC;IA6BzC,MAAM,CAAC,WAAW,SAAS,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC,WAAW,CAAC;IAK7E,MAAM;CAqEP"}
@@ -1,12 +1,27 @@
1
- declare const contractType: unique symbol;
1
+ declare const contractBrand: unique symbol;
2
+ declare const contractValueSlot: unique symbol;
3
+ declare const optionalBrand: unique symbol;
4
+ interface ContractValueSlot<T> {
5
+ readonly value: T;
6
+ readonly accept: (value: T) => void;
7
+ }
2
8
  export type ContractKind = "service" | "extensionPoint" | "event";
3
9
  export interface ContractIdentity {
4
10
  readonly id: string;
5
11
  readonly kind: ContractKind;
6
12
  }
7
- interface Contract<T, K extends ContractKind> extends ContractIdentity {
13
+ interface ContractBrand {
14
+ readonly [contractBrand]: true;
15
+ }
16
+ interface Contract<T, K extends ContractKind> extends ContractIdentity, ContractBrand {
8
17
  readonly kind: K;
9
- readonly [contractType]: T;
18
+ readonly [contractValueSlot]: ContractValueSlot<T>;
19
+ }
20
+ interface ServiceIdentity extends ContractIdentity, ContractBrand {
21
+ readonly kind: "service";
22
+ }
23
+ interface ExtensionPointIdentity extends ContractIdentity, ContractBrand {
24
+ readonly kind: "extensionPoint";
10
25
  }
11
26
  export interface Service<T> extends Contract<T, "service"> {
12
27
  }
@@ -14,12 +29,16 @@ export interface ExtensionPoint<T> extends Contract<T, "extensionPoint"> {
14
29
  }
15
30
  export interface Event<T> extends Contract<T, "event"> {
16
31
  }
17
- export interface OptionalService<T> {
32
+ interface OptionalServiceIdentity {
33
+ readonly [optionalBrand]: true;
18
34
  readonly kind: "optional";
35
+ readonly service: ServiceIdentity;
36
+ }
37
+ export interface OptionalService<T> extends OptionalServiceIdentity {
19
38
  readonly service: Service<T>;
20
- readonly [contractType]: T;
39
+ readonly [contractValueSlot]: ContractValueSlot<T>;
21
40
  }
22
- export type Requirement<T = unknown> = Service<T> | ExtensionPoint<T> | OptionalService<T>;
41
+ export type Requirement = ServiceIdentity | ExtensionPointIdentity | OptionalServiceIdentity;
23
42
  export type ContractValue<T> = T extends Contract<infer Value, ContractKind> ? Value : never;
24
43
  export declare function isContract(value: unknown, expected?: ContractKind): value is ContractIdentity;
25
44
  export declare function assertContract(value: unknown, expected?: ContractKind): asserts value is ContractIdentity;
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,YAAY,EAAE,OAAO,MAAwC,CAAC;AAEpE,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,gBAAgB,GAAG,OAAO,CAAC;AAElE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC7B;AAED,UAAU,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,YAAY,CAAE,SAAQ,gBAAgB;IACpE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,OAAO,CAAC,CAAC,CAAE,SAAQ,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC;CAAG;AAC7D,MAAM,WAAW,cAAc,CAAC,CAAC,CAAE,SAAQ,QAAQ,CAAC,CAAC,EAAE,gBAAgB,CAAC;CAAG;AAC3E,MAAM,WAAW,KAAK,CAAC,CAAC,CAAE,SAAQ,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;CAAG;AAEzD,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7B,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;CAC5B;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;AAE3F,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,KAAK,EAAE,YAAY,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;AAgB7F,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,YAAY,GAAG,KAAK,IAAI,gBAAgB,CAY7F;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,KAAK,IAAI,gBAAgB,CAGnC;AAQD,wBAAgB,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAEjD;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAE7C;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAE/D;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAKjE;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GACrC,KAAK,IAAI,eAAe,CAAC,CAAC,CAAC,CAI7B"}
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,14 @@
1
- import { ExtensionPoint } from './contracts';
1
+ import { Requirement } from './contracts';
2
2
  import { disposeSymbol, Disposable, Publication, StagedResource } from './resource';
3
3
  import { SnapshotView } from './snapshot-view';
4
4
  export interface Contribution<T> extends Disposable {
5
- update(value: T): void;
5
+ readonly update: (value: T) => void;
6
6
  }
7
7
  export type ContributionView<T> = SnapshotView<ReadonlyMap<string, T>>;
8
8
  export type ContributionLeaseKind = "view" | "subscription";
9
+ type ExtensionPointIdentity = Extract<Requirement, {
10
+ readonly kind: "extensionPoint";
11
+ }>;
9
12
  declare class ContributionRecord<T> implements StagedResource<Contribution<T>> {
10
13
  #private;
11
14
  readonly handle: Contribution<T>;
@@ -39,8 +42,8 @@ declare class ContributionSubscription implements Disposable {
39
42
  export declare class ContributionRegistry {
40
43
  #private;
41
44
  constructor(report: (error: unknown) => void);
42
- get<T>(token: ExtensionPoint<T>): ContributionStore<T>;
43
- view<T>(token: ExtensionPoint<T>): ContributionView<T>;
45
+ get<T = unknown>(token: ExtensionPointIdentity): ContributionStore<T>;
46
+ view<T = unknown>(token: ExtensionPointIdentity): ContributionView<T>;
44
47
  beginBatch(): void;
45
48
  endBatch(): void;
46
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"contribution-store.d.ts","sourceRoot":"","sources":["../src/contribution-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contribution-store.d.ts","sourceRoot":"","sources":["../src/contribution-store.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- import { Group, Installation } from './host-api';
1
+ import { Group, Installation, PluginConfigArguments } from './host-api';
2
2
  import { ChangeSetDraft, ChangeOperation } from './change-set';
3
3
  import { GroupConfigurationSession, GroupNode } from './group';
4
4
  import { InstallationRecord } from './installation';
5
5
  import { LifecycleStatus } from './lifecycle-status';
6
- import { ErasedPlugin, Plugin, Provisions, Requirements } from './plugin';
6
+ import { AnyPlugin, NormalizedPlugin } from './plugin';
7
7
  export interface GroupCoordinatorPort {
8
8
  installations(): Iterable<InstallationRecord>;
9
- createDraft(group: GroupNode, plugin: ErasedPlugin, config: unknown): {
9
+ createDraft(group: GroupNode, plugin: NormalizedPlugin, config: unknown): {
10
10
  readonly record: InstallationRecord;
11
11
  readonly publicInstallation: object;
12
12
  };
@@ -25,7 +25,7 @@ declare class GroupImpl implements Group {
25
25
  get name(): string;
26
26
  get status(): LifecycleStatus;
27
27
  ready(): Promise<void>;
28
- install<Config, Requires extends Requirements, Provides extends Provisions, ConfigInput>(plugin: Plugin<Config, Requires, Provides, ConfigInput>, ...config: [ConfigInput] extends [void] ? [config?: ConfigInput] : [config: ConfigInput]): Installation<Config, Requires, Provides, ConfigInput>;
28
+ install<Declaration extends AnyPlugin>(plugin: Declaration, ...config: PluginConfigArguments<Declaration>): Installation<Declaration>;
29
29
  change(): ChangeSetDraft;
30
30
  group(name: string, configure: (group: Group) => void): GroupImpl;
31
31
  remove(): Promise<void>;
@@ -36,7 +36,7 @@ export declare class GroupCoordinator {
36
36
  readonly root: GroupNode;
37
37
  constructor(rootName: string, port: GroupCoordinatorPort);
38
38
  nodes(): GroupNode[];
39
- install<Config, Requires extends Requirements, Provides extends Provisions, ConfigInput>(group: GroupNode, plugin: Plugin<Config, Requires, Provides, ConfigInput>, ...config: [ConfigInput] extends [void] ? [config?: ConfigInput] : [config: ConfigInput]): Installation<Config, Requires, Provides, ConfigInput>;
39
+ install<Declaration extends AnyPlugin>(group: GroupNode, plugin: Declaration, ...config: PluginConfigArguments<Declaration>): Installation<Declaration>;
40
40
  change(group: GroupNode, tracking?: "immediate" | "deferred"): ChangeSetDraft;
41
41
  create(parent: GroupNode, name: string, configure: (group: Group) => void, inherited?: GroupConfigurationSession<ChangeSetDraft>): GroupImpl;
42
42
  ready(group: GroupNode): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"group-coordinator.d.ts","sourceRoot":"","sources":["../src/group-coordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"group-coordinator.d.ts","sourceRoot":"","sources":["../src/group-coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAyB,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAE3F,OAAO,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC,aAAa,IAAI,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC9C,WAAW,CACT,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,OAAO,GACd;QAAE,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;QAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,CAAC;IAChF,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,kBAAkB,CAAC;IAC9D,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5F,kBAAkB,CAAC,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC3D,mBAAmB,CAAC,YAAY,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5E,YAAY,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,mBAAmB,CAAC,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,aAAa,IAAI,IAAI,CAAC;CACvB;AAkBD,cAAM,SAAU,YAAW,KAAK;;gBAK5B,WAAW,EAAE,gBAAgB,EAC7B,IAAI,EAAE,SAAS,EACf,aAAa,CAAC,EAAE,yBAAyB,CAAC,cAAc,CAAC;IAoB3D,IAAI,EAAE,WAEL;IAED,IAAI,IAAI,WAEP;IAED,IAAI,MAAM,oBAGT;IAED,KAAK;IAOL,OAAO,CAAC,WAAW,SAAS,SAAS,EACnC,MAAM,EAAE,WAAW,EACnB,GAAG,MAAM,EAAE,qBAAqB,CAAC,WAAW,CAAC;IAS/C,MAAM;IAON,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;IAWrD,MAAM;CAaP;AAED,wFAAwF;AACxF,qBAAa,gBAAgB;;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;gBAKb,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB;IASxD,KAAK;IAIL,OAAO,CAAC,WAAW,SAAS,SAAS,EACnC,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,WAAW,EACnB,GAAG,MAAM,EAAE,qBAAqB,CAAC,WAAW,CAAC,GAC5C,YAAY,CAAC,WAAW,CAAC;IAO5B,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,GAAE,WAAW,GAAG,UAAwB;IA+BzE,MAAM,CACJ,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EACjC,SAAS,CAAC,EAAE,yBAAyB,CAAC,cAAc,CAAC;IAgDjD,KAAK,CAAC,KAAK,EAAE,SAAS;IAM5B,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,eAAe;IAKzC,MAAM,CAAC,KAAK,EAAE,SAAS;CAkExB"}
@@ -5,13 +5,23 @@ import { AnyPlugin, Plugin, Provisions, Requirements } from './plugin';
5
5
  import { ExtensionPoint, OptionalService, Service } from './contracts';
6
6
  import { ContributionView } from './contribution-store';
7
7
  import { SnapshotView } from './snapshot-view';
8
- export type InstallationUpdate<Config, Requires extends Requirements = Requirements, Provides extends Provisions = Provisions, ConfigInput = Config> = {
8
+ declare const installationBrand: unique symbol;
9
+ type DeclaredInstallationUpdate<Config, Requires extends Requirements, Provides extends Provisions, ConfigInput> = {
9
10
  readonly plugin: Plugin<Config, Requires, Provides, ConfigInput>;
10
11
  readonly config?: ConfigInput;
11
12
  } | {
12
13
  readonly plugin?: never;
13
14
  readonly config: ConfigInput;
14
15
  };
16
+ type AnyPluginInstallationUpdate = {
17
+ readonly plugin: AnyPlugin;
18
+ readonly config?: unknown;
19
+ } | {
20
+ readonly plugin?: never;
21
+ readonly config: unknown;
22
+ };
23
+ export type InstallationUpdate<Declaration extends AnyPlugin = AnyPlugin> = Declaration extends Plugin<infer Config, infer Requires, infer Provides, infer ConfigInput> ? DeclaredInstallationUpdate<Config, Requires, Provides, ConfigInput> : AnyPluginInstallationUpdate;
24
+ export type PluginConfigArguments<Declaration extends AnyPlugin> = Declaration extends Plugin<infer _Config, infer _Requires, infer _Provides, infer ConfigInput> ? [ConfigInput] extends [void] ? [config?: ConfigInput] : [config: ConfigInput] : [config?: unknown];
15
25
  /**
16
26
  * One installed Plugin, as a stable identity. The declaration behind it may be
17
27
  * replaced; this identity and its position in the ownership tree may not.
@@ -27,19 +37,18 @@ export type InstallationUpdate<Config, Requires extends Requirements = Requireme
27
37
  * }
28
38
  * ```
29
39
  */
30
- export interface Installation<Config = unknown, Requires extends Requirements = Requirements, Provides extends Provisions = Provisions, ConfigInput = Config> {
40
+ export interface Installation<Declaration extends AnyPlugin = AnyPlugin> {
41
+ readonly [installationBrand]: (declaration: Declaration) => Declaration;
31
42
  readonly id: string;
32
43
  readonly groupId: string;
33
44
  readonly status: LifecycleStatus;
34
45
  ready(): Promise<void>;
35
- update(update: InstallationUpdate<Config, Requires, Provides, ConfigInput>): Promise<void>;
46
+ readonly update: (update: InstallationUpdate<Declaration>) => Promise<void>;
36
47
  remove(): Promise<void>;
37
48
  }
38
- export interface ChangeSet {
39
- install<Config, Requires extends Requirements, Provides extends Provisions, ConfigInput>(plugin: Plugin<Config, Requires, Provides, ConfigInput>, ...config: [ConfigInput] extends [void] ? [config?: ConfigInput] : [config: ConfigInput]): Installation<Config, Requires, Provides, ConfigInput>;
40
- install(plugin: AnyPlugin, config?: unknown): Installation;
41
- update<Config, Requires extends Requirements, Provides extends Provisions, ConfigInput>(installation: Installation<Config, Requires, Provides, ConfigInput>, update: InstallationUpdate<Config, Requires, Provides, ConfigInput>): void;
42
- remove<Config, Requires extends Requirements, Provides extends Provisions, ConfigInput>(installation: Installation<Config, Requires, Provides, ConfigInput>): void;
49
+ export interface ChangeSet extends Pick<Installer, "install"> {
50
+ update<Declaration extends AnyPlugin>(installation: Installation<Declaration>, update: InstallationUpdate<Declaration>): void;
51
+ remove<Declaration extends AnyPlugin>(installation: Installation<Declaration>): void;
43
52
  commit(): Promise<void>;
44
53
  }
45
54
  export interface HostOptions {
@@ -49,8 +58,7 @@ export interface HostOptions {
49
58
  }
50
59
  /** Capability to install into an ownership position without controlling Host execution. */
51
60
  export interface Installer {
52
- install<Config, Requires extends Requirements, Provides extends Provisions, ConfigInput>(plugin: Plugin<Config, Requires, Provides, ConfigInput>, ...config: [ConfigInput] extends [void] ? [config?: ConfigInput] : [config: ConfigInput]): Installation<Config, Requires, Provides, ConfigInput>;
53
- install(plugin: AnyPlugin, config?: unknown): Installation;
61
+ install<Declaration extends AnyPlugin>(plugin: Declaration, ...config: PluginConfigArguments<Declaration>): Installation<Declaration>;
54
62
  group(name: string, configure: (group: Group) => void): Group;
55
63
  change(): ChangeSet;
56
64
  }
@@ -72,4 +80,5 @@ export interface Host extends Installer {
72
80
  start(): Promise<void>;
73
81
  stop(): Promise<void>;
74
82
  }
83
+ export {};
75
84
  //# sourceMappingURL=host-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"host-api.d.ts","sourceRoot":"","sources":["../src/host-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host-api.d.ts","sourceRoot":"","sources":["../src/host-api.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAoB,MAAM,YAAY,CAAC;AAetE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACnG,YAAY,EACV,IAAI,EACJ,WAAW,EACX,SAAS,EACT,SAAS,EACT,KAAK,EACL,YAAY,EACZ,kBAAkB,GACnB,MAAM,YAAY,CAAC;AA4OpB,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAEtD"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAA2C,MAAM,YAAY,CAAC;AAe7F,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACnG,YAAY,EACV,IAAI,EACJ,WAAW,EACX,SAAS,EACT,SAAS,EACT,KAAK,EACL,YAAY,EACZ,kBAAkB,GACnB,MAAM,YAAY,CAAC;AA4OpB,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAEtD"}
@@ -2,29 +2,19 @@ import { ChangeOperation } from './change-set';
2
2
  import { GroupNode } from './group';
3
3
  import { Installation, InstallationUpdate } from './host-api';
4
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>;
5
+ import { AnyPlugin, NormalizedPlugin } from './plugin';
6
+ type AnyInstallation = Installation<AnyPlugin>;
7
+ type AnyInstallationUpdate = InstallationUpdate<AnyPlugin>;
8
8
  interface InstallationRegistryPort {
9
9
  readonly notifyChanged: () => void;
10
- readonly update: (installation: InstallationRecord, facade: ErasedInstallation, update: ErasedUpdate) => Promise<void>;
11
- readonly remove: (installation: InstallationRecord, facade: ErasedInstallation) => Promise<void>;
10
+ readonly update: (installation: InstallationRecord, facade: AnyInstallation, update: AnyInstallationUpdate) => Promise<void>;
11
+ readonly remove: (installation: InstallationRecord, facade: AnyInstallation) => Promise<void>;
12
12
  }
13
13
  interface InstallationCapture {
14
14
  readonly id: string;
15
15
  readonly installation: InstallationRecord;
16
16
  readonly declaration: InstallationDeclaration;
17
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
18
  /** Owns Installation declarations, public facade authority and stable lookup. */
29
19
  export declare class InstallationRegistry {
30
20
  #private;
@@ -32,9 +22,9 @@ export declare class InstallationRegistry {
32
22
  values(): MapIterator<InstallationRecord>;
33
23
  has(id: string): boolean;
34
24
  contains(installation: InstallationRecord): boolean;
35
- create(group: GroupNode, plugin: ErasedPlugin, config: unknown): {
25
+ create(group: GroupNode, plugin: NormalizedPlugin, config: unknown): {
36
26
  record: InstallationRecord;
37
- publicInstallation: InstallationFacade<unknown, Readonly<Record<string, import('./contracts').Requirement>>, Readonly<Record<string, import('./contracts').Service<unknown>>>, unknown>;
27
+ publicInstallation: AnyInstallation;
38
28
  };
39
29
  resolve(value: object): InstallationRecord;
40
30
  attach(installation: InstallationRecord): void;
@@ -1 +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"}
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,SAAS,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5D,KAAK,eAAe,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;AAC/C,KAAK,qBAAqB,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAE3D,UAAU,wBAAwB;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,CACf,YAAY,EAAE,kBAAkB,EAChC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,qBAAqB,KAC1B,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/F;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;AAkFD,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,gBAAgB,EAAE,MAAM,EAAE,OAAO;;;;IAiBlE,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"}
@@ -1,17 +1,17 @@
1
1
  import { Lifetime } from './lifetime';
2
2
  import { LifecycleStatus } from './lifecycle-status';
3
- import { ErasedPlugin } from './plugin';
3
+ import { NormalizedPlugin } from './plugin';
4
4
  import { GroupNode } from './group';
5
5
  export interface InstallationDeclaration {
6
- readonly plugin: ErasedPlugin;
6
+ readonly plugin: NormalizedPlugin;
7
7
  readonly config: unknown;
8
8
  }
9
9
  export interface Instance {
10
- readonly plugin: ErasedPlugin;
10
+ readonly plugin: NormalizedPlugin;
11
11
  readonly config: unknown;
12
12
  readonly lifetime: Lifetime;
13
13
  }
14
- export declare function createInstallationDeclaration(plugin: ErasedPlugin, config: unknown): InstallationDeclaration;
14
+ export declare function createInstallationDeclaration(plugin: NormalizedPlugin, config: unknown): InstallationDeclaration;
15
15
  /**
16
16
  * An installation is a stable identity whose declaration and active Instance
17
17
  * may change. State transitions and ready waiters live here so orchestration
@@ -1 +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"}
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,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,gBAAgB,EACxB,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"}
@@ -25,12 +25,12 @@ export type BackgroundTask<T> = (signal: AbortSignal) => T | PromiseLike<T>;
25
25
  type EventArguments<T> = [T] extends [void] ? [payload?: T] : [payload: T];
26
26
  export interface LifetimeOperations {
27
27
  readonly signal: AbortSignal;
28
- cleanup(dispose: Cleanup): AsyncDisposable;
29
- lifetime(label: string): LifetimeContext;
30
- spawn<T>(task: BackgroundTask<T>): Task<T>;
31
- on<T>(token: Event<T>, listener: EventListener<T>): Disposable;
32
- emit<T>(token: Event<T>, ...payload: EventArguments<T>): Promise<void>;
33
- contribute<T>(token: ExtensionPoint<T>, key: string, value: T): Contribution<T>;
28
+ readonly cleanup: (dispose: Cleanup) => AsyncDisposable;
29
+ readonly lifetime: (label: string) => LifetimeContext;
30
+ readonly spawn: <T>(task: BackgroundTask<T>) => Task<T>;
31
+ readonly on: <T>(token: Event<T>, listener: EventListener<T>) => Disposable;
32
+ readonly emit: <T>(token: Event<T>, ...payload: EventArguments<T>) => Promise<void>;
33
+ readonly contribute: <T>(token: ExtensionPoint<T>, key: string, value: T) => Contribution<T>;
34
34
  }
35
35
  export interface LifetimeContext extends LifetimeOperations, AsyncDisposable {
36
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lifetime.d.ts","sourceRoot":"","sources":["../src/lifetime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifetime.d.ts","sourceRoot":"","sources":["../src/lifetime.ts"],"names":[],"mappings":"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"}
package/dist/plugin.d.ts CHANGED
@@ -5,7 +5,9 @@ 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
- export type Provisions = Readonly<Record<string, Service<unknown>>>;
8
+ export type Provisions = Readonly<Record<string, Extract<Requirement, {
9
+ readonly kind: "service";
10
+ }>>>;
9
11
  type ServiceValue<T> = T extends Service<infer Value> ? Value : never;
10
12
  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
13
  export type ResolvedRequirements<T extends Requirements> = {
@@ -27,9 +29,9 @@ export interface Plugin<Config = void, Requires extends Requirements = {}, Provi
27
29
  readonly setup: (context: PluginContext<Requires>, config: Config) => Awaitable<SetupOutput<NoInfer<Provides>>>;
28
30
  }
29
31
  /**
30
- * A heterogeneous Plugin value returned by definePlugin after authoring-specific generic
31
- * information is irrelevant. Its uncallable setup signature preserves strict variance without
32
- * introducing `any`.
32
+ * A heterogeneous view of a Plugin after its authoring-specific generic information is
33
+ * irrelevant. Its uncallable setup signature preserves strict variance without introducing
34
+ * `any`.
33
35
  */
34
36
  export interface AnyPlugin {
35
37
  readonly name: string;
@@ -38,9 +40,20 @@ export interface AnyPlugin {
38
40
  readonly provides?: Provisions;
39
41
  readonly setup: (context: never, config: never) => unknown;
40
42
  }
41
- /** Internal execution representation after public generic information has been checked. */
42
- export type ErasedPlugin = Plugin<unknown, Requirements, Provisions, unknown>;
43
+ /** Internal Instance context after authoring aliases cross the normalization boundary. */
44
+ export type InstanceContext = LifetimeOperations & Readonly<Record<string, unknown>> & {
45
+ readonly meta: InstanceMeta;
46
+ readonly log: Logger;
47
+ };
48
+ /** Canonical Plugin declaration stored after public generics and structure are checked. */
49
+ export interface NormalizedPlugin {
50
+ readonly name: string;
51
+ readonly config?: StandardSchemaV1<unknown, unknown>;
52
+ readonly requires?: Requirements;
53
+ readonly provides?: Provisions;
54
+ readonly setup: (context: InstanceContext, config: unknown) => Awaitable<void | Readonly<Record<string, unknown>>>;
55
+ }
43
56
  export declare function definePlugin<Config = void, Requires extends Requirements = {}, Provides extends Provisions = {}, ConfigInput = Config>(plugin: Plugin<Config, Requires, Provides, ConfigInput>): Plugin<NoInfer<Config>, NoInfer<Requires>, NoInfer<Provides>, NoInfer<ConfigInput>>;
44
57
  /** The sole boundary that validates a public Plugin and erases authoring-only generics. */
45
- export declare function normalizePlugin(plugin: AnyPlugin): ErasedPlugin;
58
+ export declare function normalizePlugin(plugin: AnyPlugin): NormalizedPlugin;
46
59
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
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,EAIL,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AACjE,MAAM,MAAM,UAAU,GAAG,QAAQ,CAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC,CACnE,CAAC;AAEF,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;AAEtE,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAC/B,CAAC,SAAS,eAAe,CAAC,MAAM,KAAK,CAAC,GAClC,KAAK,GAAG,SAAS,GACjB,CAAC,SAAS,OAAO,CAAC,MAAM,KAAK,CAAC,GAC5B,KAAK,GACL,CAAC,SAAS,cAAc,CAAC,MAAM,KAAK,CAAC,GACnC,gBAAgB,CAAC,KAAK,CAAC,GACvB,KAAK,CAAC;AAEhB,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,YAAY,IAAI;IACzD,QAAQ,EAAE,GAAG,IAAI,MAAM,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,UAAU,IAAI;IACnD,QAAQ,EAAE,GAAG,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CAChD,CAAC;AAEF,KAAK,WAAW,CAAC,CAAC,SAAS,UAAU,IAAI,MAAM,CAAC,SAAS,KAAK,GAAG,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAE5F,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,IAAI,kBAAkB,GACnF,oBAAoB,CAAC,CAAC,CAAC,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB,CAAC;AAEJ,MAAM,WAAW,MAAM,CACrB,MAAM,GAAG,IAAI,EACb,QAAQ,SAAS,YAAY,GAAG,EAAE,EAClC,QAAQ,SAAS,UAAU,GAAG,EAAE,EAChC,WAAW,GAAG,MAAM;IAEpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACxD,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,CACd,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,EAChC,MAAM,EAAE,MAAM,KACX,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;CAChD;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,KAAK,OAAO,CAAC;CAC5D;AAED,0FAA0F;AAC1F,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAC9C,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG;IAClC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB,CAAC;AAEJ,2FAA2F;AAC3F,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,CACd,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,OAAO,KACZ,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CAC1D;AAqBD,wBAAgB,YAAY,CAC1B,MAAM,GAAG,IAAI,EACb,QAAQ,SAAS,YAAY,GAAG,EAAE,EAClC,QAAQ,SAAS,UAAU,GAAG,EAAE,EAChC,WAAW,GAAG,MAAM,EAEpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,GACtD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAErF;AAsID,2FAA2F;AAC3F,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,gBAAgB,CAInE"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAA8B,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGnF,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,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;IAIzC,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;CAgO3D"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAA8B,KAAK,cAAc,EAAoB,MAAM,aAAa,CAAC;AAChG,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGnF,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;AAYzF,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,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;IAIzC,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;CAgO3D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dougongjs/core",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=22"