@animus-ui/extract 0.1.24 → 0.1.26

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 (83) hide show
  1. package/crates/extract-v2/animus-extract-v2.darwin-arm64.node +0 -0
  2. package/crates/extract-v2/animus-extract-v2.linux-arm64-gnu.node +0 -0
  3. package/crates/extract-v2/animus-extract-v2.linux-x64-gnu.node +0 -0
  4. package/crates/extract-v2/index.d.ts +107 -6
  5. package/dist/index.cjs +48 -5
  6. package/dist/index.mjs +2 -2
  7. package/dist/pipeline/alias-agreement.d.ts +107 -0
  8. package/dist/pipeline/alias-agreement.d.ts.map +1 -0
  9. package/dist/pipeline/analyze-project-args.d.ts +11 -2
  10. package/dist/pipeline/analyze-project-args.d.ts.map +1 -1
  11. package/dist/pipeline/asset-copies.d.ts +20 -0
  12. package/dist/pipeline/asset-copies.d.ts.map +1 -0
  13. package/dist/pipeline/built-in-asset-types.d.ts +9 -0
  14. package/dist/pipeline/built-in-asset-types.d.ts.map +1 -0
  15. package/dist/pipeline/core-options.d.ts +31 -7
  16. package/dist/pipeline/core-options.d.ts.map +1 -1
  17. package/dist/pipeline/discover-packages.d.ts +98 -12
  18. package/dist/pipeline/discover-packages.d.ts.map +1 -1
  19. package/dist/pipeline/engine-adapter.d.ts +41 -3
  20. package/dist/pipeline/engine-adapter.d.ts.map +1 -1
  21. package/dist/pipeline/engine-retirement.d.ts +7 -1
  22. package/dist/pipeline/engine-retirement.d.ts.map +1 -1
  23. package/dist/pipeline/extension-policy.d.ts +95 -0
  24. package/dist/pipeline/extension-policy.d.ts.map +1 -0
  25. package/dist/pipeline/host-assets.d.ts +32 -0
  26. package/dist/pipeline/host-assets.d.ts.map +1 -0
  27. package/dist/pipeline/host-expansions.d.ts +92 -0
  28. package/dist/pipeline/host-expansions.d.ts.map +1 -0
  29. package/dist/pipeline/host-extensions.d.ts +64 -0
  30. package/dist/pipeline/host-extensions.d.ts.map +1 -0
  31. package/dist/pipeline/host-package-resolver.d.ts +40 -0
  32. package/dist/pipeline/host-package-resolver.d.ts.map +1 -0
  33. package/dist/pipeline/index.d.ts +32 -8
  34. package/dist/pipeline/index.d.ts.map +1 -1
  35. package/dist/pipeline/kit-publication.d.ts.map +1 -1
  36. package/dist/pipeline/manifest-diagnostics.d.ts +27 -6
  37. package/dist/pipeline/manifest-diagnostics.d.ts.map +1 -1
  38. package/dist/pipeline/manifest-schema.d.ts +16 -0
  39. package/dist/pipeline/manifest-schema.d.ts.map +1 -1
  40. package/dist/pipeline/output-targets.d.ts +52 -0
  41. package/dist/pipeline/output-targets.d.ts.map +1 -0
  42. package/dist/pipeline/probe-evidence.d.ts +58 -0
  43. package/dist/pipeline/probe-evidence.d.ts.map +1 -0
  44. package/dist/pipeline/run-analysis.d.ts +26 -0
  45. package/dist/pipeline/run-analysis.d.ts.map +1 -1
  46. package/dist/pipeline/runtime-import.d.ts +10 -0
  47. package/dist/pipeline/runtime-import.d.ts.map +1 -0
  48. package/dist/pipeline/served-files.d.ts +16 -0
  49. package/dist/pipeline/served-files.d.ts.map +1 -0
  50. package/dist/pipeline/source-corpus.d.ts +4 -0
  51. package/dist/pipeline/source-corpus.d.ts.map +1 -1
  52. package/dist/pipeline/source-ingestion.d.ts +37 -5
  53. package/dist/pipeline/source-ingestion.d.ts.map +1 -1
  54. package/dist/pipeline/system-config.d.ts +18 -0
  55. package/dist/pipeline/system-config.d.ts.map +1 -1
  56. package/dist/pipeline/system-instances.d.ts +27 -0
  57. package/dist/pipeline/system-instances.d.ts.map +1 -0
  58. package/dist/pipeline/tsconfig-paths.d.ts +4 -0
  59. package/dist/pipeline/tsconfig-paths.d.ts.map +1 -1
  60. package/dist/pipeline/vite-expansions.d.ts +40 -0
  61. package/dist/pipeline/vite-expansions.d.ts.map +1 -0
  62. package/dist/pipeline/webpack-expansions.d.ts +55 -0
  63. package/dist/pipeline/webpack-expansions.d.ts.map +1 -0
  64. package/dist/pipeline/workspace-packages.d.ts +13 -0
  65. package/dist/pipeline/workspace-packages.d.ts.map +1 -0
  66. package/dist/{pipeline-Bl20tbu_.mjs → pipeline-BzMQ_Z0M.mjs} +2293 -751
  67. package/dist/{pipeline-CAH9mxnK.cjs → pipeline-DyUf-eKZ.cjs} +2564 -746
  68. package/dist/session/coalescing-window.d.ts +34 -0
  69. package/dist/session/coalescing-window.d.ts.map +1 -0
  70. package/dist/session/extraction-session.d.ts +297 -35
  71. package/dist/session/extraction-session.d.ts.map +1 -1
  72. package/dist/session/index.d.ts +7 -3
  73. package/dist/session/index.d.ts.map +1 -1
  74. package/dist/session/published-set.d.ts +6 -1
  75. package/dist/session/published-set.d.ts.map +1 -1
  76. package/dist/session/resolve-packages.d.ts +9 -5
  77. package/dist/session/resolve-packages.d.ts.map +1 -1
  78. package/dist/session/singleton.d.ts +218 -53
  79. package/dist/session/singleton.d.ts.map +1 -1
  80. package/dist/session/turbopack-orchestrator.d.ts.map +1 -1
  81. package/dist/session.cjs +1462 -510
  82. package/dist/session.mjs +1430 -489
  83. package/package.json +4 -4
