@dougongjs/core 0.0.3 → 0.2.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 (68) hide show
  1. package/README.md +18 -18
  2. package/dist/change-set.d.ts +27 -27
  3. package/dist/change-set.d.ts.map +1 -1
  4. package/dist/configuration.d.ts +4 -0
  5. package/dist/configuration.d.ts.map +1 -0
  6. package/dist/contract-registry.d.ts +1 -1
  7. package/dist/contract-registry.d.ts.map +1 -1
  8. package/dist/contracts.d.ts +7 -5
  9. package/dist/contracts.d.ts.map +1 -1
  10. package/dist/contribution-store.d.ts +48 -0
  11. package/dist/contribution-store.d.ts.map +1 -0
  12. package/dist/diagnostics.d.ts +13 -12
  13. package/dist/diagnostics.d.ts.map +1 -1
  14. package/dist/engine.d.ts +33 -0
  15. package/dist/engine.d.ts.map +1 -0
  16. package/dist/errors.d.ts +6 -9
  17. package/dist/errors.d.ts.map +1 -1
  18. package/dist/event-hub.d.ts +6 -2
  19. package/dist/event-hub.d.ts.map +1 -1
  20. package/dist/group-coordinator.d.ts +27 -26
  21. package/dist/group-coordinator.d.ts.map +1 -1
  22. package/dist/group-lifecycle.d.ts +2 -2
  23. package/dist/group-lifecycle.d.ts.map +1 -1
  24. package/dist/group.d.ts +2 -2
  25. package/dist/group.d.ts.map +1 -1
  26. package/dist/host-api.d.ts +75 -0
  27. package/dist/host-api.d.ts.map +1 -0
  28. package/dist/host.d.ts +6 -0
  29. package/dist/host.d.ts.map +1 -0
  30. package/dist/index.d.ts +8 -7
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +1500 -1190
  33. package/dist/installation-graph.d.ts +17 -0
  34. package/dist/installation-graph.d.ts.map +1 -0
  35. package/dist/installation-registry.d.ts +49 -0
  36. package/dist/installation-registry.d.ts.map +1 -0
  37. package/dist/installation.d.ts +46 -0
  38. package/dist/installation.d.ts.map +1 -0
  39. package/dist/lifecycle-status.d.ts +2 -0
  40. package/dist/lifecycle-status.d.ts.map +1 -0
  41. package/dist/lifetime-diagnostics.d.ts +2 -2
  42. package/dist/lifetime-diagnostics.d.ts.map +1 -1
  43. package/dist/lifetime.d.ts +29 -24
  44. package/dist/lifetime.d.ts.map +1 -1
  45. package/dist/plugin.d.ts +23 -7
  46. package/dist/plugin.d.ts.map +1 -1
  47. package/dist/readonly-map.d.ts.map +1 -1
  48. package/dist/record.d.ts +8 -0
  49. package/dist/record.d.ts.map +1 -0
  50. package/dist/resource.d.ts +15 -3
  51. package/dist/resource.d.ts.map +1 -1
  52. package/dist/runtime.d.ts +36 -0
  53. package/dist/runtime.d.ts.map +1 -0
  54. package/dist/snapshot-view.d.ts +2 -2
  55. package/dist/snapshot-view.d.ts.map +1 -1
  56. package/package.json +7 -1
  57. package/dist/application-api.d.ts +0 -51
  58. package/dist/application-api.d.ts.map +0 -1
  59. package/dist/application-runtime.d.ts +0 -36
  60. package/dist/application-runtime.d.ts.map +0 -1
  61. package/dist/application.d.ts +0 -6
  62. package/dist/application.d.ts.map +0 -1
  63. package/dist/extension-store.d.ts +0 -46
  64. package/dist/extension-store.d.ts.map +0 -1
  65. package/dist/plugin-graph.d.ts +0 -17
  66. package/dist/plugin-graph.d.ts.map +0 -1
  67. package/dist/plugin-installation.d.ts +0 -44
  68. package/dist/plugin-installation.d.ts.map +0 -1
