{"_id":"@bytesrc/ach-banking-days","name":"@bytesrc/ach-banking-days","dist-tags":{"latest":"0.0.0"},"versions":{"0.0.0":{"name":"@bytesrc/ach-banking-days","version":"0.0.0","description":"Calculate U.S. ACH banking days (FedACH closures) with date-only LocalDate.","license":"MIT","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"build":"tsup src/index.ts --format esm,cjs --dts --clean","changeset":"changeset","release":"changeset publish","typecheck":"tsc -p tsconfig.json","test":"vitest run","version":"changeset version"},"devDependencies":{"@changesets/cli":"^2.29.8","@types/node":"^22.19.3","tsup":"^8.5.1","typescript":"^5.9.3","vitest":"^2.1.9"},"_id":"@bytesrc/ach-banking-days@0.0.0","gitHead":"52f06a381928d98b81ed653bc15da94fba129fca","_nodeVersion":"20.19.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-DXqfFRuYVeBWSyMP/DC8MX4eVNJEofq70Y8cMpvf76h273rzI7Vs7ei6zj7Di3Zsu03MgL5kLhoxYTYbHlwQlA==","shasum":"3778834daf2b93bab33909a29691f59e1af7b099","tarball":"https://registry.npmjs.org/@bytesrc/ach-banking-days/-/ach-banking-days-0.0.0.tgz","fileCount":7,"unpackedSize":5835,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDpZUR/XNHhdNVthaO5L8Gs8lcgydvsjyjX/4BlJTOy1wIgTmvjBYr9QWLiU/vb4EXm5u0WSfVL+5XB4ka1sFEBhPM="}]},"_npmUser":{"name":"zaqttack","email":"zaquariah@gmail.com"},"directories":{},"maintainers":[{"name":"zaqttack","email":"zaquariah@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ach-banking-days_0.0.0_1767858448651_0.25816997408409725"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-08T07:47:28.536Z","0.0.0":"2026-01-08T07:47:28.781Z","modified":"2026-01-08T07:47:29.042Z"},"maintainers":[{"name":"zaqttack","email":"zaquariah@gmail.com"}],"description":"Calculate U.S. ACH banking days (FedACH closures) with date-only LocalDate.","license":"MIT","readme":"# @bytesrc/ach-banking-days\n\nACH-focused banking day utilities for the U.S. (FedACH closures), written in TypeScript and published with ESM + CJS + types.\n\n## Install\n\n```bash\nnpm i @bytesrc/ach-banking-days\n# pnpm add @bytesrc/ach-banking-days\n# yarn add @bytesrc/ach-banking-days\n```\n\n## Quick start\n\n```ts\nimport {\n  isBankingDay,\n  nextBankingDay,\n  addBankingDays,\n  roll,\n} from \"@bytesrc/ach-banking-days\";\n\nisBankingDay(\"2026-01-01\");        // false\nnextBankingDay(\"2026-01-01\");      // \"2026-01-02\"\naddBankingDays(\"2026-01-02\", 3);   // skips weekends/closures\nroll(\"2026-07-04\", \"following\");   // next banking day\n```\n\n## Inputs: `LocalDate` and `Date`\n\nThe canonical input/output type is:\n\n- `LocalDate` = `\"YYYY-MM-DD\"`\n\nIf you have a JS `Date`, convert it:\n\n```ts\nimport { toLocalDate, nextBankingDay } from \"@bytesrc/ach-banking-days\";\n\nconst d = new Date(\"2026-01-01T15:23:00Z\");\nconst local = toLocalDate(d, { tz: \"America/New_York\" });\nconst next = nextBankingDay(local);\n```\n\n## Overrides (custom closures, exclusions)\n\n```ts\nimport {\n  createCalendar,\n  usFedAchCalendar,\n  nextBankingDay,\n} from \"@bytesrc/ach-banking-days\";\n\nconst calendar = createCalendar({\n  base: usFedAchCalendar,\n  exclude: [\"columbus_day\"], // exclude by stable holiday id (all years)\n  addHolidays: [{ date: \"2026-12-24\", name: \"Bank Xmas Eve\" }], // one-off closure\n  removeDates: [\"2026-01-19\"], // remove a specific occurrence\n});\n\nnextBankingDay(\"2026-12-24\", { calendar });\n```\n\n## API (MVP)\n\n- `toLocalDate(input, { tz? }) -> LocalDate`\n- `isBankingDay(date, opts?) -> boolean`\n- `nextBankingDay(date, opts?) -> LocalDate`\n- `prevBankingDay(date, opts?) -> LocalDate`\n- `addBankingDays(date, n, opts?) -> LocalDate`\n- `roll(date, convention, opts?) -> LocalDate`\n- `usFedAchCalendar` (default calendar provider)\n- `createCalendar(config)` (override helper)\n\n## Development\n\n```bash\nnpm ci\nnpm run typecheck\nnpm test\nnpm run build\n```\n\n### Scripts (recommended)\n- `typecheck`: `tsc --noEmit`\n- `test`: `vitest run`\n- `build`: `tsup src/index.ts --format esm,cjs --dts`\n\n## Publishing (recommended approach)\n\nThis repo is intended to publish via GitHub Actions + npm **Trusted Publishing (OIDC)**:\n- CI validates PRs (typecheck + tests + build)\n- Changesets manages version bumps and changelog entries\n- Release workflow publishes to npm on merge to `main`\n\nSee `TASKS.md` for the full setup checklist and milestones.\n\n## License\nMIT\n","readmeFilename":"README.md","_rev":"1-cf2e815bb68c8c9000b22327d403516d"}