{"_id":"@croco/onboarding-drizzle","_rev":"2-446c8f4c697bc9cd4bf74d5983733d26","name":"@croco/onboarding-drizzle","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"@croco/onboarding-drizzle","version":"0.0.1","_id":"@croco/onboarding-drizzle@0.0.1","maintainers":[{"name":"kang-heewon","email":"heewon.dev@gmail.com"},{"name":"ddark","email":"ddark.kr@gmail.com"}],"dist":{"shasum":"4e94b30e29a3e84fa257d681cfddeccad5f8a009","tarball":"https://registry.npmjs.org/@croco/onboarding-drizzle/-/onboarding-drizzle-0.0.1.tgz","fileCount":6,"integrity":"sha512-vfl4Lc4akGI+e9UumxduBRXCxiRfiUnd7t22Yf3aW2C3gU/lkhGrVK5JoOjEAxUPopyFo749JaUBg1qYE/yX9w==","signatures":[{"sig":"MEQCIDOzSqUqro6lSMXaelWrB3EjUv2R+XupRKhB7jDk/BBgAiBBLTxmXmTPbp048qiTpWu7GtKmDNkygrQarQSAdLuPNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19853},"main":"./dist/index.js","type":"commonjs","_from":"file:croco-onboarding-drizzle-0.0.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"oxlint .","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --minify --clean --dts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kang-heewon","email":"heewon.dev@gmail.com"},"_resolved":"/tmp/8f9cd3bd1aa6245d6e02d6ac94447113/croco-onboarding-drizzle-0.0.1.tgz","_integrity":"sha512-vfl4Lc4akGI+e9UumxduBRXCxiRfiUnd7t22Yf3aW2C3gU/lkhGrVK5JoOjEAxUPopyFo749JaUBg1qYE/yX9w==","_npmVersion":"10.9.7","description":"`@croco/onboarding-core`용 Drizzle 저장소입니다.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"drizzle-orm":"^0.45.2","@croco/tx-core":"0.0.1","@croco/tx-drizzle":"0.0.1","@croco/onboarding-core":"0.0.1","@croco/framework-context":"0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"4.0.16","typescript":"^5.7.2","reflect-metadata":"^0.2.2"},"_npmOperationalInternal":{"tmp":"tmp/onboarding-drizzle_0.0.1_1778834275767_0.2786153825339073","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@croco/onboarding-drizzle","version":"0.0.2","type":"commonjs","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js","types":"./dist/index.d.ts"}},"publishConfig":{"access":"public"},"dependencies":{"drizzle-orm":"^0.45.2","@croco/framework-context":"0.0.2","@croco/tx-core":"0.0.2","@croco/onboarding-core":"0.0.2","@croco/tx-drizzle":"0.0.2"},"devDependencies":{"reflect-metadata":"^0.2.2","tsup":"^8.4.0","typescript":"^5.7.2","vitest":"4.0.16"},"scripts":{"build":"tsup src/index.ts --format esm,cjs --minify --clean --dts","dev":"tsup src/index.ts --format cjs,esm --dts --watch","test":"vitest run","typecheck":"tsc --noEmit","lint":"oxlint ."},"_id":"@croco/onboarding-drizzle@0.0.2","description":"`@croco/onboarding-core`용 Drizzle 저장소입니다.","_integrity":"sha512-BF6qLW4LHGMzO623sf5AWIa+KSSV4Yd3dvw+ERVEd70980KA8lrZKq1k7mQiEY8FozXPwdolOGLDoOYCSklHqw==","_resolved":"/private/var/folders/zp/px4pj6gs20q8c38hgmbym1080000gn/T/8bf8d685897aa4bad2ec6ecbcd0a6892/croco-onboarding-drizzle-0.0.2.tgz","_from":"file:croco-onboarding-drizzle-0.0.2.tgz","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-BF6qLW4LHGMzO623sf5AWIa+KSSV4Yd3dvw+ERVEd70980KA8lrZKq1k7mQiEY8FozXPwdolOGLDoOYCSklHqw==","shasum":"00e007eefea11b2a0233d11514ea50d250d708f8","tarball":"https://registry.npmjs.org/@croco/onboarding-drizzle/-/onboarding-drizzle-0.0.2.tgz","fileCount":6,"unpackedSize":19853,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDwMkymJKo8hrEt0pG/2piw0lWI3Uz/GHfGWBhJHorNSwIgO1sMZVraP+OCxzdd2DFFvhh1Etg48uxy8bUXmYc133Y="}]},"_npmUser":{"name":"kang-heewon","email":"heewon.dev@gmail.com"},"directories":{},"maintainers":[{"name":"kang-heewon","email":"heewon.dev@gmail.com"},{"name":"ddark","email":"ddark.kr@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/onboarding-drizzle_0.0.2_1780294886536_0.5108640466787966"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-15T08:37:55.658Z","modified":"2026-06-01T06:21:26.847Z","0.0.1":"2026-05-15T08:37:55.909Z","0.0.2":"2026-06-01T06:21:26.712Z"},"description":"`@croco/onboarding-core`용 Drizzle 저장소입니다.","maintainers":[{"name":"kang-heewon","email":"heewon.dev@gmail.com"},{"name":"ddark","email":"ddark.kr@gmail.com"}],"readme":"# @croco/onboarding-drizzle\n\n`@croco/onboarding-core`용 Drizzle 저장소입니다.\n\n## 설치\n\n```bash\npnpm add @croco/onboarding-drizzle @croco/onboarding-core drizzle-orm\n```\n\n## 사용법\n\n```typescript\nimport { DrizzleOnboardingStore } from \"@croco/onboarding-drizzle\";\nimport { TxManager } from \"@croco/tx-core\";\n\nconst txManager = new TxManager(adapter, { defaultNesting: \"join\" });\nconst store = new DrizzleOnboardingStore(db, txManager);\n\nawait store.saveState(\"tenant-1\", \"user-1\", \"welcome-tour\", {\n  steps: {\n    welcome: { completed: true, completedAt: new Date() },\n    profile: { completed: false },\n  },\n  isCompleted: false,\n});\n\nconst state = await store.getState(\"tenant-1\", \"user-1\", \"welcome-tour\");\n```\n\n## API 레퍼런스\n\n### `DrizzleOnboardingStore`\n\n- `getState(tenantId, userId, onboardingId)`, 저장된 온보딩 상태를 조회합니다.\n- `saveState(tenantId, userId, onboardingId, state)`, 상태를 upsert로 저장합니다.\n\n### 타입과 스키마\n\n- `DrizzleOnboardingClient`, 저장소에서 사용하는 Drizzle 클라이언트 타입입니다.\n- `OnboardingStateRow`, 온보딩 상태 행 타입입니다.\n- `DRIZZLE_TOKEN`, 온보딩 저장소용 DB 토큰입니다.\n- `onboardingStates`, 온보딩 상태 스키마입니다.\n","readmeFilename":"README.md"}