checkly 8.22.0 → 8.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/ai-context/skills-command/references/configure-playwright-checks.md +24 -19
  2. package/dist/commands/debug/parse-project.js +3 -0
  3. package/dist/commands/debug/parse-project.js.map +1 -1
  4. package/dist/commands/deploy.js +3 -0
  5. package/dist/commands/deploy.js.map +1 -1
  6. package/dist/commands/pw-test.js +3 -0
  7. package/dist/commands/pw-test.js.map +1 -1
  8. package/dist/commands/test.js +3 -0
  9. package/dist/commands/test.js.map +1 -1
  10. package/dist/config.d.ts +1 -1
  11. package/dist/config.js.map +1 -1
  12. package/dist/constructs/playwright-check-bundle.d.ts +5 -5
  13. package/dist/constructs/playwright-check-bundle.js.map +1 -1
  14. package/dist/constructs/project.js +5 -2
  15. package/dist/constructs/project.js.map +1 -1
  16. package/dist/constructs/session.d.ts +2 -1
  17. package/dist/constructs/session.js +2 -1
  18. package/dist/constructs/session.js.map +1 -1
  19. package/dist/index.d.ts +1 -0
  20. package/dist/services/check-parser/bundler.d.ts +79 -8
  21. package/dist/services/check-parser/bundler.js +567 -9
  22. package/dist/services/check-parser/bundler.js.map +1 -1
  23. package/dist/services/check-parser/cache-hash.d.ts +141 -17
  24. package/dist/services/check-parser/cache-hash.js +78 -12
  25. package/dist/services/check-parser/cache-hash.js.map +1 -1
  26. package/dist/services/check-parser/faux-package.d.ts +5 -0
  27. package/dist/services/check-parser/faux-package.js +9 -1
  28. package/dist/services/check-parser/faux-package.js.map +1 -1
  29. package/dist/services/check-parser/lockfile-pruner.d.ts +104 -0
  30. package/dist/services/check-parser/lockfile-pruner.js +1107 -0
  31. package/dist/services/check-parser/lockfile-pruner.js.map +1 -0
  32. package/dist/services/check-parser/package-files/package-manager.d.ts +34 -0
  33. package/dist/services/check-parser/package-files/package-manager.js +131 -3
  34. package/dist/services/check-parser/package-files/package-manager.js.map +1 -1
  35. package/dist/services/check-parser/package-files/pnpmfile.d.ts +40 -0
  36. package/dist/services/check-parser/package-files/pnpmfile.js +322 -0
  37. package/dist/services/check-parser/package-files/pnpmfile.js.map +1 -0
  38. package/dist/services/check-parser/package-files/resolver.d.ts +6 -1
  39. package/dist/services/check-parser/package-files/resolver.js +34 -0
  40. package/dist/services/check-parser/package-files/resolver.js.map +1 -1
  41. package/dist/services/check-parser/package-files/workspace.d.ts +16 -1
  42. package/dist/services/check-parser/package-files/workspace.js +17 -2
  43. package/dist/services/check-parser/package-files/workspace.js.map +1 -1
  44. package/dist/services/check-parser/package-prune.d.ts +68 -0
  45. package/dist/services/check-parser/package-prune.js +274 -0
  46. package/dist/services/check-parser/package-prune.js.map +1 -0
  47. package/dist/services/check-parser/parser.js +9 -0
  48. package/dist/services/check-parser/parser.js.map +1 -1
  49. package/dist/services/check-parser/patched-dependencies.d.ts +133 -0
  50. package/dist/services/check-parser/patched-dependencies.js +428 -0
  51. package/dist/services/check-parser/patched-dependencies.js.map +1 -0
  52. package/dist/services/checkly-config-loader.d.ts +164 -10
  53. package/dist/services/checkly-config-loader.js +39 -0
  54. package/dist/services/checkly-config-loader.js.map +1 -1
  55. package/dist/services/embedded-packages/cache.d.ts +8 -4
  56. package/dist/services/embedded-packages/cache.js +27 -6
  57. package/dist/services/embedded-packages/cache.js.map +1 -1
  58. package/dist/services/embedded-packages/diagnostics.d.ts +129 -0
  59. package/dist/services/embedded-packages/diagnostics.js +212 -0
  60. package/dist/services/embedded-packages/diagnostics.js.map +1 -0
  61. package/dist/services/embedded-packages/lockfile-filter.d.ts +20 -0
  62. package/dist/services/embedded-packages/lockfile-filter.js +40 -0
  63. package/dist/services/embedded-packages/lockfile-filter.js.map +1 -0
  64. package/dist/services/embedded-packages/lockfile-packages.d.ts +31 -2
  65. package/dist/services/embedded-packages/lockfile-packages.js +234 -30
  66. package/dist/services/embedded-packages/lockfile-packages.js.map +1 -1
  67. package/dist/services/embedded-packages/materializer.d.ts +19 -5
  68. package/dist/services/embedded-packages/materializer.js +445 -91
  69. package/dist/services/embedded-packages/materializer.js.map +1 -1
  70. package/dist/services/embedded-packages/npmrc.d.ts +163 -21
  71. package/dist/services/embedded-packages/npmrc.js +440 -75
  72. package/dist/services/embedded-packages/npmrc.js.map +1 -1
  73. package/dist/services/embedded-packages/spec.d.ts +89 -17
  74. package/dist/services/embedded-packages/spec.js +199 -30
  75. package/dist/services/embedded-packages/spec.js.map +1 -1
  76. package/dist/services/embedded-packages/url.d.ts +39 -0
  77. package/dist/services/embedded-packages/url.js +60 -0
  78. package/dist/services/embedded-packages/url.js.map +1 -0
  79. package/dist/services/playwright-project-bundler.js +27 -23
  80. package/dist/services/playwright-project-bundler.js.map +1 -1
  81. package/dist/services/runner/registries.d.ts +144 -0
  82. package/dist/services/runner/registries.js +232 -0
  83. package/dist/services/runner/registries.js.map +1 -0
  84. package/oclif.manifest.json +1 -1
  85. package/package.json +5 -5
