xo 2.0.0
JavaScript/TypeScript linter (ESLint wrapper) with great defaults
xo@2.0.0 was published on 2026-03-14. Its manifest declares 29 runtime dependencies and 0 peer requirements. Type declarations are bundled according to the package metadata. The declared Node.js requirement is >=20.19.
All xo versions · Permanent reference to 2.0.0 · Latest release
Package specifications
| Version | 2.0.0 |
|---|---|
| License declaration | MIT |
| Published | 2026-03-14T08:11:05.937Z |
| Node.js requirement | >=20.19 |
| Type declarations | Bundled declarations |
| Runtime dependency count | 29 |
| Peer requirement count | 0 |
| Optional dependency count | 0 |
| Minified size | Measurement not available yet |
| Minified + gzip | Measurement not available yet |
| Unpacked distribution size | 99.43 KiB |
| Published file count | 25 |
| Package type | module |
| ES module entry | Not declared |
| Default entry | Not declared |
| Side effects declaration | false |
| Direct advisories | 0 |
| Resolved graph dependencies | 452 |
| Repository stars | 7995 |
| Repository forks | 309 |
Install xo 2.0.0
npm install xo@2.0.0 pnpm add xo@2.0.0 yarn add xo@2.0.0
Runtime dependencies
- meow ^14.1.0
- arrify ^3.0.0
- eslint ^10.0.2
- globby ^16.1.1
- globals ^17.3.0
- prettier ^3.8.1
- get-stdin ^10.0.0
- type-fest ^5.4.3
- micromatch ^4.0.8
- typescript ^5.9.3
- cosmiconfig ^9.0.0
- open-editor ^6.0.0
- path-exists ^5.0.0
- get-tsconfig ^4.13.6
- @eslint/compat ^2.0.2
- eslint-plugin-n ^17.24.0
- define-lazy-prop ^3.0.0
- eslint-plugin-ava ^16.0.0
- typescript-eslint ^8.56.1
- find-cache-directory ^6.0.0
- eslint-plugin-unicorn ^63.0.0
- @sindresorhus/tsconfig ^8.1.0
- eslint-config-prettier ^10.1.8
- eslint-config-xo-react ^0.29.0
- eslint-plugin-import-x ^4.16.1
- eslint-plugin-prettier ^5.5.5
- eslint-formatter-pretty ^7.0.0
- eslint-config-xo-typescript ^9.0.0
- @eslint-community/eslint-plugin-eslint-comments ^4.7.1
Peer requirements
- None declared
Optional dependencies
- None declared
Resolved dependency graph
This deps.dev graph describes a generic 64-bit Linux environment, not your application lockfile.
- @eslint-community/eslint-plugin-eslint-comments@4.8.1 — direct
- @eslint/compat@2.1.1 — direct
- @sindresorhus/tsconfig@8.1.0 — direct
- arrify@3.0.0 — direct
- cosmiconfig@9.0.2 — direct
- define-lazy-prop@3.0.0 — direct
- eslint@10.13.0 — direct
- eslint-config-prettier@10.1.8 — direct
- eslint-config-xo-react@0.29.0 — direct
- eslint-config-xo-typescript@9.0.0 — direct
- eslint-formatter-pretty@7.1.0 — direct
- eslint-plugin-ava@16.0.1 — direct
- eslint-plugin-import-x@4.17.1 — direct
- eslint-plugin-n@17.24.0 — direct
- eslint-plugin-prettier@5.5.7 — direct
- eslint-plugin-unicorn@63.0.0 — direct
- find-cache-directory@6.0.0 — direct
- get-stdin@10.0.0 — direct
- get-tsconfig@4.14.3 — direct
- globals@17.13.0 — direct
- globby@16.2.4 — direct
- meow@14.1.0 — direct
- micromatch@4.0.8 — direct
- open-editor@6.0.0 — direct
- path-exists@5.0.0 — direct
- prettier@3.9.10 — direct
- type-fest@5.10.0 — direct
- typescript@5.9.3 — direct
- typescript-eslint@8.72.1 — direct
- escape-string-regexp@4.0.0 — indirect
- ignore@7.0.14 — indirect
- @eslint/core@1.2.1 — indirect
- env-paths@2.2.1 — indirect
- import-fresh@3.3.1 — indirect
- js-yaml@4.3.2 — indirect
- parse-json@5.2.0 — indirect
- @eslint-community/eslint-utils@4.10.1 — indirect
- @eslint-community/regexpp@4.12.2 — indirect
- @eslint/config-array@0.23.5 — indirect
- @eslint/config-helpers@0.7.0 — indirect
- @eslint/plugin-kit@0.7.3 — indirect
- @humanfs/node@0.16.8 — indirect
- @humanwhocodes/module-importer@1.0.1 — indirect
- @humanwhocodes/retry@0.4.3 — indirect
- @types/estree@1.0.9 — indirect
- ajv@6.15.0 — indirect
- cross-spawn@7.0.6 — indirect
- debug@4.4.3 — indirect
- eslint-scope@9.1.2 — indirect
- eslint-visitor-keys@5.0.1 — indirect
- espree@11.2.0 — indirect
- esquery@1.7.0 — indirect
- esutils@2.0.3 — indirect
- fast-deep-equal@3.1.3 — indirect
- file-entry-cache@11.1.5 — indirect
- find-up@5.0.0 — indirect
- glob-parent@6.0.2 — indirect
- ignore@5.3.2 — indirect
- imurmurhash@0.1.4 — indirect
- is-glob@4.0.3 — indirect
- json-stable-stringify-without-jsonify@1.0.1 — indirect
- minimatch@10.2.6 — indirect
- natural-compare@1.4.0 — indirect
- optionator@0.9.4 — indirect
- eslint-plugin-react@7.37.5 — indirect
- eslint-plugin-react-hooks@7.1.1 — indirect
- @stylistic/eslint-plugin@5.10.0 — indirect
- eslint-config-xo@0.49.0 — indirect
- @types/eslint@9.6.1 — indirect
- ansi-escapes@7.3.0 — indirect
- chalk@5.6.2 — indirect
- eslint-rule-docs@1.1.235 — indirect
- log-symbols@7.0.1 — indirect
- plur@5.1.0 — indirect
- string-width@8.3.0 — indirect
- supports-hyperlinks@4.6.0 — indirect
- @eslint/json@1.2.0 — indirect
- enhance-visitors@1.0.0 — indirect
- espurify@3.2.0 — indirect
- micro-spelling-correcter@1.1.1 — indirect
- resolve-from@5.0.0 — indirect
- @typescript-eslint/types@8.72.1 — indirect
- comment-parser@1.4.9 — indirect
- eslint-import-context@0.1.9 — indirect
- semver@7.8.5 — indirect
- stable-hash-x@0.2.0 — indirect
- unrs-resolver@1.12.2 — indirect
- enhanced-resolve@5.26.0 — indirect
- eslint-plugin-es-x@7.8.0 — indirect
- globals@15.15.0 — indirect
- globrex@0.1.2 — indirect
- ignore@5.3.2 — indirect
- semver@7.8.5 — indirect
- ts-declaration-location@1.0.7 — indirect
- prettier-linter-helpers@1.0.1 — indirect
- synckit@0.12.3 — indirect
- @babel/helper-validator-identifier@7.29.7 — indirect
- change-case@5.4.4 — indirect
- ci-info@4.4.0 — indirect
- clean-regexp@1.0.0 — indirect
- core-js-compat@3.51.0 — indirect
- find-up-simple@1.0.1 — indirect
- globals@16.5.0 — indirect
- indent-string@5.0.0 — indirect
- is-builtin-module@5.0.0 — indirect
- jsesc@3.1.0 — indirect
- pluralize@8.0.0 — indirect
- regexp-tree@0.1.27 — indirect
- regjsparser@0.13.4 — indirect
- semver@7.8.5 — indirect
- strip-indent@4.1.1 — indirect
- common-path-prefix@3.0.0 — indirect
- pkg-dir@8.0.0 — indirect
- resolve-pkg-maps@1.0.0 — indirect
- @sindresorhus/merge-streams@4.0.0 — indirect
- fast-glob@3.3.3 — indirect
- is-path-inside@4.0.0 — indirect
- slash@5.1.0 — indirect
- unicorn-magic@0.4.1 — indirect
- braces@3.0.3 — indirect
- picomatch@2.3.2 — indirect
- env-editor@1.3.0 — indirect
- execa@9.6.1 — indirect
- line-column-path@4.0.0 — indirect
- open@11.0.4 — indirect
- tagged-tag@1.0.0 — indirect
- @typescript-eslint/eslint-plugin@8.72.1 — indirect
- @typescript-eslint/parser@8.72.1 — indirect
- @typescript-eslint/typescript-estree@8.72.1 — indirect
- @typescript-eslint/utils@8.72.1 — indirect
- @types/json-schema@7.0.15 — indirect
- parent-module@1.0.1 — indirect
- resolve-from@4.0.0 — indirect
- argparse@2.0.1 — indirect
- @babel/code-frame@7.29.7 — indirect
- error-ex@1.3.4 — indirect
- json-parse-even-better-errors@2.3.1 — indirect
- lines-and-columns@1.2.4 — indirect
- eslint-visitor-keys@3.4.3 — indirect
- @eslint/object-schema@3.0.5 — indirect
- levn@0.4.1 — indirect
- @humanfs/core@0.19.2 — indirect
- @humanfs/types@0.15.0 — indirect
- fast-json-stable-stringify@2.1.0 — indirect
- json-schema-traverse@0.4.1 — indirect
- uri-js@4.4.1 — indirect
- path-key@3.1.1 — indirect
- shebang-command@2.0.0 — indirect
- which@2.0.2 — indirect
- ms@2.1.3 — indirect
- @types/esrecurse@4.3.1 — indirect
- esrecurse@4.3.0 — indirect
- estraverse@5.3.0 — indirect
- acorn@8.19.0 — indirect
- acorn-jsx@5.3.2 — indirect
- flat-cache@6.1.23 — indirect
- locate-path@6.0.0 — indirect
- path-exists@4.0.0 — indirect
- is-extglob@2.1.1 — indirect
- brace-expansion@5.0.12 — indirect
- deep-is@0.1.4 — indirect
- fast-levenshtein@2.0.6 — indirect
- prelude-ls@1.2.1 — indirect
- type-check@0.4.0 — indirect
- word-wrap@1.2.5 — indirect
- array-includes@3.2.0 — indirect
- array.prototype.findlast@1.2.5 — indirect
- array.prototype.flatmap@1.3.3 — indirect
- array.prototype.tosorted@1.1.4 — indirect
- doctrine@2.1.0 — indirect
- es-iterator-helpers@1.4.0 — indirect
- hasown@2.0.4 — indirect
- jsx-ast-utils@3.3.5 — indirect
- minimatch@3.1.5 — indirect
- object.entries@1.1.9 — indirect
- object.fromentries@2.0.8 — indirect
- object.values@1.2.1 — indirect
- prop-types@15.8.1 — indirect
- resolve@2.0.0-next.7 — indirect
- semver@6.3.1 — indirect
- string.prototype.matchall@4.1.0 — indirect
- string.prototype.repeat@1.0.0 — indirect
- @babel/core@7.29.7 — indirect
- @babel/parser@7.29.11 — indirect
- hermes-parser@0.25.1 — indirect
- zod@4.6.7 — indirect
- zod-validation-error@4.0.2 — indirect
- eslint-visitor-keys@4.2.1 — indirect
- espree@10.4.0 — indirect
- picomatch@4.0.7 — indirect
- @eslint/css@0.10.0 — indirect
- @eslint/json@0.13.2 — indirect
- confusing-browser-globals@1.0.11 — indirect
- globals@16.5.0 — indirect
- environment@1.1.0 — indirect
- is-unicode-supported@2.1.0 — indirect
- yoctocolors@2.2.0 — indirect
- irregular-plurals@3.5.0 — indirect
- get-east-asian-width@1.7.0 — indirect
- strip-ansi@7.2.0 — indirect
- has-flag@5.0.1 — indirect
- supports-color@10.2.2 — indirect
- @eslint/plugin-kit@0.6.1 — indirect
- @humanwhocodes/momoa@3.3.13 — indirect
- lodash@4.18.1 — indirect
- @unrs/resolver-binding-android-arm-eabi@1.12.2 — indirect
- @unrs/resolver-binding-android-arm64@1.12.2 — indirect
- @unrs/resolver-binding-darwin-arm64@1.12.2 — indirect
- @unrs/resolver-binding-darwin-x64@1.12.2 — indirect
- @unrs/resolver-binding-freebsd-x64@1.12.2 — indirect
- @unrs/resolver-binding-linux-arm-gnueabihf@1.12.2 — indirect
- @unrs/resolver-binding-linux-arm-musleabihf@1.12.2 — indirect
- @unrs/resolver-binding-linux-arm64-gnu@1.12.2 — indirect
- @unrs/resolver-binding-linux-arm64-musl@1.12.2 — indirect
- @unrs/resolver-binding-linux-loong64-gnu@1.12.2 — indirect
- @unrs/resolver-binding-linux-loong64-musl@1.12.2 — indirect
- @unrs/resolver-binding-linux-ppc64-gnu@1.12.2 — indirect
- @unrs/resolver-binding-linux-riscv64-gnu@1.12.2 — indirect
- @unrs/resolver-binding-linux-riscv64-musl@1.12.2 — indirect
- @unrs/resolver-binding-linux-s390x-gnu@1.12.2 — indirect
- @unrs/resolver-binding-linux-x64-gnu@1.12.2 — indirect
- @unrs/resolver-binding-linux-x64-musl@1.12.2 — indirect
- @unrs/resolver-binding-openharmony-arm64@1.12.2 — indirect
- @unrs/resolver-binding-wasm32-wasi@1.12.2 — indirect
- @unrs/resolver-binding-win32-arm64-msvc@1.12.2 — indirect
- @unrs/resolver-binding-win32-ia32-msvc@1.12.2 — indirect
- @unrs/resolver-binding-win32-x64-msvc@1.12.2 — indirect
- napi-postinstall@0.3.7 — indirect
- graceful-fs@4.2.11 — indirect
- tapable@2.3.3 — indirect
- eslint-compat-utils@0.5.1 — indirect
- fast-diff@1.3.0 — indirect
- @dual-bundle/import-meta-resolve@4.2.1 — indirect
- @pkgr/core@0.3.6 — indirect
- escape-string-regexp@1.0.5 — indirect
- browserslist@4.29.5 — indirect
- builtin-modules@5.4.0 — indirect
- @nodelib/fs.stat@2.0.5 — indirect
- @nodelib/fs.walk@1.2.8 — indirect
- glob-parent@5.1.2 — indirect
- merge2@1.4.1 — indirect
- fill-range@7.1.1 — indirect
- figures@6.1.0 — indirect
- get-stream@9.0.1 — indirect
- human-signals@8.0.1 — indirect
- is-plain-obj@4.1.0 — indirect
- is-stream@4.0.1 — indirect
- npm-run-path@6.0.0 — indirect
- pretty-ms@9.3.1 — indirect
- signal-exit@4.1.0 — indirect
- strip-final-newline@4.0.0 — indirect
- default-browser@5.5.1 — indirect
- is-in-ssh@1.0.0 — indirect
- is-inside-container@1.0.0 — indirect
- powershell-utils@0.2.1 — indirect
- wsl-utils@1.0.1 — indirect
- @typescript-eslint/scope-manager@8.72.1 — indirect
- @typescript-eslint/type-utils@8.72.1 — indirect
- @typescript-eslint/visitor-keys@8.72.1 — indirect
- ts-api-utils@2.5.0 — indirect
- @typescript-eslint/project-service@8.72.1 — indirect
- @typescript-eslint/tsconfig-utils@8.72.1 — indirect
- semver@7.8.5 — indirect
- tinyglobby@0.2.17 — indirect
- callsites@3.1.0 — indirect
- js-tokens@4.0.0 — indirect
- picocolors@1.1.1 — indirect
- is-arrayish@0.2.1 — indirect
- punycode@2.3.1 — indirect
- shebang-regex@3.0.0 — indirect
- isexe@2.0.0 — indirect
- cacheable@2.5.0 — indirect
- flatted@3.4.4 — indirect
- hookified@1.15.1 — indirect
- p-locate@5.0.0 — indirect
- balanced-match@4.0.4 — indirect
- call-bind@1.0.9 — indirect
- call-bound@1.0.4 — indirect
- define-properties@1.2.1 — indirect
- es-abstract@1.24.2 — indirect
- es-object-atoms@1.1.2 — indirect
- es-shim-unscopables@1.1.0 — indirect
- is-string@1.1.1 — indirect
- math-intrinsics@1.1.0 — indirect
- es-errors@1.3.0 — indirect
- es-set-tostringtag@2.1.0 — indirect
- function-bind@1.1.2 — indirect
- get-intrinsic@1.3.1 — indirect
- globalthis@1.0.4 — indirect
- gopd@1.2.0 — indirect
- has-property-descriptors@1.0.2 — indirect
- has-proto@1.2.0 — indirect
- has-symbols@1.1.0 — indirect
- internal-slot@1.1.0 — indirect
- iterator.prototype@1.1.5 — indirect
- array.prototype.flat@1.3.3 — indirect
- object.assign@4.1.7 — indirect
- brace-expansion@1.1.21 — indirect
- loose-envify@1.4.0 — indirect
- object-assign@4.1.1 — indirect
- react-is@16.13.1 — indirect
- is-core-module@2.17.0 — indirect
- node-exports-info@1.6.2 — indirect
- object-keys@1.1.1 — indirect
- path-parse@1.0.7 — indirect
- supports-preserve-symlinks-flag@1.0.0 — indirect
- regexp.prototype.flags@1.5.4 — indirect
- set-function-name@2.0.2 — indirect
- side-channel@1.1.1 — indirect
- @babel/generator@7.29.8 — indirect
- @babel/helper-compilation-targets@7.29.7 — indirect
- @babel/helper-module-transforms@7.29.7 — indirect
- @babel/helpers@7.29.10 — indirect
- @babel/template@7.29.7 — indirect
- @babel/traverse@7.29.10 — indirect
- @babel/types@7.29.11 — indirect
- @jridgewell/remapping@2.3.5 — indirect
- convert-source-map@2.0.0 — indirect
- gensync@1.0.0-beta.2 — indirect
- json5@2.2.3 — indirect
- hermes-estree@0.25.1 — indirect
- @eslint/core@0.14.0 — indirect
- @eslint/css-tree@3.6.9 — indirect
- @eslint/plugin-kit@0.3.5 — indirect
- @eslint/core@0.15.2 — indirect
- @eslint/plugin-kit@0.3.5 — indirect
- ansi-regex@6.4.0 — indirect
- @emnapi/core@1.10.0 — indirect
- @emnapi/runtime@1.10.0 — indirect
- @napi-rs/wasm-runtime@1.2.6 — indirect
- semver@7.8.5 — indirect
- baseline-browser-mapping@2.11.34 — indirect
- caniuse-lite@1.0.30001819 — indirect
- electron-to-chromium@1.5.467 — indirect
- node-releases@2.0.60 — indirect
- update-browserslist-db@1.3.4 — indirect
- @nodelib/fs.scandir@2.1.5 — indirect
- fastq@1.20.3 — indirect
- to-regex-range@5.0.1 — indirect
- @sec-ant/readable-stream@0.4.1 — indirect
- path-key@4.0.0 — indirect
- unicorn-magic@0.3.0 — indirect
- parse-ms@4.0.0 — indirect
- bundle-name@4.1.1 — indirect
- default-browser-id@5.0.1 — indirect
- is-docker@3.0.0 — indirect
- is-wsl@3.1.1 — indirect
- fdir@6.5.0 — indirect
- @cacheable/memory@2.2.0 — indirect
- @cacheable/utils@2.5.0 — indirect
- keyv@5.6.0 — indirect
- qified@0.10.1 — indirect
- p-limit@3.1.0 — indirect
- call-bind-apply-helpers@1.0.2 — indirect
- es-define-property@1.0.1 — indirect
- set-function-length@1.2.2 — indirect
- define-data-property@1.1.4 — indirect
- array-buffer-byte-length@1.0.2 — indirect
- arraybuffer.prototype.slice@1.0.4 — indirect
- available-typed-arrays@1.0.7 — indirect
- data-view-buffer@1.0.2 — indirect
- data-view-byte-length@1.0.2 — indirect
- data-view-byte-offset@1.0.1 — indirect
- es-to-primitive@1.3.4 — indirect
- function.prototype.name@1.2.0 — indirect
- get-proto@1.0.1 — indirect
- get-symbol-description@1.1.0 — indirect
- is-array-buffer@3.0.5 — indirect
- is-callable@1.2.7 — indirect
- is-data-view@1.0.2 — indirect
- is-negative-zero@2.0.3 — indirect
- is-regex@1.2.1 — indirect
- is-set@2.0.3 — indirect
- is-shared-array-buffer@1.0.4 — indirect
- is-typed-array@1.1.15 — indirect
- is-weakref@1.1.1 — indirect
- object-inspect@1.13.4 — indirect
- own-keys@1.0.2 — indirect
- safe-array-concat@1.1.4 — indirect
- safe-push-apply@1.0.0 — indirect
- safe-regex-test@1.1.0 — indirect
- set-proto@1.0.0 — indirect
- stop-iteration-iterator@1.1.0 — indirect
- string.prototype.trim@1.2.11 — indirect
- string.prototype.trimend@1.0.10 — indirect
- string.prototype.trimstart@1.0.8 — indirect
- typed-array-buffer@1.0.3 — indirect
- typed-array-byte-length@1.0.3 — indirect
- typed-array-byte-offset@1.0.5 — indirect
- typed-array-length@1.0.8 — indirect
- unbox-primitive@1.1.0 — indirect
- which-typed-array@1.1.24 — indirect
- has-tostringtag@1.0.2 — indirect
- async-function@1.0.0 — indirect
- async-generator-function@1.0.0 — indirect
- generator-function@2.0.1 — indirect
- dunder-proto@1.0.1 — indirect
- balanced-match@1.0.2 — indirect
- concat-map@0.0.1 — indirect
- functions-have-names@1.2.3 — indirect
- side-channel-list@1.0.1 — indirect
- side-channel-map@1.0.1 — indirect
- side-channel-weakmap@1.0.2 — indirect
- @jridgewell/gen-mapping@0.3.13 — indirect
- @jridgewell/trace-mapping@0.3.31 — indirect
- @babel/compat-data@7.29.7 — indirect
- @babel/helper-validator-option@7.29.7 — indirect
- lru-cache@5.1.1 — indirect
- @babel/helper-module-imports@7.29.7 — indirect
- @babel/helper-globals@7.29.7 — indirect
- @babel/helper-string-parser@7.29.11 — indirect
- mdn-data@2.23.0 — indirect
- source-map-js@1.2.2 — indirect
- @eslint/core@0.15.2 — indirect
- @emnapi/wasi-threads@1.2.1 — indirect
- tslib@2.8.1 — indirect
- @tybys/wasm-util@0.10.4 — indirect
- escalade@3.2.0 — indirect
- run-parallel@1.2.0 — indirect
- reusify@1.1.0 — indirect
- is-number@7.0.0 — indirect
- run-applescript@7.1.0 — indirect
- @keyv/bigmap@1.3.1 — indirect
- hashery@1.5.1 — indirect
- @keyv/serialize@1.1.1 — indirect
- hookified@2.2.0 — indirect
- yocto-queue@0.1.0 — indirect
- possible-typed-array-names@1.1.0 — indirect
- es-abstract-get@1.0.0 — indirect
- is-date-object@1.1.0 — indirect
- is-symbol@1.1.1 — indirect
- is-document.all@1.0.0 — indirect
- isarray@2.0.5 — indirect
- for-each@0.3.5 — indirect
- reflect.getprototypeof@1.0.10 — indirect
- has-bigints@1.1.0 — indirect
- which-boxed-primitive@1.1.1 — indirect
- @jridgewell/sourcemap-codec@1.6.0 — indirect
- @jridgewell/resolve-uri@3.1.2 — indirect
- yallist@3.1.1 — indirect
- queue-microtask@1.2.3 — indirect
- which-builtin-type@1.2.1 — indirect
- is-bigint@1.1.0 — indirect
- is-boolean-object@1.2.2 — indirect
- is-number-object@1.1.1 — indirect
- is-async-function@2.1.1 — indirect
- is-finalizationregistry@1.1.1 — indirect
- is-generator-function@1.1.2 — indirect
- which-collection@1.0.2 — indirect
- is-map@2.0.3 — indirect
- is-weakmap@2.0.2 — indirect
- is-weakset@2.0.4 — indirect
How to interpret the specifications
Bundlephobia measurements use its standard package build and may exclude peer dependencies. Unpacked npm distribution size includes shipped files and is a different measurement. Module declarations do not prove tree-shaking or runtime compatibility.
Advisories apply to this package version directly; transitive dependencies need separate inspection. Repository signals describe the whole repository and are current observations, including on historical-version pages.
OpenSSF repository checks
Provider assessment: 2026-08-24T00:00:00Z. These are repository checks, not a jsL maintenance score.
| Code-Review | 0/10 — Found 1/30 approved changesets -- score normalized to 0 |
|---|---|
| Dangerous-Workflow | 10/10 — no dangerous workflow patterns detected |
| Binary-Artifacts | 10/10 — no binaries found in the repo |
| Maintained | 10/10 — 16 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10 |
| Pinned-Dependencies | 0/10 — dependency not pinned by hash detected -- score normalized to 0 |
| Token-Permissions | 0/10 — detected GitHub workflow tokens with excessive permissions |
| CII-Best-Practices | 0/10 — no effort to earn an OpenSSF best practices badge detected |
| Fuzzing | 0/10 — project is not fuzzed |
| License | 10/10 — license file detected |
| Branch-Protection | 3/10 — branch protection is not maximal on development and all release branches |
| Security-Policy | 0/10 — security policy file not detected |
| SAST | 0/10 — SAST tool is not run on all commits -- score normalized to 0 |
Evidence and freshness
- https://registry.npmjs.org/xo/2.0.0 — retrieved 2026-10-30T06:02:46.992Z
- https://api.deps.dev/v3/projects/github.com%2Fxojs%2Fxo — retrieved 2026-10-30T04:42:49.512Z
- https://api.deps.dev/v3/systems/npm/packages/xo/versions/2.0.0 — retrieved 2026-10-30T06:02:47.483Z
- https://api.deps.dev/v3/systems/npm/packages/xo/versions/2.0.0:dependencies — retrieved 2026-10-30T06:02:47.531Z