memi-board 0.30.2 → 0.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -81,7 +81,7 @@ export default defineNuxtConfig({
81
81
  moderateImages: false,
82
82
  useLimitedUseAppCheckTokens: false,
83
83
  // localBlocklist: ['금칙어'],
84
- // blockBanThreshold: 3,
84
+ // blockBanThreshold: 10,
85
85
  // blockBanDecayMs: 24 * 60 * 60 * 1000,
86
86
  },
87
87
  // 공유 미리보기(OG) — 호스트 API 없이 패키지 composable 사용
@@ -439,11 +439,18 @@ const router = useRouter()
439
439
  | `onError` | `'allow'` | AI 실패 시 `'block'` 이면 저장 거부 |
440
440
  | `localBlocklist` | `[]` | 기본 목록에 문자열 추가 |
441
441
  | `useLimitedUseAppCheckTokens` | `true` | `false`면 일반 App Check 세션 토큰 |
442
- | `blockBanThreshold` | `3` | 콘텐츠 차단(local/ai) 누적 이상이면 글·댓글 제한. `0` = off |
442
+ | `blockBanThreshold` | `10` | 콘텐츠 차단(local/ai) 누적 이상이면 글·댓글 제한. `0` = off |
443
443
  | `blockBanDecayMs` | `86400000` | 경고 1회 차감 간격(기본 24h) |
444
444
 
445
445
  콘텐츠 차단이 누적되면 `memiBoardUsers/{uid}` 에 `moderationBlockCount` / `moderationBlockAt` 이 기록된다.
446
- 3회면 약 하루 동안 작성 불가(24h마다 1 차감). Rules 예시에서 본인은 **+1만** 가능하고 감소·리셋은 admin.
446
+ 10회면 약 하루 동안 작성 불가(24h마다 1 차감). Rules 예시에서 본인은 **+1만** 가능하고 감소·리셋은 admin.
447
+
448
+ ### AI 글쓰기 도우미 사용 제한
449
+
450
+ 에디터의 AI 글쓰기 도우미는 로그인 사용자별 24시간 구간에 최대 **10회** 사용할 수 있다.
451
+ `memiBoardUsers/{uid}`의 `aiWritingCount` / `aiWritingWindowAt`을 Firestore 트랜잭션으로 갱신하므로 여러 탭에서 동시에 실행해도 제한을 넘지 않는다.
452
+
453
+ 호스트는 반드시 최신 `docs/firestore.rules.example`의 `memiBoardUsers/{uid}` 규칙을 실제 Firestore Rules에 병합·배포해야 한다. 규칙을 배포하지 않으면 클라이언트가 카운터를 임의로 수정해 제한을 우회할 수 있다.
447
454
 
448
455
  콘솔에서 **AI Logic(Gemini Developer API)** 활성화. 신규 프로젝트는 구형 `gemini-2.5-flash` 가 404 날 수 있음 → 3.x Flash / Flash-Lite 사용.
449
456
 
@@ -0,0 +1,13 @@
1
+ export declare const WRITING_ASSISTANT_DAILY_LIMIT = 10;
2
+ export type WritingAssistantAction = 'proofread' | 'polish' | 'continue' | 'summarize' | 'translate-en' | 'translate-ko' | 'title';
3
+ interface WritingAssistantInput {
4
+ action: WritingAssistantAction;
5
+ content: string;
6
+ title?: string;
7
+ selection?: boolean;
8
+ }
9
+ /** 검열과 동일한 Firebase AI Logic 연결을 사용하는 글쓰기 도우미. */
10
+ export declare function useMemiBoardWritingAssistant(): {
11
+ assist: (input: WritingAssistantInput) => Promise<string>;
12
+ };
13
+ export {};
@@ -1,4 +1,4 @@
1
- import { O as e } from "./slugify-CDMIDDCN.js";
1
+ import { O as e } from "./slugify-B5XHr4SZ.js";
2
2
  //#region node_modules/.pnpm/heic2any@0.0.4/node_modules/heic2any/dist/heic2any.js
3
3
  var t = /* @__PURE__ */ e(((e, t) => {
4
4
  (function(n, r, i, a) {
@@ -974,4 +974,4 @@ var t = /* @__PURE__ */ e(((e, t) => {
974
974
  //#endregion
975
975
  export default t();
976
976
 
977
- //# sourceMappingURL=heic2any-BHVEj2CD.js.map
977
+ //# sourceMappingURL=heic2any-BWRKffWN.js.map