Commit Graph

33 Commits

Author SHA1 Message Date
Zoltan Kochan
e3b35b6f37 style: update eslint to v9 (#10474) 2026-01-17 12:01:23 +01:00
Zoltan Kochan
8b4bdf9a83 refactor: replace onlyBuiltDependencies and ignoredBuiltDependencies with allowBuilds (#10401) 2026-01-02 23:21:17 +01:00
Khải
97cf97609e fix(cli/config): phantom keys (#10323)
* fix(cli/config): phantom keys

Fixes https://github.com/pnpm/pnpm/issues/10296

This patch also include other refactors.

* test: does not traverse the prototype chain

* test: more properties

* test: fix other tests

* feat: revert unrelated changes
2025-12-22 12:26:14 +01:00
Khải
075aa993bb feat(config): global yaml (#10145)
* feat(config): global `rc.yaml`

* fix: undefined `rawConfig`

* test: add a test

* feat: re-export `isSupportedNpmConfig`

* feat: return `'compat'` to distinguish compatibility reason

* docs: `isSupportedNpmConfig`

* fix: eslint

* docs: clarify the case of the config key

* feat(cli/config/set): target yaml for pnpm-specific settings

* fix: read the correct file

* fix: write to the correct directory

* refactor: remove disabled code

* refactor: get `configDir` directly

* docs: remove outdated documentation

* test: fix a test

* test: rename

* fix: explicitly tell npm the config file path

* test: add a test

* test: add a test

* test: fix a test

* fix: local config dir

* fix: `managingAuthSettings`

* test: rename

* test: fix

* test: add a test

* test: demonstrate choosing config files

* test: fix

* docs: yet another consideration

* test: demonstrate choosing config files

* fix: correct local config file names in test helper

* test: demonstrate choosing config files

* test: use the helper

* test: add a test

* test: correct a test

* test: fix

* test: fix

* fix: eslint

* test: remove duplicate

* feat: validate `rc.yaml`

* docs: changeset

* test: fix `configDelete.test.ts`

* feat: other `npm` call-sites

* fix: make optional again

* feat: remove the change from `publish`

* fix: eslint

* refactor: just one is sufficient

* refactor: replace type union with 3 functions

* refactor(test): extract helper functions

* fix: add `rc.yaml` to `rawConfig`

* test: keep workspace settings out of `rc.yaml`

* test: fix `spawn ENOENT`

* chore(git): revert invalid change

This reverts commit 1ff6fe2323.

* feat: rename `rc.yaml` to `config.yaml`

* refactor: replace `acceptNonRc` with `!globalSettingsOnly`

* feat!: remove compat completely

* refactor: rename a function

* fix: no actual catalogs

* refactor: replace bool flag with preemptive filter

* feat!: filter global config keys

* test: fix

* fix: exclude `deploy-all-files`

* fix: reverse schema merge order

* feat(cli/config/set): validate global config yaml key

* test: remove duplicated assertion

* docs: correct

* docs: goal changed
2025-11-11 11:24:06 +01:00
Ryo Matsukawa
d5d4eedeeb feat: add support for pnpm config get globalconfig (#10090)
close #9977
2025-11-08 14:14:36 +01:00
Khải
d392c3d059 fix: explicitly tell npm the config file path (#10154)
* fix: explicitly tell npm the config file path

* fix: `managingAuthSettings`

* feat: other `npm` call-sites

* docs: changeset

* fix: make optional again

* feat: remove the change from `publish`

* fix: eslint

* refactor: just one is sufficient
2025-11-05 23:46:20 +01:00
Khải
d4bf2d0e60 feat(cli/config)!: config command outputs changed from INI to JSON with camelCase keys (#10142) 2025-10-30 11:34:48 +01:00
Khải
ae43ac79fa feat(cli/config)!: breaking changes (#9854)
* feat(cli/config)!: breaking changes

* refactor(test): remove `deepNullProto` and reuse `getOutputString`

* feat(cli/config/list): censor protected settings

* test: censorship of protected settings

* docs(changeset): censorship of protected settings

* fix: eslint

* feat(config)!: exclude non-option from `rawConfig`

* fix: eslint

* refactor: move default registries to builtin (#9886)

* feat(config)!: filter rc settings

* feat(config): don't exclude non-options

This reverts commit a79f72dbfb.

* feat(cli/config/get)!: print array as json

* test: fix

* docs(changeset): correct

* test: fix

* feat(cli/config)!: only kebabize option fields (wip)

* chore(git): revert the implementation

This reverts commit 529f9bdd47.

* test: restore

This reverts commit d8191e0ed8.

* feat(cli/config)!: only kebabize option fields (wip)

* feat: use `types` instead

* feat(cli/config/get)!: only kebabize rc fields

* test: add

* test: non-rc kebab-case keys

* test: correct

* docs(changeset): correct

* docs(changeset): style

* docs(changeset): correct

* test: only kebabize rc fields

* fix: import path

* fix: eslint

* fix: `isCamelCase`

* feat(cli/config/set)!: forbid unknown rc fields

* test: fix existing test

* test: refuse unsupported rc settings

* feat: hint

* feat(cli/config/set)!: refuse kebab-case workspace-specific settings

* feat(config)!: ignore non-camelCase from `pnpm-workspace.yaml`

* test: config get

* test: config list

* refactor: extract shared code into its own package

* test: `isCamelCase`

* feat(cli/config/list)!: consistent naming cases

* refactor: make it more reusable

* feat(cli/config/get)!: consistent naming cases

* feat(cli/config/get): censor protected settings

* test: `get ''` should be the same as `list`

* docs(test): quotation marks

* refactor: remove unnecessary `test.each`

* docs(changeset): case changes

* test: unknown keys

* docs(changeset): correct

* docs(changeset): non camelCase from `pnpm-workspace.yaml`

* fix: eslint

* docs(changeset): correct terminology

* docs(changeset): clarify

* feat!: do not load non-auth and non-registry

* fix: implementation

* test: no hidden settings

* fix: eslint

* fix: do not drop default values

* test: fix

* test: remove irrelevant tests

* test: fix (wip)

* fix: auth

* test: skip an inapplicable test

* test: temporary skip a test

* test: fix 'respects testPattern'

* test: fix 'respects changedFilesIgnorePattern'

* test: fix 'changedFilesIgnorePattern is respected'

* test: rename a test

* test: fix `package-lock=false`

* feat: exception for `managePackageManagerVersions`

* test: `managePackageManagerVersions: false`

* test: fix (wip)

* test: workaround

* fix: default `optional` to `true`

* fix: `filter` on `pnpm-workspace.yaml`

* test: fix

* test: disable ones that no longer apply

* chore(git): revert incorrect change

* fix: `filter` on `pnpm-workspace.yaml` (#10127)

* fix: `filter` on `pnpm-workspace.yaml`

* docs: changeset

* fix: actual fix

* fix: don't set default on config

* docs(readme): correct a package description

* fix: typo

* test: fix

* test: use a field that wouldn't be ignored

* test: replace some `.npmrc` with `pnpm-workspace.yaml`

* docs(changeset): less awkward wordings

* docs(changeset): correction
2025-10-28 17:09:15 +01:00
Zoltan Kochan
dab9abef5c Merge remote-tracking branch 'origin/main' into v11 2025-10-24 14:19:07 +02:00
Ryo Matsukawa
47295e2d25 fix: handle scoped registry keys in config get (#10082)
* fix: handle scoped registry keys in config get

* Update config/plugin-commands-config/test/configGet.test.ts

Co-authored-by: Khải <hvksmr1996@gmail.com>

* Update config/plugin-commands-config/test/configGet.test.ts

Co-authored-by: Khải <hvksmr1996@gmail.com>

* Update config/plugin-commands-config/test/configGet.test.ts

Co-authored-by: Khải <hvksmr1996@gmail.com>

* chore: add a comment

---------

Co-authored-by: Khải <hvksmr1996@gmail.com>

close #9362
2025-10-14 00:23:08 +02:00
Ryo Matsukawa
587424f24f fix: config set --location=project with npm-managed settings (#10074)
close #9884
2025-10-12 18:33:23 +02:00
Ryo Matsukawa
eaaf8cb965 fix: match read/write priority when both pnpm-workspace.yaml and .npmrc exist (#10073)
* fix: match read/write priority when both pnpm-workspace.yaml and .npmrc exist

* chore: update help message

close #10072
2025-10-12 15:43:57 +02:00
Zoltan Kochan
491a84fb26 feat: use ESM instead of commonjs (#9870) 2025-08-25 10:02:00 +02:00
Zoltan Kochan
27cbc09206 style: fix jest-related linting issues (#9894) 2025-08-22 21:56:49 +02:00
Zoltan Kochan
facd7656e8 refactor: always use extensions in relative imports (#9878) 2025-08-19 15:25:11 +02:00
Zoltan Kochan
c89c93d59b test: use @jest/globals (#9877) 2025-08-19 00:16:25 +02:00
Khải
797ce15852 refactor(test): remove deepNullProto and reuse getOutputString (#9855) 2025-08-14 12:27:23 +02:00
Khải
b84c71d6bf feat(cli/config): get/set objects and property paths (#9811)
close #9797
2025-08-14 10:28:49 +02:00
Zoltan Kochan
6c16fa9963 fix: config set should save the settings in the right format (#9357)
close #9355
2025-04-01 12:06:58 +02:00
Zoltan Kochan
1b1ed10e1a fix(config): config get returns auth related settings properly (#9346)
close #9345
2025-03-31 09:34:17 +08:00
btea
3a90ec1f8f feat: config delete local should delete setting in pnpm-workspace.yaml (#9317)
* feat: config delete local should delete setting in pnpm-workspace.yaml

* refactor: removing settings from pnpm-workspace.yaml

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2025-03-23 02:28:43 +01:00
Zoltan Kochan
9bcca9f760 feat: config set local should save settings in pnpm-workspace.yaml (#9316) 2025-03-22 13:39:21 +01:00
Khải
9b4f73caaf chore(scripts): typecheck-only (#8395)
* chore(scripts): typecheck-only

* feat: change all configuration

* feat: include pnpm/ and pnpm/test/

* chore(deps): remove unused dependency

* refactor(typescript-only): use find-packages

* refactor(typescript-only): refactor paths

* fix: typescript-only

* fix: update compile-only

* fix: compile pnpm

* fix: windows

* fix: windows

* chore: meta-updater

* refactor(tsconfig): remove explicit composite

* fix: path in windows

* feat: don't depend on cwd

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2024-08-11 08:26:01 +02:00
Brandon Cheng
c7e1b6fae8 chore: configure TypeScript project references for tests (#8128)
* refactor: store link values before converting to references

* fix: use .sort() without localeCompare

https://github.com/pnpm/pnpm/pull/8128#discussion_r1614031566

> Nit, but you probably just want to call sort without a comparison
> function; these are already strings and locale compare is not a good
> comparison for anything but human readable strings since it will
> differ on different people's machines based on their language setting.
> I've hit this too many times before for code gen.

* feat: configure meta-updater to write test/tsconfig.json files

* fix: relative imports for __typings__

* chore: `pnpm run meta-updater`

* fix: explicitly use test/tsconfig.json for ts-jest
2024-05-31 12:48:13 +02:00
Khải
e0f47f45e4 feat(config): get on array (#7917)
* refactor(config): return type annotations

* refactor: simplify configGet

* test: fix typescript errors

* feat(config): get on array

* feat(config): use comma instead

* lint: fix
2024-04-13 14:14:52 +02:00
Khải
ea58e1d438 refactor(config): return type annotations (#7915)
* refactor(config): return type annotations

* refactor: simplify configGet

* test: fix typescript errors
2024-04-13 13:21:20 +02:00
await-ovo
6d97739890 feat(plugin-commands-config): throw meaningful error for config sub commands (#7108)
close #7106
2023-09-19 01:41:49 +03:00
chlorine
bb287272a0 fix: pnpm config get <key> -g returns empty when the value is a boolean (#6360) 2023-04-06 03:39:24 +03:00
Zoltan Kochan
6314a47b82 fix: settings related to authorization should be set by npm CLI (#6195)
close #6181
2023-03-08 03:17:15 +02:00
Zoltan Kochan
a3e0223ce4 fix: config set should write to the global config file (#6132)
close #5877
close #6131
2023-02-25 18:15:38 +02:00
Zoltan Kochan
f76a39973e fix(config): config set key=value should work (#5899)
ref #5889
2023-01-09 12:43:21 +02:00
Zoltan Kochan
83a627a25c fix(config): the --location=global CLI option should work (#5843)
ref #5841
2022-12-27 19:46:22 +02:00
Zoltan Kochan
841f52e709 feat: implement the config commands (#5829)
close #5621
2022-12-24 17:08:43 +02:00