Files
pnpm/cspell.json
T
Zoltan Kochan 430d892741 feat(pnpr)!: serve every ecosystem under its own prefix (#17087)
pnpr served npm at the server root when npm was the only configured
ecosystem and moved it under /npm/ as soon as a second ecosystem was
added. Adding an ecosystem therefore broke every .npmrc registry URL,
every tarball URL already written into a lockfile, named-registry URLs,
and OIDC workload publish paths, and /npm meant the package `npm` on one
server and the ecosystem prefix on another. This settles section A1 of
pnpm/tasks#131: every ecosystem is always prefixed.

- Ecosystem::base_path is now independent of the configuration. The
  per-configuration Registries::base_path and is_only_ecosystem are gone,
  and the routes, the resolver's tarball URLs, OIDC workload paths and
  pnpr's own-origin route classification all use it.
- The default image registry still answers at /v2/ on the host root; an
  image client cannot be pointed at a prefix. The registry directory keeps
  its `prefixed` and `namedPrefixed` flags for the web UI.
- The read-only token allowlist matched the npm audit endpoints at the
  root only, so read-only tokens were already refused for audits on
  multi-ecosystem servers. It now matches them under the npm prefix.
- /metrics no longer switches between Prometheus metrics and the npm
  package `metrics` on the Accept header; the package is /npm/metrics.
- The pnpm v11 and v12 test harnesses, the registry-mock crate and the
  integrated benchmark address the fixture registry at /npm/ and keep the
  server origin for the pnpr protocol endpoints. The benchmark asks each
  revision mock's registry directory whether npm is prefixed, so it can
  still compare against a pnpr revision from before this change.
2026-10-18 16:55:55 +02:00

570 lines
8.7 KiB
JSON

{
"ignorePaths": [
"**/nodeReleaseKeys.ts",
"**/nodeReleaseKeys.d.ts",
"**/node_release_keys.rs",
"bench-work-env/**",
"target/**",
"vendor/**"
],
"words": [
"abrt",
"adduser",
"adipiscing",
"agentkeepalive",
"agentkeepalive's",
"aliasless",
"amet",
"andreineculau",
"APFS",
"appdata",
"applyq",
"archy",
"argumentless",
"armv",
"AUTHTOKEN",
"autocheckpoint",
"autocompleting",
"autofix",
"autofixed",
"autoinstalled",
"autozoom",
"babek",
"Backblaze",
"badheaders",
"baires",
"basedirs",
"bdist",
"behaviour",
"blabla",
"Bluesky",
"brasileiro",
"bryntum",
"btrfs",
"buildx",
"Bunzip",
"cafile",
"cafs",
"camelcase",
"canonicalizer",
"cantopen",
"canva",
"CDPATH",
"cerbos",
"certfile",
"chcp",
"chmods",
"clonedeep",
"clonefile",
"cmds",
"Codeberg",
"codegen",
"codeload",
"codenames",
"codesign",
"colorterm",
"compdef",
"COMPREPLY",
"comver",
"cooldown",
"copyfiles",
"corejs",
"corepack",
"corge",
"cowsay",
"creatordate",
"Creds",
"cryptiles",
"cves",
"CWORD",
"cwsay",
"cyclonedx",
"cygdrive",
"dashrc",
"deburr",
"dedup",
"denoland",
"denolib",
"dependson",
"deptype",
"desugared",
"desugars",
"devextreme",
"devowl",
"dgimuvys",
"didyoumean",
"dirents",
"dirtyforms",
"diskusage",
"dislink",
"dpkg",
"drivelist",
"duplexify",
"eacces",
"eagain",
"ebadplatform",
"ebusy",
"eexist",
"ehrkoext",
"eintegrity",
"eisdir",
"elifecycle",
"elit",
"embedder",
"embedders",
"emfile",
"enametoolong",
"endgroup",
"endregion",
"eneedauth",
"enoent",
"enotdir",
"enotempty",
"enten",
"eotp",
"eperm",
"epipe",
"erofs",
"errcode",
"errorlevel",
"esac",
"esep",
"etamponi",
"exdev",
"execa",
"execpath",
"exploitability",
"fakehash",
"fastlist",
"fellback",
"fetchings",
"filenamify",
"filesystem",
"filesystems",
"fnpm",
"fnumber",
"foobarqar",
"foofoo",
"footgun",
"forgejo",
"forwardable",
"fsevents",
"fslib",
"gabor",
"garply",
"gcttmf",
"getaddrinfo",
"getattr",
"ghes",
"ghsa",
"ghsas",
"gitdir",
"gitea",
"globalconfig",
"globstar",
"gnueabihf",
"gpgsign",
"grault",
"gruntfile",
"gwhitney",
"gypfile",
"haptics",
"hardlink",
"hardlinked",
"hardlinking",
"hardlinks",
"hashbang",
"hashless",
"highmaps",
"hikljmi",
"hoistable",
"homepath",
"hosters",
"hostnames",
"hotspots",
"htpasswd",
"hyperdrive",
"idempotency",
"imagetools",
"imurmurhash",
"inodes",
"invalidformat",
"ionicons",
"isexe",
"istvan",
"italiano",
"jega",
"jhcg",
"jnbpamcxayl",
"journaled",
"junyi",
"kebabcase",
"kevva",
"keyfile",
"keyid",
"keytype",
"killcb",
"kloc",
"kochan",
"koorchik",
"kshrc",
"LASTEXITCODE",
"ldid",
"ldni",
"ledgered",
"leniolabs",
"libc",
"libnpmpublish",
"libnpx",
"libpnpm",
"libsql",
"libzip",
"licence",
"licences",
"lifecycles",
"lightningcss",
"linearization",
"linuxstatic",
"localappdata",
"lockfiles",
"loglevel",
"logstream",
"longlink",
"longpaths",
"loong",
"lowlink",
"ltrim",
"luca",
"malloc",
"manylinux",
"martensson",
"maxsockets",
"maxtimeout",
"mdast",
"metacharacter",
"metafile",
"millis",
"minioadmin",
"mintimeout",
"mkfifo",
"mksh",
"mmap",
"monorepolint",
"montudor",
"moonrepo",
"mountpoint",
"msgpack",
"msgpackr",
"msvc",
"msys",
"MSYSTEM",
"mtimes",
"musleabihf",
"mycomp",
"mycompany",
"myorg",
"mypackage",
"mytoken",
"napi",
"ndjson",
"nerfed",
"newteam",
"newversion",
"nistp",
"NOASSERTION",
"nodepath",
"nodetouch",
"noent",
"nonexec",
"noninjected",
"nonvulnerable",
"noopener",
"nopadding",
"noprofile",
"noproxy",
"norc",
"noreferrer",
"nosystem",
"nothrow",
"npath",
"npmcli",
"npmignore",
"npmjs",
"npmmirror",
"npmx",
"ntfs",
"nushell",
"ofjergrg",
"oldteam",
"onclickoutside",
"onstat",
"oomol",
"openharmony",
"openpgp",
"openpyxl",
"ossl",
"outfile",
"overrider",
"packlist",
"packr",
"packument",
"packuments",
"pacquet",
"paralleljs",
"parallelly",
"parseable",
"partialmatch",
"pathext",
"pathsep",
"peeker",
"pegjs",
"pgid",
"pids",
"pidtree",
"pify",
"pinnable",
"pkgid",
"pkgname",
"pkgs",
"plotly",
"plugh",
"pnpmfile",
"pnpmfiles",
"pnpmjs",
"pnpmrc",
"pnpmtest",
"pnpr",
"polyfilling",
"português",
"posix",
"postbuild",
"postfoo",
"postpack",
"postprepare",
"postpublish",
"postrestart",
"postshrinkwrap",
"poststart",
"poststop",
"posttest",
"postuninstall",
"postversion",
"preact",
"prebuild",
"prefoo",
"prefs",
"preinstall",
"premajor",
"preminor",
"preopens",
"prepatch",
"prepublish",
"prereleases",
"prerestart",
"preshrinkwrap",
"prestart",
"prestop",
"preuninstall",
"preversion",
"prioritizer",
"promisified",
"propfind",
"proxied",
"publickey",
"pwsh",
"pylock",
"pypi",
"pyproject",
"pythonhosted",
"qrcode",
"quux",
"rcompare",
"redownload",
"refclone",
"refetched",
"refetches",
"reflattened",
"reflink",
"reflinked",
"reflinks",
"rehoist",
"reimagining",
"reka",
"Rekor",
"relinks",
"renderable",
"reparses",
"replit",
"repoint",
"repointing",
"reqheaders",
"rescans",
"rescopable",
"rescope",
"rescoped",
"rescopes",
"rescoping",
"resolv",
"revisioned",
"rimrafed",
"riscv",
"rmgr",
"rpmdevtools",
"rpmlint",
"rsort",
"rstacruz",
"rushstack",
"rustc",
"rustup",
"safecrlf",
"sccache",
"scim",
"scopeless",
"scriptless",
"sdiff",
"searchexclude",
"searchlimit",
"searchopts",
"searchstaleness",
"secp",
"sels",
"semistrict",
"serde",
"serp",
"serverjs",
"setgid",
"SETLOCAL",
"setx",
"shasums",
"sheetjs",
"Sherov",
"shlex",
"shrc",
"SIGPIPE",
"sigstore",
"sindresorhus",
"sirv",
"skopeo",
"SLSA",
"soporan",
"sopts",
"spdxdocs",
"SPDXID",
"sqld",
"srcset",
"ssri",
"stackblitz",
"stacktracey",
"statter",
"stdtype",
"streamsearch",
"stringifying",
"strongconnect",
"subcmd",
"subdep",
"subdependencies",
"subdependency",
"subdeps",
"subdir",
"subdirs",
"subkey",
"subkeys",
"subpkg",
"subresource",
"supercede",
"Swatinem",
"syml",
"symref",
"syncer",
"syscall",
"syscalls",
"systemroot",
"szia",
"tabtab",
"taffydb",
"taiki",
"tarballtemplate",
"Tarjan",
"taskkill",
"tcsh",
"teambit",
"tempy",
"testcase",
"thesys",
"tlog",
"TLSV",
"toctou",
"todomvc",
"toplevel",
"TOTP",
"tsgo",
"tsparticles",
"turso",
"typecheck",
"typeflag",
"TYPELESS",
"unallowed",
"Unawaited",
"uncacheable",
"unconfigured",
"undeprecate",
"underperformance",
"undispatched",
"undollar",
"unextractable",
"Unincluded",
"uninstallation",
"unmigrated",
"unnest",
"unparseable",
"unreleasable",
"unreviewed",
"Unseparated",
"unskip",
"unstar",
"untracks",
"unvalidated",
"usecase",
"userconfig",
"userprofile",
"ustar",
"uuidv",
"valign",
"venv",
"versionless",
"virtiofs",
"vuln",
"wabt",
"wafpickle",
"waitpid",
"wakeup",
"wasi",
"wasip",
"wbem",
"webauth",
"webcontainer",
"webdav",
"WIFEXITED",
"windir",
"windowspowershell",
"winst",
"wordbreaks",
"workleap",
"worktree",
"worktrees",
"wrappy",
"wscript",
"wslpath",
"WTERMSIG",
"xattr",
"xattrs",
"xmarw",
"yazl",
"zdotdir",
"zkochan",
"zoli",
"zoltan",
"zstd"
]
}