{"_id":"formatly","_rev":"25-e2bb6ee62919bfd36c144a726bedde1b","name":"formatly","dist-tags":{"latest":"0.11.4"},"versions":{"0.1.0":{"name":"formatly","version":"0.1.0","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"license":"MIT","_id":"formatly@0.1.0","maintainers":[{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"}],"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"bin":{"formatly":"bin/index.mjs"},"dist":{"shasum":"87c576064f7749a6b2cb33ff726f194cf54f1a38","tarball":"https://registry.npmjs.org/formatly/-/formatly-0.1.0.tgz","fileCount":19,"integrity":"sha512-i99u7zPm2OempXMXkTKm42fxsOPd4faACagIA5EVhEaXogR9cfMYNcQwOGPDn2fSYKxAKCUZs0TfupvF5PTdOw==","signatures":[{"sig":"MEYCIQDgj5Iarwe7dK1jabVyVl3kbbEuCeznXsyIDp+oQglV0wIhAJuWU4Rs1+pFmVC9ybwooi/B8uhqjHozhRf7/g6G8+/p","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21578},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.3.0"},"gitHead":"766ed61b5ca4ff143603b1706d989d9d99fc9943","scripts":{"tsc":"tsc","lint":"eslint . --max-warnings 0","test":"vitest","build":"tsup","format":"prettier .","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","prepare":"husky","lint:knip":"knip","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\""},"_npmUser":{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"},"repository":{"url":"git+https://github.com/JoshuaKGoldberg/formatly.git","type":"git"},"_npmVersion":"10.8.2","description":"Formats your code with whatever formatter your project is already using. 🧼","directories":{},"lint-staged":{"*":"prettier --ignore-unknown --write"},"_nodeVersion":"20.18.0","dependencies":{"execa":"^9.5.2","read-package-up":"^11.0.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"knip":"5.41.1","tsup":"8.3.5","husky":"9.1.7","cspell":"8.17.1","eslint":"9.17.0","vitest":"2.1.8","prettier":"3.4.2","@eslint/js":"9.17.0","release-it":"17.10.0","typescript":"5.7.2","@types/node":"22.10.2","lint-staged":"15.2.11","markdownlint":"0.37.2","eslint-plugin-n":"17.15.1","markdownlint-cli":"0.43.0","console-fail-test":"0.5.0","eslint-plugin-yml":"1.16.0","typescript-eslint":"8.18.1","prettier-plugin-sh":"0.14.0","sentences-per-line":"0.3.0","@vitest/coverage-v8":"2.1.8","eslint-plugin-jsdoc":"50.6.1","eslint-plugin-jsonc":"2.18.2","eslint-plugin-regexp":"2.7.0","@vitest/eslint-plugin":"1.1.20","prettier-plugin-curly":"0.3.1","eslint-plugin-markdown":"5.1.0","eslint-plugin-package-json":"0.19.0","eslint-plugin-perfectionist":"4.4.0","prettier-plugin-packagejson":"2.5.6","@types/eslint-plugin-markdown":"2.0.2","@release-it/conventional-changelog":"9.0.3","@eslint-community/eslint-plugin-eslint-comments":"4.4.1"},"_npmOperationalInternal":{"tmp":"tmp/formatly_0.1.0_1736359572221_0.8003550471680565","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"formatly","version":"0.2.0","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"license":"MIT","_id":"formatly@0.2.0","maintainers":[{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"}],"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"bin":{"formatly":"bin/index.mjs"},"dist":{"shasum":"6b87ecdf19588dd104bb0731a146899549d1b0c2","tarball":"https://registry.npmjs.org/formatly/-/formatly-0.2.0.tgz","fileCount":14,"integrity":"sha512-RRrbBY3wM5b6zFLnB3ZrLe3YMxtsciqgW64anMjSn6Gu+LMNReEXwAzhxl+zXTmqk+nrmwoyhQNXW0uQ3PIb7g==","signatures":[{"sig":"MEQCIBctxdM6jFFbCmqS3egTOhGFGRpEAh0uqIEkNnzNTZAaAiAXj/qFwf4+zInxs0jbGJX+sNsjBYg0fJnwn5rCVHNoMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18254},"main":"lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.3.0"},"gitHead":"d96f6a1e8b1e3150da5a73ae8c590bd84de27c4e","scripts":{"tsc":"tsc","lint":"eslint . --max-warnings 0","test":"vitest","build":"tsup","format":"prettier .","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","prepare":"husky","lint:knip":"knip","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\""},"_npmUser":{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"},"repository":{"url":"git+https://github.com/JoshuaKGoldberg/formatly.git","type":"git"},"_npmVersion":"10.8.2","description":"Formats your code with whatever formatter your project is already using. 🧼","directories":{},"lint-staged":{"*":"prettier --ignore-unknown --write"},"_nodeVersion":"20.19.0","dependencies":{"read-package-up":"^11.0.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.4.0","devDependencies":{"knip":"5.46.0","tsup":"8.4.0","husky":"9.1.7","cspell":"8.17.5","eslint":"9.22.0","vitest":"3.0.9","prettier":"3.5.3","@eslint/js":"9.22.0","release-it":"18.1.2","typescript":"5.8.2","@types/node":"22.13.10","lint-staged":"15.5.0","markdownlint":"0.37.4","eslint-plugin-n":"17.16.2","markdownlint-cli":"0.44.0","console-fail-test":"0.5.0","eslint-plugin-yml":"1.17.0","typescript-eslint":"8.28.0","prettier-plugin-sh":"0.15.0","sentences-per-line":"0.3.0","@vitest/coverage-v8":"3.0.9","eslint-plugin-jsdoc":"50.6.8","eslint-plugin-jsonc":"2.19.1","eslint-plugin-regexp":"2.7.0","@vitest/eslint-plugin":"1.1.38","create-typescript-app":"2.19.0","prettier-plugin-curly":"0.3.1","eslint-plugin-markdown":"5.1.0","eslint-plugin-package-json":"0.29.0","eslint-plugin-perfectionist":"4.10.1","prettier-plugin-packagejson":"2.5.10","@types/eslint-plugin-markdown":"2.0.2","@release-it/conventional-changelog":"10.0.0","@eslint-community/eslint-plugin-eslint-comments":"4.4.1"},"_npmOperationalInternal":{"tmp":"tmp/formatly_0.2.0_1743444228636_0.5037788135225061","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"formatly","version":"0.2.1","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"license":"MIT","_id":"formatly@0.2.1","maintainers":[{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"}],"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"bin":{"formatly":"bin/index.mjs"},"dist":{"shasum":"942e178e7d01089a25e3bac09419beee813dbd6e","tarball":"https://registry.npmjs.org/formatly/-/formatly-0.2.1.tgz","fileCount":14,"integrity":"sha512-cnAZToHcZXkd7aod4vh0C5WCivx1Am0YLjX4xD55ueZbMTEt5ut2exNCPilo/aIemYaJUK52zkWZEq8sceCW0g==","signatures":[{"sig":"MEYCIQDevLS5IKKQt+HpPFQPUMsv0xW709wyKIfAyOsjk/YJ9QIhAKcPVCOZDQk9edsAFCN5e6SiQJ+h7KXn4Ca+2ri+gHmN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18232},"main":"lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.3.0"},"gitHead":"7b8cddbadc78b9fb1c6c0b353bac6679f95c1b98","scripts":{"tsc":"tsc","lint":"eslint . --max-warnings 0","test":"vitest","build":"tsup","format":"prettier .","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","prepare":"husky","lint:knip":"knip","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\""},"_npmUser":{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"},"repository":{"url":"git+https://github.com/JoshuaKGoldberg/formatly.git","type":"git"},"_npmVersion":"10.8.2","description":"Formats your code with whatever formatter your project is already using. 🧼","directories":{},"lint-staged":{"*":"prettier --ignore-unknown --write"},"_nodeVersion":"20.19.0","dependencies":{"fd-package-json":"^1.2.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.7.0","devDependencies":{"knip":"5.47.0","tsup":"8.4.0","husky":"9.1.7","cspell":"8.18.0","eslint":"9.24.0","vitest":"3.1.1","prettier":"3.5.3","@eslint/js":"9.24.0","release-it":"18.1.2","typescript":"5.8.2","@types/node":"22.14.0","lint-staged":"15.5.0","markdownlint":"0.37.4","eslint-plugin-n":"17.16.2","markdownlint-cli":"0.44.0","console-fail-test":"0.5.0","eslint-plugin-yml":"1.17.0","typescript-eslint":"8.29.0","prettier-plugin-sh":"0.16.0","sentences-per-line":"0.3.0","@vitest/coverage-v8":"3.1.1","eslint-plugin-jsdoc":"50.6.8","eslint-plugin-jsonc":"2.20.0","eslint-plugin-regexp":"2.7.0","@vitest/eslint-plugin":"1.1.38","create-typescript-app":"2.33.0","prettier-plugin-curly":"0.3.1","eslint-plugin-markdown":"5.1.0","eslint-plugin-package-json":"0.29.0","eslint-plugin-perfectionist":"4.11.0","prettier-plugin-packagejson":"2.5.10","@types/eslint-plugin-markdown":"2.0.2","@release-it/conventional-changelog":"10.0.0","@eslint-community/eslint-plugin-eslint-comments":"4.4.1"},"_npmOperationalInternal":{"tmp":"tmp/formatly_0.2.1_1744632529416_0.09040770677028442","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"formatly","version":"0.2.2","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"license":"MIT","_id":"formatly@0.2.2","maintainers":[{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"}],"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"bin":{"formatly":"bin/index.mjs"},"dist":{"shasum":"e5ecc487c08a6de5fff33ecb328e76bf576f7941","tarball":"https://registry.npmjs.org/formatly/-/formatly-0.2.2.tgz","fileCount":14,"integrity":"sha512-SyVjQNqi3sAHzz7wujCTqwnJvM4obNGzNArc5sMrGFITF+jq89dPNhxw6XcnZmQE6uuLfXvPZNHj4KUsNmk2jA==","signatures":[{"sig":"MEQCIGD1g6sEF0HRHDRFL5OMgzB3t8V1dFtOjBJdmK1xoe52AiA30LGXRL3Cu8eihiDHuIIlTxpZFOFi5k9wW3UVPhw5vw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18266},"main":"lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.3.0"},"gitHead":"f9944c38c62b1669f865de225b434df4d2a61238","scripts":{"tsc":"tsc","lint":"eslint . --max-warnings 0","test":"vitest","build":"tsup","format":"prettier .","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","prepare":"husky","lint:knip":"knip","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\""},"_npmUser":{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"},"repository":{"url":"git+https://github.com/JoshuaKGoldberg/formatly.git","type":"git"},"_npmVersion":"10.8.2","description":"Formats your code with whatever formatter your project is already using. 🧼","directories":{},"lint-staged":{"*":"prettier --ignore-unknown --write"},"_nodeVersion":"20.19.0","dependencies":{"fd-package-json":"^1.2.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.8.0","devDependencies":{"knip":"5.50.1","tsup":"8.4.0","husky":"9.1.7","cspell":"8.18.0","eslint":"9.24.0","vitest":"3.1.1","prettier":"3.5.3","@eslint/js":"9.24.0","release-it":"18.1.2","typescript":"5.8.2","@types/node":"22.14.0","lint-staged":"15.5.0","markdownlint":"0.37.4","eslint-plugin-n":"17.16.2","markdownlint-cli":"0.44.0","console-fail-test":"0.5.0","eslint-plugin-yml":"1.17.0","typescript-eslint":"8.30.0","prettier-plugin-sh":"0.17.0","sentences-per-line":"0.3.0","@vitest/coverage-v8":"3.1.1","eslint-plugin-jsdoc":"50.6.8","eslint-plugin-jsonc":"2.20.0","eslint-plugin-regexp":"2.7.0","@vitest/eslint-plugin":"1.1.38","create-typescript-app":"2.41.0","prettier-plugin-curly":"0.3.1","eslint-plugin-markdown":"5.1.0","eslint-plugin-package-json":"0.29.0","eslint-plugin-perfectionist":"4.11.0","prettier-plugin-packagejson":"2.5.10","@types/eslint-plugin-markdown":"2.0.2","@release-it/conventional-changelog":"10.0.0","@eslint-community/eslint-plugin-eslint-comments":"4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/formatly_0.2.2_1745434068180_0.20788689961253715","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"formatly","version":"0.2.3","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"license":"MIT","_id":"formatly@0.2.3","maintainers":[{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"}],"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"bin":{"formatly":"bin/index.mjs"},"dist":{"shasum":"30c4d3605c4f66d97a97a7dafbd9bb4a2467b26f","tarball":"https://registry.npmjs.org/formatly/-/formatly-0.2.3.tgz","fileCount":14,"integrity":"sha512-WH01vbXEjh9L3bqn5V620xUAWs32CmK4IzWRRY6ep5zpa/mrisL4d9+pRVuETORVDTQw8OycSO1WC68PL51RaA==","signatures":[{"sig":"MEYCIQCuTMsKRDkUjOzblwx+negOcEYWso/zPNZt4gv1dm0nwgIhALR3tf8D8eHwW6wjVb6aSSt7NQDcqQ2spQT5/SEpzux7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19189},"main":"lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.3.0"},"gitHead":"ca0286817eadc10c689d7848160fbc7940bb58fb","scripts":{"tsc":"tsc","lint":"eslint . --max-warnings 0","test":"vitest","build":"tsup","format":"prettier .","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","prepare":"husky","lint:knip":"knip","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\""},"_npmUser":{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"},"repository":{"url":"git+https://github.com/JoshuaKGoldberg/formatly.git","type":"git"},"_npmVersion":"10.8.2","description":"Formats your code with whatever formatter your project is already using. 🧼","directories":{},"lint-staged":{"*":"prettier --ignore-unknown --write"},"_nodeVersion":"20.19.0","dependencies":{"fd-package-json":"^1.2.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.9.0","devDependencies":{"knip":"5.50.1","tsup":"8.4.0","husky":"9.1.7","cspell":"8.19.0","eslint":"9.25.0","vitest":"3.1.1","prettier":"3.5.3","@eslint/js":"9.25.0","release-it":"19.0.1","typescript":"5.8.2","@types/node":"22.15.0","lint-staged":"15.5.0","markdownlint":"0.37.4","eslint-plugin-n":"17.17.0","markdownlint-cli":"0.44.0","console-fail-test":"0.5.0","eslint-plugin-yml":"1.18.0","typescript-eslint":"8.31.0","prettier-plugin-sh":"0.17.0","sentences-per-line":"0.3.0","@vitest/coverage-v8":"3.1.1","eslint-plugin-jsdoc":"50.6.8","eslint-plugin-jsonc":"2.20.0","eslint-plugin-regexp":"2.7.0","@vitest/eslint-plugin":"1.1.38","create-typescript-app":"2.41.0","prettier-plugin-curly":"0.3.1","eslint-plugin-markdown":"5.1.0","eslint-plugin-package-json":"0.30.0","eslint-plugin-perfectionist":"4.12.0","prettier-plugin-packagejson":"2.5.10","@types/eslint-plugin-markdown":"2.0.2","@release-it/conventional-changelog":"10.0.0","@eslint-community/eslint-plugin-eslint-comments":"4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/formatly_0.2.3_1746203246472_0.35832663368764206","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"formatly","version":"0.2.4","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"license":"MIT","_id":"formatly@0.2.4","maintainers":[{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"}],"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"bin":{"formatly":"bin/index.mjs"},"dist":{"shasum":"9f6281e14d2dc43a14061c0526b42c8bbb780c7a","tarball":"https://registry.npmjs.org/formatly/-/formatly-0.2.4.tgz","fileCount":14,"integrity":"sha512-lIN7GpcvX/l/i24r/L9bnJ0I8Qn01qijWpQpDDvTLL29nKqSaJJu4h20+7VJ6m2CAhQ2/En/GbxDiHCzq/0MyA==","signatures":[{"sig":"MEQCIAYYKFEl73WrnCBU20JEfjG9Qf2H/nNi4/CGxk3FbU1kAiAUgGgS0LtvqLA/eZ5DDjrGyllHjDywU8UDmd1K4xYgmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19146},"main":"lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.3.0"},"gitHead":"cf84d657e199ecca78cbffeb4c9101f444f79c8d","scripts":{"tsc":"tsc","lint":"eslint . --max-warnings 0","test":"vitest","build":"tsup","format":"prettier .","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","prepare":"husky","lint:knip":"knip","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\""},"_npmUser":{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"},"repository":{"url":"git+https://github.com/JoshuaKGoldberg/formatly.git","type":"git"},"_npmVersion":"10.8.2","description":"Formats your code with whatever formatter your project is already using. 🧼","directories":{},"lint-staged":{"*":"prettier --ignore-unknown --write"},"_nodeVersion":"20.19.1","dependencies":{"fd-package-json":"^2.0.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"knip":"5.58.0","tsup":"8.5.0","husky":"9.1.7","cspell":"9.0.0","eslint":"9.27.0","vitest":"3.1.1","prettier":"3.5.3","@eslint/js":"9.27.0","release-it":"19.0.1","typescript":"5.8.2","@types/node":"22.15.0","lint-staged":"16.0.0","markdownlint":"0.38.0","eslint-plugin-n":"17.18.0","markdownlint-cli":"0.45.0","console-fail-test":"0.5.0","eslint-plugin-yml":"1.18.0","typescript-eslint":"8.32.0","prettier-plugin-sh":"0.17.0","sentences-per-line":"0.3.0","@vitest/coverage-v8":"3.1.1","eslint-plugin-jsdoc":"50.6.8","eslint-plugin-jsonc":"2.20.0","eslint-plugin-regexp":"2.7.0","@vitest/eslint-plugin":"1.2.0","create-typescript-app":"2.42.0","prettier-plugin-curly":"0.3.1","eslint-plugin-markdown":"5.1.0","eslint-plugin-package-json":"0.31.0","eslint-plugin-perfectionist":"4.13.0","prettier-plugin-packagejson":"2.5.10","@types/eslint-plugin-markdown":"2.0.2","@release-it/conventional-changelog":"10.0.0","@eslint-community/eslint-plugin-eslint-comments":"4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/formatly_0.2.4_1748906407581_0.998447967693574","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"formatly","version":"0.3.0","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"license":"MIT","_id":"formatly@0.3.0","maintainers":[{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"}],"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"bin":{"formatly":"bin/index.mjs"},"dist":{"shasum":"5bb3b4e692f5a8c74ad8fe26154dd0a74aac6819","tarball":"https://registry.npmjs.org/formatly/-/formatly-0.3.0.tgz","fileCount":24,"integrity":"sha512-9XNj/o4wrRFyhSMJOvsuyMwy8aUfBaZ1VrqHVfohyXf0Sw0e+yfKG+xZaY3arGCOMdwFsqObtzVOc1gU9KiT9w==","signatures":[{"sig":"MEUCIA3ZoT9mAicHG9OdfkT3ZxMZTw9Us+ukUYqRrwhQjfo0AiEA/ybLGfnvIx9guYgBA9nqIoVGOGnNC7i21HSxzBJE68o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21590},"main":"lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.3.0"},"gitHead":"cd31aabfe564588d6324cb056d960b0753bea4bc","scripts":{"tsc":"tsc","lint":"eslint . --max-warnings 0","test":"vitest","build":"tsup","format":"prettier .","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","prepare":"husky","lint:knip":"knip","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\""},"_npmUser":{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"},"repository":{"url":"git+https://github.com/JoshuaKGoldberg/formatly.git","type":"git"},"_npmVersion":"10.8.2","description":"Formats your code with whatever formatter your project is already using. 🧼","directories":{},"lint-staged":{"*":"prettier --ignore-unknown --write"},"_nodeVersion":"20.19.1","dependencies":{"fd-package-json":"^2.0.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"knip":"5.60.0","tsup":"8.5.0","husky":"9.1.7","cspell":"9.0.0","eslint":"9.28.0","vitest":"3.2.0","prettier":"3.5.3","@eslint/js":"9.28.0","release-it":"19.0.1","typescript":"5.8.2","@types/node":"22.15.0","lint-staged":"16.1.0","markdownlint":"0.38.0","eslint-plugin-n":"17.19.0","markdownlint-cli":"0.45.0","console-fail-test":"0.5.0","eslint-plugin-yml":"1.18.0","typescript-eslint":"8.33.0","prettier-plugin-sh":"0.17.0","sentences-per-line":"0.3.0","@vitest/coverage-v8":"3.2.0","eslint-plugin-jsdoc":"50.7.0","eslint-plugin-jsonc":"2.20.0","eslint-plugin-regexp":"2.8.0","@vitest/eslint-plugin":"1.2.0","create-typescript-app":"2.42.0","prettier-plugin-curly":"0.3.1","eslint-plugin-markdown":"5.1.0","eslint-plugin-package-json":"0.33.0","eslint-plugin-perfectionist":"4.14.0","prettier-plugin-packagejson":"2.5.10","@types/eslint-plugin-markdown":"2.0.2","@release-it/conventional-changelog":"10.0.0","@eslint-community/eslint-plugin-eslint-comments":"4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/formatly_0.3.0_1749733459008_0.7086363055757394","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"formatly","version":"0.4.0","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"license":"MIT","_id":"formatly@0.4.0","maintainers":[{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"}],"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"bin":{"formatly":"bin/index.mjs"},"dist":{"shasum":"28d0b818af202a3bd13de818a9f6fc03b970f95e","tarball":"https://registry.npmjs.org/formatly/-/formatly-0.4.0.tgz","fileCount":24,"integrity":"sha512-n7aIcdKlAbGjt0OPa/dPFTp9UPY5qShthNR92iYF6qNEy2QiL4NTXe+/UEN3AUrdrgg9OQFsdKNualSSHUjzKw==","signatures":[{"sig":"MEUCIFOEv9WB8lhY2A4dManTR4GIe1FRLmO1zzaWZOA3JdhBAiEAuv34Zjd0adYOxG04sFbrKVBrHDt3iBrgWGo3dIf0yh0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIH27uIr5YwmxBrmPLuzgrDGzZs1trVPnK5TFWRIEFo35AiAjjLdInogteZORMJnWhNT5OGSJlwzsS5Sbo7aEb/u0fQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22160},"main":"lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.3.0"},"gitHead":"aa48203dd437ec1f9aa3705d8691a360056c20c7","scripts":{"tsc":"tsc","lint":"eslint . --max-warnings 0","test":"vitest","build":"tsup","format":"prettier .","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","prepare":"husky","lint:knip":"knip","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a498ed0a-089a-4a65-8006-695da0c8017b"}},"repository":{"url":"git+https://github.com/JoshuaKGoldberg/formatly.git","type":"git"},"_npmVersion":"11.17.0","description":"Formats your code with whatever formatter your project is already using. 🧼","directories":{},"lint-staged":{"*":"prettier --ignore-unknown --write"},"_nodeVersion":"24.19.0","dependencies":{"fd-package-json":"^2.0.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.34.0","devDependencies":{"knip":"6.27.0","tsup":"8.5.0","husky":"9.1.7","cspell":"10.0.0","eslint":"9.39.1","vitest":"4.1.0","prettier":"3.9.0","@eslint/js":"9.39.1","release-it":"21.0.0","typescript":"5.9.2","@types/node":"24.13.2","lint-staged":"17.3.0","markdownlint":"0.41.0","eslint-plugin-n":"18.3.0","markdownlint-cli":"0.49.0","console-fail-test":"0.6.0","eslint-plugin-yml":"3.8.0","typescript-eslint":"8.41.0","prettier-plugin-sh":"0.19.0","sentences-per-line":"0.3.0","@vitest/coverage-v8":"4.1.0","eslint-plugin-jsdoc":"64.1.0","eslint-plugin-jsonc":"3.4.0","eslint-plugin-regexp":"3.1.0","@vitest/eslint-plugin":"1.6.1","create-typescript-app":"2.42.0","prettier-plugin-curly":"0.4.0","eslint-plugin-markdown":"5.1.0","eslint-plugin-package-json":"0.54.0","eslint-plugin-perfectionist":"5.10.0","prettier-plugin-packagejson":"3.0.0","@types/eslint-plugin-markdown":"2.0.2","@release-it/conventional-changelog":"12.0.0","@eslint-community/eslint-plugin-eslint-comments":"4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/formatly_0.4.0_1786711172257_0.9205805127086233","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"formatly","version":"0.5.0","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"license":"MIT","_id":"formatly@0.5.0","maintainers":[{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"}],"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"bin":{"formatly":"bin/index.mjs"},"dist":{"shasum":"aa9fc74ed18788dbb83238d684a4315c759ca4c6","tarball":"https://registry.npmjs.org/formatly/-/formatly-0.5.0.tgz","fileCount":24,"integrity":"sha512-knElJ2SXgvhiz/ZqapyWlSSwRDLnXV5huvdHw9vgpb9udBx2h2lTDdHYDr2bcXHRCGPNm8BdcZE8KWwOlwJ/VA==","signatures":[{"sig":"MEUCIC3S/ddEqqIZ33SIX4IGFHVD3/weDKzgQVejzhVgCGgsAiEAgKLa4laoAh6S8eJvh+Q5c7biwBIZjCOrdI0VVqz5P/A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDUq3sOpkNK4lXK/HH+ZOrDwceP43dHfwt2FkDh4vPGLwIhAJSSYQZy9z6jiA0z5+/9uQCieD6PCWXMdcQssiyIDN2M","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24204},"main":"lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.3.0"},"gitHead":"9f306576d2928bc7718955281d27c58ea84e64dd","scripts":{"tsc":"tsc","lint":"eslint . --max-warnings 0","test":"vitest","build":"tsup","format":"prettier .","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","prepare":"husky","lint:knip":"knip","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a498ed0a-089a-4a65-8006-695da0c8017b"}},"repository":{"url":"git+https://github.com/JoshuaKGoldberg/formatly.git","type":"git"},"_npmVersion":"11.17.0","description":"Formats your code with whatever formatter your project is already using. 🧼","directories":{},"lint-staged":{"*":"prettier --ignore-unknown --write"},"_nodeVersion":"24.19.0","dependencies":{"fd-package-json":"^2.0.0","package-manager-detector":"^1.8.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.34.0","devDependencies":{"knip":"6.27.0","tsup":"8.5.0","husky":"9.1.7","cspell":"10.0.0","eslint":"9.39.1","vitest":"4.1.0","prettier":"3.9.0","@eslint/js":"9.39.1","release-it":"21.0.0","typescript":"5.9.2","@types/node":"24.13.2","lint-staged":"17.3.0","markdownlint":"0.41.0","eslint-plugin-n":"18.3.0","markdownlint-cli":"0.49.0","console-fail-test":"0.6.0","eslint-plugin-yml":"3.8.0","typescript-eslint":"8.41.0","prettier-plugin-sh":"0.19.0","sentences-per-line":"0.3.0","@vitest/coverage-v8":"4.1.0","eslint-plugin-jsdoc":"64.1.0","eslint-plugin-jsonc":"3.4.0","eslint-plugin-regexp":"3.1.0","@vitest/eslint-plugin":"1.6.1","create-typescript-app":"2.42.0","prettier-plugin-curly":"0.4.0","eslint-plugin-markdown":"5.1.0","eslint-plugin-package-json":"0.54.0","eslint-plugin-perfectionist":"5.10.0","prettier-plugin-packagejson":"3.0.0","@types/eslint-plugin-markdown":"2.0.2","@release-it/conventional-changelog":"12.0.0","@eslint-community/eslint-plugin-eslint-comments":"4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/formatly_0.5.0_1787114038440_0.4882885747946366","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"formatly","version":"0.6.0","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"license":"MIT","_id":"formatly@0.6.0","maintainers":[{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"}],"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"bin":{"formatly":"bin/index.mjs"},"dist":{"shasum":"41c8f18ddc41886d03b2345045048bcb46714560","tarball":"https://registry.npmjs.org/formatly/-/formatly-0.6.0.tgz","fileCount":24,"integrity":"sha512-RZcdj+CvvNloNHEUTKB15uzTBAk7U1QTipj0HS/fXnGb/xygWfNaTbN/hVaINtMSP9OzN0SQtdvuIFW3rU1RBA==","signatures":[{"sig":"MEUCIQCFNRnYzkKiheZKcN9Vi1HAkEYqg5WBFDDmuScs9++M6AIgB9FBBYzgEnoslxcGGsz4uqgYhM5R7eODMemevRO1du0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBlkG8LEhMBZjztjGXK66f1k1jID3USvj2sUJ32YOVhHAiBFUbmBA/j1rdA5TFLW505LkKBsoeD+2Eq9nG1lT8qn7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27305},"main":"lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.3.0"},"gitHead":"5337bdce5c184bfc2c0cbe049560eb2083578735","scripts":{"tsc":"tsc","lint":"eslint . --max-warnings 0","test":"vitest","build":"tsup","format":"prettier .","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","prepare":"husky","lint:knip":"knip","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a498ed0a-089a-4a65-8006-695da0c8017b"}},"repository":{"url":"git+https://github.com/JoshuaKGoldberg/formatly.git","type":"git"},"_npmVersion":"11.17.0","description":"Formats your code with whatever formatter your project is already using. 🧼","directories":{},"lint-staged":{"*":"prettier --ignore-unknown --write"},"_nodeVersion":"24.19.0","dependencies":{"fd-package-json":"^2.0.0","package-manager-detector":"^1.8.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.34.0","devDependencies":{"knip":"6.27.0","tsup":"8.5.0","husky":"9.1.7","cspell":"10.0.0","eslint":"9.39.1","vitest":"4.1.0","prettier":"3.9.0","@eslint/js":"9.39.1","release-it":"21.0.0","typescript":"5.9.2","@types/node":"24.13.2","lint-staged":"17.3.0","markdownlint":"0.41.0","eslint-plugin-n":"18.3.0","markdownlint-cli":"0.49.0","console-fail-test":"0.6.0","eslint-plugin-yml":"3.8.0","typescript-eslint":"8.41.0","prettier-plugin-sh":"0.19.0","sentences-per-line":"0.3.0","@vitest/coverage-v8":"4.1.0","eslint-plugin-jsdoc":"64.2.0","eslint-plugin-jsonc":"3.4.0","eslint-plugin-regexp":"3.2.0","@vitest/eslint-plugin":"1.6.1","create-typescript-app":"2.42.0","prettier-plugin-curly":"0.4.0","eslint-plugin-markdown":"5.1.0","eslint-plugin-package-json":"0.54.0","eslint-plugin-perfectionist":"5.10.0","prettier-plugin-packagejson":"3.0.0","@types/eslint-plugin-markdown":"2.0.2","@release-it/conventional-changelog":"12.0.0","@eslint-community/eslint-plugin-eslint-comments":"4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/formatly_0.6.0_1787116130234_0.7907625602133135","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"formatly","version":"0.7.0","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"license":"MIT","_id":"formatly@0.7.0","maintainers":[{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"}],"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"bin":{"formatly":"bin/index.mjs"},"dist":{"shasum":"3254a5e5f0b1eb1b1b53a5bb57241245e7d12816","tarball":"https://registry.npmjs.org/formatly/-/formatly-0.7.0.tgz","fileCount":24,"integrity":"sha512-7CXJtIIA0zy/u12StsYk25qVKxvdLA2ep2sTNxK3ov0mGNIIDqIvAXDSgTnAfDJFsPfWjuz0WjfYSdpvnLA5Tg==","signatures":[{"sig":"MEQCICgyo8XNdoyh3IQvz2JjauKrnA/CHaklGr3zgBD6gv5gAiA1x6sTv5F97ShGGIwqKJbM6pSvlAwmuhjW0UXCbkV6IQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICDXe9PZ2B04xwPsr50pIkeiXPwZcnCSXoIT2wXVEDA2AiEA8LkoNbxp5J9ZJvtt0PZciRgmMXAEnj0hK7koY/1QXe8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29082},"main":"lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.3.0"},"gitHead":"39b4e7655ff6fade1d93ff49cbcaee32613f55b5","scripts":{"tsc":"tsc","lint":"eslint . --max-warnings 0","test":"vitest","build":"tsup","format":"prettier .","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","prepare":"husky","lint:knip":"knip","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a498ed0a-089a-4a65-8006-695da0c8017b"}},"repository":{"url":"git+https://github.com/JoshuaKGoldberg/formatly.git","type":"git"},"_npmVersion":"11.17.0","description":"Formats your code with whatever formatter your project is already using. 🧼","directories":{},"lint-staged":{"*":"prettier --ignore-unknown --write"},"_nodeVersion":"24.19.0","dependencies":{"fd-package-json":"^2.0.0","package-manager-detector":"^1.8.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.34.0","devDependencies":{"knip":"6.32.2","tsup":"8.5.1","husky":"9.1.7","cspell":"10.0.1","eslint":"10.8.1","vitest":"4.1.11","prettier":"3.9.6","@eslint/js":"10.0.1","release-it":"21.0.2","typescript":"5.9.3","@types/node":"26.2.0","lint-staged":"17.3.0","markdownlint":"0.41.1","eslint-plugin-n":"18.3.0","markdownlint-cli":"0.49.1","console-fail-test":"0.6.1","eslint-plugin-yml":"3.8.1","typescript-eslint":"8.67.0","prettier-plugin-sh":"0.19.0","sentences-per-line":"0.3.0","@vitest/coverage-v8":"4.1.11","eslint-plugin-jsdoc":"64.2.1","eslint-plugin-jsonc":"3.4.1","eslint-plugin-regexp":"3.2.0","@vitest/eslint-plugin":"1.6.27","create-typescript-app":"2.64.0","prettier-plugin-curly":"0.4.1","eslint-plugin-markdown":"5.1.0","eslint-plugin-package-json":"0.54.0","eslint-plugin-perfectionist":"5.10.1","prettier-plugin-packagejson":"3.0.2","@types/eslint-plugin-markdown":"2.0.2","@release-it/conventional-changelog":"12.0.0","@eslint-community/eslint-plugin-eslint-comments":"4.7.2"},"_npmOperationalInternal":{"tmp":"tmp/formatly_0.7.0_1787146127365_0.3608470723184387","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"formatly","version":"0.7.1","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"license":"MIT","_id":"formatly@0.7.1","maintainers":[{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"}],"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"bin":{"formatly":"bin/index.mjs"},"dist":{"shasum":"d9ea802b43204fbe7725f15a0897c3390f8b526e","tarball":"https://registry.npmjs.org/formatly/-/formatly-0.7.1.tgz","fileCount":24,"integrity":"sha512-ESuCEJE0SGgabl9q+zABI8LhJDmF+8nhpuqDzuM48HfJ9QTD5o6PqFJDFZY7w6f8xsh5lixuj5nJsQNvYOWvKQ==","signatures":[{"sig":"MEYCIQDFDbiGHamF+cfEWXL7ASRzlykmIVGw9Lr8iCa+QsvThQIhAIjc+dN/ogD+BXIcJTeC6c8mGSXNdcy8A/ZbW55TxIkS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDb3fTQh8x5N4hnaiKy5yKyHEo5N7nt2jwOBAqoM+hjLAIgNoIjzuVsn9scqB0N1bL3l6tKOwu/lVKqs2GUylHi918=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29458},"main":"lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.3.0"},"gitHead":"74285984df5344871b09023fc9e13eab1235df09","scripts":{"tsc":"tsc","lint":"eslint . --max-warnings 0","test":"vitest","build":"tsup","format":"prettier .","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","prepare":"husky","lint:knip":"knip","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a498ed0a-089a-4a65-8006-695da0c8017b"}},"repository":{"url":"git+https://github.com/JoshuaKGoldberg/formatly.git","type":"git"},"_npmVersion":"11.19.0","description":"Formats your code with whatever formatter your project is already using. 🧼","directories":{},"lint-staged":{"*":"prettier --ignore-unknown --write"},"_nodeVersion":"24.21.0","dependencies":{"fd-package-json":"^2.0.0","package-manager-detector":"^1.8.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.34.0","devDependencies":{"knip":"6.36.0","tsup":"8.5.1","husky":"9.1.7","cspell":"10.3.0","eslint":"10.10.0","vitest":"5.0.0","prettier":"3.9.6","@eslint/js":"10.0.1","release-it":"21.0.2","typescript":"5.9.3","@types/node":"26.6.1","lint-staged":"17.5.0","markdownlint":"0.41.1","eslint-plugin-n":"18.3.0","markdownlint-cli":"0.49.1","console-fail-test":"0.6.1","eslint-plugin-yml":"3.8.1","typescript-eslint":"8.70.0","prettier-plugin-sh":"0.19.0","sentences-per-line":"0.3.0","@vitest/coverage-v8":"5.0.0","eslint-plugin-jsdoc":"64.5.0","eslint-plugin-jsonc":"3.4.1","eslint-plugin-regexp":"3.3.0","@vitest/eslint-plugin":"1.6.27","create-typescript-app":"2.64.0","prettier-plugin-curly":"0.4.1","eslint-plugin-markdown":"5.1.0","eslint-plugin-package-json":"0.54.0","eslint-plugin-perfectionist":"5.11.0","prettier-plugin-packagejson":"3.0.2","@types/eslint-plugin-markdown":"2.0.2","@release-it/conventional-changelog":"12.0.0","@eslint-community/eslint-plugin-eslint-comments":"4.8.0"},"_npmOperationalInternal":{"tmp":"tmp/formatly_0.7.1_1789854920034_0.18986957664159676","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"formatly","version":"0.8.0","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"license":"MIT","_id":"formatly@0.8.0","maintainers":[{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"}],"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"bin":{"formatly":"bin/index.mjs"},"dist":{"shasum":"8f19a371902a412595e263e34ef5190a78f16661","tarball":"https://registry.npmjs.org/formatly/-/formatly-0.8.0.tgz","fileCount":28,"integrity":"sha512-BJupk+709ngyCGTmnqVuFv8A8qEKme4Sa6WmNK9mrm/0iYXH9+pgtioJbMHeADupA80ka8SyZ+oKkzsvKenC4w==","signatures":[{"sig":"MEMCH1AeZ1AVSa/mNAaLPJLy337Cl/1S6OIVvsxtf7ZYUO4CIC1oT1LSWW0VeMFYZseenr06zid40EZ6UFKbya+a3+4h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCa6BKDrIgA+IIJFuWYV1MZwzIjFyBVP1ZNuwfGKJZuBAIgRzM+B3Yyvouu3T9O4V0HoSxYNo6inQRD5/m2iWc5qVM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40150},"main":"lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.3.0"},"gitHead":"c9475cdab870ab8a301ba1c193d0874ed95db90d","scripts":{"tsc":"tsc","lint":"eslint . --max-warnings 0","test":"vitest","build":"tsup","format":"prettier .","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","prepare":"husky","lint:knip":"knip","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a498ed0a-089a-4a65-8006-695da0c8017b"}},"repository":{"url":"git+https://github.com/JoshuaKGoldberg/formatly.git","type":"git"},"_npmVersion":"11.19.0","description":"Formats your code with whatever formatter your project is already using. 🧼","directories":{},"lint-staged":{"*":"prettier --ignore-unknown --write"},"_nodeVersion":"24.21.0","dependencies":{"fd-package-json":"^2.0.0","package-manager-detector":"^1.8.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.34.0","devDependencies":{"knip":"6.36.0","tsup":"8.5.1","husky":"9.1.7","cspell":"10.3.0","eslint":"10.10.0","vitest":"5.0.0","prettier":"3.9.6","@eslint/js":"10.0.1","release-it":"21.0.2","typescript":"5.9.3","@types/node":"26.6.1","lint-staged":"17.5.0","markdownlint":"0.41.1","eslint-plugin-n":"18.3.0","markdownlint-cli":"0.49.1","console-fail-test":"0.6.1","eslint-plugin-yml":"3.8.1","typescript-eslint":"8.70.0","prettier-plugin-sh":"0.19.0","sentences-per-line":"0.3.0","@vitest/coverage-v8":"5.0.0","eslint-plugin-jsdoc":"64.5.0","eslint-plugin-jsonc":"3.4.1","eslint-plugin-regexp":"3.3.0","@vitest/eslint-plugin":"1.6.27","create-typescript-app":"2.64.0","prettier-plugin-curly":"0.4.1","eslint-plugin-markdown":"5.1.0","eslint-plugin-package-json":"0.54.0","eslint-plugin-perfectionist":"5.11.0","prettier-plugin-packagejson":"3.0.2","@types/eslint-plugin-markdown":"2.0.2","@release-it/conventional-changelog":"12.0.0","@eslint-community/eslint-plugin-eslint-comments":"4.8.0"},"_npmOperationalInternal":{"tmp":"tmp/formatly_0.8.0_1789856459586_0.8436633810986065","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"formatly","version":"0.9.0","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"license":"MIT","_id":"formatly@0.9.0","maintainers":[{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"}],"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"bin":{"formatly":"bin/index.mjs"},"dist":{"shasum":"4618e10220ba4e3f3adcbed7c5cc5d26c50e0e2e","tarball":"https://registry.npmjs.org/formatly/-/formatly-0.9.0.tgz","fileCount":28,"integrity":"sha512-1V1oE6EHLrJH6IVp16rl4o5ApS1jkX72MxqeQ4HSX6JFcQmkawEtQpukXnat8w4lxi4O563CDvkbG4B0jGovVA==","signatures":[{"sig":"MEYCIQDD9dLqgA49L99j8h4v1BejILi0LEraEG9x+lCoIjh18AIhAJe9eAnMv7EMPxliLh+t/Pl3XLVbPGcUaFSEr+r5DpsP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDRnu8uK+J2Fu1R/7oLgrOoisM72WBvp6ciKzgiRFUF4QIhAIsDKBJ2fxzbW/2MYFhOVMKiraVZkSzbpopsh3VdredW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42166},"main":"lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.3.0"},"gitHead":"bca70ff6afb2c7b339cff76f1a1fd751bc8c1bd1","scripts":{"tsc":"tsc","lint":"eslint . --max-warnings 0","test":"vitest","build":"tsup","format":"prettier .","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","prepare":"husky","lint:knip":"knip","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a498ed0a-089a-4a65-8006-695da0c8017b"}},"repository":{"url":"git+https://github.com/JoshuaKGoldberg/formatly.git","type":"git"},"_npmVersion":"11.19.0","description":"Formats your code with whatever formatter your project is already using. 🧼","directories":{},"lint-staged":{"*":"prettier --ignore-unknown --write"},"_nodeVersion":"24.21.0","dependencies":{"fd-package-json":"^2.0.0","package-manager-detector":"^1.8.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.34.0","devDependencies":{"knip":"6.37.0","tsup":"8.5.1","husky":"9.1.7","cspell":"10.3.0","eslint":"10.10.0","vitest":"5.0.0","prettier":"3.9.6","@eslint/js":"10.0.1","release-it":"21.1.0","typescript":"5.9.3","@types/node":"26.6.1","lint-staged":"17.5.0","markdownlint":"0.41.1","eslint-plugin-n":"18.3.0","markdownlint-cli":"0.49.1","console-fail-test":"0.6.1","eslint-plugin-yml":"3.8.1","typescript-eslint":"8.70.0","prettier-plugin-sh":"0.19.0","sentences-per-line":"0.3.0","@vitest/coverage-v8":"5.0.0","eslint-plugin-jsdoc":"64.5.0","eslint-plugin-jsonc":"3.4.1","eslint-plugin-regexp":"3.3.0","@vitest/eslint-plugin":"1.6.27","create-typescript-app":"2.64.0","prettier-plugin-curly":"0.4.1","eslint-plugin-markdown":"5.1.0","eslint-plugin-package-json":"0.54.0","eslint-plugin-perfectionist":"5.11.0","prettier-plugin-packagejson":"3.0.2","@types/eslint-plugin-markdown":"2.0.2","@release-it/conventional-changelog":"12.0.0","@eslint-community/eslint-plugin-eslint-comments":"4.8.0"},"_npmOperationalInternal":{"tmp":"tmp/formatly_0.9.0_1789998826954_0.3849621598347597","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"formatly","version":"0.9.1","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"license":"MIT","_id":"formatly@0.9.1","maintainers":[{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"}],"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"bin":{"formatly":"bin/index.mjs"},"dist":{"shasum":"7f4e446328852095980a8c4ce9dd486b6fb6df63","tarball":"https://registry.npmjs.org/formatly/-/formatly-0.9.1.tgz","fileCount":28,"integrity":"sha512-gkwhjqCgO4ZcOhRcdIJKdjOtRwYpv9ic8mVjKP5+X41zfFkPajtXdWy8be45Abh5cTiLkrlQDWS2J/pc0KS1eQ==","signatures":[{"sig":"MEYCIQDB7LucWLPbbjwm7JKyooX4lUDOSkK0ZJv30j1jeEv13wIhAJ6a9Fbwhft0f1xUXwD3io7PxOQ7KSFYppTp3EpR1aAh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDloe16Rzu5IQiuO8slFT0t99/mj5Be3JYElntiNdYx1gIhAKxLdIweWkPPWNYSCXXoNQqvKlAHgRGKKU0AnmaLH+ND","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43187},"main":"lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.3.0"},"gitHead":"ff591253c0e89504e7017f2c1db5d2bfdecda9ac","scripts":{"tsc":"tsc","lint":"eslint . --max-warnings 0","test":"vitest","build":"tsup","format":"prettier .","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","prepare":"husky","lint:knip":"knip","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a498ed0a-089a-4a65-8006-695da0c8017b"}},"repository":{"url":"git+https://github.com/JoshuaKGoldberg/formatly.git","type":"git"},"_npmVersion":"11.19.0","description":"Formats your code with whatever formatter your project is already using. 🧼","directories":{},"lint-staged":{"*":"prettier --ignore-unknown --write"},"_nodeVersion":"24.21.0","dependencies":{"fd-package-json":"^2.0.0","package-manager-detector":"^1.8.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.34.0","devDependencies":{"knip":"6.37.0","tsup":"8.5.1","husky":"9.1.7","oxfmt":"0.70.0","cspell":"10.3.0","dprint":"0.57.4","eslint":"10.11.0","vitest":"5.0.0","prettier":"3.9.6","@eslint/js":"10.0.1","release-it":"21.1.0","typescript":"5.9.3","@types/node":"26.6.1","lint-staged":"17.5.0","markdownlint":"0.41.1","@biomejs/biome":"2.5.14","eslint-plugin-n":"18.3.0","markdownlint-cli":"0.49.1","console-fail-test":"0.9.0","eslint-plugin-yml":"3.8.1","typescript-eslint":"8.70.0","@dprint/typescript":"0.96.1","prettier-plugin-sh":"0.19.0","sentences-per-line":"0.3.0","@vitest/coverage-v8":"5.0.0","eslint-plugin-jsdoc":"64.5.0","eslint-plugin-jsonc":"3.4.1","eslint-plugin-regexp":"3.3.0","@vitest/eslint-plugin":"1.6.27","create-typescript-app":"2.64.0","prettier-plugin-curly":"0.4.1","eslint-plugin-markdown":"5.1.0","eslint-plugin-package-json":"0.54.0","eslint-plugin-perfectionist":"5.11.0","prettier-plugin-packagejson":"3.0.2","@types/eslint-plugin-markdown":"2.0.2","@release-it/conventional-changelog":"12.0.0","@eslint-community/eslint-plugin-eslint-comments":"4.8.0"},"_npmOperationalInternal":{"tmp":"tmp/formatly_0.9.1_1790342625906_0.6264032382419471","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"formatly","version":"0.10.0","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"license":"MIT","_id":"formatly@0.10.0","maintainers":[{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"}],"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"bin":{"formatly":"bin/index.mjs"},"dist":{"shasum":"23ca2ae88b4cc07308b7abc79d7a29cf4985966c","tarball":"https://registry.npmjs.org/formatly/-/formatly-0.10.0.tgz","fileCount":32,"integrity":"sha512-YnH68kHWBB5ZgYFZp/aI0pXp3L+jZgBvEyiLfWJ1dui7mKyQfzh1s7NpKFio+anyYGQDdvA8PNaqx2kMJwpVsw==","signatures":[{"sig":"MEYCIQCHiKhTWdv7X2afl9j1pdAwxHlhFAgviGsZRo5/vZgYdwIhAPUjmknzRGna2ht0X7L6Ir6ef7NcHyuIFSFtsgGkmRpI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFcAx0gX+p4uVJoooN4yy4he0i3nZM3bdw946rjAiR5CAiEA92BI+T6LU/yB6SXOfUlQvkfviAl108BgEqZxS8uDVd4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45475},"main":"lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.14.0"},"gitHead":"b59de83b8e0ce51bed9b77aa2bce286f29b60df6","scripts":{"tsc":"tsc","lint":"eslint . --max-warnings 0","test":"vitest","build":"tsup","format":"prettier .","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","prepare":"husky","lint:knip":"knip","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a498ed0a-089a-4a65-8006-695da0c8017b"}},"repository":{"url":"git+https://github.com/JoshuaKGoldberg/formatly.git","type":"git"},"_npmVersion":"11.19.0","description":"Formats your code with whatever formatter your project is already using. 🧼","directories":{},"lint-staged":{"*":"prettier --ignore-unknown --write"},"_nodeVersion":"24.21.0","dependencies":{"fd-package-json":"^2.0.0","package-manager-detector":"^1.8.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.34.0","devDependencies":{"knip":"6.38.0","tsup":"8.5.1","husky":"9.1.7","oxfmt":"0.70.0","cspell":"10.3.0","dprint":"0.57.4","eslint":"10.11.0","vitest":"5.0.0","prettier":"3.9.6","@eslint/js":"10.0.1","release-it":"21.1.0","typescript":"5.9.3","@types/node":"26.6.1","lint-staged":"17.5.0","markdownlint":"0.41.1","@biomejs/biome":"2.5.14","eslint-plugin-n":"18.3.0","markdownlint-cli":"0.49.1","console-fail-test":"0.9.0","eslint-plugin-yml":"3.8.1","typescript-eslint":"8.70.0","@dprint/typescript":"0.96.1","prettier-plugin-sh":"0.19.0","sentences-per-line":"0.3.0","@vitest/coverage-v8":"5.0.0","eslint-plugin-jsdoc":"64.5.0","eslint-plugin-jsonc":"3.4.1","eslint-plugin-regexp":"3.3.0","@vitest/eslint-plugin":"1.6.27","create-typescript-app":"2.64.0","prettier-plugin-curly":"0.4.1","eslint-plugin-markdown":"5.1.0","eslint-plugin-package-json":"0.54.0","eslint-plugin-perfectionist":"5.12.0","prettier-plugin-packagejson":"3.0.2","@types/eslint-plugin-markdown":"2.0.2","@release-it/conventional-changelog":"12.0.0","@eslint-community/eslint-plugin-eslint-comments":"4.8.0"},"_npmOperationalInternal":{"tmp":"tmp/formatly_0.10.0_1790524398271_0.22394269083392526","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"formatly","version":"0.11.0","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"license":"MIT","_id":"formatly@0.11.0","maintainers":[{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"}],"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"bin":{"formatly":"bin/index.mjs"},"dist":{"shasum":"f94e07d45cf4d4397c66d5b22d94867a584e62fb","tarball":"https://registry.npmjs.org/formatly/-/formatly-0.11.0.tgz","fileCount":40,"integrity":"sha512-nYgIGVfZHsuj0AQCkrbdSw2mFEm+1JPFXl6+vnjNKvaaYFYP9au+zJgsvEKsj5bH7nS++zVxTrDGJ+OvVCorTw==","signatures":[{"sig":"MEUCIFx4UMhxdVKVr3ZWvbEC/8c5g1nGvuCkFLQvhjJDHT4NAiEA4eoOzyeR83ujNACmu9gqaKmCHY2vDUi81WUbf+ZbvqM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDhHSK7aJvesW6t1URpxq6XQFMRMfEAVid5xE6ixaI23wIhAOqX3m8SRQXv0yxkvKObO/jdWsiHRHThugjnloQ9uAHC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":69618},"main":"lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.14.0"},"gitHead":"a4f07aa5833ff35ed9298a5f9f44b0d7b67da345","scripts":{"tsc":"tsc","lint":"eslint . --max-warnings 0","test":"vitest","build":"tsup","format":"prettier .","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","prepare":"husky","lint:knip":"knip","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a498ed0a-089a-4a65-8006-695da0c8017b"}},"repository":{"url":"git+https://github.com/JoshuaKGoldberg/formatly.git","type":"git"},"_npmVersion":"11.19.0","description":"Formats your code with whatever formatter your project is already using. 🧼","directories":{},"lint-staged":{"*":"prettier --ignore-unknown --write"},"_nodeVersion":"24.21.0","dependencies":{"fd-package-json":"^2.0.0","package-manager-detector":"^1.8.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.34.0","devDependencies":{"knip":"6.38.0","tsup":"8.5.1","husky":"9.1.7","oxfmt":"0.70.0","cspell":"10.3.0","dprint":"0.57.4","eslint":"10.11.0","vitest":"5.0.0","prettier":"3.9.6","@eslint/js":"10.0.1","release-it":"21.1.0","typescript":"5.9.3","@types/node":"26.6.1","lint-staged":"17.5.0","markdownlint":"0.41.1","@biomejs/biome":"2.5.14","@biomejs/js-api":"6.0.0","eslint-plugin-n":"18.3.0","markdownlint-cli":"0.49.1","console-fail-test":"0.9.0","eslint-plugin-yml":"3.8.1","typescript-eslint":"8.70.0","@dprint/typescript":"0.96.1","prettier-plugin-sh":"0.20.0","sentences-per-line":"0.3.0","@vitest/coverage-v8":"5.0.0","eslint-plugin-jsdoc":"64.5.0","eslint-plugin-jsonc":"3.4.1","@biomejs/wasm-nodejs":"2.5.14","eslint-plugin-regexp":"3.3.0","@vitest/eslint-plugin":"1.6.27","create-typescript-app":"2.64.0","prettier-plugin-curly":"0.4.1","eslint-plugin-markdown":"5.1.0","eslint-plugin-package-json":"0.54.0","eslint-plugin-perfectionist":"5.12.0","prettier-plugin-packagejson":"3.0.2","@types/eslint-plugin-markdown":"2.0.2","@release-it/conventional-changelog":"12.0.0","@eslint-community/eslint-plugin-eslint-comments":"4.8.0"},"_npmOperationalInternal":{"tmp":"tmp/formatly_0.11.0_1790526885646_0.12394703011648445","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"formatly","version":"0.11.1","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"license":"MIT","_id":"formatly@0.11.1","maintainers":[{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"}],"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"bin":{"formatly":"bin/index.mjs"},"dist":{"shasum":"b1b4a6c0c92a1ca7566014355de79ec306b1e604","tarball":"https://registry.npmjs.org/formatly/-/formatly-0.11.1.tgz","fileCount":40,"integrity":"sha512-JMaO+qVltZ+qh8hqzHwoMMGHiGxal/s0uQffvENE0c/yO4miLeR3vJ/IF7mPNAN64NrVVocwf1bE1/qxk8kvsQ==","signatures":[{"sig":"MEUCIQDlWc5aRd5WGqkjWdyjVVYJQpRdrGwhVUkXfmk9bEkZ1wIgQXfQfTHpvDbdS1CQ4HD8xUYCv/I5l93k9V/aZ/VIF94=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCCyUzIRTpSt5eeSj/pXJLIJCA1puLxvX5RgQOYqIEfdQIgI3sWRqC5jGGIKGz8C20XmvFCHpvDwQJnJGhiOPRLKUE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":69841},"main":"lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.14.0"},"gitHead":"df224ead2497b8ce517d34fc9f27b2cc85ec5e77","scripts":{"tsc":"tsc","lint":"eslint . --max-warnings 0","test":"vitest","build":"tsup","format":"prettier .","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","prepare":"husky","lint:knip":"knip","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a498ed0a-089a-4a65-8006-695da0c8017b"}},"repository":{"url":"git+https://github.com/JoshuaKGoldberg/formatly.git","type":"git"},"_npmVersion":"11.19.0","description":"Formats your code with whatever formatter your project is already using. 🧼","directories":{},"lint-staged":{"*":"prettier --ignore-unknown --write"},"_nodeVersion":"24.21.0","dependencies":{"fd-package-json":"^2.0.0","package-manager-detector":"^1.8.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.34.0","devDependencies":{"knip":"6.38.0","tsup":"8.5.1","husky":"9.1.7","oxfmt":"0.70.0","cspell":"10.3.0","dprint":"0.57.4","eslint":"10.11.0","vitest":"5.0.0","prettier":"3.9.6","@eslint/js":"10.0.1","release-it":"21.1.0","typescript":"5.9.3","@types/node":"26.6.1","lint-staged":"17.5.0","markdownlint":"0.41.1","@biomejs/biome":"2.5.14","@biomejs/js-api":"6.0.0","eslint-plugin-n":"18.3.0","markdownlint-cli":"0.49.1","console-fail-test":"0.9.0","eslint-plugin-yml":"3.8.1","typescript-eslint":"8.70.0","@dprint/typescript":"0.96.1","prettier-plugin-sh":"0.20.0","sentences-per-line":"0.3.0","@vitest/coverage-v8":"5.0.0","eslint-plugin-jsdoc":"64.5.0","eslint-plugin-jsonc":"3.4.1","@biomejs/wasm-nodejs":"2.5.14","eslint-plugin-regexp":"3.3.0","@vitest/eslint-plugin":"1.6.27","create-typescript-app":"2.64.0","prettier-plugin-curly":"0.4.1","eslint-plugin-markdown":"5.1.0","eslint-plugin-package-json":"0.54.0","eslint-plugin-perfectionist":"5.12.0","prettier-plugin-packagejson":"3.0.2","@types/eslint-plugin-markdown":"2.0.2","@release-it/conventional-changelog":"12.0.0","@eslint-community/eslint-plugin-eslint-comments":"4.8.0"},"_npmOperationalInternal":{"tmp":"tmp/formatly_0.11.1_1790537454795_0.053236051349931035","host":"s3://npm-registry-packages-npm-production"}},"0.11.2":{"name":"formatly","version":"0.11.2","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"license":"MIT","_id":"formatly@0.11.2","maintainers":[{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"}],"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"bin":{"formatly":"bin/index.mjs"},"dist":{"shasum":"da0314eea25e4d0f45b5bda5bcc28bc05a8ca83d","tarball":"https://registry.npmjs.org/formatly/-/formatly-0.11.2.tgz","fileCount":40,"integrity":"sha512-/YjTpEped3cAv/XMoEeiEJpJiYLKiE+R6V2nt4z4mKzPCFjLP1Q5hqbXhhq2VPvBkef90aFD0LMBxZ15CFb4OA==","signatures":[{"sig":"MEQCIHgPTZKZfE0Q6PtLJUBHpkkYmqW0xkWkUZuLbIaq0GQJAiAJQOHjLg4WEpJcWKAW24Ho4YO+vYG2/Sz2V7OXoP/awQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFBAu8srU5ttiEYN5LMYpqK5kvJJJLHznogh9EKF522mAiBtWTwqlhYKNbMatwOuwGNWtokS2U3NPimXE78VCgiZVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.11.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":70112},"main":"lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.14.0"},"gitHead":"6c281a1d8083b4068a8f77a6f522f09613bd20c7","scripts":{"tsc":"tsc","lint":"eslint . --max-warnings 0","test":"vitest","build":"tsup","format":"prettier .","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","prepare":"husky","lint:knip":"knip","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a498ed0a-089a-4a65-8006-695da0c8017b"}},"repository":{"url":"git+https://github.com/JoshuaKGoldberg/formatly.git","type":"git"},"_npmVersion":"11.19.0","description":"Formats your code with whatever formatter your project is already using. 🧼","directories":{},"lint-staged":{"*":"prettier --ignore-unknown --write"},"_nodeVersion":"24.21.0","dependencies":{"fd-package-json":"^2.0.0","package-manager-detector":"^1.8.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.34.0","devDependencies":{"knip":"6.38.0","tsup":"8.5.1","husky":"9.1.7","oxfmt":"0.70.0","cspell":"10.3.0","dprint":"0.57.4","eslint":"10.11.0","vitest":"5.0.0","prettier":"3.9.6","@eslint/js":"10.0.1","release-it":"21.1.0","typescript":"5.9.3","@types/node":"26.6.1","lint-staged":"17.5.0","markdownlint":"0.41.1","@biomejs/biome":"2.5.14","@biomejs/js-api":"6.0.0","eslint-plugin-n":"18.3.0","markdownlint-cli":"0.49.1","console-fail-test":"0.9.0","eslint-plugin-yml":"3.8.1","typescript-eslint":"8.70.0","@dprint/typescript":"0.96.1","prettier-plugin-sh":"0.20.0","sentences-per-line":"0.3.0","@vitest/coverage-v8":"5.0.0","eslint-plugin-jsdoc":"64.5.0","eslint-plugin-jsonc":"3.4.1","@biomejs/wasm-nodejs":"2.5.14","eslint-plugin-regexp":"3.3.0","@vitest/eslint-plugin":"1.6.27","create-typescript-app":"2.64.0","prettier-plugin-curly":"0.4.1","eslint-plugin-markdown":"5.1.0","eslint-plugin-package-json":"0.54.0","eslint-plugin-perfectionist":"5.12.0","prettier-plugin-packagejson":"3.0.2","@types/eslint-plugin-markdown":"2.0.2","@release-it/conventional-changelog":"12.0.0","@eslint-community/eslint-plugin-eslint-comments":"4.8.0"},"_npmOperationalInternal":{"tmp":"tmp/formatly_0.11.2_1790537668250_0.08624944419886393","host":"s3://npm-registry-packages-npm-production"}},"0.11.3":{"name":"formatly","version":"0.11.3","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"license":"MIT","_id":"formatly@0.11.3","maintainers":[{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"}],"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"bin":{"formatly":"bin/index.mjs"},"dist":{"shasum":"50b0a3c5c846b5f62ca45bfc69f269b8faf6a408","tarball":"https://registry.npmjs.org/formatly/-/formatly-0.11.3.tgz","fileCount":40,"integrity":"sha512-5z40eyWUU04iDr5d97VE6fuBNnz0rclq5ARWO3qHr47ENiZlhicjpC5rfJEVbk/mXNQcJ43/Q5ojQPbesWwSYA==","signatures":[{"sig":"MEQCIG7XZCWOP0/4hNNlm1/Gx/A8oj1aXGnp08ThfrA4Sy5AAiAsgqJRyc9CyT4d94idzxPC4dRsXywo68Wl8w/fRZDslQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCDl6vwr6A6q9GAZvoaq5bFmw+k96p/Aj1iFZCiwajcOAIgEBL+S6C8947lLNs6iFFMAE2IaaF2mI6XXFnONt7ApZk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.11.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":71651},"main":"lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.14.0"},"gitHead":"57df7b207426bf17e650c79abdfc95a1959b0a3f","scripts":{"tsc":"tsc","lint":"eslint . --max-warnings 0","test":"vitest","build":"tsup","format":"prettier .","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","prepare":"husky","lint:knip":"knip","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a498ed0a-089a-4a65-8006-695da0c8017b"}},"repository":{"url":"git+https://github.com/JoshuaKGoldberg/formatly.git","type":"git"},"_npmVersion":"11.19.0","description":"Formats your code with whatever formatter your project is already using. 🧼","directories":{},"lint-staged":{"*":"prettier --ignore-unknown --write"},"_nodeVersion":"24.21.0","dependencies":{"fd-package-json":"^2.0.0","package-manager-detector":"^1.8.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.34.0","devDependencies":{"knip":"6.38.0","tsup":"8.5.1","husky":"9.1.7","oxfmt":"0.70.0","cspell":"10.3.0","dprint":"0.57.4","eslint":"10.11.0","vitest":"5.0.0","prettier":"3.9.6","@eslint/js":"10.0.1","release-it":"21.1.0","typescript":"5.9.3","@types/node":"26.6.1","lint-staged":"17.5.0","markdownlint":"0.41.1","@biomejs/biome":"2.5.14","@biomejs/js-api":"6.0.0","eslint-plugin-n":"18.3.0","markdownlint-cli":"0.49.1","console-fail-test":"0.9.0","eslint-plugin-yml":"3.8.1","typescript-eslint":"8.70.0","@dprint/typescript":"0.96.1","prettier-plugin-sh":"0.20.0","sentences-per-line":"0.3.0","@vitest/coverage-v8":"5.0.0","eslint-plugin-jsdoc":"64.5.0","eslint-plugin-jsonc":"3.4.1","@biomejs/wasm-nodejs":"2.5.14","eslint-plugin-regexp":"3.3.0","@vitest/eslint-plugin":"1.6.27","create-typescript-app":"2.64.0","prettier-plugin-curly":"0.4.1","eslint-plugin-markdown":"5.1.0","eslint-plugin-package-json":"0.54.0","eslint-plugin-perfectionist":"5.12.0","prettier-plugin-packagejson":"3.0.2","@types/eslint-plugin-markdown":"2.0.2","@release-it/conventional-changelog":"12.0.0","@eslint-community/eslint-plugin-eslint-comments":"4.8.0"},"_npmOperationalInternal":{"tmp":"tmp/formatly_0.11.3_1790539008549_0.6410148926277639","host":"s3://npm-registry-packages-npm-production"}},"0.11.4":{"_id":"formatly@0.11.4","bin":{"formatly":"bin/index.mjs"},"bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"dist":{"shasum":"3fa2a47e5ce03e1d54ba7b7d64f1208d67f41a4e","tarball":"https://registry.npmjs.org/formatly/-/formatly-0.11.4.tgz","fileCount":40,"integrity":"sha512-TeCC10lP8KCgoX+Fe5lryILIT0/Dy+nP0OSVnsuB5CwXoLuOdqxCYlPFF1inR8S/zTy1ec7TjhS2TeRKWzzImA==","signatures":[{"sig":"MEYCIQDKl47fqR4PJe6LJ/N13i2RPzyz6kSRgOn/nEi+E2xPiAIhANW47j9tBbQee6uoH+9kKp+KwWGpE1dkZAjnYen+KkSM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAHiHL8Os0mCzFziHxuwplrFS0nzqTSweFbdhm6klUaZAiAvTsCgsDze5nt8aZBNAlqr5QhKcmO2ywcT+IILJLS1oA=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.11.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":73433},"main":"lib/index.js","name":"formatly","type":"module","types":"./lib/index.d.ts","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"engines":{"node":">=18.14.0"},"gitHead":"5777e4089316ca23141b17b56a973368e46471f8","license":"MIT","scripts":{"tsc":"tsc","lint":"eslint . --max-warnings 0","test":"vitest","build":"tsup","format":"prettier .","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","prepare":"husky","lint:knip":"knip","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\""},"version":"0.11.4","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a498ed0a-089a-4a65-8006-695da0c8017b"}},"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","repository":{"url":"git+https://github.com/JoshuaKGoldberg/formatly.git","type":"git"},"_npmVersion":"11.19.0","description":"Formats your code with whatever formatter your project is already using. 🧼","directories":{},"lint-staged":{"*":"prettier --ignore-unknown --write"},"maintainers":[{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"}],"_nodeVersion":"24.21.0","dependencies":{"fd-package-json":"^2.0.0","package-manager-detector":"^1.8.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.34.0","devDependencies":{"knip":"6.38.0","tsup":"8.5.1","husky":"9.1.7","oxfmt":"0.70.0","cspell":"10.3.0","dprint":"0.57.4","eslint":"10.11.0","vitest":"5.0.0","prettier":"3.9.6","@eslint/js":"10.0.1","release-it":"21.1.0","typescript":"5.9.3","@types/node":"26.6.1","lint-staged":"17.5.0","markdownlint":"0.41.1","@biomejs/biome":"2.5.14","@biomejs/js-api":"6.0.0","eslint-plugin-n":"18.3.0","markdownlint-cli":"0.49.1","console-fail-test":"0.9.0","eslint-plugin-yml":"3.8.1","typescript-eslint":"8.70.0","@dprint/typescript":"0.96.1","prettier-plugin-sh":"0.20.0","sentences-per-line":"0.3.0","@vitest/coverage-v8":"5.0.0","eslint-plugin-jsdoc":"64.5.0","eslint-plugin-jsonc":"3.4.1","@biomejs/wasm-nodejs":"2.5.14","eslint-plugin-regexp":"3.3.0","@vitest/eslint-plugin":"1.6.27","create-typescript-app":"2.64.0","prettier-plugin-curly":"0.4.1","eslint-plugin-markdown":"5.1.0","eslint-plugin-package-json":"0.54.0","eslint-plugin-perfectionist":"5.12.0","prettier-plugin-packagejson":"3.0.2","@types/eslint-plugin-markdown":"2.0.2","@release-it/conventional-changelog":"12.0.0","@eslint-community/eslint-plugin-eslint-comments":"4.8.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/formatly_0.11.4_1790539234589_0.3661993929254379"}}},"time":{"created":"2025-01-08T18:06:12.067Z","modified":"2026-09-27T20:00:35.000Z","1.0.0":"2018-07-06T12:24:37.356Z","0.1.0":"2025-01-08T18:06:12.392Z","0.2.0":"2025-03-31T18:03:48.812Z","0.2.1":"2025-04-14T12:08:49.581Z","0.2.2":"2025-04-23T18:47:48.452Z","0.2.3":"2025-05-02T16:27:26.671Z","0.2.4":"2025-06-02T23:20:07.757Z","0.3.0":"2025-06-12T13:04:19.199Z","0.4.0":"2026-08-14T12:39:32.336Z","0.5.0":"2026-08-19T04:33:58.537Z","0.6.0":"2026-08-19T05:08:50.338Z","0.7.0":"2026-08-19T13:28:47.455Z","0.7.1":"2026-09-19T21:55:20.107Z","0.8.0":"2026-09-19T22:20:59.684Z","0.9.0":"2026-09-21T13:53:47.052Z","0.9.1":"2026-09-25T13:23:45.983Z","0.10.0":"2026-09-27T15:53:18.366Z","0.11.0":"2026-09-27T16:34:45.736Z","0.11.1":"2026-09-27T19:30:54.893Z","0.11.2":"2026-09-27T19:34:28.355Z","0.11.3":"2026-09-27T19:56:48.636Z","0.11.4":"2026-09-27T20:00:34.674Z"},"bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"license":"MIT","homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","repository":{"url":"git+https://github.com/JoshuaKGoldberg/formatly.git","type":"git"},"description":"Formats your code with whatever formatter your project is already using. 🧼","maintainers":[{"name":"joshuakgoldberg","email":"npm@joshuakgoldberg.com"}],"readme":"<h1 align=\"center\">Formatly</h1>\n\n<p align=\"center\">\n\tFormats your code with whatever formatter your project is already using.\n\t🧼\n</p>\n\n<p align=\"center\">\n\t<!-- prettier-ignore-start -->\n\t<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->\n\t<a href=\"#contributors\" target=\"_blank\"><img alt=\"👪 All Contributors: 6\" src=\"https://img.shields.io/badge/%F0%9F%91%AA_all_contributors-6-21bb42.svg\" /></a>\n<!-- ALL-CONTRIBUTORS-BADGE:END -->\n\t<!-- prettier-ignore-end -->\n\t<a href=\"https://github.com/JoshuaKGoldberg/formatly/blob/main/.github/CODE_OF_CONDUCT.md\" target=\"_blank\"><img alt=\"🤝 Code of Conduct: Kept\" src=\"https://img.shields.io/badge/%F0%9F%A4%9D_code_of_conduct-kept-21bb42\" /></a>\n\t<a href=\"https://codecov.io/gh/JoshuaKGoldberg/formatly\" target=\"_blank\"><img alt=\"🧪 Coverage\" src=\"https://img.shields.io/codecov/c/github/JoshuaKGoldberg/formatly?label=%F0%9F%A7%AA%20coverage\" /></a>\n\t<a href=\"https://github.com/JoshuaKGoldberg/formatly/blob/main/LICENSE.md\" target=\"_blank\"><img alt=\"📝 License: MIT\" src=\"https://img.shields.io/badge/%F0%9F%93%9D_license-MIT-21bb42.svg\" /></a>\n\t<a href=\"http://npmjs.com/package/formatly\" target=\"_blank\"><img alt=\"📦 npm version\" src=\"https://img.shields.io/npm/v/formatly?color=21bb42&label=%F0%9F%93%A6%20npm\" /></a>\n\t<img alt=\"💪 TypeScript: Strict\" src=\"https://img.shields.io/badge/%F0%9F%92%AA_typescript-strict-21bb42.svg\" />\n</p>\n\n## Usage\n\n`formatly` can automatically detect and format with:\n\n- [Biome](https://biomejs.dev/formatter)\n- [deno fmt](https://docs.deno.com/runtime/reference/cli/fmt)\n- [dprint](https://dprint.dev)\n- [Oxfmt](https://oxc.rs/docs/guide/usage/formatter)\n- [Prettier](https://prettier.io)\n\nSee [Formatter Detection](#formatter-detection) for details on how they are detected.\n\n### CLI\n\n```shell\nnpx formatly <files>\n```\n\n`formatly` takes in any number of glob patterns.\nIt will then:\n\n1. Detect which [supported formatter](#supported-formatters) is configured in the repository\n2. Pass those glob patterns directly to the formatter\n\nFor example, to match all directories and folders in the current directory:\n\n```shell\nnpx formatly *\n```\n\nTo match only `.ts` files in `src/`:\n\n```shell\nnpx formatly \"src/**/*.ts\"\n```\n\n#### `--dry-run`\n\nPass `--dry-run` to report which formatter was detected and the command that would run, without formatting anything:\n\n```shell\nnpx formatly --dry-run \"src/**/*.ts\"\n```\n\n```plaintext\nDetected prettier. 🔍\nWould run: prettier --write --ignore-unknown src/**/*.ts\n```\n\n#### `--help` and `--version`\n\nPass `--help` (`-h`) to print usage information, or `--version` (`-v`) to print formatly's version.\n\n### Node.js API\n\n```shell\nnpm i formatly\n```\n\nThe `formatly` package exports the functions used by the `formatly` CLI, as well as a `format` function for formatting text in memory and a `formatFiles` function for formatting or checking files on disk.\n\n#### `format`\n\nFormats a `string` of text as if it were a file at a given path, without writing to disk.\n\n```ts\nimport { format } from \"formatly\";\nimport fs from \"node:fs/promises\";\n\nconst report = await format(\"console.log(123)\", { filePath: \"src/index.ts\" });\n\nif (report.ran && !report.error) {\n\tawait fs.writeFile(\"src/index.ts\", report.formatted);\n}\n```\n\nParameters:\n\n1. `text: string` _(required)_: the text to format\n2. `options: FormatOptions` _(required)_:\n   - `filePath: string` _(required)_: path the text should be treated as being at, relative to `cwd`; formatters use it to infer the parser and apply any per-path config overrides\n   - `cwd: string` _(optional)_: working directory, if not `\".\"`\n   - `formatter: FormatterName` _(optional)_: explicit formatter to use instead of detecting one, as in [`formatly`](#formatly)\n   - `order: FormatterName[]` _(optional)_: formatters to detect first, in order, as used by [`resolveFormatter`](#resolveformatter)\n   - `stopDirectory: StopDirectory` _(optional)_: directory to stop searching parent directories for a config file at, as used by [`resolveFormatter`](#resolveformatter)\n\nResolves with a `FormatReport`, which is one of:\n\n- `FormatlyReportError` if a formatter could not be determined, which is an object containing:\n  - `message: string`\n  - `ran: false`\n- `FormatReportFailure` if the formatter ran but failed, such as on a syntax error, which is an object containing:\n  - `error: Error`: the failure, including any output the formatter printed to stderr\n  - `formatter: Formatter`: as resolved by [`resolveFormatter`](#resolveformatter)\n  - `ran: true`\n- `FormatReportResult` if the formatter succeeded, which is an object containing:\n  - `formatted: string`: the formatted text\n  - `formatter: Formatter`: as resolved by [`resolveFormatter`](#resolveformatter)\n  - `ran: true`\n\nText is formatted by piping it through the formatter's CLI, so the formatter must be installed in the project.\nPrettier is instead run in memory using the project's own installed `prettier` package when it can be resolved from `cwd`.\nBiome is instead run in memory when the project installs [`@biomejs/js-api`](https://biomejs.dev/reference/js-api) along with a `@biomejs/wasm-nodejs` matching its `@biomejs/biome` version, unless its config uses `extends`, is a nested (`\"root\": false`) config, or enables `vcs.useIgnoreFile`.\ndprint is instead run through one long-lived `dprint editor-service` process per `cwd`, which doesn't keep the Node.js process alive while idle.\n\n> Note: `deno fmt` can only be told the file's extension, not its path, so per-path config overrides in `deno.json` don't apply to `format`.\n> `fmt.exclude` is honored by asking Deno about the file on disk, so it only applies to files that already exist.\n\n#### `formatFiles`\n\nFormats, or checks the formatting of, any number of files on disk in a single formatter invocation.\n\n```ts\nimport { formatFiles } from \"formatly\";\n\nconst report = await formatFiles([\"src/a.ts\", \"src/b.ts\"], { check: true });\n\nif (report.ran && !report.error) {\n\tconsole.log(\"Unformatted files:\", report.changed);\n}\n```\n\nParameters:\n\n1. `filePaths: string[]` _(required)_: paths of the files to format, relative to `cwd`\n2. `options: FormatFilesOptions` _(optional)_:\n   - `check: boolean` _(optional)_: whether to report which files aren't formatted instead of formatting them\n   - `cwd: string` _(optional)_: working directory, if not `\".\"`\n   - `formatter: FormatterName` _(optional)_: explicit formatter to use instead of detecting one, as in [`formatly`](#formatly)\n   - `order: FormatterName[]` _(optional)_: formatters to detect first, in order, as used by [`resolveFormatter`](#resolveformatter)\n   - `stopDirectory: StopDirectory` _(optional)_: directory to stop searching parent directories for a config file at, as used by [`resolveFormatter`](#resolveformatter)\n\nResolves with a `FormatFilesReport`, which is one of:\n\n- `FormatlyReportError` if a formatter could not be determined, which is an object containing:\n  - `message: string`\n  - `ran: false`\n- `FormatFilesReportFailure` if the formatter ran but failed, which is an object containing:\n  - `error: Error`: the failure, including any output the formatter printed to stderr when checking\n  - `formatter: Formatter`: as resolved by [`resolveFormatter`](#resolveformatter)\n  - `ran: true`\n- `FormatFilesReportResult` if the formatter succeeded, which is an object containing:\n  - `changed: string[]`: absolute paths of the files that were changed, or with `check`, that would be changed\n  - `formatter: Formatter`: as resolved by [`resolveFormatter`](#resolveformatter)\n  - `ran: true`\n\n> Note: Deno fails when none of the given files can be formatted without `check`, such as when they're all excluded.\n\n#### `formatly`\n\nRuns formatting on any number of glob pattern `string`s.\n\n```ts\nimport { formatly } from \"formatly\";\n\nawait formatly([\"*\"]);\n```\n\nParameters:\n\n1. `patterns: string[]` _(required)_: any number of glob patterns\n2. `options: FormatlyOptions` _(optional)_:\n   - `cwd: string` _(optional)_: working directory, if not `\".\"`\n   - `dryRun: boolean` _(optional)_: whether to resolve the command that would run without running it\n   - `formatter: FormatterName` _(optional)_: explicit formatter to use instead of detecting one, supports `\"biome\"`, `\"deno\"`, `\"dprint\"`, `\"oxfmt\"`, and `\"prettier\"`\n   - `order: FormatterName[]` _(optional)_: formatters to detect first, in order, as used by [`resolveFormatter`](#resolveformatter)\n   - `stopDirectory: StopDirectory` _(optional)_: directory to stop searching parent directories for a config file at, as used by [`resolveFormatter`](#resolveformatter)\n\nResolves with a `FormatlyReport`, which is either:\n\n- `FormatlyReportError` if a formatter could not be determined, which an object containing:\n  - `ran: false`\n- `FormatlyReportResult` if a formatter could be determined, which is an object containing:\n  - `formatter: Formatter`: as resolved by [`resolveFormatter`](#resolveformatter)\n  - `ran: true`\n  - `result`, one of:\n    - `FormatlyReportChildProcessResult` if the formatter was spawned as a child process:\n      - `code: number | null`: exit code of the child process\n      - `signal: NodeJS.Signal | null`: signal that terminated the child process\n    - `FormatlyReportDryRunResult` if `dryRun` was passed:\n      - `args: string[]`: arguments of the command that would have run\n      - `command: string`: the command that would have run\n    - `FormatlyReportVirtualResult` if the formatter was run in memory:\n      - `code: number`: exit code the formatter would have exited with as a child process\n\nSpawned formatters' error output is passed through to the process's stderr, while their other output is ignored.\n\nFor example, to run formatting on TypeScript source files in a child directory and check the result:\n\n```ts\nimport { formatly } from \"formatly\";\n\nconst report = await formatly([\"src/**/*.ts\"], { cwd: \"path/to/project\" });\n\nif (!report.ran) {\n\tconsole.error(\"Could not determine formatter.\");\n\treturn;\n}\n\nconst { formatter, result } = report;\n\nif (\"code\" in result && result.code) {\n\tconsole.error(`${formatter.name} exited with code ${result.code}.`);\n} else {\n\tconsole.log(`Formatted with ${formatter.name}! 🧼`);\n}\n```\n\n#### `resolveFormatter`\n\nDetects which of the [supported formatters](#supported-formatters) to use for a directory.\n\n```ts\nimport { resolveFormatter } from \"formatly\";\n\nconst formatter = await resolveFormatter();\n\n// {\n//   checker: [Function],\n//   formatText: [Function],\n//   name: \"prettier\",\n//   runner: [Function],\n//   testers: { ... }\n// }\nconsole.log(formatter);\n```\n\nParameters:\n\n1. `cwd: string` _(optional)_: working directory, if not `\".\"`\n2. `options: ResolveFormatterOptions` _(optional)_:\n   - `order: FormatterName[]` _(optional)_: formatters to detect first, in order\n   - `stopDirectory: StopDirectory` _(optional)_: directory to stop searching parent directories for a config file at, either a `string` path or a `(currentDirectory: string) => boolean` function\n\nBy default, only the working directory is searched for a config file.\nPassing `stopDirectory` also searches each parent directory in turn, stopping once the directory matching `stopDirectory` has been searched.\nA `string` is matched as a directory path, while a function is called with each directory and may return `true` to indicate the last directory to search.\nReaching the file system root without a match throws an error, as that indicates a `stopDirectory` that isn't a parent of the working directory.\n\nFor example, to search up to whichever parent directory contains a `.git` directory:\n\n```ts\nimport { resolveFormatter } from \"formatly\";\nimport { existsSync } from \"node:fs\";\nimport * as path from \"node:path\";\n\nconst formatter = await resolveFormatter(\"path/to/project\", {\n\tstopDirectory: (currentDirectory) =>\n\t\texistsSync(path.join(currentDirectory, \".git\")),\n});\n\nconsole.log(formatter);\n```\n\nBy default, formatters are detected in their [documented order](#supported-formatters).\nPassing `order` tries the named formatters first, in the order given; any formatter not named is tried afterwards in the default order.\nDuplicate names, and names that aren't supported formatters, throw an error.\n\nFor example, to detect Biome before Prettier:\n\n```ts\nimport { resolveFormatter } from \"formatly\";\n\nconst formatter = await resolveFormatter(\"path/to/project\", {\n\torder: [\"biome\", \"prettier\"],\n});\n\nconsole.log(formatter);\n```\n\nResolves with either:\n\n- `undefined` if a formatter could not be detected\n- `Formatter` if one can be found, which is an object containing:\n  - `name: string`: English name of the formatter\n  - `checker: FormatterChecker`: the function used to list which files aren't formatted\n  - `formatText: FormatterTextRunner`: the function used to format text in memory\n  - `runner: FormatterRunner`: the function used to run the formatter on files\n  - `testers: object`: strings and regular expressions used to test for the formatter\n\n## Formatter Detection\n\nFormatters are detected based on the first match from, in order:\n\n1. Existence of the formatter's default supported config file name\n2. A `package.json` script running the formatter's format command, such as `deno fmt`\n3. A `package.json` script mentioning the formatter's name as a whole word, such as `deno task build`\n4. Well-known root-level `package.json` key\n\nConfig files are only searched for in the working directory unless a [`stopDirectory`](#resolveformatter) is provided.\n`package.json` is always searched for in the working directory and its parent directories.\n\n### Supported Formatters\n\n| Formatter                                                   | Config File                                                                                             | Package Key  | Format Command                            |\n| ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------ | ----------------------------------------- |\n| [Biome](https://biomejs.dev/formatter)                      | [Configure Biome](https://biomejs.dev/guides/configure-biome)                                           |              | `biome check`, `biome ci`, `biome format` |\n| [deno fmt](https://docs.deno.com/runtime/reference/cli/fmt) | [Deno Configuration > Formatting](https://docs.deno.com/runtime/fundamentals/configuration/#formatting) |              | `deno fmt`                                |\n| [dprint](https://dprint.dev)                                | [dprint setup](https://dprint.dev/setup)                                                                |              | `dprint check`, `dprint fmt`              |\n| [Oxfmt](https://oxc.rs/docs/guide/usage/formatter)          | [Oxfmt Configuration](https://oxc.rs/docs/guide/usage/formatter/config.html)                            |              | `oxfmt`                                   |\n| [Prettier](https://prettier.io)                             | [Prettier Configuration File](https://prettier.io/docs/en/configuration)                                | `\"prettier\"` | `prettier`                                |\n\n> Want support for a formatter not mentioned here?\n> Great!\n> Please [file a feature request GitHub issue](https://github.com/JoshuaKGoldberg/formatly/issues/new?assignees=&labels=type%3A+feature&projects=&template=03-feature.yml&title=%F0%9F%9A%80+Feature%3A+%3Cshort+description+of+the+feature%3E).\n> 🙏\n\n## Why?\n\nFormatly is a tool for any developer tool that creates files for users.\nIf your tool creates, say, a config file that users are meant to check into their repository, you probably want that file to be formatted per the user's preference.\nBut there are several popular formatters in use today: it's not enough to just call to `prettier.format`.\n\nFormatly takes away the burden of\n\n- Detecting which formatter -if any- a userland project is using\n- Calling to that formatter's API(s) to format the file, on disk or in memory\n\n### Does Formatly replace Prettier, etc.?\n\nNo.\nFormatly is a detection + wrapping layer around formatters such as Prettier.\nUserland projects still need to configure a formatter themselves.\n\n## Development\n\nSee [`.github/CONTRIBUTING.md`](./.github/CONTRIBUTING.md), then [`.github/DEVELOPMENT.md`](./.github/DEVELOPMENT.md).\nThanks! 🧼\n\n## Contributors\n\n<!-- spellchecker: disable -->\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/aleclarson\"><img src=\"https://avatars.githubusercontent.com/u/1925840?v=4?s=100\" width=\"100px;\" alt=\"Alec Larson\"/><br /><sub><b>Alec Larson</b></sub></a><br /><a href=\"#ideas-aleclarson\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"https://github.com/JoshuaKGoldberg/formatly/commits?author=aleclarson\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://bjornlu.com\"><img src=\"https://avatars.githubusercontent.com/u/34116392?v=4?s=100\" width=\"100px;\" alt=\"Bjorn Lu\"/><br /><sub><b>Bjorn Lu</b></sub></a><br /><a href=\"#ideas-bluwy\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"https://github.com/JoshuaKGoldberg/formatly/commits?author=bluwy\" title=\"Code\">💻</a> <a href=\"https://github.com/JoshuaKGoldberg/formatly/issues?q=author%3Abluwy\" title=\"Bug reports\">🐛</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://lishaduck.github.io\"><img src=\"https://avatars.githubusercontent.com/u/88557639?v=4?s=100\" width=\"100px;\" alt=\"Eli\"/><br /><sub><b>Eli</b></sub></a><br /><a href=\"https://github.com/JoshuaKGoldberg/formatly/issues?q=author%3Alishaduck\" title=\"Bug reports\">🐛</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://www.joshuakgoldberg.com/\"><img src=\"https://avatars.githubusercontent.com/u/3335181?v=4?s=100\" width=\"100px;\" alt=\"Josh Goldberg ✨\"/><br /><sub><b>Josh Goldberg ✨</b></sub></a><br /><a href=\"https://github.com/JoshuaKGoldberg/formatly/commits?author=JoshuaKGoldberg\" title=\"Code\">💻</a> <a href=\"#content-JoshuaKGoldberg\" title=\"Content\">🖋</a> <a href=\"#ideas-JoshuaKGoldberg\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#infra-JoshuaKGoldberg\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a> <a href=\"#maintenance-JoshuaKGoldberg\" title=\"Maintenance\">🚧</a> <a href=\"#projectManagement-JoshuaKGoldberg\" title=\"Project Management\">📆</a> <a href=\"#tool-JoshuaKGoldberg\" title=\"Tools\">🔧</a> <a href=\"https://github.com/JoshuaKGoldberg/formatly/commits?author=JoshuaKGoldberg\" title=\"Documentation\">📖</a> <a href=\"https://github.com/JoshuaKGoldberg/formatly/issues?q=author%3AJoshuaKGoldberg\" title=\"Bug reports\">🐛</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://webpro.nl/\"><img src=\"https://avatars.githubusercontent.com/u/456426?v=4?s=100\" width=\"100px;\" alt=\"Lars Kappert\"/><br /><sub><b>Lars Kappert</b></sub></a><br /><a href=\"https://github.com/JoshuaKGoldberg/formatly/issues?q=author%3Awebpro\" title=\"Bug reports\">🐛</a> <a href=\"https://github.com/JoshuaKGoldberg/formatly/commits?author=webpro\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/rubiesonthesky\"><img src=\"https://avatars.githubusercontent.com/u/2591240?v=4?s=100\" width=\"100px;\" alt=\"rubiesonthesky\"/><br /><sub><b>rubiesonthesky</b></sub></a><br /><a href=\"https://github.com/JoshuaKGoldberg/formatly/issues?q=author%3Arubiesonthesky\" 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<!-- spellchecker: enable -->\n\n> 💝 This package was templated with [`create-typescript-app`](https://github.com/JoshuaKGoldberg/create-typescript-app) using the [Bingo framework](https://create.bingo).\n","readmeFilename":"README.md"}