@@ -0,0 +1,34 @@
1
+ /**
2
+ * The one coalescing window (SA19). It opens on the first pending event and
3
+ * fires a fixed interval later: a later event joins the open window and never
4
+ * pushes it back, so a steady stream of edits cannot starve the work it
5
+ * coalesces. Builds, startup and explicit flushes bypass it through `flush`.
6
+ * Hosts add no timers of their own.
7
+ */
8
+ export declare const COALESCING_WINDOW_MS = 75;
9
+ export type WindowTimer = ReturnType<typeof setTimeout> | number;
10
+ /** The timer seam: tests drive a manual clock, since `vi.mock` on node
11
+ * builtins silently no-ops under vite-plus-test. */
12
+ export interface WindowClock {
13
+ schedule(fn: () => void | Promise<void>, ms: number): WindowTimer;
14
+ cancel(timer: WindowTimer): void;
15
+ }
16
+ export declare class CoalescingWindow {
17
+ /** A returned promise is the window's work; the clock hands it to its
18
+ * caller and nothing awaits it in production. */
19
+ private readonly fire;
20
+ private readonly windowMs;
21
+ private readonly clock;
22
+ private timer;
23
+ constructor(
24
+ /** A returned promise is the window's work; the clock hands it to its
25
+ * caller and nothing awaits it in production. */
26
+ fire: () => void | Promise<void>, windowMs?: number, clock?: WindowClock);
27
+ /** A pending event: opens the window, or joins the open one. */
28
+ note(): void;
29
+ /** Fires now, closing any open window: the bypass. */
30
+ flush(): void | Promise<void>;
31
+ /** Closes an open window without firing it. */
32
+ cancel(): void;
33
+ }
34
+ //# sourceMappingURL=coalescing-window.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coalescing-window.d.ts","sourceRoot":"","sources":["../../session/coalescing-window.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,MAAM,CAAC;AAEjE;qDACqD;AACrD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,WAAW,CAAC;IAClE,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;CAClC;AAYD,qBAAa,gBAAgB;IAIzB;sDACkD;IAClD,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAPxB,OAAO,CAAC,KAAK,CAA4B;IAEzC;IACE;sDACkD;IACjC,IAAI,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAChC,QAAQ,SAAuB,EAC/B,KAAK,GAAE,WAA0B,EAChD;IAEJ,gEAAgE;IAChE,IAAI,IAAI,IAAI,CAMX;IAED,sDAAsD;IACtD,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAG5B;IAED,+CAA+C;IAC/C,MAAM,IAAI,IAAI,CAIb;CACF"}
@@ -1,31 +1,116 @@
1
- import type { AnimusCoreOptions, ExternalPackageOutcome, KitDescriptorRecord } from '../pipeline/index';
1
+ import type { AnimusCoreOptions, ExternalPackageOutcome, HostAssetClassification, HostExtensionPolicy, HostLoadExpander, KitDescriptorRecord } from '../pipeline/index';
2
+ import type { SessionKey } from './singleton';
2
3
  export type SessionOptions = AnimusCoreOptions;
3
4
  /** What the hosting bundler does, which the user does not configure. */
4
5
  export interface SessionHost {
6
+ /** The build this session takes part in, created once by the owning host
7
+ * wrapper and passed to every participant and worker. Omitted, the
8
+ * session is a build of its own. */
9
+ build?: string;
5
10
  /** The bundler leaves an `import(expr)` it cannot read unbundled
6
11
  * (Rollup, Vite, Turbopack), so the load reaches no analysed module.
7
12
  * Omitted, it reaches the importer's directory, as a webpack context
8
13
  * does. */
9
14
  unbundledComputedImports?: boolean;
15
+ /** The engine this session's build uses; omitted, the build's handle in
16
+ * the shared engine store. A host with its own engine (a test, or a
17
+ * host that owns the handle) supplies it. */
18
+ engine?: () => EngineApi;
19
+ /** Where the session's lines go; omitted, the console. Each line already
20
+ * carries its `[animus]` mark. */
21
+ logger?: SessionLogger;
22
+ /** The session's output feeds no bundler (the CLI), so its path aliases
23
+ * have no host answer to agree with (spec §2.2 A7). */
24
+ noBundler?: boolean;
10
25
  }
