@anolilab/semantic-release-pnpm 1.0.1 → 1.1.0
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 +13 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +6 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
## @anolilab/semantic-release-pnpm [1.1.0](https://github.com/anolilab/semantic-release/compare/@anolilab/semantic-release-pnpm@1.0.1...@anolilab/semantic-release-pnpm@1.1.0) (2024-05-23)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* moved semantic-release preset, added new presets for yarn and pnpm ([#26](https://github.com/anolilab/semantic-release/issues/26)) ([7c057c4](https://github.com/anolilab/semantic-release/commit/7c057c45977c00a06c057a360a13a7f1993d808d))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Dependencies
|
|
11
|
+
|
|
12
|
+
* **@anolilab/rc:** upgraded to 1.1.0
|
|
13
|
+
|
|
1
14
|
## @anolilab/semantic-release-pnpm [1.0.1](https://github.com/anolilab/semantic-release/compare/@anolilab/semantic-release-pnpm@1.0.0...@anolilab/semantic-release-pnpm@1.0.1) (2024-05-23)
|
|
2
15
|
|
|
3
16
|
|
package/dist/index.js
CHANGED
|
@@ -13,7 +13,7 @@ import Ce from 'registry-auth-token';
|
|
|
13
13
|
import { URL } from 'url';
|
|
14
14
|
|
|
15
15
|
var C=e=>e?validRange(e)?`release-${e}`:e:"latest";var pe=(e,t)=>{let r=resolve(e,".npmrc");return t.NPM_CONFIG_USERCONFIG&&isAccessibleSync(t.NPM_CONFIG_USERCONFIG)?t.NPM_CONFIG_USERCONFIG:(isAccessibleSync(r)||ensureFileSync(r),r)},k=pe;var A="https://registry.npmjs.org/";var ge=(e,t)=>{let r=A;if(t){let o=t[`${e}:registry`]??t.registry;o&&(r=o);}return r.endsWith("/")?r:`${r}/`},P=({name:e,publishConfig:{registry:t}={}},{cwd:r,env:o})=>t??o.NPM_CONFIG_REGISTRY??ge(e.split("/")[0],rc("npm",{config:o.NPM_CONFIG_USERCONFIG??resolve(r,".npmrc"),cwd:r,defaults:{registry:"https://registry.npmjs.org/"}}).config);var I=({name:e},{env:{DEFAULT_NPM_REGISTRY:t="https://registry.npmjs.org/"},nextRelease:{version:r}},o,i)=>({channel:o,name:`pnpm package (@${o} dist-tag)`,url:J(i)===J(t)?`https://www.npmjs.com/package/${e}/v/${r}`:void 0});var N=(e,t)=>e.npmPublish===!1?"npmPublish plugin option is false":t.private===!0&&t.workspaces===void 0?"package is private and has no workspaces":null,b=(e,t)=>N(e,t)===null;var K=async(e,t,r)=>{let{cwd:o,env:i,logger:l,nextRelease:{channel:c,version:m},stderr:g,stdout:n}=r;if(b(e,t)){let p=P(t,r),d=C(c);l.log(`Adding version ${m} to npm registry on dist-tag ${d}`);let y=k(o,i),f=execa("pnpm",["dist-tag","add",`${t.name}@${m}`,d,"--userconfig",y,"--registry",p],{cwd:o,env:i,preferLocal:!0});return f.stdout.pipe(n,{end:!1}),f.stderr.pipe(g,{end:!1}),await f,l.log(`Added ${t.name}@${m} to dist-tag @${d} on ${p}`),I(t,r,d,p)}return l.log(`Skip adding to npm channel as ${N(e,t)}`),!1};var D=async({pkgRoot:e,tarballDir:t},{cwd:r,env:o,logger:i,nextRelease:{version:l},stderr:c,stdout:m})=>{let g=e?resolve(r,e):r;i.log("Write version %s to package.json in %s",l,g);let n=execa("pnpm",["version",l,"--no-git-tag-version","--allow-same-version"],{cwd:g,env:o,preferLocal:!0});if(n.stdout.pipe(m,{end:!1}),n.stderr.pipe(c,{end:!1}),await n,t){i.log("Creating npm package version %s",l);let p=execa("pnpm",["pack",g],{cwd:r,env:o,preferLocal:!0});p.stdout.pipe(m,{end:!1}),p.stderr.pipe(c,{end:!1});let d=(await p).stdout.split(`
|
|
16
|
-
`).pop(),y=resolve(r,d),f=resolve(r,t.trim(),d);y!==f&&await moveFile(y,f);}};var Y=async(e,t,r)=>{let{cwd:o,env:i,logger:l,nextRelease:{channel:c,version:m},stderr:g,stdout:n}=r,{pkgRoot:p,publishBranch:d}=e;if(b(e,t)){let y=p?resolve(o,p):o,f=P(t,r),E=C(c),{stdout:S}=await execa("git",["rev-parse","--abbrev-ref","HEAD"],{cwd:o,env:i,preferLocal:!0}),L=typeof d=="string"&&d.split("|"),V=L&&L.includes(S)?S:"main";l.log(`Publishing version ${m} on branch ${V} to npm registry on dist-tag ${E}`);let B=["publish",y,"--publish-branch",V,"--tag",E,"--registry",f,"--no-git-checks"];e.disableScripts&&B.push("--ignore-scripts");let w=execa("pnpm",B,{cwd:o,env:i,preferLocal:!0});w.stdout.pipe(n,{end:!1}),w.stderr.pipe(g,{end:!1});try{await w;}catch($){throw l.log(`Failed to publish ${t.name}@${m} to dist-tag @${E} on ${f}: ${$.message??$}`),new W([$])}return l.log(`Published ${t.name}@${m} to dist-tag @${E} on ${f}`),I(t,r,E,f)}return l.log(`Skip publishing to npm registry as ${N(e,t)}`),!1};var H={name:"@anolilab/semantic-release-pnpm",version:"1.0.1",description:"Semantic-release plugin to publish a npm package with pnpm.",keywords:["anolilab","npm","pnpm","publish","monorepo","semantic-release","semantic-release-plugin","semantic-release-pnpm"],homepage:"https://github.com/anolilab/semantic-release/tree/main/packages/semantic-release-pnpm",bugs:{url:"https://github.com/anolilab/semantic-release/issues"},repository:{type:"git",url:"git+https://github.com/anolilab/semantic-release.git",directory:"packages/semantic-release-pnpm"},funding:[{type:"github",url:"https://github.com/sponsors/prisis"},{type:"consulting",url:"https://anolilab.com/support"}],license:"MIT",author:{name:"Daniel Bannert",email:"d.bannert@anolilab.de"},sideEffects:!1,type:"module",exports:"./dist/index.js",main:"dist/index.js",types:"dist/index.d.ts",files:["dist","README.md","CHANGELOG.md"],scripts:{build:"cross-env NODE_ENV=development tsup","build:prod":"cross-env NODE_ENV=production tsup",clean:"rimraf node_modules dist .eslintcache",dev:"pnpm run build --watch","lint:eslint":"eslint . --ext js,cjs,mjs,jsx,ts,tsx,json,yaml,yml,md,mdx --max-warnings=0 --config .eslintrc.cjs","lint:eslint:fix":"eslint . --ext js,cjs,mjs,jsx,ts,tsx,json,yaml,yml,md,mdx --max-warnings=0 --config .eslintrc.cjs --fix","lint:package-json":"publint --strict","lint:prettier":"prettier --config=.prettierrc.cjs --check .","lint:prettier:fix":"prettier --config=.prettierrc.cjs --write .","lint:types":"tsc --noEmit",test:"vitest run","test:coverage":"vitest run --coverage","test:ui":"vitest --ui --coverage.enabled=true","test:watch":"vitest"},dependencies:{"@anolilab/rc":"1.0.0","@semantic-release/error":"^4.0.0","@visulima/fs":"^2.1.1","@visulima/package":"1.8.1","@visulima/path":"^1.0.0","aggregate-error":"^5.0.0",execa:"^9.1.0",ini:"4.1.2","move-file":"^3.1.0","normalize-url":"^8.0.1","registry-auth-token":"^5.0.2",semver:"^7.6.2"},devDependencies:{"@anolilab/eslint-config":"^15.0.3","@anolilab/prettier-config":"^5.0.14","@
|
|
16
|
+
`).pop(),y=resolve(r,d),f=resolve(r,t.trim(),d);y!==f&&await moveFile(y,f);}};var Y=async(e,t,r)=>{let{cwd:o,env:i,logger:l,nextRelease:{channel:c,version:m},stderr:g,stdout:n}=r,{pkgRoot:p,publishBranch:d}=e;if(b(e,t)){let y=p?resolve(o,p):o,f=P(t,r),E=C(c),{stdout:S}=await execa("git",["rev-parse","--abbrev-ref","HEAD"],{cwd:o,env:i,preferLocal:!0}),L=typeof d=="string"&&d.split("|"),V=L&&L.includes(S)?S:"main";l.log(`Publishing version ${m} on branch ${V} to npm registry on dist-tag ${E}`);let B=["publish",y,"--publish-branch",V,"--tag",E,"--registry",f,"--no-git-checks"];e.disableScripts&&B.push("--ignore-scripts");let w=execa("pnpm",B,{cwd:o,env:i,preferLocal:!0});w.stdout.pipe(n,{end:!1}),w.stderr.pipe(g,{end:!1});try{await w;}catch($){throw l.log(`Failed to publish ${t.name}@${m} to dist-tag @${E} on ${f}: ${$.message??$}`),new W([$])}return l.log(`Published ${t.name}@${m} to dist-tag @${E} on ${f}`),I(t,r,E,f)}return l.log(`Skip publishing to npm registry as ${N(e,t)}`),!1};var H={name:"@anolilab/semantic-release-pnpm",version:"1.0.1",description:"Semantic-release plugin to publish a npm package with pnpm.",keywords:["anolilab","npm","pnpm","publish","monorepo","semantic-release","semantic-release-plugin","semantic-release-pnpm"],homepage:"https://github.com/anolilab/semantic-release/tree/main/packages/semantic-release-pnpm",bugs:{url:"https://github.com/anolilab/semantic-release/issues"},repository:{type:"git",url:"git+https://github.com/anolilab/semantic-release.git",directory:"packages/semantic-release-pnpm"},funding:[{type:"github",url:"https://github.com/sponsors/prisis"},{type:"consulting",url:"https://anolilab.com/support"}],license:"MIT",author:{name:"Daniel Bannert",email:"d.bannert@anolilab.de"},sideEffects:!1,type:"module",exports:"./dist/index.js",main:"dist/index.js",types:"dist/index.d.ts",files:["dist","README.md","CHANGELOG.md"],scripts:{build:"cross-env NODE_ENV=development tsup","build:prod":"cross-env NODE_ENV=production tsup",clean:"rimraf node_modules dist .eslintcache",dev:"pnpm run build --watch","lint:eslint":"eslint . --ext js,cjs,mjs,jsx,ts,tsx,json,yaml,yml,md,mdx --max-warnings=0 --config .eslintrc.cjs","lint:eslint:fix":"eslint . --ext js,cjs,mjs,jsx,ts,tsx,json,yaml,yml,md,mdx --max-warnings=0 --config .eslintrc.cjs --fix","lint:package-json":"publint --strict","lint:prettier":"prettier --config=.prettierrc.cjs --check .","lint:prettier:fix":"prettier --config=.prettierrc.cjs --write .","lint:types":"tsc --noEmit",test:"vitest run","test:coverage":"vitest run --coverage","test:ui":"vitest --ui --coverage.enabled=true","test:watch":"vitest"},dependencies:{"@anolilab/rc":"1.0.0","@semantic-release/error":"^4.0.0","@visulima/fs":"^2.1.1","@visulima/package":"1.8.1","@visulima/path":"^1.0.0","aggregate-error":"^5.0.0",execa:"^9.1.0",ini:"4.1.2","move-file":"^3.1.0","normalize-url":"^8.0.1","registry-auth-token":"^5.0.2",semver:"^7.6.2"},devDependencies:{"@anolilab/eslint-config":"^15.0.3","@anolilab/prettier-config":"^5.0.14","@babel/core":"^7.24.5","@rushstack/eslint-plugin-security":"^0.8.1","@secretlint/secretlint-rule-preset-recommend":"^8.2.4","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"11.1.0","@semantic-release/exec":"^6.0.3","@semantic-release/git":"^10.0.1","@semantic-release/github":"^10.0.5","@semantic-release/release-notes-generator":"12.1.0","@types/dockerode":"^3.3.29","@types/ini":"^4.1.0","@types/node":"18.18.14","@types/semantic-release__error":"3.0.3","@types/semver":"7.5.8","@types/stream-buffers":"^3.0.7","@vitest/coverage-v8":"^1.6.0","@vitest/ui":"^1.6.0","conventional-changelog-conventionalcommits":"7.0.2","cross-env":"^7.0.3",dockerode:"4.0.2",eslint:"^8.57.0","eslint-plugin-deprecation":"^2.0.0","eslint-plugin-editorconfig":"^4.0.3","eslint-plugin-import":"npm:eslint-plugin-i@2.29.1","eslint-plugin-mdx":"^3.1.5","eslint-plugin-n":"^17.7.0","eslint-plugin-vitest":"^0.4.1","eslint-plugin-vitest-globals":"^1.5.0","eslint-plugin-you-dont-need-lodash-underscore":"^6.14.0","get-stream":"9.0.1",got:"^14.3.0","p-retry":"^6.2.0",prettier:"^3.2.5",rimraf:"^5.0.7",secretlint:"8.1.2","semantic-release":"^23.0.5","sort-package-json":"^2.10.0","stream-buffers":"^3.0.2",tempy:"^3.1.0",tsup:"^8.0.2",typescript:"^5.4.5",vitest:"^1.6.0"},engines:{node:">=18.* <=21.*"},publishConfig:{access:"public",provenance:!0},anolilab:{"eslint-config":{plugin:{etc:!1,tsdoc:!1},warn_on_unsupported_typescript_version:!1,info_on_disabling_jsx_react_rule:!1,info_on_disabling_prettier_conflict_rule:!1,info_on_disabling_jsonc_sort_keys_rule:!1,import_ignore_exports:["**/*.cjs"]}}};var h=e=>`${H.homepage}/blob/main/${e}`,z={EINVALIDBRANCHES:e=>({details:`The [branches option](${h("README.md#branches")}) option, if defined, must be an array of \`String\`.
|
|
17
17
|
Your configuration for the \`branches\` option is \`${e.join(",")}\`.`,message:"Invalid `branches` option."}),EINVALIDNPMPUBLISH:({npmPublish:e})=>({details:`The [npmPublish option](${h("README.md#npmpublish")}) option, if defined, must be a \`Boolean\`.
|
|
18
18
|
Your configuration for the \`npmPublish\` option is \`${e}\`.`,message:"Invalid `npmPublish` option."}),EINVALIDNPMTOKEN:({registry:e})=>({details:`The [npm token](${h("README.md#npm-registry-authentication")}) configured in the \`NPM_TOKEN\` environment variable must be a valid [token](https://docs.npmjs.com/getting-started/working_with_tokens) allowing to publish to the registry \`${e}\`.
|
|
19
19
|
If you are using Two Factor Authentication for your account, set its level to ["Authorization only"](https://docs.npmjs.com/getting-started/using-two-factor-authentication#levels-of-authentication) in your account settings. **semantic-release** cannot publish with the default "Authorization and writes" level.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/add-channel.ts","../src/utils/get-channel.ts","../src/utils/get-npmrc-path.ts","../src/utils/get-registry.ts","../src/definitions/constants.ts","../src/utils/get-release-info.ts","../src/utils/should-publish.ts","../src/prepare.ts","../src/publish.ts","../src/utils/get-pkg.ts","../src/utils/get-error.ts","../package.json","../src/definitions/errors.ts","../src/verify/index.ts","../src/verify/verify-auth.ts","../src/utils/set-npmrc-auth.ts","../src/utils/nerf-dart.ts","../src/verify/verify-config.ts","../src/verify/verify-pnpm.ts","../src/index.ts"],"names":["execa","validRange","get_channel_default","channel","ensureFileSync","isAccessibleSync","resolve","getNpmrcPath","cwd","environment","npmrcPath","get_npmrc_path_default","rc","DEFAULT_NPM_REGISTRY","getRegistryUrl","scope","npmrc","url","registryUrl","get_registry_default","name","registry","env","normalizeUrl","getReleaseInfo","version","distributionTag","reasonToNotPublish","pluginConfig","package_","shouldPublish","add_channel_default","context","logger","stderr","stdout","result","moveFile","prepare_default","pkgRoot","tarballDir","basePath","versionResult","packResult","tarball","tarballSource","tarballDestination","AggregateError","publish_default","publishBranchConfig","currentBranch","publishBranches","publishBranch","pnpmArguments","error","findPackageJson","SemanticReleaseError","package_default","linkify","file","errors","branches","npmPublish","get_error_default","code","details","message","get_pkg_default","packageJson","writeFile","stringify","getAuthToken","URL","nerfDart","parsed","from","real","nerf_dart_default","set_npmrc_auth_default","NPM_CONFIG_USERCONFIG","NPM_EMAIL","NPM_PASSWORD","NPM_TOKEN","NPM_USERNAME","config","files","verify_auth_default","whoamiResult","isString","value","isNil","isNonEmptyString","VALIDATORS","verify_config_default","option","getPackageManagerVersion","gte","MIN_PNPM_VERSION","verifyPnpm","verify","typedError","verify_default","PLUGIN_NAME","verified","prepared","verifyConditions","publishPlugin","prepare","publish","addChannel"],"mappings":"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","sourcesContent":["import type { PackageJson } from \"@visulima/package\";\nimport { execa } from \"execa\";\n\nimport type { AddChannelContext } from \"./definitions/context\";\nimport type { PluginConfig } from \"./definitions/plugin-config\";\nimport getChannel from \"./utils/get-channel\";\nimport getNpmrcPath from \"./utils/get-npmrc-path\";\nimport getRegistry from \"./utils/get-registry\";\nimport type { ReleaseInfo } from \"./utils/get-release-info\";\nimport { getReleaseInfo } from \"./utils/get-release-info\";\nimport { reasonToNotPublish, shouldPublish } from \"./utils/should-publish\";\n\nexport default async (pluginConfig: PluginConfig, package_: PackageJson, context: AddChannelContext): Promise<ReleaseInfo | false> => {\n const {\n cwd,\n env,\n logger,\n nextRelease: { channel, version },\n stderr,\n stdout,\n } = context;\n\n if (shouldPublish(pluginConfig, package_)) {\n const registry = getRegistry(package_, context);\n const distributionTag = getChannel(channel);\n\n logger.log(`Adding version ${version} to npm registry on dist-tag ${distributionTag}`);\n\n const npmrc = getNpmrcPath(cwd, env);\n\n const result = execa(\"pnpm\", [\"dist-tag\", \"add\", `${package_.name}@${version}`, distributionTag, \"--userconfig\", npmrc, \"--registry\", registry], {\n cwd,\n env,\n preferLocal: true,\n });\n\n result.stdout.pipe(stdout, { end: false });\n result.stderr.pipe(stderr, { end: false });\n\n await result;\n\n logger.log(`Added ${package_.name}@${version} to dist-tag @${distributionTag} on ${registry}`);\n\n return getReleaseInfo(package_, context, distributionTag, registry);\n }\n\n logger.log(`Skip adding to npm channel as ${reasonToNotPublish(pluginConfig, package_)}`);\n\n return false;\n};\n","import { validRange } from \"semver\";\n\nexport default (channel: string | null | undefined): string => (channel ? (validRange(channel) ? `release-${channel}` : channel) : \"latest\");\n","import { ensureFileSync, isAccessibleSync } from \"@visulima/fs\";\nimport { resolve } from \"@visulima/path\";\n\nconst getNpmrcPath = (cwd: string, environment: NodeJS.ProcessEnv): string => {\n const npmrcPath = resolve(cwd, \".npmrc\");\n\n if (environment.NPM_CONFIG_USERCONFIG && isAccessibleSync(environment.NPM_CONFIG_USERCONFIG)) {\n return environment.NPM_CONFIG_USERCONFIG;\n }\n\n if (isAccessibleSync(npmrcPath)) {\n return npmrcPath;\n }\n\n ensureFileSync(npmrcPath);\n\n return npmrcPath;\n};\n\nexport default getNpmrcPath;\n","import { rc } from \"@anolilab/rc\";\nimport type { PackageJson } from \"@visulima/package\";\nimport { resolve } from \"@visulima/path\";\nimport type { AuthOptions } from \"registry-auth-token\";\n\nimport { DEFAULT_NPM_REGISTRY } from \"../definitions/constants\";\nimport type { CommonContext } from \"../definitions/context\";\n\nconst getRegistryUrl = (scope: string, npmrc: AuthOptions[\"npmrc\"]): string => {\n let url: string = DEFAULT_NPM_REGISTRY;\n\n if (npmrc) {\n const registryUrl = npmrc[`${scope}:registry`] ?? npmrc.registry;\n\n if (registryUrl) {\n url = registryUrl;\n }\n }\n\n return url.endsWith(\"/\") ? url : `${url}/`;\n};\n\nexport default ({ name, publishConfig: { registry } = {} }: PackageJson, { cwd, env }: CommonContext): string =>\n registry ??\n env.NPM_CONFIG_REGISTRY ??\n getRegistryUrl(\n (name as string).split(\"/\")[0] as string,\n rc(\"npm\", {\n config: env.NPM_CONFIG_USERCONFIG ?? resolve(cwd, \".npmrc\"),\n cwd,\n defaults: { registry: \"https://registry.npmjs.org/\" },\n }).config as AuthOptions[\"npmrc\"],\n );\n","// eslint-disable-next-line import/prefer-default-export\nexport const DEFAULT_NPM_REGISTRY = \"https://registry.npmjs.org/\";\n","import type { PackageJson } from \"@visulima/package\";\nimport normalizeUrl from \"normalize-url\";\n\nimport type { PublishContext } from \"../definitions/context\";\n\nexport interface ReleaseInfo {\n channel: string;\n name: string;\n url?: string;\n}\n\nexport const getReleaseInfo = (\n { name }: PackageJson,\n { env: { DEFAULT_NPM_REGISTRY = \"https://registry.npmjs.org/\" }, nextRelease: { version } }: PublishContext,\n distributionTag: string,\n registry: string,\n): ReleaseInfo => {\n return {\n channel: distributionTag,\n name: `pnpm package (@${distributionTag} dist-tag)`,\n url: normalizeUrl(registry) === normalizeUrl(DEFAULT_NPM_REGISTRY) ? `https://www.npmjs.com/package/${name}/v/${version}` : undefined,\n };\n};\n","import type { PackageJson } from \"@visulima/package\";\n\nimport type { PluginConfig } from \"../definitions/plugin-config\";\n\n/**\n * Returns null if `npmPublish` is not `false` and `pkg.private` is not\n * `true` or `pkg.workspaces` is not `undefined`.\n * Returns reason otherwise.\n */\nexport const reasonToNotPublish = (pluginConfig: PluginConfig, package_: PackageJson): string | null =>\n (pluginConfig.npmPublish === false\n ? \"npmPublish plugin option is false\"\n : package_.private === true && package_.workspaces === undefined\n ? \"package is private and has no workspaces\"\n : null);\n\nexport const shouldPublish = (pluginConfig: PluginConfig, package_: PackageJson): boolean => reasonToNotPublish(pluginConfig, package_) === null;\n","import { resolve } from \"@visulima/path\";\nimport { execa } from \"execa\";\nimport { moveFile } from \"move-file\";\n\nimport type { PrepareContext } from \"./definitions/context\";\nimport type { PluginConfig } from \"./definitions/plugin-config\";\n\nexport default async ({ pkgRoot, tarballDir }: PluginConfig, { cwd, env, logger, nextRelease: { version }, stderr, stdout }: PrepareContext): Promise<void> => {\n const basePath = pkgRoot ? resolve(cwd, pkgRoot) : cwd;\n\n logger.log(\"Write version %s to package.json in %s\", version, basePath);\n\n const versionResult = execa(\"pnpm\", [\"version\", version, \"--no-git-tag-version\", \"--allow-same-version\"], {\n cwd: basePath,\n env,\n preferLocal: true,\n });\n\n versionResult.stdout.pipe(stdout, { end: false });\n versionResult.stderr.pipe(stderr, { end: false });\n\n await versionResult;\n\n if (tarballDir) {\n logger.log(\"Creating npm package version %s\", version);\n\n const packResult = execa(\"pnpm\", [\"pack\", basePath], { cwd, env, preferLocal: true });\n\n packResult.stdout.pipe(stdout, { end: false });\n packResult.stderr.pipe(stderr, { end: false });\n\n // eslint-disable-next-line unicorn/no-await-expression-member\n const tarball = (await packResult).stdout.split(\"\\n\").pop() as string;\n const tarballSource = resolve(cwd, tarball);\n const tarballDestination = resolve(cwd, tarballDir.trim(), tarball);\n\n // Only move the tarball if we need to\n // Fixes: https://github.com/semantic-release/npm/issues/169\n if (tarballSource !== tarballDestination) {\n await moveFile(tarballSource, tarballDestination);\n }\n }\n};\n","import type { PackageJson } from \"@visulima/package\";\nimport { resolve } from \"@visulima/path\";\nimport AggregateError from \"aggregate-error\";\nimport { execa } from \"execa\";\n\nimport type { PublishContext } from \"./definitions/context\";\nimport type { PluginConfig } from \"./definitions/plugin-config\";\nimport getChannel from \"./utils/get-channel\";\nimport getRegistry from \"./utils/get-registry\";\nimport type { ReleaseInfo } from \"./utils/get-release-info\";\nimport { getReleaseInfo } from \"./utils/get-release-info\";\nimport { reasonToNotPublish, shouldPublish } from \"./utils/should-publish\";\n\nexport default async (pluginConfig: PluginConfig, package_: PackageJson, context: PublishContext): Promise<ReleaseInfo | false> => {\n const {\n cwd,\n env,\n logger,\n nextRelease: { channel, version },\n stderr,\n stdout,\n } = context;\n const { pkgRoot, publishBranch: publishBranchConfig } = pluginConfig;\n\n if (shouldPublish(pluginConfig, package_)) {\n const basePath = pkgRoot ? resolve(cwd, pkgRoot) : cwd;\n const registry = getRegistry(package_, context);\n const distributionTag = getChannel(channel);\n\n const { stdout: currentBranch } = await execa(\"git\", [\"rev-parse\", \"--abbrev-ref\", \"HEAD\"], {\n cwd,\n env,\n preferLocal: true,\n });\n const publishBranches = typeof publishBranchConfig === \"string\" && publishBranchConfig.split(\"|\");\n const isPublishBranch = publishBranches && publishBranches.includes(currentBranch);\n const publishBranch = isPublishBranch ? currentBranch : \"main\";\n\n logger.log(`Publishing version ${version} on branch ${publishBranch} to npm registry on dist-tag ${distributionTag}`);\n\n const pnpmArguments = [\"publish\", basePath, \"--publish-branch\", publishBranch, \"--tag\", distributionTag, \"--registry\", registry, \"--no-git-checks\"];\n\n if (pluginConfig.disableScripts) {\n pnpmArguments.push(\"--ignore-scripts\");\n }\n\n const result = execa(\"pnpm\", pnpmArguments, {\n cwd,\n env,\n preferLocal: true,\n });\n\n result.stdout.pipe(stdout, { end: false });\n result.stderr.pipe(stderr, { end: false });\n\n try {\n await result;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n logger.log(`Failed to publish ${package_.name}@${version} to dist-tag @${distributionTag} on ${registry}: ${error.message ?? error}`);\n\n throw new AggregateError([error]);\n }\n\n logger.log(`Published ${package_.name}@${version} to dist-tag @${distributionTag} on ${registry}`);\n\n return getReleaseInfo(package_, context, distributionTag, registry);\n }\n\n logger.log(`Skip publishing to npm registry as ${reasonToNotPublish(pluginConfig, package_)}`);\n\n return false;\n};\n","// eslint-disable-next-line unicorn/prevent-abbreviations\nimport type { PackageJson } from \"@visulima/package\";\nimport { findPackageJson } from \"@visulima/package\";\nimport { resolve } from \"@visulima/path\";\nimport AggregateError from \"aggregate-error\";\n\nimport type { CommonContext } from \"../definitions/context\";\nimport getError from \"./get-error\";\n\ninterface Options {\n pkgRoot?: string;\n}\n\nexport default async ({ pkgRoot }: Options, { cwd }: { cwd: CommonContext[\"cwd\"] }): Promise<PackageJson> => {\n try {\n const { packageJson } = await findPackageJson(pkgRoot ? resolve(cwd, pkgRoot) : cwd);\n\n if (!packageJson.name) {\n throw new AggregateError([getError(\"ENOPKGNAME\")]);\n }\n\n return packageJson;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n if (error.code === \"ENOENT\") {\n throw new AggregateError([getError(\"ENOPKG\")]);\n }\n\n throw error;\n }\n};\n","import SemanticReleaseError from \"@semantic-release/error\";\n\nimport type { ErrorContext, ErrorDefinition } from \"../definitions/errors\";\nimport { errors } from \"../definitions/errors\";\n\nexport default <T extends keyof typeof errors>(code: T, context: ErrorContext = {}): SemanticReleaseError => {\n // eslint-disable-next-line security/detect-object-injection\n const { details, message }: { details?: string; message: string } = (errors[code] as ErrorDefinition)(context);\n\n return new SemanticReleaseError(message, code, details);\n};\n","{\n \"name\": \"@anolilab/semantic-release-pnpm\",\n \"version\": \"1.0.1\",\n \"description\": \"Semantic-release plugin to publish a npm package with pnpm.\",\n \"keywords\": [\n \"anolilab\",\n \"npm\",\n \"pnpm\",\n \"publish\",\n \"monorepo\",\n \"semantic-release\",\n \"semantic-release-plugin\",\n \"semantic-release-pnpm\"\n ],\n \"homepage\": \"https://github.com/anolilab/semantic-release/tree/main/packages/semantic-release-pnpm\",\n \"bugs\": {\n \"url\": \"https://github.com/anolilab/semantic-release/issues\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/anolilab/semantic-release.git\",\n \"directory\": \"packages/semantic-release-pnpm\"\n },\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/prisis\"\n },\n {\n \"type\": \"consulting\",\n \"url\": \"https://anolilab.com/support\"\n }\n ],\n \"license\": \"MIT\",\n \"author\": {\n \"name\": \"Daniel Bannert\",\n \"email\": \"d.bannert@anolilab.de\"\n },\n \"sideEffects\": false,\n \"type\": \"module\",\n \"exports\": \"./dist/index.js\",\n \"main\": \"dist/index.js\",\n \"types\": \"dist/index.d.ts\",\n \"files\": [\n \"dist\",\n \"README.md\",\n \"CHANGELOG.md\"\n ],\n \"scripts\": {\n \"build\": \"cross-env NODE_ENV=development tsup\",\n \"build:prod\": \"cross-env NODE_ENV=production tsup\",\n \"clean\": \"rimraf node_modules dist .eslintcache\",\n \"dev\": \"pnpm run build --watch\",\n \"lint:eslint\": \"eslint . --ext js,cjs,mjs,jsx,ts,tsx,json,yaml,yml,md,mdx --max-warnings=0 --config .eslintrc.cjs\",\n \"lint:eslint:fix\": \"eslint . --ext js,cjs,mjs,jsx,ts,tsx,json,yaml,yml,md,mdx --max-warnings=0 --config .eslintrc.cjs --fix\",\n \"lint:package-json\": \"publint --strict\",\n \"lint:prettier\": \"prettier --config=.prettierrc.cjs --check .\",\n \"lint:prettier:fix\": \"prettier --config=.prettierrc.cjs --write .\",\n \"lint:types\": \"tsc --noEmit\",\n \"test\": \"vitest run\",\n \"test:coverage\": \"vitest run --coverage\",\n \"test:ui\": \"vitest --ui --coverage.enabled=true\",\n \"test:watch\": \"vitest\"\n },\n \"dependencies\": {\n \"@anolilab/rc\": \"1.0.0\",\n \"@semantic-release/error\": \"^4.0.0\",\n \"@visulima/fs\": \"^2.1.1\",\n \"@visulima/package\": \"1.8.1\",\n \"@visulima/path\": \"^1.0.0\",\n \"aggregate-error\": \"^5.0.0\",\n \"execa\": \"^9.1.0\",\n \"ini\": \"4.1.2\",\n \"move-file\": \"^3.1.0\",\n \"normalize-url\": \"^8.0.1\",\n \"registry-auth-token\": \"^5.0.2\",\n \"semver\": \"^7.6.2\"\n },\n \"devDependencies\": {\n \"@anolilab/eslint-config\": \"^15.0.3\",\n \"@anolilab/prettier-config\": \"^5.0.14\",\n \"@anolilab/semantic-release-preset\": \"^8.0.3\",\n \"@babel/core\": \"^7.24.5\",\n \"@rushstack/eslint-plugin-security\": \"^0.8.1\",\n \"@secretlint/secretlint-rule-preset-recommend\": \"^8.2.4\",\n \"@semantic-release/changelog\": \"^6.0.3\",\n \"@semantic-release/git\": \"^10.0.1\",\n \"@semantic-release/github\": \"^10.0.5\",\n \"@types/dockerode\": \"^3.3.29\",\n \"@types/ini\": \"^4.1.0\",\n \"@types/node\": \"18.18.14\",\n \"@types/semantic-release__error\": \"3.0.3\",\n \"@types/semver\": \"7.5.8\",\n \"@types/stream-buffers\": \"^3.0.7\",\n \"@vitest/coverage-v8\": \"^1.6.0\",\n \"@vitest/ui\": \"^1.6.0\",\n \"cross-env\": \"^7.0.3\",\n \"dockerode\": \"4.0.2\",\n \"eslint\": \"^8.57.0\",\n \"eslint-plugin-deprecation\": \"^2.0.0\",\n \"eslint-plugin-editorconfig\": \"^4.0.3\",\n \"eslint-plugin-import\": \"npm:eslint-plugin-i@2.29.1\",\n \"eslint-plugin-mdx\": \"^3.1.5\",\n \"eslint-plugin-n\": \"^17.7.0\",\n \"eslint-plugin-vitest\": \"^0.4.1\",\n \"eslint-plugin-vitest-globals\": \"^1.5.0\",\n \"eslint-plugin-you-dont-need-lodash-underscore\": \"^6.14.0\",\n \"get-stream\": \"9.0.1\",\n \"got\": \"^14.3.0\",\n \"p-retry\": \"^6.2.0\",\n \"prettier\": \"^3.2.5\",\n \"rimraf\": \"^5.0.7\",\n \"secretlint\": \"8.1.2\",\n \"semantic-release\": \"^23.0.5\",\n \"sort-package-json\": \"^2.10.0\",\n \"stream-buffers\": \"^3.0.2\",\n \"tempy\": \"^3.1.0\",\n \"tsup\": \"^8.0.2\",\n \"typescript\": \"^5.4.5\",\n \"vitest\": \"^1.6.0\"\n },\n \"engines\": {\n \"node\": \">=18.* <=21.*\"\n },\n \"publishConfig\": {\n \"access\": \"public\",\n \"provenance\": true\n },\n \"anolilab\": {\n \"eslint-config\": {\n \"plugin\": {\n \"etc\": false,\n \"tsdoc\": false\n },\n \"warn_on_unsupported_typescript_version\": false,\n \"info_on_disabling_jsx_react_rule\": false,\n \"info_on_disabling_prettier_conflict_rule\": false,\n \"info_on_disabling_jsonc_sort_keys_rule\": false,\n \"import_ignore_exports\": [\n \"**/*.cjs\"\n ]\n }\n }\n}\n","import package_ from \"../../package.json\";\n\nconst linkify = (file: string) => `${package_.homepage}/blob/main/${file}`;\n\ninterface ErrorDetails {\n details: string;\n message: string;\n}\n\nexport type ErrorDefinition = (context: ErrorContext) => ErrorDetails;\n\nexport interface ErrorContext {\n npmPublish?: boolean;\n npmrc?: string;\n pkgRoot?: string;\n publishBranch?: string;\n registry?: string;\n tarballDir?: string;\n version?: string;\n}\n\nexport const errors: {\n EINVALIDBRANCHES: (branches: string[]) => { details: string; message: string };\n EINVALIDNPMPUBLISH: ({ npmPublish }: ErrorContext) => { details: string; message: string };\n EINVALIDNPMTOKEN: ({ registry }: ErrorContext) => { details: string; message: string };\n EINVALIDPKGROOT: ({ pkgRoot }: ErrorContext) => { details: string; message: string };\n EINVALIDPNPM: ({ version }: ErrorContext) => { details: string; message: string };\n EINVALIDPUBLISHBRANCH: ({ publishBranch }: ErrorContext) => { details: string; message: string };\n EINVALIDTARBALLDIR: ({ tarballDir }: ErrorContext) => { details: string; message: string };\n ENONPMTOKEN: ({ registry }: ErrorContext) => { details: string; message: string };\n ENOPKG: () => { details: string; message: string };\n ENOPKGNAME: () => { details: string; message: string };\n ENOPNPM: () => { details: string; message: string };\n ENOPNPMRC: () => { details: string; message: string };\n} = {\n EINVALIDBRANCHES: (branches: string[]) => {\n return {\n details: `The [branches option](${linkify(\"README.md#branches\")}) option, if defined, must be an array of \\`String\\`.\nYour configuration for the \\`branches\\` option is \\`${branches.join(\",\")}\\`.`,\n message: \"Invalid `branches` option.\",\n };\n },\n EINVALIDNPMPUBLISH: ({ npmPublish }: ErrorContext) => {\n return {\n details: `The [npmPublish option](${linkify(\"README.md#npmpublish\")}) option, if defined, must be a \\`Boolean\\`.\nYour configuration for the \\`npmPublish\\` option is \\`${npmPublish}\\`.`,\n message: \"Invalid `npmPublish` option.\",\n };\n },\n EINVALIDNPMTOKEN: ({ registry }: ErrorContext) => {\n return {\n details: `The [npm token](${linkify(\n \"README.md#npm-registry-authentication\",\n )}) configured in the \\`NPM_TOKEN\\` environment variable must be a valid [token](https://docs.npmjs.com/getting-started/working_with_tokens) allowing to publish to the registry \\`${registry}\\`.\nIf you are using Two Factor Authentication for your account, set its level to [\"Authorization only\"](https://docs.npmjs.com/getting-started/using-two-factor-authentication#levels-of-authentication) in your account settings. **semantic-release** cannot publish with the default \"Authorization and writes\" level.\nPlease make sure to set the \\`NPM_TOKEN\\` environment variable in your CI with the exact value of the npm token.`,\n message: \"Invalid npm token.\",\n };\n },\n EINVALIDPKGROOT: ({ pkgRoot }: ErrorContext) => {\n return {\n details: `The [pkgRoot option](${linkify(\"README.md#pkgroot\")}) option, if defined, must be a \\`String\\`.\nYour configuration for the \\`pkgRoot\\` option is \\`${pkgRoot}\\`.`,\n message: \"Invalid `pkgRoot` option.\",\n };\n },\n EINVALIDPNPM: ({ version }: ErrorContext) => {\n return {\n details: `The version of Pnpm that you are using is not compatible. Please refer to [the README](${linkify(\n \"README.md#install\",\n )}) to review which versions of Pnpm are currently supported\n\nYour version of Pnpm is \"${version}\".`,\n message: \"Incompatible Pnpm version detected.\",\n };\n },\n EINVALIDPUBLISHBRANCH: ({ publishBranch }: ErrorContext) => {\n return {\n details: `The [publishBranch option](${linkify(\"README.md#publishBranch\")}) option, if defined, must be a \\`String\\`.\nYour configuration for the \\`publishBranch\\` option is \\`${publishBranch}\\`.`,\n message: \"Invalid `publishBranch` option.\",\n };\n },\n EINVALIDTARBALLDIR: ({ tarballDir }: ErrorContext) => {\n return {\n details: `The [tarballDir option](${linkify(\"README.md#tarballdir\")}) option, if defined, must be a \\`String\\`.\nYour configuration for the \\`tarballDir\\` option is \\`${tarballDir}\\`.`,\n message: \"Invalid `tarballDir` option.\",\n };\n },\n ENONPMTOKEN: ({ registry }: ErrorContext) => {\n return {\n details: `An [npm token](${linkify(\n \"README.md#npm-registry-authentication\",\n )}) must be created and set in the \\`NPM_TOKEN\\` environment variable on your CI environment.\nPlease make sure to create an [npm token](https://docs.npmjs.com/getting-started/working_with_tokens#how-to-create-new-tokens) and to set it in the \\`NPM_TOKEN\\` environment variable on your CI environment. The token must allow to publish to the registry \\`${registry}\\`.`,\n message: \"No npm token specified.\",\n };\n },\n ENOPKG: () => {\n return {\n details: `A [package.json file](https://docs.npmjs.com/files/package.json) at the root of your project is required to release on npm.\nPlease follow the [npm guideline](https://docs.npmjs.com/getting-started/creating-node-modules) to create a valid \\`package.json\\` file.`,\n message: \"Missing `package.json` file.\",\n };\n },\n ENOPKGNAME: () => {\n return {\n details: `The \\`package.json\\`'s [name](https://docs.npmjs.com/files/package.json#name) property is required in order to publish a package to the npm registry.\nPlease make sure to add a valid \\`name\\` for your package in your \\`package.json\\`.`,\n message: \"Missing `name` property in `package.json`.\",\n };\n },\n ENOPNPM: () => {\n return {\n details: `The Pnpm CLI could not be found in your PATH. Make sure Pnpm is installed and try again.`,\n message: \"Pnpm not found.\",\n };\n },\n ENOPNPMRC: () => {\n return {\n details: `Didnt find a \\`.npmrc\\` file or it was not possible to create , in the root of your project.`,\n message: \"Missing `.npmrc` file.\",\n };\n },\n};\n","import AggregateError from \"aggregate-error\";\n\nimport type { VerifyConditionsContext } from \"../definitions/context\";\nimport type { PluginConfig } from \"../definitions/plugin-config\";\nimport getNpmrcPath from \"../utils/get-npmrc-path\";\nimport getPackage from \"../utils/get-pkg\";\nimport { shouldPublish } from \"../utils/should-publish\";\nimport verifyAuth from \"./verify-auth\";\nimport verifyConfig from \"./verify-config\";\nimport verifyPnpm from \"./verify-pnpm\";\n\nconst verify = async (pluginConfig: PluginConfig, context: VerifyConditionsContext): Promise<void> => {\n let errors: Error[] = verifyConfig(pluginConfig);\n\n try {\n await verifyPnpm(context);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n const typedError = error as AggregateError;\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n errors = [...errors, ...(typedError.errors ?? [error])];\n }\n\n try {\n const packageJson = await getPackage(pluginConfig, context);\n\n if (shouldPublish(pluginConfig, packageJson)) {\n const npmrc = getNpmrcPath(context.cwd, context.env);\n\n await verifyAuth(npmrc, packageJson, context);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n const typedError = error as AggregateError;\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n errors = [...errors, ...(typedError.errors ?? [error])];\n }\n\n if (errors.length > 0) {\n throw new AggregateError(errors);\n }\n};\n\nexport default verify;\n","import type { PackageJson } from \"@visulima/package\";\nimport AggregateError from \"aggregate-error\";\nimport { execa } from \"execa\";\nimport normalizeUrl from \"normalize-url\";\n\nimport type { CommonContext } from \"../definitions/context\";\nimport getError from \"../utils/get-error\";\nimport getRegistry from \"../utils/get-registry\";\nimport setNpmrcAuth from \"../utils/set-npmrc-auth\";\n\nexport default async (npmrc: string, package_: PackageJson, context: CommonContext): Promise<void> => {\n const {\n cwd,\n env: { DEFAULT_NPM_REGISTRY = \"https://registry.npmjs.org/\", ...environment },\n logger,\n stderr,\n stdout,\n } = context;\n const registry = getRegistry(package_, context);\n\n await setNpmrcAuth(npmrc, registry, context);\n\n if (normalizeUrl(registry) === normalizeUrl(DEFAULT_NPM_REGISTRY)) {\n try {\n logger.log(`Running \"pnpm whoami\" to verify authentication on registry \"${registry}\"`);\n\n const whoamiResult = execa(\"pnpm\", [\"whoami\", \"--userconfig\", npmrc, \"--registry\", registry], {\n cwd,\n env: environment,\n preferLocal: true,\n });\n\n whoamiResult.stdout.pipe(stdout, { end: false });\n whoamiResult.stderr.pipe(stderr, { end: false });\n\n await whoamiResult;\n } catch {\n throw new AggregateError([getError(\"EINVALIDNPMTOKEN\", { registry })]);\n }\n } else {\n logger.log(`Skipping authentication verification for non-default registry \"${registry}\"`);\n }\n};\n","import { rc } from \"@anolilab/rc\";\nimport { writeFile } from \"@visulima/fs\";\nimport { resolve } from \"@visulima/path\";\nimport AggregateError from \"aggregate-error\";\nimport { stringify } from \"ini\";\nimport type { AuthOptions } from \"registry-auth-token\";\nimport getAuthToken from \"registry-auth-token\";\n\nimport { DEFAULT_NPM_REGISTRY } from \"../definitions/constants\";\nimport type { CommonContext } from \"../definitions/context\";\nimport getError from \"./get-error\";\nimport nerfDart from \"./nerf-dart\";\n\nexport default async (\n npmrc: string,\n registry: string,\n { cwd, env: { NPM_CONFIG_USERCONFIG, NPM_EMAIL, NPM_PASSWORD, NPM_TOKEN, NPM_USERNAME }, logger }: CommonContext,\n): Promise<void> => {\n logger.log(\"Verify authentication for registry %s\", registry);\n\n const { config, files } = rc(\"npm\", {\n config: NPM_CONFIG_USERCONFIG ?? resolve(cwd, \".npmrc\"),\n cwd,\n defaults: { registry: DEFAULT_NPM_REGISTRY },\n });\n\n if (Array.isArray(files)) {\n logger.log(\"Reading npm config from %s\", files.join(\", \"));\n }\n\n if (getAuthToken(registry, { npmrc: config } as AuthOptions)) {\n await writeFile(npmrc, stringify(config));\n\n return;\n }\n\n if (NPM_USERNAME && NPM_PASSWORD && NPM_EMAIL) {\n await writeFile(npmrc, `${Object.keys(config).length > 0 ? `${stringify(config)}\\n` : \"\"}_auth = \\${LEGACY_TOKEN}\\nemail = \\${NPM_EMAIL}`);\n\n logger.log(`Wrote NPM_USERNAME, NPM_PASSWORD, and NPM_EMAIL to ${npmrc}`);\n } else if (NPM_TOKEN) {\n await writeFile(npmrc, `${Object.keys(config).length > 0 ? `${stringify(config)}\\n` : \"\"}${nerfDart(registry)}:_authToken = \\${NPM_TOKEN}`);\n\n logger.log(`Wrote NPM_TOKEN to ${npmrc}`);\n } else {\n throw new AggregateError([getError(\"ENONPMTOKEN\", { registry })]);\n }\n};\n","import { URL } from \"node:url\";\n\n/**\n * Maps a URL to an identifier.\n *\n * The ISC License\n * Copyright (c) npm, Inc.\n *\n * Name courtesy schiffertronix media LLC, a New Jersey corporation\n *\n * @param {String} url The URL to be nerfed.\n *\n * @returns {String} A nerfed URL.\n */\nconst nerfDart = (url: string): string => {\n const parsed = new URL(url);\n const from = `${parsed.protocol}//${parsed.host}${parsed.pathname}`;\n const real = new URL(\".\", from);\n\n return `//${real.host}${real.pathname}`;\n};\n\nexport default nerfDart;\n","import type SemanticReleaseError from \"@semantic-release/error\";\n\nimport type { PluginConfig } from \"../definitions/plugin-config\";\nimport getError from \"../utils/get-error\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isString = (value: any): boolean => typeof value === \"string\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isNil = (value: any): boolean => value === null || value === undefined;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isNonEmptyString = (value: any): boolean => {\n if (!isString(value)) {\n return false;\n }\n\n return (value as string).trim() !== \"\";\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype ValidatorFunction = (value: any) => boolean;\n\nconst VALIDATORS: Record<string, ValidatorFunction> = {\n branches: Array.isArray,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n npmPublish: (value: any): boolean => typeof value === \"boolean\",\n pkgRoot: isNonEmptyString,\n publishBranch: isNonEmptyString,\n tarballDir: isNonEmptyString,\n};\n\nexport default (config: PluginConfig): SemanticReleaseError[] =>\n // eslint-disable-next-line unicorn/no-array-reduce\n Object.entries(config).reduce<SemanticReleaseError[]>((errors, [option, value]) => {\n if (isNil(value)) {\n return errors;\n }\n\n if (!(option in VALIDATORS)) {\n return errors;\n }\n\n // eslint-disable-next-line security/detect-object-injection\n if (VALIDATORS[option]?.(value)) {\n return errors;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return [...errors, getError(`EINVALID${option.toUpperCase()}` as any, { [option]: value })];\n }, []);\n","import { getPackageManagerVersion } from \"@visulima/package\";\nimport AggregateError from \"aggregate-error\";\nimport { gte } from \"semver\";\n\nimport type { CommonContext } from \"../definitions/context\";\nimport getError from \"../utils/get-error\";\n\nconst MIN_PNPM_VERSION = \"8.0.0\";\n\nexport default async function verifyPnpm({ logger }: CommonContext): Promise<void> {\n logger.log(`Verify pnpm version is >= ${MIN_PNPM_VERSION}`);\n\n const version = getPackageManagerVersion(\"pnpm\");\n\n if (gte(MIN_PNPM_VERSION, version)) {\n throw new AggregateError([getError(\"EINVALIDPNPM\", { version: String(version) })]);\n }\n}\n","import addChannelNpm from \"./add-channel\";\nimport type { AddChannelContext, PrepareContext, PublishContext, VerifyConditionsContext } from \"./definitions/context\";\nimport type { PluginConfig } from \"./definitions/plugin-config\";\nimport prepareNpm from \"./prepare\";\nimport publishNpm from \"./publish\";\nimport getPackage from \"./utils/get-pkg\";\nimport type { ReleaseInfo } from \"./utils/get-release-info\";\nimport verify from \"./verify\";\n\nconst PLUGIN_NAME = \"semantic-release-pnpm\";\n\nlet verified: boolean;\nlet prepared: boolean;\n\nexport const verifyConditions = async (pluginConfig: PluginConfig, context: VerifyConditionsContext): Promise<void> => {\n /**\n * If the plugin is used and has `npmPublish`, `tarballDir` or\n * `pkgRoot` configured, validate them now in order to prevent any release if\n * the configuration is wrong\n */\n if (context.options.publish) {\n const publish = Array.isArray(context.options.publish) ? context.options.publish : [context.options.publish];\n\n const publishPlugin = publish.find((config) => config.path && config.path === PLUGIN_NAME) || {};\n\n // eslint-disable-next-line no-param-reassign\n pluginConfig.npmPublish = pluginConfig.npmPublish ?? publishPlugin.npmPublish;\n // eslint-disable-next-line no-param-reassign\n pluginConfig.tarballDir = pluginConfig.tarballDir ?? publishPlugin.tarballDir;\n // eslint-disable-next-line no-param-reassign\n pluginConfig.pkgRoot = pluginConfig.pkgRoot ?? publishPlugin.pkgRoot;\n // eslint-disable-next-line no-param-reassign\n pluginConfig.disableScripts = pluginConfig.disableScripts ?? publishPlugin.disableScripts;\n // eslint-disable-next-line no-param-reassign\n pluginConfig.branches = pluginConfig.branches ?? publishPlugin.branches;\n }\n\n await verify(pluginConfig, context);\n\n verified = true;\n};\n\nexport const prepare = async (pluginConfig: PluginConfig, context: PrepareContext): Promise<void> => {\n if (!verified) {\n await verify(pluginConfig, context);\n }\n\n await prepareNpm(pluginConfig, context);\n\n prepared = true;\n};\n\nexport const publish = async (pluginConfig: PluginConfig, context: PublishContext): Promise<ReleaseInfo | false> => {\n const packageJson = await getPackage(pluginConfig, context);\n\n if (!verified) {\n await verify(pluginConfig, context);\n }\n\n if (!prepared) {\n await prepareNpm(pluginConfig, context);\n }\n\n return await publishNpm(pluginConfig, packageJson, context);\n};\n\nexport const addChannel = async (pluginConfig: PluginConfig, context: AddChannelContext): Promise<ReleaseInfo | false> => {\n if (!verified) {\n await verify(pluginConfig, context);\n }\n\n const packageJson = await getPackage(pluginConfig, context);\n\n return await addChannelNpm(pluginConfig, packageJson, context);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/add-channel.ts","../src/utils/get-channel.ts","../src/utils/get-npmrc-path.ts","../src/utils/get-registry.ts","../src/definitions/constants.ts","../src/utils/get-release-info.ts","../src/utils/should-publish.ts","../src/prepare.ts","../src/publish.ts","../src/utils/get-pkg.ts","../src/utils/get-error.ts","../package.json","../src/definitions/errors.ts","../src/verify/index.ts","../src/verify/verify-auth.ts","../src/utils/set-npmrc-auth.ts","../src/utils/nerf-dart.ts","../src/verify/verify-config.ts","../src/verify/verify-pnpm.ts","../src/index.ts"],"names":["execa","validRange","get_channel_default","channel","ensureFileSync","isAccessibleSync","resolve","getNpmrcPath","cwd","environment","npmrcPath","get_npmrc_path_default","rc","DEFAULT_NPM_REGISTRY","getRegistryUrl","scope","npmrc","url","registryUrl","get_registry_default","name","registry","env","normalizeUrl","getReleaseInfo","version","distributionTag","reasonToNotPublish","pluginConfig","package_","shouldPublish","add_channel_default","context","logger","stderr","stdout","result","moveFile","prepare_default","pkgRoot","tarballDir","basePath","versionResult","packResult","tarball","tarballSource","tarballDestination","AggregateError","publish_default","publishBranchConfig","currentBranch","publishBranches","publishBranch","pnpmArguments","error","findPackageJson","SemanticReleaseError","package_default","linkify","file","errors","branches","npmPublish","get_error_default","code","details","message","get_pkg_default","packageJson","writeFile","stringify","getAuthToken","URL","nerfDart","parsed","from","real","nerf_dart_default","set_npmrc_auth_default","NPM_CONFIG_USERCONFIG","NPM_EMAIL","NPM_PASSWORD","NPM_TOKEN","NPM_USERNAME","config","files","verify_auth_default","whoamiResult","isString","value","isNil","isNonEmptyString","VALIDATORS","verify_config_default","option","getPackageManagerVersion","gte","MIN_PNPM_VERSION","verifyPnpm","verify","typedError","verify_default","PLUGIN_NAME","verified","prepared","verifyConditions","publishPlugin","prepare","publish","addChannel"],"mappings":"AACA,OAAS,SAAAA,OAAa,QCDtB,OAAS,cAAAC,OAAkB,SAE3B,IAAOC,EAASC,GAAgDA,EAAWF,GAAWE,CAAO,EAAI,WAAWA,CAAO,GAAKA,EAAW,SCFnI,OAAS,kBAAAC,GAAgB,oBAAAC,MAAwB,eACjD,OAAS,WAAAC,OAAe,iBAExB,IAAMC,GAAe,CAACC,EAAaC,IAA2C,CAC1E,IAAMC,EAAYJ,GAAQE,EAAK,QAAQ,EAEvC,OAAIC,EAAY,uBAAyBJ,EAAiBI,EAAY,qBAAqB,EAChFA,EAAY,uBAGnBJ,EAAiBK,CAAS,GAI9BN,GAAeM,CAAS,EAEjBA,EACX,EAEOC,EAAQJ,GCnBf,OAAS,MAAAK,OAAU,eAEnB,OAAS,WAAAN,OAAe,iBCDjB,IAAMO,EAAuB,8BDOpC,IAAMC,GAAiB,CAACC,EAAeC,IAAwC,CAC3E,IAAIC,EAAcJ,EAElB,GAAIG,EAAO,CACP,IAAME,EAAcF,EAAM,GAAGD,CAAK,WAAW,GAAKC,EAAM,SAEpDE,IACAD,EAAMC,EAEd,CAEA,OAAOD,EAAI,SAAS,GAAG,EAAIA,EAAM,GAAGA,CAAG,GAC3C,EAEOE,EAAQ,CAAC,CAAE,KAAAC,EAAM,cAAe,CAAE,SAAAC,CAAS,EAAI,CAAC,CAAE,EAAgB,CAAE,IAAAb,EAAK,IAAAc,CAAI,IAChFD,GACAC,EAAI,qBACJR,GACKM,EAAgB,MAAM,GAAG,EAAE,CAAC,EAC7BR,GAAG,MAAO,CACN,OAAQU,EAAI,uBAAyBhB,GAAQE,EAAK,QAAQ,EAC1D,IAAAA,EACA,SAAU,CAAE,SAAU,6BAA8B,CACxD,CAAC,EAAE,MACP,EE/BJ,OAAOe,MAAkB,gBAUlB,IAAMC,EAAiB,CAC1B,CAAE,KAAAJ,CAAK,EACP,CAAE,IAAK,CAAE,qBAAAP,EAAuB,6BAA8B,EAAG,YAAa,CAAE,QAAAY,CAAQ,CAAE,EAC1FC,EACAL,KAEO,CACH,QAASK,EACT,KAAM,kBAAkBA,CAAe,aACvC,IAAKH,EAAaF,CAAQ,IAAME,EAAaV,CAAoB,EAAI,iCAAiCO,CAAI,MAAMK,CAAO,GAAK,MAChI,GCZG,IAAME,EAAqB,CAACC,EAA4BC,IAC1DD,EAAa,aAAe,GACvB,oCACAC,EAAS,UAAY,IAAQA,EAAS,aAAe,OACjD,2CACA,KAEDC,EAAgB,CAACF,EAA4BC,IAAmCF,EAAmBC,EAAcC,CAAQ,IAAM,KNJ5I,IAAOE,EAAQ,MAAOH,EAA4BC,EAAuBG,IAA6D,CAClI,GAAM,CACF,IAAAxB,EACA,IAAAc,EACA,OAAAW,EACA,YAAa,CAAE,QAAA9B,EAAS,QAAAsB,CAAQ,EAChC,OAAAS,EACA,OAAAC,CACJ,EAAIH,EAEJ,GAAIF,EAAcF,EAAcC,CAAQ,EAAG,CACvC,IAAMR,EAAWF,EAAYU,EAAUG,CAAO,EACxCN,EAAkBxB,EAAWC,CAAO,EAE1C8B,EAAO,IAAI,kBAAkBR,CAAO,gCAAgCC,CAAe,EAAE,EAErF,IAAMV,EAAQL,EAAaH,EAAKc,CAAG,EAE7Bc,EAASpC,GAAM,OAAQ,CAAC,WAAY,MAAO,GAAG6B,EAAS,IAAI,IAAIJ,CAAO,GAAIC,EAAiB,eAAgBV,EAAO,aAAcK,CAAQ,EAAG,CAC7I,IAAAb,EACA,IAAAc,EACA,YAAa,EACjB,CAAC,EAED,OAAAc,EAAO,OAAO,KAAKD,EAAQ,CAAE,IAAK,EAAM,CAAC,EACzCC,EAAO,OAAO,KAAKF,EAAQ,CAAE,IAAK,EAAM,CAAC,EAEzC,MAAME,EAENH,EAAO,IAAI,SAASJ,EAAS,IAAI,IAAIJ,CAAO,iBAAiBC,CAAe,OAAOL,CAAQ,EAAE,EAEtFG,EAAeK,EAAUG,EAASN,EAAiBL,CAAQ,CACtE,CAEA,OAAAY,EAAO,IAAI,iCAAiCN,EAAmBC,EAAcC,CAAQ,CAAC,EAAE,EAEjF,EACX,EOjDA,OAAS,WAAAvB,MAAe,iBACxB,OAAS,SAAAN,MAAa,QACtB,OAAS,YAAAqC,OAAgB,YAKzB,IAAOC,EAAQ,MAAO,CAAE,QAAAC,EAAS,WAAAC,CAAW,EAAiB,CAAE,IAAAhC,EAAK,IAAAc,EAAK,OAAAW,EAAQ,YAAa,CAAE,QAAAR,CAAQ,EAAG,OAAAS,EAAQ,OAAAC,CAAO,IAAqC,CAC3J,IAAMM,EAAWF,EAAUjC,EAAQE,EAAK+B,CAAO,EAAI/B,EAEnDyB,EAAO,IAAI,yCAA0CR,EAASgB,CAAQ,EAEtE,IAAMC,EAAgB1C,EAAM,OAAQ,CAAC,UAAWyB,EAAS,uBAAwB,sBAAsB,EAAG,CACtG,IAAKgB,EACL,IAAAnB,EACA,YAAa,EACjB,CAAC,EAOD,GALAoB,EAAc,OAAO,KAAKP,EAAQ,CAAE,IAAK,EAAM,CAAC,EAChDO,EAAc,OAAO,KAAKR,EAAQ,CAAE,IAAK,EAAM,CAAC,EAEhD,MAAMQ,EAEFF,EAAY,CACZP,EAAO,IAAI,kCAAmCR,CAAO,EAErD,IAAMkB,EAAa3C,EAAM,OAAQ,CAAC,OAAQyC,CAAQ,EAAG,CAAE,IAAAjC,EAAK,IAAAc,EAAK,YAAa,EAAK,CAAC,EAEpFqB,EAAW,OAAO,KAAKR,EAAQ,CAAE,IAAK,EAAM,CAAC,EAC7CQ,EAAW,OAAO,KAAKT,EAAQ,CAAE,IAAK,EAAM,CAAC,EAG7C,IAAMU,GAAW,MAAMD,GAAY,OAAO,MAAM;AAAA,CAAI,EAAE,IAAI,EACpDE,EAAgBvC,EAAQE,EAAKoC,CAAO,EACpCE,EAAqBxC,EAAQE,EAAKgC,EAAW,KAAK,EAAGI,CAAO,EAI9DC,IAAkBC,GAClB,MAAMT,GAASQ,EAAeC,CAAkB,CAExD,CACJ,ECzCA,OAAS,WAAAxC,OAAe,iBACxB,OAAOyC,OAAoB,kBAC3B,OAAS,SAAA/C,MAAa,QAUtB,IAAOgD,EAAQ,MAAOpB,EAA4BC,EAAuBG,IAA0D,CAC/H,GAAM,CACF,IAAAxB,EACA,IAAAc,EACA,OAAAW,EACA,YAAa,CAAE,QAAA9B,EAAS,QAAAsB,CAAQ,EAChC,OAAAS,EACA,OAAAC,CACJ,EAAIH,EACE,CAAE,QAAAO,EAAS,cAAeU,CAAoB,EAAIrB,EAExD,GAAIE,EAAcF,EAAcC,CAAQ,EAAG,CACvC,IAAMY,EAAWF,EAAUjC,GAAQE,EAAK+B,CAAO,EAAI/B,EAC7Ca,EAAWF,EAAYU,EAAUG,CAAO,EACxCN,EAAkBxB,EAAWC,CAAO,EAEpC,CAAE,OAAQ+C,CAAc,EAAI,MAAMlD,EAAM,MAAO,CAAC,YAAa,eAAgB,MAAM,EAAG,CACxF,IAAAQ,EACA,IAAAc,EACA,YAAa,EACjB,CAAC,EACK6B,EAAkB,OAAOF,GAAwB,UAAYA,EAAoB,MAAM,GAAG,EAE1FG,EADkBD,GAAmBA,EAAgB,SAASD,CAAa,EACzCA,EAAgB,OAExDjB,EAAO,IAAI,sBAAsBR,CAAO,cAAc2B,CAAa,gCAAgC1B,CAAe,EAAE,EAEpH,IAAM2B,EAAgB,CAAC,UAAWZ,EAAU,mBAAoBW,EAAe,QAAS1B,EAAiB,aAAcL,EAAU,iBAAiB,EAE9IO,EAAa,gBACbyB,EAAc,KAAK,kBAAkB,EAGzC,IAAMjB,EAASpC,EAAM,OAAQqD,EAAe,CACxC,IAAA7C,EACA,IAAAc,EACA,YAAa,EACjB,CAAC,EAEDc,EAAO,OAAO,KAAKD,EAAQ,CAAE,IAAK,EAAM,CAAC,EACzCC,EAAO,OAAO,KAAKF,EAAQ,CAAE,IAAK,EAAM,CAAC,EAEzC,GAAI,CACA,MAAME,CAEV,OAASkB,EAAY,CACjB,MAAArB,EAAO,IAAI,qBAAqBJ,EAAS,IAAI,IAAIJ,CAAO,iBAAiBC,CAAe,OAAOL,CAAQ,KAAKiC,EAAM,SAAWA,CAAK,EAAE,EAE9H,IAAIP,GAAe,CAACO,CAAK,CAAC,CACpC,CAEA,OAAArB,EAAO,IAAI,aAAaJ,EAAS,IAAI,IAAIJ,CAAO,iBAAiBC,CAAe,OAAOL,CAAQ,EAAE,EAE1FG,EAAeK,EAAUG,EAASN,EAAiBL,CAAQ,CACtE,CAEA,OAAAY,EAAO,IAAI,sCAAsCN,EAAmBC,EAAcC,CAAQ,CAAC,EAAE,EAEtF,EACX,ECtEA,OAAS,mBAAA0B,OAAuB,oBAChC,OAAS,WAAAjD,OAAe,iBACxB,OAAOyC,MAAoB,kBCJ3B,OAAOS,OAA0B,0BCAjC,IAAAC,EAAA,CACI,KAAQ,kCACR,QAAW,QACX,YAAe,8DACf,SAAY,CACR,WACA,MACA,OACA,UACA,WACA,mBACA,0BACA,uBACJ,EACA,SAAY,wFACZ,KAAQ,CACJ,IAAO,qDACX,EACA,WAAc,CACV,KAAQ,MACR,IAAO,uDACP,UAAa,gCACjB,EACA,QAAW,CACP,CACI,KAAQ,SACR,IAAO,oCACX,EACA,CACI,KAAQ,aACR,IAAO,8BACX,CACJ,EACA,QAAW,MACX,OAAU,CACN,KAAQ,iBACR,MAAS,uBACb,EACA,YAAe,GACf,KAAQ,SACR,QAAW,kBACX,KAAQ,gBACR,MAAS,kBACT,MAAS,CACL,OACA,YACA,cACJ,EACA,QAAW,CACP,MAAS,sCACT,aAAc,qCACd,MAAS,wCACT,IAAO,yBACP,cAAe,oGACf,kBAAmB,0GACnB,oBAAqB,mBACrB,gBAAiB,8CACjB,oBAAqB,8CACrB,aAAc,eACd,KAAQ,aACR,gBAAiB,wBACjB,UAAW,sCACX,aAAc,QAClB,EACA,aAAgB,CACZ,eAAgB,QAChB,0BAA2B,SAC3B,eAAgB,SAChB,oBAAqB,QACrB,iBAAkB,SAClB,kBAAmB,SACnB,MAAS,SACT,IAAO,QACP,YAAa,SACb,gBAAiB,SACjB,sBAAuB,SACvB,OAAU,QACd,EACA,gBAAmB,CACf,0BAA2B,UAC3B,4BAA6B,UAC7B,cAAe,UACf,oCAAqC,SACrC,+CAAgD,SAChD,8BAA+B,SAC/B,oCAAqC,SACrC,yBAA0B,SAC1B,wBAAyB,UACzB,2BAA4B,UAC5B,4CAA6C,SAC7C,mBAAoB,UACpB,aAAc,SACd,cAAe,WACf,iCAAkC,QAClC,gBAAiB,QACjB,wBAAyB,SACzB,sBAAuB,SACvB,aAAc,SACd,6CAA8C,QAC9C,YAAa,SACb,UAAa,QACb,OAAU,UACV,4BAA6B,SAC7B,6BAA8B,SAC9B,uBAAwB,6BACxB,oBAAqB,SACrB,kBAAmB,UACnB,uBAAwB,SACxB,+BAAgC,SAChC,gDAAiD,UACjD,aAAc,QACd,IAAO,UACP,UAAW,SACX,SAAY,SACZ,OAAU,SACV,WAAc,QACd,mBAAoB,UACpB,oBAAqB,UACrB,iBAAkB,SAClB,MAAS,SACT,KAAQ,SACR,WAAc,SACd,OAAU,QACd,EACA,QAAW,CACP,KAAQ,eACZ,EACA,cAAiB,CACb,OAAU,SACV,WAAc,EAClB,EACA,SAAY,CACR,gBAAiB,CACb,OAAU,CACN,IAAO,GACP,MAAS,EACb,EACA,uCAA0C,GAC1C,iCAAoC,GACpC,yCAA4C,GAC5C,uCAA0C,GAC1C,sBAAyB,CACrB,UACJ,CACJ,CACJ,CACJ,EChJA,IAAMC,EAAWC,GAAiB,GAAGF,EAAS,QAAQ,cAAcE,CAAI,GAmB3DC,EAaT,CACA,iBAAmBC,IACR,CACH,QAAS,yBAAyBH,EAAQ,oBAAoB,CAAC;AAAA,sDACrBG,EAAS,KAAK,GAAG,CAAC,MAC5D,QAAS,4BACb,GAEJ,mBAAoB,CAAC,CAAE,WAAAC,CAAW,KACvB,CACH,QAAS,2BAA2BJ,EAAQ,sBAAsB,CAAC;AAAA,wDACvBI,CAAU,MACtD,QAAS,8BACb,GAEJ,iBAAkB,CAAC,CAAE,SAAAzC,CAAS,KACnB,CACH,QAAS,mBAAmBqC,EACxB,uCACJ,CAAC,oLAAoLrC,CAAQ;AAAA;AAAA,kHAG7L,QAAS,oBACb,GAEJ,gBAAiB,CAAC,CAAE,QAAAkB,CAAQ,KACjB,CACH,QAAS,wBAAwBmB,EAAQ,mBAAmB,CAAC;AAAA,qDACpBnB,CAAO,MAChD,QAAS,2BACb,GAEJ,aAAc,CAAC,CAAE,QAAAd,CAAQ,KACd,CACH,QAAS,0FAA0FiC,EAC/F,mBACJ,CAAC;AAAA;AAAA,2BAEcjC,CAAO,KACtB,QAAS,qCACb,GAEJ,sBAAuB,CAAC,CAAE,cAAA2B,CAAc,KAC7B,CACH,QAAS,8BAA8BM,EAAQ,yBAAyB,CAAC;AAAA,2DAC1BN,CAAa,MAC5D,QAAS,iCACb,GAEJ,mBAAoB,CAAC,CAAE,WAAAZ,CAAW,KACvB,CACH,QAAS,2BAA2BkB,EAAQ,sBAAsB,CAAC;AAAA,wDACvBlB,CAAU,MACtD,QAAS,8BACb,GAEJ,YAAa,CAAC,CAAE,SAAAnB,CAAS,KACd,CACH,QAAS,kBAAkBqC,EACvB,uCACJ,CAAC;AAAA,mQACsPrC,CAAQ,MAC/P,QAAS,yBACb,GAEJ,OAAQ,KACG,CACH,QAAS,sQAET,QAAS,8BACb,GAEJ,WAAY,KACD,CACH,QAAS,uOAET,QAAS,4CACb,GAEJ,QAAS,KACE,CACH,QAAS,2FACT,QAAS,iBACb,GAEJ,UAAW,KACA,CACH,QAAS,6FACT,QAAS,wBACb,EAER,EFxHA,IAAO0C,EAAQ,CAAgCC,EAAShC,EAAwB,CAAC,IAA4B,CAEzG,GAAM,CAAE,QAAAiC,EAAS,QAAAC,CAAQ,EAA4CN,EAAOI,CAAI,EAAsBhC,CAAO,EAE7G,OAAO,IAAIwB,GAAqBU,EAASF,EAAMC,CAAO,CAC1D,EDGA,IAAOE,EAAQ,MAAO,CAAE,QAAA5B,CAAQ,EAAY,CAAE,IAAA/B,CAAI,IAA2D,CACzG,GAAI,CACA,GAAM,CAAE,YAAA4D,CAAY,EAAI,MAAMb,GAAgBhB,EAAUjC,GAAQE,EAAK+B,CAAO,EAAI/B,CAAG,EAEnF,GAAI,CAAC4D,EAAY,KACb,MAAM,IAAIrB,EAAe,CAACgB,EAAS,YAAY,CAAC,CAAC,EAGrD,OAAOK,CAEX,OAASd,EAAY,CACjB,MAAIA,EAAM,OAAS,SACT,IAAIP,EAAe,CAACgB,EAAS,QAAQ,CAAC,CAAC,EAG3CT,CACV,CACJ,EI9BA,OAAOP,OAAoB,kBCC3B,OAAOA,OAAoB,kBAC3B,OAAS,SAAA/C,OAAa,QACtB,OAAOuB,MAAkB,gBCHzB,OAAS,MAAAX,OAAU,eACnB,OAAS,aAAAyD,MAAiB,eAC1B,OAAS,WAAA/D,OAAe,iBACxB,OAAOyC,OAAoB,kBAC3B,OAAS,aAAAuB,MAAiB,MAE1B,OAAOC,OAAkB,sBCNzB,OAAS,OAAAC,MAAW,MAcpB,IAAMC,GAAYxD,GAAwB,CACtC,IAAMyD,EAAS,IAAIF,EAAIvD,CAAG,EACpB0D,EAAO,GAAGD,EAAO,QAAQ,KAAKA,EAAO,IAAI,GAAGA,EAAO,QAAQ,GAC3DE,EAAO,IAAIJ,EAAI,IAAKG,CAAI,EAE9B,MAAO,KAAKC,EAAK,IAAI,GAAGA,EAAK,QAAQ,EACzC,EAEOC,EAAQJ,GDTf,IAAOK,EAAQ,MACX9D,EACAK,EACA,CAAE,IAAAb,EAAK,IAAK,CAAE,sBAAAuE,EAAuB,UAAAC,EAAW,aAAAC,EAAc,UAAAC,EAAW,aAAAC,CAAa,EAAG,OAAAlD,CAAO,IAChF,CAChBA,EAAO,IAAI,wCAAyCZ,CAAQ,EAE5D,GAAM,CAAE,OAAA+D,EAAQ,MAAAC,CAAM,EAAIzE,GAAG,MAAO,CAChC,OAAQmE,GAAyBzE,GAAQE,EAAK,QAAQ,EACtD,IAAAA,EACA,SAAU,CAAE,SAAUK,CAAqB,CAC/C,CAAC,EAMD,GAJI,MAAM,QAAQwE,CAAK,GACnBpD,EAAO,IAAI,6BAA8BoD,EAAM,KAAK,IAAI,CAAC,EAGzDd,GAAalD,EAAU,CAAE,MAAO+D,CAAO,CAAgB,EAAG,CAC1D,MAAMf,EAAUrD,EAAOsD,EAAUc,CAAM,CAAC,EAExC,MACJ,CAEA,GAAID,GAAgBF,GAAgBD,EAChC,MAAMX,EAAUrD,EAAO,GAAG,OAAO,KAAKoE,CAAM,EAAE,OAAS,EAAI,GAAGd,EAAUc,CAAM,CAAC;AAAA,EAAO,EAAE;AAAA,sBAAiD,EAEzInD,EAAO,IAAI,sDAAsDjB,CAAK,EAAE,UACjEkE,EACP,MAAMb,EAAUrD,EAAO,GAAG,OAAO,KAAKoE,CAAM,EAAE,OAAS,EAAI,GAAGd,EAAUc,CAAM,CAAC;AAAA,EAAO,EAAE,GAAGP,EAASxD,CAAQ,CAAC,6BAA6B,EAE1IY,EAAO,IAAI,sBAAsBjB,CAAK,EAAE,MAExC,OAAM,IAAI+B,GAAe,CAACgB,EAAS,cAAe,CAAE,SAAA1C,CAAS,CAAC,CAAC,CAAC,CAExE,EDrCA,IAAOiE,GAAQ,MAAOtE,EAAea,EAAuBG,IAA0C,CAClG,GAAM,CACF,IAAAxB,EACA,IAAK,CAAE,qBAAAK,EAAuB,8BAA+B,GAAGJ,CAAY,EAC5E,OAAAwB,EACA,OAAAC,EACA,OAAAC,CACJ,EAAIH,EACEX,EAAWF,EAAYU,EAAUG,CAAO,EAI9C,GAFA,MAAM8C,EAAa9D,EAAOK,EAAUW,CAAO,EAEvCT,EAAaF,CAAQ,IAAME,EAAaV,CAAoB,EAC5D,GAAI,CACAoB,EAAO,IAAI,+DAA+DZ,CAAQ,GAAG,EAErF,IAAMkE,EAAevF,GAAM,OAAQ,CAAC,SAAU,eAAgBgB,EAAO,aAAcK,CAAQ,EAAG,CAC1F,IAAAb,EACA,IAAKC,EACL,YAAa,EACjB,CAAC,EAED8E,EAAa,OAAO,KAAKpD,EAAQ,CAAE,IAAK,EAAM,CAAC,EAC/CoD,EAAa,OAAO,KAAKrD,EAAQ,CAAE,IAAK,EAAM,CAAC,EAE/C,MAAMqD,CACV,MAAQ,CACJ,MAAM,IAAIxC,GAAe,CAACgB,EAAS,mBAAoB,CAAE,SAAA1C,CAAS,CAAC,CAAC,CAAC,CACzE,MAEAY,EAAO,IAAI,kEAAkEZ,CAAQ,GAAG,CAEhG,EGpCA,IAAMmE,GAAYC,GAAwB,OAAOA,GAAU,SAGrDC,GAASD,GAAwBA,GAAU,KAG3CE,EAAoBF,GACjBD,GAASC,CAAK,EAIXA,EAAiB,KAAK,IAAM,GAHzB,GASTG,GAAgD,CAClD,SAAU,MAAM,QAEhB,WAAaH,GAAwB,OAAOA,GAAU,UACtD,QAASE,EACT,cAAeA,EACf,WAAYA,CAChB,EAEOE,GAAST,GAEZ,OAAO,QAAQA,CAAM,EAAE,OAA+B,CAACxB,EAAQ,CAACkC,EAAQL,CAAK,IACrEC,GAAMD,CAAK,GAIX,EAAEK,KAAUF,KAKZA,GAAWE,CAAM,IAAIL,CAAK,EACnB7B,EAIJ,CAAC,GAAGA,EAAQG,EAAS,WAAW+B,EAAO,YAAY,CAAC,GAAW,CAAE,CAACA,CAAM,EAAGL,CAAM,CAAC,CAAC,EAC3F,CAAC,CAAC,EClDT,OAAS,4BAAAM,OAAgC,oBACzC,OAAOhD,OAAoB,kBAC3B,OAAS,OAAAiD,OAAW,SAKpB,IAAMC,GAAmB,QAEzB,eAAOC,EAAkC,CAAE,OAAAjE,CAAO,EAAiC,CAC/EA,EAAO,IAAI,6BAA6BgE,EAAgB,EAAE,EAE1D,IAAMxE,EAAUsE,GAAyB,MAAM,EAE/C,GAAIC,GAAIC,GAAkBxE,CAAO,EAC7B,MAAM,IAAIsB,GAAe,CAACgB,EAAS,eAAgB,CAAE,QAAS,OAAOtC,CAAO,CAAE,CAAC,CAAC,CAAC,CAEzF,CLNA,IAAM0E,GAAS,MAAOvE,EAA4BI,IAAoD,CAClG,IAAI4B,EAAkBiC,GAAajE,CAAY,EAE/C,GAAI,CACA,MAAMsE,EAAWlE,CAAO,CAE5B,OAASsB,EAAY,CACjB,IAAM8C,EAAa9C,EAGnBM,EAAS,CAAC,GAAGA,EAAQ,GAAIwC,EAAW,QAAU,CAAC9C,CAAK,CAAE,CAC1D,CAEA,GAAI,CACA,IAAMc,EAAc,MAAMD,EAAWvC,EAAcI,CAAO,EAE1D,GAAIF,EAAcF,EAAcwC,CAAW,EAAG,CAC1C,IAAMpD,EAAQL,EAAaqB,EAAQ,IAAKA,EAAQ,GAAG,EAEnD,MAAMsD,GAAWtE,EAAOoD,EAAapC,CAAO,CAChD,CAEJ,OAASsB,EAAY,CACjB,IAAM8C,EAAa9C,EAGnBM,EAAS,CAAC,GAAGA,EAAQ,GAAIwC,EAAW,QAAU,CAAC9C,CAAK,CAAE,CAC1D,CAEA,GAAIM,EAAO,OAAS,EAChB,MAAM,IAAIb,GAAea,CAAM,CAEvC,EAEOyC,EAAQF,GMpCf,IAAMG,GAAc,wBAEhBC,EACAC,GAESC,GAAmB,MAAO7E,EAA4BI,IAAoD,CAMnH,GAAIA,EAAQ,QAAQ,QAAS,CAGzB,IAAM0E,GAFU,MAAM,QAAQ1E,EAAQ,QAAQ,OAAO,EAAIA,EAAQ,QAAQ,QAAU,CAACA,EAAQ,QAAQ,OAAO,GAE7E,KAAMoD,GAAWA,EAAO,MAAQA,EAAO,OAASkB,EAAW,GAAK,CAAC,EAG/F1E,EAAa,WAAaA,EAAa,YAAc8E,EAAc,WAEnE9E,EAAa,WAAaA,EAAa,YAAc8E,EAAc,WAEnE9E,EAAa,QAAUA,EAAa,SAAW8E,EAAc,QAE7D9E,EAAa,eAAiBA,EAAa,gBAAkB8E,EAAc,eAE3E9E,EAAa,SAAWA,EAAa,UAAY8E,EAAc,QACnE,CAEA,MAAML,EAAOzE,EAAcI,CAAO,EAElCuE,EAAW,EACf,EAEaI,GAAU,MAAO/E,EAA4BI,IAA2C,CAC5FuE,GACD,MAAMF,EAAOzE,EAAcI,CAAO,EAGtC,MAAMM,EAAWV,EAAcI,CAAO,EAEtCwE,GAAW,EACf,EAEaI,GAAU,MAAOhF,EAA4BI,IAA0D,CAChH,IAAMoC,EAAc,MAAMD,EAAWvC,EAAcI,CAAO,EAE1D,OAAKuE,GACD,MAAMF,EAAOzE,EAAcI,CAAO,EAGjCwE,IACD,MAAMlE,EAAWV,EAAcI,CAAO,EAGnC,MAAMgB,EAAWpB,EAAcwC,EAAapC,CAAO,CAC9D,EAEa6E,GAAa,MAAOjF,EAA4BI,IAA6D,CACjHuE,GACD,MAAMF,EAAOzE,EAAcI,CAAO,EAGtC,IAAMoC,EAAc,MAAMD,EAAWvC,EAAcI,CAAO,EAE1D,OAAO,MAAMD,EAAcH,EAAcwC,EAAapC,CAAO,CACjE","sourcesContent":["import type { PackageJson } from \"@visulima/package\";\nimport { execa } from \"execa\";\n\nimport type { AddChannelContext } from \"./definitions/context\";\nimport type { PluginConfig } from \"./definitions/plugin-config\";\nimport getChannel from \"./utils/get-channel\";\nimport getNpmrcPath from \"./utils/get-npmrc-path\";\nimport getRegistry from \"./utils/get-registry\";\nimport type { ReleaseInfo } from \"./utils/get-release-info\";\nimport { getReleaseInfo } from \"./utils/get-release-info\";\nimport { reasonToNotPublish, shouldPublish } from \"./utils/should-publish\";\n\nexport default async (pluginConfig: PluginConfig, package_: PackageJson, context: AddChannelContext): Promise<ReleaseInfo | false> => {\n const {\n cwd,\n env,\n logger,\n nextRelease: { channel, version },\n stderr,\n stdout,\n } = context;\n\n if (shouldPublish(pluginConfig, package_)) {\n const registry = getRegistry(package_, context);\n const distributionTag = getChannel(channel);\n\n logger.log(`Adding version ${version} to npm registry on dist-tag ${distributionTag}`);\n\n const npmrc = getNpmrcPath(cwd, env);\n\n const result = execa(\"pnpm\", [\"dist-tag\", \"add\", `${package_.name}@${version}`, distributionTag, \"--userconfig\", npmrc, \"--registry\", registry], {\n cwd,\n env,\n preferLocal: true,\n });\n\n result.stdout.pipe(stdout, { end: false });\n result.stderr.pipe(stderr, { end: false });\n\n await result;\n\n logger.log(`Added ${package_.name}@${version} to dist-tag @${distributionTag} on ${registry}`);\n\n return getReleaseInfo(package_, context, distributionTag, registry);\n }\n\n logger.log(`Skip adding to npm channel as ${reasonToNotPublish(pluginConfig, package_)}`);\n\n return false;\n};\n","import { validRange } from \"semver\";\n\nexport default (channel: string | null | undefined): string => (channel ? (validRange(channel) ? `release-${channel}` : channel) : \"latest\");\n","import { ensureFileSync, isAccessibleSync } from \"@visulima/fs\";\nimport { resolve } from \"@visulima/path\";\n\nconst getNpmrcPath = (cwd: string, environment: NodeJS.ProcessEnv): string => {\n const npmrcPath = resolve(cwd, \".npmrc\");\n\n if (environment.NPM_CONFIG_USERCONFIG && isAccessibleSync(environment.NPM_CONFIG_USERCONFIG)) {\n return environment.NPM_CONFIG_USERCONFIG;\n }\n\n if (isAccessibleSync(npmrcPath)) {\n return npmrcPath;\n }\n\n ensureFileSync(npmrcPath);\n\n return npmrcPath;\n};\n\nexport default getNpmrcPath;\n","import { rc } from \"@anolilab/rc\";\nimport type { PackageJson } from \"@visulima/package\";\nimport { resolve } from \"@visulima/path\";\nimport type { AuthOptions } from \"registry-auth-token\";\n\nimport { DEFAULT_NPM_REGISTRY } from \"../definitions/constants\";\nimport type { CommonContext } from \"../definitions/context\";\n\nconst getRegistryUrl = (scope: string, npmrc: AuthOptions[\"npmrc\"]): string => {\n let url: string = DEFAULT_NPM_REGISTRY;\n\n if (npmrc) {\n const registryUrl = npmrc[`${scope}:registry`] ?? npmrc.registry;\n\n if (registryUrl) {\n url = registryUrl;\n }\n }\n\n return url.endsWith(\"/\") ? url : `${url}/`;\n};\n\nexport default ({ name, publishConfig: { registry } = {} }: PackageJson, { cwd, env }: CommonContext): string =>\n registry ??\n env.NPM_CONFIG_REGISTRY ??\n getRegistryUrl(\n (name as string).split(\"/\")[0] as string,\n rc(\"npm\", {\n config: env.NPM_CONFIG_USERCONFIG ?? resolve(cwd, \".npmrc\"),\n cwd,\n defaults: { registry: \"https://registry.npmjs.org/\" },\n }).config as AuthOptions[\"npmrc\"],\n );\n","// eslint-disable-next-line import/prefer-default-export\nexport const DEFAULT_NPM_REGISTRY = \"https://registry.npmjs.org/\";\n","import type { PackageJson } from \"@visulima/package\";\nimport normalizeUrl from \"normalize-url\";\n\nimport type { PublishContext } from \"../definitions/context\";\n\nexport interface ReleaseInfo {\n channel: string;\n name: string;\n url?: string;\n}\n\nexport const getReleaseInfo = (\n { name }: PackageJson,\n { env: { DEFAULT_NPM_REGISTRY = \"https://registry.npmjs.org/\" }, nextRelease: { version } }: PublishContext,\n distributionTag: string,\n registry: string,\n): ReleaseInfo => {\n return {\n channel: distributionTag,\n name: `pnpm package (@${distributionTag} dist-tag)`,\n url: normalizeUrl(registry) === normalizeUrl(DEFAULT_NPM_REGISTRY) ? `https://www.npmjs.com/package/${name}/v/${version}` : undefined,\n };\n};\n","import type { PackageJson } from \"@visulima/package\";\n\nimport type { PluginConfig } from \"../definitions/plugin-config\";\n\n/**\n * Returns null if `npmPublish` is not `false` and `pkg.private` is not\n * `true` or `pkg.workspaces` is not `undefined`.\n * Returns reason otherwise.\n */\nexport const reasonToNotPublish = (pluginConfig: PluginConfig, package_: PackageJson): string | null =>\n (pluginConfig.npmPublish === false\n ? \"npmPublish plugin option is false\"\n : package_.private === true && package_.workspaces === undefined\n ? \"package is private and has no workspaces\"\n : null);\n\nexport const shouldPublish = (pluginConfig: PluginConfig, package_: PackageJson): boolean => reasonToNotPublish(pluginConfig, package_) === null;\n","import { resolve } from \"@visulima/path\";\nimport { execa } from \"execa\";\nimport { moveFile } from \"move-file\";\n\nimport type { PrepareContext } from \"./definitions/context\";\nimport type { PluginConfig } from \"./definitions/plugin-config\";\n\nexport default async ({ pkgRoot, tarballDir }: PluginConfig, { cwd, env, logger, nextRelease: { version }, stderr, stdout }: PrepareContext): Promise<void> => {\n const basePath = pkgRoot ? resolve(cwd, pkgRoot) : cwd;\n\n logger.log(\"Write version %s to package.json in %s\", version, basePath);\n\n const versionResult = execa(\"pnpm\", [\"version\", version, \"--no-git-tag-version\", \"--allow-same-version\"], {\n cwd: basePath,\n env,\n preferLocal: true,\n });\n\n versionResult.stdout.pipe(stdout, { end: false });\n versionResult.stderr.pipe(stderr, { end: false });\n\n await versionResult;\n\n if (tarballDir) {\n logger.log(\"Creating npm package version %s\", version);\n\n const packResult = execa(\"pnpm\", [\"pack\", basePath], { cwd, env, preferLocal: true });\n\n packResult.stdout.pipe(stdout, { end: false });\n packResult.stderr.pipe(stderr, { end: false });\n\n // eslint-disable-next-line unicorn/no-await-expression-member\n const tarball = (await packResult).stdout.split(\"\\n\").pop() as string;\n const tarballSource = resolve(cwd, tarball);\n const tarballDestination = resolve(cwd, tarballDir.trim(), tarball);\n\n // Only move the tarball if we need to\n // Fixes: https://github.com/semantic-release/npm/issues/169\n if (tarballSource !== tarballDestination) {\n await moveFile(tarballSource, tarballDestination);\n }\n }\n};\n","import type { PackageJson } from \"@visulima/package\";\nimport { resolve } from \"@visulima/path\";\nimport AggregateError from \"aggregate-error\";\nimport { execa } from \"execa\";\n\nimport type { PublishContext } from \"./definitions/context\";\nimport type { PluginConfig } from \"./definitions/plugin-config\";\nimport getChannel from \"./utils/get-channel\";\nimport getRegistry from \"./utils/get-registry\";\nimport type { ReleaseInfo } from \"./utils/get-release-info\";\nimport { getReleaseInfo } from \"./utils/get-release-info\";\nimport { reasonToNotPublish, shouldPublish } from \"./utils/should-publish\";\n\nexport default async (pluginConfig: PluginConfig, package_: PackageJson, context: PublishContext): Promise<ReleaseInfo | false> => {\n const {\n cwd,\n env,\n logger,\n nextRelease: { channel, version },\n stderr,\n stdout,\n } = context;\n const { pkgRoot, publishBranch: publishBranchConfig } = pluginConfig;\n\n if (shouldPublish(pluginConfig, package_)) {\n const basePath = pkgRoot ? resolve(cwd, pkgRoot) : cwd;\n const registry = getRegistry(package_, context);\n const distributionTag = getChannel(channel);\n\n const { stdout: currentBranch } = await execa(\"git\", [\"rev-parse\", \"--abbrev-ref\", \"HEAD\"], {\n cwd,\n env,\n preferLocal: true,\n });\n const publishBranches = typeof publishBranchConfig === \"string\" && publishBranchConfig.split(\"|\");\n const isPublishBranch = publishBranches && publishBranches.includes(currentBranch);\n const publishBranch = isPublishBranch ? currentBranch : \"main\";\n\n logger.log(`Publishing version ${version} on branch ${publishBranch} to npm registry on dist-tag ${distributionTag}`);\n\n const pnpmArguments = [\"publish\", basePath, \"--publish-branch\", publishBranch, \"--tag\", distributionTag, \"--registry\", registry, \"--no-git-checks\"];\n\n if (pluginConfig.disableScripts) {\n pnpmArguments.push(\"--ignore-scripts\");\n }\n\n const result = execa(\"pnpm\", pnpmArguments, {\n cwd,\n env,\n preferLocal: true,\n });\n\n result.stdout.pipe(stdout, { end: false });\n result.stderr.pipe(stderr, { end: false });\n\n try {\n await result;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n logger.log(`Failed to publish ${package_.name}@${version} to dist-tag @${distributionTag} on ${registry}: ${error.message ?? error}`);\n\n throw new AggregateError([error]);\n }\n\n logger.log(`Published ${package_.name}@${version} to dist-tag @${distributionTag} on ${registry}`);\n\n return getReleaseInfo(package_, context, distributionTag, registry);\n }\n\n logger.log(`Skip publishing to npm registry as ${reasonToNotPublish(pluginConfig, package_)}`);\n\n return false;\n};\n","// eslint-disable-next-line unicorn/prevent-abbreviations\nimport type { PackageJson } from \"@visulima/package\";\nimport { findPackageJson } from \"@visulima/package\";\nimport { resolve } from \"@visulima/path\";\nimport AggregateError from \"aggregate-error\";\n\nimport type { CommonContext } from \"../definitions/context\";\nimport getError from \"./get-error\";\n\ninterface Options {\n pkgRoot?: string;\n}\n\nexport default async ({ pkgRoot }: Options, { cwd }: { cwd: CommonContext[\"cwd\"] }): Promise<PackageJson> => {\n try {\n const { packageJson } = await findPackageJson(pkgRoot ? resolve(cwd, pkgRoot) : cwd);\n\n if (!packageJson.name) {\n throw new AggregateError([getError(\"ENOPKGNAME\")]);\n }\n\n return packageJson;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n if (error.code === \"ENOENT\") {\n throw new AggregateError([getError(\"ENOPKG\")]);\n }\n\n throw error;\n }\n};\n","import SemanticReleaseError from \"@semantic-release/error\";\n\nimport type { ErrorContext, ErrorDefinition } from \"../definitions/errors\";\nimport { errors } from \"../definitions/errors\";\n\nexport default <T extends keyof typeof errors>(code: T, context: ErrorContext = {}): SemanticReleaseError => {\n // eslint-disable-next-line security/detect-object-injection\n const { details, message }: { details?: string; message: string } = (errors[code] as ErrorDefinition)(context);\n\n return new SemanticReleaseError(message, code, details);\n};\n","{\n \"name\": \"@anolilab/semantic-release-pnpm\",\n \"version\": \"1.0.1\",\n \"description\": \"Semantic-release plugin to publish a npm package with pnpm.\",\n \"keywords\": [\n \"anolilab\",\n \"npm\",\n \"pnpm\",\n \"publish\",\n \"monorepo\",\n \"semantic-release\",\n \"semantic-release-plugin\",\n \"semantic-release-pnpm\"\n ],\n \"homepage\": \"https://github.com/anolilab/semantic-release/tree/main/packages/semantic-release-pnpm\",\n \"bugs\": {\n \"url\": \"https://github.com/anolilab/semantic-release/issues\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/anolilab/semantic-release.git\",\n \"directory\": \"packages/semantic-release-pnpm\"\n },\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/prisis\"\n },\n {\n \"type\": \"consulting\",\n \"url\": \"https://anolilab.com/support\"\n }\n ],\n \"license\": \"MIT\",\n \"author\": {\n \"name\": \"Daniel Bannert\",\n \"email\": \"d.bannert@anolilab.de\"\n },\n \"sideEffects\": false,\n \"type\": \"module\",\n \"exports\": \"./dist/index.js\",\n \"main\": \"dist/index.js\",\n \"types\": \"dist/index.d.ts\",\n \"files\": [\n \"dist\",\n \"README.md\",\n \"CHANGELOG.md\"\n ],\n \"scripts\": {\n \"build\": \"cross-env NODE_ENV=development tsup\",\n \"build:prod\": \"cross-env NODE_ENV=production tsup\",\n \"clean\": \"rimraf node_modules dist .eslintcache\",\n \"dev\": \"pnpm run build --watch\",\n \"lint:eslint\": \"eslint . --ext js,cjs,mjs,jsx,ts,tsx,json,yaml,yml,md,mdx --max-warnings=0 --config .eslintrc.cjs\",\n \"lint:eslint:fix\": \"eslint . --ext js,cjs,mjs,jsx,ts,tsx,json,yaml,yml,md,mdx --max-warnings=0 --config .eslintrc.cjs --fix\",\n \"lint:package-json\": \"publint --strict\",\n \"lint:prettier\": \"prettier --config=.prettierrc.cjs --check .\",\n \"lint:prettier:fix\": \"prettier --config=.prettierrc.cjs --write .\",\n \"lint:types\": \"tsc --noEmit\",\n \"test\": \"vitest run\",\n \"test:coverage\": \"vitest run --coverage\",\n \"test:ui\": \"vitest --ui --coverage.enabled=true\",\n \"test:watch\": \"vitest\"\n },\n \"dependencies\": {\n \"@anolilab/rc\": \"1.0.0\",\n \"@semantic-release/error\": \"^4.0.0\",\n \"@visulima/fs\": \"^2.1.1\",\n \"@visulima/package\": \"1.8.1\",\n \"@visulima/path\": \"^1.0.0\",\n \"aggregate-error\": \"^5.0.0\",\n \"execa\": \"^9.1.0\",\n \"ini\": \"4.1.2\",\n \"move-file\": \"^3.1.0\",\n \"normalize-url\": \"^8.0.1\",\n \"registry-auth-token\": \"^5.0.2\",\n \"semver\": \"^7.6.2\"\n },\n \"devDependencies\": {\n \"@anolilab/eslint-config\": \"^15.0.3\",\n \"@anolilab/prettier-config\": \"^5.0.14\",\n \"@babel/core\": \"^7.24.5\",\n \"@rushstack/eslint-plugin-security\": \"^0.8.1\",\n \"@secretlint/secretlint-rule-preset-recommend\": \"^8.2.4\",\n \"@semantic-release/changelog\": \"^6.0.3\",\n \"@semantic-release/commit-analyzer\": \"11.1.0\",\n \"@semantic-release/exec\": \"^6.0.3\",\n \"@semantic-release/git\": \"^10.0.1\",\n \"@semantic-release/github\": \"^10.0.5\",\n \"@semantic-release/release-notes-generator\": \"12.1.0\",\n \"@types/dockerode\": \"^3.3.29\",\n \"@types/ini\": \"^4.1.0\",\n \"@types/node\": \"18.18.14\",\n \"@types/semantic-release__error\": \"3.0.3\",\n \"@types/semver\": \"7.5.8\",\n \"@types/stream-buffers\": \"^3.0.7\",\n \"@vitest/coverage-v8\": \"^1.6.0\",\n \"@vitest/ui\": \"^1.6.0\",\n \"conventional-changelog-conventionalcommits\": \"7.0.2\",\n \"cross-env\": \"^7.0.3\",\n \"dockerode\": \"4.0.2\",\n \"eslint\": \"^8.57.0\",\n \"eslint-plugin-deprecation\": \"^2.0.0\",\n \"eslint-plugin-editorconfig\": \"^4.0.3\",\n \"eslint-plugin-import\": \"npm:eslint-plugin-i@2.29.1\",\n \"eslint-plugin-mdx\": \"^3.1.5\",\n \"eslint-plugin-n\": \"^17.7.0\",\n \"eslint-plugin-vitest\": \"^0.4.1\",\n \"eslint-plugin-vitest-globals\": \"^1.5.0\",\n \"eslint-plugin-you-dont-need-lodash-underscore\": \"^6.14.0\",\n \"get-stream\": \"9.0.1\",\n \"got\": \"^14.3.0\",\n \"p-retry\": \"^6.2.0\",\n \"prettier\": \"^3.2.5\",\n \"rimraf\": \"^5.0.7\",\n \"secretlint\": \"8.1.2\",\n \"semantic-release\": \"^23.0.5\",\n \"sort-package-json\": \"^2.10.0\",\n \"stream-buffers\": \"^3.0.2\",\n \"tempy\": \"^3.1.0\",\n \"tsup\": \"^8.0.2\",\n \"typescript\": \"^5.4.5\",\n \"vitest\": \"^1.6.0\"\n },\n \"engines\": {\n \"node\": \">=18.* <=21.*\"\n },\n \"publishConfig\": {\n \"access\": \"public\",\n \"provenance\": true\n },\n \"anolilab\": {\n \"eslint-config\": {\n \"plugin\": {\n \"etc\": false,\n \"tsdoc\": false\n },\n \"warn_on_unsupported_typescript_version\": false,\n \"info_on_disabling_jsx_react_rule\": false,\n \"info_on_disabling_prettier_conflict_rule\": false,\n \"info_on_disabling_jsonc_sort_keys_rule\": false,\n \"import_ignore_exports\": [\n \"**/*.cjs\"\n ]\n }\n }\n}\n","import package_ from \"../../package.json\";\n\nconst linkify = (file: string) => `${package_.homepage}/blob/main/${file}`;\n\ninterface ErrorDetails {\n details: string;\n message: string;\n}\n\nexport type ErrorDefinition = (context: ErrorContext) => ErrorDetails;\n\nexport interface ErrorContext {\n npmPublish?: boolean;\n npmrc?: string;\n pkgRoot?: string;\n publishBranch?: string;\n registry?: string;\n tarballDir?: string;\n version?: string;\n}\n\nexport const errors: {\n EINVALIDBRANCHES: (branches: string[]) => { details: string; message: string };\n EINVALIDNPMPUBLISH: ({ npmPublish }: ErrorContext) => { details: string; message: string };\n EINVALIDNPMTOKEN: ({ registry }: ErrorContext) => { details: string; message: string };\n EINVALIDPKGROOT: ({ pkgRoot }: ErrorContext) => { details: string; message: string };\n EINVALIDPNPM: ({ version }: ErrorContext) => { details: string; message: string };\n EINVALIDPUBLISHBRANCH: ({ publishBranch }: ErrorContext) => { details: string; message: string };\n EINVALIDTARBALLDIR: ({ tarballDir }: ErrorContext) => { details: string; message: string };\n ENONPMTOKEN: ({ registry }: ErrorContext) => { details: string; message: string };\n ENOPKG: () => { details: string; message: string };\n ENOPKGNAME: () => { details: string; message: string };\n ENOPNPM: () => { details: string; message: string };\n ENOPNPMRC: () => { details: string; message: string };\n} = {\n EINVALIDBRANCHES: (branches: string[]) => {\n return {\n details: `The [branches option](${linkify(\"README.md#branches\")}) option, if defined, must be an array of \\`String\\`.\nYour configuration for the \\`branches\\` option is \\`${branches.join(\",\")}\\`.`,\n message: \"Invalid `branches` option.\",\n };\n },\n EINVALIDNPMPUBLISH: ({ npmPublish }: ErrorContext) => {\n return {\n details: `The [npmPublish option](${linkify(\"README.md#npmpublish\")}) option, if defined, must be a \\`Boolean\\`.\nYour configuration for the \\`npmPublish\\` option is \\`${npmPublish}\\`.`,\n message: \"Invalid `npmPublish` option.\",\n };\n },\n EINVALIDNPMTOKEN: ({ registry }: ErrorContext) => {\n return {\n details: `The [npm token](${linkify(\n \"README.md#npm-registry-authentication\",\n )}) configured in the \\`NPM_TOKEN\\` environment variable must be a valid [token](https://docs.npmjs.com/getting-started/working_with_tokens) allowing to publish to the registry \\`${registry}\\`.\nIf you are using Two Factor Authentication for your account, set its level to [\"Authorization only\"](https://docs.npmjs.com/getting-started/using-two-factor-authentication#levels-of-authentication) in your account settings. **semantic-release** cannot publish with the default \"Authorization and writes\" level.\nPlease make sure to set the \\`NPM_TOKEN\\` environment variable in your CI with the exact value of the npm token.`,\n message: \"Invalid npm token.\",\n };\n },\n EINVALIDPKGROOT: ({ pkgRoot }: ErrorContext) => {\n return {\n details: `The [pkgRoot option](${linkify(\"README.md#pkgroot\")}) option, if defined, must be a \\`String\\`.\nYour configuration for the \\`pkgRoot\\` option is \\`${pkgRoot}\\`.`,\n message: \"Invalid `pkgRoot` option.\",\n };\n },\n EINVALIDPNPM: ({ version }: ErrorContext) => {\n return {\n details: `The version of Pnpm that you are using is not compatible. Please refer to [the README](${linkify(\n \"README.md#install\",\n )}) to review which versions of Pnpm are currently supported\n\nYour version of Pnpm is \"${version}\".`,\n message: \"Incompatible Pnpm version detected.\",\n };\n },\n EINVALIDPUBLISHBRANCH: ({ publishBranch }: ErrorContext) => {\n return {\n details: `The [publishBranch option](${linkify(\"README.md#publishBranch\")}) option, if defined, must be a \\`String\\`.\nYour configuration for the \\`publishBranch\\` option is \\`${publishBranch}\\`.`,\n message: \"Invalid `publishBranch` option.\",\n };\n },\n EINVALIDTARBALLDIR: ({ tarballDir }: ErrorContext) => {\n return {\n details: `The [tarballDir option](${linkify(\"README.md#tarballdir\")}) option, if defined, must be a \\`String\\`.\nYour configuration for the \\`tarballDir\\` option is \\`${tarballDir}\\`.`,\n message: \"Invalid `tarballDir` option.\",\n };\n },\n ENONPMTOKEN: ({ registry }: ErrorContext) => {\n return {\n details: `An [npm token](${linkify(\n \"README.md#npm-registry-authentication\",\n )}) must be created and set in the \\`NPM_TOKEN\\` environment variable on your CI environment.\nPlease make sure to create an [npm token](https://docs.npmjs.com/getting-started/working_with_tokens#how-to-create-new-tokens) and to set it in the \\`NPM_TOKEN\\` environment variable on your CI environment. The token must allow to publish to the registry \\`${registry}\\`.`,\n message: \"No npm token specified.\",\n };\n },\n ENOPKG: () => {\n return {\n details: `A [package.json file](https://docs.npmjs.com/files/package.json) at the root of your project is required to release on npm.\nPlease follow the [npm guideline](https://docs.npmjs.com/getting-started/creating-node-modules) to create a valid \\`package.json\\` file.`,\n message: \"Missing `package.json` file.\",\n };\n },\n ENOPKGNAME: () => {\n return {\n details: `The \\`package.json\\`'s [name](https://docs.npmjs.com/files/package.json#name) property is required in order to publish a package to the npm registry.\nPlease make sure to add a valid \\`name\\` for your package in your \\`package.json\\`.`,\n message: \"Missing `name` property in `package.json`.\",\n };\n },\n ENOPNPM: () => {\n return {\n details: `The Pnpm CLI could not be found in your PATH. Make sure Pnpm is installed and try again.`,\n message: \"Pnpm not found.\",\n };\n },\n ENOPNPMRC: () => {\n return {\n details: `Didnt find a \\`.npmrc\\` file or it was not possible to create , in the root of your project.`,\n message: \"Missing `.npmrc` file.\",\n };\n },\n};\n","import AggregateError from \"aggregate-error\";\n\nimport type { VerifyConditionsContext } from \"../definitions/context\";\nimport type { PluginConfig } from \"../definitions/plugin-config\";\nimport getNpmrcPath from \"../utils/get-npmrc-path\";\nimport getPackage from \"../utils/get-pkg\";\nimport { shouldPublish } from \"../utils/should-publish\";\nimport verifyAuth from \"./verify-auth\";\nimport verifyConfig from \"./verify-config\";\nimport verifyPnpm from \"./verify-pnpm\";\n\nconst verify = async (pluginConfig: PluginConfig, context: VerifyConditionsContext): Promise<void> => {\n let errors: Error[] = verifyConfig(pluginConfig);\n\n try {\n await verifyPnpm(context);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n const typedError = error as AggregateError;\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n errors = [...errors, ...(typedError.errors ?? [error])];\n }\n\n try {\n const packageJson = await getPackage(pluginConfig, context);\n\n if (shouldPublish(pluginConfig, packageJson)) {\n const npmrc = getNpmrcPath(context.cwd, context.env);\n\n await verifyAuth(npmrc, packageJson, context);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n const typedError = error as AggregateError;\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n errors = [...errors, ...(typedError.errors ?? [error])];\n }\n\n if (errors.length > 0) {\n throw new AggregateError(errors);\n }\n};\n\nexport default verify;\n","import type { PackageJson } from \"@visulima/package\";\nimport AggregateError from \"aggregate-error\";\nimport { execa } from \"execa\";\nimport normalizeUrl from \"normalize-url\";\n\nimport type { CommonContext } from \"../definitions/context\";\nimport getError from \"../utils/get-error\";\nimport getRegistry from \"../utils/get-registry\";\nimport setNpmrcAuth from \"../utils/set-npmrc-auth\";\n\nexport default async (npmrc: string, package_: PackageJson, context: CommonContext): Promise<void> => {\n const {\n cwd,\n env: { DEFAULT_NPM_REGISTRY = \"https://registry.npmjs.org/\", ...environment },\n logger,\n stderr,\n stdout,\n } = context;\n const registry = getRegistry(package_, context);\n\n await setNpmrcAuth(npmrc, registry, context);\n\n if (normalizeUrl(registry) === normalizeUrl(DEFAULT_NPM_REGISTRY)) {\n try {\n logger.log(`Running \"pnpm whoami\" to verify authentication on registry \"${registry}\"`);\n\n const whoamiResult = execa(\"pnpm\", [\"whoami\", \"--userconfig\", npmrc, \"--registry\", registry], {\n cwd,\n env: environment,\n preferLocal: true,\n });\n\n whoamiResult.stdout.pipe(stdout, { end: false });\n whoamiResult.stderr.pipe(stderr, { end: false });\n\n await whoamiResult;\n } catch {\n throw new AggregateError([getError(\"EINVALIDNPMTOKEN\", { registry })]);\n }\n } else {\n logger.log(`Skipping authentication verification for non-default registry \"${registry}\"`);\n }\n};\n","import { rc } from \"@anolilab/rc\";\nimport { writeFile } from \"@visulima/fs\";\nimport { resolve } from \"@visulima/path\";\nimport AggregateError from \"aggregate-error\";\nimport { stringify } from \"ini\";\nimport type { AuthOptions } from \"registry-auth-token\";\nimport getAuthToken from \"registry-auth-token\";\n\nimport { DEFAULT_NPM_REGISTRY } from \"../definitions/constants\";\nimport type { CommonContext } from \"../definitions/context\";\nimport getError from \"./get-error\";\nimport nerfDart from \"./nerf-dart\";\n\nexport default async (\n npmrc: string,\n registry: string,\n { cwd, env: { NPM_CONFIG_USERCONFIG, NPM_EMAIL, NPM_PASSWORD, NPM_TOKEN, NPM_USERNAME }, logger }: CommonContext,\n): Promise<void> => {\n logger.log(\"Verify authentication for registry %s\", registry);\n\n const { config, files } = rc(\"npm\", {\n config: NPM_CONFIG_USERCONFIG ?? resolve(cwd, \".npmrc\"),\n cwd,\n defaults: { registry: DEFAULT_NPM_REGISTRY },\n });\n\n if (Array.isArray(files)) {\n logger.log(\"Reading npm config from %s\", files.join(\", \"));\n }\n\n if (getAuthToken(registry, { npmrc: config } as AuthOptions)) {\n await writeFile(npmrc, stringify(config));\n\n return;\n }\n\n if (NPM_USERNAME && NPM_PASSWORD && NPM_EMAIL) {\n await writeFile(npmrc, `${Object.keys(config).length > 0 ? `${stringify(config)}\\n` : \"\"}_auth = \\${LEGACY_TOKEN}\\nemail = \\${NPM_EMAIL}`);\n\n logger.log(`Wrote NPM_USERNAME, NPM_PASSWORD, and NPM_EMAIL to ${npmrc}`);\n } else if (NPM_TOKEN) {\n await writeFile(npmrc, `${Object.keys(config).length > 0 ? `${stringify(config)}\\n` : \"\"}${nerfDart(registry)}:_authToken = \\${NPM_TOKEN}`);\n\n logger.log(`Wrote NPM_TOKEN to ${npmrc}`);\n } else {\n throw new AggregateError([getError(\"ENONPMTOKEN\", { registry })]);\n }\n};\n","import { URL } from \"node:url\";\n\n/**\n * Maps a URL to an identifier.\n *\n * The ISC License\n * Copyright (c) npm, Inc.\n *\n * Name courtesy schiffertronix media LLC, a New Jersey corporation\n *\n * @param {String} url The URL to be nerfed.\n *\n * @returns {String} A nerfed URL.\n */\nconst nerfDart = (url: string): string => {\n const parsed = new URL(url);\n const from = `${parsed.protocol}//${parsed.host}${parsed.pathname}`;\n const real = new URL(\".\", from);\n\n return `//${real.host}${real.pathname}`;\n};\n\nexport default nerfDart;\n","import type SemanticReleaseError from \"@semantic-release/error\";\n\nimport type { PluginConfig } from \"../definitions/plugin-config\";\nimport getError from \"../utils/get-error\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isString = (value: any): boolean => typeof value === \"string\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isNil = (value: any): boolean => value === null || value === undefined;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isNonEmptyString = (value: any): boolean => {\n if (!isString(value)) {\n return false;\n }\n\n return (value as string).trim() !== \"\";\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype ValidatorFunction = (value: any) => boolean;\n\nconst VALIDATORS: Record<string, ValidatorFunction> = {\n branches: Array.isArray,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n npmPublish: (value: any): boolean => typeof value === \"boolean\",\n pkgRoot: isNonEmptyString,\n publishBranch: isNonEmptyString,\n tarballDir: isNonEmptyString,\n};\n\nexport default (config: PluginConfig): SemanticReleaseError[] =>\n // eslint-disable-next-line unicorn/no-array-reduce\n Object.entries(config).reduce<SemanticReleaseError[]>((errors, [option, value]) => {\n if (isNil(value)) {\n return errors;\n }\n\n if (!(option in VALIDATORS)) {\n return errors;\n }\n\n // eslint-disable-next-line security/detect-object-injection\n if (VALIDATORS[option]?.(value)) {\n return errors;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return [...errors, getError(`EINVALID${option.toUpperCase()}` as any, { [option]: value })];\n }, []);\n","import { getPackageManagerVersion } from \"@visulima/package\";\nimport AggregateError from \"aggregate-error\";\nimport { gte } from \"semver\";\n\nimport type { CommonContext } from \"../definitions/context\";\nimport getError from \"../utils/get-error\";\n\nconst MIN_PNPM_VERSION = \"8.0.0\";\n\nexport default async function verifyPnpm({ logger }: CommonContext): Promise<void> {\n logger.log(`Verify pnpm version is >= ${MIN_PNPM_VERSION}`);\n\n const version = getPackageManagerVersion(\"pnpm\");\n\n if (gte(MIN_PNPM_VERSION, version)) {\n throw new AggregateError([getError(\"EINVALIDPNPM\", { version: String(version) })]);\n }\n}\n","import addChannelNpm from \"./add-channel\";\nimport type { AddChannelContext, PrepareContext, PublishContext, VerifyConditionsContext } from \"./definitions/context\";\nimport type { PluginConfig } from \"./definitions/plugin-config\";\nimport prepareNpm from \"./prepare\";\nimport publishNpm from \"./publish\";\nimport getPackage from \"./utils/get-pkg\";\nimport type { ReleaseInfo } from \"./utils/get-release-info\";\nimport verify from \"./verify\";\n\nconst PLUGIN_NAME = \"semantic-release-pnpm\";\n\nlet verified: boolean;\nlet prepared: boolean;\n\nexport const verifyConditions = async (pluginConfig: PluginConfig, context: VerifyConditionsContext): Promise<void> => {\n /**\n * If the plugin is used and has `npmPublish`, `tarballDir` or\n * `pkgRoot` configured, validate them now in order to prevent any release if\n * the configuration is wrong\n */\n if (context.options.publish) {\n const publish = Array.isArray(context.options.publish) ? context.options.publish : [context.options.publish];\n\n const publishPlugin = publish.find((config) => config.path && config.path === PLUGIN_NAME) || {};\n\n // eslint-disable-next-line no-param-reassign\n pluginConfig.npmPublish = pluginConfig.npmPublish ?? publishPlugin.npmPublish;\n // eslint-disable-next-line no-param-reassign\n pluginConfig.tarballDir = pluginConfig.tarballDir ?? publishPlugin.tarballDir;\n // eslint-disable-next-line no-param-reassign\n pluginConfig.pkgRoot = pluginConfig.pkgRoot ?? publishPlugin.pkgRoot;\n // eslint-disable-next-line no-param-reassign\n pluginConfig.disableScripts = pluginConfig.disableScripts ?? publishPlugin.disableScripts;\n // eslint-disable-next-line no-param-reassign\n pluginConfig.branches = pluginConfig.branches ?? publishPlugin.branches;\n }\n\n await verify(pluginConfig, context);\n\n verified = true;\n};\n\nexport const prepare = async (pluginConfig: PluginConfig, context: PrepareContext): Promise<void> => {\n if (!verified) {\n await verify(pluginConfig, context);\n }\n\n await prepareNpm(pluginConfig, context);\n\n prepared = true;\n};\n\nexport const publish = async (pluginConfig: PluginConfig, context: PublishContext): Promise<ReleaseInfo | false> => {\n const packageJson = await getPackage(pluginConfig, context);\n\n if (!verified) {\n await verify(pluginConfig, context);\n }\n\n if (!prepared) {\n await prepareNpm(pluginConfig, context);\n }\n\n return await publishNpm(pluginConfig, packageJson, context);\n};\n\nexport const addChannel = async (pluginConfig: PluginConfig, context: AddChannelContext): Promise<ReleaseInfo | false> => {\n if (!verified) {\n await verify(pluginConfig, context);\n }\n\n const packageJson = await getPackage(pluginConfig, context);\n\n return await addChannelNpm(pluginConfig, packageJson, context);\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anolilab/semantic-release-pnpm",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Semantic-release plugin to publish a npm package with pnpm.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"anolilab",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"CHANGELOG.md"
|
|
48
48
|
],
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@anolilab/rc": "1.
|
|
50
|
+
"@anolilab/rc": "1.1.0",
|
|
51
51
|
"@semantic-release/error": "^4.0.0",
|
|
52
52
|
"@visulima/fs": "^2.1.1",
|
|
53
53
|
"@visulima/package": "1.8.1",
|
|
@@ -63,13 +63,15 @@
|
|
|
63
63
|
"devDependencies": {
|
|
64
64
|
"@anolilab/eslint-config": "^15.0.3",
|
|
65
65
|
"@anolilab/prettier-config": "^5.0.14",
|
|
66
|
-
"@anolilab/semantic-release-preset": "^8.0.3",
|
|
67
66
|
"@babel/core": "^7.24.5",
|
|
68
67
|
"@rushstack/eslint-plugin-security": "^0.8.1",
|
|
69
68
|
"@secretlint/secretlint-rule-preset-recommend": "^8.2.4",
|
|
70
69
|
"@semantic-release/changelog": "^6.0.3",
|
|
70
|
+
"@semantic-release/commit-analyzer": "11.1.0",
|
|
71
|
+
"@semantic-release/exec": "^6.0.3",
|
|
71
72
|
"@semantic-release/git": "^10.0.1",
|
|
72
73
|
"@semantic-release/github": "^10.0.5",
|
|
74
|
+
"@semantic-release/release-notes-generator": "12.1.0",
|
|
73
75
|
"@types/dockerode": "^3.3.29",
|
|
74
76
|
"@types/ini": "^4.1.0",
|
|
75
77
|
"@types/node": "18.18.14",
|
|
@@ -78,6 +80,7 @@
|
|
|
78
80
|
"@types/stream-buffers": "^3.0.7",
|
|
79
81
|
"@vitest/coverage-v8": "^1.6.0",
|
|
80
82
|
"@vitest/ui": "^1.6.0",
|
|
83
|
+
"conventional-changelog-conventionalcommits": "7.0.2",
|
|
81
84
|
"cross-env": "^7.0.3",
|
|
82
85
|
"dockerode": "4.0.2",
|
|
83
86
|
"eslint": "^8.57.0",
|