{"_id":"@washy-washy/core","_rev":"15-5aba719765eefdda8bc575c5d8f0ae55","name":"@washy-washy/core","dist-tags":{"latest":"1.5.6"},"versions":{"0.0.0":{"name":"@washy-washy/core","version":"0.0.0","keywords":["laundry","csv","chart"],"license":"GPL-3.0-or-later","_id":"@washy-washy/core@0.0.0","maintainers":[{"name":"alrayyes","email":"alias+npm@ryankes.eu"}],"homepage":"https://github.com/alrayyes/washy-washy-core#readme","bugs":{"url":"https://github.com/alrayyes/washy-washy-core/issues"},"dist":{"shasum":"12f554ebfa0548103fd365007a3e631b46786050","tarball":"https://registry.npmjs.org/@washy-washy/core/-/core-0.0.0.tgz","fileCount":3,"integrity":"sha512-zQVqUov8kveQYZn6V4je5zb20iiXomA8bHzMmPVq2nvt24beeLtwjfUgKKTmAMkgSnFGcIThXyw5EBdrO5iq0A==","signatures":[{"sig":"MEUCIEFq8hpGE7/37dkrAUMQ0dW5xtLPEFra9YeGy3ETdnxqAiEA47nyc/qMTEvc1gIAo26zWHF0MWiCeh75oAlXMcVyZRg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41096},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./browser":{"types":"./dist/browser.d.mts","default":"./dist/browser.mjs"}},"gitHead":"13b56e50db55d15323d66bb1ba774aa67d52d90b","scripts":{"lint":"biome check .","test":"bun test","build":"tsdown","check":"bun run lint && bun run lint:md && bun run lint:yaml && bun run lint:package-json && bun run lint:prose && bun run typecheck && bun test","format":"prettier --write .","lint:md":"prettier --check \"**/*.md\" && markdownlint-cli2 \"**/*.md\"","prepare":"lefthook install","lint:fix":"biome check --write .","lint:yaml":"prettier --check \"**/*.{yml,yaml}\"","typecheck":"tsc --noEmit","lint:prose":".tools/vale --glob='!{styles/**,CHANGELOG.md}' --minAlertLevel=error .","prose:sync":"bun run scripts/install-vale.ts && .tools/vale sync","lint:package-json":"sort-package-json --check","lint:prose:advice":".tools/vale --glob='!{styles/**,CHANGELOG.md}' ."},"_npmUser":{"name":"alrayyes","email":"alias+npm@ryankes.eu"},"repository":{"url":"git+https://github.com/alrayyes/washy-washy-core.git","type":"git"},"_npmVersion":"12.0.2","description":"Chart parsing, mixing rules and machine validation for washy-washy — a laundry chart generator.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"csv-parse":"7.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"0.22.14","lefthook":"2.1.10","prettier":"3.9.6","@types/bun":"1.3.14","typescript":"5.9.3","@biomejs/biome":"2.5.9","@commitlint/cli":"21.2.2","semantic-release":"25.0.9","markdownlint-cli2":"0.23.2","sort-package-json":"4.0.0","@semantic-release/git":"11.0.1","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.9","@semantic-release/changelog":"7.0.0","@commitlint/config-conventional":"21.2.2","@semantic-release/release-notes-generator":"14.1.1","conventional-changelog-conventionalcommits":"9.3.1"},"trustedDependencies":["lefthook"],"_npmOperationalInternal":{"tmp":"tmp/core_0.0.0_1787397463529_0.6916838588649126","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@washy-washy/core","version":"1.0.0","keywords":["laundry","csv","chart"],"license":"GPL-3.0-or-later","_id":"@washy-washy/core@1.0.0","maintainers":[{"name":"alrayyes","email":"alias+npm@ryankes.eu"}],"homepage":"https://github.com/alrayyes/washy-washy-core#readme","bugs":{"url":"https://github.com/alrayyes/washy-washy-core/issues"},"dist":{"shasum":"5931719d5f728662d249e699c8a42dde3898b836","tarball":"https://registry.npmjs.org/@washy-washy/core/-/core-1.0.0.tgz","fileCount":11,"integrity":"sha512-NN3mK5hwlh4dcmASu399i8oaUWXWx21tFaZhXpOBf7uUKCtbRU2XRN/NtGQijEYQvKy0K9JmWu400VhtMwsNmg==","signatures":[{"sig":"MEUCIGCRhsmc15rQeAd+Fw9Y5Tc+9vjfqxIhWzpyBwY9PDSlAiEAj8+V2YAcp8hro+Z9WgUfRFVtIpQ/earhOsnF2113nJQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@washy-washy%2fcore@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96806},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./browser":{"types":"./dist/browser.d.mts","default":"./dist/browser.mjs"}},"gitHead":"2b8ce98a4473384c148130a1e15756edfb683641","scripts":{"lint":"biome check .","test":"bun test","build":"tsdown","check":"bun run lint && bun run lint:md && bun run lint:yaml && bun run lint:package-json && bun run lint:prose && bun run typecheck && bun test","format":"prettier --write .","lint:md":"prettier --check \"**/*.md\" && markdownlint-cli2 \"**/*.md\"","prepare":"lefthook install","lint:fix":"biome check --write .","lint:yaml":"prettier --check \"**/*.{yml,yaml}\"","typecheck":"tsc --noEmit","lint:prose":".tools/vale --glob='!{styles/**,CHANGELOG.md}' --minAlertLevel=error .","prose:sync":"bun run scripts/install-vale.ts && .tools/vale sync","lint:package-json":"sort-package-json --check","lint:prose:advice":".tools/vale --glob='!{styles/**,CHANGELOG.md}' ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b6944c38-3d7e-4e3f-b18b-4dba6c048d6a"}},"repository":{"url":"git+https://github.com/alrayyes/washy-washy-core.git","type":"git"},"_npmVersion":"11.19.0","description":"Chart parsing, mixing rules and machine validation for washy-washy — a laundry chart generator.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"csv-parse":"7.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"0.22.14","lefthook":"2.1.10","prettier":"3.9.6","@types/bun":"1.3.14","typescript":"5.9.3","@biomejs/biome":"2.5.9","@commitlint/cli":"21.2.2","semantic-release":"25.0.9","markdownlint-cli2":"0.23.2","sort-package-json":"4.0.0","@semantic-release/git":"11.0.1","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.9","@semantic-release/changelog":"7.0.0","@commitlint/config-conventional":"21.2.2","@semantic-release/release-notes-generator":"14.1.1","conventional-changelog-conventionalcommits":"9.3.1"},"trustedDependencies":["lefthook"],"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0_1787397838353_0.2739730015495192","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@washy-washy/core","version":"1.1.0","keywords":["laundry","csv","chart"],"license":"GPL-3.0-or-later","_id":"@washy-washy/core@1.1.0","maintainers":[{"name":"alrayyes","email":"alias+npm@ryankes.eu"}],"homepage":"https://github.com/alrayyes/washy-washy-core#readme","bugs":{"url":"https://github.com/alrayyes/washy-washy-core/issues"},"dist":{"shasum":"18b776804c0743b9f25b647dfa461339659f0474","tarball":"https://registry.npmjs.org/@washy-washy/core/-/core-1.1.0.tgz","fileCount":11,"integrity":"sha512-uF/+DjtejUCveuy5oXz7i2o8Mg/C11nULH6OpuhLUSQH5O2ZqA2UF+ddFwIbZPsaT2doS5yhcqnKPutVmW64Jw==","signatures":[{"sig":"MEUCIBFNTNIy1fQOL9ZEuN06GUwPYBd/9IBnGZDow9N1OAGqAiEAw6jYWN0ZIHA9wl/x154dK4IGbpeu71LfxtptHzWaNMQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@washy-washy%2fcore@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":102701},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./browser":{"types":"./dist/browser.d.mts","default":"./dist/browser.mjs"}},"gitHead":"c3115c8a81baab196d29a459b9580a21f306cd34","scripts":{"lint":"biome check .","test":"bun test","build":"tsdown","check":"bun run lint && bun run lint:md && bun run lint:yaml && bun run lint:package-json && bun run lint:prose && bun run typecheck && bun test","format":"prettier --write .","lint:md":"prettier --check \"**/*.md\" && markdownlint-cli2 \"**/*.md\"","prepare":"lefthook install","lint:fix":"biome check --write .","lint:yaml":"prettier --check \"**/*.{yml,yaml}\"","typecheck":"tsc --noEmit","lint:prose":".tools/vale --glob='!{styles/**,CHANGELOG.md}' --minAlertLevel=error .","prose:sync":"bun run scripts/install-vale.ts && .tools/vale sync","lint:package-json":"sort-package-json --check","lint:prose:advice":".tools/vale --glob='!{styles/**,CHANGELOG.md}' ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b6944c38-3d7e-4e3f-b18b-4dba6c048d6a"}},"repository":{"url":"git+https://github.com/alrayyes/washy-washy-core.git","type":"git"},"_npmVersion":"11.19.0","description":"Chart parsing, mixing rules and machine validation for washy-washy — a laundry chart generator.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"csv-parse":"7.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"0.22.14","lefthook":"2.1.10","prettier":"3.9.6","@types/bun":"1.3.14","typescript":"5.9.3","@biomejs/biome":"2.5.9","@commitlint/cli":"21.2.2","semantic-release":"25.0.9","markdownlint-cli2":"0.23.2","sort-package-json":"4.0.0","@semantic-release/git":"11.0.1","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.9","@semantic-release/changelog":"7.0.0","@commitlint/config-conventional":"21.2.2","@semantic-release/release-notes-generator":"14.1.1","conventional-changelog-conventionalcommits":"9.3.1"},"trustedDependencies":["lefthook"],"_npmOperationalInternal":{"tmp":"tmp/core_1.1.0_1787400398255_0.6162479771260831","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@washy-washy/core","version":"1.2.0","keywords":["laundry","csv","chart"],"license":"GPL-3.0-or-later","_id":"@washy-washy/core@1.2.0","maintainers":[{"name":"alrayyes","email":"alias+npm@ryankes.eu"}],"homepage":"https://github.com/alrayyes/washy-washy-core#readme","bugs":{"url":"https://github.com/alrayyes/washy-washy-core/issues"},"dist":{"shasum":"87dc3df3b146849828ee5b8c9f37838af419394a","tarball":"https://registry.npmjs.org/@washy-washy/core/-/core-1.2.0.tgz","fileCount":12,"integrity":"sha512-fJb87x27umZx2Eg76PeyFBk/tfK0K9Iv53XUAHZGCqwAtFYRK7BYhyfkdT1teZvxI4KeA9+pSrYA87nZACXiYw==","signatures":[{"sig":"MEUCIQCsftfx+HcqnmTf/6iIERWCSzKXxHoaUUAA3jbfEOyXEAIgVVNbkmP153ts63kgOtqj7ByRYiypGolyqRuGHb2Yo5c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@washy-washy%2fcore@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":119137},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./browser":{"types":"./dist/browser.d.mts","default":"./dist/browser.mjs"}},"gitHead":"ac0b83c6498475845f36f2355343a752dd00a0a6","scripts":{"docs":"typedoc","lint":"biome check .","test":"bun test","build":"tsdown","check":"bun run lint && bun run lint:md && bun run lint:yaml && bun run lint:package-json && bun run lint:prose && bun run lint:schema && bun run typecheck && bun test","format":"prettier --write .","schema":"ts-json-schema-generator --path src/config.ts --type Config --tsconfig tsconfig.json -o schema/config.schema.json && biome format --write schema/config.schema.json","lint:md":"prettier --check \"**/*.md\" && markdownlint-cli2 \"**/*.md\"","prepare":"lefthook install","lint:fix":"biome check --write .","lint:yaml":"prettier --check \"**/*.{yml,yaml}\"","typecheck":"tsc --noEmit","lint:prose":".tools/vale --glob='!{styles/**,CHANGELOG.md}' --minAlertLevel=error .","prose:sync":"bun run scripts/install-vale.ts && .tools/vale sync","lint:schema":"bun run schema && git diff --exit-code schema/","lint:package-json":"sort-package-json --check","lint:prose:advice":".tools/vale --glob='!{styles/**,CHANGELOG.md}' ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b6944c38-3d7e-4e3f-b18b-4dba6c048d6a"}},"repository":{"url":"git+https://github.com/alrayyes/washy-washy-core.git","type":"git"},"_npmVersion":"11.19.0","description":"Chart parsing, mixing rules and machine validation for washy-washy — a laundry chart generator.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"csv-parse":"7.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"0.22.14","typedoc":"0.28.20","lefthook":"2.1.10","prettier":"3.9.6","@types/bun":"1.3.14","typescript":"5.9.3","@biomejs/biome":"2.5.9","@commitlint/cli":"21.2.2","semantic-release":"25.0.9","markdownlint-cli2":"0.23.2","sort-package-json":"4.0.0","@semantic-release/git":"11.0.1","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.9","ts-json-schema-generator":"2.9.0","@semantic-release/changelog":"7.0.0","@commitlint/config-conventional":"21.2.2","@semantic-release/release-notes-generator":"14.1.1","conventional-changelog-conventionalcommits":"9.3.1"},"trustedDependencies":["lefthook"],"_npmOperationalInternal":{"tmp":"tmp/core_1.2.0_1787407488408_0.497833183492705","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@washy-washy/core","version":"1.3.0","keywords":["laundry","csv","chart"],"license":"GPL-3.0-or-later","_id":"@washy-washy/core@1.3.0","maintainers":[{"name":"alrayyes","email":"alias+npm@ryankes.eu"}],"homepage":"https://github.com/alrayyes/washy-washy-core#readme","bugs":{"url":"https://github.com/alrayyes/washy-washy-core/issues"},"dist":{"shasum":"cb43c7af3f6b5f6fde36e43dea9e9bac1b9d08bf","tarball":"https://registry.npmjs.org/@washy-washy/core/-/core-1.3.0.tgz","fileCount":12,"integrity":"sha512-djAc7aVBZ65QrJHC7L57l8px0o9hW9ZzyhHXQet5HJy+E1UAh+e+ZwE3LEDTfWruCV3/F/bjoqzFj9Qkgty9nw==","signatures":[{"sig":"MEUCICbh3rQb0LGliUcdO9ARlgFd8EQA5imbOFVk9Vmi2JasAiEAxqPuvP/i1iKaPpc5kVXV7PtCfJNXHlEfUe+P3RvSZww=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@washy-washy%2fcore@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":121522},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./browser":{"types":"./dist/browser.d.mts","default":"./dist/browser.mjs"}},"gitHead":"070c40ffbf860dc6dfddbc7857b88460dc17ea0a","scripts":{"docs":"typedoc","lint":"biome check .","test":"bun test","build":"tsdown","check":"bun run lint && bun run lint:md && bun run lint:yaml && bun run lint:package-json && bun run lint:prose && bun run lint:schema && bun run typecheck && bun test","format":"prettier --write .","schema":"ts-json-schema-generator --path src/config.ts --type Config --tsconfig tsconfig.json -o schema/config.schema.json && biome format --write schema/config.schema.json","lint:md":"prettier --check \"**/*.md\" && markdownlint-cli2 \"**/*.md\"","prepare":"lefthook install","lint:fix":"biome check --write .","lint:yaml":"prettier --check \"**/*.{yml,yaml}\"","typecheck":"tsc --noEmit","lint:prose":".tools/vale --glob='!{styles/**,CHANGELOG.md}' --minAlertLevel=error .","prose:sync":"bun run scripts/install-vale.ts && .tools/vale sync","lint:schema":"bun run schema && git diff --exit-code schema/","lint:package-json":"sort-package-json --check","lint:prose:advice":".tools/vale --glob='!{styles/**,CHANGELOG.md}' ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b6944c38-3d7e-4e3f-b18b-4dba6c048d6a"}},"repository":{"url":"git+https://github.com/alrayyes/washy-washy-core.git","type":"git"},"_npmVersion":"11.19.0","description":"Chart parsing, mixing rules and machine validation for washy-washy — a laundry chart generator.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"csv-parse":"7.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"0.22.14","typedoc":"0.28.20","lefthook":"2.1.10","prettier":"3.9.6","@types/bun":"1.3.14","typescript":"5.9.3","@biomejs/biome":"2.5.9","@commitlint/cli":"21.2.2","semantic-release":"25.0.9","markdownlint-cli2":"0.23.2","sort-package-json":"4.0.0","@semantic-release/git":"11.0.1","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.9","ts-json-schema-generator":"2.9.0","@semantic-release/changelog":"7.0.0","@commitlint/config-conventional":"21.2.2","@semantic-release/release-notes-generator":"14.1.1","conventional-changelog-conventionalcommits":"9.3.1"},"trustedDependencies":["lefthook"],"_npmOperationalInternal":{"tmp":"tmp/core_1.3.0_1787414685744_0.35440822421131535","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@washy-washy/core","version":"1.3.1","keywords":["laundry","csv","chart"],"license":"GPL-3.0-or-later","_id":"@washy-washy/core@1.3.1","maintainers":[{"name":"alrayyes","email":"alias+npm@ryankes.eu"}],"homepage":"https://github.com/alrayyes/washy-washy-core#readme","bugs":{"url":"https://github.com/alrayyes/washy-washy-core/issues"},"dist":{"shasum":"1e19de90194d7f4dec61a5725435505337213be0","tarball":"https://registry.npmjs.org/@washy-washy/core/-/core-1.3.1.tgz","fileCount":12,"integrity":"sha512-6DKr2UvQSv4z09+K1p062+uS07LMAVZnrhzS3C+x3EOBoHoeD4TH3Nc2DwHwFBYU0kGVfWjhGCnm196X+ODbeg==","signatures":[{"sig":"MEQCICxbZPEfhuH0AhsUe04HFtpBuJG9tWx3Ot6HbeJJoZBOAiBDzSrbL5oQqw6yjoWAH2ERxfIiHDULQgD1KBnm89f0Iw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@washy-washy%2fcore@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":122605},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./browser":{"types":"./dist/browser.d.mts","default":"./dist/browser.mjs"}},"gitHead":"9dfcbeb7d72fdcb3fd40539069d8b04475c8ebd8","scripts":{"docs":"typedoc","lint":"biome check .","test":"bun test","build":"tsdown","check":"bun run lint && bun run lint:md && bun run lint:yaml && bun run lint:package-json && bun run lint:prose && bun run lint:schema && bun run typecheck && bun test","format":"prettier --write .","schema":"ts-json-schema-generator --path src/config.ts --type Config --tsconfig tsconfig.json -o schema/config.schema.json && biome format --write schema/config.schema.json","lint:md":"prettier --check \"**/*.md\" && markdownlint-cli2 \"**/*.md\"","prepare":"lefthook install","lint:fix":"biome check --write .","lint:yaml":"prettier --check \"**/*.{yml,yaml}\"","typecheck":"tsc --noEmit","lint:prose":".tools/vale --glob='!{styles/**,CHANGELOG.md}' --minAlertLevel=error .","prose:sync":"bun run scripts/install-vale.ts && .tools/vale sync","lint:schema":"bun run schema && git diff --exit-code schema/","lint:package-json":"sort-package-json --check","lint:prose:advice":".tools/vale --glob='!{styles/**,CHANGELOG.md}' ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b6944c38-3d7e-4e3f-b18b-4dba6c048d6a"}},"repository":{"url":"git+https://github.com/alrayyes/washy-washy-core.git","type":"git"},"_npmVersion":"11.19.0","description":"Chart parsing, mixing rules and machine validation for washy-washy — a laundry chart generator.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"csv-parse":"7.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"0.22.14","typedoc":"0.28.20","lefthook":"2.1.10","prettier":"3.9.6","@types/bun":"1.3.14","typescript":"5.9.3","@biomejs/biome":"2.5.9","@commitlint/cli":"21.2.2","semantic-release":"25.0.9","markdownlint-cli2":"0.23.2","sort-package-json":"4.0.0","@semantic-release/git":"11.0.1","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.9","ts-json-schema-generator":"2.9.0","@semantic-release/changelog":"7.0.0","@commitlint/config-conventional":"21.2.2","@semantic-release/release-notes-generator":"14.1.1","conventional-changelog-conventionalcommits":"9.3.1"},"trustedDependencies":["lefthook"],"_npmOperationalInternal":{"tmp":"tmp/core_1.3.1_1787470721914_0.13708605183115896","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@washy-washy/core","version":"1.4.0","keywords":["laundry","csv","chart"],"license":"GPL-3.0-or-later","_id":"@washy-washy/core@1.4.0","maintainers":[{"name":"alrayyes","email":"alias+npm@ryankes.eu"}],"homepage":"https://github.com/alrayyes/washy-washy-core#readme","bugs":{"url":"https://github.com/alrayyes/washy-washy-core/issues"},"dist":{"shasum":"703029629bb00b10567c0c3c6a582c9cef8b67fe","tarball":"https://registry.npmjs.org/@washy-washy/core/-/core-1.4.0.tgz","fileCount":12,"integrity":"sha512-aCSyvOR2Mt6R4yUgopIaS0yNFmeP5Ow0uOjNTQRo2k26SbyO6wPF5/c59eac+ehJqecfcBP6TeFi+bqjgSIbsQ==","signatures":[{"sig":"MEUCIDXk0y5HH81shPySfWXrskPDLT8R4glSKTJH0LdYr2xjAiEAmxFE5z2ckEpgDtbCr6lO3e/oJF4GDWN5RIfVHgvBvgk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@washy-washy%2fcore@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":127754},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./browser":{"types":"./dist/browser.d.mts","default":"./dist/browser.mjs"}},"gitHead":"d54a50b8d1418055cc202da3e38efe27afbf220b","scripts":{"docs":"typedoc","lint":"biome check .","test":"bun test","build":"tsdown","check":"bun run lint && bun run lint:md && bun run lint:yaml && bun run lint:package-json && bun run lint:prose && bun run lint:schema && bun run typecheck && bun test","format":"prettier --write .","schema":"ts-json-schema-generator --path src/config.ts --type Config --tsconfig tsconfig.json -o schema/config.schema.json && biome format --write schema/config.schema.json","lint:md":"prettier --check \"**/*.md\" && markdownlint-cli2 \"**/*.md\"","prepare":"lefthook install","lint:fix":"biome check --write .","lint:yaml":"prettier --check \"**/*.{yml,yaml}\"","typecheck":"tsc --noEmit","lint:prose":".tools/vale --glob='!{styles/**,CHANGELOG.md}' --minAlertLevel=error .","prose:sync":"bun run scripts/install-vale.ts && .tools/vale sync","lint:schema":"bun run schema && git diff --exit-code schema/","lint:package-json":"sort-package-json --check","lint:prose:advice":".tools/vale --glob='!{styles/**,CHANGELOG.md}' ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b6944c38-3d7e-4e3f-b18b-4dba6c048d6a"}},"repository":{"url":"git+https://github.com/alrayyes/washy-washy-core.git","type":"git"},"_npmVersion":"11.19.0","description":"Chart parsing, mixing rules and machine validation for washy-washy — a laundry chart generator.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"csv-parse":"7.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"0.22.14","typedoc":"0.28.20","lefthook":"2.1.10","prettier":"3.9.6","@types/bun":"1.3.14","typescript":"5.9.3","@biomejs/biome":"2.5.9","@commitlint/cli":"21.2.2","semantic-release":"25.0.9","markdownlint-cli2":"0.23.2","sort-package-json":"4.0.0","@semantic-release/git":"11.0.1","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.9","ts-json-schema-generator":"2.9.0","@semantic-release/changelog":"7.0.0","@commitlint/config-conventional":"21.2.2","@semantic-release/release-notes-generator":"14.1.1","conventional-changelog-conventionalcommits":"9.3.1"},"trustedDependencies":["lefthook"],"_npmOperationalInternal":{"tmp":"tmp/core_1.4.0_1787652705215_0.6727882950353279","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@washy-washy/core","version":"1.4.1","keywords":["laundry","csv","chart"],"license":"GPL-3.0-or-later","_id":"@washy-washy/core@1.4.1","maintainers":[{"name":"alrayyes","email":"alias+npm@ryankes.eu"}],"homepage":"https://github.com/alrayyes/washy-washy-core#readme","bugs":{"url":"https://github.com/alrayyes/washy-washy-core/issues"},"dist":{"shasum":"eb6fabd1d0b8c1ad5c37bd40bccb797dbead9c02","tarball":"https://registry.npmjs.org/@washy-washy/core/-/core-1.4.1.tgz","fileCount":12,"integrity":"sha512-8NXdpwnFA8zUFLH1HefBYcsnM6ftsZMyTarSF9M6efVYjjL8dweCMakQGndyDTevIQZ7RZMsCxpxMzZoJ/hMyw==","signatures":[{"sig":"MEQCIFmqyLhu0gD4fjldWtFOQTAYJSQpI4baQv6Xgxqbymd/AiAnSuHMHkXtziq+MgDsK/S8exHc41E38SE/HqPLB8HQTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@washy-washy%2fcore@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":127754},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./browser":{"types":"./dist/browser.d.mts","default":"./dist/browser.mjs"}},"gitHead":"f405900212608dccd7547eee091680b24acb5dac","scripts":{"docs":"typedoc","lint":"biome check .","test":"bun test","build":"tsdown","check":"bun run lint && bun run lint:md && bun run lint:yaml && bun run lint:package-json && bun run lint:prose && bun run lint:schema && bun run typecheck && bun test","format":"prettier --write .","schema":"ts-json-schema-generator --path src/config.ts --type Config --tsconfig tsconfig.json -o schema/config.schema.json && biome format --write schema/config.schema.json","lint:md":"prettier --check \"**/*.md\" && markdownlint-cli2 \"**/*.md\"","prepare":"lefthook install","lint:fix":"biome check --write .","lint:yaml":"prettier --check \"**/*.{yml,yaml}\"","typecheck":"tsc --noEmit","lint:prose":".tools/vale --glob='!{styles/**,CHANGELOG.md}' --minAlertLevel=error .","prose:sync":"bun run scripts/install-vale.ts && .tools/vale sync","lint:schema":"bun run schema && git diff --exit-code schema/","lint:package-json":"sort-package-json --check","lint:prose:advice":".tools/vale --glob='!{styles/**,CHANGELOG.md}' ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b6944c38-3d7e-4e3f-b18b-4dba6c048d6a"}},"repository":{"url":"git+https://github.com/alrayyes/washy-washy-core.git","type":"git"},"_npmVersion":"11.19.0","description":"Chart parsing, mixing rules and machine validation for washy-washy — a laundry chart generator.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"csv-parse":"7.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"0.22.14","typedoc":"0.28.20","lefthook":"2.1.10","prettier":"3.9.6","@types/bun":"1.3.14","typescript":"5.9.3","@biomejs/biome":"2.5.9","@commitlint/cli":"21.2.2","semantic-release":"25.0.9","markdownlint-cli2":"0.23.2","sort-package-json":"4.0.0","@semantic-release/git":"11.0.1","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.9","ts-json-schema-generator":"2.9.0","@semantic-release/changelog":"7.0.0","@commitlint/config-conventional":"21.2.2","@semantic-release/release-notes-generator":"14.1.1","conventional-changelog-conventionalcommits":"9.3.1"},"trustedDependencies":["lefthook"],"_npmOperationalInternal":{"tmp":"tmp/core_1.4.1_1787655600604_0.4098831415751325","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@washy-washy/core","version":"1.5.0","keywords":["laundry","csv","chart"],"license":"GPL-3.0-or-later","_id":"@washy-washy/core@1.5.0","maintainers":[{"name":"alrayyes","email":"alias+npm@ryankes.eu"}],"homepage":"https://github.com/alrayyes/washy-washy-core#readme","bugs":{"url":"https://github.com/alrayyes/washy-washy-core/issues"},"dist":{"shasum":"294a674355b46077113a81cfeeca5b3fc82cdb40","tarball":"https://registry.npmjs.org/@washy-washy/core/-/core-1.5.0.tgz","fileCount":12,"integrity":"sha512-5/sZqWHxwteAKqkzex1AjdfIRLTJItmXMd3reWaPdgXTA9geb56ExMSJ1kVtS4gh2Xd8w9NOMiVBYZe3R8ibCw==","signatures":[{"sig":"MEQCIDHgJ+pEKTiRJvTjXDM4Zs5ERs5l7Umt54Qe/yoYEwzSAiB+Ya/C2SjIJck3/1ZavHQVZAaEsUglm+JCYY7Gsv/N3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@washy-washy%2fcore@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":131112},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./browser":{"types":"./dist/browser.d.mts","default":"./dist/browser.mjs"}},"gitHead":"49aaaf38011fa1103627e9d81a9ca413f9e0e030","scripts":{"docs":"typedoc","lint":"biome check .","test":"bun test","build":"tsdown","check":"bun run lint && bun run lint:md && bun run lint:yaml && bun run lint:package-json && bun run lint:prose && bun run lint:schema && bun run typecheck && bun test","format":"prettier --write .","schema":"ts-json-schema-generator --path src/config.ts --type Config --tsconfig tsconfig.json -o schema/config.schema.json && biome format --write schema/config.schema.json","lint:md":"prettier --check \"**/*.md\" && markdownlint-cli2 \"**/*.md\"","prepare":"lefthook install","lint:fix":"biome check --write .","lint:yaml":"prettier --check \"**/*.{yml,yaml}\"","typecheck":"tsc --noEmit","lint:prose":".tools/vale --glob='!{styles/**,CHANGELOG.md}' --minAlertLevel=error .","prose:sync":"bun run scripts/install-vale.ts && .tools/vale sync","lint:schema":"bun run schema && git diff --exit-code schema/","lint:package-json":"sort-package-json --check","lint:prose:advice":".tools/vale --glob='!{styles/**,CHANGELOG.md}' ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b6944c38-3d7e-4e3f-b18b-4dba6c048d6a"}},"repository":{"url":"git+https://github.com/alrayyes/washy-washy-core.git","type":"git"},"_npmVersion":"11.19.0","description":"Chart parsing, mixing rules and machine validation for washy-washy — a laundry chart generator.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"csv-parse":"7.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"0.22.14","typedoc":"0.28.20","lefthook":"2.1.10","prettier":"3.9.6","@types/bun":"1.3.14","typescript":"5.9.3","@biomejs/biome":"2.5.9","@commitlint/cli":"21.2.2","semantic-release":"25.0.9","markdownlint-cli2":"0.23.2","sort-package-json":"4.0.0","@semantic-release/git":"11.0.1","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.9","ts-json-schema-generator":"2.9.0","@semantic-release/changelog":"7.0.0","@commitlint/config-conventional":"21.2.2","@semantic-release/release-notes-generator":"14.1.1","conventional-changelog-conventionalcommits":"9.3.1"},"trustedDependencies":["lefthook"],"_npmOperationalInternal":{"tmp":"tmp/core_1.5.0_1788113203767_0.15117170749515618","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@washy-washy/core","version":"1.5.1","keywords":["laundry","csv","chart"],"license":"GPL-3.0-or-later","_id":"@washy-washy/core@1.5.1","maintainers":[{"name":"alrayyes","email":"alias+npm@ryankes.eu"}],"homepage":"https://github.com/alrayyes/washy-washy-core#readme","bugs":{"url":"https://github.com/alrayyes/washy-washy-core/issues"},"dist":{"shasum":"f1cc1aa9e05685a0c2e08c66f2fc872b596ca317","tarball":"https://registry.npmjs.org/@washy-washy/core/-/core-1.5.1.tgz","fileCount":12,"integrity":"sha512-shK6/oNIL7/CihF1FypDkxqTXQb72zhIqg1Ke5L5RlKdYpVvieSKkhnMb4KeBA7r0ufC/jHTcdVIHU94jX8oJw==","signatures":[{"sig":"MEUCIQDWw5jMExuPTW3wc3lQgdzLP6p7KpTTUCP6Hdv7u0XcgAIgZzcxQb4Myl4qRD83LF9171DGC3oM6o1GmBbqIWqYXAo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@washy-washy%2fcore@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":131112},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./browser":{"types":"./dist/browser.d.mts","default":"./dist/browser.mjs"}},"gitHead":"154172e0df84aa1845af4ce4ff09be50ad226638","scripts":{"docs":"typedoc","lint":"biome check .","test":"bun test","build":"tsdown","check":"bun run lint && bun run lint:md && bun run lint:yaml && bun run lint:package-json && bun run lint:prose && bun run lint:schema && bun run typecheck && bun test","format":"prettier --write .","schema":"ts-json-schema-generator --path src/config.ts --type Config --tsconfig tsconfig.json -o schema/config.schema.json && biome format --write schema/config.schema.json","lint:md":"prettier --check \"**/*.md\" && markdownlint-cli2 \"**/*.md\"","prepare":"lefthook install","lint:fix":"biome check --write .","lint:yaml":"prettier --check \"**/*.{yml,yaml}\"","typecheck":"tsc --noEmit","lint:prose":".tools/vale --glob='!{styles/**,CHANGELOG.md}' --minAlertLevel=error .","prose:sync":"bun run scripts/install-vale.ts && .tools/vale sync","lint:schema":"bun run schema && git diff --exit-code schema/","lint:package-json":"sort-package-json --check","lint:prose:advice":".tools/vale --glob='!{styles/**,CHANGELOG.md}' ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b6944c38-3d7e-4e3f-b18b-4dba6c048d6a"}},"repository":{"url":"git+https://github.com/alrayyes/washy-washy-core.git","type":"git"},"_npmVersion":"11.19.0","description":"Chart parsing, mixing rules and machine validation for washy-washy — a laundry chart generator.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"csv-parse":"7.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"0.22.14","typedoc":"0.28.20","lefthook":"2.1.10","prettier":"3.9.6","@types/bun":"1.3.14","typescript":"5.9.3","@biomejs/biome":"2.5.9","@commitlint/cli":"21.2.2","semantic-release":"25.0.9","markdownlint-cli2":"0.23.2","sort-package-json":"4.0.0","@semantic-release/git":"11.0.1","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.9","ts-json-schema-generator":"2.9.0","@semantic-release/changelog":"7.0.0","@commitlint/config-conventional":"21.2.2","@semantic-release/release-notes-generator":"14.1.1","conventional-changelog-conventionalcommits":"9.3.1"},"trustedDependencies":["lefthook"],"_npmOperationalInternal":{"tmp":"tmp/core_1.5.1_1788971737804_0.3185336326310868","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@washy-washy/core","version":"1.5.2","keywords":["laundry","csv","chart"],"license":"GPL-3.0-or-later","_id":"@washy-washy/core@1.5.2","maintainers":[{"name":"alrayyes","email":"alias+npm@ryankes.eu"}],"homepage":"https://github.com/alrayyes/washy-washy-core#readme","bugs":{"url":"https://github.com/alrayyes/washy-washy-core/issues"},"dist":{"shasum":"f0b80fe47201f33442efe4ed281583851d5c6d73","tarball":"https://registry.npmjs.org/@washy-washy/core/-/core-1.5.2.tgz","fileCount":12,"integrity":"sha512-6vXCRZxrQJaBhTOXSmyvuPr27btPFfAmWSvlgdOfu6zIizO7+GD8to7xiGDAZXd8PSYibiWeErICN83syMbgyA==","signatures":[{"sig":"MEYCIQDIF+1zEyHfG0KeUSxJLYhhsC1Em3cUPH5CSm6ye2rGPAIhAOwKN5hACXLNHk/FoKvPPGPFGIHtwoa7EUzEE6F/kJlQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@washy-washy%2fcore@1.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":131112},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./browser":{"types":"./dist/browser.d.mts","default":"./dist/browser.mjs"}},"gitHead":"1989ea55443cc1c44341b7b0a0f32805b5363449","scripts":{"docs":"typedoc","lint":"biome check .","test":"bun test","build":"tsdown","check":"bun run lint && bun run lint:md && bun run lint:yaml && bun run lint:package-json && bun run lint:prose && bun run lint:schema && bun run typecheck && bun test","format":"prettier --write .","schema":"ts-json-schema-generator --path src/config.ts --type Config --tsconfig tsconfig.json -o schema/config.schema.json && biome format --write schema/config.schema.json","lint:md":"prettier --check \"**/*.md\" && markdownlint-cli2 \"**/*.md\"","prepare":"lefthook install","lint:fix":"biome check --write .","lint:yaml":"prettier --check \"**/*.{yml,yaml}\"","typecheck":"tsc --noEmit","lint:prose":".tools/vale --glob='!{styles/**,CHANGELOG.md}' --minAlertLevel=error .","prose:sync":"bun run scripts/install-vale.ts && .tools/vale sync","lint:schema":"bun run schema && git diff --exit-code schema/","lint:package-json":"sort-package-json --check","lint:prose:advice":".tools/vale --glob='!{styles/**,CHANGELOG.md}' ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b6944c38-3d7e-4e3f-b18b-4dba6c048d6a"}},"repository":{"url":"git+https://github.com/alrayyes/washy-washy-core.git","type":"git"},"_npmVersion":"11.19.0","description":"Chart parsing, mixing rules and machine validation for washy-washy — a laundry chart generator.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"csv-parse":"7.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"0.22.14","typedoc":"0.28.20","lefthook":"2.1.10","prettier":"3.9.6","@types/bun":"1.3.14","typescript":"5.9.3","@biomejs/biome":"2.5.9","@commitlint/cli":"21.2.2","semantic-release":"25.0.9","markdownlint-cli2":"0.23.2","sort-package-json":"4.0.0","@semantic-release/git":"11.0.1","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.9","ts-json-schema-generator":"2.9.0","@semantic-release/changelog":"7.0.0","@commitlint/config-conventional":"21.2.2","@semantic-release/release-notes-generator":"14.1.1","conventional-changelog-conventionalcommits":"9.3.1"},"trustedDependencies":["lefthook"],"_npmOperationalInternal":{"tmp":"tmp/core_1.5.2_1788971837890_0.46297495527608623","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"@washy-washy/core","version":"1.5.3","keywords":["laundry","csv","chart"],"license":"GPL-3.0-or-later","_id":"@washy-washy/core@1.5.3","maintainers":[{"name":"alrayyes","email":"alias+npm@ryankes.eu"}],"homepage":"https://github.com/alrayyes/washy-washy-core#readme","bugs":{"url":"https://github.com/alrayyes/washy-washy-core/issues"},"dist":{"shasum":"5b8b51dee6d605f70572e2bfd719a25831ee788c","tarball":"https://registry.npmjs.org/@washy-washy/core/-/core-1.5.3.tgz","fileCount":12,"integrity":"sha512-C/hsLIK/dbIYpEGSuWaWMbDcjuNFttEDluv063VfmF6NOSEwFF91uEedUOrMna6QtSVV3rnDBBSqV7ptLbfh3A==","signatures":[{"sig":"MEQCICpftzeF+AzHiNc/NWxeSDjydg/wvt+5npjNDHa3G5jpAiB4GPG9dX3S+0AlHLjF31oopv6+ZRAS4/L4CGD+JREZAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@washy-washy%2fcore@1.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":131112},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./browser":{"types":"./dist/browser.d.mts","default":"./dist/browser.mjs"}},"gitHead":"2527c41eec7e5324a0a9a0de0b49690f30246d7b","scripts":{"docs":"typedoc","lint":"biome check .","test":"bun test","build":"tsdown","check":"bun run lint && bun run lint:md && bun run lint:yaml && bun run lint:package-json && bun run lint:prose && bun run lint:schema && bun run typecheck && bun test","format":"prettier --write .","schema":"ts-json-schema-generator --path src/config.ts --type Config --tsconfig tsconfig.json -o schema/config.schema.json && biome format --write schema/config.schema.json","lint:md":"prettier --check \"**/*.md\" && markdownlint-cli2 \"**/*.md\"","prepare":"lefthook install","lint:fix":"biome check --write .","lint:yaml":"prettier --check \"**/*.{yml,yaml}\"","typecheck":"tsc --noEmit","lint:prose":".tools/vale --glob='!{styles/**,CHANGELOG.md}' --minAlertLevel=error .","prose:sync":"bun run scripts/install-vale.ts && .tools/vale sync","lint:schema":"bun run schema && git diff --exit-code schema/","lint:package-json":"sort-package-json --check","lint:prose:advice":".tools/vale --glob='!{styles/**,CHANGELOG.md}' ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b6944c38-3d7e-4e3f-b18b-4dba6c048d6a"}},"repository":{"url":"git+https://github.com/alrayyes/washy-washy-core.git","type":"git"},"_npmVersion":"11.19.0","description":"Chart parsing, mixing rules and machine validation for washy-washy — a laundry chart generator.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"csv-parse":"7.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"0.22.14","typedoc":"0.28.20","lefthook":"2.1.10","prettier":"3.9.6","@types/bun":"1.3.14","typescript":"5.9.3","@biomejs/biome":"2.5.9","@commitlint/cli":"21.2.2","semantic-release":"25.0.9","markdownlint-cli2":"0.23.2","sort-package-json":"4.0.0","@semantic-release/git":"11.0.1","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.9","ts-json-schema-generator":"2.9.0","@semantic-release/changelog":"7.0.0","@commitlint/config-conventional":"21.2.2","@semantic-release/release-notes-generator":"14.1.1","conventional-changelog-conventionalcommits":"9.3.1"},"trustedDependencies":["lefthook"],"_npmOperationalInternal":{"tmp":"tmp/core_1.5.3_1788975400621_0.19164141454648043","host":"s3://npm-registry-packages-npm-production"}},"1.5.4":{"name":"@washy-washy/core","version":"1.5.4","keywords":["laundry","csv","chart"],"license":"GPL-3.0-or-later","_id":"@washy-washy/core@1.5.4","maintainers":[{"name":"alrayyes","email":"alias+npm@ryankes.eu"}],"homepage":"https://github.com/alrayyes/washy-washy-core#readme","bugs":{"url":"https://github.com/alrayyes/washy-washy-core/issues"},"dist":{"shasum":"80a5666fa1fe23ed0d6c876be2420792512597d6","tarball":"https://registry.npmjs.org/@washy-washy/core/-/core-1.5.4.tgz","fileCount":12,"integrity":"sha512-a1wwl4fguga7h8eAgRI7AKnH82RJRkdWLB3BwDrpX2qaIFb/vO4Ri88ZaXF/+XCK6Cwnue4HwR0pybszxDwjGw==","signatures":[{"sig":"MEUCICAk/m2Xt8LH7Fdu3xRIvKrxpGHqKrbZlCaNBWCsKBx+AiEAoUDux9EW7zeokYDOp9ixUoOAVtd6KZgERDdHAoms1bE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@washy-washy%2fcore@1.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":131159},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./browser":{"types":"./dist/browser.d.mts","default":"./dist/browser.mjs"}},"gitHead":"4beee7aeed9f8b9c95130ec514fa41fd70ac7742","scripts":{"docs":"typedoc","lint":"biome check .","test":"bun test","build":"tsdown","check":"bun run lint && bun run lint:md && bun run lint:yaml && bun run lint:package-json && bun run lint:prose && bun run lint:schema && bun run typecheck && bun test","format":"prettier --write .","schema":"ts-json-schema-generator --path src/config.ts --type Config --tsconfig tsconfig.json -o schema/config.schema.json && biome format --write schema/config.schema.json","lint:md":"prettier --check \"**/*.md\" && markdownlint-cli2 \"**/*.md\"","prepare":"lefthook install","lint:fix":"biome check --write .","lint:yaml":"prettier --check \"**/*.{yml,yaml}\"","typecheck":"tsc --noEmit","lint:prose":".tools/vale --glob='!{styles/**,CHANGELOG.md}' --minAlertLevel=error .","prose:sync":"bun run scripts/install-vale.ts && .tools/vale sync","lint:schema":"bun run schema && git diff --exit-code schema/","lint:package-json":"sort-package-json --check","lint:prose:advice":".tools/vale --glob='!{styles/**,CHANGELOG.md}' ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b6944c38-3d7e-4e3f-b18b-4dba6c048d6a"}},"overrides":{"smol-toml":"1.7.2"},"repository":{"url":"git+https://github.com/alrayyes/washy-washy-core.git","type":"git"},"_npmVersion":"11.19.0","description":"Chart parsing, mixing rules and machine validation for washy-washy — a laundry chart generator.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"csv-parse":"7.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"0.22.14","typedoc":"0.28.20","lefthook":"2.1.10","prettier":"3.9.6","@types/bun":"1.3.14","typescript":"5.9.3","@biomejs/biome":"2.5.9","@commitlint/cli":"21.2.2","semantic-release":"25.0.9","markdownlint-cli2":"0.23.2","sort-package-json":"4.0.0","@semantic-release/git":"11.0.1","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.9","ts-json-schema-generator":"2.9.0","@semantic-release/changelog":"7.0.0","@commitlint/config-conventional":"21.2.2","@semantic-release/release-notes-generator":"14.1.1","conventional-changelog-conventionalcommits":"9.3.1"},"trustedDependencies":["lefthook"],"_npmOperationalInternal":{"tmp":"tmp/core_1.5.4_1789059337332_0.9177978289700068","host":"s3://npm-registry-packages-npm-production"}},"1.5.5":{"name":"@washy-washy/core","version":"1.5.5","keywords":["laundry","csv","chart"],"license":"GPL-3.0-or-later","_id":"@washy-washy/core@1.5.5","maintainers":[{"name":"alrayyes","email":"alias+npm@ryankes.eu"}],"homepage":"https://github.com/alrayyes/washy-washy-core#readme","bugs":{"url":"https://github.com/alrayyes/washy-washy-core/issues"},"dist":{"shasum":"f63b4724ed8f3559eb763b7041105d7628d1ac83","tarball":"https://registry.npmjs.org/@washy-washy/core/-/core-1.5.5.tgz","fileCount":12,"integrity":"sha512-p8C6QbGsb5/cezbNzOJOFQjJ8FDjmM72ayQEq17gb0kZFNkRIBeq0RQjnUrXVqM+pS9NVSyTXXKcOGS1cRUhng==","signatures":[{"sig":"MEUCIQDeXfpnS9dS+N0gdhFNhk3KvAw+zzAA2H37NntCid9q7wIgWnJ3QNn1e9xJsCc+APFeW9Dw4DucH+N7PqFUf5LrQYI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@washy-washy%2fcore@1.5.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":132038},"type":"module","types":"./dist/index.d.mts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./browser":{"types":"./dist/browser.d.mts","default":"./dist/browser.mjs"}},"gitHead":"4222e9723941d20e8bc25470001adf5b1c055908","scripts":{"docs":"typedoc","lint":"biome check .","test":"bun test","build":"tsdown","check":"bun run lint && bun run lint:md && bun run lint:yaml && bun run lint:package-json && bun run lint:prose && bun run lint:schema && bun run lint:types-d && bun run typecheck && bun test","format":"prettier --write .","schema":"ts-json-schema-generator --path src/config.ts --type Config --tsconfig tsconfig.json -o schema/config.schema.json && biome format --write schema/config.schema.json","lint:md":"prettier --check \"**/*.md\" && markdownlint-cli2 \"**/*.md\"","prepare":"lefthook install","lint:fix":"biome check --write .","mutation":"stryker run","lint:yaml":"prettier --check \"**/*.{yml,yaml}\"","typecheck":"tsc --noEmit","lint:prose":".tools/vale --glob='!{styles/**,CHANGELOG.md}' --minAlertLevel=error .","prose:sync":"bun run scripts/install-vale.ts && .tools/vale sync","lint:schema":"bun run schema && git diff --exit-code schema/","lint:types-d":"bun run build && tsd --files \"test-d/**/*.test-d.ts\"","lint:package-json":"sort-package-json --check","lint:prose:advice":".tools/vale --glob='!{styles/**,CHANGELOG.md}' ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b6944c38-3d7e-4e3f-b18b-4dba6c048d6a"}},"overrides":{"qs":"6.16.0","smol-toml":"1.7.2"},"repository":{"url":"git+https://github.com/alrayyes/washy-washy-core.git","type":"git"},"_npmVersion":"11.19.0","description":"Chart parsing, mixing rules and machine validation for washy-washy — a laundry chart generator.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"csv-parse":"7.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsd":"0.33.0","tsdown":"0.23.0","typedoc":"0.28.20","lefthook":"2.1.12","prettier":"3.9.6","@types/bun":"1.4.2","typescript":"7.0.2","@biomejs/biome":"2.5.12","@commitlint/cli":"21.2.2","semantic-release":"25.0.9","markdownlint-cli2":"0.23.2","sort-package-json":"4.0.0","@semantic-release/git":"11.0.1","@semantic-release/npm":"13.1.5","@stryker-mutator/core":"10.0.0","@semantic-release/github":"12.0.9","ts-json-schema-generator":"2.9.0","@semantic-release/changelog":"7.0.0","@hughescr/stryker-bun-runner":"1.3.8","@commitlint/config-conventional":"21.2.2","@semantic-release/release-notes-generator":"14.1.1","conventional-changelog-conventionalcommits":"9.3.1"},"trustedDependencies":["lefthook"],"_npmOperationalInternal":{"tmp":"tmp/core_1.5.5_1789126877493_0.03998241262286739","host":"s3://npm-registry-packages-npm-production"}},"1.5.6":{"name":"@washy-washy/core","version":"1.5.6","description":"Chart parsing, mixing rules and machine validation for washy-washy — a laundry chart generator.","keywords":["laundry","csv","chart"],"homepage":"https://github.com/alrayyes/washy-washy-core#readme","bugs":{"url":"https://github.com/alrayyes/washy-washy-core/issues"},"repository":{"type":"git","url":"git+https://github.com/alrayyes/washy-washy-core.git"},"license":"GPL-3.0-or-later","type":"module","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./browser":{"types":"./dist/browser.d.mts","default":"./dist/browser.mjs"}},"types":"./dist/index.d.mts","scripts":{"build":"tsdown","check":"bun run lint && bun run lint:md && bun run lint:yaml && bun run lint:package-json && bun run lint:prose && bun run lint:schema && bun run lint:types-d && bun run typecheck && bun test","docs":"typedoc","format":"prettier --write .","lint":"biome check .","lint:fix":"biome check --write .","lint:md":"prettier --check \"**/*.md\" && markdownlint-cli2 \"**/*.md\"","lint:package-json":"sort-package-json --check","lint:prose":".tools/vale --glob='!{styles/**,CHANGELOG.md}' --minAlertLevel=error .","lint:prose:advice":".tools/vale --glob='!{styles/**,CHANGELOG.md}' .","lint:schema":"bun run schema && git diff --exit-code schema/","lint:types-d":"bun run build && tsd --files \"test-d/**/*.test-d.ts\"","lint:yaml":"prettier --check \"**/*.{yml,yaml}\"","mutation":"stryker run","prepare":"lefthook install","prose:sync":"bun run scripts/install-vale.ts && .tools/vale sync","schema":"ts-json-schema-generator --path src/config.ts --type Config --tsconfig tsconfig.json -o schema/config.schema.json && biome format --write schema/config.schema.json","test":"bun test","typecheck":"tsc --noEmit"},"overrides":{"qs":"6.16.0","smol-toml":"1.7.2"},"dependencies":{"csv-parse":"7.0.2"},"devDependencies":{"@biomejs/biome":"2.5.12","@commitlint/cli":"21.2.2","@commitlint/config-conventional":"21.2.2","@hughescr/stryker-bun-runner":"1.3.8","@semantic-release/changelog":"7.0.0","@semantic-release/git":"11.0.1","@semantic-release/github":"12.0.9","@semantic-release/npm":"13.1.5","@semantic-release/release-notes-generator":"14.1.1","@stryker-mutator/core":"10.0.0","@types/bun":"1.4.2","conventional-changelog-conventionalcommits":"9.3.1","lefthook":"2.1.12","markdownlint-cli2":"0.23.2","prettier":"3.9.6","semantic-release":"25.0.9","sort-package-json":"4.0.0","ts-json-schema-generator":"2.9.0","tsd":"0.33.0","tsdown":"0.23.0","typedoc":"0.28.20","typescript":"6.0.3"},"engines":{"node":">=18"},"publishConfig":{"access":"public"},"trustedDependencies":["lefthook"],"gitHead":"88b508b27a4862b6a2d98584fc969f9328725fa4","_id":"@washy-washy/core@1.5.6","_nodeVersion":"24.10.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-gG29p8kqxGit/CmhWnbHVCXLPQN3gI4jdvx3zIjszrJo98rXNPxEGy4+gtaMyZVFE0DGlLnFaWSz9uu+F3La9A==","shasum":"4f8e3c6a1235a0f4a193a0dd73904ea4abf694cb","tarball":"https://registry.npmjs.org/@washy-washy/core/-/core-1.5.6.tgz","fileCount":12,"unpackedSize":132038,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@washy-washy%2fcore@1.5.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHHrHgpQjtX2R+CRti9IzEdM7XwL59bJ4/BhXH5Hs3FXAiEAxxMeDy5199mQFe+GMmLh7d95++M+hrKE6OYa5pyOQwk="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b6944c38-3d7e-4e3f-b18b-4dba6c048d6a"}},"directories":{},"maintainers":[{"name":"alrayyes","email":"alias+npm@ryankes.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_1.5.6_1789127015570_0.9698823467539257"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-22T11:17:43.371Z","modified":"2026-09-11T11:43:36.063Z","0.0.0":"2026-08-22T11:17:43.681Z","1.0.0":"2026-08-22T11:23:58.501Z","1.1.0":"2026-08-22T12:06:38.386Z","1.2.0":"2026-08-22T14:04:48.544Z","1.3.0":"2026-08-22T16:04:45.872Z","1.3.1":"2026-08-23T07:38:42.043Z","1.4.0":"2026-08-25T10:11:45.341Z","1.4.1":"2026-08-25T11:00:00.737Z","1.5.0":"2026-08-30T18:06:43.904Z","1.5.1":"2026-09-09T16:35:37.958Z","1.5.2":"2026-09-09T16:37:18.038Z","1.5.3":"2026-09-09T17:36:40.751Z","1.5.4":"2026-09-10T16:55:37.461Z","1.5.5":"2026-09-11T11:41:17.667Z","1.5.6":"2026-09-11T11:43:35.730Z"},"bugs":{"url":"https://github.com/alrayyes/washy-washy-core/issues"},"license":"GPL-3.0-or-later","homepage":"https://github.com/alrayyes/washy-washy-core#readme","keywords":["laundry","csv","chart"],"repository":{"type":"git","url":"git+https://github.com/alrayyes/washy-washy-core.git"},"description":"Chart parsing, mixing rules and machine validation for washy-washy — a laundry chart generator.","maintainers":[{"name":"alrayyes","email":"alias+npm@ryankes.eu"}],"readme":"# @washy-washy/core\n\n[![check](https://github.com/alrayyes/washy-washy-core/actions/workflows/ci.yml/badge.svg)](https://github.com/alrayyes/washy-washy-core/actions/workflows/ci.yml)\n[![npm](https://img.shields.io/npm/v/%40washy-washy%2Fcore)](https://www.npmjs.com/package/@washy-washy/core)\n[![Codecov](https://codecov.io/gh/alrayyes/washy-washy-core/graph/badge.svg)](https://codecov.io/gh/alrayyes/washy-washy-core)\n[![license](https://img.shields.io/github/license/alrayyes/washy-washy-core)](LICENSE)\n[![docs](https://img.shields.io/badge/docs-typedoc-blue)](https://alrayyes.github.io/washy-washy-core/)\n\nChart parsing, machine validation, and mixing rules for\n[washy-washy](https://github.com/alrayyes/washy-washy-cli), a laundry chart\ngenerator. This package holds no rendering or file I/O — just the pure logic\na CSV/JSON chart is checked and reasoned about with, shared by the CLI, the\nweb app, and [`@washy-washy/pdf`](https://github.com/alrayyes/washy-washy-pdf).\n\n**Jump to:** [Browser](#browser) · [Node and Bun (CSV)](#node-and-bun-csv) ·\n[What's in it](#whats-in-it) · [Development](#development) ·\n[API reference](https://alrayyes.github.io/washy-washy-core/)\n\n## Requirements\n\n- Node.js 18+, Bun, or any other runtime with modern ESM/`exports` map\n  support.\n- No system packages, no external services, no credentials — this package\n  does no file I/O and no network access.\n\n## Install\n\n```sh\nnpm install @washy-washy/core\n```\n\n## Two entry points\n\n| Import                      | Use when                          | Includes                          |\n| --------------------------- | --------------------------------- | --------------------------------- |\n| `@washy-washy/core/browser` | Bundled for a browser             | Everything except CSV parsing     |\n| `@washy-washy/core`         | Node/Bun, reading a CSV from disk | Everything, including CSV parsing |\n\n`@washy-washy/core`'s CSV parser depends on `csv-parse`, which reaches for\nNode's `Buffer` at import time even if nothing calls it — a bundler ships\nthat reference into the client, and it dies at runtime with\n`Buffer is not defined`. `@washy-washy/core/browser` excludes it: a browser\nconsumer reads and writes charts as JSON instead (`chartFromJson`/\n`chartToJson`), which needs no such dependency.\n\n## Usage\n\n### Browser\n\nRead and write a chart as JSON instead of CSV — `@washy-washy/core/browser`\nhas no CSV parser (see [Two entry points](#two-entry-points)).\n\n```ts\nimport {\n  chartFromJson,\n  chartToJson,\n  parseMachine,\n} from \"@washy-washy/core/browser\";\n\nconst machine = parseMachine(machineConfig);\nconst instructions = chartFromJson(jsonFromStorage, machine);\n```\n\n### Node and Bun (CSV)\n\n```ts\nimport { parseInstructions, parseMachine } from \"@washy-washy/core\";\n\nconst machine = parseMachine(JSON.parse(machineFileContents));\nconst instructions = parseInstructions(csvFileContents, machine);\n```\n\n### What's in it\n\n- Every chart row carries an optional `referenceName`/`referenceLink` pair —\n  who to credit for a care instruction that isn't obvious from the garment\n  itself (\"the manufacturer says wash these alone\"), and a link backing it\n  up. Both are empty strings when there's nothing to cite.\n- **`parseMachine`** validates a machine description (washer programmes,\n  temperatures, spins, options; iron thermostat positions) and hands back a\n  typed `Machine`. Every failure names the field that's wrong.\n- **`parseInstructions`** (CSV) and **`chartFromJson`**/**`chartToJson`**\n  (JSON) parse a chart against a `Machine`, rejecting any row that asks for a\n  setting the machine doesn't have. `duration` is checked too, against\n  `~H:MM` (the `~` is optional) — empty is still fine, for a pile with no\n  duration on record.\n- **`parseConfig`**/**`configFromJson`**/**`configToJson`** do the same for a\n  machine and a chart together, as one `{ machine, chart }` object — the\n  chart is always validated against the machine it's embedded with.\n  `configToJson`'s output leads with a `$schema` key\n  ([`schema/config.schema.json`](schema/config.schema.json), generated from\n  the `Config` type, so it can't drift) — an editor that reads it, VS Code\n  among them, validates and autocompletes the file with no setup. The output\n  is plain `JSON.stringify(..., null, 2)` — if you write it straight to a\n  file in a Biome- or Prettier-linted repo, run your own formatter over it\n  afterward, since a generic serializer can't match either tool's opinions.\n- **`mixBlocker`**/**`canMix`**/**`resolve`** decide whether two piles of\n  laundry can share a drum, and why not when they can't.\n- **`cardGroups`**/**`washGroups`**/**`ironGroups`** group instructions the\n  way a printed chart is laid out: one card per identical setup, a wash-only\n  cut, an iron-only cut ordered by thermostat position.\n\nEvery exported function and type carries a TSDoc comment with a runnable\nexample — that's your editor's hover, and it's also the generated\n[API reference](https://alrayyes.github.io/washy-washy-core/).\n[`@washy-washy/pdf`](https://alrayyes.github.io/washy-washy-pdf/) has the same.\n\n## Development\n\n```sh\nbun install\nbun run check    # lint, typecheck, test\nbun run build    # emit dist/ (tsdown)\n```\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) and, for how the modules fit together,\n[docs/ARCHITECTURE.md](docs/ARCHITECTURE.md).\n\n## License\n\n[GPL-3.0-or-later](LICENSE).\n","readmeFilename":"README.md"}