memi-board 0.22.0 → 0.28.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.
Files changed (48) hide show
  1. package/README.md +26 -40
  2. package/dist/composables/useMemiBoardAuthorMemo.d.ts +19 -0
  3. package/dist/composables/useMemiBoardComments.d.ts +6 -1
  4. package/dist/composables/useMemiBoardSettings.d.ts +2 -2
  5. package/dist/composables/useMemiBoardStorage.d.ts +3 -2
  6. package/dist/composables/useMemiBoardUserComments.d.ts +19 -0
  7. package/dist/composables/useMemiBoardUserPosts.d.ts +4 -2
  8. package/dist/composables/useMemiBoardUserProfile.d.ts +10 -0
  9. package/dist/composables/useMemiBoardUsers.d.ts +5 -4
  10. package/dist/composables/useMemiBoardViews.d.ts +1 -1
  11. package/dist/config.d.ts +8 -2
  12. package/dist/{heic2any-BXb_U1zK.js → heic2any-BHVEj2CD.js} +2 -2
  13. package/dist/{heic2any-BXb_U1zK.js.map → heic2any-BHVEj2CD.js.map} +1 -1
  14. package/dist/index.d.ts +5 -5
  15. package/dist/index.js +870 -906
  16. package/dist/index.js.map +1 -1
  17. package/dist/module.mjs +35 -29
  18. package/dist/module.mjs.map +1 -1
  19. package/dist/runtime/components/Attachments.vue +2 -3
  20. package/dist/runtime/components/AuthorMenu.vue +129 -21
  21. package/dist/runtime/components/AvatarCropModal.vue +108 -0
  22. package/dist/runtime/components/CategorySettings.vue +1 -1
  23. package/dist/runtime/components/CommentItem.vue +8 -7
  24. package/dist/runtime/components/Detail.vue +14 -7
  25. package/dist/runtime/components/Editor.vue +8 -4
  26. package/dist/runtime/components/List.vue +6 -0
  27. package/dist/runtime/components/ListDefault.vue +32 -29
  28. package/dist/runtime/components/ListDense.vue +86 -97
  29. package/dist/runtime/components/ListVideo.vue +13 -8
  30. package/dist/runtime/components/Profile.vue +93 -0
  31. package/dist/runtime/components/ProfileEditModal.vue +190 -0
  32. package/dist/runtime/components/Settings.vue +1 -1
  33. package/dist/runtime/components/UserCommentList.vue +109 -0
  34. package/dist/runtime/components/UserPostList.vue +10 -1
  35. package/dist/runtime/components/Users.vue +1 -1
  36. package/dist/slugify-CDMIDDCN.js +122 -0
  37. package/dist/slugify-CDMIDDCN.js.map +1 -0
  38. package/dist/storage.d.ts +9 -0
  39. package/dist/storage.js +148 -0
  40. package/dist/storage.js.map +1 -0
  41. package/dist/types.d.ts +41 -10
  42. package/dist/utils/boardPaths.d.ts +30 -15
  43. package/docs/firebase-setup.md +3 -4
  44. package/docs/firestore.indexes.json.example +136 -0
  45. package/docs/firestore.rules.example +128 -72
  46. package/docs/storage.rules.example +22 -12
  47. package/package.json +7 -2
  48. package/dist/rolldown-runtime-DtPi1Y-2.js +0 -13
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /** Runtime API — composables / config / types only. UI SFC는 루트 Nuxt 모듈이 등록. */
2
2
  export { configureMemiBoard, useMemiBoardConfig, useBoardPathConfig } from './config';
3
3
  export type { MemiBoardConfig, MemiBoardAuthOptions, MemiBoardModerationOptions, MemiBoardSeoOptions, } from './config';
4
- export { DEFAULT_BOARDS_COLLECTION, DEFAULT_USERS_COLLECTION, resolveBoardPathConfig, boardsCol, boardDoc, boardSettingsDoc, boardPostsCol, boardPostDoc, boardPostBodyDoc, boardPostCommentsCol, boardPostCommentDoc, boardPostLikeDoc, boardUsersCol, boardUserDoc, boardStorageRoot, boardPostStorageFolder, boardSsrKey, } from './utils/boardPaths';
4
+ export { DEFAULT_POSTS_COLLECTION, DEFAULT_COMMENTS_COLLECTION, DEFAULT_LIKES_COLLECTION, DEFAULT_SETTINGS_COLLECTION, DEFAULT_USERS_COLLECTION, resolveBoardPathConfig, settingsCol, settingsDoc, postsCol, postDoc, postBodyDoc, commentsCol, commentDoc, likesCol, likeDoc, likeDocId, boardUsersCol, boardUserDoc, postStorageFolder, boardSsrKey, } from './utils/boardPaths';
5
5
  export type { BoardPathConfig } from './utils/boardPaths';
