@pnpm/workspace.project-manifest-reader 1100.0.13 → 1100.0.15

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 (3) hide show
  1. package/CHANGELOG.md +976 -0
  2. package/lib/index.js +42 -7
  3. package/package.json +13 -13
package/CHANGELOG.md ADDED
@@ -0,0 +1,976 @@
1
+ # @pnpm/read-project-manifest
2
+
3
+ ## 1100.0.15
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies:
8
+ - @pnpm/pkg-manifest.utils@1100.2.7
9
+ - @pnpm/types@1101.4.0
10
+ - @pnpm/workspace.project-manifest-writer@1100.0.9
11
+
12
+ ## 1100.0.14
13
+
14
+ ### Patch Changes
15
+
16
+ - 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`.
17
+ - Updated dependencies [0ec878d]
18
+ - Updated dependencies [852d537]
19
+ - @pnpm/pkg-manifest.utils@1100.2.6
20
+ - @pnpm/error@1100.0.1
21
+
22
+ ## 1100.0.13
23
+
24
+ ### Patch Changes
25
+
26
+ - a31faa7: Updated dependency ranges. Notably:
27
+
28
+ - `@pnpm/logger` peer dependency range moved to `^1100.0.0`.
29
+ - `msgpackr` 1.11.8 → 2.0.4 (store index files remain byte-compatible in both directions).
30
+ - `open` ^7.4.2 → ^11.0.0, `memoize` ^10 → ^11, `cli-truncate` ^5 → ^6, `pidtree` ^0.6 → ^1.
31
+ - `@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.
32
+
33
+ - Updated dependencies [681b593]
34
+ - Updated dependencies [a31faa7]
35
+ - @pnpm/types@1101.3.2
36
+ - @pnpm/pkg-manifest.utils@1100.2.5
37
+ - @pnpm/workspace.project-manifest-writer@1100.0.8
38
+
39
+ ## 1100.0.12
40
+
41
+ ### Patch Changes
42
+
43
+ - @pnpm/pkg-manifest.utils@1100.2.4
44
+
45
+ ## 1100.0.11
46
+
47
+ ### Patch Changes
48
+
49
+ - Updated dependencies [bf1b731]
50
+ - @pnpm/types@1101.3.1
51
+ - @pnpm/pkg-manifest.utils@1100.2.3
52
+ - @pnpm/workspace.project-manifest-writer@1100.0.7
53
+
54
+ ## 1100.0.10
55
+
56
+ ### Patch Changes
57
+
58
+ - Updated dependencies [a017bf3]
59
+ - @pnpm/types@1101.3.0
60
+ - @pnpm/pkg-manifest.utils@1100.2.2
61
+ - @pnpm/workspace.project-manifest-writer@1100.0.6
62
+
63
+ ## 1100.0.9
64
+
65
+ ### Patch Changes
66
+
67
+ - a456dc7: Limit concurrent project manifest reads while listing large workspaces to avoid `EMFILE` errors.
68
+ - Updated dependencies [35d2355]
69
+ - @pnpm/types@1101.2.0
70
+ - @pnpm/pkg-manifest.utils@1100.2.1
71
+ - @pnpm/workspace.project-manifest-writer@1100.0.5
72
+
73
+ ## 1100.0.8
74
+
75
+ ### Patch Changes
76
+
77
+ - d7da112: Implement `pnpm pkg` command natively, following `npm pkg` standards.
78
+
79
+ ## 1100.0.7
80
+
81
+ ### Patch Changes
82
+
83
+ - Updated dependencies [1627943]
84
+ - Updated dependencies [64afc92]
85
+ - @pnpm/pkg-manifest.utils@1100.2.0
86
+ - @pnpm/types@1101.1.1
87
+ - @pnpm/workspace.project-manifest-writer@1100.0.4
88
+
89
+ ## 1100.0.6
90
+
91
+ ### Patch Changes
92
+
93
+ - @pnpm/pkg-manifest.utils@1100.1.4
94
+
95
+ ## 1100.0.5
96
+
97
+ ### Patch Changes
98
+
99
+ - Updated dependencies [9cad827]
100
+ - Updated dependencies [50b33c1]
101
+ - @pnpm/pkg-manifest.utils@1100.1.3
102
+
103
+ ## 1100.0.4
104
+
105
+ ### Patch Changes
106
+
107
+ - Updated dependencies [b61e268]
108
+ - @pnpm/types@1101.1.0
109
+ - @pnpm/pkg-manifest.utils@1100.1.2
110
+ - @pnpm/workspace.project-manifest-writer@1100.0.3
111
+
112
+ ## 1100.0.3
113
+
114
+ ### Patch Changes
115
+
116
+ - 184ce26: Fix the package name in README.md.
117
+ - Updated dependencies [184ce26]
118
+ - Updated dependencies [5a901e7]
119
+ - @pnpm/workspace.project-manifest-writer@1100.0.2
120
+ - @pnpm/pkg-manifest.utils@1100.1.1
121
+ - @pnpm/fs.graceful-fs@1100.1.0
122
+
123
+ ## 1100.0.2
124
+
125
+ ### Patch Changes
126
+
127
+ - Updated dependencies [ff7733c]
128
+ - @pnpm/pkg-manifest.utils@1100.1.0
129
+
130
+ ## 1100.0.1
131
+
132
+ ### Patch Changes
133
+
134
+ - Updated dependencies [ff28085]
135
+ - @pnpm/types@1101.0.0
136
+ - @pnpm/pkg-manifest.utils@1100.0.1
137
+ - @pnpm/workspace.project-manifest-writer@1100.0.1
138
+
139
+ ## 1002.0.0
140
+
141
+ ### Major Changes
142
+
143
+ - 491a84f: This package is now pure ESM.
144
+ - 7d2fd48: Node.js v18, 19, 20, and 21 support discontinued.
145
+
146
+ ### Minor Changes
147
+
148
+ - efb48dc: **Node.js Runtime Installation for Dependencies.** Added support for automatic Node.js runtime installation for dependencies. pnpm will now install the Node.js version required by a dependency if that dependency declares a Node.js runtime in the "engines" field. For example:
149
+
150
+ ```json
151
+ {
152
+ "engines": {
153
+ "runtime": {
154
+ "name": "node",
155
+ "version": "^24.11.0",
156
+ "onFail": "download"
157
+ }
158
+ }
159
+ }
160
+ ```
161
+
162
+ If the package with the Node.js runtime dependency is a CLI app, pnpm will bind the CLI app to the required Node.js version. This ensures that, regardless of the globally installed Node.js instance, the CLI will use the compatible version of Node.js.
163
+
164
+ If the package has a `postinstall` script, that script will be executed using the specified Node.js version.
165
+
166
+ Related PR: [#10141](https://github.com/pnpm/pnpm/pull/10141)
167
+
168
+ ### Patch Changes
169
+
170
+ - 98a5f1c: Node.js runtime is not added to "dependencies" on `pnpm add`, if there's a `engines.runtime` setting declared in `package.json` [#10209](https://github.com/pnpm/pnpm/issues/10209).
171
+ - Updated dependencies [76718b3]
172
+ - Updated dependencies [a8f016c]
173
+ - Updated dependencies [cc1b8e3]
174
+ - Updated dependencies [efb48dc]
175
+ - Updated dependencies [491a84f]
176
+ - Updated dependencies [7d2fd48]
177
+ - Updated dependencies [efb48dc]
178
+ - Updated dependencies [cb367b9]
179
+ - Updated dependencies [7b1c189]
180
+ - Updated dependencies [8ffb1a7]
181
+ - Updated dependencies [cee1f58]
182
+ - Updated dependencies [05fb1ae]
183
+ - Updated dependencies [71de2b3]
184
+ - Updated dependencies [10bc391]
185
+ - Updated dependencies [831f574]
186
+ - Updated dependencies [2df8b71]
187
+ - Updated dependencies [15549a9]
188
+ - Updated dependencies [cc7c0d2]
189
+ - Updated dependencies [efb48dc]
190
+ - Updated dependencies [efb48dc]
191
+ - @pnpm/types@1001.0.0
192
+ - @pnpm/pkg-manifest.utils@1002.0.0
193
+ - @pnpm/workspace.project-manifest-writer@1001.0.0
194
+ - @pnpm/text.comments-parser@1001.0.0
195
+ - @pnpm/fs.graceful-fs@1001.0.0
196
+ - @pnpm/error@1001.0.0
197
+
198
+ ## 1001.1.4
199
+
200
+ ### Patch Changes
201
+
202
+ - Updated dependencies [7c1382f]
203
+ - Updated dependencies [dee39ec]
204
+ - @pnpm/types@1000.9.0
205
+ - @pnpm/write-project-manifest@1000.0.11
206
+
207
+ ## 1001.1.3
208
+
209
+ ### Patch Changes
210
+
211
+ - Updated dependencies [9b9faa5]
212
+ - @pnpm/graceful-fs@1000.0.1
213
+
214
+ ## 1001.1.2
215
+
216
+ ### Patch Changes
217
+
218
+ - @pnpm/error@1000.0.5
219
+
220
+ ## 1001.1.1
221
+
222
+ ### Patch Changes
223
+
224
+ - Updated dependencies [e792927]
225
+ - @pnpm/types@1000.8.0
226
+ - @pnpm/write-project-manifest@1000.0.10
227
+
228
+ ## 1001.1.0
229
+
230
+ ### Minor Changes
231
+
232
+ - d1edf73: Add support for installing deno runtime.
233
+ - 86b33e9: Added support for installing Bun runtime.
234
+
235
+ ### Patch Changes
236
+
237
+ - @pnpm/error@1000.0.4
238
+
239
+ ## 1001.0.0
240
+
241
+ ### Major Changes
242
+
243
+ - 1a07b8f: Added @pnpm/logger to peer deps.
244
+
245
+ ### Minor Changes
246
+
247
+ - 1a07b8f: Added support for resolving and downloading the Node.js runtime specified in the [devEngines](https://github.com/openjs-foundation/package-metadata-interoperability-collab-space/issues/15) field of `package.json`.
248
+
249
+ Usage example:
250
+
251
+ ```json
252
+ {
253
+ "devEngines": {
254
+ "runtime": {
255
+ "name": "node",
256
+ "version": "^24.4.0",
257
+ "onFail": "download"
258
+ }
259
+ }
260
+ }
261
+ ```
262
+
263
+ When running `pnpm install`, pnpm will resolve Node.js to the latest version that satisfies the specified range and install it as a dependency of the project. As a result, when running scripts, the locally installed Node.js version will be used.
264
+
265
+ Unlike the existing options, `useNodeVersion` and `executionEnv.nodeVersion`, this new field supports version ranges, which are locked to exact versions during installation. The resolved version is stored in the pnpm lockfile, along with an integrity checksum for future validation of the Node.js content's validity.
266
+
267
+ Related PR: [#9755](https://github.com/pnpm/pnpm/pull/9755).
268
+
269
+ ### Patch Changes
270
+
271
+ - Updated dependencies [1a07b8f]
272
+ - @pnpm/types@1000.7.0
273
+ - @pnpm/write-project-manifest@1000.0.9
274
+ - @pnpm/error@1000.0.3
275
+
276
+ ## 1000.0.11
277
+
278
+ ### Patch Changes
279
+
280
+ - Updated dependencies [5ec7255]
281
+ - @pnpm/types@1000.6.0
282
+ - @pnpm/write-project-manifest@1000.0.8
283
+
284
+ ## 1000.0.10
285
+
286
+ ### Patch Changes
287
+
288
+ - Updated dependencies [5b73df1]
289
+ - @pnpm/types@1000.5.0
290
+ - @pnpm/write-project-manifest@1000.0.7
291
+
292
+ ## 1000.0.9
293
+
294
+ ### Patch Changes
295
+
296
+ - Updated dependencies [750ae7d]
297
+ - @pnpm/types@1000.4.0
298
+ - @pnpm/write-project-manifest@1000.0.6
299
+
300
+ ## 1000.0.8
301
+
302
+ ### Patch Changes
303
+
304
+ - Updated dependencies [5f7be64]
305
+ - Updated dependencies [5f7be64]
306
+ - @pnpm/types@1000.3.0
307
+ - @pnpm/write-project-manifest@1000.0.5
308
+
309
+ ## 1000.0.7
310
+
311
+ ### Patch Changes
312
+
313
+ - Updated dependencies [a5e4965]
314
+ - @pnpm/types@1000.2.1
315
+ - @pnpm/write-project-manifest@1000.0.4
316
+
317
+ ## 1000.0.6
318
+
319
+ ### Patch Changes
320
+
321
+ - Updated dependencies [8fcc221]
322
+ - @pnpm/types@1000.2.0
323
+ - @pnpm/write-project-manifest@1000.0.3
324
+
325
+ ## 1000.0.5
326
+
327
+ ### Patch Changes
328
+
329
+ - 1e229d7: Replaced `lodash.clonedeep` with the built-in `structuredClone`.
330
+
331
+ ## 1000.0.4
332
+
333
+ ### Patch Changes
334
+
335
+ - Updated dependencies [b562deb]
336
+ - @pnpm/types@1000.1.1
337
+ - @pnpm/error@1000.0.2
338
+ - @pnpm/write-project-manifest@1000.0.2
339
+
340
+ ## 1000.0.3
341
+
342
+ ### Patch Changes
343
+
344
+ - e050221: Export `WriteProjectManifest`.
345
+
346
+ ## 1000.0.2
347
+
348
+ ### Patch Changes
349
+
350
+ - Updated dependencies [9591a18]
351
+ - @pnpm/types@1000.1.0
352
+ - @pnpm/write-project-manifest@1000.0.1
353
+
354
+ ## 1000.0.1
355
+
356
+ ### Patch Changes
357
+
358
+ - @pnpm/error@1000.0.1
359
+
360
+ ## 6.0.10
361
+
362
+ ### Patch Changes
363
+
364
+ - @pnpm/error@6.0.3
365
+
366
+ ## 6.0.9
367
+
368
+ ### Patch Changes
369
+
370
+ - @pnpm/error@6.0.2
371
+
372
+ ## 6.0.8
373
+
374
+ ### Patch Changes
375
+
376
+ - Updated dependencies [d500d9f]
377
+ - @pnpm/types@12.2.0
378
+ - @pnpm/write-project-manifest@6.0.7
379
+
380
+ ## 6.0.7
381
+
382
+ ### Patch Changes
383
+
384
+ - Updated dependencies [7ee59a1]
385
+ - @pnpm/types@12.1.0
386
+ - @pnpm/write-project-manifest@6.0.6
387
+
388
+ ## 6.0.6
389
+
390
+ ### Patch Changes
391
+
392
+ - Updated dependencies [cb006df]
393
+ - @pnpm/types@12.0.0
394
+ - @pnpm/write-project-manifest@6.0.5
395
+
396
+ ## 6.0.5
397
+
398
+ ### Patch Changes
399
+
400
+ - Updated dependencies [0ef168b]
401
+ - @pnpm/types@11.1.0
402
+ - @pnpm/write-project-manifest@6.0.4
403
+
404
+ ## 6.0.4
405
+
406
+ ### Patch Changes
407
+
408
+ - Updated dependencies [dd00eeb]
409
+ - Updated dependencies
410
+ - @pnpm/types@11.0.0
411
+ - @pnpm/write-project-manifest@6.0.3
412
+
413
+ ## 6.0.3
414
+
415
+ ### Patch Changes
416
+
417
+ - Updated dependencies [13e55b2]
418
+ - @pnpm/types@10.1.1
419
+ - @pnpm/write-project-manifest@6.0.2
420
+
421
+ ## 6.0.2
422
+
423
+ ### Patch Changes
424
+
425
+ - Updated dependencies [45f4262]
426
+ - @pnpm/types@10.1.0
427
+ - @pnpm/write-project-manifest@6.0.1
428
+
429
+ ## 6.0.1
430
+
431
+ ### Patch Changes
432
+
433
+ - Updated dependencies [a7aef51]
434
+ - @pnpm/error@6.0.1
435
+
436
+ ## 6.0.0
437
+
438
+ ### Major Changes
439
+
440
+ - 43cdd87: Node.js v16 support dropped. Use at least Node.js v18.12.
441
+
442
+ ### Patch Changes
443
+
444
+ - Updated dependencies [7733f3a]
445
+ - Updated dependencies [3ded840]
446
+ - Updated dependencies [43cdd87]
447
+ - Updated dependencies [730929e]
448
+ - @pnpm/types@10.0.0
449
+ - @pnpm/error@6.0.0
450
+ - @pnpm/write-project-manifest@6.0.0
451
+ - @pnpm/text.comments-parser@3.0.0
452
+ - @pnpm/graceful-fs@4.0.0
453
+
454
+ ## 5.0.10
455
+
456
+ ### Patch Changes
457
+
458
+ - Updated dependencies [4d34684f1]
459
+ - @pnpm/types@9.4.2
460
+ - @pnpm/write-project-manifest@5.0.6
461
+
462
+ ## 5.0.9
463
+
464
+ ### Patch Changes
465
+
466
+ - Updated dependencies
467
+ - @pnpm/types@9.4.1
468
+ - @pnpm/write-project-manifest@5.0.5
469
+
470
+ ## 5.0.8
471
+
472
+ ### Patch Changes
473
+
474
+ - Updated dependencies [43ce9e4a6]
475
+ - @pnpm/types@9.4.0
476
+ - @pnpm/write-project-manifest@5.0.4
477
+
478
+ ## 5.0.7
479
+
480
+ ### Patch Changes
481
+
482
+ - Updated dependencies [d774a3196]
483
+ - @pnpm/types@9.3.0
484
+ - @pnpm/write-project-manifest@5.0.3
485
+
486
+ ## 5.0.6
487
+
488
+ ### Patch Changes
489
+
490
+ - Updated dependencies [9caa33d53]
491
+ - @pnpm/graceful-fs@3.2.0
492
+
493
+ ## 5.0.5
494
+
495
+ ### Patch Changes
496
+
497
+ - Updated dependencies [083bbf590]
498
+ - @pnpm/graceful-fs@3.1.0
499
+
500
+ ## 5.0.4
501
+
502
+ ### Patch Changes
503
+
504
+ - Updated dependencies [aa2ae8fe2]
505
+ - @pnpm/types@9.2.0
506
+ - @pnpm/write-project-manifest@5.0.2
507
+
508
+ ## 5.0.3
509
+
510
+ ### Patch Changes
511
+
512
+ - b4892acc5: Optimizing project manifest normalization, reducing amoung of data copying
513
+
514
+ ## 5.0.2
515
+
516
+ ### Patch Changes
517
+
518
+ - @pnpm/error@5.0.2
519
+
520
+ ## 5.0.1
521
+
522
+ ### Patch Changes
523
+
524
+ - Updated dependencies [a9e0b7cbf]
525
+ - @pnpm/types@9.1.0
526
+ - @pnpm/write-project-manifest@5.0.1
527
+ - @pnpm/error@5.0.1
528
+
529
+ ## 5.0.0
530
+
531
+ ### Major Changes
532
+
533
+ - eceaa8b8b: Node.js 14 support dropped.
534
+
535
+ ### Patch Changes
536
+
537
+ - Updated dependencies [eceaa8b8b]
538
+ - @pnpm/write-project-manifest@5.0.0
539
+ - @pnpm/text.comments-parser@2.0.0
540
+ - @pnpm/graceful-fs@3.0.0
541
+ - @pnpm/error@5.0.0
542
+ - @pnpm/types@9.0.0
543
+
544
+ ## 4.1.4
545
+
546
+ ### Patch Changes
547
+
548
+ - Updated dependencies [955874422]
549
+ - @pnpm/graceful-fs@2.1.0
550
+
551
+ ## 4.1.3
552
+
553
+ ### Patch Changes
554
+
555
+ - @pnpm/error@4.0.1
556
+
557
+ ## 4.1.2
558
+
559
+ ### Patch Changes
560
+
561
+ - Updated dependencies [b77651d14]
562
+ - @pnpm/types@8.10.0
563
+ - @pnpm/write-project-manifest@4.1.2
564
+
565
+ ## 4.1.1
566
+
567
+ ### Patch Changes
568
+
569
+ - Updated dependencies [a9d59d8bc]
570
+ - @pnpm/write-project-manifest@4.1.1
571
+
572
+ ## 4.1.0
573
+
574
+ ### Minor Changes
575
+
576
+ - 0d12d38fd: Comments in `package.json5` are preserver [#2008](https://github.com/pnpm/pnpm/issues/2008).
577
+
578
+ ### Patch Changes
579
+
580
+ - fec9e3149: Update detect-intent with fork from @gwhitney.
581
+ - Updated dependencies [0d12d38fd]
582
+ - Updated dependencies [0d12d38fd]
583
+ - @pnpm/text.comments-parser@1.0.0
584
+ - @pnpm/write-project-manifest@4.1.0
585
+
586
+ ## 4.0.2
587
+
588
+ ### Patch Changes
589
+
590
+ - Updated dependencies [702e847c1]
591
+ - @pnpm/types@8.9.0
592
+ - @pnpm/write-project-manifest@4.0.2
593
+
594
+ ## 4.0.1
595
+
596
+ ### Patch Changes
597
+
598
+ - Updated dependencies [844e82f3a]
599
+ - @pnpm/types@8.8.0
600
+ - @pnpm/write-project-manifest@4.0.1
601
+
602
+ ## 4.0.0
603
+
604
+ ### Major Changes
605
+
606
+ - f884689e0: Require `@pnpm/logger` v5.
607
+
608
+ ### Patch Changes
609
+
610
+ - Updated dependencies [043d988fc]
611
+ - Updated dependencies [f884689e0]
612
+ - @pnpm/error@4.0.0
613
+ - @pnpm/write-project-manifest@4.0.0
614
+
615
+ ## 3.0.13
616
+
617
+ ### Patch Changes
618
+
619
+ - Updated dependencies [7c296fe9b]
620
+ - @pnpm/write-project-manifest@3.0.10
621
+
622
+ ## 3.0.12
623
+
624
+ ### Patch Changes
625
+
626
+ - Updated dependencies [e8a631bf0]
627
+ - @pnpm/error@3.1.0
628
+
629
+ ## 3.0.11
630
+
631
+ ### Patch Changes
632
+
633
+ - Updated dependencies [d665f3ff7]
634
+ - @pnpm/types@8.7.0
635
+ - @pnpm/write-project-manifest@3.0.9
636
+
637
+ ## 3.0.10
638
+
639
+ ### Patch Changes
640
+
641
+ - Updated dependencies [156cc1ef6]
642
+ - @pnpm/types@8.6.0
643
+ - @pnpm/write-project-manifest@3.0.8
644
+
645
+ ## 3.0.9
646
+
647
+ ### Patch Changes
648
+
649
+ - 39c040127: upgrade various dependencies
650
+ - Updated dependencies [39c040127]
651
+ - @pnpm/write-project-manifest@3.0.7
652
+
653
+ ## 3.0.8
654
+
655
+ ### Patch Changes
656
+
657
+ - Updated dependencies [c90798461]
658
+ - @pnpm/types@8.5.0
659
+ - @pnpm/write-project-manifest@3.0.6
660
+
661
+ ## 3.0.7
662
+
663
+ ### Patch Changes
664
+
665
+ - 01c5834bf: It should be possible to rewrite a manifest back to its initial content [#5061](https://github.com/pnpm/pnpm/issues/5061).
666
+
667
+ ## 3.0.6
668
+
669
+ ### Patch Changes
670
+
671
+ - Updated dependencies [8e5b77ef6]
672
+ - @pnpm/types@8.4.0
673
+ - @pnpm/write-project-manifest@3.0.5
674
+
675
+ ## 3.0.5
676
+
677
+ ### Patch Changes
678
+
679
+ - Updated dependencies [2a34b21ce]
680
+ - @pnpm/types@8.3.0
681
+ - @pnpm/write-project-manifest@3.0.4
682
+
683
+ ## 3.0.4
684
+
685
+ ### Patch Changes
686
+
687
+ - Updated dependencies [fb5bbfd7a]
688
+ - @pnpm/types@8.2.0
689
+ - @pnpm/write-project-manifest@3.0.3
690
+
691
+ ## 3.0.3
692
+
693
+ ### Patch Changes
694
+
695
+ - Updated dependencies [4d39e4a0c]
696
+ - @pnpm/types@8.1.0
697
+ - @pnpm/write-project-manifest@3.0.2
698
+
699
+ ## 3.0.2
700
+
701
+ ### Patch Changes
702
+
703
+ - Updated dependencies [18ba5e2c0]
704
+ - @pnpm/types@8.0.1
705
+ - @pnpm/write-project-manifest@3.0.1
706
+
707
+ ## 3.0.1
708
+
709
+ ### Patch Changes
710
+
711
+ - @pnpm/error@3.0.1
712
+
713
+ ## 3.0.0
714
+
715
+ ### Major Changes
716
+
717
+ - 542014839: Node.js 12 is not supported.
718
+
719
+ ### Patch Changes
720
+
721
+ - Updated dependencies [d504dc380]
722
+ - Updated dependencies [542014839]
723
+ - @pnpm/types@8.0.0
724
+ - @pnpm/error@3.0.0
725
+ - @pnpm/graceful-fs@2.0.0
726
+ - @pnpm/write-project-manifest@3.0.0
727
+
728
+ ## 2.0.13
729
+
730
+ ### Patch Changes
731
+
732
+ - Updated dependencies [70ba51da9]
733
+ - @pnpm/error@2.1.0
734
+
735
+ ## 2.0.12
736
+
737
+ ### Patch Changes
738
+
739
+ - Updated dependencies [b138d048c]
740
+ - @pnpm/types@7.10.0
741
+ - @pnpm/write-project-manifest@2.0.11
742
+
743
+ ## 2.0.11
744
+
745
+ ### Patch Changes
746
+
747
+ - Updated dependencies [26cd01b88]
748
+ - @pnpm/types@7.9.0
749
+ - @pnpm/write-project-manifest@2.0.10
750
+
751
+ ## 2.0.10
752
+
753
+ ### Patch Changes
754
+
755
+ - Updated dependencies [b5734a4a7]
756
+ - @pnpm/types@7.8.0
757
+ - @pnpm/write-project-manifest@2.0.9
758
+
759
+ ## 2.0.9
760
+
761
+ ### Patch Changes
762
+
763
+ - Updated dependencies [6493e0c93]
764
+ - @pnpm/types@7.7.1
765
+ - @pnpm/write-project-manifest@2.0.8
766
+
767
+ ## 2.0.8
768
+
769
+ ### Patch Changes
770
+
771
+ - Updated dependencies [ba9b2eba1]
772
+ - @pnpm/types@7.7.0
773
+ - @pnpm/write-project-manifest@2.0.7
774
+
775
+ ## 2.0.7
776
+
777
+ ### Patch Changes
778
+
779
+ - Updated dependencies [302ae4f6f]
780
+ - @pnpm/types@7.6.0
781
+ - @pnpm/write-project-manifest@2.0.6
782
+
783
+ ## 2.0.6
784
+
785
+ ### Patch Changes
786
+
787
+ - Updated dependencies [4ab87844a]
788
+ - @pnpm/types@7.5.0
789
+ - @pnpm/write-project-manifest@2.0.5
790
+
791
+ ## 2.0.5
792
+
793
+ ### Patch Changes
794
+
795
+ - Updated dependencies [b734b45ea]
796
+ - @pnpm/types@7.4.0
797
+ - @pnpm/write-project-manifest@2.0.4
798
+
799
+ ## 2.0.4
800
+
801
+ ### Patch Changes
802
+
803
+ - Updated dependencies [8e76690f4]
804
+ - @pnpm/types@7.3.0
805
+ - @pnpm/write-project-manifest@2.0.3
806
+
807
+ ## 2.0.3
808
+
809
+ ### Patch Changes
810
+
811
+ - Updated dependencies [724c5abd8]
812
+ - @pnpm/types@7.2.0
813
+ - @pnpm/write-project-manifest@2.0.2
814
+
815
+ ## 2.0.2
816
+
817
+ ### Patch Changes
818
+
819
+ - Updated dependencies [a2aeeef88]
820
+ - @pnpm/graceful-fs@1.0.0
821
+
822
+ ## 2.0.1
823
+
824
+ ### Patch Changes
825
+
826
+ - 6e9c112af: Use graceful-fs in order to avoid EMFILE errors.
827
+ - Updated dependencies [97c64bae4]
828
+ - @pnpm/types@7.1.0
829
+ - @pnpm/write-project-manifest@2.0.1
830
+
831
+ ## 2.0.0
832
+
833
+ ### Major Changes
834
+
835
+ - 97b986fbc: Node.js 10 support is dropped. At least Node.js 12.17 is required for the package to work.
836
+
837
+ ### Patch Changes
838
+
839
+ - Updated dependencies [97b986fbc]
840
+ - @pnpm/error@2.0.0
841
+ - @pnpm/types@7.0.0
842
+ - @pnpm/write-project-manifest@2.0.0
843
+
844
+ ## 1.1.7
845
+
846
+ ### Patch Changes
847
+
848
+ - ad113645b: pin graceful-fs to v4.2.4
849
+ - Updated dependencies [ad113645b]
850
+ - @pnpm/write-project-manifest@1.1.7
851
+
852
+ ## 1.1.6
853
+
854
+ ### Patch Changes
855
+
856
+ - Updated dependencies [9ad8c27bf]
857
+ - @pnpm/types@6.4.0
858
+ - @pnpm/write-project-manifest@1.1.6
859
+
860
+ ## 1.1.5
861
+
862
+ ### Patch Changes
863
+
864
+ - Updated dependencies [0c5f1bcc9]
865
+ - @pnpm/error@1.4.0
866
+
867
+ ## 1.1.4
868
+
869
+ ### Patch Changes
870
+
871
+ - Updated dependencies [09492b7b4]
872
+ - @pnpm/write-project-manifest@1.1.5
873
+
874
+ ## 1.1.3
875
+
876
+ ### Patch Changes
877
+
878
+ - Updated dependencies [cb6e6fc8a]
879
+ - @pnpm/write-project-manifest@1.1.4
880
+
881
+ ## 1.1.2
882
+
883
+ ### Patch Changes
884
+
885
+ - Updated dependencies [b5d694e7f]
886
+ - @pnpm/types@6.3.1
887
+ - @pnpm/write-project-manifest@1.1.3
888
+
889
+ ## 1.1.1
890
+
891
+ ### Patch Changes
892
+
893
+ - Updated dependencies [d54043ee4]
894
+ - @pnpm/types@6.3.0
895
+ - @pnpm/write-project-manifest@1.1.2
896
+
897
+ ## 1.1.0
898
+
899
+ ### Minor Changes
900
+
901
+ - 2762781cc: safeReadProjectManifestOnly() added.
902
+
903
+ ## 1.0.13
904
+
905
+ ### Patch Changes
906
+
907
+ - Updated dependencies [75a36deba]
908
+ - @pnpm/error@1.3.1
909
+
910
+ ## 1.0.12
911
+
912
+ ### Patch Changes
913
+
914
+ - Updated dependencies [6d480dd7a]
915
+ - @pnpm/error@1.3.0
916
+
917
+ ## 1.0.11
918
+
919
+ ### Patch Changes
920
+
921
+ - Updated dependencies [2de5e1bec]
922
+ - @pnpm/write-project-manifest@1.1.1
923
+
924
+ ## 1.0.10
925
+
926
+ ### Patch Changes
927
+
928
+ - 3bd3253e3: Trailing new lines are preserved, when updating the read manifests.
929
+ - Updated dependencies [3bd3253e3]
930
+ - @pnpm/write-project-manifest@1.1.0
931
+
932
+ ## 1.0.9
933
+
934
+ ### Patch Changes
935
+
936
+ - Updated dependencies [db17f6f7b]
937
+ - @pnpm/types@6.2.0
938
+ - @pnpm/write-project-manifest@1.0.5
939
+
940
+ ## 1.0.8
941
+
942
+ ### Patch Changes
943
+
944
+ - Updated dependencies [71a8c8ce3]
945
+ - @pnpm/types@6.1.0
946
+ - @pnpm/write-project-manifest@1.0.4
947
+
948
+ ## 1.0.7
949
+
950
+ ### Patch Changes
951
+
952
+ - 57c510f00: Update fast-deep-equal to v3.1.3.
953
+
954
+ ## 1.0.6
955
+
956
+ ### Patch Changes
957
+
958
+ - Updated dependencies [da091c711]
959
+ - @pnpm/types@6.0.0
960
+ - @pnpm/error@1.2.1
961
+ - @pnpm/write-project-manifest@1.0.3
962
+
963
+ ## 1.0.6-alpha.0
964
+
965
+ ### Patch Changes
966
+
967
+ - Updated dependencies [da091c71]
968
+ - @pnpm/types@6.0.0-alpha.0
969
+ - @pnpm/write-project-manifest@1.0.3-alpha.0
970
+
971
+ ## 1.0.5
972
+
973
+ ### Patch Changes
974
+
975
+ - Updated dependencies [907c63a48]
976
+ - @pnpm/write-project-manifest@1.0.2
package/lib/index.js CHANGED
@@ -194,10 +194,11 @@ function convertManifestBeforeWrite(manifest) {
194
194
  return manifest;
195
195
  }
196
196
  function convertDependenciesToEnginesRuntime(manifest, dependenciesFieldName, enginesFieldName) {
197
+ const dependencies = readDependenciesField(manifest, dependenciesFieldName);
197
198
  for (const runtimeName of ['node', 'deno', 'bun']) {
198
- const dep = manifest[dependenciesFieldName]?.[runtimeName];
199
- if (typeof dep === 'string' && dep.startsWith('runtime:')) {
200
- const version = dep.replace(/^runtime:/, '');
199
+ const dep = dependencies?.[runtimeName];
200
+ if (dependencies != null && typeof dep === 'string' && dep.startsWith('runtime:')) {
201
+ const version = dep.slice('runtime:'.length).trim();
201
202
  manifest[enginesFieldName] ??= {};
202
203
  const runtimeEntry = {
203
204
  name: runtimeName,
@@ -226,11 +227,42 @@ function convertDependenciesToEnginesRuntime(manifest, dependenciesFieldName, en
226
227
  runtimeEntry,
227
228
  ];
228
229
  }
229
- if (manifest[dependenciesFieldName]) {
230
- delete manifest[dependenciesFieldName][runtimeName];
231
- }
230
+ delete dependencies[runtimeName];
231
+ }
232
+ else {
233
+ removeManagedRuntimeEntry(manifest[enginesFieldName], runtimeName);
234
+ }
235
+ }
236
+ }
237
+ function readDependenciesField(manifest, dependenciesFieldName) {
238
+ const dependencies = manifest[dependenciesFieldName];
239
+ if (dependencies === undefined)
240
+ return undefined;
241
+ if (dependencies === null || typeof dependencies !== 'object' || Array.isArray(dependencies)) {
242
+ throw new PnpmError('INVALID_DEPENDENCIES_FIELD', `The "${dependenciesFieldName}" field must be an object.`);
243
+ }
244
+ return dependencies;
245
+ }
246
+ function removeManagedRuntimeEntry(enginesField, runtimeName) {
247
+ if (!enginesField?.runtime)
248
+ return;
249
+ if (Array.isArray(enginesField.runtime)) {
250
+ const runtimes = enginesField.runtime.filter((runtime) => !isManagedRuntimeEntry(runtime, runtimeName));
251
+ if (runtimes.length === 0) {
252
+ delete enginesField.runtime;
253
+ }
254
+ else {
255
+ enginesField.runtime = runtimes;
232
256
  }
233
257
  }
258
+ else if (isManagedRuntimeEntry(enginesField.runtime, runtimeName)) {
259
+ delete enginesField.runtime;
260
+ }
261
+ }
262
+ function isManagedRuntimeEntry(runtime, runtimeName) {
263
+ return runtime.name === runtimeName &&
264
+ runtime.onFail === 'download' &&
265
+ typeof runtime.version === 'string';
234
266
  }
235
267
  const dependencyKeys = new Set([
236
268
  'dependencies',
@@ -243,7 +275,10 @@ function normalize(manifest) {
243
275
  for (const key in manifest) {
244
276
  if (Object.hasOwn(manifest, key)) {
245
277
  const value = manifest[key];
246
- if (typeof value !== 'object' || value === null || !dependencyKeys.has(key)) {
278
+ if (typeof value !== 'object' ||
279
+ value === null ||
280
+ !dependencyKeys.has(key) ||
281
+ Array.isArray(value)) {
247
282
  result[key] = structuredClone(value);
248
283
  }
249
284
  else {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pnpm/workspace.project-manifest-reader",
3
- "version": "1100.0.13",
3
+ "version": "1100.0.15",
4
4
  "description": "Read a project manifest (called package.json in most cases)",
5
5
  "keywords": [
6
6
  "pnpm",
@@ -10,9 +10,9 @@
10
10
  "funding": "https://opencollective.com/pnpm",
11
11
  "repository": {
12
12
  "type": "git",
13
- "url": "https://github.com/pnpm/pnpm/tree/main/workspace/project-manifest-reader"
13
+ "url": "https://github.com/pnpm/pnpm/tree/main/pnpm11/workspace/project-manifest-reader"
14
14
  },
15
- "homepage": "https://github.com/pnpm/pnpm/tree/main/workspace/project-manifest-reader#readme",
15
+ "homepage": "https://github.com/pnpm/pnpm/tree/main/pnpm11/workspace/project-manifest-reader#readme",
16
16
  "bugs": {
17
17
  "url": "https://github.com/pnpm/pnpm/issues"
18
18
  },
@@ -27,6 +27,12 @@
27
27
  "!*.map"
28
28
  ],
29
29
  "dependencies": {
30
+ "@pnpm/error": "1100.0.1",
31
+ "@pnpm/fs.graceful-fs": "1100.1.0",
32
+ "@pnpm/pkg-manifest.utils": "1100.2.7",
33
+ "@pnpm/text.comments-parser": "1100.0.0",
34
+ "@pnpm/types": "1101.4.0",
35
+ "@pnpm/workspace.project-manifest-writer": "1100.0.9",
30
36
  "detect-indent": "7.0.2",
31
37
  "fast-deep-equal": "^3.1.3",
32
38
  "is-windows": "^1.0.2",
@@ -34,24 +40,18 @@
34
40
  "p-limit": "^7.3.0",
35
41
  "parse-json": "^8.3.0",
36
42
  "read-yaml-file": "^3.0.0",
37
- "strip-bom": "^5.0.0",
38
- "@pnpm/error": "1100.0.0",
39
- "@pnpm/pkg-manifest.utils": "1100.2.5",
40
- "@pnpm/text.comments-parser": "1100.0.0",
41
- "@pnpm/types": "1101.3.2",
42
- "@pnpm/workspace.project-manifest-writer": "1100.0.8",
43
- "@pnpm/fs.graceful-fs": "1100.1.0"
43
+ "strip-bom": "^5.0.0"
44
44
  },
45
45
  "peerDependencies": {
46
46
  "@pnpm/logger": "^1100.0.0"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@jest/globals": "30.4.1",
50
+ "@pnpm/test-fixtures": "1100.0.0",
51
+ "@pnpm/workspace.project-manifest-reader": "1100.0.15",
50
52
  "@types/is-windows": "^1.0.2",
51
53
  "@types/parse-json": "^7.0.0",
52
- "tempy": "3.0.0",
53
- "@pnpm/workspace.project-manifest-reader": "1100.0.13",
54
- "@pnpm/test-fixtures": "1100.0.0"
54
+ "tempy": "3.0.0"
55
55
  },
56
56
  "engines": {
57
57
  "node": ">=22.13"