<NME> README.md
<BEF> # `bin`stubs

  > _[Binstubs are just scripts that can be executed directly: `bin/test` as opposed to `sh bin/test`](https://github.com/devpunks/snuggsi/pull/175#issuecomment-405039811)_ - [@brandondees](https://github.com/brandondees)

  Imperative convenience scripts Used conjunctively to automate declarative actions.
  Could potentially be used on "User Land" applications in the near future.

  **⚠️ For internal use only** _(for the time being)_
  
  _The following script will clone repository and install developer dependencies_

```bash
$ git clone https://github.com/devpunks/snuggsi.git
$ cd snuggsi && npm i
```

  If you need support for windows [file an issue](https://github.com/devpunks/snuggsi/issues)
  with [this link appended to description](http://tldp.org/LDP/abs/html/dosbatch.html).


## Table of Contents

  `bin/`

  - [`browse`](#browse)
  - [`bundle`](#bundle)
  - [`compile`](#compile)
  - [`compress`](#compress)
  - [`cover`](#cover)
  - [`crank`](#crank)
  - [`deploy`](#deploy)
  - [`distribute`](#distribute)
  - [`integrate`](#integrate)
  - [`lint`](#lint)
  - [`package`](#package)
  - [`publish`](#publish)
  - [`serve`](#serve)
  - [`shrink`](#shrink)
  - [`snuggsi`](#snuggsi)
  - [`style`](#style)
  - [`test`](#test)
  - [`transpile`](#transpile)
  - [`watch`](#watch)
  - [`weigh`](#weigh)


## [`browse`](browse)

```bash
$ bin/browse [root]
```

  Executes the following step process _(in parallel)_:

  0. [`serve`](#serve)
  1. Launch [BrowserSync](https://browsersync.io)
  2. [`watch`](#watch)

  ⚠️  _See [BrowserSync command line options](https://browsersync.io/docs/options) for configuration documentation._

  0. [`bundle`](#bundle)
  1. [`transpile`](#transpile)
  2. [`shrink`](#shrink)


## [compress](compress)

  - `PORT` - Server port _(Defaults to **3000**)_
  - `BROWSER_PORT` - Browser port _(Defaults to next available port after server `PORT` i.e. **3001** when `PORT=3000`)_


## [`bundle`](bundle)

```bash
$ bin/bundle
```

  Simple [`cat`](https://en.wikipedia.org/wiki/Cat_(Unix)) script for appending standalone ECMASCript modules into a single file.


## [`compile`](compile)

```bash
$ bin/compile
```

  Compiles distribution into a tiny little file.
  Executes the following step process _(in order of appearance)_:

  ⚠️  _Process will halt & prevent further execution upon failures._

  0. [`bundle`](#bundle)
  1. [`transpile`](#transpile)
  2. [`shrink`](#shrink)
  3. [`compress`](#compress)


## [`compress`](compress)

```bash
$ bin/compress
```

  Compression routine used for
  [`Content-Encoding`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding)
  negotiation.

  Supports
    [`brotli`](https://en.wikipedia.org/wiki/Brotli) _(.br)_,
    [`gzip`](https://en.wikipedia.org/wiki/Gzip) _(.gz)_,
  & [`deflate`](https://en.wikipedia.org/wiki/Zlib) _(.zo)_
    Content Encoding tokens


## [`cover`](cover)

```bash
$ bin/cover
```

Uses
[`nyc`](https://github.com/istanbuljs/nyc)


## [`crank`](crank)

```bash
$ bin/crank
```

  Executes the following step process _(in order of appearance)_:
  ⚠️  _Build process will halt & prevent further execution upon failures._

  0. [`compile`](#compile)
  1. [`lint`](#lint)
  2. [`cover`](#coverage)
  3. [`weigh`](#weigh)
  4. [`distribute`](#distribute)
  5. [`deploy`](#deploy)


## [`deploy`](deploy)

```bash
$ bin/deploy
```

  Pushes repository to [Δ Now](https://zeit.co/now) hosting service.


## [`distribute`](distribute)

```bash
$ bin/distribute
```


  Used to mark revisions of library upstream on [Github](https://github.com/devpunks/snuggsi)
  and [npm](https://npmjs.com/package/snuggsi).

  **NOTE:** A chronological [CalVer](https://calver.org) strategy is used instead of [SemVer](https://semver.org).


### References

  - https://calver.org/overview.html
  - https://github.com/mahmoud/calver
  - https://docs.npmjs.com/cli/v6/using-npm/semver
  - https://sedimental.org/designing_a_version.html
  - https://en.wikipedia.org/wiki/Software_versioning
  - https://github.com/mahmoud/zerover
  - [Tex Versioning](https://en.wikipedia.org/wiki/Software_versioning#TeX)
  - [Difference between `LTS` and `stable`](https://stackoverflow.com/questions/33661274/what-are-the-differences-between-long-term-support-lts-and-stable-versions-of)


#### Github Actions

  - Building and testing Node.json
  - Github Encrypted Secrets - https://docs.github.com/en/free-pro-team@latest/actions/reference/encrypted-secrets
  - Publishing packages to npm directory from Github - https://docs.github.com/en/free-pro-team@latest/actions/guides/publishing-nodejs-packages#publishing-packages-to-the-npm-registry
  - Push tags with commits - https://stackoverflow.com/questions/3745135/push-git-commits-tags-simultaneously

  Steps:

### CalVer

  - [Ubuntu Version History](https://en.wikipedia.org/wiki/Ubuntu_version_history)


#### Annual Major Release
``` bash
git pull -r origin master
npm whoami
npm owner
npm org devpunks ls
npm token
npm config
npm issues # Github issues
npm doctor
npm audit  # Cleanup npm packages
npm ci
npm version major -m "⏰  %s CalVer Annual Major Release"
npm cache add <folder>
npm shrinkwrap # https://docs.npmjs.com/cli/v6/configuring-npm/package-locks
npm deprecate <pkg>[@<previous-year-version>] <message>
npm publish --tag=stable
npm version prepatch -m "⏰  %s Happy New Year !"
git push origin master --follow-tags

# Create a git release - https://docs.github.com/en/free-pro-team@latest/rest/reference/repos#create-a-release--code-samples
```


#### Monthly Minor Release

``` bash
# Update node
git pull -r origin master
npm view
npm ls
npm outdated
npm install -g npm@latest
npm update --also=dev
npm prune
npm dedupe
npm link # https://docs.npmjs.com/cli/v6/commands/npm-link
npm rebuild
npm update
npm pack
npm issues # Github issues
npm bugs # Github issues
npm version minor -m "⏰  %s CalVer Monthly Minor Release"
npm publish --tag=stable
npm version prepatch -m "⏰  %s It\'s the first of the month!"
git push origin master --follow-tags

# Create a git release - https://docs.github.com/en/free-pro-team@latest/rest/reference/repos#create-a-release--code-samples
```


#### Daily Patch Release

``` bash
# Automated Midnight

git pull -r origin master
npm version patch
npm publish
npm version prepatch -m "😴  %s Night Night !"
git push origin master --follow-tags


# Tools

npm edit <pkg>[/<subpkg>...]
npm explore some-dependency -- git pull origin master
npm test


# Manual Pre Release & Bug fixes

git pull -r origin master
npm version prerelease
npm publish
git push origin master --follow-tags
[
# Create a git release - https://docs.github.com/en/free-pro-team@latest/rest/reference/repos#create-a-release--code-samples
```

## [`integrate`](integrate)

```bash
$ bin/integrate
```

  Hook used for [Travis CI](https://travis-ci.org) continuous integration.
  This is typically ran after pushes to Github branches.

  _See [.travis.yml](/.travis.yml#L20) for more details._


## [`lint`](lint)

```bash
$ bin/lint [file]
```

  Performs [lint check](https://en.wikipedia.org/wiki/Lint_(software))
  on code in specified file.

  Uses [`JSStandard`](https://github.com/feross/standard)


### Arguments

  - `path` - _(optional)_ Specific  file to run lint check. _(Defaults to **`dist/snuggsi.es`**)_


## [`package`](package)

```bash
$ bin/package
```

  🚧 This algorithm will be implemented to minify distribution. (i.e. Tree Shaking)

  0. Packaging components
  1. Containerizing components


### References

  - [Tree Shaking](https://en.wikipedia.org/wiki/Tree_shaking)
  - [Dead Code Elemination](https://en.wikipedia.org/wiki/Dead_code_elimination)
  - [MDN Tree Shaking](https://developer.mozilla.org/en-US/docs/Glossary/Tree_shaking)
  - [Dead Code Elemination During Bundling](http://exploringjs.com/es6/ch_modules.html#_benefit-dead-code-elimination-during-bundling)
  - [Docker Containerization](https://docs.docker.com/engine/examples/)
  - [Dockerizing a Node.js Web App](https://nodejs.org/en/docs/guides/nodejs-docker-webapp/)


## [`publish`](publish)

```bash
$ bin/publish
```
  Publishes static assets (i.e. examples, markup, styles, & scripts)


## [`serve`](serve)

```bash
$ bin/serve [root]
```

  Launches web server with `root` as main entry point.


### Environment Options

  - `PORT` - Server port _(Defaults to **80**)_


### Arguments

  - `root` - _(optional)_ path to serve from `/` _(Defaults to **`.` current directory**)_


## [`shrink`](shrink)

```bash
$ bin/shrink
```

  Run `uglify-js` and `uglify-es` along with minification


## [`snuggsi`](snuggsi)

```bash
$ snuggsi [command]
```

  Main entry point for `snuggsi` CLI (Command Line Interface).
  The help menu will display if no command is provided.

  _[See list of optional commands above](#table-of-contents)_


### Environment Options

  - `NODE_PATH` - Override `NODE_PATH` global location _(See [Loading from the global folders](https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders) Node documentation)_


## [`style`](style)

```bash
$ bin/style [component-directory | style-file.{sss,css}]
```

Please see [style#readme](/style#readme) for details.


## [`test`](test)


```bash
$ test [path]
```

  Run test suite or specify an optional entry point to test.

  Uses [`tape`](https://github.com/substack/tape)
  and [`tap-nyc`](https://github.com/MegaArman/tap-nyc)


### Arguments

  - `path` - _(optional)_ Specific test directory or file. _(Defaults to run entire test suite)_


## [`transpile`](transpile)

```bash
$ bin/transpile [input] [output]
```
  Run [Buble](https://buble.surge.sh) for transpilation from [ECMAScript to Javascript](https://stackoverflow.com/questions/912479/what-is-the-difference-between-javascript-and-ecmascript)


### Arguments

  - `input`  - _(optional)_ path _(Defaults to **dist/snuggsi.es**)_
  - `output` - _(optional)_ path _(Defaults to **dist/snuggsi.js**)_


## [`watch`](watch)

```bash
$ bin/watch [directory]
```
  Watch base directory for changes to markup, styles, and scripts.



### Arguments

  - `directory` - _(optional)_ path to watch for changes _(Defaults to **current directory `.`**)_


## [`weigh`](weigh)

```bash
$ bin/weigh [library]
```

  Routine to validate overall weight of library.
  Validate `snuggsi.min.es.br` is within
  [one Ethernet frame](https://en.wikipedia.org/wiki/Ethernet_frame)
  _(1500 [OCTETS](https://en.wikipedia.org/wiki/Octet_(computing)))_.


### Arguments

  - `library` - _(optional)_ path to watch for changes _(Defaults to **`dist/snuggsi.min.es.br`**)_



# References

  - https://gist.github.com/branneman/8775568
  - https://gist.github.com/branneman/8048520
  - https://stackoverflow.com/questions/10265798/determine-project-root-from-a-running-node-js-application
  - https://gist.github.com/branneman/8775568 https://gist.github.com/branneman/8048520 https://stackoverflow.com/questions/10265798/determine-projec
  - NODE_PATH on Heroku https://lostechies.com/derickbailey/2014/02/20/how-i-work-around-the-require-problem-in-nodejs

<MSG> Add transpile routine to bin/compress

<DFF> @@ -61,6 +61,7 @@ $ bin/compile
   0. [`bundle`](#bundle)
   1. [`transpile`](#transpile)
   2. [`shrink`](#shrink)
+  2. [`compress`](#compress)
 
 
 ## [compress](compress)

{'commit': 'diff --git a/bin/README.md b/bin/README.md\nindex 0ad64a40..6ca94e90 100644\n--- a/bin/README.md\n+++ b/bin/README.md\n@@ -61,6 +61,7 @@ $ bin/compile\n   0. [`bundle`](#bundle)\n   1. [`transpile`](#transpile)\n   2. [`shrink`](#shrink)\n+  2. [`compress`](#compress)\n \n \n ## [compress](compress)\n', 'commit_subject': 'Add transpile routine to bin/compress', 'repo_name': 'devpunks/snuggsi', 'committer': {'name': 'Snuggs', 'email': 'c6b737713e2e92b7bd225b33e0014d7aadc48be6@gmail.com', 'time_sec': '1544467539', 'tz_offset': '-300', 'date': {'seconds': '1544467539'}}, 'commit_tree': '7060cad07bcfa5c702de47fd75c03cb2b387e115', 'commit_message': 'Add transpile routine to bin/compress\n', 'language_name': 'HTML', 'license': 'mit', 'hunks': '@@ -61,6 +61,7 @@ $ bin/compile\n   0. [`bundle`](#bundle)\n   1. [`transpile`](#transpile)\n   2. [`shrink`](#shrink)\n+  2. [`compress`](#compress)\n \n \n ## [compress](compress)\n', 'addition_count': 1, 'deletion_count': 0, 'src_file': 'a/bin/README.md', 'tgt_file': 'b/bin/README.md', 'file_extension': '.md', 'before_file': '# `bin`stubs\n\n  > _[Binstubs are just scripts that can be executed directly: `bin/test` as opposed to `sh bin/test`](https://github.com/devpunks/snuggsi/pull/175#issuecomment-405039811)_ - [@brandondees](https://github.com/brandondees)\n\n  Imperative convenience scripts Used conjunctively to automate declarative actions.\n  Could potentially be used on "User Land" applications in the near future.\n\n  **⚠️ For internal use only** _(for the time being)_\n  \n  _The following script will clone repository and install developer dependencies_\n\n```bash\n$ git clone https://github.com/devpunks/snuggsi.git\n$ cd snuggsi && npm i\n```\n\n  If you need support for windows [file an issue](https://github.com/devpunks/snuggsi/issues)\n  with [this link appended to description](http://tldp.org/LDP/abs/html/dosbatch.html).\n\n\n## Table of Contents\n\n  `bin/`\n\n  - [`browse`](#browse)\n  - [`bundle`](#bundle)\n  - [`compile`](#compile)\n  - [`compress`](#compress)\n  - [`cover`](#cover)\n  - [`crank`](#crank)\n  - [`deploy`](#deploy)\n  - [`distribute`](#distribute)\n  - [`integrate`](#integrate)\n  - [`lint`](#lint)\n  - [`package`](#package)\n  - [`publish`](#publish)\n  - [`serve`](#serve)\n  - [`shrink`](#shrink)\n  - [`snuggsi`](#snuggsi)\n  - [`style`](#style)\n  - [`test`](#test)\n  - [`transpile`](#transpile)\n  - [`watch`](#watch)\n  - [`weigh`](#weigh)\n\n\n## [`browse`](browse)\n\n```bash\n$ bin/browse [root]\n```\n\n  Executes the following step process _(in parallel)_:\n\n  0. [`serve`](#serve)\n  1. Launch [BrowserSync](https://browsersync.io)\n  2. [`watch`](#watch)\n\n  ⚠️  _See [BrowserSync command line options](https://browsersync.io/docs/options) for configuration documentation._\n\n  0. [`bundle`](#bundle)\n  1. [`transpile`](#transpile)\n  2. [`shrink`](#shrink)\n\n\n## [compress](compress)\n\n  - `PORT` - Server port _(Defaults to **3000**)_\n  - `BROWSER_PORT` - Browser port _(Defaults to next available port after server `PORT` i.e. **3001** when `PORT=3000`)_\n\n\n## [`bundle`](bundle)\n\n```bash\n$ bin/bundle\n```\n\n  Simple [`cat`](https://en.wikipedia.org/wiki/Cat_(Unix)) script for appending standalone ECMASCript modules into a single file.\n\n\n## [`compile`](compile)\n\n```bash\n$ bin/compile\n```\n\n  Compiles distribution into a tiny little file.\n  Executes the following step process _(in order of appearance)_:\n\n  ⚠️  _Process will halt & prevent further execution upon failures._\n\n  0. [`bundle`](#bundle)\n  1. [`transpile`](#transpile)\n  2. [`shrink`](#shrink)\n  3. [`compress`](#compress)\n\n\n## [`compress`](compress)\n\n```bash\n$ bin/compress\n```\n\n  Compression routine used for\n  [`Content-Encoding`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding)\n  negotiation.\n\n  Supports\n    [`brotli`](https://en.wikipedia.org/wiki/Brotli) _(.br)_,\n    [`gzip`](https://en.wikipedia.org/wiki/Gzip) _(.gz)_,\n  & [`deflate`](https://en.wikipedia.org/wiki/Zlib) _(.zo)_\n    Content Encoding tokens\n\n\n## [`cover`](cover)\n\n```bash\n$ bin/cover\n```\n\nUses\n[`nyc`](https://github.com/istanbuljs/nyc)\n\n\n## [`crank`](crank)\n\n```bash\n$ bin/crank\n```\n\n  Executes the following step process _(in order of appearance)_:\n  ⚠️  _Build process will halt & prevent further execution upon failures._\n\n  0. [`compile`](#compile)\n  1. [`lint`](#lint)\n  2. [`cover`](#coverage)\n  3. [`weigh`](#weigh)\n  4. [`distribute`](#distribute)\n  5. [`deploy`](#deploy)\n\n\n## [`deploy`](deploy)\n\n```bash\n$ bin/deploy\n```\n\n  Pushes repository to [Δ Now](https://zeit.co/now) hosting service.\n\n\n## [`distribute`](distribute)\n\n```bash\n$ bin/distribute\n```\n\n\n  Used to mark revisions of library upstream on [Github](https://github.com/devpunks/snuggsi)\n  and [npm](https://npmjs.com/package/snuggsi).\n\n  **NOTE:** A chronological [CalVer](https://calver.org) strategy is used instead of [SemVer](https://semver.org).\n\n\n### References\n\n  - https://calver.org/overview.html\n  - https://github.com/mahmoud/calver\n  - https://docs.npmjs.com/cli/v6/using-npm/semver\n  - https://sedimental.org/designing_a_version.html\n  - https://en.wikipedia.org/wiki/Software_versioning\n  - https://github.com/mahmoud/zerover\n  - [Tex Versioning](https://en.wikipedia.org/wiki/Software_versioning#TeX)\n  - [Difference between `LTS` and `stable`](https://stackoverflow.com/questions/33661274/what-are-the-differences-between-long-term-support-lts-and-stable-versions-of)\n\n\n#### Github Actions\n\n  - Building and testing Node.json\n  - Github Encrypted Secrets - https://docs.github.com/en/free-pro-team@latest/actions/reference/encrypted-secrets\n  - Publishing packages to npm directory from Github - https://docs.github.com/en/free-pro-team@latest/actions/guides/publishing-nodejs-packages#publishing-packages-to-the-npm-registry\n  - Push tags with commits - https://stackoverflow.com/questions/3745135/push-git-commits-tags-simultaneously\n\n  Steps:\n\n### CalVer\n\n  - [Ubuntu Version History](https://en.wikipedia.org/wiki/Ubuntu_version_history)\n\n\n#### Annual Major Release\n``` bash\ngit pull -r origin master\nnpm whoami\nnpm owner\nnpm org devpunks ls\nnpm token\nnpm config\nnpm issues # Github issues\nnpm doctor\nnpm audit  # Cleanup npm packages\nnpm ci\nnpm version major -m "⏰  %s CalVer Annual Major Release"\nnpm cache add <folder>\nnpm shrinkwrap # https://docs.npmjs.com/cli/v6/configuring-npm/package-locks\nnpm deprecate <pkg>[@<previous-year-version>] <message>\nnpm publish --tag=stable\nnpm version prepatch -m "⏰  %s Happy New Year !"\ngit push origin master --follow-tags\n\n# Create a git release - https://docs.github.com/en/free-pro-team@latest/rest/reference/repos#create-a-release--code-samples\n```\n\n\n#### Monthly Minor Release\n\n``` bash\n# Update node\ngit pull -r origin master\nnpm view\nnpm ls\nnpm outdated\nnpm install -g npm@latest\nnpm update --also=dev\nnpm prune\nnpm dedupe\nnpm link # https://docs.npmjs.com/cli/v6/commands/npm-link\nnpm rebuild\nnpm update\nnpm pack\nnpm issues # Github issues\nnpm bugs # Github issues\nnpm version minor -m "⏰  %s CalVer Monthly Minor Release"\nnpm publish --tag=stable\nnpm version prepatch -m "⏰  %s It\\\'s the first of the month!"\ngit push origin master --follow-tags\n\n# Create a git release - https://docs.github.com/en/free-pro-team@latest/rest/reference/repos#create-a-release--code-samples\n```\n\n\n#### Daily Patch Release\n\n``` bash\n# Automated Midnight\n\ngit pull -r origin master\nnpm version patch\nnpm publish\nnpm version prepatch -m "😴  %s Night Night !"\ngit push origin master --follow-tags\n\n\n# Tools\n\nnpm edit <pkg>[/<subpkg>...]\nnpm explore some-dependency -- git pull origin master\nnpm test\n\n\n# Manual Pre Release & Bug fixes\n\ngit pull -r origin master\nnpm version prerelease\nnpm publish\ngit push origin master --follow-tags\n[\n# Create a git release - https://docs.github.com/en/free-pro-team@latest/rest/reference/repos#create-a-release--code-samples\n```\n\n## [`integrate`](integrate)\n\n```bash\n$ bin/integrate\n```\n\n  Hook used for [Travis CI](https://travis-ci.org) continuous integration.\n  This is typically ran after pushes to Github branches.\n\n  _See [.travis.yml](/.travis.yml#L20) for more details._\n\n\n## [`lint`](lint)\n\n```bash\n$ bin/lint [file]\n```\n\n  Performs [lint check](https://en.wikipedia.org/wiki/Lint_(software))\n  on code in specified file.\n\n  Uses [`JSStandard`](https://github.com/feross/standard)\n\n\n### Arguments\n\n  - `path` - _(optional)_ Specific  file to run lint check. _(Defaults to **`dist/snuggsi.es`**)_\n\n\n## [`package`](package)\n\n```bash\n$ bin/package\n```\n\n  🚧 This algorithm will be implemented to minify distribution. (i.e. Tree Shaking)\n\n  0. Packaging components\n  1. Containerizing components\n\n\n### References\n\n  - [Tree Shaking](https://en.wikipedia.org/wiki/Tree_shaking)\n  - [Dead Code Elemination](https://en.wikipedia.org/wiki/Dead_code_elimination)\n  - [MDN Tree Shaking](https://developer.mozilla.org/en-US/docs/Glossary/Tree_shaking)\n  - [Dead Code Elemination During Bundling](http://exploringjs.com/es6/ch_modules.html#_benefit-dead-code-elimination-during-bundling)\n  - [Docker Containerization](https://docs.docker.com/engine/examples/)\n  - [Dockerizing a Node.js Web App](https://nodejs.org/en/docs/guides/nodejs-docker-webapp/)\n\n\n## [`publish`](publish)\n\n```bash\n$ bin/publish\n```\n  Publishes static assets (i.e. examples, markup, styles, & scripts)\n\n\n## [`serve`](serve)\n\n```bash\n$ bin/serve [root]\n```\n\n  Launches web server with `root` as main entry point.\n\n\n### Environment Options\n\n  - `PORT` - Server port _(Defaults to **80**)_\n\n\n### Arguments\n\n  - `root` - _(optional)_ path to serve from `/` _(Defaults to **`.` current directory**)_\n\n\n## [`shrink`](shrink)\n\n```bash\n$ bin/shrink\n```\n\n  Run `uglify-js` and `uglify-es` along with minification\n\n\n## [`snuggsi`](snuggsi)\n\n```bash\n$ snuggsi [command]\n```\n\n  Main entry point for `snuggsi` CLI (Command Line Interface).\n  The help menu will display if no command is provided.\n\n  _[See list of optional commands above](#table-of-contents)_\n\n\n### Environment Options\n\n  - `NODE_PATH` - Override `NODE_PATH` global location _(See [Loading from the global folders](https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders) Node documentation)_\n\n\n## [`style`](style)\n\n```bash\n$ bin/style [component-directory | style-file.{sss,css}]\n```\n\nPlease see [style#readme](/style#readme) for details.\n\n\n## [`test`](test)\n\n\n```bash\n$ test [path]\n```\n\n  Run test suite or specify an optional entry point to test.\n\n  Uses [`tape`](https://github.com/substack/tape)\n  and [`tap-nyc`](https://github.com/MegaArman/tap-nyc)\n\n\n### Arguments\n\n  - `path` - _(optional)_ Specific test directory or file. _(Defaults to run entire test suite)_\n\n\n## [`transpile`](transpile)\n\n```bash\n$ bin/transpile [input] [output]\n```\n  Run [Buble](https://buble.surge.sh) for transpilation from [ECMAScript to Javascript](https://stackoverflow.com/questions/912479/what-is-the-difference-between-javascript-and-ecmascript)\n\n\n### Arguments\n\n  - `input`  - _(optional)_ path _(Defaults to **dist/snuggsi.es**)_\n  - `output` - _(optional)_ path _(Defaults to **dist/snuggsi.js**)_\n\n\n## [`watch`](watch)\n\n```bash\n$ bin/watch [directory]\n```\n  Watch base directory for changes to markup, styles, and scripts.\n\n\n\n### Arguments\n\n  - `directory` - _(optional)_ path to watch for changes _(Defaults to **current directory `.`**)_\n\n\n## [`weigh`](weigh)\n\n```bash\n$ bin/weigh [library]\n```\n\n  Routine to validate overall weight of library.\n  Validate `snuggsi.min.es.br` is within\n  [one Ethernet frame](https://en.wikipedia.org/wiki/Ethernet_frame)\n  _(1500 [OCTETS](https://en.wikipedia.org/wiki/Octet_(computing)))_.\n\n\n### Arguments\n\n  - `library` - _(optional)_ path to watch for changes _(Defaults to **`dist/snuggsi.min.es.br`**)_\n\n\n\n# References\n\n  - https://gist.github.com/branneman/8775568\n  - https://gist.github.com/branneman/8048520\n  - https://stackoverflow.com/questions/10265798/determine-project-root-from-a-running-node-js-application\n  - https://gist.github.com/branneman/8775568 https://gist.github.com/branneman/8048520 https://stackoverflow.com/questions/10265798/determine-projec\n  - NODE_PATH on Heroku https://lostechies.com/derickbailey/2014/02/20/how-i-work-around-the-require-problem-in-nodejs\n', 'message': 'Add transpile routine to bin/compress\n', 'author_name': 'Snuggs', 'lang': 'md'}