{"_id":"@criistianlevrero/next-datalayer-adapter-directus","name":"@criistianlevrero/next-datalayer-adapter-directus","dist-tags":{"latest":"0.2.0"},"versions":{"0.2.0":{"name":"@criistianlevrero/next-datalayer-adapter-directus","version":"0.2.0","description":"Directus adapter for the cmsIR Next.js data layer — reads and writes canonical entities against a Directus v11 instance.","keywords":["cmsir","directus","nextjs","adapter","data-layer"],"license":"MIT","author":{"name":"Cristian Levriero","email":"cristianlevrero@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/criistianlevrero/cmsIR-to-next-datalayer.git","directory":"packages/adapter-directus"},"type":"module","main":"dist/index.js","types":"dist/index.d.ts","publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build","test:unit":"npm run build && node --test test/**/*.test.mjs"},"dependencies":{"@criistianlevrero/next-datalayer-core":"0.2.0"},"devDependencies":{"typescript":"^5.5.0"},"gitHead":"6b9c39a9d1f88ce8b5df85b99bdc2a80b86845af","_id":"@criistianlevrero/next-datalayer-adapter-directus@0.2.0","bugs":{"url":"https://github.com/criistianlevrero/cmsIR-to-next-datalayer/issues"},"homepage":"https://github.com/criistianlevrero/cmsIR-to-next-datalayer#readme","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-9jfPjMCba8gZDiNzCb6W6tpXUj0zJIF5faAxKJ6RnkZSSRAFeW03kssnyZE2ZCV1HRfUpSSfDkTCzXL+/1odDg==","shasum":"8c1f59f78728f5cebb25fe85ad473ffe029f7181","tarball":"https://registry.npmjs.org/@criistianlevrero/next-datalayer-adapter-directus/-/next-datalayer-adapter-directus-0.2.0.tgz","fileCount":19,"unpackedSize":79786,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCM91U1UVK5Tub13v1dLO04E1Ltz2K4DRT/6AwPX0D6ngIgH+umaCe2bl0R68TZRoGw5xfN7q+maYfb+u9hhl/t5ec="}]},"_npmUser":{"name":"cristianlevrero","email":"cristianlevrero@gmail.com"},"directories":{},"maintainers":[{"name":"cristianlevrero","email":"cristianlevrero@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/next-datalayer-adapter-directus_0.2.0_1788230888298_0.7142150679352282"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-01T02:48:08.113Z","0.2.0":"2026-09-01T02:48:08.432Z","modified":"2026-09-01T02:48:08.735Z"},"maintainers":[{"name":"cristianlevrero","email":"cristianlevrero@gmail.com"}],"description":"Directus adapter for the cmsIR Next.js data layer — reads and writes canonical entities against a Directus v11 instance.","homepage":"https://github.com/criistianlevrero/cmsIR-to-next-datalayer#readme","keywords":["cmsir","directus","nextjs","adapter","data-layer"],"repository":{"type":"git","url":"git+https://github.com/criistianlevrero/cmsIR-to-next-datalayer.git","directory":"packages/adapter-directus"},"author":{"name":"Cristian Levriero","email":"cristianlevrero@gmail.com"},"bugs":{"url":"https://github.com/criistianlevrero/cmsIR-to-next-datalayer/issues"},"license":"MIT","readme":"# @criistianlevrero/next-datalayer-adapter-directus\n\nDirectus adapter for the cmsIR Next.js data layer. Reads and writes\n**canonical entities** against a Directus v11 instance, translating relations\nin both directions so application code never touches Directus response shapes.\n\n## Install\n\n```bash\nnpm install @criistianlevrero/next-datalayer-adapter-directus\n```\n\n## Usage\n\n```ts\nimport { IRProcessor } from \"@criistianlevrero/next-datalayer-core\";\nimport { DirectusAdapter } from \"@criistianlevrero/next-datalayer-adapter-directus\";\nimport { createRepositories } from \"@/lib/generated/repositories\";\n\nconst irContext = IRProcessor.load(\"dist/directus.ir.json\");\n\nconst adapter = new DirectusAdapter({\n  baseUrl: process.env.DIRECTUS_BASE_URL!,\n  token: process.env.DIRECTUS_TOKEN!,\n  irContext,\n});\n\nconst repos = createRepositories(adapter);\n```\n\nThe token is only ever sent in an `Authorization` header — it is never\ninterpolated into asset or client-facing URLs.\n\n## Behaviour worth knowing\n\n- **Relation ordering.** m2m and m2a relations come back in their configured\n  order, requested via `deep[<rel>][_sort]=sort`. This assumes every sortable\n  junction exposes an integer column named `sort`. o2m is excluded, because its\n  target may have no `sort` field and Directus rejects the request.\n- **Junction FK naming.** m2m links are written as\n  `{ <targetCollection>_id: <id> }`. A bare primary key would be read as a\n  junction-row PK and silently break the link.\n- **Two-phase writes.** Entities are created first, relations linked second, so\n  forward references resolve.\n\nJunctions are not present in the IR, so neither name can be introspected — both\nare contracts guaranteed by the upstream schema project.\n\n## Not supported\n\nA collection with an m2m to **itself**: both junction columns would be named\n`<collection>_id`, so the target side cannot be identified by name alone.\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-ae73205aee70be3a4fd6c91b4efcec86"}