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

rejoinder

Package Overview
Dependencies
Maintainers
0
Versions
42
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

rejoinder - npm Package Compare versions

Comparing version 0.3.20 to 0.3.21

dist/src/index.d.ts

99

package.json
{
"name": "rejoinder",
"version": "0.3.20",
"description": "A generator of smart, pretty, and organized output for Node/JS scripts in the terminal",
"repository": {
"type": "git",
"url": "https://github.com/Xunnamius/rejoinder"
},
"main": "lib/rejoinder.js",
"author": "Xunnamius",
"license": "ISC",
"scripts": {
"test": "mocha --recursive --reporter spec ./test",
"docs": "documentation build -f md -o API.md"
},
"version": "0.3.21",
"description": "A tiny library for creating gorgeous terminal output",
"keywords": [

@@ -27,13 +16,83 @@ "echo",

],
"optionalDependencies": {
"shelljs": "^0.8.4"
"homepage": "https://github.com/Xunnamius/rejoinder#readme",
"bugs": {
"url": "https://github.com/Xunnamius/rejoinder/issues"
},
"repository": {
"type": "git",
"url": "git+https://github.com/Xunnamius/rejoinder.git"
},
"license": "MIT",
"author": "Xunnamius",
"sideEffects": false,
"type": "commonjs",
"exports": {
".": {
"types": "./dist/src/index.d.ts",
"default": "./dist/src/index.js"
},
"./package": "./package.json",
"./package.json": "./package.json"
},
"typesVersions": {
"*": {
"index": [
"dist/src/index.d.ts"
],
"package": [
"package.json"
]
}
},
"files": [
"/dist",
"/LICENSE",
"/package.json",
"/README.md"
],
"workspaces": [
"packages/*",
"!packages/*.ignore*"
],
"scripts": {
"build": "npm run build:dist --",
"build:changelog": "symbiote build changelog --env NODE_NO_WARNINGS=1",
"build:dist": "symbiote build distributables --env NODE_NO_WARNINGS=1",
"build:docs": "symbiote build docs --env NODE_NO_WARNINGS=1",
"clean": "symbiote clean --env NODE_NO_WARNINGS=1",
"format": "symbiote format --env NODE_NO_WARNINGS=1 --hush",
"info": "symbiote project info --env NODE_NO_WARNINGS=1",
"lint": "npm run lint:package --",
"lint:package": "symbiote lint --env NODE_NO_WARNINGS=1 --hush",
"lint:packages": "symbiote lint --env NODE_NO_WARNINGS=1 --hush --scope unlimited",
"lint:project": "symbiote project lint --env NODE_NO_WARNINGS=1",
"list-tasks": "symbiote list-tasks --env NODE_NO_WARNINGS=1 --scope this-package",
"prepare": "symbiote project prepare --env NODE_NO_WARNINGS=1",
"release": "symbiote release --env NODE_NO_WARNINGS=1",
"renovate": "symbiote project renovate --env NODE_NO_WARNINGS=1 --hush --github-reconfigure-repo --regenerate-assets --assets-preset 'basic cli lib lib-esm lib-web react nextjs'",
"start": "symbiote start --env NODE_NO_WARNINGS=1 --",
"test": "npm run test:package:unit --",
"test:package:all": "symbiote test --env NODE_NO_WARNINGS=1 --coverage",
"test:package:e2e": "symbiote test --env NODE_NO_WARNINGS=1 --tests end-to-end",
"test:package:integration": "symbiote test --env NODE_NO_WARNINGS=1 --tests integration",
"test:package:unit": "symbiote test --env NODE_NO_WARNINGS=1 --tests unit",
"test:packages:all": "symbiote test --env NODE_NO_WARNINGS=1 --scope unlimited --coverage",
"turbo:init": "symbiote project init-turbo --env NODE_NO_WARNINGS=1 --not-multiversal"
},
"dependencies": {
"@-xun/debug": "^1.0.0",
"chalk": "^5.4.1",
"core-js": "^3.40.0"
},
"devDependencies": {
"chai": "^4.2.0",
"mocha": "^8.0.1",
"sinon": "^9.0.2"
"@-xun/symbiote": "^2.8.0",
"type-fest": "^4.32.0"
},
"dependencies": {
"colors": "^1.4.0"
"engines": {
"node": "^18.20.0 || ^20.18.0 || ^22.12.0 || >=23.3.0"
},
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org"
}
}

@@ -1,104 +0,277 @@

[![npm
version](https://badge.fury.io/js/rejoinder.svg)](https://badge.fury.io/js/rejoinder)
<!-- symbiote-template-region-start 1 -->
# REJOINDER
<p align="center" width="100%">
<img width="300" src="https://raw.githubusercontent.com/Xunnamius/rejoinder/refs/heads/main/logo.png">
</p>
rejoinder
/rɪˈdʒɔɪndə/
noun
a reply or response to a question or remark, esp a quick witty one; retort
<p align="center" width="100%">
<!-- symbiote-template-region-end -->
A tiny library for creating gorgeous (and sometimes witty) terminal output
<!-- symbiote-template-region-start 2 -->
</p>
Rejoinder is that generator of smart, pretty, highly organized output your
parents warned you about.
<hr />
TODO: SPIN OFF EXECUTABLE POWERS INTO A SLASH-FILE VERSION i.e.
rejoinder/execute
<div align="center">
Super awesome when paired with
[inquirer](https://www.npmjs.com/package/inquirer) and/or
[commander](https://www.npmjs.com/package/commander)!
[![Black Lives Matter!][x-badge-blm-image]][x-badge-blm-link]
[![Last commit timestamp][x-badge-lastcommit-image]][x-badge-repo-link]
[![Codecov][x-badge-codecov-image]][x-badge-codecov-link]
[![Source license][x-badge-license-image]][x-badge-license-link]
[![Uses Semantic Release!][x-badge-semanticrelease-image]][x-badge-semanticrelease-link]
## Installation
[![NPM version][x-badge-npm-image]][x-badge-npm-link]
[![Monthly Downloads][x-badge-downloads-image]][x-badge-npm-link]
```shell
npm install rejoinder
</div>
<br />
# rejoinder
<!-- symbiote-template-region-end -->
```text
re·join·der
/rəˈjoindər/
noun
a reply, especially a sharp or witty one.
```
If you want support from shelljs (required to use `Execute`), install that too:
<br />
`rejoinder` builds on [`debug`][1] and [`chalk`][2] to deliver consistent and
beautiful output to stdout and/or stderr.
Like `debug`, `rejoinder`'s output is organized by optionally-nested namespaces
that can be enabled or disabled in a coarse-grain manner (via environment
variables). Beyond `debug`, output can also be enabled or disabled
programmatically in a fine-grain manner via several simple yet highly-flexible
tag-based APIs. Output can be controlled in as fine-grained a manner as desired,
extending up to the namespace level or all the way down to individual lines of
output.
<!-- symbiote-template-region-start 3 -->
---
<!-- remark-ignore-start -->
<!-- symbiote-template-region-end -->
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Install](#install)
- [Usage](#usage)
- [Appendix](#appendix)
- [Published Package Details](#published-package-details)
- [License](#license)
- [Contributing and Support](#contributing-and-support)
- [Contributors](#contributors)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<!-- symbiote-template-region-start 4 -->
<!-- remark-ignore-end -->
<br />
## Install
<!-- symbiote-template-region-end -->
To install:
```shell
npm install shelljs
npm install rejoinder
```
## Usage and Examples
## Usage
```javascript
const rejoinder = require('rejoinder');
let echo = rejoinder.echo;
let execute = rejoinder.execute;
<!-- TODO -->
echo.now('output this very important warning to the console with pretty colors'); // immediate output
echo.withPostfix.warn('output this very important warning to the console with pretty colors'); // colorful output prefixed with the string "WARN "
TODO
echo.beVerbose = true; // beVerbose fka "debugMode"
echo.ifVerbose('Some message will appear if beVerbose is true');
echo.ifDebug('Some debug message will appear if beVerbose is true prefixed with the string "DEBUG "');
echo.beVerbose = false; // it is false by default
echo.ifVerbose('Some message will NOT appear if beVerbose is false!');
echo.ifDebug('Some debug message will NOT appear if beVerbose is false!');
<!-- symbiote-template-region-start 5 -->
echo.if(somethingistrue, 'I spit only the truth!'); // also returns false if somethingistrue is false
## Appendix
echo.now('all', 'my', 'methods', 'are', 'also', 'variadic!'); // prints "all my methods are also variadic!"
echo.if(true, 'even', 'this', 'one :)'); // prints "even this one :)"
<!-- symbiote-template-region-end -->
echo.prefix = '>>'; // this will be printed directly before the message every time
echo.now('changed', 'the', 'game!'); // prints ">> changed the game!"
Further documentation can be found under [`docs/`][x-repo-docs].
echo.prefix = 'Big:Boy:Time:';
echo.messageSeparator = '||'; // this is the thing between the prefix and the message
echo.usingPredicate((str) => `"${str}"`, 'the', 'time', 'for', 'fun and games is', 'over!');
// the above prints `Big:Boy:Time:||"the" "time" "for" "fun and games is" "over!"`
<!-- TODO: additional appendix sections here -->
<!-- symbiote-template-region-start 6 -->
echo.withPostfix('postfix', 'this is', 'pretty cool'); // prints "Big:Boy:Time::postfix||this is pretty cool"
echo.postfixSeparator = '<>'; // this is the thing between the prefix and the postfix. It goes `prefix + postfixsep + postfix + msgsep + message`
echo.withPostfix('postfix', 'this too'); // prints "Big:Boy:Time:<>postfix||this too"
echo.withPostfix.ok('GOT IT!'); // prints colorful output that says "Big:Boy:Time:<>OK||GOT IT!"
### Published Package Details
// ONLY the echo statements that appear inside of this function will have the aforesaid prefix
echo.withPrefix('~>', () =>
{
echo.now('or'); // prints "~>||or"
echo.now('is', 'it? I wonder.'); // prints "~>||is it? I wonder."
echo.withPostfix('NO', 'Wait!'); // prints "~><>NO||Wait!"
echo.withPostfix.action("Don't make me bring Execute into this..."); // prints colorful output "~><>ACTION||Don't make me bring Execute into this..."
});
This is a [CJS2 package][x-pkg-cjs-mojito] with statically-analyzable exports
built by Babel for use in Node.js versions that are not end-of-life. For
TypeScript users, this package supports both `"Node10"` and `"Node16"` module
resolution strategies.
echo.beVerbose = true;
<!-- symbiote-template-region-end -->
<!-- TODO: additional package details here -->
<!-- symbiote-template-region-start 7 -->
// prints the command and the result of executing it thanks to echo.beVerbose! See API.md for more information on how this works
execute.now('return 0');
```
<details><summary>Expand details</summary>
## Documentation
See [API.md](API.md)
That means both CJS2 (via `require(...)`) and ESM (via `import { ... } from ...`
or `await import(...)`) source will load this package from the same entry points
when using Node. This has several benefits, the foremost being: less code
shipped/smaller package size, avoiding [dual package
hazard][x-pkg-dual-package-hazard] entirely, distributables are not
packed/bundled/uglified, a drastically less complex build process, and CJS
consumers aren't shafted.
## Tests
Each entry point (i.e. `ENTRY`) in [`package.json`'s
`exports[ENTRY]`][x-repo-package-json] object includes one or more [export
conditions][x-pkg-exports-conditions]. These entries may or may not include: an
[`exports[ENTRY].types`][x-pkg-exports-types-key] condition pointing to a type
declaration file for TypeScript and IDEs, a
[`exports[ENTRY].module`][x-pkg-exports-module-key] condition pointing to
(usually ESM) source for Webpack/Rollup, a `exports[ENTRY].node` and/or
`exports[ENTRY].default` condition pointing to (usually CJS2) source for Node.js
`require`/`import` and for browsers and other environments, and [other
conditions][x-pkg-exports-conditions] not enumerated here. Check the
[package.json][x-repo-package-json] file to see which export conditions are
supported.
```
npm install
npm test
```
Note that, regardless of the [`{ "type": "..." }`][x-pkg-type] specified in
[`package.json`][x-repo-package-json], any JavaScript files written in ESM
syntax (including distributables) will always have the `.mjs` extension. Note
also that [`package.json`][x-repo-package-json] may include the
[`sideEffects`][x-pkg-side-effects-key] key, which is almost always `false` for
optimal [tree shaking][x-pkg-tree-shaking] where appropriate.
## Contributing
<!-- symbiote-template-region-end -->
<!-- TODO: additional package details here -->
<!-- symbiote-template-region-start 8 -->
In lieu of a formal styleguide, take care to maintain the existing coding style.
</details>
Add unit tests for any new or changed functionality. Lint and test your code.
### License
## Release History
<!-- symbiote-template-region-end -->
* 0.3.x Several bugfixes
* 0.2.0 Initial working release; unit tested; semver versioning semantics are
obeyed from this point forward
* 0.1.x Rapid iteration
See [LICENSE][x-repo-license].
<!-- TODO: additional license information and/or sections here -->
<!-- symbiote-template-region-start 9 -->
## Contributing and Support
**[New issues][x-repo-choose-new-issue] and [pull requests][x-repo-pr-compare]
are always welcome and greatly appreciated! 🤩** Just as well, you can [star 🌟
this project][x-badge-repo-link] to let me know you found it useful! ✊🏿 Or [buy
me a beer][x-repo-sponsor], I'd appreciate it. Thank you!
See [CONTRIBUTING.md][x-repo-contributing] and [SUPPORT.md][x-repo-support] for
more information.
<!-- symbiote-template-region-end -->
<!-- TODO: additional contribution/support sections here -->
<!-- symbiote-template-region-start 10 -->
### Contributors
<!-- symbiote-template-region-end -->
<!-- symbiote-template-region-start root-package-only -->
<!-- remark-ignore-start -->
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->
<!-- remark-ignore-end -->
Thanks goes to these wonderful people ([emoji
key][x-repo-all-contributors-emojis]):
<!-- remark-ignore-start -->
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tbody>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://xunn.io/"><img src="https://avatars.githubusercontent.com/u/656017?v=4?s=100" width="100px;" alt="Bernard"/><br /><sub><b>Bernard</b></sub></a><br /><a href="#infra-Xunnamius" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/Xunnamius/rejoinder/commits?author=Xunnamius" title="Code">💻</a> <a href="https://github.com/Xunnamius/rejoinder/commits?author=Xunnamius" title="Documentation">📖</a> <a href="#maintenance-Xunnamius" title="Maintenance">🚧</a> <a href="https://github.com/Xunnamius/rejoinder/commits?author=Xunnamius" title="Tests">⚠️</a> <a href="https://github.com/Xunnamius/rejoinder/pulls?q=is%3Apr+reviewed-by%3AXunnamius" title="Reviewed Pull Requests">👀</a></td>
</tr>
</tbody>
<tfoot>
<tr>
<td align="center" size="13px" colspan="7">
<img src="https://raw.githubusercontent.com/all-contributors/all-contributors-cli/1b8533af435da9854653492b1327a23a4dbd0a10/assets/logo-small.svg">
<a href="https://all-contributors.js.org/docs/en/bot/usage">Add your contributions</a>
</img>
</td>
</tr>
</tfoot>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
<!-- remark-ignore-end -->
This project follows the [all-contributors][x-repo-all-contributors]
specification. Contributions of any kind welcome!
<!-- symbiote-template-region-end -->
<!-- symbiote-template-region-start workspace-package-only -->
<!-- (section elided by symbiote) -->
<!-- symbiote-template-region-end -->
[x-badge-blm-image]: https://xunn.at/badge-blm 'Join the movement!'
[x-badge-blm-link]: https://xunn.at/donate-blm
[x-badge-codecov-image]:
https://img.shields.io/codecov/c/github/Xunnamius/rejoinder/main?style=flat-square&token=HWRIOBAAPW&flag=package.main_root
'Is this package well-tested?'
[x-badge-codecov-link]: https://codecov.io/gh/Xunnamius/rejoinder
[x-badge-downloads-image]:
https://img.shields.io/npm/dm/rejoinder?style=flat-square
'Number of times this package has been downloaded per month'
[x-badge-lastcommit-image]:
https://img.shields.io/github/last-commit/Xunnamius/rejoinder?style=flat-square
'Latest commit timestamp'
[x-badge-license-image]:
https://img.shields.io/npm/l/rejoinder?style=flat-square
"This package's source license"
[x-badge-license-link]: https://github.com/Xunnamius/rejoinder/blob/main/LICENSE
[x-badge-npm-image]:
https://xunn.at/npm-pkg-version/rejoinder
'Install this package using npm or yarn!'
[x-badge-npm-link]: https://npmtrends.com/rejoinder
[x-badge-repo-link]: https://github.com/Xunnamius/rejoinder
[x-badge-semanticrelease-image]:
https://xunn.at/badge-semantic-release
'This repo practices continuous integration and deployment!'
[x-badge-semanticrelease-link]:
https://github.com/semantic-release/semantic-release
[x-pkg-cjs-mojito]:
https://dev.to/jakobjingleheimer/configuring-commonjs-es-modules-for-nodejs-12ed#publish-only-a-cjs-distribution-with-property-exports
[x-pkg-dual-package-hazard]:
https://nodejs.org/api/packages.html#dual-package-hazard
[x-pkg-exports-conditions]:
https://webpack.js.org/guides/package-exports#reference-syntax
[x-pkg-exports-module-key]:
https://webpack.js.org/guides/package-exports#providing-commonjs-and-esm-version-stateless
[x-pkg-exports-types-key]:
https://devblogs.microsoft.com/typescript/announcing-typescript-4-5-beta#packagejson-exports-imports-and-self-referencing
[x-pkg-side-effects-key]:
https://webpack.js.org/guides/tree-shaking#mark-the-file-as-side-effect-free
[x-pkg-tree-shaking]: https://webpack.js.org/guides/tree-shaking
[x-pkg-type]:
https://github.com/nodejs/node/blob/8d8e06a345043bec787e904edc9a2f5c5e9c275f/doc/api/packages.md#type
[x-repo-all-contributors]: https://github.com/all-contributors/all-contributors
[x-repo-all-contributors-emojis]: https://allcontributors.org/docs/en/emoji-key
[x-repo-choose-new-issue]:
https://github.com/Xunnamius/rejoinder/issues/new/choose
[x-repo-contributing]: /CONTRIBUTING.md
[x-repo-docs]: docs
[x-repo-license]: ./LICENSE
[x-repo-package-json]: package.json
[x-repo-pr-compare]: https://github.com/Xunnamius/rejoinder/compare
[x-repo-sponsor]: https://github.com/sponsors/Xunnamius
[x-repo-support]: /.github/SUPPORT.md
[1]: https://npm.im/debug
[2]: https://npm.im/chalk
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