11
- import type { SourceCorpus } from '../pipeline/index';
12
- /** Default watcher debounce and the session's status-deadline ceiling.
13
- * The watcher entry point defaults its debounce from this — one definition. */
14
- export declare const DEFAULT_WATCH_DEBOUNCE_MS = 75;
26
+ /** A host's sink for the session's human-facing lines. */
27
+ export interface SessionLogger {
28
+ info(line: string): void;
29
+ warn(line: string): void;
30
+ error(line: string): void;
31
+ }
32
+ import type { ExcludeMatcher, HostResolve } from '../pipeline/index';
33
+ import type { EngineApi, ProjectManifest, SourceCorpus, SourceEntryOwnership, SystemConfig } from '../pipeline/index';
15
34
  export interface WatchChanges {
16
35
  modifiedFiles?: ReadonlySet<string>;
17
36
  removedFiles?: ReadonlySet<string>;
37
+ /** Bytes the host already read for some modified files, by path, read in
38
+ * place of the disk: a host that settles an atomic save hands over the
39
+ * settled text while the file on disk may still be empty. */
40
+ sources?: ReadonlyMap<string, string>;
41
+ }
42
+ /** One published generation, as a host serving from memory reads it. */
43
+ export interface SessionPublication {
44
+ manifest: ProjectManifest;
45
+ manifestJson: string;
46
+ /** The analysis sheets with asset() URLs substituted, before Lightning
47
+ * CSS: what a host assembling its own stylesheet reads. */
48
+ analysisGlobalCss: string;
49
+ analysisComponentCss: string;
50
+ /** The final stylesheet, post-processed: byte for byte the body a
51
+ * persisting host writes as `styles.css`. */
52
+ styles: string;
53
+ /** The system-props module source this generation serves. */
54
+ systemPropsModule: string;
55
+ system: SystemConfig;
56
+ packageMap: Record<string, string>;
57
+ ownership: Readonly<Record<string, SourceEntryOwnership>>;
18
58
  }
59
+ /** How an attempt ended, for a host that redelivers modules itself. */
60
+ export type SessionOutcome = {
61
+ kind: 'published';
62
+ publication: SessionPublication;
63
+ /** A full pass (startup, system reload, rescan) or an incremental one. */
64
+ pass: 'full' | 'incremental';
65
+ /** Files whose replacement plans differ from the last publication. */
66
+ planChanged: string[];
67
+ /** Whether this publication ended an aborted parse's hold. */
68
+ endedHold: boolean;
69
+ /** Originals whose admitted bytes changed while the hold stood. */
70
+ redeliver: string[];
71
+ } | {
72
+ kind: 'held';
73
+ /** Original path → hash of the bytes whose parse aborted. */
74
+ abortedOriginals: ReadonlyMap<string, string>;
75
+ };
19
76
  /** Bundler-agnostic extraction pipeline: system load, source ingestion,
20
77
  * analysis, emission, and watch-cycle diffing. Carries no bundler types. */
