Catalog npm
Back to packageRELEASE DETAILS

2.4.1

npm

@-xun/symbiote

The scripts and assets powering Xunnamius's NPM-based projects

xunnamius
Published3 Jan 2025
Direct dependencies153
Transitive dependenciesNot calculated

README

Current package documentation

Eddie Brock is your repo 🕸️ This tool is the suit


Black Lives Matter! Last commit timestamp Codecov Source license Uses Semantic Release!

NPM version Monthly Downloads


symbiote (@-xun/symbiote)

Formerly xscripts (@-xun/scripts)

Symbiote is a highly-opinionated personal tool that supercharges 🕷️ all my NPM-based projects. It can also exist symbiotically within foreign repositories (e.g. when I'm contributing to open source), glomming onto clones and granting me some semblance of the powers I'm used to in my own projects. All without requiring changes to any of the foreign repository's files.

Symbiote is similar in intent to kcd-scripts, react-scripts, etc, but with many more opinions.

Motivation

I have three main goals with symbiote:

I. Concentrate the configuration explosion inherent in the modern JS ecosystem into one centralized location. That's symbiote. Reuse as much configuration from symbiote as possible. Spend as little time as possible tweaking configuration in repositories outside of symbiote. No more ugly package.json files filled with unreadable spaghetti scripts. Never have to worry about cross-environment concerns—symbiote works on both Linux and Windows.

Make it easy and quick integrate shiny new tooling into symbiote as the JS ecosystem changes. And when that same tooling falls out of fashion or is superseded, make it painless to augment, upgrade, or discard that same tooling, or replace it with an entirely different tool, across all projects using symbiote.

Projects that have tight integrations with tooling that ends up changing incompatibly or getting replaced have the option to pin the version of symbiote they require while other projects can continue to evolve as symbiote and the JS ecosystem does.


II. Minimize to near zero the context switching penalty I incur when shifting focus between projects. Especially open source. Keep coding fun after coding for work. Prevent burnout. Never be discouraged from returning to a very old project. Make each dev environment some level of predictable and familiar.


III. Standardize my opinion of an ideal toolchain, build process, and release flow. Reduce the complexity of managing CI/CD pipelines (i.e. GitHub Actions + xrelease) across a constellation of projects, and centralize the remaining complexity into xpipeline.

Make it super simple and unintimidating for others to contribute to symbiote-powered projects. Contributions can be made without the contributor ever knowing symbiote is there. "Continuous linting" tools like Husky, and npm scripts with standard names like "test" and "build", invoke symbiote when necessary. Symbiote encapsulates and hides the sprawling complexity of the JS ecosystem behind a stable-but-highly-opinionated API and CLI.



Install

You can install this package globally:

npm install --global @-xun/symbiote

And then execute the CLI:

npx symbiote ...

Alternatively, you can use npx to execute the CLI without pre-installation:

npx @-xun/symbiote ...

Usage

TODO

Appendix

Further documentation can be found under docs/.

Published Package Details

This is a CJS2 package 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.

Expand details

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 entirely, distributables are not packed/bundled/uglified, a drastically less complex build process, and CJS consumers aren't shafted.

Each entry point (i.e. ENTRY) in package.json's exports[ENTRY] object includes one or more export conditions. These entries may or may not include: an exports[ENTRY].types condition pointing to a type declaration file for TypeScript and IDEs, a exports[ENTRY].module 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 not enumerated here. Check the package.json file to see which export conditions are supported.

Note that, regardless of the { "type": "..." } specified in package.json, any JavaScript files written in ESM syntax (including distributables) will always have the .mjs extension. Note also that package.json may include the sideEffects key, which is almost always false for optimal tree shaking where appropriate.

License

See LICENSE.

Contributing and Support

New issues and pull requests are always welcome and greatly appreciated! 🤩 Just as well, you can star 🌟 this project to let me know you found it useful! ✊🏿 Or buy me a beer, I'd appreciate it. Thank you!

See CONTRIBUTING.md and SUPPORT.md for more information.

Contributors

All Contributors

Thanks goes to these wonderful people (emoji key):

This project follows the all-contributors specification. Contributions of any kind welcome!

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 153

Native requirements
153 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
glob
Environment
{
  "local_name": "glob",
  "alias": false,
  "peer_metadata": null
}
^11.0.0runtime
jest
Environment
{
  "local_name": "jest",
  "alias": false,
  "peer_metadata": null
}
^30.0.0-alpha.6runtime
debug
Environment
{
  "local_name": "debug",
  "alias": false,
  "peer_metadata": null
}
^4.4.0runtime
husky
Environment
{
  "local_name": "husky",
  "alias": false,
  "peer_metadata": null
}
^9.1.7runtime
turbo
Environment
{
  "local_name": "turbo",
  "alias": false,
  "peer_metadata": null
}
^2.3.3runtime
doctoc
Environment
{
  "local_name": "doctoc",
  "alias": false,
  "peer_metadata": null
}
^2.2.1runtime
dotenv
Environment
{
  "local_name": "dotenv",
  "alias": false,
  "peer_metadata": null
}
^16.4.7runtime
eslint
Environment
{
  "local_name": "eslint",
  "alias": false,
  "peer_metadata": null
}
^9.17.0runtime
listr2
Environment
{
  "local_name": "listr2",
  "alias": false,
  "peer_metadata": null
}
^8.2.5runtime
rimraf
Environment
{
  "local_name": "rimraf",
  "alias": false,
  "peer_metadata": null
}
^6.0.1runtime
semver
Environment
{
  "local_name": "semver",
  "alias": false,
  "peer_metadata": null
}
^7.6.3runtime
core-js
Environment
{
  "local_name": "core-js",
  "alias": false,
  "peer_metadata": null
}
3.39.0runtime
globals
Environment
{
  "local_name": "globals",
  "alias": false,
  "peer_metadata": null
}
^15.14.0runtime
tstyche
Environment
{
  "local_name": "tstyche",
  "alias": false,
  "peer_metadata": null
}
^3.3.1runtime
typedoc
Environment
{
  "local_name": "typedoc",
  "alias": false,
  "peer_metadata": null
}
^0.27.6runtime
node-gyp
Environment
{
  "local_name": "node-gyp",
  "alias": false,
  "peer_metadata": null
}
^11.0.0runtime
prettier
Environment
{
  "local_name": "prettier",
  "alias": false,
  "peer_metadata": null
}
^3.4.2runtime
@-xun/run
Environment
{
  "local_name": "@-xun/run",
  "alias": false,
  "peer_metadata": null
}
^0.0.1runtime
find-up
Environment
{
  "local_name": "find-up~5",
  "alias": true,
  "peer_metadata": null
}
npm:find-up@^5.0.0runtime
type-fest
Environment
{
  "local_name": "type-fest",
  "alias": false,
  "peer_metadata": null
}
^4.31.0runtime
@babel/cli
Environment
{
  "local_name": "@babel/cli",
  "alias": false,
  "peer_metadata": null
}
^7.26.4runtime
@eslint/js
Environment
{
  "local_name": "@eslint/js",
  "alias": false,
  "peer_metadata": null
}
^9.17.0runtime
babel-jest
Environment
{
  "local_name": "babel-jest",
  "alias": false,
  "peer_metadata": null
}
nextruntime
dotenv-cli
Environment
{
  "local_name": "dotenv-cli",
  "alias": false,
  "peer_metadata": null
}
^8.0.0runtime
lodash.get
Environment
{
  "local_name": "lodash.get",
  "alias": false,
  "peer_metadata": null
}
^4.4.2runtime
remark-cli
Environment
{
  "local_name": "remark-cli",
  "alias": false,
  "peer_metadata": null
}
^12.0.1runtime
remark-gfm
Environment
{
  "local_name": "remark-gfm",
  "alias": false,
  "peer_metadata": null
}
^4.0.0runtime
simple-git
Environment
{
  "local_name": "simple-git",
  "alias": false,
  "peer_metadata": null
}
^3.27.0runtime
typescript
Environment
{
  "local_name": "typescript",
  "alias": false,
  "peer_metadata": null
}
^5.7.2runtime
@babel/core
Environment
{
  "local_name": "@babel/core",
  "alias": false,
  "peer_metadata": null
}
^7.26.0runtime
@types/jest
Environment
{
  "local_name": "@types/jest",
  "alias": false,
  "peer_metadata": null
}
^29.5.14runtime
@types/node
Environment
{
  "local_name": "@types/node",
  "alias": false,
  "peer_metadata": null
}
^22.10.4runtime
askpassword
Environment
{
  "local_name": "askpassword",
  "alias": false,
  "peer_metadata": null
}
^2.0.2runtime
jest-circus
Environment
{
  "local_name": "jest-circus",
  "alias": false,
  "peer_metadata": null
}
30.0.0-alpha.6runtime
lint-staged
Environment
{
  "local_name": "lint-staged",
  "alias": false,
  "peer_metadata": null
}
^15.3.0runtime
remark-lint
Environment
{
  "local_name": "remark-lint",
  "alias": false,
  "peer_metadata": null
}
^10.0.0runtime
@types/debug
Environment
{
  "local_name": "@types/debug",
  "alias": false,
  "peer_metadata": null
}
^4.1.12runtime
@types/react
Environment
{
  "local_name": "@types/react",
  "alias": false,
  "peer_metadata": null
}
^19.0.2runtime
@types/yargs
Environment
{
  "local_name": "@types/yargs",
  "alias": false,
  "peer_metadata": null
}
^17.0.33runtime
browserslist
Environment
{
  "local_name": "browserslist",
  "alias": false,
  "peer_metadata": null
}
^4.24.3runtime
jsonc-parser
Environment
{
  "local_name": "jsonc-parser",
  "alias": false,
  "peer_metadata": null
}
^3.3.1runtime
lodash.clone
Environment
{
  "local_name": "lodash.clone",
  "alias": false,
  "peer_metadata": null
}
^4.5.0runtime
spellchecker
Environment
{
  "local_name": "spellchecker",
  "alias": false,
  "peer_metadata": null
}
^3.7.1runtime
@octokit/rest
Environment
{
  "local_name": "@octokit/rest",
  "alias": false,
  "peer_metadata": null
}
^21.0.2runtime
@types/eslint
Environment
{
  "local_name": "@types/eslint",
  "alias": false,
  "peer_metadata": null
}
^9.6.1runtime
@types/semver
Environment
{
  "local_name": "@types/semver",
  "alias": false,
  "peer_metadata": null
}
^7.5.8runtime
jest-extended
Environment
{
  "local_name": "jest-extended",
  "alias": false,
  "peer_metadata": null
}
^4.0.2runtime
remark-ignore
Environment
{
  "local_name": "remark-ignore",
  "alias": false,
  "peer_metadata": null
}
^2.0.0runtime
@eslint/compat
Environment
{
  "local_name": "@eslint/compat",
  "alias": false,
  "peer_metadata": null
}
^1.2.4runtime
glob-gitignore
Environment
{
  "local_name": "glob-gitignore",
  "alias": false,
  "peer_metadata": null
}
^1.0.15runtime
lodash.isequal
Environment
{
  "local_name": "lodash.isequal",
  "alias": false,
  "peer_metadata": null
}
^4.5.0runtime
supports-color
Environment
{
  "local_name": "supports-color",
  "alias": false,
  "peer_metadata": null
}
^8.1.1runtime
unified-engine
Environment
{
  "local_name": "unified-engine",
  "alias": false,
  "peer_metadata": null
}
^11.2.2runtime
@-xun/changelog
Environment
{
  "local_name": "@-xun/changelog",
  "alias": false,
  "peer_metadata": null
}
^1.0.0runtime
@commitlint/cli
Environment
{
  "local_name": "@commitlint/cli",
  "alias": false,
  "peer_metadata": null
}
^19.6.1runtime
@listr2/manager
Environment
{
  "local_name": "@listr2/manager",
  "alias": false,
  "peer_metadata": null
}
^2.0.13runtime
eslint-plugin-n
Environment
{
  "local_name": "eslint-plugin-n",
  "alias": false,
  "peer_metadata": null
}
^17.15.1runtime
text-extensions
Environment
{
  "local_name": "text-extensions",
  "alias": false,
  "peer_metadata": null
}
^3.1.0runtime
toss-expression
Environment
{
  "local_name": "toss-expression",
  "alias": false,
  "peer_metadata": null
}
^0.1.2runtime
unique-filename
Environment
{
  "local_name": "unique-filename",
  "alias": false,
  "peer_metadata": null
}
^4.0.0runtime
@black-flag/core
Environment
{
  "local_name": "@black-flag/core",
  "alias": false,
  "peer_metadata": null
}
^1.3.2runtime
@eslint/eslintrc
Environment
{
  "local_name": "@eslint/eslintrc",
  "alias": false,
  "peer_metadata": null
}
^3.2.0runtime
lodash.camelcase
Environment
{
  "local_name": "lodash.camelcase",
  "alias": false,
  "peer_metadata": null
}
^4.3.0runtime
lodash.mergewith
Environment
{
  "local_name": "lodash.mergewith",
  "alias": false,
  "peer_metadata": null
}
^4.6.2runtime
named-app-errors
Environment
{
  "local_name": "named-app-errors",
  "alias": false,
  "peer_metadata": null
}
^4.0.2runtime
@-xun/release
Environment
{
  "local_name": "semantic-release",
  "alias": true,
  "peer_metadata": null
}
npm:@-xun/release@^24.2.1runtime
@babel/preset-env
Environment
{
  "local_name": "@babel/preset-env",
  "alias": false,
  "peer_metadata": null
}
^7.26.0runtime
@types/eslint__js
Environment
{
  "local_name": "@types/eslint__js",
  "alias": false,
  "peer_metadata": null
}
^8.42.3runtime
@types/lodash.get
Environment
{
  "local_name": "@types/lodash.get",
  "alias": false,
  "peer_metadata": null
}
^4.4.9runtime
npm-check-updates
Environment
{
  "local_name": "npm-check-updates",
  "alias": false,
  "peer_metadata": null
}
^17.1.13runtime
sort-package-json
Environment
{
  "local_name": "sort-package-json",
  "alias": false,
  "peer_metadata": null
}
^2.12.0runtime
typescript-eslint
Environment
{
  "local_name": "typescript-eslint",
  "alias": false,
  "peer_metadata": null
}
^8.18.0runtime
eslint-plugin-jest
Environment
{
  "local_name": "eslint-plugin-jest",
  "alias": false,
  "peer_metadata": null
}
^28.10.0runtime
libsodium-wrappers
Environment
{
  "local_name": "libsodium-wrappers",
  "alias": false,
  "peer_metadata": null
}
^0.7.15runtime
remark-frontmatter
Environment
{
  "local_name": "remark-frontmatter",
  "alias": false,
  "peer_metadata": null
}
^5.0.0runtime
@babel/preset-react
Environment
{
  "local_name": "@babel/preset-react",
  "alias": false,
  "peer_metadata": null
}
^7.26.3runtime
@types/lodash.clone
Environment
{
  "local_name": "@types/lodash.clone",
  "alias": false,
  "peer_metadata": null
}
^4.5.9runtime
@types/spellchecker
Environment
{
  "local_name": "@types/spellchecker",
  "alias": false,
  "peer_metadata": null
}
^3.5.2runtime
eslint-config-turbo
Environment
{
  "local_name": "eslint-config-turbo",
  "alias": false,
  "peer_metadata": null
}
^2.3.3runtime
remark-lint-no-tabs
Environment
{
  "local_name": "remark-lint-no-tabs",
  "alias": false,
  "peer_metadata": null
}
^4.0.0runtime
@babel/eslint-parser
Environment
{
  "local_name": "@babel/eslint-parser",
  "alias": false,
  "peer_metadata": null
}
^7.25.9runtime
all-contributors-cli
Environment
{
  "local_name": "all-contributors-cli",
  "alias": false,
  "peer_metadata": null
}
^6.26.1runtime
@-xun/eslint-plugin-import-experimental
Environment
{
  "local_name": "eslint-plugin-import",
  "alias": true,
  "peer_metadata": null
}
npm:@-xun/eslint-plugin-import-experimental@^2.32.0runtime
jest-silent-reporter
Environment
{
  "local_name": "jest-silent-reporter",
  "alias": false,
  "peer_metadata": null
}
^0.6.0runtime
lodash.clonedeepwith
Environment
{
  "local_name": "lodash.clonedeepwith",
  "alias": false,
  "peer_metadata": null
}
^4.5.0runtime
@arethetypeswrong/cli
Environment
{
  "local_name": "@arethetypeswrong/cli",
  "alias": false,
  "peer_metadata": null
}
^0.17.2runtime
@octokit/plugin-retry
Environment
{
  "local_name": "@octokit/plugin-retry",
  "alias": false,
  "peer_metadata": null
}
^7.1.2runtime
@semantic-release/git
Environment
{
  "local_name": "@semantic-release/git",
  "alias": false,
  "peer_metadata": null
}
^10.0.1runtime
@types/lodash.isequal
Environment
{
  "local_name": "@types/lodash.isequal",
  "alias": false,
  "peer_metadata": null
}
^4.5.8runtime
eslint-plugin-unicorn
Environment
{
  "local_name": "eslint-plugin-unicorn",
  "alias": false,
  "peer_metadata": null
}
^56.0.1runtime
remark-tight-comments
Environment
{
  "local_name": "remark-tight-comments",
  "alias": false,
  "peer_metadata": null
}
^2.0.0runtime
remark-validate-links
Environment
{
  "local_name": "remark-validate-links",
  "alias": false,
  "peer_metadata": null
}
^13.0.2runtime
escape-string-regexp
Environment
{
  "local_name": "escape-string-regexp~4",
  "alias": true,
  "peer_metadata": null
}
npm:escape-string-regexp@^4.0.0runtime
mdast-util-to-markdown
Environment
{
  "local_name": "mdast-util-to-markdown",
  "alias": false,
  "peer_metadata": null
}
^2.1.2runtime
remark-reference-links
Environment
{
  "local_name": "remark-reference-links",
  "alias": false,
  "peer_metadata": null
}
^7.0.0runtime
@types/eslint__eslintrc
Environment
{
  "local_name": "@types/eslint__eslintrc",
  "alias": false,
  "peer_metadata": null
}
^2.1.2runtime
@types/lodash.camelcase
Environment
{
  "local_name": "@types/lodash.camelcase",
  "alias": false,
  "peer_metadata": null
}
^4.3.9runtime
@types/lodash.mergewith
Environment
{
  "local_name": "@types/lodash.mergewith",
  "alias": false,
  "peer_metadata": null
}
^4.6.9runtime
remark-sort-definitions
Environment
{
  "local_name": "remark-sort-definitions",
  "alias": false,
  "peer_metadata": null
}
^2.0.0runtime
typedoc-plugin-markdown
Environment
{
  "local_name": "typedoc-plugin-markdown",
  "alias": false,
  "peer_metadata": null
}
^4.4.1runtime

Showing the first 100 declarations.

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "shasum": "f89115158d5bba1ae400180a565f441cea20129d",
  "tarball": "https://registry.npmjs.org/@-xun/symbiote/-/symbiote-2.4.1.tgz",
  "fileCount": 258,
  "integrity": "sha512-OtVOsPOsdkXjtBBtKURKS/XUC5cVkAqnRoyQp+U1k7egIj5TrWERjtwdceI5P5Bdc7Ds3VVpAgHY+ueO1P6Q1w==",
  "signatures": [
    {
      "sig": "MEQCIHgWDe8v4pGVg8Rau+uI77edtme8aWsIflAQPAQKykgcAiB4uhVvhcr00G0o8BX5ritCNd2aLfBdv8x2rNn1aojkzw==",
      "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"
    }
  ],
  "unpackedSize": 1150540
}

Repository

PENDING
xunnamius/symbiote

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 21:52 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:e7b1f91e28dbf58cd54296b3a471bd25bf655a9532e9dc6f6c8a4e578da16380

Other collected versions

4.15.103 May4.15.93 May4.15.83 May4.15.73 May4.15.622 Mar4.15.522 MarView all collected versions →