@timardex/cluemart-shared 1.5.738 → 1.5.740

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/{post-DmsQS24-.d.ts → ad-CqfSmtG_.d.ts} +2 -168
  2. package/dist/{post-C3-IUdTA.d.mts → ad-sgD-lSbO.d.mts} +2 -168
  3. package/dist/{chunk-KINIHSDW.mjs → chunk-6OBMKN7F.mjs} +9 -9
  4. package/dist/chunk-6OBMKN7F.mjs.map +1 -0
  5. package/dist/{chunk-6IEQBYEB.mjs → chunk-6YISZ3OD.mjs} +2 -2
  6. package/dist/{chunk-5SCGH7UX.mjs → chunk-7VNXO63T.mjs} +108 -6
  7. package/dist/chunk-7VNXO63T.mjs.map +1 -0
  8. package/dist/{chunk-HGS6TJTA.mjs → chunk-XWFE6U3E.mjs} +8 -2
  9. package/dist/chunk-XWFE6U3E.mjs.map +1 -0
  10. package/dist/formFields/index.cjs +16 -0
  11. package/dist/formFields/index.cjs.map +1 -1
  12. package/dist/formFields/index.mjs +3 -3
  13. package/dist/graphql/index.d.mts +2 -2
  14. package/dist/graphql/index.d.ts +2 -2
  15. package/dist/hooks/index.cjs +63 -60
  16. package/dist/hooks/index.cjs.map +1 -1
  17. package/dist/hooks/index.d.mts +2 -2
  18. package/dist/hooks/index.d.ts +2 -2
  19. package/dist/hooks/index.mjs +11 -12
  20. package/dist/hooks/index.mjs.map +1 -1
  21. package/dist/index.cjs +115 -108
  22. package/dist/index.cjs.map +1 -1
  23. package/dist/index.d.mts +8 -7
  24. package/dist/index.d.ts +8 -7
  25. package/dist/index.mjs +114 -108
  26. package/dist/index.mjs.map +1 -1
  27. package/dist/post-CdLrXuH1.d.mts +279 -0
  28. package/dist/post-D6n4Vszs.d.ts +279 -0
  29. package/dist/sharing/index.cjs +23 -7
  30. package/dist/sharing/index.cjs.map +1 -1
  31. package/dist/sharing/index.d.mts +3 -3
  32. package/dist/sharing/index.d.ts +3 -3
  33. package/dist/sharing/index.mjs +3 -3
  34. package/dist/types/index.cjs +3 -3
  35. package/dist/types/index.cjs.map +1 -1
  36. package/dist/types/index.d.mts +2 -2
  37. package/dist/types/index.d.ts +2 -2
  38. package/dist/types/index.mjs +2 -4
  39. package/dist/utils/index.cjs +18 -0
  40. package/dist/utils/index.cjs.map +1 -1
  41. package/dist/utils/index.d.mts +3 -2
  42. package/dist/utils/index.d.ts +3 -2
  43. package/dist/utils/index.mjs +4 -2
  44. package/package.json +1 -1
  45. package/dist/chunk-5SCGH7UX.mjs.map +0 -1
  46. package/dist/chunk-HGS6TJTA.mjs.map +0 -1
  47. package/dist/chunk-HV5AID7P.mjs +0 -105
  48. package/dist/chunk-HV5AID7P.mjs.map +0 -1
  49. package/dist/chunk-KINIHSDW.mjs.map +0 -1
  50. package/dist/dailyClue-CvhLv9hJ.d.mts +0 -111
  51. package/dist/dailyClue-CvhLv9hJ.d.ts +0 -111
  52. /package/dist/{chunk-6IEQBYEB.mjs.map → chunk-6YISZ3OD.mjs.map} +0 -0
@@ -1,7 +1,6 @@
1
1
  import { EnumOSPlatform, EnumUserRole, EnumReward, EnumSubscriptionStatus, EnumUserLicence, EnumResourceType, EnumPartnerType } from './enums/index.js';
2
- import { Y as ResourceImageType, L as LocationType, a0 as TermsAgreement, A as AssociateType, i as UserLicenceType, K as PromoCodeType, D as DateTimeType, u as CreateFormData, t as BaseResourceType, B as BaseResourceTypeFormData, z as OwnerType, W as ResourceContactDetailsType, Z as SocialMediaType } from './global-585slmSH.js';
2
+ import { Y as ResourceImageType, L as LocationType, a0 as TermsAgreement, A as AssociateType, i as UserLicenceType, K as PromoCodeType, D as DateTimeType, u as CreateFormData, t as BaseResourceType, B as BaseResourceTypeFormData, W as ResourceContactDetailsType, Z as SocialMediaType, z as OwnerType } from './global-585slmSH.js';
3
3
  import { PosterAssetId } from './images/index.js';
4
- import { d as GlobalGameData, E as EnumGameType, D as DailyClueBaseGame, a as DailyClueGameData, G as GameDate } from './dailyClue-CvhLv9hJ.js';
5
4
 
