* chore: upgrade various dependencies
- upgrade syncpack from v6 to v8
- set syncpack workspace option to false to avoid changing workspace:* to exact version
* - remove deprecated @types/json5
- upgrade eslint-config-standard-with-typescript to v22
- install eslint-plugin-n which is now a required peer dependency
- upgrade eslint-plugin-promise to v6
- bump minimum node version to >=12.22.0 in @pnpm/eslint-config
* sync various @types/* packages to be at the same major version as the dep they provide types for
* fix new reported lint issues
* add changeset
* docs: update changesets
Co-authored-by: Zoltan Kochan <z@kochan.io>
* fix: don't include specifiers field in new experimental lockfile format
* test(lockfile-file): update arguments in normalizeLockfile test
* test: lockfile-file
Co-authored-by: Brandon Cheng <gluxon@users.noreply.github.com>
* fix: plugin-commands-deploy use path resolve on deploy target directory (#4980)
Previously the deploy target directory was specified as a relative path
to the workspace project root. This meant that absolute paths could not be used.
Now this uses the current working directory and allows absolute paths,
this is more in line with users expectations of unix command behaivour.
close#4980
* fix: allow both absolute and relative
* docs: update changesets
Co-authored-by: Zoltan Kochan <z@kochan.io>
* feat: add experimental use-inline-specifiers-lockfile-format
* fix(lockfile-file): check importers key for shared lockfile format
The `convertFromLockfileFileMutable` function reverts changes from
`normalizeLockfile` when not using the shared lockfile format.
- The non-shared lockfile format puts fields like `specifiers`,
`dependencies`, `devDependencies`, `optionalDependencies`, and
`dependenciesMeta` on the root of the lockfile. This is typically
the case for a repo not using pnpm workspaces.
- The shared lockfile format puts these under a `importers` block
scoped by a path.
The `use-inline-specifiers-lockfile-format` feature flag removes the
`specifiers` block in favor of putting each specifier next to the
resolved version within each `dependencies`, `devDependencies`, etc
block.
This means the `convertFromLockfileFileMutable` function can no longer
check for `specifiers` to detect the whether the "shared" format is
used. @zkochan suggested checking for `importers` instead, which should
have the same effect.
https://github.com/pnpm/pnpm/pull/5091#discussion_r929326835
* test(lockfile-file): add read & write test for useInlineSpecifiersFormat
A new setting supported: `prefer-symlinked-executables`
When `true`, on Posix systems pnpm will create symlinks to executables in
`node_modules/.bin` instead of command shims.
This setting is `true` by default when `node-linker` is set to
`hoisted`.
close#4782