@dzhechkov/harness-core 0.8.31 → 0.8.33

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 (53) hide show
  1. package/.dz-manifest.json +97 -37
  2. package/README.md +30 -0
  3. package/dist/apply-leg.d.ts +13 -1
  4. package/dist/apply-leg.d.ts.map +1 -1
  5. package/dist/apply-leg.js +123 -10
  6. package/dist/apply-leg.js.map +1 -1
  7. package/dist/embed-socket-path.d.ts +65 -0
  8. package/dist/embed-socket-path.d.ts.map +1 -0
  9. package/dist/embed-socket-path.js +100 -0
  10. package/dist/embed-socket-path.js.map +1 -0
  11. package/dist/index.d.ts +9 -2
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +7 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/operations.d.ts.map +1 -1
  16. package/dist/operations.js +66 -3
  17. package/dist/operations.js.map +1 -1
  18. package/dist/packed-install-smoke.d.ts +108 -0
  19. package/dist/packed-install-smoke.d.ts.map +1 -0
  20. package/dist/packed-install-smoke.js +172 -0
  21. package/dist/packed-install-smoke.js.map +1 -0
  22. package/dist/publish-sibling-drift.d.ts +67 -0
  23. package/dist/publish-sibling-drift.d.ts.map +1 -0
  24. package/dist/publish-sibling-drift.js +262 -0
  25. package/dist/publish-sibling-drift.js.map +1 -0
  26. package/dist/publish.d.ts +44 -0
  27. package/dist/publish.d.ts.map +1 -1
  28. package/dist/publish.js +243 -24
  29. package/dist/publish.js.map +1 -1
  30. package/dist/qe-bridge.d.ts +16 -0
  31. package/dist/qe-bridge.d.ts.map +1 -1
  32. package/dist/qe-bridge.js +1 -0
  33. package/dist/qe-bridge.js.map +1 -1
  34. package/dist/release.d.ts +19 -0
  35. package/dist/release.d.ts.map +1 -1
  36. package/dist/release.js +81 -2
  37. package/dist/release.js.map +1 -1
  38. package/dist/setup.d.ts +36 -0
  39. package/dist/setup.d.ts.map +1 -1
  40. package/dist/setup.js +96 -2
  41. package/dist/setup.js.map +1 -1
  42. package/package.json +23 -23
  43. package/sbom.json +186 -36
  44. package/src/apply-leg.ts +123 -10
  45. package/src/embed-socket-path.ts +113 -0
  46. package/src/index.ts +35 -2
  47. package/src/operations.ts +67 -3
  48. package/src/packed-install-smoke.ts +273 -0
  49. package/src/publish-sibling-drift.ts +293 -0
  50. package/src/publish.ts +280 -25
  51. package/src/qe-bridge.ts +14 -0
  52. package/src/release.ts +103 -2
  53. package/src/setup.ts +108 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packed-install-smoke.js","sourceRoot":"","sources":["../src/packed-install-smoke.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Sibling-drift gate — feature `publish-sibling-drift-gate`, ADR-001 (Decision 1).