@@ -1,46 +0,0 @@
1
- import { Extension } from './contracts';
2
- import { Disposable, Publication, StagedResource } from './resource';
3
- import { SnapshotView } from './snapshot-view';
4
- export interface Contribution<T> extends Disposable {
5
- update(value: T): void;
6
- }
7
- export type ExtensionView<T> = SnapshotView<ReadonlyMap<string, T>>;
8
- export type ExtensionLeaseKind = "view" | "subscription";
9
- declare class ContributionRecord<T> implements StagedResource<Contribution<T>> {
10
- #private;
11
- readonly handle: Contribution<T>;
12
- constructor(store: ExtensionStore<T>, id: string, initialValue: T, detachFromOwner: (publication: Publication) => void);
13
- publish(): void;
14
- update(value: T): void;
15
- dispose(): void;
16
- [Symbol.dispose](): void;
17
- }
18
- export declare class ExtensionStore<T> {
19
- #private;
20
- constructor(invalidate: (store: ExtensionStore<unknown>) => void, report: (error: unknown) => void, releaseIfUnused: (store: ExtensionStore<unknown>) => void);
21
- stage(ownerId: string, key: string, value: T, release: (publication: Publication) => void): ContributionRecord<T>;
22
- view(own: (resource: Disposable, kind: ExtensionLeaseKind) => () => void): ExtensionView<T>;
23
- snapshot(): ReadonlyMap<string, T>;
24
- subscribe(listener: () => void, own: (resource: Disposable, kind: ExtensionLeaseKind) => () => void): ExtensionSubscription<T>;
25
- insert(id: string, contribution: ContributionRecord<T>, value: T): void;
26
- update(id: string, contribution: ContributionRecord<T>, value: T): void;
27
- removeContribution(id: string, contribution: ContributionRecord<T>, visibility: "staged" | "published"): void;
28
- publishSnapshot(): void;
29
- removeListener(listener: () => void): void;
30
- }
31
- declare class ExtensionSubscription<T> implements Disposable {
32
- #private;
33
- constructor(store: ExtensionStore<T>, listener: () => void, release: () => void);
34
- dispose(): void;
35
- [Symbol.dispose](): void;
36
- }
37
- export declare class ExtensionRegistry {
38
- #private;
39
- constructor(report: (error: unknown) => void);
40
- get<T>(token: Extension<T>): ExtensionStore<T>;
41
- beginBatch(): void;
42
- endBatch(): void;
43
- }
44
- export type ExtensionRequirementView<T> = T extends Extension<infer Value> ? ExtensionView<Value> : never;
45
- export {};
46
- //# sourceMappingURL=extension-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension-store.d.ts","sourceRoot":"","sources":["../src/extension-store.ts"],"names":[],"mappings":"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"}
@@ -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"}
@@ -1,44 +0,0 @@
1
- import { Lifetime } from './lifetime';
2
- import { PluginDefinition, Provisions, Requirements } from './plugin';
3
- import { GroupNode } from './group';
4
- export type InstallationStatus = "pending" | "active" | "stopping" | "failed" | "removed";
5
- export type AnyPlugin = PluginDefinition<unknown, Requirements, Provisions, unknown>;
6
- export interface InstallationSpec {
7
- readonly plugin: AnyPlugin;
8
- readonly config: unknown;
9
- }
10
- export interface PluginRuntime {
11
- readonly plugin: AnyPlugin;
12
- readonly config: unknown;
13
- readonly lifetime: Lifetime;
14
- }
15
- export declare function createInstallationSpec(plugin: AnyPlugin, config: unknown): InstallationSpec;
16
- /**
17
- * A plugin installation is a stable identity whose declaration and runtime may
18
- * change. State transitions and ready waiters live here so orchestration code
19
- * cannot create a status that disagrees with the owned runtime.
20
- */
21
- export declare class PluginInstallation {
22
- #private;
23
- readonly id: string;
24
- readonly index: number;
25
- readonly groupId: string;
26
- constructor(id: string, index: number, group: GroupNode, spec: InstallationSpec);
27
- attach(notifyChanged: () => void): void;
28
- get status(): "failed" | "active" | "removed" | "pending" | "stopping";
29
- get runtime(): PluginRuntime | undefined;
30
- get error(): Error | undefined;
31
- get group(): GroupNode;
32
- get spec(): InstallationSpec;
33
- reconfigure(spec: InstallationSpec): void;
34
- ready(): Promise<void>;
35
- trackReadiness(operation: Promise<void>): void;
36
- activate(runtime: PluginRuntime): void;
37
- settleReady(): void;
38
- beginStopping(): boolean;
39
- deactivate(): void;
40
- fail(error: unknown): void;
41
- discard(error: unknown): void;
42
- remove(): void;
43
- }
44
- //# sourceMappingURL=plugin-installation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-installation.d.ts","sourceRoot":"","sources":["../src/plugin-installation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1F,MAAM,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAErF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAG,gBAAgB,CAE3F;AAiCD;;;;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,IAAI,EAAE,gBAAgB;IAMxB,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI;IAMhC,IAAI,MAAM,6DAET;IAED,IAAI,OAAO,8BAGV;IAED,IAAI,KAAK,sBAWR;IAED,IAAI,KAAK,cAER;IAED,IAAI,IAAI,qBAEP;IAED,WAAW,CAAC,IAAI,EAAE,gBAAgB;IAIlC,KAAK;IAML,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC;IAoCvC,QAAQ,CAAC,OAAO,EAAE,aAAa;IAI/B,WAAW;IAkBX,aAAa;IAOb,UAAU;IAIV,IAAI,CAAC,KAAK,EAAE,OAAO;IAInB,OAAO,CAAC,KAAK,EAAE,OAAO;IAuBtB,MAAM;CAwBP"}