dougong 0.8.3 → 0.9.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 +22 -97
- package/dist/advanced.d.ts +8 -0
- package/dist/advanced.d.ts.map +1 -0
- package/dist/advanced.js +39 -0
- package/dist/composition/change-set.d.ts +49 -0
- package/dist/composition/change-set.d.ts.map +1 -0
- package/dist/composition/configuration.d.ts +9 -0
- package/dist/composition/configuration.d.ts.map +1 -0
- package/dist/composition/declarations.d.ts +53 -0
- package/dist/composition/declarations.d.ts.map +1 -0
- package/dist/composition/group.d.ts +10 -0
- package/dist/composition/group.d.ts.map +1 -0
- package/dist/composition/installation-graph.d.ts +17 -0
- package/dist/composition/installation-graph.d.ts.map +1 -0
- package/dist/composition/installation.d.ts +34 -0
- package/dist/composition/installation.d.ts.map +1 -0
- package/dist/composition/plan.d.ts +82 -0
- package/dist/composition/plan.d.ts.map +1 -0
- package/dist/composition/planner.d.ts +18 -0
- package/dist/composition/planner.d.ts.map +1 -0
- package/dist/composition/plugin-description.d.ts +34 -0
- package/dist/composition/plugin-description.d.ts.map +1 -0
- package/dist/composition/plugin.d.ts +68 -0
- package/dist/composition/plugin.d.ts.map +1 -0
- package/dist/contracts/contract-registry.d.ts +18 -0
- package/dist/contracts/contract-registry.d.ts.map +1 -0
- package/dist/contracts/contracts.d.ts +51 -0
- package/dist/contracts/contracts.d.ts.map +1 -0
- package/dist/contracts/errors.d.ts +53 -0
- package/dist/contracts/errors.d.ts.map +1 -0
- package/dist/contracts/logging.d.ts +16 -0
- package/dist/contracts/logging.d.ts.map +1 -0
- package/dist/contracts/resource.d.ts +14 -0
- package/dist/contracts/resource.d.ts.map +1 -0
- package/dist/contracts/status.d.ts +3 -0
- package/dist/contracts/status.d.ts.map +1 -0
- package/dist/contributions/contribution-store.d.ts +50 -0
- package/dist/contributions/contribution-store.d.ts.map +1 -0
- package/dist/events/event-hub.d.ts +27 -0
- package/dist/events/event-hub.d.ts.map +1 -0
- package/dist/execution/engine.d.ts +26 -0
- package/dist/execution/engine.d.ts.map +1 -0
- package/dist/execution/host-api.d.ts +43 -0
- package/dist/execution/host-api.d.ts.map +1 -0
- package/dist/execution/host.d.ts +3 -0
- package/dist/execution/host.d.ts.map +1 -0
- package/dist/execution/instance.d.ts +33 -0
- package/dist/execution/instance.d.ts.map +1 -0
- package/dist/index.d.ts +17 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2207 -8
- package/dist/inspection/diagnostics.d.ts +36 -0
- package/dist/inspection/diagnostics.d.ts.map +1 -0
- package/dist/internal/abort.d.ts +4 -0
- package/dist/internal/abort.d.ts.map +1 -0
- package/dist/internal/data-array.d.ts +3 -0
- package/dist/internal/data-array.d.ts.map +1 -0
- package/dist/internal/disposal-runtime.d.ts +5 -0
- package/dist/internal/disposal-runtime.d.ts.map +1 -0
- package/dist/internal/record.d.ts +8 -0
- package/dist/internal/record.d.ts.map +1 -0
- package/dist/internal/serial-queue.d.ts +6 -0
- package/dist/internal/serial-queue.d.ts.map +1 -0
- package/dist/internal/synchronous-result.d.ts +3 -0
- package/dist/internal/synchronous-result.d.ts.map +1 -0
- package/dist/lifetime/lifetime-diagnostics.d.ts +21 -0
- package/dist/lifetime/lifetime-diagnostics.d.ts.map +1 -0
- package/dist/lifetime/lifetime.d.ts +71 -0
- package/dist/lifetime/lifetime.d.ts.map +1 -0
- package/dist/observation/readonly-map.d.ts +13 -0
- package/dist/observation/readonly-map.d.ts.map +1 -0
- package/dist/observation/snapshot-view.d.ts +14 -0
- package/dist/observation/snapshot-view.d.ts.map +1 -0
- package/dist/record-CZVpq8vk.js +493 -0
- package/package.json +17 -7
- package/runtime/abort-listener.d.mts +2 -0
- package/runtime/abort-listener.node.mjs +26 -0
- package/runtime/abort-listener.web.mjs +7 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ContractIdentity, ContractKind } from './contracts.js';
|
|
2
|
+
export declare class ContractRegistry {
|
|
3
|
+
#private;
|
|
4
|
+
assertKinds(kinds: ReadonlyMap<string, ContractKind>): void;
|
|
5
|
+
assertCompatible(contract: ContractIdentity): void;
|
|
6
|
+
remember(contract: ContractIdentity): void;
|
|
7
|
+
writer(candidateKinds: ReadonlyMap<string, ContractKind>): ContractRegistryWriter;
|
|
8
|
+
commit(kinds: ReadonlyMap<string, ContractKind>): void;
|
|
9
|
+
}
|
|
10
|
+
export declare class ContractRegistryWriter {
|
|
11
|
+
#private;
|
|
12
|
+
constructor(registry: ContractRegistry, candidateKinds: ReadonlyMap<string, ContractKind>);
|
|
13
|
+
remember(contract: ContractIdentity): void;
|
|
14
|
+
commit(): void;
|
|
15
|
+
discard(): void;
|
|
16
|
+
}
|
|
17
|
+
export declare function rememberContractKind(kinds: Map<string, ContractKind>, contract: ContractIdentity): void;
|
|
18
|
+
//# sourceMappingURL=contract-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract-registry.d.ts","sourceRoot":"","sources":["../../src/contracts/contract-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAKrE,qBAAa,gBAAgB;;IAG3B,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC;IAIpD,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB;IAI3C,QAAQ,CAAC,QAAQ,EAAE,gBAAgB;IAInC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC;IAIxD,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC;CAIhD;AAWD,qBAAa,sBAAsB;;gBAGrB,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC;IAKzF,QAAQ,CAAC,QAAQ,EAAE,gBAAgB;IAenC,MAAM;IAON,OAAO;CAGR;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,QAAQ,EAAE,gBAAgB,QAGhG"}
|
|
@@ -0,0 +1,51 @@
|
|
|
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
|
+
}
|
|
8
|
+
export type ContractKind = "service" | "extensionPoint" | "event";
|
|
9
|
+
export interface ContractIdentity {
|
|
10
|
+
readonly id: string;
|
|
11
|
+
readonly kind: ContractKind;
|
|
12
|
+
}
|
|
13
|
+
interface ContractBrand {
|
|
14
|
+
readonly [contractBrand]: true;
|
|
15
|
+
}
|
|
16
|
+
interface Contract<T, Kind extends ContractKind> extends ContractIdentity, ContractBrand {
|
|
17
|
+
readonly kind: Kind;
|
|
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";
|
|
25
|
+
}
|
|
26
|
+
export interface Service<T> extends Contract<T, "service"> {
|
|
27
|
+
}
|
|
28
|
+
export interface ExtensionPoint<T> extends Contract<T, "extensionPoint"> {
|
|
29
|
+
}
|
|
30
|
+
export interface Event<T> extends Contract<T, "event"> {
|
|
31
|
+
}
|
|
32
|
+
interface OptionalServiceIdentity {
|
|
33
|
+
readonly [optionalBrand]: true;
|
|
34
|
+
readonly kind: "optional";
|
|
35
|
+
readonly service: ServiceIdentity;
|
|
36
|
+
}
|
|
37
|
+
export interface OptionalService<T> extends OptionalServiceIdentity {
|
|
38
|
+
readonly service: Service<T>;
|
|
39
|
+
readonly [contractValueSlot]: ContractValueSlot<T>;
|
|
40
|
+
}
|
|
41
|
+
export type Requirement = ServiceIdentity | ExtensionPointIdentity | OptionalServiceIdentity;
|
|
42
|
+
export type ContractValue<T> = T extends Contract<infer Value, ContractKind> ? Value : never;
|
|
43
|
+
export declare function normalizeContract<T extends ContractIdentity>(value: T, expected?: ContractKind, message?: string): T;
|
|
44
|
+
export declare function normalizeContract(value: unknown, expected?: ContractKind, message?: string): ContractIdentity;
|
|
45
|
+
export declare function service<T>(id: string): Service<T>;
|
|
46
|
+
export declare function event<T>(id: string): Event<T>;
|
|
47
|
+
export declare function extensionPoint<T>(id: string): ExtensionPoint<T>;
|
|
48
|
+
export declare function optional<T>(token: Service<T>): OptionalService<T>;
|
|
49
|
+
export declare function normalizeRequirement(value: unknown, message?: string, optionalMessage?: string): Requirement;
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/contracts/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { StandardSchemaV1 } from '@standard-schema/spec';
|
|
2
|
+
export interface ErrorDetails {
|
|
3
|
+
readonly outcome?: "rejected" | "restored" | "quarantined";
|
|
4
|
+
readonly phase?: string;
|
|
5
|
+
readonly installation?: string;
|
|
6
|
+
readonly contract?: string;
|
|
7
|
+
readonly dependencyPath?: ReadonlyArray<string>;
|
|
8
|
+
readonly affectedInstallations?: ReadonlyArray<string>;
|
|
9
|
+
readonly stateRevision?: number;
|
|
10
|
+
readonly expectedRevision?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare class DougongError<Code extends string = string> extends Error {
|
|
13
|
+
name: string;
|
|
14
|
+
readonly code: Code;
|
|
15
|
+
readonly details: ErrorDetails;
|
|
16
|
+
constructor(code: Code, message: string, options?: ErrorOptions & {
|
|
17
|
+
readonly details?: ErrorDetails;
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
export declare function quarantinedHost(revision: number): DougongError<"HOST_QUARANTINED">;
|
|
21
|
+
export interface ErrorSnapshot {
|
|
22
|
+
readonly name: string;
|
|
23
|
+
readonly message: string;
|
|
24
|
+
readonly code?: string;
|
|
25
|
+
readonly stack?: string;
|
|
26
|
+
readonly cause?: ErrorSnapshot;
|
|
27
|
+
readonly errors?: ReadonlyArray<ErrorSnapshot>;
|
|
28
|
+
readonly details?: ErrorDetails;
|
|
29
|
+
readonly fields?: Readonly<Record<string, string | ReadonlyArray<string>>>;
|
|
30
|
+
readonly issues?: ReadonlyArray<{
|
|
31
|
+
readonly message: string;
|
|
32
|
+
readonly path?: ReadonlyArray<string | number>;
|
|
33
|
+
}>;
|
|
34
|
+
readonly truncated?: true;
|
|
35
|
+
}
|
|
36
|
+
export declare class RecordedFailure extends Error {
|
|
37
|
+
#private;
|
|
38
|
+
readonly name = "RecordedFailure";
|
|
39
|
+
readonly code: string | undefined;
|
|
40
|
+
get snapshot(): ErrorSnapshot;
|
|
41
|
+
constructor(error: unknown, fields?: ReadonlyArray<string>);
|
|
42
|
+
}
|
|
43
|
+
export declare function isError(value: unknown): value is Error;
|
|
44
|
+
export declare function normalizeFailure(error: unknown, code: string, message: string): Error;
|
|
45
|
+
export declare function isCancellationReason(signal: AbortSignal, error: unknown): boolean;
|
|
46
|
+
export declare class ConfigurationValidationError extends DougongError {
|
|
47
|
+
name: string;
|
|
48
|
+
readonly issues: ReadonlyArray<StandardSchemaV1.Issue>;
|
|
49
|
+
constructor(issues: ReadonlyArray<StandardSchemaV1.Issue>, options?: ErrorOptions & {
|
|
50
|
+
readonly details?: ErrorDetails;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/contracts/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { disposeSymbol, Disposable } from './resource.js';
|
|
2
|
+
export interface Logger {
|
|
3
|
+
readonly debug: (message: unknown, ...details: unknown[]) => void;
|
|
4
|
+
readonly info: (message: unknown, ...details: unknown[]) => void;
|
|
5
|
+
readonly warn: (message: unknown, ...details: unknown[]) => void;
|
|
6
|
+
readonly error: (message: unknown, ...details: unknown[]) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function captureLogger(value: unknown): Logger;
|
|
9
|
+
export declare function isLogger(value: unknown): value is Logger;
|
|
10
|
+
export declare class ScopedLogger implements Disposable {
|
|
11
|
+
#private;
|
|
12
|
+
readonly handle: Logger;
|
|
13
|
+
constructor(logger: Logger, metadata: Readonly<Record<string, unknown>>);
|
|
14
|
+
[disposeSymbol](): void;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=logging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/contracts/logging.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAC/D,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAClE,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACjE,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACjE,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACnE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAepD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAOxD;AAED,qBAAa,YAAa,YAAW,UAAU;;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAKpB;gBAIS,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIvE,CAAC,aAAa,CAAC;CAYhB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type Awaitable<T> = T | PromiseLike<T>;
|
|
2
|
+
export { assertPromiseRuntime, resolveDisposalSymbol, asyncDisposeSymbol, disposeSymbol, } from '../internal/disposal-runtime.js';
|
|
3
|
+
export interface Disposable {
|
|
4
|
+
[Symbol.dispose](): void;
|
|
5
|
+
}
|
|
6
|
+
export interface AsyncDisposable {
|
|
7
|
+
[Symbol.asyncDispose](): PromiseLike<void>;
|
|
8
|
+
}
|
|
9
|
+
export type Resource = Disposable | AsyncDisposable;
|
|
10
|
+
export interface Publication extends Disposable {
|
|
11
|
+
publish(): void;
|
|
12
|
+
}
|
|
13
|
+
export declare function captureDisposer(resource: Resource): () => Awaitable<void>;
|
|
14
|
+
//# sourceMappingURL=resource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/contracts/resource.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAE9C,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,GACd,MAAM,iCAAiC,CAAC;AAEzC,MAAM,WAAW,UAAU;IACzB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;CAC5C;AAED,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,eAAe,CAAC;AAEpD,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAmBzE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/contracts/status.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GACpB,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,CAAC;AAC/E,MAAM,MAAM,iBAAiB,GAC3B,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,aAAa,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { ContractIdentity, ExtensionPoint, Requirement } from '../contracts/contracts.js';
|
|
2
|
+
import { Lifetime, LifetimeOwnership } from '../lifetime/lifetime.js';
|
|
3
|
+
import { disposeSymbol, Disposable, Publication, Awaitable } from '../contracts/resource.js';
|
|
4
|
+
import { SnapshotView } from '../observation/snapshot-view.js';
|
|
5
|
+
export interface Contribution<T> extends Disposable {
|
|
6
|
+
readonly update: (value: T) => void;
|
|
7
|
+
}
|
|
8
|
+
export interface ContributionView<T> extends SnapshotView<ReadonlyArray<string>> {
|
|
9
|
+
use<Result>(id: string, callback: (value: T) => Awaitable<Result>): Promise<Result>;
|
|
10
|
+
}
|
|
11
|
+
export interface ContributionOperations {
|
|
12
|
+
add<T>(token: ExtensionPoint<T>, key: string, value: T, options?: LifetimeOwnership): Contribution<T>;
|
|
13
|
+
}
|
|
14
|
+
type ExtensionPointIdentity = Extract<Requirement, {
|
|
15
|
+
readonly kind: "extensionPoint";
|
|
16
|
+
}>;
|
|
17
|
+
declare class ContributionRecord<T> implements Publication {
|
|
18
|
+
#private;
|
|
19
|
+
readonly handle: Contribution<T>;
|
|
20
|
+
constructor(store: ContributionStore<T>, id: string, initialValue: T, owner: Lifetime, detachFromOwner: () => void);
|
|
21
|
+
publish(): void;
|
|
22
|
+
use<Result>(callback: (value: T) => Awaitable<Result>): Promise<Result>;
|
|
23
|
+
update(value: T): void;
|
|
24
|
+
[disposeSymbol](): void;
|
|
25
|
+
}
|
|
26
|
+
export declare class ContributionStore<T> {
|
|
27
|
+
#private;
|
|
28
|
+
constructor(invalidate: (store: ContributionStore<unknown>) => void, report: (error: unknown) => void, releaseIfUnused: (store: ContributionStore<unknown>) => void);
|
|
29
|
+
stage(installationId: string, key: string, value: T, owner: Lifetime, remember?: () => void): Contribution<T>;
|
|
30
|
+
view(own: (resource: Disposable) => () => void, owner?: Lifetime): ContributionView<T>;
|
|
31
|
+
hostView(): ContributionView<T>;
|
|
32
|
+
use<Result>(id: string, callback: (value: T) => Awaitable<Result>): Promise<Result>;
|
|
33
|
+
snapshot(): readonly string[];
|
|
34
|
+
subscribe(listener: () => void, own?: (resource: Disposable) => () => void): Disposable;
|
|
35
|
+
publishClaim(id: string, contribution: ContributionRecord<T>): void;
|
|
36
|
+
valueChanged(id: string, contribution: ContributionRecord<T>): void;
|
|
37
|
+
removeContribution(id: string, contribution: ContributionRecord<T>): void;
|
|
38
|
+
publishSnapshot(): void;
|
|
39
|
+
}
|
|
40
|
+
export declare class ContributionRegistry {
|
|
41
|
+
#private;
|
|
42
|
+
constructor(report: (error: unknown) => void);
|
|
43
|
+
get<T = unknown>(token: ExtensionPointIdentity): ContributionStore<T>;
|
|
44
|
+
view<T = unknown>(token: ExtensionPointIdentity, owner?: Lifetime): ContributionView<T>;
|
|
45
|
+
scope(owner: Lifetime, installationId: string, remember: (token: ContractIdentity) => void): ContributionOperations;
|
|
46
|
+
beginBatch(): void;
|
|
47
|
+
endBatch(): void;
|
|
48
|
+
}
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=contribution-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contribution-store.d.ts","sourceRoot":"","sources":["../../src/contributions/contribution-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ContractIdentity, Event } from '../contracts/contracts.js';
|
|
2
|
+
import { Lifetime, LifetimeOwnership } from '../lifetime/lifetime.js';
|
|
3
|
+
import { disposeSymbol, Disposable, Publication } from '../contracts/resource.js';
|
|
4
|
+
export type EventListener<T> = (payload: T) => unknown;
|
|
5
|
+
export type EventArguments<T> = [T] extends [void] ? [payload?: T] : [payload: T];
|
|
6
|
+
export interface EventOperations {
|
|
7
|
+
on<T>(token: Event<T>, listener: EventListener<T>, options?: LifetimeOwnership): Disposable;
|
|
8
|
+
emit<T>(token: Event<T>, ...payload: EventArguments<T>): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
declare class ListenerRegistration<T> implements Publication {
|
|
11
|
+
#private;
|
|
12
|
+
readonly handle: Disposable;
|
|
13
|
+
constructor(hub: EventHub, eventId: string, listener: EventListener<T>, owner: Lifetime, detach: () => void);
|
|
14
|
+
publish(): void;
|
|
15
|
+
invoke(payload: T): Promise<unknown>;
|
|
16
|
+
[disposeSymbol](): void;
|
|
17
|
+
}
|
|
18
|
+
export declare class EventHub {
|
|
19
|
+
#private;
|
|
20
|
+
scope(owner: Lifetime, remember: (token: ContractIdentity) => void): EventOperations;
|
|
21
|
+
stage<T>(eventId: string, listener: EventListener<T>, owner: Lifetime): Disposable;
|
|
22
|
+
add<T>(eventId: string, registration: ListenerRegistration<T>): void;
|
|
23
|
+
delete<T>(eventId: string, registration: ListenerRegistration<T>): void;
|
|
24
|
+
emit<T>(eventId: string, payload: T): Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=event-hub.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-hub.d.ts","sourceRoot":"","sources":["../../src/events/event-hub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,gBAAgB,EAAE,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAEjG,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5F,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC;AACvD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAElF,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,UAAU,CAAC;IAC5F,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxE;AASD,cAAM,oBAAoB,CAAC,CAAC,CAAE,YAAW,WAAW;;IAGlD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;gBAG1B,GAAG,EAAE,QAAQ,EACb,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,MAAM,IAAI;IAOpB,OAAO;IAMP,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAOpC,CAAC,aAAa,CAAC;CAOhB;AAmDD,qBAAa,QAAQ;;IAGnB,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,eAAe;IAIpF,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,UAAU;IAKlF,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAM7D,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAO1D,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAgB1D"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Service, OptionalService, ExtensionPoint } from '../contracts/contracts.js';
|
|
2
|
+
import { Plan } from '../composition/plan.js';
|
|
3
|
+
import { ApplyResult, HostOptions } from './host-api.js';
|
|
4
|
+
import { ChangeSet, Group, Installation } from '../composition/declarations.js';
|
|
5
|
+
import { HostStatus } from '../contracts/status.js';
|
|
6
|
+
import { HostSnapshot } from '../inspection/diagnostics.js';
|
|
7
|
+
import { Awaitable } from '../contracts/resource.js';
|
|
8
|
+
export declare class Engine {
|
|
9
|
+
#private;
|
|
10
|
+
readonly name: string;
|
|
11
|
+
constructor(options?: HostOptions);
|
|
12
|
+
get status(): HostStatus;
|
|
13
|
+
get stateRevision(): number;
|
|
14
|
+
get diagnostics(): import('../index.js').SnapshotView<HostSnapshot>;
|
|
15
|
+
installation(id: string): Installation | undefined;
|
|
16
|
+
group(id: string): Group | undefined;
|
|
17
|
+
explain(id: string): readonly import('../index.js').BindingReport[];
|
|
18
|
+
change(): ChangeSet;
|
|
19
|
+
plan(change: ChangeSet, signal?: AbortSignal): Promise<Plan>;
|
|
20
|
+
apply(plan: Plan): Promise<ApplyResult>;
|
|
21
|
+
start(): Promise<ApplyResult>;
|
|
22
|
+
stop(): Promise<ApplyResult>;
|
|
23
|
+
use<T, Result>(requirement: Service<T> | OptionalService<T>, callback: (value: T | undefined) => Awaitable<Result>): Promise<Result>;
|
|
24
|
+
contributions<T>(point: ExtensionPoint<T>): import('../index.js').ContributionView<T>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/execution/engine.ts"],"names":[],"mappings":"AAQA,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,2BAA2B,CAAC;AAmBnC,OAAO,EAGL,KAAK,IAAI,EAEV,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACrF,OAAO,KAAK,EAAE,UAAU,EAAqB,MAAM,wBAAwB,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,8BAA8B,CAAC;AACvF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AA0C1D,qBAAa,MAAM;;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAkBV,OAAO,GAAE,WAAgB;IAiFrC,IAAI,MAAM,IAAI,UAAU,CAEvB;IACD,IAAI,aAAa,WAEhB;IACD,IAAI,WAAW,qDAEd;IAED,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIlD,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAIpC,OAAO,CAAC,EAAE,EAAE,MAAM;IAMlB,MAAM,IAAI,SAAS;IAcb,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAkClE,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IAKvC,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;IAG7B,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IAI5B,GAAG,CAAC,CAAC,EAAE,MAAM,EACX,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,EAC5C,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,KAAK,SAAS,CAAC,MAAM,CAAC,GACpD,OAAO,CAAC,MAAM,CAAC;IA2BlB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;CA4kB1C"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { ChangeSet, Group, Installation, InitialInstallation } from '../composition/declarations.js';
|
|
2
|
+
import { HostStatus } from '../contracts/status.js';
|
|
3
|
+
import { Logger } from '../contracts/logging.js';
|
|
4
|
+
import { Service, OptionalService, ExtensionPoint } from '../contracts/contracts.js';
|
|
5
|
+
import { ContributionView } from '../contributions/contribution-store.js';
|
|
6
|
+
import { SnapshotView } from '../observation/snapshot-view.js';
|
|
7
|
+
import { HostSnapshot } from '../inspection/diagnostics.js';
|
|
8
|
+
import { Awaitable } from '../contracts/resource.js';
|
|
9
|
+
import { Plan, BindingReport } from '../composition/plan.js';
|
|
10
|
+
export interface HostOptions {
|
|
11
|
+
readonly name?: string;
|
|
12
|
+
readonly installations?: ReadonlyArray<InitialInstallation>;
|
|
13
|
+
readonly groups?: ReadonlyArray<{
|
|
14
|
+
readonly id: string;
|
|
15
|
+
readonly parentId?: string;
|
|
16
|
+
}>;
|
|
17
|
+
readonly logger?: Logger;
|
|
18
|
+
readonly onError?: (error: unknown) => Awaitable<void>;
|
|
19
|
+
readonly shutdownTimeoutMilliseconds?: number;
|
|
20
|
+
}
|
|
21
|
+
export interface ApplyResult {
|
|
22
|
+
readonly stateRevision: number;
|
|
23
|
+
readonly affectedInstallations: ReadonlyArray<string>;
|
|
24
|
+
}
|
|
25
|
+
export interface Host {
|
|
26
|
+
readonly name: string;
|
|
27
|
+
readonly status: HostStatus;
|
|
28
|
+
readonly stateRevision: number;
|
|
29
|
+
readonly diagnostics: SnapshotView<HostSnapshot>;
|
|
30
|
+
change(): ChangeSet;
|
|
31
|
+
plan(change: ChangeSet, signal?: AbortSignal): Promise<Plan>;
|
|
32
|
+
apply(plan: Plan): Promise<ApplyResult>;
|
|
33
|
+
start(): Promise<ApplyResult>;
|
|
34
|
+
stop(): Promise<ApplyResult>;
|
|
35
|
+
use<T, Result>(service: Service<T>, callback: (value: T) => Awaitable<Result>): Promise<Result>;
|
|
36
|
+
use<T, Result>(service: OptionalService<T>, callback: (value: T | undefined) => Awaitable<Result>): Promise<Result>;
|
|
37
|
+
contributions<T>(point: ExtensionPoint<T>): ContributionView<T>;
|
|
38
|
+
installation(id: string): Installation | undefined;
|
|
39
|
+
group(id: string): Group | undefined;
|
|
40
|
+
explain(installationId: string): ReadonlyArray<BindingReport>;
|
|
41
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=host-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-api.d.ts","sourceRoot":"","sources":["../../src/execution/host-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/execution/host.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEvD,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CA6BtD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ContractRegistryWriter } from '../contracts/contract-registry.js';
|
|
2
|
+
import { Logger } from '../contracts/logging.js';
|
|
3
|
+
import { EventHub } from '../events/event-hub.js';
|
|
4
|
+
import { ContributionRegistry } from '../contributions/contribution-store.js';
|
|
5
|
+
import { Lifetime } from '../lifetime/lifetime.js';
|
|
6
|
+
import { InstallationRecord, InstallationDeclaration } from '../composition/installation.js';
|
|
7
|
+
import { Awaitable } from '../contracts/resource.js';
|
|
8
|
+
export interface InstanceEnvironment {
|
|
9
|
+
readonly hostName: string;
|
|
10
|
+
readonly logger: Logger;
|
|
11
|
+
readonly report: (error: unknown) => void;
|
|
12
|
+
readonly changed: () => void;
|
|
13
|
+
readonly events: EventHub;
|
|
14
|
+
readonly contributions: ContributionRegistry;
|
|
15
|
+
readonly contracts: ContractRegistryWriter;
|
|
16
|
+
readonly startupSignal: AbortSignal;
|
|
17
|
+
readonly shutdownTimeoutMilliseconds: number | undefined;
|
|
18
|
+
}
|
|
19
|
+
export declare class Instance {
|
|
20
|
+
#private;
|
|
21
|
+
readonly installation: InstallationRecord;
|
|
22
|
+
readonly declaration: InstallationDeclaration;
|
|
23
|
+
readonly generation: number;
|
|
24
|
+
private readonly environment;
|
|
25
|
+
readonly lifetime: Lifetime;
|
|
26
|
+
constructor(installation: InstallationRecord, declaration: InstallationDeclaration, generation: number, environment: InstanceEnvironment);
|
|
27
|
+
prepare(dependencies: Readonly<Record<string, unknown>>, configuration: unknown): Promise<void>;
|
|
28
|
+
read(serviceId: string): unknown;
|
|
29
|
+
use<T, Result>(serviceId: string, callback: (value: T) => Awaitable<Result>): Promise<Result>;
|
|
30
|
+
publish(): void;
|
|
31
|
+
dispose(): Promise<void>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=instance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instance.d.ts","sourceRoot":"","sources":["../../src/execution/instance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAEhF,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAGlG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC;IACpC,QAAQ,CAAC,2BAA2B,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1D;AAED,qBAAa,QAAQ;;IAKjB,QAAQ,CAAC,YAAY,EAAE,kBAAkB;IACzC,QAAQ,CAAC,WAAW,EAAE,uBAAuB;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAP9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBAIjB,YAAY,EAAE,kBAAkB,EAChC,WAAW,EAAE,uBAAuB,EACpC,UAAU,EAAE,MAAM,EACV,WAAW,EAAE,mBAAmB;IAa7C,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO;IA4CrF,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAMhC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,SAAS,CAAC,MAAM,CAAC;IAI3E,OAAO;IAKD,OAAO;CAOd"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
1
|
+
export { service, extensionPoint, event, optional, type ContractKind, type ContractValue, type Service, type ExtensionPoint, type Event, type OptionalService, type Requirement, } from './contracts/contracts.js';
|
|
2
|
+
export { createHost } from './execution/host.js';
|
|
3
|
+
export type { Host, HostOptions, ApplyResult } from './execution/host-api.js';
|
|
4
|
+
export type { HostStatus, InstallationState } from './contracts/status.js';
|
|
5
|
+
export type { ChangeSet, Group, Installation, InstallationOptions, InstallationUpdate, InstallationOrigin, InitialInstallation, } from './composition/declarations.js';
|
|
6
|
+
export { definePlugin, type Plugin, type AnyPlugin, type PluginContext, type Requirements, type Provisions, type ResolvedRequirement, type ResolvedRequirements, type ProvidedServices, type InstanceMetadata, } from './composition/plugin.js';
|
|
7
|
+
export { captureConfiguration, type ConfigurationValue } from './composition/configuration.js';
|
|
8
|
+
export { describePlugin, type PluginDescriptor, type PluginConfigurationDescriptor, type PluginDescriptionOptions, } from './composition/plugin-description.js';
|
|
9
|
+
export type { Plan, PlanReport, BindingReport, ImpactReason, PlanOperation, DeclarationSnapshot, } from './composition/plan.js';
|
|
10
|
+
export type { HostSnapshot, InstallationSnapshot, GroupSnapshot, } from './inspection/diagnostics.js';
|
|
11
|
+
export type { SnapshotView } from './observation/snapshot-view.js';
|
|
12
|
+
export type { LifetimeContext, ChildLifetime, LifetimeOwnership, Task, Cleanup, BackgroundTask, LifetimePhase, LifetimeSnapshot, UnresolvedObligation, } from './lifetime/lifetime.js';
|
|
13
|
+
export type { Contribution, ContributionView, ContributionOperations, } from './contributions/contribution-store.js';
|
|
14
|
+
export type { EventListener, EventOperations, EventArguments } from './events/event-hub.js';
|
|
15
|
+
export { isLogger, type Logger } from './contracts/logging.js';
|
|
16
|
+
export { DougongError, ConfigurationValidationError, RecordedFailure, isError, isCancellationReason, type ErrorSnapshot, type ErrorDetails, } from './contracts/errors.js';
|
|
17
|
+
export { disposeSymbol, asyncDisposeSymbol, type Disposable, type AsyncDisposable, type Resource, type Awaitable, } from './contracts/resource.js';
|
|
4
18
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,cAAc,EACd,KAAK,EACL,QAAQ,EACR,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,KAAK,EACV,KAAK,eAAe,EACpB,KAAK,WAAW,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9E,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC3E,YAAY,EACV,SAAS,EACT,KAAK,EACL,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,YAAY,EACZ,KAAK,MAAM,EACX,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAC/F,OAAO,EACL,cAAc,EACd,KAAK,gBAAgB,EACrB,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,GAC9B,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EACV,IAAI,EACJ,UAAU,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EACb,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,aAAa,GACd,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,YAAY,EACV,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,IAAI,EACJ,OAAO,EACP,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAAE,QAAQ,EAAE,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EACL,YAAY,EACZ,4BAA4B,EAC5B,eAAe,EACf,OAAO,EACP,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,SAAS,GACf,MAAM,yBAAyB,CAAC"}
|