6
5
  type UserFormData = {
7
6
  _id?: string;
@@ -147,94 +146,6 @@ type AppSettingsType = AppSettingsFormData & {
147
146
  updatedAt: Date | null;
148
147
  };
149
148
 
150
- type PuzzleAnswer = {
151
- answerId: string;
152
- answer: string;
153
- correct: boolean;
154
- };
155
- type PuzzleQuestion = {
156
- answers: PuzzleAnswer[];
157
- question: string;
158
- questionId: string;
159
- };
160
- /**
161
- * Stores only the answerId and the questionId of the selected answer.
162
- */
163
- type PuzzleAnsweredQuestion = {
164
- selectedAnswerId: string;
165
- questionId: string;
166
- };
167
- type PuzzleBaseGame = {
168
- questions: PuzzleQuestion[];
169
- };
170
- type PuzzleGameData = GlobalGameData & {
171
- gameFields: PuzzleBaseGame;
172
- /**
173
- * Stores user answers only.
174
- * Never store correctness from client.
175
- */
176
- answeredQuestions: PuzzleAnsweredQuestion[];
177
- };
178
-
179
- type BaseGameMap = {
180
- [EnumGameType.DAILY_CLUE]: DailyClueBaseGame;
181
- [EnumGameType.MINI_QUIZ]: PuzzleBaseGame;
182
- [EnumGameType.ODD_ONE_OUT]: PuzzleBaseGame;
183
- };
184
- type BaseGameType = {
185
- gameType: EnumGameType;
186
- gameTypeId: string;
187
- gameTitle: string;
188
- } & {
189
- [K in keyof BaseGameMap]?: BaseGameMap[K] | null;
190
- };
191
- declare enum EnumGameStatus {
192
- GAME_COMPLETED = "GAME_COMPLETED",
193
- GAME_IN_PROGRESS = "GAME_IN_PROGRESS",
194
- GAME_LEFT = "GAME_LEFT",
195
- GAME_STARTED = "GAME_STARTED"
196
- }
197
- type GameHistory = Pick<BaseGameType, "gameTitle" | "gameType" | "gameTypeId"> & {
198
- createdAt: Date;
199
- gameDate: GameDate;
200
- gameStatus: EnumGameStatus;
201
- /** Per-event delta. Not persisted for overallGamePoints (computed at read time). */
202
- pointsEarned: number;
203
- /** Running total for this game instance; computed at read time, not stored in Mongo. */
204
- overallGamePoints?: number;
205
- };
206
- type GameDataMap = {
207
- [EnumGameType.DAILY_CLUE]: DailyClueGameData;
208
- [EnumGameType.MINI_QUIZ]: PuzzleGameData;
209
- [EnumGameType.ODD_ONE_OUT]: PuzzleGameData;
210
- };
211
- type GameDataType = {
212
- [K in keyof GameDataMap]?: GameDataMap[K] | null;
213
- };
214
- type GameType = Pick<BaseGameType, "gameTitle" | "gameType" | "gameTypeId"> & {
215
- _id: string;
216
- active: boolean;
217
- createdAt: Date;
218
- gameData: GameDataType;
219
- gameHistory: GameHistory[] | null;
220
- updatedAt: Date | null;
221
- };
222
- type GameDocType = {
223
- _id: string;
224
- active: boolean;
225
- createdAt: Date;
226
- deletedAt: Date | null;
227
- games: GameType[] | null;
228
- owner: OwnerType;
229
- points: number;
230
- updatedAt: Date | null;
231
- };
232
- type GameLeaderboard = {
233
- gameHistory: GameHistory[] | null;
234
- overallPoints: number;
235
- owner: OwnerType;
236
- };
237
-
238
149
  interface PosterInputType {
239
150
  description: string;
240
151
  posterName: PosterAssetId;
@@ -379,81 +290,4 @@ interface AdType extends AdFormData {
379
290
  updatedAt: Date | null;
380
291
  }
381
292
 
382
- declare enum EnumPostType {
383
- DAILY_MEETS = "daily_meets",
384
- DAILY_TIPS = "daily_tips",
385
- DAILY_GAMES = "daily_games"
386
- }
387
- declare enum EnumPostContentType {
388
- GAME = "game",
389
- IMAGE = "image",
390
- LIST = "list",
391
- TEXTAREA = "textarea",
392
- VIDEO = "video"
393
- }
394
- type PostFileInput = {
395
- source: File;
396
- title?: string;
397
- };
398
- type PostContentTextarea = {
399
- textarea: {
400
- title?: string;
401
- data: string;
402
- };
403
- };
404
- type PostContentImage = {
405
- images: ResourceImageType[] | null;
406
- imagesUpload?: PostFileInput[] | null;
407
- };
408
- type PostContentVideo = {
409
- video: {
410
- source: string;
411
- title?: string;
412
- };
413
- };
414
- type PostContentList = {
415
- list: {
416
- title?: string;
417
- items: {
418
- text: string;
419
- }[];
420
- };
421
- };
422
- type PostContentGame = {
423
- game: BaseGameType;
424
- };
425
- type PostContentData = PostContentGame | PostContentTextarea | PostContentImage | PostContentVideo | PostContentList;
426
- type PostContentFormData = {
427
- contentData?: PostContentData | null;
428
- contentOrder?: number | null;
429
- contentType?: EnumPostContentType | null;
430
- };
431
- interface PostFormData {
432
- active: boolean;
433
- caption: string;
434
- content: PostContentFormData[];
435
- cover?: ResourceImageType | null;
436
- coverUpload?: PostFileInput | null;
437
- postType: EnumPostType;
438
- resource?: {
439
- resourceId: string;
440
- resourceType: EnumResourceType;
441
- resourceRegion: string;
442
- } | null;
443
- tags?: string[] | null;
444
- title: string;
445
- notifyUsers?: boolean | null;
446
- }
447
- type CreatePostFormData = CreateFormData<PostFormData>;
448
- type PostContentType = Omit<PostContentFormData, "contentData"> & {
449
- contentData: Omit<PostContentData, "imagesUpload">;
450
- };
451
- type PostType = Omit<PostFormData, "content" | "coverUpload"> & {
452
- _id: string;
453
- content: PostContentType[];
454
- createdAt: Date;
455
- deletedAt: Date | null;
456
- updatedAt: Date | null;
457
- };
458
-
459
- export { type PostContentList as $, type AuthPayloadType as A, type AdFormState as B, type CreateUserFormData as C, type AdResource as D, EnumAdStatus as E, type BaseGameMap as F, type GameDocType as G, type BaseGameType as H, type CreateAdFormData as I, EnumAdShowOn as J, EnumAdStyle as K, EnumAdType as L, EnumGameStatus as M, EnumPostContentType as N, EnumVerificationType as O, type PartnerType as P, type GameHistory as Q, type RefreshTokenPayloadType as R, type SafeUserType as S, type GameType as T, type UserFormData as U, type LoginFormData as V, type MarketingMaterialRequestInputType as W, type PostContentData as X, type PostContentFormData as Y, type PostContentGame as Z, type PostContentImage as _, type RedeemRewardResponse as a, type PostContentTextarea as a0, type PostContentType as a1, type PostContentVideo as a2, type PostFileInput as a3, type PosterInputType as a4, type PuzzleAnswer as a5, type PuzzleAnsweredQuestion as a6, type PuzzleBaseGame as a7, type PuzzleGameData as a8, type PuzzleQuestion as a9, type RedeemRewardInput as aa, type RedeemedReward as ab, type RegisterFormData as ac, type RequestPasswordResetFormData as ad, type ResetPasswordFormData as ae, type SchoolCampaignType as af, type SchoolRegisteredUserType as ag, type StripeSubscription as ah, type SubscriptionPlanData as ai, type SubscriptionPricingData as aj, type UserActivity as ak, type UserActivityEvent as al, type UserType as am, type ValidateVerificationTokenFormData as an, type ResourceByUser as b, type AdType as c, type SubscriptionPlansResponse as d, type SubscriptionStatusData as e, type PostType as f, EnumPostType as g, type AppSettingsType as h, type GameLeaderboard as i, type SchoolReturnType as j, type SchoolType as k, type CreateLoginFormData as l, type CreateRegisterFormData as m, type CreateRequestPasswordResetFormData as n, type CreateValidateVerificationTokenFormData as o, type CreateResetPasswordFormData as p, type PartnerFormData as q, type AdFormData as r, type CreateAdFormState as s, type CreatePartnerFormData as t, type PostFormData as u, type CreatePostFormData as v, type AppSettingsFormData as w, type CreateAppSettingsFormData as x, type SchoolFormData as y, type CreateSchoolFormData as z };
293
+ export { type AuthPayloadType as A, EnumAdType as B, type CreateUserFormData as C, EnumVerificationType as D, EnumAdStatus as E, type PosterInputType as F, type RedeemRewardInput as G, type RedeemedReward as H, type RegisterFormData as I, type RequestPasswordResetFormData as J, type ResetPasswordFormData as K, type LoginFormData as L, type MarketingMaterialRequestInputType as M, type SchoolCampaignType as N, type SchoolRegisteredUserType as O, type PartnerType as P, type StripeSubscription as Q, type RefreshTokenPayloadType as R, type SafeUserType as S, type SubscriptionPlanData as T, type UserFormData as U, type SubscriptionPricingData as V, type UserActivity as W, type UserActivityEvent as X, type UserType as Y, type ValidateVerificationTokenFormData as Z, type RedeemRewardResponse as a, type ResourceByUser as b, type AdType as c, type SubscriptionPlansResponse as d, type SubscriptionStatusData as e, type AppSettingsType as f, type SchoolReturnType as g, type SchoolType as h, type CreateLoginFormData as i, type CreateRegisterFormData as j, type CreateRequestPasswordResetFormData as k, type CreateValidateVerificationTokenFormData as l, type CreateResetPasswordFormData as m, type PartnerFormData as n, type AdFormData as o, type CreateAdFormState as p, type CreatePartnerFormData as q, type AppSettingsFormData as r, type CreateAppSettingsFormData as s, type SchoolFormData as t, type CreateSchoolFormData as u, type AdFormState as v, type AdResource as w, type CreateAdFormData as x, EnumAdShowOn as y, EnumAdStyle as z };
@@ -1,7 +1,6 @@
1
1
  import { EnumOSPlatform, EnumUserRole, EnumReward, EnumSubscriptionStatus, EnumUserLicence, EnumResourceType, EnumPartnerType } from './enums/index.mjs';
2
- import { Y as ResourceImageType, L as LocationType, a0 as TermsAgreement, A as AssociateType, i as UserLicenceType, K as PromoCodeType, D as DateTimeType, u as CreateFormData, t as BaseResourceType, B as BaseResourceTypeFormData, z as OwnerType, W as ResourceContactDetailsType, Z as SocialMediaType } from './global-BEUzBSyY.mjs';
2
+ import { Y as ResourceImageType, L as LocationType, a0 as TermsAgreement, A as AssociateType, i as UserLicenceType, K as PromoCodeType, D as DateTimeType, u as CreateFormData, t as BaseResourceType, B as BaseResourceTypeFormData, W as ResourceContactDetailsType, Z as SocialMediaType, z as OwnerType } from './global-BEUzBSyY.mjs';
3
3
  import { PosterAssetId } from './images/index.mjs';
4
- import { d as GlobalGameData, E as EnumGameType, D as DailyClueBaseGame, a as DailyClueGameData, G as GameDate } from './dailyClue-CvhLv9hJ.mjs';
5
4
 
6
5
  type UserFormData = {
7
6
  _id?: string;
@@ -147,94 +146,6 @@ type AppSettingsType = AppSettingsFormData & {
147
146
  updatedAt: Date | null;
148
147
  };
149
148
 
150
- type PuzzleAnswer = {
151
- answerId: string;
152
- answer: string;
153
- correct: boolean;
154
- };
155
- type PuzzleQuestion = {
156
- answers: PuzzleAnswer[];
157
- question: string;
158
- questionId: string;
159
- };
160
- /**
161
- * Stores only the answerId and the questionId of the selected answer.
162
- */
163
- type PuzzleAnsweredQuestion = {
164
- selectedAnswerId: string;
165
- questionId: string;
166
- };
167
- type PuzzleBaseGame = {
168
- questions: PuzzleQuestion[];
169
- };
170
- type PuzzleGameData = GlobalGameData & {
171
- gameFields: PuzzleBaseGame;
172
- /**
173
- * Stores user answers only.
174
- * Never store correctness from client.
175
- */
176
- answeredQuestions: PuzzleAnsweredQuestion[];
177
- };
178
-
179
- type BaseGameMap = {
180
- [EnumGameType.DAILY_CLUE]: DailyClueBaseGame;
181
- [EnumGameType.MINI_QUIZ]: PuzzleBaseGame;
182
- [EnumGameType.ODD_ONE_OUT]: PuzzleBaseGame;
183
- };
184
- type BaseGameType = {
185
- gameType: EnumGameType;
186
- gameTypeId: string;
187
- gameTitle: string;
188
- } & {
189
- [K in keyof BaseGameMap]?: BaseGameMap[K] | null;
190
- };
191
- declare enum EnumGameStatus {
192
- GAME_COMPLETED = "GAME_COMPLETED",
193
- GAME_IN_PROGRESS = "GAME_IN_PROGRESS",
194
- GAME_LEFT = "GAME_LEFT",
195
- GAME_STARTED = "GAME_STARTED"
196
- }
197
- type GameHistory = Pick<BaseGameType, "gameTitle" | "gameType" | "gameTypeId"> & {
198
- createdAt: Date;
199
- gameDate: GameDate;
200
- gameStatus: EnumGameStatus;
201
- /** Per-event delta. Not persisted for overallGamePoints (computed at read time). */
202
- pointsEarned: number;
203
- /** Running total for this game instance; computed at read time, not stored in Mongo. */
204
- overallGamePoints?: number;
205
- };
206
- type GameDataMap = {
207
- [EnumGameType.DAILY_CLUE]: DailyClueGameData;
208
- [EnumGameType.MINI_QUIZ]: PuzzleGameData;
209
- [EnumGameType.ODD_ONE_OUT]: PuzzleGameData;
210
- };
211
- type GameDataType = {
212
- [K in keyof GameDataMap]?: GameDataMap[K] | null;
213
- };
214
- type GameType = Pick<BaseGameType, "gameTitle" | "gameType" | "gameTypeId"> & {
215
- _id: string;
216
- active: boolean;
217
- createdAt: Date;
218
- gameData: GameDataType;
219
- gameHistory: GameHistory[] | null;
220
- updatedAt: Date | null;
221
- };
222
- type GameDocType = {
223
- _id: string;
224
- active: boolean;
225
- createdAt: Date;
226
- deletedAt: Date | null;
227
- games: GameType[] | null;
228
- owner: OwnerType;
229
- points: number;
230
- updatedAt: Date | null;
231
- };
232
- type GameLeaderboard = {
233
- gameHistory: GameHistory[] | null;
234
- overallPoints: number;
235
- owner: OwnerType;
236
- };
237
-
238
149
  interface PosterInputType {
239
150
  description: string;
240
151
  posterName: PosterAssetId;
@@ -379,81 +290,4 @@ interface AdType extends AdFormData {
379
290
  updatedAt: Date | null;
380
291
  }
381
292
 
382
- declare enum EnumPostType {
383
- DAILY_MEETS = "daily_meets",
384
- DAILY_TIPS = "daily_tips",
385
- DAILY_GAMES = "daily_games"
386
- }
387
- declare enum EnumPostContentType {
388
- GAME = "game",
389
- IMAGE = "image",
390
- LIST = "list",
391
- TEXTAREA = "textarea",
392
- VIDEO = "video"
393
- }
394
- type PostFileInput = {
395
- source: File;
396
- title?: string;
397
- };
398
- type PostContentTextarea = {
399
- textarea: {
400
- title?: string;
401
- data: string;
402
- };
403
- };
404
- type PostContentImage = {
405
- images: ResourceImageType[] | null;
406
- imagesUpload?: PostFileInput[] | null;
407
- };
408
- type PostContentVideo = {
409
- video: {
410
- source: string;
411
- title?: string;
412
- };
413
- };
414
- type PostContentList = {
415
- list: {
416
- title?: string;
417
- items: {
418
- text: string;
419
- }[];
420
- };
421
- };
422
- type PostContentGame = {
423
- game: BaseGameType;
424
- };
425
- type PostContentData = PostContentGame | PostContentTextarea | PostContentImage | PostContentVideo | PostContentList;
426
- type PostContentFormData = {
427
- contentData?: PostContentData | null;
428
- contentOrder?: number | null;
429
- contentType?: EnumPostContentType | null;
430
- };
431
- interface PostFormData {
432
- active: boolean;
433
- caption: string;
434
- content: PostContentFormData[];
435
- cover?: ResourceImageType | null;
436
- coverUpload?: PostFileInput | null;
437
- postType: EnumPostType;
438
- resource?: {
439
- resourceId: string;
440
- resourceType: EnumResourceType;
441
- resourceRegion: string;
442
- } | null;
443
- tags?: string[] | null;
444
- title: string;
445
- notifyUsers?: boolean | null;
446
- }
447
- type CreatePostFormData = CreateFormData<PostFormData>;
448
- type PostContentType = Omit<PostContentFormData, "contentData"> & {
449
- contentData: Omit<PostContentData, "imagesUpload">;
450
- };
451
- type PostType = Omit<PostFormData, "content" | "coverUpload"> & {
452
- _id: string;
453
- content: PostContentType[];
454
- createdAt: Date;
455
- deletedAt: Date | null;
456
- updatedAt: Date | null;
457
- };
458
-
459
- export { type PostContentList as $, type AuthPayloadType as A, type AdFormState as B, type CreateUserFormData as C, type AdResource as D, EnumAdStatus as E, type BaseGameMap as F, type GameDocType as G, type BaseGameType as H, type CreateAdFormData as I, EnumAdShowOn as J, EnumAdStyle as K, EnumAdType as L, EnumGameStatus as M, EnumPostContentType as N, EnumVerificationType as O, type PartnerType as P, type GameHistory as Q, type RefreshTokenPayloadType as R, type SafeUserType as S, type GameType as T, type UserFormData as U, type LoginFormData as V, type MarketingMaterialRequestInputType as W, type PostContentData as X, type PostContentFormData as Y, type PostContentGame as Z, type PostContentImage as _, type RedeemRewardResponse as a, type PostContentTextarea as a0, type PostContentType as a1, type PostContentVideo as a2, type PostFileInput as a3, type PosterInputType as a4, type PuzzleAnswer as a5, type PuzzleAnsweredQuestion as a6, type PuzzleBaseGame as a7, type PuzzleGameData as a8, type PuzzleQuestion as a9, type RedeemRewardInput as aa, type RedeemedReward as ab, type RegisterFormData as ac, type RequestPasswordResetFormData as ad, type ResetPasswordFormData as ae, type SchoolCampaignType as af, type SchoolRegisteredUserType as ag, type StripeSubscription as ah, type SubscriptionPlanData as ai, type SubscriptionPricingData as aj, type UserActivity as ak, type UserActivityEvent as al, type UserType as am, type ValidateVerificationTokenFormData as an, type ResourceByUser as b, type AdType as c, type SubscriptionPlansResponse as d, type SubscriptionStatusData as e, type PostType as f, EnumPostType as g, type AppSettingsType as h, type GameLeaderboard as i, type SchoolReturnType as j, type SchoolType as k, type CreateLoginFormData as l, type CreateRegisterFormData as m, type CreateRequestPasswordResetFormData as n, type CreateValidateVerificationTokenFormData as o, type CreateResetPasswordFormData as p, type PartnerFormData as q, type AdFormData as r, type CreateAdFormState as s, type CreatePartnerFormData as t, type PostFormData as u, type CreatePostFormData as v, type AppSettingsFormData as w, type CreateAppSettingsFormData as x, type SchoolFormData as y, type CreateSchoolFormData as z };
293
+ export { type AuthPayloadType as A, EnumAdType as B, type CreateUserFormData as C, EnumVerificationType as D, EnumAdStatus as E, type PosterInputType as F, type RedeemRewardInput as G, type RedeemedReward as H, type RegisterFormData as I, type RequestPasswordResetFormData as J, type ResetPasswordFormData as K, type LoginFormData as L, type MarketingMaterialRequestInputType as M, type SchoolCampaignType as N, type SchoolRegisteredUserType as O, type PartnerType as P, type StripeSubscription as Q, type RefreshTokenPayloadType as R, type SafeUserType as S, type SubscriptionPlanData as T, type UserFormData as U, type SubscriptionPricingData as V, type UserActivity as W, type UserActivityEvent as X, type UserType as Y, type ValidateVerificationTokenFormData as Z, type RedeemRewardResponse as a, type ResourceByUser as b, type AdType as c, type SubscriptionPlansResponse as d, type SubscriptionStatusData as e, type AppSettingsType as f, type SchoolReturnType as g, type SchoolType as h, type CreateLoginFormData as i, type CreateRegisterFormData as j, type CreateRequestPasswordResetFormData as k, type CreateValidateVerificationTokenFormData as l, type CreateResetPasswordFormData as m, type PartnerFormData as n, type AdFormData as o, type CreateAdFormState as p, type CreatePartnerFormData as q, type AppSettingsFormData as r, type CreateAppSettingsFormData as s, type SchoolFormData as t, type CreateSchoolFormData as u, type AdFormState as v, type AdResource as w, type CreateAdFormData as x, EnumAdShowOn as y, EnumAdStyle as z };
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  CLUEMART_MAIN_DOMAIN_URL,
3
3
  formatDate
4
- } from "./chunk-HGS6TJTA.mjs";
4
+ } from "./chunk-XWFE6U3E.mjs";
5
5
 
6
6
  // src/sharing/relationShareTypes.ts
7
7
  var RELATION_SHARE_INVITATION = "invitation";
8
8
  var RELATION_SHARE_APPLICATION = "application";
9
- var RELATION_OVERLAY_LAYOUT_VERSION = 33;
9
+ var RELATION_OVERLAY_LAYOUT_VERSION = 34;
10
10
  var RELATION_SHARE_RESOURCE_TYPES = [
11
11
  RELATION_SHARE_INVITATION,
12
12
  RELATION_SHARE_APPLICATION
@@ -46,16 +46,16 @@ var RESOURCE_SHARE_TYPES = [
46
46
  "partner"
47
47
  ];
48
48
  var POST_SHARE_RESOURCE_TYPES = [
49
- "daily_meets",
50
- "daily_tips",
51
- "daily_games"
49
+ "market_faces",
50
+ "clue_bites",
51
+ "play_and_win"
52
52
  ];
53
53
  var SHARE_RESOURCE_LABEL = {
54
54
  [RELATION_SHARE_APPLICATION]: "Application",
55
55
  [RELATION_SHARE_INVITATION]: "Invitation",
56
- daily_games: "Daily Game",
57
- daily_meets: "Daily Meet",
58
- daily_tips: "Daily Tip",
56
+ clue_bites: "Clue Bites",
57
+ market_faces: "Market Faces",
58
+ play_and_win: "Play & Win",
59
59
  market: "Market",
60
60
  partner: "Partner",
61
61
  stallholder: "Stallholder"
@@ -361,4 +361,4 @@ export {
361
361
  normalizeShareRouteId,
362
362
  buildSharePagePath
363
363
  };
364
- //# sourceMappingURL=chunk-KINIHSDW.mjs.map
364
+ //# sourceMappingURL=chunk-6OBMKN7F.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/sharing/relationShareTypes.ts","../src/sharing/constants.ts","../src/sharing/formatCategoryLabel.ts","../src/sharing/joinShareDescriptionSections.ts","../src/sharing/buildRelationShareDescription.ts","../src/sharing/buildPublicShareDescription.ts","../src/sharing/buildShareUrl.ts","../src/sharing/normalizeShareDescription.ts","../src/sharing/normalizeShareRouteId.ts"],"sourcesContent":["/** Path segments for relation share URLs — must match mobile `RelationTitle` values. */\nexport const RELATION_SHARE_INVITATION = \"invitation\" as const;\nexport const RELATION_SHARE_APPLICATION = \"application\" as const;\n\n/**\n * Bump when relation overlay SVG/layout changes so og:image URLs and API ETags\n * invalidate after deploy. Facebook caches preview JPEGs by exact URL — changing\n * this value forces crawlers to fetch a fresh image after server deploy.\n */\nexport const RELATION_OVERLAY_LAYOUT_VERSION = 34;\n\nexport const RELATION_SHARE_RESOURCE_TYPES = [\n RELATION_SHARE_INVITATION,\n RELATION_SHARE_APPLICATION,\n] as const;\n\nexport type RelationShareResourceType =\n (typeof RELATION_SHARE_RESOURCE_TYPES)[number];\n\nexport function isRelationShareResourceType(\n resourceType: string,\n): resourceType is RelationShareResourceType {\n return (RELATION_SHARE_RESOURCE_TYPES as readonly string[]).includes(\n resourceType,\n );\n}\n","import { CLUEMART_MAIN_DOMAIN_URL } from \"src/utils\";\n\nimport {\n RELATION_SHARE_APPLICATION,\n RELATION_SHARE_INVITATION,\n type RelationShareResourceType,\n} from \"./relationShareTypes\";\n\nexport {\n RELATION_SHARE_APPLICATION,\n RELATION_SHARE_INVITATION,\n RELATION_OVERLAY_LAYOUT_VERSION,\n RELATION_SHARE_RESOURCE_TYPES,\n isRelationShareResourceType,\n type RelationShareResourceType,\n} from \"./relationShareTypes\";\n\n/** Open Graph recommended preview size (must match admin `SHARE_OG_IMAGE_*`). */\nexport const SOCIAL_IMAGE_WIDTH = 1200;\n\n/** Open Graph recommended preview size (must match admin `SHARE_OG_IMAGE_*`). */\nexport const SOCIAL_IMAGE_HEIGHT = 630;\n\nexport const SHARE_SITE_URL = CLUEMART_MAIN_DOMAIN_URL;\n\n/** Calendar marker for invitation market-dates share copy (U+1F4C5 📅). */\nexport const SHARE_CALENDAR_ICON = \"\\u{1F4C5}\";\n\nexport const SHARE_MARKET_DATES_SECTION_HEADING = `${SHARE_CALENDAR_ICON} Market dates:`;\n\n/** Check mark for invitation requirements share copy (U+2705 ✅). */\nexport const SHARE_CHECKMARK_ICON = \"\\u{2705}\";\n\nexport const SHARE_REQUIREMENTS_SECTION_HEADING = `${SHARE_CHECKMARK_ICON} Requirements:`;\n\n/** Information marker for tags share copy (U+2139 ℹ️). */\nexport const SHARE_INFO_ICON = \"\\u{2139}\\u{FE0F}\";\n\nexport const SHARE_TAGS_SECTION_HEADING = `${SHARE_INFO_ICON} Tags:`;\n\n/** Standalone line when `rainOrShine` is true (invitation share + OG section parsing). */\nexport const SHARE_RAIN_OR_SHINE_LINE = \"Rain or Shine\";\n\n/** Standalone line when `foodTruck` is true (application share + OG section parsing). */\nexport const SHARE_FOOD_TRUCK_LINE = \"Food Truck\";\n\n/** Prefix for application compliance line (share text + OG section parsing). */\nexport const SHARE_COMPLIANCE_PREFIX = `${SHARE_CHECKMARK_ICON} Compliance:`;\n\n/** Label tag for application categories share copy (U+1F3F7 🏷️). */\nexport const SHARE_CATEGORY_ICON = \"\\u{1F3F7}\\u{FE0F}\";\n\nexport const SHARE_CATEGORIES_SECTION_HEADING = `${SHARE_CATEGORY_ICON} Categories:`;\n\n/** Straight ruler for application stall-size share copy (U+1F4CF 📏). */\nexport const SHARE_RULER_ICON = \"\\u{1F4CF}\";\n\n/** Prefix for application stall-size line (share text + OG section parsing). */\nexport const SHARE_STALL_SIZE_PREFIX = `${SHARE_RULER_ICON} Stall size:`;\n\n/** Dollar marker for price-range share copy (U+0024 $ — text, not emoji, so it stays black). */\nexport const SHARE_DOLLAR_ICON = \"$\";\n\n/** Prefix for application price-range line (share text + OG section parsing). */\nexport const SHARE_PRICE_RANGE_PREFIX = `${SHARE_DOLLAR_ICON} Price range:`;\n\n/** Alarm clock for invitation application-deadline share copy (U+23F0 ⏰). */\nexport const SHARE_CLOCK_ICON = \"\\u{23F0}\";\n\n/** Prefix for the invitation application-deadline sentence (share text + OG section parsing). */\nexport const SHARE_APPLICATION_DEADLINE_PREFIX = `${SHARE_CLOCK_ICON} Application deadline:`;\n\n/** First line on share sheet messages, Facebook SDK quote, and `og:description`. */\nexport const SHARE_MORE_INFO_LINE = \"Shared from ClueMart\";\n\nexport const DEFAULT_SHARE_OG_IMAGE = `${SHARE_SITE_URL}/assets/logo.webp`;\n\nexport const RESOURCE_SHARE_TYPES = [\n \"market\",\n \"stallholder\",\n \"partner\",\n] as const;\n\nexport type ResourceShareType = (typeof RESOURCE_SHARE_TYPES)[number];\n\nexport const POST_SHARE_RESOURCE_TYPES = [\n \"market_faces\",\n \"clue_bites\",\n \"play_and_win\",\n] as const;\n\nexport type PostShareResourceType = (typeof POST_SHARE_RESOURCE_TYPES)[number];\n\nexport type ShareResourceType =\n | ResourceShareType\n | PostShareResourceType\n | RelationShareResourceType;\n\nexport const SHARE_RESOURCE_LABEL: Record<ShareResourceType, string> = {\n [RELATION_SHARE_APPLICATION]: \"Application\",\n [RELATION_SHARE_INVITATION]: \"Invitation\",\n clue_bites: \"Clue Bites\",\n market_faces: \"Market Faces\",\n play_and_win: \"Play & Win\",\n market: \"Market\",\n partner: \"Partner\",\n stallholder: \"Stallholder\",\n};\n\nexport function isPostShareResourceType(\n resourceType: ShareResourceType,\n): resourceType is PostShareResourceType {\n return (POST_SHARE_RESOURCE_TYPES as readonly string[]).includes(\n resourceType,\n );\n}\n","import type { Category } from \"../types/global\";\n\nexport function formatCategoryLabel(category: Category): string {\n const subcategoryNames = category.subcategories\n .map((subcategory) => subcategory.name)\n .filter(Boolean);\n\n if (subcategoryNames.length === 0) {\n return category.name;\n }\n\n return `${category.name} (${subcategoryNames.join(\", \")})`;\n}\n","import { SHARE_MORE_INFO_LINE } from \"./constants\";\n\n/** Blank line between share sections — title, address, dates, URL, etc. */\nexport const SHARE_DESCRIPTION_SECTION_BREAK = \"\\n\\n\";\n\n/**\n * Line break for `og:description` meta content. Use instead of `\\n` — Next.js\n * HTML serialisation collapses literal newlines to spaces; Facebook reads `&#10;`.\n */\nexport const OG_DESCRIPTION_LINE_BREAK = \"&#10;\";\n\n/** Joins OG description sections for Facebook link cards (and Twitter). */\nexport function joinShareOgDescriptionSections(\n sections: ReadonlyArray<string | false | null | undefined>,\n): string {\n return sections\n .map((section) => (typeof section === \"string\" ? section.trim() : \"\"))\n .filter((section): section is string => section.length > 0)\n .map((section) => section.replace(/\\n/g, OG_DESCRIPTION_LINE_BREAK))\n .join(OG_DESCRIPTION_LINE_BREAK);\n}\n\nexport function joinShareDescriptionSections(\n sections: ReadonlyArray<string | false | null | undefined>,\n): string {\n return sections\n .filter((section): section is string => Boolean(section))\n .join(SHARE_DESCRIPTION_SECTION_BREAK);\n}\n\n/** Prepends the standard share branding line when assembling display text. */\nexport function appendShareMoreInfoLine(description: string): string {\n const trimmed = description.trim();\n if (trimmed.startsWith(SHARE_MORE_INFO_LINE)) {\n return trimmed;\n }\n if (trimmed.length === 0) {\n return SHARE_MORE_INFO_LINE;\n }\n return joinShareDescriptionSections([SHARE_MORE_INFO_LINE, trimmed]);\n}\n","import type { StallType } from \"../types/event\";\nimport { formatDate } from \"../utils/date\";\n\nimport {\n SHARE_APPLICATION_DEADLINE_PREFIX,\n SHARE_CATEGORIES_SECTION_HEADING,\n SHARE_FOOD_TRUCK_LINE,\n SHARE_MARKET_DATES_SECTION_HEADING,\n SHARE_RAIN_OR_SHINE_LINE,\n SHARE_REQUIREMENTS_SECTION_HEADING,\n SHARE_COMPLIANCE_PREFIX,\n SHARE_PRICE_RANGE_PREFIX,\n SHARE_STALL_SIZE_PREFIX,\n SHARE_TAGS_SECTION_HEADING,\n} from \"./constants\";\nimport { formatCategoryLabel } from \"./formatCategoryLabel\";\nimport { joinShareDescriptionSections } from \"./joinShareDescriptionSections\";\nimport type {\n ShareEventForInvitation,\n ShareEventInfoForInvitation,\n ShareVendorForApplication,\n ShareVendorInfoForApplication,\n} from \"./shareRelationTypes\";\n\nexport type {\n ShareEventForInvitation,\n ShareEventInfoForInvitation,\n ShareVendorForApplication,\n ShareVendorInfoForApplication,\n} from \"./shareRelationTypes\";\n\n/** Formats event `startDate` (`DD-MM-YYYY`) for share copy — same as share preview UI. */\nexport function formatShareMarketDate(dateStr: string): string {\n return formatDate(dateStr, \"date\");\n}\n\nexport function formatStallCapacityLabel(stallCapacity: number): string {\n return stallCapacity > 0 ? ` (${stallCapacity} spaces available)` : \" - Full\";\n}\n\nexport function formatShareStallLine(stall: StallType): string {\n return ` - ${stall.label} — $${stall.price}${formatStallCapacityLabel(stall.stallCapacity)}`;\n}\n\n/** Nested market dates + per-date stall lines for invitation share copy. */\nexport function formatShareInvitationMarketDatesSection(\n dateTime: ShareEventInfoForInvitation[\"dateTime\"],\n): string {\n const dateBlocks = dateTime.map((date) => {\n const formattedDate = formatShareMarketDate(date.startDate);\n const stallLines = date.stallTypes.map(formatShareStallLine);\n return [`- ${formattedDate}`, ...stallLines].join(\"\\n\");\n });\n\n return `${SHARE_MARKET_DATES_SECTION_HEADING}\\n${dateBlocks.join(\"\\n\")}`;\n}\n\nexport function formatShareRainOrShineLine(\n rainOrShine: boolean,\n): string | null {\n return rainOrShine ? SHARE_RAIN_OR_SHINE_LINE : null;\n}\n\nexport function formatShareIsFoodTrueLine(foodTruck: boolean): string | null {\n return foodTruck ? SHARE_FOOD_TRUCK_LINE : null;\n}\n\n/** Bulleted requirements list for invitation share copy. */\nexport function formatShareInvitationRequirementsSection(\n requirements: ShareEventInfoForInvitation[\"requirements\"] | null,\n): string | null {\n const bullets = (requirements ?? [])\n .filter((item) => item.value)\n .map((item) => item.label.trim())\n .filter((label) => label.length > 0)\n .map((label) => `- ${label}`);\n if (bullets.length === 0) {\n return null;\n }\n return `${SHARE_REQUIREMENTS_SECTION_HEADING}\\n${bullets.join(\"\\n\")}`;\n}\n\nexport function formatShareTagsSection(tags: string[]): string | null {\n const bullets = tags\n .map((tag) => tag.trim())\n .filter((tag) => tag.length > 0)\n .map((tag) => `- ${tag}`);\n if (bullets.length === 0) {\n return null;\n }\n return `${SHARE_TAGS_SECTION_HEADING}\\n${bullets.join(\"\\n\")}`;\n}\n\n/** Bulleted categories list for application share copy. */\nexport function formatShareApplicationCategoriesSection(\n categories: ShareVendorForApplication[\"categories\"],\n): string | null {\n const bullets = categories\n .map((category) => formatCategoryLabel(category).trim())\n .filter((label) => label.length > 0)\n .map((label) => `- ${label}`);\n if (bullets.length === 0) {\n return null;\n }\n return `${SHARE_CATEGORIES_SECTION_HEADING}\\n${bullets.join(\"\\n\")}`;\n}\n\n/** Stall dimensions line for application share copy. */\nexport function formatShareApplicationStallSizeLine(size: {\n width: string;\n depth: string;\n}): string {\n return `${SHARE_STALL_SIZE_PREFIX} ${size.width}m × ${size.depth}m`;\n}\n\n/** Bulleted compliance list for application share copy. */\nexport function formatShareApplicationComplianceSection(\n compliance: ShareVendorInfoForApplication[\"compliance\"],\n): string | null {\n const bullets = [\n compliance?.liabilityInsurance && \"Liability insurance\",\n compliance?.foodBeverageLicense && \"Food & beverage licence\",\n ]\n .filter((label): label is string => Boolean(label))\n .map((label) => `- ${label}`);\n if (bullets.length === 0) {\n return null;\n }\n return `${SHARE_COMPLIANCE_PREFIX}\\n${bullets.join(\"\\n\")}`;\n}\n\n/** Price range line for application share copy. */\nexport function formatShareApplicationPriceRangeLine(priceRange: {\n min: string;\n max: string;\n}): string {\n return `${SHARE_PRICE_RANGE_PREFIX} $${priceRange.min} – $${priceRange.max}`;\n}\n\n/** Application-deadline sentence for invitation share copy. */\nexport function formatShareInvitationApplicationDeadlineLine(\n applicationDeadlineHours: number,\n): string {\n return `${SHARE_APPLICATION_DEADLINE_PREFIX} vendors must apply at least ${applicationDeadlineHours} hours before each market date.`;\n}\n\nexport function buildInvitationShareDescription(\n event: ShareEventForInvitation,\n eventInfo: ShareEventInfoForInvitation | null | undefined,\n): string {\n const stallTypes =\n eventInfo?.dateTime?.flatMap((date) => date.stallTypes) ?? [];\n\n if (!eventInfo || stallTypes.length === 0) {\n return event.description?.trim() || \"\";\n }\n\n const sections = [\n event.location.fullAddress,\n formatShareRainOrShineLine(event.rainOrShine),\n formatShareTagsSection(event.tags),\n formatShareInvitationMarketDatesSection(eventInfo.dateTime),\n formatShareInvitationApplicationDeadlineLine(\n eventInfo.applicationDeadlineHours,\n ),\n formatShareInvitationRequirementsSection(eventInfo.requirements),\n ];\n\n return joinShareDescriptionSections(sections);\n}\n\nexport function buildApplicationShareDescription(\n vendor: ShareVendorForApplication,\n vendorInfo: ShareVendorInfoForApplication | null | undefined,\n): string {\n if (!vendorInfo) {\n return vendor.description?.trim() || \"\";\n }\n\n const profileDescription = vendor.description?.trim();\n\n const sections = [\n formatShareIsFoodTrueLine(vendor.foodTruck),\n formatShareApplicationCategoriesSection(vendor.categories),\n formatShareApplicationStallSizeLine(vendorInfo.stallInfo.size),\n formatShareApplicationComplianceSection(vendorInfo.compliance),\n formatShareApplicationPriceRangeLine(vendorInfo.product.priceRange),\n profileDescription,\n ];\n\n return joinShareDescriptionSections(sections);\n}\n","import {\n formatShareIsFoodTrueLine,\n formatShareRainOrShineLine,\n formatShareTagsSection,\n} from \"./buildRelationShareDescription\";\nimport { joinShareDescriptionSections } from \"./joinShareDescriptionSections\";\n\n/** Minimal event fields for public (market) share copy — matches in-app preview. */\nexport type ShareEventForPublic = {\n description?: string | null;\n rainOrShine: boolean;\n tags: string[];\n};\n\n/** Minimal vendor fields for public (stallholder) share copy — matches in-app preview. */\nexport type ShareVendorForPublic = {\n description?: string | null;\n foodTruck: boolean;\n};\n\nexport function buildPublicEventShareDescription(\n event: ShareEventForPublic,\n): string {\n return joinShareDescriptionSections([\n formatShareRainOrShineLine(event.rainOrShine),\n formatShareTagsSection(event.tags),\n event.description?.trim(),\n ]);\n}\n\nexport function buildPublicVendorShareDescription(\n vendor: ShareVendorForPublic,\n): string {\n return joinShareDescriptionSections([\n formatShareIsFoodTrueLine(vendor.foodTruck),\n vendor.description?.trim(),\n ]);\n}\n","import {\n POST_SHARE_RESOURCE_TYPES,\n RESOURCE_SHARE_TYPES,\n SHARE_SITE_URL,\n} from \"./constants\";\nimport {\n RELATION_SHARE_APPLICATION,\n RELATION_SHARE_INVITATION,\n} from \"./relationShareTypes\";\n\n/** Path segments for public resource share URLs (markets, posts, etc.). */\nexport const PUBLIC_SHARE_PATH_TYPES = [\n ...RESOURCE_SHARE_TYPES,\n ...POST_SHARE_RESOURCE_TYPES,\n] as const;\n\nexport type PublicSharePathType = (typeof PUBLIC_SHARE_PATH_TYPES)[number];\n\nexport type RelationSharePathType =\n | typeof RELATION_SHARE_INVITATION\n | typeof RELATION_SHARE_APPLICATION;\n\nexport type ShareType = PublicSharePathType | RelationSharePathType;\n\n/** Alternation for deep-link regexes — keep in sync with {@link ShareType}. */\nexport const SHARE_TYPE_PATH_REGEX = [\n ...PUBLIC_SHARE_PATH_TYPES,\n RELATION_SHARE_APPLICATION,\n RELATION_SHARE_INVITATION,\n].join(\"|\");\n\nexport function buildShareUrl(\n type: ShareType,\n id: string,\n utmMedium: string = \"app\",\n): string {\n return `${SHARE_SITE_URL}/share/${type}/${encodeURIComponent(id)}?utm_source=share&utm_medium=${utmMedium}&utm_campaign=${type}`;\n}\n","import { SHARE_MORE_INFO_LINE, type ShareResourceType } from \"./constants\";\nimport {\n joinShareOgDescriptionSections,\n OG_DESCRIPTION_LINE_BREAK,\n SHARE_DESCRIPTION_SECTION_BREAK,\n} from \"./joinShareDescriptionSections\";\n\nexport {\n joinShareOgDescriptionSections,\n OG_DESCRIPTION_LINE_BREAK,\n SHARE_DESCRIPTION_SECTION_BREAK,\n};\n\n/** Trims share text and collapses spaces per line; preserves `\\n\\n` section breaks. */\nexport function normalizeShareText(value: string | null | undefined): string {\n if (value == null) {\n return \"\";\n }\n return value\n .trim()\n .split(\"\\n\")\n .map((line) => {\n const match = line.match(/^([ \\t]*)(.*)$/);\n if (!match) {\n return line;\n }\n const [, leading, rest] = match;\n return leading + rest.trim().replace(/[ \\t]{2,}/g, \" \");\n })\n .join(\"\\n\")\n .replace(/\\n{3,}/g, \"\\n\\n\");\n}\n\n/** Branding line placement — first so Facebook truncation does not drop it. */\nexport type ShareMessageFooterPlacement = \"before-body\";\n\nexport function shareMessageFooterPlacementForType(\n _shareType?: ShareResourceType,\n): ShareMessageFooterPlacement {\n return \"before-body\";\n}\n\n/**\n * Ordered sections for share-sheet / Facebook SDK quote text:\n * {@link SHARE_MORE_INFO_LINE} → title → description (full body or post caption).\n */\nexport function buildShareMessageSections(input: {\n title?: string | null;\n description?: string | null;\n shareType?: ShareResourceType;\n}): string[] {\n const title = normalizeShareText(input.title);\n const description = normalizeShareText(input.description);\n\n return [SHARE_MORE_INFO_LINE, title, description].filter(\n (section) => section.length > 0,\n );\n}\n\nexport function splitShareDescriptionSections(value: string): string[] {\n const trimmed = normalizeShareText(value);\n if (!trimmed) {\n return [];\n }\n\n if (/\\n\\n/.test(trimmed)) {\n return trimmed\n .split(/\\n\\n+/)\n .map((section) => normalizeShareText(section))\n .filter((section) => section.length > 0);\n }\n\n if (/\\n/.test(trimmed)) {\n return trimmed\n .split(/\\n+/)\n .map((section) => normalizeShareText(section))\n .filter((section) => section.length > 0);\n }\n\n return [trimmed];\n}\n\n/**\n * Formats share descriptions for Open Graph / Twitter meta tags.\n * Sections are joined with {@link OG_DESCRIPTION_LINE_BREAK} (`&#10;`).\n */\nexport function normalizeShareOgDescription(value: string): string {\n return joinShareOgDescriptionSections(splitShareDescriptionSections(value));\n}\n\n/**\n * Quote text for Facebook ShareDialog on iOS (`ShareLinkContent.quote`).\n *\n * Title + blank lines + body sections. URL is omitted — `contentUrl` supplies\n * the link card (OG on `/share/*` controls card title/image).\n */\nexport function buildFacebookShareQuote(\n title: string,\n description: string,\n shareType?: ShareResourceType,\n): string | undefined {\n const sections = buildShareMessageSections({ title, description, shareType });\n const quote = sections.join(SHARE_DESCRIPTION_SECTION_BREAK).trim();\n return quote.length > 0 ? quote : undefined;\n}\n\n/**\n * Open Graph / Twitter description from pre-built section strings.\n * Prefer {@link joinShareOgDescriptionSections} when sections are already known.\n */\nexport function buildShareOgDescriptionFromSections(\n sections: ReadonlyArray<string | false | null | undefined>,\n): string {\n return joinShareOgDescriptionSections(sections);\n}\n\n/** Open Graph / Twitter description — body sections only (`og:title` is separate). */\nexport function buildShareOgDescription(\n _title: string,\n description: string,\n): string {\n return joinShareOgDescriptionSections(\n splitShareDescriptionSections(description),\n );\n}\n","import type { ShareResourceType } from \"./constants\";\n\nexport function normalizeShareRouteId(id: string): string {\n try {\n return decodeURIComponent(id);\n } catch {\n return id;\n }\n}\n\nexport function buildSharePagePath(\n resourceType: ShareResourceType,\n rawId: string,\n): string {\n return `/share/${resourceType}/${encodeURIComponent(normalizeShareRouteId(rawId))}`;\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  mapArrayToOptions
3
- } from "./chunk-HGS6TJTA.mjs";
3
+ } from "./chunk-XWFE6U3E.mjs";
4
4
  import {
5
5
  EnumFoodFlavor
6
6
  } from "./chunk-4SNW63TJ.mjs";
@@ -1952,4 +1952,4 @@ export {
1952
1952
  contactUsFields,
1953
1953
  partnerBasicInfoFields
1954
1954
  };
1955
- //# sourceMappingURL=chunk-6IEQBYEB.mjs.map
1955
+ //# sourceMappingURL=chunk-6YISZ3OD.mjs.map
@@ -45,9 +45,9 @@ var EnumActivity = /* @__PURE__ */ ((EnumActivity2) => {
45
45
 
46
46
  // src/types/post.ts
47
47
  var EnumPostType = /* @__PURE__ */ ((EnumPostType2) => {
48
- EnumPostType2["DAILY_MEETS"] = "daily_meets";
49
- EnumPostType2["DAILY_TIPS"] = "daily_tips";
50
- EnumPostType2["DAILY_GAMES"] = "daily_games";
48
+ EnumPostType2["MARKET_FACES"] = "market_faces";
49
+ EnumPostType2["CLUE_BITES"] = "clue_bites";
50
+ EnumPostType2["PLAY_AND_WIN"] = "play_and_win";
51
51
  return EnumPostType2;
52
52
  })(EnumPostType || {});
53
53
  var EnumPostContentType = /* @__PURE__ */ ((EnumPostContentType2) => {
@@ -68,6 +68,107 @@ var EnumGameStatus = /* @__PURE__ */ ((EnumGameStatus2) => {
68
68
  return EnumGameStatus2;
69
69
  })(EnumGameStatus || {});
70
70
 
71
+ // src/types/game/dailyClue.ts
72
+ var OBJECT_ID_PATH_SEGMENT = "[a-f0-9]{24}";
73
+ var OBJECT_ID_PATH_SEGMENT_END = `${OBJECT_ID_PATH_SEGMENT}$`;
74
+ var gameScreenIdentifierList = [
75
+ {
76
+ clue: "Where your actions turn into a timeline.",
77
+ id: "activities",
78
+ match: "/profile/activities"
79
+ },
80
+ {
81
+ clue: "Where conversations happen without speaking.",
82
+ id: "chat",
83
+ match: "/profile/chat"
84
+ },
85
+ {
86
+ clue: "The place to redefine who you are.",
87
+ id: "edit-profile",
88
+ match: "/profile/edit-profile"
89
+ },
90
+ {
91
+ clue: "A single moment worth showing up for.",
92
+ id: "single-event",
93
+ match: new RegExp(`^/events/${OBJECT_ID_PATH_SEGMENT_END}`)
94
+ },
95
+ {
96
+ clue: "What\u2019s happening around you, right now.",
97
+ id: "events-near-me",
98
+ match: "/events/events-near-me"
99
+ },
100
+ {
101
+ clue: "Where events appear as pins on a map.",
102
+ id: "events-map",
103
+ match: "/events/events-map"
104
+ },
105
+ {
106
+ clue: "A collection of events worth attending.",
107
+ id: "events",
108
+ match: "/events"
109
+ },
110
+ {
111
+ clue: "What\u2019s happening in a wider area \u2014 not just nearby.",
112
+ id: "events-region",
113
+ match: /^\/events\/region\/[^/]+$/
114
+ },
115
+ {
116
+ clue: "Where fun becomes a challenge.",
117
+ id: "games",
118
+ match: "/games"
119
+ },
120
+ {
121
+ clue: "Your starting point for everything.",
122
+ id: "home",
123
+ match: "/"
124
+ },
125
+ {
126
+ clue: "Where the app whispers what you shouldn\u2019t miss.",
127
+ id: "notifications",
128
+ match: "/notifications"
129
+ },
130
+ {
131
+ clue: "Where you fine-tune your experience.",
132
+ id: "options",
133
+ match: "/options"
134
+ },
135
+ {
136
+ clue: "An organisation or creator supporting the community.",
137
+ id: "single-partner",
138
+ match: new RegExp(`^/partners/${OBJECT_ID_PATH_SEGMENT_END}`)
139
+ },
140
+ {
141
+ clue: "Organisations and creators supporting the community.",
142
+ id: "partners",
143
+ match: "/partners"
144
+ },
145
+ {
146
+ clue: "A single published post in full view.",
147
+ id: "single-visitor-post",
148
+ match: new RegExp(`^/visitors/post/${OBJECT_ID_PATH_SEGMENT_END}`)
149
+ },
150
+ {
151
+ clue: "Your identity, on display.",
152
+ id: "profile",
153
+ match: "/profile"
154
+ },
155
+ {
156
+ clue: "One stallholder offering something valuable.",
157
+ id: "single-vendor",
158
+ match: new RegExp(`^/vendors/${OBJECT_ID_PATH_SEGMENT_END}`)
159
+ },
160
+ {
161
+ clue: "Where every stallholder waits under the right category.",
162
+ id: "vendors",
163
+ match: "/vendors"
164
+ },
165
+ {
166
+ clue: "Where you browse articles and posts from around the platform.",
167
+ id: "visitors",
168
+ match: "/visitors"
169
+ }
170
+ ];
171
+
71
172
  // src/types/game/global.ts
72
173
  var EnumGameType = /* @__PURE__ */ ((EnumGameType2) => {
73
174
  EnumGameType2["DAILY_CLUE"] = "dailyClue";
@@ -100,12 +201,13 @@ var TIER_FROM_LICENCE = {
100
201
  };
101
202
 
102
203
  export {
204
+ gameScreenIdentifierList,
205
+ EnumVerificationType,
206
+ PROMO_CODE_PREFIX,
103
207
  EnumAdShowOn,
104
208
  EnumAdStatus,
105
209
  EnumAdType,
106
210
  EnumAdStyle,
107
- EnumVerificationType,
108
- PROMO_CODE_PREFIX,
109
211
  EnumActivity,
110
212
  EnumPostType,
111
213
  EnumPostContentType,
@@ -116,4 +218,4 @@ export {
116
218
  TIER_DISPLAY_LABELS,
117
219
  TIER_FROM_LICENCE
118
220
  };
119
- //# sourceMappingURL=chunk-5SCGH7UX.mjs.map
221
+ //# sourceMappingURL=chunk-7VNXO63T.mjs.map