@@ -5,7 +5,22 @@
5
5
  export interface LockfileRegistryPackage {
6
6
  name: string;
7
7
  version: string;
8
- integrity: string;
8
+ /**
9
+ * SRI integrity of the registry tarball. Absent only for `yarn.lock`
10
+ * entries: Yarn Berry checksums hash yarn's own cache archive, not the
11
+ * registry tarball, so the tarball integrity is resolved from registry
12
+ * metadata at materialization time instead. Entries without either hash
13
+ * are excluded by the parsers, so `lockfileChecksum` is always present
14
+ * when this is absent.
15
+ */
16
+ integrity?: string;
17
+ /**
18
+ * The lockfile's own content pin when it is not an SRI tarball hash
19
+ * (Yarn Berry's `checksum` value). Used in place of `integrity` where a
20
+ * stable content identifier known at plan time is needed (the dependency
21
+ * cache hash).
22
+ */
23
+ lockfileChecksum?: string;
9
24
  /**
10
25
  * The full tarball URL when the lockfile records one (npm's `resolved`,
11
26
  * pnpm's `resolution.tarball`). When absent, the URL is derived from the
@@ -38,11 +53,25 @@ export interface LockfilePackages {
38
53
  export declare class UnsupportedLockfileError extends Error {
39
54
  constructor(message: string);
40
55
  }
56
+ /**
57
+ * Whether a lockfile is pnpm's. Callers use this to decide which package
58
+ * manager's credential conventions apply to the project.
59
+ */
60
+ export declare function isPnpmLockfile(lockfilePath: string): boolean;
41
61
  /**
42
62
  * Enumerates every package entry in a lockfile, classified into embeddable
43
63
  * registry packages and excluded (git/file/link/integrity-less) entries.
44
- * Supports `pnpm-lock.yaml` (v6/v9) and `package-lock.json` (v2/v3).
64
+ * Supports `pnpm-lock.yaml` (v6/v9), `package-lock.json` (v2/v3),
65
+ * `bun.lock` (v1) and Yarn Berry's `yarn.lock`.
45
66
  */
46
67
  export declare function loadLockfilePackages(lockfilePath: string): Promise<LockfilePackages>;
68
+ /**
69
+ * Content-based variant of {@link loadLockfilePackages} for lockfiles that
70
+ * exist only in memory (e.g. a pruned copy of the bundled lockfile). The
71
+ * format is dispatched on the lockfile's filename.
72
+ */
73
+ export declare function parseLockfilePackagesContent(content: string, lockfileName: string): LockfilePackages;
47
74
  export declare function parsePnpmLockfilePackages(content: string): LockfilePackages;
75
+ export declare function parseBunLockfilePackages(content: string): LockfilePackages;
76
+ export declare function parseYarnLockfilePackages(content: string): LockfilePackages;
48
77
  export declare function parseNpmLockfilePackages(content: string): LockfilePackages;
@@ -9,24 +9,58 @@ export class UnsupportedLockfileError extends Error {
9
9
  this.name = 'UnsupportedLockfileError';
10
10
  }
11
11
  }
