{"_id":"memi-board","_rev":"43-bf26d786c95a14d7db7835ebfdaef151","name":"memi-board","dist-tags":{"latest":"0.43.0"},"versions":{"0.3.1":{"name":"memi-board","version":"0.3.1","keywords":["vue","nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.3.1","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"5bd9e49c0fa573e536ef85f1114ba93bb23de931","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.3.1.tgz","fileCount":26,"integrity":"sha512-cxe7JySlHKt+sHHwOIYMBgq7b5jnF/rZ/KcN9OTHFV1WThYF/1DBYOrhVEmLoxrO0iNFO6HCv/flG7BW9Nn2kw==","signatures":[{"sig":"MEYCIQDOWw63T4+jdXg/Z4N8ZOhVw0Ju5DdIXAytQxzBFagaIgIhAOtn7gZ7VtRRCtuJdJmmrzvHM8fn6q37KK8BNaopY7nV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":174821},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"9118d17f32612571ac0c9b5edaa6458f38215995","scripts":{"dev":"nuxi dev playground","build":"vite build","prepack":"pnpm build","dev:build":"nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"10.9.4","description":"Firebase 기반 게시판 Vue 컴포넌트/composable 패키지 — Nuxt 4 + Nuxt UI 프로젝트에 posts CRUD, 첨부파일, 댓글, 권한, AI 검열을 바로 붙임","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3","@vitejs/plugin-vue":"^6.0.8"},"peerDependencies":{"vue":"^3.5.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0","vue-router":"^4.0.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.3.1_1785726011961_0.06505205551146154","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"memi-board","version":"0.4.0","keywords":["vue","nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.4.0","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"e29608d86e095ee60ebad9158d56f884baf8d64f","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.4.0.tgz","fileCount":29,"integrity":"sha512-sh/p1SQprkosq2gICrenX1TQ6CPStF21wJjyCNqV+zVxmv0J51aSFXBODnE5jf6lr6/6A0Tq9fFJCGkUgPPIoQ==","signatures":[{"sig":"MEUCIQC0OjaZv89ch8MWhdwxNsWCN9vC4Lvs2FA8w7zGUlKJfgIgaIJzOtTJjJTXeC9c4j0uK+wLq3mpZyRN7jLsaTNc3vo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107623},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"}},"gitHead":"fbf2b06a6cdd8c0824e129b96a91c7bf7eda3356","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"10.9.4","description":"Firebase 게시판 — core composable + thin Nuxt module(UI SFC). Nuxt 4 + Nuxt UI 호스트에 붙임","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"22.22.0","dependencies":{"@nuxt/kit":"^4.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=3.0.0 || >=4.0.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0","vue-router":"^4.0.0 || ^5.0.0"},"peerDependenciesMeta":{"nuxt":{"optional":true},"@nuxt/ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.4.0_1785728958863_0.35553957397597524","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"memi-board","version":"0.4.2","keywords":["vue","nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.4.2","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"dace9168a182513c1e6bcc953c8aef0189a98b76","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.4.2.tgz","fileCount":29,"integrity":"sha512-egMEwloH38dzZBfJmIvF5loWmG7Uiyzpp83/cF5B/V8G50m6wmu43x5bSIknAa9VxcveCRNe5ZGqrJPix4TKWw==","signatures":[{"sig":"MEUCIQDM9NT5GNW2YFH0M+byvNjfaofFA+KK1HV0kacDZMCyWwIgSXNy1GcFPRVFL6+QRRy5VkiORilCfUyfGlFAtDQ4ldI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117175},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"}},"gitHead":"8dcd16419372084b988ad9fcf7f9498a3d4ada0b","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"10.9.4","description":"Firebase 게시판 — core composable + thin Nuxt module(UI SFC). Nuxt 4 + Nuxt UI 호스트에 붙임","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"22.22.0","dependencies":{"@nuxt/kit":"^4.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=3.0.0 || >=4.0.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0","vue-router":"^4.0.0 || ^5.0.0"},"peerDependenciesMeta":{"nuxt":{"optional":true},"@nuxt/ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.4.2_1785731589759_0.858535273682347","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"memi-board","version":"0.4.4","keywords":["vue","nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.4.4","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"139941f580e8630adc42d4c7348fab1f2979dfc1","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.4.4.tgz","fileCount":29,"integrity":"sha512-39qTifroL0okAqspgHscmMnKgKpNCT6mwdUKoTJN3hNXasaMVAWNxo6TF7HxEx/l5ZxZkQyCBKOEhDAGjbPm1g==","signatures":[{"sig":"MEUCIG1UhYj0bFwONYt9CYMHCt8dpCXgjhHl561tJRwjPVTDAiEAowXYGCXVTkSfLP0//TfUlyyFXPeriaIsxqsakei4twY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125928},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"}},"gitHead":"30941115cb26b2e0cc1676af1fed4a451de06280","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"10.9.4","description":"Firebase 게시판 — core composable + thin Nuxt module(UI SFC). Nuxt 4 + Nuxt UI 호스트에 붙임","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"22.22.0","dependencies":{"@nuxt/kit":"^4.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=3.0.0 || >=4.0.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0","vue-router":"^4.0.0 || ^5.0.0"},"peerDependenciesMeta":{"nuxt":{"optional":true},"@nuxt/ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.4.4_1785734037792_0.6760015241097359","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"memi-board","version":"0.4.5","keywords":["vue","nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.4.5","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"6a7017bb94008a7ba2e49207214e1b83f0438b87","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.4.5.tgz","fileCount":29,"integrity":"sha512-JNvp/I0CSWqv6igvkNQwHcgKrrgMBojTXw5ECqfEmoMVXsLQLfiqrhuIq4Oxq9JZYRTBYrShD4O0zAGOmBB1yA==","signatures":[{"sig":"MEQCIHQMohM0T+cEd3PIUgyp57sSEGx6sRV28pxyJR9oxs1BAiB2NvaIvmcfG16adSPKGUwXt1Z6h4R0mKe57qyTRRkmqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127095},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"}},"gitHead":"30941115cb26b2e0cc1676af1fed4a451de06280","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"10.9.4","description":"Firebase 게시판 — core composable + thin Nuxt module(UI SFC). Nuxt 4 + Nuxt UI 호스트에 붙임","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"22.22.0","dependencies":{"@nuxt/kit":"^4.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=3.0.0 || >=4.0.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0","vue-router":"^4.0.0 || ^5.0.0"},"peerDependenciesMeta":{"nuxt":{"optional":true},"@nuxt/ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.4.5_1785737931636_0.6748338419404611","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"memi-board","version":"0.4.6","keywords":["vue","nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.4.6","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"ae0cec7e278feb5179446a44f9d1a5affbb35fa0","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.4.6.tgz","fileCount":29,"integrity":"sha512-2vC2AOhd74pfiaUId3TIWy9OcHyZjGi406EGzfKEyH27rmkrvX78gz1dTMqPuLp3XirS25tzeku6YclZ0R4adw==","signatures":[{"sig":"MEUCIQDLCqr8ZAgcgwnr7Ci6w9jZrcEGdSYOSPIA3KNZOiDvxAIgODIhpGphbixclJK7Ej3NeGNQevlmyM8TtXPiavBxBQY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120368},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"}},"gitHead":"88794109c53b7740ccddede328c6b4d9d1971b04","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"10.9.4","description":"Firebase 게시판 — core composable + thin Nuxt module(UI SFC). Nuxt 4 + Nuxt UI 호스트에 붙임","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"22.22.0","dependencies":{"@nuxt/kit":"^4.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=3.0.0 || >=4.0.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0","vue-router":"^4.0.0 || ^5.0.0"},"peerDependenciesMeta":{"nuxt":{"optional":true},"@nuxt/ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.4.6_1785738676486_0.597179637305975","host":"s3://npm-registry-packages-npm-production"}},"0.4.12":{"name":"memi-board","version":"0.4.12","keywords":["vue","nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.4.12","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"4bb024b139e3bb0f747f274fd4b4e255ed7be287","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.4.12.tgz","fileCount":36,"integrity":"sha512-fATv4scSLplEu6pXDaRm/aPw5PDhLYNcs1Ly5rCkbfHb7fkNeiFerdqRynMvM4iBLuMpI9n+F3FCGgEkMzKqmw==","signatures":[{"sig":"MEYCIQDWBbWn4gkaTgGUmIedYSe0QYAi+kvkkJbZTklE7cdYXwIhAL192+1ZmnVueFRWYV+GWjWXh0XsXrIgNFuqHiLqN1Mm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":191478},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"}},"gitHead":"282036a7b707342aec147ff1645d82c1b934ba7e","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"10.9.4","description":"Firebase 게시판 — core composable + thin Nuxt module(UI SFC). Nuxt 4 + Nuxt UI 호스트에 붙임","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"22.22.0","dependencies":{"@nuxt/kit":"^4.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=3.0.0 || >=4.0.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0","@tiptap/pm":">=2.0.0","vue-router":"^4.0.0 || ^5.0.0","@tiptap/core":">=2.0.0"},"peerDependenciesMeta":{"nuxt":{"optional":true},"@nuxt/ui":{"optional":true},"@tiptap/pm":{"optional":true},"@tiptap/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.4.12_1785745573697_0.8013714302516239","host":"s3://npm-registry-packages-npm-production"}},"0.4.13":{"name":"memi-board","version":"0.4.13","keywords":["vue","nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.4.13","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"1a9ac1ce26898f604d7a83453c4f1ac8652a6ab9","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.4.13.tgz","fileCount":37,"integrity":"sha512-b93GnhPQ5+xjjDcw+HdDI9DK1KgMqjF4FbV9a0iiRR0S0JXE6jvJfm9b7qALJXhoSIbKgUWUHETjHdjpoVUZtA==","signatures":[{"sig":"MEQCIHzyl/jCXq8oK+BdfJoDV0GjDH2AhjSLcYBPGDXRz9nnAiBiZdCEYKWARBSegWwKBqUbWfjv5PCRfiuHfSmGy5p0GQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197904},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"}},"gitHead":"806f31f33c3da85d3a178c497af20fefac148992","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"10.9.4","description":"Firebase 게시판 — core composable + thin Nuxt module(UI SFC). Nuxt 4 + Nuxt UI 호스트에 붙임","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"22.22.0","dependencies":{"@nuxt/kit":"^4.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=3.0.0 || >=4.0.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0","@tiptap/pm":">=2.0.0","vue-router":"^4.0.0 || ^5.0.0","@tiptap/core":">=2.0.0"},"peerDependenciesMeta":{"nuxt":{"optional":true},"@nuxt/ui":{"optional":true},"@tiptap/pm":{"optional":true},"@tiptap/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.4.13_1785746563953_0.15748541449122233","host":"s3://npm-registry-packages-npm-production"}},"0.4.14":{"name":"memi-board","version":"0.4.14","keywords":["vue","nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.4.14","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"f479da4e2e52c93f099d26c279e16f18caacd153","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.4.14.tgz","fileCount":38,"integrity":"sha512-uPXI8AB7l2AcfqXkKsTeJk4HeXbB8KJBWIZjBd1881v/RTdKhapOazkf6LJmUg/lKjtYnTXRA6pQO9yCoHaQ7w==","signatures":[{"sig":"MEUCIQDXxD6NvVLJW096x2wLkmTDzA6fK33f0zUFpFrQBaZg5AIgC5FTOqbo9vwT7iuk5L32iLaLPg5zCUzzaeiPteAl5J0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":207033},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"}},"gitHead":"806f31f33c3da85d3a178c497af20fefac148992","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"10.9.4","description":"Firebase 게시판 — core composable + thin Nuxt module(UI SFC). Nuxt 4 + Nuxt UI 호스트에 붙임","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"22.22.0","dependencies":{"@nuxt/kit":"^4.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=3.0.0 || >=4.0.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0","@tiptap/pm":">=2.0.0","vue-router":"^4.0.0 || ^5.0.0","@tiptap/core":">=2.0.0"},"peerDependenciesMeta":{"nuxt":{"optional":true},"@nuxt/ui":{"optional":true},"@tiptap/pm":{"optional":true},"@tiptap/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.4.14_1785749826173_0.7700197128601964","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"memi-board","version":"0.5.0","keywords":["vue","nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.5.0","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"b2c6011bbe2d7e24d4e703a564d5533237f979dd","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.5.0.tgz","fileCount":42,"integrity":"sha512-Z2VzZ4c57Ang6xJnkdu2qPBBINLI8o+NM0RkcJt/v/Jn3pQqBEvjb5tV/lVai8Nv6AB1wQ//iePcgXeeXWdbpA==","signatures":[{"sig":"MEYCIQDUkghtwNGnCGjc1yBaj/2vX1IPZEXYzDu19FMYuBCq2wIhAMNXSdhXKZM/Pcr8rwTY/XwEhMD7ADp5Oh65NPQ+BQA0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":229388},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"}},"gitHead":"b14b1b4b7cd7b78a94dc18775d2f9bb096ef6354","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"10.9.4","description":"Firebase 게시판 — core composable + thin Nuxt module(UI SFC). Nuxt 4 + Nuxt UI 호스트에 붙임","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"22.22.0","dependencies":{"@nuxt/kit":"^4.5.1","@tiptap/extension-youtube":"3.28.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=3.0.0 || >=4.0.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0","@tiptap/pm":">=2.0.0","vue-router":"^4.0.0 || ^5.0.0","@tiptap/core":">=2.0.0"},"peerDependenciesMeta":{"nuxt":{"optional":true},"@nuxt/ui":{"optional":true},"@tiptap/pm":{"optional":true},"@tiptap/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.5.0_1785818145610_0.7397020847707716","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"memi-board","version":"0.7.0","keywords":["vue","nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.7.0","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"d81d9be6baed75a09937fdf50495c57a0d8092cb","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.7.0.tgz","fileCount":44,"integrity":"sha512-6gQK9duRQkJ8qe/USQtIqhQd245cJSyLQQNkK8rOhvXLNtkAv6td4MjqqiWKlmjfD7DNLPvyJdr0afE8Z31lxQ==","signatures":[{"sig":"MEQCIHBaPZrGVsXmuGGJqCkARrv35Zl81KWUEBQP0JYCJnBvAiAUNPCXni1NzeTiBd+9zzkq5XpqfrJ5Z3RR1Rrn0ySVKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241959},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"}},"gitHead":"25965b4a93eed66abd0f1c6703466b6f82a15a83","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"10.9.4","description":"Firebase 게시판 — core composable + thin Nuxt module(UI SFC). Nuxt 4 + Nuxt UI 호스트에 붙임","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"22.22.0","dependencies":{"@nuxt/kit":"^4.5.1","@tiptap/extension-youtube":"3.28.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=3.0.0 || >=4.0.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0","@tiptap/pm":">=2.0.0","vue-router":"^4.0.0 || ^5.0.0","@tiptap/core":">=2.0.0"},"peerDependenciesMeta":{"nuxt":{"optional":true},"@nuxt/ui":{"optional":true},"@tiptap/pm":{"optional":true},"@tiptap/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.7.0_1785826075410_0.8191789107382297","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"memi-board","version":"0.9.0","keywords":["vue","nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.9.0","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"06438df69a57c420338c0b91890fb22f70ad673c","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.9.0.tgz","fileCount":47,"integrity":"sha512-6QbZeJNN2Er4zTGN3DTQgEWwkQlHPWYW2frCv5Q4MciLZhHojX4Ot2Gd71Zfnojk6TIOBwFqURsOX1t6Fy0adA==","signatures":[{"sig":"MEUCIBPvpPHTtdK281n4i/e17cngNRcuFVlIji3R/uoGEdDVAiEAqBl8+qL6lPbvOYExtEoYEkgD7Qs9kF+Vivudic0VR6M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279870},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"}},"gitHead":"47e8e2a5ed3f206c4a59525ca39947f4228f4175","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"10.9.4","description":"Firebase 게시판 — core composable + thin Nuxt module(UI SFC). Nuxt 4 + Nuxt UI 호스트에 붙임","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"22.22.0","dependencies":{"@nuxt/kit":"^4.5.1","@tiptap/extension-youtube":"3.28.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=3.0.0 || >=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0","@tiptap/pm":">=2.0.0","vue-router":"^4.0.0 || ^5.0.0","@tiptap/core":">=2.0.0"},"peerDependenciesMeta":{"nuxt":{"optional":true},"@nuxt/ui":{"optional":true},"@tiptap/pm":{"optional":true},"@tiptap/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.9.0_1785834350056_0.8671110348066282","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"memi-board","version":"0.9.1","keywords":["vue","nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.9.1","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"eabe512c135ece97ade08e250ab3d1f6bf151ab1","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.9.1.tgz","fileCount":47,"integrity":"sha512-jW4Jpx8l5uEY0pTHTyCmjI77Mkq1eIlp4aiwF4XM5bwpZRhuxmjLsO73uff61HErNSeaeCuVLM/ngdwNbN9nTQ==","signatures":[{"sig":"MEYCIQCebBACDqiVAhHlz4ZwKOn9SxIx4djwIenOjJzA4tLvJQIhALZmJKOIsJX10BmvygmNxaXtjdgY0zeAb/wz/0rd4Tzo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":280192},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"}},"gitHead":"1bdd02a58515626c21855347184b61838ef8dbd7","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"10.9.4","description":"Firebase 게시판 — core composable + thin Nuxt module(UI SFC). Nuxt 4 + Nuxt UI 호스트에 붙임","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"22.22.0","dependencies":{"@nuxt/kit":"^4.5.1","@tiptap/extension-youtube":"3.28.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=3.0.0 || >=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0","@tiptap/pm":">=2.0.0","vue-router":"^4.0.0 || ^5.0.0","@tiptap/core":">=2.0.0"},"peerDependenciesMeta":{"nuxt":{"optional":true},"@nuxt/ui":{"optional":true},"@tiptap/pm":{"optional":true},"@tiptap/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.9.1_1785834572915_0.150303663207495","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"memi-board","version":"0.10.0","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.10.0","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"6139784ae7de1f34f3bc8204e77826af60bc88b9","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.10.0.tgz","fileCount":47,"integrity":"sha512-qd6SyAySzx1938vCX8OG6xgU2PcNdJsD1huwE2suPkVZ0JliuDudScwEd0fgpk0OWdTtBD7YM4q/XEdGspIR3A==","signatures":[{"sig":"MEYCIQCyxADXHMETagLUXcV3wyZEeL993LSNUvbBoarWo1hkNAIhAK56T09EmJVVVEaQzoYyCxntk0yCfdDUTkBXOW3RNHCn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":293316},"main":"./dist/module.mjs","type":"module","_from":"file:memi-board-0.10.0.tgz","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","release":"node scripts/release.mjs","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"_resolved":"/private/var/folders/0_/bgvffcmd06vf2c5yvn0xb6fm0000gn/T/2794f382f0053155211e6a1731b28a51/memi-board-0.10.0.tgz","_integrity":"sha512-qd6SyAySzx1938vCX8OG6xgU2PcNdJsD1huwE2suPkVZ0JliuDudScwEd0fgpk0OWdTtBD7YM4q/XEdGspIR3A==","repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"11.13.0","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.16.0","dependencies":{"@nuxt/kit":"^4.5.1","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.10.0_1785931517777_0.11742238257798499","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"memi-board","version":"0.10.1","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.10.1","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"0353c372b552462f48bc8437b4734c6872df43f6","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.10.1.tgz","fileCount":49,"integrity":"sha512-pw+6Ny6ghwNmWo4mF+ehioZJQS4x1cwrupn4/1cFsTWwC5Shad1haFrRX+xEn/Yv03f3v1YOZ0aSyzygU8ezOg==","signatures":[{"sig":"MEUCIQDZTcMMQSpvzQ+MD3rwRO+RSVW8pqov5iWDJklW2mtRRQIgD2q5ofb+usX1mdUm0SihT96xkX3XKCtcCovb/Sqzf8E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":361007},"main":"./dist/module.mjs","type":"module","_from":"file:memi-board-0.10.1.tgz","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","release":"node scripts/release.mjs","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"_resolved":"/private/var/folders/0_/bgvffcmd06vf2c5yvn0xb6fm0000gn/T/0214d4339221f9fb023f449eedf7e0e9/memi-board-0.10.1.tgz","_integrity":"sha512-pw+6Ny6ghwNmWo4mF+ehioZJQS4x1cwrupn4/1cFsTWwC5Shad1haFrRX+xEn/Yv03f3v1YOZ0aSyzygU8ezOg==","repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"11.13.0","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.16.0","dependencies":{"@nuxt/kit":"^4.5.1","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.10.1_1785935171403_0.9199537933319231","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"memi-board","version":"0.11.1","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.11.1","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"d640830b3a7b4107e61623ad77e2447a312eeb5e","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.11.1.tgz","fileCount":51,"integrity":"sha512-Eu3Xr5MI8HW0+kh9J0juqyS4+AgXntS1Wevngmd9hT84IIOc5qhe4KcRWthBzbdwbgwR2fbop8MEb/q2KKKfeA==","signatures":[{"sig":"MEUCIFQQGm6dg+maCLD1Lyq/ysdbb6x3gknP+yeT6fX+9pDdAiEAxw/XPMDij6S62LPrWQ0wduTLvc8JHCH/7esR1kafBlg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":385346},"main":"./dist/module.mjs","type":"module","_from":"file:memi-board-0.11.1.tgz","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","release":"node scripts/release.mjs","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"_resolved":"/private/var/folders/0_/bgvffcmd06vf2c5yvn0xb6fm0000gn/T/ca806f1b31f65757ec391b6aa703b757/memi-board-0.11.1.tgz","_integrity":"sha512-Eu3Xr5MI8HW0+kh9J0juqyS4+AgXntS1Wevngmd9hT84IIOc5qhe4KcRWthBzbdwbgwR2fbop8MEb/q2KKKfeA==","repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"11.13.0","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.16.0","dependencies":{"@nuxt/kit":"^4.5.1","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.11.1_1785941238672_0.7855812156744877","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"memi-board","version":"0.18.0","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.18.0","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"00a1ed4d34c89c2457f4861482ee0b24cacbe88b","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.18.0.tgz","fileCount":55,"integrity":"sha512-v59QbfZ8ysA8WI1m61IocgnXH/nO8AF53E0huBIe0xNJ5DDSHoTDXBK356HJ6jEQfx/nmAu3QO2WuNdzBuTkLA==","signatures":[{"sig":"MEUCIQD3Fktjw71bGmWEpTH5cVdhnK4k5rmnfW4g4hCGia2tggIgUGHLWAB97mt43iWHys5a1sEmzt8MaiI0p9qdt805xYo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":437188},"main":"./dist/module.mjs","type":"module","_from":"file:memi-board-0.18.0.tgz","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","release":"node scripts/release.mjs","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"_resolved":"/private/var/folders/t6/20g3p0ss4hb3xmc8j17nsn9r0000gn/T/b63cb056814100eb2ebeeeef0d82f53f/memi-board-0.18.0.tgz","_integrity":"sha512-v59QbfZ8ysA8WI1m61IocgnXH/nO8AF53E0huBIe0xNJ5DDSHoTDXBK356HJ6jEQfx/nmAu3QO2WuNdzBuTkLA==","repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"10.9.4","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"22.22.0","dependencies":{"@nuxt/kit":"^4.5.1","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.18.0_1785996434019_0.6557825613966639","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"memi-board","version":"0.19.0","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.19.0","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"97cc349369a55dffc17825c2ed64967385024a6c","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.19.0.tgz","fileCount":58,"integrity":"sha512-6PIn756mFl1uOa4eV3yFmc8CO8YVlanKIqaVbWGelN2pPt0m7F12/K8czELPwbxU3ifvgG+Gy88JVzgTIiKuTA==","signatures":[{"sig":"MEUCIHF9rP0aIwT1kbBHTUTtVVgYFSLVpuY/WdIZ+qVUmfWeAiEA5Ms7ebWAxKG1cochvEtqqbWnEWe2CvTDfqNtb0YXsOM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":476375},"main":"./dist/module.mjs","type":"module","_from":"file:memi-board-0.19.0.tgz","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","release":"node scripts/release.mjs","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"_resolved":"/private/var/folders/t6/20g3p0ss4hb3xmc8j17nsn9r0000gn/T/e19a2d478e9b3530bdf94476043784eb/memi-board-0.19.0.tgz","_integrity":"sha512-6PIn756mFl1uOa4eV3yFmc8CO8YVlanKIqaVbWGelN2pPt0m7F12/K8czELPwbxU3ifvgG+Gy88JVzgTIiKuTA==","repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"10.9.4","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"22.22.0","dependencies":{"@nuxt/kit":"^4.5.1","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.19.0_1785999560948_0.9098803491143932","host":"s3://npm-registry-packages-npm-production"}},"0.19.3":{"name":"memi-board","version":"0.19.3","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.19.3","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"3b13bb9e70d36e865d1159c03d89d8947406138a","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.19.3.tgz","fileCount":59,"integrity":"sha512-YgKt/8qqbf49pPNI6vOp75jlgWJe4+s9fPAA4inYGLq+H3YDRZCC+rGqSG92ABZVTtnC0MbQBmGas8vMt9anoQ==","signatures":[{"sig":"MEUCIALHfYGZyB/e75s5mhcfI6F/RXlucmeK7YDD7/tt6LNKAiEAmQmmbPY0wpwYpeB3EILnxDJ9QXaU56d3YrGyGTykhK0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":506995},"main":"./dist/module.mjs","type":"module","_from":"file:memi-board-0.19.3.tgz","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","release":"node scripts/release.mjs","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"_resolved":"/private/var/folders/t6/20g3p0ss4hb3xmc8j17nsn9r0000gn/T/23ad384ec2f262fc24378b1952622a33/memi-board-0.19.3.tgz","_integrity":"sha512-YgKt/8qqbf49pPNI6vOp75jlgWJe4+s9fPAA4inYGLq+H3YDRZCC+rGqSG92ABZVTtnC0MbQBmGas8vMt9anoQ==","repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"10.9.4","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"22.22.0","dependencies":{"@nuxt/kit":"^4.5.1","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.19.3_1786002955834_0.7208139873090995","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"memi-board","version":"0.21.0","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.21.0","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"80f47c55db766190d8f9e50ccc5d68db1e4d0ce8","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.21.0.tgz","fileCount":63,"integrity":"sha512-1Do882KR9eyq/9PSjJuln0rJcf4Wf7sAqTzYYxpk/29h8KXWid4GU406wNzRCo++YGCNaIIJc7g+GakEyRPvgA==","signatures":[{"sig":"MEUCIEWZlyh2cpuvqcBtCkaJcg8iMpMYnJioAA1OXvrPyW/VAiEAjE36QyvUKCMADVmvmYy3gE4ToV5/YUg5EkE9x1h5r7I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3268165},"main":"./dist/module.mjs","type":"module","_from":"file:memi-board-0.21.0.tgz","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","release":"node scripts/release.mjs","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"_resolved":"/private/var/folders/0_/bgvffcmd06vf2c5yvn0xb6fm0000gn/T/6a03c4137b98d8849c7a54a64b730648/memi-board-0.21.0.tgz","_integrity":"sha512-1Do882KR9eyq/9PSjJuln0rJcf4Wf7sAqTzYYxpk/29h8KXWid4GU406wNzRCo++YGCNaIIJc7g+GakEyRPvgA==","repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"11.13.0","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.16.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.21.0_1786017301026_0.5130079390501874","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"memi-board","version":"0.22.0","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.22.0","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"a8046386f3f4e857fb5ab7073f26532d78c2021b","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.22.0.tgz","fileCount":67,"integrity":"sha512-/LMJOD6btmL80rYcGp6o+nYeqjqYu+yNeGn+N/LMtOcCc5Ii4jeFP7JkF+lWxR9ZSSNP4bww9RRmmC+5L3h6sg==","signatures":[{"sig":"MEUCIQDWvoRcToSJnqS9XgPGlWMYQXL6aG9Fw2PLH5aFJyKT7wIgWa+VkijTk/xP42LSk9QwKJa3NX3a4eV8bTMitHPg3Q4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3296545},"main":"./dist/module.mjs","type":"module","_from":"file:memi-board-0.22.0.tgz","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","release":"node scripts/release.mjs","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"_resolved":"/private/var/folders/t6/20g3p0ss4hb3xmc8j17nsn9r0000gn/T/4b4d2c6ff2967111d8f61dd90598973e/memi-board-0.22.0.tgz","_integrity":"sha512-/LMJOD6btmL80rYcGp6o+nYeqjqYu+yNeGn+N/LMtOcCc5Ii4jeFP7JkF+lWxR9ZSSNP4bww9RRmmC+5L3h6sg==","repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"10.9.4","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"22.22.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.22.0_1786436547830_0.31461392503549823","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"memi-board","version":"0.23.0","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.23.0","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"bf0051eacf390c55fd6ce8198da85d88797746e3","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.23.0.tgz","fileCount":68,"integrity":"sha512-5FoBre/rn8Plvl42mmNbzHcMsdf0HN5587x2xGw77wtKMhqgiapeBMbW9y3Neb6bodCE6vIo87CesVcHjrKa3Q==","signatures":[{"sig":"MEQCIGNbWhLOY5Ndzwk74OCF0SebJw1PCHQUGVgP5L9lD91+AiAmJVJwGIHFFmLNZRgzw0WZgNPBaEAScRN8W9tkRFQ6xw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3310872},"main":"./dist/module.mjs","type":"module","_from":"file:memi-board-0.23.0.tgz","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","release":"node scripts/release.mjs","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"_resolved":"/private/var/folders/0_/bgvffcmd06vf2c5yvn0xb6fm0000gn/T/429e82b3e5dfc0ebb98155980d097f44/memi-board-0.23.0.tgz","_integrity":"sha512-5FoBre/rn8Plvl42mmNbzHcMsdf0HN5587x2xGw77wtKMhqgiapeBMbW9y3Neb6bodCE6vIo87CesVcHjrKa3Q==","repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"11.13.0","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.16.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.23.0_1786459037871_0.17694182515515022","host":"s3://npm-registry-packages-npm-production"}},"0.28.0":{"name":"memi-board","version":"0.28.0","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.28.0","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"34b84ba01d240186ea7cff0ee47a7a1a287a61f9","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.28.0.tgz","fileCount":79,"integrity":"sha512-vg3bd2CY9hkAdLr4MxTY3gb6D6Ag8F5RMxRhdYV4CTG41X5UkJJFsCp6uxcJgm1HTuAN/4OvQFLyQdV4VbTDIQ==","signatures":[{"sig":"MEYCIQC9itjmquiN83Z97XF4m9xxlYw20HvOu7mf6p8zQW97IwIhAM1tBmZRFetpVCdmWltGSqOUSuqh4uDPpF16qd8O+/jr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3367293},"main":"./dist/module.mjs","type":"module","_from":"file:memi-board-0.28.0.tgz","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.js"}},"scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","release":"node scripts/release.mjs","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"_resolved":"/private/var/folders/t6/20g3p0ss4hb3xmc8j17nsn9r0000gn/T/b5e0443daf27be06f4b0a35cea49632c/memi-board-0.28.0.tgz","_integrity":"sha512-vg3bd2CY9hkAdLr4MxTY3gb6D6Ag8F5RMxRhdYV4CTG41X5UkJJFsCp6uxcJgm1HTuAN/4OvQFLyQdV4VbTDIQ==","repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"10.9.4","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"22.22.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","vue-advanced-cropper":"^2.8.9","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.28.0_1786531344165_0.7355281343415219","host":"s3://npm-registry-packages-npm-production"}},"0.29.0":{"name":"memi-board","version":"0.29.0","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.29.0","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"204ab21b48692b0df6f48a2eb2236152b4124d6d","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.29.0.tgz","fileCount":80,"integrity":"sha512-IU+/CGoSMIQpJyqB8jA5/QQSNFo43dOplurR8yVyYaLckFn9LSVhSAzxq8iWEOwgdb5r37SSGD0JKIQPkz1Gkg==","signatures":[{"sig":"MEUCIQCyEaypCCmaJgyiba8yJzQ/tM/GxlipplMaumjmH5SWCgIgKMzlv7ip+iYTZmsTXe2GTrwKgUdVLNJhjvgycH8qp2Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3369251},"main":"./dist/module.mjs","type":"module","_from":"file:memi-board-0.29.0.tgz","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.js"}},"scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","release":"node scripts/release.mjs","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"fkkmemi","email":"fkkmemi@gmail.com"},"_resolved":"/private/var/folders/t6/20g3p0ss4hb3xmc8j17nsn9r0000gn/T/468a6a5f45b3e264de937b06b041c04b/memi-board-0.29.0.tgz","_integrity":"sha512-IU+/CGoSMIQpJyqB8jA5/QQSNFo43dOplurR8yVyYaLckFn9LSVhSAzxq8iWEOwgdb5r37SSGD0JKIQPkz1Gkg==","repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"10.9.4","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"22.22.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","vue-advanced-cropper":"^2.8.9","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.29.0_1786585663470_0.3966702054467839","host":"s3://npm-registry-packages-npm-production"}},"0.29.1":{"name":"memi-board","version":"0.29.1","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.29.1","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"04eefdf2f80360ea96de473d81278bb5d85d96de","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.29.1.tgz","fileCount":80,"integrity":"sha512-gEqX00EwuR1I+J/0vkXre83m7t+06rweQ6CPHOcFqVZW1iKauZAZPG76xNyGW9Yj1KxS3aLh69SpKhhP6zl+EA==","signatures":[{"sig":"MEUCIQCVRmGSlAjfy03Qc8YTa5RYfDjyIsCDAULPzHwFsQX/vQIgSmE3L8v3U0nrdX1vhR94tFY4ThpXPGrvOCQp8rr56/U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/memi-board@0.29.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3373203},"main":"./dist/module.mjs","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.js"}},"gitHead":"f5a2a7f9ad6badada305b90339db2739ac547411","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8524ad1d-31a5-4ae9-83ea-d25f5d21439b"}},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"12.0.2","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.18.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","vue-advanced-cropper":"^2.8.9","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.29.1_1786608304434_0.6597372859248085","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"memi-board","version":"0.30.0","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.30.0","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"1b5198cd6e7e66495d5c5ccc7fdb4b709deeb2e5","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.30.0.tgz","fileCount":80,"integrity":"sha512-kVuywhGrEoEo3YQineTcAfyKbd7S/5fe0+KxGw9FVPxvwYAi8mhZZwYne/y4tfY2ezG1l0EuYsjBwh+6q2hR5g==","signatures":[{"sig":"MEYCIQCw3CTNyYVlAo6SyM3F15zmZ4+MyK/jEIInd1+89NIJ/QIhAPoNgx2WrX+9yM1ITaZQWV2eiURD5aJgkM1zPbiF+kx7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/memi-board@0.30.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3376892},"main":"./dist/module.mjs","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.js"}},"gitHead":"0969d215f084c9f892dce8b662b370e8e75fa7f7","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8524ad1d-31a5-4ae9-83ea-d25f5d21439b"}},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"12.0.2","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.18.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","vue-advanced-cropper":"^2.8.9","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.30.0_1786610497816_0.25707400220973","host":"s3://npm-registry-packages-npm-production"}},"0.30.1":{"name":"memi-board","version":"0.30.1","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.30.1","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"2c6a317de8556fc3e0178352403372ce0006966f","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.30.1.tgz","fileCount":80,"integrity":"sha512-oDtR2u9cWmz4LQ4nUKArCNXKNT/Q8UYoWoOzUFONs7p/9iNcB1c2y7RufnyuR8DSqxpQpNJfgy+f79nYhiUQiw==","signatures":[{"sig":"MEQCIHMaRifRCegJFNkGiDTbIXs/J2+bMEpnr5ogzFrntbZMAiB94xWsqbTepV3/0MqjdPjRr1D8+baEEXYg0ZcJ//iUQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/memi-board@0.30.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3377469},"main":"./dist/module.mjs","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.js"}},"gitHead":"ceae8207880f7be0d55b8457bf0e0016b4c9fe86","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8524ad1d-31a5-4ae9-83ea-d25f5d21439b"}},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"12.0.2","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.18.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","vue-advanced-cropper":"^2.8.9","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.30.1_1786611651600_0.8196031555716377","host":"s3://npm-registry-packages-npm-production"}},"0.30.2":{"name":"memi-board","version":"0.30.2","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.30.2","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"14c154d5cc2327e98616cc94fe1c2413f41f342b","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.30.2.tgz","fileCount":80,"integrity":"sha512-6OJl8q7MiisyQWs4yzBcdJpJjlat0R7K7dhqvAfLNSUegp7kGPa8MTC+3QoKyvp8LEZNPpfg1Vg+YX+bIA196A==","signatures":[{"sig":"MEUCIQDowBkLvYiE5vccLN26OYIZkd6hLOWyKx8IJ4ELrShylAIgWdFhYauWlKiIrc5Y3Zv/ChcVGpXtGNfCwGTxUAEs7Gc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/memi-board@0.30.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3379878},"main":"./dist/module.mjs","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.js"}},"gitHead":"82d020af4cc8b058792c6dec03b9a35a949217d7","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8524ad1d-31a5-4ae9-83ea-d25f5d21439b"}},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"12.0.2","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.18.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","vue-advanced-cropper":"^2.8.9","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.30.2_1786670371782_0.6913359030784259","host":"s3://npm-registry-packages-npm-production"}},"0.31.0":{"name":"memi-board","version":"0.31.0","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.31.0","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"bcaf954b8f07b71eb7d9e103623aa3f4eb957272","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.31.0.tgz","fileCount":81,"integrity":"sha512-w75hR+Fnr4lKGsvI/RlXGza+kDmRyfAl4utVpoQwYrDyhnvVktwhwQ0nmvpioZ4fN1JQELBogYZHX8NldV7dJg==","signatures":[{"sig":"MEYCIQC8RKxenZg9RF5urJvn5E2/NnpNYQtxGZoQE5vHQ4lVoQIhAIxS8r04f0bGqAQDCO+RJpBE5WJHFWHDU+nM4stUUOq8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/memi-board@0.31.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3397482},"main":"./dist/module.mjs","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.js"}},"gitHead":"66acdb509f8341e8e81ff2c50ce3706d4a5a4b3c","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8524ad1d-31a5-4ae9-83ea-d25f5d21439b"}},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"12.0.2","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.18.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","vue-advanced-cropper":"^2.8.9","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.31.0_1786685997203_0.9495441740347714","host":"s3://npm-registry-packages-npm-production"}},"0.32.0":{"name":"memi-board","version":"0.32.0","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.32.0","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"862243e7e28204a809de43794c71d6e05df2ddbc","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.32.0.tgz","fileCount":82,"integrity":"sha512-4X/P4eFCKk58MlnaJzZ4VO3C5TxQwBWKEGuCPa3kvRe9elWSnp35GKChEtfb5GJIjrqeutXhSUvINidnpfU9Bw==","signatures":[{"sig":"MEQCIEIB7EYT4Ue51MpApjyRUWOz5/TyoqFDsDYPUtCe+2sgAiBgVHSiSvZQAGMNQK46cvFaMiiEU85caVpMLh9dDMgqiQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/memi-board@0.32.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3407477},"main":"./dist/module.mjs","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.js"}},"gitHead":"ccc05fd75a353b68285140c68fdb74f3ad86b24e","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8524ad1d-31a5-4ae9-83ea-d25f5d21439b"}},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"12.0.2","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.19.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","vue-advanced-cropper":"^2.8.9","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.32.0_1786699355113_0.7627383674641071","host":"s3://npm-registry-packages-npm-production"}},"0.36.0":{"name":"memi-board","version":"0.36.0","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.36.0","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"b9b02285c87f263c188f799d9eda414e333ae4a7","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.36.0.tgz","fileCount":100,"integrity":"sha512-eVhf5z+kWNdYNWqVfFFR6TqZDFOscOqeF8/wKwsNVHYKOCK+1iXEk4cahUlgyFmxpHgg0yNG6qsN4bAbQ9xh8w==","signatures":[{"sig":"MEUCIQD5xzPz4hznY+0zUHT3bAnGWrjC0kxvP8zo0jalUwopfwIgPJ9vVNJgDZ6EHuSkNwBh0CtIZ2EFrLF3mtH/P6mKe58=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/memi-board@0.36.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3520613},"main":"./dist/module.mjs","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.js"}},"gitHead":"6d7e87d0b4f334e9bdaef82b523df1789df9b9c8","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8524ad1d-31a5-4ae9-83ea-d25f5d21439b"}},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"12.0.2","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.19.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","vue-advanced-cropper":"^2.8.9","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.36.0_1787116630502_0.015969086772197105","host":"s3://npm-registry-packages-npm-production"}},"0.37.0":{"name":"memi-board","version":"0.37.0","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.37.0","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"f11a221fcabc5bcfffd7b0dea85946eca7e9576b","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.37.0.tgz","fileCount":100,"integrity":"sha512-i888MAeqGk+Y289CcGtloS0NTE2R62P8ClxfNdNVwlEjGb41bUlva6JrOMbJVqbgkoYhBhcSr05fIsmuVOcZcw==","signatures":[{"sig":"MEUCIQCJmhhvB0hjE2xi/ImymAPhkLHc6gWULxVkhBYQVnj9gQIgEQxGqBncgZSiaKq3PxX73GEes2gKu0sRGgToj4vWOhk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/memi-board@0.37.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3521763},"main":"./dist/module.mjs","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.js"}},"gitHead":"5f725eab37e45eda185760eb2f0fb04c9149fc1e","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8524ad1d-31a5-4ae9-83ea-d25f5d21439b"}},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"12.0.2","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.19.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","vue-advanced-cropper":"^2.8.9","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.37.0_1787127220372_0.7986596943921465","host":"s3://npm-registry-packages-npm-production"}},"0.37.1":{"name":"memi-board","version":"0.37.1","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.37.1","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"6e75e27fb070c0a0259ff1e0125a3dc34adca0c7","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.37.1.tgz","fileCount":100,"integrity":"sha512-qdLJZg7oBZOt7uQRLZefzZDaGtK0cWdAXG0St3SqdY3+8pH2Y+UPC+2O4Fh93Zigy3h7yB4fG1Uy58PF0lnJIw==","signatures":[{"sig":"MEYCIQCzbRlREVSqXqdVrEm9lKnmU5UtkjBvz/LS6TQ2Ta8NegIhAIETvhAd5yl1nlH74tMdQWMqeO8A8Reg+Isog/xoBu7k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/memi-board@0.37.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3522142},"main":"./dist/module.mjs","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.js"}},"gitHead":"05de518f8698427305814c5ec841151541591295","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8524ad1d-31a5-4ae9-83ea-d25f5d21439b"}},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"12.0.2","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.19.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","vue-advanced-cropper":"^2.8.9","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.37.1_1787127357480_0.6824839205051247","host":"s3://npm-registry-packages-npm-production"}},"0.37.2":{"name":"memi-board","version":"0.37.2","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.37.2","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"22d8af7587c1b989518112f856dd71abb4285f8f","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.37.2.tgz","fileCount":100,"integrity":"sha512-YqhdI6i1SnZF0T73fLoxd283WGtkV/iG/nQ7xUelH20U0EzqPcNXSOWIFKHV3+n0ecWwNpHsOzkENw2qf+qY4w==","signatures":[{"sig":"MEUCIQCY5Mj7j0hZfKGCEMWXcjxFa2QNyssNqcrUtXNzmHdTTAIgSjwqx7haxuhPz02BKtIH90QmbHQVgjxQylKxcAQS0hA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/memi-board@0.37.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3522105},"main":"./dist/module.mjs","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.js"}},"gitHead":"3acd1fd69d89cbf97ede258b798e671b01f02421","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8524ad1d-31a5-4ae9-83ea-d25f5d21439b"}},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"12.0.2","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.19.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","vue-advanced-cropper":"^2.8.9","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.37.2_1787127531324_0.9297960010741402","host":"s3://npm-registry-packages-npm-production"}},"0.38.0":{"name":"memi-board","version":"0.38.0","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.38.0","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"8ff55023717e568aa799d309ac63d3532ea70bbf","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.38.0.tgz","fileCount":100,"integrity":"sha512-Zp+LsaceAsmyzrFJc73QfoKsQLYu8OBxrKFwiczMSwEpUhTl31rBLtT4mJZRSPu+9RljeBrAErkiGYrkr9pfHA==","signatures":[{"sig":"MEUCIEw8tkTDPh9lLK0g6leGJbvHvCpOwbust0PNSik1vl9qAiEAzRl+YsBoOyecRnQ59Sh2hnJNWoM5rPfvBcvEMC6fAMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGlbzPn1++oAk0eMlPU6jnXJ3GQAQQ03ZCJe88PdemiQAiEA8xZjxcdQNdOLwtSgZQY3LoQGQpw5ewRm7fHzR+bmtA0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/memi-board@0.38.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3530159},"main":"./dist/module.mjs","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.js"}},"gitHead":"00c1b8ca57a08a1232a3729c853108efe4ce6f38","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8524ad1d-31a5-4ae9-83ea-d25f5d21439b"}},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"12.0.2","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.19.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","vue-advanced-cropper":"^2.8.9","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.38.0_1787273847927_0.17079245333281023","host":"s3://npm-registry-packages-npm-production"}},"0.38.1":{"name":"memi-board","version":"0.38.1","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.38.1","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"3a9af292ae64069969c8f415d1980832d992c2e9","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.38.1.tgz","fileCount":100,"integrity":"sha512-XJYpz3XyjvA/qng7uDM6KPfwW3dCOX358lE14EMDdWlS+uAeiYrFGnse8/fpR9T51b/RoEn+1UtTgXR6Zu+/Nw==","signatures":[{"sig":"MEYCIQDnrg0noM8cXsXl54yI0uSbvwEdMP+/IrvrFfnqT8UhBwIhAPFdd02o/2vS+p3qTqHNsoOEBVWMZwbY//QyBNVIp3ZS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDNvcMyvb/+JP1GFKbSWR27653r/FpyQt2cXAtWiI5r2gIhAJhPNx5N9/ZInkueXzEdq1yPysv1JwnKudgFEeoMXJQO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/memi-board@0.38.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3533672},"main":"./dist/module.mjs","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.js"}},"gitHead":"8870df898bb6b039cd2cf640f159b9d8768d6830","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8524ad1d-31a5-4ae9-83ea-d25f5d21439b"}},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"12.0.2","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.19.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","vue-advanced-cropper":"^2.8.9","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.38.1_1787294286715_0.5450023175171037","host":"s3://npm-registry-packages-npm-production"}},"0.39.0":{"name":"memi-board","version":"0.39.0","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.39.0","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"10e6da3356ec8d351f0254ae07aca6392c14f1a6","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.39.0.tgz","fileCount":100,"integrity":"sha512-X3tPPrPxeawPmPcR2D5eFfRmluL4E469lBX2p5fri8qOx6bWIXvYkMtY/E97JZbxl6r5Erd8BNUyz4y093fGEQ==","signatures":[{"sig":"MEYCIQCo8oZsL1npPLPzVyqz/78rmFsGFj7ODXW6HneWakwxnQIhALSfQNaEDrRCduRHYxGUMUa7F2XBnCMCD0pivN38S9tb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD0PTVoEkPB0wn0drP/ddHJDY08q535rPhVHWQn7cof7QIgd93PfebWfQMgApFHgNH+Q7WcZpnIbs3L+P9otKYEvt0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/memi-board@0.39.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3537202},"main":"./dist/module.mjs","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.js"}},"gitHead":"b83d5507afd35ea70d2410880908dd68b87c8c99","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8524ad1d-31a5-4ae9-83ea-d25f5d21439b"}},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"12.0.2","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.19.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","vue-advanced-cropper":"^2.8.9","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.39.0_1787298435883_0.35949661777423336","host":"s3://npm-registry-packages-npm-production"}},"0.39.1":{"name":"memi-board","version":"0.39.1","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.39.1","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"62c99987e7ec0acbd6f4fc2172eb475d21d5b81b","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.39.1.tgz","fileCount":100,"integrity":"sha512-YHFBVBmJcHFhSIxIGdSFMiAP+PXXaHgujEG/asVlEz+g8DU5X86BUvPb83A6vGLQUlCGVDWmLJusIWU/EiGUOw==","signatures":[{"sig":"MEUCIEpThzIwT3Syqttv5jeamyapiI15J8q9oaFUGnLUfOG2AiEAv7l24ec9cfsiM5OZbCyp8iWdfOiYYFWiDf+tidvC3ZA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDc45q6YWcSh/6abRYo8AxTNff5ApcQ+/qdQQzRgMxPnwIhANSR7fl1wZumrUIh62LUoo160rlG/dxLCU3+3/5WtFCp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/memi-board@0.39.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3538360},"main":"./dist/module.mjs","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.js"}},"gitHead":"82cf146050275b06b5b2dd3a73bf2b404b6b3403","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8524ad1d-31a5-4ae9-83ea-d25f5d21439b"}},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"12.0.2","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.19.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","vue-advanced-cropper":"^2.8.9","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.39.1_1787798047653_0.6330793696144423","host":"s3://npm-registry-packages-npm-production"}},"0.40.0":{"name":"memi-board","version":"0.40.0","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.40.0","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"54d1d23b0c9afc618603511f8702ba1ff13f0ccf","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.40.0.tgz","fileCount":100,"integrity":"sha512-A2mWZ3u7eiL8xCFvqI1MOCg5t4aqTJxnuRLJX+2kjP56sSs7weAGSsFOBfnEavc1wZHOZPutrpBYzDJR4RCA+w==","signatures":[{"sig":"MEUCIQDtTEXEU1dvI3mhCiamQZ2+f35QmToLjl084+xY5XsUSwIgDZIGAxhwc26EpGr6MEq38XfiJt42sP7Id9jSPQflrDc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDR0UG4OYunJVSZdqJPXbSVXcy9qdXj8npR7bQtkpijaAiAzlZsYa8K6Tz167txxfF58iIQzyHCF0FIw+7TqHtsB7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/memi-board@0.40.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3542635},"main":"./dist/module.mjs","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.js"}},"gitHead":"32bfc2c9ed736da2ec36e071427a41ebf9ec778c","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8524ad1d-31a5-4ae9-83ea-d25f5d21439b"}},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"12.0.2","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.19.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","vue-advanced-cropper":"^2.8.9","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.40.0_1787800068357_0.4905515630684538","host":"s3://npm-registry-packages-npm-production"}},"0.41.0":{"name":"memi-board","version":"0.41.0","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.41.0","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"8d02bfdd21d9e62c4c82a03a2d9d79f281c361d3","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.41.0.tgz","fileCount":100,"integrity":"sha512-p6D53gRmgGwAj5vCR92rttNyLxMKvDF5hCO6xyvYPopHIEdC9ifeqvOarwgXAPbVTygF7U0sMx6WrD+fL8r+Jw==","signatures":[{"sig":"MEYCIQDyBAZVAxw3gfgUqJfttNu2TdTHDtlUSz20AOHAUlPQOAIhAIJLuQjxpP73wpdkHvjQa07F7AtAWsTulg03iUzIJttG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCe40b5bBEgK7NFkGjgB4j2xaSKBPegQFHgvf0+GOASnAIhAOqRbAqXN8fgeJAChMep18KPY7jnI7eXReQYGc/GpXXU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/memi-board@0.41.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3545999},"main":"./dist/module.mjs","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.js"}},"gitHead":"b85e2cbbe0c1b6bcccfea7519d57576040d5969e","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8524ad1d-31a5-4ae9-83ea-d25f5d21439b"}},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"12.0.2","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.19.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","vue-advanced-cropper":"^2.8.9","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.41.0_1787801581975_0.42740523042075584","host":"s3://npm-registry-packages-npm-production"}},"0.42.0":{"name":"memi-board","version":"0.42.0","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.42.0","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"ca6b9ac6a9218bd1448d8e0d595f2113c2333dbc","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.42.0.tgz","fileCount":100,"integrity":"sha512-FO37GGE1drWnVMRWhQHxYW3yJuvK5jhCqgrz5PDOMujF6xh1f/v6K9K662lOUYvy+M7o7diGFYKH4D8k8wVvFQ==","signatures":[{"sig":"MEYCIQC4vvKwPjPI5493z4l/DKqn41ffWOMnUPnbTMg6017mOwIhAM3ClOKkS6XY9JMewbuNTINTWK4NkQiEhxapZhbNxFTh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDdqiDXgZsZ388Fc74OeZVY81DfhtyADslEza7D5qqOwgIhAIH114HfatQJwsCJD2rWmh84EIKKSL8b9tP7wyKeo4fQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/memi-board@0.42.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3551622},"main":"./dist/module.mjs","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.js"}},"gitHead":"a88fc803839dacb80bbaf73b64ac2ecc8d7261ae","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8524ad1d-31a5-4ae9-83ea-d25f5d21439b"}},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"12.0.2","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.19.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","vue-advanced-cropper":"^2.8.9","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.42.0_1787820109939_0.1679359925429582","host":"s3://npm-registry-packages-npm-production"}},"0.42.1":{"name":"memi-board","version":"0.42.1","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"author":{"name":"fkkmemi"},"license":"MIT","_id":"memi-board@0.42.1","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"homepage":"https://github.com/fkkmemi/memi-board#readme","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"3cc113a002f4cfbd14f2f4e7820c5be74f0b58be","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.42.1.tgz","fileCount":100,"integrity":"sha512-ycgScAGIfk4ISJxiAEvgh1APu55x0GZvuCCvRmFau+zTdS+zROYxncWOLM3uOHaH+0bTw9cg7BKb5LDpW91RJg==","signatures":[{"sig":"MEUCIQC3sDQPec79umN1yXM+WSHOaPW35uCr4JxN4BtcGhzX4QIgYf5lUoQb4L6TeZH0D+JpdWnDX8jrfeX1l6Hcs9zdoxo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD+l8dA+HHlfuEfvWE1TsENVKZmLUKzzmTaJI1aIaM4pAIhAPE2XROtyY0Motc6tEE1w0ins0tbo3xu/DXST90hi9Nq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/memi-board@0.42.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3553092},"main":"./dist/module.mjs","pnpm":{"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.js"}},"gitHead":"e54aae601e9adad229430f9dc219dd51a6b47d82","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8524ad1d-31a5-4ae9-83ea-d25f5d21439b"}},"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"12.0.2","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.20.0","dependencies":{"heic2any":"^0.0.4","@nuxt/kit":"^4.5.1","vue-advanced-cropper":"^2.8.9","@tiptap/extension-youtube":"^3.29.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.40","nuxt":"^4.5.1","vite":"^8.2.0","dayjs":"^1.11.21","vue-tsc":"^2.1.10","vuefire":"^3.2.3","@nuxt/ui":"^4.9.0","firebase":"^12.15.0","typescript":"^5.6.3","vue-router":"^5.2.0","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.0.3"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memi-board_0.42.1_1789726596235_0.44931614688477817","host":"s3://npm-registry-packages-npm-production"}},"0.43.0":{"_id":"memi-board@0.43.0","bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"dist":{"shasum":"08d19fbfb253dc8c904a083e64a913ad403b797f","tarball":"https://registry.npmjs.org/memi-board/-/memi-board-0.43.0.tgz","fileCount":98,"integrity":"sha512-u9vDJCl5lObCWREz+lcSguN6rPwrapsWToIfL65DIDA5fBdKh5e17cg9heJev19J1akdvTVNxNY36QvB0dPrKQ==","signatures":[{"sig":"MEUCIQDnwwAKJ3tkrHRn5m/o7mTe7isvdMmoO/aw4rf87foRegIgNpcmfU6VpDYLxM8sxErw5RmWX2B3biOuzeISDUlIC+Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDoJDUlU6nutEz4N6rQ9ef626rjxP7jDjk0UWSFb+dtYAIhAKgPjfBrL/JWG+WZxdNjFES+B0X6tYk17pwWfjne05SN"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/memi-board@0.43.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":785144},"main":"./dist/module.mjs","name":"memi-board","pnpm":{"overrides":{"@tiptap/pm":"3.31.3","@tiptap/core":"3.31.3"},"onlyBuiltDependencies":["@firebase/util","esbuild","protobufjs","vue-demi"]},"type":"module","types":"./dist/module.d.ts","author":{"name":"fkkmemi"},"exports":{".":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./nuxt":{"types":"./dist/module.d.ts","import":"./dist/module.mjs"},"./runtime":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.js"}},"gitHead":"5ec2f61680c438d6d788bf6171b92c235ccd29c3","license":"MIT","scripts":{"dev":"pnpm build && nuxi dev playground","build":"node scripts/build.mjs","prepack":"pnpm build","dev:build":"pnpm build && nuxi build playground","typecheck":"vue-tsc --noEmit","build:watch":"vite build --watch","dev:prepare":"pnpm build && nuxi prepare playground"},"version":"0.43.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8524ad1d-31a5-4ae9-83ea-d25f5d21439b"}},"homepage":"https://github.com/fkkmemi/memi-board#readme","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"_npmVersion":"12.0.2","description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","directories":{},"maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"sideEffects":["**/*.vue","**/*.css"],"_nodeVersion":"24.20.0","dependencies":{"@nuxt/kit":"^4.5.2","vue-advanced-cropper":"^2.8.9","@tiptap/extension-youtube":"^3.31.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vue":"^3.5.43","nuxt":"^4.5.2","vite":"^8.3.0","dayjs":"^1.11.23","vue-tsc":"^3.3.11","vuefire":"^3.2.3","@nuxt/ui":"^4.11.1","firebase":"^12.19.0","@tiptap/pm":"3.31.3","typescript":"^6.0.2","vue-router":"^5.3.1","@tiptap/core":"3.31.3","nuxt-vuefire":"^1.1.2","vite-plugin-dts":"^5.1.0"},"peerDependencies":{"vue":"^3.5.0","nuxt":">=4.0.0","dayjs":"^1.11.0","vuefire":"^3.2.3","@nuxt/ui":"^4.0.0","firebase":"^12.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/memi-board_0.43.0_1789744733740_0.021652567482785656"}}},"time":{"created":"2026-08-03T03:00:11.770Z","modified":"2026-09-18T15:18:54.188Z","0.3.1":"2026-08-03T03:00:12.096Z","0.4.0":"2026-08-03T03:49:19.025Z","0.4.2":"2026-08-03T04:33:09.910Z","0.4.4":"2026-08-03T05:13:57.932Z","0.4.5":"2026-08-03T06:18:51.784Z","0.4.6":"2026-08-03T06:31:16.626Z","0.4.12":"2026-08-03T08:26:13.871Z","0.4.13":"2026-08-03T08:42:44.090Z","0.4.14":"2026-08-03T09:37:06.310Z","0.5.0":"2026-08-04T04:35:45.752Z","0.7.0":"2026-08-04T06:47:55.573Z","0.9.0":"2026-08-04T09:05:50.273Z","0.9.1":"2026-08-04T09:09:33.065Z","0.10.0":"2026-08-05T12:05:17.932Z","0.10.1":"2026-08-05T13:06:11.565Z","0.11.1":"2026-08-05T14:47:18.823Z","0.18.0":"2026-08-06T06:07:14.174Z","0.19.0":"2026-08-06T06:59:21.106Z","0.19.3":"2026-08-06T07:55:55.976Z","0.21.0":"2026-08-06T11:55:01.205Z","0.22.0":"2026-08-11T08:22:28.001Z","0.23.0":"2026-08-11T14:37:18.020Z","0.28.0":"2026-08-12T10:42:24.362Z","0.29.0":"2026-08-13T01:47:43.681Z","0.29.1":"2026-08-13T08:05:04.624Z","0.30.0":"2026-08-13T08:41:37.981Z","0.30.1":"2026-08-13T09:00:51.768Z","0.30.2":"2026-08-14T01:19:31.998Z","0.31.0":"2026-08-14T05:39:57.442Z","0.32.0":"2026-08-14T09:22:35.269Z","0.36.0":"2026-08-19T05:17:10.688Z","0.37.0":"2026-08-19T08:13:40.567Z","0.37.1":"2026-08-19T08:15:57.666Z","0.37.2":"2026-08-19T08:18:51.484Z","0.38.0":"2026-08-21T00:57:28.094Z","0.38.1":"2026-08-21T06:38:06.873Z","0.39.0":"2026-08-21T07:47:16.036Z","0.39.1":"2026-08-27T02:34:07.801Z","0.40.0":"2026-08-27T03:07:48.538Z","0.41.0":"2026-08-27T03:33:02.133Z","0.42.0":"2026-08-27T08:41:50.062Z","0.42.1":"2026-09-18T10:16:36.335Z","0.43.0":"2026-09-18T15:18:53.846Z"},"bugs":{"url":"https://github.com/fkkmemi/memi-board/issues"},"author":{"name":"fkkmemi"},"license":"MIT","homepage":"https://github.com/fkkmemi/memi-board#readme","keywords":["nuxt","firebase","firestore","board","community","nuxt-ui"],"repository":{"url":"git+https://github.com/fkkmemi/memi-board.git","type":"git"},"description":"Nuxt 4 + Nuxt UI + VueFire/Firebase 전용 게시판 모듈","maintainers":[{"name":"fkkmemi","email":"fkkmemi@gmail.com"}],"readme":"# memi-board\n\nNuxt 4 + Nuxt UI + Firebase 프로젝트에 게시판을 붙이는 npm 패키지.\n\n- 게시글 CRUD · 댓글 · Storage 첨부 · 카테고리 · 조회수\n- 작성자/관리자 권한 (Firestore Rules)\n- 로컬 비속어 + Firebase AI Logic(Gemini) 검열 (선택)\n- **공유 미리보기(OG)** — 호스트 SEO API 없이 목록·상세 메타 (`useMemiBoard*Seo`)\n\n**서버 / Firebase Admin 불필요** (권한은 Rules, 검열은 브라우저 — 우회 가능, 아래 한계 참고).  \n공개 목록·글 상세만 SSR로 OG를 채우고, 쓰기·설정은 CSR로 두면 된다.\n\n같은 스택(Nuxt 4 · `@nuxt/ui` · `nuxt-vuefire` · Firebase)이면 **다른 호스트 앱에도 그대로 재사용** 가능하다. Firebase 프로젝트는 호스트마다 달라도 되고, 같은 프로젝트에서는 `boardId`로 게시판 인스턴스를 나눈다 — `memiBoardPosts`/`memiBoardComments`/`memiBoardLikes`는 모두 최상위 flat 컬렉션이고 `boardId`는 각 문서의 필드다(경로 세그먼트가 아니다).\n\n## 플랫폼 요구사항\n\n| 항목 | 요구 |\n|------|------|\n| 런타임 | Nuxt **4+** |\n| UI | `@nuxt/ui` **4+** (컴포넌트가 `UButton` 등 auto-import 전제) |\n| 데이터 | Firebase **Firestore + Auth + Storage** |\n| Vue | `vue` 3.5+, `vuefire` 3.2+, `firebase` 12+ |\n| 모듈 | `nuxt-vuefire` (호스트가 설치·설정) |\n\n**의도적으로 하지 않는 일:** Firebase 초기화, 라우트/미들웨어 등록, App Check 초기화, 서버 검열.\n\n## 구조\n\n| 엔트리 | 역할 |\n|--------|------|\n| `memi-board` | **Nuxt 모듈** — 설정, SFC auto-import, peer dedupe, `dayjs` 개발 서버 최적화 |\n| `memi-board/runtime` | composables, types, 유틸리티 (**Vue 컴포넌트 export 없음**) |\n\n일반 사용자는 `nuxt.config.ts`의 `memiBoard`만 설정한다. 별도 Nuxt 플러그인은 필요 없다.\n\n```\n호스트 Nuxt 앱\n├── nuxt-vuefire + firebaseConfig     ← 인증·Firestore\n├── (선택) App Check 플러그인         ← AI Logic Enforce 시 필수에 가까움\n├── memi-board                        ← Nuxt 모듈 + 런타임 설정\n├── pages/board/*                     ← 라우트는 호스트 소유 (+ SEO 한 줄)\n└── firestore.rules + storage.rules   ← docs 예시 병합 후 배포\n```\n\n## 설치\n\n**사전 준비:** Node + pnpm, Firebase 프로젝트(Firestore·Storage·Auth). 처음부터면 → [docs/firebase-setup.md](docs/firebase-setup.md).\n\n```bash\npnpm add memi-board @nuxt/ui nuxt-vuefire vuefire firebase dayjs\n```\n\n`vuefire` / `firebase` / `nuxt-vuefire` / `dayjs`는 **호스트에 직접 설치**한다. TipTap은 `@nuxt/ui`와 `memi-board`가 관리하므로 호스트에서 별도로 설치하거나 버전을 맞출 필요가 없다.\n\n---\n\n## 부모(호스트) 앱 설정\n\n호스트가 하는 일만 정리한다. **호스트 전용 SEO API·서버 라우트는 필요 없다.**  \nFirestore `listed === true` 공개 글을 패키지가 직접 읽고 `useSeoMeta`로 OG를 채운다.\n\n### 1. `nuxt.config.ts` — modules + `memiBoard` + vuefire + routeRules\n\n```ts\n// nuxt.config.ts\nexport default defineNuxtConfig({\n  modules: [\n    '@nuxt/ui',\n    'nuxt-vuefire',\n    'memi-board',\n  ],\n\n  memiBoard: {\n    // Firestore: memiBoardPosts / memiBoardComments / memiBoardLikes / memiBoardSettings / memiBoardUsers\n    // (전부 flat 컬렉션 — boardId 는 각 문서의 필드. 컴포저블 호출 시 boardId 인자로 지정)\n    auth: { providers: ['google', 'apple'] }, // + 'emailPassword'\n    moderation: {\n      enabled: true,\n      model: 'gemini-3.5-flash-lite',\n      onError: 'block', // 'allow' | 'block'\n      moderateImages: false,\n      useLimitedUseAppCheckTokens: false,\n      // localBlocklist: ['금칙어'],\n      // blockBanThreshold: 10,\n      // blockBanDecayMs: 24 * 60 * 60 * 1000,\n    },\n    // 공유 미리보기(OG) — 호스트 API 없이 패키지 composable 사용\n    seo: {\n      enabled: true,\n      siteName: 'My App',                           // og:site_name · title 접미사\n      siteUrl: process.env.NUXT_PUBLIC_SITE_URL\n        || 'https://example.com',                   // 절대 URL origin (trailing slash 없음)\n      defaultOgImage: '/images/og-default.jpg',     // 글에 previewImage 없을 때\n      basePath: '/board',                           // canonical 경로 prefix\n    },\n  },\n\n  // (선택) 호스트 전역 siteUrl — SEO가 memiBoard.seo.siteUrl 다음으로 참고할 수 있음\n  runtimeConfig: {\n    public: {\n      siteUrl: process.env.NUXT_PUBLIC_SITE_URL || 'https://example.com',\n    },\n  },\n\n  vuefire: {\n    // 콘솔 → 프로젝트 설정 → 내 앱 → 웹 앱 SDK snippet 과 동일해야 함\n    // (appId 가 다른 웹 앱이면 App Check / AI Logic 이 실패한다)\n    config: {\n      apiKey: '...',\n      authDomain: '...',\n      projectId: '...',\n      storageBucket: '...',\n      messagingSenderId: '...',\n      appId: '...',\n    },\n    auth: { enabled: true },\n  },\n\n  routeRules: {\n    // 공개 목록·글 상세: SSR 유지(기본) → 카톡/OG 크롤러가 HTML 메타를 읽음\n    // 쓰기·설정만 CSR\n    '/board/**/new': { ssr: false },\n    '/board/**/**/edit': { ssr: false },\n    '/board/version-history': { ssr: false },\n    '/board-settings/**': { ssr: false },\n    '/board-users': { ssr: false },\n  },\n})\n```\n\n`memiBoard` 옵션은 Nuxt 모듈이 런타임 플러그인으로 자동 전달한다. **`app/plugins/memi-board.ts`를 만들지 않는다.**\n\n#### `memiBoard` 옵션 요약\n\n| 키 | 기본 | 설명 |\n|----|------|------|\n| `postsCollection` | `'memiBoardPosts'` | 글 컬렉션 이름 |\n| `commentsCollection` | `'memiBoardComments'` | 댓글 컬렉션 이름 |\n| `likesCollection` | `'memiBoardLikes'` | 좋아요 컬렉션 이름 |\n| `settingsCollection` | `'memiBoardSettings'` | 보드 설정 컬렉션 이름 |\n| `usersCollection` | `'memiBoardUsers'` | 역할 문서 컬렉션 이름 |\n| `auth.providers` | `['google','apple']` | 로그인 공급자 |\n| `moderation.*` | (아래 AI 절) | 로컬·Gemini 검열 |\n| `seo.enabled` | `true` | `false`면 SEO composable no-op |\n| `seo.siteName` | `'Board'` | OG 사이트명·title 접미사 |\n| `seo.siteUrl` | `''` | 절대 URL origin. 비우면 `runtimeConfig.public.siteUrl` → 요청 origin 순 |\n| `seo.defaultOgImage` | `''` | 대표 이미지 없을 때 (상대경로 또는 `https://…`) |\n| `seo.basePath` | `'/board'` | canonical: `{base}`, `{base}/{category}`, `{base}/{category}/{slug}` |\n\n#### routeRules 원칙\n\n| 경로 | SSR | 이유 |\n|------|-----|------|\n| `/board`, `/board/{category}`, `/board/{category}/{slug}` | **on** (기본) | OG/카톡 미리보기 |\n| `/board/**/new`, `…/edit`, 설정·유저 관리 | **off** | 로그인·권한 UI, SEO 불필요 |\n\n> 예전 가이드의 `/board/**: { ssr: false }` 전부 CSR은 **공유 미리보기가 비게 된다.** 공개 읽기 경로는 SSR을 켠다.\n\n### 2. 페이지에서 SEO 한 줄 (auto-import)\n\n모듈이 `useMemiBoardListSeo` / `useMemiBoardPostSeo`를 auto-import한다.  \n**호스트 `/server/api/board/**` SEO 엔드포인트는 만들지 않는다.**\n\n```vue\n<!-- app/pages/board/index.vue — 전체 목록 -->\n<script setup lang=\"ts\">\nawait useMemiBoardListSeo({ path: '/board' })\n// … MemiBoardList 등\n</script>\n```\n\n```vue\n<!-- app/pages/board/[category]/index.vue — 카테고리 목록 -->\n<script setup lang=\"ts\">\nconst route = useRoute()\nconst categoryId = computed(() => String(route.params.category || ''))\n\nawait useMemiBoardListSeo({\n  category: categoryId,\n  path: computed(() => `/board/${encodeURIComponent(categoryId.value)}`),\n})\n</script>\n```\n\n```vue\n<!-- app/pages/board/[category]/[id]/index.vue — 글 상세 (id 자리 = slug) -->\n<script setup lang=\"ts\">\nconst route = useRoute()\nconst categoryId = computed(() => String(route.params.category || ''))\nconst id = computed(() => String(route.params.id || ''))\n\nconst { post: postSeo } = await useMemiBoardPostSeo({\n  category: categoryId,\n  slug: id,\n  path: computed(() =>\n    `/board/${encodeURIComponent(categoryId.value)}/${encodeURIComponent(id.value)}`,\n  ),\n})\n// postSeo: id · title · previewImage 등 — 상세 로드와 공유 가능\n</script>\n```\n\n| composable | 대상 | OG 요약 |\n|------------|------|---------|\n| `useMemiBoardListSeo` | 목록 | 카테고리 label·description, 최근 공개 글 이미지 |\n| `useMemiBoardPostSeo` | 상세 | 제목·요약·작성자, **`previewImage` → og:image** |\n\n- 공개(`listed`) 글만 조회. **숨김 게시판**은 메타를 비우고 `noindex` 쪽에 가깝게 동작한다.\n- 글 상세 `og:type` = `article`, 목록 = `website`.\n- 로컬 확인:  \n  `curl -sL 'http://localhost:3000/board/…' | grep og:title`  \n  또는 브라우저 **페이지 소스 보기** (`view-source:`). DevTools Elements만 보면 하이드레이션 이후와 헷갈릴 수 있다.\n- 카톡·슬랙 미리보기는 **배포 URL**로 확인 (localhost 크롤 불가).\n\n### 3. 부모 설정 체크리스트\n\n- [ ] `modules`에 `@nuxt/ui`, `nuxt-vuefire`, `memi-board`\n- [ ] `memiBoard.auth` · `moderation` · **`seo`**\n- [ ] `seo.siteUrl` / `seo.siteName` / `seo.defaultOgImage` / `seo.basePath`\n- [ ] 공개 board 경로 **SSR on**, 쓰기·설정만 `ssr: false`\n- [ ] 목록·상세 페이지에 `await useMemiBoard*Seo(…)` 한 줄\n- [ ] 호스트 SEO API **만들지 않음**\n- [ ] CSS `@source` (아래)\n- [ ] (선택) 읽은 글 표시 CSS (아래)\n- [ ] Rules·indexes **deploy**\n- [ ] 최초 admin + 첫 카테고리\n\n### 4. Tailwind `@source` (필수)\n\n패키지 SFC 안의 클래스가 purge되지 않도록:\n\n```css\n/* app/assets/css/main.css */\n@import \"tailwindcss\";\n@import \"@nuxt/ui\";\n@source \"../../../node_modules/memi-board/dist/runtime/components\";\n```\n\n### 5. 읽은 글 표시 (선택)\n\n목록·미니 컴포넌트의 글 링크는 `.memi-board-post-link` 클래스가 붙어 있고, 제목 텍스트는 `text-inherit`로 링크 색을 따른다. 패키지는 색을 강제하지 않으므로, 방문한 글을 흐리게 보이고 싶으면 호스트 CSS에 `:visited` 스타일만 추가하면 된다.\n\n```css\n/* app/assets/css/main.css */\na.memi-board-post-link:visited {\n  color: #737373;\n}\n\n.dark a.memi-board-post-link:visited {\n  color: #a3a3a3;\n}\n```\n\n**`:visited`는 `color`만 허용하고, 그마저도 `var()`·알파값은 브라우저가 무시한다** (히스토리 스니핑 방지). 그래서 Nuxt UI 토큰(`var(--ui-text-muted)`)을 그대로 못 쓰고 라이트/다크용 리터럴 색상을 각각 지정해야 한다(위 값은 Tailwind `neutral-500`/`neutral-400`).\n\n브라우저 네이티브 `:visited` 라서 서버·DB 저장이 필요 없다. 단, SPA 클라이언트 라우팅(`NuxtLink`)으로만 이동한 경우 브라우저에 \"실제 방문\"으로 기록되지 않을 수 있어 완전히 신뢰할 수는 없다 — 정확한 읽음 추적이 필요하면 별도로 방문 글 ID를 저장하는 방식을 구현해야 한다.\n\n### 6. Security Rules + 인덱스 배포\n\n1. [docs/firestore.rules.example](docs/firestore.rules.example) → 호스트 `firestore.rules`에 병합  \n   (`memiBoardPosts`/`memiBoardComments`/`memiBoardLikes`/`memiBoardSettings`/`memiBoardUsers` — 전부 최상위 flat 컬렉션)\n2. [docs/storage.rules.example](docs/storage.rules.example) → `storage.rules` 병합\n3. `firebase.json`의 Storage `bucket`이 `vuefire.config.storageBucket`과 같은지 확인\n   (`*.appspot.com` vs `*.firebasestorage.app` — [firebase-setup.md](docs/firebase-setup.md) 참고)\n4. 목록/작성자별 쿼리에 필요한 복합 인덱스 배포 (아래)\n5. 배포:\n   ```bash\n   firebase deploy --only firestore:rules,storage,firestore:indexes\n   ```\n\n**Rules를 파일에만 넣고 배포 안 하면** 글쓰기에서 `permission-denied` — 가장 흔한 설치 실수.\n**Storage 규칙을 앱이 쓰는 버킷이 아닌 곳에 배포하면** 본문 이미지에서 `storage/unauthorized`.\n\n#### 복합 인덱스\n\n[docs/firestore.indexes.json.example](docs/firestore.indexes.json.example) 를 호스트 `firestore.indexes.json`에 병합한다. 컬렉션 이름을 커스터마이즈했다면(`memiBoard.postsCollection` 등) 인덱스의 `collectionGroup` 값도 그에 맞게 바꿔야 한다.\n\n> ⚠️ npm 패키지 tarball에도 `docs/` 가 포함된다(0.4.7+). 구버전이면 GitHub의 `docs/`를 보면 된다.\n\n### 7. 최초 관리자와 카테고리 만들기\n\nRules는 일반 사용자가 스스로 관리자가 되는 것을 막는다. 따라서 최초 한 번은 다음 순서가 필요하다.\n\n1. 아래 게시판 페이지를 만든 뒤 Google 또는 Apple로 로그인한다.\n2. Firebase Console → Firestore에서 `memiBoardUsers/{uid}` 문서를 찾는다.\n3. 해당 문서의 `role`을 문자열 `admin`으로 변경한다.\n   - UID는 Firebase Console → Authentication → Users에서도 확인할 수 있다.\n4. `/board-settings`에서 첫 카테고리를 만든다. 카테고리가 없으면 글을 작성할 수 없다.\n5. 이후 역할 변경은 `/board-users`의 `MemiBoardUsers`에서 처리한다.\n\n> 최초 관리자 지정은 신뢰할 수 있는 프로젝트 운영자가 Firebase Console에서만 수행한다. 클라이언트 코드에 관리자 UID나 우회 규칙을 넣지 않는다.\n\n## 사용법\n\n라우팅·미들웨어는 **호스트 소유**. 컴포넌트는 모듈 auto-import (`MemiBoardList` 등).  \n`import { MemiBoardEditor } from 'memi-board/runtime'`는 **안 된다**. 컴포넌트는 모듈이 auto-import하고, composable과 type만 `memi-board/runtime`에서 명시적으로 가져올 수 있다.\n\n```vue\n<!-- app/pages/board/index.vue -->\n<script setup lang=\"ts\">\nimport { useMemiBoardAuth } from 'memi-board/runtime'\nconst { isSignedIn } = useMemiBoardAuth()\n</script>\n\n<template>\n  <div>\n    <UButton v-if=\"isSignedIn\" to=\"/board/new\" label=\"새 글쓰기\" />\n    <!-- 단순: 상세 /board/{id} -->\n    <MemiBoardList\n      post-link-base=\"/board\"\n      introduction=\"우리 서비스의 소식과 이야기를 나누는 게시판입니다.\"\n    />\n    <!-- 카테고리 path: get-post-link 권장 -->\n    <!--\n    <MemiBoardList\n      :category=\"route.params.category as string\"\n      :get-post-link=\"(p) => `/board/${p.category}/${p.id}`\"\n    />\n    -->\n    <MemiBoardSignIn v-if=\"!isSignedIn\" />\n  </div>\n</template>\n```\n\n```vue\n<!-- app/pages/board/[id].vue -->\n<script setup lang=\"ts\">\nconst route = useRoute()\nconst router = useRouter()\n</script>\n\n<template>\n  <MemiBoardDetail\n    :post-id=\"route.params.id as string\"\n    @edit=\"router.push(`/board/${route.params.id}/edit`)\"\n    @deleted=\"router.push('/board')\"\n  />\n</template>\n```\n\n```ts\n// app/middleware/board-auth.ts — 글쓰기 가드 (호스트)\nimport { getCurrentUser } from 'vuefire'\n\nexport default defineNuxtRouteMiddleware(async () => {\n  const user = await getCurrentUser()\n  if (!user) return navigateTo('/board')\n})\n```\n\n```vue\n<!-- app/pages/board/new.vue -->\n<script setup lang=\"ts\">\ndefinePageMeta({ middleware: 'board-auth' })\nconst router = useRouter()\n// MemiBoardEditor 는 auto-import (import from 'memi-board/runtime' 불필요)\n</script>\n\n<template>\n  <MemiBoardEditor\n    @saved=\"(id) => router.push(`/board/${id}`)\"\n    @cancel=\"router.push('/board')\"\n  />\n  <!-- path 로 카테고리 고정 시: fixed-category=\"free\" -->\n</template>\n```\n\n전체 페이지 예시는 `playground/app/pages/board/` 참고.\n\n### 관리 페이지\n\n기본 Rules는 게시판의 `memiBoardUsers/{uid}.role == 'admin'`을 검사한다. 컴포넌트도 같은 role을 확인하므로 기본 설치에서는 `authorized`를 전달하지 않는다.\n\n```vue\n<!-- app/pages/board-settings.vue -->\n<template>\n  <MemiBoardSettings />\n</template>\n```\n\n```vue\n<!-- app/pages/board-users.vue -->\n<template>\n  <MemiBoardUsers />\n</template>\n```\n\n호스트의 별도 사이트 관리자 체계를 연동할 때만 `authorized`를 사용할 수 있다. 이 prop은 UI 표시만 허용하며 Firestore Rules를 우회하지 않는다. 이 경우에도 해당 사용자를 게시판 admin으로 등록하거나 호스트 Rules를 같은 관리자 체계에 맞게 수정해야 한다. 관리 URL이 일반 사용자에게 노출되지 않도록 호스트 라우트 가드를 추가하는 것을 권장한다.\n\n### 제공하는 API\n\n**컴포넌트 (auto-import):**  \n`MemiBoardList`, `MemiBoardDetail`, `MemiBoardEditor`, `MemiBoardCommentList`, `MemiBoardCommentForm`, `MemiBoardAttachments`, `MemiBoardSignIn`, `MemiBoardSettings`, `MemiBoardUsers`, `MemiBoardVersionHistory`\n\n**List props:** `pageSize`, `category`, `postLinkBase`, `getPostLink(post)`, `linkBase`(deprecated)\n\n**Editor props:** `postId`(수정), `fixedCategory`(path 고정 시 선택 UI 숨김)  \n본문은 Nuxt UI **`UEditor`**(TipTap, `content-type=\"html\"`). 호스트 `@nuxt/ui` 4.x 에 Editor 포함 필요.\n\n**에디터 이미지:** 툴바에서 기기 파일 또는 외부 HTTPS 이미지 URL을 추가할 수 있고, 붙여넣기 / 드롭 파일은 Firebase Storage에 업로드한다. 외부 URL은 Storage에 복사하지 않으며 원본이 삭제되거나 핫링크가 차단되면 표시되지 않는다. 첫 본문 이미지는 업로드·외부 링크 구분 없이 목록과 공유 대표 이미지로 사용한다.\n\n`memiBoardPosts/{postId}/images/*` + `.../images/thumbnails/*` (최적화 이미지+썸네일).\n글 문서는 아직 없을 수 있고, 붙여넣기는 `image/png` 등이 온다. Storage 예시 규칙은 쓰기를 **로그인 + 5MB + `image/*`** 로 본다. 규칙은 **앱 `storageBucket`과 같은 버킷**에 배포해야 한다.\n\n본문 이미지는 휴대폰 원본 기준 최대 25MB까지 선택할 수 있다. 5MB를 넘으면 브라우저에서 최대 2560px·JPEG 85%로 최적화하고, 결과가 여전히 5MB를 넘으면 2048px·75%로 한 번 더 줄인 뒤 업로드한다. 5MB 이하 이미지는 원본을 유지한다.\n본문 HTML에는 원본 URL. 수정 중 버려진 파일은 호스트 스케줄러로 정리 (`extractEditorImageUrls` 로 본문 참조 비교).\n\n**composables:**  \n`useMemiBoardAuth`, `useMemiBoardPosts`, `useMemiBoardComments`, `useMemiBoardStorage`, `useMemiBoardModeration`, `useMemiBoardSettings`, `useMemiBoardUsers`, `useMemiBoardViews`  \n**SEO (auto-import, 호스트 파이프라인):**  \n`useMemiBoardListSeo`, `useMemiBoardPostSeo`  \n**SEO fetch (필요 시):**  \n`fetchPublicListForSeo`, `fetchPublicPostForSeo`, `resolvePublicSeoDb`\n\n댓글은 시간순으로 10개씩 cursor 조회하며, 실제 `댓글 더보기` 버튼이 화면에 들어오면 1초 후 자동으로 다음 페이지를 읽는다. 기존 댓글을 모두 읽은 뒤에만 최신 댓글 1개를 실시간 구독한다. 대댓글은 5개씩 조회하고 모두 읽은 뒤 최신 답글 1개를 실시간 구독하며, 화면 깊이는 최대 2단계로 표시한다.\n\n### 보드 (구 카테고리)\n\n- 문서: `memiBoardSettings/{boardId}` → `{ label, listView, editorType, writeRole, commentWriteRole, visibility, allowedStaffUids, order, updatedAt }`\n- 설정이 없으면 빈 목록이며 기본 보드를 자동 생성하지 않음\n- `MemiBoardSettings`에서 관리자가 보드별 저장·삭제·순서·리스트뷰·글쓰기 최소 역할 관리\n- `boardId`는 문서 ID이자 각 글(`memiBoardPosts`)의 `boardId` 참조값이므로 생성 후 변경하지 않는 것을 권장\n\n### 로그인 공급자\n\n`auth.providers` 기본 `['google', 'apple']`, `'emailPassword'` 추가 가능.\n\n- **Google:** 콘솔 Sign-in method 활성화\n- **Apple:** Services ID·키 등 추가 설정 → [docs/firebase-setup.md#apple](docs/firebase-setup.md#apple)\n\n### 버전 히스토리\n\n`<MemiBoardVersionHistory />` 를 페이지에 두면 패키지 기능 변경을 방문자에게 보여줄 수 있다.\n\n## Security Model\n\n서버가 없으므로 **Rules가 전부**다.\n\n권한 요약:\n\n| 동작 | 조건 |\n|------|------|\n| 글 읽기 | 공개(`listed`·게시됨) 또는 작성자·관리자·담당 스태프. 숨김 보드는 작성자·관리자·담당 스태프만 |\n| 댓글 읽기 | 공개(`listed`) 또는 작성자·관리자·담당 스태프·부모 글을 읽을 수 있는 사람 |\n| 글 작성 | 로그인 + 보드 `writeRole` 충족 + `moderationStatus == 'approved'` |\n| 댓글 작성 | 로그인 + 보드 `commentWriteRole` 충족. **숨김 보드는 담당 스태프만** (`commentWriteRole` 무시) |\n| 글 수정·삭제 | 작성자 또는 해당 보드 관리자·담당 스태프 |\n| 댓글 삭제 | 댓글 작성자 · 글 작성자 · 해당 보드 관리자·담당 스태프 |\n| 역할 관리 | `MemiBoardUsers`에서 admin이 `admin`·`staff`·`user` 변경 |\n\n**알려진 한계:** AI 검열은 클라이언트 전용. SDK로 직접 write 하면 우회 가능. 중요 서비스면 Cloud Functions 검증을 호스트가 추가(패키지 범위 밖).\n\n## Firebase AI Logic (검열)\n\n흐름: **로컬 금칙어 → Gemini 구조화 JSON** → 걸리면 저장 안 함.\n\n| 옵션 | 기본 | 설명 |\n|------|------|------|\n| `enabled` | `true` | 끄면 로컬만 / 또는 전부 통과에 가깝게 |\n| `model` | `gemini-3.5-flash-lite` | Firebase AI Logic 지원 모델명 |\n| `onError` | `'allow'` | AI 실패 시 `'block'` 이면 저장 거부 |\n| `localBlocklist` | `[]` | 기본 목록에 문자열 추가 |\n| `useLimitedUseAppCheckTokens` | `true` | `false`면 일반 App Check 세션 토큰 |\n| `blockBanThreshold` | `10` | 콘텐츠 차단(local/ai) 누적 이상이면 글·댓글 제한. `0` = off |\n| `blockBanDecayMs` | `86400000` | 경고 1회 차감 간격(기본 24h) |\n\n콘텐츠 차단이 누적되면 `memiBoardUsers/{uid}` 에 `moderationBlockCount` / `moderationBlockAt` 이 기록된다.  \n10회면 약 하루 동안 작성 불가(24h마다 1 차감). Rules 예시에서 본인은 **+1만** 가능하고 감소·리셋은 admin.\n\n### 관리자 검열 우회\n\n글쓰기 폼(`Editor.vue`) 하단, 제출 버튼 위에 `isAdmin`인 사용자에게만 \"비속어 필터 무시\" 스위치가 보인다. 켜고 제출하면 로컬 금칙어·AI 검열을 모두 건너뛰고 저장한다(`via: 'admin-override'`, 경고 카운트도 쌓이지 않음). 댓글 폼(`CommentForm.vue`)에는 없다.\n\n직접 호출할 때는 `useMemiBoardModeration().checkText(text, { skipFilter: true })`로 우회한다. `skipFilter`는 호스트가 넘긴 값 그대로 신뢰하므로, admin 여부 판정은 호출부(호스트)의 책임이다.\n\n### AI 글쓰기 도우미 사용 제한\n\n에디터의 AI 글쓰기 도우미는 로그인 사용자별 24시간 구간에 최대 **10회** 사용할 수 있다.\n`memiBoardUsers/{uid}`의 `aiWritingCount` / `aiWritingWindowAt`을 Firestore 트랜잭션으로 갱신하므로 여러 탭에서 동시에 실행해도 제한을 넘지 않는다.\n\n호스트는 반드시 최신 `docs/firestore.rules.example`의 `memiBoardUsers/{uid}` 규칙을 실제 Firestore Rules에 병합·배포해야 한다. 규칙을 배포하지 않으면 클라이언트가 카운터를 임의로 수정해 제한을 우회할 수 있다.\n\n콘솔에서 **AI Logic(Gemini Developer API)** 활성화. 신규 프로젝트는 구형 `gemini-2.5-flash` 가 404 날 수 있음 → 3.x Flash / Flash-Lite 사용.\n\n### App Check (AI Enforce 시 사실상 필수)\n\n`firebaseml` / AI Logic 이 **Enforce** 되어 있으면 App Check 토큰 없이 `generateContent` 가 실패한다.\n\n1. 콘솔 App Check → 웹 앱에 **reCAPTCHA v3** 등록 (사이트 키·시크릿)\n2. 호스트에서 **`initializeAppCheck`** (memi-board 밖). 예:\n\n```ts\n// app/plugins/app-check.client.ts\nimport { initializeAppCheck, ReCaptchaV3Provider } from 'firebase/app-check'\nimport { useFirebaseApp } from 'vuefire'\n\nexport default defineNuxtPlugin(() => {\n  if (!import.meta.client) return\n  // 로컬: self.FIREBASE_APPCHECK_DEBUG_TOKEN = true | '<등록된-uuid>'\n  initializeAppCheck(useFirebaseApp(), {\n    provider: new ReCaptchaV3Provider('<RECAPTCHA_SITE_KEY>'),\n    isTokenAutoRefreshEnabled: true,\n  })\n})\n```\n\n3. 로컬: 디버그 토큰을 콘솔에 등록 (또는 고정 UUID)\n4. `firebaseConfig.appId` 가 App Check에 등록한 **웹 앱과 동일**한지 확인\n5. (선택) Firestore/Storage 에도 Enforce — 켜면 토큰 없는 요청 거부\n\n> `nuxt-vuefire` 의 `vuefire.appCheck` 옵션만으로 AI Logic까지 충분한지는 SDK/버전에 따라 다를 수 있다. 문제가 있으면 위처럼 명시적 `initializeAppCheck` 를 권장한다.\n\n## 다른 프로젝트에 붙일 때 체크리스트\n\n- [ ] 동일 스택: Nuxt 4 + `@nuxt/ui` 4 + `nuxt-vuefire` + Firebase\n- [ ] `pnpm add memi-board @nuxt/ui nuxt-vuefire vuefire firebase dayjs`\n- [ ] `modules`에 `@nuxt/ui`, `nuxt-vuefire`, `memi-board`\n- [ ] `memiBoard` (`boardId` · `auth` · `moderation` · **`seo`**)\n- [ ] 공개 목록·상세 **SSR on**, 쓰기·설정만 `ssr: false` (전 경로 CSR 금지)\n- [ ] 목록·상세 페이지에 `await useMemiBoardListSeo` / `useMemiBoardPostSeo`\n- [ ] 호스트 SEO API 없음\n- [ ] CSS `@source` …/memi-board/dist/runtime/components\n- [ ] (선택) `.memi-board-post-link:visited` 읽은 글 표시 CSS\n- [ ] Rules 예시 병합 + **deploy**\n- [ ] 카테고리·listed 쿼리 사용 시 indexes deploy\n- [ ] 페이지·미들웨어 직접 작성 (또는 playground 복사)\n- [ ] 최초 로그인 후 Firebase Console에서 `memiBoardUsers/{uid}.role = 'admin'`\n- [ ] 설정 페이지에서 첫 카테고리 생성\n- [ ] (검열) AI Logic 활성화 + 권장 모델 + App Check\n- [ ] `pnpm why vuefire` 로 이중 인스턴스 없는지 확인\n\n같은 Firebase 프로젝트에 호스트 앱 유저 컬렉션이 있어도 무방 — 게시판 역할은 **`memiBoardUsers` 전용**이다.\n\n## 문제 해결\n\n### `useCurrentUser() called before the VueFireAuth module...`\n\n`vuefire.auth.enabled` 미설정, 또는 `vuefire`/`firebase` 이중 설치. `pnpm why vuefire` → 하나로. 모듈이 `vite.resolve.dedupe`에 vue/vuefire/firebase를 넣지만, **호스트 peer 설치**가 우선이다.\n\n### 카테고리 필터 쿼리 에러 / 인덱스 링크\n\n콘솔이 안내하는 복합 인덱스 생성, 또는 위 `firestore.indexes.json` 배포.\n\n### AI 검열 실패 / 글 안 올라감 (`onError: 'block'`)\n\nApp Check 토큰, `appId` 일치, 모델명(3.x), AI Logic 활성화, 네트워크. 브라우저 콘솔의 `moderation AI failed` warn 확인.\n\n### 에디터 이미지 `storage/unauthorized`\n\n본문 붙여넣기·업로드가 `User does not have permission to access 'memiBoardPosts/…/images/…'` 로 실패하면:\n\n1. 로그인 상태인지 확인\n2. `vuefire.config.storageBucket`과 `firebase.json` `storage.bucket`이 **같은 이름**인지 확인. 구 프로젝트는 `*.appspot.com`(앱)과 `*.firebasestorage.app`(CLI 기본)이 갈라질 수 있다 — 앱이 쓰는 쪽에 규칙을 배포한다.\n3. 호스트 `storage.rules`에 `docs/storage.rules.example`의 `memiBoardPosts/{postId}/images` 규칙이 있는지 확인. 쓰기는 `image/*` 이어야 한다(붙여넣기 PNG).\n4. `firebase deploy --only storage` 후 다시 올려 본다.\n\n### 글 삭제 `storage/unauthorized`\n\n작성자 본인 글 삭제가 `User does not have permission to access 'memiBoardPosts/{postId}'` 로 실패하면, 파일 삭제가 아니라 **폴더 목록(`listAll`)** 이 막힌 것이다.\n\n요청은 `prefix=memiBoardPosts/{postId}/`(끝 슬래시)다. `match /memiBoardPosts/{postId} { allow list }` 만 있으면 이 접두사와 안 맞는다. 호스트 `storage.rules`에 예시와 같은 블록이 있어야 한다.\n\n```\nmatch /memiBoardPosts/{postId}/{allPaths=**} {\n  allow list, get: if true;\n  allow delete: if isSignedIn()\n    && (!postExists(postId) || isPostOwner(postId) || isBoardStaff());\n}\n```\n\n`write` 는 이 블록에 넣지 않는다(용량·`image/*` 제한은 `images`/`attachments` match 가 담당). `firebase deploy --only storage` 후 다시 삭제한다. 0.38.1+ 패키지는 `images/`·`attachments/`만 목록으로 비운다.\n\n### monorepo `link:` / `file:` 로 개발할 때\n\n링크하기 전에 패키지 의존성과 `dist`를 준비한다.\n\n```bash\n# memi-board 저장소\npnpm install\npnpm build\n\n# 호스트 저장소\npnpm add link:../memi-board\n```\n\n| 수정 대상 | 반영 |\n|-----------|------|\n| `src/components/*` | 모듈이 링크 소스 직독 → **즉시** (dev HMR) |\n| `useMemiBoard*Seo` (`src/composables/useMemiBoardSeo.ts`) | 호스트 Nuxt가 소스 컴파일 → **즉시** (dev 재시작이 필요할 수 있음) |\n| `src/module.ts` · 그 외 core composable (`dist`) | **`pnpm build`** 후 호스트 dev 재시작 |\n\nSEO composable은 `#imports`로 호스트 Nuxt 인스턴스를 쓴다. `dist/index.js`에 `nuxt/app`을 넣지 않으므로 link 시 Nuxt 이중 로딩(E1001)이 나지 않는다.\n\n모듈이 Vue·Vue Router·VueFire·Firebase·TipTap dedupe와 `dayjs` 최적화를 자동 적용한다. 배포 전에는 의존성을 **npm 버전**으로 되돌린다.\n\n링크 상태에서 새 Tailwind 클래스를 바로 시험하려면 호스트 CSS에 소스 경로를 하나 더 둔다.\n\n```css\n@source \"../../../node_modules/memi-board/src/components\";\n@source \"../../../node_modules/memi-board/dist/runtime/components\";\n```\n\n### OG 메타가 비어 있거나 카톡 미리보기가 안 될 때\n\n1. 공개 경로가 `ssr: false`로 꺼져 있지 않은지 (`routeRules`)\n2. 페이지에 `await useMemiBoardListSeo` / `useMemiBoardPostSeo` 호출 여부\n3. `memiBoard.seo.siteUrl` · `siteName` · `defaultOgImage`\n4. `curl` / view-source 에 `og:title` 이 있는지 (Elements만 보지 말 것)\n5. 글이 `listed` / 숨김 게시판이 아닌지 (숨김은 noindex)\n6. 배포 URL로 재스크랩 (카톡·FB 캐시)\n\n## 로컬 개발 (이 리포)\n\n```bash\npnpm install\npnpm build\npnpm dev:prepare\npnpm dev           # playground\npnpm build:watch   # src 변경 시 dist 갱신\n```\n\n에뮬레이터:\n\n```bash\nfirebase emulators:start --project demo-memi-board\nNUXT_PUBLIC_USE_EMULATORS=1 pnpm dev\n```\n\n## npm 배포\n\nnpm Trusted Publishing(OIDC)을 사용한다. 장기 `NPM_TOKEN`이나 로컬 OTP는 저장하지 않는다.\n\n1. `package.json`, `CHANGELOG.md`, 인앱 `versionHistory`의 버전을 갱신하고 `main`에 푸시한다.\n2. GitHub에서 `v{package.json version}` 태그로 Release를 발행한다(예: `v0.29.1`).\n3. `.github/workflows/publish.yml`이 태그-패키지 버전 일치, 타입 검사, 빌드, 패키지 dry-run을 확인한 뒤 npm에 배포한다.\n\nnpm 패키지 설정의 Trusted Publisher는 GitHub 저장소 `fkkmemi/memi-board`, workflow `publish.yml`로 등록한다. GitHub Environment `npm-publish`에 승인자를 지정하면 Release 발행 뒤 실제 npm 배포 전에 한 번 더 승인할 수 있다.\n\n## 버전 · 라이선스\n\n- UI: `<MemiBoardVersionHistory />`\n- 상세: [CHANGELOG.md](CHANGELOG.md)\n- **MIT**\n","readmeFilename":"README.md"}