{"_id":"@croffledev/directus-blog-core","_rev":"4-c1ffb8ce360a0a17505870e33a4ad099","name":"@croffledev/directus-blog-core","dist-tags":{"latest":"1.0.2"},"versions":{"0.1.0":{"name":"@croffledev/directus-blog-core","version":"0.1.0","_id":"@croffledev/directus-blog-core@0.1.0","maintainers":[{"name":"bluenyang","email":"xpsj20@gmail.com"}],"dist":{"shasum":"051bf3ecd974ef798cf0f8b1471559b2dab87267","tarball":"https://registry.npmjs.org/@croffledev/directus-blog-core/-/directus-blog-core-0.1.0.tgz","fileCount":186,"integrity":"sha512-KM1kQwAF6BSYONNxnYEl51rw2nwwsxCe7T7Q5X95rG3zw7LOe2QvmBpJ8X/+at+JSPC8mIzIuTFz1iR7MfY1Lw==","signatures":[{"sig":"MEYCIQC3IVLhcLfqm2DLscUqAF/+4M+APEBXUxMEZfwg/NstlgIhAOc0ImDftODfa3lrDhH/UnQqYUsY+euRUjg2Q/moX8o5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85971},"type":"module","_from":"file:croffledev-directus-blog-core-0.1.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc -p tsconfig.json --watch","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"bluenyang","email":"xpsj20@gmail.com"},"_resolved":"C:\\Users\\BLUENY~1\\AppData\\Local\\Temp\\5c17a5ccfcd24dec5cf3438167ff3dba\\croffledev-directus-blog-core-0.1.0.tgz","_integrity":"sha512-KM1kQwAF6BSYONNxnYEl51rw2nwwsxCe7T7Q5X95rG3zw7LOe2QvmBpJ8X/+at+JSPC8mIzIuTFz1iR7MfY1Lw==","_npmVersion":"11.13.0","description":"Directus GraphQL query, mapper, and DTO types for Croffle blogs","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@directus/sdk":"^23.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/directus-blog-core_0.1.0_1786030533842_0.0961933841425806","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@croffledev/directus-blog-core","version":"1.0.0","_id":"@croffledev/directus-blog-core@1.0.0","maintainers":[{"name":"bluenyang","email":"xpsj20@gmail.com"}],"dist":{"shasum":"e5c95fc10b30ef4ee35b3d8747a094fd04d105e3","tarball":"https://registry.npmjs.org/@croffledev/directus-blog-core/-/directus-blog-core-1.0.0.tgz","fileCount":218,"integrity":"sha512-qPxKC9jLPHVIVtsmVmeRNbtlJ/arnGehXJG9XS7IYE6jbfF6GYKrQd9DzTfM3f3QIH6J2FHek6D7q+RzRtQisg==","signatures":[{"sig":"MEYCIQDv8Df3FdQV4rHGF/ANlDGJv4hIPxqE0dY24jwkKq3vMwIhALNqMptbhfhsXBddvD1T7gviKvHZVBVuxvS1+xWV7g2/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@croffledev%2fdirectus-blog-core@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":126545},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc -p tsconfig.json --watch","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d754eb71-8287-459b-ac29-1c4e513e7e2e"}},"repository":{"url":"git+https://github.com/team-croffle/blogs.git","type":"git","directory":"packages/directus-blog-core"},"description":"Directus GraphQL query, mapper, and DTO types for Croffle blogs","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@directus/sdk":"^25.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/directus-blog-core_1.0.0_1787845789712_0.023252356693843623","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@croffledev/directus-blog-core","version":"1.0.1","_id":"@croffledev/directus-blog-core@1.0.1","maintainers":[{"name":"bluenyang","email":"xpsj20@gmail.com"}],"dist":{"shasum":"5235b3bdefb2efbe64ce034fed9789eb7e939219","tarball":"https://registry.npmjs.org/@croffledev/directus-blog-core/-/directus-blog-core-1.0.1.tgz","fileCount":218,"integrity":"sha512-ZydHb9fbE4WL0+wIpsOk2jS6Jg+66DDOfPGmdxCXhDkTzYaIo1dxmIxx5+Fznt8IOM0XBRmBSWZmIyoAZil2zQ==","signatures":[{"sig":"MEUCIBuibU7xkPbtQ4o5ECGRNtCbe7LudI8weaxk7rDS3RQEAiEAnLzTH9s6zRWO+mMQEwSGek4q3eCsX34YBvVj1Xt/YBg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@croffledev%2fdirectus-blog-core@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":127941},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc -p tsconfig.json --watch","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d754eb71-8287-459b-ac29-1c4e513e7e2e"}},"repository":{"url":"git+https://github.com/team-croffle/blogs.git","type":"git","directory":"packages/directus-blog-core"},"description":"Directus GraphQL query, mapper, and DTO types for Croffle blogs","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@directus/sdk":"^25.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/directus-blog-core_1.0.1_1787847546241_0.7857535220432401","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@croffledev/directus-blog-core","version":"1.0.2","license":"MIT","description":"Directus GraphQL query, mapper, and DTO types for Croffle blogs","type":"module","repository":{"type":"git","url":"git+https://github.com/team-croffle/blogs.git","directory":"packages/directus-blog-core"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"dependencies":{"@directus/sdk":"^25.0.0"},"devDependencies":{"typescript":"^6.0.3"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","dev":"tsc -p tsconfig.json --watch"},"_nodeVersion":"22.23.2","_id":"@croffledev/directus-blog-core@1.0.2","dist":{"integrity":"sha512-4ZDm/yp28CO9ysK2rxBssf0mwdIo38eREblTFYYSvcflzOBIE/Od37H/ssz6oPNvT2ECyO2xS35MMuJO5Uw1Ag==","shasum":"57e7b2b621c3e56e6de672a21b19ed8ffd5133ff","tarball":"https://registry.npmjs.org/@croffledev/directus-blog-core/-/directus-blog-core-1.0.2.tgz","fileCount":219,"unpackedSize":129030,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@croffledev%2fdirectus-blog-core@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDzSYjzhj8Ji1k/8fR/aUsEkPy5aJx0DaF1HmAgH14xwQIgEZgtsmtejOPsRpJTm2ne7fIgB3cWkSCV75rTZbYwE5k="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d754eb71-8287-459b-ac29-1c4e513e7e2e"}},"directories":{},"maintainers":[{"name":"bluenyang","email":"xpsj20@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/directus-blog-core_1.0.2_1787899500238_0.8477397021987974"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-06T15:35:33.664Z","modified":"2026-08-28T06:45:00.707Z","0.1.0":"2026-08-06T15:35:33.997Z","1.0.0":"2026-08-27T15:49:49.865Z","1.0.1":"2026-08-27T16:19:06.366Z","1.0.2":"2026-08-28T06:45:00.384Z"},"repository":{"type":"git","url":"git+https://github.com/team-croffle/blogs.git","directory":"packages/directus-blog-core"},"description":"Directus GraphQL query, mapper, and DTO types for Croffle blogs","maintainers":[{"name":"bluenyang","email":"xpsj20@gmail.com"}],"readme":"# @croffledev/directus-blog-core\n\nDirectus GraphQL 쿼리 · mapper · DTO 타입을 담는 순수 TypeScript 패키지입니다.\nNuxt / Nitro에 의존하지 않습니다.\n\n## 설치\n\n```bash\npnpm add @croffledev/directus-blog-core\n```\n\n## 사용\n\n```ts\nimport {\n  buildQuery,\n  createBlogCore,\n  homeQuery,\n  sidebarQuery,\n} from '@croffledev/directus-blog-core';\n\nconst { client, blogSlug, mappers } = createBlogCore({\n  directusUrl: process.env.DIRECTUS_URL!,\n  blogSlug: process.env.BLOG_SLUG!,\n});\n\nconst raw = await client.query(buildQuery(homeQuery(blogSlug), sidebarQuery(blogSlug)));\nconst home = mappers.home(raw);\n```\n\n## API\n\n- `createBlogCore({ directusUrl, blogSlug })` — client + asset resolver + bound mappers\n- Query builders: `homeQuery`, `postsQuery`, `postDetailQuery`, `sidebarQuery`, …\n- `buildQuery(...fragments)` — GraphQL document 조립\n- Mappers: `createBlogMappers(resolveAssetUrl)` 또는 개별 함수 (`postMapper(raw, resolveAssetUrl)`)\n- Utils: `buildTree`, `decodeRouteSlug`, `collectCategorySlugs`\n- Types: DTO (`PostItem`, `SidebarContent`, …) + Raw GraphQL 응답 타입\n\n이미지 URL이 필요한 mapper는 `AssetUrlResolver`를 인자로 받습니다.\n`createBlogCore` / `createBlogMappers`를 쓰면 URL이 바인딩된 mapper를 바로 쓸 수 있습니다.\n","readmeFilename":"","license":"MIT"}