Zoltan Kochan
ee3bb4b586
fix(lockfile): read a CRLF or BOM-prefixed multi-document lockfile ( #13609 )
...
`extract_main_document` / `extract_env_document` split the combined
`pnpm-lock.yaml` on literal `---\n` and `\n---\n`. A lockfile pacquet
did not write may carry CRLF line endings — a `core.autocrlf` checkout
on Windows — or a UTF-8 BOM, and neither marker then matches. The main
extractor fell through to returning the whole file, which serde rejected
as `multiple YAML documents detected`, so the lockfile was discarded and
every dependency re-resolved from the registry.
Normalize the whole file (strip BOM, CRLF to LF) inside both extractors,
which covers every caller. `save_value_to_path` already normalized the
same way inline and now shares the helper.
The TypeScript stack needs no counterpart change:
`pnpm11/lockfile/fs/src/yamlDocuments.ts` already normalizes CRLF in
`extractMainDocument` / `extractEnvDocument` and strips the BOM at each
read site.
Closes https://github.com/pnpm/pnpm/issues/13606
2026-08-03 22:18:22 +02:00
..
2026-08-03 15:48:54 +02:00
2026-07-19 10:32:16 +02:00
2026-07-19 14:25:29 +02:00
2026-07-19 15:55:13 +02:00
2026-07-27 10:45:29 +02:00
2026-07-25 20:34:26 +02:00
2026-07-30 12:07:02 +02:00
2026-07-17 11:30:36 +02:00
2026-08-02 14:48:02 +02:00
2026-07-19 15:55:13 +02:00
2026-07-25 20:36:22 +02:00
2026-07-17 15:16:44 +02:00
2026-08-02 10:35:05 +02:00
2026-07-27 00:22:23 +02:00
2026-07-28 11:59:51 +02:00
2026-07-13 16:18:40 +02:00
2026-07-20 00:17:38 +02:00
2026-07-27 22:18:39 +02:00
2026-07-20 14:14:07 +02:00
2026-07-27 13:56:01 +02:00
2026-07-28 14:48:17 +02:00
2026-07-19 14:45:58 +02:00
2026-07-19 22:35:28 +02:00
2026-07-25 20:34:26 +02:00
2026-07-27 11:46:08 +02:00
2026-07-26 09:55:40 +02:00
2026-07-13 14:24:45 +02:00
2026-07-30 10:10:39 +02:00
2026-07-13 16:21:16 +02:00
2026-07-13 15:13:33 +02:00
2026-07-25 20:34:26 +02:00
2026-07-25 18:29:13 +02:00
2026-08-01 22:07:49 +02:00
2026-08-02 21:33:59 +02:00
2026-08-03 13:36:34 +02:00
2026-07-26 01:02:31 +02:00
2026-08-03 10:23:06 +02:00
2026-07-13 22:02:04 +02:00
2026-08-01 18:15:17 +02:00
2026-07-29 14:29:57 +02:00
2026-07-29 09:25:13 +02:00
2026-07-28 23:51:22 +02:00
2026-08-01 20:09:57 +02:00
2026-07-30 19:47:43 +02:00
2026-07-22 08:57:38 +02:00
2026-07-30 20:13:51 +02:00
2026-07-27 13:29:30 +02:00
2026-07-29 12:14:57 +02:00
2026-07-13 23:05:14 +02:00
2026-07-17 23:34:05 +02:00
2026-07-28 12:01:20 +02:00
2026-08-02 14:48:02 +02:00
2026-07-26 02:00:29 +02:00
2026-07-27 11:17:16 +02:00
2026-07-27 12:45:19 +02:00
2026-07-27 22:35:48 +02:00
2026-07-26 01:30:10 +02:00
2026-07-19 23:23:16 +02:00
2026-07-20 14:27:17 +02:00
2026-07-17 11:36:22 +02:00
2026-07-19 23:23:16 +02:00
2026-07-23 13:38:25 +02:00
2026-07-19 22:48:18 +02:00
2026-07-26 09:25:03 +02:00
2026-07-13 18:30:33 +02:00
2026-07-23 07:55:55 +02:00
2026-07-26 02:42:22 +02:00
2026-08-02 15:42:36 +02:00
2026-07-19 14:25:29 +02:00
2026-07-19 19:10:56 +02:00
2026-07-30 13:37:36 +02:00
2026-07-30 13:24:36 +02:00
2026-07-19 20:57:39 +02:00
2026-07-18 22:45:28 +02:00
2026-07-30 23:33:35 +02:00
2026-08-02 00:09:32 +02:00
2026-07-31 23:00:10 +02:00
2026-07-25 16:03:55 +02:00
2026-08-02 17:55:31 +02:00
2026-07-25 16:10:56 +02:00
2026-07-24 01:06:35 +02:00
2026-07-25 12:10:31 +02:00
2026-07-27 11:39:15 +02:00
2026-07-25 15:30:47 +02:00
2026-08-02 19:40:34 +02:00
2026-07-29 12:12:41 +02:00
2026-07-18 14:16:41 +02:00
2026-08-03 15:48:54 +02:00
2026-07-27 16:42:16 +02:00
2026-07-20 21:13:07 +02:00
2026-07-27 10:55:00 +02:00
2026-07-25 20:34:26 +02:00
2026-08-01 12:37:10 +02:00
2026-07-29 12:12:10 +02:00
2026-07-30 14:57:00 +02:00
2026-07-27 12:57:39 +02:00
2026-07-18 13:22:01 +02:00
2026-07-30 13:26:31 +02:00
2026-07-16 23:28:47 +02:00
2026-07-27 16:29:40 +02:00
2026-08-02 16:52:28 +02:00
2026-08-01 13:15:34 +02:00
2026-07-30 10:10:39 +02:00
2026-07-30 10:10:39 +02:00
2026-07-30 10:10:39 +02:00
2026-07-31 00:43:23 +02:00
2026-07-30 10:10:39 +02:00
2026-07-29 13:20:56 +02:00
2026-07-28 18:21:58 +02:00
2026-07-26 01:30:42 +02:00
2026-07-30 17:11:36 +02:00
2026-07-23 11:47:44 +02:00
2026-07-21 17:36:35 +02:00
2026-07-30 12:08:31 +02:00
2026-07-25 20:34:26 +02:00
2026-07-25 20:37:28 +02:00
2026-07-25 15:35:18 +02:00
2026-07-25 19:27:17 +02:00
2026-07-30 22:33:29 +02:00
2026-07-20 14:46:09 +02:00
2026-07-23 11:46:54 +02:00
2026-07-25 20:37:28 +02:00
2026-07-23 14:50:35 +02:00
2026-07-16 23:58:33 +02:00
2026-07-25 14:10:33 +02:00
2026-07-20 14:04:57 +02:00
2026-07-13 12:39:54 +02:00
2026-07-28 22:33:29 +02:00
2026-07-25 10:41:58 +02:00
2026-07-15 11:36:34 +02:00
2026-07-20 14:04:57 +02:00
2026-07-17 16:55:44 +02:00
2026-07-28 22:31:05 +02:00
2026-07-28 10:38:59 +02:00
2026-07-13 14:16:10 +02:00
2026-07-19 14:09:21 +02:00
2026-07-20 14:04:57 +02:00
2026-07-20 21:12:03 +02:00
2026-07-20 14:04:57 +02:00
2026-07-17 11:09:01 +02:00
2026-07-20 21:12:03 +02:00
2026-07-16 22:55:58 +02:00
2026-07-18 10:39:58 +02:00
2026-07-19 22:48:18 +02:00
2026-07-25 13:52:57 +02:00
2026-07-13 16:27:17 +02:00
2026-07-18 13:06:37 +02:00
2026-07-20 21:12:03 +02:00
2026-07-25 10:41:58 +02:00
2026-07-18 22:34:41 +02:00
2026-07-25 20:46:08 +02:00
2026-07-25 16:45:15 +02:00
2026-07-18 09:42:06 +02:00
2026-07-13 14:28:05 +02:00
2026-08-03 15:46:11 +02:00
2026-07-17 15:14:01 +02:00
2026-07-25 12:37:49 +02:00
2026-07-21 21:55:12 +02:00
2026-07-16 11:46:15 +02:00
2026-07-25 10:56:36 +02:00
2026-07-25 11:17:53 +02:00
2026-07-25 13:55:11 +02:00
2026-07-25 15:44:48 +02:00
2026-07-27 23:52:32 +02:00
2026-07-19 22:20:50 +02:00
2026-07-26 02:20:54 +02:00
2026-07-18 22:36:41 +02:00
2026-07-23 19:29:01 +02:00
2026-07-17 15:15:19 +02:00
2026-07-25 12:35:58 +02:00
2026-07-25 14:10:06 +02:00
2026-07-14 19:53:10 +02:00
2026-07-25 15:05:16 +02:00
2026-07-14 20:42:17 +02:00
2026-07-20 21:12:03 +02:00
2026-07-13 16:06:31 +02:00
2026-07-16 22:37:35 +02:00
2026-07-15 11:37:16 +02:00
2026-07-13 16:05:48 +02:00
2026-07-23 11:40:23 +02:00
2026-07-25 11:13:51 +02:00
2026-07-16 23:44:35 +02:00
2026-07-13 16:28:24 +02:00
2026-07-19 22:48:18 +02:00
2026-07-16 21:25:15 +02:00
2026-07-25 11:21:01 +02:00
2026-07-25 20:34:26 +02:00
2026-08-02 17:34:19 +02:00
2026-07-26 11:28:50 +02:00
2026-07-25 15:35:18 +02:00
2026-07-26 03:06:01 +02:00
2026-07-17 23:47:34 +02:00
2026-07-26 02:23:23 +02:00
2026-07-30 10:10:39 +02:00
2026-08-01 14:09:02 +02:00
2026-07-25 10:45:27 +02:00
2026-07-17 09:54:10 +02:00
2026-07-24 02:42:40 +02:00
2026-07-23 16:04:43 +02:00
2026-07-13 18:27:50 +02:00
2026-07-18 13:06:37 +02:00
2026-07-30 20:00:23 +02:00
2026-08-02 18:37:34 +02:00
2026-07-30 13:37:36 +02:00
2026-07-30 12:34:52 +02:00
2026-07-30 14:47:38 +02:00
2026-07-26 09:20:46 +02:00
2026-07-13 18:27:50 +02:00
2026-08-01 14:29:24 +02:00
2026-07-28 11:59:22 +02:00
2026-07-28 12:01:50 +02:00
2026-07-29 14:29:57 +02:00
2026-07-28 02:31:36 +02:00
2026-07-27 22:01:42 +02:00
2026-07-25 14:07:43 +02:00
2026-08-03 22:18:22 +02:00
2026-07-25 13:56:50 +02:00
2026-08-03 02:35:47 +02:00
2026-07-19 21:53:56 +02:00
2026-07-19 23:20:20 +02:00
2026-07-17 22:05:03 +02:00
2026-07-22 07:32:40 +02:00
2026-07-22 00:13:58 +02:00
2026-07-22 07:50:41 +02:00
2026-07-25 20:34:26 +02:00
2026-07-22 00:43:52 +02:00
2026-07-19 14:25:29 +02:00
2026-07-16 21:29:48 +02:00
2026-07-25 20:34:26 +02:00
2026-07-13 22:06:22 +02:00
2026-07-13 18:32:16 +02:00
2026-07-25 20:48:12 +02:00
2026-07-27 13:40:50 +02:00
2026-07-26 16:42:17 +02:00
2026-07-30 10:10:39 +02:00
2026-07-13 15:56:52 +02:00
2026-07-23 19:24:25 +02:00
2026-07-18 13:22:35 +02:00
2026-07-19 23:20:20 +02:00
2026-07-17 13:20:26 +02:00
2026-07-27 00:21:34 +02:00
2026-07-26 02:24:03 +02:00
2026-07-26 02:24:03 +02:00
2026-07-26 02:24:03 +02:00
2026-07-28 00:15:51 +02:00
2026-07-13 11:11:41 +02:00
2026-07-17 15:14:43 +02:00
2026-07-30 13:37:36 +02:00
2026-07-28 01:27:49 +02:00
2026-07-25 01:34:27 +02:00
2026-07-16 14:38:22 +02:00
2026-07-21 14:17:17 +02:00
2026-07-28 00:12:32 +02:00
2026-07-27 16:42:16 +02:00
2026-07-30 10:10:39 +02:00
2026-08-02 15:37:41 +02:00
2026-07-19 14:25:29 +02:00
2026-07-20 15:02:00 +02:00
2026-07-27 12:48:52 +02:00
2026-07-26 01:56:11 +02:00
2026-07-20 10:48:38 +02:00
2026-07-13 15:55:25 +02:00
2026-07-28 01:36:38 +02:00
2026-07-31 16:29:23 +02:00
2026-07-19 22:53:01 +02:00
2026-07-22 08:07:43 +02:00
2026-07-21 23:48:46 +02:00
2026-07-22 00:41:30 +02:00
2026-07-24 02:07:11 +02:00
2026-07-23 19:24:03 +02:00
2026-07-26 09:21:24 +02:00
2026-07-27 10:58:10 +02:00
2026-07-23 17:01:51 +02:00
2026-07-17 19:32:16 +02:00
2026-07-21 22:28:44 +02:00
2026-07-25 12:49:56 +02:00
2026-07-27 10:43:22 +02:00
2026-07-19 15:21:50 +02:00
2026-07-23 00:58:59 +02:00
2026-07-23 07:55:55 +02:00
2026-07-27 23:26:13 +02:00
2026-07-29 17:06:51 +02:00
2026-07-13 16:32:21 +02:00
2026-07-25 12:16:55 +02:00