@pnpm/releasing.exportable-manifest 1100.1.8 → 1100.1.10

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,1055 @@
1
+ # @pnpm/exportable-manifest
2
+
3
+ ## 1100.1.10
4
+
5
+ ### Patch Changes
6
+
7
+ - `pnpm publish` again sends the package's README to the registry as metadata, so registries can render it on the package page. The readme is always included in the published metadata (matching the npm CLI), while the `embed-readme` setting continues to control only whether the readme is written into the `package.json` inside the tarball. This restores the behavior that was lost when publishing became fully native. Closes pnpm/pnpm#12966.
8
+
9
+ - Updated dependencies:
10
+ - @pnpm/bins.resolver@1100.0.9
11
+ - @pnpm/types@1101.4.0
12
+ - @pnpm/workspace.project-manifest-reader@1100.0.15
13
+
14
+ ## 1100.1.9
15
+
16
+ ### Patch Changes
17
+
18
+ - Updated dependencies [25c7388]
19
+ - @pnpm/resolving.jsr-specifier-parser@1100.0.2
20
+
21
+ ## 1100.1.8
22
+
23
+ ### Patch Changes
24
+
25
+ - Updated dependencies [0ec878d]
26
+ - Updated dependencies [852d537]
27
+ - @pnpm/workspace.project-manifest-reader@1100.0.14
28
+ - @pnpm/error@1100.0.1
29
+ - @pnpm/resolving.jsr-specifier-parser@1100.0.1
30
+
31
+ ## 1100.1.7
32
+
33
+ ### Patch Changes
34
+
35
+ - e85aea2: Avoid reading `README.md` from disk when publishing if the publish manifest already provides a `readme` field. The README is now only read lazily, inside `createExportableManifest`, when it is actually needed.
36
+
37
+ ## 1100.1.6
38
+
39
+ ### Patch Changes
40
+
41
+ - Updated dependencies [681b593]
42
+ - Updated dependencies [a31faa7]
43
+ - @pnpm/types@1101.3.2
44
+ - @pnpm/workspace.project-manifest-reader@1100.0.13
45
+ - @pnpm/bins.resolver@1100.0.8
46
+
47
+ ## 1100.1.5
48
+
49
+ ### Patch Changes
50
+
51
+ - @pnpm/workspace.project-manifest-reader@1100.0.12
52
+
53
+ ## 1100.1.4
54
+
55
+ ### Patch Changes
56
+
57
+ - Updated dependencies [230df57]
58
+ - Updated dependencies [bf1b731]
59
+ - @pnpm/bins.resolver@1100.0.7
60
+ - @pnpm/types@1101.3.1
61
+ - @pnpm/workspace.project-manifest-reader@1100.0.11
62
+
63
+ ## 1100.1.3
64
+
65
+ ### Patch Changes
66
+
67
+ - Updated dependencies [a017bf3]
68
+ - @pnpm/types@1101.3.0
69
+ - @pnpm/bins.resolver@1100.0.6
70
+ - @pnpm/workspace.project-manifest-reader@1100.0.10
71
+
72
+ ## 1100.1.2
73
+
74
+ ### Patch Changes
75
+
76
+ - 33921c8: Normalize a string `repository` field into the `{ type, url }` object form when creating the publish manifest, matching npm's behavior. Some registries (e.g. Gitea/Codeberg) reject a string `repository` with a 500 Internal Server Error during `pnpm publish` [#12099](https://github.com/pnpm/pnpm/issues/12099).
77
+
78
+ ## 1100.1.1
79
+
80
+ ### Patch Changes
81
+
82
+ - Updated dependencies [a456dc7]
83
+ - Updated dependencies [35d2355]
84
+ - @pnpm/workspace.project-manifest-reader@1100.0.9
85
+ - @pnpm/types@1101.2.0
86
+ - @pnpm/bins.resolver@1100.0.5
87
+
88
+ ## 1100.1.0
89
+
90
+ ### Minor Changes
91
+
92
+ - 3b62f9d: Add a `skip-manifest-obfuscation` option for `pnpm pack` and `pnpm publish`. When enabled, the original `packageManager` field and publish lifecycle scripts are kept in the packed/published manifest instead of being stripped. The pnpm-specific `pnpm` field continues to be omitted.
93
+
94
+ ### Patch Changes
95
+
96
+ - Updated dependencies [d7da112]
97
+ - @pnpm/workspace.project-manifest-reader@1100.0.8
98
+
99
+ ## 1100.0.7
100
+
101
+ ### Patch Changes
102
+
103
+ - Updated dependencies [64afc92]
104
+ - @pnpm/types@1101.1.1
105
+ - @pnpm/workspace.project-manifest-reader@1100.0.7
106
+ - @pnpm/bins.resolver@1100.0.4
107
+
108
+ ## 1100.0.6
109
+
110
+ ### Patch Changes
111
+
112
+ - @pnpm/workspace.project-manifest-reader@1100.0.6
113
+
114
+ ## 1100.0.5
115
+
116
+ ### Patch Changes
117
+
118
+ - @pnpm/workspace.project-manifest-reader@1100.0.5
119
+
120
+ ## 1100.0.4
121
+
122
+ ### Patch Changes
123
+
124
+ - Updated dependencies [b61e268]
125
+ - @pnpm/types@1101.1.0
126
+ - @pnpm/bins.resolver@1100.0.3
127
+ - @pnpm/workspace.project-manifest-reader@1100.0.4
128
+
129
+ ## 1100.0.3
130
+
131
+ ### Patch Changes
132
+
133
+ - 184ce26: Fix the package name in README.md.
134
+ - Updated dependencies [184ce26]
135
+ - @pnpm/workspace.project-manifest-reader@1100.0.3
136
+ - @pnpm/bins.resolver@1100.0.2
137
+
138
+ ## 1100.0.2
139
+
140
+ ### Patch Changes
141
+
142
+ - @pnpm/workspace.project-manifest-reader@1100.0.2
143
+
144
+ ## 1100.0.1
145
+
146
+ ### Patch Changes
147
+
148
+ - Updated dependencies [ff28085]
149
+ - @pnpm/types@1101.0.0
150
+ - @pnpm/bins.resolver@1100.0.1
151
+ - @pnpm/workspace.project-manifest-reader@1100.0.1
152
+
153
+ ## 1001.0.0
154
+
155
+ ### Major Changes
156
+
157
+ - 491a84f: This package is now pure ESM.
158
+ - 7d2fd48: Node.js v18, 19, 20, and 21 support discontinued.
159
+
160
+ ### Minor Changes
161
+
162
+ - 29764fb: Add support for a hook called `beforePacking` that can be used to customize the `package.json` contents at publish time [#3816](https://github.com/pnpm/pnpm/issues/3816).
163
+ - 0625e20: Support bare `workspace:` protocol without version specifier. It is now treated as `workspace:*` and resolves to the concrete version during publish [#10436](https://github.com/pnpm/pnpm/pull/10436).
164
+ - cc7c0d2: `pnpm publish` now works without the `npm` CLI.
165
+
166
+ The One-time Password feature now reads from `PNPM_CONFIG_OTP` instead of `NPM_CONFIG_OTP`:
167
+
168
+ ```sh
169
+ export PNPM_CONFIG_OTP='<your OTP here>'
170
+ pnpm publish --no-git-checks
171
+ ```
172
+
173
+ If the registry requests OTP and the user has not provided it via the `PNPM_CONFIG_OTP` environment variable or the `--otp` flag, pnpm will prompt the user directly for an OTP code.
174
+
175
+ If the registry requests web-based authentication, pnpm will print a scannable QR code along with the URL.
176
+
177
+ Since the new `pnpm publish` no longer calls `npm publish`, some undocumented features may have been unknowingly dropped. If you rely on a feature that is now gone, please open an issue at <https://github.com/pnpm/pnpm/issues>. In the meantime, you can use `pnpm pack && npm publish *.tgz` as a workaround.
178
+
179
+ - f03b9ec: Allow to override the `engines` field on publish by the `publishConfig.engines` field.
180
+
181
+ ### Patch Changes
182
+
183
+ - Updated dependencies [449dacf]
184
+ - Updated dependencies [76718b3]
185
+ - Updated dependencies [a8f016c]
186
+ - Updated dependencies [cc1b8e3]
187
+ - Updated dependencies [491a84f]
188
+ - Updated dependencies [13855ac]
189
+ - Updated dependencies [d7b8be4]
190
+ - Updated dependencies [98a5f1c]
191
+ - Updated dependencies [7d2fd48]
192
+ - Updated dependencies [efb48dc]
193
+ - Updated dependencies [cb367b9]
194
+ - Updated dependencies [7b1c189]
195
+ - Updated dependencies [8ffb1a7]
196
+ - Updated dependencies [05fb1ae]
197
+ - Updated dependencies [71de2b3]
198
+ - Updated dependencies [10bc391]
199
+ - Updated dependencies [831f574]
200
+ - Updated dependencies [2df8b71]
201
+ - Updated dependencies [15549a9]
202
+ - Updated dependencies [cc7c0d2]
203
+ - Updated dependencies [efb48dc]
204
+ - @pnpm/bins.resolver@1001.0.0
205
+ - @pnpm/types@1001.0.0
206
+ - @pnpm/workspace.project-manifest-reader@1002.0.0
207
+ - @pnpm/resolving.jsr-specifier-parser@1001.0.0
208
+ - @pnpm/catalogs.resolver@1001.0.0
209
+ - @pnpm/error@1001.0.0
210
+
211
+ ## 1000.1.7
212
+
213
+ ### Patch Changes
214
+
215
+ - Updated dependencies [7c1382f]
216
+ - Updated dependencies [dee39ec]
217
+ - @pnpm/types@1000.9.0
218
+ - @pnpm/read-project-manifest@1001.1.4
219
+
220
+ ## 1000.1.6
221
+
222
+ ### Patch Changes
223
+
224
+ - @pnpm/read-project-manifest@1001.1.3
225
+
226
+ ## 1000.1.5
227
+
228
+ ### Patch Changes
229
+
230
+ - @pnpm/error@1000.0.5
231
+ - @pnpm/read-project-manifest@1001.1.2
232
+ - @pnpm/resolving.jsr-specifier-parser@1000.0.3
233
+
234
+ ## 1000.1.4
235
+
236
+ ### Patch Changes
237
+
238
+ - Updated dependencies [e792927]
239
+ - @pnpm/types@1000.8.0
240
+ - @pnpm/read-project-manifest@1001.1.1
241
+
242
+ ## 1000.1.3
243
+
244
+ ### Patch Changes
245
+
246
+ - Updated dependencies [d1edf73]
247
+ - Updated dependencies [86b33e9]
248
+ - @pnpm/read-project-manifest@1001.1.0
249
+ - @pnpm/error@1000.0.4
250
+ - @pnpm/catalogs.resolver@1000.0.5
251
+ - @pnpm/resolving.jsr-specifier-parser@1000.0.2
252
+
253
+ ## 1000.1.2
254
+
255
+ ### Patch Changes
256
+
257
+ - Updated dependencies [1a07b8f]
258
+ - Updated dependencies [1a07b8f]
259
+ - Updated dependencies [1a07b8f]
260
+ - @pnpm/types@1000.7.0
261
+ - @pnpm/read-project-manifest@1001.0.0
262
+ - @pnpm/error@1000.0.3
263
+ - @pnpm/catalogs.resolver@1000.0.4
264
+ - @pnpm/resolving.jsr-specifier-parser@1000.0.1
265
+
266
+ ## 1000.1.1
267
+
268
+ ### Patch Changes
269
+
270
+ - Updated dependencies [5ec7255]
271
+ - @pnpm/types@1000.6.0
272
+ - @pnpm/read-project-manifest@1000.0.11
273
+
274
+ ## 1000.1.0
275
+
276
+ ### Minor Changes
277
+
278
+ - 9c3dd03: **Added support for installing JSR packages.** You can now install JSR packages using the following syntax:
279
+
280
+ ```
281
+ pnpm add jsr:<pkg_name>
282
+ ```
283
+
284
+ or with a version range:
285
+
286
+ ```
287
+ pnpm add jsr:<pkg_name>@<range>
288
+ ```
289
+
290
+ For example, running:
291
+
292
+ ```
293
+ pnpm add jsr:@foo/bar
294
+ ```
295
+
296
+ will add the following entry to your `package.json`:
297
+
298
+ ```json
299
+ {
300
+ "dependencies": {
301
+ "@foo/bar": "jsr:^0.1.2"
302
+ }
303
+ }
304
+ ```
305
+
306
+ When publishing, this entry will be transformed into a format compatible with npm, older versions of Yarn, and previous pnpm versions:
307
+
308
+ ```json
309
+ {
310
+ "dependencies": {
311
+ "@foo/bar": "npm:@jsr/foo__bar@^0.1.2"
312
+ }
313
+ }
314
+ ```
315
+
316
+ Related issue: [#8941](https://github.com/pnpm/pnpm/issues/8941).
317
+
318
+ Note: The `@jsr` scope defaults to <https://npm.jsr.io/> if the `@jsr:registry` setting is not defined.
319
+
320
+ ### Patch Changes
321
+
322
+ - Updated dependencies [9c3dd03]
323
+ - Updated dependencies [5b73df1]
324
+ - @pnpm/resolving.jsr-specifier-parser@1000.0.0
325
+ - @pnpm/types@1000.5.0
326
+ - @pnpm/catalogs.resolver@1000.0.3
327
+ - @pnpm/read-project-manifest@1000.0.10
328
+
329
+ ## 1000.0.10
330
+
331
+ ### Patch Changes
332
+
333
+ - Updated dependencies [750ae7d]
334
+ - @pnpm/types@1000.4.0
335
+ - @pnpm/read-project-manifest@1000.0.9
336
+
337
+ ## 1000.0.9
338
+
339
+ ### Patch Changes
340
+
341
+ - Updated dependencies [5f7be64]
342
+ - Updated dependencies [5f7be64]
343
+ - @pnpm/types@1000.3.0
344
+ - @pnpm/read-project-manifest@1000.0.8
345
+
346
+ ## 1000.0.8
347
+
348
+ ### Patch Changes
349
+
350
+ - Updated dependencies [a5e4965]
351
+ - @pnpm/types@1000.2.1
352
+ - @pnpm/read-project-manifest@1000.0.7
353
+
354
+ ## 1000.0.7
355
+
356
+ ### Patch Changes
357
+
358
+ - Updated dependencies [8fcc221]
359
+ - @pnpm/types@1000.2.0
360
+ - @pnpm/read-project-manifest@1000.0.6
361
+
362
+ ## 1000.0.6
363
+
364
+ ### Patch Changes
365
+
366
+ - Updated dependencies [1e229d7]
367
+ - @pnpm/read-project-manifest@1000.0.5
368
+
369
+ ## 1000.0.5
370
+
371
+ ### Patch Changes
372
+
373
+ - Updated dependencies [b562deb]
374
+ - @pnpm/types@1000.1.1
375
+ - @pnpm/error@1000.0.2
376
+ - @pnpm/read-project-manifest@1000.0.4
377
+ - @pnpm/catalogs.resolver@1000.0.2
378
+
379
+ ## 1000.0.4
380
+
381
+ ### Patch Changes
382
+
383
+ - Updated dependencies [e050221]
384
+ - @pnpm/read-project-manifest@1000.0.3
385
+
386
+ ## 1000.0.3
387
+
388
+ ### Patch Changes
389
+
390
+ - Updated dependencies [9591a18]
391
+ - @pnpm/types@1000.1.0
392
+ - @pnpm/read-project-manifest@1000.0.2
393
+
394
+ ## 1000.0.2
395
+
396
+ ### Patch Changes
397
+
398
+ - 738d9e4: Fixed `publish`/`pack` error with workspace dependencies with relative paths [#8904](https://github.com/pnpm/pnpm/pull/8904). It was broken in `v9.4.0` ([398472c](https://github.com/pnpm/pnpm/commit/398472c)).
399
+
400
+ ## 1000.0.1
401
+
402
+ ### Patch Changes
403
+
404
+ - @pnpm/error@1000.0.1
405
+ - @pnpm/catalogs.resolver@1000.0.1
406
+ - @pnpm/read-project-manifest@1000.0.1
407
+
408
+ ## 7.0.7
409
+
410
+ ### Patch Changes
411
+
412
+ - @pnpm/error@6.0.3
413
+ - @pnpm/catalogs.resolver@0.1.2
414
+ - @pnpm/read-project-manifest@6.0.10
415
+
416
+ ## 7.0.6
417
+
418
+ ### Patch Changes
419
+
420
+ - @pnpm/error@6.0.2
421
+ - @pnpm/catalogs.resolver@0.1.1
422
+ - @pnpm/read-project-manifest@6.0.9
423
+
424
+ ## 7.0.5
425
+
426
+ ### Patch Changes
427
+
428
+ - Updated dependencies [d500d9f]
429
+ - @pnpm/types@12.2.0
430
+ - @pnpm/read-project-manifest@6.0.8
431
+
432
+ ## 7.0.4
433
+
434
+ ### Patch Changes
435
+
436
+ - Updated dependencies [7ee59a1]
437
+ - @pnpm/types@12.1.0
438
+ - @pnpm/read-project-manifest@6.0.7
439
+
440
+ ## 7.0.3
441
+
442
+ ### Patch Changes
443
+
444
+ - ecbe2ea: Replace semver in "peerDependency" with workspace protocol [#8355](https://github.com/pnpm/pnpm/issues/8355).
445
+
446
+ ## 7.0.2
447
+
448
+ ### Patch Changes
449
+
450
+ - Updated dependencies [cb006df]
451
+ - @pnpm/types@12.0.0
452
+ - @pnpm/read-project-manifest@6.0.6
453
+
454
+ ## 7.0.1
455
+
456
+ ### Patch Changes
457
+
458
+ - Updated dependencies [0ef168b]
459
+ - @pnpm/types@11.1.0
460
+ - @pnpm/read-project-manifest@6.0.5
461
+
462
+ ## 7.0.0
463
+
464
+ ### Major Changes
465
+
466
+ - 9c63679: Creating an exportable manifest now requires a `Catalog` object to be passed to `createExportableManifest` in order to replace `catalog:` protocol specifiers.
467
+
468
+ ### Patch Changes
469
+
470
+ - Updated dependencies [dd00eeb]
471
+ - Updated dependencies
472
+ - @pnpm/types@11.0.0
473
+ - @pnpm/read-project-manifest@6.0.4
474
+
475
+ ## 6.1.0
476
+
477
+ ### Minor Changes
478
+
479
+ - 398472c: Handle workspace protocol with any semver range specifier, when used in peer dependencies [#7578](https://github.com/pnpm/pnpm/issues/7578).
480
+
481
+ ### Patch Changes
482
+
483
+ - Updated dependencies [13e55b2]
484
+ - @pnpm/types@10.1.1
485
+ - @pnpm/read-project-manifest@6.0.3
486
+
487
+ ## 6.0.2
488
+
489
+ ### Patch Changes
490
+
491
+ - Updated dependencies [45f4262]
492
+ - @pnpm/types@10.1.0
493
+ - @pnpm/read-project-manifest@6.0.2
494
+
495
+ ## 6.0.1
496
+
497
+ ### Patch Changes
498
+
499
+ - Updated dependencies [a7aef51]
500
+ - @pnpm/error@6.0.1
501
+ - @pnpm/read-project-manifest@6.0.1
502
+
503
+ ## 6.0.0
504
+
505
+ ### Major Changes
506
+
507
+ - 43cdd87: Node.js v16 support dropped. Use at least Node.js v18.12.
508
+ - 3477ee5: pnpm will now check the `package.json` file for a `packageManager` field. If this field is present and specifies a different package manager or a different version of pnpm than the one you're currently using, pnpm will not proceed. This ensures that you're always using the correct package manager and version that the project requires.
509
+
510
+ To disable this behaviour, set the `package-manager-strict` setting to `false` or the `COREPACK_ENABLE_STRICT` env variable to `0`.
511
+
512
+ ### Patch Changes
513
+
514
+ - Updated dependencies [7733f3a]
515
+ - Updated dependencies [3ded840]
516
+ - Updated dependencies [43cdd87]
517
+ - Updated dependencies [730929e]
518
+ - @pnpm/types@10.0.0
519
+ - @pnpm/error@6.0.0
520
+ - @pnpm/read-project-manifest@6.0.0
521
+
522
+ ## 5.0.11
523
+
524
+ ### Patch Changes
525
+
526
+ - Updated dependencies [4d34684f1]
527
+ - @pnpm/types@9.4.2
528
+ - @pnpm/read-project-manifest@5.0.10
529
+
530
+ ## 5.0.10
531
+
532
+ ### Patch Changes
533
+
534
+ - Updated dependencies
535
+ - @pnpm/types@9.4.1
536
+ - @pnpm/read-project-manifest@5.0.9
537
+
538
+ ## 5.0.9
539
+
540
+ ### Patch Changes
541
+
542
+ - Updated dependencies [43ce9e4a6]
543
+ - @pnpm/types@9.4.0
544
+ - @pnpm/read-project-manifest@5.0.8
545
+
546
+ ## 5.0.8
547
+
548
+ ### Patch Changes
549
+
550
+ - Updated dependencies [d774a3196]
551
+ - @pnpm/types@9.3.0
552
+ - @pnpm/read-project-manifest@5.0.7
553
+
554
+ ## 5.0.7
555
+
556
+ ### Patch Changes
557
+
558
+ - @pnpm/read-project-manifest@5.0.6
559
+
560
+ ## 5.0.6
561
+
562
+ ### Patch Changes
563
+
564
+ - e9aa6f682: Apply fixes from @typescript-eslint v6 for nullish coalescing and optional chains. No behavior changes are expected with this change.
565
+ - @pnpm/read-project-manifest@5.0.5
566
+
567
+ ## 5.0.5
568
+
569
+ ### Patch Changes
570
+
571
+ - Updated dependencies [aa2ae8fe2]
572
+ - @pnpm/types@9.2.0
573
+ - @pnpm/read-project-manifest@5.0.4
574
+
575
+ ## 5.0.4
576
+
577
+ ### Patch Changes
578
+
579
+ - Updated dependencies [b4892acc5]
580
+ - @pnpm/read-project-manifest@5.0.3
581
+
582
+ ## 5.0.3
583
+
584
+ ### Patch Changes
585
+
586
+ - @pnpm/error@5.0.2
587
+ - @pnpm/read-project-manifest@5.0.2
588
+
589
+ ## 5.0.2
590
+
591
+ ### Patch Changes
592
+
593
+ - 4b97f1f07: Don't use await in loops.
594
+
595
+ ## 5.0.1
596
+
597
+ ### Patch Changes
598
+
599
+ - Updated dependencies [a9e0b7cbf]
600
+ - @pnpm/types@9.1.0
601
+ - @pnpm/read-project-manifest@5.0.1
602
+ - @pnpm/error@5.0.1
603
+
604
+ ## 5.0.0
605
+
606
+ ### Major Changes
607
+
608
+ - eceaa8b8b: Node.js 14 support dropped.
609
+
610
+ ### Patch Changes
611
+
612
+ - Updated dependencies [eceaa8b8b]
613
+ - @pnpm/read-project-manifest@5.0.0
614
+ - @pnpm/error@5.0.0
615
+ - @pnpm/types@9.0.0
616
+
617
+ ## 4.0.8
618
+
619
+ ### Patch Changes
620
+
621
+ - @pnpm/read-project-manifest@4.1.4
622
+
623
+ ## 4.0.7
624
+
625
+ ### Patch Changes
626
+
627
+ - b71c6ed74: Fix version number replacing for namespaced workspace packages. `workspace:@foo/bar@*` should be replaced with `npm:@foo/bar@<version>` on publish [#6052](https://github.com/pnpm/pnpm/pull/6052).
628
+
629
+ ## 4.0.6
630
+
631
+ ### Patch Changes
632
+
633
+ - @pnpm/error@4.0.1
634
+ - @pnpm/read-project-manifest@4.1.3
635
+
636
+ ## 4.0.5
637
+
638
+ ### Patch Changes
639
+
640
+ - Updated dependencies [b77651d14]
641
+ - @pnpm/types@8.10.0
642
+ - @pnpm/read-project-manifest@4.1.2
643
+
644
+ ## 4.0.4
645
+
646
+ ### Patch Changes
647
+
648
+ - @pnpm/read-project-manifest@4.1.1
649
+
650
+ ## 4.0.3
651
+
652
+ ### Patch Changes
653
+
654
+ - Updated dependencies [fec9e3149]
655
+ - Updated dependencies [0d12d38fd]
656
+ - @pnpm/read-project-manifest@4.1.0
657
+
658
+ ## 4.0.2
659
+
660
+ ### Patch Changes
661
+
662
+ - Updated dependencies [702e847c1]
663
+ - @pnpm/types@8.9.0
664
+ - @pnpm/read-project-manifest@4.0.2
665
+
666
+ ## 4.0.1
667
+
668
+ ### Patch Changes
669
+
670
+ - Updated dependencies [844e82f3a]
671
+ - @pnpm/types@8.8.0
672
+ - @pnpm/read-project-manifest@4.0.1
673
+
674
+ ## 4.0.0
675
+
676
+ ### Major Changes
677
+
678
+ - 043d988fc: Breaking change to the API. Defaul export is not used.
679
+ - f884689e0: Require `@pnpm/logger` v5.
680
+
681
+ ### Patch Changes
682
+
683
+ - Updated dependencies [043d988fc]
684
+ - Updated dependencies [f884689e0]
685
+ - @pnpm/error@4.0.0
686
+ - @pnpm/read-project-manifest@4.0.0
687
+
688
+ ## 3.1.6
689
+
690
+ ### Patch Changes
691
+
692
+ - @pnpm/read-project-manifest@3.0.13
693
+
694
+ ## 3.1.5
695
+
696
+ ### Patch Changes
697
+
698
+ - Updated dependencies [e8a631bf0]
699
+ - @pnpm/error@3.1.0
700
+ - @pnpm/read-project-manifest@3.0.12
701
+
702
+ ## 3.1.4
703
+
704
+ ### Patch Changes
705
+
706
+ - Updated dependencies [d665f3ff7]
707
+ - @pnpm/types@8.7.0
708
+ - @pnpm/read-project-manifest@3.0.11
709
+
710
+ ## 3.1.3
711
+
712
+ ### Patch Changes
713
+
714
+ - Updated dependencies [156cc1ef6]
715
+ - @pnpm/types@8.6.0
716
+ - @pnpm/read-project-manifest@3.0.10
717
+
718
+ ## 3.1.2
719
+
720
+ ### Patch Changes
721
+
722
+ - 8103f92bd: Use a patched version of ramda to fix deprecation warnings on Node.js 16. Related issue: https://github.com/ramda/ramda/pull/3270
723
+ - Updated dependencies [39c040127]
724
+ - @pnpm/read-project-manifest@3.0.9
725
+
726
+ ## 3.1.1
727
+
728
+ ### Patch Changes
729
+
730
+ - Updated dependencies [c90798461]
731
+ - @pnpm/types@8.5.0
732
+ - @pnpm/read-project-manifest@3.0.8
733
+
734
+ ## 3.1.0
735
+
736
+ ### Minor Changes
737
+
738
+ - eb2426cf8: Accept the module directory path where the dependency's manifest should be read.
739
+
740
+ ### Patch Changes
741
+
742
+ - Updated dependencies [01c5834bf]
743
+ - @pnpm/read-project-manifest@3.0.7
744
+
745
+ ## 3.0.7
746
+
747
+ ### Patch Changes
748
+
749
+ - 5f643f23b: Update ramda to v0.28.
750
+
751
+ ## 3.0.6
752
+
753
+ ### Patch Changes
754
+
755
+ - Updated dependencies [8e5b77ef6]
756
+ - @pnpm/types@8.4.0
757
+ - @pnpm/read-project-manifest@3.0.6
758
+
759
+ ## 3.0.5
760
+
761
+ ### Patch Changes
762
+
763
+ - Updated dependencies [2a34b21ce]
764
+ - @pnpm/types@8.3.0
765
+ - @pnpm/read-project-manifest@3.0.5
766
+
767
+ ## 3.0.4
768
+
769
+ ### Patch Changes
770
+
771
+ - Updated dependencies [fb5bbfd7a]
772
+ - @pnpm/types@8.2.0
773
+ - @pnpm/read-project-manifest@3.0.4
774
+
775
+ ## 3.0.3
776
+
777
+ ### Patch Changes
778
+
779
+ - Updated dependencies [4d39e4a0c]
780
+ - @pnpm/types@8.1.0
781
+ - @pnpm/read-project-manifest@3.0.3
782
+
783
+ ## 3.0.2
784
+
785
+ ### Patch Changes
786
+
787
+ - 18ba5e2c0: Add typesVersions to PUBLISH_CONFIG_WHITELIST
788
+ - Updated dependencies [18ba5e2c0]
789
+ - @pnpm/types@8.0.1
790
+ - @pnpm/read-project-manifest@3.0.2
791
+
792
+ ## 3.0.1
793
+
794
+ ### Patch Changes
795
+
796
+ - @pnpm/error@3.0.1
797
+ - @pnpm/read-project-manifest@3.0.1
798
+
799
+ ## 3.0.0
800
+
801
+ ### Major Changes
802
+
803
+ - 542014839: Node.js 12 is not supported.
804
+
805
+ ### Patch Changes
806
+
807
+ - Updated dependencies [d504dc380]
808
+ - Updated dependencies [542014839]
809
+ - @pnpm/types@8.0.0
810
+ - @pnpm/error@3.0.0
811
+ - @pnpm/read-project-manifest@3.0.0
812
+
813
+ ## 2.3.2
814
+
815
+ ### Patch Changes
816
+
817
+ - Updated dependencies [70ba51da9]
818
+ - @pnpm/error@2.1.0
819
+ - @pnpm/read-project-manifest@2.0.13
820
+
821
+ ## 2.3.1
822
+
823
+ ### Patch Changes
824
+
825
+ - Updated dependencies [b138d048c]
826
+ - @pnpm/types@7.10.0
827
+ - @pnpm/read-project-manifest@2.0.12
828
+
829
+ ## 2.3.0
830
+
831
+ ### Minor Changes
832
+
833
+ - e1b459008: Remove meaningless keys from `publishConfig` when the `pack` or `publish` commands are used [#4311](https://github.com/pnpm/pnpm/issues/4311)
834
+
835
+ ## 2.2.4
836
+
837
+ ### Patch Changes
838
+
839
+ - Updated dependencies [26cd01b88]
840
+ - @pnpm/types@7.9.0
841
+ - @pnpm/read-project-manifest@2.0.11
842
+
843
+ ## 2.2.3
844
+
845
+ ### Patch Changes
846
+
847
+ - Updated dependencies [b5734a4a7]
848
+ - @pnpm/types@7.8.0
849
+ - @pnpm/read-project-manifest@2.0.10
850
+
851
+ ## 2.2.2
852
+
853
+ ### Patch Changes
854
+
855
+ - 6493e0c93: add readme file to published package.json file
856
+ - Updated dependencies [6493e0c93]
857
+ - @pnpm/types@7.7.1
858
+ - @pnpm/read-project-manifest@2.0.9
859
+
860
+ ## 2.2.1
861
+
862
+ ### Patch Changes
863
+
864
+ - Updated dependencies [ba9b2eba1]
865
+ - @pnpm/types@7.7.0
866
+ - @pnpm/read-project-manifest@2.0.8
867
+
868
+ ## 2.2.0
869
+
870
+ ### Minor Changes
871
+
872
+ - 6428690e2: Allow to set `os` and `cpu` in `publishConfig`.
873
+
874
+ ## 2.1.8
875
+
876
+ ### Patch Changes
877
+
878
+ - Updated dependencies [302ae4f6f]
879
+ - @pnpm/types@7.6.0
880
+ - @pnpm/read-project-manifest@2.0.7
881
+
882
+ ## 2.1.7
883
+
884
+ ### Patch Changes
885
+
886
+ - Updated dependencies [4ab87844a]
887
+ - @pnpm/types@7.5.0
888
+ - @pnpm/read-project-manifest@2.0.6
889
+
890
+ ## 2.1.6
891
+
892
+ ### Patch Changes
893
+
894
+ - Updated dependencies [b734b45ea]
895
+ - @pnpm/types@7.4.0
896
+ - @pnpm/read-project-manifest@2.0.5
897
+
898
+ ## 2.1.5
899
+
900
+ ### Patch Changes
901
+
902
+ - Updated dependencies [8e76690f4]
903
+ - @pnpm/types@7.3.0
904
+ - @pnpm/read-project-manifest@2.0.4
905
+
906
+ ## 2.1.4
907
+
908
+ ### Patch Changes
909
+
910
+ - Updated dependencies [724c5abd8]
911
+ - @pnpm/types@7.2.0
912
+ - @pnpm/read-project-manifest@2.0.3
913
+
914
+ ## 2.1.3
915
+
916
+ ### Patch Changes
917
+
918
+ - a1a03d145: Import only the required functions from ramda.
919
+
920
+ ## 2.1.2
921
+
922
+ ### Patch Changes
923
+
924
+ - 6a1468495: Adds support for `type` and `imports` in publishConfig
925
+
926
+ ## 2.1.1
927
+
928
+ ### Patch Changes
929
+
930
+ - @pnpm/read-project-manifest@2.0.2
931
+
932
+ ## 2.1.0
933
+
934
+ ### Minor Changes
935
+
936
+ - 85fb21a83: Add support for workspace:^ and workspace:~ aliases
937
+
938
+ ### Patch Changes
939
+
940
+ - Updated dependencies [6e9c112af]
941
+ - Updated dependencies [97c64bae4]
942
+ - @pnpm/read-project-manifest@2.0.1
943
+ - @pnpm/types@7.1.0
944
+
945
+ ## 2.0.1
946
+
947
+ ### Patch Changes
948
+
949
+ - 561276d2c: Remove publish lifecycle events from manifest to avoid npm running them.
950
+
951
+ ## 2.0.0
952
+
953
+ ### Major Changes
954
+
955
+ - 97b986fbc: Node.js 10 support is dropped. At least Node.js 12.17 is required for the package to work.
956
+
957
+ ### Patch Changes
958
+
959
+ - Updated dependencies [97b986fbc]
960
+ - @pnpm/error@2.0.0
961
+ - @pnpm/read-project-manifest@2.0.0
962
+ - @pnpm/types@7.0.0
963
+
964
+ ## 1.2.2
965
+
966
+ ### Patch Changes
967
+
968
+ - Updated dependencies [ad113645b]
969
+ - @pnpm/read-project-manifest@1.1.7
970
+
971
+ ## 1.2.1
972
+
973
+ ### Patch Changes
974
+
975
+ - Updated dependencies [9ad8c27bf]
976
+ - @pnpm/types@6.4.0
977
+ - @pnpm/read-project-manifest@1.1.6
978
+
979
+ ## 1.2.0
980
+
981
+ ### Minor Changes
982
+
983
+ - c854f8547: Remove the "pnpm" property that stores pnpm settings from the manifest.
984
+
985
+ ## 1.1.0
986
+
987
+ ### Minor Changes
988
+
989
+ - 284e95c5e: Convert relative workspace paths to version specs.
990
+ - 084614f55: Support aliases to workspace packages. For instance, `"foo": "workspace:bar@*"` will link bar from the repository but aliased to foo. Before publish, these specs are converted to regular aliased versions.
991
+
992
+ ## 1.0.8
993
+
994
+ ### Patch Changes
995
+
996
+ - Updated dependencies [0c5f1bcc9]
997
+ - @pnpm/error@1.4.0
998
+ - @pnpm/read-project-manifest@1.1.5
999
+
1000
+ ## 1.0.7
1001
+
1002
+ ### Patch Changes
1003
+
1004
+ - @pnpm/read-project-manifest@1.1.4
1005
+
1006
+ ## 1.0.6
1007
+
1008
+ ### Patch Changes
1009
+
1010
+ - @pnpm/read-project-manifest@1.1.3
1011
+
1012
+ ## 1.0.5
1013
+
1014
+ ### Patch Changes
1015
+
1016
+ - Updated dependencies [b5d694e7f]
1017
+ - @pnpm/types@6.3.1
1018
+ - @pnpm/read-project-manifest@1.1.2
1019
+
1020
+ ## 1.0.4
1021
+
1022
+ ### Patch Changes
1023
+
1024
+ - Updated dependencies [d54043ee4]
1025
+ - @pnpm/types@6.3.0
1026
+ - @pnpm/read-project-manifest@1.1.1
1027
+
1028
+ ## 1.0.3
1029
+
1030
+ ### Patch Changes
1031
+
1032
+ - Updated dependencies [2762781cc]
1033
+ - @pnpm/read-project-manifest@1.1.0
1034
+
1035
+ ## 1.0.2
1036
+
1037
+ ### Patch Changes
1038
+
1039
+ - Updated dependencies [75a36deba]
1040
+ - @pnpm/error@1.3.1
1041
+ - @pnpm/read-project-manifest@1.0.13
1042
+
1043
+ ## 1.0.1
1044
+
1045
+ ### Patch Changes
1046
+
1047
+ - Updated dependencies [6d480dd7a]
1048
+ - @pnpm/error@1.3.0
1049
+ - @pnpm/read-project-manifest@1.0.12
1050
+
1051
+ ## 1.0.0
1052
+
1053
+ ### Major Changes
1054
+
1055
+ - edf1f412e: Package created.
package/lib/index.d.ts CHANGED
@@ -11,6 +11,7 @@ export interface MakePublishManifestOptions {
11
11
  embedReadme?: boolean;
12
12
  }
13
13
  export declare function createExportableManifest(dir: string, originalManifest: ProjectManifest, opts: MakePublishManifestOptions): Promise<ExportedManifest>;
14
+ export declare function readReadmeFile(projectDir: string): Promise<string | undefined>;
14
15
  export type PublishDependencyConverter = (depName: string, depSpec: string, dir: string, modulesDir?: string) => Promise<string> | string;
15
16
  export interface MakePublishDependenciesOpts {
16
17
  readonly modulesDir?: string;
package/lib/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import fs from 'node:fs';
2
2
  import path from 'node:path';
3
+ import util from 'node:util';
3
4
  import { resolveFromCatalog } from '@pnpm/catalogs.resolver';
4
5
  import { PnpmError } from '@pnpm/error';
5
6
  import { parseJsrSpecifier } from '@pnpm/resolving.jsr-specifier-parser';
@@ -17,15 +18,6 @@ const PREPUBLISH_SCRIPTS = [
17
18
  'publish',
18
19
  'postpublish',
19
20
  ];
20
- async function readReadmeFile(projectDir) {
21
- const entries = await fs.promises.readdir(projectDir, { withFileTypes: true });
22
- // Only embed a regular README.md file. A symlink could point outside the
23
- // project and leak its target's contents into the published manifest.
24
- const readmeEntry = entries.find((entry) => entry.isFile() && /^readme\.md$/i.test(entry.name));
25
- if (readmeEntry == null)
26
- return undefined;
27
- return fs.promises.readFile(path.join(projectDir, readmeEntry.name), 'utf8');
28
- }
29
21
  export async function createExportableManifest(dir, originalManifest, opts) {
30
22
  let publishManifest;
31
23
  if (opts.skipManifestObfuscation) {
@@ -70,6 +62,33 @@ export async function createExportableManifest(dir, originalManifest, opts) {
70
62
  }
71
63
  return transform(publishManifest);
72
64
  }
65
+ // `O_NOFOLLOW` makes the open itself refuse a symlink at the final path component, closing the
66
+ // TOCTOU window between the `readdir` type check and the read: a symlink swapped in for README.md
67
+ // after the check can't redirect the read outside the project and leak its target into the
68
+ // published manifest. Windows lacks the flag (and requires privileges to create symlinks), so it
69
+ // falls back to a plain read.
70
+ const README_READ_FLAGS = fs.constants.O_RDONLY | (process.platform === 'win32' ? 0 : fs.constants.O_NOFOLLOW);
71
+ export async function readReadmeFile(projectDir) {
72
+ const entries = await fs.promises.readdir(projectDir, { withFileTypes: true });
73
+ // Only embed a regular README.md file — a symlink is skipped (see README_READ_FLAGS).
74
+ const readmeEntry = entries.find((entry) => entry.isFile() && /^readme\.md$/i.test(entry.name));
75
+ if (readmeEntry == null)
76
+ return undefined;
77
+ let handle;
78
+ try {
79
+ handle = await fs.promises.open(path.join(projectDir, readmeEntry.name), README_READ_FLAGS);
80
+ return await handle.readFile('utf8');
81
+ }
82
+ catch (err) {
83
+ // ELOOP: the entry is a symlink after all (a concurrent swap) — skip it, as the isFile() check intended.
84
+ if (util.types.isNativeError(err) && 'code' in err && err.code === 'ELOOP')
85
+ return undefined;
86
+ throw err;
87
+ }
88
+ finally {
89
+ await handle?.close();
90
+ }
91
+ }
73
92
  function combineConverters(...converters) {
74
93
  return async (depName, depSpec, dir, modulesDir) => {
75
94
  let bareSpecifier = depSpec;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pnpm/releasing.exportable-manifest",
3
- "version": "1100.1.8",
3
+ "version": "1100.1.10",
4
4
  "description": "Creates an exportable manifest",
5
5
  "keywords": [
6
6
  "pnpm",
@@ -28,26 +28,26 @@
28
28
  ],
29
29
  "dependencies": {
30
30
  "@npm/types": "^2.1.0",
31
- "p-map-values": "^0.1.0",
32
- "ramda": "npm:@pnpm/ramda@0.28.1",
33
- "@pnpm/bins.resolver": "1100.0.8",
34
- "@pnpm/error": "1100.0.1",
35
- "@pnpm/resolving.jsr-specifier-parser": "1100.0.1",
36
- "@pnpm/workspace.project-manifest-reader": "1100.0.14",
31
+ "@pnpm/bins.resolver": "1100.0.9",
37
32
  "@pnpm/catalogs.resolver": "1100.0.0",
38
- "@pnpm/types": "1101.3.2"
33
+ "@pnpm/error": "1100.0.1",
34
+ "@pnpm/resolving.jsr-specifier-parser": "1100.0.2",
35
+ "@pnpm/types": "1101.4.0",
36
+ "@pnpm/workspace.project-manifest-reader": "1100.0.15",
37
+ "p-map-values": "^0.1.0",
38
+ "ramda": "npm:@pnpm/ramda@0.28.1"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@jest/globals": "30.4.1",
42
+ "@pnpm/catalogs.config": "1100.0.2",
43
+ "@pnpm/catalogs.types": "1100.0.0",
44
+ "@pnpm/hooks.pnpmfile": "1100.0.19",
45
+ "@pnpm/prepare": "1100.0.19",
46
+ "@pnpm/releasing.exportable-manifest": "1100.1.10",
42
47
  "@types/cross-spawn": "^6.0.6",
43
48
  "@types/ramda": "0.31.1",
44
49
  "cross-spawn": "^7.0.6",
45
- "write-yaml-file": "^6.0.0",
46
- "@pnpm/catalogs.config": "1100.0.2",
47
- "@pnpm/catalogs.types": "1100.0.0",
48
- "@pnpm/hooks.pnpmfile": "1100.0.16",
49
- "@pnpm/releasing.exportable-manifest": "1100.1.8",
50
- "@pnpm/prepare": "1100.0.17"
50
+ "write-yaml-file": "^6.0.0"
51
51
  },
52
52
  "engines": {
53
53
  "node": ">=22.13"