{"name":"sinon","description":"JavaScript test spies, stubs and mocks.","keywords":["sinon","test","testing","unit","stub","spy","fake","time","clock","mock","xhr","assert"],"version":"21.1.1","homepage":"https://sinonjs.org/","author":{"name":"Christian Johansen"},"repository":{"type":"git","url":"git+ssh://git@github.com/sinonjs/sinon.git"},"bugs":{"url":"http://github.com/sinonjs/sinon/issues"},"funding":{"type":"opencollective","url":"https://opencollective.com/sinon"},"license":"BSD-3-Clause","scripts":{"build-artifacts":"node ./build.cjs","pretest-node":"npm run build-artifacts","test-node":"mocha --recursive -R dot 'test/{src,issues,scripts}/**/*-test.js'","pretest-headless":"npm run build-artifacts","test-dev":"CHOKIDAR_USEPOLLING=1 npm run test-node -- --watch","test-headless":"node ./scripts/run-browser-suite.mjs headless","test-coverage":"npm run build-artifacts && nyc nyc --exclude-after-remap false mochify --driver puppeteer --bundle 'node coverage.cjs'","test-cloud":"npm run build-artifacts && ./scripts/test-cloud.sh","test-distribution":"node ./scripts/test-distribution.mjs","test-webworker":"node ./scripts/run-browser-suite.mjs webworker","test-esm-support":"mocha test/es2015/module-support-assessment-test.mjs","test-esm-browser-build":"node test/es2015/check-esm-bundle-is-runnable.mjs","test-pkg-browser-global":"node test/distribution/browser-global-smoke.mjs","test-pkg-browser-esm":"node test/es2015/check-esm-bundle-is-runnable.mjs","pretest-contract":"run-s build-artifacts","test-contract":"run-s test-distribution test-pkg-browser-esm test-pkg-browser-global","verify-esm-migration":"run-p lint test-contract test-node","test-runnable-examples":"docs/release-source/release/examples/run-test.sh","test-docs":"cd docs; make check-links","test":"npm run build-artifacts && npm run test-node && node ./scripts/run-browser-suite.mjs headless && node ./scripts/run-browser-suite.mjs webworker","check-dependencies":"knip --dependencies","update-compatibility":"node ./scripts/update-compatibility.cjs","build":"npm run build-artifacts","build-docs":"cd docs; make build","serve-docs":"cd docs; make livereload","lint":"eslint --max-warnings 48 '**/*.{js,cjs,mjs}'","pretest-webworker":"npm run build-artifacts","prebuild":"rimraf pkg && npm run update-compatibility","postbuild":"run-s test-esm-support test-esm-browser-build test-contract check-dependencies","prepublishOnly":"npm run build","prettier:check":"prettier --check '**/*.{js,css,md}'","prettier:write":"prettier --write '**/*.{js,css,md}'","preversion":"./scripts/preversion.sh","version":"./scripts/version.sh","postversion":"./scripts/postversion.sh"},"nyc":{"instrument":false,"temp-dir":"coverage/.nyc_output","reporter":["text","lcovonly"],"include":["src/**/*.js"],"check-coverage":true,"branches":92,"lines":97},"lint-staged":{"**/*.{js,css,md}":"prettier --write","*.js":"eslint --quiet","*.mjs":"eslint --quiet --ext mjs --parser-options=sourceType:module"},"mochify":{"reporter":"dot","timeout":10000,"bundle":"esbuild --bundle --sourcemap=inline --define:process.env.NODE_DEBUG=\"\" --external:fs","bundle_stdin":"require","spec":"test/{src,issues}/**/*-test.js"},"knip":{"entry":["src/sinon.js","src/sinon-esm.js","src/create-sinon-api.js","test/{src,issues,distribution,es2015,webworker}/**/*.{js,mjs,cjs}","scripts/*.{js,mjs,cjs}","test/scripts/**/*.{js,mjs,cjs}","*.{js,mjs,cjs}"],"project":["src/**/*.js","test/**/*.{js,mjs,cjs}","scripts/**/*.{js,mjs,cjs}","*.{js,mjs,cjs}"],"ignoreFiles":["lib/**","pkg/**"],"ignoreBinaries":["eslint","make","docs/release-source/release/examples/run-test.sh"],"ignoreDependencies":["@mochify/cli","@mochify/driver-puppeteer","@mochify/driver-webdriver","@sinonjs/eslint-config","@sinonjs/eslint-plugin-no-prototype-methods","@studio/changes","lint-staged"]},"dependencies":{"@sinonjs/commons":"^3.0.1","@sinonjs/fake-timers":"^15.3.1","@sinonjs/samsam":"^10.0.1","diff":"^8.0.4","npm-run-all":"^4.1.5"},"devDependencies":{"@mochify/cli":"^1.0.0","@mochify/driver-puppeteer":"^1.0.1","@mochify/driver-webdriver":"^1.0.0","@rollup/plugin-commonjs":"^29.0.2","@rollup/plugin-json":"^6.1.0","@rollup/plugin-node-resolve":"^16.0.3","@sinonjs/eslint-config":"^6.0.0","@sinonjs/eslint-plugin-no-prototype-methods":"^0.1.1","@sinonjs/referee":"^11.0.1","@studio/changes":"^3.0.0","debug":"^4.4.3","esbuild":"^0.28.0","esbuild-plugin-istanbul":"^0.3.0","esbuild-plugin-umd-wrapper":"^3.0.0","get-stdin":"^10.0.0","js-yaml":"^4.1.1","knip":"^6.3.1","lint-staged":"^16.4.0","mocha":"^11.7.5","nyc":"^18.0.0","prettier":"^3.8.2","puppeteer":"^24.40.0","rimraf":"^6.1.3","rollup":"^4.60.1","semver":"^7.7.4","shelljs":"^0.10.0"},"overrides":{"@isaacs/brace-expansion":"^5.0.1","basic-ftp":"^5.2.0","fast-xml-parser":"^5.3.8","undici":"^6.23.0"},"browser":"./lib/sinon.js","main":"./lib/sinon.js","module":"./pkg/sinon-esm.js","exports":{".":{"browser":"./pkg/sinon-esm.js","require":"./lib/sinon.js","import":"./pkg/sinon-esm.js"},"./*":"./*"},"type":"module","cdn":"./pkg/sinon.js","jsdelivr":"./pkg/sinon.js","esm":{"cjs":{"mutableNamespace":false,"cache":true},"mode":"auto"},"gitHead":"40f9d6b735d7fa38143a0717f745ca0d850f6693","_id":"sinon@21.1.1","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"shasum":"b460ca9040c6813a423ef300e6d99771e53206cf","size":491535,"noattachment":false,"key":"/sinon/-/sinon-21.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/sinon/download/sinon-21.1.1.tgz"},"_npmUser":{"name":"fatso83","email":"carlerik@gmail.com"},"directories":{},"maintainers":[{"name":"cjohansen","email":""},{"name":"fatso83","email":""},{"name":"mantoni","email":""},{"name":"mrgnrdrck","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sinon_21.1.1_1775854563805_0.8522787922251984"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-04-10T20:56:03.961Z","publish_time":1775854563961,"_source_registry_name":"default","_cnpm_publish_time":1775854563961,"dist-tags":{"latest":"21.1.1"}}