3
+ *
4
+ * `rewriteWorkspaceSpecs` (publish.ts) pins a sibling `workspace:^`/`workspace:~`/`workspace:*`
5
+ * dependency to the EXACT version currently on disk. That version may be published on the
6
+ * registry carrying an OLDER build than the workspace — the sibling changed without a version
7
+ * bump. The pinned range then resolves at install time to a package that does not match the
8
+ * workspace's current behavior, and a fresh `npm install` reproduces whatever regressed.
9
+ *
10
+ * Detection (ADR-001, Decision 1, alternative А3 — accepted): hash every file under the
11
+ * published tarball's `dist/**` plus its `package.json` (with `version`/`gitHead`/`_*` fields
12
+ * stripped, since those legitimately differ between the registry copy and the workspace copy),
13
+ * and compare against the same hash of the workspace copy. Any difference is drift. A published
14
+ * `dist/index.js` missing an export the workspace's `dist/index.js` declares is surfaced as a
15
+ * SECOND, more readable signal (`missingExports`) — the exact shape of the 2026-09-13 incident
16
+ * ("does not provide an export named …") — but the hash comparison is the load-bearing check:
17
+ * it also catches behavior changes that keep every export name intact.
18
+ *
19
+ * Network access is NOT this module's concern (NFR-2: pure, no network, fixture-testable):
20
+ * `fetchPublished` is injected. The CLI implementation packs the sibling from the registry via
21
+ * `npm pack <name>@<version>` into a temp dir; tests inject a local directory. A fetch that
22
+ * returns `null` (offline, 404, timeout) is reported as `'unavailable'` — never silently treated
23
+ * as `'same'` (the "a gate that infers a pass from silence breaks on the next failure path"
24
+ * lesson): the caller decides whether `'unavailable'` blocks or is overridden.
25
+ *
26
+ * @packageDocumentation
27
+ */
28
+ export type SiblingDriftStatus = 'same' | 'drift' | 'unavailable';
29
+ export interface SiblingDriftResult {
30
+ readonly name: string;
31
+ readonly version: string;
32
+ readonly status: SiblingDriftStatus;
33
+ /** Relative paths (dist/** or package.json) whose hash differs, or is present on only one side. */
34
+ readonly changedFiles: readonly string[];
35
+ /** Export names the workspace's dist/index.js declares that the published one lacks (А2, secondary signal). */
36
+ readonly missingExports: readonly string[];
37
+ /** Present only when status === 'unavailable'. */
38
+ readonly reason?: string;
39
+ }
40
+ export interface FetchedPublished {
41
+ /** Directory holding the extracted published tarball (contains dist/, package.json). */
42
+ readonly dir: string;
43
+ }
44
+ /** Fetch the published build of `name@version`. `null` = unavailable (network/404/timeout). */
45
+ export type FetchPublished = (name: string, version: string) => FetchedPublished | null;
46
+ export interface DetectSiblingDriftOptions {
47
+ readonly dependencies: Record<string, string> | undefined;
48
+ /** pnpm rewrites `workspace:` in peerDependencies too (mirrors findUnpublishedWorkspaceFloors). */
49
+ readonly peerDependencies?: Record<string, string> | undefined;
50
+ /** AM-3: ships and pins exactly like `dependencies` — checked the same way. */
51
+ readonly optionalDependencies?: Record<string, string> | undefined;
52
+ /** name -> version on DISK, for every package in the workspace. */
53
+ readonly workspaceVersions: ReadonlyMap<string, string>;
54
+ /** name -> absolute package dir on disk, for every package in the workspace. */
55
+ readonly workspaceDirs: ReadonlyMap<string, string>;
56
+ /** Names being published in THIS batch — they publish fresh, so drift cannot be measured against them. */
57
+ readonly batch: ReadonlySet<string>;
58
+ readonly fetchPublished: FetchPublished;
59
+ }
60
+ /**
61
+ * For every `workspace:`-declared dependency of a package that is NOT part of `batch` (i.e. will
62
+ * be pinned to whatever is already on the registry, not published fresh in this run), compare the
63
+ * build that will be pinned against the workspace copy. Pure: all IO (fetch, fs) is either
64
+ * injected or scoped to reading local dist/package.json files — no network call is made here.
65
+ */
66
+ export declare function detectSiblingDrift(opts: DetectSiblingDriftOptions): SiblingDriftResult[];
67
+ //# sourceMappingURL=publish-sibling-drift.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish-sibling-drift.d.ts","sourceRoot":"","sources":["../src/publish-sibling-drift.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAMH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,CAAC;AAElE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,mGAAmG;IACnG,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,+GAA+G;IAC/G,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,kDAAkD;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,wFAAwF;IACxF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,+FAA+F;AAC/F,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,gBAAgB,GAAG,IAAI,CAAC;AAExF,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC1D,mGAAmG;IACnG,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC/D,+EAA+E;IAC/E,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACnE,mEAAmE;IACnE,QAAQ,CAAC,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxD,gFAAgF;IAChF,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,0GAA0G;IAC1G,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;CACzC;AAsID;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,yBAAyB,GAAG,kBAAkB,EAAE,CAqFxF"}
@@ -0,0 +1,262 @@
1
+ /**
2
+ * Sibling-drift gate — feature `publish-sibling-drift-gate`, ADR-001 (Decision 1).
3
+ *
4
+ * `rewriteWorkspaceSpecs` (publish.ts) pins a sibling `workspace:^`/`workspace:~`/`workspace:*`
5
+ * dependency to the EXACT version currently on disk. That version may be published on the
6
+ * registry carrying an OLDER build than the workspace — the sibling changed without a version
7
+ * bump. The pinned range then resolves at install time to a package that does not match the
8
+ * workspace's current behavior, and a fresh `npm install` reproduces whatever regressed.
9
+ *
10
+ * Detection (ADR-001, Decision 1, alternative А3 — accepted): hash every file under the
11
+ * published tarball's `dist/**` plus its `package.json` (with `version`/`gitHead`/`_*` fields
12
+ * stripped, since those legitimately differ between the registry copy and the workspace copy),
13
+ * and compare against the same hash of the workspace copy. Any difference is drift. A published
14
+ * `dist/index.js` missing an export the workspace's `dist/index.js` declares is surfaced as a
15
+ * SECOND, more readable signal (`missingExports`) — the exact shape of the 2026-09-13 incident
16
+ * ("does not provide an export named …") — but the hash comparison is the load-bearing check:
17
+ * it also catches behavior changes that keep every export name intact.
18
+ *
19
+ * Network access is NOT this module's concern (NFR-2: pure, no network, fixture-testable):
20
+ * `fetchPublished` is injected. The CLI implementation packs the sibling from the registry via
21
+ * `npm pack <name>@<version>` into a temp dir; tests inject a local directory. A fetch that
22
+ * returns `null` (offline, 404, timeout) is reported as `'unavailable'` — never silently treated
23
+ * as `'same'` (the "a gate that infers a pass from silence breaks on the next failure path"
24
+ * lesson): the caller decides whether `'unavailable'` blocks or is overridden.
25
+ *
26
+ * @packageDocumentation
27
+ */
28
+ import { existsSync, readFileSync, readdirSync, statSync } from 'node:fs';
29
+ import { createHash } from 'node:crypto';
30
+ import { join, relative } from 'node:path';
31
+ function listFilesRecursive(root, dir) {
32
+ if (!existsSync(dir))
33
+ return [];
34
+ const out = [];
35
+ for (const entry of readdirSync(dir).sort()) {
36
+ const abs = join(dir, entry);
37
+ const st = statSync(abs);
38
+ if (st.isDirectory())
39
+ out.push(...listFilesRecursive(root, abs));
40
+ else
41
+ out.push(relative(root, abs));
42
+ }
43
+ return out;
44
+ }
45
+ function sha256(data) {
46
+ return createHash('sha256').update(data).digest('hex');
47
+ }
48
+ /**
49
+ * package.json PARSED and validated. `null` (never `undefined`) means "this side cannot be built
50
+ * at all" — AM-3: a missing or unparseable manifest on EITHER side must surface as `unavailable`,
51
+ * never as an empty/omitted comparison field that a hash-mismatch loop could silently read as
52
+ * "nothing differs here".
53
+ */
54
+ function readManifest(dir) {
55
+ const p = join(dir, 'package.json');
56
+ if (!existsSync(p))
57
+ return null;
58
+ try {
59
+ const raw = JSON.parse(readFileSync(p, 'utf-8'));
60
+ return raw !== null && typeof raw === 'object' && !Array.isArray(raw) ? raw : null;
61
+ }
62
+ catch {
63
+ return null;
64
+ }
65
+ }
66
+ /** package.json normalized for comparison: strip fields that legitimately differ (version, gitHead, npm-internal `_*`). */
67
+ function normalizedPackageJsonText(raw) {
68
+ // Lead edit after the live dry-run on the hub (2026-09-13 10:40): the packer strips
69
+ // `scripts.prepublishOnly`, drops devDependencies/publishConfig and rewrites `workspace:` specs to
70
+ // pinned versions — every freshly published sibling read as "1 file drifted". Compare only what
71
+ // shapes the SHIPPED behavior: entry points, bins, files, engines, and dependency NAMES (values
72
+ // are the workspace-floor preflight's business, not this gate's).
73
+ //
74
+ // AM-4: `imports`/`browser`/`sideEffects`/`man` added — each one changes what a consumer actually
75
+ // resolves or ships, exactly like `main`/`exports`/`bin` already did; omitting them was a real gap
76
+ // the round-1 review named (finding 4), not a stylistic nicety.
77
+ const SHIPPING_FIELDS = [
78
+ 'name', 'type', 'main', 'module', 'types', 'exports', 'imports', 'browser', 'sideEffects', 'man',
79
+ 'bin', 'files', 'engines', 'os', 'cpu',
80
+ ];
81
+ const DEP_TABLES = ['dependencies', 'peerDependencies', 'optionalDependencies'];
82
+ const kept = {};
83
+ for (const key of SHIPPING_FIELDS)
84
+ if (key in raw)
85
+ kept[key] = raw[key];
86
+ for (const key of DEP_TABLES) {
87
+ const table = raw[key];
88
+ if (table !== null && typeof table === 'object')
89
+ kept[key] = Object.keys(table).sort();
90
+ }
91
+ return JSON.stringify(kept);
92
+ }
93
+ /** Every relative path (from `dir`) that a `bin` field in a parsed manifest resolves to. */
94
+ function binPaths(raw) {
95
+ const bin = raw['bin'];
96
+ if (typeof bin === 'string')
97
+ return [bin.replace(/^\.\//, '')];
98
+ if (bin !== null && typeof bin === 'object' && !Array.isArray(bin)) {
99
+ return Object.values(bin)
100
+ .filter((v) => typeof v === 'string')
101
+ .map((v) => v.replace(/^\.\//, ''));
102
+ }
103
+ return [];
104
+ }
105
+ /**
106
+ * AM-4: the round-1 gate hashed only `dist/**` — a changed bin script, template, or other
107
+ * top-level asset that ships (declared in `package.json#files`, or the `bin` target itself) was
108
+ * invisible to the drift check even though npm ships it byte-for-byte. This is a documented,
109
+ * honest APPROXIMATION of "the whole tarball inventory" (the literal ADR wording), not a full
110
+ * re-implementation of npm's pack-time file-inclusion rules (`.npmignore`, default excludes,
111
+ * nested `.gitignore`): it walks `dist/**` (unconditional — the common case) plus every path
112
+ * named in `files` (directories walked recursively, files hashed directly) plus every resolved
113
+ * `bin` target, deduplicated. A package with no `files` field declared keeps exactly the
114
+ * pre-amendment `dist/**`-only scope, named here rather than silently pretended-away.
115
+ */
116
+ function shippedInventoryDirs(dir, raw) {
117
+ const rels = new Set(['dist']);
118
+ const files = raw['files'];
119
+ if (Array.isArray(files)) {
120
+ for (const entry of files) {
121
+ if (typeof entry === 'string' && entry.trim() !== '')
122
+ rels.add(entry.replace(/^\.\//, '').replace(/\/+$/, ''));
123
+ }
124
+ }
125
+ for (const bin of binPaths(raw))
126
+ rels.add(bin);
127
+ return [...rels].filter((rel) => existsSync(join(dir, rel)));
128
+ }
129
+ /** Hash the shipped inventory (AM-4) plus the normalized package.json, keyed by a stable relative path. */
130
+ function hashTree(dir, manifest) {
131
+ const map = new Map();
132
+ for (const rel of shippedInventoryDirs(dir, manifest)) {
133
+ const abs = join(dir, rel);
134
+ if (statSync(abs).isDirectory()) {
135
+ for (const sub of listFilesRecursive(abs, abs))
136
+ map.set(join(rel, sub), sha256(readFileSync(join(abs, sub))));
137
+ }
138
+ else {
139
+ map.set(rel, sha256(readFileSync(abs)));
140
+ }
141
+ }
142
+ map.set('package.json', sha256(normalizedPackageJsonText(manifest)));
143
+ return map;
144
+ }
145
+ function extractExportNames(source) {
146
+ const names = new Set();
147
+ for (const m of source.matchAll(/export\s+(?:const|function|class|async\s+function)\s+([A-Za-z0-9_$]+)/g)) {
148
+ names.add(m[1]);
149
+ }
150
+ for (const m of source.matchAll(/export\s*\{([^}]*)\}/g)) {
151
+ for (const part of m[1].split(',')) {
152
+ const name = part.trim().split(/\s+as\s+/).pop()?.trim();
153
+ if (name)
154
+ names.add(name);
155
+ }
156
+ }
157
+ return names;
158
+ }
159
+ /** А2 (ADR-001, rejected as the sole signal, kept as a readable second signal). */
160
+ function missingExportNames(publishedDir, workspaceDir) {
161
+ const pubIndex = join(publishedDir, 'dist', 'index.js');
162
+ const wsIndex = join(workspaceDir, 'dist', 'index.js');
163
+ if (!existsSync(pubIndex) || !existsSync(wsIndex))
164
+ return [];
165
+ const pubExports = extractExportNames(readFileSync(pubIndex, 'utf-8'));
166
+ const wsExports = extractExportNames(readFileSync(wsIndex, 'utf-8'));
167
+ return [...wsExports].filter((n) => !pubExports.has(n)).sort();
168
+ }
169
+ /**
170
+ * For every `workspace:`-declared dependency of a package that is NOT part of `batch` (i.e. will
171
+ * be pinned to whatever is already on the registry, not published fresh in this run), compare the
172
+ * build that will be pinned against the workspace copy. Pure: all IO (fetch, fs) is either
173
+ * injected or scoped to reading local dist/package.json files — no network call is made here.
174
+ */
175
+ export function detectSiblingDrift(opts) {
176
+ const results = [];
177
+ const seen = new Set();
178
+ // AM-3: `optionalDependencies` ships and pins EXACTLY like `dependencies`/`peerDependencies` —
179
+ // checking only the first two let a stale optional sibling through untouched (round-1 finding 3).
180
+ const entries = [
181
+ ...Object.entries(opts.dependencies ?? {}),
182
+ ...Object.entries(opts.peerDependencies ?? {}),
183
+ ...Object.entries(opts.optionalDependencies ?? {}),
184
+ ];
185
+ for (const [dep, spec] of entries) {
186
+ if (!String(spec).startsWith('workspace:'))
187
+ continue;
188
+ if (seen.has(dep))
189
+ continue;
190
+ seen.add(dep);
191
+ if (opts.batch.has(dep))
192
+ continue; // publishes fresh in this batch — nothing stale to drift from
193
+ const version = opts.workspaceVersions.get(dep);
194
+ const workspaceDir = opts.workspaceDirs.get(dep);
195
+ // AM-3: a `workspace:`-spec'd dependency this caller does not recognize used to be silently
196
+ // SKIPPED — an input this gate cannot build is a HARD gate that cannot say "same", never a
197
+ // quiet pass-through (round-1 finding 3: pnpm would die packing it anyway; die here, named).
198
+ if (version === undefined || workspaceDir === undefined) {
199
+ results.push({
200
+ name: dep,
201
+ version: version ?? '(not in workspace)',
202
+ status: 'unavailable',
203
+ changedFiles: [],
204
+ missingExports: [],
205
+ reason: `${dep} is declared workspace:-protocol but is not a known workspace package`,
206
+ });
207
+ continue;
208
+ }
209
+ const fetched = opts.fetchPublished(dep, version);
210
+ if (fetched === null) {
211
+ results.push({
212
+ name: dep,
213
+ version,
214
+ status: 'unavailable',
215
+ changedFiles: [],
216
+ missingExports: [],
217
+ reason: `could not fetch ${dep}@${version} from the registry (network unavailable or the version was not found)`,
218
+ });
219
+ continue;
220
+ }
221
+ // AM-3: a missing/unparseable package.json on EITHER side must not silently drop out of the
222
+ // comparison (the old `hashTree` simply omitted the key, which — with an empty/matching
223
+ // `dist/**` on both sides — could report `same` about an input that was never actually read).
224
+ const publishedManifest = readManifest(fetched.dir);
225
+ const workspaceManifest = readManifest(workspaceDir);
226
+ if (publishedManifest === null || workspaceManifest === null) {
227
+ const side = publishedManifest === null ? 'the published tarball' : 'the workspace copy';
228
+ results.push({
229
+ name: dep,
230
+ version,
231
+ status: 'unavailable',
232
+ changedFiles: [],
233
+ missingExports: [],
234
+ reason: `${dep}@${version}: package.json in ${side} is missing or not valid JSON — cannot compare`,
235
+ });
236
+ continue;
237
+ }
238
+ const publishedHashes = hashTree(fetched.dir, publishedManifest);
239
+ const workspaceHashes = hashTree(workspaceDir, workspaceManifest);
240
+ const allKeys = new Set([...publishedHashes.keys(), ...workspaceHashes.keys()]);
241
+ const changed = [];
242
+ for (const key of allKeys) {
243
+ if (publishedHashes.get(key) !== workspaceHashes.get(key))
244
+ changed.push(key);
245
+ }
246
+ changed.sort();
247
+ if (changed.length === 0) {
248
+ results.push({ name: dep, version, status: 'same', changedFiles: [], missingExports: [] });
249
+ }
250
+ else {
251
+ results.push({
252
+ name: dep,
253
+ version,
254
+ status: 'drift',
255
+ changedFiles: changed,
256
+ missingExports: missingExportNames(fetched.dir, workspaceDir),
257
+ });
258
+ }
259
+ }
260
+ return results;
261
+ }
262
+ //# sourceMappingURL=publish-sibling-drift.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish-sibling-drift.js","sourceRoot":"","sources":["../src/publish-sibling-drift.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAuC3C,SAAS,kBAAkB,CAAC,IAAY,EAAE,GAAW;IACnD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAChC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,EAAE,CAAC,WAAW,EAAE;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;;YAC5D,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,MAAM,CAAC,IAAqB;IACnC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACpC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACjD,OAAO,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,GAA+B,CAAC,CAAC,CAAC,IAAI,CAAC;IAClH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,2HAA2H;AAC3H,SAAS,yBAAyB,CAAC,GAA4B;IAC7D,oFAAoF;IACpF,mGAAmG;IACnG,gGAAgG;IAChG,gGAAgG;IAChG,kEAAkE;IAClE,EAAE;IACF,kGAAkG;IAClG,mGAAmG;IACnG,gEAAgE;IAChE,MAAM,eAAe,GAAG;QACtB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK;QAChG,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK;KACvC,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,cAAc,EAAE,kBAAkB,EAAE,sBAAsB,CAAC,CAAC;IAChF,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,eAAe;QAAE,IAAI,GAAG,IAAI,GAAG;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACxE,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAgC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpH,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,4FAA4F;AAC5F,SAAS,QAAQ,CAAC,GAA4B;IAC5C,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;IACvB,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/D,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACnE,OAAO,MAAM,CAAC,MAAM,CAAC,GAA8B,CAAC;aACjD,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;aACjD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,oBAAoB,CAAC,GAAW,EAAE,GAA4B;IACrE,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QACjH,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC;QAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,2GAA2G;AAC3G,SAAS,QAAQ,CAAC,GAAW,EAAE,QAAiC;IAC9D,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3B,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YAChC,KAAK,MAAM,GAAG,IAAI,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;gBAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc;IACxC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,wEAAwE,CAAC,EAAE,CAAC;QAC1G,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;IACnB,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;QACzD,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC;YACzD,IAAI,IAAI;gBAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,mFAAmF;AACnF,SAAS,kBAAkB,CAAC,YAAoB,EAAE,YAAoB;IACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACvD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7D,MAAM,UAAU,GAAG,kBAAkB,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,kBAAkB,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAA+B;IAChE,MAAM,OAAO,GAAyB,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,+FAA+F;IAC/F,kGAAkG;IAClG,MAAM,OAAO,GAAG;QACd,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QAC1C,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC;QAC9C,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC;KACnD,CAAC;IACF,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,SAAS;QACrD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,8DAA8D;QACjG,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD,4FAA4F;QAC5F,2FAA2F;QAC3F,6FAA6F;QAC7F,IAAI,OAAO,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,OAAO,IAAI,oBAAoB;gBACxC,MAAM,EAAE,aAAa;gBACrB,YAAY,EAAE,EAAE;gBAChB,cAAc,EAAE,EAAE;gBAClB,MAAM,EAAE,GAAG,GAAG,uEAAuE;aACtF,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,GAAG;gBACT,OAAO;gBACP,MAAM,EAAE,aAAa;gBACrB,YAAY,EAAE,EAAE;gBAChB,cAAc,EAAE,EAAE;gBAClB,MAAM,EAAE,mBAAmB,GAAG,IAAI,OAAO,uEAAuE;aACjH,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,4FAA4F;QAC5F,wFAAwF;QACxF,8FAA8F;QAC9F,MAAM,iBAAiB,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,iBAAiB,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QACrD,IAAI,iBAAiB,KAAK,IAAI,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;YAC7D,MAAM,IAAI,GAAG,iBAAiB,KAAK,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,oBAAoB,CAAC;YACzF,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,GAAG;gBACT,OAAO;gBACP,MAAM,EAAE,aAAa;gBACrB,YAAY,EAAE,EAAE;gBAChB,cAAc,EAAE,EAAE;gBAClB,MAAM,EAAE,GAAG,GAAG,IAAI,OAAO,qBAAqB,IAAI,gDAAgD;aACnG,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;QACjE,MAAM,eAAe,GAAG,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,eAAe,CAAC,IAAI,EAAE,EAAE,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACxF,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,GAAG;gBACT,OAAO;gBACP,MAAM,EAAE,OAAO;gBACf,YAAY,EAAE,OAAO;gBACrB,cAAc,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/dist/publish.d.ts CHANGED
@@ -49,6 +49,30 @@ export interface PublishResult {
49
49
  * and the CLI prints it. Absent on a real publish, where every gate actually ran.
50
50
  */
51
51
  readonly notVerified?: readonly string[] | undefined;
52
+ /**
53
+ * AM-1 (feature publish-sibling-drift-gate): sha256 of the EXACT tarball bytes that were
54
+ * packed-install-smoked AND handed to `npm publish` — present only when `opts.packedTransport`
55
+ * was used for a live (non-dry-run) publish. Printed and audited so "the smoke tested the same
56
+ * bytes that shipped" is a checkable claim, not an architectural assertion.
57
+ */
58
+ readonly sha256?: string | undefined;
59
+ }
60
+ /**
61
+ * One package's packed, smoke-eligible artifact — the unit `opts.packedTransport.smoke` receives
62
+ * (AM-1). Produced ONCE per package, after its OWN bump/build/sign steps, from a package.json
63
+ * whose `workspace:` specs are already resolved to each sibling's PINNED version (the same
64
+ * transformation `rewriteWorkspaceSpecs` performs) — so the tarball is exactly what `npm publish
65
+ * <tgzPath>` will later ship, byte for byte.
66
+ */
67
+ export interface PackedTarballArtifact {
68
+ readonly name: string;
69
+ readonly newVersion: string;
70
+ readonly tgzPath: string;
71
+ readonly sha256: string;
72
+ }
73
+ export interface PackedTransportSmokeVerdict {
74
+ readonly ok: boolean;
75
+ readonly reason?: string | undefined;
52
76
  }
53
77
  /** Positive read-back evidence returned by the configured public-mirror command. */
54
78
  export interface MirrorReceipt {
@@ -290,6 +314,26 @@ export declare function publishPackages(monorepoRoot: string, opts?: {
290
314
  probe?: ((name: string, version: string) => boolean | Omit<ProbeOutcome, 'attempt'>) | undefined;
291
315
  /** Pause injection between receipt probes. The default blocks for the requested milliseconds. */
292
316
  sleep?: ((milliseconds: number) => void) | undefined;
317
+ /**
318
+ * AM-1 (feature publish-sibling-drift-gate). OPT-IN — omitted (the default), this function is
319
+ * byte-identical to its pre-amendment self: every package still publishes via `pnpm publish`
320
+ * FROM ITS DIRECTORY (`publishArgv`), exactly as every existing test of this function expects.
321
+ *
322
+ * When provided, the transport for THIS call's batch changes: each package is packed ONCE
323
+ * (after its own bump/build/sign, workspace: specs resolved to each sibling's PINNED version —
324
+ * a landed batch sibling's NEW version, an out-of-batch sibling's disk version, mirroring what
325
+ * `rewriteWorkspaceSpecs`/pnpm itself would resolve), collected, and `smoke` is called with
326
+ * EVERY package's packed artifact before ANY of them is published. Only on `smoke.ok === true`
327
+ * does each artifact get `npm publish <tgzPath>` — the exact bytes that were smoked (a sha256
328
+ * recheck immediately before that call refuses on any mismatch, defending the "same bytes"
329
+ * claim against anything that could touch the tarball in between).
330
+ */
331
+ packedTransport?: {
332
+ /** Absolute, pre-created directory to write tarballs into (this function never mkdirs it). */
333
+ readonly packDestDir: string;
334
+ /** Judge the WHOLE batch's packed artifacts together — nothing publishes until this passes. */
335
+ readonly smoke: (artifacts: readonly PackedTarballArtifact[]) => PackedTransportSmokeVerdict;
336
+ } | undefined;
293
337
  }): PublishReport;
294
338
  export {};
295
339
  //# sourceMappingURL=publish.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}