New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

dev-dep-tool

Package Overview
Dependencies
Maintainers
1
Versions
60
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dev-dep-tool - npm Package Compare versions

Comparing version 0.3.2 to 0.3.3-dev.0

75

library/commonOutput.js

@@ -1,36 +0,45 @@

var e=require("fs")
var e=require("assert")
var t=require("child_process")
var i=require("fs")
var r=require("dr-js/library/common/format")
var i=require("dr-js/library/node/file/File")
var s=require("dr-js/library/node/system/Run")
var o=require("dr-js/library/node/file/Modify")
var a=require("./__utils__")
exports.initOutput=(async({fromRoot:t,fromOutput:r,deleteKeyList:s=["private","scripts","devDependencies"],copyPathList:a=["LICENSE","README.md"],logger:{padLog:p,log:u}})=>{p("reset output")
await o.modify.delete(r()).catch(()=>{})
await(0,i.createDirectory)(r())
p("init output package.json")
const n=require(t("package.json"))
for(const e of s){delete n[e]
u(`dropped key: ${e}`)}(0,e.writeFileSync)(r("package.json"),JSON.stringify(n))
p("init output file")
for(const e of a){await o.modify.copy(t(e),r(e))
u(`copied: ${e}`)}return n})
exports.packOutput=(async({fromRoot:i,fromOutput:s,logger:{padLog:p,log:u}})=>{p("run pack output");(0,t.execSync)("npm pack",{cwd:s(),stdio:a.__VERBOSE__?"inherit":["ignore","ignore"],shell:!0})
u("move to root path")
const n=require(s("package.json"))
const c=`${n.name.replace(/^@/,"").replace("/","-")}-${n.version}.tgz`
await o.modify.move(s(c),i(c))
p(`pack size: ${(0,r.binary)((0,e.statSync)(i(c)).size)}B`)
return i(c)})
const p=e=>{const t=e.includes("publish-dev")
var o=require("dr-js/library/node/file/File")
var s=require("dr-js/library/node/file/Directory")
var n=require("dr-js/library/node/system/Run")
var a=require("dr-js/library/node/file/Modify")
var p=require("./__utils__")
exports.initOutput=(async({fromRoot:e,fromOutput:t,deleteKeyList:r=["private","scripts","devDependencies"],copyPathList:s=["LICENSE","README.md"],logger:{padLog:n,log:p}})=>{n("reset output")
await a.modify.delete(t()).catch(()=>{})
await(0,o.createDirectory)(t())
n("init output package.json")
const u=require(e("package.json"))
for(const e of r){delete u[e]
p(`dropped key: ${e}`)}(0,i.writeFileSync)(t("package.json"),JSON.stringify(u))
n("init output file")
for(const r of s)if("README.md"===r){(0,i.writeFileSync)(t(r),(0,i.readFileSync)(e(r)).toString().split("[//]: # (NON_PACKAGE_CONTENT)")[0].trim())
p(`copied: ${r} (with NON_PACKAGE_CONTENT trimmed)`)}else{await a.modify.copy(e(r),t(r))
p(`copied: ${r}`)}return u})
exports.packOutput=(async({fromRoot:e,fromOutput:o,logger:{padLog:s,log:n}})=>{s("run pack output");(0,t.execSync)("npm pack",{cwd:o(),stdio:p.__VERBOSE__?"inherit":["ignore","ignore"],shell:!0})
n("move to root path")
const u=require(o("package.json"))
const c=`${u.name.replace(/^@/,"").replace("/","-")}-${u.version}.tgz`
await a.modify.move(o(c),e(c))
s(`pack size: ${(0,r.binary)((0,i.statSync)(e(c)).size)}B`)
return e(c)})
exports.verifyOutputBinVersion=(async({fromOutput:i,packageJSON:r,logger:{padLog:o,log:s}})=>{o("verify output bin working")
const n=(0,t.execSync)("node bin --version",{cwd:i(),stdio:"pipe",shell:!0}).toString()
s(`bin test output: ${n}`)
for(const t of[r.name,r.version])(0,e.ok)(n.includes(t),`should output contain: ${t}`)})
exports.verifyNoGitignore=(async({path:t,logger:{padLog:i}})=>{i("verify no gitignore file left")
const r=(await(0,s.getFileList)(t)).filter(e=>e.includes("gitignore"));(0,e.ok)(!r.length,`bad file:\n - ${r.join("\n - ")}`)})
const u=e=>{const t=e.includes("publish-dev")
return{isPublish:t||e.includes("publish"),isDev:t}}
exports.getPublishFlag=p
const u=({isDev:e,version:t})=>e?c.test(t):n.test(t)
exports.checkPublishVersion=u
const n=/^\d+\.\d+\.\d+$/
const c=/^\d+\.\d+\.\d+-dev\.\d+$/
exports.publishOutput=(async({flagList:e,packageJSON:t,pathPackagePack:r,extraArgs:i=[],logger:o})=>{const{isPublish:a,isDev:n}=p(e)
if(!a)return o.padLog("skipped publish output, no flag found")
if(!r||!r.endsWith(".tgz"))throw new Error(`[publishOutput] invalid pathPackagePack: ${r}`)
if(!u({isDev:n,version:t.version}))throw new Error(`[publishOutput] invalid version: ${t.version}, isDev: ${n}`)
o.padLog(`${n?"publish-dev":"publish"}: ${t.version}`);(0,s.runSync)({command:"npm",argList:["publish",r,"--tag",n?"dev":"latest",...i]})})
exports.getPublishFlag=u
const c=({isDev:e,version:t})=>e?d.test(t):l.test(t)
exports.checkPublishVersion=c
const l=/^\d+\.\d+\.\d+$/
const d=/^\d+\.\d+\.\d+-dev\.\d+$/
exports.publishOutput=(async({flagList:e,packageJSON:t,pathPackagePack:i,extraArgs:r=[],logger:o})=>{const{isPublish:s,isDev:a}=u(e)
if(!s)return o.padLog("skipped publish output, no flag found")
if(!i||!i.endsWith(".tgz"))throw new Error(`[publishOutput] invalid pathPackagePack: ${i}`)
if(!c({isDev:a,version:t.version}))throw new Error(`[publishOutput] invalid version: ${t.version}, isDev: ${a}`)
o.padLog(`${a?"publish-dev":"publish"}: ${t.version}`);(0,n.runSync)({command:"npm",argList:["publish",i,"--tag",a?"dev":"latest",...r]})})

@@ -5,22 +5,28 @@ var e=require("path")

var o=require("dr-js/library/common/compare")
var i=require("dr-js/library/common/mutable/Object")
var s=require("dr-js/library/node/file/File")
exports.createExportParser=(({babylonPluginList:a,parserPluginList:n=a,logger:c})=>{let p={}
var a=require("dr-js/library/common/mutable/Object")
var i=require("dr-js/library/node/file/File")
var s=require("dr-js/library/node/file/Directory")
const c=({babylonPluginList:s,parserPluginList:c=s,logger:n})=>{let p={}
const l=e=>{const r=e.join("/")
p[r]||(p[r]={routeList:e,directoryList:[],fileList:[]})
return p[r]}
return{parseExport:async o=>{const i=await(0,s.getPathStat)(o)
const a=o.split(e.sep)
const p=a.pop()
if(i.isDirectory()){c.devLog(`[directory] ${o}`)
l(a).directoryList.push(p)}else if(i.isFile()&&p.endsWith(".js")){const e=((e,r,o)=>{const i=(0,t.parse)(e,{sourceFilename:r,sourceType:"module",plugins:o||["objectRestSpread","classProperties","exportDefaultFrom","exportNamespaceFrom","jsx"]}).program.body.filter(({type:e})=>"ExportNamedDeclaration"===e)
return[].concat(...i.map(({specifiers:e,declaration:r})=>r?r.declarations?r.declarations.map(({id:{name:e}})=>e):[r.id.name]:e.map(({exported:{name:e}})=>e)))})((0,r.readFileSync)(o,{encoding:"utf8"}),o,n)
c.devLog(`[file] ${o}`)
return{parseExport:async o=>{const a=await(0,i.getPathStat)(o)
const s=o.split(e.sep)
const p=s.pop()
if(a.isDirectory()){n.devLog(`[directory] ${o}`)
l(s).directoryList.push(p)}else if(a.isFile()&&p.endsWith(".js")){const e=((e,r,o)=>{const a=(0,t.parse)(e,{sourceFilename:r,sourceType:"module",plugins:o||["objectRestSpread","classProperties","exportDefaultFrom","exportNamespaceFrom","jsx"]}).program.body.filter(({type:e})=>"ExportNamedDeclaration"===e)
return[].concat(...a.map(({specifiers:e,declaration:r})=>r?r.declarations?r.declarations.map(({id:{name:e}})=>e):[r.id.name]:e.map(({exported:{name:e}})=>e)))})((0,r.readFileSync)(o,{encoding:"utf8"}),o,c)
n.devLog(`[file] ${o}`)
if(!e.length)return
l(a).fileList.push({name:p.slice(0,-3),exportList:e})
c.devLog(` export [${e.length}]: ${e.join(", ")}`)}else c.devLog(`[skipped] ${o} (${(0,s.getPathTypeFromStat)(i)})`)},getSourceRouteMap:()=>{const e=(e=>{Object.values(e).forEach(({routeList:e,directoryList:r,fileList:t})=>{r.sort(o.compareString)
l(s).fileList.push({name:p.slice(0,-3),exportList:e})
n.devLog(` export [${e.length}]: ${e.join(", ")}`)}else n.devLog(`[skipped] ${o} (${(0,i.getPathTypeFromStat)(a)})`)},getSourceRouteMap:()=>{const e=(e=>{Object.values(e).forEach(({routeList:e,directoryList:r,fileList:t})=>{r.sort(o.compareString)
t.sort(({name:e},{name:r})=>(0,o.compareString)(e,r))
t.forEach(({exportList:e})=>e.sort(o.compareString))});(0,i.objectSortKey)(e)
t.forEach(({exportList:e})=>e.sort(o.compareString))});(0,a.objectSortKey)(e)
return e})(p)
p={}
return e}}})
return e}}}
exports.createExportParser=c
exports.collectSourceRouteMap=(async({pathRootList:e=[],pathInfoFilter:r=(e=>!0),logger:t})=>{const{parseExport:o,getSourceRouteMap:a}=c({logger:t})
const i=e=>r(e)&&o(e.path)
for(const r of e)await(0,s.walkDirectoryInfoTree)(await(0,s.getDirectoryInfoTree)(r),i)
return a()})
var e=require("path")
var r=require("dr-js/library/node/file/function")
var t=require("./generateInfo")
const o=e=>`📄 [${e.replace(/_/g,"\\_")}](${e})`
exports.renderMarkdownFileLink=o
exports.renderMarkdownExportPath=(({exportInfoMap:n,rootPath:s})=>Object.entries(n).reduce((n,[p,a])=>{a[t.EXPORT_LIST_KEY]&&n.push(`+ ${o(`${(0,r.toPosixPath)((0,e.relative)(s,p))}.js`)}`,` - ${a[t.EXPORT_LIST_KEY].map(e=>`\`${e}\``).join(", ")}`)
return n},[]))
const n=({exportInfo:e,routeList:r})=>Object.entries(e).reduce((e,[o,s])=>{if(o===t.HOIST_LIST_KEY);else if(o===t.EXPORT_LIST_KEY||o===t.EXPORT_HOIST_LIST_KEY)e.push(`- ${s.map(e=>`\`${e}\``).join(", ")}`)
else{const t=n({exportInfo:s,routeList:[...r,o]})
t.length&&e.push(`- **${o}**`,...t.map(e=>` ${e}`))}return e},[])
exports.renderMarkdownExportTree=n
var o=require("./generateInfo")
exports.getMarkdownHeaderLink=(e=>`[${e}](#${e.trim().toLowerCase().replace(/[^\w\- ]+/g,"").replace(/\s/g,"-").replace(/-+$/,"")})`)
const t=e=>e.replace(/_/g,"\\_")
exports.escapeMarkdownLink=t
const n=e=>`📄 [${t(e)}](${e})`
exports.renderMarkdownFileLink=n
exports.renderMarkdownDirectoryLink=(e=>`📁 [${t(e).replace(/\/*$/,"/")}](${e})`)
exports.renderMarkdownExportPath=(({exportInfoMap:t,rootPath:a})=>Object.entries(t).reduce((t,[p,s])=>{s[o.EXPORT_LIST_KEY]&&t.push(`+ ${n(`${(0,r.toPosixPath)((0,e.relative)(a,p))}.js`)}`,` - ${s[o.EXPORT_LIST_KEY].map(e=>`\`${e}\``).join(", ")}`)
return t},[]))
const a=({exportInfo:e,routeList:r})=>Object.entries(e).reduce((e,[t,n])=>{if(t===o.HOIST_LIST_KEY);else if(t===o.EXPORT_LIST_KEY||t===o.EXPORT_HOIST_LIST_KEY)e.push(`- ${n.map(e=>`\`${e}\``).join(", ")}`)
else{const o=a({exportInfo:n,routeList:[...r,t]})
o.length&&e.push(`- **${t}**`,...o.map(e=>` ${e}`))}return e},[])
exports.renderMarkdownExportTree=a

@@ -1,30 +0,39 @@

var e=require("fs")
var t=function(e){return e&&e.__esModule?e:{default:e}}(require("webpack"))
var r=require("dr-js/library/common/format")
var e=require("path")
var t=require("fs")
var r=function(e){return e&&e.__esModule?e:{default:e}}(require("webpack"))
var o=require("dr-js/library/common/format")
var i=require("dr-js/library/node/file/File")
var a=require("dr-js/library/node/system/ExitListener")
var i=require("./__utils__")
const o=(e,t)=>(r,a)=>{if(r)return e(r)
if(a.hasErrors()||a.hasWarnings()){const{errors:t=[],warnings:r=[]}=a.toJson()
var n=require("./__utils__")
const s=(e,t)=>(r,o)=>{if(r)return e(r)
if(o.hasErrors()||o.hasWarnings()){const{errors:t=[],warnings:r=[]}=o.toJson()
t.forEach(e=>console.error(e))
r.forEach(e=>console.warn(e))
if(a.hasErrors())return e(new Error("webpack stats Error"))}t(a)}
const n=(...e)=>e.filter(Boolean).join(",")
exports.compileWithWebpack=(async({config:s,isWatch:c,profileOutput:u,logger:l})=>{const{log:p}=l
if(u){c&&console.warn("[watch] warning: skipped generate profileOutput")
s.profile=!0}const d=(0,t.default)(s)
const f=((e,{padLog:t,log:a})=>{const o=({compilation:{assets:o={},chunks:s=[]},startTime:c,endTime:u})=>{c&&u&&t(`[${e?"watch":"compile"}] time: ${(0,r.time)(u-c)}`)
const l=[]
Object.entries(o).forEach(([e,t])=>l.push(["asset",e,`${(0,r.binary)(t.size())}B`,n(t.emitted&&"emitted")]))
i.__VERBOSE__&&s.forEach(e=>l.push(["chunk",e.name||e.id,`${(0,r.binary)(e.modulesSize())}B`,n(e.canBeInitial()&&"initial",e.hasRuntime()&&"entry",e.rendered&&"rendered")]))
a(`output:\n ${(0,r.padTable)({table:l,padFuncList:["L","R","R","L"],cellPad:" | ",rowPad:"\n "})}`)}
return e=>{if(e.compilation)return o(e)
if(e.stats)return e.stats.map(o)
if(o.hasErrors())return e(new Error("webpack stats Error"))}t(o)}
const c=(...e)=>e.filter(Boolean).join(",")
exports.compileWithWebpack=(async({config:e,isWatch:i,profileOutput:l,logger:u})=>{const{log:p}=u
if(l){i&&console.warn("[watch] warning: skipped generate profileOutput")
e.profile=!0}const d=(0,r.default)(e)
const f=((e,{padLog:t,log:r})=>{const i=({compilation:{assets:i={},chunks:a=[]},startTime:s,endTime:l})=>{s&&l&&t(`[${e?"watch":"compile"}] time: ${(0,o.time)(l-s)}`)
const u=[]
Object.entries(i).forEach(([e,t])=>u.push(["asset",e,`${(0,o.binary)(t.size())}B`,c(t.emitted&&"emitted")]))
n.__VERBOSE__&&a.forEach(e=>u.push(["chunk",e.name||e.id,`${(0,o.binary)(e.modulesSize())}B`,c(e.canBeInitial()&&"initial",e.hasRuntime()&&"entry",e.rendered&&"rendered")]))
r(`output:\n ${(0,o.padTable)({table:u,padFuncList:["L","R","R","L"],cellPad:" | ",rowPad:"\n "})}`)}
return e=>{if(e.compilation)return i(e)
if(e.stats)return e.stats.map(i)
console.warn("[getLogStats] unexpected statData",e)
throw new Error("[getLogStats] unexpected statData")}})(c,l)
if(!c){p("[compile] start")
const t=await new Promise((e,t)=>d.run(o(t,e)))
f(t)
u&&(0,e.writeFileSync)(u,JSON.stringify(t.toJson()))
u&&p(`[compile] generated profileOutput at: ${u}`)
return t}p("[watch] start")
d.watch({aggregateTimeout:300,poll:void 0},o(e=>p(`error: ${e}`),f));(0,a.addExitListenerSync)(e=>p(`[watch] exit with state: ${JSON.stringify(e)}`))})
throw new Error("[getLogStats] unexpected statData")}})(i,u)
if(!i){p("[compile] start")
const e=await new Promise((e,t)=>d.run(s(t,e)))
f(e)
l&&(0,t.writeFileSync)(l,JSON.stringify(e.toJson()))
l&&p(`[compile] generated profileOutput at: ${l}`)
return e}p("[watch] start")
d.watch({aggregateTimeout:512,poll:void 0},s(e=>p(`error: ${e}`),f));(0,a.addExitListenerSync)(e=>p(`[watch] exit with state: ${JSON.stringify(e)}`))})
exports.commonFlag=(async({argvFlag:t,fromRoot:r,logger:{log:o}})=>{const a=t("development","production")||"production"
const n=Boolean(t("watch"))
const s="production"===a
const c=t("profile")?r(".temp-gitignore/profile-stat.json"):null
c&&await(0,i.createDirectory)((0,e.dirname)(c))
o(`webpack flag: ${JSON.stringify({mode:a,isWatch:n,isProduction:s,profileOutput:c},null," ")}`)
return{mode:a,isWatch:n,isProduction:s,profileOutput:c}})

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

{"name":"dev-dep-tool","version":"0.3.2","author":"dr-js","license":"MIT","description":"Provide common package devDependencies","keywords":["Dr","Dr-js","JavaScript"],"repository":"github:dr-js/dev-dep","bin":"bin/index.js","engines":{"node":"^8.11 || ^9.11 || >=10.9","npm":">=6"},"dependencies":{"dr-js":"^0.16.2 || ^0.16.3-dev.0"},"sideEffects":false}
{"name":"dev-dep-tool","version":"0.3.3-dev.0","author":"dr-js","license":"MIT","description":"Provide common package devDependencies","keywords":["Dr","Dr-js","JavaScript"],"repository":"github:dr-js/dev-dep","bin":"bin/index.js","engines":{"node":"^8.11 || ^9.11 || >=10.9","npm":">=6"},"dependencies":{"dr-js":"^0.16.2 || ^0.16.3-dev.0"},"sideEffects":false}

@@ -10,9 +10,2 @@ # dev-dep-tool

- [![i:p-b]][l:p-b]
- [![i:p-br]][l:p-br]
- [![i:p-w]][l:p-w]
- [![i:p-wr]][l:p-wr]
- [![i:p-wrp]][l:p-wrp]
- [![i:p-wrsc]][l:p-wrsc]
[i:npm]: https://img.shields.io/npm/v/dev-dep-tool.svg?colorB=blue

@@ -24,15 +17,2 @@ [i:npm-dev]: https://img.shields.io/npm/v/dev-dep-tool/dev.svg

[i:lint]: https://img.shields.io/badge/code_style-standard-yellow.svg
[l:lint]: https://standardjs.com
[i:p-b]: https://img.shields.io/badge/dev--dep-babel-yellow.svg
[l:p-b]: https://www.npmjs.com/package/dev-dep-babel
[i:p-br]: https://img.shields.io/badge/dev--dep-babel--react-yellow.svg
[l:p-br]: https://www.npmjs.com/package/dev-dep-babel-react
[i:p-w]: https://img.shields.io/badge/dev--dep-web-blue.svg
[l:p-w]: https://www.npmjs.com/package/dev-dep-web
[i:p-wr]: https://img.shields.io/badge/dev--dep-web--react-blue.svg
[l:p-wr]: https://www.npmjs.com/package/dev-dep-web-react
[i:p-wrp]: https://img.shields.io/badge/dev--dep-web--react--postcss-blue.svg
[l:p-wrp]: https://www.npmjs.com/package/dev-dep-web-react-postcss
[i:p-wrsc]: https://img.shields.io/badge/dev--dep-web--react--styled--components-blue.svg
[l:p-wrsc]: https://www.npmjs.com/package/dev-dep-web-react-styled-components
[l:lint]: https://standardjs.com
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