@animus-ui/extract 0.1.25 → 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.
- package/crates/extract-v2/animus-extract-v2.darwin-arm64.node +0 -0
- package/crates/extract-v2/animus-extract-v2.linux-arm64-gnu.node +0 -0
- package/crates/extract-v2/animus-extract-v2.linux-x64-gnu.node +0 -0
- package/crates/extract-v2/index.d.ts +101 -6
- package/dist/index.cjs +48 -5
- package/dist/index.mjs +2 -2
- package/dist/pipeline/alias-agreement.d.ts +107 -0
- package/dist/pipeline/alias-agreement.d.ts.map +1 -0
- package/dist/pipeline/analyze-project-args.d.ts +7 -2
- package/dist/pipeline/analyze-project-args.d.ts.map +1 -1
- package/dist/pipeline/asset-copies.d.ts +20 -0
- package/dist/pipeline/asset-copies.d.ts.map +1 -0
- package/dist/pipeline/built-in-asset-types.d.ts +9 -0
- package/dist/pipeline/built-in-asset-types.d.ts.map +1 -0
- package/dist/pipeline/core-options.d.ts +31 -7
- package/dist/pipeline/core-options.d.ts.map +1 -1
- package/dist/pipeline/discover-packages.d.ts +98 -12
- package/dist/pipeline/discover-packages.d.ts.map +1 -1
- package/dist/pipeline/engine-adapter.d.ts +41 -3
- package/dist/pipeline/engine-adapter.d.ts.map +1 -1
- package/dist/pipeline/engine-retirement.d.ts +7 -1
- package/dist/pipeline/engine-retirement.d.ts.map +1 -1
- package/dist/pipeline/extension-policy.d.ts +95 -0
- package/dist/pipeline/extension-policy.d.ts.map +1 -0
- package/dist/pipeline/host-assets.d.ts +32 -0
- package/dist/pipeline/host-assets.d.ts.map +1 -0
- package/dist/pipeline/host-expansions.d.ts +92 -0
- package/dist/pipeline/host-expansions.d.ts.map +1 -0
- package/dist/pipeline/host-extensions.d.ts +64 -0
- package/dist/pipeline/host-extensions.d.ts.map +1 -0
- package/dist/pipeline/host-package-resolver.d.ts +40 -0
- package/dist/pipeline/host-package-resolver.d.ts.map +1 -0
- package/dist/pipeline/index.d.ts +32 -8
- package/dist/pipeline/index.d.ts.map +1 -1
- package/dist/pipeline/kit-publication.d.ts.map +1 -1
- package/dist/pipeline/manifest-diagnostics.d.ts +25 -4
- package/dist/pipeline/manifest-diagnostics.d.ts.map +1 -1
- package/dist/pipeline/manifest-schema.d.ts +16 -0
- package/dist/pipeline/manifest-schema.d.ts.map +1 -1
- package/dist/pipeline/output-targets.d.ts +52 -0
- package/dist/pipeline/output-targets.d.ts.map +1 -0
- package/dist/pipeline/probe-evidence.d.ts +58 -0
- package/dist/pipeline/probe-evidence.d.ts.map +1 -0
- package/dist/pipeline/run-analysis.d.ts +26 -0
- package/dist/pipeline/run-analysis.d.ts.map +1 -1
- package/dist/pipeline/runtime-import.d.ts +10 -0
- package/dist/pipeline/runtime-import.d.ts.map +1 -0
- package/dist/pipeline/served-files.d.ts +16 -0
- package/dist/pipeline/served-files.d.ts.map +1 -0
- package/dist/pipeline/source-corpus.d.ts +4 -0
- package/dist/pipeline/source-corpus.d.ts.map +1 -1
- package/dist/pipeline/source-ingestion.d.ts +37 -5
- package/dist/pipeline/source-ingestion.d.ts.map +1 -1
- package/dist/pipeline/system-config.d.ts +18 -0
- package/dist/pipeline/system-config.d.ts.map +1 -1
- package/dist/pipeline/system-instances.d.ts +27 -0
- package/dist/pipeline/system-instances.d.ts.map +1 -0
- package/dist/pipeline/tsconfig-paths.d.ts +4 -0
- package/dist/pipeline/tsconfig-paths.d.ts.map +1 -1
- package/dist/pipeline/vite-expansions.d.ts +40 -0
- package/dist/pipeline/vite-expansions.d.ts.map +1 -0
- package/dist/pipeline/webpack-expansions.d.ts +55 -0
- package/dist/pipeline/webpack-expansions.d.ts.map +1 -0
- package/dist/pipeline/workspace-packages.d.ts +13 -0
- package/dist/pipeline/workspace-packages.d.ts.map +1 -0
- package/dist/{pipeline-YGWpNr_Z.mjs → pipeline-BzMQ_Z0M.mjs} +2285 -773
- package/dist/{pipeline-DOgKR4VZ.cjs → pipeline-DyUf-eKZ.cjs} +2556 -768
- package/dist/session/coalescing-window.d.ts +34 -0
- package/dist/session/coalescing-window.d.ts.map +1 -0
- package/dist/session/extraction-session.d.ts +297 -35
- package/dist/session/extraction-session.d.ts.map +1 -1
- package/dist/session/index.d.ts +7 -3
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/published-set.d.ts +6 -1
- package/dist/session/published-set.d.ts.map +1 -1
- package/dist/session/resolve-packages.d.ts +9 -5
- package/dist/session/resolve-packages.d.ts.map +1 -1
- package/dist/session/singleton.d.ts +218 -53
- package/dist/session/singleton.d.ts.map +1 -1
- package/dist/session/turbopack-orchestrator.d.ts.map +1 -1
- package/dist/session.cjs +1462 -510
- package/dist/session.mjs +1430 -489
- 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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
|
90
|
-
*
|
|
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
|
-
/**
|
|
113
|
-
*
|
|
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
|
-
/**
|
|
130
|
-
*
|
|
131
|
-
*
|
|
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
|
-
/**
|
|
171
|
-
*
|
|
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
|
-
|
|
180
|
-
|
|
181
|
-
|
|
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
|
-
/**
|
|
185
|
-
*
|
|
186
|
-
|
|
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
|
-
|
|
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
|
-
/**
|
|
202
|
-
*
|
|
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
|
-
*
|
|
259
|
-
*
|
|
260
|
-
*
|
|
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":"
|
|
1
|
+
{"version":3,"file":"extraction-session.d.ts","sourceRoot":"","sources":["../../session/extraction-session.ts"],"names":[],"mappings":"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"}
|
package/dist/session/index.d.ts
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export type {
|
|
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,
|
|
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,
|
|
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;
|
|
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"}
|