{"_id":"babel-plugin-tester","_rev":"3950501","name":"babel-plugin-tester","description":"Utilities for testing babel plugins","dist-tags":{"canary":"12.0.0-canary.2","latest":"11.0.4"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"time":{"modified":"2025-09-01T01:37:02.000Z","created":"2017-05-16T16:08:28.046Z","12.0.0-canary.2":"2025-01-06T16:19:57.237Z","12.0.0-canary.1":"2024-03-13T20:11:16.165Z","11.0.4":"2023-01-25T04:24:08.498Z","11.0.3":"2023-01-24T21:57:36.672Z","11.0.2":"2023-01-23T22:14:08.031Z","11.0.1":"2023-01-18T16:55:16.172Z","11.0.0":"2023-01-18T12:04:31.424Z","11.0.0-canary.1":"2023-01-16T22:30:05.995Z","10.1.0":"2021-05-29T06:08:51.744Z","10.0.0":"2020-10-02T02:18:07.336Z","9.2.0":"2020-05-27T12:45:29.880Z","9.1.0":"2020-05-20T05:15:43.859Z","9.0.1":"2020-04-10T13:55:43.596Z","9.0.0":"2020-03-23T03:07:26.205Z","8.0.1":"2019-12-01T15:04:09.368Z","8.0.0":"2019-11-15T23:01:28.717Z","7.0.4":"2019-11-14T22:30:37.553Z","7.0.3":"2019-11-11T19:22:57.235Z","7.0.2":"2019-11-09T23:09:41.026Z","7.0.1":"2019-08-19T19:15:33.802Z","7.0.0":"2019-08-19T17:59:51.003Z","6.5.0":"2019-08-18T13:53:05.433Z","6.4.0":"2019-06-12T23:13:47.615Z","6.3.1":"2019-06-12T20:39:56.805Z","6.3.0":"2019-06-12T20:37:27.632Z","6.2.1":"2019-05-12T22:21:04.944Z","6.2.0":"2019-05-12T16:05:25.781Z","6.1.0":"2019-05-04T17:37:39.795Z","6.0.1":"2019-03-14T19:04:24.280Z","6.0.0":"2019-02-14T19:46:17.204Z","5.5.2":"2018-11-17T23:44:58.993Z","5.5.1":"2018-08-17T00:47:24.067Z","5.5.0":"2018-08-05T14:58:05.958Z","5.4.0":"2018-06-10T04:30:39.120Z","5.3.0":"2018-06-04T14:59:04.958Z","5.2.0":"2018-06-04T00:41:41.997Z","5.1.0":"2018-06-02T14:24:22.060Z","5.0.0":"2017-11-25T13:59:40.471Z","4.0.0":"2017-08-16T18:42:50.057Z","3.3.0":"2017-07-18T03:25:15.633Z","3.2.2":"2017-07-06T17:12:46.737Z","3.2.1":"2017-07-05T07:02:05.170Z","3.2.0":"2017-06-30T07:27:47.620Z","3.1.0":"2017-06-12T17:32:04.523Z","3.0.0":"2017-05-23T22:29:25.263Z","2.0.0":"2017-05-19T05:51:46.445Z","1.1.1":"2017-05-16T21:17:10.127Z","1.1.0":"2017-05-16T17:37:06.900Z","1.0.0":"2017-05-16T16:08:28.046Z"},"users":{},"author":{"name":"Kent C. Dodds","email":"me@kentcdodds.com","url":"https://kentcdodds.com"},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"versions":{"12.0.0-canary.2":{"name":"babel-plugin-tester","version":"12.0.0-canary.2","description":"Utilities for testing babel plugins","keywords":["babel","plugin","tester"],"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"license":"MIT","maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"sideEffects":false,"type":"commonjs","exports":{".":{"types":"./dist/src/index.d.ts","default":"./dist/src/index.js"},"./pure":{"types":"./dist/src/plugin-tester.d.ts","default":"./dist/src/plugin-tester.js"},"./package":"./package.json","./package.json":"./package.json"},"typesVersions":{"*":{"index":["dist/src/index.d.ts"],"pure":["dist/src/plugin-tester.d.ts"],"package":["package.json"]}},"scripts":{"build":"npm run build:dist --","build:changelog":"NODE_NO_WARNINGS=1 symbiote build changelog","build:dist":"NODE_NO_WARNINGS=1 symbiote build distributables --skip-bijective 'test/fixtures/.+$'","build:docs":"NODE_NO_WARNINGS=1 symbiote build docs --options --gitRemote upstream --entries 'src/**/*.ts' 'test/setup.ts' 'types/**/*.ts'","clean":"NODE_NO_WARNINGS=1 symbiote clean","format":"NODE_NO_WARNINGS=1 symbiote format --hush","info":"NODE_NO_WARNINGS=1 symbiote project info","lint":"npm run lint:package --","lint:package":"NODE_NO_WARNINGS=1 symbiote lint --hush","lint:packages":"NODE_NO_WARNINGS=1 symbiote lint --hush --scope unlimited","lint:project":"NODE_NO_WARNINGS=1 symbiote project lint","list-tasks":"NODE_NO_WARNINGS=1 symbiote list-tasks --scope this-package","prepare":"NODE_NO_WARNINGS=1 symbiote project prepare","release":"NODE_NO_WARNINGS=1 symbiote release","renovate":"NODE_NO_WARNINGS=1 symbiote project renovate --hush --regenerate-assets --assets-preset lib","start":"NODE_NO_WARNINGS=1 symbiote start --","test":"npm run test:package:unit --","test:package:all":"NODE_NO_WARNINGS=1 symbiote test --coverage","test:package:e2e":"NODE_NO_WARNINGS=1 symbiote test --tests end-to-end","test:package:integration":"NODE_NO_WARNINGS=1 symbiote test --tests integration","test:package:unit":"NODE_NO_WARNINGS=1 symbiote test --tests unit","test:packages:all":"NODE_NO_WARNINGS=1 symbiote test --scope unlimited --coverage"},"dependencies":{"core-js":"^3.39.0","debug":"^4.4.0","lodash.mergewith":"^4.6.2","prettier":"^3.4.2","pretty-format":"^29.7.0","strip-indent~3":"npm:strip-indent@^3.0.0","type-fest":"^4.31.0"},"devDependencies":{"@-xun/symbiote":"^2.5.6","@babel/helper-plugin-utils":"^7.25.9","@babel/plugin-syntax-typescript":"^7.25.9","@types/babel__helper-plugin-utils":"^7.10.3","@types/lodash.mergewith":"^4.6.9","@xunnamius/jest-types":"^1.1.3","execa~5":"npm:execa@^5.1.1","glob":"^11.0.0","jest-extended":"^4.0.2","semver":"^7.6.3","strip-ansi~6":"npm:strip-ansi@^6.0.1","toss-expression":"^0.1.2","unique-filename":"^4.0.0"},"peerDependencies":{"@babel/core":">=7.22.0","jest":">=30 || >=30.0.0-alpha.2"},"peerDependenciesMeta":{"jest":{"optional":true}},"engines":{"node":"^20.18.0 || ^22.12.0 || >=23.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_id":"babel-plugin-tester@12.0.0-canary.2","readmeFilename":"README.md","gitHead":"03734eaa985470bea60d71fab1aa0d0dbdddae3c","_nodeVersion":"22.12.0","_npmVersion":"10.9.2","dist":{"shasum":"28f6ef0e0f2e7884a2271f60ee6920a126e597b0","size":45058,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-12.0.0-canary.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-12.0.0-canary.2.tgz"},"_npmUser":{"name":"xunnamius","email":"git@bernarddickens.dev"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/babel-plugin-tester_12.0.0-canary.2_1736180396957_0.44618767887988664"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-01-06T16:19:57.237Z","publish_time":1736180397237,"_source_registry_name":"default","_cnpm_publish_time":1736180397237},"12.0.0-canary.1":{"name":"babel-plugin-tester","version":"12.0.0-canary.1","description":"Utilities for testing babel plugins","keywords":["babel","plugin","tester"],"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"license":"MIT","author":{"name":"Kent C. Dodds","email":"me@kentcdodds.com","url":"https://kentcdodds.com"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"sideEffects":false,"type":"commonjs","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pure":{"types":"./dist/plugin-tester.d.ts","default":"./dist/plugin-tester.js"},"./package":"./package.json","./package.json":"./package.json"},"typesVersions":{"*":{"pure":["./dist/plugin-tester.d.ts"],"*":["./dist/index.d.ts"]}},"scripts":{"build":"npm run build:dist --","build:changelog":"conventional-changelog --outfile CHANGELOG.md --config ./conventional.config.js --release-count 0 --skip-unstable && (if [ \"$CHANGELOG_SKIP_TITLE\" != 'true' ]; then { node -e 'console.log(require(\"./conventional.config.js\").changelogTitle)'; cat CHANGELOG.md; } > CHANGELOG.md.ignore && mv CHANGELOG.md.ignore CHANGELOG.md; fi) && NODE_ENV=format remark --output --frail CHANGELOG.md && prettier --write CHANGELOG.md","build:dist":"NODE_ENV=production tsc --project tsconfig.types.json --incremental false && tsconfig-replace-paths --project tsconfig.types.json && NODE_ENV=production-cjs babel src --extensions .ts --out-dir dist","build:transpiled":"mkdir -p .transpiled && JEST_TRANSPILED=true NODE_ENV=test babel src --extensions .ts --out-dir .transpiled/src && JEST_TRANSPILED=true NODE_ENV=test babel test --extensions .ts --out-dir .transpiled/test","clean":"git ls-files --exclude-standard --ignored --others --directory | grep -vE '^((\\.(env|vscode|husky))|next-env\\.d\\.ts|node_modules)($|\\/)' | grep -vE '\\.local$' | xargs -p rm -rf","format":"MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && (echo $MD_FILES | xargs remark --no-config --no-stdout --quiet --frail --use gfm --use lint-no-undefined-references || (echo -n '\u001b' && echo '[37;41;1m FAIL \u001b[0m cannot continue with undefined references present' && false)) && sort-package-json './package.json' './packages/*/package.json' && echo $MD_FILES | NODE_ENV=format xargs remark --output --frail && echo $MD_FILES | xargs doctoc --no-title --maxlevel 3 --update-only && prettier --write .","lint":"stdbuf -i0 -o0 -e0 tsc --project tsconfig.lint.json; X=$?; stdbuf -i0 -o0 -e0 eslint --parser-options=project:tsconfig.lint.json --no-error-on-unmatched-pattern packages src; Y=$?; MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && echo $MD_FILES | NODE_ENV=lint xargs remark --quiet --frail --no-stdout; Z=$?; [ $X -eq 0 ] && [ $Y -eq 0 ] && [ $Z -eq 0 ]","lint:all":"stdbuf -i0 -o0 -e0 tsc --project tsconfig.eslint.json; X=$?; stdbuf -i0 -o0 -e0 eslint --parser-options=project:tsconfig.eslint.json .; Y=$?; MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && echo $MD_FILES | NODE_ENV=lint xargs remark --quiet --frail --no-stdout; Z=$?; [ $X -eq 0 ] && [ $Y -eq 0 ] && [ $Z -eq 0 ]","list-tasks":"node -e 'console.log(Object.keys(require(\"./package.json\").scripts).join(\"\\n\"))' && (npm run -ws list-tasks --if-present 2>/dev/null || true)","prepare":"node -e \"execa = require('execa'); if(process.env.CI === undefined && (process.env.NODE_ENV === undefined || process.env.NODE_ENV === 'development')) { execa.sync('npx', ['husky'], { stdout: 'inherit', stderr: 'inherit' }); } else { console.log('skipped installing husky git hooks'); }\"","test":"npm run test:unit --","test:all":"npx attw --pack . && echo && JEST_NO_IGNORE_INTEGRATIONS=true npm run test:base -- --coverage","test:base":"NODE_OPTIONS='--no-warnings --experimental-vm-modules' NODE_ENV=test jest","test:integration":"JEST_NO_IGNORE_INTEGRATIONS=true JEST_IGNORE_UNITS=true npm run test:base -- 'integration-.*\\.test\\.ts.*'","test:repeat:all":"echo 'Repeating test suite [initializing]...'; (i=0; while [ \"$((( i += 1 ) <= 100 ))\" -ne 0 ]; do sleep 0.1 && echo \"\\r\\033[1A\\033[0KRepeating test suite [run $i/100]...\" && JEST_SILENT_REPORTER_SHOW_WARNINGS=true npx run test:all --reporters=jest-silent-reporter || exit; done) && echo \"All tests passed! Congrats!\"","test:repeat:unit":"echo 'Repeating test suite [initializing]...'; (i=0; while [ \"$((( i += 1 ) <= 100 ))\" -ne 0 ]; do sleep 0.1 && echo \"\\r\\033[1A\\033[0KRepeating test suite [run $i/100]...\" && JEST_SILENT_REPORTER_SHOW_WARNINGS=true npx run test:unit --reporters=jest-silent-reporter || exit; done) && echo \"All tests passed! Congrats!\"","test:transpiled":"JEST_TRANSPILED=true npm run test:base --","test:unit":"npm run test:base -- 'unit-.*\\.test\\.tsx?'","test:update":"npm run test:all -- --updateSnapshot"},"dependencies":{"core-js":"^3.36.0","debug":"^4.3.4","lodash.mergewith":"^4.6.2","prettier":"^3.2.5","strip-indent":"^3.0.0"},"devDependencies":{"@arethetypeswrong/cli":"^0.15.1","@babel/cli":"^7.23.9","@babel/core":"^7.24.0","@babel/eslint-parser":"^7.23.10","@babel/helper-plugin-utils":"^7.24.0","@babel/plugin-proposal-export-default-from":"^7.23.3","@babel/plugin-syntax-jsx":"^7.23.3","@babel/preset-env":"^7.24.0","@babel/preset-typescript":"^7.23.3","@commitlint/cli":"^19.1.0","@commitlint/config-conventional":"^19.1.0","@semantic-release/changelog":"^6.0.3","@semantic-release/exec":"^6.0.3","@semantic-release/git":"^10.0.1","@types/babel__helper-plugin-utils":"^7.10.3","@types/jest":"^29.5.12","@types/lodash.mergewith":"^4.6.9","@types/node":"^20.11.27","@typescript-eslint/eslint-plugin":"^7.2.0","@typescript-eslint/parser":"^7.2.0","@xunnamius/conventional-changelog-projector":"^1.2.1","@xunnamius/jest-types":"^1.1.3","@xunnamius/types":"^1.3.0","all-contributors-cli":"^6.26.1","babel-jest":"^29.7.0","babel-loader":"^9.1.3","babel-plugin-explicit-exports-references":"^1.0.2","browserslist":"^4.23.0","conventional-changelog-cli":"https://xunn.at/conventional-changelog-cli","doctoc":"^2.2.1","dotenv":"^16.4.5","eslint":"^8.57.0","eslint-import-resolver-typescript":"^3.6.1","eslint-plugin-import":"^2.29.1","eslint-plugin-jest":"^27.9.0","eslint-plugin-unicorn":"^51.0.1","execa":"^5.1.1","glob-gitignore":"^1.0.14","husky":"^9.0.11","jest":"^30.0.0-alpha.3","jest-circus":"^29.7.0","jest-extended":"^4.0.2","lint-staged":"^15.2.2","remark-capitalize-headings":"^2.0.1","remark-cli":"^12.0.0","remark-comment-config":"^8.0.0","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.0","remark-ignore":"^2.0.0","remark-lint":"^9.1.2","remark-lint-definition-case":"^3.1.2","remark-lint-fenced-code-flag":"^3.1.2","remark-lint-fenced-code-flag-case":"^2.0.0","remark-lint-file-extension":"^2.1.2","remark-lint-first-heading-level":"^3.1.2","remark-lint-heading-increment":"^3.1.2","remark-lint-heading-whitespace":"^1.0.0","remark-lint-heading-word-length":"^2.0.0","remark-lint-list-item-style":"^2.0.0","remark-lint-no-duplicate-defined-urls":"^2.1.2","remark-lint-no-duplicate-headings-in-section":"^3.1.2","remark-lint-no-empty-sections":"^4.0.0","remark-lint-no-empty-url":"^3.1.2","remark-lint-no-heading-like-paragraph":"^3.1.2","remark-lint-no-heading-punctuation":"^3.1.2","remark-lint-no-inline-padding":"^4.1.2","remark-lint-no-literal-urls":"^3.1.2","remark-lint-no-multiple-toplevel-headings":"^3.1.2","remark-lint-no-reference-like-url":"^3.1.2","remark-lint-no-shell-dollars":"^3.1.2","remark-lint-no-shortcut-reference-image":"^3.1.2","remark-lint-no-shortcut-reference-link":"^3.1.2","remark-lint-no-tabs":"^3.1.2","remark-lint-no-undefined-references":"^4.2.1","remark-lint-ordered-list-marker-value":"^3.1.2","remark-lint-strikethrough-marker":"^2.1.2","remark-lint-unordered-list-marker-style":"^3.1.2","remark-reference-links":"^7.0.0","remark-remove-unused-definitions":"^2.0.0","remark-remove-url-trailing-slash":"^2.0.0","remark-renumber-references":"^2.0.0","remark-sort-definitions":"^2.0.0","remark-tight-comments":"^2.0.0","remark-validate-links":"^13.0.0","semantic-release":"https://xunn.at/semantic-release-atam@22.0.7","sort-package-json":"https://xunn.at/sort-package-json@2.3.0","source-map-support":"^0.5.21","spellchecker":"^3.7.1","toss-expression":"^0.1.2","tsconfig-replace-paths":"^0.0.14","type-fest":"^4.12.0","typescript":"^5.4.2","unique-filename":"^3.0.0"},"peerDependencies":{"@babel/core":">=7.11.6","jest":">=30 || >=30.0.0-alpha.2"},"peerDependenciesMeta":{"jest":{"optional":true}},"engines":{"node":"^18.19.0 || ^20.10.0 || >=21.3.0"},"publishConfig":{"access":"public"},"_id":"babel-plugin-tester@12.0.0-canary.1","readmeFilename":"README.md","gitHead":"785dfcec3706e7603a72b0ac02666913fa16ec67","_nodeVersion":"21.7.1","_npmVersion":"9.9.2","dist":{"shasum":"8de4184c9603913854b0d6f69115fcc8ac6db5b0","size":44699,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-12.0.0-canary.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-12.0.0-canary.1.tgz"},"_npmUser":{"name":"xunnamius","email":"git@bernarddickens.dev"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_12.0.0-canary.1_1710360675958_0.3820921741620589"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-03-13T20:11:16.165Z","publish_time":1710360676165,"_source_registry_name":"default","_cnpm_publish_time":1710360676165},"11.0.4":{"name":"babel-plugin-tester","version":"11.0.4","description":"Utilities for testing babel plugins","keywords":["babel","plugin","tester"],"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"license":"MIT","author":{"name":"Kent C. Dodds","email":"me@kentcdodds.com","url":"https://kentcdodds.com"},"sideEffects":false,"type":"commonjs","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pure":{"types":"./dist/plugin-tester.d.ts","default":"./dist/plugin-tester.js"},"./package":"./package.json","./package.json":"./package.json"},"typesVersions":{"*":{"pure":["./dist/plugin-tester.d.ts"],"*":["./dist/index.d.ts"]}},"scripts":{"build":"npm run build:dist --","build:changelog":"conventional-changelog --outfile CHANGELOG.md --config ./conventional.config.js --release-count 0 --skip-unstable && (if [ \"$CHANGELOG_SKIP_TITLE\" != 'true' ]; then { node -e 'console.log(require(\"./conventional.config.js\").changelogTitle)'; cat CHANGELOG.md; } > CHANGELOG.md.ignore && mv CHANGELOG.md.ignore CHANGELOG.md; fi) && NODE_ENV=format remark --output --frail CHANGELOG.md && prettier --write CHANGELOG.md","build:dist":"NODE_ENV=production tsc --project tsconfig.types.json --incremental false && tsconfig-replace-paths --project tsconfig.types.json && NODE_ENV=production-cjs babel src --extensions .ts --out-dir dist","clean":"git ls-files --exclude-standard --ignored --others --directory | grep -vE '^((\\.(env|vscode|husky))|next-env\\.d\\.ts|node_modules)($|\\/)' | xargs -p rm -rf","format":"MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && (echo $MD_FILES | xargs remark --no-config --no-stdout --quiet --frail --use gfm --use lint-no-undefined-references || (echo -n '\u001b' && echo '[37;41;1m FAIL \u001b[0m cannot continue with undefined references present' && false)) && sort-package-json './package.json' './packages/*/package.json' && echo $MD_FILES | NODE_ENV=format xargs remark --output --frail && echo $MD_FILES | xargs doctoc --no-title --maxlevel 3 --update-only && prettier --write .","lint":"stdbuf -i0 -o0 -e0 tsc --project tsconfig.lint.json; X=$?; stdbuf -i0 -o0 -e0 eslint --parser-options=project:tsconfig.lint.json --no-error-on-unmatched-pattern packages src; Y=$?; MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && echo $MD_FILES | NODE_ENV=lint xargs remark --quiet --frail --no-stdout; Z=$?; [ $X -eq 0 ] && [ $Y -eq 0 ] && [ $Z -eq 0 ]","lint:all":"stdbuf -i0 -o0 -e0 tsc --project tsconfig.eslint.json; X=$?; stdbuf -i0 -o0 -e0 eslint --parser-options=project:tsconfig.eslint.json .; Y=$?; MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && echo $MD_FILES | NODE_ENV=lint xargs remark --quiet --frail --no-stdout; Z=$?; [ $X -eq 0 ] && [ $Y -eq 0 ] && [ $Z -eq 0 ]","list-tasks":"node -e 'console.log(Object.keys(require(\"./package.json\").scripts).join(\"\\n\"))' && (npm run -ws list-tasks --if-present 2>/dev/null || true)","prepare":"node -e \"execa = require('execa'); if(process.env.CI === undefined && (process.env.NODE_ENV === undefined || process.env.NODE_ENV == 'development')) { execa.sync('npx', ['husky', 'install'], { stdout: 'inherit', stderr: 'inherit' }); } else { console.log('skipped installing husky git hooks'); }\"","test":"npm run test:unit --","test:all":"NODE_ENV=test jest --coverage","test:integration":"NODE_ENV=test jest 'integration-.*\\.test\\.ts.*'","test:unit":"NODE_ENV=test jest --testPathIgnorePatterns 'integration-.*\\.test\\.ts.*' dist","test:update":"npm test:all -- --updateSnapshot"},"dependencies":{"core-js":"^3.27.2","debug":"^4.3.4","lodash.mergewith":"^4.6.2","prettier":"^2.8.3","strip-indent":"^3.0.0"},"devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/eslint-parser":"^7.19.1","@babel/helper-plugin-utils":"^7.20.2","@babel/plugin-proposal-export-default-from":"^7.18.10","@babel/plugin-syntax-jsx":"^7.18.6","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@commitlint/cli":"^17.4.2","@commitlint/config-conventional":"^17.4.2","@semantic-release/changelog":"^6.0.2","@semantic-release/exec":"^6.0.3","@semantic-release/git":"^10.0.1","@types/babel__helper-plugin-utils":"^7.10.0","@types/jest":"^29.2.6","@types/lodash.mergewith":"^4.6.7","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","@xunnamius/conventional-changelog-projector":"^1.2.1","@xunnamius/jest-types":"^1.1.3","@xunnamius/types":"^1.3.0","all-contributors-cli":"^6.24.0","babel-jest":"^29.4.0","babel-loader":"^9.1.2","babel-plugin-explicit-exports-references":"^1.0.2","browserslist":"^4.21.4","conventional-changelog-cli":"https://xunn.at/conventional-changelog-cli","doctoc":"^2.2.1","dotenv":"^16.0.3","eslint":"^8.32.0","eslint-import-resolver-typescript":"^3.5.3","eslint-plugin-import":"^2.27.5","eslint-plugin-jest":"^27.2.1","eslint-plugin-unicorn":"^45.0.2","execa":"^5.1.1","glob-gitignore":"^1.0.14","husky":"^8.0.3","jest":"^29.4.0","jest-circus":"^29.4.0","jest-extended":"^3.2.3","lint-staged":"^13.1.0","remark-capitalize-headings":"^1.0.2","remark-cli":"^11.0.0","remark-comment-config":"^7.0.1","remark-frontmatter":"^4.0.1","remark-gfm":"^3.0.1","remark-ignore":"^1.0.5","remark-lint":"^9.1.1","remark-lint-definition-case":"^3.1.1","remark-lint-fenced-code-flag":"^3.1.1","remark-lint-fenced-code-flag-case":"^1.0.3","remark-lint-file-extension":"^2.1.1","remark-lint-first-heading-level":"^3.1.1","remark-lint-heading-increment":"^3.1.1","remark-lint-heading-whitespace":"^1.0.0","remark-lint-heading-word-length":"^1.0.2","remark-lint-list-item-style":"^1.1.2","remark-lint-no-duplicate-defined-urls":"^2.1.1","remark-lint-no-duplicate-headings-in-section":"^3.1.1","remark-lint-no-empty-sections":"^4.0.0","remark-lint-no-empty-url":"https://xunn.at/remark-lint-no-empty-url","remark-lint-no-heading-like-paragraph":"^3.1.1","remark-lint-no-heading-punctuation":"^3.1.1","remark-lint-no-inline-padding":"^4.1.1","remark-lint-no-literal-urls":"^3.1.1","remark-lint-no-multiple-toplevel-headings":"^3.1.1","remark-lint-no-reference-like-url":"^3.1.1","remark-lint-no-shell-dollars":"^3.1.1","remark-lint-no-shortcut-reference-image":"^3.1.1","remark-lint-no-shortcut-reference-link":"^3.1.1","remark-lint-no-tabs":"^3.1.1","remark-lint-no-undefined-references":"^4.2.0","remark-lint-ordered-list-marker-value":"^3.1.1","remark-lint-strikethrough-marker":"^2.1.1","remark-lint-unordered-list-marker-style":"^3.1.1","remark-reference-links":"^6.0.1","remark-remove-unused-definitions":"^1.0.3","remark-remove-url-trailing-slash":"^1.0.1","remark-renumber-references":"^1.0.4","remark-sort-definitions":"^1.0.4","remark-tight-comments":"^1.0.5","remark-validate-links":"^12.1.0","semantic-release":"https://xunn.at/semantic-release-atam","sort-package-json":"^2.2.0","source-map-support":"^0.5.21","spellchecker":"^3.7.1","toss-expression":"^0.1.2","tsconfig-replace-paths":"^0.0.11","type-fest":"^3.5.3","typescript":"^4.9.4","unique-filename":"^3.0.0"},"peerDependencies":{"@babel/core":">=7.11.6"},"engines":{"node":"^14.20.0 || ^16.16.0 || >=18.5.0"},"publishConfig":{"access":"public"},"gitHead":"e8c7f88376cc05b5d933909c939b33263daf19af","_id":"babel-plugin-tester@11.0.4","_nodeVersion":"18.13.0","_npmVersion":"8.19.3","dist":{"shasum":"4a661c5f08a63c344d46247f1256a7ef5175b405","size":43607,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-11.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-11.0.4.tgz"},"_npmUser":{"name":"xunnamius","email":"git@bernarddickens.dev"},"directories":{},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_11.0.4_1674620648329_0.603067037097353"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-01-25T04:24:08.498Z","publish_time":1674620648498,"_cnpm_publish_time":1674620648498},"11.0.3":{"name":"babel-plugin-tester","version":"11.0.3","description":"Utilities for testing babel plugins","keywords":["babel","plugin","tester"],"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"license":"MIT","author":{"name":"Kent C. Dodds","email":"me@kentcdodds.com","url":"https://kentcdodds.com"},"sideEffects":false,"type":"commonjs","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pure":{"types":"./dist/plugin-tester.d.ts","default":"./dist/plugin-tester.js"},"./package":"./package.json","./package.json":"./package.json"},"typesVersions":{"*":{"pure":["./dist/plugin-tester.d.ts"],"*":["./dist/index.d.ts"]}},"scripts":{"build":"npm run build:dist --","build:changelog":"conventional-changelog --outfile CHANGELOG.md --config ./conventional.config.js --release-count 0 --skip-unstable && (if [ \"$CHANGELOG_SKIP_TITLE\" != 'true' ]; then { node -e 'console.log(require(\"./conventional.config.js\").changelogTitle)'; cat CHANGELOG.md; } > CHANGELOG.md.ignore && mv CHANGELOG.md.ignore CHANGELOG.md; fi) && NODE_ENV=format remark --output --frail CHANGELOG.md && prettier --write CHANGELOG.md","build:dist":"NODE_ENV=production tsc --project tsconfig.types.json --incremental false && tsconfig-replace-paths --project tsconfig.types.json && NODE_ENV=production-cjs babel src --extensions .ts --out-dir dist","clean":"git ls-files --exclude-standard --ignored --others --directory | grep -vE '^((\\.(env|vscode|husky))|next-env\\.d\\.ts|node_modules)($|\\/)' | xargs -p rm -rf","format":"MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && (echo $MD_FILES | xargs remark --no-config --no-stdout --quiet --frail --use gfm --use lint-no-undefined-references || (echo -n '\u001b' && echo '[37;41;1m FAIL \u001b[0m cannot continue with undefined references present' && false)) && sort-package-json './package.json' './packages/*/package.json' && echo $MD_FILES | NODE_ENV=format xargs remark --output --frail && echo $MD_FILES | xargs doctoc --no-title --maxlevel 3 --update-only && prettier --write .","lint":"stdbuf -i0 -o0 -e0 tsc --project tsconfig.lint.json; X=$?; stdbuf -i0 -o0 -e0 eslint --parser-options=project:tsconfig.lint.json --no-error-on-unmatched-pattern packages src; Y=$?; MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && echo $MD_FILES | NODE_ENV=lint xargs remark --quiet --frail --no-stdout; Z=$?; [ $X -eq 0 ] && [ $Y -eq 0 ] && [ $Z -eq 0 ]","lint:all":"stdbuf -i0 -o0 -e0 tsc --project tsconfig.eslint.json; X=$?; stdbuf -i0 -o0 -e0 eslint --parser-options=project:tsconfig.eslint.json .; Y=$?; MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && echo $MD_FILES | NODE_ENV=lint xargs remark --quiet --frail --no-stdout; Z=$?; [ $X -eq 0 ] && [ $Y -eq 0 ] && [ $Z -eq 0 ]","list-tasks":"node -e 'console.log(Object.keys(require(\"./package.json\").scripts).join(\"\\n\"))' && (npm run -ws list-tasks --if-present 2>/dev/null || true)","prepare":"node -e \"execa = require('execa'); if(process.env.CI === undefined && (process.env.NODE_ENV === undefined || process.env.NODE_ENV == 'development')) { execa.sync('npx', ['husky', 'install'], { stdout: 'inherit', stderr: 'inherit' }); } else { console.log('skipped installing husky git hooks'); }\"","test":"npm run test:unit --","test:all":"NODE_ENV=test jest --coverage","test:integration":"NODE_ENV=test jest 'integration-.*\\.test\\.ts.*'","test:unit":"NODE_ENV=test jest --testPathIgnorePatterns 'integration-.*\\.test\\.ts.*' dist","test:update":"npm test:all -- --updateSnapshot"},"dependencies":{"core-js":"^3.27.2","debug":"^4.3.4","lodash.mergewith":"^4.6.2","prettier":"^2.8.3","strip-indent":"^3.0.0"},"devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/eslint-parser":"^7.19.1","@babel/helper-plugin-utils":"^7.20.2","@babel/plugin-proposal-export-default-from":"^7.18.10","@babel/plugin-syntax-jsx":"^7.18.6","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@commitlint/cli":"^17.4.2","@commitlint/config-conventional":"^17.4.2","@semantic-release/changelog":"^6.0.2","@semantic-release/exec":"^6.0.3","@semantic-release/git":"^10.0.1","@types/babel__helper-plugin-utils":"^7.10.0","@types/jest":"^29.2.6","@types/lodash.mergewith":"^4.6.7","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","@xunnamius/conventional-changelog-projector":"^1.2.1","@xunnamius/jest-types":"^1.1.3","@xunnamius/types":"^1.3.0","all-contributors-cli":"^6.24.0","babel-jest":"^29.4.0","babel-loader":"^9.1.2","babel-plugin-explicit-exports-references":"^1.0.2","browserslist":"^4.21.4","conventional-changelog-cli":"https://xunn.at/conventional-changelog-cli","doctoc":"^2.2.1","dotenv":"^16.0.3","eslint":"^8.32.0","eslint-import-resolver-typescript":"^3.5.3","eslint-plugin-import":"^2.27.5","eslint-plugin-jest":"^27.2.1","eslint-plugin-unicorn":"^45.0.2","execa":"^5.1.1","glob-gitignore":"^1.0.14","husky":"^8.0.3","jest":"^29.4.0","jest-circus":"^29.4.0","jest-extended":"^3.2.3","lint-staged":"^13.1.0","remark-capitalize-headings":"^1.0.2","remark-cli":"^11.0.0","remark-comment-config":"^7.0.1","remark-frontmatter":"^4.0.1","remark-gfm":"^3.0.1","remark-ignore":"^1.0.5","remark-lint":"^9.1.1","remark-lint-definition-case":"^3.1.1","remark-lint-fenced-code-flag":"^3.1.1","remark-lint-fenced-code-flag-case":"^1.0.3","remark-lint-file-extension":"^2.1.1","remark-lint-first-heading-level":"^3.1.1","remark-lint-heading-increment":"^3.1.1","remark-lint-heading-whitespace":"^1.0.0","remark-lint-heading-word-length":"^1.0.2","remark-lint-list-item-style":"^1.1.2","remark-lint-no-duplicate-defined-urls":"^2.1.1","remark-lint-no-duplicate-headings-in-section":"^3.1.1","remark-lint-no-empty-sections":"^4.0.0","remark-lint-no-empty-url":"https://xunn.at/remark-lint-no-empty-url","remark-lint-no-heading-like-paragraph":"^3.1.1","remark-lint-no-heading-punctuation":"^3.1.1","remark-lint-no-inline-padding":"^4.1.1","remark-lint-no-literal-urls":"^3.1.1","remark-lint-no-multiple-toplevel-headings":"^3.1.1","remark-lint-no-reference-like-url":"^3.1.1","remark-lint-no-shell-dollars":"^3.1.1","remark-lint-no-shortcut-reference-image":"^3.1.1","remark-lint-no-shortcut-reference-link":"^3.1.1","remark-lint-no-tabs":"^3.1.1","remark-lint-no-undefined-references":"^4.2.0","remark-lint-ordered-list-marker-value":"^3.1.1","remark-lint-strikethrough-marker":"^2.1.1","remark-lint-unordered-list-marker-style":"^3.1.1","remark-reference-links":"^6.0.1","remark-remove-unused-definitions":"^1.0.3","remark-remove-url-trailing-slash":"^1.0.1","remark-renumber-references":"^1.0.4","remark-sort-definitions":"^1.0.4","remark-tight-comments":"^1.0.5","remark-validate-links":"^12.1.0","semantic-release":"https://xunn.at/semantic-release-atam","sort-package-json":"^2.2.0","source-map-support":"^0.5.21","spellchecker":"^3.7.1","toss-expression":"^0.1.2","tsconfig-replace-paths":"^0.0.11","type-fest":"^3.5.3","typescript":"^4.9.4","unique-filename":"^3.0.0"},"peerDependencies":{"@babel/core":">=7.11.6"},"engines":{"node":"^14.20.0 || ^16.16.0 || >=18.5.0"},"publishConfig":{"access":"public"},"gitHead":"ded70cc03b5c90e2c420ae63eff044c7c738f51e","_id":"babel-plugin-tester@11.0.3","_nodeVersion":"18.13.0","_npmVersion":"8.19.3","dist":{"shasum":"df9072b08a1ae5b1a4ecd0f1c72ace774c5eb067","size":43105,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-11.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-11.0.3.tgz"},"_npmUser":{"name":"xunnamius","email":"git@bernarddickens.dev"},"directories":{},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_11.0.3_1674597456366_0.8662489115102365"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-01-24T21:57:36.672Z","publish_time":1674597456672,"_cnpm_publish_time":1674597456672},"11.0.2":{"name":"babel-plugin-tester","version":"11.0.2","description":"Utilities for testing babel plugins","keywords":["babel","plugin","tester"],"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"license":"MIT","author":{"name":"Kent C. Dodds","email":"me@kentcdodds.com","url":"https://kentcdodds.com"},"sideEffects":false,"type":"commonjs","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pure":{"types":"./dist/plugin-tester.d.ts","default":"./dist/plugin-tester.js"},"./package":"./package.json","./package.json":"./package.json"},"typesVersions":{"*":{"pure":["./dist/plugin-tester.d.ts"],"*":["./dist/index.d.ts"]}},"scripts":{"build":"npm run build:dist --","build:changelog":"conventional-changelog --outfile CHANGELOG.md --config ./conventional.config.js --release-count 0 --skip-unstable && (if [ \"$CHANGELOG_SKIP_TITLE\" != 'true' ]; then { node -e 'console.log(require(\"./conventional.config.js\").changelogTitle)'; cat CHANGELOG.md; } > CHANGELOG.md.ignore && mv CHANGELOG.md.ignore CHANGELOG.md; fi) && NODE_ENV=format remark --output --frail CHANGELOG.md && prettier --write CHANGELOG.md","build:dist":"NODE_ENV=production tsc --project tsconfig.types.json --incremental false && tsconfig-replace-paths --project tsconfig.types.json && NODE_ENV=production-cjs babel src --extensions .ts --out-dir dist","clean":"git ls-files --exclude-standard --ignored --others --directory | grep -vE '^((\\.(env|vscode|husky))|next-env\\.d\\.ts|node_modules)($|\\/)' | xargs -p rm -rf","format":"MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && (echo $MD_FILES | xargs remark --no-config --no-stdout --quiet --frail --use gfm --use lint-no-undefined-references || (echo -n '\u001b' && echo '[37;41;1m FAIL \u001b[0m cannot continue with undefined references present' && false)) && sort-package-json './package.json' './packages/*/package.json' && echo $MD_FILES | NODE_ENV=format xargs remark --output --frail && echo $MD_FILES | xargs doctoc --no-title --maxlevel 3 --update-only && prettier --write .","lint":"stdbuf -i0 -o0 -e0 tsc --project tsconfig.lint.json; X=$?; stdbuf -i0 -o0 -e0 eslint --parser-options=project:tsconfig.lint.json --no-error-on-unmatched-pattern packages src; Y=$?; MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && echo $MD_FILES | NODE_ENV=lint xargs remark --quiet --frail --no-stdout; Z=$?; [ $X -eq 0 ] && [ $Y -eq 0 ] && [ $Z -eq 0 ]","lint:all":"stdbuf -i0 -o0 -e0 tsc --project tsconfig.eslint.json; X=$?; stdbuf -i0 -o0 -e0 eslint --parser-options=project:tsconfig.eslint.json .; Y=$?; MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && echo $MD_FILES | NODE_ENV=lint xargs remark --quiet --frail --no-stdout; Z=$?; [ $X -eq 0 ] && [ $Y -eq 0 ] && [ $Z -eq 0 ]","list-tasks":"node -e 'console.log(Object.keys(require(\"./package.json\").scripts).join(\"\\n\"))' && (npm run -ws list-tasks --if-present 2>/dev/null || true)","prepare":"node -e \"execa = require('execa'); if(process.env.CI === undefined && (process.env.NODE_ENV === undefined || process.env.NODE_ENV == 'development')) { execa.sync('npx', ['husky', 'install'], { stdout: 'inherit', stderr: 'inherit' }); } else { console.log('skipped installing husky git hooks'); }\"","test":"npm run test:unit --","test:all":"NODE_ENV=test jest --coverage","test:integration":"NODE_ENV=test jest 'integration-.*\\.test\\.ts.*'","test:unit":"NODE_ENV=test jest --testPathIgnorePatterns 'integration-.*\\.test\\.ts.*' dist","test:update":"npm test:all -- --updateSnapshot"},"dependencies":{"core-js":"^3.27.2","debug":"^4.3.4","lodash.mergewith":"^4.6.2","prettier":"^2.8.3","strip-indent":"^3.0.0"},"devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/eslint-parser":"^7.19.1","@babel/helper-plugin-utils":"^7.20.2","@babel/plugin-proposal-export-default-from":"^7.18.10","@babel/plugin-syntax-jsx":"^7.18.6","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@commitlint/cli":"^17.4.2","@commitlint/config-conventional":"^17.4.2","@semantic-release/changelog":"^6.0.2","@semantic-release/exec":"^6.0.3","@semantic-release/git":"^10.0.1","@types/babel__helper-plugin-utils":"^7.10.0","@types/jest":"^29.2.6","@types/lodash.mergewith":"^4.6.7","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","@xunnamius/conventional-changelog-projector":"^1.2.1","@xunnamius/jest-types":"^1.1.3","@xunnamius/types":"^1.3.0","all-contributors-cli":"^6.24.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","babel-plugin-explicit-exports-references":"^1.0.2","conventional-changelog-cli":"https://xunn.at/conventional-changelog-cli","doctoc":"^2.2.1","dotenv":"^16.0.3","eslint":"^8.32.0","eslint-import-resolver-typescript":"^3.5.3","eslint-plugin-import":"^2.27.5","eslint-plugin-jest":"^27.2.1","eslint-plugin-unicorn":"^45.0.2","execa":"^5.1.1","glob-gitignore":"^1.0.14","husky":"^8.0.3","jest":"^29.3.1","jest-circus":"^29.3.1","jest-extended":"^3.2.3","lint-staged":"^13.1.0","remark-capitalize-headings":"^1.0.2","remark-cli":"^11.0.0","remark-comment-config":"^7.0.1","remark-frontmatter":"^4.0.1","remark-gfm":"^3.0.1","remark-ignore":"^1.0.5","remark-lint":"^9.1.1","remark-lint-definition-case":"^3.1.1","remark-lint-fenced-code-flag":"^3.1.1","remark-lint-fenced-code-flag-case":"^1.0.3","remark-lint-file-extension":"^2.1.1","remark-lint-first-heading-level":"^3.1.1","remark-lint-heading-increment":"^3.1.1","remark-lint-heading-whitespace":"^1.0.0","remark-lint-heading-word-length":"^1.0.2","remark-lint-list-item-style":"^1.1.2","remark-lint-no-duplicate-defined-urls":"^2.1.1","remark-lint-no-duplicate-headings-in-section":"^3.1.1","remark-lint-no-empty-sections":"^4.0.0","remark-lint-no-empty-url":"https://xunn.at/remark-lint-no-empty-url","remark-lint-no-heading-like-paragraph":"^3.1.1","remark-lint-no-heading-punctuation":"^3.1.1","remark-lint-no-inline-padding":"^4.1.1","remark-lint-no-literal-urls":"^3.1.1","remark-lint-no-multiple-toplevel-headings":"^3.1.1","remark-lint-no-reference-like-url":"^3.1.1","remark-lint-no-shell-dollars":"^3.1.1","remark-lint-no-shortcut-reference-image":"^3.1.1","remark-lint-no-shortcut-reference-link":"^3.1.1","remark-lint-no-tabs":"^3.1.1","remark-lint-no-undefined-references":"^4.2.0","remark-lint-ordered-list-marker-value":"^3.1.1","remark-lint-strikethrough-marker":"^2.1.1","remark-lint-unordered-list-marker-style":"^3.1.1","remark-reference-links":"^6.0.1","remark-remove-unused-definitions":"^1.0.3","remark-remove-url-trailing-slash":"^1.0.1","remark-renumber-references":"^1.0.4","remark-sort-definitions":"^1.0.4","remark-tight-comments":"^1.0.5","remark-validate-links":"^12.1.0","semantic-release":"https://xunn.at/semantic-release-atam","sort-package-json":"^2.2.0","source-map-support":"^0.5.21","spellchecker":"^3.7.1","toss-expression":"^0.1.2","tsconfig-replace-paths":"^0.0.11","type-fest":"^3.5.3","typescript":"^4.9.4","unique-filename":"^3.0.0"},"peerDependencies":{"@babel/core":">=7.11.6"},"engines":{"node":"^14.20.0 || ^16.16.0 || >=18.5.0"},"publishConfig":{"access":"public"},"gitHead":"18b0b95c02463ab2703fb9fa76143bd6ba7ed305","_id":"babel-plugin-tester@11.0.2","_nodeVersion":"18.13.0","_npmVersion":"8.19.3","dist":{"shasum":"a20dff99a6367f31ffc7b4fcf971fe5eebc7767d","size":43077,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-11.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-11.0.2.tgz"},"_npmUser":{"name":"xunnamius","email":"git@bernarddickens.dev"},"directories":{},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_11.0.2_1674512047844_0.6729921748537515"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-01-23T22:14:08.031Z","publish_time":1674512048031,"_cnpm_publish_time":1674512048031},"11.0.1":{"name":"babel-plugin-tester","version":"11.0.1","description":"Utilities for testing babel plugins","keywords":["babel","plugin","tester"],"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"license":"MIT","author":{"name":"Kent C. Dodds","email":"me@kentcdodds.com","url":"https://kentcdodds.com"},"sideEffects":false,"type":"commonjs","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pure":{"types":"./dist/plugin-tester.d.ts","default":"./dist/plugin-tester.js"},"./package":"./package.json","./package.json":"./package.json"},"typesVersions":{"*":{"pure":["./dist/plugin-tester.d.ts"],"*":["./dist/index.d.ts"]}},"scripts":{"build":"npm run build:dist --","build:changelog":"conventional-changelog --outfile CHANGELOG.md --config ./conventional.config.js --release-count 0 --skip-unstable && (if [ \"$CHANGELOG_SKIP_TITLE\" != 'true' ]; then { node -e 'console.log(require(\"./conventional.config.js\").changelogTitle)'; cat CHANGELOG.md; } > CHANGELOG.md.ignore && mv CHANGELOG.md.ignore CHANGELOG.md; fi) && NODE_ENV=format remark --output --frail CHANGELOG.md && prettier --write CHANGELOG.md","build:dist":"NODE_ENV=production tsc --project tsconfig.types.json --incremental false && tsconfig-replace-paths --project tsconfig.types.json && NODE_ENV=production-cjs babel src --extensions .ts --out-dir dist","clean":"git ls-files --exclude-standard --ignored --others --directory | grep -vE '^((\\.(env|vscode|husky))|next-env\\.d\\.ts|node_modules)($|\\/)' | xargs -p rm -rf","format":"MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && (echo $MD_FILES | xargs remark --no-config --no-stdout --quiet --frail --use gfm --use lint-no-undefined-references || (echo -n '\u001b' && echo '[37;41;1m FAIL \u001b[0m cannot continue with undefined references present' && false)) && sort-package-json './package.json' './packages/*/package.json' && echo $MD_FILES | NODE_ENV=format xargs remark --output --frail && echo $MD_FILES | xargs doctoc --no-title --maxlevel 3 --update-only && prettier --write .","lint":"stdbuf -i0 -o0 -e0 tsc --project tsconfig.lint.json; X=$?; stdbuf -i0 -o0 -e0 eslint --parser-options=project:tsconfig.lint.json --no-error-on-unmatched-pattern packages src; Y=$?; MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && echo $MD_FILES | NODE_ENV=lint xargs remark --quiet --frail --no-stdout; Z=$?; [ $X -eq 0 ] && [ $Y -eq 0 ] && [ $Z -eq 0 ]","lint:all":"stdbuf -i0 -o0 -e0 tsc --project tsconfig.eslint.json; X=$?; stdbuf -i0 -o0 -e0 eslint --parser-options=project:tsconfig.eslint.json .; Y=$?; MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && echo $MD_FILES | NODE_ENV=lint xargs remark --quiet --frail --no-stdout; Z=$?; [ $X -eq 0 ] && [ $Y -eq 0 ] && [ $Z -eq 0 ]","list-tasks":"node -e 'console.log(Object.keys(require(\"./package.json\").scripts).join(\"\\n\"))' && (npm run -ws list-tasks --if-present 2>/dev/null || true)","prepare":"node -e \"execa = require('execa'); if(process.env.CI === undefined && (process.env.NODE_ENV === undefined || process.env.NODE_ENV == 'development')) { execa.sync('npx', ['husky', 'install'], { stdout: 'inherit', stderr: 'inherit' }); } else { console.log('skipped installing husky git hooks'); }\"","test":"npm run test:unit --","test:all":"NODE_ENV=test jest --coverage","test:integration":"NODE_ENV=test jest 'integration-.*\\.test\\.ts.*'","test:unit":"NODE_ENV=test jest --testPathIgnorePatterns 'integration-.*\\.test\\.ts.*' dist","test:update":"npm test:all -- --updateSnapshot"},"dependencies":{"debug":"^4.3.4","lodash.mergewith":"^4.6.2","prettier":"^2.8.3","strip-indent":"^3.0.0"},"devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/eslint-parser":"^7.19.1","@babel/helper-plugin-utils":"^7.20.2","@babel/plugin-proposal-export-default-from":"^7.18.10","@babel/plugin-syntax-jsx":"^7.18.6","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@commitlint/cli":"^17.4.2","@commitlint/config-conventional":"^17.4.2","@semantic-release/changelog":"^6.0.2","@semantic-release/exec":"^6.0.3","@semantic-release/git":"^10.0.1","@types/babel__helper-plugin-utils":"^7.10.0","@types/jest":"^29.2.5","@types/lodash.mergewith":"^4.6.7","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.48.2","@typescript-eslint/parser":"^5.48.2","@xunnamius/conventional-changelog-projector":"^1.2.1","@xunnamius/jest-types":"^1.1.3","@xunnamius/types":"^1.3.0","all-contributors-cli":"^6.24.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","babel-plugin-explicit-exports-references":"^1.0.2","conventional-changelog-cli":"https://xunn.at/conventional-changelog-cli","doctoc":"^2.2.1","dotenv":"^16.0.3","eslint":"^8.32.0","eslint-import-resolver-typescript":"^3.5.3","eslint-plugin-import":"^2.27.5","eslint-plugin-jest":"^27.2.1","eslint-plugin-unicorn":"^45.0.2","execa":"^5.1.1","glob-gitignore":"^1.0.14","husky":"^8.0.3","jest":"^29.3.1","jest-circus":"^29.3.1","jest-extended":"^3.2.3","lint-staged":"^13.1.0","remark-capitalize-headings":"^1.0.2","remark-cli":"^11.0.0","remark-comment-config":"^7.0.1","remark-frontmatter":"^4.0.1","remark-gfm":"^3.0.1","remark-ignore":"^1.0.5","remark-lint":"^9.1.1","remark-lint-definition-case":"^3.1.1","remark-lint-fenced-code-flag":"^3.1.1","remark-lint-fenced-code-flag-case":"^1.0.3","remark-lint-file-extension":"^2.1.1","remark-lint-first-heading-level":"^3.1.1","remark-lint-heading-increment":"^3.1.1","remark-lint-heading-whitespace":"^1.0.0","remark-lint-heading-word-length":"^1.0.2","remark-lint-list-item-style":"^1.1.2","remark-lint-no-duplicate-defined-urls":"^2.1.1","remark-lint-no-duplicate-headings-in-section":"^3.1.1","remark-lint-no-empty-sections":"^4.0.0","remark-lint-no-empty-url":"https://xunn.at/remark-lint-no-empty-url","remark-lint-no-heading-like-paragraph":"^3.1.1","remark-lint-no-heading-punctuation":"^3.1.1","remark-lint-no-inline-padding":"^4.1.1","remark-lint-no-literal-urls":"^3.1.1","remark-lint-no-multiple-toplevel-headings":"^3.1.1","remark-lint-no-reference-like-url":"^3.1.1","remark-lint-no-shell-dollars":"^3.1.1","remark-lint-no-shortcut-reference-image":"^3.1.1","remark-lint-no-shortcut-reference-link":"^3.1.1","remark-lint-no-tabs":"^3.1.1","remark-lint-no-undefined-references":"^4.2.0","remark-lint-ordered-list-marker-value":"^3.1.1","remark-lint-strikethrough-marker":"^2.1.1","remark-lint-unordered-list-marker-style":"^3.1.1","remark-reference-links":"^6.0.1","remark-remove-unused-definitions":"^1.0.3","remark-remove-url-trailing-slash":"^1.0.1","remark-renumber-references":"^1.0.4","remark-sort-definitions":"^1.0.4","remark-tight-comments":"^1.0.5","remark-validate-links":"^12.1.0","semantic-release":"https://xunn.at/semantic-release-atam","sort-package-json":"^2.1.0","source-map-support":"^0.5.21","spellchecker":"^3.7.1","toss-expression":"^0.1.2","tsconfig-replace-paths":"^0.0.11","type-fest":"^3.5.2","typescript":"^4.9.4","unique-filename":"^3.0.0"},"peerDependencies":{"@babel/core":">=7.11.6"},"engines":{"node":"^14.20.0 || ^16.16.0 || >=18.5.0"},"publishConfig":{"access":"public"},"gitHead":"66ffb3f43f9a1cffc9db82158420d4817ee914c4","_id":"babel-plugin-tester@11.0.1","_nodeVersion":"18.13.0","_npmVersion":"8.19.3","dist":{"shasum":"48f191afd81609274067ad68b66d8e4ca01527ca","size":42986,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-11.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-11.0.1.tgz"},"_npmUser":{"name":"xunnamius","email":"git@bernarddickens.dev"},"directories":{},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_11.0.1_1674060916016_0.2713219203034509"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-01-18T16:55:16.172Z","publish_time":1674060916172,"_cnpm_publish_time":1674060916172},"11.0.0":{"name":"babel-plugin-tester","version":"11.0.0","description":"Utilities for testing babel plugins","keywords":["babel","plugin","tester"],"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"license":"MIT","author":{"name":"Kent C. Dodds","email":"me@kentcdodds.com","url":"https://kentcdodds.com"},"sideEffects":false,"type":"commonjs","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pure":{"types":"./dist/plugin-tester.d.ts","default":"./dist/plugin-tester.js"},"./package":"./package.json","./package.json":"./package.json"},"typesVersions":{"*":{"pure":["./dist/plugin-tester.d.ts"],"*":["./dist/index.d.ts"]}},"scripts":{"build":"npm run build:dist --","build:changelog":"conventional-changelog --outfile CHANGELOG.md --config ./conventional.config.js --release-count 0 --skip-unstable && (if [ \"$CHANGELOG_SKIP_TITLE\" != 'true' ]; then { node -e 'console.log(require(\"./conventional.config.js\").changelogTitle)'; cat CHANGELOG.md; } > CHANGELOG.md.ignore && mv CHANGELOG.md.ignore CHANGELOG.md; fi) && NODE_ENV=format remark --output --frail CHANGELOG.md && prettier --write CHANGELOG.md","build:dist":"NODE_ENV=production tsc --project tsconfig.types.json --incremental false && tsconfig-replace-paths --project tsconfig.types.json && NODE_ENV=production-cjs babel src --extensions .ts --out-dir dist","clean":"git ls-files --exclude-standard --ignored --others --directory | grep -vE '^((\\.(env|vscode|husky))|next-env\\.d\\.ts|node_modules)($|\\/)' | xargs -p rm -rf","format":"MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && (echo $MD_FILES | xargs remark --no-config --no-stdout --quiet --frail --use gfm --use lint-no-undefined-references || (echo -n '\u001b' && echo '[37;41;1m FAIL \u001b[0m cannot continue with undefined references present' && false)) && sort-package-json './package.json' './packages/*/package.json' && echo $MD_FILES | NODE_ENV=format xargs remark --output --frail && echo $MD_FILES | xargs doctoc --no-title --maxlevel 3 --update-only && prettier --write .","lint":"stdbuf -i0 -o0 -e0 tsc --project tsconfig.lint.json; X=$?; stdbuf -i0 -o0 -e0 eslint --parser-options=project:tsconfig.lint.json --no-error-on-unmatched-pattern packages src; Y=$?; MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && echo $MD_FILES | NODE_ENV=lint xargs remark --quiet --frail --no-stdout; Z=$?; [ $X -eq 0 ] && [ $Y -eq 0 ] && [ $Z -eq 0 ]","lint:all":"stdbuf -i0 -o0 -e0 tsc --project tsconfig.eslint.json; X=$?; stdbuf -i0 -o0 -e0 eslint --parser-options=project:tsconfig.eslint.json .; Y=$?; MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && echo $MD_FILES | NODE_ENV=lint xargs remark --quiet --frail --no-stdout; Z=$?; [ $X -eq 0 ] && [ $Y -eq 0 ] && [ $Z -eq 0 ]","list-tasks":"node -e 'console.log(Object.keys(require(\"./package.json\").scripts).join(\"\\n\"))' && (npm run -ws list-tasks --if-present 2>/dev/null || true)","prepare":"node -e \"execa = require('execa'); if(process.env.CI === undefined && (process.env.NODE_ENV === undefined || process.env.NODE_ENV == 'development')) { execa.sync('npx', ['husky', 'install'], { stdout: 'inherit', stderr: 'inherit' }); } else { console.log('skipped installing husky git hooks'); }\"","test":"npm run test:unit --","test:all":"NODE_ENV=test jest --coverage","test:integration":"NODE_ENV=test jest 'integration-.*\\.test\\.ts.*'","test:unit":"NODE_ENV=test jest --testPathIgnorePatterns 'integration-.*\\.test\\.ts.*' dist","test:update":"npm test:all -- --updateSnapshot"},"dependencies":{"debug":"^4.3.4","lodash.mergewith":"^4.6.2","prettier":"^2.8.3","strip-indent":"^3.0.0"},"devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/eslint-parser":"^7.19.1","@babel/helper-plugin-utils":"^7.20.2","@babel/plugin-proposal-export-default-from":"^7.18.10","@babel/plugin-syntax-jsx":"^7.18.6","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@commitlint/cli":"^17.4.2","@commitlint/config-conventional":"^17.4.2","@semantic-release/changelog":"^6.0.2","@semantic-release/exec":"^6.0.3","@semantic-release/git":"^10.0.1","@types/babel__helper-plugin-utils":"^7.10.0","@types/jest":"^29.2.5","@types/lodash.mergewith":"^4.6.7","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.48.2","@typescript-eslint/parser":"^5.48.2","@xunnamius/conventional-changelog-projector":"^1.2.1","@xunnamius/jest-types":"^1.1.3","@xunnamius/types":"^1.3.0","all-contributors-cli":"^6.24.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","babel-plugin-explicit-exports-references":"^1.0.2","conventional-changelog-cli":"https://xunn.at/conventional-changelog-cli","doctoc":"^2.2.1","dotenv":"^16.0.3","eslint":"^8.32.0","eslint-import-resolver-typescript":"^3.5.3","eslint-plugin-import":"^2.27.5","eslint-plugin-jest":"^27.2.1","eslint-plugin-unicorn":"^45.0.2","execa":"^5.1.1","glob-gitignore":"^1.0.14","husky":"^8.0.3","jest":"^29.3.1","jest-circus":"^29.3.1","jest-extended":"^3.2.3","lint-staged":"^13.1.0","remark-capitalize-headings":"^1.0.2","remark-cli":"^11.0.0","remark-comment-config":"^7.0.1","remark-frontmatter":"^4.0.1","remark-gfm":"^3.0.1","remark-ignore":"^1.0.5","remark-lint":"^9.1.1","remark-lint-definition-case":"^3.1.1","remark-lint-fenced-code-flag":"^3.1.1","remark-lint-fenced-code-flag-case":"^1.0.3","remark-lint-file-extension":"^2.1.1","remark-lint-first-heading-level":"^3.1.1","remark-lint-heading-increment":"^3.1.1","remark-lint-heading-whitespace":"^1.0.0","remark-lint-heading-word-length":"^1.0.2","remark-lint-list-item-style":"^1.1.2","remark-lint-no-duplicate-defined-urls":"^2.1.1","remark-lint-no-duplicate-headings-in-section":"^3.1.1","remark-lint-no-empty-sections":"^4.0.0","remark-lint-no-empty-url":"https://xunn.at/remark-lint-no-empty-url","remark-lint-no-heading-like-paragraph":"^3.1.1","remark-lint-no-heading-punctuation":"^3.1.1","remark-lint-no-inline-padding":"^4.1.1","remark-lint-no-literal-urls":"^3.1.1","remark-lint-no-multiple-toplevel-headings":"^3.1.1","remark-lint-no-reference-like-url":"^3.1.1","remark-lint-no-shell-dollars":"^3.1.1","remark-lint-no-shortcut-reference-image":"^3.1.1","remark-lint-no-shortcut-reference-link":"^3.1.1","remark-lint-no-tabs":"^3.1.1","remark-lint-no-undefined-references":"^4.2.0","remark-lint-ordered-list-marker-value":"^3.1.1","remark-lint-strikethrough-marker":"^2.1.1","remark-lint-unordered-list-marker-style":"^3.1.1","remark-reference-links":"^6.0.1","remark-remove-unused-definitions":"^1.0.3","remark-remove-url-trailing-slash":"^1.0.1","remark-renumber-references":"^1.0.4","remark-sort-definitions":"^1.0.4","remark-tight-comments":"^1.0.5","remark-validate-links":"^12.1.0","semantic-release":"https://xunn.at/semantic-release-atam","sort-package-json":"^2.1.0","source-map-support":"^0.5.21","spellchecker":"^3.7.1","toss-expression":"^0.1.2","tsconfig-replace-paths":"^0.0.11","type-fest":"^3.5.2","typescript":"^4.9.4","unique-filename":"^3.0.0"},"peerDependencies":{"@babel/core":">=7.11.6"},"engines":{"node":"^14.20.0 || ^16.16.0 || >=18.5.0"},"publishConfig":{"access":"public"},"gitHead":"8a2559525b51d8f3f037f3363ce406a604872dfc","_id":"babel-plugin-tester@11.0.0","_nodeVersion":"18.13.0","_npmVersion":"8.19.3","dist":{"shasum":"1e718a3c21e5d3dd1af413495c30b7c8d357299a","size":42230,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-11.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-11.0.0.tgz"},"_npmUser":{"name":"xunnamius","email":"git@bernarddickens.dev"},"directories":{},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_11.0.0_1674043471255_0.0007838460928994984"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-01-18T12:04:31.424Z","publish_time":1674043471424,"_cnpm_publish_time":1674043471424},"11.0.0-canary.1":{"name":"babel-plugin-tester","version":"11.0.0-canary.1","description":"Utilities for testing babel plugins","keywords":["babel","plugin","tester"],"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"license":"MIT","author":{"name":"Kent C. Dodds","email":"me@kentcdodds.com","url":"https://kentcdodds.com"},"sideEffects":false,"type":"commonjs","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pure":{"types":"./dist/plugin-tester.d.ts","default":"./dist/plugin-tester.js"},"./package":"./package.json","./package.json":"./package.json"},"typesVersions":{"*":{"pure":["./dist/plugin-tester.d.ts"],"*":["./dist/index.d.ts"]}},"scripts":{"build":"npm run build:dist --","build:changelog":"conventional-changelog --outfile CHANGELOG.md --config ./conventional.config.js --release-count 0 --skip-unstable && (if [ \"$CHANGELOG_SKIP_TITLE\" != 'true' ]; then { node -e 'console.log(require(\"./conventional.config.js\").changelogTitle)'; cat CHANGELOG.md; } > CHANGELOG.md.ignore && mv CHANGELOG.md.ignore CHANGELOG.md; fi) && NODE_ENV=format remark --output --frail CHANGELOG.md && prettier --write CHANGELOG.md","build:dist":"NODE_ENV=production tsc --project tsconfig.types.json --incremental false && tsconfig-replace-paths --project tsconfig.types.json && NODE_ENV=production-cjs babel src --extensions .ts --out-dir dist","clean":"git ls-files --exclude-standard --ignored --others --directory | grep -vE '^((\\.(env|vscode|husky))|next-env\\.d\\.ts|node_modules)($|\\/)' | xargs -p rm -rf","format":"MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && (echo $MD_FILES | xargs remark --no-config --no-stdout --quiet --frail --use gfm --use lint-no-undefined-references || (echo -n '\u001b' && echo '[37;41;1m FAIL \u001b[0m cannot continue with undefined references present' && false)) && sort-package-json './package.json' './packages/*/package.json' && echo $MD_FILES | NODE_ENV=format xargs remark --output --frail && echo $MD_FILES | xargs doctoc --no-title --maxlevel 3 --update-only && prettier --write .","lint":"stdbuf -i0 -o0 -e0 tsc --project tsconfig.lint.json; X=$?; stdbuf -i0 -o0 -e0 eslint --parser-options=project:tsconfig.lint.json --no-error-on-unmatched-pattern packages src; Y=$?; MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && echo $MD_FILES | NODE_ENV=lint xargs remark --quiet --frail --no-stdout; Z=$?; [ $X -eq 0 ] && [ $Y -eq 0 ] && [ $Z -eq 0 ]","lint:all":"stdbuf -i0 -o0 -e0 tsc --project tsconfig.eslint.json; X=$?; stdbuf -i0 -o0 -e0 eslint --parser-options=project:tsconfig.eslint.json .; Y=$?; MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && echo $MD_FILES | NODE_ENV=lint xargs remark --quiet --frail --no-stdout; Z=$?; [ $X -eq 0 ] && [ $Y -eq 0 ] && [ $Z -eq 0 ]","list-tasks":"node -e 'console.log(Object.keys(require(\"./package.json\").scripts).join(\"\\n\"))' && (npm run -ws list-tasks --if-present 2>/dev/null || true)","prepare":"node -e \"execa = require('execa'); if(process.env.CI === undefined && (process.env.NODE_ENV === undefined || process.env.NODE_ENV == 'development')) { execa.sync('npx', ['husky', 'install'], { stdout: 'inherit', stderr: 'inherit' }); } else { console.log('skipped installing husky git hooks'); }\"","test":"npm run test:unit --","test:all":"NODE_ENV=test jest --coverage","test:integration":"NODE_ENV=test jest 'integration-.*\\.test\\.ts.*'","test:unit":"NODE_ENV=test jest --testPathIgnorePatterns 'integration-.*\\.test\\.ts.*' dist","test:update":"npm test:all -- --updateSnapshot"},"dependencies":{"debug":"^4.3.4","lodash.mergewith":"^4.6.2","prettier":"^2.8.3","strip-indent":"^3.0.0"},"devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/eslint-parser":"^7.19.1","@babel/helper-plugin-utils":"^7.20.2","@babel/plugin-proposal-export-default-from":"^7.18.10","@babel/plugin-syntax-jsx":"^7.18.6","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@commitlint/cli":"^17.4.2","@commitlint/config-conventional":"^17.4.2","@semantic-release/changelog":"^6.0.2","@semantic-release/exec":"^6.0.3","@semantic-release/git":"^10.0.1","@types/babel__helper-plugin-utils":"^7.10.0","@types/jest":"^29.2.5","@types/lodash.mergewith":"^4.6.7","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.48.1","@typescript-eslint/parser":"^5.48.1","@xunnamius/conventional-changelog-projector":"^1.2.1","@xunnamius/jest-types":"^1.1.3","@xunnamius/types":"^1.3.0","all-contributors-cli":"^6.24.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","babel-plugin-explicit-exports-references":"^1.0.2","conventional-changelog-cli":"https://xunn.at/conventional-changelog-cli","doctoc":"^2.2.1","dotenv":"^16.0.3","eslint":"^8.32.0","eslint-import-resolver-typescript":"^3.5.3","eslint-plugin-import":"^2.27.4","eslint-plugin-jest":"^27.2.1","eslint-plugin-unicorn":"^45.0.2","execa":"^5.1.1","glob-gitignore":"^1.0.14","husky":"^8.0.3","jest":"^29.3.1","jest-circus":"^29.3.1","jest-extended":"^3.2.3","lint-staged":"^13.1.0","remark-capitalize-headings":"^1.0.2","remark-cli":"^11.0.0","remark-comment-config":"^7.0.1","remark-frontmatter":"^4.0.1","remark-gfm":"^3.0.1","remark-ignore":"^1.0.5","remark-lint":"^9.1.1","remark-lint-definition-case":"^3.1.1","remark-lint-fenced-code-flag":"^3.1.1","remark-lint-fenced-code-flag-case":"^1.0.3","remark-lint-file-extension":"^2.1.1","remark-lint-first-heading-level":"^3.1.1","remark-lint-heading-increment":"^3.1.1","remark-lint-heading-whitespace":"^1.0.0","remark-lint-heading-word-length":"^1.0.2","remark-lint-list-item-style":"^1.1.2","remark-lint-no-duplicate-defined-urls":"^2.1.1","remark-lint-no-duplicate-headings-in-section":"^3.1.1","remark-lint-no-empty-sections":"^4.0.0","remark-lint-no-empty-url":"https://xunn.at/remark-lint-no-empty-url","remark-lint-no-heading-like-paragraph":"^3.1.1","remark-lint-no-heading-punctuation":"^3.1.1","remark-lint-no-inline-padding":"^4.1.1","remark-lint-no-literal-urls":"^3.1.1","remark-lint-no-multiple-toplevel-headings":"^3.1.1","remark-lint-no-reference-like-url":"^3.1.1","remark-lint-no-shell-dollars":"^3.1.1","remark-lint-no-shortcut-reference-image":"^3.1.1","remark-lint-no-shortcut-reference-link":"^3.1.1","remark-lint-no-tabs":"^3.1.1","remark-lint-no-undefined-references":"^4.2.0","remark-lint-ordered-list-marker-value":"^3.1.1","remark-lint-strikethrough-marker":"^2.1.1","remark-lint-unordered-list-marker-style":"^3.1.1","remark-reference-links":"^6.0.1","remark-remove-unused-definitions":"^1.0.3","remark-remove-url-trailing-slash":"^1.0.1","remark-renumber-references":"^1.0.4","remark-sort-definitions":"^1.0.4","remark-tight-comments":"^1.0.5","remark-validate-links":"^12.1.0","semantic-release":"https://xunn.at/semantic-release-atam","sort-package-json":"^2.1.0","source-map-support":"^0.5.21","spellchecker":"^3.7.1","toss-expression":"^0.1.2","tsconfig-replace-paths":"^0.0.11","type-fest":"^3.5.2","typescript":"^4.9.4","unique-filename":"^3.0.0"},"peerDependencies":{"@babel/core":">=7.11.6"},"engines":{"node":"^14.20.0 || ^16.16.0 || >=18.5.0"},"publishConfig":{"access":"public"},"readmeFilename":"README.md","gitHead":"b817a5f8148c41911b2593ca401008e16467206f","_id":"babel-plugin-tester@11.0.0-canary.1","_nodeVersion":"18.13.0","_npmVersion":"8.19.3","dist":{"shasum":"ff878ecebdebeb18e8fb5f6f7924a9e2e9fd855e","size":42120,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-11.0.0-canary.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-11.0.0-canary.1.tgz"},"_npmUser":{"name":"xunnamius","email":"git@bernarddickens.dev"},"directories":{},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_11.0.0-canary.1_1673908205825_0.07090384887175483"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-01-16T22:30:05.995Z","publish_time":1673908205995,"deprecated":"please use babel-plugin-tester@latest instead!","_cnpm_publish_time":1673908205995},"10.1.0":{"name":"babel-plugin-tester","version":"10.1.0","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":">=10.13","npm":">=6"},"scripts":{"build":"kcd-scripts build","lint":"kcd-scripts lint","setup":"npm install && npm run validate -s","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate"},"keywords":[],"author":{"name":"Kent C. Dodds","email":"me@kentcdodds.com","url":"https://kentcdodds.com"},"license":"MIT","dependencies":{"@types/babel-plugin-tester":"^9.0.0","lodash.mergewith":"^4.6.2","prettier":"^2.0.1","strip-indent":"^3.0.0"},"devDependencies":{"@babel/core":"^7.11.6","@babel/plugin-proposal-async-generator-functions":"^7.10.5","@babel/plugin-syntax-jsx":"^7.10.4","@babel/plugin-syntax-typescript":"^7.10.4","@babel/plugin-transform-async-to-generator":"^7.10.4","@babel/preset-env":"^7.11.5","kcd-scripts":"^6.5.1"},"peerDependencies":{"@babel/core":"^7.11.6"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0,"max-lines-per-function":0,"prefer-object-spread":0,"no-useless-catch":0,"babel/camelcase":0,"babel/valid-typeof":0,"babel/no-unused-expressions":0,"babel/quotes":0,"jest/prefer-todo":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["@babel/preset-env",{"targets":{"node":"8"},"exclude":["transform-regenerator"]}]],"plugins":["@babel/plugin-transform-async-to-generator","@babel/plugin-proposal-async-generator-functions","@babel/plugin-proposal-object-rest-spread"]},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"969be117ee279603244d0b413156c7995f403bd1","_id":"babel-plugin-tester@10.1.0","_nodeVersion":"12.22.1","_npmVersion":"6.14.12","dist":{"shasum":"e099ee1d8dec538439c427a7d12aad132885757b","size":13564,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-10.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-10.1.0.tgz"},"_npmUser":{"name":"kentcdodds","email":"me@kentcdodds.com"},"directories":{},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_10.1.0_1622268531627_0.3583566438082344"},"_hasShrinkwrap":false,"publish_time":1622268531744,"_cnpm_publish_time":1622268531744,"_cnpmcore_publish_time":"2021-12-16T18:38:30.471Z"},"10.0.0":{"name":"babel-plugin-tester","version":"10.0.0","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":">=10.13","npm":">=6"},"scripts":{"build":"kcd-scripts build","lint":"kcd-scripts lint","setup":"npm install && npm run validate -s","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate"},"keywords":[],"author":{"name":"Kent C. Dodds","email":"me@kentcdodds.com","url":"https://kentcdodds.com"},"license":"MIT","dependencies":{"@types/babel-plugin-tester":"^9.0.0","lodash.mergewith":"^4.6.2","prettier":"^2.0.1","strip-indent":"^3.0.0"},"devDependencies":{"@babel/core":"^7.11.6","@babel/plugin-proposal-async-generator-functions":"^7.10.5","@babel/plugin-syntax-jsx":"^7.10.4","@babel/plugin-syntax-typescript":"^7.10.4","@babel/plugin-transform-async-to-generator":"^7.10.4","@babel/preset-env":"^7.11.5","kcd-scripts":"^6.5.1"},"peerDependencies":{"@babel/core":"^7.11.6"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0,"max-lines-per-function":0,"prefer-object-spread":0,"no-useless-catch":0,"babel/camelcase":0,"babel/valid-typeof":0,"babel/no-unused-expressions":0,"babel/quotes":0,"jest/prefer-todo":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["@babel/preset-env",{"targets":{"node":"8"},"exclude":["transform-regenerator"]}]],"plugins":["@babel/plugin-transform-async-to-generator","@babel/plugin-proposal-async-generator-functions","@babel/plugin-proposal-object-rest-spread"]},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"91c22ecc29598db2a99b16df29d986087e9cd1b4","_id":"babel-plugin-tester@10.0.0","_nodeVersion":"12.18.4","_npmVersion":"6.14.6","dist":{"shasum":"7ece63c50ee76cc4b486f99d6a2a4cf78c836fe5","size":13370,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-10.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-10.0.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmUser":{"name":"kentcdodds","email":"me@kentcdodds.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_10.0.0_1601605087197_0.6799475752910338"},"_hasShrinkwrap":false,"publish_time":1601605087336,"_cnpm_publish_time":1601605087336,"_cnpmcore_publish_time":"2021-12-16T18:38:30.702Z"},"9.2.0":{"name":"babel-plugin-tester","version":"9.2.0","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":">=10.13","npm":">=6"},"scripts":{"build":"kcd-scripts build","lint":"kcd-scripts lint","setup":"npm install && npm run validate -s","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate"},"keywords":[],"author":{"name":"Kent C. Dodds","email":"me@kentcdodds.com","url":"https://kentcdodds.com"},"license":"MIT","dependencies":{"@types/babel-plugin-tester":"^9.0.0","lodash.mergewith":"^4.6.2","prettier":"^2.0.1","strip-indent":"^3.0.0"},"devDependencies":{"@babel/core":"^7.9.0","@babel/plugin-proposal-async-generator-functions":"^7.8.3","@babel/plugin-syntax-jsx":"^7.8.3","@babel/plugin-syntax-typescript":"^7.8.3","@babel/plugin-transform-async-to-generator":"^7.8.3","@babel/preset-env":"^7.9.0","kcd-scripts":"^5.6.0"},"peerDependencies":{"@babel/core":"^7.9.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0,"max-lines-per-function":0,"prefer-object-spread":0,"no-useless-catch":0,"babel/camelcase":0,"babel/valid-typeof":0,"babel/no-unused-expressions":0,"babel/quotes":0,"jest/prefer-todo":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["@babel/preset-env",{"targets":{"node":"8"},"exclude":["transform-regenerator"]}]],"plugins":["@babel/plugin-transform-async-to-generator","@babel/plugin-proposal-async-generator-functions","@babel/plugin-proposal-object-rest-spread"]},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"248986e198b3cd87816ffac28564860a4eeb2c0e","_id":"babel-plugin-tester@9.2.0","_nodeVersion":"12.17.0","_npmVersion":"6.14.4","dist":{"shasum":"7169f99678419b9c6754bcc5e3a44eb4a11cdff3","size":13512,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-9.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-9.2.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmUser":{"name":"kentcdodds","email":"me@kentcdodds.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_9.2.0_1590583529707_0.3936678461338463"},"_hasShrinkwrap":false,"publish_time":1590583529880,"_cnpm_publish_time":1590583529880,"_cnpmcore_publish_time":"2021-12-16T18:38:30.893Z"},"9.1.0":{"name":"babel-plugin-tester","version":"9.1.0","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":">=10.13","npm":">=6"},"scripts":{"build":"kcd-scripts build","lint":"kcd-scripts lint","setup":"npm install && npm run validate -s","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate"},"keywords":[],"author":{"name":"Kent C. Dodds","email":"me@kentcdodds.com","url":"https://kentcdodds.com"},"license":"MIT","dependencies":{"@types/babel-plugin-tester":"^9.0.0","lodash.mergewith":"^4.6.2","prettier":"^2.0.1","strip-indent":"^3.0.0"},"devDependencies":{"@babel/core":"^7.9.0","@babel/plugin-proposal-async-generator-functions":"^7.8.3","@babel/plugin-syntax-jsx":"^7.8.3","@babel/plugin-syntax-typescript":"^7.8.3","@babel/plugin-transform-async-to-generator":"^7.8.3","@babel/preset-env":"^7.9.0","kcd-scripts":"^5.6.0"},"peerDependencies":{"@babel/core":"^7.9.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0,"max-lines-per-function":0,"prefer-object-spread":0,"no-useless-catch":0,"babel/camelcase":0,"babel/valid-typeof":0,"babel/no-unused-expressions":0,"babel/quotes":0,"jest/prefer-todo":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["@babel/preset-env",{"targets":{"node":"8"},"exclude":["transform-regenerator"]}]],"plugins":["@babel/plugin-transform-async-to-generator","@babel/plugin-proposal-async-generator-functions","@babel/plugin-proposal-object-rest-spread"]},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"b5569f48a90b3163ab7bdab8ab8d7f3bd50a49e8","_id":"babel-plugin-tester@9.1.0","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"shasum":"9c917ed8a898d65fe4c5e3035882be2a866212d2","size":13381,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-9.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-9.1.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmUser":{"name":"kentcdodds","email":"me@kentcdodds.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_9.1.0_1589951743734_0.5171312741406267"},"_hasShrinkwrap":false,"publish_time":1589951743859,"_cnpm_publish_time":1589951743859,"_cnpmcore_publish_time":"2021-12-16T18:38:31.103Z"},"9.0.1":{"name":"babel-plugin-tester","version":"9.0.1","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":">=10.13","npm":">=6"},"scripts":{"build":"kcd-scripts build","lint":"kcd-scripts lint","setup":"npm install && npm run validate -s","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate"},"keywords":[],"author":{"name":"Kent C. Dodds","email":"me@kentcdodds.com","url":"https://kentcdodds.com"},"license":"MIT","dependencies":{"lodash.mergewith":"^4.6.2","prettier":"^2.0.1","strip-indent":"^3.0.0"},"devDependencies":{"@babel/core":"^7.9.0","@babel/plugin-proposal-async-generator-functions":"^7.8.3","@babel/plugin-syntax-jsx":"^7.8.3","@babel/plugin-syntax-typescript":"^7.8.3","@babel/plugin-transform-async-to-generator":"^7.8.3","@babel/preset-env":"^7.9.0","kcd-scripts":"^5.6.0"},"peerDependencies":{"@babel/core":"^7.9.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0,"max-lines-per-function":0,"prefer-object-spread":0,"no-useless-catch":0,"babel/camelcase":0,"babel/valid-typeof":0,"babel/no-unused-expressions":0,"babel/quotes":0,"jest/prefer-todo":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["@babel/preset-env",{"targets":{"node":"8"},"exclude":["transform-regenerator"]}]],"plugins":["@babel/plugin-transform-async-to-generator","@babel/plugin-proposal-async-generator-functions","@babel/plugin-proposal-object-rest-spread"]},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"f1c17ef49a3fc06cf030c34c9fa95c52a56ea929","_id":"babel-plugin-tester@9.0.1","_nodeVersion":"12.16.2","_npmVersion":"6.14.4","dist":{"shasum":"9e975a7fe278a49b3bd4b02bd3a77004819863ee","size":13356,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-9.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-9.0.1.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmUser":{"name":"kentcdodds","email":"me@kentcdodds.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_9.0.1_1586526943365_0.2907315875244034"},"_hasShrinkwrap":false,"publish_time":1586526943596,"_cnpm_publish_time":1586526943596,"_cnpmcore_publish_time":"2021-12-16T18:38:31.350Z"},"9.0.0":{"name":"babel-plugin-tester","version":"9.0.0","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":">=10.13","npm":">=6"},"scripts":{"build":"kcd-scripts build","lint":"kcd-scripts lint","setup":"npm install && npm run validate -s","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate"},"keywords":[],"author":{"name":"Kent C. Dodds","email":"me@kentcdodds.com","url":"https://kentcdodds.com"},"license":"MIT","dependencies":{"lodash.mergewith":"^4.6.2","prettier":"^2.0.1","strip-indent":"^3.0.0"},"devDependencies":{"@babel/core":"^7.9.0","@babel/plugin-proposal-async-generator-functions":"^7.8.3","@babel/plugin-syntax-jsx":"^7.8.3","@babel/plugin-syntax-typescript":"^7.8.3","@babel/plugin-transform-async-to-generator":"^7.8.3","@babel/preset-env":"^7.9.0","kcd-scripts":"^5.6.0"},"peerDependencies":{"@babel/core":"^7.9.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0,"max-lines-per-function":0,"prefer-object-spread":0,"no-useless-catch":0,"babel/camelcase":0,"babel/valid-typeof":0,"babel/no-unused-expressions":0,"babel/quotes":0,"jest/prefer-todo":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["@babel/preset-env",{"targets":{"node":"8"},"exclude":["transform-regenerator"]}]],"plugins":["@babel/plugin-transform-async-to-generator","@babel/plugin-proposal-async-generator-functions","@babel/plugin-proposal-object-rest-spread"]},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"b666929efac578f137b992c6906ddf584c9c6566","_id":"babel-plugin-tester@9.0.0","_nodeVersion":"12.16.1","_npmVersion":"6.13.4","dist":{"shasum":"583ecf8249090e316dc4aafc1eea8fa44c94af77","size":13318,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-9.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-9.0.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmUser":{"name":"kentcdodds","email":"me@kentcdodds.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_9.0.0_1584932846084_0.09796571670482157"},"_hasShrinkwrap":false,"publish_time":1584932846205,"_cnpm_publish_time":1584932846205,"_cnpmcore_publish_time":"2021-12-16T18:38:31.556Z"},"8.0.1":{"name":"babel-plugin-tester","version":"8.0.1","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":">=8","npm":">=6"},"scripts":{"build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate"},"husky":{"hooks":{"pre-commit":"kcd-scripts pre-commit"}},"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"lodash.mergewith":"^4.6.2","prettier":"^1.19.1","strip-indent":"^3.0.0"},"devDependencies":{"@babel/core":"^7.2.0","@babel/plugin-proposal-async-generator-functions":"^7.7.0","@babel/plugin-syntax-jsx":"^7.2.0","@babel/plugin-syntax-typescript":"^7.3.3","@babel/plugin-transform-async-to-generator":"^7.7.0","@babel/preset-env":"^7.7.1","kcd-scripts":"^1.11.0"},"peerDependencies":{"@babel/core":"^7.7.2"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0,"max-lines-per-function":0,"prefer-object-spread":0,"no-useless-catch":0,"babel/camelcase":0,"babel/valid-typeof":0,"babel/no-unused-expressions":0,"babel/quotes":0,"jest/prefer-todo":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["@babel/preset-env",{"targets":{"node":"8"},"exclude":["transform-regenerator"]}]],"plugins":["@babel/plugin-transform-async-to-generator","@babel/plugin-proposal-async-generator-functions","@babel/plugin-proposal-object-rest-spread"]},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"a13478519634702e87802ee5d761c88c04854098","_id":"babel-plugin-tester@8.0.1","_npmVersion":"6.4.1","_nodeVersion":"8.16.2","_npmUser":{"name":"kentcdodds","email":"me@kentcdodds.com"},"dist":{"shasum":"6cffa9b9d508a567139339afc74c97c64b62f131","size":13009,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-8.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-8.0.1.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_8.0.1_1575212649261_0.14335405231184395"},"_hasShrinkwrap":false,"publish_time":1575212649368,"_cnpm_publish_time":1575212649368,"_cnpmcore_publish_time":"2021-12-16T18:38:31.802Z"},"8.0.0":{"name":"babel-plugin-tester","version":"8.0.0","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":">=8","npm":">=6"},"scripts":{"build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate"},"husky":{"hooks":{"pre-commit":"kcd-scripts pre-commit"}},"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"lodash.mergewith":"^4.6.2","prettier":"^1.19.1","strip-indent":"^3.0.0"},"devDependencies":{"@babel/core":"^7.2.0","@babel/plugin-proposal-async-generator-functions":"^7.7.0","@babel/plugin-syntax-jsx":"^7.2.0","@babel/plugin-syntax-typescript":"^7.3.3","@babel/plugin-transform-async-to-generator":"^7.7.0","@babel/preset-env":"^7.7.1","kcd-scripts":"^1.11.0"},"peerDependencies":{"@babel/core":"^7.7.2"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0,"max-lines-per-function":0,"prefer-object-spread":0,"no-useless-catch":0,"babel/camelcase":0,"babel/valid-typeof":0,"babel/no-unused-expressions":0,"babel/quotes":0,"jest/prefer-todo":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["@babel/preset-env",{"targets":{"node":"8"},"exclude":["transform-regenerator"]}]],"plugins":["@babel/plugin-transform-async-to-generator","@babel/plugin-proposal-async-generator-functions","@babel/plugin-proposal-object-rest-spread"]},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"60e5c078cd6d60894dd3bc20cb062d09eae562af","_id":"babel-plugin-tester@8.0.0","_npmVersion":"6.4.1","_nodeVersion":"8.16.2","_npmUser":{"name":"kentcdodds","email":"me@kentcdodds.com"},"dist":{"shasum":"250cfa79c03373a30120b502f2e60d912cdac9db","size":13000,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-8.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-8.0.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_8.0.0_1573858888606_0.5073801971176461"},"_hasShrinkwrap":false,"publish_time":1573858888717,"_cnpm_publish_time":1573858888717,"_cnpmcore_publish_time":"2021-12-16T18:38:32.045Z"},"7.0.4":{"name":"babel-plugin-tester","version":"7.0.4","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":">=8","npm":">=6"},"scripts":{"build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate"},"husky":{"hooks":{"pre-commit":"kcd-scripts pre-commit"}},"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"lodash.mergewith":"^4.6.2","strip-indent":"^3.0.0"},"devDependencies":{"@babel/core":"^7.2.0","@babel/plugin-proposal-async-generator-functions":"^7.7.0","@babel/plugin-syntax-jsx":"^7.2.0","@babel/plugin-syntax-typescript":"^7.3.3","@babel/plugin-transform-async-to-generator":"^7.7.0","@babel/preset-env":"^7.7.1","kcd-scripts":"^1.11.0"},"peerDependencies":{"@babel/core":"^7.7.2"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0,"max-lines-per-function":0,"prefer-object-spread":0,"no-useless-catch":0,"babel/camelcase":0,"babel/valid-typeof":0,"babel/no-unused-expressions":0,"babel/quotes":0,"jest/prefer-todo":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["@babel/preset-env",{"targets":{"node":"8"},"exclude":["transform-regenerator"]}]],"plugins":["@babel/plugin-transform-async-to-generator","@babel/plugin-proposal-async-generator-functions","@babel/plugin-proposal-object-rest-spread"]},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"7b97a6f3931bf1f13727b220c5dd6e468286f09b","_id":"babel-plugin-tester@7.0.4","_npmVersion":"6.4.1","_nodeVersion":"8.16.2","_npmUser":{"name":"kentcdodds","email":"me@kentcdodds.com"},"dist":{"shasum":"a5e1156a69635a973de2451f0722aceb401deb86","size":11751,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-7.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-7.0.4.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_7.0.4_1573770637367_0.30656941933924964"},"_hasShrinkwrap":false,"publish_time":1573770637553,"_cnpm_publish_time":1573770637553,"_cnpmcore_publish_time":"2021-12-16T18:38:32.346Z"},"7.0.3":{"name":"babel-plugin-tester","version":"7.0.3","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":">=8","npm":">=6"},"scripts":{"build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate"},"husky":{"hooks":{"pre-commit":"kcd-scripts pre-commit"}},"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"lodash.mergewith":"^4.6.0","strip-indent":"^3.0.0"},"devDependencies":{"@babel/core":"^7.2.0","@babel/plugin-proposal-async-generator-functions":"^7.2.0","@babel/plugin-syntax-jsx":"^7.2.0","@babel/plugin-syntax-typescript":"^7.3.3","@babel/plugin-transform-async-to-generator":"^7.2.0","@babel/preset-env":"^7.2.0","kcd-scripts":"^1.7.0"},"peerDependencies":{"@babel/core":"^7.0.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0,"max-lines-per-function":0,"prefer-object-spread":0,"no-useless-catch":0,"babel/camelcase":0,"babel/valid-typeof":0,"babel/no-unused-expressions":0,"babel/quotes":0,"jest/prefer-todo":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["@babel/preset-env",{"targets":{"node":"8"},"exclude":["transform-regenerator"]}]],"plugins":["@babel/plugin-transform-async-to-generator","@babel/plugin-proposal-async-generator-functions","@babel/plugin-proposal-object-rest-spread"]},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"dd01d8bf5698b8517be7e1bbb9a273618a33d5ae","_id":"babel-plugin-tester@7.0.3","_npmVersion":"6.4.1","_nodeVersion":"8.16.2","_npmUser":{"name":"kentcdodds","email":"me@kentcdodds.com"},"dist":{"shasum":"05bdc998f54393e8e1307ade0cd44cea7b102d75","size":11736,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-7.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-7.0.3.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_7.0.3_1573500177032_0.8882066906789761"},"_hasShrinkwrap":false,"publish_time":1573500177235,"_cnpm_publish_time":1573500177235,"_cnpmcore_publish_time":"2021-12-16T18:38:32.565Z"},"7.0.2":{"name":"babel-plugin-tester","version":"7.0.2","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":">=8","npm":">=6"},"scripts":{"build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate"},"husky":{"hooks":{"pre-commit":"kcd-scripts pre-commit"}},"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"lodash.mergewith":"^4.6.0","strip-indent":"^3.0.0"},"devDependencies":{"@babel/core":"^7.2.0","@babel/plugin-proposal-async-generator-functions":"^7.2.0","@babel/plugin-syntax-jsx":"^7.2.0","@babel/plugin-syntax-typescript":"^7.3.3","@babel/plugin-transform-async-to-generator":"^7.2.0","@babel/preset-env":"^7.2.0","kcd-scripts":"^1.7.0"},"peerDependencies":{"@babel/core":"^7.0.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0,"max-lines-per-function":0,"prefer-object-spread":0,"no-useless-catch":0,"babel/camelcase":0,"babel/valid-typeof":0,"babel/no-unused-expressions":0,"babel/quotes":0,"jest/prefer-todo":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["@babel/preset-env",{"targets":{"node":"8"},"exclude":["transform-regenerator"]}]],"plugins":["@babel/plugin-transform-async-to-generator","@babel/plugin-proposal-async-generator-functions","@babel/plugin-proposal-object-rest-spread"]},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"c848bfe4fcda88480229d48638c0ee9a54c31e42","_id":"babel-plugin-tester@7.0.2","_npmVersion":"6.4.1","_nodeVersion":"8.16.2","_npmUser":{"name":"kentcdodds","email":"me@kentcdodds.com"},"dist":{"shasum":"cc7f8517de28c407f6ad6fe7ca63bbf590ac819d","size":11707,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-7.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-7.0.2.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_7.0.2_1573340980895_0.7988745202127852"},"_hasShrinkwrap":false,"publish_time":1573340981026,"_cnpm_publish_time":1573340981026,"_cnpmcore_publish_time":"2021-12-16T18:38:32.803Z"},"7.0.1":{"name":"babel-plugin-tester","version":"7.0.1","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":">=8","npm":">=6"},"scripts":{"build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate"},"husky":{"hooks":{"pre-commit":"kcd-scripts pre-commit"}},"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"common-tags":"^1.4.0","invariant":"^2.2.2","lodash.mergewith":"^4.6.0","path-exists":"^4.0.0","strip-indent":"^3.0.0"},"devDependencies":{"@babel/core":"^7.2.0","@babel/plugin-proposal-async-generator-functions":"^7.2.0","@babel/plugin-syntax-jsx":"^7.2.0","@babel/plugin-syntax-typescript":"^7.3.3","@babel/plugin-transform-async-to-generator":"^7.2.0","@babel/preset-env":"^7.2.0","kcd-scripts":"^1.7.0"},"peerDependencies":{"@babel/core":"^7.0.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0,"max-lines-per-function":0,"prefer-object-spread":0,"no-useless-catch":0,"babel/camelcase":0,"babel/valid-typeof":0,"babel/no-unused-expressions":0,"babel/quotes":0,"jest/prefer-todo":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["@babel/preset-env",{"targets":{"node":"8"},"exclude":["transform-regenerator"]}]],"plugins":["@babel/plugin-transform-async-to-generator","@babel/plugin-proposal-async-generator-functions","@babel/plugin-proposal-object-rest-spread"]},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"523fc9a0489d5a4edb4d21b305e6eb71335e273f","_id":"babel-plugin-tester@7.0.1","_npmVersion":"6.4.1","_nodeVersion":"8.16.1","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"75730c51f30184ddb5fc4aa79bb514a73769fe82","size":11711,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-7.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-7.0.1.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_7.0.1_1566242133680_0.580338272101423"},"_hasShrinkwrap":false,"publish_time":1566242133802,"_cnpm_publish_time":1566242133802,"_cnpmcore_publish_time":"2021-12-16T18:38:32.993Z"},"7.0.0":{"name":"babel-plugin-tester","version":"7.0.0","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":">=8","npm":">=6"},"scripts":{"build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate"},"husky":{"hooks":{"pre-commit":"kcd-scripts pre-commit"}},"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"common-tags":"^1.4.0","invariant":"^2.2.2","lodash.mergewith":"^4.6.0","path-exists":"^4.0.0","strip-indent":"^3.0.0"},"devDependencies":{"@babel/core":"^7.2.0","@babel/plugin-proposal-async-generator-functions":"^7.2.0","@babel/plugin-syntax-jsx":"^7.2.0","@babel/plugin-syntax-typescript":"^7.3.3","@babel/plugin-transform-async-to-generator":"^7.2.0","@babel/preset-env":"^7.2.0","kcd-scripts":"^1.7.0"},"peerDependencies":{"@babel/core":"^7.0.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0,"max-lines-per-function":0,"prefer-object-spread":0,"no-useless-catch":0,"babel/camelcase":0,"babel/valid-typeof":0,"babel/no-unused-expressions":0,"babel/quotes":0,"jest/prefer-todo":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["@babel/preset-env",{"targets":{"node":"8"},"exclude":["transform-regenerator"]}]],"plugins":["@babel/plugin-transform-async-to-generator","@babel/plugin-proposal-async-generator-functions","@babel/plugin-proposal-object-rest-spread"]},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"7c8296b7e8f9af13de2c7879f8c3a0098c9a957b","_id":"babel-plugin-tester@7.0.0","_npmVersion":"6.4.1","_nodeVersion":"8.16.1","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"ac84413b0dcb5b66e11ecf1ee6ab57b34426f41e","size":11806,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-7.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-7.0.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_7.0.0_1566237590845_0.25535924814999356"},"_hasShrinkwrap":false,"publish_time":1566237591003,"_cnpm_publish_time":1566237591003,"_cnpmcore_publish_time":"2021-12-16T18:38:33.197Z"},"6.5.0":{"name":"babel-plugin-tester","version":"6.5.0","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":"> 4","npm":"> 3"},"scripts":{"add-contributor":"kcd-scripts contributors add","build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate","precommit":"kcd-scripts pre-commit"},"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"common-tags":"^1.4.0","invariant":"^2.2.2","lodash.mergewith":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"@babel/core":"^7.2.0","@babel/plugin-proposal-async-generator-functions":"^7.2.0","@babel/plugin-syntax-jsx":"^7.2.0","@babel/plugin-syntax-typescript":"^7.3.3","@babel/plugin-transform-async-to-generator":"^7.2.0","@babel/preset-env":"^7.2.0","kcd-scripts":"^0.49.0"},"peerDependencies":{"@babel/core":"^7.0.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0,"max-lines-per-function":0,"prefer-object-spread":0,"no-useless-catch":0,"babel/camelcase":0,"babel/valid-typeof":0,"babel/no-unused-expressions":0,"babel/quotes":0,"jest/prefer-todo":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["@babel/preset-env",{"targets":{"node":"4.5"},"exclude":["transform-regenerator"]}]],"plugins":["@babel/plugin-transform-async-to-generator","@babel/plugin-proposal-async-generator-functions","@babel/plugin-proposal-object-rest-spread"]},"prettier":{"printWidth":80,"bracketSpacing":false,"semi":false,"singleQuote":true,"trailingComma":"all"},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"9ea178305756496e1d5039665af6fddd4419630b","_id":"babel-plugin-tester@6.5.0","_npmVersion":"6.4.1","_nodeVersion":"8.16.1","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"2f6e8debc1a79421f2cc90375bc10cff3aafe064","size":18146,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-6.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-6.5.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_6.5.0_1566136385300_0.5278679628702838"},"_hasShrinkwrap":false,"publish_time":1566136385433,"_cnpm_publish_time":1566136385433,"_cnpmcore_publish_time":"2021-12-16T18:38:33.847Z"},"6.4.0":{"name":"babel-plugin-tester","version":"6.4.0","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":"> 4","npm":"> 3"},"scripts":{"add-contributor":"kcd-scripts contributors add","build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate","precommit":"kcd-scripts pre-commit"},"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"common-tags":"^1.4.0","invariant":"^2.2.2","lodash.mergewith":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"@babel/core":"^7.2.0","@babel/plugin-proposal-async-generator-functions":"^7.2.0","@babel/plugin-transform-async-to-generator":"^7.2.0","@babel/preset-env":"^7.2.0","kcd-scripts":"^0.49.0"},"peerDependencies":{"@babel/core":"^7.0.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0,"max-lines-per-function":0,"prefer-object-spread":0,"no-useless-catch":0,"babel/camelcase":0,"babel/valid-typeof":0,"babel/no-unused-expressions":0,"babel/quotes":0,"jest/prefer-todo":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["@babel/preset-env",{"targets":{"node":"4.5"},"exclude":["transform-regenerator"]}]],"plugins":["@babel/plugin-transform-async-to-generator","@babel/plugin-proposal-async-generator-functions","@babel/plugin-proposal-object-rest-spread"]},"prettier":{"printWidth":80,"bracketSpacing":false,"semi":false,"singleQuote":true,"trailingComma":"all"},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"8c382315912a2df755c17aa767c947f4538f5616","_id":"babel-plugin-tester@6.4.0","_npmVersion":"6.4.1","_nodeVersion":"8.16.0","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"cdbc430794c375bf4c207a0287a00a68346529e9","size":17783,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-6.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-6.4.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_6.4.0_1560381227481_0.10715401047684847"},"_hasShrinkwrap":false,"publish_time":1560381227615,"_cnpm_publish_time":1560381227615,"_cnpmcore_publish_time":"2021-12-16T18:38:34.156Z"},"6.3.1":{"name":"babel-plugin-tester","version":"6.3.1","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":"> 4","npm":"> 3"},"scripts":{"add-contributor":"kcd-scripts contributors add","build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate","precommit":"kcd-scripts pre-commit"},"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"common-tags":"^1.4.0","invariant":"^2.2.2","lodash.mergewith":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"@babel/core":"^7.2.0","@babel/plugin-proposal-async-generator-functions":"^7.2.0","@babel/plugin-transform-async-to-generator":"^7.2.0","@babel/preset-env":"^7.2.0","kcd-scripts":"^0.49.0"},"peerDependencies":{"@babel/core":"^7.0.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0,"max-lines-per-function":0,"prefer-object-spread":0,"no-useless-catch":0,"babel/camelcase":0,"babel/valid-typeof":0,"babel/no-unused-expressions":0,"babel/quotes":0,"jest/prefer-todo":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["@babel/preset-env",{"targets":{"node":"4.5"},"exclude":["transform-regenerator"]}]],"plugins":["@babel/plugin-transform-async-to-generator","@babel/plugin-proposal-async-generator-functions","@babel/plugin-proposal-object-rest-spread"]},"prettier":{"printWidth":80,"bracketSpacing":false,"semi":false,"singleQuote":true,"trailingComma":"all"},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"1d220860c4b2f10c78592fbe0d87c53639b897aa","_id":"babel-plugin-tester@6.3.1","_npmVersion":"6.4.1","_nodeVersion":"8.16.0","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"d63814bf769543090847203abe62f3db55afaf28","size":16963,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-6.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-6.3.1.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_6.3.1_1560371996692_0.5446607679085957"},"_hasShrinkwrap":false,"publish_time":1560371996805,"_cnpm_publish_time":1560371996805,"_cnpmcore_publish_time":"2021-12-16T18:38:34.403Z"},"6.3.0":{"name":"babel-plugin-tester","version":"6.3.0","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":"> 4","npm":"> 3"},"scripts":{"add-contributor":"kcd-scripts contributors add","build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate","precommit":"kcd-scripts pre-commit"},"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"common-tags":"^1.4.0","invariant":"^2.2.2","lodash.mergewith":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"@babel/core":"^7.2.0","@babel/plugin-proposal-async-generator-functions":"^7.2.0","@babel/plugin-transform-async-to-generator":"^7.2.0","@babel/preset-env":"^7.2.0","kcd-scripts":"^0.49.0"},"peerDependencies":{"@babel/core":"^7.0.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0,"max-lines-per-function":0,"prefer-object-spread":0,"no-useless-catch":0,"babel/camelcase":0,"babel/valid-typeof":0,"babel/no-unused-expressions":0,"babel/quotes":0,"jest/prefer-todo":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["@babel/preset-env",{"targets":{"node":"4.5"},"exclude":["transform-regenerator"]}]],"plugins":["@babel/plugin-transform-async-to-generator","@babel/plugin-proposal-async-generator-functions","@babel/plugin-proposal-object-rest-spread"]},"prettier":{"printWidth":80,"bracketSpacing":false,"semi":false,"singleQuote":true,"trailingComma":"all"},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"b63e8e13208d6724494c1bbbe9ff8aefffb412ca","_id":"babel-plugin-tester@6.3.0","_npmVersion":"6.4.1","_nodeVersion":"8.16.0","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"4b24028e47129e4c1cc8a2e13504fc90202710ff","size":16895,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-6.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-6.3.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_6.3.0_1560371847481_0.12498226876991803"},"_hasShrinkwrap":false,"publish_time":1560371847632,"_cnpm_publish_time":1560371847632,"_cnpmcore_publish_time":"2021-12-16T18:38:34.726Z"},"6.2.1":{"name":"babel-plugin-tester","version":"6.2.1","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":"> 4","npm":"> 3"},"scripts":{"add-contributor":"kcd-scripts contributors add","build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate","precommit":"kcd-scripts pre-commit"},"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"@babel/core":"^7.2.0","@babel/plugin-proposal-async-generator-functions":"^7.2.0","@babel/plugin-transform-async-to-generator":"^7.2.0","@babel/preset-env":"^7.2.0","kcd-scripts":"^0.49.0"},"peerDependencies":{"@babel/core":"^7.0.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0,"max-lines-per-function":0,"prefer-object-spread":0,"no-useless-catch":0,"babel/camelcase":0,"babel/valid-typeof":0,"babel/no-unused-expressions":0,"babel/quotes":0,"jest/prefer-todo":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["@babel/preset-env",{"targets":{"node":"4.5"},"exclude":["transform-regenerator"]}]],"plugins":["@babel/plugin-transform-async-to-generator","@babel/plugin-proposal-async-generator-functions","@babel/plugin-proposal-object-rest-spread"]},"prettier":{"printWidth":80,"bracketSpacing":false,"semi":false,"singleQuote":true,"trailingComma":"all"},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"556ca0d37c753d9a0e0653fa956853f2299967e4","_id":"babel-plugin-tester@6.2.1","_npmVersion":"6.4.1","_nodeVersion":"8.16.0","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"b9195bfb3c868bd8316a1108c0f35b7f3fb84fcc","size":16739,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-6.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-6.2.1.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_6.2.1_1557699664734_0.6148133809009098"},"_hasShrinkwrap":false,"publish_time":1557699664944,"_cnpm_publish_time":1557699664944,"_cnpmcore_publish_time":"2021-12-16T18:38:34.985Z"},"6.2.0":{"name":"babel-plugin-tester","version":"6.2.0","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":"> 4","npm":"> 3"},"scripts":{"add-contributor":"kcd-scripts contributors add","build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate","precommit":"kcd-scripts pre-commit"},"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"@babel/core":"^7.2.0","@babel/plugin-proposal-async-generator-functions":"^7.2.0","@babel/plugin-transform-async-to-generator":"^7.2.0","@babel/preset-env":"^7.2.0","kcd-scripts":"^0.49.0"},"peerDependencies":{"@babel/core":"^7.0.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0,"max-lines-per-function":0,"prefer-object-spread":0,"no-useless-catch":0,"babel/camelcase":0,"babel/valid-typeof":0,"babel/no-unused-expressions":0,"babel/quotes":0,"jest/prefer-todo":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["@babel/preset-env",{"targets":{"node":"4.5"},"exclude":["transform-regenerator"]}]],"plugins":["@babel/plugin-transform-async-to-generator","@babel/plugin-proposal-async-generator-functions","@babel/plugin-proposal-object-rest-spread"]},"prettier":{"printWidth":80,"bracketSpacing":false,"semi":false,"singleQuote":true,"trailingComma":"all"},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"7b9e76d1dc8f5dc2a787fd9897647613ccde2e37","_id":"babel-plugin-tester@6.2.0","_npmVersion":"6.4.1","_nodeVersion":"8.16.0","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"539dfa078f59bcc10d3cf5b2536dfee79d7bb974","size":16627,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-6.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-6.2.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_6.2.0_1557677125646_0.41286010323270905"},"_hasShrinkwrap":false,"publish_time":1557677125781,"_cnpm_publish_time":1557677125781,"_cnpmcore_publish_time":"2021-12-16T18:38:35.237Z"},"6.1.0":{"name":"babel-plugin-tester","version":"6.1.0","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":"> 4","npm":"> 3"},"scripts":{"add-contributor":"kcd-scripts contributors add","build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate","precommit":"kcd-scripts pre-commit"},"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"@babel/core":"^7.2.0","@babel/plugin-proposal-async-generator-functions":"^7.2.0","@babel/plugin-transform-async-to-generator":"^7.2.0","@babel/preset-env":"^7.2.0","kcd-scripts":"^0.49.0"},"peerDependencies":{"@babel/core":"^7.0.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0,"max-lines-per-function":0,"prefer-object-spread":0,"no-useless-catch":0,"babel/camelcase":0,"babel/valid-typeof":0,"babel/no-unused-expressions":0,"babel/quotes":0,"jest/prefer-todo":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["@babel/preset-env",{"targets":{"node":"4.5"},"exclude":["transform-regenerator"]}]],"plugins":["@babel/plugin-transform-async-to-generator","@babel/plugin-proposal-async-generator-functions","@babel/plugin-proposal-object-rest-spread"]},"prettier":{"printWidth":80,"bracketSpacing":false,"semi":false,"singleQuote":true,"trailingComma":"all"},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"e6c219f8ce1f57837e8bc3e17127c0f4e07843a6","_id":"babel-plugin-tester@6.1.0","_npmVersion":"6.4.1","_nodeVersion":"8.16.0","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"92e5c266313ac461fbb6b00802822d6765cfdb82","size":16004,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-6.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-6.1.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_6.1.0_1556991459655_0.45257543825183255"},"_hasShrinkwrap":false,"publish_time":1556991459795,"_cnpm_publish_time":1556991459795,"_cnpmcore_publish_time":"2021-12-16T18:38:35.423Z"},"6.0.1":{"name":"babel-plugin-tester","version":"6.0.1","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":"> 4","npm":"> 3"},"scripts":{"add-contributor":"kcd-scripts contributors add","build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate","precommit":"kcd-scripts pre-commit"},"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"@babel/core":"^7.2.0","@babel/plugin-proposal-async-generator-functions":"^7.2.0","@babel/plugin-transform-async-to-generator":"^7.2.0","@babel/preset-env":"^7.2.0","kcd-scripts":"^0.49.0"},"peerDependencies":{"@babel/core":"^7.0.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0,"max-lines-per-function":0,"prefer-object-spread":0,"no-useless-catch":0,"babel/camelcase":0,"babel/valid-typeof":0,"babel/no-unused-expressions":0,"babel/quotes":0,"jest/prefer-todo":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["@babel/preset-env",{"targets":{"node":"4.5"},"exclude":["transform-regenerator"]}]],"plugins":["@babel/plugin-transform-async-to-generator","@babel/plugin-proposal-async-generator-functions","@babel/plugin-proposal-object-rest-spread"]},"prettier":{"printWidth":80,"bracketSpacing":false,"semi":false,"singleQuote":true,"trailingComma":"all"},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"f3d7b5b4b7384e601233e1967764be5c91266991","_id":"babel-plugin-tester@6.0.1","_npmVersion":"6.4.1","_nodeVersion":"8.15.1","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"6e38df63da9969525501f0d09a823055d9d97b33","size":15898,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-6.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-6.0.1.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_6.0.1_1552590264153_0.9032514774019325"},"_hasShrinkwrap":false,"publish_time":1552590264280,"_cnpm_publish_time":1552590264280,"_cnpmcore_publish_time":"2021-12-16T18:38:35.708Z"},"6.0.0":{"name":"babel-plugin-tester","version":"6.0.0","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":"> 4","npm":"> 3"},"scripts":{"add-contributor":"kcd-scripts contributors add","build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate","precommit":"kcd-scripts pre-commit"},"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"@babel/core":"^7.2.0","@babel/plugin-proposal-async-generator-functions":"^7.2.0","@babel/plugin-transform-async-to-generator":"^7.2.0","@babel/preset-env":"^7.2.0","kcd-scripts":"^0.49.0"},"peerDependencies":{"@babel/core":"^7.0.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0,"max-lines-per-function":0,"prefer-object-spread":0,"no-useless-catch":0,"babel/camelcase":0,"babel/valid-typeof":0,"babel/no-unused-expressions":0,"babel/quotes":0,"jest/prefer-todo":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["@babel/preset-env",{"targets":{"node":"4.5"},"exclude":["transform-regenerator"]}]],"plugins":["@babel/plugin-transform-async-to-generator","@babel/plugin-proposal-async-generator-functions","@babel/plugin-proposal-object-rest-spread"]},"prettier":{"printWidth":80,"bracketSpacing":false,"semi":false,"singleQuote":true,"trailingComma":"all"},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"a174a762f4a20a08ea67816ca0040488156655d3","_id":"babel-plugin-tester@6.0.0","_npmVersion":"6.4.1","_nodeVersion":"8.15.0","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"91483381e65f48ea717320a30a9182a441e3fe18","size":15653,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-6.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-6.0.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_6.0.0_1550173577063_0.25015382757183446"},"_hasShrinkwrap":false,"publish_time":1550173577204,"_cnpm_publish_time":1550173577204,"_cnpmcore_publish_time":"2021-12-16T18:38:35.908Z"},"5.5.2":{"name":"babel-plugin-tester","version":"5.5.2","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":"> 4","npm":"> 3"},"scripts":{"add-contributor":"kcd-scripts contributors add","build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate","precommit":"kcd-scripts precommit"},"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"babel-core":"^6.25.0","babel-plugin-syntax-trailing-function-commas":"^6.22.0","babel-plugin-transform-async-generator-functions":"^6.24.1","babel-plugin-transform-async-to-generator":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.5.2","kcd-scripts":"^0.42.1"},"peerDependencies":{"babel-core":"^6.0.0 || ^7.0.0-alpha || ^7.0.0-beta || ^7.0.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"jest/valid-describe":0,"max-lines":0,"semi":[2,"never"]}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["env",{"targets":{"node":"4.5"},"exclude":["transform-regenerator"]}]],"plugins":["babel-plugin-syntax-trailing-function-commas","transform-async-to-generator","transform-async-generator-functions","transform-object-rest-spread"]},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"0a8d27909c6afd055d89f940c2cf3182491b4e6c","_id":"babel-plugin-tester@5.5.2","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"593ab7978d30450c1b3ebf4aa9c884b04952fe09","size":10686,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-5.5.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-5.5.2.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_5.5.2_1542498298772_0.7116797574419038"},"_hasShrinkwrap":false,"publish_time":1542498298993,"_cnpm_publish_time":1542498298993,"_cnpmcore_publish_time":"2021-12-16T18:38:36.120Z"},"5.5.1":{"name":"babel-plugin-tester","version":"5.5.1","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":"> 4","npm":"> 3"},"scripts":{"add-contributor":"kcd-scripts contributors add","build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate","precommit":"kcd-scripts precommit"},"files":["dist"],"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"babel-core":"^6.25.0","babel-plugin-syntax-trailing-function-commas":"^6.22.0","babel-plugin-transform-async-generator-functions":"^6.24.1","babel-plugin-transform-async-to-generator":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.5.2","kcd-scripts":"^0.16.3"},"peerDependencies":{"babel-core":"^6.0.0 || ^7.0.0-alpha || ^7.0.0-beta || ^7.0.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["env",{"targets":{"node":"4.5"},"exclude":["transform-regenerator"]}]],"plugins":["babel-plugin-syntax-trailing-function-commas","transform-async-to-generator","transform-async-generator-functions","transform-object-rest-spread"]},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"2b33b362f5fff648a76265a96b54afb2958cf765","_id":"babel-plugin-tester@5.5.1","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"93648d140e67a81fa8474a73d3382b4fd8e91ca6","size":10286,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-5.5.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-5.5.1.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_5.5.1_1534466843951_0.6565638557037636"},"_hasShrinkwrap":false,"publish_time":1534466844067,"_cnpm_publish_time":1534466844067,"_cnpmcore_publish_time":"2021-12-16T18:38:36.335Z"},"5.5.0":{"name":"babel-plugin-tester","version":"5.5.0","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":"> 4","npm":"> 3"},"scripts":{"add-contributor":"kcd-scripts contributors add","build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate","precommit":"kcd-scripts precommit"},"files":["dist"],"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"babel-core":"^6.25.0","babel-plugin-syntax-trailing-function-commas":"^6.22.0","babel-plugin-transform-async-generator-functions":"^6.24.1","babel-plugin-transform-async-to-generator":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.5.2","kcd-scripts":"^0.16.3"},"peerDependencies":{"babel-core":"^6.0.0 || ^7.0.0-alpha || ^7.0.0-beta || ^7.0.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["env",{"targets":{"node":"4.5"},"exclude":["transform-regenerator"]}]],"plugins":["babel-plugin-syntax-trailing-function-commas","transform-async-to-generator","transform-async-generator-functions","transform-object-rest-spread"]},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"c8e49be56250c552c2d117305170d51e5febf389","_id":"babel-plugin-tester@5.5.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"a61a95bfca9b67f50faabd7956c629ba679fc3fe","size":10360,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-5.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-5.5.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_5.5.0_1533481085910_0.9700836571076834"},"_hasShrinkwrap":false,"publish_time":1533481085958,"_cnpm_publish_time":1533481085958,"_cnpmcore_publish_time":"2021-12-16T18:38:36.555Z"},"5.4.0":{"name":"babel-plugin-tester","version":"5.4.0","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":"> 4","npm":"> 3"},"scripts":{"add-contributor":"kcd-scripts contributors add","build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate","precommit":"kcd-scripts precommit"},"files":["dist"],"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"babel-core":"^6.25.0","babel-plugin-syntax-trailing-function-commas":"^6.22.0","babel-plugin-transform-async-generator-functions":"^6.24.1","babel-plugin-transform-async-to-generator":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.5.2","kcd-scripts":"^0.16.3"},"peerDependencies":{"babel-core":"^6.0.0 || ^7.0.0-alpha || ^7.0.0-beta || ^7.0.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["env",{"targets":{"node":"4.5"},"exclude":["transform-regenerator"]}]],"plugins":["babel-plugin-syntax-trailing-function-commas","transform-async-to-generator","transform-async-generator-functions","transform-object-rest-spread"]},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"1efc84a7fbe56973890d1398da59b459929c1b65","_id":"babel-plugin-tester@5.4.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.2","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"cf4054138a3a7850891a959427993e1bb4d201d7","size":10303,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-5.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-5.4.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_5.4.0_1528605039014_0.7668577108858659"},"_hasShrinkwrap":false,"publish_time":1528605039120,"_cnpm_publish_time":1528605039120,"_cnpmcore_publish_time":"2021-12-16T18:38:36.819Z"},"5.3.0":{"name":"babel-plugin-tester","version":"5.3.0","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":"> 4","npm":"> 3"},"scripts":{"add-contributor":"kcd-scripts contributors add","build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate","precommit":"kcd-scripts precommit"},"files":["dist"],"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"babel-core":"^6.25.0","babel-plugin-syntax-trailing-function-commas":"^6.22.0","babel-plugin-transform-async-generator-functions":"^6.24.1","babel-plugin-transform-async-to-generator":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.5.2","kcd-scripts":"^0.16.3"},"peerDependencies":{"babel-core":"^6.0.0 || ^7.0.0-alpha || ^7.0.0-beta || ^7.0.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["env",{"targets":{"node":"4.5"},"exclude":["transform-regenerator"]}]],"plugins":["babel-plugin-syntax-trailing-function-commas","transform-async-to-generator","transform-async-generator-functions","transform-object-rest-spread"]},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"d48a8fc2ea941dddf50dbcedaf136ab7d2618522","_id":"babel-plugin-tester@5.3.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.2","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"4dfd7be315d67fc6e26b2e61472d77d84031bd70","size":10216,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-5.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-5.3.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_5.3.0_1528124344884_0.9824218867746497"},"_hasShrinkwrap":false,"publish_time":1528124344958,"_cnpm_publish_time":1528124344958,"_cnpmcore_publish_time":"2021-12-16T18:38:37.028Z"},"5.2.0":{"name":"babel-plugin-tester","version":"5.2.0","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":"> 4","npm":"> 3"},"scripts":{"add-contributor":"kcd-scripts contributors add","build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate","precommit":"kcd-scripts precommit"},"files":["dist"],"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"babel-core":"^6.25.0","babel-plugin-syntax-trailing-function-commas":"^6.22.0","babel-plugin-transform-async-generator-functions":"^6.24.1","babel-plugin-transform-async-to-generator":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.5.2","kcd-scripts":"^0.16.3"},"peerDependencies":{"babel-core":"^6.0.0 || ^7.0.0-alpha || ^7.0.0-beta || ^7.0.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["env",{"targets":{"node":"4.5"},"exclude":["transform-regenerator"]}]],"plugins":["babel-plugin-syntax-trailing-function-commas","transform-async-to-generator","transform-async-generator-functions","transform-object-rest-spread"]},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"f3e1ad2417a27560fb9ac4de1effdb0e4e57234d","_id":"babel-plugin-tester@5.2.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.2","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"b5bb5cb87030d0c8b9ec3443c233d1394420c290","size":10172,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-5.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-5.2.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_5.2.0_1528072901937_0.7979121669238476"},"_hasShrinkwrap":false,"publish_time":1528072901997,"_cnpm_publish_time":1528072901997,"_cnpmcore_publish_time":"2021-12-16T18:38:37.268Z"},"5.1.0":{"name":"babel-plugin-tester","version":"5.1.0","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":"> 4","npm":"> 3"},"scripts":{"add-contributor":"kcd-scripts contributors add","build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate","precommit":"kcd-scripts precommit"},"files":["dist"],"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"babel-core":"^6.25.0","babel-plugin-syntax-trailing-function-commas":"^6.22.0","babel-plugin-transform-async-generator-functions":"^6.24.1","babel-plugin-transform-async-to-generator":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.5.2","kcd-scripts":"^0.16.3"},"peerDependencies":{"babel-core":"^6.0.0 || ^7.0.0-alpha || ^7.0.0-beta || ^7.0.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["env",{"targets":{"node":"4.5"},"exclude":["transform-regenerator"]}]],"plugins":["babel-plugin-syntax-trailing-function-commas","transform-async-to-generator","transform-async-generator-functions","transform-object-rest-spread"]},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"cb230ec291a18a7298451aec2128eceb15712abf","_id":"babel-plugin-tester@5.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.2","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"c50e8d80fb104e19bfe212db4d2eb2f1964284d8","size":10122,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-5.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-5.1.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester_5.1.0_1527949461961_0.5154477783812181"},"_hasShrinkwrap":false,"publish_time":1527949462060,"_cnpm_publish_time":1527949462060,"_cnpmcore_publish_time":"2021-12-16T18:38:37.492Z"},"5.0.0":{"name":"babel-plugin-tester","version":"5.0.0","description":"Utilities for testing babel plugins","main":"dist/index.js","engines":{"node":"> 4","npm":"> 3"},"scripts":{"add-contributor":"kcd-scripts contributors add","build":"kcd-scripts build","lint":"kcd-scripts lint","test":"kcd-scripts test","test:update":"npm test -- --updateSnapshot --coverage","validate":"kcd-scripts validate","precommit":"kcd-scripts precommit"},"files":["dist"],"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"babel-core":"^6.25.0","babel-plugin-syntax-trailing-function-commas":"^6.22.0","babel-plugin-transform-async-generator-functions":"^6.24.1","babel-plugin-transform-async-to-generator":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.5.2","kcd-scripts":"^0.16.3"},"peerDependencies":{"babel-core":"^6.0.0 || ^7.0.0-alpha || ^7.0.0-beta || ^7.0.0"},"eslintConfig":{"extends":"./node_modules/kcd-scripts/eslint.js","rules":{"max-lines":0}},"eslintIgnore":["node_modules","coverage","dist","fixtures"],"babel":{"presets":[["env",{"targets":{"node":"4.5"},"exclude":["transform-regenerator"]}]],"plugins":["babel-plugin-syntax-trailing-function-commas","transform-async-to-generator","transform-async-generator-functions","transform-object-rest-spread"]},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"46c70d1fd0fd3d1c683230b8a5639ee3759770a3","_id":"babel-plugin-tester@5.0.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"d3387860311cbd8353746d3a8aaba7ad2446e470","size":9977,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-5.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-5.0.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester-5.0.0.tgz_1511618379492_0.8949000677093863"},"directories":{},"publish_time":1511618380471,"_hasShrinkwrap":false,"_cnpm_publish_time":1511618380471,"_cnpmcore_publish_time":"2021-12-16T18:38:37.722Z"},"4.0.0":{"name":"babel-plugin-tester","version":"4.0.0","description":"Utilities for testing babel plugins","main":"dist/index.js","scripts":{"start":"nps","test":"nps test","commitmsg":"opt --in commit-msg --exec \"validate-commit-msg\"","precommit":"lint-staged && opt --in pre-commit --exec \"npm start validate\""},"files":["dist"],"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"babel-core":"^6.25.0","common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"all-contributors-cli":"^4.0.1","babel-cli":"^6.23.0","babel-jest":"^20.0.3","babel-preset-env":"^1.5.2","babel-preset-stage-2":"^6.22.0","babel-register":"^6.23.0","codecov":"^2.1.0","commitizen":"^2.9.6","cz-conventional-changelog":"^2.0.0","eslint":"^3.17.0","eslint-config-kentcdodds":"^12.4.1","husky":"^0.14.1","jest-cli":"^20.0.4","lint-staged":"^4.0.0","nps":"^5.3.2","nps-utils":"^1.1.2","opt-cli":"^1.5.1","prettier-eslint-cli":"^4.1.1","semantic-release":"^6.3.6","validate-commit-msg":"^2.12.2"},"eslintConfig":{"extends":["kentcdodds","kentcdodds/jest","kentcdodds/prettier"],"rules":{"func-style":"off","max-lines":["error",1000]}},"lint-staged":{"*.js":["prettier-eslint --write","git add"]},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/","__fixtures__","__helpers__"],"coverageThreshold":{"global":{"branches":100,"functions":100,"lines":100,"statements":100}}},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"6cd36d153598ba0356642cbdedc1c7ab5206d3b6","_id":"babel-plugin-tester@4.0.0","_shasum":"5c05af9a175e2a1c7b3d6a195e710f1ae948a2bc","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.2","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"5c05af9a175e2a1c7b3d6a195e710f1ae948a2bc","size":10142,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-4.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-4.0.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester-4.0.0.tgz_1502908969065_0.4532502356451005"},"directories":{},"publish_time":1502908970057,"_hasShrinkwrap":false,"_cnpm_publish_time":1502908970057,"_cnpmcore_publish_time":"2021-12-16T18:38:37.950Z"},"3.3.0":{"name":"babel-plugin-tester","version":"3.3.0","description":"Utilities for testing babel plugins","main":"dist/index.js","scripts":{"start":"nps","test":"nps test","commitmsg":"opt --in commit-msg --exec \"validate-commit-msg\"","precommit":"lint-staged && opt --in pre-commit --exec \"npm start validate\""},"files":["dist"],"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"babel-core":"^6.25.0","common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"all-contributors-cli":"^4.0.1","babel-cli":"^6.23.0","babel-jest":"^20.0.3","babel-preset-env":"^1.5.2","babel-preset-stage-2":"^6.22.0","babel-register":"^6.23.0","codecov":"^2.1.0","commitizen":"^2.9.6","cz-conventional-changelog":"^2.0.0","eslint":"^3.17.0","eslint-config-kentcdodds":"^12.4.1","husky":"^0.14.1","jest-cli":"^20.0.4","lint-staged":"^4.0.0","nps":"^5.3.2","nps-utils":"^1.1.2","opt-cli":"^1.5.1","prettier-eslint-cli":"^4.1.1","semantic-release":"^6.3.6","validate-commit-msg":"^2.12.2"},"eslintConfig":{"extends":["kentcdodds","kentcdodds/jest","kentcdodds/prettier"],"rules":{"func-style":"off","max-lines":["error",1000]}},"lint-staged":{"*.js":["prettier-eslint --write","git add"]},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/","__fixtures__","__helpers__"],"coverageThreshold":{"global":{"branches":100,"functions":100,"lines":100,"statements":100}}},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"6085c16ff6d15c2651b0ade26d536e42838d337f","_id":"babel-plugin-tester@3.3.0","_shasum":"9844f77a661b48b5c7e08bd54acca590dbcee5b4","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.1","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"9844f77a661b48b5c7e08bd54acca590dbcee5b4","size":10189,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-3.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-3.3.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester-3.3.0.tgz_1500348314587_0.5715463364031166"},"directories":{},"publish_time":1500348315633,"_hasShrinkwrap":false,"_cnpm_publish_time":1500348315633,"_cnpmcore_publish_time":"2021-12-16T18:38:38.180Z"},"3.2.2":{"name":"babel-plugin-tester","version":"3.2.2","description":"Utilities for testing babel plugins","main":"dist/index.js","scripts":{"start":"nps","test":"nps test","commitmsg":"opt --in commit-msg --exec \"validate-commit-msg\"","precommit":"lint-staged && opt --in pre-commit --exec \"npm start validate\""},"files":["dist"],"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"babel-core":"^6.25.0","common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"all-contributors-cli":"^4.0.1","babel-cli":"^6.23.0","babel-jest":"^20.0.3","babel-preset-env":"^1.5.2","babel-preset-stage-2":"^6.22.0","babel-register":"^6.23.0","codecov":"^2.1.0","commitizen":"^2.9.6","cz-conventional-changelog":"^2.0.0","eslint":"^3.17.0","eslint-config-kentcdodds":"^12.4.1","husky":"^0.14.1","jest-cli":"^20.0.4","lint-staged":"^4.0.0","nps":"^5.3.2","nps-utils":"^1.1.2","opt-cli":"^1.5.1","prettier-eslint-cli":"^4.1.1","semantic-release":"^6.3.6","validate-commit-msg":"^2.12.2"},"eslintConfig":{"extends":["kentcdodds","kentcdodds/jest","kentcdodds/prettier"],"rules":{"func-style":"off","max-lines":["error",1000]}},"lint-staged":{"*.js":["prettier-eslint --write","git add"]},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/","__fixtures__","__helpers__"],"coverageThreshold":{"global":{"branches":100,"functions":100,"lines":100,"statements":100}}},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"10d2b4f09750bf29454800becdd6224807dd4b97","_id":"babel-plugin-tester@3.2.2","_shasum":"119f44ad46df707f932ba3dd9f0cc31776bc3cf5","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.0","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"119f44ad46df707f932ba3dd9f0cc31776bc3cf5","size":10057,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-3.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-3.2.2.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester-3.2.2.tgz_1499361165658_0.49927040562033653"},"directories":{},"publish_time":1499361166737,"_hasShrinkwrap":false,"_cnpm_publish_time":1499361166737,"_cnpmcore_publish_time":"2021-12-16T18:38:38.373Z"},"3.2.1":{"name":"babel-plugin-tester","version":"3.2.1","description":"Utilities for testing babel plugins","main":"dist/index.js","scripts":{"start":"nps","test":"nps test","commitmsg":"opt --in commit-msg --exec \"validate-commit-msg\"","precommit":"lint-staged && opt --in pre-commit --exec \"npm start validate\""},"files":["dist"],"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"babel-core":"^6.25.0","common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"all-contributors-cli":"^4.0.1","babel-cli":"^6.23.0","babel-jest":"^20.0.3","babel-preset-env":"^1.5.2","babel-preset-stage-2":"^6.22.0","babel-register":"^6.23.0","codecov":"^2.1.0","commitizen":"^2.9.6","cz-conventional-changelog":"^2.0.0","eslint":"^3.17.0","eslint-config-kentcdodds":"^12.4.1","husky":"^0.14.1","jest-cli":"^20.0.4","lint-staged":"^4.0.0","nps":"^5.3.2","nps-utils":"^1.1.2","opt-cli":"^1.5.1","prettier-eslint-cli":"^4.1.1","semantic-release":"^6.3.6","validate-commit-msg":"^2.12.2"},"eslintConfig":{"extends":["kentcdodds","kentcdodds/jest","kentcdodds/prettier"],"rules":{"func-style":"off","max-lines":["error",1000]}},"lint-staged":{"*.js":["prettier-eslint --write","git add"]},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/","__fixtures__","__helpers__"],"coverageThreshold":{"global":{"branches":100,"functions":100,"lines":100,"statements":100}}},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"9fcb41816267f360a04f040135c8965cb2c5affd","_id":"babel-plugin-tester@3.2.1","_shasum":"84b39984e951129e7169b35f25ab9c1ddf8483fa","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.0","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"84b39984e951129e7169b35f25ab9c1ddf8483fa","size":10297,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-3.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-3.2.1.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester-3.2.1.tgz_1499238124081_0.81204983452335"},"directories":{},"publish_time":1499238125170,"_hasShrinkwrap":false,"_cnpm_publish_time":1499238125170,"_cnpmcore_publish_time":"2021-12-16T18:38:38.579Z"},"3.2.0":{"name":"babel-plugin-tester","version":"3.2.0","description":"Utilities for testing babel plugins","main":"dist/index.js","scripts":{"start":"nps","test":"nps test","commitmsg":"opt --in commit-msg --exec \"validate-commit-msg\"","precommit":"lint-staged && opt --in pre-commit --exec \"npm start validate\""},"files":["dist"],"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"babel-core":"^6.25.0","common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"all-contributors-cli":"^4.0.1","babel-cli":"^6.23.0","babel-jest":"^20.0.3","babel-preset-env":"^1.5.2","babel-preset-stage-2":"^6.22.0","babel-register":"^6.23.0","codecov":"^2.1.0","commitizen":"^2.9.6","cz-conventional-changelog":"^2.0.0","eslint":"^3.17.0","eslint-config-kentcdodds":"^12.4.1","husky":"^0.14.1","jest-cli":"^20.0.4","lint-staged":"^4.0.0","nps":"^5.3.2","nps-utils":"^1.1.2","opt-cli":"^1.5.1","prettier-eslint-cli":"^4.1.1","semantic-release":"^6.3.6","validate-commit-msg":"^2.12.2"},"eslintConfig":{"extends":["kentcdodds","kentcdodds/jest","kentcdodds/prettier"],"rules":{"func-style":"off","max-lines":["error",1000]}},"lint-staged":{"*.js":["prettier-eslint --write","git add"]},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/","__fixtures__","__helpers__"],"coverageThreshold":{"global":{"branches":100,"functions":100,"lines":100,"statements":100}}},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"9b30ca31c4e165372aaa95bd5a8111d2b1e79207","_id":"babel-plugin-tester@3.2.0","_shasum":"28f0053969075729555771cce47c961ebea21690","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.0","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"28f0053969075729555771cce47c961ebea21690","size":10302,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-3.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-3.2.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester-3.2.0.tgz_1498807666484_0.567238274263218"},"directories":{},"publish_time":1498807667620,"_hasShrinkwrap":false,"_cnpm_publish_time":1498807667620,"_cnpmcore_publish_time":"2021-12-16T18:38:38.779Z"},"3.1.0":{"name":"babel-plugin-tester","version":"3.1.0","description":"Utilities for testing babel plugins","main":"dist/index.js","scripts":{"start":"nps","test":"nps test","commitmsg":"opt --in commit-msg --exec \"validate-commit-msg\"","precommit":"lint-staged && opt --in pre-commit --exec \"npm start validate\""},"files":["dist"],"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"babel-core":"^6.24.1","common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"all-contributors-cli":"^4.0.1","babel-cli":"^6.23.0","babel-jest":"^20.0.1","babel-preset-env":"^1.2.0","babel-preset-stage-2":"^6.22.0","babel-register":"^6.23.0","codecov":"^2.1.0","commitizen":"^2.9.6","cz-conventional-changelog":"^2.0.0","eslint":"^3.17.0","eslint-config-kentcdodds":"^12.0.0","husky":"^0.13.2","jest-cli":"^20.0.1","lint-staged":"^3.3.1","nps":"^5.0.3","nps-utils":"^1.1.2","opt-cli":"^1.5.1","prettier-eslint-cli":"^3.1.2","semantic-release":"^6.3.6","validate-commit-msg":"^2.11.1"},"eslintConfig":{"extends":["kentcdodds","kentcdodds/jest","kentcdodds/prettier"],"rules":{"func-style":"off","max-lines":["error",1000]}},"lint-staged":{"*.js":["prettier-eslint --write","git add"]},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/","__fixtures__","__helpers__"],"coverageThreshold":{"global":{"branches":100,"functions":100,"lines":100,"statements":100}}},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"repository":{"type":"git","url":"git+https://github.com/babel-utils/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","gitHead":"d7aa18ac37fd19e74f6755143cf3152fcc6fa8f7","_id":"babel-plugin-tester@3.1.0","_shasum":"a2f861e53c8da675b0856189073ee5ad0723ee60","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.0","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"a2f861e53c8da675b0856189073ee5ad0723ee60","size":9265,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-3.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-3.1.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester-3.1.0.tgz_1497288723415_0.456205464201048"},"directories":{},"publish_time":1497288724523,"_hasShrinkwrap":false,"_cnpm_publish_time":1497288724523,"_cnpmcore_publish_time":"2021-12-16T18:38:39.004Z"},"3.0.0":{"name":"babel-plugin-tester","version":"3.0.0","description":"Utilities for testing babel plugins","main":"dist/index.js","scripts":{"start":"nps","test":"nps test","commitmsg":"opt --in commit-msg --exec \"validate-commit-msg\"","precommit":"lint-staged && opt --in pre-commit --exec \"npm start validate\""},"files":["dist"],"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"babel-core":"^6.24.1","common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","path-exists":"^3.0.0","strip-indent":"^2.0.0"},"devDependencies":{"all-contributors-cli":"^4.0.1","babel-cli":"^6.23.0","babel-jest":"^20.0.1","babel-preset-env":"^1.2.0","babel-preset-stage-2":"^6.22.0","babel-register":"^6.23.0","codecov":"^2.1.0","commitizen":"^2.9.6","cz-conventional-changelog":"^2.0.0","eslint":"^3.17.0","eslint-config-kentcdodds":"^12.0.0","husky":"^0.13.2","jest-cli":"^20.0.1","lint-staged":"^3.3.1","nps":"^5.0.3","nps-utils":"^1.1.2","opt-cli":"^1.5.1","prettier-eslint-cli":"^3.1.2","semantic-release":"^6.3.6","validate-commit-msg":"^2.11.1"},"eslintConfig":{"extends":["kentcdodds","kentcdodds/jest","kentcdodds/prettier"],"rules":{"func-style":"off"}},"lint-staged":{"*.js":["prettier-eslint --write","git add"]},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/","__fixtures__","__helpers__"],"coverageThreshold":{"global":{"branches":100,"functions":100,"lines":100,"statements":100}}},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"repository":{"type":"git","url":"git+https://github.com/kentcdodds/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/kentcdodds/babel-plugin-tester/issues"},"homepage":"https://github.com/kentcdodds/babel-plugin-tester#readme","gitHead":"c78460bf77561c6b61c0a3191ccacb188f23fefc","_id":"babel-plugin-tester@3.0.0","_shasum":"402910cc5b7c9e5c2d88a6c40dbbac20f42d2258","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"402910cc5b7c9e5c2d88a6c40dbbac20f42d2258","size":9009,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-3.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-3.0.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-tester-3.0.0.tgz_1495578564262_0.3931437595747411"},"directories":{},"publish_time":1495578565263,"_hasShrinkwrap":false,"_cnpm_publish_time":1495578565263,"_cnpmcore_publish_time":"2021-12-16T18:38:39.313Z"},"2.0.0":{"name":"babel-plugin-tester","version":"2.0.0","description":"Utilities for testing babel plugins","main":"dist/index.js","scripts":{"start":"nps","test":"nps test","commitmsg":"opt --in commit-msg --exec \"validate-commit-msg\"","precommit":"lint-staged && opt --in pre-commit --exec \"npm start validate\""},"files":["dist"],"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"babel-core":"^6.24.1","common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","path-exists":"^3.0.0","recast":"^0.12.3","strip-indent":"^2.0.0"},"devDependencies":{"all-contributors-cli":"^4.0.1","babel-cli":"^6.23.0","babel-jest":"^20.0.1","babel-preset-env":"^1.2.0","babel-preset-stage-2":"^6.22.0","babel-register":"^6.23.0","codecov":"^2.1.0","commitizen":"^2.9.6","cz-conventional-changelog":"^2.0.0","eslint":"^3.17.0","eslint-config-kentcdodds":"^12.0.0","husky":"^0.13.2","jest-cli":"^20.0.1","lint-staged":"^3.3.1","nps":"^5.0.3","nps-utils":"^1.1.2","opt-cli":"^1.5.1","prettier-eslint-cli":"^3.1.2","semantic-release":"^6.3.6","validate-commit-msg":"^2.11.1"},"eslintConfig":{"extends":["kentcdodds","kentcdodds/jest","kentcdodds/prettier"],"rules":{"func-style":"off"}},"lint-staged":{"*.js":["prettier-eslint --write","git add"]},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/","__fixtures__","__helpers__"],"coverageThreshold":{"global":{"branches":100,"functions":100,"lines":100,"statements":100}}},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"repository":{"type":"git","url":"git+https://github.com/kentcdodds/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/kentcdodds/babel-plugin-tester/issues"},"homepage":"https://github.com/kentcdodds/babel-plugin-tester#readme","gitHead":"52dfa320a97c4b18f66378af9adf12a473525c51","_id":"babel-plugin-tester@2.0.0","_shasum":"00344b21fb951eeda4de4420b4a357dcfca6d4bf","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"00344b21fb951eeda4de4420b4a357dcfca6d4bf","size":8894,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-2.0.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/babel-plugin-tester-2.0.0.tgz_1495173104580_0.920167756266892"},"directories":{},"publish_time":1495173106445,"_hasShrinkwrap":false,"_cnpm_publish_time":1495173106445,"_cnpmcore_publish_time":"2021-12-16T18:38:39.507Z"},"1.1.1":{"name":"babel-plugin-tester","version":"1.1.1","description":"Utilities for testing babel plugins","main":"dist/index.js","scripts":{"start":"nps","test":"nps test","commitmsg":"opt --in commit-msg --exec \"validate-commit-msg\"","precommit":"lint-staged && opt --in pre-commit --exec \"npm start validate\""},"files":["dist"],"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"babel-core":"^6.24.1","common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","recast":"^0.12.3","strip-indent":"^2.0.0"},"devDependencies":{"all-contributors-cli":"^4.0.1","babel-cli":"^6.23.0","babel-jest":"^20.0.1","babel-preset-env":"^1.2.0","babel-preset-stage-2":"^6.22.0","babel-register":"^6.23.0","codecov":"^2.1.0","commitizen":"^2.9.6","cz-conventional-changelog":"^2.0.0","eslint":"^3.17.0","eslint-config-kentcdodds":"^12.0.0","husky":"^0.13.2","jest-cli":"^20.0.1","lint-staged":"^3.3.1","nps":"^5.0.3","nps-utils":"^1.1.2","opt-cli":"^1.5.1","prettier-eslint-cli":"^3.1.2","semantic-release":"^6.3.6","validate-commit-msg":"^2.11.1"},"eslintConfig":{"extends":["kentcdodds","kentcdodds/jest","kentcdodds/prettier"],"rules":{"func-style":"off"}},"lint-staged":{"*.js":["prettier-eslint --write","git add"]},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/","__fixtures__"],"coverageThreshold":{"global":{"branches":100,"functions":100,"lines":100,"statements":100}}},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"repository":{"type":"git","url":"git+https://github.com/kentcdodds/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/kentcdodds/babel-plugin-tester/issues"},"homepage":"https://github.com/kentcdodds/babel-plugin-tester#readme","gitHead":"eb60549ebfe9a520f3fe3ca6852d50ab84464831","_id":"babel-plugin-tester@1.1.1","_shasum":"74ffddd6a1b4d1e3da688643d716dae0ee7ba205","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"74ffddd6a1b4d1e3da688643d716dae0ee7ba205","size":7550,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-1.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-1.1.1.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/babel-plugin-tester-1.1.1.tgz_1494969429421_0.18086508265696466"},"directories":{},"publish_time":1494969430127,"_hasShrinkwrap":false,"_cnpm_publish_time":1494969430127,"_cnpmcore_publish_time":"2021-12-16T18:38:39.698Z"},"1.1.0":{"name":"babel-plugin-tester","version":"1.1.0","description":"Utilities for testing babel plugins","main":"dist/index.js","scripts":{"start":"nps","test":"nps test","commitmsg":"opt --in commit-msg --exec \"validate-commit-msg\"","precommit":"lint-staged && opt --in pre-commit --exec \"npm start validate\""},"files":["dist"],"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"babel-core":"^6.24.1","common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","recast":"^0.12.3","strip-indent":"^2.0.0"},"devDependencies":{"all-contributors-cli":"^4.0.1","babel-cli":"^6.23.0","babel-jest":"^20.0.1","babel-preset-env":"^1.2.0","babel-preset-stage-2":"^6.22.0","babel-register":"^6.23.0","codecov":"^2.1.0","commitizen":"^2.9.6","cz-conventional-changelog":"^2.0.0","eslint":"^3.17.0","eslint-config-kentcdodds":"^12.0.0","husky":"^0.13.2","jest-cli":"^20.0.1","lint-staged":"^3.3.1","nps":"^5.0.3","nps-utils":"^1.1.2","opt-cli":"^1.5.1","prettier-eslint-cli":"^3.1.2","semantic-release":"^6.3.6","validate-commit-msg":"^2.11.1"},"eslintConfig":{"extends":["kentcdodds","kentcdodds/jest","kentcdodds/prettier"],"rules":{"func-style":"off"}},"lint-staged":{"*.js":["prettier-eslint --write","git add"]},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/","__fixtures__"],"coverageThreshold":{"global":{"branches":100,"functions":100,"lines":100,"statements":100}}},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"repository":{"type":"git","url":"git+https://github.com/kentcdodds/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/kentcdodds/babel-plugin-tester/issues"},"homepage":"https://github.com/kentcdodds/babel-plugin-tester#readme","gitHead":"df54a4063df7b7ef9c73ddea2864dccff64ffbb8","_id":"babel-plugin-tester@1.1.0","_shasum":"4b709c5b87266a597c68db7ccc6683cbdb42dfc8","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"4b709c5b87266a597c68db7ccc6683cbdb42dfc8","size":7476,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-1.1.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/babel-plugin-tester-1.1.0.tgz_1494956224695_0.4167429958470166"},"directories":{},"publish_time":1494956226900,"_hasShrinkwrap":false,"_cnpm_publish_time":1494956226900,"_cnpmcore_publish_time":"2021-12-16T18:38:39.901Z"},"1.0.0":{"name":"babel-plugin-tester","version":"1.0.0","description":"Utilities for testing babel plugins","main":"dist/index.js","scripts":{"start":"nps","test":"nps test","commitmsg":"opt --in commit-msg --exec \"validate-commit-msg\"","precommit":"lint-staged && opt --in pre-commit --exec \"npm start validate\""},"files":["dist"],"keywords":[],"author":{"name":"Kent C. Dodds","email":"kent@doddsfamily.us","url":"http://kentcdodds.com/"},"license":"MIT","dependencies":{"babel-core":"^6.24.1","common-tags":"^1.4.0","invariant":"^2.2.2","lodash.merge":"^4.6.0","recast":"^0.12.3","strip-indent":"^2.0.0"},"devDependencies":{"all-contributors-cli":"^4.0.1","babel-cli":"^6.23.0","babel-jest":"^20.0.1","babel-preset-env":"^1.2.0","babel-preset-stage-2":"^6.22.0","babel-register":"^6.23.0","codecov":"^2.1.0","commitizen":"^2.9.6","cz-conventional-changelog":"^2.0.0","eslint":"^3.17.0","eslint-config-kentcdodds":"^12.0.0","husky":"^0.13.2","jest-cli":"^20.0.1","lint-staged":"^3.3.1","nps":"^5.0.3","nps-utils":"^1.1.2","opt-cli":"^1.5.1","prettier-eslint-cli":"^3.1.2","semantic-release":"^6.3.6","validate-commit-msg":"^2.11.1"},"eslintConfig":{"extends":["kentcdodds","kentcdodds/jest","kentcdodds/prettier"],"rules":{"func-style":"off"}},"lint-staged":{"*.js":["prettier-eslint --write","git add"]},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/","__fixtures__"],"coverageThreshold":{"global":{"branches":100,"functions":100,"lines":100,"statements":100}}},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"repository":{"type":"git","url":"git+https://github.com/kentcdodds/babel-plugin-tester.git"},"bugs":{"url":"https://github.com/kentcdodds/babel-plugin-tester/issues"},"homepage":"https://github.com/kentcdodds/babel-plugin-tester#readme","gitHead":"fe80771efd866473899de03d66fcf940236ac753","_id":"babel-plugin-tester@1.0.0","_shasum":"6718dbd7e23723683aaba1eeb865f378fec5294a","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"kentcdodds","email":"kent@doddsfamily.us"},"dist":{"shasum":"6718dbd7e23723683aaba1eeb865f378fec5294a","size":5047,"noattachment":false,"key":"/babel-plugin-tester/-/babel-plugin-tester-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-tester/download/babel-plugin-tester-1.0.0.tgz"},"maintainers":[{"name":"kentcdodds","email":"kent+npm@doddsfamily.us"},{"name":"xunnamius","email":"me@bernarddickens.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/babel-plugin-tester-1.0.0.tgz_1494950906650_0.8202755842357874"},"directories":{},"publish_time":1494950908046,"_hasShrinkwrap":false,"_cnpm_publish_time":1494950908046,"_cnpmcore_publish_time":"2021-12-16T18:38:40.109Z"}},"readme":"# babel-plugin-tester\n\n> **Note**\\\n> This documentation is for version 11.x of babel-plugin-tester. If you're on an\n> earlier version and interested in upgrading, check out the [release notes][1] for\n> tips. Discuss any undocumented breaks to backwards-compatibility or offer other\n> feedback [here][2] (or [open a new issue][3]). Documentation for earlier versions\n> can be found [here][4].\n\nUtilities for testing babel plugins and presets.\n\n---\n\n<!-- prettier-ignore-start -->\n\n[![Code Coverage][coverage-badge]][coverage]\n[![Version][version-badge]][package]\n[![Downloads][downloads-badge]][npmtrends]\n[![MIT License][license-badge]][license]\n\n<!-- remark-ignore-start -->\n<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->\n\n[![All Contributors](https://img.shields.io/badge/all_contributors-30-orange.svg?style=flat-square)](#contributors-)\n\n<!-- ALL-CONTRIBUTORS-BADGE:END -->\n<!-- remark-ignore-end -->\n\n[![PRs Welcome][prs-badge]][prs]\n[![Code of Conduct][coc-badge]][coc]\n\n<!-- prettier-ignore-end -->\n\n## The Problem\n\nYou are writing a babel [plugin][5] or [preset][6] and want to write tests for\nit too.\n\n## This Solution\n\nThis is a fairly simple abstraction to help you write tests for your babel\nplugin or preset. It was built to work with [Jest][7], but most of the\nfunctionality will work with [Mocha][8], [Jasmine][9], [`node:test`][10],\n[Vitest][11], and any other test runner that defines standard `describe` and\n`it` globals with async support (see [appendix][12]).\n\nThis package is tested on both Windows and nix (Ubuntu) environments.\n\n<!-- remark-ignore-start -->\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n\n- [Installation](#installation)\n- [Usage](#usage)\n  - [Import](#import)\n  - [Invoke](#invoke)\n  - [Options](#options)\n- [Examples](#examples)\n  - [Simple Example](#simple-example)\n  - [Full Example](#full-example)\n  - [Fixtures Examples](#fixtures-examples)\n- [Appendix](#appendix)\n  - [Testing Framework Compatibility](#testing-framework-compatibility)\n  - [Using Babel for Configuration Loading](#using-babel-for-configuration-loading)\n  - [`pluginName` Inference Caveat](#pluginname-inference-caveat)\n  - [Custom Snapshot Serialization](#custom-snapshot-serialization)\n  - [Formatting Output with Prettier](#formatting-output-with-prettier)\n  - [Built-In Debugging Support](#built-in-debugging-support)\n  - [`TEST_ONLY`/`TEST_NUM_ONLY` and `TEST_SKIP`/`TEST_NUM_SKIP` Environment Variables](#test_onlytest_num_only-and-test_skiptest_num_skip-environment-variables)\n  - [`setup` and `teardown` Run Order](#setup-and-teardown-run-order)\n- [Inspiration](#inspiration)\n- [Issues](#issues)\n  - [???? Bugs](#-bugs)\n  - [???? Feature Requests](#-feature-requests)\n- [Contributors ✨](#contributors-)\n- [License](#license)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n<!-- remark-ignore-end -->\n\n## Installation\n\nThis module is distributed via [npm][npm] which is bundled with [node][node] and\nshould be installed as one of your project's `devDependencies`:\n\n```shell\nnpm install --save-dev babel-plugin-tester\n```\n\n## Usage\n\n### Import\n\nESM:\n\n```javascript\nimport { pluginTester } from 'babel-plugin-tester';\n```\n\nCJS:\n\n```javascript\nconst { pluginTester } = require('babel-plugin-tester');\n```\n\n#### Default Export Compatibility\n\nFor backwards compatibility reasons, a default export is also available:\n\n```javascript\nimport pluginTester from 'babel-plugin-tester';\n\nconst pluginTester = require('babel-plugin-tester');\n\nconst pluginTester = require('babel-plugin-tester').default;\n\nconst { default: pluginTester } = require('babel-plugin-tester');\n```\n\nThese default exports are considered deprecated and [should be avoided][13].\nThey will be removed in the next major release.\n\n### Invoke\n\n```javascript\n/* file: test/unit.test.js */\n\nimport { pluginTester } from 'babel-plugin-tester';\nimport yourPlugin from '../src/your-plugin';\n\npluginTester({\n  plugin: yourPlugin,\n  tests: {\n    /* Your test objects */\n  }\n});\n```\n\n> Note how `pluginTester` does not appear inside any `test`/`it` block nor\n> within any [hook functions][14]. For advanced use cases, `pluginTester` may\n> appear within one or more `describe` blocks, though this is discouraged.\n\n### Options\n\nThis section lists the options you can pass to babel-plugin-tester. They are all\noptional with respect to the following:\n\n- When testing a preset, the [`preset`][15] option is required.\n- When testing a plugin, the [`plugin`][16] option is required.\n- You must test either a preset or a plugin.\n- You cannot use preset-specific options ([`preset`][15], [`presetName`][17],\n  [`presetOptions`][18]) and plugin-specific options ([`plugin`][16],\n  [`pluginName`][19], [`pluginOptions`][20]) at the same time.\n\n#### `plugin`\n\nThis is used to provide the babel plugin under test. For example:\n\n```javascript\n/* file: test/unit.test.js */\n\nimport { pluginTester } from 'babel-plugin-tester';\nimport identifierReversePlugin from '../src/identifier-reverse-plugin';\n\npluginTester({\n  plugin: identifierReversePlugin,\n  tests: {\n    /* Your test objects */\n  }\n});\n\n/* file: src/identifier-reverse-plugin.js */\n\n// Normally you would import this from your plugin module\nfunction identifierReversePlugin() {\n  return {\n    name: 'identifier reverse',\n    visitor: {\n      Identifier(idPath) {\n        idPath.node.name = idPath.node.name.split('').reverse().join('');\n      }\n    }\n  };\n}\n```\n\n#### `pluginName`\n\nThis is used as the [describe block name][21] and in your [tests' names][22]. If\n`pluginName` can be inferred from the [`plugin`][16]'s [name][23], then it will\nbe and you do not need to provide this option. If it cannot be inferred for\nwhatever reason, `pluginName` defaults to `\"unknown plugin\"`.\n\nNote that there is a small [caveat][24] when relying on `pluginName` inference.\n\n#### `pluginOptions`\n\nThis is used to pass options into your plugin at transform time. If provided,\nthe object will be [`lodash.mergeWith`][lodash.mergewith]'d with each [test\nobject's `pluginOptions`][25]/[fixture's `pluginOptions`][26], with the latter\ntaking precedence. Note that arrays will be concatenated and explicitly\nundefined values will unset previously defined values during merging.\n\n#### `preset`\n\nThis is used to provide the babel preset under test. For example:\n\n```javascript\n/* file: cool-new-babel-preset.test.js */\n\nimport path from 'node:path';\nimport { pluginTester } from 'babel-plugin-tester';\nimport coolNewBabelPreset from './cool-new-babel-preset.js';\n\npluginTester({\n  preset: coolNewBabelPreset,\n  // A path to a directory containing your test fixtures\n  fixtures: path.join(__dirname, 'fixtures')\n});\n\n/* file: cool-new-babel-preset.js */\n\nfunction identifierReversePlugin() {\n  return {\n    name: 'identifier reverse',\n    visitor: {\n      Identifier(idPath) {\n        idPath.node.name = idPath.node.name.split('').reverse().join('');\n      }\n    }\n  };\n}\n\nfunction identifierAppendPlugin() {\n  return {\n    name: 'identifier append',\n    visitor: {\n      Identifier(idPath) {\n        idPath.node.name = `${idPath.node.name}_appended`;\n      }\n    }\n  };\n}\n\nexport function coolNewBabelPreset() {\n  return { plugins: [identifierReversePlugin, identifierAppendPlugin] };\n}\n```\n\n#### `presetName`\n\nThis is used as the [describe block name][21] and in your [tests' names][22].\nDefaults to `\"unknown preset\"`.\n\n#### `presetOptions`\n\nThis is used to pass options into your preset at transform time. If provided,\nthe object will be [`lodash.mergeWith`][lodash.mergewith]'d with each [test\nobject's `presetOptions`][27]/[fixture's `presetOptions`][28], with the latter\ntaking precedence. Note that arrays will be concatenated and explicitly\nundefined values will unset previously defined values during merging.\n\n#### `babel`\n\nThis is used to provide your own implementation of babel. This is particularly\nuseful if you want to use a different version of babel than what's required by\nthis package.\n\n#### `babelOptions`\n\nThis is used to configure babel. If provided, the object will be\n[`lodash.mergeWith`][lodash.mergewith]'d with the [defaults][29] and each [test\nobject's `babelOptions`][30]/[fixture's `babelOptions`][31], with the latter\ntaking precedence. Note that arrays will be concatenated and explicitly\nundefined values will unset previously defined values during merging.\n\nAlso note that [`babelOptions.babelrc`][32] and [`babelOptions.configFile`][33]\nare set to `false` by default, which disables automatic babel configuration\nloading. [This can be re-enabled if desired][34].\n\nTo simply reuse your project's [`babel.config.js`][35] or some other\nconfiguration file, set `babelOptions` like so:\n\n```javascript\nimport path from 'node:path';\nimport { pluginTester } from 'babel-plugin-tester';\n\npluginTester({\n  plugin: yourPlugin,\n  // ...\n  babelOptions: require(path.join('..', 'babel.config.js')),\n  // ...\n  tests: {\n    /* Your test objects */\n  }\n});\n```\n\n##### Custom Plugin and Preset Run Order\n\nBy default, when you include a custom list of [plugins][36] or [presets][6] in\n`babelOptions`, the plugin or preset under test will always be the final plugin\nor preset to run.\n\nFor example, consider the `myPlugin` plugin:\n\n```javascript\nimport { pluginTester } from 'babel-plugin-tester';\n\npluginTester({\n  plugin: myPlugin,\n  pluginName: 'my-plugin',\n  babelOptions: {\n    plugins: [\n      ['@babel/plugin-syntax-decorators', { legacy: true }],\n      ['@babel/plugin-proposal-class-properties', { loose: true }]\n    ]\n  }\n});\n```\n\nBy default, `myPlugin` will be invoked _after_ @babel/plugin-syntax-decorators\nand @babel/plugin-proposal-class-properties (i.e. `myPlugin` is _appended_ by\ndefault).\n\nIt is possible to specify a custom ordering using the exported\n`runPluginUnderTestHere` symbol. For instance, to run `myPlugin` _after_\n@babel/plugin-syntax-decorators but _before_\n@babel/plugin-proposal-class-properties:\n\n```javascript\nimport { pluginTester, runPluginUnderTestHere } from 'babel-plugin-tester';\n\npluginTester({\n  plugin: myPlugin,\n  pluginName: 'my-plugin',\n  babelOptions: {\n    plugins: [\n      ['@babel/plugin-syntax-decorators', { legacy: true }],\n      runPluginUnderTestHere,\n      ['@babel/plugin-proposal-class-properties', { loose: true }]\n    ]\n  }\n});\n```\n\nOr to run `myPlugin` _before_ both @babel/plugin-syntax-decorators and\n@babel/plugin-proposal-class-properties:\n\n```javascript\nimport { pluginTester, runPluginUnderTestHere } from 'babel-plugin-tester';\n\npluginTester({\n  plugin: myPlugin,\n  pluginName: 'my-plugin',\n  babelOptions: {\n    plugins: [\n      runPluginUnderTestHere,\n      ['@babel/plugin-syntax-decorators', { legacy: true }],\n      ['@babel/plugin-proposal-class-properties', { loose: true }]\n    ]\n  }\n});\n```\n\nThe same can be done when testing presets. Note that `myPreset` is normally\n_prepended_ by default since, unlike plugins, [presets are run in reverse\norder][37]:\n\n```javascript\nimport { pluginTester, runPresetUnderTestHere } from 'babel-plugin-tester';\n\npluginTester({\n  preset: myPreset,\n  presetName: 'my-preset',\n  babelOptions: {\n    presets: [\n      '@babel/preset-typescript',\n      ['@babel/preset-react', { pragma: 'dom' }],\n      runPresetUnderTestHere\n    ]\n  }\n});\n```\n\nIn this example, `myPreset` will run first instead of last.\n\n#### `title`\n\nThis is used to specify a custom title for the two top-level [describe\nblocks][21], the first enclosing all [tests][38] (i.e. `describe(title, ...)`)\nand the second enclosing all [fixtures][39] (i.e.\n`` describe(`${title} fixtures`, ...) ``).\n\nExplicitly setting this option will override any defaults or inferred values.\nSet to `false` to prevent the creation of these enclosing describe blocks.\nOtherwise, the title defaults to using [`pluginName`][19]/[`presetName`][17].\n\n#### `filepath`\n\nThis is used to resolve relative paths provided by the [`fixtures`][39] option;\nthe test object properties [`codeFixture`][40], [`outputFixture`][41], and\n[`execFixture`][42]; and [during configuration resolution for prettier][43].\nThat is: if the aforesaid properties are not absolute paths, they will be\n[`path.join`][44]'d with the [directory name][45] of `filepath`.\n\n`filepath` is also passed to `formatResult` if a more specific path is not\navailable, and it is used as the default value for `babelOptions.filename` in\n[test objects][46].\n\nThis option defaults to the absolute path of the file that [invoked the\n`pluginTester` function][47].\n\n> For backwards compatibility reasons, `filepath` is synonymous with `filename`.\n> They can be used interchangeably, though care must be taken not to confuse the\n> babel-plugin-tester option `filename` with `babelOptions.filename`. They are\n> NOT the same!\n\n#### `endOfLine`\n\nThis is used to control which line endings both the actual output from babel and\nthe expected output will be converted to. Defaults to `\"lf\"`.\n\n| Options      | Description                             |\n| ------------ | --------------------------------------- |\n| `\"lf\"`       | Use Unix-style line endings             |\n| `\"crlf\"`     | Use Windows-style line endings          |\n| `\"auto\"`     | Use the system default line endings     |\n| `\"preserve\"` | Use the line endings from the input     |\n| `false`      | Disable line ending conversion entirely |\n\n> When disabling line ending conversion, note that [Babel will always output\n> LF][48] even if the input is CRLF.\n\n#### `setup`\n\nThis function will be run before every test runs, including fixtures. It can\nreturn a function which will be treated as a [`teardown`][49] function. It can\nalso return a promise. If that promise resolves to a function, that will be\ntreated as a [`teardown`][49] function.\n\nSee [here][50] for the complete run order.\n\n#### `teardown`\n\nThis function will be run after every test runs, including fixtures. You can\ndefine this via `teardown` or you can return it from the [`setup`][51] function.\nThis can likewise return a promise if it is asynchronous.\n\nThis function, if provided, will be run _after_ any teardown function returned\nby [`setup`][51]. See [here][50] for the complete run order.\n\n#### `formatResult`\n\nThis function is used to format all babel outputs, and defaults to a function\nthat invokes [prettier][52]. If a prettier configuration file is [found][53],\nthen that will be used. Otherwise, prettier will use its own default\nconfiguration.\n\nYou can also [override or entirely disable formatting][43].\n\n#### `snapshot`\n\nEquivalent to [`snapshot`][54] but applied globally across all [test\nobjects][46].\n\n#### `fixtureOutputName`\n\nEquivalent to [`fixtureOutputName`][55] but applied globally across all\n[fixtures][39].\n\n#### `fixtureOutputExt`\n\nEquivalent to [`fixtureOutputExt`][56] but applied globally across all\n[fixtures][39].\n\n#### `titleNumbering`\n\nDetermines which test titles are prefixed with a number when registering [test\nblocks][22] (e.g. `` `1. ${title}` ``, `` `2. ${title}` ``, etc). Defaults to\n`\"all\"`.\n\n| Options           | Description                                         |\n| ----------------- | --------------------------------------------------- |\n| `\"all\"`           | All test object and fixtures tests will be numbered |\n| `\"tests-only\"`    | Only test object tests will be numbered             |\n| `\"fixtures-only\"` | Only fixtures tests will be numbered                |\n| `false`           | Disable automatic numbering in titles entirely      |\n\n#### `restartTitleNumbering`\n\nNormally, multiple [invocations][47] of babel-plugin-tester in the same test\nfile will share the same [test title numbering][57]. For example:\n\n```javascript\n/* file: test/unit.test.js */\n\nimport { pluginTester } from 'babel-plugin-tester';\nimport yourPlugin from '../src/your-plugin';\n\npluginTester({\n  plugin: yourPlugin,\n  tests: { 'test one': testOne, 'test two': testTwo }\n});\n\npluginTester({\n  plugin: yourPlugin,\n  tests: { 'test one': testOne, 'test x': testTwo }\n});\n\npluginTester({\n  plugin: yourPlugin,\n  tests: { 'test five': testOne }\n});\n```\n\nWill result in [test blocks][22] with names like:\n\n```text\n1. Test one\n2. Test two\n3. Test one\n4. Test x\n5. Test five\n```\n\nHowever, setting this option to `true` will restart the numbering:\n\n```javascript\n/* file: test/unit.test.js */\n\nimport { pluginTester } from 'babel-plugin-tester';\nimport yourPlugin from '../src/your-plugin';\n\npluginTester({\n  plugin: yourPlugin,\n  tests: { 'test one': testOne, 'test two': testTwo }\n});\n\npluginTester({\n  plugin: yourPlugin,\n  restartTitleNumbering: true,\n  tests: { 'test one': testOne, 'test x': testTwo }\n});\n\npluginTester({\n  plugin: yourPlugin,\n  tests: { 'test five': testOne }\n});\n```\n\nWhich will result in [test blocks][22] with names like:\n\n```text\n1. Test one\n2. Test two\n1. Test one\n2. Test x\n3. Test five\n```\n\nThis option is `false` by default.\n\n#### `fixtures`\n\nThere are two ways to create tests: using the [`tests`][38] option to provide\none or more [test objects][46] or using the `fixtures` option described here.\nBoth can be used simultaneously.\n\nThe `fixtures` option must be a path to a directory with a structure similar to\nthe following:\n\n```text\nfixtures\n├── first-test         # test title will be: \"1. first test\"\n│   ├── code.js        # required\n│   └── output.js      # required (unless using the `throws` option)\n├── second-test        # test title will be: \"2. second test\"\n│   ├── .babelrc.js    # optional\n│   ├── options.json   # optional\n│   ├── code.ts        # required (other file extensions are allowed too)\n│   └── output.js      # required (unless using the `throws` option)\n└── nested\n    ├── options.json   # optional\n    ├── third-test     # test title will be: \"3. nested > third test\"\n    │   ├── code.mjs   # required (other file extensions are allowed too)\n    │   ├── output.js  # required (unless using the `throws` option)\n    │   └── options.js # optional (overrides props in nested/options.json)\n    └── x-fourth-test  # test title will be: \"4. nested > x fourth test\"\n        └── exec.js    # required (alternative to code/output structure)\n```\n\nAssuming the `fixtures` directory is in the same directory as your test file,\nyou could use it with the following configuration:\n\n```javascript\npluginTester({\n  plugin,\n  fixtures: path.join(__dirname, 'fixtures')\n});\n```\n\n> If `fixtures` is not an absolute path, it will be [`path.join`][44]'d with the\n> [directory name][45] of [`filepath`][58].\n\n> `.babelrc`, `.babelrc.json`, `.babelrc.js`, `.babelrc.cjs`, and `.babelrc.mjs`\n> config files in fixture directories are technically supported out-of-the-box,\n> though `.mjs` config files will cause a segfault in Jest until [this issue\n> with V8/Chromium is resolved][59].\n\nAnd it would run four tests, one for each directory in `fixtures` containing a\nfile starting with \"code\" or \"exec\".\n\n##### `code.js`\n\nThis file's contents will be used as the source code input into babel at\ntransform time. Any file extension can be used, even a multi-part extension\n(e.g. `.test.js` in `code.test.js`) as long as the file name starts with\n`code.`; the [expected output file][60] will have the same file extension suffix\n(i.e. `.js` in `code.test.js`) as this file unless changed with the\n[`fixtureOutputExt`][56] option.\n\nAfter being transformed by babel, the resulting output will have whitespace\ntrimmed, line endings [converted][61], and then get [formatted by prettier][43].\n\nNote that this file cannot appear in the same directory as [`exec.js`][62]. If\nmore than one `code.*` file exists in a directory, the first one will be used\nand the rest will be silently ignored.\n\n##### `output.js`\n\nThis file, if provided, will have its contents compared with babel's output,\nwhich is [`code.js`][63] transformed by babel and [formatted with prettier][43].\nIf this file is missing and neither [`throws`][64] nor [`exec.js`][62] are being\nused, this file will be automatically generated from babel's output.\nAdditionally, the name and extension of this file can be changed with the\n[`fixtureOutputName`][55] and [`fixtureOutputExt`][56] options.\n\nBefore being compared to babel's output, this file's contents will have\nwhitespace trimmed and line endings [converted][61].\n\nNote that this file cannot appear in the same directory as [`exec.js`][62].\n\n##### `exec.js`\n\nThis file's contents will be used as the input into babel at transform time just\nlike the [`code.js`][63] file, except the output will be _evaluated_ in the\n[same _CJS_ context][65] as the test runner itself, meaning it supports features\nlike a/sync IIFEs, debugging breakpoints (!), and has access to mocked modules,\n`expect`, `require`, `__dirname` and `__filename` (derived from this file's\npath), and other globals/features provided by your test framework. However, the\ncontext does not support _`import`, top-level await, or any other ESM syntax_.\nHence, while any file extension can be used (e.g. `.ts`, `.vue`, `.jsx`), this\nfile will always be evaluated as CJS.\n\nThe test will always pass unless an exception is thrown (e.g. when an `expect()`\nfails).\n\nUse this to make advanced assertions on the output. For example, to test that\n[babel-plugin-proposal-throw-expressions][66] actually throws, your `exec.js`\nfile might contain:\n\n```javascript\nexpect(() => throw new Error('throw expression')).toThrow('throw expression');\n```\n\n> Keep in mind that, despite sharing a global context, execution will occur in a\n> [separate realm][67], which means native/intrinsic types will be different.\n> This can lead to unexpectedly failing tests. For example:\n>\n> ```javascript\n> expect(require(`${__dirname}/imported-file.json`)).toStrictEqual({\n>   data: 'imported'\n> });\n> ```\n>\n> This may fail in some test frameworks with the message \"serializes to the same\n> string\". This is because the former object's `Object` prototype comes from a\n> different realm than the second object's `Object` prototype, meaning the two\n> objects are not technically _strictly_ equal. However, something like the\n> following, which creates two objects in the same realm, will pass:\n>\n> ```javascript\n> expect(\n>   Object.fromEntries(\n>     Object.entries(require(`${__dirname}/imported-file.json`))\n>   )\n> ).toStrictEqual({ data: 'imported' });\n> ```\n>\n> Or even:\n>\n> ```javascript\n> expect(JSON.stringify(require(`${__dirname}/imported-file.json`))).toBe(\n>   JSON.stringify({ data: 'imported' })\n> );\n> ```\n\nAfter being transformed by babel but before being evaluated, the babel output\nwill have whitespace trimmed, line endings [converted][61], and then get\n[formatted by prettier][43].\n\nNote that this file cannot appear in the same directory as [`code.js`][63] or\n[`output.js`][60]. If more than one `exec.*` file exists in a directory, the\nfirst one will be used and the rest will be silently ignored.\n\n##### `options.json` (Or `options.js`)\n\nFor each fixture, the contents of the entirely optional `options.json` file are\n[`lodash.mergeWith`][lodash.mergewith]'d with the options provided to\nbabel-plugin-tester, with the former taking precedence. Note that arrays will be\nconcatenated and explicitly undefined values will unset previously defined\nvalues during merging.\n\nFor added flexibility, `options.json` can be specified as `options.js` instead\nso long as a JSON object is exported via [`module.exports`][68]. If both files\nexist in the same directory, `options.js` will take precedence and\n`options.json` will be ignored entirely.\n\nFixtures support deeply nested directory structures as well as shared or \"root\"\n`options.json` files. For example, placing an `options.json` file in the\n`fixtures/nested` directory would make its contents the \"global configuration\"\nfor all fixtures under `fixtures/nested`. That is: each fixture would\n[`lodash.mergeWith`][lodash.mergewith] the options provided to\nbabel-plugin-tester, `fixtures/nested/options.json`, and the contents of their\nlocal `options.json` file as described above.\n\nWhat follows are the properties you may use if you provide an options file, all\nof which are optional:\n\n###### `babelOptions`\n\nThis is used to configure babel. Properties specified here override\n([`lodash.mergeWith`][lodash.mergewith]) those from the [`babelOptions`][69]\noption provided to babel-plugin-tester. Note that arrays will be concatenated\nand explicitly undefined values will unset previously defined values during\nmerging.\n\n###### `pluginOptions`\n\nThis is used to pass options into your plugin at transform time. Properties\nspecified here override ([`lodash.mergeWith`][lodash.mergewith]) those from the\n[`pluginOptions`][20] option provided to babel-plugin-tester. Note that arrays\nwill be concatenated and explicitly undefined values will unset previously\ndefined values during merging.\n\nUnlike with babel-plugin-tester's options, you can safely mix plugin-specific\nproperties (like `pluginOptions`) with preset-specific properties (like\n[`presetOptions`][28]) in your options files.\n\n###### `presetOptions`\n\nThis is used to pass options into your preset at transform time. Properties\nspecified here override ([`lodash.mergeWith`][lodash.mergewith]) those from the\n[`presetOptions`][18] option provided to babel-plugin-tester. Note that arrays\nwill be concatenated and explicitly undefined values will unset previously\ndefined values during merging.\n\nUnlike with babel-plugin-tester's options, you can safely mix plugin-specific\nproperties (like [`pluginOptions`][26]) with preset-specific properties (like\n`presetOptions`) in your options files.\n\n###### `title`\n\nIf provided, this will be used as the title of the test. Otherwise, the\ndirectory name will be used as the title by default (with spaces replacing\ndashes).\n\n###### `only`\n\nUse this to run only the specified fixture. Useful while developing to help\nfocus on a small number of fixtures. Can be used in multiple `options.json`\nfiles.\n\n> Requires [Jest][70], an equivalent interface (like [Vitest][11]), or a\n> manually-defined `it` object exposing an appropriate [`only`][71] method.\n\n###### `skip`\n\nUse this to skip running the specified fixture. Useful for when you are working\non a feature that is not yet supported. Can be used in multiple `options.json`\nfiles.\n\n> Requires [Jest][70], an equivalent interface (like [Vitest][11]), or a\n> manually-defined `it` object exposing an appropriate [`skip`][72] method.\n\n###### `throws`\n\n> When using certain values, this property must be used in `options.js` instead\n> of `options.json`.\n\nUse this to assert that a particular `code.js` file should cause babel to throw\nan error during transformation. For example:\n\n```javascript\n{\n  // ...\n  throws: true,\n  throws: 'should have this exact message',\n  throws: /should pass this regex/,\n  throws: SyntaxError, // Should be an instance of this class\n  throws: err => {\n    if (err instanceof SyntaxError && /message/.test(err.message)) {\n      return true; // Test will fail if this function's return value !== true\n    }\n  },\n}\n```\n\n> Be careful using `instanceof` [across realms][73] as it can lead to [strange\n> behavior][74] with [frontend frames/windows][75] and with tools that rely on\n> [Node's VM module][76] (like Jest). Prefer [name checks][77] and utilities\n> like [`isNativeError`][78], [`Array.isArray`][79], and overriding\n> [`Symbol.hasInstance`][80] instead.\n\nIf the value of `throws` is a class, that class must [be a subtype of\n`Error`][81] or the behavior of babel-plugin-tester is undefined.\n\n> For backwards compatibility reasons, `throws` is synonymous with `error`. They\n> can be used interchangeably, with `throws` taking precedence.\n\nNote that this property cannot be present when using an [`exec.js`][62] or\n[`output.js`][60] file.\n\n###### `setup`\n\n> As it requires a function value, this property must be used in `options.js`\n> instead of `options.json`.\n\nThis function will be run before a particular fixture's tests are run. It can\nreturn a function which will be treated as a [`teardown`][82] function. It can\nalso return a promise. If that promise resolves to a function, that will be\ntreated as a [`teardown`][82] function.\n\nThis function, if provided, will run _after_ any [`setup`][51] function provided\nas a babel-plugin-tester option. See [here][50] for the complete run order.\n\n###### `teardown`\n\n> As it requires a function value, this property must be used in `options.js`\n> instead of `options.json`.\n\nThis function will be run after a fixture's tests finish running. You can define\nthis via `teardown` or you can return it from the [`setup`][83] function. This\ncan likewise return a promise if it is asynchronous.\n\nThis function, if provided, will be run _after_ any teardown function returned\nby the [`setup`][83] property, both of which will run _before_ any\n[`teardown`][49] function provided as a babel-plugin-tester option. See\n[here][50] for the complete run order.\n\n###### `formatResult`\n\n> As it requires a function value, this property must be used in `options.js`\n> instead of `options.json`.\n\nThis function is used to format all babel outputs, and defaults to a function\nthat invokes [prettier][52]. If a prettier configuration file is [found][53],\nthen that will be used. Otherwise, prettier will use its own default\nconfiguration.\n\nYou can also [entirely disable formatting][43].\n\nThis will override the [`formatResult`][84] function provided to\nbabel-plugin-tester.\n\n###### `fixtureOutputName`\n\nUse this to provide your own fixture output file name. Defaults to `\"output\"`.\n\n###### `fixtureOutputExt`\n\nUse this to provide your own fixture output file extension. Including the\nleading period is optional; that is: if you want `output.jsx`,\n`fixtureOutputExt` can be set to either `\"jsx\"` or `\".jsx\"`. If omitted, the\n[input fixture][63]'s file extension will be used instead.\n\nThis is particularly useful if you are testing TypeScript input.\n\n#### `tests`\n\nThere are two ways to create tests: using the [`fixtures`][39] option that\nleverages the filesystem or using the `tests` option described here. Both can be\nused simultaneously.\n\nUsing the `tests` option, you can provide [test objects][46] describing your\nexpected transformations. You can provide `tests` as an object of test objects\nor an array of test objects. If you provide an object, the object's keys will be\nused as the default title of each test. If you provide an array, each test's\ndefault title will be derived from its index and\n[`pluginName`][19]/[`presetName`][17].\n\nSee [the example][85] for more details.\n\n##### Test Objects\n\nA minimal test object can be:\n\n1. A `string` representing [code][86].\n2. An `object` with a [`code`][86] property.\n\nWhat follows are the properties you may use if you provide an object, most of\nwhich are optional:\n\n###### `babelOptions`\n\nThis is used to configure babel. Properties specified here override\n([`lodash.mergeWith`][lodash.mergewith]) those from the [`babelOptions`][69]\noption provided to babel-plugin-tester. Note that arrays will be concatenated\nand explicitly undefined values will unset previously defined values during\nmerging.\n\n###### `pluginOptions`\n\nThis is used to pass options into your plugin at transform time. Properties\nspecified here override ([`lodash.mergeWith`][lodash.mergewith]) those from the\n[`pluginOptions`][20] option provided to babel-plugin-tester. Note that arrays\nwill be concatenated and explicitly undefined values will unset previously\ndefined values during merging.\n\nUnlike with babel-plugin-tester's options, you can safely mix plugin-specific\nproperties (like `pluginOptions`) with preset-specific properties (like\n[`presetOptions`][27]) in your test objects.\n\n###### `presetOptions`\n\nThis is used to pass options into your preset at transform time. Properties\nspecified here override ([`lodash.mergeWith`][lodash.mergewith]) those from the\n[`presetOptions`][18] option provided to babel-plugin-tester. Note that arrays\nwill be concatenated and explicitly undefined values will unset previously\ndefined values during merging.\n\nUnlike with babel-plugin-tester's options, you can safely mix plugin-specific\nproperties (like [`pluginOptions`][25]) with preset-specific properties (like\n`presetOptions`) in your test objects.\n\n###### `title`\n\nIf provided, this will be used as the title of the test. Otherwise, the title\nwill be determined from test object by default.\n\n###### `only`\n\nUse this to run only the specified test. Useful while developing to help focus\non a small number of tests. Can be used on multiple tests.\n\n> Requires [Jest][70], an equivalent interface (like [Vitest][11]), or a\n> manually-defined `it` object exposing an appropriate [`only`][71] method.\n\n###### `skip`\n\nUse this to skip running the specified test. Useful for when you are working on\na feature that is not yet supported. Can be used on multiple tests.\n\n> Requires [Jest][70], an equivalent interface (like [Vitest][11]), or a\n> manually-defined `it` object exposing an appropriate [`skip`][72] method.\n\n###### `throws`\n\nUse this to assert that a particular test object should cause babel to throw an\nerror during transformation. For example:\n\n```javascript\n{\n  // ...\n  throws: true,\n  throws: 'should have this exact message',\n  throws: /should pass this regex/,\n  throws: SyntaxError, // Should be an instance of this class\n  throws: err => {\n    if (err instanceof SyntaxError && /message/.test(err.message)) {\n      return true; // Test will fail if this function's return value !== true\n    }\n  },\n}\n```\n\n> Be careful using `instanceof` [across realms][73] as it can lead to [strange\n> behavior][74] with [frontend frames/windows][75] and with tools that rely on\n> [Node's VM module][76] (like Jest). Prefer [name checks][77] and utilities\n> like [`isNativeError`][78], [`Array.isArray`][79], and overriding\n> [`Symbol.hasInstance`][80] instead.\n\nIf the value of `throws` is a class, that class must [be a subtype of\n`Error`][81] or the behavior of babel-plugin-tester is undefined.\n\n> For backwards compatibility reasons, `throws` is synonymous with `error`. They\n> can be used interchangeably, with `throws` taking precedence.\n\nNote that this property cannot be present when using the [`output`][87],\n[`outputFixture`][41], [`exec`][88], [`execFixture`][42], or [`snapshot`][54]\nproperties.\n\n###### `setup`\n\nThis function will be run before a particular test is run. It can return a\nfunction which will be treated as a [`teardown`][89] function. It can also\nreturn a promise. If that promise resolves to a function, that will be treated\nas a [`teardown`][89] function.\n\nThis function, if provided, will run _after_ any [`setup`][51] function provided\nas a babel-plugin-tester option. See [here][50] for the complete run order.\n\n###### `teardown`\n\nThis function will be run after a test finishes running. You can define this via\n`teardown` or you can return it from the [`setup`][90] function. This can\nlikewise return a promise if it is asynchronous.\n\nThis function, if provided, will be run _after_ any teardown function returned\nby the [`setup`][90] property, both of which will run _before_ any\n[`teardown`][49] function provided as a babel-plugin-tester option. See\n[here][50] for the complete run order.\n\n###### `formatResult`\n\nThis function is used to format all babel outputs, and defaults to a function\nthat invokes [prettier][52]. If a prettier configuration file is [found][53],\nthen that will be used. Otherwise, prettier will use its own default\nconfiguration.\n\nYou can also [entirely disable formatting][43].\n\nThis will override the [`formatResult`][84] function provided to\nbabel-plugin-tester.\n\n###### `snapshot`\n\nIf you would prefer to take a snapshot of babel's output rather than compare it\nto something you provide manually, specify `snapshot: true`. This will cause\nbabel-plugin-tester to generate a snapshot containing both the [source code][86]\nand babel's output.\n\nDefaults to `false`.\n\nNote that this property cannot appear in the same test object as the\n[`output`][87], [`outputFixture`][41], [`exec`][88], [`execFixture`][42], or\n[`throws`][91] properties.\n\n> Requires [Jest][70], an [appropriate shim][92] or equivalent interface (like\n> [Vitest][11]), or a manually-defined `expect` object exposing an appropriate\n> [`toMatchSnapshot`][93] method.\n\n###### `code`\n\nThe code that you want babel to transform using your plugin or preset. This must\nbe provided unless you are using the [`codeFixture`][40] or [`exec`][88]\nproperties instead. If you do not provide the [`output`][87] or\n[`outputFixture`][41] properties and [`snapshot`][54] is not truthy, then the\nassertion is that this code is unchanged by the transformation.\n\nBefore being transformed by babel, any indentation will be stripped as a\nconvenience for template literals. After being transformed, the resulting output\nwill have whitespace trimmed, line endings [converted][61], and then get\n[formatted by prettier][43].\n\nNote that this property cannot appear in the same test object as the\n[`codeFixture`][40], [`exec`][88], or [`execFixture`][42] properties.\n\n###### `output`\n\nThe value of this property will be compared with [babel's output][86].\n\nBefore being compared to babel's output, this value will have whitespace\ntrimmed, line endings [converted][61], and any indentation stripped as a\nconvenience for template literals.\n\nNote that this property cannot appear in the same test object as the\n[`outputFixture`][41], [`exec`][88], [`execFixture`][42], [`throws`][91], or\n[`snapshot`][54] properties.\n\n###### `exec`\n\nThe provided source will be transformed just like the [`code`][86] property,\nexcept the output will be _evaluated_ in the [same _CJS_ context][65] as the\ntest runner itself, meaning it supports features like a/sync IIFEs, debugging\nbreakpoints (!), and has access to mocked modules, `expect`, `require`,\n`__dirname` and `__filename` (derived from available path info and falling back\non [`filepath`][58]), and other globals/features provided by your test\nframework. However, the context does not support _`import`, top-level await, or\nany other ESM syntax_. Hence, while any file extension can be used (e.g. `.ts`,\n`.vue`, `.jsx`), this file will always be evaluated as CJS.\n\nThe test will always pass unless an exception is thrown (e.g. when an `expect()`\nfails).\n\nUse this to make advanced assertions on the output. For example, you can test\nthat [babel-plugin-proposal-throw-expressions][66] actually throws using the\nfollowing:\n\n```javascript\n{\n  // ...\n  exec: `\n    expect(() => throw new Error('throw expression')).toThrow('throw expression');\n  `;\n}\n```\n\n> Keep in mind that, despite sharing a global context, execution will occur in a\n> [separate realm][67], which means native/intrinsic types will be different.\n> This can lead to unexpectedly failing tests. For example:\n>\n> ```javascript\n> expect(require(`${__dirname}/imported-file.json`)).toStrictEqual({\n>   data: 'imported'\n> });\n> ```\n>\n> This may fail in some test frameworks with the message \"serializes to the same\n> string\". This is because the former object's `Object` prototype comes from a\n> different realm than the second object's `Object` prototype, meaning the two\n> objects are not technically _strictly_ equal. However, something like the\n> following, which creates two objects in the same realm, will pass:\n>\n> ```javascript\n> expect(\n>   Object.fromEntries(\n>     Object.entries(require(`${__dirname}/imported-file.json`))\n>   )\n> ).toStrictEqual({ data: 'imported' });\n> ```\n>\n> Or even:\n>\n> ```javascript\n> expect(JSON.stringify(require(`${__dirname}/imported-file.json`))).toBe(\n>   JSON.stringify({ data: 'imported' })\n> );\n> ```\n\nAfter being transformed by babel but before being evaluated, the babel output\nwill have whitespace trimmed, line endings [converted][61], and then get\n[formatted by prettier][43].\n\nNote that this property cannot appear in the same test object as the\n[`execFixture`][42], [`code`][86], [`codeFixture`][40], [`output`][87],\n[`outputFixture`][41], [`throws`][91], or [`snapshot`][54] properties.\n\n###### `codeFixture`\n\nIf you would rather put your [`code`][86] in a separate file, you can specify a\nfile path here instead. If it is an absolute path, then that's the file that\nwill be loaded. Otherwise, `codeFixture` will be [`path.join`][44]'d with the\n[directory name][45] of [`filepath`][58].\n\nAfter being transformed by babel, the resulting output will have whitespace\ntrimmed, line endings [converted][61], and then get [formatted by prettier][43].\n\nLike [`code`][86], this property cannot appear in the same test object as the\n[`exec`][88] or [`execFixture`][42] properties, nor the [`code`][86] property\n(obviously).\n\n> If you find you are using this property more than a couple of times, consider\n> using [`fixtures`][39] instead.\n\n> For backwards compatibility reasons, `codeFixture` is synonymous with\n> `fixture`. They can be used interchangeably, though care must be taken not to\n> confuse the test object property `fixture` with the babel-plugin-tester option\n> [_`fixtures`_][39], the latter being plural.\n\n###### `outputFixture`\n\nIf you would rather put your [`output`][87] in a separate file, you can specify\na file path here instead. If it is an absolute path, then that's the file that\nwill be loaded. Otherwise, `outputFixture` will be [`path.join`][44]'d with the\n[directory name][45] of [`filepath`][58].\n\nBefore being compared to babel's output, this file's contents will have\nwhitespace trimmed and line endings [converted][61].\n\nLike [`output`][87], this property cannot appear in the same test object as the\n[`exec`][88], [`execFixture`][42], [`throws`][91], or [`snapshot`][54]\nproperties, nor the [`output`][87] property (obviously).\n\n> If you find you are using this property more than a couple of times, consider\n> using [`fixtures`][39] instead.\n\n###### `execFixture`\n\nIf you would rather put your [`exec`][88] in a separate file, you can specify a\nfile path here instead. If it is an absolute path, then that's the file that\nwill be loaded. Otherwise, `execFixture` will be [`path.join`][44]'d with the\n[directory name][45] of [`filepath`][58].\n\nAfter being transformed by babel but before being evaluated, the babel output\nwill have whitespace trimmed, line endings [converted][61], and then get\n[formatted by prettier][43].\n\nLike [`exec`][88], this property cannot appear in the same test object as the\n[`code`][86], [`codeFixture`][40], [`output`][87], [`outputFixture`][41],\n[`throws`][91], or [`snapshot`][54] properties, nor the [`exec`][88] property\n(obviously).\n\n> If you find you are using this property more than a couple of times, consider\n> using [`fixtures`][39] instead.\n\n## Examples\n\n### Simple Example\n\n```javascript\nimport { pluginTester } from 'babel-plugin-tester';\nimport identifierReversePlugin from '../identifier-reverse-plugin';\n\n// NOTE: you can use beforeAll, afterAll, beforeEach, and afterEach as usual,\n// but initial configuration tasks, like loading content from fixture files,\n// will complete *at the point the pluginTester function is called* which means\n// BEFORE beforeAll and other Jest hooks are run.\n\npluginTester({\n  plugin: identifierReversePlugin,\n  snapshot: true,\n  tests: [\n    {\n      code: \"'hello';\"\n      // Snapshot should show that code has not changed.\n    },\n    {\n      snapshot: false,\n      code: 'var hello = \"hi\";',\n      output: 'var olleh = \"hi\";'\n    },\n    `\n      function sayHi(person) {\n        return 'Hello ' + person + '!'\n      }\n      console.log(sayHi('Jenny'))\n    `\n  ]\n});\n```\n\n### Full Example\n\n```javascript\nimport path from 'node:path';\nimport { pluginTester } from 'babel-plugin-tester';\nimport identifierReversePlugin from '../identifier-reverse-plugin';\n\npluginTester({\n  // One (and ONLY ONE) of the two following lines MUST be included.\n  plugin: identifierReversePlugin,\n  //preset: coolNewBabelPreset,\n\n  // Usually unnecessary if it is returned by the plugin. This will default to\n  // 'unknown plugin' if a name cannot otherwise be inferred.\n  pluginName: 'identifier reverse',\n  // Unlike with pluginName, there is no presetName inference. This will default\n  // to 'unknown preset' if a name is not provided.\n  //presetName: 'cool-new-babel-preset',\n\n  // Used to test specific plugin options.\n  pluginOptions: {\n    optionA: true\n  },\n  //presetOptions: {\n  //  optionB: false,\n  //}\n\n  // Defaults to the plugin name.\n  title: 'describe block title',\n\n  // Only useful if you are using fixtures, codeFixture, outputFixture, or\n  // execFixture options. Defaults to the absolute path of the file the\n  // pluginTester function was invoked from, which in this case  is equivalent\n  // to the following line:\n  filepath: __filename,\n\n  // These are the defaults that will be lodash.mergeWith'd with the provided\n  // babelOptions option.\n  babelOptions: {\n    parserOpts: {},\n    generatorOpts: {},\n    babelrc: false,\n    configFile: false\n  },\n\n  // Do not use snapshots across all tests, which is the default anyway. Note\n  // that snapshots are only guaranteed to work with Jest\n  snapshot: false,\n\n  // Defaults to a function that formats with prettier\n  formatResult: customFormatFunction,\n\n  // You can provide tests as an object\n  tests: {\n    // The key is the title. The value is the code that is unchanged (because\n    // snapshot == false across all tests). Test title will be: \"1. does not\n    // change code with no identifiers\"\n    'does not change code with no identifiers': '\"hello\";',\n\n    // Test title will be: \"2. changes this code\"\n    'changes this code': {\n      // Input to the plugin\n      code: 'var hello = \"hi\";',\n      // Expected output\n      output: 'var olleh = \"hi\";'\n    }\n  },\n\n  // Alternatively, you can provide tests as an array\n  tests: [\n    // Should be unchanged by the plugin (because snapshot == false across all\n    // tests). Test title will be: \"1. identifier reverse\"\n    '\"hello\";',\n    {\n      // Test title will be: \"2. identifier reverse\"\n      code: 'var hello = \"hi\";',\n      output: 'var olleh = \"hi\";'\n    },\n    {\n      // Test title will be: \"3. unchanged code\"\n      title: 'unchanged code',\n      // Because this is an absolute path, the filepath option above will not\n      // be used to resolve this path\n      codeFixture: path.join(\n        __dirname,\n        '..',\n        'fixtures',\n        'codeFixture-unchanging.js'\n      )\n      // No output, outputFixture, or snapshot, so the assertion will be that\n      // the plugin does not change this code\n    },\n    {\n      // Because these are not absolute paths, they will be joined with the\n      // directory of the filepath option provided above\n      codeFixture: path.join('..', 'fixtures', 'codeFixture.js'),\n      // Because outputFixture is provided, the assertion will be that the\n      // plugin will change the contents of \"changed.js\" to the contents of\n      // \"changed-output.js\"\n      outputFixture: path.join('..', 'fixtures', 'outputFixture.js')\n    },\n    {\n      // As a convenience, this will have the indentation striped and it will\n      // be trimmed\n      code: `\n        function sayHi(person) {\n          return 'Hello ' + person + '!';\n        }\n      `,\n      // This will take a Jest snapshot, overwriting the default/global\n      // settings (set above). The snapshot will contain both source code and\n      // the transformed output, making the snapshot file easier to understand\n      snapshot: true\n    },\n    {\n      code: 'var hello = \"hi\";',\n      output: 'var olleh = \"hi\";',\n      // This can be used to overwrite pluginOptions (set above)\n      pluginOptions: {\n        optionA: false\n      }\n      // This can be used to overwrite presetOptions (set above)\n      //presetOptions: {\n      //  optionB: true\n      //}\n    },\n    {\n      title: 'unchanged code',\n      code: '\"no change\";',\n      setup() {\n        // Runs before this test\n        return function teardown() {\n          // Runs after this tests\n        };\n        // Can also return a promise\n      },\n      teardown() {\n        // Runs after this test\n        // Can return a promise\n      }\n    },\n    {\n      // This source will be transformed just like the code property, except the\n      // produced code will be evaluated in the same CJS context as the test\n      // runner. This lets us make more advanced assertions on the output.\n      exec: `\n        const hello = \"hi\";\n        // The plugin will reverse ALL identifiers, even globals like \"expect\"!\n        tcepxe(hello)['toBe'](\"hi\");\n      `\n    }\n  ]\n});\n```\n\n### Fixtures Examples\n\nSee [`fixtures`][39] for an example directory layout or check out the use of\nbabel-plugin-tester fixtures in some of these other projects:\n\n<!-- lint disable list-item-style -->\n\n- [babel-plugin-transform-rewrite-imports][94]\n- [babel-plugin-explicit-exports-references][95]\n- [babel-plugin-transform-default-named-imports][96]\n\n<!-- lint enable list-item-style -->\n\n## Appendix\n\n### Testing Framework Compatibility\n\nThis package was originally tested on and built to work with [Jest][7], but it\nis also [tested][97] against [Vitest][11], [Mocha][8], [Jasmine][9], and\n[`node:test`][10]. See below for details.\n\n#### Jest\n\nAll babel-plugin-tester features work with Jest. No further action is necessary\n????\n\n#### Vitest\n\nAll babel-plugin-tester features work with Vitest, though Vitest don't provide\nglobal APIs by default. You can either supply some interoperability code (see\nJasmine or `node:test` below for an example) or run Vitest with the [`--globals`\nCLI option][98].\n\n#### Mocha\n\nMost babel-plugin-tester features work with Mocha, except Mocha does not\nnatively support snapshots.\n\n#### Jasmine\n\nMost babel-plugin-tester features work with Jasmine if you define the\nappropriate globals:\n\n```javascript\nimport { pluginTester } from 'babel-plugin-tester';\n\nglobalThis.it.skip = globalThis.xit;\nglobalThis.it.only = globalThis.fit;\n\npluginTester(...);\n```\n\nHowever, Jasmine does not natively support snapshots.\n\n#### `node:test`\n\nMost babel-plugin-tester features work with `node:test` if you define the\nappropriate globals:\n\n```javascript\nimport { describe, it } from 'node:test';\nimport { pluginTester } from 'babel-plugin-tester';\n\nglobalThis.describe = describe;\nglobalThis.it = it;\n// globalThis.it.skip = ... (weirdly, this is already defined)\nglobalThis.it.only = (...args) => it(args[0], { only: true }, args[1]);\n\npluginTester(...);\n```\n\nHowever, `node:test` does not natively support snapshots.\n\n#### Other Frameworks\n\nOther testing frameworks and test runners should also work so long as they\ndefine standard `describe` and `it` globals with async support, or appropriate\ninteroperability code is used like in the above Jasmine and `node:test`\nexamples.\n\n### Using Babel for Configuration Loading\n\n[`babelOptions.babelrc`][32] and [`babelOptions.configFile`][33] are set to\n`false` by default. This way, you can [manually import (or provide an object\nliteral)][69] the exact configuration you want to apply rather than relying on\nbabel's [somewhat complex configuration loading rules][99]. However, if your\nplugin, preset, or project relies on a complicated external setup to do its\nwork, and you do not mind the [default run order][100], you can leverage\n[babel's automatic configuration loading][101] via the `babelOptions.babelrc`\nand/or `babelOptions.configFile` options.\n\n> Fixtures provided via the [`fixtures`][39] option **do not** need to provide a\n> separate `babelOptions.filename` since it will be set automatically. This\n> section only applies to [test objects][46].\n\nWhen relying on `babelOptions.babelrc`, you must also provide a\n[`babelOptions.filename`][102] for each test object that does not include a\n[`codeFixture`][40] or [`execFixture`][42] property. For example:\n\n```javascript\npluginTester({\n  plugin,\n  tests: [\n    {\n      code: '\"blah\"',\n      // This configuration is set at the test level\n      babelOptions: {\n        babelrc: true,\n        filename: path.join(__dirname, 'some-file.js')\n      }\n    },\n    {\n      code: '\"hi\"',\n      // This configuration is set at the test level\n      babelOptions: {\n        babelrc: true,\n        filename: path.join(__dirname, 'some-other-file.js')\n      }\n    },\n    {\n      // babelOptions.filename will be set to the value of codeFixture for you\n      // unless you set it manually here at the test level\n      codeFixture: path.join(__dirname, 'fixtures', 'my-file.js')\n    },\n    {\n      // babelOptions.filename will be set to the value of execFixture for you\n      // unless you set it manually here at the test level\n      execFixture: path.join(__dirname, 'fixtures', 'my-script.js')\n    }\n  ]\n});\n```\n\nThis file does not actually have to exist either, so you can use whatever value\nyou want for `filename` as long as the `.babelrc` file is [resolved][103]\nproperly. Hence, the above example could be simplified further:\n\n```javascript\npluginTester({\n  plugin,\n  // This configuration is global: it applies to *all* tests by default!\n  babelOptions: {\n    babelrc: true,\n    // The value of filename does not have to point to a file that exists\n    filename: __filename\n  },\n  tests: [\n    '\"blah\"',\n    '\"hi\"',\n    {\n      // babelOptions.filename will be set to the value of codeFixture for you\n      // unless you set it manually here at the test level\n      codeFixture: path.join(__dirname, 'fixtures', 'my-file.js')\n    },\n    {\n      // babelOptions.filename will be set to the value of execFixture for you\n      // unless you set it manually here at the test level\n      execFixture: path.join(__dirname, 'fixtures', 'my-script.js')\n    }\n  ]\n});\n```\n\n### `pluginName` Inference Caveat\n\nInferring [`pluginName`][19] during testing requires invoking [the plugin][16]\n_at least twice_: once outside of babel to check for the plugin's name and then\nagain when run by babel. This is irrelevant to babel-plugin-tester (even if your\nplugin crashes when run outside of babel) and to the overwhelming majority of\nbabel plugins in existence. This only becomes a problem if your plugin is\n_aggressively stateful_, which is against the [babel handbook on plugin\ndesign][104].\n\nFor example, the following plugin which replaces an import specifier using a\nregular expression will exhibit strange behavior due to being invoked twice:\n\n```javascript\n/*  -*-*-  BAD CODE DO NOT USE  -*-*-  */\n\nlet source;\n// vvv When first invoked outside of babel, all passed arguments are mocks vvv\nfunction badNotGoodPlugin({ assertVersion, types: t }) {\n  // ^^^ Which means assertVersion is mocked and t is undefined ^^^\n  assertVersion(7);\n\n  // vvv So don't memoize `t` here (which among other things is poor design) vvv\n  if (!source) {\n    source = (value, original, replacement) => {\n      return t.stringLiteral(value.replace(original, replacement));\n    };\n  }\n\n  return {\n    name: 'bad-bad-not-good',\n    visitor: {\n      ImportDeclaration(path, state) {\n        path.node.source = source(\n          path.node.source.value,\n          state.opts.originalRegExp,\n          state.opts.replacementString\n        );\n      }\n    }\n  };\n}\n\npluginTester({\n  plugin: badNotGoodPlugin,\n  pluginOptions: { originalRegExp: /^y$/, replacementString: 'z' },\n  tests: [{ code: 'import { x } from \"y\";', output: 'import { x } from \"z\";' }]\n});\n\n// Result: error!\n// TypeError: Cannot read properties of undefined (reading 'stringLiteral')\n```\n\nIf you still want to use global state despite the handbook's advice, either\ninitialize global state within your visitor:\n\n```javascript\nlet source;\nfunction okayPlugin({ assertVersion, types: t }) {\n  assertVersion(7);\n\n  return {\n    name: 'okay',\n    visitor: {\n      Program: {\n        enter() {\n          // vvv Initialize global state in a safe place vvv\n          if (!source) {\n            source = (value, original, replacement) => {\n              return t.stringLiteral(value.replace(original, replacement));\n            };\n          }\n        }\n      },\n      ImportDeclaration(path, state) {\n        path.node.source = source(\n          path.node.source.value,\n          state.opts.originalRegExp,\n          state.opts.replacementString\n        );\n      }\n    }\n  };\n}\n\npluginTester({\n  plugin: okayPlugin,\n  pluginOptions: { originalRegExp: /^y$/, replacementString: 'z' },\n  tests: [{ code: 'import { x } from \"y\";', output: 'import { x } from \"z\";' }]\n});\n\n// Result: works!\n```\n\nOr do things the proper way and just use local state instead:\n\n```javascript\nfunction betterPlugin({ assertVersion, types: t }) {\n  assertVersion(7);\n\n  // vvv Use local state instead so t is memoized properly vvv\n  const source = (value, original, replacement) => {\n    return t.stringLiteral(value.replace(original, replacement));\n  };\n\n  return {\n    name: 'better',\n    visitor: {\n      ImportDeclaration(path, state) {\n        path.node.source = source(\n          path.node.source.value,\n          state.opts.originalRegExp,\n          state.opts.replacementString\n        );\n      }\n    }\n  };\n}\n\npluginTester({\n  plugin: betterPlugin,\n  pluginOptions: { originalRegExp: /^y$/, replacementString: 'z' },\n  tests: [{ code: 'import { x } from \"y\";', output: 'import { x } from \"z\";' }]\n});\n\n// Result: works!\n```\n\n### Custom Snapshot Serialization\n\nIf you are using Jest and snapshots, then the snapshot output could have a bunch\nof bothersome `\\\"` to escape quotes. This is because, when Jest serializes a\nstring, it will wrap everything in double quotes. This is not a huge deal, but\nit makes the snapshots harder to read, so we automatically add a snapshot\nserializer for you to remove those. Note that this serializer is added globally\nand thus will affect _all_ snapshots taken in the test file, even those outside\nof babel-plugin-tester.\n\nIf you would like to disable this feature, then use the \"pure\" import (also\ndisables formatting of babel output with prettier):\n\n```diff\n- import { pluginTester } from 'babel-plugin-tester'\n+ import { pluginTester } from 'babel-plugin-tester/pure'\n```\n\n> It seems recent versions of Jest already ship with easier-to-read snapshots,\n> making this serializer redundant. Therefore, the built-in custom serializer\n> will likely be removed entirely in a future version of babel-plugin-tester.\n\n### Formatting Output with Prettier\n\nBy default, a [formatter][84] is used which formats all babel output with\n[prettier][52]. It will [look for][53] a prettier configuration file relative to\n[the file that's being tested][58] or the [current working directory][105]. If\nit cannot find one, then it uses the default configuration for prettier.\n\nThis makes your snapshots easier to read and your expectations easier to write,\nbut if you would like to disable this feature, you can either use the [`pure`\nimport][106] to disable automatic formatting (along with snapshot serialization)\nor you can override the `formatResult` option manually like so:\n\n```javascript\npluginTester({\n  // ...\n  formatResult: (r) => r\n  // ...\n});\n```\n\n### Built-In Debugging Support\n\nThis package uses [debug][107] under the hood. To view all possible debugging\noutput, including the results of all babel transformations, set the\n`DEBUG='babel-plugin-tester,babel-plugin-tester:*'` [environment variable][108]\nwhen running your tests.\n\nFor example:\n\n```bash\n# Those using Windows (but not WSL) have to set environment variable differently\nNODE_ENV='test' DEBUG='babel-plugin-tester,babel-plugin-tester:*' DEBUG_DEPTH='1' npx jest\n```\n\n#### Available Debug Namespaces\n\nThe following [debug namespaces][109] are available for activation:\n\n<!-- lint disable list-item-style -->\n\n- `babel-plugin-tester:index`\n- `babel-plugin-tester:formatter`\n- `babel-plugin-tester:serializer`\n- `babel-plugin-tester:tester`\n  - `babel-plugin-tester:tester:resolve-base`\n  - `babel-plugin-tester:tester:resolve-env`\n  - `babel-plugin-tester:tester:normalize`\n    - `babel-plugin-tester:tester:normalize:create-desc`\n    - `babel-plugin-tester:tester:normalize:create-fix`\n    - `babel-plugin-tester:tester:normalize:create-obj`\n  - `babel-plugin-tester:tester:register`\n  - `babel-plugin-tester:tester:wrapper`\n  - `babel-plugin-tester:tester:test`\n  - `babel-plugin-tester:tester:validate`\n  - `babel-plugin-tester:tester:read-opts`\n  - `babel-plugin-tester:tester:read-code`\n  - `babel-plugin-tester:tester:eol`\n  - `babel-plugin-tester:tester:finalize`\n\n<!-- lint enable list-item-style -->\n\nThe `babel-plugin-tester:tester` namespace and its sub-namespaces each have an\nadditional `verbose` sub-namespace that can be activated or deactivated at will,\ne.g. `babel-plugin-tester:tester:verbose` and\n`babel-plugin-tester:tester:wrapper:verbose`.\n\nFor example, to view all debug output except verbose output:\n\n```bash\n# Those using Windows (but not WSL) have to set environment variable differently\nNODE_ENV='test' DEBUG='babel-plugin-tester,babel-plugin-tester:*,-*:verbose' npx jest\n```\n\n### `TEST_ONLY`/`TEST_NUM_ONLY` and `TEST_SKIP`/`TEST_NUM_SKIP` Environment Variables\n\nThe optional `TEST_ONLY` and `TEST_SKIP` environment variables are recognized by\nbabel-plugin-tester, allowing you to control which tests are run in an adhoc\nfashion without having to modify your test configuration code.\n\nThe values of these variables will be transformed into regular expressions via\n`RegExp(value, 'u')` and matched against each test/fixture title (not including\n[automatically assigned numbers][57] prefixed to titles). Tests with titles that\nmatch `TEST_ONLY` will be run while all others are skipped. On the other hand,\ntests with titles that match `TEST_SKIP` will be skipped while others are run.\n\nFor example, to skip the test titled \"this is the name of a failing unit test\":\n\n```bash\nTEST_SKIP='name of a failing' npx jest\n```\n\nGiven both `TEST_ONLY` and `TEST_SKIP`, tests matched by `TEST_SKIP` will\n_always_ be skipped, even if they are also matched by `TEST_ONLY`. These\nenvironment variables also override both the fixture-specific\n[`skip`][110]/[`only`][111] and test object [`skip`][112]/[`only`][113]\nproperties _if they conflict_.\n\nIn addition to `TEST_ONLY` and `TEST_SKIP`, you can also target tests\nspecifically by their [automatically assigned number][57] using `TEST_NUM_ONLY`\nand `TEST_NUM_SKIP`. These environment variables function identically to their\ncounterparts except they accept one or more numbers separated by commas (spaces\naround commas are ignored) instead of regular expressions. Inclusive ranges\n(e.g. `4-9`) are also supported.\n\nFor example, the following will skip tests numbered 1, 3, 5, and 6-10\n(inclusive):\n\n```bash\n# Spaces around commas don't matter and sequential/final commas are ignored\nTEST_NUM_SKIP='5,1, 6-10,,  3,' npx jest\n```\n\n`TEST_NUM_ONLY` and `TEST_NUM_SKIP` are meaningless if [`titleNumbering`][57] is\n`false` or your tests are otherwise unnumbered, and may match multiple tests if\n[automatic numbering is restarted][114].\n\n### `setup` and `teardown` Run Order\n\nFor each test object and fixture test, setup and teardown functions are run in\nthe following order:\n\n1. [Base `setup`][51].\n2. [Test object `setup`][90] / [fixture `setup`][83].\n3. _Test object / fixture test is run_.\n4. Any function returned by test object `setup` / fixture `setup`.\n5. [Test object `teardown`][89] / [fixture `teardown`][82].\n6. Any function returned by base `setup`.\n7. [Base `teardown`][49].\n\n## Inspiration\n\nThe API was inspired by:\n\n- ESLint's [RuleTester][ruletester].\n- [@thejameskyle][115]'s [tweet][jamestweet].\n- Babel's own\n  [`@babel/helper-plugin-test-runner`][@babel/helper-plugin-test-runner].\n\n## Issues\n\n_Looking to contribute? Look for the [Good First Issue][good-first-issue]\nlabel._\n\n### ???? Bugs\n\nPlease file an issue for bugs, missing documentation, or unexpected behavior.\n\n[**See Bugs**][bugs]\n\n### ???? Feature Requests\n\nPlease file an issue to suggest new features. Vote on feature requests by adding\na ????. This helps maintainers prioritize what to work on.\n\n[**See Feature Requests**][requests]\n\n## Contributors ✨\n\nThanks goes to these people ([emoji key][emojis]):\n\n<!-- remark-ignore-start -->\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://kentcdodds.com\"><img src=\"https://avatars.githubusercontent.com/u/1500684?v=3?s=100\" width=\"100px;\" alt=\"Kent C. Dodds\"/><br /><sub><b>Kent C. Dodds</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=kentcdodds\" title=\"Code\">????</a> <a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=kentcdodds\" title=\"Documentation\">????</a> <a href=\"#infra-kentcdodds\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">????</a> <a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=kentcdodds\" title=\"Tests\">⚠️</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://thejameskyle.com/\"><img src=\"https://avatars3.githubusercontent.com/u/952783?v=3?s=100\" width=\"100px;\" alt=\"james kyle\"/><br /><sub><b>james kyle</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=jamiebuilds\" title=\"Code\">????</a> <a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=jamiebuilds\" title=\"Documentation\">????</a> <a href=\"https://github.com/babel-utils/babel-plugin-tester/pulls?q=is%3Apr+reviewed-by%3Ajamiebuilds\" title=\"Reviewed Pull Requests\">????</a> <a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=jamiebuilds\" title=\"Tests\">⚠️</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/bbohen\"><img src=\"https://avatars1.githubusercontent.com/u/1894628?v=3?s=100\" width=\"100px;\" alt=\"Brad Bohen\"/><br /><sub><b>Brad Bohen</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/issues?q=author%3Abbohen\" title=\"Bug reports\">????</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://www.krwelch.com\"><img src=\"https://avatars0.githubusercontent.com/u/1295580?v=3?s=100\" width=\"100px;\" alt=\"Kyle Welch\"/><br /><sub><b>Kyle Welch</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=kwelch\" title=\"Code\">????</a> <a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=kwelch\" title=\"Documentation\">????</a> <a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=kwelch\" title=\"Tests\">⚠️</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/kontrollanten\"><img src=\"https://avatars3.githubusercontent.com/u/6680299?v=4?s=100\" width=\"100px;\" alt=\"kontrollanten\"/><br /><sub><b>kontrollanten</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=kontrollanten\" title=\"Code\">????</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/rubennorte\"><img src=\"https://avatars3.githubusercontent.com/u/117921?v=4?s=100\" width=\"100px;\" alt=\"Rubén Norte\"/><br /><sub><b>Rubén Norte</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=rubennorte\" title=\"Code\">????</a> <a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=rubennorte\" title=\"Tests\">⚠️</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://andreneves.work\"><img src=\"https://avatars2.githubusercontent.com/u/3869532?v=4?s=100\" width=\"100px;\" alt=\"André Neves\"/><br /><sub><b>André Neves</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=andrefgneves\" title=\"Code\">????</a> <a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=andrefgneves\" title=\"Tests\">⚠️</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/merceyz\"><img src=\"https://avatars0.githubusercontent.com/u/3842800?v=4?s=100\" width=\"100px;\" alt=\"Kristoffer K.\"/><br /><sub><b>Kristoffer K.</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=merceyz\" title=\"Code\">????</a> <a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=merceyz\" title=\"Tests\">⚠️</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/lifeart\"><img src=\"https://avatars2.githubusercontent.com/u/1360552?v=4?s=100\" width=\"100px;\" alt=\"Alex Kanunnikov\"/><br /><sub><b>Alex Kanunnikov</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=lifeart\" title=\"Code\">????</a> <a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=lifeart\" title=\"Tests\">⚠️</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://solverfox.dev\"><img src=\"https://avatars3.githubusercontent.com/u/12292047?v=4?s=100\" width=\"100px;\" alt=\"Sebastian Silbermann\"/><br /><sub><b>Sebastian Silbermann</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=eps1lon\" title=\"Code\">????</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://ololos.space/\"><img src=\"https://avatars1.githubusercontent.com/u/3940079?v=4?s=100\" width=\"100px;\" alt=\"Andrey Los\"/><br /><sub><b>Andrey Los</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/issues?q=author%3ARIP21\" title=\"Bug reports\">????</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/charlesbodman\"><img src=\"https://avatars2.githubusercontent.com/u/231894?v=4?s=100\" width=\"100px;\" alt=\"Charles Bodman\"/><br /><sub><b>Charles Bodman</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=charlesbodman\" title=\"Documentation\">????</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://michaeldeboey.be\"><img src=\"https://avatars3.githubusercontent.com/u/6643991?v=4?s=100\" width=\"100px;\" alt=\"Michaël De Boey\"/><br /><sub><b>Michaël De Boey</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=MichaelDeBoey\" title=\"Code\">????</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/yuyaryshev\"><img src=\"https://avatars0.githubusercontent.com/u/18558421?v=4?s=100\" width=\"100px;\" alt=\"yuyaryshev\"/><br /><sub><b>yuyaryshev</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=yuyaryshev\" title=\"Code\">????</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/CzBuCHi\"><img src=\"https://avatars0.githubusercontent.com/u/12444673?v=4?s=100\" width=\"100px;\" alt=\"Marek Buchar\"/><br /><sub><b>Marek Buchar</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=CzBuCHi\" title=\"Code\">????</a> <a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=CzBuCHi\" title=\"Tests\">⚠️</a> <a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=CzBuCHi\" title=\"Documentation\">????</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://twitter.com/_jayphelps\"><img src=\"https://avatars1.githubusercontent.com/u/762949?v=4?s=100\" width=\"100px;\" alt=\"Jay Phelps\"/><br /><sub><b>Jay Phelps</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/pulls?q=is%3Apr+reviewed-by%3Ajayphelps\" title=\"Reviewed Pull Requests\">????</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://www.mathiassoeholm.com\"><img src=\"https://avatars0.githubusercontent.com/u/1747242?v=4?s=100\" width=\"100px;\" alt=\"Mathias\"/><br /><sub><b>Mathias</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=mathiassoeholm\" title=\"Documentation\">????</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://go/moon\"><img src=\"https://avatars.githubusercontent.com/u/40330875?v=4?s=100\" width=\"100px;\" alt=\"joe moon\"/><br /><sub><b>joe moon</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=moon-stripe\" title=\"Code\">????</a> <a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=moon-stripe\" title=\"Tests\">⚠️</a></td>\n      <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=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=Xunnamius\" title=\"Code\">????</a> <a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=Xunnamius\" title=\"Tests\">⚠️</a> <a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=Xunnamius\" title=\"Documentation\">????</a> <a href=\"#infra-Xunnamius\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">????</a> <a href=\"https://github.com/babel-utils/babel-plugin-tester/pulls?q=is%3Apr+reviewed-by%3AXunnamius\" title=\"Reviewed Pull Requests\">????</a> <a href=\"#maintenance-Xunnamius\" title=\"Maintenance\">????</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://www.linkedin.com/in/layershifter/\"><img src=\"https://avatars.githubusercontent.com/u/14183168?v=4?s=100\" width=\"100px;\" alt=\"Oleksandr Fediashov\"/><br /><sub><b>Oleksandr Fediashov</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/issues?q=author%3Alayershifter\" title=\"Bug reports\">????</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/Andarist\"><img src=\"https://avatars.githubusercontent.com/u/9800850?v=4?s=100\" width=\"100px;\" alt=\"Mateusz Burzyński\"/><br /><sub><b>Mateusz Burzyński</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=Andarist\" title=\"Code\">????</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/hulkish\"><img src=\"https://avatars.githubusercontent.com/u/139332?v=4?s=100\" width=\"100px;\" alt=\"Steven Hargrove\"/><br /><sub><b>Steven Hargrove</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=hulkish\" title=\"Code\">????</a> <a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=hulkish\" title=\"Documentation\">????</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/alexrhogue\"><img src=\"https://avatars.githubusercontent.com/u/896170?v=4?s=100\" width=\"100px;\" alt=\"Alex R Hogue\"/><br /><sub><b>Alex R Hogue</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=alexrhogue\" title=\"Code\">????</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/infctr\"><img src=\"https://avatars.githubusercontent.com/u/15550153?v=4?s=100\" width=\"100px;\" alt=\"Arthur Zahorski\"/><br /><sub><b>Arthur Zahorski</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=infctr\" title=\"Code\">????</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://egoist.dev/\"><img src=\"https://avatars.githubusercontent.com/u/8784712?v=4?s=100\" width=\"100px;\" alt=\"EGOIST\"/><br /><sub><b>EGOIST</b></sub></a><br /><a href=\"#infra-egoist\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">????</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://ifiokjr.com/\"><img src=\"https://avatars.githubusercontent.com/u/1160934?v=4?s=100\" width=\"100px;\" alt=\"Ifiok Jr.\"/><br /><sub><b>Ifiok Jr.</b></sub></a><br /><a href=\"#platform-ifiokjr\" title=\"Packaging/porting to new platform\">????</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://jan.buschtoens.me/\"><img src=\"https://avatars.githubusercontent.com/u/834636?v=4?s=100\" width=\"100px;\" alt=\"Jan Buschtöns\"/><br /><sub><b>Jan Buschtöns</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=buschtoens\" title=\"Code\">????</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/malbernaz\"><img src=\"https://avatars.githubusercontent.com/u/10574149?v=4?s=100\" width=\"100px;\" alt=\"Miguel Albernaz\"/><br /><sub><b>Miguel Albernaz</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=malbernaz\" title=\"Code\">????</a> <a href=\"#infra-malbernaz\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">????</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/peterlebrun\"><img src=\"https://avatars.githubusercontent.com/u/1267171?v=4?s=100\" width=\"100px;\" alt=\"peterlebrun\"/><br /><sub><b>peterlebrun</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/commits?author=peterlebrun\" title=\"Documentation\">????</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/SimenB\"><img src=\"https://avatars.githubusercontent.com/u/1404810?v=4?s=100\" width=\"100px;\" alt=\"Simen Bekkhus\"/><br /><sub><b>Simen Bekkhus</b></sub></a><br /><a href=\"https://github.com/babel-utils/babel-plugin-tester/issues?q=author%3ASimenB\" title=\"Bug reports\">????</a></td>\n    </tr>\n  </tbody>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n<!-- remark-ignore-end -->\n\nThis project follows the [all-contributors][all-contributors] specification.\nContributions of any kind welcome!\n\n## License\n\nMIT\n\n[@babel/helper-plugin-test-runner]:\n  https://github.com/babel/babel/tree/master/packages/babel-helper-plugin-test-runner\n[all-contributors]: https://github.com/all-contributors/all-contributors\n[bugs]:\n  https://github.com/babel-utils/babel-plugin-tester/issues?q=is%3Aissue+is%3Aopen+label%3A%22bug%22\n[coc]:\n  https://github.com/babel-utils/babel-plugin-tester/blob/master/.github/CODE_OF_CONDUCT.md\n[coc-badge]:\n  https://img.shields.io/badge/code%20of-conduct-ff69b4.svg?style=flat-square\n[coverage]: https://codecov.io/github/babel-utils/babel-plugin-tester\n[coverage-badge]:\n  https://img.shields.io/codecov/c/github/babel-utils/babel-plugin-tester.svg?style=flat-square\n[downloads-badge]:\n  https://img.shields.io/npm/dm/babel-plugin-tester.svg?style=flat-square\n[emojis]: https://github.com/all-contributors/all-contributors#emoji-key\n[good-first-issue]:\n  https://github.com/babel-utils/babel-plugin-tester/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22\n[jamestweet]: https://twitter.com/thejameskyle/status/864359438819262465\n[license]:\n  https://github.com/babel-utils/babel-plugin-tester/blob/master/LICENSE\n[license-badge]:\n  https://img.shields.io/npm/l/babel-plugin-tester.svg?style=flat-square\n[lodash.mergewith]: https://lodash.com/docs/4.17.4#mergeWith\n[node]: https://nodejs.org\n[npm]: https://www.npmjs.com\n[npmtrends]: https://www.npmtrends.com/babel-plugin-tester\n[package]: https://www.npmjs.com/package/babel-plugin-tester\n[prs]: http://makeapullrequest.com\n[prs-badge]:\n  https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square\n[requests]:\n  https://github.com/babel-utils/babel-plugin-tester/issues?q=is%3Aissue+is%3Aopen+label%3A%22enhancement%22\n[ruletester]:\n  http://eslint.org/docs/developer-guide/working-with-rules#rule-unit-tests\n[version-badge]:\n  https://img.shields.io/npm/v/babel-plugin-tester.svg?style=flat-square\n[1]: https://github.com/babel-utils/babel-plugin-tester/releases/tag/v11.0.0\n[2]: https://github.com/babel-utils/babel-plugin-tester/issues/139\n[3]: https://github.com/babel-utils/babel-plugin-tester/issues/new\n[4]: https://www.npmjs.com/package/babel-plugin-tester?activeTab=versions\n[5]: https://babeljs.io/docs/en/plugins\n[6]: https://babeljs.io/docs/en/presets\n[7]: https://jestjs.io\n[8]: https://mochajs.org\n[9]: https://jasmine.github.io\n[10]: https://nodejs.org/api/test.html#test-runner\n[11]: https://vitest.dev\n[12]: #testing-framework-compatibility\n[13]: https://basarat.gitbook.io/typescript/main-1/defaultisbad\n[14]: https://jestjs.io/docs/setup-teardown#one-time-setup\n[15]: #preset\n[16]: #plugin\n[17]: #presetname\n[18]: #presetoptions\n[19]: #pluginname\n[20]: #pluginoptions\n[21]: https://jestjs.io/docs/api#describename-fn\n[22]: https://jestjs.io/docs/api#testname-fn-timeout\n[23]:\n  https://github.com/DefinitelyTyped/DefinitelyTyped/blob/2b229cce80b334f673f1b26895007e9eca786366/types/babel-core/index.d.ts#L25\n[24]: #pluginname-inference-caveat\n[25]: #pluginoptions-2\n[26]: #pluginoptions-1\n[27]: #presetoptions-2\n[28]: #presetoptions-1\n[29]:\n  https://github.com/babel-utils/babel-plugin-tester/blob/1b413417de0f8f07764ee31e6131cee3e16f1265/src/plugin-tester.ts#L24-L31\n[30]: #babeloptions-2\n[31]: #babeloptions-1\n[32]: https://babeljs.io/docs/en/options#babelrc\n[33]: https://babeljs.io/docs/en/options#configfile\n[34]: #using-babel-for-configuration-loading\n[35]: https://babeljs.io/docs/en/configuration\n[36]: https://babeljs.io/docs/en/options#plugins\n[37]: https://babeljs.io/docs/en/presets#preset-ordering\n[38]: #tests\n[39]: #fixtures\n[40]: #codefixture\n[41]: #outputfixture\n[42]: #execfixture\n[43]: #formatting-output-with-prettier\n[44]: https://nodejs.org/api/path.html#pathjoinpaths\n[45]: https://nodejs.org/api/path.html#pathdirnamepath\n[46]: #test-objects\n[47]: #invoke\n[48]: https://github.com/babel/babel/issues/8921\n[49]: #teardown\n[50]: #setup-and-teardown-run-order\n[51]: #setup\n[52]: https://prettier.io\n[53]: https://prettier.io/docs/en/configuration.html\n[54]: #snapshot-1\n[55]: #fixtureoutputname-1\n[56]: #fixtureoutputext-1\n[57]: #titlenumbering\n[58]: #filepath\n[59]: https://github.com/nodejs/node/issues/35889\n[60]: #outputjs\n[61]: #endofline\n[62]: #execjs\n[63]: #codejs\n[64]: #throws\n[65]: https://nodejs.org/api/vm.html#vmruninthiscontextcode-options\n[66]: https://babeljs.io/docs/en/babel-plugin-proposal-throw-expressions\n[67]: https://weizman.github.io/page-what-is-a-realm-in-js\n[68]: https://nodejs.org/api/modules.html#moduleexports\n[69]: #babeloptions\n[70]: https://jestjs.io/docs/snapshot-testing\n[71]: https://jestjs.io/docs/api#testonlyname-fn-timeout\n[72]: https://jestjs.io/docs/api#testskipname-fn\n[73]:\n  https://github.com/nodejs/node/blob/a03529d82858ed225f40837f14db71851ad5d885/lib/internal/util.js#L97-L99\n[74]: https://github.com/facebook/jest/issues/2549\n[75]:\n  https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-instanceof-array.md\n[76]: https://nodejs.org/api/vm.html#vm-executing-javascript\n[77]:\n  https://github.com/sindresorhus/eslint-plugin-unicorn/issues/723#issuecomment-627001966\n[78]: https://nodejs.org/api/util.html#utiltypesisnativeerrorvalue\n[79]:\n  https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray\n[80]:\n  https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/hasInstance\n[81]: https://stackoverflow.com/a/32750746/1367414\n[82]: #teardown-1\n[83]: #setup-1\n[84]: #formatresult\n[85]: #full-example\n[86]: #code\n[87]: #output\n[88]: #exec\n[89]: #teardown-2\n[90]: #setup-2\n[91]: #throws-1\n[92]: https://www.npmjs.com/package/jest-snapshot\n[93]: https://jestjs.io/docs/expect#tomatchsnapshotpropertymatchers-hint\n[94]:\n  https://github.com/Xunnamius/babel-plugin-transform-rewrite-imports/blob/main/test/index.test.ts\n[95]:\n  https://github.com/Xunnamius/babel-plugin-explicit-exports-references/blob/main/test/index.test.ts\n[96]:\n  https://github.com/Xunnamius/babel-plugin-transform-default-named-imports/blob/main/test/index.test.ts\n[97]: ./test/integration/integration-node-smoke.test.ts\n[98]: https://vitest.dev/config#globals\n[99]: https://babeljs.io/docs/en/options#config-loading-options\n[100]: #custom-plugin-and-preset-run-order\n[101]: https://babeljs.io/docs/en/config-files\n[102]: https://babeljs.io/docs/en/options#filename\n[103]: https://babeljs.io/docs/en/config-files#file-relative-configuration\n[104]:\n  https://github.com/jamiebuilds/babel-handbook/blob/c6828415127f27fedcc51299e98eaf47b3e26b5f/translations/en/plugin-handbook.md#state\n[105]: https://nodejs.org/api/process.html#processcwd\n[106]: #custom-snapshot-serialization\n[107]: https://npm.im/debug\n[108]: https://www.npmjs.com/package/debug#environment-variables\n[109]: https://www.npmjs.com/package/debug#namespace-colors\n[110]: #skip\n[111]: #only\n[112]: #skip-1\n[113]: #only-1\n[114]: #restarttitlenumbering\n[115]: https://github.com/jamiebuilds\n","_attachments":{},"homepage":"https://github.com/babel-utils/babel-plugin-tester#readme","bugs":{"url":"https://github.com/babel-utils/babel-plugin-tester/issues"},"license":"MIT"}