{"_id":"@bernierllc/pagination-handler","_rev":"9-5fa0358968a47828a1c3157bd1227db5","name":"@bernierllc/pagination-handler","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@bernierllc/pagination-handler","version":"0.1.0","keywords":["pagination","cursor","offset","page","bernierllc","core"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/pagination-handler@0.1.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"b0dde77c542781ca221192da351e2752741901f0","tarball":"https://registry.npmjs.org/@bernierllc/pagination-handler/-/pagination-handler-0.1.0.tgz","fileCount":15,"integrity":"sha512-AWgaDANLK5Fzagbiuljztd4QPg5NapQ14rE22FKVBfHOu3X1WkUbvl87k1A9R17OJVgwdCBA6gcCvRSJ/QyB5A==","signatures":[{"sig":"MEYCIQDzE0q1wGgKMiZA5YVwn3ZCwv+8TmHk5tKFa14rG0bfOQIhAJ7fhbJQLqlZ5MNVjNDhyNn4Fqlrn1VVcJt8uYgVJQ4P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20308},"main":"dist/index.js","_from":"file:bernierllc-pagination-handler-0.1.0.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/tmp/f4097e8b733e8ee7309dd4c373a4d746/bernierllc-pagination-handler-0.1.0.tgz","_integrity":"sha512-AWgaDANLK5Fzagbiuljztd4QPg5NapQ14rE22FKVBfHOu3X1WkUbvl87k1A9R17OJVgwdCBA6gcCvRSJ/QyB5A==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.7.0","description":"Pagination utilities for cursor, offset, and page-based pagination","directories":{},"_nodeVersion":"20.19.6","publishConfig":{"access":"restricted","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/pagination-handler_0.1.0_1766087453239_0.5602138733230508","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bernierllc/pagination-handler","version":"0.1.2","keywords":["pagination","cursor","offset","page","bernierllc","core"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/pagination-handler@0.1.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"a048011cbc227f780f677bb3603f5846eb339ae4","tarball":"https://registry.npmjs.org/@bernierllc/pagination-handler/-/pagination-handler-0.1.2.tgz","fileCount":15,"integrity":"sha512-ym4f514tyVmvCHjrFK1/8s1gehpPmUg1bwhTrwqvcfJkkmLcRIkwNw0uJw/Sc5Tc6Z0nKTHNYHAxIL6KIHsuog==","signatures":[{"sig":"MEYCIQDVsSFurH0BdjAanCSstcoqcOjpYKJLw7JYzWMcIlIa5AIhAPsXCfjW5zJVf0Ez8nFMdAf1MqDcvBUq3MM5on8Z29vH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20366},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"683786f5b043d9a96c9f49ed1f04f9dccd79eed3","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e8ba53c1-489d-4c8e-89a8-86599c6aab2c"}},"repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"lerna/9.0.3/node@v20.19.6+x64 (linux)","description":"Pagination utilities for cursor, offset, and page-based pagination","directories":{},"_nodeVersion":"20.19.6","publishConfig":{"access":"restricted","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/pagination-handler_0.1.2_1767644243833_0.9139486541557613","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@bernierllc/pagination-handler","version":"0.1.3","keywords":["pagination","cursor","offset","page","bernierllc","core"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/pagination-handler@0.1.3","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"591d8106dde0c294ca0b9e5831693287d8f3950f","tarball":"https://registry.npmjs.org/@bernierllc/pagination-handler/-/pagination-handler-0.1.3.tgz","fileCount":15,"integrity":"sha512-ID0GUEAjZcH1zzP9aUrOjI4B3zZ8ayA4Qx0/o1yaKScMScIsHGyWUfmY+mJjnsJW/dNq5gegmDR/E9k6safAcQ==","signatures":[{"sig":"MEUCIBbsUOuLtZxphmizpztuOQXKNAvghJKsOpAxNP1R91kZAiEAqvYn+LVkwGAHrh//du1SY0UVnnIp43lQTKJjsJjIXAs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20304},"main":"dist/index.js","_from":"file:bernierllc-pagination-handler-0.1.3.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e8ba53c1-489d-4c8e-89a8-86599c6aab2c"}},"_resolved":"/tmp/8c38c10c28e24cb4a6488685ae9f1f7f/bernierllc-pagination-handler-0.1.3.tgz","_integrity":"sha512-ID0GUEAjZcH1zzP9aUrOjI4B3zZ8ayA4Qx0/o1yaKScMScIsHGyWUfmY+mJjnsJW/dNq5gegmDR/E9k6safAcQ==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.11.0","description":"Pagination utilities for cursor, offset, and page-based pagination","directories":{},"_nodeVersion":"20.20.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/pagination-handler_0.1.3_1773078040359_0.4737926495288798","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@bernierllc/pagination-handler","version":"0.1.4","keywords":["pagination","cursor","offset","page","bernierllc","core"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/pagination-handler@0.1.4","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"4e5a7bc5fcb8b4780d6bda9d9876d4d381799001","tarball":"https://registry.npmjs.org/@bernierllc/pagination-handler/-/pagination-handler-0.1.4.tgz","fileCount":15,"integrity":"sha512-6OxtKY7CFhe56TLLmBGKBkspSMnpP25ux0gwQiptRg0RbPezdeXbu4fpfWHqQlBgomy4F24m5hDnYX1PAjkMWw==","signatures":[{"sig":"MEYCIQCH1i7D2+yI0FizSqikoWNotBPYhMVZQ5+RZu4+gGvY2QIhALut+OEW7n3DFg12Qcd8TO5CZ9f2afB6UG3Y6nXv2tim","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20304},"main":"dist/index.js","_from":"file:bernierllc-pagination-handler-0.1.4.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e8ba53c1-489d-4c8e-89a8-86599c6aab2c"}},"_resolved":"/tmp/8ddbc28d871a7902ab6ff5fe770dae5b/bernierllc-pagination-handler-0.1.4.tgz","_integrity":"sha512-6OxtKY7CFhe56TLLmBGKBkspSMnpP25ux0gwQiptRg0RbPezdeXbu4fpfWHqQlBgomy4F24m5hDnYX1PAjkMWw==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.11.0","description":"Pagination utilities for cursor, offset, and page-based pagination","directories":{},"_nodeVersion":"20.20.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/pagination-handler_0.1.4_1773081223208_0.5514240675372846","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@bernierllc/pagination-handler","version":"0.3.0","keywords":["pagination","cursor","offset","page","bernierllc","core"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/pagination-handler@0.3.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"7555e4b2ec30c70fde53ff8629e5977e45750dc6","tarball":"https://registry.npmjs.org/@bernierllc/pagination-handler/-/pagination-handler-0.3.0.tgz","fileCount":19,"integrity":"sha512-iBLl13DXbYiRefrWShvDMbKpfS9N7Si775Y0vaQ8gfJEu5hEGNahEQgSAKwRkgk7DKBuqp//z9YTNB4pfYsmvA==","signatures":[{"sig":"MEQCIFHb3Qe23YYfKeSlaMjdT7tVOLieCdDU4xUKlk/sKNJhAiBYrNNxhcRh7D1eUTZn6AWIwNzX6ne5+bcsZQwWMf8R0Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23747},"main":"dist/index.js","_from":"file:bernierllc-pagination-handler-0.3.0.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e8ba53c1-489d-4c8e-89a8-86599c6aab2c"}},"_resolved":"/home/runner/work/tools/tools/packages/core/pagination-handler/bernierllc-pagination-handler-0.3.0.tgz","_integrity":"sha512-iBLl13DXbYiRefrWShvDMbKpfS9N7Si775Y0vaQ8gfJEu5hEGNahEQgSAKwRkgk7DKBuqp//z9YTNB4pfYsmvA==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.14.1","description":"Pagination utilities for cursor, offset, and page-based pagination","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/pagination-handler_0.3.0_1779241320474_0.8696016845217511","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@bernierllc/pagination-handler","version":"0.4.0","description":"Pagination utilities for cursor, offset, and page-based pagination","main":"dist/index.js","types":"dist/index.d.ts","keywords":["pagination","cursor","offset","page","bernierllc","core"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","devDependencies":{"@types/jest":"^29.5.5","@types/node":"^20.6.0","jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2"},"repository":{"type":"git","url":"git+https://github.com/bernier-llc/tools.git"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build":"tsc","dev":"tsc --watch","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","clean":"rimraf dist","prebuild":"npm run clean"},"_id":"@bernierllc/pagination-handler@0.4.0","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"homepage":"https://github.com/bernier-llc/tools#readme","_integrity":"sha512-yVxTC7abfR0CGLbqmSLZHXe/nzLBfyjrssyuPPPZYMLRt64oiVghG4Feh+Y5VW7v0mnpYP1yLAnzpHvF+JUQ/g==","_resolved":"/home/runner/work/tools/tools/packages/core/pagination-handler/bernierllc-pagination-handler-0.4.0.tgz","_from":"file:bernierllc-pagination-handler-0.4.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"11.14.1","dist":{"integrity":"sha512-yVxTC7abfR0CGLbqmSLZHXe/nzLBfyjrssyuPPPZYMLRt64oiVghG4Feh+Y5VW7v0mnpYP1yLAnzpHvF+JUQ/g==","shasum":"98260e18f68909672f89b47d04ddd8d9fa7c48db","tarball":"https://registry.npmjs.org/@bernierllc/pagination-handler/-/pagination-handler-0.4.0.tgz","fileCount":19,"unpackedSize":23747,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQClX5Ak5BBVLKzwfqRcr+meIjOAO4KkIA+Es7fDPA7e0QIhAOt3fIOg+2JIzfOKB8gyio1Snd2mjIvxcJftIRmmUo7g"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e8ba53c1-489d-4c8e-89a8-86599c6aab2c"}},"directories":{},"maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pagination-handler_0.4.0_1779250069965_0.15721112411690186"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-18T19:50:53.103Z","modified":"2026-05-20T04:07:50.281Z","0.1.0":"2025-12-18T19:50:53.374Z","0.1.2":"2026-01-05T20:17:23.975Z","0.1.3":"2026-03-09T17:40:40.499Z","0.1.4":"2026-03-09T18:33:43.348Z","0.3.0":"2026-05-20T01:42:00.606Z","0.4.0":"2026-05-20T04:07:50.109Z"},"bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"author":{"name":"Bernier LLC"},"license":"Bernier LLC","homepage":"https://github.com/bernier-llc/tools#readme","keywords":["pagination","cursor","offset","page","bernierllc","core"],"repository":{"type":"git","url":"git+https://github.com/bernier-llc/tools.git"},"description":"Pagination utilities for cursor, offset, and page-based pagination","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"readme":"# @bernierllc/pagination-handler\n\nPagination utilities for cursor, offset, and page-based pagination strategies.\n\n## Overview\n\nThis core package provides pure functions for detecting, extracting, and managing pagination state across different pagination strategies commonly used in APIs.\n\n## Installation\n\n```bash\nnpm install @bernierllc/pagination-handler\n```\n\n## Usage\n\n### Detect Pagination Type\n\n```typescript\nimport { detectPaginationType } from '@bernierllc/pagination-handler';\n\nconst metadata = {\n  cursor: 'abc123',\n  nextCursor: 'def456'\n};\n\nconst type = detectPaginationType(metadata);\n// Returns: 'cursor'\n```\n\n### Extract Pagination State\n\n```typescript\nimport { extractPaginationState } from '@bernierllc/pagination-handler';\n\nconst metadata = {\n  offset: 0,\n  limit: 20,\n  total: 100\n};\n\nconst state = extractPaginationState(metadata);\n// Returns: { type: 'offset', current: 0, next: 20, pageSize: 20, total: 100 }\n```\n\n### Calculate Next Page\n\n```typescript\nimport { calculateNextPage } from '@bernierllc/pagination-handler';\n\nconst state = {\n  type: 'offset',\n  current: 0,\n  next: 20,\n  pageSize: 20\n};\n\nconst nextPage = calculateNextPage(state);\n// Returns: { type: 'offset', offset: 20, limit: 20 }\n```\n\n### Check for More Pages\n\n```typescript\nimport { hasMorePages } from '@bernierllc/pagination-handler';\n\nconst state = {\n  type: 'cursor',\n  next: 'def456'\n};\n\nconst hasMore = hasMorePages(state);\n// Returns: true\n```\n\n## API Reference\n\n### Functions\n\n- `detectPaginationType(metadata: PaginationMetadata): PaginationType | null` - Detect pagination type from metadata\n- `extractPaginationState(metadata: PaginationMetadata): PaginationState | null` - Extract pagination state\n- `calculateNextPage(state: PaginationState, options?): PaginationOptions | null` - Calculate next page parameters\n- `calculatePreviousPage(state: PaginationState, options?): PaginationOptions | null` - Calculate previous page parameters\n- `hasMorePages(state: PaginationState): boolean` - Check if more pages are available\n- `normalizePaginationOptions(options?): PaginationOptions` - Normalize pagination options\n\n## License\n\nBernier LLC - Limited Use License\n\n","readmeFilename":"README.md"}