{"_id":"@artesa/feathers-open-holidays","_rev":"2-0e7195c864eebf61ef72555597a8d0e9","name":"@artesa/feathers-open-holidays","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@artesa/feathers-open-holidays","version":"0.1.0","keywords":["feathers","feathersjs","holidays","open-holidays","openholidaysapi"],"author":{"name":"fratzinger"},"license":"MIT","_id":"@artesa/feathers-open-holidays@0.1.0","maintainers":[{"name":"thenoim","email":"nilsbergmann@noim.io"},{"name":"fratzinger","email":"frederik.schmatz@gmail.com"}],"homepage":"https://github.com/artesa/feathers-open-holidays#readme","bugs":{"url":"https://github.com/artesa/feathers-open-holidays/issues"},"dist":{"shasum":"53b13a7c4f67b757bfac03f623e0e76aa3fb88cc","tarball":"https://registry.npmjs.org/@artesa/feathers-open-holidays/-/feathers-open-holidays-0.1.0.tgz","fileCount":5,"integrity":"sha512-0gFW0/PAX5nZqpxqGwOrEu4MGNoCmrDgFnRPQK9rbVLA/ng69kqlmSwB3Zgpo7jsE36s1tl9aNqip/kXS/XMLw==","signatures":[{"sig":"MEYCIQCbgLrIlpvig5o8xILWRlaLAiDuwSVMUrC+B/I5qq+jJwIhAKfc2szcq1yjNBw0Gk0Fhk3Ot6gtR31lzTHaYPsmWC4S","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16155},"type":"module","_from":"file:artesa-feathers-open-holidays-0.1.0.tgz","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","attw":"attw --pack . --ignore-rules cjs-resolves-to-esm","lint":"eslint","test":"vitest","build":"tsdown","version":"pnpm run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"fratzinger","email":"frederik.schmatz@gmail.com"},"_resolved":"/private/var/folders/p3/xprx4gnj0zl_5csd5czz4bw80000gn/T/698698480f30e4bbbd887b1c9cb71d45/artesa-feathers-open-holidays-0.1.0.tgz","_integrity":"sha512-0gFW0/PAX5nZqpxqGwOrEu4MGNoCmrDgFnRPQK9rbVLA/ng69kqlmSwB3Zgpo7jsE36s1tl9aNqip/kXS/XMLw==","repository":{"url":"git+https://github.com/artesa/feathers-open-holidays.git","type":"git"},"_npmVersion":"10.9.2","description":"FeathersJS services for the OpenHolidays API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"open-holiday-js":"^1.0.3"},"_hasShrinkwrap":false,"devDependencies":{"np":"^11.0.2","eslint":"^10.0.3","tsdown":"^0.21.1","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^25.4.0","@feathersjs/errors":"^5.0.42","@feathersjs/feathers":"^5.0.42","@arethetypeswrong/cli":"^0.18.2","@typescript/native-preview":"7.0.0-dev.20260309.1","@feathers-community/eslint-config":"^0.0.10"},"peerDependencies":{"@feathersjs/errors":"^5","@feathersjs/feathers":"^5"},"_npmOperationalInternal":{"tmp":"tmp/feathers-open-holidays_0.1.0_1773089214713_0.7264888542287062","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@artesa/feathers-open-holidays","type":"module","version":"0.2.0","description":"FeathersJS services for the OpenHolidays API","author":{"name":"fratzinger"},"license":"MIT","homepage":"https://github.com/artesa/feathers-open-holidays#readme","repository":{"type":"git","url":"git+https://github.com/artesa/feathers-open-holidays.git"},"bugs":{"url":"https://github.com/artesa/feathers-open-holidays/issues"},"keywords":["feathers","feathersjs","holidays","open-holidays","openholidaysapi"],"exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"types":"./dist/index.d.mts","devDependencies":{"@arethetypeswrong/cli":"^0.18.2","@feathers-community/eslint-config":"^0.0.10","@feathersjs/errors":"^5.0.42","@feathersjs/feathers":"^5.0.42","@types/node":"^25.4.0","@typescript/native-preview":"7.0.0-dev.20260309.1","eslint":"^10.0.3","np":"^11.0.2","tsdown":"^0.21.1","typescript":"^5.9.3","vitest":"^4.0.18"},"dependencies":{"open-holiday-js":"^1.0.3"},"peerDependencies":{"@feathersjs/errors":"^5","@feathersjs/feathers":"^5"},"scripts":{"build":"tsdown","dev":"tsdown --watch","lint":"eslint","test":"vitest","attw":"attw --pack . --ignore-rules cjs-resolves-to-esm","typecheck":"tsc --noEmit","version":"pnpm run build"},"_id":"@artesa/feathers-open-holidays@0.2.0","_integrity":"sha512-O4DwVwsnneuhOsO5C2v6VYVrvvF1D5vJ8TIR2M+3gsnqnn3CQUZ+1YR23KzBDPTMt//RMH4CRDluzJBRUI7lEQ==","_resolved":"/private/var/folders/p3/xprx4gnj0zl_5csd5czz4bw80000gn/T/84396a8f8c0ddd32bf5aa1161026ee64/artesa-feathers-open-holidays-0.2.0.tgz","_from":"file:artesa-feathers-open-holidays-0.2.0.tgz","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-O4DwVwsnneuhOsO5C2v6VYVrvvF1D5vJ8TIR2M+3gsnqnn3CQUZ+1YR23KzBDPTMt//RMH4CRDluzJBRUI7lEQ==","shasum":"d30989cdf1a7cea6666099cb483417900e22a607","tarball":"https://registry.npmjs.org/@artesa/feathers-open-holidays/-/feathers-open-holidays-0.2.0.tgz","fileCount":5,"unpackedSize":16292,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCTllQWxqFp/TtDpl9Sh42oHrSbqbQ6E8Ow9vC5x5gVLgIhANT9rp6phYJ7oxnwrWibHnreLdbBKGtSLaCdJDqJpBQN"}]},"_npmUser":{"name":"fratzinger","email":"frederik.schmatz@gmail.com"},"directories":{},"maintainers":[{"name":"thenoim","email":"nilsbergmann@noim.io"},{"name":"fratzinger","email":"frederik.schmatz@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/feathers-open-holidays_0.2.0_1776678320716_0.5386313285389954"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-09T20:46:54.546Z","modified":"2026-04-20T09:45:21.017Z","0.1.0":"2026-03-09T20:46:54.854Z","0.2.0":"2026-04-20T09:45:20.855Z"},"bugs":{"url":"https://github.com/artesa/feathers-open-holidays/issues"},"author":{"name":"fratzinger"},"license":"MIT","homepage":"https://github.com/artesa/feathers-open-holidays#readme","keywords":["feathers","feathersjs","holidays","open-holidays","openholidaysapi"],"repository":{"type":"git","url":"git+https://github.com/artesa/feathers-open-holidays.git"},"description":"FeathersJS services for the OpenHolidays API","maintainers":[{"name":"thenoim","email":"nilsbergmann@noim.io"},{"name":"fratzinger","email":"frederik.schmatz@gmail.com"}],"readme":"# @artesa/feathers-open-holidays\n\nFeathersJS services for the [OpenHolidays API](https://www.openholidaysapi.org/), powered by [open-holiday-js](https://github.com/dlurak/open-holiday-js).\n\n## Install\n\n```bash\npnpm add @artesa/feathers-open-holidays\n```\n\nPeer dependencies:\n\n```bash\npnpm add @feathersjs/feathers @feathersjs/errors\n```\n\n## Usage\n\nRegister the services you need on your Feathers app:\n\n```ts\nimport { feathers } from '@feathersjs/feathers'\nimport {\n  CountriesService,\n  LanguagesService,\n  SubdivisionsService,\n  PublicHolidaysService,\n  SchoolHolidaysService,\n} from '@artesa/feathers-open-holidays'\n\nconst app = feathers()\n\napp.use('countries', new CountriesService())\napp.use('languages', new LanguagesService())\napp.use('subdivisions', new SubdivisionsService())\napp.use('public-holidays', new PublicHolidaysService())\napp.use('school-holidays', new SchoolHolidaysService())\n```\n\nAll services accept an optional `{ url?: string }` to override the API base URL:\n\n```ts\napp.use('countries', new CountriesService({ url: 'https://custom-api.example.com' }))\n```\n\n## Services\n\n### CountriesService\n\n```ts\n// Find all countries\nawait app.service('countries').find()\n\n// Filter by language\nawait app.service('countries').find({ query: { language: 'DE' } })\n\n// Get a single country by ISO code\nawait app.service('countries').get('DE')\n```\n\n### LanguagesService\n\n```ts\nawait app.service('languages').find()\nawait app.service('languages').get('EN')\n```\n\n### SubdivisionsService\n\nRequires `country` in the query.\n\n```ts\nawait app.service('subdivisions').find({ query: { country: 'DE' } })\nawait app.service('subdivisions').get('DE-BY', { query: { country: 'DE' } })\n```\n\n### PublicHolidaysService\n\nRequires `country`, `startDate`, and `endDate` in the query.\n\n```ts\nawait app.service('public-holidays').find({\n  query: {\n    country: 'DE',\n    startDate: '2024-01-01',\n    endDate: '2024-12-31',\n    subdivision: 'DE-BY', // optional\n    language: 'EN',       // optional\n  },\n})\n\nawait app.service('public-holidays').get('christmas', {\n  query: { country: 'DE', startDate: '2024-01-01', endDate: '2024-12-31' },\n})\n```\n\n### SchoolHolidaysService\n\nSame interface as `PublicHolidaysService`.\n\n```ts\nawait app.service('school-holidays').find({\n  query: {\n    country: 'DE',\n    startDate: '2024-01-01',\n    endDate: '2024-12-31',\n    subdivision: 'DE-BY',\n  },\n})\n```\n\n## Query Operators\n\nAll services support standard FeathersJS query operators:\n\n| Operator  | Description                     | Example                             |\n| --------- | ------------------------------- | ----------------------------------- |\n| `$limit`  | Limit number of results         | `{ $limit: 5 }`                     |\n| `$skip`   | Skip N results                  | `{ $skip: 10 }`                     |\n| `$sort`   | Sort by field (1 asc, -1 desc)  | `{ $sort: { isoCode: 1 } }`        |\n| `$select` | Pick specific fields            | `{ $select: ['isoCode', 'name'] }`  |\n\n```ts\nawait app.service('countries').find({\n  query: {\n    language: 'EN',\n    $sort: { isoCode: 1 },\n    $limit: 10,\n    $select: ['isoCode', 'name'],\n  },\n})\n```\n\n## Development\n\n```bash\npnpm install\npnpm test\npnpm build\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}