Comparing version 2017.2.28 to 2017.3.9
@@ -1,1 +0,1 @@ | ||
{"author":"kai zhu <kaizhu256@gmail.com>","bin":{"utility2":"lib.utility2.sh","utility2-github-crud":"lib.github_crud.js","utility2-istanbul":"lib.istanbul.js","utility2-jslint":"lib.jslint.js","utility2-uglifyjs":"lib.uglifyjs.js"},"description":"the zero-dependency swiss-army-knife for building, testing, and deploying webapps","devDependencies":{"electron-lite":"kaizhu256/node-electron-lite#alpha"},"engines":{"node":">=4.0"},"homepage":"https://github.com/kaizhu256/node-utility2","keywords":["browser","build","busybox","ci","code-coverage","continuous-integration","deploy","docker","electron","headless-browser","istanbul","jscover","jscoverage","phantomjs","slimerjs","swiss-army-knife","test","test-coverage","travis","travis-ci","utility2","webapp"],"license":"MIT","main":"lib.utility2.js","name":"busybox","nameAlias":"utility2","nameOriginal":"utility2","os":["darwin","linux"],"repository":{"type":"git","url":"https://github.com/kaizhu256/node-utility2.git"},"scripts":{"build-ci":"./lib.utility2.sh shRun shReadmeBuild","env":"env","example.sh":"./lib.utility2.sh shRunScreenCapture shReadmeTestSh example.sh","heroku-postbuild":"./lib.utility2.sh shRun shDeployHeroku","postinstall":"if [ -f lib.utility2.npm-scripts.sh ]; then ./lib.utility2.npm-scripts.sh postinstall; fi","publish-alias":"VERSION=$(npm info $npm_package_name version); for ALIAS in apidocs busybox busybox2 busyweb test-lite; do ./lib.utility2.sh shRun shNpmPublishAs . $ALIAS $VERSION; ./lib.utility2.sh shRun shNpmTestPublished $ALIAS || exit $?; done","start":"export PORT=${PORT:-8080} && if [ -f assets.app.js ]; then node assets.app.js; return; fi && export npm_config_mode_auto_restart=1 && ./lib.utility2.sh shRun shIstanbulCover test.js","test":"export PORT=$(./lib.utility2.sh shServerPortRandom) && export PORT_REPL=$(./lib.utility2.sh shServerPortRandom) && export npm_config_mode_auto_restart=1 && ./lib.utility2.sh test test.js","test-all":"npm test --mode-coverage=all"},"version":"2017.2.28"} | ||
{"author":"kai zhu <kaizhu256@gmail.com>","bin":{"utility2":"lib.utility2.sh","utility2-apidoc":"lib.apidoc.js","utility2-github-crud":"lib.github_crud.js","utility2-istanbul":"lib.istanbul.js","utility2-jslint":"lib.jslint.js","utility2-uglifyjs":"lib.uglifyjs.js"},"description":"the zero-dependency swiss-army-knife tool for building, testing, and deploying webapps","devDependencies":{"electron-lite":"kaizhu256/node-electron-lite#alpha"},"engines":{"node":">=4.0"},"homepage":"https://github.com/kaizhu256/node-utility2","keywords":["browser","build","busybox","ci","code-coverage","continuous-integration","deploy","docker","electron","headless-browser","istanbul","jscover","jscoverage","phantomjs","slimerjs","swiss-army-knife","test","test-coverage","travis","travis-ci","utility2","webapp"],"license":"MIT","main":"lib.utility2.js","name":"busybox","nameAlias":"utility2","nameOriginal":"utility2","os":["darwin","linux"],"readmeParse":"1","repository":{"type":"git","url":"https://github.com/kaizhu256/node-utility2.git"},"scripts":{"build-ci":"./lib.utility2.sh shReadmeTest build_ci.sh","env":"env","heroku-postbuild":"./lib.utility2.sh shDeployHeroku","postinstall":"if [ -f lib.utility2.npm_scripts.sh ]; then ./lib.utility2.npm_scripts.sh postinstall; fi","publish-alias":"VERSION=$(npm info $npm_package_name version); for ALIAS in busybox busybox2 busyweb test-lite; do ./lib.utility2.sh shNpmPublishAs . $ALIAS $VERSION; ./lib.utility2.sh shNpmTestPublished $ALIAS || exit $?; done","start":"export PORT=${PORT:-8080} && if [ -f assets.app.js ]; then node assets.app.js; return; fi && export npm_config_mode_auto_restart=1 && ./lib.utility2.sh shRun shIstanbulCover test.js","test":"export PORT=$(./lib.utility2.sh shServerPortRandom) && export PORT_REPL=$(./lib.utility2.sh shServerPortRandom) && export npm_config_mode_auto_restart=1 && ./lib.utility2.sh test test.js"},"version":"2017.3.9"} |
184
README.md
utility2 | ||
======== | ||
the zero-dependency swiss-army-knife for building, testing, and deploying webapps | ||
the zero-dependency swiss-army-knife tool for building, testing, and deploying webapps | ||
[![travis-ci.org build-status](https://api.travis-ci.org/kaizhu256/node-utility2.svg)](https://travis-ci.org/kaizhu256/node-utility2) [![istanbul-coverage](https://kaizhu256.github.io/node-utility2/build..alpha..travis-ci.org/coverage.badge.svg)](https://kaizhu256.github.io/node-utility2/build..alpha..travis-ci.org/coverage.html/index.html) | ||
[![travis-ci.org build-status](https://api.travis-ci.org/kaizhu256/node-utility2.svg)](https://travis-ci.org/kaizhu256/node-utility2) [![istanbul-coverage](https://kaizhu256.github.io/node-utility2/build/coverage.badge.svg)](https://kaizhu256.github.io/node-utility2/build/coverage.html/index.html) | ||
@@ -26,9 +26,11 @@ [![NPM](https://nodei.co/npm/utility2.png?downloads=true)](https://www.npmjs.com/package/utility2) | ||
# documentation | ||
#### api-doc | ||
- [https://kaizhu256.github.io/node-utility2/build..beta..travis-ci.org/api-doc.html](https://kaizhu256.github.io/node-utility2/build..beta..travis-ci.org/api-doc.html) | ||
#### apidoc | ||
- [https://kaizhu256.github.io/node-utility2/build..beta..travis-ci.org/apidoc.html](https://kaizhu256.github.io/node-utility2/build..beta..travis-ci.org/apidoc.html) | ||
[![api-doc](https://kaizhu256.github.io/node-utility2/build/screen-capture.apiDoc.browser._2Fhome_2Ftravis_2Fbuild_2Fkaizhu256_2Fnode-utility2_2Ftmp_2Fbuild_2Fapi-doc.html.png)](https://kaizhu256.github.io/node-utility2/build..beta..travis-ci.org/api-doc.html) | ||
[![apidoc](https://kaizhu256.github.io/node-utility2/build/screen-capture.buildApidoc.browser._2Fhome_2Ftravis_2Fbuild_2Fkaizhu256_2Fnode-utility2_2Ftmp_2Fbuild_2Fapidoc.html.png)](https://kaizhu256.github.io/node-utility2/build..beta..travis-ci.org/apidoc.html) | ||
#### todo | ||
- split function buildApiDoc into file lib.apidoc.js | ||
- add npm script publish-deprecate | ||
- shFileTrimLeft example.* before shBuildGithubUpload | ||
- allow server-side stdout to be streamed to webapps | ||
- split function testRun into file lib.test.js | ||
@@ -40,12 +42,10 @@ - rename test.js -> test.$npm_package_nameAlias.js | ||
#### change since 345e02c6 | ||
- npm publish 2017.2.28 | ||
- build - add publish build-branch | ||
- build - auto-clean build if commit-message is CLEAN_BUILD | ||
- build - auto-tag branch in master build-branch | ||
- README.md - normalize browser-script in example.js | ||
- promote utility2 plug in README.md, api-doc, code-coverage, rollup, test-coverage | ||
- lib.db.js - add ttl-cache | ||
- lib.utility2.js - revamp function buildApiDoc | ||
- lib.utility2.sh - revamp shell-function shNpmPublish | ||
#### change since 36c37242 | ||
- npm publish 2017.3.9 | ||
- add functions moduleDirname and onErrorAssert | ||
- add shell-command shPasswordEnvUnset | ||
- rename name api-doc -> apidoc | ||
- revamp build scripts | ||
- split function buildApidoc into new file lib.apidoc.js | ||
- verify README.md's build-links during build | ||
- none | ||
@@ -55,3 +55,2 @@ | ||
- darwin or linux os | ||
- chromium-based browser or firefox browser | ||
@@ -65,4 +64,4 @@ | ||
|--:|:--|:--|:--| | ||
| test-server-1 : | [![github.com test-server](https://kaizhu256.github.io/node-utility2/GitHub-Mark-32px.png)](https://kaizhu256.github.io/node-utility2/build..master..travis-ci.org/app/index.html) | [![github.com test-server](https://kaizhu256.github.io/node-utility2/GitHub-Mark-32px.png)](https://kaizhu256.github.io/node-utility2/build..beta..travis-ci.org/app/index.html) | [![github.com test-server](https://kaizhu256.github.io/node-utility2/GitHub-Mark-32px.png)](https://kaizhu256.github.io/node-utility2/build..alpha..travis-ci.org/app/index.html)| | ||
| test-server-2 : | [![heroku.com test-server](https://kaizhu256.github.io/node-utility2/heroku-logo.75x25.png)](https://h1-utility2-master.herokuapp.com) | [![heroku.com test-server](https://kaizhu256.github.io/node-utility2/heroku-logo.75x25.png)](https://h1-utility2-beta.herokuapp.com) | [![heroku.com test-server](https://kaizhu256.github.io/node-utility2/heroku-logo.75x25.png)](https://h1-utility2-alpha.herokuapp.com)| | ||
| test-server-github : | [![github.com test-server](https://kaizhu256.github.io/node-utility2/GitHub-Mark-32px.png)](https://kaizhu256.github.io/node-utility2/build..master..travis-ci.org/app/index.html) | [![github.com test-server](https://kaizhu256.github.io/node-utility2/GitHub-Mark-32px.png)](https://kaizhu256.github.io/node-utility2/build..beta..travis-ci.org/app/index.html) | [![github.com test-server](https://kaizhu256.github.io/node-utility2/GitHub-Mark-32px.png)](https://kaizhu256.github.io/node-utility2/build..alpha..travis-ci.org/app/index.html)| | ||
| test-server-heroku : | [![heroku.com test-server](https://kaizhu256.github.io/node-utility2/heroku-logo.75x25.png)](https://h1-utility2-master.herokuapp.com) | [![heroku.com test-server](https://kaizhu256.github.io/node-utility2/heroku-logo.75x25.png)](https://h1-utility2-beta.herokuapp.com) | [![heroku.com test-server](https://kaizhu256.github.io/node-utility2/heroku-logo.75x25.png)](https://h1-utility2-alpha.herokuapp.com)| | ||
| test-report : | [![test-report](https://kaizhu256.github.io/node-utility2/build..master..travis-ci.org/test-report.badge.svg)](https://kaizhu256.github.io/node-utility2/build..master..travis-ci.org/test-report.html) | [![test-report](https://kaizhu256.github.io/node-utility2/build..beta..travis-ci.org/test-report.badge.svg)](https://kaizhu256.github.io/node-utility2/build..beta..travis-ci.org/test-report.html) | [![test-report](https://kaizhu256.github.io/node-utility2/build..alpha..travis-ci.org/test-report.badge.svg)](https://kaizhu256.github.io/node-utility2/build..alpha..travis-ci.org/test-report.html)| | ||
@@ -117,3 +116,3 @@ | coverage : | [![istanbul-coverage](https://kaizhu256.github.io/node-utility2/build..master..travis-ci.org/coverage.badge.svg)](https://kaizhu256.github.io/node-utility2/build..master..travis-ci.org/coverage.html/index.html) | [![istanbul-coverage](https://kaizhu256.github.io/node-utility2/build..beta..travis-ci.org/coverage.badge.svg)](https://kaizhu256.github.io/node-utility2/build..beta..travis-ci.org/coverage.html/index.html) | [![istanbul-coverage](https://kaizhu256.github.io/node-utility2/build..alpha..travis-ci.org/coverage.badge.svg)](https://kaizhu256.github.io/node-utility2/build..alpha..travis-ci.org/coverage.html/index.html)| | ||
# quickstart automated example | ||
![screen-capture](https://kaizhu256.github.io/node-utility2/build/screen-capture.testExampleJs.browser._2Ftmp_2Fapp_2Ftmp_2Fbuild_2Ftest-report.html.png) | ||
![screen-capture](https://kaizhu256.github.io/node-utility2/build/screen-capture.testExampleJs.browser._2Fhome_2Ftravis_2Fbuild_2Fkaizhu256_2Fnode-utility2_2Ftmp_2Fbuild_2Ftest-report.html.png) | ||
@@ -410,3 +409,3 @@ #### to run this example, follow the instruction in the script below | ||
<meta name="viewport" content="width=device-width, initial-scale=1">\n\ | ||
<title>{{env.npm_package_nameAlias}} v{{env.npm_package_version}}</title>\n\ | ||
<title>{{env.npm_package_nameAlias}} (v{{env.npm_package_version}})</title>\n\ | ||
<style>\n\ | ||
@@ -463,3 +462,3 @@ /*csslint\n\ | ||
utility2-comment -->\n\ | ||
{{env.npm_package_nameAlias}} v{{env.npm_package_version}}\n\ | ||
{{env.npm_package_nameAlias}} (v{{env.npm_package_version}})\n\ | ||
<!-- utility2-comment\n\ | ||
@@ -631,3 +630,3 @@ </a>\n\ | ||
#### output from utility2 | ||
![screen-capture](https://kaizhu256.github.io/node-utility2/build/screen-capture.testExampleJs.browser._2Ftmp_2Fapp_2Ftmp_2Fbuild_2Ftest-report.html.png) | ||
![screen-capture](https://kaizhu256.github.io/screen-capture.testExampleJs.browser._2Fhome_2Ftravis_2Fbuild_2Fkaizhu256_2Fnode-utility2_2Ftmp_2Fbuild_2Ftest-report.html.png) | ||
@@ -648,2 +647,3 @@ #### output from istanbul | ||
"utility2": "lib.utility2.sh", | ||
"utility2-apidoc": "lib.apidoc.js", | ||
"utility2-github-crud": "lib.github_crud.js", | ||
@@ -654,3 +654,3 @@ "utility2-istanbul": "lib.istanbul.js", | ||
}, | ||
"description": "the zero-dependency swiss-army-knife for building, testing, and deploying webapps", | ||
"description": "the zero-dependency swiss-army-knife tool for building, testing, and deploying webapps", | ||
"devDependencies": { | ||
@@ -696,2 +696,3 @@ "electron-lite": "kaizhu256/node-electron-lite#alpha" | ||
], | ||
"readmeParse": "1", | ||
"repository": { | ||
@@ -702,13 +703,11 @@ "type": "git", | ||
"scripts": { | ||
"build-ci": "./lib.utility2.sh shRun shReadmeBuild", | ||
"build-ci": "./lib.utility2.sh shReadmeTest build_ci.sh", | ||
"env": "env", | ||
"example.sh": "./lib.utility2.sh shRunScreenCapture shReadmeTestSh example.sh", | ||
"heroku-postbuild": "./lib.utility2.sh shRun shDeployHeroku", | ||
"postinstall": "if [ -f lib.utility2.npm-scripts.sh ]; then ./lib.utility2.npm-scripts.sh postinstall; fi", | ||
"publish-alias": "VERSION=$(npm info $npm_package_name version); for ALIAS in apidocs busybox busybox2 busyweb test-lite; do ./lib.utility2.sh shRun shNpmPublishAs . $ALIAS $VERSION; ./lib.utility2.sh shRun shNpmTestPublished $ALIAS || exit $?; done", | ||
"heroku-postbuild": "./lib.utility2.sh shDeployHeroku", | ||
"postinstall": "if [ -f lib.utility2.npm_scripts.sh ]; then ./lib.utility2.npm_scripts.sh postinstall; fi", | ||
"publish-alias": "VERSION=$(npm info $npm_package_name version); for ALIAS in busybox busybox2 busyweb test-lite; do ./lib.utility2.sh shNpmPublishAs . $ALIAS $VERSION; ./lib.utility2.sh shNpmTestPublished $ALIAS || exit $?; done", | ||
"start": "export PORT=${PORT:-8080} && if [ -f assets.app.js ]; then node assets.app.js; return; fi && export npm_config_mode_auto_restart=1 && ./lib.utility2.sh shRun shIstanbulCover test.js", | ||
"test": "export PORT=$(./lib.utility2.sh shServerPortRandom) && export PORT_REPL=$(./lib.utility2.sh shServerPortRandom) && export npm_config_mode_auto_restart=1 && ./lib.utility2.sh test test.js", | ||
"test-all": "npm test --mode-coverage=all" | ||
"test": "export PORT=$(./lib.utility2.sh shServerPortRandom) && export PORT_REPL=$(./lib.utility2.sh shServerPortRandom) && export npm_config_mode_auto_restart=1 && ./lib.utility2.sh test test.js" | ||
}, | ||
"version": "2017.2.28" | ||
"version": "2017.3.9" | ||
} | ||
@@ -845,109 +844,38 @@ ``` | ||
- build.sh | ||
- build_ci.sh | ||
```shell | ||
# build.sh | ||
# build_ci.sh | ||
# this shell script will run the build for this package | ||
shBuild() {(set -e | ||
# this function will run the main build | ||
#!! coverage-hack | ||
# init env | ||
. ./lib.utility2.sh && shInit | ||
# init github-gh-pages commit-limit | ||
export COMMIT_LIMIT=20 | ||
case "$CI_BRANCH" in | ||
alpha) | ||
shBuildCiDefault | ||
;; | ||
beta) | ||
shBuildCiDefault | ||
;; | ||
master) | ||
shBuildCiDefault | ||
git tag "$npm_package_version" | ||
git push "git@github.com:$GITHUB_REPO.git" "$npm_package_version" || true | ||
;; | ||
publish) | ||
printf "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > "$HOME/.npmrc" | ||
export CI_BRANCH=alpha | ||
shNpmPublishAs | ||
shBuildCiDefault | ||
npm run publish-alias | ||
git push "git@github.com:$GITHUB_REPO.git" publish:beta | ||
;; | ||
esac | ||
# docker build | ||
docker --version 2>/dev/null || return | ||
# if running legacy-node, then return | ||
[ "$TRAVIS" ] && [ "$(node --version)" \< "v7.0" ] && return || true | ||
export DOCKER_TAG="$(printf "$CI_BRANCH" | sed -e "s/docker.//")" | ||
# if $DOCKER_TAG is not unique from $CI_BRANCH, then return | ||
[ "$DOCKER_TAG" = "$CI_BRANCH" ] && return || true | ||
# docker build | ||
(printf "0" > "$npm_config_file_tmp" && | ||
docker build -f "tmp/README.Dockerfile.$DOCKER_TAG" -t "$GITHUB_REPO:$DOCKER_TAG" . || | ||
printf $? > "$npm_config_file_tmp") | tee "tmp/build/build.$CI_BRANCH.log" | ||
EXIT_CODE="$(cat "$npm_config_file_tmp")" | ||
[ "$EXIT_CODE" != 0 ] && return "$EXIT_CODE" || true | ||
# docker test | ||
case "$CI_BRANCH" in | ||
docker.base) | ||
# npm test utility2 | ||
for PACKAGE in utility2 "kaizhu256/node-utility2#alpha" | ||
do | ||
docker run "$GITHUB_REPO:$DOCKER_TAG" /bin/bash -c "set -e | ||
curl https://raw.githubusercontent.com\ | ||
/kaizhu256/node-utility2/alpha/lib.utility2.sh > /tmp/lib.utility2.sh | ||
. /tmp/lib.utility2.sh | ||
npm install '$PACKAGE' | ||
cd node_modules/utility2 | ||
shBuildInsideDocker | ||
" | ||
done | ||
;; | ||
esac | ||
# https://docs.travis-ci.com/user/docker/#Pushing-a-Docker-Image-to-a-Registry | ||
# docker push | ||
if [ "$DOCKER_PASSWORD" ] | ||
then | ||
docker login -p="$DOCKER_PASSWORD" -u="$DOCKER_USERNAME" | ||
docker push "$GITHUB_REPO:$DOCKER_TAG" | ||
fi | ||
shBuildCiInternalPost() {(set -e | ||
#// coverage-hack | ||
shDeployGithub | ||
shDeployHeroku | ||
shReadmeBuildLinkVerify | ||
)} | ||
shBuildCiTestPost() {(set -e | ||
# this function will run the post-test build | ||
# if running legacy-node, then return | ||
[ "$(node --version)" \< "v7.0" ] && return || true | ||
export NODE_ENV=production | ||
# deploy app to gh-pages | ||
(export MODE_BUILD=deployGithub && shDeployGithub) || return $? | ||
# deploy app to heroku | ||
(export MODE_BUILD=deployHeroku && shDeployHeroku) || return $? | ||
)} | ||
shBuildCiTestPre() {(set -e | ||
# this function will run the pre-test build | ||
# test example.js | ||
shBuildCiInternalPre() {(set -e | ||
shReadmeTest example.js | ||
# save screen-capture | ||
(export MODE_BUILD=testExampleJs && | ||
shFileTrimLeft tmp/README.example.js && | ||
shRunScreenCapture shReadmeTestExampleJs) || return $? | ||
# screen-capture example.js coverage | ||
(export MODE_BUILD=testExampleJs && | ||
export modeBrowserTest=screenCapture && | ||
export url=/tmp/app/tmp/build/coverage.html/app/example.js.html && | ||
export url="/tmp/app/tmp/build/coverage.html/app/example.js.html" && | ||
shBrowserTest && | ||
export url="$npm_config_dir_build/test-report.html" && | ||
shBrowserTest) || return $? | ||
# screen-capture example.js test-report | ||
(export MODE_BUILD=testExampleJs && | ||
export modeBrowserTest=screenCapture && | ||
export url=/tmp/app/tmp/build/test-report.html && | ||
shBrowserTest) || return $? | ||
# test example.sh | ||
(export MODE_BUILD=testExampleSh && npm run example.sh) || return $? | ||
# test published-package | ||
(export MODE_BUILD=npmTestPublished && shRunScreenCapture shNpmTestPublished) || return $? | ||
shReadmeTest example.sh | ||
shNpmTestPublished | ||
)} | ||
shBuild | ||
shBuildCiPost() {(set -e | ||
return | ||
)} | ||
shBuildCiPre() {(set -e | ||
return | ||
)} | ||
# init env | ||
. ./lib.utility2.sh && shBuildCi | ||
``` | ||
@@ -954,0 +882,0 @@ |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Install scripts
Supply chain riskInstall scripts are run when the package is installed. The majority of malware in npm is hidden in install scripts.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Install scripts
Supply chain riskInstall scripts are run when the package is installed. The majority of malware in npm is hidden in install scripts.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
2253312
15
38638
874
102
34