Socket
Socket
Sign inDemoInstall

@anolilab/semantic-release-pnpm

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@anolilab/semantic-release-pnpm - npm Package Compare versions

Comparing version 1.0.0 to 1.0.1

10

CHANGELOG.md

@@ -0,1 +1,11 @@

## @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)
### Bug Fixes
* fixed dont create the .npmrc file in a cache folder ([423e699](https://github.com/anolilab/semantic-release/commit/423e69952406a2bc7f6d1af4fe68c96bbcce2d88))
* fixed test for set-npmrc-auth.test.ts, added a overwrite for packages ([d09f625](https://github.com/anolilab/semantic-release/commit/d09f625e8c92a9014cb46715ae01f8b1e70911ba))
* fixed wrong test for get-npmrc-path ([8f86d0f](https://github.com/anolilab/semantic-release/commit/8f86d0f1c97f3aead24c62739b877a8d25988fe0))
* **semantic-release-pnpm:** fixed pnpm check ([ee28c4d](https://github.com/anolilab/semantic-release/commit/ee28c4d32d3cde8af056a296093453687baa405f))
## @anolilab/semantic-release-pnpm 1.0.0 (2024-05-22)

@@ -2,0 +12,0 @@

20

dist/index.js
import { execa } from 'execa';
import { validRange, gte } from 'semver';
import { isAccessibleSync, ensureFileSync, writeFile } from '@visulima/fs';
import { findPackageJson, findCacheDirectorySync, getPackageManagerVersion } from '@visulima/package';
import { resolve } from '@visulima/path';
import pe from '@semantic-release/error';
import { rc } from '@anolilab/rc';
import F from 'normalize-url';
import J from 'normalize-url';
import { moveFile } from 'move-file';
import W from 'aggregate-error';
import { findPackageJson, getPackageManagerVersion } from '@visulima/package';
import ye from '@semantic-release/error';
import { stringify } from 'ini';
import Ae from 'registry-auth-token';
import Ce from 'registry-auth-token';
import { URL } from 'url';
var C=e=>e?validRange(e)?`release-${e}`:e:"latest";var G={name:"@anolilab/semantic-release-pnpm",version:"0.0.0",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":"workspace:*","@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","@anolilab/semantic-release-preset":"^8.0.3","@babel/core":"^7.24.3","@rushstack/eslint-plugin-security":"^0.8.1","@secretlint/secretlint-rule-preset-recommend":"^8.1.2","@semantic-release/changelog":"^6.0.3","@semantic-release/git":"^10.0.1","@semantic-release/github":"^10.0.4","@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.4.0","@vitest/ui":"^1.4.0","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.2.1","p-retry":"^6.2.0",prettier:"^3.2.5",rimraf:"^5.0.5",secretlint:"8.1.2","semantic-release":"^23.0.5","sort-package-json":"^2.8.0","stream-buffers":"^3.0.2",tempy:"^3.1.0",tsup:"^8.0.2",typescript:"^5.4.3",vitest:"^1.4.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=>`${G.homepage}/blob/main/${e}`,J={EINVALIDBRANCHES:e=>({details:`The [branches option](${h("README.md#branches")}) option, if defined, must be an array of \`String\`.
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(`
`).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","@anolilab/semantic-release-preset":"^8.0.3","@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/git":"^10.0.1","@semantic-release/github":"^10.0.5","@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","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\`.
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\`.

@@ -25,10 +26,9 @@ 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}\`.

Your configuration for the \`tarballDir\` option is \`${e}\`.`,message:"Invalid `tarballDir` option."}),ENONPMTOKEN:({registry:e})=>({details:`An [npm token](${h("README.md#npm-registry-authentication")}) must be created and set in the \`NPM_TOKEN\` environment variable on your CI environment.
Please 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 \`${e}\`.`,message:"No npm token specified."}),ENOPKG:()=>({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.",message:"Missing `package.json` file."}),ENOPKGNAME:()=>({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`.",message:"Missing `name` property in `package.json`."}),ENOPNPM:()=>({details:"The Pnpm CLI could not be found in your PATH. Make sure Pnpm is installed and try again.",message:"Pnpm not found."}),ENOPNPMRC:()=>({details:"Didnt find a `.npmrc` file or it was not possible to create , in the root of your project.",message:"Missing `.npmrc` file."})};var c=(e,t={})=>{let{details:r,message:o}=J[e](t);return new pe(o,e,r)};var ce=(e,t)=>{let r,o=resolve(e,".npmrc");if(t.NPM_CONFIG_USERCONFIG&&isAccessibleSync(t.NPM_CONFIG_USERCONFIG))r=t.NPM_CONFIG_USERCONFIG;else if(isAccessibleSync(o))r=o;else {let i=findCacheDirectorySync("semantic-release-pnpm",{create:!0,cwd:e});i&&(ensureFileSync(i),r=i);}if(r===void 0)throw new AggregateError([c("ENOPNPMRC",{npmrc:o})]);return r},k=ce;var A="https://registry.npmjs.org/";var de=(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??de(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:F(i)===F(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 U=async(e,t,r)=>{let{cwd:o,env:i,logger:l,nextRelease:{channel:f,version:m},stderr:g,stdout:n}=r;if(b(e,t)){let p=P(t,r),d=C(f);l.log(`Adding version ${m} to npm registry on dist-tag ${d}`);let y=k(o,i),u=execa("pnpm",["dist-tag","add",`${t.name}@${m}`,d,"--userconfig",y,"--registry",p],{cwd:o,env:i,preferLocal:!0});return u.stdout.pipe(n,{end:!1}),u.stderr.pipe(g,{end:!1}),await u,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:f,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(f,{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(f,{end:!1});let d=(await p).stdout.split(`
`).pop(),y=resolve(r,d),u=resolve(r,t.trim(),d);y!==u&&await moveFile(y,u);}};var z=async(e,t,r)=>{let{cwd:o,env:i,logger:l,nextRelease:{channel:f,version:m},stderr:g,stdout:n}=r,{pkgRoot:p,publishBranch:d}=e;if(b(e,t)){let y=p?resolve(o,p):o,u=P(t,r),E=C(f),{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",u,"--no-git-checks"];e.disableScripts&&B.push("--ignore-scripts");let R=execa("pnpm",B,{cwd:o,env:i,preferLocal:!0});R.stdout.pipe(n,{end:!1}),R.stderr.pipe(g,{end:!1});try{await R;}catch($){throw l.log(`Failed to publish ${t.name}@${m} to dist-tag @${E} on ${u}: ${$.message??$}`),new W([$])}return l.log(`Published ${t.name}@${m} to dist-tag @${E} on ${u}`),I(t,r,E,u)}return l.log(`Skip publishing to npm registry as ${N(e,t)}`),!1};var v=async({pkgRoot:e},{cwd:t})=>{try{let{packageJson:r}=await findPackageJson(e?resolve(t,e):t);if(!r.name)throw new W([c("ENOPKGNAME")]);return r}catch(r){throw r.code==="ENOENT"?new W([c("ENOPKG")]):r}};var ve=e=>{let t=new URL(e),r=`${t.protocol}//${t.host}${t.pathname}`,o=new URL(".",r);return `//${o.host}${o.pathname}`},Q=ve;var X=async(e,t,{cwd:r,env:{NPM_CONFIG_USERCONFIG:o,NPM_EMAIL:i,NPM_PASSWORD:l,NPM_TOKEN:f,NPM_USERNAME:m},logger:g})=>{g.log("Verify authentication for registry %s",t);let{config:n,files:p}=rc("npm",{config:o??resolve(r,".npmrc"),cwd:r,defaults:{registry:A}});if(Array.isArray(p)&&g.log("Reading npm config from %s",p.join(", ")),Ae(t,{npmrc:n})){await writeFile(e,stringify(n));return}if(m&&l&&i)await writeFile(e,`${Object.keys(n).length>0?`${stringify(n)}
Please 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 \`${e}\`.`,message:"No npm token specified."}),ENOPKG:()=>({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.",message:"Missing `package.json` file."}),ENOPKGNAME:()=>({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`.",message:"Missing `name` property in `package.json`."}),ENOPNPM:()=>({details:"The Pnpm CLI could not be found in your PATH. Make sure Pnpm is installed and try again.",message:"Pnpm not found."}),ENOPNPMRC:()=>({details:"Didnt find a `.npmrc` file or it was not possible to create , in the root of your project.",message:"Missing `.npmrc` file."})};var u=(e,t={})=>{let{details:r,message:o}=z[e](t);return new ye(o,e,r)};var v=async({pkgRoot:e},{cwd:t})=>{try{let{packageJson:r}=await findPackageJson(e?resolve(t,e):t);if(!r.name)throw new W([u("ENOPKGNAME")]);return r}catch(r){throw r.code==="ENOENT"?new W([u("ENOPKG")]):r}};var Ee=e=>{let t=new URL(e),r=`${t.protocol}//${t.host}${t.pathname}`,o=new URL(".",r);return `//${o.host}${o.pathname}`},Q=Ee;var X=async(e,t,{cwd:r,env:{NPM_CONFIG_USERCONFIG:o,NPM_EMAIL:i,NPM_PASSWORD:l,NPM_TOKEN:c,NPM_USERNAME:m},logger:g})=>{g.log("Verify authentication for registry %s",t);let{config:n,files:p}=rc("npm",{config:o??resolve(r,".npmrc"),cwd:r,defaults:{registry:A}});if(Array.isArray(p)&&g.log("Reading npm config from %s",p.join(", ")),Ce(t,{npmrc:n})){await writeFile(e,stringify(n));return}if(m&&l&&i)await writeFile(e,`${Object.keys(n).length>0?`${stringify(n)}
`:""}_auth = \${LEGACY_TOKEN}
email = \${NPM_EMAIL}`),g.log(`Wrote NPM_USERNAME, NPM_PASSWORD, and NPM_EMAIL to ${e}`);else if(f)await writeFile(e,`${Object.keys(n).length>0?`${stringify(n)}
`:""}${Q(t)}:_authToken = \${NPM_TOKEN}`),g.log(`Wrote NPM_TOKEN to ${e}`);else throw new W([c("ENONPMTOKEN",{registry:t})])};var ee=async(e,t,r)=>{let{cwd:o,env:{DEFAULT_NPM_REGISTRY:i="https://registry.npmjs.org/",...l},logger:f,stderr:m,stdout:g}=r,n=P(t,r);if(await X(e,n,r),F(n)===F(i))try{f.log(`Running "pnpm whoami" to verify authentication on registry "${n}"`);let p=execa("pnpm",["whoami","--userconfig",e,"--registry",n],{cwd:o,env:l,preferLocal:!0});p.stdout.pipe(g,{end:!1}),p.stderr.pipe(m,{end:!1}),await p;}catch{throw new W([c("EINVALIDNPMTOKEN",{registry:n})])}else f.log(`Skipping authentication verification for non-default registry "${n}"`);};var Re=e=>typeof e=="string",$e=e=>e==null,T=e=>Re(e)?e.trim()!=="":!1,te={branches:Array.isArray,npmPublish:e=>typeof e=="boolean",pkgRoot:T,publishBranch:T,tarballDir:T},re=e=>Object.entries(e).reduce((t,[r,o])=>$e(o)||!(r in te)||te[r]?.(o)?t:[...t,c(`EINVALID${r.toUpperCase()}`,{[r]:o})],[]);var ie="8.0.0";async function j({logger:e}){e.log(`Verify pnpm version is >= ${ie}`);let t=getPackageManagerVersion("pnpm");if(t!=="pnpm")throw new W([new Error("pnpm is not installed")]);if(gte(ie,t))throw new W([c("EINVALIDPNPM",{version:String(t)})])}var _e=async(e,t)=>{let r=re(e);try{await j(t);}catch(o){let i=o;r=[...r,...i.errors??[o]];}try{let o=await v(e,t);if(b(e,o)){let i=k(t.cwd,t.env);await ee(i,o,t);}}catch(o){let i=o;r=[...r,...i.errors??[o]];}if(r.length>0)throw new W(r)},x=_e;var Te="semantic-release-pnpm",w,ne,Mr=async(e,t)=>{if(t.options.publish){let o=(Array.isArray(t.options.publish)?t.options.publish:[t.options.publish]).find(i=>i.path&&i.path===Te)||{};e.npmPublish=e.npmPublish??o.npmPublish,e.tarballDir=e.tarballDir??o.tarballDir,e.pkgRoot=e.pkgRoot??o.pkgRoot,e.disableScripts=e.disableScripts??o.disableScripts,e.branches=e.branches??o.branches;}await x(e,t),w=!0;},Dr=async(e,t)=>{w||await x(e,t),await D(e,t),ne=!0;},Or=async(e,t)=>{let r=await v(e,t);return w||await x(e,t),ne||await D(e,t),await z(e,r,t)},_r=async(e,t)=>{w||await x(e,t);let r=await v(e,t);return await U(e,r,t)};
email = \${NPM_EMAIL}`),g.log(`Wrote NPM_USERNAME, NPM_PASSWORD, and NPM_EMAIL to ${e}`);else if(c)await writeFile(e,`${Object.keys(n).length>0?`${stringify(n)}
`:""}${Q(t)}:_authToken = \${NPM_TOKEN}`),g.log(`Wrote NPM_TOKEN to ${e}`);else throw new W([u("ENONPMTOKEN",{registry:t})])};var ee=async(e,t,r)=>{let{cwd:o,env:{DEFAULT_NPM_REGISTRY:i="https://registry.npmjs.org/",...l},logger:c,stderr:m,stdout:g}=r,n=P(t,r);if(await X(e,n,r),J(n)===J(i))try{c.log(`Running "pnpm whoami" to verify authentication on registry "${n}"`);let p=execa("pnpm",["whoami","--userconfig",e,"--registry",n],{cwd:o,env:l,preferLocal:!0});p.stdout.pipe(g,{end:!1}),p.stderr.pipe(m,{end:!1}),await p;}catch{throw new W([u("EINVALIDNPMTOKEN",{registry:n})])}else c.log(`Skipping authentication verification for non-default registry "${n}"`);};var Ie=e=>typeof e=="string",Re=e=>e==null,T=e=>Ie(e)?e.trim()!=="":!1,te={branches:Array.isArray,npmPublish:e=>typeof e=="boolean",pkgRoot:T,publishBranch:T,tarballDir:T},re=e=>Object.entries(e).reduce((t,[r,o])=>Re(o)||!(r in te)||te[r]?.(o)?t:[...t,u(`EINVALID${r.toUpperCase()}`,{[r]:o})],[]);var oe="8.0.0";async function j({logger:e}){e.log(`Verify pnpm version is >= ${oe}`);let t=getPackageManagerVersion("pnpm");if(gte(oe,t))throw new W([u("EINVALIDPNPM",{version:String(t)})])}var Oe=async(e,t)=>{let r=re(e);try{await j(t);}catch(o){let i=o;r=[...r,...i.errors??[o]];}try{let o=await v(e,t);if(b(e,o)){let i=k(t.cwd,t.env);await ee(i,o,t);}}catch(o){let i=o;r=[...r,...i.errors??[o]];}if(r.length>0)throw new W(r)},x=Oe;var _e="semantic-release-pnpm",R,ie,Rr=async(e,t)=>{if(t.options.publish){let o=(Array.isArray(t.options.publish)?t.options.publish:[t.options.publish]).find(i=>i.path&&i.path===_e)||{};e.npmPublish=e.npmPublish??o.npmPublish,e.tarballDir=e.tarballDir??o.tarballDir,e.pkgRoot=e.pkgRoot??o.pkgRoot,e.disableScripts=e.disableScripts??o.disableScripts,e.branches=e.branches??o.branches;}await x(e,t),R=!0;},wr=async(e,t)=>{R||await x(e,t),await D(e,t),ie=!0;},$r=async(e,t)=>{let r=await v(e,t);return R||await x(e,t),ie||await D(e,t),await Y(e,r,t)},Mr=async(e,t)=>{R||await x(e,t);let r=await v(e,t);return await K(e,r,t)};
export { _r as addChannel, Dr as prepare, Or as publish, Mr as verifyConditions };
export { Mr as addChannel, wr as prepare, $r as publish, Rr as verifyConditions };
//# sourceMappingURL=out.js.map
//# sourceMappingURL=index.js.map
{
"name": "@anolilab/semantic-release-pnpm",
"version": "1.0.0",
"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"
"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"
},
"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": false,
"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",
"@anolilab/semantic-release-preset": "^8.0.3",
"@babel/core": "^7.24.3",
"@rushstack/eslint-plugin-security": "^0.8.1",
"@secretlint/secretlint-rule-preset-recommend": "^8.1.2",
"@semantic-release/changelog": "^6.0.3",
"@semantic-release/git": "^10.0.1",
"@semantic-release/github": "^10.0.4",
"@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.4.0",
"@vitest/ui": "^1.4.0",
"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.2.1",
"p-retry": "^6.2.0",
"prettier": "^3.2.5",
"rimraf": "^5.0.5",
"secretlint": "8.1.2",
"semantic-release": "^23.0.5",
"sort-package-json": "^2.8.0",
"stream-buffers": "^3.0.2",
"tempy": "^3.1.0",
"tsup": "^8.0.2",
"typescript": "^5.4.3",
"vitest": "^1.4.0"
},
"engines": {
"node": ">=18.* <=21.*"
},
"publishConfig": {
"access": "public",
"provenance": true
},
"anolilab": {
"eslint-config": {
"plugin": {
"etc": false,
"tsdoc": false
},
"warn_on_unsupported_typescript_version": false,
"info_on_disabling_jsx_react_rule": false,
"info_on_disabling_prettier_conflict_rule": false,
"info_on_disabling_jsonc_sort_keys_rule": false,
"import_ignore_exports": [
"**/*.cjs"
]
}
{
"type": "consulting",
"url": "https://anolilab.com/support"
}
}
],
"license": "MIT",
"author": {
"name": "Daniel Bannert",
"email": "d.bannert@anolilab.de"
},
"sideEffects": false,
"type": "module",
"exports": "./dist/index.js",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"files": [
"dist",
"README.md",
"CHANGELOG.md"
],
"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",
"@anolilab/semantic-release-preset": "^8.0.3",
"@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/git": "^10.0.1",
"@semantic-release/github": "^10.0.5",
"@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",
"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": true
},
"anolilab": {
"eslint-config": {
"plugin": {
"etc": false,
"tsdoc": false
},
"warn_on_unsupported_typescript_version": false,
"info_on_disabling_jsx_react_rule": false,
"info_on_disabling_prettier_conflict_rule": false,
"info_on_disabling_jsonc_sort_keys_rule": false,
"import_ignore_exports": [
"**/*.cjs"
]
}
},
"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"
}
}

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc