{"_id":"@comradeweb/ag-grid-ssr-to-query","_rev":"2-ec719504dc650cd5fe7a8924c6929b0a","name":"@comradeweb/ag-grid-ssr-to-query","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@comradeweb/ag-grid-ssr-to-query","version":"1.0.0","keywords":["ag-grid","server-side-row-model","query-dsl","adapter"],"author":{"name":"Vyacheslav D."},"license":"MIT","_id":"@comradeweb/ag-grid-ssr-to-query@1.0.0","maintainers":[{"name":"comradeweb","email":"info@comradeweb.com"}],"dist":{"shasum":"cda72502db416462818dae9610f5abbbd1c06f21","tarball":"https://registry.npmjs.org/@comradeweb/ag-grid-ssr-to-query/-/ag-grid-ssr-to-query-1.0.0.tgz","fileCount":118,"integrity":"sha512-f0jDmTBYMvZ2hIl6oGtelZLlArnCRXRQBxe1nucoavyhk0Rf4ct+7LEox+x6a/CdSw5uFWSXWHxRAe5Fl4qTMA==","signatures":[{"sig":"MEYCIQCRRu0ahq/KGZ90oihWFBdDcySkb+FO50M4BNnAZ3VO6QIhAPYfN/kDEbM7LwPIgdkmai+INzHrZ/ers6gAfVDBylK8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":175952},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"c009d3b374a48e2ac9d348c3049b0cb5967bec16","scripts":{"test":"vitest run","build":"tsc","type:test":"tsd","test:watch":"vitest","type:check":"tsc --noEmit","pretype:test":"pnpm run build","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"comradeweb","email":"info@comradeweb.com"},"_npmVersion":"10.9.3","description":"Adapter to convert ag-Grid server-side row requests into @comradeweb/db-query-dsl QueryOptions.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"@comradeweb/db-query-dsl":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.25.0","devDependencies":{"tsd":"^0.31.0","tsx":"^4.21.0","vitest":"^2.1.9","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^24.10.2"},"_npmOperationalInternal":{"tmp":"tmp/ag-grid-ssr-to-query_1.0.0_1779129538089_0.3366993042089417","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@comradeweb/ag-grid-ssr-to-query","version":"1.0.1","description":"Adapter to convert ag-Grid server-side row requests into @comradeweb/db-query-dsl QueryOptions.","main":"dist/index.js","types":"dist/index.d.ts","sideEffects":false,"keywords":["ag-grid","server-side-row-model","query-dsl","adapter"],"author":{"name":"Vyacheslav D."},"license":"MIT","devDependencies":{"@types/node":"^24.10.2","tsc-alias":"^1.8.16","tsd":"^0.31.0","tsx":"^4.21.0","typescript":"^5.9.3","vitest":"^2.1.9"},"dependencies":{"@comradeweb/db-query-dsl":"1.0.0"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc","type:check":"tsc --noEmit","pretype:test":"pnpm run build","type:test":"tsd","test":"vitest run","test:watch":"vitest"},"_id":"@comradeweb/ag-grid-ssr-to-query@1.0.1","_integrity":"sha512-e0QaJc5lvEoOQUteZA9LVPvkMviDTPvp4lp3CuP+zmQwh3aKfWqFMaWw7Omjq6ssEEcaJnlk78K4gjeSfkBsuA==","_resolved":"/tmp/520fbf4226b8e79b43eb3e3ec1ed0415/comradeweb-ag-grid-ssr-to-query-1.0.1.tgz","_from":"file:comradeweb-ag-grid-ssr-to-query-1.0.1.tgz","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-e0QaJc5lvEoOQUteZA9LVPvkMviDTPvp4lp3CuP+zmQwh3aKfWqFMaWw7Omjq6ssEEcaJnlk78K4gjeSfkBsuA==","shasum":"227b23b261fa136b41f4608b967eef3aba3c18e0","tarball":"https://registry.npmjs.org/@comradeweb/ag-grid-ssr-to-query/-/ag-grid-ssr-to-query-1.0.1.tgz","fileCount":118,"unpackedSize":175826,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDTS9NPfBxXHg3BqMeqgXZynQ8xb5TlTA2pz357ad1a1wIhAMTUyVAa4QqWhvO/rNWZeirRkVwzoAiF3h2nue7NuGmF"}]},"_npmUser":{"name":"comradeweb","email":"info@comradeweb.com"},"directories":{},"maintainers":[{"name":"comradeweb","email":"info@comradeweb.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ag-grid-ssr-to-query_1.0.1_1781194363581_0.11958096334151325"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-18T18:38:57.966Z","modified":"2026-06-11T16:12:43.851Z","1.0.0":"2026-05-18T18:38:58.237Z","1.0.1":"2026-06-11T16:12:43.741Z"},"author":{"name":"Vyacheslav D."},"license":"MIT","keywords":["ag-grid","server-side-row-model","query-dsl","adapter"],"description":"Adapter to convert ag-Grid server-side row requests into @comradeweb/db-query-dsl QueryOptions.","maintainers":[{"name":"comradeweb","email":"info@comradeweb.com"}],"readme":"## ag-grid-ssr-to-query\n\nAdapter that converts ag-Grid Server-Side Row Model requests into type-safe `QueryOptions<T>` from `@comradeweb/db-query-dsl`. Use it to bridge ag-Grid filters/sorting/pagination to your DB/ORM adapter that already understands the Query DSL.\n\n### Installation\n\n```bash\npnpm add @comradeweb/ag-grid-ssr-to-query\n# or\nnpm i @comradeweb/ag-grid-ssr-to-query\n# or\nyarn add @comradeweb/ag-grid-ssr-to-query\n```\n\n### Quick start\n\n```ts\nimport {\n  AgGridRequestToQueryDSL,\n  ServerSideGetRowsRequest,\n} from '@comradeweb/ag-grid-ssr-to-query';\nimport type { QueryOptions } from '@comradeweb/db-query-dsl';\n\ntype User = {\n  id: string;\n  email: string;\n  name: string;\n  age: number;\n  createdAt: Date;\n};\n\ndeclare const request: ServerSideGetRowsRequest;\n\nconst queryOptions: QueryOptions<User> = AgGridRequestToQueryDSL.convert<User>(\n  request,\n  {\n    // optional: override quick filter fields (dot-notation supported)\n    quickFilterFields: ['name', 'email'],\n  },\n);\n\n// pass QueryOptions<User> to your @comradeweb/db-query-dsl adapter\n```\n\n### What it does\n\n- Converts ag-Grid `filterModel` (including compound filters) to `Where<T>`.\n- Converts `sortModel` to `SortOptions<T>`.\n- Derives pagination (`offset`/`limit`) from `startRow`/`endRow`.\n- Builds quick filter OR-query across configurable fields.\n\n### Date filter semantics\n\n- `date` + `equals` is treated as a **calendar day match**, not timestamp equality.\n- Internally it is converted to a half-open range:\n  - `gte = startOfDayUTC(dateFrom)`\n  - `lt = startOfNextDayUTC(dateFrom)`\n- This avoids millisecond edge cases and correctly matches any timestamp within that day.\n\n### API\n\n- `AgGridRequestToQueryDSL.convert<T>(request, options?) => QueryOptions<T>`\n  - `options.quickFilterFields?: QuickFilterFields<T>` — override fields used for quick filter. Defaults to `['name', 'email', 'title', 'description']`.\n- Types:\n  - `QuickFilterFields<T>` — readonly array of field paths (dot-notation allowed) from your domain type `T`.\n  - `ConvertOptions<T>` — options bag for `convert`.\n\n### Development\n\n- Install deps: `pnpm install`\n- Scripts:\n  - `pnpm run type:check`\n  - `pnpm run type:test` (tsd)\n  - `pnpm run build`\n\n### License\n\nMIT © Vyacheslav D.\n\n### Contributing\n\nSee `CONTRIBUTING.md` for workflow, scripts, and release process.\n","readmeFilename":"README.md"}