@pnpm/pkg-manifest.utils 1100.2.6 → 1100.2.8

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/CHANGELOG.md ADDED
@@ -0,0 +1,818 @@
1
+ # @pnpm/manifest-utils
2
+
3
+ ## 1100.2.8
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies:
8
+ - @pnpm/core-loggers@1100.2.3
9
+
10
+ ## 1100.2.7
11
+
12
+ ### Patch Changes
13
+
14
+ - Updated dependencies:
15
+ - @pnpm/core-loggers@1100.2.2
16
+ - @pnpm/types@1101.4.0
17
+
18
+ ## 1100.2.6
19
+
20
+ ### Patch Changes
21
+
22
+ - 0ec878d: Removing a runtime dependency now removes the matching `devEngines.runtime` or `engines.runtime` entry that was materialized from it. Blank runtime selectors are normalized to `latest`.
23
+ - Updated dependencies [852d537]
24
+ - @pnpm/error@1100.0.1
25
+
26
+ ## 1100.2.5
27
+
28
+ ### Patch Changes
29
+
30
+ - a31faa7: Updated dependency ranges. Notably:
31
+
32
+ - `@pnpm/logger` peer dependency range moved to `^1100.0.0`.
33
+ - `msgpackr` 1.11.8 → 2.0.4 (store index files remain byte-compatible in both directions).
34
+ - `open` ^7.4.2 → ^11.0.0, `memoize` ^10 → ^11, `cli-truncate` ^5 → ^6, `pidtree` ^0.6 → ^1.
35
+ - `@yarnpkg/core` 4.5.0 → 4.8.0, `@rushstack/worker-pool` 0.7.7 → 0.7.18, `@cyclonedx/cyclonedx-library` 10.0.0 → 10.1.0, `@pnpm/config.nerf-dart` ^1 → ^2, `@pnpm/log.group` 3.0.2 → 4.0.1, `@pnpm/util.lex-comparator` ^3 → ^4.
36
+
37
+ - Updated dependencies [681b593]
38
+ - Updated dependencies [a31faa7]
39
+ - @pnpm/types@1101.3.2
40
+ - @pnpm/core-loggers@1100.2.1
41
+ - @pnpm/deps.peer-range@1100.0.2
42
+
43
+ ## 1100.2.4
44
+
45
+ ### Patch Changes
46
+
47
+ - Updated dependencies [f11b4fc]
48
+ - @pnpm/core-loggers@1100.2.0
49
+
50
+ ## 1100.2.3
51
+
52
+ ### Patch Changes
53
+
54
+ - Updated dependencies [bf1b731]
55
+ - @pnpm/types@1101.3.1
56
+ - @pnpm/core-loggers@1100.1.4
57
+
58
+ ## 1100.2.2
59
+
60
+ ### Patch Changes
61
+
62
+ - Updated dependencies [a017bf3]
63
+ - @pnpm/types@1101.3.0
64
+ - @pnpm/core-loggers@1100.1.3
65
+
66
+ ## 1100.2.1
67
+
68
+ ### Patch Changes
69
+
70
+ - Updated dependencies [35d2355]
71
+ - @pnpm/types@1101.2.0
72
+ - @pnpm/core-loggers@1100.1.2
73
+
74
+ ## 1100.2.0
75
+
76
+ ### Minor Changes
77
+
78
+ - 1627943: `pnpm outdated` and `pnpm update --interactive` now report Node.js, Deno, and Bun runtimes installed as project dependencies (`runtime:` specifiers). Previously these were silently skipped because the npm specifier parser did not understand the `runtime:` protocol, so runtime versions never appeared in the outdated table or the interactive update picker.
79
+
80
+ Internally, the outdated check is now resolver-driven: `@pnpm/resolving.resolver-base` defines a `ResolveLatestFunction` shape (with `LatestQuery` input — `{ wantedDependency, compatible? }` — and `LatestInfo` result — `{ latestManifest? }`), and every protocol resolver (npm, jsr, named-registry, git, tarball, local, node/bun/deno runtimes) exports its own `resolveLatest*` function alongside its `resolve*`. `@pnpm/resolving.default-resolver` composes them into a single dispatcher, exposed through `@pnpm/installing.client` as `createResolver(...).resolveLatest`.
81
+
82
+ Each resolver decides whether it owns the dep and what "latest" means for its protocol; the outdated command derives `current` / `wanted` display values from the lockfile snapshot (`pkgSnapshot.version` for semver protocols, raw ref for URL-shaped ones) and uses raw ref equality for the "lockfile changed" check, so protocol knowledge stays inside each resolver instead of the command.
83
+
84
+ ### Patch Changes
85
+
86
+ - Updated dependencies [64afc92]
87
+ - @pnpm/types@1101.1.1
88
+ - @pnpm/core-loggers@1100.1.1
89
+
90
+ ## 1100.1.4
91
+
92
+ ### Patch Changes
93
+
94
+ - Updated dependencies [4a79336]
95
+ - @pnpm/core-loggers@1100.1.0
96
+
97
+ ## 1100.1.3
98
+
99
+ ### Patch Changes
100
+
101
+ - 9cad827: `convertEnginesRuntimeToDependencies`: switch the runtime-dependency write to `Object.defineProperty` so the CodeQL `js/prototype-polluting-assignment` rule treats the assignment as safe regardless of the property name (follow-up to [#11609](https://github.com/pnpm/pnpm/pull/11609)).
102
+ - 50b33c1: Address CodeQL static-analysis findings: guard manifest dependency writes against prototype-polluting keys (`__proto__`, `constructor`, `prototype`), and replace a potentially super-linear semver-detection regex in registry 404 hints with an O(n) parser.
103
+
104
+ ## 1100.1.2
105
+
106
+ ### Patch Changes
107
+
108
+ - Updated dependencies [b61e268]
109
+ - @pnpm/types@1101.1.0
110
+ - @pnpm/core-loggers@1100.0.2
111
+
112
+ ## 1100.1.1
113
+
114
+ ### Patch Changes
115
+
116
+ - 184ce26: Fix the package name in README.md.
117
+ - Updated dependencies [184ce26]
118
+ - @pnpm/deps.peer-range@1100.0.1
119
+
120
+ ## 1100.1.0
121
+
122
+ ### Minor Changes
123
+
124
+ - ff7733c: Added a new setting `runtimeOnFail` that overrides the `onFail` field of `devEngines.runtime` (and `engines.runtime`) in the root project's `package.json`. Accepted values: `ignore`, `warn`, `error`, `download`. For example, setting `runtimeOnFail=download` makes pnpm download the declared runtime version even when the manifest does not set `onFail: "download"`.
125
+
126
+ ## 1100.0.1
127
+
128
+ ### Patch Changes
129
+
130
+ - Updated dependencies [ff28085]
131
+ - @pnpm/types@1101.0.0
132
+ - @pnpm/core-loggers@1100.0.1
133
+
134
+ ## 1002.0.0
135
+
136
+ ### Major Changes
137
+
138
+ - 491a84f: This package is now pure ESM.
139
+ - 7d2fd48: Node.js v18, 19, 20, and 21 support discontinued.
140
+ - efb48dc: Added `@pnpm/logger` to peer dependencies.
141
+
142
+ ### Minor Changes
143
+
144
+ - efb48dc: Added convertEnginesRuntimeToDependencies.
145
+
146
+ ### Patch Changes
147
+
148
+ - cee1f58: Fix `--save-peer` to write valid semver ranges to `peerDependencies` for protocol-based installs (e.g. `jsr:`) by deriving from resolved versions when available and falling back to `*` if none is available [#10417](https://github.com/pnpm/pnpm/issues/10417).
149
+ - Updated dependencies [76718b3]
150
+ - Updated dependencies [a8f016c]
151
+ - Updated dependencies [cc1b8e3]
152
+ - Updated dependencies [491a84f]
153
+ - Updated dependencies [7d2fd48]
154
+ - Updated dependencies [efb48dc]
155
+ - Updated dependencies [cb367b9]
156
+ - Updated dependencies [7b1c189]
157
+ - Updated dependencies [8ffb1a7]
158
+ - Updated dependencies [05fb1ae]
159
+ - Updated dependencies [71de2b3]
160
+ - Updated dependencies [10bc391]
161
+ - Updated dependencies [831f574]
162
+ - Updated dependencies [2df8b71]
163
+ - Updated dependencies [15549a9]
164
+ - Updated dependencies [cc7c0d2]
165
+ - Updated dependencies [efb48dc]
166
+ - @pnpm/types@1001.0.0
167
+ - @pnpm/core-loggers@1002.0.0
168
+ - @pnpm/deps.peer-range@1001.0.0
169
+ - @pnpm/error@1001.0.0
170
+
171
+ ## 1001.0.6
172
+
173
+ ### Patch Changes
174
+
175
+ - Updated dependencies [7c1382f]
176
+ - Updated dependencies [dee39ec]
177
+ - @pnpm/types@1000.9.0
178
+ - @pnpm/core-loggers@1001.0.4
179
+
180
+ ## 1001.0.5
181
+
182
+ ### Patch Changes
183
+
184
+ - @pnpm/error@1000.0.5
185
+
186
+ ## 1001.0.4
187
+
188
+ ### Patch Changes
189
+
190
+ - Updated dependencies [e792927]
191
+ - @pnpm/types@1000.8.0
192
+ - @pnpm/core-loggers@1001.0.3
193
+
194
+ ## 1001.0.3
195
+
196
+ ### Patch Changes
197
+
198
+ - @pnpm/error@1000.0.4
199
+
200
+ ## 1001.0.2
201
+
202
+ ### Patch Changes
203
+
204
+ - Updated dependencies [1a07b8f]
205
+ - @pnpm/types@1000.7.0
206
+ - @pnpm/core-loggers@1001.0.2
207
+ - @pnpm/error@1000.0.3
208
+
209
+ ## 1001.0.1
210
+
211
+ ### Patch Changes
212
+
213
+ - Updated dependencies [09cf46f]
214
+ - Updated dependencies [5ec7255]
215
+ - @pnpm/core-loggers@1001.0.1
216
+ - @pnpm/types@1000.6.0
217
+
218
+ ## 1001.0.0
219
+
220
+ ### Major Changes
221
+
222
+ - 5b73df1: Moved out `createVersionSpec` to `@pnpm/npm-resolver`.
223
+
224
+ ### Patch Changes
225
+
226
+ - Updated dependencies [8a9f3a4]
227
+ - Updated dependencies [5b73df1]
228
+ - @pnpm/core-loggers@1001.0.0
229
+ - @pnpm/types@1000.5.0
230
+
231
+ ## 1000.0.8
232
+
233
+ ### Patch Changes
234
+
235
+ - Updated dependencies [750ae7d]
236
+ - Updated dependencies [750ae7d]
237
+ - @pnpm/types@1000.4.0
238
+ - @pnpm/core-loggers@1000.2.0
239
+
240
+ ## 1000.0.7
241
+
242
+ ### Patch Changes
243
+
244
+ - Updated dependencies [5f7be64]
245
+ - Updated dependencies [5f7be64]
246
+ - @pnpm/types@1000.3.0
247
+ - @pnpm/core-loggers@1000.1.5
248
+
249
+ ## 1000.0.6
250
+
251
+ ### Patch Changes
252
+
253
+ - Updated dependencies [a5e4965]
254
+ - @pnpm/types@1000.2.1
255
+ - @pnpm/core-loggers@1000.1.4
256
+
257
+ ## 1000.0.5
258
+
259
+ ### Patch Changes
260
+
261
+ - Updated dependencies [8fcc221]
262
+ - @pnpm/types@1000.2.0
263
+ - @pnpm/core-loggers@1000.1.3
264
+
265
+ ## 1000.0.4
266
+
267
+ ### Patch Changes
268
+
269
+ - Updated dependencies [b562deb]
270
+ - @pnpm/types@1000.1.1
271
+ - @pnpm/error@1000.0.2
272
+ - @pnpm/core-loggers@1000.1.2
273
+
274
+ ## 1000.0.3
275
+
276
+ ### Patch Changes
277
+
278
+ - Updated dependencies [9591a18]
279
+ - @pnpm/types@1000.1.0
280
+ - @pnpm/core-loggers@1000.1.1
281
+
282
+ ## 1000.0.2
283
+
284
+ ### Patch Changes
285
+
286
+ - Updated dependencies [516c4b3]
287
+ - @pnpm/core-loggers@1000.1.0
288
+
289
+ ## 1000.0.1
290
+
291
+ ### Patch Changes
292
+
293
+ - @pnpm/error@1000.0.1
294
+
295
+ ## 6.0.10
296
+
297
+ ### Patch Changes
298
+
299
+ - @pnpm/error@6.0.3
300
+
301
+ ## 6.0.9
302
+
303
+ ### Patch Changes
304
+
305
+ - @pnpm/error@6.0.2
306
+
307
+ ## 6.0.8
308
+
309
+ ### Patch Changes
310
+
311
+ - Updated dependencies [d500d9f]
312
+ - @pnpm/types@12.2.0
313
+ - @pnpm/core-loggers@10.0.7
314
+
315
+ ## 6.0.7
316
+
317
+ ### Patch Changes
318
+
319
+ - Updated dependencies [7ee59a1]
320
+ - @pnpm/types@12.1.0
321
+ - @pnpm/core-loggers@10.0.6
322
+
323
+ ## 6.0.6
324
+
325
+ ### Patch Changes
326
+
327
+ - Updated dependencies [cb006df]
328
+ - @pnpm/types@12.0.0
329
+ - @pnpm/core-loggers@10.0.5
330
+
331
+ ## 6.0.5
332
+
333
+ ### Patch Changes
334
+
335
+ - Updated dependencies [0ef168b]
336
+ - @pnpm/types@11.1.0
337
+ - @pnpm/core-loggers@10.0.4
338
+
339
+ ## 6.0.4
340
+
341
+ ### Patch Changes
342
+
343
+ - Updated dependencies [dd00eeb]
344
+ - Updated dependencies
345
+ - @pnpm/types@11.0.0
346
+ - @pnpm/core-loggers@10.0.3
347
+
348
+ ## 6.0.3
349
+
350
+ ### Patch Changes
351
+
352
+ - Updated dependencies [13e55b2]
353
+ - @pnpm/types@10.1.1
354
+ - @pnpm/core-loggers@10.0.2
355
+
356
+ ## 6.0.2
357
+
358
+ ### Patch Changes
359
+
360
+ - Updated dependencies [45f4262]
361
+ - @pnpm/types@10.1.0
362
+ - @pnpm/core-loggers@10.0.1
363
+
364
+ ## 6.0.1
365
+
366
+ ### Patch Changes
367
+
368
+ - Updated dependencies [a7aef51]
369
+ - @pnpm/error@6.0.1
370
+
371
+ ## 6.0.0
372
+
373
+ ### Major Changes
374
+
375
+ - 43cdd87: Node.js v16 support dropped. Use at least Node.js v18.12.
376
+
377
+ ### Patch Changes
378
+
379
+ - Updated dependencies [7733f3a]
380
+ - Updated dependencies [3ded840]
381
+ - Updated dependencies [43cdd87]
382
+ - Updated dependencies [730929e]
383
+ - @pnpm/types@10.0.0
384
+ - @pnpm/error@6.0.0
385
+ - @pnpm/core-loggers@10.0.0
386
+
387
+ ## 5.0.7
388
+
389
+ ### Patch Changes
390
+
391
+ - Updated dependencies [4d34684f1]
392
+ - @pnpm/types@9.4.2
393
+ - @pnpm/core-loggers@9.0.6
394
+
395
+ ## 5.0.6
396
+
397
+ ### Patch Changes
398
+
399
+ - Updated dependencies
400
+ - @pnpm/types@9.4.1
401
+ - @pnpm/core-loggers@9.0.5
402
+
403
+ ## 5.0.5
404
+
405
+ ### Patch Changes
406
+
407
+ - Updated dependencies [43ce9e4a6]
408
+ - @pnpm/types@9.4.0
409
+ - @pnpm/core-loggers@9.0.4
410
+
411
+ ## 5.0.4
412
+
413
+ ### Patch Changes
414
+
415
+ - Updated dependencies [d774a3196]
416
+ - @pnpm/types@9.3.0
417
+ - @pnpm/core-loggers@9.0.3
418
+
419
+ ## 5.0.3
420
+
421
+ ### Patch Changes
422
+
423
+ - Updated dependencies [aa2ae8fe2]
424
+ - @pnpm/types@9.2.0
425
+ - @pnpm/core-loggers@9.0.2
426
+
427
+ ## 5.0.2
428
+
429
+ ### Patch Changes
430
+
431
+ - @pnpm/error@5.0.2
432
+
433
+ ## 5.0.1
434
+
435
+ ### Patch Changes
436
+
437
+ - a9e0b7cbf: Don't update peer dependencies.
438
+ - Updated dependencies [a9e0b7cbf]
439
+ - @pnpm/types@9.1.0
440
+ - @pnpm/core-loggers@9.0.1
441
+ - @pnpm/error@5.0.1
442
+
443
+ ## 5.0.0
444
+
445
+ ### Major Changes
446
+
447
+ - eceaa8b8b: Node.js 14 support dropped.
448
+
449
+ ### Patch Changes
450
+
451
+ - Updated dependencies [eceaa8b8b]
452
+ - @pnpm/core-loggers@9.0.0
453
+ - @pnpm/error@5.0.0
454
+ - @pnpm/types@9.0.0
455
+
456
+ ## 4.1.4
457
+
458
+ ### Patch Changes
459
+
460
+ - @pnpm/error@4.0.1
461
+
462
+ ## 4.1.3
463
+
464
+ ### Patch Changes
465
+
466
+ - Updated dependencies [b77651d14]
467
+ - @pnpm/types@8.10.0
468
+ - @pnpm/core-loggers@8.0.3
469
+
470
+ ## 4.1.2
471
+
472
+ ### Patch Changes
473
+
474
+ - c245edf1b: Dependencies specified via `*` should be updated to semver ranges by `pnpm update` [#5681](https://github.com/pnpm/pnpm/issues/5681).
475
+
476
+ ## 4.1.1
477
+
478
+ ### Patch Changes
479
+
480
+ - Updated dependencies [702e847c1]
481
+ - @pnpm/types@8.9.0
482
+ - @pnpm/core-loggers@8.0.2
483
+
484
+ ## 4.1.0
485
+
486
+ ### Minor Changes
487
+
488
+ - 844e82f3a: New function exported: `getDependencyTypeFromManifest()`.
489
+
490
+ ### Patch Changes
491
+
492
+ - Updated dependencies [844e82f3a]
493
+ - @pnpm/types@8.8.0
494
+ - @pnpm/core-loggers@8.0.1
495
+
496
+ ## 4.0.0
497
+
498
+ ### Major Changes
499
+
500
+ - f884689e0: Require `@pnpm/logger` v5.
501
+
502
+ ### Patch Changes
503
+
504
+ - Updated dependencies [043d988fc]
505
+ - Updated dependencies [f884689e0]
506
+ - @pnpm/error@4.0.0
507
+ - @pnpm/core-loggers@8.0.0
508
+
509
+ ## 3.1.6
510
+
511
+ ### Patch Changes
512
+
513
+ - Updated dependencies [3ae888c28]
514
+ - @pnpm/core-loggers@7.1.0
515
+
516
+ ## 3.1.5
517
+
518
+ ### Patch Changes
519
+
520
+ - Updated dependencies [e8a631bf0]
521
+ - @pnpm/error@3.1.0
522
+
523
+ ## 3.1.4
524
+
525
+ ### Patch Changes
526
+
527
+ - Updated dependencies [d665f3ff7]
528
+ - @pnpm/types@8.7.0
529
+ - @pnpm/core-loggers@7.0.8
530
+
531
+ ## 3.1.3
532
+
533
+ ### Patch Changes
534
+
535
+ - Updated dependencies [156cc1ef6]
536
+ - @pnpm/types@8.6.0
537
+ - @pnpm/core-loggers@7.0.7
538
+
539
+ ## 3.1.2
540
+
541
+ ### Patch Changes
542
+
543
+ - Updated dependencies [c90798461]
544
+ - @pnpm/types@8.5.0
545
+ - @pnpm/core-loggers@7.0.6
546
+
547
+ ## 3.1.1
548
+
549
+ ### Patch Changes
550
+
551
+ - e3f4d131c: getSpecFromPackageManifest should also read spec from peerDependencies.
552
+
553
+ ## 3.1.0
554
+
555
+ ### Minor Changes
556
+
557
+ - f5621a42c: A new value `rolling` for option `save-workspace-protocol`. When selected, pnpm will save workspace versions using a rolling alias (e.g. `"foo": "workspace:^"`) instead of pinning the current version number (e.g. `"foo": "workspace:^1.0.0"`). Usage example:
558
+
559
+ ```
560
+ pnpm --save-workspace-protocol=rolling add foo
561
+ ```
562
+
563
+ ## 3.0.6
564
+
565
+ ### Patch Changes
566
+
567
+ - Updated dependencies [8e5b77ef6]
568
+ - @pnpm/types@8.4.0
569
+ - @pnpm/core-loggers@7.0.5
570
+
571
+ ## 3.0.5
572
+
573
+ ### Patch Changes
574
+
575
+ - Updated dependencies [2a34b21ce]
576
+ - @pnpm/types@8.3.0
577
+ - @pnpm/core-loggers@7.0.4
578
+
579
+ ## 3.0.4
580
+
581
+ ### Patch Changes
582
+
583
+ - Updated dependencies [fb5bbfd7a]
584
+ - @pnpm/types@8.2.0
585
+ - @pnpm/core-loggers@7.0.3
586
+
587
+ ## 3.0.3
588
+
589
+ ### Patch Changes
590
+
591
+ - Updated dependencies [4d39e4a0c]
592
+ - @pnpm/types@8.1.0
593
+ - @pnpm/core-loggers@7.0.2
594
+
595
+ ## 3.0.2
596
+
597
+ ### Patch Changes
598
+
599
+ - Updated dependencies [18ba5e2c0]
600
+ - @pnpm/types@8.0.1
601
+ - @pnpm/core-loggers@7.0.1
602
+
603
+ ## 3.0.1
604
+
605
+ ### Patch Changes
606
+
607
+ - 618842b0d: It should be possible to reference a workspace project that has no version specified in its `package.json` [#4487](https://github.com/pnpm/pnpm/pull/4487).
608
+ - @pnpm/error@3.0.1
609
+
610
+ ## 3.0.0
611
+
612
+ ### Major Changes
613
+
614
+ - 542014839: Node.js 12 is not supported.
615
+
616
+ ### Patch Changes
617
+
618
+ - Updated dependencies [d504dc380]
619
+ - Updated dependencies [542014839]
620
+ - @pnpm/types@8.0.0
621
+ - @pnpm/core-loggers@7.0.0
622
+ - @pnpm/error@3.0.0
623
+
624
+ ## 2.1.9
625
+
626
+ ### Patch Changes
627
+
628
+ - Updated dependencies [70ba51da9]
629
+ - @pnpm/error@2.1.0
630
+
631
+ ## 2.1.8
632
+
633
+ ### Patch Changes
634
+
635
+ - Updated dependencies [b138d048c]
636
+ - @pnpm/types@7.10.0
637
+ - @pnpm/core-loggers@6.1.4
638
+
639
+ ## 2.1.7
640
+
641
+ ### Patch Changes
642
+
643
+ - 8a2cad034: fix: version set be correct when set empty version
644
+
645
+ ## 2.1.6
646
+
647
+ ### Patch Changes
648
+
649
+ - Updated dependencies [26cd01b88]
650
+ - @pnpm/types@7.9.0
651
+ - @pnpm/core-loggers@6.1.3
652
+
653
+ ## 2.1.5
654
+
655
+ ### Patch Changes
656
+
657
+ - Updated dependencies [b5734a4a7]
658
+ - @pnpm/types@7.8.0
659
+ - @pnpm/core-loggers@6.1.2
660
+
661
+ ## 2.1.4
662
+
663
+ ### Patch Changes
664
+
665
+ - Updated dependencies [6493e0c93]
666
+ - @pnpm/types@7.7.1
667
+ - @pnpm/core-loggers@6.1.1
668
+
669
+ ## 2.1.3
670
+
671
+ ### Patch Changes
672
+
673
+ - Updated dependencies [ba9b2eba1]
674
+ - Updated dependencies [ba9b2eba1]
675
+ - @pnpm/core-loggers@6.1.0
676
+ - @pnpm/types@7.7.0
677
+
678
+ ## 2.1.2
679
+
680
+ ### Patch Changes
681
+
682
+ - Updated dependencies [302ae4f6f]
683
+ - @pnpm/types@7.6.0
684
+ - @pnpm/core-loggers@6.0.6
685
+
686
+ ## 2.1.1
687
+
688
+ ### Patch Changes
689
+
690
+ - Updated dependencies [4ab87844a]
691
+ - @pnpm/types@7.5.0
692
+ - @pnpm/core-loggers@6.0.5
693
+
694
+ ## 2.1.0
695
+
696
+ ### Minor Changes
697
+
698
+ - 553a5d840: The path to Node.js executable is added to `dependenciesMeta` when `nodeExecPath` is specified in the`PackageSpecObject`.
699
+
700
+ ## 2.0.4
701
+
702
+ ### Patch Changes
703
+
704
+ - Updated dependencies [b734b45ea]
705
+ - @pnpm/types@7.4.0
706
+ - @pnpm/core-loggers@6.0.4
707
+
708
+ ## 2.0.3
709
+
710
+ ### Patch Changes
711
+
712
+ - Updated dependencies [8e76690f4]
713
+ - @pnpm/types@7.3.0
714
+ - @pnpm/core-loggers@6.0.3
715
+
716
+ ## 2.0.2
717
+
718
+ ### Patch Changes
719
+
720
+ - Updated dependencies [724c5abd8]
721
+ - @pnpm/types@7.2.0
722
+ - @pnpm/core-loggers@6.0.2
723
+
724
+ ## 2.0.1
725
+
726
+ ### Patch Changes
727
+
728
+ - Updated dependencies [97c64bae4]
729
+ - @pnpm/types@7.1.0
730
+ - @pnpm/core-loggers@6.0.1
731
+
732
+ ## 2.0.0
733
+
734
+ ### Major Changes
735
+
736
+ - 97b986fbc: Node.js 10 support is dropped. At least Node.js 12.17 is required for the package to work.
737
+
738
+ ### Patch Changes
739
+
740
+ - Updated dependencies [97b986fbc]
741
+ - Updated dependencies [90487a3a8]
742
+ - @pnpm/core-loggers@6.0.0
743
+ - @pnpm/error@2.0.0
744
+ - @pnpm/types@7.0.0
745
+
746
+ ## 1.1.5
747
+
748
+ ### Patch Changes
749
+
750
+ - Updated dependencies [9ad8c27bf]
751
+ - @pnpm/types@6.4.0
752
+ - @pnpm/core-loggers@5.0.3
753
+
754
+ ## 1.1.4
755
+
756
+ ### Patch Changes
757
+
758
+ - Updated dependencies [0c5f1bcc9]
759
+ - @pnpm/error@1.4.0
760
+
761
+ ## 1.1.3
762
+
763
+ ### Patch Changes
764
+
765
+ - Updated dependencies [b5d694e7f]
766
+ - @pnpm/types@6.3.1
767
+ - @pnpm/core-loggers@5.0.2
768
+
769
+ ## 1.1.2
770
+
771
+ ### Patch Changes
772
+
773
+ - Updated dependencies [d54043ee4]
774
+ - @pnpm/types@6.3.0
775
+ - @pnpm/core-loggers@5.0.1
776
+
777
+ ## 1.1.1
778
+
779
+ ### Patch Changes
780
+
781
+ - Updated dependencies [86cd72de3]
782
+ - @pnpm/core-loggers@5.0.0
783
+
784
+ ## 1.1.0
785
+
786
+ ### Minor Changes
787
+
788
+ - e2f6b40b1: `getSpecFromPackageManifest()` added.
789
+ - e2f6b40b1: `getPref()` added.
790
+ - e2f6b40b1: `updateProjectManifestObject()` added.
791
+
792
+ ## 1.0.3
793
+
794
+ ### Patch Changes
795
+
796
+ - Updated dependencies [db17f6f7b]
797
+ - @pnpm/types@6.2.0
798
+
799
+ ## 1.0.2
800
+
801
+ ### Patch Changes
802
+
803
+ - Updated dependencies [71a8c8ce3]
804
+ - @pnpm/types@6.1.0
805
+
806
+ ## 1.0.1
807
+
808
+ ### Patch Changes
809
+
810
+ - Updated dependencies [da091c711]
811
+ - @pnpm/types@6.0.0
812
+
813
+ ## 1.0.1-alpha.0
814
+
815
+ ### Patch Changes
816
+
817
+ - Updated dependencies [da091c71]
818
+ - @pnpm/types@6.0.0-alpha.0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pnpm/pkg-manifest.utils",
3
- "version": "1100.2.6",
3
+ "version": "1100.2.8",
4
4
  "description": "Utils for dealing with package manifest",
5
5
  "keywords": [
6
6
  "pnpm",
@@ -27,20 +27,20 @@
27
27
  "!*.map"
28
28
  ],
29
29
  "dependencies": {
30
- "semver": "^7.8.4",
31
- "@pnpm/core-loggers": "1100.2.1",
30
+ "@pnpm/core-loggers": "1100.2.3",
32
31
  "@pnpm/deps.peer-range": "1100.0.2",
33
32
  "@pnpm/error": "1100.0.1",
34
- "@pnpm/types": "1101.3.2"
33
+ "@pnpm/types": "1101.4.0",
34
+ "semver": "^7.8.4"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "@pnpm/logger": "^1100.0.0"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@jest/globals": "30.4.1",
41
- "@types/semver": "7.7.1",
42
41
  "@pnpm/logger": "1100.0.0",
43
- "@pnpm/pkg-manifest.utils": "1100.2.6"
42
+ "@pnpm/pkg-manifest.utils": "1100.2.8",
43
+ "@types/semver": "7.7.1"
44
44
  },
45
45
  "engines": {
46
46
  "node": ">=22.13"
@@ -1,3 +0,0 @@
1
- import { type DependenciesField, type ProjectManifest } from '@pnpm/types';
2
- export declare function convertEnginesRuntimeToDependencies(manifest: ProjectManifest, enginesFieldName: 'devEngines' | 'engines', dependenciesFieldName: DependenciesField): void;
3
- export declare function applyRuntimeOnFailOverride(manifest: ProjectManifest, onFailOverride: 'ignore' | 'warn' | 'error' | 'download'): void;
@@ -1,64 +0,0 @@
1
- import { globalWarn } from '@pnpm/logger';
2
- import { RUNTIME_NAMES, } from '@pnpm/types';
3
- export function convertEnginesRuntimeToDependencies(manifest, enginesFieldName, dependenciesFieldName) {
4
- for (const runtimeName of RUNTIME_NAMES) {
5
- const enginesFieldRuntime = manifest[enginesFieldName]?.runtime;
6
- if (enginesFieldRuntime == null || manifest[dependenciesFieldName]?.[runtimeName]) {
7
- continue;
8
- }
9
- const runtimes = Array.isArray(enginesFieldRuntime) ? enginesFieldRuntime : [enginesFieldRuntime];
10
- const runtime = runtimes.find((runtime) => runtime.name === runtimeName);
11
- if (runtime?.onFail !== 'download') {
12
- continue;
13
- }
14
- if (typeof runtime.version !== 'string') {
15
- globalWarn(`Cannot download ${runtimeName} because no version is specified in ${enginesFieldName}.runtime`);
16
- continue;
17
- }
18
- const version = runtime.version.trim();
19
- if ('webcontainer' in process.versions) {
20
- globalWarn(`Installation of ${runtimeName} versions is not supported in WebContainer`);
21
- }
22
- else {
23
- const deps = (manifest[dependenciesFieldName] ??= {});
24
- // Use Object.defineProperty so a future RUNTIME_NAMES entry that
25
- // happens to match an inherited property name (`__proto__`,
26
- // `constructor`, `prototype`) becomes a regular own data property
27
- // instead of altering Object.prototype.
28
- Object.defineProperty(deps, runtimeName, {
29
- value: `runtime:${version}`,
30
- enumerable: true,
31
- writable: true,
32
- configurable: true,
33
- });
34
- }
35
- }
36
- }
37
- export function applyRuntimeOnFailOverride(manifest, onFailOverride) {
38
- for (const [enginesFieldName, dependenciesFieldName] of [
39
- ['devEngines', 'devDependencies'],
40
- ['engines', 'dependencies'],
41
- ]) {
42
- const enginesFieldRuntime = manifest[enginesFieldName]?.runtime;
43
- if (enginesFieldRuntime == null)
44
- continue;
45
- const runtimes = Array.isArray(enginesFieldRuntime) ? enginesFieldRuntime : [enginesFieldRuntime];
46
- for (const runtime of runtimes) {
47
- runtime.onFail = onFailOverride;
48
- }
49
- if (onFailOverride !== 'download') {
50
- const deps = manifest[dependenciesFieldName];
51
- if (deps) {
52
- for (const runtimeName of RUNTIME_NAMES) {
53
- if (typeof deps[runtimeName] === 'string' && deps[runtimeName].startsWith('runtime:')) {
54
- delete deps[runtimeName];
55
- }
56
- }
57
- }
58
- }
59
- else {
60
- convertEnginesRuntimeToDependencies(manifest, enginesFieldName, dependenciesFieldName);
61
- }
62
- }
63
- }
64
- //# sourceMappingURL=convertEnginesRuntimeToDependencies.js.map
@@ -1,2 +0,0 @@
1
- import type { Dependencies, IncludedDependencies, ProjectManifest } from '@pnpm/types';
2
- export declare function filterDependenciesByType(manifest: ProjectManifest, include: IncludedDependencies): Dependencies;
@@ -1,8 +0,0 @@
1
- export function filterDependenciesByType(manifest, include) {
2
- return {
3
- ...(include.dependencies ? manifest.dependencies : {}),
4
- ...(include.devDependencies ? manifest.devDependencies : {}),
5
- ...(include.optionalDependencies ? manifest.optionalDependencies : {}),
6
- };
7
- }
8
- //# sourceMappingURL=filterDependenciesByType.js.map
@@ -1,4 +0,0 @@
1
- import type { Dependencies, DependenciesField, ProjectManifest } from '@pnpm/types';
2
- export declare function getAllDependenciesFromManifest(pkg: Pick<ProjectManifest, DependenciesField | 'peerDependencies'>, opts?: {
3
- autoInstallPeers?: boolean;
4
- }): Dependencies;
@@ -1,9 +0,0 @@
1
- export function getAllDependenciesFromManifest(pkg, opts) {
2
- return {
3
- ...pkg.devDependencies,
4
- ...pkg.dependencies,
5
- ...pkg.optionalDependencies,
6
- ...(opts?.autoInstallPeers ? pkg.peerDependencies : {}),
7
- };
8
- }
9
- //# sourceMappingURL=getAllDependenciesFromManifest.js.map
@@ -1,2 +0,0 @@
1
- import type { DependencyManifest } from '@pnpm/types';
2
- export declare function getAllUniqueSpecs(manifests: DependencyManifest[]): Record<string, string>;
@@ -1,20 +0,0 @@
1
- import { getAllDependenciesFromManifest } from './getAllDependenciesFromManifest.js';
2
- export function getAllUniqueSpecs(manifests) {
3
- const allSpecs = {};
4
- const ignored = new Set();
5
- for (const manifest of manifests) {
6
- const specs = getAllDependenciesFromManifest(manifest);
7
- for (const [name, spec] of Object.entries(specs)) {
8
- if (ignored.has(name))
9
- continue;
10
- if (allSpecs[name] != null && allSpecs[name] !== spec || spec.includes(':')) {
11
- ignored.add(name);
12
- delete allSpecs[name];
13
- continue;
14
- }
15
- allSpecs[name] = spec;
16
- }
17
- }
18
- return allSpecs;
19
- }
20
- //# sourceMappingURL=getAllUniqueSpecs.js.map
@@ -1,2 +0,0 @@
1
- import type { DependenciesOrPeersField, ProjectManifest } from '@pnpm/types';
2
- export declare function getDependencyTypeFromManifest(manifest: Pick<ProjectManifest, DependenciesOrPeersField>, depName: string): DependenciesOrPeersField | null;
@@ -1,12 +0,0 @@
1
- export function getDependencyTypeFromManifest(manifest, depName) {
2
- if (manifest.optionalDependencies?.[depName])
3
- return 'optionalDependencies';
4
- if (manifest.dependencies?.[depName])
5
- return 'dependencies';
6
- if (manifest.devDependencies?.[depName])
7
- return 'devDependencies';
8
- if (manifest.peerDependencies?.[depName])
9
- return 'peerDependencies';
10
- return null;
11
- }
12
- //# sourceMappingURL=getDependencyTypeFromManifest.js.map
@@ -1,2 +0,0 @@
1
- import type { DependenciesOrPeersField, ProjectManifest } from '@pnpm/types';
2
- export declare function getSpecFromPackageManifest(manifest: Pick<ProjectManifest, DependenciesOrPeersField>, depName: string): string;
@@ -1,8 +0,0 @@
1
- export function getSpecFromPackageManifest(manifest, depName) {
2
- return manifest.optionalDependencies?.[depName] ??
3
- manifest.dependencies?.[depName] ??
4
- manifest.devDependencies?.[depName] ??
5
- manifest.peerDependencies?.[depName] ??
6
- '';
7
- }
8
- //# sourceMappingURL=getSpecFromPackageManifest.js.map
package/lib/index.d.ts DELETED
@@ -1,11 +0,0 @@
1
- import type { Dependencies, IncludedDependencies, ProjectManifest } from '@pnpm/types';
2
- import { getAllUniqueSpecs } from './getAllUniqueSpecs.js';
3
- import { getSpecFromPackageManifest } from './getSpecFromPackageManifest.js';
4
- export * from './convertEnginesRuntimeToDependencies.js';
5
- export * from './getDependencyTypeFromManifest.js';
6
- export * from './updateProjectManifestObject.js';
7
- export { getAllUniqueSpecs, getSpecFromPackageManifest };
8
- export declare function filterDependenciesByType(manifest: ProjectManifest, include: IncludedDependencies): Dependencies;
9
- export declare function getAllDependenciesFromManifest(manifest: Pick<ProjectManifest, 'devDependencies' | 'dependencies' | 'optionalDependencies' | 'peerDependencies'>, opts?: {
10
- autoInstallPeers?: boolean;
11
- }): Dependencies;
@@ -1,12 +0,0 @@
1
- import { type DependenciesField, type DependenciesOrPeersField, type PinnedVersion, type ProjectManifest } from '@pnpm/types';
2
- export interface PackageSpecObject {
3
- alias: string;
4
- peer?: boolean;
5
- bareSpecifier?: string;
6
- resolvedVersion?: string;
7
- pinnedVersion?: PinnedVersion;
8
- saveType?: DependenciesField;
9
- }
10
- export declare function createVersionSpecFromResolvedVersion(resolvedVersion: string, pinnedVersion?: PinnedVersion): string | null;
11
- export declare function updateProjectManifestObject(prefix: string, packageManifest: ProjectManifest, packageSpecs: PackageSpecObject[]): Promise<ProjectManifest>;
12
- export declare function guessDependencyType(alias: string, manifest: ProjectManifest): DependenciesOrPeersField | undefined;
@@ -1,99 +0,0 @@
1
- import { packageManifestLogger } from '@pnpm/core-loggers';
2
- import { isValidPeerRange } from '@pnpm/deps.peer-range';
3
- import { DEPENDENCIES_FIELDS, DEPENDENCIES_OR_PEER_FIELDS, } from '@pnpm/types';
4
- import semver from 'semver';
5
- function getPeerSpecifier(spec, resolvedVersion, pinnedVersion) {
6
- if (isValidPeerRange(spec))
7
- return spec;
8
- const rangeFromResolved = resolvedVersion ? createVersionSpecFromResolvedVersion(resolvedVersion, pinnedVersion) : null;
9
- return rangeFromResolved ?? '*';
10
- }
11
- export function createVersionSpecFromResolvedVersion(resolvedVersion, pinnedVersion) {
12
- const parsed = semver.parse(resolvedVersion);
13
- if (!parsed)
14
- return null;
15
- if (parsed.prerelease.length)
16
- return resolvedVersion;
17
- switch (pinnedVersion ?? 'major') {
18
- case 'none':
19
- case 'major':
20
- return `^${resolvedVersion}`;
21
- case 'minor':
22
- return `~${resolvedVersion}`;
23
- case 'patch':
24
- return resolvedVersion;
25
- default:
26
- return `^${resolvedVersion}`;
27
- }
28
- }
29
- export async function updateProjectManifestObject(prefix, packageManifest, packageSpecs) {
30
- for (const packageSpec of packageSpecs) {
31
- if (packageSpec.saveType) {
32
- const spec = packageSpec.bareSpecifier ?? findSpec(packageSpec.alias, packageManifest);
33
- if (spec) {
34
- packageManifest[packageSpec.saveType] = packageManifest[packageSpec.saveType] ?? {};
35
- defineDepEntry(packageManifest[packageSpec.saveType], packageSpec.alias, spec);
36
- for (const deptype of DEPENDENCIES_FIELDS) {
37
- if (deptype !== packageSpec.saveType) {
38
- deleteDepEntry(packageManifest[deptype], packageSpec.alias);
39
- }
40
- }
41
- if (packageSpec.peer === true) {
42
- packageManifest.peerDependencies = packageManifest.peerDependencies ?? {};
43
- defineDepEntry(packageManifest.peerDependencies, packageSpec.alias, getPeerSpecifier(spec, packageSpec.resolvedVersion, packageSpec.pinnedVersion));
44
- }
45
- }
46
- }
47
- else if (packageSpec.bareSpecifier) {
48
- const usedDepType = guessDependencyType(packageSpec.alias, packageManifest) ?? 'dependencies';
49
- if (usedDepType !== 'peerDependencies') {
50
- packageManifest[usedDepType] = packageManifest[usedDepType] ?? {};
51
- defineDepEntry(packageManifest[usedDepType], packageSpec.alias, packageSpec.bareSpecifier);
52
- }
53
- }
54
- }
55
- packageManifestLogger.debug({
56
- prefix,
57
- updated: packageManifest,
58
- });
59
- return packageManifest;
60
- }
61
- function findSpec(alias, manifest) {
62
- const foundDepType = guessDependencyType(alias, manifest);
63
- if (foundDepType == null)
64
- return undefined;
65
- const deps = manifest[foundDepType];
66
- return Object.hasOwn(deps, alias) ? deps[alias] : undefined;
67
- }
68
- export function guessDependencyType(alias, manifest) {
69
- return DEPENDENCIES_OR_PEER_FIELDS.find((depField) => {
70
- const deps = manifest[depField];
71
- if (deps == null || !Object.hasOwn(deps, alias))
72
- return false;
73
- return deps[alias] === '' || Boolean(deps[alias]);
74
- });
75
- }
76
- /**
77
- * Write a dependency entry without risking prototype pollution: even when the
78
- * alias matches a name like `__proto__`, `Object.defineProperty` creates a
79
- * regular own data property rather than reaching through the setter.
80
- */
81
- function defineDepEntry(target, alias, value) {
82
- Object.defineProperty(target, alias, {
83
- value,
84
- enumerable: true,
85
- writable: true,
86
- configurable: true,
87
- });
88
- }
89
- /**
90
- * Mirror of `defineDepEntry` for deletes. The `Object.hasOwn` guard keeps the
91
- * `delete` from reaching into the prototype chain when the alias matches an
92
- * inherited property like `constructor`.
93
- */
94
- function deleteDepEntry(target, alias) {
95
- if (target != null && Object.hasOwn(target, alias)) {
96
- delete target[alias];
97
- }
98
- }
99
- //# sourceMappingURL=updateProjectManifestObject.js.map