Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

tsmpkg

Package Overview
Dependencies
Maintainers
1
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tsmpkg - npm Package Compare versions

Comparing version 0.1.6 to 0.1.7

8

dist/bin.js
#!/usr/bin/env node --enable-source-maps
import{parseArgs as lt}from"node:util";import H from"node:fs/promises";import b from"node:path";import{ensureDir as K,pathExists as Q}from"fs-extra/esm";var $=async t=>{let o=b.join(t,"./src");await K(o);let r=b.join(o,"index.ts");await Q(r)||await H.writeFile(r,`export const hi = "hi";
`)};var k=t=>w(t).includes("cjs"),w=t=>{let o=t.tsup?.format??"esm";return(Array.isArray(o)?o:[o]).filter(r=>r!=="iife")},p=(t="commonjs")=>{let r=(typeof t=="string"?t:t.type??"commonjs")==="module";return e=>{switch(e){case"cjs":return r?".cjs":".js";case"esm":return r?".js":".mjs"}}},O=t=>w(t).map(p(t)),D=t=>{switch(t){case".js":return".d.ts";case".mjs":return".d.mts";case".cjs":return".d.cts"}},J=t=>!!t.manifest.devDependencies?.tsmpkg;var f=(t,o)=>`./dist/${t}${o}`,A=(t,{formats:o,pkgType:r})=>{let e=p(r);return Object.fromEntries(Object.entries(t).map(([n])=>[n==="index"?".":`./${n}`,o.length===1?f(n,e(o[0])):{import:f(n,e("esm")),require:f(n,e("cjs"))}]))};import E from"chalk";var d=(t,o)=>{if(o.length===0)return o;console.warn(E.red(`Errors were found in ${t}.`)),console.info(E.dim("Try running fix to resolve them."));for(let r of o)console.warn(E.red(r));return o};import X from"@npmcli/package-json";var C=async t=>await X.load(t),u=async t=>{let{content:o}=await C(t);return o};import Y from"node:path";import Z from"node:fs/promises";import{load as _}from"tsconfig";import{parseTSConfigJSON as tt}from"types-tsconfig";var ot=async t=>{try{let o=await _(t);return o||void 0}catch(o){throw new g(o instanceof Error?o:void 0)}},q=async t=>{let o=await ot(t);if(!o)return;let r=tt(o.config);if(!r)throw new g;return r},N=async(t,o)=>{let r=Y.join(t,"tsconfig.json");return Z.writeFile(r,JSON.stringify(o,void 0," "),"utf-8")},g=class t extends Error{constructor(o){super(`Invalid tsconfig.json. ${o?.message??""}`.trimEnd()),t.prototype.name="InvalidTsConfigError"}};import{findWorkspaceDir as rt}from"@pnpm/find-workspace-dir";import et from"chalk";var j=async t=>{let o=await rt(t);return o||(console.error(et.red`🚨Workspace dir could not be found from ${t}.\n'dev' only needed in monorepos.\nOnly pnpm monorepos currently supported.`),process.exit(1)),o};var nt={compilerOptions:{target:"ES2022",module:"ESNext",rootDir:"./src",moduleResolution:"nodenext",noEmit:!0,isolatedModules:!0,esModuleInterop:!0,forceConsistentCasingInFileNames:!0,strict:!0,skipLibCheck:!0,lib:["es2020"]},include:["./src"]},R=async t=>{await N(t,nt)};import S from"chalk";var h=async t=>{let o=await C(t),r=o.content,e=r.tsup?.entry??{index:"./src/index.ts"},n=w(r),s=k(r);if(!(typeof e=="object"&&!Array.isArray(e)))throw new Error("Entry points in tsup config must be an object.");console.info(S.dim`🛠️Fixing package.json`);let m=p(r);o.update({scripts:{...r.scripts,clean:"rm -rf dist",prepack:"tsup"},main:e.index?s?f("index",m("cjs")):f("index",m("esm")):void 0,exports:A(e,{formats:n,pkgType:r.type??"commonjs"}),tsup:{...r.tsup,entry:e,clean:!0,format:n,dts:!0}}),await o.save(),console.info(S.dim`✅ Done.`)};var W=async t=>{await h(t)};var V=async t=>{await $(t),await h(t),await R(t)};import l from"node:path";import F from"node:fs/promises";import{ensureDir as pt,remove as mt}from"fs-extra/esm";import{findWorkspacePackagesNoCheck as ft}from"@pnpm/find-workspace-packages";import v from"node:path";var B=async t=>{let o=await u(t),r=[...st(o)];return d("package.json",r)};function*st(t){let o=k(t),r=p(t),e=r("cjs");if(t.main?o&&v.extname(t.main)!==e&&(yield`"main" field should have "${e}" extension when commonjs supported on package of type ${t.type??"commonjs"}.`):t.tsup?.entry&&"index"in t.tsup.entry&&(yield"`main` field must be provided when index entry point."),t.exports){let n=r("esm"),s=r("cjs");for(let[m,i]of Object.entries(t.exports)){if(!(i&&typeof i=="object"))continue;let a="import"in i&&i.import&&typeof i.import=="string"&&v.extname(i.import)!==n,c="require"in i&&i.require&&typeof i.require=="string"&&v.extname(i.require)!==s;(a||c)&&(yield`"exports" entry "${m}": should have "require" extension "${s}" and "import" extension "${n}" on packages of type "${t.type??"commonjs"}".`)}}t.files&&!t.files.find(n=>["dist","./dist","dist/"].includes(n))&&(yield"`files` must include `dist`")}var I=t=>d("tsconfig.json",t),M=async t=>{try{let o=await q(t),r=[...it(o)];return I(r)}catch(o){if(o instanceof g)return I([o.message]);throw o}};function*it(t){if(!t){yield"tsconfig.json: not found.";return}let{compilerOptions:o}=t;if(!o){yield"no compilerOptions set.";return}}var G=async t=>{let o=await u(t),r=[...at(o.tsup)];return d("tsup config",r)};function*at(t){t||(yield"Not found. Currently only `tsup` section within `package.json` supported."),t?.entry?Array.isArray(t?.entry)&&(yield"Array `entry` not yet supported."):yield"No `entry` defined."}import L from"chalk";import ct from"node:path";var T=async(t,o)=>(console.log(L.dim`🔎 Validating %s`,L.bgBlackBright(ct.relative(o.workspaceDir,t))),[...await B(t),...await M(t),...await G(t)].length===0),U=async t=>{await T(t,{workspaceDir:await j(t)})||process.exit(1)};import P from"chalk";var dt={index:"./src/index.ts"},ut=t=>{if(!t?.entry)return dt;if(Array.isArray(t.entry))throw new Error("Array entrypoints not yet supported. use object syntax");return t.entry},z=async t=>{let o=await j(t),r=(await ft(o)).filter(e=>e.dir!==o&&J(e));for(let e of r)await gt(e.dir,{workspaceDir:o});console.info(P.dim`✅ Done.`)},gt=async(t,o)=>{await T(t,o)||process.exit(1);let e=await u(t),n=O(e),s=l.join(t,"dist");await mt(s),await pt(s),console.info(P.dim`🛠️Generating dev mode symlinks for %s in %s`,P.bgBlackBright(e.name),P.bgGray(l.relative(o.workspaceDir,s)));let m=ut(e.tsup),i=async(a,c,y)=>{await F.symlink(l.join(t,c),l.join(s,`${a}${y}`));let x=D(y);await F.writeFile(l.join(s,`${a}${x}`),`export * from ".${c.replace(".ts",".js")}";
//# sourceMappingURL=${a}${x}.map`,"utf-8"),await F.writeFile(l.join(s,`${a}${x}.map`),`{"version":3,"file":"${a}${x}","sourceRoot":"","sources":[".${c}"],"names":[],"mappings":"AAAA"}
`)};for(let[a,c]of Object.entries(m)){if(!c.startsWith("./"))throw new Error("Entry points must start with ./");for(let y of n)await i(a,c,y)}};import yt from"chalk";var xt=lt({tokens:!0,allowPositionals:!0});switch(xt.positionals[0]){case"init":{await V(process.cwd());break}case"dev":{await z(process.cwd());break}case"fix":{await W(process.cwd());break}case"check":{await U(process.cwd());break}default:{console.info("Usage: "+yt.bgGray`tsmpkg init|dev|fix|check`);break}}
import{parseArgs as lt}from"node:util";import K from"node:fs/promises";import $ from"node:path";import{ensureDir as Q,pathExists as X}from"fs-extra/esm";var O=async t=>{let o=$.join(t,"./src");await Q(o);let e=$.join(o,"index.ts");await X(e)||await K.writeFile(e,`export const hi = "hi";
`)};var w=t=>k(t).includes("cjs"),k=t=>{let o=t.tsup?.format??"esm";return(Array.isArray(o)?o:[o]).filter(e=>e!=="iife")},m=(t="commonjs")=>{let e=(typeof t=="string"?t:t.type??"commonjs")==="module";return r=>{switch(r){case"cjs":return e?".cjs":".js";case"esm":return e?".js":".mjs"}}},b=t=>k(t).map(m(t)),D=t=>{switch(t){case".js":return".d.ts";case".mjs":return".d.mts";case".cjs":return".d.cts"}},J=t=>!!t.manifest.devDependencies?.tsmpkg;var d=(t,o)=>`./dist/${t}${o}`,A=(t,{formats:o,pkgType:e})=>{let r=m(e);return Object.fromEntries(Object.entries(t).map(([n])=>[n==="index"?".":`./${n}`,o.length===1?d(n,r(o[0])):{import:d(n,r("esm")),require:d(n,r("cjs"))}]))};import E from"chalk";var u=(t,o)=>{if(o.length===0)return o;console.warn(E.red(`Errors were found in ${t}.`)),console.info(E.dim("Try running fix to resolve them."));for(let e of o)console.warn(E.red(e));return o};import Y from"@npmcli/package-json";var C=async t=>await Y.load(t),g=async t=>{let{content:o}=await C(t);return o};import Z from"node:path";import _ from"node:fs/promises";import{load as tt}from"tsconfig";import{parseTSConfigJSON as ot}from"types-tsconfig";var et=async t=>{try{let o=await tt(t);return o||void 0}catch(o){throw new l(o instanceof Error?o:void 0)}},q=async t=>{let o=await et(t);if(!o)return;let e=ot(o.config);if(!e)throw new l;return e},N=async(t,o)=>{let e=Z.join(t,"tsconfig.json");return _.writeFile(e,JSON.stringify(o,void 0," "),"utf-8")},l=class t extends Error{constructor(o){super(`Invalid tsconfig.json. ${o?.message??""}`.trimEnd()),t.prototype.name="InvalidTsConfigError"}};import{findWorkspaceDir as rt}from"@pnpm/find-workspace-dir";import nt from"chalk";var j=async t=>{let o=await rt(t);return o||(console.error(nt.red`🚨Workspace dir could not be found from ${t}.\n'dev' only needed in monorepos.\nOnly pnpm monorepos currently supported.`),process.exit(1)),o};var st={compilerOptions:{target:"ES2022",module:"ESNext",rootDir:"./src",moduleResolution:"nodenext",noEmit:!0,isolatedModules:!0,esModuleInterop:!0,forceConsistentCasingInFileNames:!0,strict:!0,skipLibCheck:!0,lib:["es2020"]},include:["./src"]},R=async t=>{await N(t,st)};import S from"chalk";var h=async t=>{let o=await C(t),e=o.content,r=e.tsup?.entry??{index:"./src/index.ts"},n=k(e),s=w(e);if(!(typeof r=="object"&&!Array.isArray(r)))throw new Error("Entry points in tsup config must be an object.");console.info(S.dim`🛠️Fixing package.json`);let f=m(e);o.update({scripts:{...e.scripts,clean:"rm -rf dist",prepack:"tsup"},main:r.index?s?d("index",f("cjs")):d("index",f("esm")):void 0,exports:A(r,{formats:n,pkgType:e.type??"commonjs"}),tsup:{...e.tsup,entry:r,clean:!0,format:n,dts:!0}}),await o.save(),console.info(S.dim`✅ Done.`)};var W=async t=>{await h(t)};var V=async t=>{await O(t),await h(t),await R(t)};import p from"node:path";import F from"node:fs/promises";import{ensureDir as z,remove as mt}from"fs-extra/esm";import{findWorkspacePackagesNoCheck as ft}from"@pnpm/find-workspace-packages";import v from"node:path";var B=async t=>{let o=await g(t),e=[...it(o)];return u("package.json",e)};function*it(t){let o=w(t),e=m(t),r=e("cjs");if(t.main?o&&v.extname(t.main)!==r&&(yield`"main" field should have "${r}" extension when commonjs supported on package of type ${t.type??"commonjs"}.`):t.tsup?.entry&&"index"in t.tsup.entry&&(yield"`main` field must be provided when index entry point."),t.exports){let n=e("esm"),s=e("cjs");for(let[f,i]of Object.entries(t.exports)){if(!(i&&typeof i=="object"))continue;let a="import"in i&&i.import&&typeof i.import=="string"&&v.extname(i.import)!==n,c="require"in i&&i.require&&typeof i.require=="string"&&v.extname(i.require)!==s;(a||c)&&(yield`"exports" entry "${f}": should have "require" extension "${s}" and "import" extension "${n}" on packages of type "${t.type??"commonjs"}".`)}}t.files&&!t.files.find(n=>["dist","./dist","dist/"].includes(n))&&(yield"`files` must include `dist`")}var I=t=>u("tsconfig.json",t),M=async t=>{try{let o=await q(t),e=[...at(o)];return I(e)}catch(o){if(o instanceof l)return I([o.message]);throw o}};function*at(t){if(!t){yield"tsconfig.json: not found.";return}let{compilerOptions:o}=t;if(!o){yield"no compilerOptions set.";return}}var G=async t=>{let o=await g(t),e=[...ct(o.tsup)];return u("tsup config",e)};function*ct(t){t||(yield"Not found. Currently only `tsup` section within `package.json` supported."),t?.entry?Array.isArray(t?.entry)&&(yield"Array `entry` not yet supported."):yield"No `entry` defined."}import L from"chalk";import pt from"node:path";var T=async(t,o)=>(console.log(L.dim`🔎 Validating %s`,L.bgBlackBright(pt.relative(o.workspaceDir,t))),[...await B(t),...await M(t),...await G(t)].length===0),U=async t=>{await T(t,{workspaceDir:await j(t)})||process.exit(1)};import P from"chalk";var dt={index:"./src/index.ts"},ut=t=>{if(!t?.entry)return dt;if(Array.isArray(t.entry))throw new Error("Array entrypoints not yet supported. use object syntax");return t.entry},H=async t=>{let o=await j(t),e=(await ft(o)).filter(r=>r.dir!==o&&J(r));for(let r of e)await gt(r.dir,{workspaceDir:o});console.info(P.dim`✅ Done.`)},gt=async(t,o)=>{await T(t,o)||process.exit(1);let r=await g(t),n=b(r),s=p.join(t,"dist");await mt(s),await z(s),console.info(P.dim`🛠️Generating dev mode symlinks for %s in %s`,P.bgBlackBright(r.name),P.bgGray(p.relative(o.workspaceDir,s)));let f=ut(r.tsup),i=async(a,c,y)=>{await z(p.dirname(p.join(s,a))),await F.symlink(p.join(t,c),p.join(s,`${a}${y}`));let x=D(y);await F.writeFile(p.join(s,`${a}${x}`),`export * from ".${c.replace(".ts",".js")}";
//# sourceMappingURL=${a}${x}.map`,"utf-8"),await F.writeFile(p.join(s,`${a}${x}.map`),`{"version":3,"file":"${a}${x}","sourceRoot":"","sources":[".${c}"],"names":[],"mappings":"AAAA"}
`)};for(let[a,c]of Object.entries(f)){if(!c.startsWith("./"))throw new Error("Entry points must start with ./");for(let y of n)await i(a,c,y)}};import yt from"chalk";var xt=lt({tokens:!0,allowPositionals:!0});switch(xt.positionals[0]){case"init":{await V(process.cwd());break}case"dev":{await H(process.cwd());break}case"fix":{await W(process.cwd());break}case"check":{await U(process.cwd());break}default:{console.info("Usage: "+yt.bgGray`tsmpkg init|dev|fix|check`);break}}
{
"name": "tsmpkg",
"version": "0.1.6",
"version": "0.1.7",
"description": "Tool for setting up and maintaining pure esm module typescript packages",

@@ -5,0 +5,0 @@ "type": "module",

@@ -64,6 +64,7 @@ import path from "node:path";

const makeLinks = async (name: string, target: string, ext: Extension) => {
const makeLinks = async (subpath: string, target: string, ext: Extension) => {
await ensureDir(path.dirname(path.join(distPath, subpath)));
await fs.symlink(
path.join(dir, target),
path.join(distPath, `${name}${ext}`),
path.join(distPath, `${subpath}${ext}`),
);

@@ -73,12 +74,12 @@

await fs.writeFile(
path.join(distPath, `${name}${dtsExt}`),
path.join(distPath, `${subpath}${dtsExt}`),
`export * from ".${target.replace(
".ts",
".js",
)}";\n//# sourceMappingURL=${name}${dtsExt}.map`,
)}";\n//# sourceMappingURL=${subpath}${dtsExt}.map`,
"utf-8",
);
await fs.writeFile(
path.join(distPath, `${name}${dtsExt}.map`),
`{"version":3,"file":"${name}${dtsExt}","sourceRoot":"","sources":[".${target}"],"names":[],"mappings":"AAAA"}\n`,
path.join(distPath, `${subpath}${dtsExt}.map`),
`{"version":3,"file":"${subpath}${dtsExt}","sourceRoot":"","sources":[".${target}"],"names":[],"mappings":"AAAA"}\n`,
);

@@ -85,0 +86,0 @@ };

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