12
+ const PNPM_LOCKFILE = 'pnpm-lock.yaml';
13
+ /**
14
+ * Whether a lockfile is pnpm's. Callers use this to decide which package
15
+ * manager's credential conventions apply to the project.
16
+ */
17
+ export function isPnpmLockfile(lockfilePath) {
18
+ return path.basename(lockfilePath) === PNPM_LOCKFILE;
19
+ }
12
20
  /**
13
21
  * Enumerates every package entry in a lockfile, classified into embeddable
14
22
  * registry packages and excluded (git/file/link/integrity-less) entries.
15
- * Supports `pnpm-lock.yaml` (v6/v9) and `package-lock.json` (v2/v3).
23
+ * Supports `pnpm-lock.yaml` (v6/v9), `package-lock.json` (v2/v3),
24
+ * `bun.lock` (v1) and Yarn Berry's `yarn.lock`.
16
25
  */
17
26
  export async function loadLockfilePackages(lockfilePath) {
18
27
  const basename = path.basename(lockfilePath);
19
28
  const content = await fs.readFile(lockfilePath, 'utf8');
20
- switch (basename) {
21
- case 'pnpm-lock.yaml':
29
+ return parseLockfilePackagesContent(content, basename);
30
+ }
31
+ /**
32
+ * Content-based variant of {@link loadLockfilePackages} for lockfiles that
33
+ * exist only in memory (e.g. a pruned copy of the bundled lockfile). The
34
+ * format is dispatched on the lockfile's filename.
35
+ */
36
+ export function parseLockfilePackagesContent(content, lockfileName) {
37
+ switch (lockfileName) {
38
+ case PNPM_LOCKFILE:
22
39
  return parsePnpmLockfilePackages(content);
23
40
  case 'package-lock.json':
24
41
  return parseNpmLockfilePackages(content);
42
+ case 'bun.lock':
43
+ return parseBunLockfilePackages(content);
44
+ case 'yarn.lock':
45
+ return parseYarnLockfilePackages(content);
46
+ case 'bun.lockb':
47
+ throw new UnsupportedLockfileError(`Embedded packages are not supported for bun's binary lockfile (bun.lockb).`
48
+ + ` Regenerate a text lockfile with \`bun install --save-text-lockfile\`.`);
25
49
  default:
26
- throw new UnsupportedLockfileError(`Embedded packages are not supported for '${basename}' lockfiles yet.`
27
- + ` Only pnpm (pnpm-lock.yaml) and npm (package-lock.json) are currently supported.`);
50
+ throw new UnsupportedLockfileError(`Embedded packages are not supported for '${lockfileName}' lockfiles yet.`
51
+ + ` Only pnpm (pnpm-lock.yaml), npm (package-lock.json), bun (bun.lock)`
52
+ + ` and Yarn Berry (yarn.lock) are currently supported.`);
28
53
  }
29
54
  }
55
+ /**
56
+ * Whether a directory-link target points outside the workspace the bundle
57
+ * carries. Shared by the parsers' link classification: an in-workspace link
58
+ * is part of the project (safe for a wildcard to skip silently), while an
59
+ * escaping one is not.
60
+ */
61
+ function linkTargetEscapesWorkspace(target) {
62
+ return target === '..' || target.startsWith('../') || path.isAbsolute(target);
63
+ }
30
64
  /**
31
65
  * Strips a pnpm peer-dependency suffix (`(react@18.2.0)`) from a package
32
66
  * key. The v9 `packages` section doesn't use them (they live in
@@ -36,6 +70,60 @@ function stripPeerSuffix(key) {
36
70
  const cut = key.indexOf('(');
37
71
  return cut === -1 ? key : key.slice(0, cut);
38
72
  }
73
+ /**
74
+ * Splits a `name@ref` package key at the first `@` past the name. Searching
75
+ * from the front (after the scope, when present) keeps the name intact when
76
+ * the ref itself contains `@`, as git refs do
77
+ * (`foo@git+ssh://git@github.com/...`). Shared by the pnpm and bun parsers,
78
+ * whose keys use the same shape.
79
+ */
80
+ function splitPackageKey(key) {
81
+ const searchFrom = key.startsWith('@') ? key.indexOf('/') + 1 : 1;
82
+ const separator = searchFrom > 0 ? key.indexOf('@', searchFrom) : -1;
83
+ if (separator <= 0) {
84
+ return undefined;
85
+ }
86
+ return { name: key.slice(0, separator), ref: key.slice(separator + 1) };
87
+ }
88
+ /**
89
+ * Classifies one `name@ref` entry into a registry package or an unfetchable
90
+ * exclusion, appending to `result`. Shared by the pnpm and bun parsers,
91
+ * which record the same information in different places (pnpm's
92
+ * `resolution.integrity`/`resolution.tarball` vs bun's tuple indices).
93
+ */
94
+ function classifyRegistryEntry(result, name, ref, integrity, tarball) {
95
+ // Validate with semver but keep the ref as written: semver.valid()
96
+ // normalizes away build metadata (`1.0.0+sha.abc` → `1.0.0`), which
97
+ // would break both version-pin matching and the derived tarball URL.
98
+ const version = semver.valid(ref) !== null ? ref : null;
99
+ if (version === null) {
100
+ result.excluded.push({
101
+ name,
102
+ reason: `'${name}@${ref}' resolves to a git, file or URL dependency,`
103
+ + ` which cannot be embedded as a registry tarball`,
104
+ kind: 'unfetchable',
105
+ });
106
+ return;
107
+ }
108
+ if (typeof integrity !== 'string' || integrity === '') {
109
+ result.excluded.push({
110
+ name,
111
+ version,
112
+ reason: `the lockfile records no integrity hash for '${name}@${version}',`
113
+ + ` which is required to embed it`,
114
+ kind: 'unfetchable',
115
+ });
116
+ return;
117
+ }
118
+ result.registry.push({
119
+ name,
120
+ version,
121
+ integrity,
122
+ // Only absolute http(s) URLs are usable for downloading; anything
123
+ // else falls back to the registry-derived URL.
124
+ tarballUrl: typeof tarball === 'string' && /^https?:/.test(tarball) ? tarball : undefined,
125
+ });
126
+ }
39
127
  export function parsePnpmLockfilePackages(content) {
40
128
  const data = parseYaml(content);
41
129
  // The version can arrive as a number: pnpm writes `lockfileVersion: '9.0'`
@@ -66,7 +154,7 @@ export function parsePnpmLockfilePackages(content) {
66
154
  // target escapes the workspace is not part of the project the
67
155
  // bundle carries.
68
156
  const target = version.slice('link:'.length);
69
- const escapesWorkspace = target === '..' || target.startsWith('../') || path.isAbsolute(target);
157
+ const escapesWorkspace = linkTargetEscapesWorkspace(target);
70
158
  result.excluded.push({
71
159
  name,
72
160
  reason: escapesWorkspace
@@ -88,54 +176,170 @@ export function parsePnpmLockfilePackages(content) {
88
176
  for (const [rawKey, rawEntry] of Object.entries(packages)) {
89
177
  // v6 keys have a leading slash (`/name@1.2.3`), v9 keys do not.
90
178
  const key = stripPeerSuffix(rawKey.startsWith('/') ? rawKey.slice(1) : rawKey);
91
- // The name/ref separator is the first `@` past the name. Searching from
92
- // the front (after the scope, when present) keeps the name intact when
93
- // the ref itself contains `@`, as git refs do
94
- // (`foo@git+ssh://git@github.com/...`).
95
- const searchFrom = key.startsWith('@') ? key.indexOf('/') + 1 : 1;
96
- const separator = searchFrom > 0 ? key.indexOf('@', searchFrom) : -1;
97
- if (separator <= 0) {
179
+ const split = splitPackageKey(key);
180
+ if (split === undefined) {
98
181
  continue;
99
182
  }
100
- const name = key.slice(0, separator);
101
- const ref = key.slice(separator + 1);
183
+ const { name, ref } = split;
102
184
  if (seen.has(`${name}@${ref}`)) {
103
185
  continue;
104
186
  }
105
187
  seen.add(`${name}@${ref}`);
106
- // Validate with semver but keep the ref as written: semver.valid()
107
- // normalizes away build metadata (`1.0.0+sha.abc` → `1.0.0`), which
108
- // would break both version-pin matching and the derived tarball URL.
109
- const version = semver.valid(ref) !== null ? ref : null;
188
+ const resolution = rawEntry?.resolution;
189
+ classifyRegistryEntry(result, name, ref, resolution?.integrity, resolution?.tarball);
190
+ }
191
+ return result;
192
+ }
193
+ export function parseBunLockfilePackages(content) {
194
+ // bun.lock is JSONC (bun writes trailing commas), hence JSON5.
195
+ const data = JSON5.parse(content);
196
+ const lockfileVersion = data?.lockfileVersion;
197
+ if (lockfileVersion !== 1) {
198
+ throw new UnsupportedLockfileError(`Embedded packages require bun lockfile version 1`
199
+ + ` (found '${lockfileVersion ?? 'unknown'}'). Regenerate the lockfile with a supported`
200
+ + ` bun version, or update the Checkly CLI if the lockfile is newer.`);
201
+ }
202
+ const packages = data?.packages;
203
+ const result = { registry: [], excluded: [] };
204
+ if (typeof packages !== 'object' || packages === null) {
205
+ return result;
206
+ }
207
+ const seen = new Set();
208
+ for (const tuple of Object.values(packages)) {
209
+ // Package values are tuples whose first element is `name@ref`; the rest
210
+ // varies by resolution kind (registry entries carry the tarball URL at
211
+ // index 1 — '' for the default registry — and the integrity hash at
212
+ // index 3). An unrecognizable value is skipped rather than guessed at,
213
+ // like unparseable pnpm keys. Aliased installs appear under the alias
214
+ // key but record the real package name in the tuple, so the split below
215
+ // always yields the real name.
216
+ if (!Array.isArray(tuple) || typeof tuple[0] !== 'string') {
217
+ continue;
218
+ }
219
+ const split = splitPackageKey(tuple[0]);
220
+ if (split === undefined) {
221
+ continue;
222
+ }
223
+ const { name, ref } = split;
224
+ if (seen.has(`${name}@${ref}`)) {
225
+ continue;
226
+ }
227
+ seen.add(`${name}@${ref}`);
228
+ if (ref.startsWith('workspace:')) {
229
+ result.excluded.push({
230
+ name,
231
+ reason: `'${name}' is a workspace package, which cannot be embedded as a registry tarball`,
232
+ kind: 'workspace',
233
+ });
234
+ continue;
235
+ }
236
+ classifyRegistryEntry(result, name, ref, tuple[3], tuple[1]);
237
+ }
238
+ return result;
239
+ }
240
+ export function parseYarnLockfilePackages(content) {
241
+ // Yarn Berry lockfiles are YAML; Yarn Classic's v1 format happens to
242
+ // YAML-parse too, so Berry is recognized by its __metadata section.
243
+ const data = parseYaml(content);
244
+ if (data === null || typeof data !== 'object') {
245
+ throw new UnsupportedLockfileError(`Embedded packages could not parse the yarn.lock file.`);
246
+ }
247
+ const metadata = data.__metadata;
248
+ if (metadata === null || typeof metadata !== 'object' || metadata.version === undefined) {
249
+ throw new UnsupportedLockfileError(`Embedded packages are not supported for Yarn Classic (v1) lockfiles.`
250
+ + ` Migrate to Yarn Berry, whose lockfile records the resolution data embedding needs.`);
251
+ }
252
+ const result = { registry: [], excluded: [] };
253
+ const seen = new Set();
254
+ for (const [key, entry] of Object.entries(data)) {
255
+ if (key === '__metadata') {
256
+ continue;
257
+ }
258
+ // Every entry records its resolved locator as `name@protocol:ref` in
259
+ // `resolution` — under an aliased or multi-descriptor key this is the
260
+ // REAL package locator, so names and refs are always taken from it. An
261
+ // unrecognizable entry is skipped rather than guessed at, like
262
+ // unparseable pnpm keys.
263
+ const resolution = entry?.resolution;
264
+ if (typeof resolution !== 'string') {
265
+ continue;
266
+ }
267
+ const split = splitPackageKey(resolution);
268
+ if (split === undefined) {
269
+ continue;
270
+ }
271
+ const { name, ref } = split;
272
+ if (seen.has(`${name}@${ref}`)) {
273
+ continue;
274
+ }
275
+ seen.add(`${name}@${ref}`);
276
+ if (ref.startsWith('workspace:')) {
277
+ result.excluded.push({
278
+ name,
279
+ reason: `'${name}' is a workspace package, which cannot be embedded as a registry tarball`,
280
+ kind: 'workspace',
281
+ });
282
+ continue;
283
+ }
284
+ // Directory links (`portal:`/`link:`) carry their target between the
285
+ // protocol and the `::locator=...` suffix. Same distinction as the
286
+ // pnpm/npm parsers: an in-workspace link is part of the project itself.
287
+ const linkPrefix = ['portal:', 'link:'].find(prefix => ref.startsWith(prefix));
288
+ if (linkPrefix !== undefined) {
289
+ const target = ref.slice(linkPrefix.length).split('::')[0];
290
+ const escapesWorkspace = linkTargetEscapesWorkspace(target);
291
+ result.excluded.push({
292
+ name,
293
+ reason: escapesWorkspace
294
+ ? `'${name}' is a local directory link outside the workspace, which cannot be embedded`
295
+ + ` as a registry tarball`
296
+ : `'${name}' is a workspace package, which cannot be embedded as a registry tarball`,
297
+ kind: escapesWorkspace ? 'unfetchable' : 'workspace',
298
+ });
299
+ continue;
300
+ }
301
+ // Anything that is not a plain `npm:<semver>` locator cannot be a
302
+ // registry tarball: patch:, git, https:, file:, exec:, or an npm ref
303
+ // whose version is not valid semver (a range or tag yarn left
304
+ // unresolved). file: targets an archive the bundle does not carry, so
305
+ // unlike directory links it warrants the unfetchable warning; builtin
306
+ // and user patches always coexist with the underlying npm: entry,
307
+ // which shadows the exclusion for reporting purposes.
308
+ const rawVersion = ref.startsWith('npm:') ? ref.slice('npm:'.length) : null;
309
+ // As in the other parsers: validate with semver but keep the version as
310
+ // written, preserving build metadata.
311
+ const version = rawVersion !== null && semver.valid(rawVersion) !== null ? rawVersion : null;
110
312
  if (version === null) {
111
313
  result.excluded.push({
112
314
  name,
113
- reason: `'${name}@${ref}' resolves to a git, file or URL dependency,`
315
+ reason: `'${name}@${ref}' resolves to a git, file, URL or patched dependency,`
114
316
  + ` which cannot be embedded as a registry tarball`,
115
317
  kind: 'unfetchable',
116
318
  });
117
319
  continue;
118
320
  }
119
- const resolution = rawEntry?.resolution;
120
- const integrity = resolution?.integrity;
121
- if (typeof integrity !== 'string' || integrity === '') {
321
+ // Berry's checksum hashes yarn's own cache archive rather than the
322
+ // registry tarball, so it cannot serve as SRI integrity the
323
+ // materializer resolves the tarball integrity from registry metadata
324
+ // instead. It IS a stable content pin, recorded for the dependency
325
+ // cache hash. Without one (checksumBehavior: ignore) the lockfile pins
326
+ // nothing, and the entry is excluded like the other parsers'
327
+ // integrity-less entries.
328
+ const checksum = entry?.checksum;
329
+ if (typeof checksum !== 'string' || checksum === '') {
122
330
  result.excluded.push({
123
331
  name,
124
332
  version,
125
- reason: `the lockfile records no integrity hash for '${name}@${version}',`
333
+ reason: `the lockfile records no checksum for '${name}@${version}',`
126
334
  + ` which is required to embed it`,
127
335
  kind: 'unfetchable',
128
336
  });
129
337
  continue;
130
338
  }
131
- const tarball = resolution?.tarball;
132
339
  result.registry.push({
133
340
  name,
134
341
  version,
135
- integrity,
136
- // Only absolute http(s) URLs are usable for downloading; anything
137
- // else falls back to the registry-derived URL.
138
- tarballUrl: typeof tarball === 'string' && /^https?:/.test(tarball) ? tarball : undefined,
342
+ lockfileChecksum: checksum,
139
343
  });
140
344
  }
141
345
  return result;
@@ -171,7 +375,7 @@ export function parseNpmLockfilePackages(content) {
171
375
  // part of the project the bundle carries, so a wildcard must not
172
376
  // skip it silently.
173
377
  const target = typeof entry?.resolved === 'string' ? entry.resolved : '';
174
- const escapesWorkspace = target === '..' || target.startsWith('../') || path.isAbsolute(target);
378
+ const escapesWorkspace = linkTargetEscapesWorkspace(target);
175
379
  result.excluded.push({
176
380
  name: key.slice(lastNodeModules + 'node_modules/'.length),
177
381
  reason: escapesWorkspace
@@ -1 +1 @@
1
- {"version":3,"file":"lockfile-packages.js","sourceRoot":"","sources":["../../../src/services/embedded-packages/lockfile-packages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lockfile-packages.js","sourceRoot":"","sources":["../../../src/services/embedded-packages/lockfile-packages.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,11 @@ export interface EmbeddedPackagesPlan {
47
47
  * to be added to the code bundle.
48
48
  */
49
49
  export interface MaterializedTarball extends PlannedTarball {
50
+ /**
51
+ * SRI integrity the tarball was verified against — the lockfile's, or for
52
+ * yarn.lock plans the one resolved from registry metadata.
53
+ */
54
+ integrity: string;
50
55
  /** Absolute path of the verified tarball in the CLI cache. */
51
56
  filePath: string;
52
57
  /** Bundle-root-relative archive path (POSIX). */
@@ -73,16 +78,25 @@ export interface EmbeddedPackagesMaterializerOptions {
73
78
  /**
74
79
  * Resolves the configured `bundle.packages.embed` specs against the
75
80
  * workspace lockfile (plan) and sources the selected tarballs into the CLI
76
- * cache (materialize), through a chain of CLI cache → npm cacache →
81
+ * cache (materializeTarballs), through a chain of CLI cache → npm cacache →
77
82
  * registry download, always verified against the lockfile integrity.
78
83
  *
79
- * Both stages memoize their in-flight promise: multiple Playwright checks
80
- * bundle concurrently, and validation and bundling share one instance per
81
- * parsed project, so the work runs exactly once.
84
+ * The plan memoizes its in-flight promise: validation and bundling share
85
+ * one instance per parsed project, so the (purely local) resolution runs
86
+ * exactly once. Materialization has a single caller — the Bundler, at
87
+ * finalize time, after the bundled lockfile has been pruned — which passes
88
+ * the subset of the plan the shipped lockfile still references, so
89
+ * pruned-away tarballs are never downloaded.
82
90
  */
83
91
  export declare class EmbeddedPackagesMaterializer {
84
92
  #private;
85
93
  constructor(options: EmbeddedPackagesMaterializerOptions);
86
94
  plan(): Promise<EmbeddedPackagesPlan>;
87
- materialize(): Promise<MaterializedTarball[]>;
95
+ /**
96
+ * Sources the given subset of the planned tarballs (CLI cache → npm
97
+ * cacache → registry download, verified against the lockfile integrity).
98
+ * Lets the caller materialize only the tarballs a pruned bundled lockfile
99
+ * still references, so pruned-away packages are never downloaded.
100
+ */
101
+ materializeTarballs(tarballs: PlannedTarball[]): Promise<MaterializedTarball[]>;
88
102
  }