dougong 0.8.2 → 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.
Files changed (78) hide show
  1. package/README.md +22 -97
  2. package/dist/advanced.d.ts +8 -0
  3. package/dist/advanced.d.ts.map +1 -0
  4. package/dist/advanced.js +39 -0
  5. package/dist/composition/change-set.d.ts +49 -0
  6. package/dist/composition/change-set.d.ts.map +1 -0
  7. package/dist/composition/configuration.d.ts +9 -0
  8. package/dist/composition/configuration.d.ts.map +1 -0
  9. package/dist/composition/declarations.d.ts +53 -0
  10. package/dist/composition/declarations.d.ts.map +1 -0
  11. package/dist/composition/group.d.ts +10 -0
  12. package/dist/composition/group.d.ts.map +1 -0
  13. package/dist/composition/installation-graph.d.ts +17 -0
  14. package/dist/composition/installation-graph.d.ts.map +1 -0
  15. package/dist/composition/installation.d.ts +34 -0
  16. package/dist/composition/installation.d.ts.map +1 -0
  17. package/dist/composition/plan.d.ts +82 -0
  18. package/dist/composition/plan.d.ts.map +1 -0
  19. package/dist/composition/planner.d.ts +18 -0
  20. package/dist/composition/planner.d.ts.map +1 -0
  21. package/dist/composition/plugin-description.d.ts +34 -0
  22. package/dist/composition/plugin-description.d.ts.map +1 -0
  23. package/dist/composition/plugin.d.ts +68 -0
  24. package/dist/composition/plugin.d.ts.map +1 -0
  25. package/dist/contracts/contract-registry.d.ts +18 -0
  26. package/dist/contracts/contract-registry.d.ts.map +1 -0
  27. package/dist/contracts/contracts.d.ts +51 -0
  28. package/dist/contracts/contracts.d.ts.map +1 -0
  29. package/dist/contracts/errors.d.ts +53 -0
  30. package/dist/contracts/errors.d.ts.map +1 -0
  31. package/dist/contracts/logging.d.ts +16 -0
  32. package/dist/contracts/logging.d.ts.map +1 -0
  33. package/dist/contracts/resource.d.ts +14 -0
  34. package/dist/contracts/resource.d.ts.map +1 -0
  35. package/dist/contracts/status.d.ts +3 -0
  36. package/dist/contracts/status.d.ts.map +1 -0
  37. package/dist/contributions/contribution-store.d.ts +50 -0
  38. package/dist/contributions/contribution-store.d.ts.map +1 -0
  39. package/dist/events/event-hub.d.ts +27 -0
  40. package/dist/events/event-hub.d.ts.map +1 -0
  41. package/dist/execution/engine.d.ts +26 -0
  42. package/dist/execution/engine.d.ts.map +1 -0
  43. package/dist/execution/host-api.d.ts +43 -0
  44. package/dist/execution/host-api.d.ts.map +1 -0
  45. package/dist/execution/host.d.ts +3 -0
  46. package/dist/execution/host.d.ts.map +1 -0
  47. package/dist/execution/instance.d.ts +33 -0
  48. package/dist/execution/instance.d.ts.map +1 -0
  49. package/dist/index.d.ts +17 -3
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +2207 -8
  52. package/dist/inspection/diagnostics.d.ts +36 -0
  53. package/dist/inspection/diagnostics.d.ts.map +1 -0
  54. package/dist/internal/abort.d.ts +4 -0
  55. package/dist/internal/abort.d.ts.map +1 -0
  56. package/dist/internal/data-array.d.ts +3 -0
  57. package/dist/internal/data-array.d.ts.map +1 -0
  58. package/dist/internal/disposal-runtime.d.ts +5 -0
  59. package/dist/internal/disposal-runtime.d.ts.map +1 -0
  60. package/dist/internal/record.d.ts +8 -0
  61. package/dist/internal/record.d.ts.map +1 -0
  62. package/dist/internal/serial-queue.d.ts +6 -0
  63. package/dist/internal/serial-queue.d.ts.map +1 -0
  64. package/dist/internal/synchronous-result.d.ts +3 -0
  65. package/dist/internal/synchronous-result.d.ts.map +1 -0
  66. package/dist/lifetime/lifetime-diagnostics.d.ts +21 -0
  67. package/dist/lifetime/lifetime-diagnostics.d.ts.map +1 -0
  68. package/dist/lifetime/lifetime.d.ts +71 -0
  69. package/dist/lifetime/lifetime.d.ts.map +1 -0
  70. package/dist/observation/readonly-map.d.ts +13 -0
  71. package/dist/observation/readonly-map.d.ts.map +1 -0
  72. package/dist/observation/snapshot-view.d.ts +14 -0
  73. package/dist/observation/snapshot-view.d.ts.map +1 -0
  74. package/dist/record-CZVpq8vk.js +493 -0
  75. package/package.json +17 -7
  76. package/runtime/abort-listener.d.mts +2 -0
  77. package/runtime/abort-listener.node.mjs +26 -0
  78. package/runtime/abort-listener.web.mjs +7 -0
@@ -0,0 +1,36 @@
1
+ import { ErrorSnapshot } from '../contracts/errors.js';
2
+ import { InstallationOrigin } from '../composition/declarations.js';
3
+ import { InstallationState, HostStatus } from '../contracts/status.js';
4
+ import { LifetimeSnapshot } from '../lifetime/lifetime-diagnostics.js';
5
+ import { BindingReport } from '../composition/plan.js';
6
+ export interface InstallationSnapshot {
7
+ readonly id: string;
8
+ readonly groupId: string | undefined;
9
+ readonly pluginName: string;
10
+ readonly status: InstallationState;
11
+ readonly origin: InstallationOrigin | undefined;
12
+ readonly generation: number | undefined;
13
+ readonly requires: ReadonlyArray<string>;
14
+ readonly provides: ReadonlyArray<string>;
15
+ readonly lifetime: LifetimeSnapshot | undefined;
16
+ }
17
+ export interface GroupSnapshot {
18
+ readonly id: string;
19
+ readonly parentId: string | undefined;
20
+ readonly installations: ReadonlyArray<string>;
21
+ }
22
+ export interface HostSnapshot {
23
+ readonly name: string;
24
+ readonly status: HostStatus;
25
+ readonly stateRevision: number;
26
+ readonly installations: ReadonlyArray<InstallationSnapshot>;
27
+ readonly groups: ReadonlyArray<GroupSnapshot>;
28
+ readonly bindings: ReadonlyArray<BindingReport>;
29
+ readonly unresolved: ReadonlyArray<{
30
+ readonly installation: string;
31
+ readonly generation: number;
32
+ readonly lifetime: LifetimeSnapshot;
33
+ }>;
34
+ readonly error: ErrorSnapshot | undefined;
35
+ }
36
+ //# sourceMappingURL=diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/inspection/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACjD;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAC5D,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;QACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KACrC,CAAC,CAAC;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,CAAC;CAC3C"}
@@ -0,0 +1,4 @@
1
+ export declare function isAborted(signal: AbortSignal): boolean;
2
+ export declare function abortReason(signal: AbortSignal): unknown;
3
+ export declare function onAbort(signal: AbortSignal, callback: (reason: unknown) => void): () => void;
4
+ //# sourceMappingURL=abort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abort.d.ts","sourceRoot":"","sources":["../../src/internal/abort.ts"],"names":[],"mappings":"AAIA,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAEtD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAExD;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CA6B5F"}
@@ -0,0 +1,3 @@
1
+ export declare function captureDataArray<T>(input: ReadonlyArray<T>, label: string): ReadonlyArray<T>;
2
+ export declare function captureDataArray(input: unknown, label: string): ReadonlyArray<unknown>;
3
+ //# sourceMappingURL=data-array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-array.d.ts","sourceRoot":"","sources":["../../src/internal/data-array.ts"],"names":[],"mappings":"AACA,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAC9F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function assertPromiseRuntime(withResolvers: unknown): asserts withResolvers is typeof Promise.withResolvers;
2
+ export declare function resolveDisposalSymbol(native: symbol | undefined, name: "Symbol.dispose" | "Symbol.asyncDispose"): symbol;
3
+ export declare const disposeSymbol: typeof Symbol.dispose;
4
+ export declare const asyncDisposeSymbol: typeof Symbol.asyncDispose;
5
+ //# sourceMappingURL=disposal-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disposal-runtime.d.ts","sourceRoot":"","sources":["../../src/internal/disposal-runtime.ts"],"names":[],"mappings":"AACA,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,OAAO,GACrB,OAAO,CAAC,aAAa,IAAI,OAAO,OAAO,CAAC,aAAa,CAIvD;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,EAAE,gBAAgB,GAAG,qBAAqB,UAG/C;AAID,eAAO,MAAM,aAAa,EAAE,OAAO,MAAM,CAAC,OAGhB,CAAC;AAC3B,eAAO,MAAM,kBAAkB,EAAE,OAAO,MAAM,CAAC,YAGhB,CAAC"}
@@ -0,0 +1,8 @@
1
+ interface PlainRecordOptions {
2
+ readonly fields?: ReadonlySet<string>;
3
+ readonly createError?: (message: string) => Error;
4
+ }
5
+ export declare function normalizePlainRecord<T extends object>(value: T, label: string, options?: PlainRecordOptions): Readonly<T>;
6
+ export declare function normalizePlainRecord(value: unknown, label: string, options?: PlainRecordOptions): Readonly<Record<string, unknown>>;
7
+ export {};
8
+ //# sourceMappingURL=record.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../src/internal/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;AAGD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EACnD,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,kBAAkB,GAC3B,QAAQ,CAAC,CAAC,CAAC,CAAC;AACf,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,kBAAkB,GAC3B,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare class SerialQueue {
2
+ #private;
3
+ get settled(): Promise<undefined>;
4
+ run<T>(operation: () => T | PromiseLike<T>, signal?: AbortSignal): Promise<T>;
5
+ }
6
+ //# sourceMappingURL=serial-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serial-queue.d.ts","sourceRoot":"","sources":["../../src/internal/serial-queue.ts"],"names":[],"mappings":"AAEA,qBAAa,WAAW;;IAItB,IAAI,OAAO,uBAGV;IAED,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;CAyC9E"}
@@ -0,0 +1,3 @@
1
+ export declare function assertSynchronous(value: unknown, message: string): void;
2
+ export declare function captureThenable(value: unknown): Promise<unknown> | undefined;
3
+ //# sourceMappingURL=synchronous-result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synchronous-result.d.ts","sourceRoot":"","sources":["../../src/internal/synchronous-result.ts"],"names":[],"mappings":"AACA,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAUvE;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,CAa5E"}
@@ -0,0 +1,21 @@
1
+ import { ErrorSnapshot } from '../contracts/errors.js';
2
+ export type LifetimePhase = "active" | "sealed" | "disposing" | "disposed" | "quarantined";
3
+ export type ObligationKind = "cleanup" | "interrupt" | "publication" | "shutdown";
4
+ export interface UnresolvedObligation {
5
+ readonly id: number;
6
+ readonly kind: ObligationKind;
7
+ readonly error: ErrorSnapshot;
8
+ }
9
+ export interface LifetimeSnapshot {
10
+ readonly label: string;
11
+ readonly phase: LifetimePhase;
12
+ readonly cleanups: number;
13
+ readonly interrupts: number;
14
+ readonly tasks: number;
15
+ readonly acquisitions: number;
16
+ readonly publications: number;
17
+ readonly foreground: number;
18
+ readonly unresolved: ReadonlyArray<UnresolvedObligation>;
19
+ readonly children: ReadonlyArray<LifetimeSnapshot>;
20
+ }
21
+ //# sourceMappingURL=lifetime-diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifetime-diagnostics.d.ts","sourceRoot":"","sources":["../../src/lifetime/lifetime-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,CAAC;AAC3F,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,UAAU,CAAC;AAElF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;CAC/B;AAED,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,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;IACzD,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;CACpD"}
@@ -0,0 +1,71 @@
1
+ import { LifetimePhase, LifetimeSnapshot } from './lifetime-diagnostics.js';
2
+ import { AsyncDisposable, Awaitable, Disposable, Publication, Resource } from '../contracts/resource.js';
3
+ export type { LifetimePhase, LifetimeSnapshot, UnresolvedObligation, } from './lifetime-diagnostics.js';
4
+ export interface Task<T = void> extends AsyncDisposable {
5
+ readonly result: Promise<T>;
6
+ [Symbol.asyncDispose](): Promise<void>;
7
+ }
8
+ export type Cleanup = () => Awaitable<unknown>;
9
+ export type BackgroundTask<T> = (signal: AbortSignal) => Awaitable<T>;
10
+ export interface LifetimeContext {
11
+ readonly signal: AbortSignal;
12
+ readonly use: <T extends Resource>(resource: T) => T;
13
+ readonly defer: (cleanup: Cleanup) => AsyncDisposable;
14
+ readonly child: (label: string) => ChildLifetime;
15
+ readonly spawn: <T>(task: BackgroundTask<T>) => Task<T>;
16
+ readonly acquire: <T extends Resource>(factory: (signal: AbortSignal) => Awaitable<T>) => Promise<{
17
+ readonly resource: T;
18
+ }>;
19
+ readonly interrupt: (callback: Cleanup) => Disposable;
20
+ }
21
+ export interface ChildLifetime extends LifetimeContext, AsyncDisposable {
22
+ [Symbol.asyncDispose](): Promise<void>;
23
+ }
24
+ export interface LifetimeOwnership {
25
+ readonly lifetime?: LifetimeContext;
26
+ }
27
+ export interface LifetimeOptions {
28
+ readonly label: string;
29
+ readonly report: (error: unknown) => void;
30
+ readonly changed?: () => void;
31
+ readonly parentSignal?: AbortSignal;
32
+ readonly shutdownTimeoutMilliseconds?: number;
33
+ }
34
+ interface ChildOwnership {
35
+ readonly visibility: Visibility;
36
+ readonly detach: (child: Lifetime) => void;
37
+ }
38
+ declare class Visibility {
39
+ published: boolean;
40
+ }
41
+ export declare class Lifetime {
42
+ #private;
43
+ constructor(options: LifetimeOptions, ownership?: ChildOwnership);
44
+ get handle(): LifetimeContext;
45
+ resolveOwner(context?: LifetimeContext): Lifetime;
46
+ get signal(): AbortSignal;
47
+ get phase(): LifetimePhase;
48
+ get acceptsWork(): boolean;
49
+ get published(): boolean;
50
+ get busy(): boolean;
51
+ snapshot(): LifetimeSnapshot;
52
+ use<T extends Resource>(resource: T): T;
53
+ own(resource: Resource): () => void;
54
+ defer(cleanup: Cleanup): AsyncDisposable;
55
+ interrupt(callback: Cleanup): Disposable;
56
+ child(label: string): ChildLifetime;
57
+ spawn<T>(task: BackgroundTask<T>): Task<T>;
58
+ prepare<T>(task: BackgroundTask<T>): Promise<T>;
59
+ acquire<T extends Resource>(factory: (signal: AbortSignal) => Awaitable<T>): Promise<{
60
+ readonly resource: T;
61
+ }>;
62
+ stage<T extends Publication>(create: (detach: () => void) => T): T;
63
+ borrow<T>(callback: () => Awaitable<T>): Promise<T>;
64
+ seal(): void;
65
+ block(): void;
66
+ publish(): void;
67
+ detachStartupSignal(): void;
68
+ dispose(): Promise<void>;
69
+ }
70
+ export declare function shutdownTimeout(value: unknown): number | undefined;
71
+ //# sourceMappingURL=lifetime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifetime.d.ts","sourceRoot":"","sources":["../../src/lifetime/lifetime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export declare class ReadonlyMapSnapshot<Key, Value> implements ReadonlyMap<Key, Value> {
2
+ #private;
3
+ constructor(values?: ReadonlyMap<Key, Value> | Iterable<readonly [Key, Value]>);
4
+ get size(): number;
5
+ get(key: Key): Value | undefined;
6
+ has(key: Key): boolean;
7
+ forEach(callback: (value: Value, key: Key, map: ReadonlyMap<Key, Value>) => void, receiver?: unknown): void;
8
+ entries(): MapIterator<[Key, Value]>;
9
+ keys(): MapIterator<Key>;
10
+ values(): MapIterator<Value>;
11
+ [Symbol.iterator](): MapIterator<[Key, Value]>;
12
+ }
13
+ //# sourceMappingURL=readonly-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readonly-map.d.ts","sourceRoot":"","sources":["../../src/observation/readonly-map.ts"],"names":[],"mappings":"AACA,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;IAQlF,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,QAAQ,CAAC,EAAE,OAAO;IAOpB,OAAO;IAIP,IAAI;IAIJ,MAAM;IAIN,CAAC,MAAM,CAAC,QAAQ,CAAC;CAGlB"}
@@ -0,0 +1,14 @@
1
+ import { disposeSymbol, Disposable } from '../contracts/resource.js';
2
+ export interface SnapshotView<T> {
3
+ get(): T;
4
+ subscribe(listener: () => void): Disposable;
5
+ }
6
+ export declare function batchSnapshotNotifications(operation: () => void): void;
7
+ export declare class SnapshotPublisher<T> implements Disposable {
8
+ #private;
9
+ constructor(read: () => T, report: (error: unknown) => void);
10
+ readonly view: SnapshotView<T>;
11
+ invalidate(): void;
12
+ [disposeSymbol](): void;
13
+ }
14
+ //# sourceMappingURL=snapshot-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-view.d.ts","sourceRoot":"","sources":["../../src/observation/snapshot-view.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAI1E,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,GAAG,IAAI,CAAC,CAAC;IACT,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,UAAU,CAAC;CAC7C;AAmBD,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,IAAI,QAmB/D;AAiCD,qBAAa,iBAAiB,CAAC,CAAC,CAAE,YAAW,UAAU;;gBAOzC,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;IAOV,CAAC,aAAa,CAAC;CAgEhB"}