21
78
  export declare class ExtractionSession {
22
79
  private readonly host;
23
80
  /** Set by the adapter before any pipeline run. */
24
81
  rootDir: string | null;
82
+ /** The module extracted terminals import their factories from; an
83
+ * override must supply every terminal the analysis extracts. */
84
+ runtimeImport: string;
85
+ /** A host that resolves imports itself (Vite's `this.resolve`): package
86
+ * discovery asks it first, the loader only for a declared workspace it
87
+ * cannot resolve. Null resolves through the loader alone. */
88
+ hostResolve: HostResolve | null;
89
+ /** Each file's alias comparison, kept by content hash across analyses. */
90
+ private readonly aliasCache;
25
91
  /** Serialized path aliases, harvested by the adapter from bundler config. */
26
92
  pathAliasesJson: string | null;
93
+ /** The host's aliases are the project's tsconfig `paths`: each full pass
94
+ * re-reads them, so a tsconfig edit takes effect. */
95
+ aliasesFromTsconfig: boolean;
96
+ /** The root package.json and the tsconfig chain, absent files included:
97
+ * a change to any is a configuration change, which runs the full pass. */
98
+ configInputPaths: string[];
99
+ private configInputKeys;
100
+ /** Each configuration input's content hash at the last full pass, ''
101
+ * for an absent one: the probe's basis when the host reports nothing. */
102
+ private configInputHashes;
27
103
  /** The host's export conditions, in its order, for the system loader. */
28
104
  conditions: readonly string[];
105
+ /** The host's extension order, as its adapter captured it; the built-in
106
+ * policy where no host resolves. */
107
+ extensionPolicy: HostExtensionPolicy;
108
+ /** Which files the host serves as assets (spec §2.2 A8); the built-in
109
+ * classification where no host's can be read. */
110
+ assetClassification: HostAssetClassification;
111
+ /** How the host's bundler expands computed loads (spec §6.3); without
112
+ * one, every computed load keeps its widest reading. */
113
+ loadExpander: HostLoadExpander | undefined;
29
114
  private assetCopyCache;
30
115
  /** Physical asset files registered with the host watcher. */
31
116
  assetDependencyPaths: Set<string>;
@@ -33,9 +118,23 @@ export declare class ExtractionSession {
33
118
  /** System-props module id override. Turbopack rejects absolute-path
34
119
  * imports, so its driver sets a virtual id; null injects the abs path. */
35
120
  systemPropsModuleId: string | null;
121
+ /** The stylesheet module generated code imports; a host that serves the
122
+ * stylesheet itself names its own. */
123
+ cssModuleId: string;
36
124
  /** Whether the analysis-inputs hydration corpus is written to disk. Only
37
125
  * isolated loader workers replay it; an in-process loader reads memory. */
38
126
  persistAnalysisInputs: boolean;
127
+ /** The host substitutes asset() URLs itself (Vite: dev copies, build
128
+ * emitFile markers): the published sheets keep their placeholders, and
129
+ * the session makes no copy and tracks no asset file. */
130
+ hostSubstitutesAssets: boolean;
131
+ /** Whether the session keeps its artifacts on disk: status, commit,
132
+ * manifest, styles, the epoch witness, asset copies and its directory
133
+ * claim, with the sibling reconciliation they need. A host that serves
134
+ * every result from memory (Vite) turns it off; the shared state still
135
+ * publishes. Such a host also substitutes assets (above): asset copies
136
+ * are artifacts. */
137
+ persistArtifacts: boolean;
39
138
  /** Whether this session serves development (a watch), where an error-level
40
139
  * diagnostic is reported and the session keeps running. Only a build
41
140
  * fails on one. */
@@ -83,23 +182,55 @@ export declare class ExtractionSession {
83
182
  /** Fires exactly once per settled `handleWatchUpdate` — the failure cause,
84
183
  * or null when clean. Observation never alters delivery. */
85
184
  onCycleSettled: ((cause: unknown) => void) | null;
185
+ /** Fires once per published generation, and per held attempt. */
186
+ onOutcome: ((outcome: SessionOutcome) => void) | null;
187
+ /** The last published generation; null before the first. */
188
+ publication: SessionPublication | null;
189
+ /** The original sources (raw, before adaptation) the session holds, by
190
+ * root-relative path: the published generation's, plus any that an
191
+ * attempt in flight or held by an aborted parse has read. */
192
+ get heldSources(): ReadonlyMap<string, {
193
+ hash: string;
194
+ source: string;
195
+ }>;
196
+ /** The generation an emit produced, current once its ingestion
197
+ * publishes. */
198
+ private stagedPublication;
86
199
  private readonly options;
87
200
  private readonly staticCssJson;
88
201
  private system;
89
- /** Configured external files that could not be read. Incremental passes
90
- * re-collect nothing, so they replay these instead of passing strict. */
202
+ /** Configured files that could not be read. Incremental passes replay
203
+ * these instead of passing strict, and add a watched change they cannot
204
+ * read. */
91
205
  private ingestionFailureDiagnostics;
92
206
  /** Whether the corpus being analyzed left a file out, whose renders the
93
207
  * analysis cannot see. */
94
208
  private skippedSources;
209
+ /** Resolver calls ingestion ended under another spelling. */
210
+ private ingestionOpenings;
211
+ /** The adapted originals of the ingestion being analysed: it publishes
212
+ * only after its analysis does. */
213
+ private ingestionAdapted;
95
214
  /** Full package-resolution map from the last full pipeline — replayed by
96
215
  * incremental passes (sourceEntries alone omits dist-resolved packages). */
97
216
  private lastPackageMap;
98
217
  private fileCache;
218
+ /** Held sources whose bytes the host supplied (WatchChanges.sources),
219
+ * by root-relative path; a read from disk drops the path. */
220
+ private hostSuppliedKeys;
99
221
  readonly corpus: SourceCorpus;
222
+ /** The corpus reads the driver label when it reports, so a host that
223
+ * sets `driverLabel` after construction is named in its messages. */
224
+ private corpusHost;
100
225
  private systemDependencyKeys;
226
+ /** Whether `path` is the system module, one of its dependencies, or a
227
+ * path its load found absent: a change to it reloads the system. */
228
+ isSystemDependency(path: string): boolean;
101
229
  /** Loader-reported dependency paths for bundler watch registration. */
102
230
  systemDependencyPaths: string[];
231
+ /** Paths the system load looked for and found absent: a host registers
232
+ * them for creation, which reloads the system. */
233
+ systemMissingPaths: string[];
103
234
  private systemDependencyHashes;
104
235
  private lastSystemPropsHash;
105
236
  private artifactRecords;
@@ -109,9 +240,20 @@ export declare class ExtractionSession {
109
240
  /** Release handle for the in-process owner slot AND the directory's
110
241
  * on-disk owner record, taken and released as one; null when unheld. */
111
242
  private releasePublicationClaim;
112
- /** Session identity, claimed once per PROCESS and adopted by every later
113
- * session instance so all compilers share one artifact tree. */
243
+ /** The build this session takes part in: every participant of one build
244
+ * shares its artifact tree and state; another build of the root never
245
+ * does. */
114
246
  readonly sessionId: string;
247
+ /** The log tier, from the option and `ANIMUS_DEBUG` at construction. */
248
+ private readonly verbosity;
249
+ /** The emission mode at construction: explicit, else `NODE_ENV`'s. It
250
+ * defaults minify. */
251
+ private readonly startupMode;
252
+ private joinedKey;
253
+ /** This instance as a participant of its build, once joined. */
254
+ private participant;
255
+ /** Closed: it left its build and starts no attempt until it reattaches. */
256
+ private detached;
115
257
  /** Epoch of the last published analysis; null seeds from disk so a
116
258
  * same-session restart with unchanged plans rewrites no bytes. */
117
259
  private lastEpochValue;
@@ -126,10 +268,18 @@ export declare class ExtractionSession {
126
268
  * the cache keeps every observed source so the repair publishes them in
127
269
  * one generation; a successful publication clears it. */
128
270
  private heldRejection;
129
- /** A system reload an aborted parse rejected. Its dependency hashes already
130
- * advanced, so the first batch that passes the parse check publishes
131
- * through the full pipeline, which loads the latest system. */
271
+ /** Reload debt: a full pass that failed with a committed system to
272
+ * hold, in development or under an aborted parse, owed until one
273
+ * succeeds. runFullPipeline alone sets and clears it. While it stands, every batch retries the full reload and
274
+ * nothing publishes against the stale system. Under an aborted parse's
275
+ * hold, the first batch that passes the parse check pays it instead. */
132
276
  private systemReloadOwed;
277
+ /** The system dependencies the last committed full pass recorded: a
278
+ * failed reload watches these and its own, never an earlier failure's. */
279
+ private lastGoodSystemDependencies;
280
+ /** Whether the current full pass's system load recorded its
281
+ * dependencies. */
282
+ private attemptRecordedSystemDependencies;
133
283
  /** Monotonic readiness witness: flips true on the first complete
134
284
  * publication and never regresses; every later status write carries it. */
135
285
  private firstEmissionComplete;
@@ -139,16 +289,26 @@ export declare class ExtractionSession {
139
289
  private lcssTargets;
140
290
  constructor(options: SessionOptions, host?: SessionHost);
141
291
  /** Forgets that `relPath` could not be read once an incremental pass reads
142
- * or deletes it, so its cost stops holding pruning off. */
292
+ * or deletes it, so its cost stops holding pruning off. Whether one was
293
+ * recorded. */
143
294
  private clearIngestionFailure;
144
295
  get sessionDir(): string;
296
+ /** This session's build of its root, joined on first use: a participant
297
+ * whose options differ from the build's fails with
298
+ * `SessionConfigurationConflict`. */
299
+ get key(): SessionKey;
145
300
  get verbose(): boolean;
301
+ /** The engine of this session's build. */
302
+ private engine;
303
+ private get logger();
146
304
  private log;
147
305
  private warn;
148
306
  private reportErrors;
149
307
  /** A build-strictness check that failed: a build throws `message`, and
150
308
  * development reports it at error level and takes the non-strict path. */
151
309
  private strictFailure;
310
+ /** A finding `strict` turns into a strict failure; otherwise a warning. */
311
+ private strictOrWarn;
152
312
  private now;
153
313
  private elapsed;
154
314
  /** Diagnostic prefix label — drivers set their own so one host's errors
@@ -159,6 +319,11 @@ export declare class ExtractionSession {
159
319
  lastExternalOutcomes: ExternalPackageOutcome[];
160
320
  /** The analysed kits' descriptors, from the last discovery. */
161
321
  kitDescriptors: KitDescriptorRecord[];
322
+ /** Package name → the real root of the instance discovery read. */
323
+ private packageInstances;
324
+ /** What this attempt's analysis read of the discovered packages; the
325
+ * build's shared record once the analysis publishes. */
326
+ private packageReadRecord;
162
327
  /** Component count of the last published analysis, null before the first —
163
328
  * read by drivers instead of re-parsing the manifest JSON every cycle. */
164
329
  lastComponentCount: number | null;
@@ -167,40 +332,116 @@ export declare class ExtractionSession {
167
332
  /** When superseded asset copies leave `assets/`: `'full-pipeline'` suits a
168
333
  * driver serving the dir in place, `'every-cycle'` one republishing it. */
169
334
  staleAssetPruning: 'full-pipeline' | 'every-cycle';
170
- /** Driver-owned STRUCTURAL exclusions, joined to the never-replaceable set
171
- * — never the user list, whose presence flips the replace semantics. */
335
+ /** The host's output directories (`outputExclusion`): root-relative,
336
+ * excluded as literal path prefixes from discovery and from package
337
+ * collection, whatever the user's list. */
172
338
  structuralExclude: string[];
173
339
  private scanConfigMemo;
174
- /** Per-pattern exclusion hit counts from this session's matcher —
175
- * driver-consumed reporting surface (dead-pattern visibility). */
176
- getExcludeStats(): ReadonlyMap<string, number>;
177
340
  /** Resolve the scan configuration from options — the single source of the
178
- * exclude/extension policy shared by the full and incremental pipelines. */
179
- private resolveScanConfig;
180
- /** Concurrent entries wait for publication, then ingest their own batch;
181
- * content hashes coalesce observations the prior analysis covered. */
341
+ * exclude/extension policy shared by the full and incremental pipelines,
342
+ * and by a host classifying its own file events. */
343
+ get scanConfig(): {
344
+ excludeMatcher: ExcludeMatcher;
345
+ extensionsSet: ReadonlySet<string>;
346
+ };
347
+ /** Records the batch before any await, so an attempt that rejects never
348
+ * erases it, and settles with the attempt that takes it (SA20). */
182
349
  handleWatchUpdate(changes: WatchChanges): Promise<void>;
183
350
  private routeWatchUpdate;
184
- /** The shared owner gate for local and forwarded batches. Every waiter
185
- * rechecks the slot so distinct batches publish in arrival order. */
186
- ingestForwardedBatch(changes: WatchChanges): Promise<void>;
351
+ /** Queues the batch's observations under a new revision, synchronously.
352
+ * A batch equivalent to what the active attempt took joins that attempt:
353
+ * a second compiler's report of the same edit never analyzes it twice. */
354
+ private recordObservation;
355
+ /** Settles with the attempt that takes `revision`. Another attempt's
356
+ * rejection is its own callers': this observation runs after it. */
357
+ private awaitObservation;
358
+ /** Starts one attempt over every untaken observation of the build. */
359
+ startObservedAttempt(): boolean;
360
+ /** Every untaken observation of the build, and whether a full rescan is
361
+ * requested, which the caller's attempt now covers. */
362
+ private takeObservations;
363
+ /** `transaction` settles every waiting revision, and is the active
364
+ * attempt equivalent observations join until it settles. */
365
+ private settleTaken;
366
+ /** Registers one attempt in the build's single-flight slot before it
367
+ * processes, so a nested full system reload inherits the gate rather
368
+ * than clear it, and clears the slot when it settles either way. */
369
+ private runWatchAttempt;
187
370
  private processWatchUpdate;
188
371
  /** An aborted parse fails the attempt in every mode with a terminal
189
372
  * `failed` status, so the last commit stays current, and holds publication
190
373
  * until an attempt without one publishes. */
191
374
  private throwOnAbortedParse;
375
+ /** Held sources whose bytes the host supplied and which the disk no
376
+ * longer matches: a full read not carrying them (`carried`) would
377
+ * publish the disk's bytes in their place. */
378
+ private staleHostSuppliedSources;
379
+ /** `raw` is the attempt's input by original path, from which a
380
+ * quarantined original stays held: every later pass re-ingests it, so it
381
+ * keeps counting as skipped (nothing it renders is pruned) and its fix
382
+ * edit compares against its bytes. */
192
383
  private publishSourceIngestion;
193
384
  /** Full analysis + publication, registered in the one in-flight
194
- * transaction slot; a nested reload leaves the enclosing registration. */
195
- runFullPipeline(pending?: Array<[string, string]>): Promise<void>;
385
+ * transaction slot; a nested reload leaves the enclosing registration.
386
+ * `sources` are bytes a host already read (see WatchChanges.sources):
387
+ * the full read uses them, and those of the observations it takes, in
388
+ * place of the disk. */
389
+ runFullPipeline(pending?: Array<[string, string]>, sources?: ReadonlyMap<string, string>): Promise<void>;
390
+ /** This attempt's system dependencies: the files its load read, and the
391
+ * paths it found absent, whose creation is a system change. */
392
+ private recordSystemDependencies;
393
+ /** Records the configuration inputs and, for a tsconfig-aliased host,
394
+ * re-reads its aliases. */
395
+ private readConfigInputs;
396
+ /** What hosts watch for assets, and what the last-good generation
397
+ * reported about its kits and packages, which a failed full pass must
398
+ * leave in place. */
399
+ private snapshotWatchRegistration;
400
+ /** Restores the last-good registration. The system dependencies are the
401
+ * last committed pass's and, when its load got that far, this failed
402
+ * attempt's (spec §2.3): a fix to any of them must reach the owed reload,
403
+ * and an earlier failure's are replaced, never accumulated. */
404
+ private restoreWatchRegistration;
405
+ /** The build's authority becomes the system this session committed, with
406
+ * it and never before: a failed reload leaves the committed one, and the
407
+ * context proofs made against it. A committed reload discards every
408
+ * other context's proof, even for an unchanged system: the reload may
409
+ * have changed what another context resolves, so each loads again. */
410
+ private commitSystemAuthority;
196
411
  private runPipelineTransaction;
412
+ /** The full pass's analysis inputs, less any file whose real path lies in
413
+ * an output directory, each reported. */
414
+ private withoutOutputSources;
197
415
  /** Per-generation source state captured as ONE object so the restore
198
416
  * cannot omit a member; deep-copied fields are mutated in place. */
199
417
  private snapshotSourceState;
200
418
  private restoreSourceState;
201
- /** Release this session's publication claim so a successor may publish.
202
- * Idempotent, and scoped to this session's own claim. */
419
+ /** The system under `context`: the one load path for the build's
420
+ * authority and for a participant checking its own context. */
421
+ private loadSystemUnder;
422
+ /** What the system loader reads of this participant besides the root, as
423
+ * stable text: its conditions and extension order. */
424
+ private resolutionContextText;
425
+ private resolutionContextLabel;
426
+ /** One agreed system authority (SA5): a participant whose resolution
427
+ * context differs from the one the build's system was loaded under loads
428
+ * it once under its own, and proceeds only on the same system. Otherwise
429
+ * it throws, naming both contexts, whichever participant came first. */
430
+ agreeWithSystemAuthority(): void;
431
+ /** Release this session's publication claim so a successor may publish,
432
+ * and leave the build, which retires with its last participant.
433
+ * Idempotent; `reattach` joins the build again. */
203
434
  close(): void;
435
+ /** A closed participant attaching again: its private analysis is stale,
436
+ * so it is discarded, and it joins its build again. Idempotent. */
437
+ reattach(): void;
438
+ /** Brings a reattached participant up to date with a full rescan of a
439
+ * live build, which reconciles deletions too; true then. A retired build
440
+ * is false: the host starts it as at first. */
441
+ catchUp(): Promise<boolean>;
442
+ /** Queues a full rescan under a new revision. It is never equivalent to
443
+ * an active attempt: only a full read covers it. */
444
+ private recordRescan;
204
445
  /** Reset analysis state for a system reload: write guards go back to null
205
446
  * and reseed from the disk envelopes on the next publication. */
206
447
  resetForHmr(): void;
@@ -226,6 +467,22 @@ export declare class ExtractionSession {
226
467
  private beginStatusAttempt;
227
468
  /** Write the session's analysis-status artifact. Terminal states
228
469
  * (idle/failed) close the attempt. */
470
+ /** Where the host resolves a path alias the analysis reads to another
471
+ * file (spec §2.2 A7, report only), and how the two were compared. */
472
+ private compareAliasesWithHost;
473
+ /** Whether the file at a real path declares builder chains, by the
474
+ * engine's own parse: a module that does, served unread, renders with
475
+ * empty classes. One the engine cannot read counts as one that does. */
476
+ private rendersBuilder;
477
+ /**
478
+ * An import the host resolved while bundling (spec §2.2 A4), reported as
479
+ * the comparison reports it: webpack resolves each module's requests with
480
+ * the resolve options of the rules that module matches, which its
481
+ * resolver, asked outside a compilation, does not apply. `importer` and
482
+ * `resolved` are absolute. A finding the comparison already reported is
483
+ * not repeated; an error-level one throws in a build.
484
+ */
485
+ reportHostResolution(importer: string, request: string, resolved: string): void;
229
486
  private writeAnalysisStatus;
230
487
  /** Record watch events observed during the debounce window so a loader
231
488
  * running ahead of the analysis has evidence to wait on. */
@@ -255,9 +512,12 @@ export declare class ExtractionSession {
255
512
  * warm restores keep working; a sibling with a live owner is exempt. */
256
513
  private reconcileSiblingEpochs;
257
514
  /** The pid of `siblingDir`'s live owner, or null when nothing proves one.
258
- * Our own pid is never one — publication is process-exclusive. A missing,
259
- * undecodable or unreadable claim all mean no owner: the opposite default
260
- * from the CLI lock check on purpose, so do not unify the two. */
515
+ * A tree whose build is registered in this process is ours and live,
516
+ * claim or no claim: a publisher's close() releases the claim while the
517
+ * build's other participants still serve from it. Otherwise a missing,
518
+ * undecodable or unreadable claim, or one naming our own pid, means no
519
+ * owner: the opposite default from the CLI lock check on purpose, so do
520
+ * not unify the two. */
261
521
  private liveSiblingOwnerPid;
262
522
  /** Epoch value held by this session's on-disk artifact, or null when
263
523
  * absent, unreadable, or not the expected schema. */
@@ -271,16 +531,18 @@ export declare class ExtractionSession {
271
531
  /** Write one artifact write-then-rename, so a cross-process reader never
272
532
  * sees a torn file; the tmp name carries the pid to keep writers apart. */
273
533
  private writeSessionArtifact;
534
+ /** How an asset's bytes are fingerprinted, of a file or of bytes read:
535
+ * the engine's fast fingerprint where it has both, the content hash
536
+ * otherwise, so the two always agree. */
537
+ private assetFingerprints;
274
538
  /** Copy each asset() specifier's bytes, from every sheet, into `assets/`
275
539
  * under a content-hashed name and substitute a url relative to
276
540
  * styles.css. */
277
541
  private substituteAssetReferences;
542
+ private reportUnresolvableAsset;
278
543
  private trackAssetDependency;
279
544
  /** Resolve an asset specifier through the shared resolver, with one
280
545
  * last resort: a discovered source entry's package root. */
281
546
  private resolveAssetSpecifier;
282
547
  }
283
- /** Sync `assets/` to the current build's file set; per-entry failures are
284
- * tolerated — a concurrent session may have removed the same file. */
285
- export declare function pruneStaleAssets(assetsDir: string, expected: ReadonlySet<string>): void;
286
548
  //# sourceMappingURL=extraction-session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extraction-session.d.ts","sourceRoot":"","sources":["../../session/extraction-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extraction-session.d.ts","sourceRoot":"","sources":["../../session/extraction-session.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,14 @@
1
- export { ExtractionSession, pruneStaleAssets } from './extraction-session';
2
- export type { SessionHost, SessionOptions, WatchChanges, } from './extraction-session';
1
+ export { COALESCING_WINDOW_MS, CoalescingWindow } from './coalescing-window';
2
+ export type { WindowClock, WindowTimer } from './coalescing-window';
3
+ export { pruneStaleAssets } from '../pipeline/asset-copies';
4
+ export { ExtractionSession } from './extraction-session';
5
+ export type { SessionHost, SessionLogger, SessionOptions, SessionOutcome, SessionPublication, WatchChanges, } from './extraction-session';
3
6
  export { checkLockLiveness, CLI_LOCK_HEARTBEAT_INTERVAL_MS, CLI_LOCK_STALE_AFTER_MS, collectSessionAssets, decodeCommitRecord, holdDirectoryClaim, isLockHolderAlive, lockRecordBytes, readCliLockRecord, verifyCommitRecord, } from './published-set';
4
7
  export type { CliLockLiveness, CliLockRecord, CommitRecord, SessionAsset, } from './published-set';
5
8
  export { analysisCommitPath, analysisInputsPath, analysisStatusPath, ANIMUS_ARTIFACT_DIR, ANIMUS_CSS_MODULE_ID, CLI_COMMIT_ARTIFACT, CLI_LOCK_ARTIFACT, MANIFEST_ARTIFACT, manifestPath, readJsonEnvelope, replacementEpochPath, SESSION_ASSETS_DIR, sessionArtifactDir, STYLES_ARTIFACT, stylesPath, SYSTEM_PROPS_ARTIFACT, systemPropsPath, TURBOPACK_SYSTEM_PROPS_ID, } from './session-paths';
6
9
  export type { AnalysisCommit, AnalysisStatus, SessionEnvelope, } from './session-paths';
7
10
  export { runSessionPipeline, startTurbopackWatcher, } from './turbopack-orchestrator';
8
11
  export type { TurbopackWatcherHandle, TurbopackWatchOutcome, } from './turbopack-orchestrator';
9
- export { engineApi, getAnalysisStartedPromise, getAnalyzedHashes, getManifestJson, getReplacementEpoch, getSessionArtifactDir, getSharedCss, getSharedExternalDirs, getSharedExternalEntries, getSharedExternalSideEffects, getSharedSystemProps, resetAnalysisStartedPromise, setAnalysisStartedPromise, setSharedEngine, } from './singleton';
12
+ export { engineApi, getAnalysisStartedPromise, getAnalyzedHashes, getManifestJson, getReplacementEpoch, getSessionArtifactDir, getSharedCss, getSharedExternalDirs, getSharedExternalEntries, getSharedExternalSideEffects, getSharedSystemProps, resetAnalysisStartedPromise, setAnalysisStartedPromise, createBuildId, engineFactory, engineHandle, releaseEngineHandle, EnvironmentFailure, findSession, joinSession, requireEngine, SessionConfigurationConflict, sessionKey, } from './singleton';
13
+ export type { EngineHandleOptions, SessionKey, SessionState, } from './singleton';
10
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../session/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,YAAY,EACV,WAAW,EACX,cAAc,EACd,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,iBAAiB,EACjB,8BAA8B,EAC9B,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,qBAAqB,EACrB,eAAe,EACf,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,cAAc,EACd,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,SAAS,EACT,yBAAyB,EACzB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,qBAAqB,EACrB,wBAAwB,EACxB,4BAA4B,EAC5B,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,eAAe,GAChB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../session/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EACV,WAAW,EACX,aAAa,EACb,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,iBAAiB,EACjB,8BAA8B,EAC9B,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,qBAAqB,EACrB,eAAe,EACf,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,cAAc,EACd,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,SAAS,EACT,yBAAyB,EACzB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,qBAAqB,EACrB,wBAAwB,EACxB,4BAA4B,EAC5B,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,aAAa,EACb,4BAA4B,EAC5B,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,mBAAmB,EACnB,UAAU,EACV,YAAY,GACb,MAAM,aAAa,CAAC"}
@@ -12,6 +12,9 @@ export interface CliLockRecord {
12
12
  pid: number;
13
13
  startedAt?: string;
14
14
  heartbeatAt?: string;
15
+ /** The build whose session holds the directory: one process can hold
16
+ * several builds' directories at once. */
17
+ build?: string;
15
18
  }
16
19
  export declare const CLI_LOCK_HEARTBEAT_INTERVAL_MS = 60000;
17
20
  /** A claim whose heartbeat is older than this has no live holder. Five missed
@@ -34,12 +37,14 @@ export type CliLockRead = {
34
37
  export declare function readCliLockRecord(dir: string): CliLockRead;
35
38
  export declare function isLockHolderAlive(pid: number): boolean;
36
39
  export declare function checkLockLiveness(record: CliLockRecord): CliLockLiveness;
37
- export declare function lockRecordBytes(startedAt: string): string;
40
+ export declare function lockRecordBytes(startedAt: string, build?: string): string;
38
41
  export interface DirectoryClaimOptions {
39
42
  /** `in-place` (default) keeps a watched directory's mtime still — renaming
40
43
  * every interval starts phantom rebuilds; `rename` avoids torn reads. */
41
44
  write?: 'in-place' | 'rename';
42
45
  startedAt?: string;
46
+ /** The build whose session holds the directory. */
47
+ build?: string;
43
48
  }
44
49
  export declare function holdDirectoryClaim(dir: string, options?: DirectoryClaimOptions): () => void;
45
50
  export interface SessionAsset {
@@ -1 +1 @@
1
- {"version":3,"file":"published-set.d.ts","sourceRoot":"","sources":["../../session/published-set.ts"],"names":[],"mappings":"AA2CA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,CAAC,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5C;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAiBrE;AAED;gFACgF;AAChF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAuBxD;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,8BAA8B,QAAS,CAAC;AAErD;8EAC8E;AAC9E,eAAO,MAAM,uBAAuB,QAAqC,CAAC;AAE1E,MAAM,MAAM,eAAe,GAAG;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/E,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC;AAgB9B,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CA0B1D;AAYD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOtD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,eAAe,CAmBxE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAMzD;AAID,MAAM,WAAW,qBAAqB;IACpC;8EAC0E;IAC1E,KAAK,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,qBAA0B,GAClC,MAAM,IAAI,CAwCZ;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;4EAC4E;AAC5E,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,YAAY,EAAE,CAOhB"}
1
+ {"version":3,"file":"published-set.d.ts","sourceRoot":"","sources":["../../session/published-set.ts"],"names":[],"mappings":"AA2CA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,CAAC,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5C;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAiBrE;AAED;gFACgF;AAChF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAuBxD;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;+CAC2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,8BAA8B,QAAS,CAAC;AAErD;8EAC8E;AAC9E,eAAO,MAAM,uBAAuB,QAAqC,CAAC;AAE1E,MAAM,MAAM,eAAe,GAAG;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/E,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC;AAgB9B,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CA4B1D;AAYD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOtD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,eAAe,CAmBxE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAQzE;AAID,MAAM,WAAW,qBAAqB;IACpC;8EAC0E;IAC1E,KAAK,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,qBAA0B,GAClC,MAAM,IAAI,CAwCZ;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;4EAC4E;AAC5E,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,YAAY,EAAE,CAOhB"}