{"versions":{"0.1.0":{"name":"formatly","version":"0.1.0","description":"Formats your code with whatever formatter your project is already using. 🧼","repository":{"type":"git","url":"git+https://github.com/JoshuaKGoldberg/formatly.git"},"license":"MIT","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"type":"module","main":"./lib/index.js","bin":{"formatly":"bin/index.mjs"},"scripts":{"build":"tsup","format":"prettier .","lint":"eslint . --max-warnings 0","lint:knip":"knip","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\"","prepare":"husky","test":"vitest","tsc":"tsc"},"lint-staged":{"*":"prettier --ignore-unknown --write"},"dependencies":{"execa":"^9.5.2","read-package-up":"^11.0.0"},"devDependencies":{"@eslint-community/eslint-plugin-eslint-comments":"4.4.1","@eslint/js":"9.17.0","@release-it/conventional-changelog":"9.0.3","@types/eslint-plugin-markdown":"2.0.2","@types/node":"22.10.2","@vitest/coverage-v8":"2.1.8","@vitest/eslint-plugin":"1.1.20","console-fail-test":"0.5.0","cspell":"8.17.1","eslint":"9.17.0","eslint-plugin-jsdoc":"50.6.1","eslint-plugin-jsonc":"2.18.2","eslint-plugin-markdown":"5.1.0","eslint-plugin-n":"17.15.1","eslint-plugin-package-json":"0.19.0","eslint-plugin-perfectionist":"4.4.0","eslint-plugin-regexp":"2.7.0","eslint-plugin-yml":"1.16.0","husky":"9.1.7","knip":"5.41.1","lint-staged":"15.2.11","markdownlint":"0.37.2","markdownlint-cli":"0.43.0","prettier":"3.4.2","prettier-plugin-curly":"0.3.1","prettier-plugin-packagejson":"2.5.6","prettier-plugin-sh":"0.14.0","release-it":"17.10.0","sentences-per-line":"0.3.0","tsup":"8.3.5","typescript":"5.7.2","typescript-eslint":"8.18.1","vitest":"2.1.8"},"engines":{"node":">=18.3.0"},"publishConfig":{"provenance":true},"_id":"formatly@0.1.0","gitHead":"766ed61b5ca4ff143603b1706d989d9d99fc9943","types":"./lib/index.d.ts","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-i99u7zPm2OempXMXkTKm42fxsOPd4faACagIA5EVhEaXogR9cfMYNcQwOGPDn2fSYKxAKCUZs0TfupvF5PTdOw==","shasum":"87c576064f7749a6b2cb33ff726f194cf54f1a38","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/formatly/-/formatly-0.1.0.tgz","fileCount":19,"unpackedSize":21578,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDgj5Iarwe7dK1jabVyVl3kbbEuCeznXsyIDp+oQglV0wIhAJuWU4Rs1+pFmVC9ybwooi/B8uhqjHozhRf7/g6G8+/p"}],"size":7268},"_npmUser":{"name":"anonymous","email":"npm@joshuakgoldberg.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"npm@joshuakgoldberg.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/formatly_0.1.0_1736359572221_0.8003550471680565"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-01-08T18:06:12.392Z","publish_time":1736359572392,"_source_registry_name":"default","contributors":[]},"0.2.0":{"name":"formatly","version":"0.2.0","description":"Formats your code with whatever formatter your project is already using. 🧼","repository":{"type":"git","url":"git+https://github.com/JoshuaKGoldberg/formatly.git"},"license":"MIT","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"type":"module","main":"lib/index.js","bin":{"formatly":"bin/index.mjs"},"scripts":{"build":"tsup","format":"prettier .","lint":"eslint . --max-warnings 0","lint:knip":"knip","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\"","prepare":"husky","test":"vitest","tsc":"tsc"},"lint-staged":{"*":"prettier --ignore-unknown --write"},"dependencies":{"read-package-up":"^11.0.0"},"devDependencies":{"@eslint-community/eslint-plugin-eslint-comments":"4.4.1","@eslint/js":"9.22.0","@release-it/conventional-changelog":"10.0.0","@types/eslint-plugin-markdown":"2.0.2","@types/node":"22.13.10","@vitest/coverage-v8":"3.0.9","@vitest/eslint-plugin":"1.1.38","console-fail-test":"0.5.0","create-typescript-app":"2.19.0","cspell":"8.17.5","eslint":"9.22.0","eslint-plugin-jsdoc":"50.6.8","eslint-plugin-jsonc":"2.19.1","eslint-plugin-markdown":"5.1.0","eslint-plugin-n":"17.16.2","eslint-plugin-package-json":"0.29.0","eslint-plugin-perfectionist":"4.10.1","eslint-plugin-regexp":"2.7.0","eslint-plugin-yml":"1.17.0","husky":"9.1.7","knip":"5.46.0","lint-staged":"15.5.0","markdownlint":"0.37.4","markdownlint-cli":"0.44.0","prettier":"3.5.3","prettier-plugin-curly":"0.3.1","prettier-plugin-packagejson":"2.5.10","prettier-plugin-sh":"0.15.0","release-it":"18.1.2","sentences-per-line":"0.3.0","tsup":"8.4.0","typescript":"5.8.2","typescript-eslint":"8.28.0","vitest":"3.0.9"},"packageManager":"pnpm@10.4.0","engines":{"node":">=18.3.0"},"publishConfig":{"provenance":true},"_id":"formatly@0.2.0","gitHead":"d96f6a1e8b1e3150da5a73ae8c590bd84de27c4e","types":"./lib/index.d.ts","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","_nodeVersion":"20.19.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-RRrbBY3wM5b6zFLnB3ZrLe3YMxtsciqgW64anMjSn6Gu+LMNReEXwAzhxl+zXTmqk+nrmwoyhQNXW0uQ3PIb7g==","shasum":"6b87ecdf19588dd104bb0731a146899549d1b0c2","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/formatly/-/formatly-0.2.0.tgz","fileCount":14,"unpackedSize":18254,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBctxdM6jFFbCmqS3egTOhGFGRpEAh0uqIEkNnzNTZAaAiAXj/qFwf4+zInxs0jbGJX+sNsjBYg0fJnwn5rCVHNoMA=="}],"size":6529},"_npmUser":{"name":"anonymous","email":"npm@joshuakgoldberg.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"npm@joshuakgoldberg.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/formatly_0.2.0_1743444228636_0.5037788135225061"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-03-31T18:03:48.812Z","publish_time":1743444228812,"_source_registry_name":"default","contributors":[]},"0.2.1":{"name":"formatly","version":"0.2.1","description":"Formats your code with whatever formatter your project is already using. 🧼","repository":{"type":"git","url":"git+https://github.com/JoshuaKGoldberg/formatly.git"},"license":"MIT","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"type":"module","main":"lib/index.js","bin":{"formatly":"bin/index.mjs"},"scripts":{"build":"tsup","format":"prettier .","lint":"eslint . --max-warnings 0","lint:knip":"knip","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\"","prepare":"husky","test":"vitest","tsc":"tsc"},"lint-staged":{"*":"prettier --ignore-unknown --write"},"dependencies":{"fd-package-json":"^1.2.0"},"devDependencies":{"@eslint-community/eslint-plugin-eslint-comments":"4.4.1","@eslint/js":"9.24.0","@release-it/conventional-changelog":"10.0.0","@types/eslint-plugin-markdown":"2.0.2","@types/node":"22.14.0","@vitest/coverage-v8":"3.1.1","@vitest/eslint-plugin":"1.1.38","console-fail-test":"0.5.0","create-typescript-app":"2.33.0","cspell":"8.18.0","eslint":"9.24.0","eslint-plugin-jsdoc":"50.6.8","eslint-plugin-jsonc":"2.20.0","eslint-plugin-markdown":"5.1.0","eslint-plugin-n":"17.16.2","eslint-plugin-package-json":"0.29.0","eslint-plugin-perfectionist":"4.11.0","eslint-plugin-regexp":"2.7.0","eslint-plugin-yml":"1.17.0","husky":"9.1.7","knip":"5.47.0","lint-staged":"15.5.0","markdownlint":"0.37.4","markdownlint-cli":"0.44.0","prettier":"3.5.3","prettier-plugin-curly":"0.3.1","prettier-plugin-packagejson":"2.5.10","prettier-plugin-sh":"0.16.0","release-it":"18.1.2","sentences-per-line":"0.3.0","tsup":"8.4.0","typescript":"5.8.2","typescript-eslint":"8.29.0","vitest":"3.1.1"},"packageManager":"pnpm@10.7.0","engines":{"node":">=18.3.0"},"publishConfig":{"provenance":true},"_id":"formatly@0.2.1","gitHead":"7b8cddbadc78b9fb1c6c0b353bac6679f95c1b98","types":"./lib/index.d.ts","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","_nodeVersion":"20.19.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-cnAZToHcZXkd7aod4vh0C5WCivx1Am0YLjX4xD55ueZbMTEt5ut2exNCPilo/aIemYaJUK52zkWZEq8sceCW0g==","shasum":"942e178e7d01089a25e3bac09419beee813dbd6e","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/formatly/-/formatly-0.2.1.tgz","fileCount":14,"unpackedSize":18232,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDevLS5IKKQt+HpPFQPUMsv0xW709wyKIfAyOsjk/YJ9QIhAKcPVCOZDQk9edsAFCN5e6SiQJ+h7KXn4Ca+2ri+gHmN"}],"size":6508},"_npmUser":{"name":"anonymous","email":"npm@joshuakgoldberg.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"npm@joshuakgoldberg.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/formatly_0.2.1_1744632529416_0.09040770677028442"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-04-14T12:08:49.581Z","publish_time":1744632529581,"_source_registry_name":"default","contributors":[]},"0.2.2":{"name":"formatly","version":"0.2.2","description":"Formats your code with whatever formatter your project is already using. 🧼","repository":{"type":"git","url":"git+https://github.com/JoshuaKGoldberg/formatly.git"},"license":"MIT","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"type":"module","main":"lib/index.js","bin":{"formatly":"bin/index.mjs"},"scripts":{"build":"tsup","format":"prettier .","lint":"eslint . --max-warnings 0","lint:knip":"knip","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\"","prepare":"husky","test":"vitest","tsc":"tsc"},"lint-staged":{"*":"prettier --ignore-unknown --write"},"dependencies":{"fd-package-json":"^1.2.0"},"devDependencies":{"@eslint-community/eslint-plugin-eslint-comments":"4.5.0","@eslint/js":"9.24.0","@release-it/conventional-changelog":"10.0.0","@types/eslint-plugin-markdown":"2.0.2","@types/node":"22.14.0","@vitest/coverage-v8":"3.1.1","@vitest/eslint-plugin":"1.1.38","console-fail-test":"0.5.0","create-typescript-app":"2.41.0","cspell":"8.18.0","eslint":"9.24.0","eslint-plugin-jsdoc":"50.6.8","eslint-plugin-jsonc":"2.20.0","eslint-plugin-markdown":"5.1.0","eslint-plugin-n":"17.16.2","eslint-plugin-package-json":"0.29.0","eslint-plugin-perfectionist":"4.11.0","eslint-plugin-regexp":"2.7.0","eslint-plugin-yml":"1.17.0","husky":"9.1.7","knip":"5.50.1","lint-staged":"15.5.0","markdownlint":"0.37.4","markdownlint-cli":"0.44.0","prettier":"3.5.3","prettier-plugin-curly":"0.3.1","prettier-plugin-packagejson":"2.5.10","prettier-plugin-sh":"0.17.0","release-it":"18.1.2","sentences-per-line":"0.3.0","tsup":"8.4.0","typescript":"5.8.2","typescript-eslint":"8.30.0","vitest":"3.1.1"},"packageManager":"pnpm@10.8.0","engines":{"node":">=18.3.0"},"publishConfig":{"provenance":true},"_id":"formatly@0.2.2","gitHead":"f9944c38c62b1669f865de225b434df4d2a61238","types":"./lib/index.d.ts","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","_nodeVersion":"20.19.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-SyVjQNqi3sAHzz7wujCTqwnJvM4obNGzNArc5sMrGFITF+jq89dPNhxw6XcnZmQE6uuLfXvPZNHj4KUsNmk2jA==","shasum":"e5ecc487c08a6de5fff33ecb328e76bf576f7941","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/formatly/-/formatly-0.2.2.tgz","fileCount":14,"unpackedSize":18266,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGD1g6sEF0HRHDRFL5OMgzB3t8V1dFtOjBJdmK1xoe52AiA30LGXRL3Cu8eihiDHuIIlTxpZFOFi5k9wW3UVPhw5vw=="}],"size":6520},"_npmUser":{"name":"anonymous","email":"npm@joshuakgoldberg.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"npm@joshuakgoldberg.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/formatly_0.2.2_1745434068180_0.20788689961253715"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-04-23T18:47:48.452Z","publish_time":1745434068452,"_source_registry_name":"default","contributors":[]},"0.2.3":{"name":"formatly","version":"0.2.3","description":"Formats your code with whatever formatter your project is already using. 🧼","repository":{"type":"git","url":"git+https://github.com/JoshuaKGoldberg/formatly.git"},"license":"MIT","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"type":"module","main":"lib/index.js","bin":{"formatly":"bin/index.mjs"},"scripts":{"build":"tsup","format":"prettier .","lint":"eslint . --max-warnings 0","lint:knip":"knip","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\"","prepare":"husky","test":"vitest","tsc":"tsc"},"lint-staged":{"*":"prettier --ignore-unknown --write"},"dependencies":{"fd-package-json":"^1.2.0"},"devDependencies":{"@eslint-community/eslint-plugin-eslint-comments":"4.5.0","@eslint/js":"9.25.0","@release-it/conventional-changelog":"10.0.0","@types/eslint-plugin-markdown":"2.0.2","@types/node":"22.15.0","@vitest/coverage-v8":"3.1.1","@vitest/eslint-plugin":"1.1.38","console-fail-test":"0.5.0","create-typescript-app":"2.41.0","cspell":"8.19.0","eslint":"9.25.0","eslint-plugin-jsdoc":"50.6.8","eslint-plugin-jsonc":"2.20.0","eslint-plugin-markdown":"5.1.0","eslint-plugin-n":"17.17.0","eslint-plugin-package-json":"0.30.0","eslint-plugin-perfectionist":"4.12.0","eslint-plugin-regexp":"2.7.0","eslint-plugin-yml":"1.18.0","husky":"9.1.7","knip":"5.50.1","lint-staged":"15.5.0","markdownlint":"0.37.4","markdownlint-cli":"0.44.0","prettier":"3.5.3","prettier-plugin-curly":"0.3.1","prettier-plugin-packagejson":"2.5.10","prettier-plugin-sh":"0.17.0","release-it":"19.0.1","sentences-per-line":"0.3.0","tsup":"8.4.0","typescript":"5.8.2","typescript-eslint":"8.31.0","vitest":"3.1.1"},"packageManager":"pnpm@10.9.0","engines":{"node":">=18.3.0"},"publishConfig":{"provenance":true},"_id":"formatly@0.2.3","gitHead":"ca0286817eadc10c689d7848160fbc7940bb58fb","types":"./lib/index.d.ts","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","_nodeVersion":"20.19.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-WH01vbXEjh9L3bqn5V620xUAWs32CmK4IzWRRY6ep5zpa/mrisL4d9+pRVuETORVDTQw8OycSO1WC68PL51RaA==","shasum":"30c4d3605c4f66d97a97a7dafbd9bb4a2467b26f","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/formatly/-/formatly-0.2.3.tgz","fileCount":14,"unpackedSize":19189,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCuTMsKRDkUjOzblwx+negOcEYWso/zPNZt4gv1dm0nwgIhALR3tf8D8eHwW6wjVb6aSSt7NQDcqQ2spQT5/SEpzux7"}],"size":6624},"_npmUser":{"name":"anonymous","email":"npm@joshuakgoldberg.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"npm@joshuakgoldberg.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/formatly_0.2.3_1746203246472_0.35832663368764206"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-05-02T16:27:26.671Z","publish_time":1746203246671,"_source_registry_name":"default","contributors":[]},"0.2.4":{"name":"formatly","version":"0.2.4","description":"Formats your code with whatever formatter your project is already using. 🧼","repository":{"type":"git","url":"git+https://github.com/JoshuaKGoldberg/formatly.git"},"license":"MIT","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"type":"module","main":"lib/index.js","bin":{"formatly":"bin/index.mjs"},"scripts":{"build":"tsup","format":"prettier .","lint":"eslint . --max-warnings 0","lint:knip":"knip","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\"","prepare":"husky","test":"vitest","tsc":"tsc"},"lint-staged":{"*":"prettier --ignore-unknown --write"},"dependencies":{"fd-package-json":"^2.0.0"},"devDependencies":{"@eslint-community/eslint-plugin-eslint-comments":"4.5.0","@eslint/js":"9.27.0","@release-it/conventional-changelog":"10.0.0","@types/eslint-plugin-markdown":"2.0.2","@types/node":"22.15.0","@vitest/coverage-v8":"3.1.1","@vitest/eslint-plugin":"1.2.0","console-fail-test":"0.5.0","create-typescript-app":"2.42.0","cspell":"9.0.0","eslint":"9.27.0","eslint-plugin-jsdoc":"50.6.8","eslint-plugin-jsonc":"2.20.0","eslint-plugin-markdown":"5.1.0","eslint-plugin-n":"17.18.0","eslint-plugin-package-json":"0.31.0","eslint-plugin-perfectionist":"4.13.0","eslint-plugin-regexp":"2.7.0","eslint-plugin-yml":"1.18.0","husky":"9.1.7","knip":"5.58.0","lint-staged":"16.0.0","markdownlint":"0.38.0","markdownlint-cli":"0.45.0","prettier":"3.5.3","prettier-plugin-curly":"0.3.1","prettier-plugin-packagejson":"2.5.10","prettier-plugin-sh":"0.17.0","release-it":"19.0.1","sentences-per-line":"0.3.0","tsup":"8.5.0","typescript":"5.8.2","typescript-eslint":"8.32.0","vitest":"3.1.1"},"packageManager":"pnpm@10.11.0","engines":{"node":">=18.3.0"},"publishConfig":{"provenance":true},"_id":"formatly@0.2.4","gitHead":"cf84d657e199ecca78cbffeb4c9101f444f79c8d","types":"./lib/index.d.ts","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","_nodeVersion":"20.19.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-lIN7GpcvX/l/i24r/L9bnJ0I8Qn01qijWpQpDDvTLL29nKqSaJJu4h20+7VJ6m2CAhQ2/En/GbxDiHCzq/0MyA==","shasum":"9f6281e14d2dc43a14061c0526b42c8bbb780c7a","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/formatly/-/formatly-0.2.4.tgz","fileCount":14,"unpackedSize":19146,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAYYKFEl73WrnCBU20JEfjG9Qf2H/nNi4/CGxk3FbU1kAiAUgGgS0LtvqLA/eZ5DDjrGyllHjDywU8UDmd1K4xYgmw=="}],"size":6612},"_npmUser":{"name":"anonymous","email":"npm@joshuakgoldberg.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"npm@joshuakgoldberg.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/formatly_0.2.4_1748906407581_0.998447967693574"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-06-02T23:20:07.757Z","publish_time":1748906407757,"_source_registry_name":"default","contributors":[]},"0.3.0":{"name":"formatly","version":"0.3.0","description":"Formats your code with whatever formatter your project is already using. 🧼","repository":{"type":"git","url":"git+https://github.com/JoshuaKGoldberg/formatly.git"},"license":"MIT","author":{"name":"Josh Goldberg ✨","email":"npm@joshuakgoldberg.com"},"type":"module","main":"lib/index.js","bin":{"formatly":"bin/index.mjs"},"scripts":{"build":"tsup","format":"prettier .","lint":"eslint . --max-warnings 0","lint:knip":"knip","lint:md":"markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line","lint:packages":"pnpm dedupe --check","lint:spelling":"cspell \"**\" \".github/**/*\"","prepare":"husky","test":"vitest","tsc":"tsc"},"lint-staged":{"*":"prettier --ignore-unknown --write"},"dependencies":{"fd-package-json":"^2.0.0"},"devDependencies":{"@eslint-community/eslint-plugin-eslint-comments":"4.5.0","@eslint/js":"9.28.0","@release-it/conventional-changelog":"10.0.0","@types/eslint-plugin-markdown":"2.0.2","@types/node":"22.15.0","@vitest/coverage-v8":"3.2.0","@vitest/eslint-plugin":"1.2.0","console-fail-test":"0.5.0","create-typescript-app":"2.42.0","cspell":"9.0.0","eslint":"9.28.0","eslint-plugin-jsdoc":"50.7.0","eslint-plugin-jsonc":"2.20.0","eslint-plugin-markdown":"5.1.0","eslint-plugin-n":"17.19.0","eslint-plugin-package-json":"0.33.0","eslint-plugin-perfectionist":"4.14.0","eslint-plugin-regexp":"2.8.0","eslint-plugin-yml":"1.18.0","husky":"9.1.7","knip":"5.60.0","lint-staged":"16.1.0","markdownlint":"0.38.0","markdownlint-cli":"0.45.0","prettier":"3.5.3","prettier-plugin-curly":"0.3.1","prettier-plugin-packagejson":"2.5.10","prettier-plugin-sh":"0.17.0","release-it":"19.0.1","sentences-per-line":"0.3.0","tsup":"8.5.0","typescript":"5.8.2","typescript-eslint":"8.33.0","vitest":"3.2.0"},"packageManager":"pnpm@10.11.0","engines":{"node":">=18.3.0"},"publishConfig":{"provenance":true},"_id":"formatly@0.3.0","gitHead":"cd31aabfe564588d6324cb056d960b0753bea4bc","types":"./lib/index.d.ts","bugs":{"url":"https://github.com/JoshuaKGoldberg/formatly/issues"},"homepage":"https://github.com/JoshuaKGoldberg/formatly#readme","_nodeVersion":"20.19.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-9XNj/o4wrRFyhSMJOvsuyMwy8aUfBaZ1VrqHVfohyXf0Sw0e+yfKG+xZaY3arGCOMdwFsqObtzVOc1gU9KiT9w==","shasum":"5bb3b4e692f5a8c74ad8fe26154dd0a74aac6819","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/formatly/-/formatly-0.3.0.tgz","fileCount":24,"unpackedSize":21590,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/formatly@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIA3ZoT9mAicHG9OdfkT3ZxMZTw9Us+ukUYqRrwhQjfo0AiEA/ybLGfnvIx9guYgBA9nqIoVGOGnNC7i21HSxzBJE68o="}],"size":7380},"_npmUser":{"name":"anonymous","email":"npm@joshuakgoldberg.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"npm@joshuakgoldberg.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/formatly_0.3.0_1749733459008_0.7086363055757394"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-06-12T13:04:19.199Z","publish_time":1749733459199,"_source_registry_name":"default","contributors":[]}},"dist-tags":{"latest":"0.3.0"},"name":"formatly","time":{"created":"2025-01-08T18:07:17.410Z","modified":"2025-08-21T06:15:09.609Z","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"},"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: 5\" src=\"https://img.shields.io/badge/%F0%9F%91%AA_all_contributors-5-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- [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### Node.js API\n\n```shell\nnpm i formatly\n```\n\nThe `formatly` package exports the functions used by the `formatly` CLI.\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   - `formatter: FormatterName` _(optional)_: explicit formatter to use instead of detecting one, supports `\"biome\"`, `\"deno\"`, `\"dprint\"`, and `\"prettier\"`\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: FormatlyReportChildProcessResult`:\n    - `code: number | null`: exit code of the child process\n    - `signal: NodeJS.Signal | null`: signal that terminated the child process\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 (result.code) {\n\tconsole.error(`Error running ${formatter.runner}:`, result.stderr);\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//   name: \"Prettier\",\n//   runner: \"npx prettier --write\",\n//   testers: { ... }\n// }\nconsole.log(formatter);\n```\n\nParameters:\n\n1. `cwd: string` _(optional)_: working directory, if not `\".\"`\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  - `runner: string`: the shell command used to run the formatter\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. The formatter's name in a `package.json` `fmt` or `format` script\n3. Well-known root-level `package.json` key\n\n### Supported Formatters\n\n| Formatter                                                   | Config File                                                                                             | Package Key  | Script     |\n| ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------ | ---------- |\n| [Biome](https://biomejs.dev/formatter)                      | [Configure Biome](https://biomejs.dev/guides/configure-biome)                                           |              | `biome`    |\n| [deno fmt](https://docs.deno.com/runtime/reference/cli/fmt) | [Deno Configuration > Formatting](https://docs.deno.com/runtime/fundamentals/configuration/#formatting) |              | `deno`     |\n| [dprint](https://dprint.dev)                                | [dprint setup](https://dprint.dev/setup)                                                                |              | `dprint`   |\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\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\"><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\"><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\"><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\"><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\"><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).","users":{}}