jansathi-community-schema 0.50.0 → 0.50.2
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/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/social-score/rules.d.ts +22 -1
- package/dist/social-score/rules.d.ts.map +1 -1
- package/dist/social-score/rules.js +61 -35
- package/dist/social-score/rules.js.map +1 -1
- package/dist/social-score/wire.d.ts +37 -0
- package/dist/social-score/wire.d.ts.map +1 -1
- package/dist/social-score/wire.js +24 -0
- package/dist/social-score/wire.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -37,7 +37,7 @@ export { type ReportContentBody, type ReportContentKind, type ReportRecordWire,
|
|
|
37
37
|
export { type CreateRepostBody, type CreateRepostResponse, createRepostBodySchema, createRepostResponseSchema, } from './repost.js';
|
|
38
38
|
export { type BlockedUsersListResponse, type BlockedUserWire, blockedUsersListResponseSchema, blockedUserWireSchema, COMMUNITY_SETTINGS_DEFAULTS, type CommunitySettingsWire, communitySettingsWireSchema, type UpdateCommunitySettingsBody, updateCommunitySettingsBodySchema, } from './settings.js';
|
|
39
39
|
export { type ToggleFollowResponse, toggleFollowResponseSchema, type ViewerSocialState, viewerSocialStateSchema, } from './social.js';
|
|
40
|
-
export { LEADER_ELIGIBILITY_SCORE, type LeaderboardEntry, leaderboardEntrySchema, MENTEE_MILESTONE_SCORE, type MilestoneProgress, milestoneLevel, milestoneProgress, type PublicScoreSummary, publicScoreSummarySchema, QUALIFYING_UPVOTES, QUALIFYING_UPVOTES_COMMENT, type RecentScoreEvent, recentScoreEventSchema, SCORE_CATEGORY_I18N, SCORE_CATEGORY_ORDER, SCORE_CATEGORY_VALUES, SCORE_KIND_VALUES, SCORE_RULE_CATALOG, SCORE_RULES, type ScoreBreakdown, type ScoreByCategory, type ScoreCap, type ScoreCategory, type ScoreCategoryI18n, type ScoreKind, type ScoreRule, type ScoreRuleGroup, type ScoreRuleRef, SOCIAL_SCORE_MILESTONES, SOCIAL_SCORE_TIER_NAMES, SOCIAL_SCORE_TIERS, type SocialScoreTier, type SocialScoreTierName, scoreBreakdownSchema, scoreByCategorySchema, scoreCategorySchema, scoreKindSchema, tierFromSocialScore, } from './social-score/index.js';
|
|
40
|
+
export { LEADER_ELIGIBILITY_SCORE, LEADERBOARD_SCOPE_VALUES, type LeaderboardEntry, type LeaderboardResponse, type LeaderboardScope, leaderboardEntrySchema, leaderboardResponseSchema, leaderboardScopeSchema, MENTEE_MILESTONE_SCORE, type MilestoneProgress, milestoneLevel, milestoneProgress, type PublicScoreSummary, publicScoreSummarySchema, QUALIFYING_UPVOTES, QUALIFYING_UPVOTES_COMMENT, type RecentScoreEvent, recentScoreEventSchema, SCORE_CATEGORY_I18N, SCORE_CATEGORY_ORDER, SCORE_CATEGORY_VALUES, SCORE_KIND_VALUES, SCORE_RULE_CATALOG, SCORE_RULES, type ScoreBreakdown, type ScoreByCategory, type ScoreCap, type ScoreCategory, type ScoreCategoryI18n, type ScoreKind, type ScoreRule, type ScoreRuleGroup, type ScoreRuleRef, SOCIAL_SCORE_MILESTONES, SOCIAL_SCORE_TIER_NAMES, SOCIAL_SCORE_TIERS, type SocialScoreTier, type SocialScoreTierName, scoreBreakdownSchema, scoreByCategorySchema, scoreCategorySchema, scoreKindSchema, tierFromSocialScore, } from './social-score/index.js';
|
|
41
41
|
export { COMPLAINT_CATEGORY_OPTIONS, COMPLAINT_CATEGORY_VALUES, type ComplaintCategory, type CreateSuggestionsComplaintsBody, complaintCategorySchema, createSuggestionsComplaintsBodySchema, SUGGESTION_CATEGORY_OPTIONS, SUGGESTION_CATEGORY_VALUES, SUGGESTIONS_COMPLAINTS_CATEGORY_VALUES, SUGGESTIONS_COMPLAINTS_CREATE_FIELDS, SUGGESTIONS_COMPLAINTS_CREATE_STEP_ORDER, SUGGESTIONS_COMPLAINTS_DESCRIPTION_MAX_CHARS, SUGGESTIONS_COMPLAINTS_MAX_IMAGES, SUGGESTIONS_COMPLAINTS_MAX_VIDEO_LINKS, SUGGESTIONS_COMPLAINTS_SUGGESTION_DESCRIPTION_MIN_CHARS, SUGGESTIONS_COMPLAINTS_TITLE_MAX_CHARS, SUGGESTIONS_COMPLAINTS_TITLE_MIN_CHARS, SUGGESTIONS_COMPLAINTS_TYPE_OPTIONS, SUGGESTIONS_COMPLAINTS_TYPE_VALUES, type SuggestionCategory, type SuggestionsComplaintsCreateStepKey, type SuggestionsComplaintsDraft, type SuggestionsComplaintsType, suggestionCategorySchema, suggestionsComplaintsBodyObjectSchema, suggestionsComplaintsStepValid, suggestionsComplaintsTypeSchema, type UploadedMediaPath, uploadedMediaPathSchema, } from './suggestions-complaints.js';
|
|
42
42
|
export { type CurrentUsernameState, currentUsernameStateSchema, type UpdateUsernameBody, type UpdateUsernameResponse, USERNAME_MAX_LENGTH, USERNAME_MIN_LENGTH, USERNAME_PATTERN, USERNAME_UNAVAILABLE_REASONS, type Username, type UsernameAvailabilityResponse, type UsernameUnavailableReason, updateUsernameBodySchema, updateUsernameResponseSchema, usernameAvailabilityResponseSchema, usernameSchema, usernameUnavailableReasonSchema, } from './username.js';
|
|
43
43
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -62,7 +62,7 @@ export { blockedUsersListResponseSchema, blockedUserWireSchema, COMMUNITY_SETTIN
|
|
|
62
62
|
export { toggleFollowResponseSchema, viewerSocialStateSchema, } from './social.js';
|
|
63
63
|
// ─── Social score (modular SSOT: kinds / categories / milestones /
|
|
64
64
|
// rules / tiers / wire) ───────────────────────────────────────────────
|
|
65
|
-
export { LEADER_ELIGIBILITY_SCORE, leaderboardEntrySchema, MENTEE_MILESTONE_SCORE, milestoneLevel, milestoneProgress, publicScoreSummarySchema,
|
|
65
|
+
export { LEADER_ELIGIBILITY_SCORE, LEADERBOARD_SCOPE_VALUES, leaderboardEntrySchema, leaderboardResponseSchema, leaderboardScopeSchema, MENTEE_MILESTONE_SCORE, milestoneLevel, milestoneProgress, publicScoreSummarySchema,
|
|
66
66
|
// rules + constants + display catalog
|
|
67
67
|
QUALIFYING_UPVOTES, QUALIFYING_UPVOTES_COMMENT, recentScoreEventSchema, SCORE_CATEGORY_I18N, SCORE_CATEGORY_ORDER,
|
|
68
68
|
// categories
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * community-schema — Shared Zod schemas + TypeScript types for the\n * Jansathi hyperlocal community feature (feed, posts, engagement,\n * social graph, groups, settings).\n *\n * Single source of truth consumed by reform-backend and every product\n * frontend. The schemas mirror MongoDB / Mongoose document shapes\n * 1:1 so the same Zod validation runs at the controller boundary on\n * the backend and in the form handlers on the client.\n *\n * Cascade-upward visibility semantics: a viewer whose feed level is L\n * sees posts at L and every BROADER level matching their area lineage.\n * See `./enums.ts#VISIBILITY_LEVEL_VALUES` for the level rank table.\n *\n * @module community-schema\n */\n\n// ─── Area lineage snapshot ─────────────────────────────────────────────────\nexport {\n type AreaLineageSnapshot,\n areaLineageSnapshotSchema,\n} from './area.js';\n\n// ─── Comment ───────────────────────────────────────────────────────────────\nexport {\n type CommunityCommentWire,\n type CreateCommentBody,\n communityCommentWireSchema,\n createCommentBodySchema,\n type UpdateCommentBody,\n updateCommentBodySchema,\n} from './comment.js';\n\n// ─── Communities ───────────────────────────────────────────────────────────\nexport {\n type AddOfficialModeratorBody,\n AREA_PICKER_LEVEL_VALUES,\n type AreaPickerItem,\n type AreaPickerLevel,\n type AreaPickerQuery,\n type AreaPickerResponse,\n addOfficialModeratorBodySchema,\n areaPickerItemSchema,\n areaPickerLevelSchema,\n areaPickerQuerySchema,\n areaPickerResponseSchema,\n COMMUNITY_CATEGORY_VALUES,\n COMMUNITY_DESIGNATION_PRESETS,\n COMMUNITY_DISCOVER_SORT_VALUES,\n COMMUNITY_KIND_VALUES,\n COMMUNITY_MEMBERSHIP_STATUS_VALUES,\n COMMUNITY_REACH_VALUES,\n COMMUNITY_ROLE_VALUES,\n COMMUNITY_TAG_VALUES,\n COMMUNITY_TYPE_VALUES,\n COMMUNITY_VERIFIED_SCOPE_VALUES,\n type CommunityCategory,\n type CommunityCenterCoords,\n type CommunityDesignation,\n type CommunityDesignationPreset,\n type CommunityDiscoverSort,\n type CommunityKind,\n type CommunityListQuery,\n type CommunityListResponse,\n type CommunityMembershipStatus,\n type CommunityMembersListResponse,\n type CommunityMemberWire,\n type CommunityReach,\n type CommunityRole,\n type CommunityTag,\n type CommunityType,\n type CommunityVerifiedScope,\n type CommunityWire,\n type CreateCommunityBody,\n type CreateOfficialCommunityBody,\n communityCategorySchema,\n communityCenterCoordsSchema,\n communityDesignationPresetSchema,\n communityDesignationSchema,\n communityDiscoverSortSchema,\n communityKindSchema,\n communityListQuerySchema,\n communityListResponseSchema,\n communityMembershipStatusSchema,\n communityMembersListResponseSchema,\n communityMemberWireSchema,\n communityReachSchema,\n communityRoleSchema,\n communityTagSchema,\n communityTypeSchema,\n communityVerifiedScopeSchema,\n communityWireSchema,\n createCommunityBodySchema,\n createOfficialCommunityBodySchema,\n type HidePostBody,\n hidePostBodySchema,\n type JoinCommunityResponse,\n joinCommunityResponseSchema,\n OFFICIAL_COMMUNITY_AREA_KIND_VALUES,\n type OfficialCommunityAreaKind,\n officialCommunityAreaKindSchema,\n type SetMemberDesignationBody,\n type SetOfficialRepresentativeBody,\n setMemberDesignationBodySchema,\n setOfficialRepresentativeBodySchema,\n type UpdateCommunityBody,\n type UpdateMemberRoleBody,\n updateCommunityBodySchema,\n updateMemberRoleBodySchema,\n type VerifyCommunityBody,\n verifyCommunityBodySchema,\n} from './community.js';\n\n// ─── Constants ─────────────────────────────────────────────────────────────\nexport {\n COMMENT_MAX_BODY_CHARS,\n COMMENTS_PAGE_SIZE,\n COMMUNITIES_PAGE_SIZE,\n COMMUNITY_DESCRIPTION_MAX_CHARS,\n COMMUNITY_DESIGNATION_CUSTOM_MAX_CHARS,\n COMMUNITY_DESIGNATION_CUSTOM_MIN_CHARS,\n COMMUNITY_DESIGNATION_CUSTOM_PATTERN,\n COMMUNITY_HYPERLOCAL_RADIUS_KM,\n COMMUNITY_MAX_TAGS,\n COMMUNITY_MEMBERS_PAGE_SIZE,\n COMMUNITY_NAME_MAX_CHARS,\n COMMUNITY_NAME_MIN_CHARS,\n COMMUNITY_SLUG_MAX_CHARS,\n COMMUNITY_SLUG_MIN_CHARS,\n COMMUNITY_SLUG_PATTERN,\n CROWDFUNDING_BANK_LINK_DEADLINE_DAYS,\n CROWDFUNDING_BENEFICIARY_NAME_MAX_CHARS,\n CROWDFUNDING_BENEFICIARY_RELATION_MAX_CHARS,\n CROWDFUNDING_DESCRIPTION_MAX_CHARS,\n CROWDFUNDING_DESCRIPTION_MIN_CHARS,\n CROWDFUNDING_MAX_DONATION_INR,\n CROWDFUNDING_MAX_DURATION_DAYS,\n CROWDFUNDING_MAX_GOAL_INR,\n CROWDFUNDING_MAX_IMAGES,\n CROWDFUNDING_MAX_PROOF_DOCS,\n CROWDFUNDING_MAX_SUPPORTING_DOCS,\n CROWDFUNDING_MIN_DURATION_DAYS,\n CROWDFUNDING_MIN_GOAL_INR,\n CROWDFUNDING_MIN_PROOF_DOCS,\n CROWDFUNDING_PAGE_SIZE,\n CROWDFUNDING_PROOF_DOC_DESCRIPTION_MAX_CHARS,\n CROWDFUNDING_PROOF_DOC_DESCRIPTION_MIN_CHARS,\n CROWDFUNDING_REJECTION_REASON_MAX_CHARS,\n CROWDFUNDING_REJECTION_REASON_MIN_CHARS,\n CROWDFUNDING_TERMS_VERSION,\n CROWDFUNDING_TITLE_MAX_CHARS,\n CROWDFUNDING_TITLE_MIN_CHARS,\n EDIT_GRACE_WINDOW_MS,\n FEED_PAGE_SIZE,\n GROUP_MAX_MEMBERS,\n GROUP_NAME_MAX_CHARS,\n GROUP_NAME_MIN_CHARS,\n PEOPLE_PAGE_SIZE,\n POLL_DURATION_PRESETS_MS,\n POLL_MAX_DURATION_MS,\n POLL_MAX_OPTIONS,\n POLL_MIN_DURATION_MS,\n POLL_MIN_OPTIONS,\n POLL_OPTION_MAX_CHARS,\n POLL_OPTION_MIN_CHARS,\n POLL_QUESTION_MAX_CHARS,\n POLL_QUESTION_MIN_CHARS,\n POLLS_PAGE_SIZE,\n POST_MAX_BODY_CHARS,\n POST_MAX_IMAGE_BYTES,\n POST_MAX_IMAGES,\n POST_MAX_VIDEO_BYTES,\n POST_MAX_VIDEO_SECONDS,\n POST_MAX_VIDEOS,\n PROFILE_MAX_BIO_CHARS,\n REPLIES_PRELOAD_COUNT,\n} from './constants.js';\n// ─── Create-composer config (shared types) ────────────────────────────────────\nexport {\n buildFieldOptions,\n type CreateFieldConfig,\n type CreateFieldOption,\n} from './create-form-config.js';\n// ─── Crowdfunding ──────────────────────────────────────────────────────────\nexport {\n type ApproveCrowdfundingBody,\n type AttestCrowdfundingDonationBody,\n approveCrowdfundingBodySchema,\n attestCrowdfundingDonationBodySchema,\n type CommunityCrowdfundingWire,\n CROWDFUNDING_AUDIENCE_OPTIONS,\n CROWDFUNDING_AUDIENCE_VALUES,\n CROWDFUNDING_CATEGORY_OPTIONS,\n CROWDFUNDING_CATEGORY_VALUES,\n CROWDFUNDING_DONATION_STATE_VALUES,\n CROWDFUNDING_ORG_KIND_OPTIONS,\n CROWDFUNDING_ORG_KIND_VALUES,\n CROWDFUNDING_PROOF_DOC_TYPE_VALUES,\n CROWDFUNDING_RAZORPAY_ACCOUNT_STATUS_VALUES,\n CROWDFUNDING_STATUS_VALUES,\n type CreateCrowdfundingBody,\n type CrowdfundingAudience,\n type CrowdfundingCategory,\n type CrowdfundingDonationState,\n type CrowdfundingDonationWire,\n type CrowdfundingFeedItem,\n type CrowdfundingOrgKind,\n type CrowdfundingPayment,\n type CrowdfundingProofDocType,\n type CrowdfundingProofDocumentWire,\n type CrowdfundingRazorpayAccountStatus,\n type CrowdfundingRazorpayAccountWire,\n type CrowdfundingStatus,\n type CrowdfundingVerification,\n type CrowdfundingVerificationStage,\n type CrowdfundingVisibility,\n communityCrowdfundingWireSchema,\n createCrowdfundingBodySchema,\n crowdfundingAudienceSchema,\n crowdfundingCategorySchema,\n crowdfundingDonationStateSchema,\n crowdfundingDonationWireSchema,\n crowdfundingFeedItemSchema,\n crowdfundingOrgKindSchema,\n crowdfundingPaymentSchema,\n crowdfundingProofDocTypeSchema,\n crowdfundingProofDocumentWireSchema,\n crowdfundingRazorpayAccountStatusSchema,\n crowdfundingRazorpayAccountWireSchema,\n crowdfundingStatusSchema,\n crowdfundingVerificationSchema,\n crowdfundingVerificationStageSchema,\n crowdfundingVisibilitySchema,\n type ListCrowdfundingDonationsQuery,\n type ListMyCrowdfundingDonationsQuery,\n listCrowdfundingDonationsQuerySchema,\n listMyCrowdfundingDonationsQuerySchema,\n type RejectCrowdfundingBody,\n type RequestRerunCrowdfundingBody,\n rejectCrowdfundingBodySchema,\n requestRerunCrowdfundingBodySchema,\n type UpdateCrowdfundingBody,\n type UploadCrowdfundingReceiptBody,\n updateCrowdfundingBodySchema,\n uploadCrowdfundingReceiptBodySchema,\n} from './crowdfunding.js';\n// ─── Donate Item (create) ────────────────────────────────────────────────────\nexport {\n type CreateDonateItemBody,\n createDonateItemBodySchema,\n DONATE_ITEM_CATEGORY_OPTIONS,\n DONATE_ITEM_CATEGORY_VALUES,\n DONATE_ITEM_CONDITION_OPTIONS,\n DONATE_ITEM_CREATE_FIELDS,\n DONATE_ITEM_CREATE_STEP_ORDER,\n DONATE_ITEM_DESCRIPTION_MAX_CHARS,\n DONATE_ITEM_MAX_ESTIMATED_WORTH,\n DONATE_ITEM_MAX_PHOTOS,\n DONATE_ITEM_NAME_MAX_CHARS,\n DONATE_ITEM_NAME_MIN_CHARS,\n type DonateItemCategory,\n type DonateItemCreateStepKey,\n type DonateItemDraft,\n type DonateItemPickupAddress,\n type DonateItemPickupCoords,\n donateItemCategorySchema,\n donateItemPickupAddressSchema,\n donateItemPickupCoordsSchema,\n donateItemStepValid,\n} from './donate-item.js';\n// ─── Engagement (vote + reactions + bookmark) ─────────────────────────────\nexport {\n type SetReactionBody,\n type SetReactionResponse,\n type SetVoteBody,\n type SetVoteResponse,\n setReactionBodySchema,\n setReactionResponseSchema,\n setVoteBodySchema,\n setVoteResponseSchema,\n type ToggleBookmarkResponse,\n toggleBookmarkResponseSchema,\n VOTE_VALUES,\n type VoteValue,\n voteValueSchema,\n} from './engagement.js';\n// ─── Enums ─────────────────────────────────────────────────────────────────\nexport {\n CONTENT_KIND_VALUES,\n type ContentKind,\n contentKindSchema,\n FEED_SORT_VALUES,\n type FeedSort,\n feedSortSchema,\n PROFILE_PRIVACY_VALUES,\n type ProfilePrivacy,\n profilePrivacySchema,\n REACTION_TYPE_VALUES,\n REPORT_REASON_VALUES,\n REPORT_STATUS_VALUES,\n type ReactionType,\n type ReportReason,\n type ReportStatus,\n reactionTypeSchema,\n reportReasonSchema,\n reportStatusSchema,\n VISIBILITY_LEVEL_RANK,\n VISIBILITY_LEVEL_VALUES,\n type VisibilityLevel,\n visibilityLevelSchema,\n} from './enums.js';\n// ─── Event (\"Organise an Event\") ─────────────────────────────────────────────\nexport {\n type CommunityEventWire,\n type CreateCommunityEventBody,\n communityEventWireSchema,\n createCommunityEventBodySchema,\n type DecideEventAttendeeBody,\n decideEventAttendeeBodySchema,\n EVENT_AGE_AUDIENCE_OPTIONS,\n EVENT_AGE_AUDIENCE_VALUES,\n EVENT_APPROVAL_MODE_OPTIONS,\n EVENT_APPROVAL_MODE_VALUES,\n EVENT_ATTENDEE_STATUS_VALUES,\n EVENT_AUDIENCE_LEVEL_OPTIONS,\n EVENT_AUDIENCE_LEVEL_VALUES,\n EVENT_CATEGORY_OPTIONS,\n EVENT_CATEGORY_VALUES,\n EVENT_CONTACT_PHONE_MAX_CHARS,\n EVENT_CREATE_FIELDS,\n EVENT_CREATE_STEP_ORDER,\n EVENT_DESCRIPTION_MAX_CHARS,\n EVENT_DESCRIPTION_MIN_CHARS,\n EVENT_MAX_CAPACITY,\n EVENT_MAX_ENTRY_FEE_INR,\n EVENT_MAX_IMAGES,\n EVENT_MIN_CAPACITY,\n EVENT_MODE_OPTIONS,\n EVENT_MODE_VALUES,\n EVENT_STATUS_VALUES,\n EVENT_TITLE_MAX_CHARS,\n EVENT_TITLE_MIN_CHARS,\n EVENT_VIEWER_ATTEND_STATUS_VALUES,\n EVENT_WHAT_TO_BRING_MAX_CHARS,\n type EventAgeAudience,\n type EventApprovalMode,\n type EventAttendeeStatus,\n type EventAttendeesListResponse,\n type EventAttendeeWire,\n type EventAudienceLevel,\n type EventCategory,\n type EventCreateStepKey,\n type EventDraft,\n type EventFeedItem,\n type EventLocation,\n type EventMode,\n type EventStatus,\n type EventViewerAttendStatus,\n eventAgeAudienceSchema,\n eventApprovalModeSchema,\n eventAttendeeStatusSchema,\n eventAttendeesListResponseSchema,\n eventAttendeeWireSchema,\n eventAudienceLevelSchema,\n eventCategorySchema,\n eventFeedItemSchema,\n eventLocationSchema,\n eventModeSchema,\n eventStatusSchema,\n eventStepValid,\n eventViewerAttendStatusSchema,\n type UpdateCommunityEventBody,\n updateCommunityEventBodySchema,\n} from './event.js';\n// ─── Feed (polymorphic union) ──────────────────────────────────────────────\nexport {\n DONATE_ITEM_CONDITION_VALUES,\n DONATE_ITEM_STATUS_VALUES,\n type DonateItemCondition,\n type DonateItemFeedItem,\n type DonateItemStatus,\n donateAuditAtSchema,\n donateAuditByAtSchema,\n donateDonatedToSchema,\n donateItemConditionSchema,\n donateItemFeedItemSchema,\n donateItemStatusSchema,\n type FeedItem,\n type FeedQueryParams,\n type FeedResponse,\n feedItemSchema,\n feedQueryParamsSchema,\n feedResponseSchema,\n LOST_FOUND_CATEGORY_VALUES,\n LOST_FOUND_STATUS_VALUES,\n type LostFoundCategory,\n type LostFoundFeedItem,\n type LostFoundLocation,\n type LostFoundStatus,\n type LostFoundTimeRange,\n lostFoundCategorySchema,\n lostFoundFeedItemSchema,\n lostFoundLocationSchema,\n lostFoundStatusSchema,\n lostFoundTimeRangeSchema,\n SUGGESTIONS_COMPLAINTS_PRIORITY_VALUES,\n SUGGESTIONS_COMPLAINTS_STATUS_VALUES,\n type SuggestionsComplaintsFeedItem,\n type SuggestionsComplaintsLocation,\n type SuggestionsComplaintsPriority,\n type SuggestionsComplaintsStatus,\n suggestionsComplaintsAudioSchema,\n suggestionsComplaintsFeedItemSchema,\n suggestionsComplaintsLocationSchema,\n suggestionsComplaintsOfficerResponseSchema,\n suggestionsComplaintsPrioritySchema,\n suggestionsComplaintsStatusSchema,\n suggestionsComplaintsVideoSchema,\n} from './feed.js';\n// ─── Groups ────────────────────────────────────────────────────────────────\nexport {\n type AddGroupMembersBody,\n addGroupMembersBodySchema,\n type CommunityGroupWire,\n type CommunityGroupWithMembers,\n type CreateGroupBody,\n communityGroupWireSchema,\n communityGroupWithMembersSchema,\n createGroupBodySchema,\n type GroupMembersListResponse,\n type GroupMemberWire,\n type GroupRole,\n type GroupsListResponse,\n groupMembersListResponseSchema,\n groupMemberWireSchema,\n groupRoleSchema,\n groupsListResponseSchema,\n type UpdateGroupBody,\n updateGroupBodySchema,\n} from './group.js';\n// ─── Link preview (auto-extracted URL embed) ──────────────────────────────\nexport {\n LINK_PREVIEW_KIND_VALUES,\n type LinkPreview,\n type LinkPreviewKind,\n linkPreviewKindSchema,\n linkPreviewSchema,\n} from './link-preview.js';\n// ─── Lost & Found (create) ───────────────────────────────────────────────────\nexport {\n type CreateLostFoundReportBody,\n createLostFoundReportBodySchema,\n LOST_FOUND_CATEGORY_OPTIONS,\n LOST_FOUND_COLLECTION_POINT_MAX_CHARS,\n LOST_FOUND_CONTACT_PHONE_MAX_CHARS,\n LOST_FOUND_CREATE_FIELDS,\n LOST_FOUND_CREATE_STEP_ORDER,\n LOST_FOUND_DESCRIPTION_MAX_CHARS,\n LOST_FOUND_DESCRIPTION_MIN_CHARS,\n LOST_FOUND_MAX_IMAGES,\n LOST_FOUND_REWARD_MAX_CHARS,\n LOST_FOUND_TITLE_MAX_CHARS,\n LOST_FOUND_TITLE_MIN_CHARS,\n LOST_FOUND_TYPE_OPTIONS,\n LOST_FOUND_TYPE_VALUES,\n type LostFoundCreateStepKey,\n type LostFoundDraft,\n type LostFoundType,\n lostFoundStepValid,\n lostFoundTypeSchema,\n} from './lost-found.js';\n// ─── Media ─────────────────────────────────────────────────────────────────\nexport {\n type PostImage,\n type PostVideo,\n postImageSchema,\n postVideoSchema,\n} from './media.js';\n// ─── Notifications ─────────────────────────────────────────────────────────\nexport {\n type ListNotificationsQuery,\n type ListNotificationsResponse,\n listNotificationsQuerySchema,\n listNotificationsResponseSchema,\n type MarkAllNotificationsReadBody,\n markAllNotificationsReadBodySchema,\n NOTIFICATION_CATEGORY_VALUES,\n NOTIFICATION_CHANNEL_VALUES,\n NOTIFICATION_PRIORITY_VALUES,\n NOTIFICATION_SOURCE_REF_KIND_VALUES,\n type NotificationActor,\n type NotificationCategory,\n type NotificationChannel,\n type NotificationPriority,\n type NotificationReadAllEvent,\n type NotificationReadEvent,\n type NotificationSourceRef,\n type NotificationSourceRefKind,\n type NotificationUnreadCount,\n type NotificationWire,\n notificationActorSchema,\n notificationCategorySchema,\n notificationChannelSchema,\n notificationPrioritySchema,\n notificationReadAllEventSchema,\n notificationReadEventSchema,\n notificationSourceRefKindSchema,\n notificationSourceRefSchema,\n notificationUnreadCountSchema,\n notificationWireSchema,\n REFORM_NOTIFICATION_SOCKET_EVENTS,\n type ReformNotificationSocketEvent,\n} from './notification.js';\n// ─── Poll ──────────────────────────────────────────────────────────────────\nexport {\n type CastVoteBody,\n type CommunityPollFeedItem,\n type CommunityPollWire,\n type CreatePollBody,\n castVoteBodySchema,\n communityPollFeedItemSchema,\n communityPollWireSchema,\n createPollBodySchema,\n POLL_RESULTS_VISIBILITY_VALUES,\n type PollOptionInput,\n type PollOptionWire,\n type PollResultsVisibility,\n pollOptionInputSchema,\n pollOptionWireSchema,\n pollResultsVisibilitySchema,\n type VoteResponse,\n voteResponseSchema,\n} from './poll.js';\n// ─── Post ──────────────────────────────────────────────────────────────────\nexport {\n type CommunityPostWire,\n type CreatePostBody,\n communityPostWireSchema,\n createPostBodySchema,\n type PostAuthorSnapshot,\n postAuthorSnapshotSchema,\n type RepostedSource,\n repostedSourceSchema,\n type UpdatePostBody,\n updatePostBodySchema,\n} from './post.js';\n// ─── Profile + People list ─────────────────────────────────────────────────\nexport {\n PEOPLE_LIST_FILTER_DEFAULT,\n PEOPLE_LIST_FILTER_VALUES,\n type PeopleListFilter,\n type PeopleListItem,\n type PeopleListResponse,\n type PeopleQueryParams,\n type ProfileMutuals,\n type PublicProfileWire,\n peopleListFilterSchema,\n peopleListItemSchema,\n peopleListResponseSchema,\n peopleQueryParamsSchema,\n profileMutualsSchema,\n publicProfileWireSchema,\n} from './profile.js';\n// ─── Reports (moderation) ──────────────────────────────────────────────────\nexport {\n type ReportContentBody,\n type ReportContentKind,\n type ReportRecordWire,\n type ReportSubmissionResponse,\n type ReportUserBody,\n reportContentBodySchema,\n reportContentKindSchema,\n reportRecordWireSchema,\n reportSubmissionResponseSchema,\n reportUserBodySchema,\n} from './report.js';\n// ─── Repost (quote / amplify) ──────────────────────────────────────────────\nexport {\n type CreateRepostBody,\n type CreateRepostResponse,\n createRepostBodySchema,\n createRepostResponseSchema,\n} from './repost.js';\n// ─── Settings ──────────────────────────────────────────────────────────────\nexport {\n type BlockedUsersListResponse,\n type BlockedUserWire,\n blockedUsersListResponseSchema,\n blockedUserWireSchema,\n COMMUNITY_SETTINGS_DEFAULTS,\n type CommunitySettingsWire,\n communitySettingsWireSchema,\n type UpdateCommunitySettingsBody,\n updateCommunitySettingsBodySchema,\n} from './settings.js';\n// ─── Social (follow) ───────────────────────────────────────────────────────\nexport {\n type ToggleFollowResponse,\n toggleFollowResponseSchema,\n type ViewerSocialState,\n viewerSocialStateSchema,\n} from './social.js';\n// ─── Social score (modular SSOT: kinds / categories / milestones /\n// rules / tiers / wire) ───────────────────────────────────────────────\nexport {\n LEADER_ELIGIBILITY_SCORE,\n type LeaderboardEntry,\n leaderboardEntrySchema,\n MENTEE_MILESTONE_SCORE,\n type MilestoneProgress,\n milestoneLevel,\n milestoneProgress,\n type PublicScoreSummary,\n publicScoreSummarySchema,\n // rules + constants + display catalog\n QUALIFYING_UPVOTES,\n QUALIFYING_UPVOTES_COMMENT,\n // wire contracts\n type RecentScoreEvent,\n recentScoreEventSchema,\n SCORE_CATEGORY_I18N,\n SCORE_CATEGORY_ORDER,\n // categories\n SCORE_CATEGORY_VALUES,\n // kinds\n SCORE_KIND_VALUES,\n SCORE_RULE_CATALOG,\n SCORE_RULES,\n type ScoreBreakdown,\n type ScoreByCategory,\n type ScoreCap,\n type ScoreCategory,\n type ScoreCategoryI18n,\n type ScoreKind,\n type ScoreRule,\n type ScoreRuleGroup,\n type ScoreRuleRef,\n // milestones\n SOCIAL_SCORE_MILESTONES,\n // tiers (legacy compat)\n SOCIAL_SCORE_TIER_NAMES,\n SOCIAL_SCORE_TIERS,\n type SocialScoreTier,\n type SocialScoreTierName,\n scoreBreakdownSchema,\n scoreByCategorySchema,\n scoreCategorySchema,\n scoreKindSchema,\n tierFromSocialScore,\n} from './social-score/index.js';\n\n// ─── Suggestions & Complaints (create) ──────────────────────────────────────\nexport {\n COMPLAINT_CATEGORY_OPTIONS,\n COMPLAINT_CATEGORY_VALUES,\n type ComplaintCategory,\n type CreateSuggestionsComplaintsBody,\n complaintCategorySchema,\n createSuggestionsComplaintsBodySchema,\n SUGGESTION_CATEGORY_OPTIONS,\n SUGGESTION_CATEGORY_VALUES,\n SUGGESTIONS_COMPLAINTS_CATEGORY_VALUES,\n SUGGESTIONS_COMPLAINTS_CREATE_FIELDS,\n SUGGESTIONS_COMPLAINTS_CREATE_STEP_ORDER,\n SUGGESTIONS_COMPLAINTS_DESCRIPTION_MAX_CHARS,\n SUGGESTIONS_COMPLAINTS_MAX_IMAGES,\n SUGGESTIONS_COMPLAINTS_MAX_VIDEO_LINKS,\n SUGGESTIONS_COMPLAINTS_SUGGESTION_DESCRIPTION_MIN_CHARS,\n SUGGESTIONS_COMPLAINTS_TITLE_MAX_CHARS,\n SUGGESTIONS_COMPLAINTS_TITLE_MIN_CHARS,\n SUGGESTIONS_COMPLAINTS_TYPE_OPTIONS,\n SUGGESTIONS_COMPLAINTS_TYPE_VALUES,\n type SuggestionCategory,\n type SuggestionsComplaintsCreateStepKey,\n type SuggestionsComplaintsDraft,\n type SuggestionsComplaintsType,\n suggestionCategorySchema,\n suggestionsComplaintsBodyObjectSchema,\n suggestionsComplaintsStepValid,\n suggestionsComplaintsTypeSchema,\n type UploadedMediaPath,\n uploadedMediaPathSchema,\n} from './suggestions-complaints.js';\n\n// ─── Username (URL handle + change / availability) ────────────────────────\nexport {\n type CurrentUsernameState,\n currentUsernameStateSchema,\n type UpdateUsernameBody,\n type UpdateUsernameResponse,\n USERNAME_MAX_LENGTH,\n USERNAME_MIN_LENGTH,\n USERNAME_PATTERN,\n USERNAME_UNAVAILABLE_REASONS,\n type Username,\n type UsernameAvailabilityResponse,\n type UsernameUnavailableReason,\n updateUsernameBodySchema,\n updateUsernameResponseSchema,\n usernameAvailabilityResponseSchema,\n usernameSchema,\n usernameUnavailableReasonSchema,\n} from './username.js';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * community-schema — Shared Zod schemas + TypeScript types for the\n * Jansathi hyperlocal community feature (feed, posts, engagement,\n * social graph, groups, settings).\n *\n * Single source of truth consumed by reform-backend and every product\n * frontend. The schemas mirror MongoDB / Mongoose document shapes\n * 1:1 so the same Zod validation runs at the controller boundary on\n * the backend and in the form handlers on the client.\n *\n * Cascade-upward visibility semantics: a viewer whose feed level is L\n * sees posts at L and every BROADER level matching their area lineage.\n * See `./enums.ts#VISIBILITY_LEVEL_VALUES` for the level rank table.\n *\n * @module community-schema\n */\n\n// ─── Area lineage snapshot ─────────────────────────────────────────────────\nexport {\n type AreaLineageSnapshot,\n areaLineageSnapshotSchema,\n} from './area.js';\n\n// ─── Comment ───────────────────────────────────────────────────────────────\nexport {\n type CommunityCommentWire,\n type CreateCommentBody,\n communityCommentWireSchema,\n createCommentBodySchema,\n type UpdateCommentBody,\n updateCommentBodySchema,\n} from './comment.js';\n\n// ─── Communities ───────────────────────────────────────────────────────────\nexport {\n type AddOfficialModeratorBody,\n AREA_PICKER_LEVEL_VALUES,\n type AreaPickerItem,\n type AreaPickerLevel,\n type AreaPickerQuery,\n type AreaPickerResponse,\n addOfficialModeratorBodySchema,\n areaPickerItemSchema,\n areaPickerLevelSchema,\n areaPickerQuerySchema,\n areaPickerResponseSchema,\n COMMUNITY_CATEGORY_VALUES,\n COMMUNITY_DESIGNATION_PRESETS,\n COMMUNITY_DISCOVER_SORT_VALUES,\n COMMUNITY_KIND_VALUES,\n COMMUNITY_MEMBERSHIP_STATUS_VALUES,\n COMMUNITY_REACH_VALUES,\n COMMUNITY_ROLE_VALUES,\n COMMUNITY_TAG_VALUES,\n COMMUNITY_TYPE_VALUES,\n COMMUNITY_VERIFIED_SCOPE_VALUES,\n type CommunityCategory,\n type CommunityCenterCoords,\n type CommunityDesignation,\n type CommunityDesignationPreset,\n type CommunityDiscoverSort,\n type CommunityKind,\n type CommunityListQuery,\n type CommunityListResponse,\n type CommunityMembershipStatus,\n type CommunityMembersListResponse,\n type CommunityMemberWire,\n type CommunityReach,\n type CommunityRole,\n type CommunityTag,\n type CommunityType,\n type CommunityVerifiedScope,\n type CommunityWire,\n type CreateCommunityBody,\n type CreateOfficialCommunityBody,\n communityCategorySchema,\n communityCenterCoordsSchema,\n communityDesignationPresetSchema,\n communityDesignationSchema,\n communityDiscoverSortSchema,\n communityKindSchema,\n communityListQuerySchema,\n communityListResponseSchema,\n communityMembershipStatusSchema,\n communityMembersListResponseSchema,\n communityMemberWireSchema,\n communityReachSchema,\n communityRoleSchema,\n communityTagSchema,\n communityTypeSchema,\n communityVerifiedScopeSchema,\n communityWireSchema,\n createCommunityBodySchema,\n createOfficialCommunityBodySchema,\n type HidePostBody,\n hidePostBodySchema,\n type JoinCommunityResponse,\n joinCommunityResponseSchema,\n OFFICIAL_COMMUNITY_AREA_KIND_VALUES,\n type OfficialCommunityAreaKind,\n officialCommunityAreaKindSchema,\n type SetMemberDesignationBody,\n type SetOfficialRepresentativeBody,\n setMemberDesignationBodySchema,\n setOfficialRepresentativeBodySchema,\n type UpdateCommunityBody,\n type UpdateMemberRoleBody,\n updateCommunityBodySchema,\n updateMemberRoleBodySchema,\n type VerifyCommunityBody,\n verifyCommunityBodySchema,\n} from './community.js';\n\n// ─── Constants ─────────────────────────────────────────────────────────────\nexport {\n COMMENT_MAX_BODY_CHARS,\n COMMENTS_PAGE_SIZE,\n COMMUNITIES_PAGE_SIZE,\n COMMUNITY_DESCRIPTION_MAX_CHARS,\n COMMUNITY_DESIGNATION_CUSTOM_MAX_CHARS,\n COMMUNITY_DESIGNATION_CUSTOM_MIN_CHARS,\n COMMUNITY_DESIGNATION_CUSTOM_PATTERN,\n COMMUNITY_HYPERLOCAL_RADIUS_KM,\n COMMUNITY_MAX_TAGS,\n COMMUNITY_MEMBERS_PAGE_SIZE,\n COMMUNITY_NAME_MAX_CHARS,\n COMMUNITY_NAME_MIN_CHARS,\n COMMUNITY_SLUG_MAX_CHARS,\n COMMUNITY_SLUG_MIN_CHARS,\n COMMUNITY_SLUG_PATTERN,\n CROWDFUNDING_BANK_LINK_DEADLINE_DAYS,\n CROWDFUNDING_BENEFICIARY_NAME_MAX_CHARS,\n CROWDFUNDING_BENEFICIARY_RELATION_MAX_CHARS,\n CROWDFUNDING_DESCRIPTION_MAX_CHARS,\n CROWDFUNDING_DESCRIPTION_MIN_CHARS,\n CROWDFUNDING_MAX_DONATION_INR,\n CROWDFUNDING_MAX_DURATION_DAYS,\n CROWDFUNDING_MAX_GOAL_INR,\n CROWDFUNDING_MAX_IMAGES,\n CROWDFUNDING_MAX_PROOF_DOCS,\n CROWDFUNDING_MAX_SUPPORTING_DOCS,\n CROWDFUNDING_MIN_DURATION_DAYS,\n CROWDFUNDING_MIN_GOAL_INR,\n CROWDFUNDING_MIN_PROOF_DOCS,\n CROWDFUNDING_PAGE_SIZE,\n CROWDFUNDING_PROOF_DOC_DESCRIPTION_MAX_CHARS,\n CROWDFUNDING_PROOF_DOC_DESCRIPTION_MIN_CHARS,\n CROWDFUNDING_REJECTION_REASON_MAX_CHARS,\n CROWDFUNDING_REJECTION_REASON_MIN_CHARS,\n CROWDFUNDING_TERMS_VERSION,\n CROWDFUNDING_TITLE_MAX_CHARS,\n CROWDFUNDING_TITLE_MIN_CHARS,\n EDIT_GRACE_WINDOW_MS,\n FEED_PAGE_SIZE,\n GROUP_MAX_MEMBERS,\n GROUP_NAME_MAX_CHARS,\n GROUP_NAME_MIN_CHARS,\n PEOPLE_PAGE_SIZE,\n POLL_DURATION_PRESETS_MS,\n POLL_MAX_DURATION_MS,\n POLL_MAX_OPTIONS,\n POLL_MIN_DURATION_MS,\n POLL_MIN_OPTIONS,\n POLL_OPTION_MAX_CHARS,\n POLL_OPTION_MIN_CHARS,\n POLL_QUESTION_MAX_CHARS,\n POLL_QUESTION_MIN_CHARS,\n POLLS_PAGE_SIZE,\n POST_MAX_BODY_CHARS,\n POST_MAX_IMAGE_BYTES,\n POST_MAX_IMAGES,\n POST_MAX_VIDEO_BYTES,\n POST_MAX_VIDEO_SECONDS,\n POST_MAX_VIDEOS,\n PROFILE_MAX_BIO_CHARS,\n REPLIES_PRELOAD_COUNT,\n} from './constants.js';\n// ─── Create-composer config (shared types) ────────────────────────────────────\nexport {\n buildFieldOptions,\n type CreateFieldConfig,\n type CreateFieldOption,\n} from './create-form-config.js';\n// ─── Crowdfunding ──────────────────────────────────────────────────────────\nexport {\n type ApproveCrowdfundingBody,\n type AttestCrowdfundingDonationBody,\n approveCrowdfundingBodySchema,\n attestCrowdfundingDonationBodySchema,\n type CommunityCrowdfundingWire,\n CROWDFUNDING_AUDIENCE_OPTIONS,\n CROWDFUNDING_AUDIENCE_VALUES,\n CROWDFUNDING_CATEGORY_OPTIONS,\n CROWDFUNDING_CATEGORY_VALUES,\n CROWDFUNDING_DONATION_STATE_VALUES,\n CROWDFUNDING_ORG_KIND_OPTIONS,\n CROWDFUNDING_ORG_KIND_VALUES,\n CROWDFUNDING_PROOF_DOC_TYPE_VALUES,\n CROWDFUNDING_RAZORPAY_ACCOUNT_STATUS_VALUES,\n CROWDFUNDING_STATUS_VALUES,\n type CreateCrowdfundingBody,\n type CrowdfundingAudience,\n type CrowdfundingCategory,\n type CrowdfundingDonationState,\n type CrowdfundingDonationWire,\n type CrowdfundingFeedItem,\n type CrowdfundingOrgKind,\n type CrowdfundingPayment,\n type CrowdfundingProofDocType,\n type CrowdfundingProofDocumentWire,\n type CrowdfundingRazorpayAccountStatus,\n type CrowdfundingRazorpayAccountWire,\n type CrowdfundingStatus,\n type CrowdfundingVerification,\n type CrowdfundingVerificationStage,\n type CrowdfundingVisibility,\n communityCrowdfundingWireSchema,\n createCrowdfundingBodySchema,\n crowdfundingAudienceSchema,\n crowdfundingCategorySchema,\n crowdfundingDonationStateSchema,\n crowdfundingDonationWireSchema,\n crowdfundingFeedItemSchema,\n crowdfundingOrgKindSchema,\n crowdfundingPaymentSchema,\n crowdfundingProofDocTypeSchema,\n crowdfundingProofDocumentWireSchema,\n crowdfundingRazorpayAccountStatusSchema,\n crowdfundingRazorpayAccountWireSchema,\n crowdfundingStatusSchema,\n crowdfundingVerificationSchema,\n crowdfundingVerificationStageSchema,\n crowdfundingVisibilitySchema,\n type ListCrowdfundingDonationsQuery,\n type ListMyCrowdfundingDonationsQuery,\n listCrowdfundingDonationsQuerySchema,\n listMyCrowdfundingDonationsQuerySchema,\n type RejectCrowdfundingBody,\n type RequestRerunCrowdfundingBody,\n rejectCrowdfundingBodySchema,\n requestRerunCrowdfundingBodySchema,\n type UpdateCrowdfundingBody,\n type UploadCrowdfundingReceiptBody,\n updateCrowdfundingBodySchema,\n uploadCrowdfundingReceiptBodySchema,\n} from './crowdfunding.js';\n// ─── Donate Item (create) ────────────────────────────────────────────────────\nexport {\n type CreateDonateItemBody,\n createDonateItemBodySchema,\n DONATE_ITEM_CATEGORY_OPTIONS,\n DONATE_ITEM_CATEGORY_VALUES,\n DONATE_ITEM_CONDITION_OPTIONS,\n DONATE_ITEM_CREATE_FIELDS,\n DONATE_ITEM_CREATE_STEP_ORDER,\n DONATE_ITEM_DESCRIPTION_MAX_CHARS,\n DONATE_ITEM_MAX_ESTIMATED_WORTH,\n DONATE_ITEM_MAX_PHOTOS,\n DONATE_ITEM_NAME_MAX_CHARS,\n DONATE_ITEM_NAME_MIN_CHARS,\n type DonateItemCategory,\n type DonateItemCreateStepKey,\n type DonateItemDraft,\n type DonateItemPickupAddress,\n type DonateItemPickupCoords,\n donateItemCategorySchema,\n donateItemPickupAddressSchema,\n donateItemPickupCoordsSchema,\n donateItemStepValid,\n} from './donate-item.js';\n// ─── Engagement (vote + reactions + bookmark) ─────────────────────────────\nexport {\n type SetReactionBody,\n type SetReactionResponse,\n type SetVoteBody,\n type SetVoteResponse,\n setReactionBodySchema,\n setReactionResponseSchema,\n setVoteBodySchema,\n setVoteResponseSchema,\n type ToggleBookmarkResponse,\n toggleBookmarkResponseSchema,\n VOTE_VALUES,\n type VoteValue,\n voteValueSchema,\n} from './engagement.js';\n// ─── Enums ─────────────────────────────────────────────────────────────────\nexport {\n CONTENT_KIND_VALUES,\n type ContentKind,\n contentKindSchema,\n FEED_SORT_VALUES,\n type FeedSort,\n feedSortSchema,\n PROFILE_PRIVACY_VALUES,\n type ProfilePrivacy,\n profilePrivacySchema,\n REACTION_TYPE_VALUES,\n REPORT_REASON_VALUES,\n REPORT_STATUS_VALUES,\n type ReactionType,\n type ReportReason,\n type ReportStatus,\n reactionTypeSchema,\n reportReasonSchema,\n reportStatusSchema,\n VISIBILITY_LEVEL_RANK,\n VISIBILITY_LEVEL_VALUES,\n type VisibilityLevel,\n visibilityLevelSchema,\n} from './enums.js';\n// ─── Event (\"Organise an Event\") ─────────────────────────────────────────────\nexport {\n type CommunityEventWire,\n type CreateCommunityEventBody,\n communityEventWireSchema,\n createCommunityEventBodySchema,\n type DecideEventAttendeeBody,\n decideEventAttendeeBodySchema,\n EVENT_AGE_AUDIENCE_OPTIONS,\n EVENT_AGE_AUDIENCE_VALUES,\n EVENT_APPROVAL_MODE_OPTIONS,\n EVENT_APPROVAL_MODE_VALUES,\n EVENT_ATTENDEE_STATUS_VALUES,\n EVENT_AUDIENCE_LEVEL_OPTIONS,\n EVENT_AUDIENCE_LEVEL_VALUES,\n EVENT_CATEGORY_OPTIONS,\n EVENT_CATEGORY_VALUES,\n EVENT_CONTACT_PHONE_MAX_CHARS,\n EVENT_CREATE_FIELDS,\n EVENT_CREATE_STEP_ORDER,\n EVENT_DESCRIPTION_MAX_CHARS,\n EVENT_DESCRIPTION_MIN_CHARS,\n EVENT_MAX_CAPACITY,\n EVENT_MAX_ENTRY_FEE_INR,\n EVENT_MAX_IMAGES,\n EVENT_MIN_CAPACITY,\n EVENT_MODE_OPTIONS,\n EVENT_MODE_VALUES,\n EVENT_STATUS_VALUES,\n EVENT_TITLE_MAX_CHARS,\n EVENT_TITLE_MIN_CHARS,\n EVENT_VIEWER_ATTEND_STATUS_VALUES,\n EVENT_WHAT_TO_BRING_MAX_CHARS,\n type EventAgeAudience,\n type EventApprovalMode,\n type EventAttendeeStatus,\n type EventAttendeesListResponse,\n type EventAttendeeWire,\n type EventAudienceLevel,\n type EventCategory,\n type EventCreateStepKey,\n type EventDraft,\n type EventFeedItem,\n type EventLocation,\n type EventMode,\n type EventStatus,\n type EventViewerAttendStatus,\n eventAgeAudienceSchema,\n eventApprovalModeSchema,\n eventAttendeeStatusSchema,\n eventAttendeesListResponseSchema,\n eventAttendeeWireSchema,\n eventAudienceLevelSchema,\n eventCategorySchema,\n eventFeedItemSchema,\n eventLocationSchema,\n eventModeSchema,\n eventStatusSchema,\n eventStepValid,\n eventViewerAttendStatusSchema,\n type UpdateCommunityEventBody,\n updateCommunityEventBodySchema,\n} from './event.js';\n// ─── Feed (polymorphic union) ──────────────────────────────────────────────\nexport {\n DONATE_ITEM_CONDITION_VALUES,\n DONATE_ITEM_STATUS_VALUES,\n type DonateItemCondition,\n type DonateItemFeedItem,\n type DonateItemStatus,\n donateAuditAtSchema,\n donateAuditByAtSchema,\n donateDonatedToSchema,\n donateItemConditionSchema,\n donateItemFeedItemSchema,\n donateItemStatusSchema,\n type FeedItem,\n type FeedQueryParams,\n type FeedResponse,\n feedItemSchema,\n feedQueryParamsSchema,\n feedResponseSchema,\n LOST_FOUND_CATEGORY_VALUES,\n LOST_FOUND_STATUS_VALUES,\n type LostFoundCategory,\n type LostFoundFeedItem,\n type LostFoundLocation,\n type LostFoundStatus,\n type LostFoundTimeRange,\n lostFoundCategorySchema,\n lostFoundFeedItemSchema,\n lostFoundLocationSchema,\n lostFoundStatusSchema,\n lostFoundTimeRangeSchema,\n SUGGESTIONS_COMPLAINTS_PRIORITY_VALUES,\n SUGGESTIONS_COMPLAINTS_STATUS_VALUES,\n type SuggestionsComplaintsFeedItem,\n type SuggestionsComplaintsLocation,\n type SuggestionsComplaintsPriority,\n type SuggestionsComplaintsStatus,\n suggestionsComplaintsAudioSchema,\n suggestionsComplaintsFeedItemSchema,\n suggestionsComplaintsLocationSchema,\n suggestionsComplaintsOfficerResponseSchema,\n suggestionsComplaintsPrioritySchema,\n suggestionsComplaintsStatusSchema,\n suggestionsComplaintsVideoSchema,\n} from './feed.js';\n// ─── Groups ────────────────────────────────────────────────────────────────\nexport {\n type AddGroupMembersBody,\n addGroupMembersBodySchema,\n type CommunityGroupWire,\n type CommunityGroupWithMembers,\n type CreateGroupBody,\n communityGroupWireSchema,\n communityGroupWithMembersSchema,\n createGroupBodySchema,\n type GroupMembersListResponse,\n type GroupMemberWire,\n type GroupRole,\n type GroupsListResponse,\n groupMembersListResponseSchema,\n groupMemberWireSchema,\n groupRoleSchema,\n groupsListResponseSchema,\n type UpdateGroupBody,\n updateGroupBodySchema,\n} from './group.js';\n// ─── Link preview (auto-extracted URL embed) ──────────────────────────────\nexport {\n LINK_PREVIEW_KIND_VALUES,\n type LinkPreview,\n type LinkPreviewKind,\n linkPreviewKindSchema,\n linkPreviewSchema,\n} from './link-preview.js';\n// ─── Lost & Found (create) ───────────────────────────────────────────────────\nexport {\n type CreateLostFoundReportBody,\n createLostFoundReportBodySchema,\n LOST_FOUND_CATEGORY_OPTIONS,\n LOST_FOUND_COLLECTION_POINT_MAX_CHARS,\n LOST_FOUND_CONTACT_PHONE_MAX_CHARS,\n LOST_FOUND_CREATE_FIELDS,\n LOST_FOUND_CREATE_STEP_ORDER,\n LOST_FOUND_DESCRIPTION_MAX_CHARS,\n LOST_FOUND_DESCRIPTION_MIN_CHARS,\n LOST_FOUND_MAX_IMAGES,\n LOST_FOUND_REWARD_MAX_CHARS,\n LOST_FOUND_TITLE_MAX_CHARS,\n LOST_FOUND_TITLE_MIN_CHARS,\n LOST_FOUND_TYPE_OPTIONS,\n LOST_FOUND_TYPE_VALUES,\n type LostFoundCreateStepKey,\n type LostFoundDraft,\n type LostFoundType,\n lostFoundStepValid,\n lostFoundTypeSchema,\n} from './lost-found.js';\n// ─── Media ─────────────────────────────────────────────────────────────────\nexport {\n type PostImage,\n type PostVideo,\n postImageSchema,\n postVideoSchema,\n} from './media.js';\n// ─── Notifications ─────────────────────────────────────────────────────────\nexport {\n type ListNotificationsQuery,\n type ListNotificationsResponse,\n listNotificationsQuerySchema,\n listNotificationsResponseSchema,\n type MarkAllNotificationsReadBody,\n markAllNotificationsReadBodySchema,\n NOTIFICATION_CATEGORY_VALUES,\n NOTIFICATION_CHANNEL_VALUES,\n NOTIFICATION_PRIORITY_VALUES,\n NOTIFICATION_SOURCE_REF_KIND_VALUES,\n type NotificationActor,\n type NotificationCategory,\n type NotificationChannel,\n type NotificationPriority,\n type NotificationReadAllEvent,\n type NotificationReadEvent,\n type NotificationSourceRef,\n type NotificationSourceRefKind,\n type NotificationUnreadCount,\n type NotificationWire,\n notificationActorSchema,\n notificationCategorySchema,\n notificationChannelSchema,\n notificationPrioritySchema,\n notificationReadAllEventSchema,\n notificationReadEventSchema,\n notificationSourceRefKindSchema,\n notificationSourceRefSchema,\n notificationUnreadCountSchema,\n notificationWireSchema,\n REFORM_NOTIFICATION_SOCKET_EVENTS,\n type ReformNotificationSocketEvent,\n} from './notification.js';\n// ─── Poll ──────────────────────────────────────────────────────────────────\nexport {\n type CastVoteBody,\n type CommunityPollFeedItem,\n type CommunityPollWire,\n type CreatePollBody,\n castVoteBodySchema,\n communityPollFeedItemSchema,\n communityPollWireSchema,\n createPollBodySchema,\n POLL_RESULTS_VISIBILITY_VALUES,\n type PollOptionInput,\n type PollOptionWire,\n type PollResultsVisibility,\n pollOptionInputSchema,\n pollOptionWireSchema,\n pollResultsVisibilitySchema,\n type VoteResponse,\n voteResponseSchema,\n} from './poll.js';\n// ─── Post ──────────────────────────────────────────────────────────────────\nexport {\n type CommunityPostWire,\n type CreatePostBody,\n communityPostWireSchema,\n createPostBodySchema,\n type PostAuthorSnapshot,\n postAuthorSnapshotSchema,\n type RepostedSource,\n repostedSourceSchema,\n type UpdatePostBody,\n updatePostBodySchema,\n} from './post.js';\n// ─── Profile + People list ─────────────────────────────────────────────────\nexport {\n PEOPLE_LIST_FILTER_DEFAULT,\n PEOPLE_LIST_FILTER_VALUES,\n type PeopleListFilter,\n type PeopleListItem,\n type PeopleListResponse,\n type PeopleQueryParams,\n type ProfileMutuals,\n type PublicProfileWire,\n peopleListFilterSchema,\n peopleListItemSchema,\n peopleListResponseSchema,\n peopleQueryParamsSchema,\n profileMutualsSchema,\n publicProfileWireSchema,\n} from './profile.js';\n// ─── Reports (moderation) ──────────────────────────────────────────────────\nexport {\n type ReportContentBody,\n type ReportContentKind,\n type ReportRecordWire,\n type ReportSubmissionResponse,\n type ReportUserBody,\n reportContentBodySchema,\n reportContentKindSchema,\n reportRecordWireSchema,\n reportSubmissionResponseSchema,\n reportUserBodySchema,\n} from './report.js';\n// ─── Repost (quote / amplify) ──────────────────────────────────────────────\nexport {\n type CreateRepostBody,\n type CreateRepostResponse,\n createRepostBodySchema,\n createRepostResponseSchema,\n} from './repost.js';\n// ─── Settings ──────────────────────────────────────────────────────────────\nexport {\n type BlockedUsersListResponse,\n type BlockedUserWire,\n blockedUsersListResponseSchema,\n blockedUserWireSchema,\n COMMUNITY_SETTINGS_DEFAULTS,\n type CommunitySettingsWire,\n communitySettingsWireSchema,\n type UpdateCommunitySettingsBody,\n updateCommunitySettingsBodySchema,\n} from './settings.js';\n// ─── Social (follow) ───────────────────────────────────────────────────────\nexport {\n type ToggleFollowResponse,\n toggleFollowResponseSchema,\n type ViewerSocialState,\n viewerSocialStateSchema,\n} from './social.js';\n// ─── Social score (modular SSOT: kinds / categories / milestones /\n// rules / tiers / wire) ───────────────────────────────────────────────\nexport {\n LEADER_ELIGIBILITY_SCORE,\n LEADERBOARD_SCOPE_VALUES,\n type LeaderboardEntry,\n type LeaderboardResponse,\n type LeaderboardScope,\n leaderboardEntrySchema,\n leaderboardResponseSchema,\n leaderboardScopeSchema,\n MENTEE_MILESTONE_SCORE,\n type MilestoneProgress,\n milestoneLevel,\n milestoneProgress,\n type PublicScoreSummary,\n publicScoreSummarySchema,\n // rules + constants + display catalog\n QUALIFYING_UPVOTES,\n QUALIFYING_UPVOTES_COMMENT,\n // wire contracts\n type RecentScoreEvent,\n recentScoreEventSchema,\n SCORE_CATEGORY_I18N,\n SCORE_CATEGORY_ORDER,\n // categories\n SCORE_CATEGORY_VALUES,\n // kinds\n SCORE_KIND_VALUES,\n SCORE_RULE_CATALOG,\n SCORE_RULES,\n type ScoreBreakdown,\n type ScoreByCategory,\n type ScoreCap,\n type ScoreCategory,\n type ScoreCategoryI18n,\n type ScoreKind,\n type ScoreRule,\n type ScoreRuleGroup,\n type ScoreRuleRef,\n // milestones\n SOCIAL_SCORE_MILESTONES,\n // tiers (legacy compat)\n SOCIAL_SCORE_TIER_NAMES,\n SOCIAL_SCORE_TIERS,\n type SocialScoreTier,\n type SocialScoreTierName,\n scoreBreakdownSchema,\n scoreByCategorySchema,\n scoreCategorySchema,\n scoreKindSchema,\n tierFromSocialScore,\n} from './social-score/index.js';\n\n// ─── Suggestions & Complaints (create) ──────────────────────────────────────\nexport {\n COMPLAINT_CATEGORY_OPTIONS,\n COMPLAINT_CATEGORY_VALUES,\n type ComplaintCategory,\n type CreateSuggestionsComplaintsBody,\n complaintCategorySchema,\n createSuggestionsComplaintsBodySchema,\n SUGGESTION_CATEGORY_OPTIONS,\n SUGGESTION_CATEGORY_VALUES,\n SUGGESTIONS_COMPLAINTS_CATEGORY_VALUES,\n SUGGESTIONS_COMPLAINTS_CREATE_FIELDS,\n SUGGESTIONS_COMPLAINTS_CREATE_STEP_ORDER,\n SUGGESTIONS_COMPLAINTS_DESCRIPTION_MAX_CHARS,\n SUGGESTIONS_COMPLAINTS_MAX_IMAGES,\n SUGGESTIONS_COMPLAINTS_MAX_VIDEO_LINKS,\n SUGGESTIONS_COMPLAINTS_SUGGESTION_DESCRIPTION_MIN_CHARS,\n SUGGESTIONS_COMPLAINTS_TITLE_MAX_CHARS,\n SUGGESTIONS_COMPLAINTS_TITLE_MIN_CHARS,\n SUGGESTIONS_COMPLAINTS_TYPE_OPTIONS,\n SUGGESTIONS_COMPLAINTS_TYPE_VALUES,\n type SuggestionCategory,\n type SuggestionsComplaintsCreateStepKey,\n type SuggestionsComplaintsDraft,\n type SuggestionsComplaintsType,\n suggestionCategorySchema,\n suggestionsComplaintsBodyObjectSchema,\n suggestionsComplaintsStepValid,\n suggestionsComplaintsTypeSchema,\n type UploadedMediaPath,\n uploadedMediaPathSchema,\n} from './suggestions-complaints.js';\n\n// ─── Username (URL handle + change / availability) ────────────────────────\nexport {\n type CurrentUsernameState,\n currentUsernameStateSchema,\n type UpdateUsernameBody,\n type UpdateUsernameResponse,\n USERNAME_MAX_LENGTH,\n USERNAME_MIN_LENGTH,\n USERNAME_PATTERN,\n USERNAME_UNAVAILABLE_REASONS,\n type Username,\n type UsernameAvailabilityResponse,\n type UsernameUnavailableReason,\n updateUsernameBodySchema,\n updateUsernameResponseSchema,\n usernameAvailabilityResponseSchema,\n usernameSchema,\n usernameUnavailableReasonSchema,\n} from './username.js';\n"]}
|
|
@@ -73,12 +73,26 @@ export interface ScoreRule {
|
|
|
73
73
|
verifierGated: boolean;
|
|
74
74
|
/** Human-facing fallback label rendered on the breakdown history. */
|
|
75
75
|
label: string;
|
|
76
|
+
/**
|
|
77
|
+
* i18n key (socialScore namespace) for the "How you earn points"
|
|
78
|
+
* catalog row. Every awarding rule carries one so the catalog is
|
|
79
|
+
* DERIVED from this table (see `buildScoreCatalog`) and can never
|
|
80
|
+
* drift out of sync with what actually earns points.
|
|
81
|
+
*/
|
|
82
|
+
catalogKey: string;
|
|
83
|
+
/** Show a "New" chip on the catalog row. */
|
|
84
|
+
isNew?: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Exclude this rule from the user-facing catalog while STILL awarding
|
|
87
|
+
* points (e.g. an internal/automatic award). Default: shown.
|
|
88
|
+
*/
|
|
89
|
+
catalogHidden?: boolean;
|
|
76
90
|
}
|
|
77
91
|
export declare const SCORE_RULES: Record<ScoreKind, ScoreRule>;
|
|
78
92
|
export interface ScoreRuleRef {
|
|
79
93
|
/** i18n key (socialScore namespace) for the action description. */
|
|
80
94
|
labelKey: string;
|
|
81
|
-
/** Display reward, e.g. "+5"
|
|
95
|
+
/** Display reward derived from the rule, e.g. "+5". */
|
|
82
96
|
points: string;
|
|
83
97
|
/** Marks a freshly-added rule with a "New" chip. */
|
|
84
98
|
isNew?: boolean;
|
|
@@ -89,5 +103,12 @@ export interface ScoreRuleGroup {
|
|
|
89
103
|
groupKey: string;
|
|
90
104
|
rules: ScoreRuleRef[];
|
|
91
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Build the "How you earn points" catalog by projecting SCORE_RULES into
|
|
108
|
+
* display sections. Every non-hidden rule becomes a row under its
|
|
109
|
+
* category, so the catalog is guaranteed to stay in lockstep with the
|
|
110
|
+
* award table — add a rule and it appears automatically.
|
|
111
|
+
*/
|
|
112
|
+
export declare function buildScoreCatalog(): ScoreRuleGroup[];
|
|
92
113
|
export declare const SCORE_RULE_CATALOG: ScoreRuleGroup[];
|
|
93
114
|
//# sourceMappingURL=rules.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/social-score/rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI5C;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAI7C,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/social-score/rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI5C;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAI7C,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CAwQpD,CAAC;AASF,MAAM,WAAW,YAAY;IAC3B,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,aAAa,CAAC;IACxB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAaD;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,EAAE,CAiBpD;AAED,eAAO,MAAM,kBAAkB,EAAE,cAAc,EAAwB,CAAC"}
|
|
@@ -65,6 +65,7 @@ export const SCORE_RULES = {
|
|
|
65
65
|
cap: { kind: 'once' },
|
|
66
66
|
verifierGated: true,
|
|
67
67
|
label: 'Profile verified',
|
|
68
|
+
catalogKey: 'ruleProfileComplete',
|
|
68
69
|
},
|
|
69
70
|
// ─── Civic contribution ───────────────────────────────────────────────
|
|
70
71
|
crowdfunding_donation_verified: {
|
|
@@ -73,6 +74,7 @@ export const SCORE_RULES = {
|
|
|
73
74
|
cap: { kind: 'daily', max: 10 },
|
|
74
75
|
verifierGated: true,
|
|
75
76
|
label: 'Verified donation',
|
|
77
|
+
catalogKey: 'ruleDonateFundraiser',
|
|
76
78
|
},
|
|
77
79
|
crowdfunding_campaign_succeeded: {
|
|
78
80
|
category: 'civic',
|
|
@@ -80,6 +82,7 @@ export const SCORE_RULES = {
|
|
|
80
82
|
cap: { kind: 'once-per-source' },
|
|
81
83
|
verifierGated: true,
|
|
82
84
|
label: 'Campaign succeeded',
|
|
85
|
+
catalogKey: 'ruleFundraiserSucceeded',
|
|
83
86
|
},
|
|
84
87
|
item_donated: {
|
|
85
88
|
category: 'civic',
|
|
@@ -90,6 +93,7 @@ export const SCORE_RULES = {
|
|
|
90
93
|
cap: { kind: 'daily', max: 5 },
|
|
91
94
|
verifierGated: true,
|
|
92
95
|
label: 'Item donated',
|
|
96
|
+
catalogKey: 'ruleDonate',
|
|
93
97
|
},
|
|
94
98
|
lost_found_resolved: {
|
|
95
99
|
category: 'civic',
|
|
@@ -102,6 +106,7 @@ export const SCORE_RULES = {
|
|
|
102
106
|
cap: { kind: 'daily', max: 3 },
|
|
103
107
|
verifierGated: false,
|
|
104
108
|
label: 'Lost & found resolved',
|
|
109
|
+
catalogKey: 'ruleLostFoundResolved',
|
|
105
110
|
},
|
|
106
111
|
suggestions_complaints_submitted: {
|
|
107
112
|
category: 'civic',
|
|
@@ -109,6 +114,7 @@ export const SCORE_RULES = {
|
|
|
109
114
|
cap: { kind: 'daily', max: 3 },
|
|
110
115
|
verifierGated: false,
|
|
111
116
|
label: 'Suggestions & complaints report',
|
|
117
|
+
catalogKey: 'ruleSubmitReport',
|
|
112
118
|
},
|
|
113
119
|
suggestions_complaints_resolved: {
|
|
114
120
|
category: 'civic',
|
|
@@ -116,6 +122,7 @@ export const SCORE_RULES = {
|
|
|
116
122
|
cap: { kind: 'once-per-source' },
|
|
117
123
|
verifierGated: true,
|
|
118
124
|
label: 'Suggestions & complaints resolved',
|
|
125
|
+
catalogKey: 'ruleReportResolved',
|
|
119
126
|
},
|
|
120
127
|
// A lender rated a returned item well (overall >= 4★). Daily-capped to
|
|
121
128
|
// throttle farming; idempotent per borrow-request via the source id.
|
|
@@ -125,6 +132,7 @@ export const SCORE_RULES = {
|
|
|
125
132
|
cap: { kind: 'daily', max: 5 },
|
|
126
133
|
verifierGated: false,
|
|
127
134
|
label: 'Returned a borrowed item well',
|
|
135
|
+
catalogKey: 'ruleReturnResource',
|
|
128
136
|
},
|
|
129
137
|
// ─── Civic — volunteer work helping OTHER users ───────────────────────
|
|
130
138
|
// Credited to the VOLUNTEER (the actor), not the donation owner, when
|
|
@@ -138,6 +146,7 @@ export const SCORE_RULES = {
|
|
|
138
146
|
cap: { kind: 'once-per-source' },
|
|
139
147
|
verifierGated: false,
|
|
140
148
|
label: 'Delivered a donation to the centre',
|
|
149
|
+
catalogKey: 'ruleDeliver',
|
|
141
150
|
},
|
|
142
151
|
// Credited to the VOLUNTEER who starts someone else's detailed
|
|
143
152
|
// profile in survey/fill mode. once-per-source keyed on the target
|
|
@@ -148,6 +157,7 @@ export const SCORE_RULES = {
|
|
|
148
157
|
cap: { kind: 'once-per-source' },
|
|
149
158
|
verifierGated: false,
|
|
150
159
|
label: 'Started a profile for someone',
|
|
160
|
+
catalogKey: 'ruleUdpStart',
|
|
151
161
|
},
|
|
152
162
|
// Credited to the VOLUNTEER who submits a completed profile they
|
|
153
163
|
// filled for someone else (PENDING_APPROVAL transition in fill mode).
|
|
@@ -157,6 +167,7 @@ export const SCORE_RULES = {
|
|
|
157
167
|
cap: { kind: 'once-per-source' },
|
|
158
168
|
verifierGated: false,
|
|
159
169
|
label: 'Completed a profile for someone',
|
|
170
|
+
catalogKey: 'ruleUdpFinish',
|
|
160
171
|
},
|
|
161
172
|
// Credited to the VERIFIER (leader/official) who approves a detailed
|
|
162
173
|
// profile. Distinct from `udp_approved`, which credits the profile
|
|
@@ -167,6 +178,7 @@ export const SCORE_RULES = {
|
|
|
167
178
|
cap: { kind: 'once-per-source' },
|
|
168
179
|
verifierGated: true,
|
|
169
180
|
label: 'Verified a profile',
|
|
181
|
+
catalogKey: 'ruleUdpVerify',
|
|
170
182
|
},
|
|
171
183
|
// ─── Engagement ───────────────────────────────────────────────────────
|
|
172
184
|
event_organized: {
|
|
@@ -179,6 +191,7 @@ export const SCORE_RULES = {
|
|
|
179
191
|
cap: { kind: 'daily', max: 2 },
|
|
180
192
|
verifierGated: false,
|
|
181
193
|
label: 'Event organized',
|
|
194
|
+
catalogKey: 'ruleEventOrganized',
|
|
182
195
|
},
|
|
183
196
|
poll_created: {
|
|
184
197
|
category: 'engagement',
|
|
@@ -186,6 +199,7 @@ export const SCORE_RULES = {
|
|
|
186
199
|
cap: { kind: 'daily', max: 3 },
|
|
187
200
|
verifierGated: false,
|
|
188
201
|
label: 'Poll created',
|
|
202
|
+
catalogKey: 'rulePollCreated',
|
|
189
203
|
},
|
|
190
204
|
poll_voted: {
|
|
191
205
|
category: 'engagement',
|
|
@@ -193,6 +207,7 @@ export const SCORE_RULES = {
|
|
|
193
207
|
cap: { kind: 'daily', max: 10 },
|
|
194
208
|
verifierGated: false,
|
|
195
209
|
label: 'Poll vote',
|
|
210
|
+
catalogKey: 'rulePollVoted',
|
|
196
211
|
},
|
|
197
212
|
// ─── Engagement — content the community upvoted past the bar ──────────
|
|
198
213
|
// These fire ONCE per content item, the first time its net vote
|
|
@@ -206,6 +221,7 @@ export const SCORE_RULES = {
|
|
|
206
221
|
cap: { kind: 'once-per-source' },
|
|
207
222
|
verifierGated: false,
|
|
208
223
|
label: 'Post the community backed',
|
|
224
|
+
catalogKey: 'rulePostBacked',
|
|
209
225
|
},
|
|
210
226
|
poll_qualified: {
|
|
211
227
|
category: 'engagement',
|
|
@@ -213,6 +229,7 @@ export const SCORE_RULES = {
|
|
|
213
229
|
cap: { kind: 'once-per-source' },
|
|
214
230
|
verifierGated: false,
|
|
215
231
|
label: 'Poll the community backed',
|
|
232
|
+
catalogKey: 'rulePollBacked',
|
|
216
233
|
},
|
|
217
234
|
crowdfunding_qualified: {
|
|
218
235
|
category: 'civic',
|
|
@@ -220,6 +237,7 @@ export const SCORE_RULES = {
|
|
|
220
237
|
cap: { kind: 'once-per-source' },
|
|
221
238
|
verifierGated: false,
|
|
222
239
|
label: 'Fundraiser the community backed',
|
|
240
|
+
catalogKey: 'ruleFundraiserBacked',
|
|
223
241
|
},
|
|
224
242
|
suggestions_complaints_qualified: {
|
|
225
243
|
category: 'civic',
|
|
@@ -227,6 +245,7 @@ export const SCORE_RULES = {
|
|
|
227
245
|
cap: { kind: 'once-per-source' },
|
|
228
246
|
verifierGated: false,
|
|
229
247
|
label: 'Suggestion/complaint the community backed',
|
|
248
|
+
catalogKey: 'ruleSuggestionBacked',
|
|
230
249
|
},
|
|
231
250
|
// A comment the community upvoted past QUALIFYING_UPVOTES_COMMENT (5).
|
|
232
251
|
// Smaller unit than a post, lower bar, awarded to the comment author
|
|
@@ -237,6 +256,8 @@ export const SCORE_RULES = {
|
|
|
237
256
|
cap: { kind: 'once-per-source' },
|
|
238
257
|
verifierGated: false,
|
|
239
258
|
label: 'Comment the community backed',
|
|
259
|
+
catalogKey: 'ruleCommentBacked',
|
|
260
|
+
isNew: true,
|
|
240
261
|
},
|
|
241
262
|
// ─── Leadership ───────────────────────────────────────────────────────
|
|
242
263
|
// Fires when a user's reform role is elevated through any of the
|
|
@@ -250,6 +271,7 @@ export const SCORE_RULES = {
|
|
|
250
271
|
cap: { kind: 'once-per-source' },
|
|
251
272
|
verifierGated: true,
|
|
252
273
|
label: 'Volunteer role granted',
|
|
274
|
+
catalogKey: 'ruleVolunteer',
|
|
253
275
|
},
|
|
254
276
|
// Promotion to a LEADER role. Distinct from `reform_role_granted`
|
|
255
277
|
// (volunteer, 200) so the two milestones carry their own weight and
|
|
@@ -261,6 +283,7 @@ export const SCORE_RULES = {
|
|
|
261
283
|
cap: { kind: 'once-per-source' },
|
|
262
284
|
verifierGated: true,
|
|
263
285
|
label: 'Leader role granted',
|
|
286
|
+
catalogKey: 'ruleLeader',
|
|
264
287
|
},
|
|
265
288
|
// Credited to the LEADER each time a new volunteer is added in their
|
|
266
289
|
// area. once-per-source keyed on the recruited volunteer's user id —
|
|
@@ -271,6 +294,7 @@ export const SCORE_RULES = {
|
|
|
271
294
|
cap: { kind: 'once-per-source' },
|
|
272
295
|
verifierGated: false,
|
|
273
296
|
label: 'Recruited a volunteer',
|
|
297
|
+
catalogKey: 'ruleRecruit',
|
|
274
298
|
},
|
|
275
299
|
// Credited to the recruiting LEADER when a volunteer they added
|
|
276
300
|
// reaches MENTEE_MILESTONE_SCORE. Fired by the cross-user milestone
|
|
@@ -282,6 +306,7 @@ export const SCORE_RULES = {
|
|
|
282
306
|
cap: { kind: 'once-per-source' },
|
|
283
307
|
verifierGated: false,
|
|
284
308
|
label: 'Mentored a rising volunteer',
|
|
309
|
+
catalogKey: 'ruleMentee',
|
|
285
310
|
},
|
|
286
311
|
official_community_run: {
|
|
287
312
|
category: 'leadership',
|
|
@@ -289,41 +314,42 @@ export const SCORE_RULES = {
|
|
|
289
314
|
cap: { kind: 'once-per-source' },
|
|
290
315
|
verifierGated: true,
|
|
291
316
|
label: 'Official community',
|
|
317
|
+
catalogKey: 'ruleOfficialCommunity',
|
|
292
318
|
},
|
|
293
319
|
};
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
{
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
320
|
+
/** Display order of the catalog sections (Profile, Community, Civic, Leadership). */
|
|
321
|
+
const CATALOG_GROUP_ORDER = ['profile', 'engagement', 'civic', 'leadership'];
|
|
322
|
+
/** Category → section-heading i18n key. */
|
|
323
|
+
const CATEGORY_GROUP_KEY = {
|
|
324
|
+
profile: 'grpProfile',
|
|
325
|
+
engagement: 'grpCommunity',
|
|
326
|
+
civic: 'grpCivic',
|
|
327
|
+
leadership: 'grpLeadership',
|
|
328
|
+
};
|
|
329
|
+
/**
|
|
330
|
+
* Build the "How you earn points" catalog by projecting SCORE_RULES into
|
|
331
|
+
* display sections. Every non-hidden rule becomes a row under its
|
|
332
|
+
* category, so the catalog is guaranteed to stay in lockstep with the
|
|
333
|
+
* award table — add a rule and it appears automatically.
|
|
334
|
+
*/
|
|
335
|
+
export function buildScoreCatalog() {
|
|
336
|
+
const groups = [];
|
|
337
|
+
for (const category of CATALOG_GROUP_ORDER) {
|
|
338
|
+
const rules = [];
|
|
339
|
+
for (const rule of Object.values(SCORE_RULES)) {
|
|
340
|
+
if (rule.category !== category || rule.catalogHidden)
|
|
341
|
+
continue;
|
|
342
|
+
rules.push({
|
|
343
|
+
labelKey: rule.catalogKey,
|
|
344
|
+
points: `+${rule.points}`,
|
|
345
|
+
...(rule.isNew ? { isNew: true } : {}),
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
if (rules.length > 0) {
|
|
349
|
+
groups.push({ category, groupKey: CATEGORY_GROUP_KEY[category], rules });
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
return groups;
|
|
353
|
+
}
|
|
354
|
+
export const SCORE_RULE_CATALOG = buildScoreCatalog();
|
|
329
355
|
//# sourceMappingURL=rules.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/social-score/rules.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Social-score RULES — the single source of truth for every point\n * award across the platform.\n *\n * Why this lives in the schema package\n * ────────────────────────────────────\n * The backend emitter reads `SCORE_RULES[kind]` for the weight,\n * category and cap; it NEVER hardcodes a point value. The frontend\n * \"How you earn points\" reference renders from `SCORE_RULE_CATALOG`.\n * Shipping both from one package means a weight change and the user-\n * facing guidance can't drift across a deploy — bump the package, both\n * consumers pick up the new values on `npm install`.\n *\n * What's in a rule\n * ────────────────\n * category — which breakdown bucket the points roll into.\n * points — base award per emission.\n * cap — optional anti-gaming bound:\n * • `once` — first emission per (user, kind).\n * • `once-per-source` — at most once per (user, kind,\n * sourceRef).\n * • `daily, max: N` — at most N awarding emissions per\n * UTC day; excess still records an event (audit /\n * replay) but awards 0.\n * • undefined → no cap.\n * verifierGated — when true the action MUST be independently verified\n * before emitting (belt-and-braces guard at the rule\n * level so a wiring mistake can't leak points).\n *\n * @module community-schema/social-score/rules\n */\n\nimport type { ScoreCategory } from './categories.js';\nimport type { ScoreKind } from './kinds.js';\n\n// ─── Anti-gaming constants ─────────────────────────────────────────────────\n\n/**\n * Net-upvote bar a piece of community content must clear before its\n * author is awarded a one-time \"qualified\" point bundle. The vote\n * service maintains a denormalised signed `score` (upvotes − downvotes)\n * on every content doc; the engagement hook fires the award the first\n * time that `score` crosses this threshold upward.\n */\nexport const QUALIFYING_UPVOTES = 20;\n\n/**\n * Lower net-upvote bar for COMMENTS — a comment is a smaller unit of\n * contribution than a top-level post, so it qualifies its author at a\n * gentler threshold. Separate constant so the two bars move\n * independently.\n */\nexport const QUALIFYING_UPVOTES_COMMENT = 5;\n\n/**\n * Score a recruited volunteer must reach for the leader who added them\n * to earn the mentoring milestone bonus.\n */\nexport const MENTEE_MILESTONE_SCORE = 500;\n\n/**\n * Minimum total social score an applicant must hold to QUALIFY for a\n * leader role on merit. A manager/superadmin can still approve a\n * sub-threshold applicant (discretionary override) — this gate only\n * blocks a *leader* approving a peer who hasn't earned it.\n */\nexport const LEADER_ELIGIBILITY_SCORE = 1000;\n\n// ─── Rule shape ─────────────────────────────────────────────────────────────\n\nexport type ScoreCap =\n | { kind: 'once' }\n | { kind: 'once-per-source' }\n | { kind: 'daily'; max: number };\n\nexport interface ScoreRule {\n category: ScoreCategory;\n points: number;\n cap?: ScoreCap;\n verifierGated: boolean;\n /** Human-facing fallback label rendered on the breakdown history. */\n label: string;\n}\n\nexport const SCORE_RULES: Record<ScoreKind, ScoreRule> = {\n // ─── Profile ──────────────────────────────────────────────────────────\n udp_approved: {\n category: 'profile',\n points: 100,\n cap: { kind: 'once' },\n verifierGated: true,\n label: 'Profile verified',\n },\n\n // ─── Civic contribution ───────────────────────────────────────────────\n crowdfunding_donation_verified: {\n category: 'civic',\n points: 25,\n cap: { kind: 'daily', max: 10 },\n verifierGated: true,\n label: 'Verified donation',\n },\n crowdfunding_campaign_succeeded: {\n category: 'civic',\n points: 100,\n cap: { kind: 'once-per-source' },\n verifierGated: true,\n label: 'Campaign succeeded',\n },\n item_donated: {\n category: 'civic',\n // Awarded to the DONOR when their item completes the journey to a\n // recipient (terminal DONATED state). The social worth is the\n // completed handover, not upvotes — so this is NOT upvote-gated.\n points: 10,\n cap: { kind: 'daily', max: 5 },\n verifierGated: true,\n label: 'Item donated',\n },\n lost_found_resolved: {\n category: 'civic',\n // Resolution is creator-driven (the report owner approves a\n // claim) — no third-party signal. The daily cap throttles mass-\n // create + self-approve farming via a colluding \"claimant\". The\n // unique idempotency index on (userId, kind, sourceId) still\n // enforces once-per-report (no double-counting on toggle).\n points: 50,\n cap: { kind: 'daily', max: 3 },\n verifierGated: false,\n label: 'Lost & found resolved',\n },\n suggestions_complaints_submitted: {\n category: 'civic',\n points: 10,\n cap: { kind: 'daily', max: 3 },\n verifierGated: false,\n label: 'Suggestions & complaints report',\n },\n suggestions_complaints_resolved: {\n category: 'civic',\n points: 75,\n cap: { kind: 'once-per-source' },\n verifierGated: true,\n label: 'Suggestions & complaints resolved',\n },\n // A lender rated a returned item well (overall >= 4★). Daily-capped to\n // throttle farming; idempotent per borrow-request via the source id.\n resource_returned_well: {\n category: 'civic',\n points: 15,\n cap: { kind: 'daily', max: 5 },\n verifierGated: false,\n label: 'Returned a borrowed item well',\n },\n\n // ─── Civic — volunteer work helping OTHER users ───────────────────────\n // Credited to the VOLUNTEER (the actor), not the donation owner, when\n // they physically deliver a collected donation to the centre\n // (AT_CENTER transition). Gated by that verified transition, so no\n // separate verifierGated flag is needed; once-per-source = one award\n // per donation moved.\n item_pickup_to_center: {\n category: 'civic',\n points: 50,\n cap: { kind: 'once-per-source' },\n verifierGated: false,\n label: 'Delivered a donation to the centre',\n },\n // Credited to the VOLUNTEER who starts someone else's detailed\n // profile in survey/fill mode. once-per-source keyed on the target\n // profile so re-opening the same profile doesn't re-award.\n udp_initiated: {\n category: 'civic',\n points: 10,\n cap: { kind: 'once-per-source' },\n verifierGated: false,\n label: 'Started a profile for someone',\n },\n // Credited to the VOLUNTEER who submits a completed profile they\n // filled for someone else (PENDING_APPROVAL transition in fill mode).\n udp_completed: {\n category: 'civic',\n points: 20,\n cap: { kind: 'once-per-source' },\n verifierGated: false,\n label: 'Completed a profile for someone',\n },\n // Credited to the VERIFIER (leader/official) who approves a detailed\n // profile. Distinct from `udp_approved`, which credits the profile\n // OWNER. once-per-source keyed on the approved profile.\n udp_verified: {\n category: 'civic',\n points: 10,\n cap: { kind: 'once-per-source' },\n verifierGated: true,\n label: 'Verified a profile',\n },\n\n // ─── Engagement ───────────────────────────────────────────────────────\n event_organized: {\n category: 'engagement',\n // Awarded at event creation (no attendance signal yet — that\n // would need an event-completion flow). Daily cap of 2 throttles\n // mass-create farming; per-source uniqueness still enforced by\n // the idempotency index so editing an event isn't a second emit.\n points: 50,\n cap: { kind: 'daily', max: 2 },\n verifierGated: false,\n label: 'Event organized',\n },\n poll_created: {\n category: 'engagement',\n points: 10,\n cap: { kind: 'daily', max: 3 },\n verifierGated: false,\n label: 'Poll created',\n },\n poll_voted: {\n category: 'engagement',\n points: 2,\n cap: { kind: 'daily', max: 10 },\n verifierGated: false,\n label: 'Poll vote',\n },\n\n // ─── Engagement — content the community upvoted past the bar ──────────\n // These fire ONCE per content item, the first time its net vote\n // `score` crosses QUALIFYING_UPVOTES upward (see engagement.service\n // setVote hook). Awarded to the content's author. Anti-farming is\n // structural: you can't earn by self-posting — the community has to\n // actually upvote you. once-per-source keyed on the content id.\n post_qualified: {\n category: 'engagement',\n points: 5,\n cap: { kind: 'once-per-source' },\n verifierGated: false,\n label: 'Post the community backed',\n },\n poll_qualified: {\n category: 'engagement',\n points: 5,\n cap: { kind: 'once-per-source' },\n verifierGated: false,\n label: 'Poll the community backed',\n },\n crowdfunding_qualified: {\n category: 'civic',\n points: 5,\n cap: { kind: 'once-per-source' },\n verifierGated: false,\n label: 'Fundraiser the community backed',\n },\n suggestions_complaints_qualified: {\n category: 'civic',\n points: 7,\n cap: { kind: 'once-per-source' },\n verifierGated: false,\n label: 'Suggestion/complaint the community backed',\n },\n // A comment the community upvoted past QUALIFYING_UPVOTES_COMMENT (5).\n // Smaller unit than a post, lower bar, awarded to the comment author\n // once per comment.\n comment_qualified: {\n category: 'engagement',\n points: 5,\n cap: { kind: 'once-per-source' },\n verifierGated: false,\n label: 'Comment the community backed',\n },\n\n // ─── Leadership ───────────────────────────────────────────────────────\n // Fires when a user's reform role is elevated through any of the\n // application flows (volunteer-application approval, leader\n // promotion). The label stays generic so the breakdown page reads\n // sensibly regardless of which level was actually granted; the\n // metadata field on the event row carries the specific role.\n reform_role_granted: {\n category: 'leadership',\n points: 200,\n cap: { kind: 'once-per-source' },\n verifierGated: true,\n label: 'Volunteer role granted',\n },\n // Promotion to a LEADER role. Distinct from `reform_role_granted`\n // (volunteer, 200) so the two milestones carry their own weight and\n // breakdown line. Eligibility (>= LEADER_ELIGIBILITY_SCORE) is\n // enforced in the leader-application flow, not here.\n leader_role_granted: {\n category: 'leadership',\n points: 500,\n cap: { kind: 'once-per-source' },\n verifierGated: true,\n label: 'Leader role granted',\n },\n // Credited to the LEADER each time a new volunteer is added in their\n // area. once-per-source keyed on the recruited volunteer's user id —\n // one award per person recruited.\n leader_added_volunteer: {\n category: 'leadership',\n points: 10,\n cap: { kind: 'once-per-source' },\n verifierGated: false,\n label: 'Recruited a volunteer',\n },\n // Credited to the recruiting LEADER when a volunteer they added\n // reaches MENTEE_MILESTONE_SCORE. Fired by the cross-user milestone\n // check in the emitter. once-per-source keyed on the mentee's user\n // id — one bonus per mentee who crosses the bar.\n leader_mentee_reached_milestone: {\n category: 'leadership',\n points: 100,\n cap: { kind: 'once-per-source' },\n verifierGated: false,\n label: 'Mentored a rising volunteer',\n },\n official_community_run: {\n category: 'leadership',\n points: 100,\n cap: { kind: 'once-per-source' },\n verifierGated: true,\n label: 'Official community',\n },\n};\n\n// ─── Display catalog (\"How you earn points\") ────────────────────────────────\n// User-facing reference rendered on /profile/score. Mirrors the weights\n// above but groups them for display and carries i18n KEYS (resolved in\n// the `socialScore` namespace) instead of copy. The point figures are\n// numbers-as-data (language-neutral) so they stay here, not in messages.\n\nexport interface ScoreRuleRef {\n /** i18n key (socialScore namespace) for the action description. */\n labelKey: string;\n /** Display reward, e.g. \"+5\" or a multi-step \"+10 / +20 / +10\". */\n points: string;\n /** Marks a freshly-added rule with a \"New\" chip. */\n isNew?: boolean;\n}\n\nexport interface ScoreRuleGroup {\n category: ScoreCategory;\n /** i18n key (socialScore namespace) for the section heading. */\n groupKey: string;\n rules: ScoreRuleRef[];\n}\n\nexport const SCORE_RULE_CATALOG: ScoreRuleGroup[] = [\n {\n category: 'profile',\n groupKey: 'grpProfile',\n rules: [{ labelKey: 'ruleProfileComplete', points: '+100' }],\n },\n {\n category: 'engagement',\n groupKey: 'grpCommunity',\n rules: [\n { labelKey: 'rulePostBacked', points: '+5' },\n { labelKey: 'ruleCommentBacked', points: '+5', isNew: true },\n ],\n },\n {\n category: 'civic',\n groupKey: 'grpCivic',\n rules: [\n { labelKey: 'ruleSuggestionBacked', points: '+7' },\n { labelKey: 'ruleDonate', points: '+10' },\n { labelKey: 'ruleDeliver', points: '+50' },\n { labelKey: 'ruleUdpHelp', points: '+10 / +20 / +10' },\n ],\n },\n {\n category: 'leadership',\n groupKey: 'grpLeadership',\n rules: [\n { labelKey: 'ruleVolunteer', points: '+200' },\n { labelKey: 'ruleLeader', points: '+500' },\n { labelKey: 'ruleRecruit', points: '+10' },\n { labelKey: 'ruleMentee', points: '+100' },\n ],\n },\n];\n"]}
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/social-score/rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAKH,8EAA8E;AAE9E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAgC7C,MAAM,CAAC,MAAM,WAAW,GAAiC;IACvD,yEAAyE;IACzE,YAAY,EAAE;QACZ,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,GAAG;QACX,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QACrB,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,kBAAkB;QACzB,UAAU,EAAE,qBAAqB;KAClC;IAED,yEAAyE;IACzE,8BAA8B,EAAE;QAC9B,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE;QAC/B,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,mBAAmB;QAC1B,UAAU,EAAE,sBAAsB;KACnC;IACD,+BAA+B,EAAE;QAC/B,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,GAAG;QACX,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;QAChC,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,oBAAoB;QAC3B,UAAU,EAAE,yBAAyB;KACtC;IACD,YAAY,EAAE;QACZ,QAAQ,EAAE,OAAO;QACjB,kEAAkE;QAClE,8DAA8D;QAC9D,iEAAiE;QACjE,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;QAC9B,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,cAAc;QACrB,UAAU,EAAE,YAAY;KACzB;IACD,mBAAmB,EAAE;QACnB,QAAQ,EAAE,OAAO;QACjB,4DAA4D;QAC5D,gEAAgE;QAChE,gEAAgE;QAChE,6DAA6D;QAC7D,2DAA2D;QAC3D,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;QAC9B,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,uBAAuB;QAC9B,UAAU,EAAE,uBAAuB;KACpC;IACD,gCAAgC,EAAE;QAChC,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;QAC9B,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,iCAAiC;QACxC,UAAU,EAAE,kBAAkB;KAC/B;IACD,+BAA+B,EAAE;QAC/B,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;QAChC,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,mCAAmC;QAC1C,UAAU,EAAE,oBAAoB;KACjC;IACD,uEAAuE;IACvE,qEAAqE;IACrE,sBAAsB,EAAE;QACtB,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;QAC9B,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,+BAA+B;QACtC,UAAU,EAAE,oBAAoB;KACjC;IAED,yEAAyE;IACzE,sEAAsE;IACtE,6DAA6D;IAC7D,mEAAmE;IACnE,qEAAqE;IACrE,sBAAsB;IACtB,qBAAqB,EAAE;QACrB,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;QAChC,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,oCAAoC;QAC3C,UAAU,EAAE,aAAa;KAC1B;IACD,+DAA+D;IAC/D,mEAAmE;IACnE,2DAA2D;IAC3D,aAAa,EAAE;QACb,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;QAChC,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,+BAA+B;QACtC,UAAU,EAAE,cAAc;KAC3B;IACD,iEAAiE;IACjE,sEAAsE;IACtE,aAAa,EAAE;QACb,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;QAChC,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,iCAAiC;QACxC,UAAU,EAAE,eAAe;KAC5B;IACD,qEAAqE;IACrE,mEAAmE;IACnE,wDAAwD;IACxD,YAAY,EAAE;QACZ,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;QAChC,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,oBAAoB;QAC3B,UAAU,EAAE,eAAe;KAC5B;IAED,yEAAyE;IACzE,eAAe,EAAE;QACf,QAAQ,EAAE,YAAY;QACtB,6DAA6D;QAC7D,iEAAiE;QACjE,+DAA+D;QAC/D,iEAAiE;QACjE,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;QAC9B,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,iBAAiB;QACxB,UAAU,EAAE,oBAAoB;KACjC;IACD,YAAY,EAAE;QACZ,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;QAC9B,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,cAAc;QACrB,UAAU,EAAE,iBAAiB;KAC9B;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,CAAC;QACT,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE;QAC/B,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,eAAe;KAC5B;IAED,yEAAyE;IACzE,gEAAgE;IAChE,oEAAoE;IACpE,kEAAkE;IAClE,oEAAoE;IACpE,gEAAgE;IAChE,cAAc,EAAE;QACd,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,CAAC;QACT,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;QAChC,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,2BAA2B;QAClC,UAAU,EAAE,gBAAgB;KAC7B;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,CAAC;QACT,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;QAChC,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,2BAA2B;QAClC,UAAU,EAAE,gBAAgB;KAC7B;IACD,sBAAsB,EAAE;QACtB,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,CAAC;QACT,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;QAChC,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,iCAAiC;QACxC,UAAU,EAAE,sBAAsB;KACnC;IACD,gCAAgC,EAAE;QAChC,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,CAAC;QACT,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;QAChC,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,2CAA2C;QAClD,UAAU,EAAE,sBAAsB;KACnC;IACD,uEAAuE;IACvE,qEAAqE;IACrE,oBAAoB;IACpB,iBAAiB,EAAE;QACjB,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,CAAC;QACT,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;QAChC,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,8BAA8B;QACrC,UAAU,EAAE,mBAAmB;QAC/B,KAAK,EAAE,IAAI;KACZ;IAED,yEAAyE;IACzE,iEAAiE;IACjE,4DAA4D;IAC5D,kEAAkE;IAClE,+DAA+D;IAC/D,6DAA6D;IAC7D,mBAAmB,EAAE;QACnB,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,GAAG;QACX,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;QAChC,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,wBAAwB;QAC/B,UAAU,EAAE,eAAe;KAC5B;IACD,kEAAkE;IAClE,oEAAoE;IACpE,+DAA+D;IAC/D,qDAAqD;IACrD,mBAAmB,EAAE;QACnB,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,GAAG;QACX,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;QAChC,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,qBAAqB;QAC5B,UAAU,EAAE,YAAY;KACzB;IACD,qEAAqE;IACrE,qEAAqE;IACrE,kCAAkC;IAClC,sBAAsB,EAAE;QACtB,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;QAChC,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,uBAAuB;QAC9B,UAAU,EAAE,aAAa;KAC1B;IACD,gEAAgE;IAChE,oEAAoE;IACpE,mEAAmE;IACnE,iDAAiD;IACjD,+BAA+B,EAAE;QAC/B,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,GAAG;QACX,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;QAChC,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,6BAA6B;QACpC,UAAU,EAAE,YAAY;KACzB;IACD,sBAAsB,EAAE;QACtB,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,GAAG;QACX,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;QAChC,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,oBAAoB;QAC3B,UAAU,EAAE,uBAAuB;KACpC;CACF,CAAC;AAyBF,qFAAqF;AACrF,MAAM,mBAAmB,GAAoB,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;AAE9F,2CAA2C;AAC3C,MAAM,kBAAkB,GAAkC;IACxD,OAAO,EAAE,YAAY;IACrB,UAAU,EAAE,cAAc;IAC1B,KAAK,EAAE,UAAU;IACjB,UAAU,EAAE,eAAe;CAC5B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,KAAK,MAAM,QAAQ,IAAI,mBAAmB,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9C,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa;gBAAE,SAAS;YAC/D,KAAK,CAAC,IAAI,CAAC;gBACT,QAAQ,EAAE,IAAI,CAAC,UAAU;gBACzB,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;gBACzB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAqB,iBAAiB,EAAE,CAAC","sourcesContent":["/**\n * Social-score RULES — the single source of truth for every point\n * award across the platform.\n *\n * Why this lives in the schema package\n * ────────────────────────────────────\n * The backend emitter reads `SCORE_RULES[kind]` for the weight,\n * category and cap; it NEVER hardcodes a point value. The frontend\n * \"How you earn points\" reference renders from `SCORE_RULE_CATALOG`.\n * Shipping both from one package means a weight change and the user-\n * facing guidance can't drift across a deploy — bump the package, both\n * consumers pick up the new values on `npm install`.\n *\n * What's in a rule\n * ────────────────\n * category — which breakdown bucket the points roll into.\n * points — base award per emission.\n * cap — optional anti-gaming bound:\n * • `once` — first emission per (user, kind).\n * • `once-per-source` — at most once per (user, kind,\n * sourceRef).\n * • `daily, max: N` — at most N awarding emissions per\n * UTC day; excess still records an event (audit /\n * replay) but awards 0.\n * • undefined → no cap.\n * verifierGated — when true the action MUST be independently verified\n * before emitting (belt-and-braces guard at the rule\n * level so a wiring mistake can't leak points).\n *\n * @module community-schema/social-score/rules\n */\n\nimport type { ScoreCategory } from './categories.js';\nimport type { ScoreKind } from './kinds.js';\n\n// ─── Anti-gaming constants ─────────────────────────────────────────────────\n\n/**\n * Net-upvote bar a piece of community content must clear before its\n * author is awarded a one-time \"qualified\" point bundle. The vote\n * service maintains a denormalised signed `score` (upvotes − downvotes)\n * on every content doc; the engagement hook fires the award the first\n * time that `score` crosses this threshold upward.\n */\nexport const QUALIFYING_UPVOTES = 20;\n\n/**\n * Lower net-upvote bar for COMMENTS — a comment is a smaller unit of\n * contribution than a top-level post, so it qualifies its author at a\n * gentler threshold. Separate constant so the two bars move\n * independently.\n */\nexport const QUALIFYING_UPVOTES_COMMENT = 5;\n\n/**\n * Score a recruited volunteer must reach for the leader who added them\n * to earn the mentoring milestone bonus.\n */\nexport const MENTEE_MILESTONE_SCORE = 500;\n\n/**\n * Minimum total social score an applicant must hold to QUALIFY for a\n * leader role on merit. A manager/superadmin can still approve a\n * sub-threshold applicant (discretionary override) — this gate only\n * blocks a *leader* approving a peer who hasn't earned it.\n */\nexport const LEADER_ELIGIBILITY_SCORE = 1000;\n\n// ─── Rule shape ─────────────────────────────────────────────────────────────\n\nexport type ScoreCap =\n | { kind: 'once' }\n | { kind: 'once-per-source' }\n | { kind: 'daily'; max: number };\n\nexport interface ScoreRule {\n category: ScoreCategory;\n points: number;\n cap?: ScoreCap;\n verifierGated: boolean;\n /** Human-facing fallback label rendered on the breakdown history. */\n label: string;\n /**\n * i18n key (socialScore namespace) for the \"How you earn points\"\n * catalog row. Every awarding rule carries one so the catalog is\n * DERIVED from this table (see `buildScoreCatalog`) and can never\n * drift out of sync with what actually earns points.\n */\n catalogKey: string;\n /** Show a \"New\" chip on the catalog row. */\n isNew?: boolean;\n /**\n * Exclude this rule from the user-facing catalog while STILL awarding\n * points (e.g. an internal/automatic award). Default: shown.\n */\n catalogHidden?: boolean;\n}\n\nexport const SCORE_RULES: Record<ScoreKind, ScoreRule> = {\n // ─── Profile ──────────────────────────────────────────────────────────\n udp_approved: {\n category: 'profile',\n points: 100,\n cap: { kind: 'once' },\n verifierGated: true,\n label: 'Profile verified',\n catalogKey: 'ruleProfileComplete',\n },\n\n // ─── Civic contribution ───────────────────────────────────────────────\n crowdfunding_donation_verified: {\n category: 'civic',\n points: 25,\n cap: { kind: 'daily', max: 10 },\n verifierGated: true,\n label: 'Verified donation',\n catalogKey: 'ruleDonateFundraiser',\n },\n crowdfunding_campaign_succeeded: {\n category: 'civic',\n points: 100,\n cap: { kind: 'once-per-source' },\n verifierGated: true,\n label: 'Campaign succeeded',\n catalogKey: 'ruleFundraiserSucceeded',\n },\n item_donated: {\n category: 'civic',\n // Awarded to the DONOR when their item completes the journey to a\n // recipient (terminal DONATED state). The social worth is the\n // completed handover, not upvotes — so this is NOT upvote-gated.\n points: 10,\n cap: { kind: 'daily', max: 5 },\n verifierGated: true,\n label: 'Item donated',\n catalogKey: 'ruleDonate',\n },\n lost_found_resolved: {\n category: 'civic',\n // Resolution is creator-driven (the report owner approves a\n // claim) — no third-party signal. The daily cap throttles mass-\n // create + self-approve farming via a colluding \"claimant\". The\n // unique idempotency index on (userId, kind, sourceId) still\n // enforces once-per-report (no double-counting on toggle).\n points: 50,\n cap: { kind: 'daily', max: 3 },\n verifierGated: false,\n label: 'Lost & found resolved',\n catalogKey: 'ruleLostFoundResolved',\n },\n suggestions_complaints_submitted: {\n category: 'civic',\n points: 10,\n cap: { kind: 'daily', max: 3 },\n verifierGated: false,\n label: 'Suggestions & complaints report',\n catalogKey: 'ruleSubmitReport',\n },\n suggestions_complaints_resolved: {\n category: 'civic',\n points: 75,\n cap: { kind: 'once-per-source' },\n verifierGated: true,\n label: 'Suggestions & complaints resolved',\n catalogKey: 'ruleReportResolved',\n },\n // A lender rated a returned item well (overall >= 4★). Daily-capped to\n // throttle farming; idempotent per borrow-request via the source id.\n resource_returned_well: {\n category: 'civic',\n points: 15,\n cap: { kind: 'daily', max: 5 },\n verifierGated: false,\n label: 'Returned a borrowed item well',\n catalogKey: 'ruleReturnResource',\n },\n\n // ─── Civic — volunteer work helping OTHER users ───────────────────────\n // Credited to the VOLUNTEER (the actor), not the donation owner, when\n // they physically deliver a collected donation to the centre\n // (AT_CENTER transition). Gated by that verified transition, so no\n // separate verifierGated flag is needed; once-per-source = one award\n // per donation moved.\n item_pickup_to_center: {\n category: 'civic',\n points: 50,\n cap: { kind: 'once-per-source' },\n verifierGated: false,\n label: 'Delivered a donation to the centre',\n catalogKey: 'ruleDeliver',\n },\n // Credited to the VOLUNTEER who starts someone else's detailed\n // profile in survey/fill mode. once-per-source keyed on the target\n // profile so re-opening the same profile doesn't re-award.\n udp_initiated: {\n category: 'civic',\n points: 10,\n cap: { kind: 'once-per-source' },\n verifierGated: false,\n label: 'Started a profile for someone',\n catalogKey: 'ruleUdpStart',\n },\n // Credited to the VOLUNTEER who submits a completed profile they\n // filled for someone else (PENDING_APPROVAL transition in fill mode).\n udp_completed: {\n category: 'civic',\n points: 20,\n cap: { kind: 'once-per-source' },\n verifierGated: false,\n label: 'Completed a profile for someone',\n catalogKey: 'ruleUdpFinish',\n },\n // Credited to the VERIFIER (leader/official) who approves a detailed\n // profile. Distinct from `udp_approved`, which credits the profile\n // OWNER. once-per-source keyed on the approved profile.\n udp_verified: {\n category: 'civic',\n points: 10,\n cap: { kind: 'once-per-source' },\n verifierGated: true,\n label: 'Verified a profile',\n catalogKey: 'ruleUdpVerify',\n },\n\n // ─── Engagement ───────────────────────────────────────────────────────\n event_organized: {\n category: 'engagement',\n // Awarded at event creation (no attendance signal yet — that\n // would need an event-completion flow). Daily cap of 2 throttles\n // mass-create farming; per-source uniqueness still enforced by\n // the idempotency index so editing an event isn't a second emit.\n points: 50,\n cap: { kind: 'daily', max: 2 },\n verifierGated: false,\n label: 'Event organized',\n catalogKey: 'ruleEventOrganized',\n },\n poll_created: {\n category: 'engagement',\n points: 10,\n cap: { kind: 'daily', max: 3 },\n verifierGated: false,\n label: 'Poll created',\n catalogKey: 'rulePollCreated',\n },\n poll_voted: {\n category: 'engagement',\n points: 2,\n cap: { kind: 'daily', max: 10 },\n verifierGated: false,\n label: 'Poll vote',\n catalogKey: 'rulePollVoted',\n },\n\n // ─── Engagement — content the community upvoted past the bar ──────────\n // These fire ONCE per content item, the first time its net vote\n // `score` crosses QUALIFYING_UPVOTES upward (see engagement.service\n // setVote hook). Awarded to the content's author. Anti-farming is\n // structural: you can't earn by self-posting — the community has to\n // actually upvote you. once-per-source keyed on the content id.\n post_qualified: {\n category: 'engagement',\n points: 5,\n cap: { kind: 'once-per-source' },\n verifierGated: false,\n label: 'Post the community backed',\n catalogKey: 'rulePostBacked',\n },\n poll_qualified: {\n category: 'engagement',\n points: 5,\n cap: { kind: 'once-per-source' },\n verifierGated: false,\n label: 'Poll the community backed',\n catalogKey: 'rulePollBacked',\n },\n crowdfunding_qualified: {\n category: 'civic',\n points: 5,\n cap: { kind: 'once-per-source' },\n verifierGated: false,\n label: 'Fundraiser the community backed',\n catalogKey: 'ruleFundraiserBacked',\n },\n suggestions_complaints_qualified: {\n category: 'civic',\n points: 7,\n cap: { kind: 'once-per-source' },\n verifierGated: false,\n label: 'Suggestion/complaint the community backed',\n catalogKey: 'ruleSuggestionBacked',\n },\n // A comment the community upvoted past QUALIFYING_UPVOTES_COMMENT (5).\n // Smaller unit than a post, lower bar, awarded to the comment author\n // once per comment.\n comment_qualified: {\n category: 'engagement',\n points: 5,\n cap: { kind: 'once-per-source' },\n verifierGated: false,\n label: 'Comment the community backed',\n catalogKey: 'ruleCommentBacked',\n isNew: true,\n },\n\n // ─── Leadership ───────────────────────────────────────────────────────\n // Fires when a user's reform role is elevated through any of the\n // application flows (volunteer-application approval, leader\n // promotion). The label stays generic so the breakdown page reads\n // sensibly regardless of which level was actually granted; the\n // metadata field on the event row carries the specific role.\n reform_role_granted: {\n category: 'leadership',\n points: 200,\n cap: { kind: 'once-per-source' },\n verifierGated: true,\n label: 'Volunteer role granted',\n catalogKey: 'ruleVolunteer',\n },\n // Promotion to a LEADER role. Distinct from `reform_role_granted`\n // (volunteer, 200) so the two milestones carry their own weight and\n // breakdown line. Eligibility (>= LEADER_ELIGIBILITY_SCORE) is\n // enforced in the leader-application flow, not here.\n leader_role_granted: {\n category: 'leadership',\n points: 500,\n cap: { kind: 'once-per-source' },\n verifierGated: true,\n label: 'Leader role granted',\n catalogKey: 'ruleLeader',\n },\n // Credited to the LEADER each time a new volunteer is added in their\n // area. once-per-source keyed on the recruited volunteer's user id —\n // one award per person recruited.\n leader_added_volunteer: {\n category: 'leadership',\n points: 10,\n cap: { kind: 'once-per-source' },\n verifierGated: false,\n label: 'Recruited a volunteer',\n catalogKey: 'ruleRecruit',\n },\n // Credited to the recruiting LEADER when a volunteer they added\n // reaches MENTEE_MILESTONE_SCORE. Fired by the cross-user milestone\n // check in the emitter. once-per-source keyed on the mentee's user\n // id — one bonus per mentee who crosses the bar.\n leader_mentee_reached_milestone: {\n category: 'leadership',\n points: 100,\n cap: { kind: 'once-per-source' },\n verifierGated: false,\n label: 'Mentored a rising volunteer',\n catalogKey: 'ruleMentee',\n },\n official_community_run: {\n category: 'leadership',\n points: 100,\n cap: { kind: 'once-per-source' },\n verifierGated: true,\n label: 'Official community',\n catalogKey: 'ruleOfficialCommunity',\n },\n};\n\n// ─── Display catalog (\"How you earn points\") ────────────────────────────────\n// DERIVED from SCORE_RULES (see `buildScoreCatalog`) so the user-facing\n// \"How you earn points\" surface lists EVERY rule that actually awards\n// points — it can never silently omit an earning path. Labels are i18n\n// KEYS (resolved in the `socialScore` namespace); point figures are\n// numbers-as-data derived straight from each rule's `points`.\n\nexport interface ScoreRuleRef {\n /** i18n key (socialScore namespace) for the action description. */\n labelKey: string;\n /** Display reward derived from the rule, e.g. \"+5\". */\n points: string;\n /** Marks a freshly-added rule with a \"New\" chip. */\n isNew?: boolean;\n}\n\nexport interface ScoreRuleGroup {\n category: ScoreCategory;\n /** i18n key (socialScore namespace) for the section heading. */\n groupKey: string;\n rules: ScoreRuleRef[];\n}\n\n/** Display order of the catalog sections (Profile, Community, Civic, Leadership). */\nconst CATALOG_GROUP_ORDER: ScoreCategory[] = ['profile', 'engagement', 'civic', 'leadership'];\n\n/** Category → section-heading i18n key. */\nconst CATEGORY_GROUP_KEY: Record<ScoreCategory, string> = {\n profile: 'grpProfile',\n engagement: 'grpCommunity',\n civic: 'grpCivic',\n leadership: 'grpLeadership',\n};\n\n/**\n * Build the \"How you earn points\" catalog by projecting SCORE_RULES into\n * display sections. Every non-hidden rule becomes a row under its\n * category, so the catalog is guaranteed to stay in lockstep with the\n * award table — add a rule and it appears automatically.\n */\nexport function buildScoreCatalog(): ScoreRuleGroup[] {\n const groups: ScoreRuleGroup[] = [];\n for (const category of CATALOG_GROUP_ORDER) {\n const rules: ScoreRuleRef[] = [];\n for (const rule of Object.values(SCORE_RULES)) {\n if (rule.category !== category || rule.catalogHidden) continue;\n rules.push({\n labelKey: rule.catalogKey,\n points: `+${rule.points}`,\n ...(rule.isNew ? { isNew: true } : {}),\n });\n }\n if (rules.length > 0) {\n groups.push({ category, groupKey: CATEGORY_GROUP_KEY[category], rules });\n }\n }\n return groups;\n}\n\nexport const SCORE_RULE_CATALOG: ScoreRuleGroup[] = buildScoreCatalog();\n"]}
|
|
@@ -132,4 +132,41 @@ export declare const leaderboardEntrySchema: z.ZodObject<{
|
|
|
132
132
|
avatarUrl: z.ZodNullable<z.ZodString>;
|
|
133
133
|
}, z.core.$strip>;
|
|
134
134
|
export type LeaderboardEntry = z.infer<typeof leaderboardEntrySchema>;
|
|
135
|
+
/**
|
|
136
|
+
* Area scope level for the leaderboard. The board SELF-RESOLVES the area
|
|
137
|
+
* from the signed-in user's residence lineage, so the client sends only
|
|
138
|
+
* the level. `country` backs the "National" tab; the platform-wide
|
|
139
|
+
* "Global" board carries no scope (null on the response).
|
|
140
|
+
*/
|
|
141
|
+
export declare const LEADERBOARD_SCOPE_VALUES: readonly ["locality", "district", "state", "country"];
|
|
142
|
+
export type LeaderboardScope = (typeof LEADERBOARD_SCOPE_VALUES)[number];
|
|
143
|
+
export declare const leaderboardScopeSchema: z.ZodEnum<{
|
|
144
|
+
district: "district";
|
|
145
|
+
state: "state";
|
|
146
|
+
country: "country";
|
|
147
|
+
locality: "locality";
|
|
148
|
+
}>;
|
|
149
|
+
/** The full leaderboard API response envelope. */
|
|
150
|
+
export declare const leaderboardResponseSchema: z.ZodObject<{
|
|
151
|
+
items: z.ZodArray<z.ZodObject<{
|
|
152
|
+
userId: z.ZodString;
|
|
153
|
+
totalScore: z.ZodNumber;
|
|
154
|
+
tier: z.ZodString;
|
|
155
|
+
rank: z.ZodNumber;
|
|
156
|
+
displayName: z.ZodString;
|
|
157
|
+
username: z.ZodNullable<z.ZodString>;
|
|
158
|
+
avatarUrl: z.ZodNullable<z.ZodString>;
|
|
159
|
+
}, z.core.$strip>>;
|
|
160
|
+
scope: z.ZodNullable<z.ZodEnum<{
|
|
161
|
+
district: "district";
|
|
162
|
+
state: "state";
|
|
163
|
+
country: "country";
|
|
164
|
+
locality: "locality";
|
|
165
|
+
}>>;
|
|
166
|
+
scopeAreaName: z.ZodNullable<z.ZodString>;
|
|
167
|
+
viewerRank: z.ZodNullable<z.ZodNumber>;
|
|
168
|
+
viewerScore: z.ZodNumber;
|
|
169
|
+
unavailable: z.ZodBoolean;
|
|
170
|
+
}, z.core.$strip>;
|
|
171
|
+
export type LeaderboardResponse = z.infer<typeof leaderboardResponseSchema>;
|
|
135
172
|
//# sourceMappingURL=wire.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/social-score/wire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,uEAAuE;AACvE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,kEAAkE;AAClE,eAAO,MAAM,qBAAqB;;;;;iBAKhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAK/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,yEAAyE;AACzE,eAAO,MAAM,wBAAwB;;;;iBAInC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,2DAA2D;AAC3D,eAAO,MAAM,sBAAsB;;;;;;;;iBAQjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/social-score/wire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,uEAAuE;AACvE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,kEAAkE;AAClE,eAAO,MAAM,qBAAqB;;;;;iBAKhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAK/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,yEAAyE;AACzE,eAAO,MAAM,wBAAwB;;;;iBAInC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,2DAA2D;AAC3D,eAAO,MAAM,sBAAsB;;;;;;;;iBAQjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,uDAAwD,CAAC;AAC9F,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AACzE,eAAO,MAAM,sBAAsB;;;;;EAAmC,CAAC;AAEvE,kDAAkD;AAClD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;iBAcpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
|
|
@@ -57,4 +57,28 @@ export const leaderboardEntrySchema = z.object({
|
|
|
57
57
|
username: z.string().nullable(),
|
|
58
58
|
avatarUrl: z.string().nullable(),
|
|
59
59
|
});
|
|
60
|
+
/**
|
|
61
|
+
* Area scope level for the leaderboard. The board SELF-RESOLVES the area
|
|
62
|
+
* from the signed-in user's residence lineage, so the client sends only
|
|
63
|
+
* the level. `country` backs the "National" tab; the platform-wide
|
|
64
|
+
* "Global" board carries no scope (null on the response).
|
|
65
|
+
*/
|
|
66
|
+
export const LEADERBOARD_SCOPE_VALUES = ['locality', 'district', 'state', 'country'];
|
|
67
|
+
export const leaderboardScopeSchema = z.enum(LEADERBOARD_SCOPE_VALUES);
|
|
68
|
+
/** The full leaderboard API response envelope. */
|
|
69
|
+
export const leaderboardResponseSchema = z.object({
|
|
70
|
+
items: z.array(leaderboardEntrySchema),
|
|
71
|
+
/** Scope applied, or null for the platform-wide ("Global") board. */
|
|
72
|
+
scope: leaderboardScopeSchema.nullable(),
|
|
73
|
+
/** Display name of the scoped area (e.g. "Patna"), null for Global. */
|
|
74
|
+
scopeAreaName: z.string().nullable(),
|
|
75
|
+
/** The viewer's own rank within this scope; null when unranked (0 pts). */
|
|
76
|
+
viewerRank: z.number().nullable(),
|
|
77
|
+
/** The viewer's own total score. */
|
|
78
|
+
viewerScore: z.number(),
|
|
79
|
+
/** True when a scope was requested but the viewer has no area at that
|
|
80
|
+
* level yet (e.g. address not filled in) — prompt them instead of
|
|
81
|
+
* silently falling back to Global. */
|
|
82
|
+
unavailable: z.boolean(),
|
|
83
|
+
});
|
|
60
84
|
//# sourceMappingURL=wire.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../src/social-score/wire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,uEAAuE;AACvE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,mBAAmB;IAC7B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,0BAA0B;IAC1B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;CACvB,CAAC,CAAC;AAGH,kEAAkE;AAClE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;CACvB,CAAC,CAAC;AAGH;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,UAAU,EAAE,qBAAqB;IACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC;CACxC,CAAC,CAAC;AAGH,yEAAyE;AACzE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAGH,2DAA2D;AAC3D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC","sourcesContent":["/**\n * Social-score WIRE contracts — the JSON shapes the social-score API\n * returns. Defined as Zod schemas so the backend read service can type\n * (and optionally validate) its responses and every frontend infers the\n * exact same shape from one place. Timestamps are ISO strings (the\n * over-the-wire form); the backend serialises Dates before sending.\n *\n * `tier` is a plain string here (not the tier enum) because it is a\n * legacy compat field the UI no longer renders by name — see\n * `./tiers.ts`. Keeping it loose avoids coupling the wire contract to\n * the soon-to-retire tier slugs.\n *\n * @module community-schema/social-score/wire\n */\n\nimport { z } from 'zod';\nimport { scoreCategorySchema } from './categories.js';\nimport { scoreKindSchema } from './kinds.js';\n\n/** One row of the recent-activity history on the breakdown surface. */\nexport const recentScoreEventSchema = z.object({\n kind: scoreKindSchema,\n category: scoreCategorySchema,\n pointsAwarded: z.number(),\n label: z.string(),\n /** ISO-8601 timestamp. */\n occurredAt: z.string(),\n});\nexport type RecentScoreEvent = z.infer<typeof recentScoreEventSchema>;\n\n/** Per-category point totals — every bucket is always present. */\nexport const scoreByCategorySchema = z.object({\n profile: z.number(),\n civic: z.number(),\n engagement: z.number(),\n leadership: z.number(),\n});\nexport type ScoreByCategory = z.infer<typeof scoreByCategorySchema>;\n\n/**\n * The signed-in user's own breakdown — total, per-category split, the\n * legacy tier slug, and the most recent awarding events.\n */\nexport const scoreBreakdownSchema = z.object({\n total: z.number(),\n byCategory: scoreByCategorySchema,\n tier: z.string(),\n recent: z.array(recentScoreEventSchema),\n});\nexport type ScoreBreakdown = z.infer<typeof scoreBreakdownSchema>;\n\n/** Public summary shown on author bylines — total + legacy tier slug. */\nexport const publicScoreSummarySchema = z.object({\n userId: z.string(),\n totalScore: z.number(),\n tier: z.string(),\n});\nexport type PublicScoreSummary = z.infer<typeof publicScoreSummarySchema>;\n\n/** One leaderboard row (top-N, optionally area-scoped). */\nexport const leaderboardEntrySchema = z.object({\n userId: z.string(),\n totalScore: z.number(),\n tier: z.string(),\n rank: z.number(),\n displayName: z.string(),\n username: z.string().nullable(),\n avatarUrl: z.string().nullable(),\n});\nexport type LeaderboardEntry = z.infer<typeof leaderboardEntrySchema>;\n"]}
|
|
1
|
+
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../src/social-score/wire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,uEAAuE;AACvE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,mBAAmB;IAC7B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,0BAA0B;IAC1B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;CACvB,CAAC,CAAC;AAGH,kEAAkE;AAClE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;CACvB,CAAC,CAAC;AAGH;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,UAAU,EAAE,qBAAqB;IACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC;CACxC,CAAC,CAAC;AAGH,yEAAyE;AACzE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAGH,2DAA2D;AAC3D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAGH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,CAAU,CAAC;AAE9F,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAEvE,kDAAkD;AAClD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC;IACtC,qEAAqE;IACrE,KAAK,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IACxC,uEAAuE;IACvE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,2EAA2E;IAC3E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,oCAAoC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB;;2CAEuC;IACvC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;CACzB,CAAC,CAAC","sourcesContent":["/**\n * Social-score WIRE contracts — the JSON shapes the social-score API\n * returns. Defined as Zod schemas so the backend read service can type\n * (and optionally validate) its responses and every frontend infers the\n * exact same shape from one place. Timestamps are ISO strings (the\n * over-the-wire form); the backend serialises Dates before sending.\n *\n * `tier` is a plain string here (not the tier enum) because it is a\n * legacy compat field the UI no longer renders by name — see\n * `./tiers.ts`. Keeping it loose avoids coupling the wire contract to\n * the soon-to-retire tier slugs.\n *\n * @module community-schema/social-score/wire\n */\n\nimport { z } from 'zod';\nimport { scoreCategorySchema } from './categories.js';\nimport { scoreKindSchema } from './kinds.js';\n\n/** One row of the recent-activity history on the breakdown surface. */\nexport const recentScoreEventSchema = z.object({\n kind: scoreKindSchema,\n category: scoreCategorySchema,\n pointsAwarded: z.number(),\n label: z.string(),\n /** ISO-8601 timestamp. */\n occurredAt: z.string(),\n});\nexport type RecentScoreEvent = z.infer<typeof recentScoreEventSchema>;\n\n/** Per-category point totals — every bucket is always present. */\nexport const scoreByCategorySchema = z.object({\n profile: z.number(),\n civic: z.number(),\n engagement: z.number(),\n leadership: z.number(),\n});\nexport type ScoreByCategory = z.infer<typeof scoreByCategorySchema>;\n\n/**\n * The signed-in user's own breakdown — total, per-category split, the\n * legacy tier slug, and the most recent awarding events.\n */\nexport const scoreBreakdownSchema = z.object({\n total: z.number(),\n byCategory: scoreByCategorySchema,\n tier: z.string(),\n recent: z.array(recentScoreEventSchema),\n});\nexport type ScoreBreakdown = z.infer<typeof scoreBreakdownSchema>;\n\n/** Public summary shown on author bylines — total + legacy tier slug. */\nexport const publicScoreSummarySchema = z.object({\n userId: z.string(),\n totalScore: z.number(),\n tier: z.string(),\n});\nexport type PublicScoreSummary = z.infer<typeof publicScoreSummarySchema>;\n\n/** One leaderboard row (top-N, optionally area-scoped). */\nexport const leaderboardEntrySchema = z.object({\n userId: z.string(),\n totalScore: z.number(),\n tier: z.string(),\n rank: z.number(),\n displayName: z.string(),\n username: z.string().nullable(),\n avatarUrl: z.string().nullable(),\n});\nexport type LeaderboardEntry = z.infer<typeof leaderboardEntrySchema>;\n\n/**\n * Area scope level for the leaderboard. The board SELF-RESOLVES the area\n * from the signed-in user's residence lineage, so the client sends only\n * the level. `country` backs the \"National\" tab; the platform-wide\n * \"Global\" board carries no scope (null on the response).\n */\nexport const LEADERBOARD_SCOPE_VALUES = ['locality', 'district', 'state', 'country'] as const;\nexport type LeaderboardScope = (typeof LEADERBOARD_SCOPE_VALUES)[number];\nexport const leaderboardScopeSchema = z.enum(LEADERBOARD_SCOPE_VALUES);\n\n/** The full leaderboard API response envelope. */\nexport const leaderboardResponseSchema = z.object({\n items: z.array(leaderboardEntrySchema),\n /** Scope applied, or null for the platform-wide (\"Global\") board. */\n scope: leaderboardScopeSchema.nullable(),\n /** Display name of the scoped area (e.g. \"Patna\"), null for Global. */\n scopeAreaName: z.string().nullable(),\n /** The viewer's own rank within this scope; null when unranked (0 pts). */\n viewerRank: z.number().nullable(),\n /** The viewer's own total score. */\n viewerScore: z.number(),\n /** True when a scope was requested but the viewer has no area at that\n * level yet (e.g. address not filled in) — prompt them instead of\n * silently falling back to Global. */\n unavailable: z.boolean(),\n});\nexport type LeaderboardResponse = z.infer<typeof leaderboardResponseSchema>;\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jansathi-community-schema",
|
|
3
|
-
"version": "0.50.
|
|
3
|
+
"version": "0.50.2",
|
|
4
4
|
"description": "Shared Zod schemas + TypeScript types for the Jansathi hyperlocal community feature (feed, posts, engagement, social graph, groups, communities).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|