6
6
  export { fetchPublicPostForSeo, fetchPublicListForSeo, resolvePublicSeoDb, } from './composables/fetchPublicSeo';
7
7
  export type { PublicSeoDb } from './composables/fetchPublicSeo';
@@ -12,24 +12,24 @@ export { useMemiBoardPosts, useMemiBoardPostList, useMemiBoardPost } from './com
12
12
  export type { CreatePostInput, UpdatePostInput, GetPostBySlugResult } from './composables/useMemiBoardPosts';
13
13
  export { isFirestorePermissionDenied } from './composables/useMemiBoardPosts';
14
14
  export { useMemiBoardUserPosts } from './composables/useMemiBoardUserPosts';
15
+ export { useMemiBoardUserComments } from './composables/useMemiBoardUserComments';
16
+ export { AUTHOR_MEMO_MAX_LENGTH, useMemiBoardAuthorMemo } from './composables/useMemiBoardAuthorMemo';
15
17
  export { COMMENT_BODY_MAX_LENGTH, useMemiBoardComments, useMemiBoardReplies } from './composables/useMemiBoardComments';
16
18
  export type { AddCommentInput, AddReplyInput } from './composables/useMemiBoardComments';
17
19
  export { useMemiBoardLikes } from './composables/useMemiBoardLikes';
18
20
  export { useMemiBoardViews } from './composables/useMemiBoardViews';
19
21
  export { useMemiBoardModeration } from './composables/useMemiBoardModeration';
20
- export { useMemiBoardStorage } from './composables/useMemiBoardStorage';
21
22
  export { useMemiBoardSettings, DEFAULT_CATEGORIES, DEFAULT_BOARDS } from './composables/useMemiBoardSettings';
22
23
  export { useMemiBoardUsers, BOARD_USER_ROLES } from './composables/useMemiBoardUsers';
24
+ export { useMemiBoardUserProfile } from './composables/useMemiBoardUserProfile';
23
25
  export { versionHistory } from './data/versionHistory';
24
26
  export type { VersionHistoryEntry } from './data/versionHistory';
25
27
  export { formatDate, formatFullDate, formatRelativeDate, formatTimestampDetails } from './utils/formatDate';
26
28
  export { slugify } from './utils/slugify';
27
29
  export { DEFAULT_BLOCK_BAN_THRESHOLD, DEFAULT_BLOCK_BAN_DECAY_MS, effectiveModerationBlockCount, isModerationWriteRestricted, moderationWriteRestrictedUntilMs, formatRestrictedUntilLabel, } from './utils/moderation-strike';
28
- export type { Attachment, EditorImageEntry, ModerationStatus, PostModel, PostDetail, UserPostModel, CommentModel, BoardUserRole, BoardUserModel, BoardCategory, BoardModel, BoardListView, BoardWriteRole, BoardVisibility, BoardSettingsModel, ModerationResult, } from './types';
30
+ export type { Attachment, EditorImageEntry, ModerationStatus, PostModel, PostDetail, UserPostModel, CommentModel, BoardUserRole, BoardUserModel, BoardUserPrivateModel, AuthorMemoModel, AuthorMemoSentiment, BoardCategory, BoardModel, BoardListView, BoardWriteRole, BoardVisibility, BoardSettingsModel, BoardLikeModel, ModerationResult, } from './types';
29
31
  export { plainTextFromHtml, hasBodyText, hasBodyImage, isContentEmpty, titleFromBody, } from './utils/postBody';
30
- export { compressImage } from './utils/compressImage';
31
32
  export { extractEditorImageUrls } from './utils/extractEditorImageUrls';
32
33
  export { renderMarkdownToHtml } from './utils/renderMarkdown';
33
34
  export { buildPostPreview, youtubeId, videoListCoverUrl } from './utils/postPreview';
34
35
  export { storagePathFromDownloadUrl, postNamespaceFromStoragePath } from './utils/storagePath';
35
- export { EDITOR_IMAGE_MAX_BYTES, EDITOR_IMAGE_SOURCE_MAX_BYTES } from './composables/useMemiBoardStorage';