@timardex/cluemart-shared 1.5.497 → 1.5.499
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/{chunk-D3WH67C5.mjs → chunk-6WV7CECU.mjs} +2 -2
- package/dist/{chunk-WHHVPICK.mjs → chunk-EJSVR77W.mjs} +11 -9
- package/dist/chunk-EJSVR77W.mjs.map +1 -0
- package/dist/{chunk-O4ILKWFI.mjs → chunk-RO2IWCW2.mjs} +30 -20
- package/dist/chunk-RO2IWCW2.mjs.map +1 -0
- package/dist/formFields/index.cjs +96 -2
- package/dist/formFields/index.cjs.map +1 -1
- package/dist/formFields/index.mjs +3 -3
- package/dist/{game-C6zLvmHU.d.mts → game-BR9xpQkt.d.mts} +19 -19
- package/dist/{game-B-YC4Am7.d.ts → game-Dn5SH8_0.d.ts} +19 -19
- package/dist/graphql/index.d.mts +2 -2
- package/dist/graphql/index.d.ts +2 -2
- package/dist/hooks/index.cjs +96 -2
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.d.mts +2 -2
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/index.mjs +3 -3
- package/dist/index.cjs +38 -26
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +19 -19
- package/dist/index.d.ts +19 -19
- package/dist/index.mjs +38 -26
- package/dist/index.mjs.map +1 -1
- package/dist/{post-DFTmI0uz.d.mts → post-BBYcN5xv.d.mts} +1 -1
- package/dist/{post-CNm_rxZm.d.ts → post-CWZFxlP7.d.ts} +1 -1
- package/dist/types/index.cjs +29 -19
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.mts +2 -2
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.mjs +1 -1
- package/dist/utils/index.cjs +38 -26
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.mts +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.mjs +2 -2
- package/package.json +1 -1
- package/dist/chunk-O4ILKWFI.mjs.map +0 -1
- package/dist/chunk-WHHVPICK.mjs.map +0 -1
- /package/dist/{chunk-D3WH67C5.mjs.map → chunk-6WV7CECU.mjs.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EnumUserLicence, EnumSubscriptionStatus, EnumOSPlatform, EnumUserRole, EnumResourceType, EnumPartnerType } from './enums/index.mjs';
|
|
2
2
|
import { A as AssociateType, Q as ResourceImageType, h as UserLicenceType, Y as TermsAgreement, D as DateTimeType, s as CreateFormData, r as BaseResourceType, L as LocationType, B as BaseResourceTypeFormData } from './global-MMBYi34A.mjs';
|
|
3
|
-
import { B as BaseGame } from './game-
|
|
3
|
+
import { B as BaseGame } from './game-BR9xpQkt.mjs';
|
|
4
4
|
|
|
5
5
|
type UserFormData = {
|
|
6
6
|
_id?: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EnumUserLicence, EnumSubscriptionStatus, EnumOSPlatform, EnumUserRole, EnumResourceType, EnumPartnerType } from './enums/index.js';
|
|
2
2
|
import { A as AssociateType, Q as ResourceImageType, h as UserLicenceType, Y as TermsAgreement, D as DateTimeType, s as CreateFormData, r as BaseResourceType, L as LocationType, B as BaseResourceTypeFormData } from './global-B0WdAD-8.js';
|
|
3
|
-
import { B as BaseGame } from './game-
|
|
3
|
+
import { B as BaseGame } from './game-Dn5SH8_0.js';
|
|
4
4
|
|
|
5
5
|
type UserFormData = {
|
|
6
6
|
_id?: string;
|
package/dist/types/index.cjs
CHANGED
|
@@ -94,82 +94,92 @@ var EnumPostContentType = /* @__PURE__ */ ((EnumPostContentType2) => {
|
|
|
94
94
|
})(EnumPostContentType || {});
|
|
95
95
|
|
|
96
96
|
// src/types/game.ts
|
|
97
|
+
var createRouteMatcher = (base, type) => {
|
|
98
|
+
switch (type) {
|
|
99
|
+
case "mongoId":
|
|
100
|
+
return new RegExp(`^\\/${base}\\/([a-f0-9]{24})$`);
|
|
101
|
+
case "slug":
|
|
102
|
+
return new RegExp(`^\\/${base}\\/[^/]+$`);
|
|
103
|
+
default:
|
|
104
|
+
return new RegExp(`^\\/${base}$`);
|
|
105
|
+
}
|
|
106
|
+
};
|
|
97
107
|
var gameScreenIdentifierList = [
|
|
98
108
|
{
|
|
99
109
|
clue: "Where your actions turn into a timeline.",
|
|
100
|
-
id: "activities"
|
|
110
|
+
id: "/profile/activities"
|
|
101
111
|
},
|
|
102
112
|
{
|
|
103
113
|
clue: "Where conversations happen without speaking.",
|
|
104
|
-
id: "chat"
|
|
114
|
+
id: "/profile/chat"
|
|
105
115
|
},
|
|
106
116
|
{
|
|
107
117
|
clue: "The place to redefine who you are.",
|
|
108
|
-
id: "edit-profile"
|
|
118
|
+
id: "/profile/edit-profile"
|
|
109
119
|
},
|
|
110
120
|
{
|
|
111
121
|
clue: "A single moment worth showing up for.",
|
|
112
|
-
id: "
|
|
122
|
+
id: createRouteMatcher("events", "mongoId")
|
|
113
123
|
},
|
|
114
124
|
{
|
|
115
125
|
clue: "What\u2019s happening around you, right now.",
|
|
116
|
-
id: "events-near-me"
|
|
126
|
+
id: "/events/events-near-me"
|
|
117
127
|
},
|
|
118
128
|
{
|
|
119
129
|
clue: "A collection of things worth attending.",
|
|
120
|
-
id: "events"
|
|
130
|
+
id: "/events"
|
|
121
131
|
},
|
|
122
132
|
{
|
|
123
133
|
clue: "What\u2019s happening in a wider area\u2014not just nearby.",
|
|
124
|
-
id: "events/region"
|
|
134
|
+
id: createRouteMatcher("events/region", "slug")
|
|
125
135
|
},
|
|
126
136
|
{
|
|
127
137
|
clue: "Where you go to find something specific.",
|
|
128
|
-
id: "events/search"
|
|
138
|
+
id: "/events/search"
|
|
129
139
|
},
|
|
130
140
|
{
|
|
131
141
|
clue: "Where fun becomes a challenge.",
|
|
132
|
-
id: "games"
|
|
142
|
+
id: "/games"
|
|
133
143
|
},
|
|
134
144
|
{
|
|
135
145
|
clue: "Your starting point for everything.",
|
|
136
|
-
id: "
|
|
146
|
+
id: "/"
|
|
137
147
|
},
|
|
138
148
|
{
|
|
139
149
|
clue: "Where the app taps you on the shoulder.",
|
|
140
|
-
id: "notifications"
|
|
150
|
+
id: "/notifications"
|
|
141
151
|
},
|
|
142
152
|
{
|
|
143
153
|
clue: "Where you fine-tune your experience.",
|
|
144
|
-
id: "options"
|
|
154
|
+
id: "/options"
|
|
145
155
|
},
|
|
146
156
|
{
|
|
147
157
|
clue: "A single collaborator in the ecosystem.",
|
|
148
|
-
id: "
|
|
158
|
+
id: createRouteMatcher("partners", "mongoId")
|
|
149
159
|
},
|
|
150
160
|
{
|
|
151
161
|
clue: "The network behind the scenes.",
|
|
152
|
-
id: "partners"
|
|
162
|
+
id: "/partners"
|
|
153
163
|
},
|
|
154
164
|
{
|
|
155
165
|
clue: "Where you share something with everyone.",
|
|
156
|
-
id: "
|
|
166
|
+
id: createRouteMatcher("visitors/posts", "mongoId")
|
|
157
167
|
},
|
|
158
168
|
{
|
|
159
169
|
clue: "Your identity, on display.",
|
|
160
|
-
id: "profile"
|
|
170
|
+
id: "/profile"
|
|
161
171
|
},
|
|
162
172
|
{
|
|
163
173
|
clue: "One provider offering something valuable.",
|
|
164
|
-
id: "
|
|
174
|
+
id: createRouteMatcher("vendors", "mongoId")
|
|
165
175
|
},
|
|
166
176
|
{
|
|
167
177
|
clue: "A marketplace of providers.",
|
|
168
|
-
id: "vendors"
|
|
178
|
+
id: "/vendors"
|
|
169
179
|
},
|
|
170
180
|
{
|
|
171
181
|
clue: "People who stopped by to see you.",
|
|
172
|
-
id: "visitors"
|
|
182
|
+
id: "/visitors"
|
|
173
183
|
}
|
|
174
184
|
];
|
|
175
185
|
var EnumGameType = /* @__PURE__ */ ((EnumGameType2) => {
|
package/dist/types/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/types/index.ts","../../src/types/auth.ts","../../src/types/ad.ts","../../src/types/resourceActivities.ts","../../src/types/post.ts","../../src/types/game.ts"],"sourcesContent":["export * from \"./admin\";\nexport * from \"./auth\";\nexport * from \"./chat\";\nexport * from \"./contactUs\";\nexport * from \"./global\";\nexport * from \"./event\";\nexport * from \"./notification\";\nexport * from \"./poster\";\nexport * from \"./relation\";\nexport * from \"./vendor\";\nexport * from \"./user\";\nexport * from \"./ad\";\nexport * from \"./resourceActivities\";\nexport * from \"./partner\";\nexport * from \"./post\";\nexport * from \"./appSettings\";\nexport * from \"./googleImportedMarket\";\nexport * from \"./game\";\n","import { CreateFormData, EnumOSPlatform, TermsAgreement } from \"src\";\n\nexport enum EnumVerificationType {\n REGISTER = \"register\",\n RESET_PASSWORD = \"resetPassword\",\n}\n\nexport type LoginFormData = {\n email: string;\n isAdminPage?: boolean;\n password: string;\n platform?: EnumOSPlatform;\n};\n\nexport type CreateLoginFormData = CreateFormData<LoginFormData>;\n\nexport type RegisterFormData = {\n email: string;\n firstName: string;\n lastName: string;\n password: string;\n platform?: EnumOSPlatform;\n preferredRegion: string;\n promoCode?: string | null;\n termsAgreement?: TermsAgreement | null;\n};\n\nexport type CreateRegisterFormData = CreateFormData<RegisterFormData>;\n\nexport type RequestPasswordResetFormData = {\n email: string;\n};\n\nexport type CreateRequestPasswordResetFormData =\n CreateFormData<RequestPasswordResetFormData>;\n\nexport type ResetPasswordFormData = {\n confirmPassword: string;\n email: string;\n password: string;\n};\n\nexport type CreateResetPasswordFormData = CreateFormData<ResetPasswordFormData>;\n\nexport type ValidateVerificationTokenFormData = {\n email: string;\n verificationToken: string;\n verificationType?: EnumVerificationType;\n};\n\nexport type CreateValidateVerificationTokenFormData =\n CreateFormData<ValidateVerificationTokenFormData>;\n","import { EnumResourceType } from \"src/enums\";\n\nimport { CreateFormData, SocialMediaType } from \"./global\";\n\nexport enum EnumAdShowOn {\n EVENTS_PAGE = \"Events_page\",\n FRONT_PAGE = \"Front_page\",\n PARTNERS_PAGE = \"Partners_page\",\n VENDORS_PAGE = \"Vendors_page\",\n}\n\nexport enum EnumAdStatus {\n ACTIVE = \"Active\",\n PAUSED = \"Paused\",\n EXPIRED = \"Expired\",\n}\n\nexport enum EnumAdType {\n SPONSORED = \"Sponsored\",\n FREE = \"Free\",\n}\n\nexport enum EnumAdStyle {\n BLOOM = \"Bloom\",\n RISE = \"Rise\",\n}\n\nexport type AdResource = {\n adDescription: string | null;\n adImage: string | null;\n adStyle: EnumAdStyle | null;\n adTitle: string | null;\n adType: EnumAdType | null;\n resourceId: string | null;\n resourceName: string | null;\n resourceRegion: string | null;\n resourceType: EnumResourceType | null;\n};\n\nexport interface AdFormData {\n active: boolean;\n end: Date; // ISO date string\n resource: AdResource;\n showOn: EnumAdShowOn[];\n start?: Date; // ISO date string\n status: EnumAdStatus;\n targetRegion: string[];\n}\n\nexport type CreateAdFormData = CreateFormData<AdFormData>;\n\nexport interface AdType extends AdFormData {\n _id: string;\n clicks?: number; // How many times the ad was clicked\n createdAt: Date;\n impressions?: number; // How often the ad was seen\n start: Date; // ISO date string\n updatedAt: Date | null;\n}\n","import {\n EnumEventDateStatus,\n EnumOSPlatform,\n EnumResourceType,\n} from \"src/enums\";\n\nimport { LocationGeoType } from \"./global\";\n\nexport enum EnumActivity {\n FAVORITE = \"FAVORITE\",\n GOING = \"GOING\",\n INTERESTED = \"INTERESTED\",\n PRESENT = \"PRESENT\",\n VIEW = \"VIEW\",\n}\n\nexport type ResourceActivityEntry = {\n activityType: EnumActivity;\n location: LocationGeoType | null;\n dateStatus?: EnumEventDateStatus | null;\n startDate?: string | null;\n startTime?: string | null;\n timestamp: Date;\n userAgent: EnumOSPlatform;\n userId?: string | null;\n};\n\nexport type ResourceActivityType = {\n _id: string;\n resourceType: EnumResourceType;\n resourceId: string;\n activity: ResourceActivityEntry[];\n};\n\nexport type ResourceActivityInputType = {\n resourceId: string;\n resourceType: EnumResourceType;\n activity: Omit<ResourceActivityEntry, \"timestamp\">;\n};\n","import { EnumResourceType } from \"src/enums\";\n\nimport { BaseGame } from \"./game\";\nimport { CreateFormData, ResourceImageType } from \"./global\";\n\nexport enum EnumPostType {\n DAILY_MEETS = \"daily_meets\",\n DAILY_TIPS = \"daily_tips\",\n DAILY_GAMES = \"daily_games\",\n}\n\nexport enum EnumPostContentType {\n GAME = \"game\",\n IMAGE = \"image\",\n LIST = \"list\",\n TEXTAREA = \"textarea\",\n VIDEO = \"video\",\n}\n\nexport type PostFileInput = {\n source: File;\n title?: string;\n};\n\nexport type PostContentTextarea = {\n textarea: {\n title?: string;\n data: string;\n };\n};\n\nexport type PostContentImage = {\n images: ResourceImageType[] | null;\n imagesUpload?: PostFileInput[] | null;\n};\n\nexport type PostContentVideo = {\n video: {\n source: string;\n title?: string;\n };\n};\n\nexport type PostContentList = {\n list: {\n title?: string;\n items: {\n text: string;\n }[];\n };\n};\n\nexport type PostContentGame = {\n game: BaseGame;\n};\n\nexport type PostContentData =\n | PostContentGame\n | PostContentTextarea\n | PostContentImage\n | PostContentVideo\n | PostContentList;\n\nexport type PostContentFormData = {\n contentData?: PostContentData | null;\n contentOrder?: number | null;\n contentType?: EnumPostContentType | null;\n};\n\nexport interface PostFormData {\n active: boolean;\n caption: string;\n content: PostContentFormData[];\n cover?: ResourceImageType | null;\n coverUpload?: PostFileInput | null;\n postType: EnumPostType;\n resource?: {\n resourceId: string;\n resourceType: EnumResourceType;\n } | null;\n tags?: string[] | null;\n title: string;\n}\n\nexport type CreatePostFormData = CreateFormData<PostFormData>;\n\nexport type PostContentType = Omit<PostContentFormData, \"contentData\"> & {\n contentData: Omit<PostContentData, \"imagesUpload\">;\n};\n\nexport type PostType = Omit<PostFormData, \"content\" | \"coverUpload\"> & {\n _id: string;\n content: PostContentType[];\n createdAt: Date;\n deletedAt: Date | null;\n updatedAt: Date | null;\n};\n","import { OwnerType } from \"./global\";\n\nexport const gameScreenIdentifierList = [\n {\n clue: \"Where your actions turn into a timeline.\",\n id: \"activities\",\n },\n {\n clue: \"Where conversations happen without speaking.\",\n id: \"chat\",\n },\n {\n clue: \"The place to redefine who you are.\",\n id: \"edit-profile\",\n },\n {\n clue: \"A single moment worth showing up for.\",\n id: \"event\",\n },\n {\n clue: \"What’s happening around you, right now.\",\n id: \"events-near-me\",\n },\n {\n clue: \"A collection of things worth attending.\",\n id: \"events\",\n },\n {\n clue: \"What’s happening in a wider area—not just nearby.\",\n id: \"events/region\",\n },\n {\n clue: \"Where you go to find something specific.\",\n id: \"events/search\",\n },\n {\n clue: \"Where fun becomes a challenge.\",\n id: \"games\",\n },\n {\n clue: \"Your starting point for everything.\",\n id: \"home\",\n },\n {\n clue: \"Where the app taps you on the shoulder.\",\n id: \"notifications\",\n },\n {\n clue: \"Where you fine-tune your experience.\",\n id: \"options\",\n },\n {\n clue: \"A single collaborator in the ecosystem.\",\n id: \"partner\",\n },\n {\n clue: \"The network behind the scenes.\",\n id: \"partners\",\n },\n {\n clue: \"Where you share something with everyone.\",\n id: \"post\",\n },\n {\n clue: \"Your identity, on display.\",\n id: \"profile\",\n },\n {\n clue: \"One provider offering something valuable.\",\n id: \"vendor\",\n },\n {\n clue: \"A marketplace of providers.\",\n id: \"vendors\",\n },\n {\n clue: \"People who stopped by to see you.\",\n id: \"visitors\",\n },\n] as const;\n\nexport type GamePlacement = (typeof gameScreenIdentifierList)[number][\"id\"];\nexport type GamePlacementClue =\n (typeof gameScreenIdentifierList)[number][\"clue\"];\n\nexport enum EnumGameType {\n DAILY_CLUE = \"dailyClue\",\n}\n\nexport const gameTypeToDisplayName: Record<EnumGameType, string> = {\n [EnumGameType.DAILY_CLUE]: \"Daily Clue\",\n};\n\nexport type GameDate = {\n startDate: Date;\n endDate: Date;\n};\n\nexport type BaseGame = {\n gameDate: GameDate;\n gameSolution: string;\n gameType: EnumGameType;\n};\n\nexport type DailyClueGameData = {\n gameFields: BaseGame;\n lastFoundDate: Date | null;\n points: number;\n letterInfo: {\n collected: string[] | null; // The letters the user has found, e.g. [\"C\", \"L\", \"U\"]\n shuffled: string[]; // The letters of the solution, but shuffled, e.g. [\"L\", \"C\", \"U\"]\n todaysLetter: string | null; // The letter the user has to find today, e.g. \"C\"\n todaysClue: GamePlacementClue | null; // The clue for user to find the letter, e.g. related to {todaysPlacement}\n todaysPlacement: GamePlacement | null; // The screen where the user has to find the clue, e.g. \"HomeScreen\"\n };\n // User has found the clue 3 days in a row, this is incrementing if the user finds the clue and decrements if user misses a day\n streak: number;\n};\n\ntype GameDataMap = {\n [EnumGameType.DAILY_CLUE]: DailyClueGameData;\n};\nexport type GameData = {\n [K in keyof GameDataMap]?: GameDataMap[K] | null;\n};\n\nexport enum EnumGameStatus {\n GAME_COMPLETED = \"GAME_COMPLETED\",\n GAME_LEFT = \"GAME_LEFT\",\n GAME_IN_PROGRESS = \"GAME_IN_PROGRESS\",\n}\n\nexport type GameHistory = {\n gameDate: GameDate;\n gameStatus: EnumGameStatus;\n gameType: EnumGameType;\n pointsEarned: number;\n};\n\nexport type GameType = {\n _id: string;\n active: boolean;\n createdAt: Date;\n deletedAt: Date | null;\n gameData: GameData | null;\n gameHistory: GameHistory[] | null;\n owner: OwnerType;\n points: number;\n updatedAt: Date | null;\n};\n\nexport type GameLeaderboard = {\n gameHistory: GameHistory[] | null;\n overallPoints: number;\n owner: OwnerType;\n};\n"],"mappings":"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","names":["EnumVerificationType","EnumAdShowOn","EnumAdStatus","EnumAdType","EnumAdStyle","EnumActivity","EnumPostType","EnumPostContentType","EnumGameType","EnumGameStatus"]}
|
|
1
|
+
{"version":3,"sources":["../../src/types/index.ts","../../src/types/auth.ts","../../src/types/ad.ts","../../src/types/resourceActivities.ts","../../src/types/post.ts","../../src/types/game.ts"],"sourcesContent":["export * from \"./admin\";\nexport * from \"./auth\";\nexport * from \"./chat\";\nexport * from \"./contactUs\";\nexport * from \"./global\";\nexport * from \"./event\";\nexport * from \"./notification\";\nexport * from \"./poster\";\nexport * from \"./relation\";\nexport * from \"./vendor\";\nexport * from \"./user\";\nexport * from \"./ad\";\nexport * from \"./resourceActivities\";\nexport * from \"./partner\";\nexport * from \"./post\";\nexport * from \"./appSettings\";\nexport * from \"./googleImportedMarket\";\nexport * from \"./game\";\n","import { CreateFormData, EnumOSPlatform, TermsAgreement } from \"src\";\n\nexport enum EnumVerificationType {\n REGISTER = \"register\",\n RESET_PASSWORD = \"resetPassword\",\n}\n\nexport type LoginFormData = {\n email: string;\n isAdminPage?: boolean;\n password: string;\n platform?: EnumOSPlatform;\n};\n\nexport type CreateLoginFormData = CreateFormData<LoginFormData>;\n\nexport type RegisterFormData = {\n email: string;\n firstName: string;\n lastName: string;\n password: string;\n platform?: EnumOSPlatform;\n preferredRegion: string;\n promoCode?: string | null;\n termsAgreement?: TermsAgreement | null;\n};\n\nexport type CreateRegisterFormData = CreateFormData<RegisterFormData>;\n\nexport type RequestPasswordResetFormData = {\n email: string;\n};\n\nexport type CreateRequestPasswordResetFormData =\n CreateFormData<RequestPasswordResetFormData>;\n\nexport type ResetPasswordFormData = {\n confirmPassword: string;\n email: string;\n password: string;\n};\n\nexport type CreateResetPasswordFormData = CreateFormData<ResetPasswordFormData>;\n\nexport type ValidateVerificationTokenFormData = {\n email: string;\n verificationToken: string;\n verificationType?: EnumVerificationType;\n};\n\nexport type CreateValidateVerificationTokenFormData =\n CreateFormData<ValidateVerificationTokenFormData>;\n","import { EnumResourceType } from \"src/enums\";\n\nimport { CreateFormData, SocialMediaType } from \"./global\";\n\nexport enum EnumAdShowOn {\n EVENTS_PAGE = \"Events_page\",\n FRONT_PAGE = \"Front_page\",\n PARTNERS_PAGE = \"Partners_page\",\n VENDORS_PAGE = \"Vendors_page\",\n}\n\nexport enum EnumAdStatus {\n ACTIVE = \"Active\",\n PAUSED = \"Paused\",\n EXPIRED = \"Expired\",\n}\n\nexport enum EnumAdType {\n SPONSORED = \"Sponsored\",\n FREE = \"Free\",\n}\n\nexport enum EnumAdStyle {\n BLOOM = \"Bloom\",\n RISE = \"Rise\",\n}\n\nexport type AdResource = {\n adDescription: string | null;\n adImage: string | null;\n adStyle: EnumAdStyle | null;\n adTitle: string | null;\n adType: EnumAdType | null;\n resourceId: string | null;\n resourceName: string | null;\n resourceRegion: string | null;\n resourceType: EnumResourceType | null;\n};\n\nexport interface AdFormData {\n active: boolean;\n end: Date; // ISO date string\n resource: AdResource;\n showOn: EnumAdShowOn[];\n start?: Date; // ISO date string\n status: EnumAdStatus;\n targetRegion: string[];\n}\n\nexport type CreateAdFormData = CreateFormData<AdFormData>;\n\nexport interface AdType extends AdFormData {\n _id: string;\n clicks?: number; // How many times the ad was clicked\n createdAt: Date;\n impressions?: number; // How often the ad was seen\n start: Date; // ISO date string\n updatedAt: Date | null;\n}\n","import {\n EnumEventDateStatus,\n EnumOSPlatform,\n EnumResourceType,\n} from \"src/enums\";\n\nimport { LocationGeoType } from \"./global\";\n\nexport enum EnumActivity {\n FAVORITE = \"FAVORITE\",\n GOING = \"GOING\",\n INTERESTED = \"INTERESTED\",\n PRESENT = \"PRESENT\",\n VIEW = \"VIEW\",\n}\n\nexport type ResourceActivityEntry = {\n activityType: EnumActivity;\n location: LocationGeoType | null;\n dateStatus?: EnumEventDateStatus | null;\n startDate?: string | null;\n startTime?: string | null;\n timestamp: Date;\n userAgent: EnumOSPlatform;\n userId?: string | null;\n};\n\nexport type ResourceActivityType = {\n _id: string;\n resourceType: EnumResourceType;\n resourceId: string;\n activity: ResourceActivityEntry[];\n};\n\nexport type ResourceActivityInputType = {\n resourceId: string;\n resourceType: EnumResourceType;\n activity: Omit<ResourceActivityEntry, \"timestamp\">;\n};\n","import { EnumResourceType } from \"src/enums\";\n\nimport { BaseGame } from \"./game\";\nimport { CreateFormData, ResourceImageType } from \"./global\";\n\nexport enum EnumPostType {\n DAILY_MEETS = \"daily_meets\",\n DAILY_TIPS = \"daily_tips\",\n DAILY_GAMES = \"daily_games\",\n}\n\nexport enum EnumPostContentType {\n GAME = \"game\",\n IMAGE = \"image\",\n LIST = \"list\",\n TEXTAREA = \"textarea\",\n VIDEO = \"video\",\n}\n\nexport type PostFileInput = {\n source: File;\n title?: string;\n};\n\nexport type PostContentTextarea = {\n textarea: {\n title?: string;\n data: string;\n };\n};\n\nexport type PostContentImage = {\n images: ResourceImageType[] | null;\n imagesUpload?: PostFileInput[] | null;\n};\n\nexport type PostContentVideo = {\n video: {\n source: string;\n title?: string;\n };\n};\n\nexport type PostContentList = {\n list: {\n title?: string;\n items: {\n text: string;\n }[];\n };\n};\n\nexport type PostContentGame = {\n game: BaseGame;\n};\n\nexport type PostContentData =\n | PostContentGame\n | PostContentTextarea\n | PostContentImage\n | PostContentVideo\n | PostContentList;\n\nexport type PostContentFormData = {\n contentData?: PostContentData | null;\n contentOrder?: number | null;\n contentType?: EnumPostContentType | null;\n};\n\nexport interface PostFormData {\n active: boolean;\n caption: string;\n content: PostContentFormData[];\n cover?: ResourceImageType | null;\n coverUpload?: PostFileInput | null;\n postType: EnumPostType;\n resource?: {\n resourceId: string;\n resourceType: EnumResourceType;\n } | null;\n tags?: string[] | null;\n title: string;\n}\n\nexport type CreatePostFormData = CreateFormData<PostFormData>;\n\nexport type PostContentType = Omit<PostContentFormData, \"contentData\"> & {\n contentData: Omit<PostContentData, \"imagesUpload\">;\n};\n\nexport type PostType = Omit<PostFormData, \"content\" | \"coverUpload\"> & {\n _id: string;\n content: PostContentType[];\n createdAt: Date;\n deletedAt: Date | null;\n updatedAt: Date | null;\n};\n","import { OwnerType } from \"./global\";\n\ntype MatcherType = \"mongoId\" | \"slug\";\n\nconst createRouteMatcher = (base: string, type: MatcherType) => {\n switch (type) {\n case \"mongoId\":\n return new RegExp(`^\\\\/${base}\\\\/([a-f0-9]{24})$`);\n\n case \"slug\":\n return new RegExp(`^\\\\/${base}\\\\/[^/]+$`);\n\n default:\n return new RegExp(`^\\\\/${base}$`);\n }\n};\n\nexport const gameScreenIdentifierList = [\n {\n clue: \"Where your actions turn into a timeline.\",\n id: \"/profile/activities\",\n },\n {\n clue: \"Where conversations happen without speaking.\",\n id: \"/profile/chat\",\n },\n {\n clue: \"The place to redefine who you are.\",\n id: \"/profile/edit-profile\",\n },\n {\n clue: \"A single moment worth showing up for.\",\n id: createRouteMatcher(\"events\", \"mongoId\"),\n },\n {\n clue: \"What’s happening around you, right now.\",\n id: \"/events/events-near-me\",\n },\n {\n clue: \"A collection of things worth attending.\",\n id: \"/events\",\n },\n {\n clue: \"What’s happening in a wider area—not just nearby.\",\n id: createRouteMatcher(\"events/region\", \"slug\"),\n },\n {\n clue: \"Where you go to find something specific.\",\n id: \"/events/search\",\n },\n {\n clue: \"Where fun becomes a challenge.\",\n id: \"/games\",\n },\n {\n clue: \"Your starting point for everything.\",\n id: \"/\",\n },\n {\n clue: \"Where the app taps you on the shoulder.\",\n id: \"/notifications\",\n },\n {\n clue: \"Where you fine-tune your experience.\",\n id: \"/options\",\n },\n {\n clue: \"A single collaborator in the ecosystem.\",\n id: createRouteMatcher(\"partners\", \"mongoId\"),\n },\n {\n clue: \"The network behind the scenes.\",\n id: \"/partners\",\n },\n {\n clue: \"Where you share something with everyone.\",\n id: createRouteMatcher(\"visitors/posts\", \"mongoId\"),\n },\n {\n clue: \"Your identity, on display.\",\n id: \"/profile\",\n },\n {\n clue: \"One provider offering something valuable.\",\n id: createRouteMatcher(\"vendors\", \"mongoId\"),\n },\n {\n clue: \"A marketplace of providers.\",\n id: \"/vendors\",\n },\n {\n clue: \"People who stopped by to see you.\",\n id: \"/visitors\",\n },\n] as const;\n\nexport type GamePlacement = (typeof gameScreenIdentifierList)[number][\"id\"];\nexport type GamePlacementClue =\n (typeof gameScreenIdentifierList)[number][\"clue\"];\n\nexport enum EnumGameType {\n DAILY_CLUE = \"dailyClue\",\n}\n\nexport const gameTypeToDisplayName: Record<EnumGameType, string> = {\n [EnumGameType.DAILY_CLUE]: \"Daily Clue\",\n};\n\nexport type GameDate = {\n startDate: Date;\n endDate: Date;\n};\n\nexport type BaseGame = {\n gameDate: GameDate;\n gameSolution: string;\n gameType: EnumGameType;\n};\n\nexport type DailyClueGameData = {\n gameFields: BaseGame;\n lastFoundDate: Date | null;\n points: number;\n letterInfo: {\n collected: string[] | null; // The letters the user has found, e.g. [\"C\", \"L\", \"U\"]\n shuffled: string[]; // The letters of the solution, but shuffled, e.g. [\"L\", \"C\", \"U\"]\n todaysLetter: string | null; // The letter the user has to find today, e.g. \"C\"\n todaysClue: GamePlacementClue | null; // The clue for user to find the letter, e.g. related to {todaysPlacement}\n todaysPlacement: GamePlacement | null; // The screen where the user has to find the clue, e.g. \"HomeScreen\"\n };\n // User has found the clue 3 days in a row, this is incrementing if the user finds the clue and decrements if user misses a day\n streak: number;\n};\n\ntype GameDataMap = {\n [EnumGameType.DAILY_CLUE]: DailyClueGameData;\n};\nexport type GameData = {\n [K in keyof GameDataMap]?: GameDataMap[K] | null;\n};\n\nexport enum EnumGameStatus {\n GAME_COMPLETED = \"GAME_COMPLETED\",\n GAME_LEFT = \"GAME_LEFT\",\n GAME_IN_PROGRESS = \"GAME_IN_PROGRESS\",\n}\n\nexport type GameHistory = {\n gameDate: GameDate;\n gameStatus: EnumGameStatus;\n gameType: EnumGameType;\n pointsEarned: number;\n};\n\nexport type GameType = {\n _id: string;\n active: boolean;\n createdAt: Date;\n deletedAt: Date | null;\n gameData: GameData | null;\n gameHistory: GameHistory[] | null;\n owner: OwnerType;\n points: number;\n updatedAt: Date | null;\n};\n\nexport type GameLeaderboard = {\n gameHistory: GameHistory[] | null;\n overallPoints: number;\n owner: OwnerType;\n};\n"],"mappings":"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","names":["EnumVerificationType","EnumAdShowOn","EnumAdStatus","EnumAdType","EnumAdStyle","EnumActivity","EnumPostType","EnumPostContentType","EnumGameType","EnumGameStatus"]}
|
package/dist/types/index.d.mts
CHANGED
|
@@ -3,8 +3,8 @@ export { e as ContactUsFormData, f as CreateContactUsFormData, C as CreateLoginF
|
|
|
3
3
|
export { c as ChatMessageInput, d as ChatMessageReaction, e as ChatMessageReplyPreview, f as ChatMessageSeen, g as ChatMessageType, C as ChatType, h as CreateBulkNotificationInput, E as EnumActivity, N as NotificationCount, i as NotificationDataType, a as NotificationType, P as ParticipantType, R as ReportChatUser, j as ResourceActivityEntry, k as ResourceActivityInputType, b as ResourceActivityType } from '../resourceActivities-CqrscA5x.mjs';
|
|
4
4
|
import { c as EventListItemType } from '../global-MMBYi34A.mjs';
|
|
5
5
|
export { A as AssociateType, r as BaseResourceType, B as BaseResourceTypeFormData, C as Category, n as CreateEventFormData, p as CreateEventInfoFormData, s as CreateFormData, t as CreateUnregisteredVendorFormData, j as CreateVendorFormData, l as CreateVendorInfoFormData, D as DateTimeType, u as DateTimeWithPriceType, v as DeviceInfo, m as EventFormData, o as EventInfoFormData, d as EventInfoType, w as EventStatusType, E as EventType, a as FormDateField, F as FormField, G as GeocodeLocation, I as ImageObjectType, x as LocationGeoType, L as LocationType, N as Nullable, O as OptionItem, y as OwnerType, P as PaymentInfoType, z as PosterUsageType, R as RefundPolicy, H as Region, J as RelationDate, e as RelationType, b as Requirement, f as ResourceConnectionsType, K as ResourceContactDetailsType, M as ResourceDetails, Q as ResourceImageType, T as SocialMediaType, S as StallType, W as Subcategory, X as SubcategoryItems, Y as TermsAgreement, q as UnregisteredVendorFormData, Z as UnregisteredVendorInvitationType, U as UnregisteredVendorType, h as UserLicenceType, _ as VendorAttributes, $ as VendorCalendarData, i as VendorFormData, k as VendorInfoFormData, g as VendorInfoType, a0 as VendorProductList, V as VendorType } from '../global-MMBYi34A.mjs';
|
|
6
|
-
export { g as AdFormData, n as AdResource, A as AdType, l as AppSettingsFormData, d as AppSettingsType, h as CreateAdFormData, m as CreateAppSettingsFormData, i as CreatePartnerFormData, k as CreatePostFormData, C as CreateUserFormData, o as EnumAdShowOn, E as EnumAdStatus, p as EnumAdStyle, q as EnumAdType, r as EnumPostContentType, c as EnumPostType, f as PartnerFormData, P as PartnerType, s as PostContentData, t as PostContentFormData, u as PostContentGame, v as PostContentImage, w as PostContentList, x as PostContentTextarea, y as PostContentType, z as PostContentVideo, B as PostFileInput, j as PostFormData, b as PostType, R as ResourceByUser, D as StripeSubscription, F as SubscriptionPlanData, S as SubscriptionPlansResponse, G as SubscriptionPricingData, a as SubscriptionStatusData, H as UserActivity, I as UserActivityEvent, e as UserFormData, U as UserType } from '../post-
|
|
7
|
-
export { B as BaseGame, D as DailyClueGameData, E as EnumGameStatus, b as EnumGameType, c as GameData, d as GameDate, e as GameHistory, a as GameLeaderboard, f as GamePlacement, g as GamePlacementClue, G as GameType, h as gameScreenIdentifierList, i as gameTypeToDisplayName } from '../game-
|
|
6
|
+
export { g as AdFormData, n as AdResource, A as AdType, l as AppSettingsFormData, d as AppSettingsType, h as CreateAdFormData, m as CreateAppSettingsFormData, i as CreatePartnerFormData, k as CreatePostFormData, C as CreateUserFormData, o as EnumAdShowOn, E as EnumAdStatus, p as EnumAdStyle, q as EnumAdType, r as EnumPostContentType, c as EnumPostType, f as PartnerFormData, P as PartnerType, s as PostContentData, t as PostContentFormData, u as PostContentGame, v as PostContentImage, w as PostContentList, x as PostContentTextarea, y as PostContentType, z as PostContentVideo, B as PostFileInput, j as PostFormData, b as PostType, R as ResourceByUser, D as StripeSubscription, F as SubscriptionPlanData, S as SubscriptionPlansResponse, G as SubscriptionPricingData, a as SubscriptionStatusData, H as UserActivity, I as UserActivityEvent, e as UserFormData, U as UserType } from '../post-BBYcN5xv.mjs';
|
|
7
|
+
export { B as BaseGame, D as DailyClueGameData, E as EnumGameStatus, b as EnumGameType, c as GameData, d as GameDate, e as GameHistory, a as GameLeaderboard, f as GamePlacement, g as GamePlacementClue, G as GameType, h as gameScreenIdentifierList, i as gameTypeToDisplayName } from '../game-BR9xpQkt.mjs';
|
|
8
8
|
import 'react-hook-form';
|
|
9
9
|
|
|
10
10
|
interface AdminUpdateResourceType {
|
package/dist/types/index.d.ts
CHANGED
|
@@ -3,8 +3,8 @@ export { e as ContactUsFormData, f as CreateContactUsFormData, C as CreateLoginF
|
|
|
3
3
|
export { c as ChatMessageInput, d as ChatMessageReaction, e as ChatMessageReplyPreview, f as ChatMessageSeen, g as ChatMessageType, C as ChatType, h as CreateBulkNotificationInput, E as EnumActivity, N as NotificationCount, i as NotificationDataType, a as NotificationType, P as ParticipantType, R as ReportChatUser, j as ResourceActivityEntry, k as ResourceActivityInputType, b as ResourceActivityType } from '../resourceActivities-2FaGRW-i.js';
|
|
4
4
|
import { c as EventListItemType } from '../global-B0WdAD-8.js';
|
|
5
5
|
export { A as AssociateType, r as BaseResourceType, B as BaseResourceTypeFormData, C as Category, n as CreateEventFormData, p as CreateEventInfoFormData, s as CreateFormData, t as CreateUnregisteredVendorFormData, j as CreateVendorFormData, l as CreateVendorInfoFormData, D as DateTimeType, u as DateTimeWithPriceType, v as DeviceInfo, m as EventFormData, o as EventInfoFormData, d as EventInfoType, w as EventStatusType, E as EventType, a as FormDateField, F as FormField, G as GeocodeLocation, I as ImageObjectType, x as LocationGeoType, L as LocationType, N as Nullable, O as OptionItem, y as OwnerType, P as PaymentInfoType, z as PosterUsageType, R as RefundPolicy, H as Region, J as RelationDate, e as RelationType, b as Requirement, f as ResourceConnectionsType, K as ResourceContactDetailsType, M as ResourceDetails, Q as ResourceImageType, T as SocialMediaType, S as StallType, W as Subcategory, X as SubcategoryItems, Y as TermsAgreement, q as UnregisteredVendorFormData, Z as UnregisteredVendorInvitationType, U as UnregisteredVendorType, h as UserLicenceType, _ as VendorAttributes, $ as VendorCalendarData, i as VendorFormData, k as VendorInfoFormData, g as VendorInfoType, a0 as VendorProductList, V as VendorType } from '../global-B0WdAD-8.js';
|
|
6
|
-
export { g as AdFormData, n as AdResource, A as AdType, l as AppSettingsFormData, d as AppSettingsType, h as CreateAdFormData, m as CreateAppSettingsFormData, i as CreatePartnerFormData, k as CreatePostFormData, C as CreateUserFormData, o as EnumAdShowOn, E as EnumAdStatus, p as EnumAdStyle, q as EnumAdType, r as EnumPostContentType, c as EnumPostType, f as PartnerFormData, P as PartnerType, s as PostContentData, t as PostContentFormData, u as PostContentGame, v as PostContentImage, w as PostContentList, x as PostContentTextarea, y as PostContentType, z as PostContentVideo, B as PostFileInput, j as PostFormData, b as PostType, R as ResourceByUser, D as StripeSubscription, F as SubscriptionPlanData, S as SubscriptionPlansResponse, G as SubscriptionPricingData, a as SubscriptionStatusData, H as UserActivity, I as UserActivityEvent, e as UserFormData, U as UserType } from '../post-
|
|
7
|
-
export { B as BaseGame, D as DailyClueGameData, E as EnumGameStatus, b as EnumGameType, c as GameData, d as GameDate, e as GameHistory, a as GameLeaderboard, f as GamePlacement, g as GamePlacementClue, G as GameType, h as gameScreenIdentifierList, i as gameTypeToDisplayName } from '../game-
|
|
6
|
+
export { g as AdFormData, n as AdResource, A as AdType, l as AppSettingsFormData, d as AppSettingsType, h as CreateAdFormData, m as CreateAppSettingsFormData, i as CreatePartnerFormData, k as CreatePostFormData, C as CreateUserFormData, o as EnumAdShowOn, E as EnumAdStatus, p as EnumAdStyle, q as EnumAdType, r as EnumPostContentType, c as EnumPostType, f as PartnerFormData, P as PartnerType, s as PostContentData, t as PostContentFormData, u as PostContentGame, v as PostContentImage, w as PostContentList, x as PostContentTextarea, y as PostContentType, z as PostContentVideo, B as PostFileInput, j as PostFormData, b as PostType, R as ResourceByUser, D as StripeSubscription, F as SubscriptionPlanData, S as SubscriptionPlansResponse, G as SubscriptionPricingData, a as SubscriptionStatusData, H as UserActivity, I as UserActivityEvent, e as UserFormData, U as UserType } from '../post-CWZFxlP7.js';
|
|
7
|
+
export { B as BaseGame, D as DailyClueGameData, E as EnumGameStatus, b as EnumGameType, c as GameData, d as GameDate, e as GameHistory, a as GameLeaderboard, f as GamePlacement, g as GamePlacementClue, G as GameType, h as gameScreenIdentifierList, i as gameTypeToDisplayName } from '../game-Dn5SH8_0.js';
|
|
8
8
|
import 'react-hook-form';
|
|
9
9
|
|
|
10
10
|
interface AdminUpdateResourceType {
|
package/dist/types/index.mjs
CHANGED
package/dist/utils/index.cjs
CHANGED
|
@@ -58,88 +58,100 @@ module.exports = __toCommonJS(utils_exports);
|
|
|
58
58
|
|
|
59
59
|
// src/utils/dailyClueGame.ts
|
|
60
60
|
var import_dayjs = __toESM(require("dayjs"));
|
|
61
|
+
var import_utc = __toESM(require("dayjs/plugin/utc"));
|
|
61
62
|
|
|
62
63
|
// src/types/game.ts
|
|
64
|
+
var createRouteMatcher = (base, type) => {
|
|
65
|
+
switch (type) {
|
|
66
|
+
case "mongoId":
|
|
67
|
+
return new RegExp(`^\\/${base}\\/([a-f0-9]{24})$`);
|
|
68
|
+
case "slug":
|
|
69
|
+
return new RegExp(`^\\/${base}\\/[^/]+$`);
|
|
70
|
+
default:
|
|
71
|
+
return new RegExp(`^\\/${base}$`);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
63
74
|
var gameScreenIdentifierList = [
|
|
64
75
|
{
|
|
65
76
|
clue: "Where your actions turn into a timeline.",
|
|
66
|
-
id: "activities"
|
|
77
|
+
id: "/profile/activities"
|
|
67
78
|
},
|
|
68
79
|
{
|
|
69
80
|
clue: "Where conversations happen without speaking.",
|
|
70
|
-
id: "chat"
|
|
81
|
+
id: "/profile/chat"
|
|
71
82
|
},
|
|
72
83
|
{
|
|
73
84
|
clue: "The place to redefine who you are.",
|
|
74
|
-
id: "edit-profile"
|
|
85
|
+
id: "/profile/edit-profile"
|
|
75
86
|
},
|
|
76
87
|
{
|
|
77
88
|
clue: "A single moment worth showing up for.",
|
|
78
|
-
id: "
|
|
89
|
+
id: createRouteMatcher("events", "mongoId")
|
|
79
90
|
},
|
|
80
91
|
{
|
|
81
92
|
clue: "What\u2019s happening around you, right now.",
|
|
82
|
-
id: "events-near-me"
|
|
93
|
+
id: "/events/events-near-me"
|
|
83
94
|
},
|
|
84
95
|
{
|
|
85
96
|
clue: "A collection of things worth attending.",
|
|
86
|
-
id: "events"
|
|
97
|
+
id: "/events"
|
|
87
98
|
},
|
|
88
99
|
{
|
|
89
100
|
clue: "What\u2019s happening in a wider area\u2014not just nearby.",
|
|
90
|
-
id: "events/region"
|
|
101
|
+
id: createRouteMatcher("events/region", "slug")
|
|
91
102
|
},
|
|
92
103
|
{
|
|
93
104
|
clue: "Where you go to find something specific.",
|
|
94
|
-
id: "events/search"
|
|
105
|
+
id: "/events/search"
|
|
95
106
|
},
|
|
96
107
|
{
|
|
97
108
|
clue: "Where fun becomes a challenge.",
|
|
98
|
-
id: "games"
|
|
109
|
+
id: "/games"
|
|
99
110
|
},
|
|
100
111
|
{
|
|
101
112
|
clue: "Your starting point for everything.",
|
|
102
|
-
id: "
|
|
113
|
+
id: "/"
|
|
103
114
|
},
|
|
104
115
|
{
|
|
105
116
|
clue: "Where the app taps you on the shoulder.",
|
|
106
|
-
id: "notifications"
|
|
117
|
+
id: "/notifications"
|
|
107
118
|
},
|
|
108
119
|
{
|
|
109
120
|
clue: "Where you fine-tune your experience.",
|
|
110
|
-
id: "options"
|
|
121
|
+
id: "/options"
|
|
111
122
|
},
|
|
112
123
|
{
|
|
113
124
|
clue: "A single collaborator in the ecosystem.",
|
|
114
|
-
id: "
|
|
125
|
+
id: createRouteMatcher("partners", "mongoId")
|
|
115
126
|
},
|
|
116
127
|
{
|
|
117
128
|
clue: "The network behind the scenes.",
|
|
118
|
-
id: "partners"
|
|
129
|
+
id: "/partners"
|
|
119
130
|
},
|
|
120
131
|
{
|
|
121
132
|
clue: "Where you share something with everyone.",
|
|
122
|
-
id: "
|
|
133
|
+
id: createRouteMatcher("visitors/posts", "mongoId")
|
|
123
134
|
},
|
|
124
135
|
{
|
|
125
136
|
clue: "Your identity, on display.",
|
|
126
|
-
id: "profile"
|
|
137
|
+
id: "/profile"
|
|
127
138
|
},
|
|
128
139
|
{
|
|
129
140
|
clue: "One provider offering something valuable.",
|
|
130
|
-
id: "
|
|
141
|
+
id: createRouteMatcher("vendors", "mongoId")
|
|
131
142
|
},
|
|
132
143
|
{
|
|
133
144
|
clue: "A marketplace of providers.",
|
|
134
|
-
id: "vendors"
|
|
145
|
+
id: "/vendors"
|
|
135
146
|
},
|
|
136
147
|
{
|
|
137
148
|
clue: "People who stopped by to see you.",
|
|
138
|
-
id: "visitors"
|
|
149
|
+
id: "/visitors"
|
|
139
150
|
}
|
|
140
151
|
];
|
|
141
152
|
|
|
142
153
|
// src/utils/dailyClueGame.ts
|
|
154
|
+
import_dayjs.default.extend(import_utc.default);
|
|
143
155
|
function createSeededRng(seed) {
|
|
144
156
|
let t = seed >>> 0;
|
|
145
157
|
return function random() {
|
|
@@ -168,18 +180,18 @@ function seededShuffle(array, seed) {
|
|
|
168
180
|
return result;
|
|
169
181
|
}
|
|
170
182
|
function getDayIndex(startDate) {
|
|
171
|
-
return (0, import_dayjs.default)().startOf("day").diff((0, import_dayjs.default)(startDate).startOf("day"), "day");
|
|
183
|
+
return (0, import_dayjs.default)().utc().startOf("day").diff((0, import_dayjs.default)(startDate).utc().startOf("day"), "day");
|
|
172
184
|
}
|
|
173
185
|
function computeDailyClueState(dailyClue) {
|
|
174
186
|
const { startDate, endDate } = dailyClue.gameFields.gameDate;
|
|
175
187
|
const { shuffled, collected } = dailyClue.letterInfo;
|
|
188
|
+
const today = (0, import_dayjs.default)().utc().startOf("day");
|
|
189
|
+
const start = (0, import_dayjs.default)(startDate).utc().startOf("day");
|
|
190
|
+
const end = (0, import_dayjs.default)(endDate).utc().startOf("day");
|
|
176
191
|
const shuffledPlacements = seededShuffle(
|
|
177
192
|
gameScreenIdentifierList,
|
|
178
|
-
|
|
193
|
+
start.toISOString()
|
|
179
194
|
);
|
|
180
|
-
const today = (0, import_dayjs.default)().startOf("day");
|
|
181
|
-
const start = (0, import_dayjs.default)(startDate).startOf("day");
|
|
182
|
-
const end = (0, import_dayjs.default)(endDate).startOf("day");
|
|
183
195
|
if (today.isBefore(start)) {
|
|
184
196
|
return null;
|
|
185
197
|
}
|
|
@@ -217,7 +229,7 @@ var import_dayjs2 = __toESM(require("dayjs"));
|
|
|
217
229
|
var import_customParseFormat = __toESM(require("dayjs/plugin/customParseFormat.js"));
|
|
218
230
|
var import_isSameOrAfter = __toESM(require("dayjs/plugin/isSameOrAfter.js"));
|
|
219
231
|
var import_timezone = __toESM(require("dayjs/plugin/timezone.js"));
|
|
220
|
-
var
|
|
232
|
+
var import_utc2 = __toESM(require("dayjs/plugin/utc.js"));
|
|
221
233
|
|
|
222
234
|
// src/enums/index.ts
|
|
223
235
|
var EnumInviteStatus = /* @__PURE__ */ ((EnumInviteStatus2) => {
|
|
@@ -259,7 +271,7 @@ var EnumRegions = /* @__PURE__ */ ((EnumRegions2) => {
|
|
|
259
271
|
var dateFormat = "DD-MM-YYYY";
|
|
260
272
|
var timeFormat = "HH:mm";
|
|
261
273
|
import_dayjs2.default.extend(import_customParseFormat.default);
|
|
262
|
-
import_dayjs2.default.extend(
|
|
274
|
+
import_dayjs2.default.extend(import_utc2.default);
|
|
263
275
|
import_dayjs2.default.extend(import_timezone.default);
|
|
264
276
|
import_dayjs2.default.extend(import_isSameOrAfter.default);
|
|
265
277
|
var NZ_TZ = "Pacific/Auckland";
|
package/dist/utils/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/index.ts","../../src/utils/dailyClueGame.ts","../../src/types/game.ts","../../src/enums/index.ts"],"sourcesContent":["export { computeDailyClueState, seededShuffle } from \"./dailyClueGame\";\n\nimport dayjs from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat.js\";\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter.js\";\nimport timezone from \"dayjs/plugin/timezone.js\";\nimport utc from \"dayjs/plugin/utc.js\";\n\nimport {\n EnumInviteStatus,\n EnumPaymentMethod,\n EnumRegions,\n EnumSocialMedia,\n EnumUserLicence,\n} from \"../enums\";\nimport { OptionItem, SocialMediaType } from \"../types/global\";\n\nexport const dateFormat = \"DD-MM-YYYY\";\nexport const timeFormat = \"HH:mm\";\n\n// Enable custom format parsing\ndayjs.extend(customParseFormat);\ndayjs.extend(utc);\ndayjs.extend(timezone);\ndayjs.extend(isSameOrAfter);\n\nconst NZ_TZ = \"Pacific/Auckland\";\n\nexport function toNZTime(date: Date | string) {\n return dayjs(date).tz(NZ_TZ).format();\n}\n\ntype DateFormat = \"date\" | \"time\" | \"datetime\";\n\n/**\n * Format a date string to a more readable format.\n * @param dateStr - the date string\n * @param timeStr - optional time string\n * @param display - 'date' | 'time' | 'datetime'\n * @returns formatted string based on display option\n */\nexport const formatDate = (\n dateStr: string,\n display: DateFormat = \"datetime\",\n timeStr?: string,\n) => {\n // Combine date and time into a single string if time is provided\n const dateTimeStr = timeStr ? `${dateStr} ${timeStr}` : dateStr;\n\n // Parse with formats\n const dateTime = timeStr\n ? dayjs(dateTimeStr, `${dateFormat} ${timeFormat}`)\n : dayjs(dateStr, dateFormat);\n\n // Format parts\n const formattedDate = dateTime.format(\"dddd, D MMMM, YYYY\");\n const formattedTime = dateTime.format(\"h:mm a\");\n\n // Return based on display option\n switch (display) {\n case \"date\":\n return formattedDate;\n case \"time\":\n return formattedTime;\n case \"datetime\":\n return `${formattedDate} at ${formattedTime}`;\n default:\n return formattedDate;\n }\n};\n\nexport const getCurrentAndFutureDates = <\n T extends { startDate: string; startTime: string },\n>(\n dates: T[],\n): T[] => {\n const now = dayjs(); // current date and time\n\n return dates.filter((dateObj) => {\n const dateTime = dayjs(\n `${dateObj.startDate} ${dateObj.startTime}`,\n `${dateFormat} ${timeFormat}`,\n );\n return dateTime.isSameOrAfter(now);\n });\n};\n\nexport const isFutureDatesBeforeThreshold = (\n date: {\n startDate: string;\n startTime: string;\n },\n minHoursFromNow: number,\n): boolean => {\n const threshold = minHoursFromNow\n ? dayjs().add(minHoursFromNow, \"hour\")\n : dayjs().startOf(\"day\");\n\n const dateTime = dayjs(\n `${date.startDate} ${date.startTime}`,\n `${dateFormat} ${timeFormat}`,\n );\n\n return dateTime.isSameOrAfter(threshold);\n};\n\nexport const formatTimestamp = (timestamp: string) => {\n const formattedDate = dayjs(timestamp)\n .tz(\"Pacific/Auckland\")\n .format(dateFormat);\n\n return formatDate(formattedDate, \"date\");\n};\n\nconst isIsoDateString = (value: unknown): value is string => {\n return typeof value === \"string\" && !isNaN(Date.parse(value));\n};\n\nexport const removeTypename = (obj: any): any => {\n // Preserve Date objects\n if (obj instanceof Date) {\n return obj;\n }\n\n // Preserve File objects (for apollo-upload-client)\n if (obj instanceof File) {\n return obj;\n }\n\n // Preserve ISO date strings\n if (isIsoDateString(obj)) {\n return obj;\n }\n\n // Handle arrays\n if (Array.isArray(obj)) {\n return obj.map(removeTypename);\n }\n\n // Handle plain objects only\n if (obj !== null && typeof obj === \"object\") {\n const { __typename, ...cleanedObj } = obj;\n\n return Object.keys(cleanedObj).reduce((acc: any, key) => {\n acc[key] = removeTypename(cleanedObj[key]);\n return acc;\n }, {});\n }\n\n // Primitives\n return obj;\n};\n\n/**\n * Truncate text to a specified length and append ellipsis if necessary.\n * @param text\n * @param maxLength\n * @returns\n */\nexport const truncateText = (text: string, maxLength: number = 30): string => {\n return text.length > maxLength ? text.substring(0, maxLength) + \"...\" : text;\n};\n\n/**\n * Convert an array of strings to an array of objects with label and value properties.\n * @param items - The array of strings to convert.\n * @returns - The converted array of objects.\n */\nexport const mapArrayToOptions = (items: string[]): OptionItem[] =>\n items.map((item) => ({\n label: item,\n value: item,\n }));\n\nexport const capitalizeFirstLetter = (str: string): string => {\n return str\n .split(\" \")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(\" \");\n};\n\nexport const statusOptions = [\n ...Object.values(EnumInviteStatus)\n .map((status) => ({\n label: status,\n value: status,\n }))\n .sort((a, b) => a.label.localeCompare(b.label)), // Sort the options alphabetically\n];\n\n/**\n * Sort an array of date strings by their proximity to the current date.\n * @param dates - The array of date strings to sort.\n * @returns - The sorted array of date strings.\n */\nexport function sortDatesChronologically<\n T extends { startDate: string; startTime: string },\n>(dates: T[]): T[] {\n if (!dates || !dates.length) {\n return [];\n }\n\n return [...dates].sort((a, b) => {\n const dateTimeFormat = `${dateFormat} ${timeFormat}`;\n const dateA = dayjs(`${a.startDate} ${a.startTime}`, dateTimeFormat);\n const dateB = dayjs(`${b.startDate} ${b.startTime}`, dateTimeFormat);\n return dateA.valueOf() - dateB.valueOf(); // chronological order\n });\n}\n\nexport const availableRegionTypes = Object.values(EnumRegions);\nexport const availableRegionOptions: OptionItem[] =\n mapArrayToOptions(availableRegionTypes);\n\nexport const paymentMethodOptions: OptionItem[] = mapArrayToOptions(\n Object.values(EnumPaymentMethod),\n);\n\nexport function normalizeUrl(url: string): string {\n if (!url.startsWith(\"http://\") && !url.startsWith(\"https://\")) {\n return `https://${url}`;\n }\n return url;\n}\n\nexport const licenseNiceNames: Record<EnumUserLicence, string> = {\n [EnumUserLicence.PRO_EVENT]: \"Pro Event\",\n [EnumUserLicence.PRO_VENDOR]: \"Pro Stallholder\",\n [EnumUserLicence.STANDARD_EVENT]: \"Standard Event\",\n [EnumUserLicence.STANDARD_VENDOR]: \"Standard Stallholder\",\n [EnumUserLicence.PRO_PLUS_EVENT]: \"Pro+Ads Event\",\n [EnumUserLicence.PRO_PLUS_VENDOR]: \"Pro+Ads Stallholder\",\n [EnumUserLicence.STANDARD_PARTNER]: \"Partner\",\n};\n\nexport const cluemartSocialMedia: SocialMediaType[] = [\n {\n link: \"https://www.facebook.com/ClueMartApp\",\n name: EnumSocialMedia.FACEBOOK,\n },\n {\n link: \"https://www.instagram.com/cluemart_app\",\n name: EnumSocialMedia.INSTAGRAM,\n },\n {\n link: \"https://www.tiktok.com/@cluemart\",\n name: EnumSocialMedia.TIKTOK,\n },\n {\n link: \"https://www.youtube.com/@ClueMart-App-NZ\",\n name: EnumSocialMedia.YOUTUBE,\n },\n];\n\nexport const IOS_URL = \"https://apps.apple.com/nz/app/cluemart/id6747251008\";\nexport const ANDROID_URL =\n \"https://play.google.com/store/apps/details?id=com.timardex.cluemart\";\n","import dayjs from \"dayjs\";\n\nimport {\n DailyClueGameData,\n EnumGameStatus,\n GameHistory,\n GamePlacement,\n GamePlacementClue,\n gameScreenIdentifierList,\n} from \"../types/game\";\n\nfunction createSeededRng(seed: number) {\n let t = seed >>> 0;\n\n return function random() {\n t += 0x6d2b79f5;\n let x = t;\n\n x = Math.imul(x ^ (x >>> 15), x | 1);\n x ^= x + Math.imul(x ^ (x >>> 7), x | 61);\n\n return ((x ^ (x >>> 14)) >>> 0) / 4294967296;\n };\n}\n\nfunction hashStringToNumber(seed: string): number {\n let hash = 2166136261;\n\n for (let i = 0; i < seed.length; i++) {\n hash ^= seed.codePointAt(i) ?? 0;\n hash = Math.imul(hash, 16777619);\n }\n\n return hash >>> 0;\n}\n\n/** Seeded shuffle so all players see the same letter order / placements for a game. */\nexport function seededShuffle<T>(array: readonly T[], seed: string): T[] {\n const rng = createSeededRng(hashStringToNumber(seed));\n const result = [...array];\n\n for (let i = result.length - 1; i > 0; i--) {\n const j = Math.floor(rng() * (i + 1));\n [result[i], result[j]] = [result[j], result[i]];\n }\n\n return result;\n}\n\nfunction getDayIndex(startDate: Date): number {\n return dayjs().startOf(\"day\").diff(dayjs(startDate).startOf(\"day\"), \"day\");\n}\n\nexport function computeDailyClueState(dailyClue: DailyClueGameData): {\n gameHistory: GameHistory | null;\n todaysClue: GamePlacementClue | null;\n todaysLetter: string | null;\n todaysPlacement: GamePlacement | null;\n} | null {\n const { startDate, endDate } = dailyClue.gameFields.gameDate;\n const { shuffled, collected } = dailyClue.letterInfo;\n const shuffledPlacements = seededShuffle(\n gameScreenIdentifierList,\n startDate.toISOString(),\n );\n\n const today = dayjs().startOf(\"day\");\n const start = dayjs(startDate).startOf(\"day\");\n const end = dayjs(endDate).startOf(\"day\");\n\n if (today.isBefore(start)) {\n return null;\n }\n\n if (today.isAfter(end)) {\n return null;\n }\n\n const index = getDayIndex(startDate);\n\n if (index < 0 || index >= shuffled.length) return null;\n\n if (collected?.includes(shuffled[index])) {\n return null;\n }\n\n if (today.isAfter(end)) {\n return {\n gameHistory: {\n gameDate: dailyClue.gameFields.gameDate,\n gameStatus: EnumGameStatus.GAME_COMPLETED,\n gameType: dailyClue.gameFields.gameType,\n pointsEarned: dailyClue.points,\n },\n todaysClue: null,\n todaysLetter: null,\n todaysPlacement: null,\n };\n }\n\n return {\n gameHistory: null,\n todaysClue: shuffledPlacements[index].clue,\n todaysLetter: shuffled[index],\n todaysPlacement: shuffledPlacements[index].id,\n };\n}\n","import { OwnerType } from \"./global\";\n\nexport const gameScreenIdentifierList = [\n {\n clue: \"Where your actions turn into a timeline.\",\n id: \"activities\",\n },\n {\n clue: \"Where conversations happen without speaking.\",\n id: \"chat\",\n },\n {\n clue: \"The place to redefine who you are.\",\n id: \"edit-profile\",\n },\n {\n clue: \"A single moment worth showing up for.\",\n id: \"event\",\n },\n {\n clue: \"What’s happening around you, right now.\",\n id: \"events-near-me\",\n },\n {\n clue: \"A collection of things worth attending.\",\n id: \"events\",\n },\n {\n clue: \"What’s happening in a wider area—not just nearby.\",\n id: \"events/region\",\n },\n {\n clue: \"Where you go to find something specific.\",\n id: \"events/search\",\n },\n {\n clue: \"Where fun becomes a challenge.\",\n id: \"games\",\n },\n {\n clue: \"Your starting point for everything.\",\n id: \"home\",\n },\n {\n clue: \"Where the app taps you on the shoulder.\",\n id: \"notifications\",\n },\n {\n clue: \"Where you fine-tune your experience.\",\n id: \"options\",\n },\n {\n clue: \"A single collaborator in the ecosystem.\",\n id: \"partner\",\n },\n {\n clue: \"The network behind the scenes.\",\n id: \"partners\",\n },\n {\n clue: \"Where you share something with everyone.\",\n id: \"post\",\n },\n {\n clue: \"Your identity, on display.\",\n id: \"profile\",\n },\n {\n clue: \"One provider offering something valuable.\",\n id: \"vendor\",\n },\n {\n clue: \"A marketplace of providers.\",\n id: \"vendors\",\n },\n {\n clue: \"People who stopped by to see you.\",\n id: \"visitors\",\n },\n] as const;\n\nexport type GamePlacement = (typeof gameScreenIdentifierList)[number][\"id\"];\nexport type GamePlacementClue =\n (typeof gameScreenIdentifierList)[number][\"clue\"];\n\nexport enum EnumGameType {\n DAILY_CLUE = \"dailyClue\",\n}\n\nexport const gameTypeToDisplayName: Record<EnumGameType, string> = {\n [EnumGameType.DAILY_CLUE]: \"Daily Clue\",\n};\n\nexport type GameDate = {\n startDate: Date;\n endDate: Date;\n};\n\nexport type BaseGame = {\n gameDate: GameDate;\n gameSolution: string;\n gameType: EnumGameType;\n};\n\nexport type DailyClueGameData = {\n gameFields: BaseGame;\n lastFoundDate: Date | null;\n points: number;\n letterInfo: {\n collected: string[] | null; // The letters the user has found, e.g. [\"C\", \"L\", \"U\"]\n shuffled: string[]; // The letters of the solution, but shuffled, e.g. [\"L\", \"C\", \"U\"]\n todaysLetter: string | null; // The letter the user has to find today, e.g. \"C\"\n todaysClue: GamePlacementClue | null; // The clue for user to find the letter, e.g. related to {todaysPlacement}\n todaysPlacement: GamePlacement | null; // The screen where the user has to find the clue, e.g. \"HomeScreen\"\n };\n // User has found the clue 3 days in a row, this is incrementing if the user finds the clue and decrements if user misses a day\n streak: number;\n};\n\ntype GameDataMap = {\n [EnumGameType.DAILY_CLUE]: DailyClueGameData;\n};\nexport type GameData = {\n [K in keyof GameDataMap]?: GameDataMap[K] | null;\n};\n\nexport enum EnumGameStatus {\n GAME_COMPLETED = \"GAME_COMPLETED\",\n GAME_LEFT = \"GAME_LEFT\",\n GAME_IN_PROGRESS = \"GAME_IN_PROGRESS\",\n}\n\nexport type GameHistory = {\n gameDate: GameDate;\n gameStatus: EnumGameStatus;\n gameType: EnumGameType;\n pointsEarned: number;\n};\n\nexport type GameType = {\n _id: string;\n active: boolean;\n createdAt: Date;\n deletedAt: Date | null;\n gameData: GameData | null;\n gameHistory: GameHistory[] | null;\n owner: OwnerType;\n points: number;\n updatedAt: Date | null;\n};\n\nexport type GameLeaderboard = {\n gameHistory: GameHistory[] | null;\n overallPoints: number;\n owner: OwnerType;\n};\n","export enum EnumInviteStatus {\n ACCEPTED = \"Accepted\",\n COMPLETED = \"Completed\",\n EXPIRED = \"Expired\",\n NO_STATUS = \"No_Status\",\n PENDING = \"Pending\",\n REJECTED = \"Rejected\",\n UNAVAILABLE = \"Unavailable\",\n}\n\nexport enum EnumChatReportReason {\n INAPPROPRIATE_CONTENT = \"Inappropriate_Content\",\n HARASSMENT_OR_BULLYING = \"Harassment_or_Bullying\",\n HATE_SPEECH = \"Hate_Speech\",\n SPAM_OR_SCAM = \"Spam_or_Scam\",\n VIOLENCE_OR_DANGEROUS_BEHAVIOR = \"Violence_or_Dangerous_Behavior\",\n OTHER = \"Other\",\n}\n\nexport enum EnumChatType {\n GROUP = \"group\",\n PRIVATE = \"private\",\n RELATION = \"relation\",\n}\n\nexport enum EnumPaymentMethod {\n CASH = \"cash\",\n EFTPOS = \"eftpos\",\n BANK_TRANSFER = \"bank_transfer\",\n PAYPAL = \"paypal\",\n STRIPE = \"stripe\",\n}\n\nexport enum EnumFoodFlavor {\n SALTY = \"Salty\",\n SAVOURY = \"Savoury\",\n SPICY = \"Spicy\",\n SWEET = \"Sweet\",\n OTHER = \"Not_Applicable\",\n}\n\nexport enum EnumFoodType {\n ADDITIVE_FREE = \"Additive_Free\",\n AIR_FRIED = \"Air_Fried\",\n ALLERGEN_FRIENDLY = \"Allergen_Friendly\",\n ATHLETE_FRIENDLY = \"Athlete_Friendly\",\n BAKED = \"Baked\",\n DAIRY_FREE = \"Dairy_Free\",\n DIABETIC_FRIENDLY = \"Diabetic_Friendly\",\n EGG_FREE = \"Egg_Free\",\n FRESH = \"Fresh\",\n GLUTEN_FREE = \"Gluten_Free\",\n GRILLED = \"Grilled\",\n HALAL = \"Halal\",\n HEART_HEALTHY = \"Heart_Healthy\",\n HIGH_FIBER = \"High_Fiber\",\n HIGH_PROTEIN = \"High_Protein\",\n KETO = \"Keto\",\n KOSHER = \"Kosher\",\n LACTOSE_FREE = \"Lactose_Free\",\n LOW_CALORIE = \"Low_Calorie\",\n LOW_CARB = \"Low_Carb\",\n LOW_FAT = \"Low_Fat\",\n LOW_SODIUM = \"Low_Sodium\",\n NO_ADDED_SUGAR = \"No_Added_Sugar\",\n NO_PRESERVATIVES = \"No_Preservatives\",\n NON_GMO = \"Non_GMO\",\n NUT_FREE = \"Nut_Free\",\n ORGANIC = \"Organic\",\n PALEO = \"Paleo\",\n PLANT_BASED = \"Plant_Based\",\n RAW = \"Raw\",\n SMOKED = \"Smoked\",\n SOY_FREE = \"Soy_Free\",\n SUGAR_FREE = \"Sugar_Free\",\n VEGAN = \"Vegan\",\n VEGETARIAN = \"Vegetarian\",\n}\n\nexport enum EnumResourceType {\n EVENT = \"event\",\n VENDOR = \"vendor\",\n PARTNER = \"partner\",\n}\n\nexport enum EnumEventType {\n MARKET = \"Market\",\n EXPO = \"Expo\",\n FAIR = \"Fair\",\n FESTIVAL = \"Festival\",\n}\n\nexport enum EnumVendorType {\n STALLHOLDER = \"Stallholder\",\n SHOP = \"Shop\",\n}\n\nexport enum EnumPartnerType {\n CHARITY_PARTNER = \"Charity_Partner\",\n MEDIA_PARTNER = \"Media_Partner\",\n SUPPORTING_PARTNER = \"Supporting_Partner\",\n}\n\nexport enum EnumOSPlatform {\n ANDROID = \"android\",\n IOS = \"ios\",\n WEB = \"web\",\n}\n\nexport enum EnumRelationResource {\n EVENT_INVITE_VENDOR = \"event_invite_vendor\",\n VENDOR_APPLICATION_TO_EVENT = \"vendor_application_to_event\",\n}\n\nexport enum EnumNotificationResourceType {\n ADDED_AS_ASSOCIATE_EVENT = \"added_as_associate_event\",\n ADDED_AS_ASSOCIATE_PARTNER = \"added_as_associate_partner\",\n ADDED_AS_ASSOCIATE_VENDOR = \"added_as_associate_vendor\",\n APPROVED_EVENT = \"approved_event\",\n APPROVED_PARTNER = \"approved_partner\",\n APPROVED_VENDOR = \"approved_vendor\",\n CREATED_EVENT = \"created_event\",\n CREATED_PARTNER = \"created_partner\",\n CREATED_VENDOR = \"created_vendor\",\n DEACTIVATED_EVENT = \"deactivated_event\",\n DEACTIVATED_PARTNER = \"deactivated_partner\",\n DEACTIVATED_VENDOR = \"deactivated_vendor\",\n DOWNGRADED_EVENT = \"downgraded_event\",\n DOWNGRADED_PARTNER = \"downgraded_partner\",\n DOWNGRADED_VENDOR = \"downgraded_vendor\",\n DECLINED_EVENT = \"declined_event\",\n DECLINED_PARTNER = \"declined_partner\",\n DECLINED_VENDOR = \"declined_vendor\",\n DAILY_CLUE_LETTER_AVAILABLE = \"daily_clue_letter_available\",\n EVENT_INVITE_VENDOR = EnumRelationResource.EVENT_INVITE_VENDOR,\n EVENT_STARTING_SOON = \"event_starting_soon\",\n EXPIRATION_REMINDER_EVENT = \"expiration_reminder_event\",\n EXPIRATION_REMINDER_PARTNER = \"expiration_reminder_partner\",\n EXPIRATION_REMINDER_VENDOR = \"expiration_reminder_vendor\",\n NEW_CHAT_MESSAGE = \"new_chat_message\",\n SYSTEM_ALERT = \"system_alert\",\n VENDOR_APPLICATION_TO_EVENT = EnumRelationResource.VENDOR_APPLICATION_TO_EVENT,\n}\n\nexport enum EnumNotificationType {\n CHAT = \"chat\",\n EVENT = EnumResourceType.EVENT,\n RELATION = \"relation\",\n SYSTEM = \"system\",\n VENDOR = EnumResourceType.VENDOR,\n}\n\nexport enum EnumRegions {\n All = \"All Regions\",\n Auckland = \"Auckland\",\n BayOfPlentyGisborne = \"Bay of Plenty & Gisborne\",\n CanterburyWestCoast = \"Canterbury & West Coast\",\n HawkesBay = \"Hawke's Bay\",\n ManawatuWanganui = \"Manawatu-Wanganui\",\n MarlboroughNelsonTasman = \"Marlborough & Nelson & Tasman\",\n Northland = \"Northland\",\n Otago = \"Otago\",\n Southland = \"Southland\",\n Taranaki = \"Taranaki\",\n Waikato = \"Waikato\",\n Wellington = \"Wellington\",\n}\n\nexport enum ImageTypeEnum {\n AVATAR = \"avatar\",\n COVER = \"cover\",\n IMAGE = \"image\",\n LOGO = \"logo\",\n}\n\nexport enum EnumUserLicence {\n PRO_EVENT = \"pro_event\",\n PRO_PLUS_EVENT = \"pro_plus_event\",\n PRO_PLUS_VENDOR = \"pro_plus_vendor\",\n PRO_VENDOR = \"pro_vendor\",\n STANDARD_EVENT = \"standard_event\",\n STANDARD_VENDOR = \"standard_vendor\",\n STANDARD_PARTNER = \"standard_partner\",\n}\n\nexport enum EnumUserRole {\n ADMIN = \"admin\",\n CUSTOMER = \"customer\",\n MARKETING = \"marketing\",\n MODERATOR = \"moderator\",\n SUPPORT = \"support\",\n}\n\nexport enum EnumSocialMedia {\n FACEBOOK = \"facebook\",\n INSTAGRAM = \"instagram\",\n TIKTOK = \"tiktok\",\n TWITTER = \"twitter\",\n WEBSITE = \"website\",\n YOUTUBE = \"youtube\",\n}\n\nexport enum EnumEventDateStatus {\n STARTING_SOON = \"Starting_Soon\",\n STARTED = \"Started\",\n TODAY = \"Today\",\n TOMORROW = \"Tomorrow\",\n THIS_WEEK = \"This_Week\",\n NEXT_WEEK = \"Next_Week\",\n UPCOMING = \"Upcoming\",\n ENDED = \"Ended\",\n RE_SCHEDULED = \"Rescheduled\",\n CANCELED = \"Canceled\",\n}\n\nexport enum EnumSubscriptionStatus {\n ACTIVE = \"active\",\n INACTIVE = \"inactive\",\n CANCELLED = \"cancelled\",\n NO_SUBSCRIPTION = \"no_subscription\",\n PAST_DUE = \"past_due\",\n TRIALING = \"trialing\",\n}\n\nexport enum EnumBillingPeriod {\n MONTHLY_CANCEL_ANYTIME = \"monthly_cancel_anytime\",\n YEARLY_ANNUAL_BILLED = \"yearly_annual_billed\",\n YEARLY_MONTHLY_BILLED = \"yearly_monthly_billed\",\n}\n"],"mappings":"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","names":["dayjs","import_dayjs","EnumInviteStatus","EnumPaymentMethod","EnumRegions","dayjs","customParseFormat","utc","timezone","isSameOrAfter"]}
|
|
1
|
+
{"version":3,"sources":["../../src/utils/index.ts","../../src/utils/dailyClueGame.ts","../../src/types/game.ts","../../src/enums/index.ts"],"sourcesContent":["export { computeDailyClueState, seededShuffle } from \"./dailyClueGame\";\n\nimport dayjs from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat.js\";\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter.js\";\nimport timezone from \"dayjs/plugin/timezone.js\";\nimport utc from \"dayjs/plugin/utc.js\";\n\nimport {\n EnumInviteStatus,\n EnumPaymentMethod,\n EnumRegions,\n EnumSocialMedia,\n EnumUserLicence,\n} from \"../enums\";\nimport { OptionItem, SocialMediaType } from \"../types/global\";\n\nexport const dateFormat = \"DD-MM-YYYY\";\nexport const timeFormat = \"HH:mm\";\n\n// Enable custom format parsing\ndayjs.extend(customParseFormat);\ndayjs.extend(utc);\ndayjs.extend(timezone);\ndayjs.extend(isSameOrAfter);\n\nconst NZ_TZ = \"Pacific/Auckland\";\n\nexport function toNZTime(date: Date | string) {\n return dayjs(date).tz(NZ_TZ).format();\n}\n\ntype DateFormat = \"date\" | \"time\" | \"datetime\";\n\n/**\n * Format a date string to a more readable format.\n * @param dateStr - the date string\n * @param timeStr - optional time string\n * @param display - 'date' | 'time' | 'datetime'\n * @returns formatted string based on display option\n */\nexport const formatDate = (\n dateStr: string,\n display: DateFormat = \"datetime\",\n timeStr?: string,\n) => {\n // Combine date and time into a single string if time is provided\n const dateTimeStr = timeStr ? `${dateStr} ${timeStr}` : dateStr;\n\n // Parse with formats\n const dateTime = timeStr\n ? dayjs(dateTimeStr, `${dateFormat} ${timeFormat}`)\n : dayjs(dateStr, dateFormat);\n\n // Format parts\n const formattedDate = dateTime.format(\"dddd, D MMMM, YYYY\");\n const formattedTime = dateTime.format(\"h:mm a\");\n\n // Return based on display option\n switch (display) {\n case \"date\":\n return formattedDate;\n case \"time\":\n return formattedTime;\n case \"datetime\":\n return `${formattedDate} at ${formattedTime}`;\n default:\n return formattedDate;\n }\n};\n\nexport const getCurrentAndFutureDates = <\n T extends { startDate: string; startTime: string },\n>(\n dates: T[],\n): T[] => {\n const now = dayjs(); // current date and time\n\n return dates.filter((dateObj) => {\n const dateTime = dayjs(\n `${dateObj.startDate} ${dateObj.startTime}`,\n `${dateFormat} ${timeFormat}`,\n );\n return dateTime.isSameOrAfter(now);\n });\n};\n\nexport const isFutureDatesBeforeThreshold = (\n date: {\n startDate: string;\n startTime: string;\n },\n minHoursFromNow: number,\n): boolean => {\n const threshold = minHoursFromNow\n ? dayjs().add(minHoursFromNow, \"hour\")\n : dayjs().startOf(\"day\");\n\n const dateTime = dayjs(\n `${date.startDate} ${date.startTime}`,\n `${dateFormat} ${timeFormat}`,\n );\n\n return dateTime.isSameOrAfter(threshold);\n};\n\nexport const formatTimestamp = (timestamp: string) => {\n const formattedDate = dayjs(timestamp)\n .tz(\"Pacific/Auckland\")\n .format(dateFormat);\n\n return formatDate(formattedDate, \"date\");\n};\n\nconst isIsoDateString = (value: unknown): value is string => {\n return typeof value === \"string\" && !isNaN(Date.parse(value));\n};\n\nexport const removeTypename = (obj: any): any => {\n // Preserve Date objects\n if (obj instanceof Date) {\n return obj;\n }\n\n // Preserve File objects (for apollo-upload-client)\n if (obj instanceof File) {\n return obj;\n }\n\n // Preserve ISO date strings\n if (isIsoDateString(obj)) {\n return obj;\n }\n\n // Handle arrays\n if (Array.isArray(obj)) {\n return obj.map(removeTypename);\n }\n\n // Handle plain objects only\n if (obj !== null && typeof obj === \"object\") {\n const { __typename, ...cleanedObj } = obj;\n\n return Object.keys(cleanedObj).reduce((acc: any, key) => {\n acc[key] = removeTypename(cleanedObj[key]);\n return acc;\n }, {});\n }\n\n // Primitives\n return obj;\n};\n\n/**\n * Truncate text to a specified length and append ellipsis if necessary.\n * @param text\n * @param maxLength\n * @returns\n */\nexport const truncateText = (text: string, maxLength: number = 30): string => {\n return text.length > maxLength ? text.substring(0, maxLength) + \"...\" : text;\n};\n\n/**\n * Convert an array of strings to an array of objects with label and value properties.\n * @param items - The array of strings to convert.\n * @returns - The converted array of objects.\n */\nexport const mapArrayToOptions = (items: string[]): OptionItem[] =>\n items.map((item) => ({\n label: item,\n value: item,\n }));\n\nexport const capitalizeFirstLetter = (str: string): string => {\n return str\n .split(\" \")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(\" \");\n};\n\nexport const statusOptions = [\n ...Object.values(EnumInviteStatus)\n .map((status) => ({\n label: status,\n value: status,\n }))\n .sort((a, b) => a.label.localeCompare(b.label)), // Sort the options alphabetically\n];\n\n/**\n * Sort an array of date strings by their proximity to the current date.\n * @param dates - The array of date strings to sort.\n * @returns - The sorted array of date strings.\n */\nexport function sortDatesChronologically<\n T extends { startDate: string; startTime: string },\n>(dates: T[]): T[] {\n if (!dates || !dates.length) {\n return [];\n }\n\n return [...dates].sort((a, b) => {\n const dateTimeFormat = `${dateFormat} ${timeFormat}`;\n const dateA = dayjs(`${a.startDate} ${a.startTime}`, dateTimeFormat);\n const dateB = dayjs(`${b.startDate} ${b.startTime}`, dateTimeFormat);\n return dateA.valueOf() - dateB.valueOf(); // chronological order\n });\n}\n\nexport const availableRegionTypes = Object.values(EnumRegions);\nexport const availableRegionOptions: OptionItem[] =\n mapArrayToOptions(availableRegionTypes);\n\nexport const paymentMethodOptions: OptionItem[] = mapArrayToOptions(\n Object.values(EnumPaymentMethod),\n);\n\nexport function normalizeUrl(url: string): string {\n if (!url.startsWith(\"http://\") && !url.startsWith(\"https://\")) {\n return `https://${url}`;\n }\n return url;\n}\n\nexport const licenseNiceNames: Record<EnumUserLicence, string> = {\n [EnumUserLicence.PRO_EVENT]: \"Pro Event\",\n [EnumUserLicence.PRO_VENDOR]: \"Pro Stallholder\",\n [EnumUserLicence.STANDARD_EVENT]: \"Standard Event\",\n [EnumUserLicence.STANDARD_VENDOR]: \"Standard Stallholder\",\n [EnumUserLicence.PRO_PLUS_EVENT]: \"Pro+Ads Event\",\n [EnumUserLicence.PRO_PLUS_VENDOR]: \"Pro+Ads Stallholder\",\n [EnumUserLicence.STANDARD_PARTNER]: \"Partner\",\n};\n\nexport const cluemartSocialMedia: SocialMediaType[] = [\n {\n link: \"https://www.facebook.com/ClueMartApp\",\n name: EnumSocialMedia.FACEBOOK,\n },\n {\n link: \"https://www.instagram.com/cluemart_app\",\n name: EnumSocialMedia.INSTAGRAM,\n },\n {\n link: \"https://www.tiktok.com/@cluemart\",\n name: EnumSocialMedia.TIKTOK,\n },\n {\n link: \"https://www.youtube.com/@ClueMart-App-NZ\",\n name: EnumSocialMedia.YOUTUBE,\n },\n];\n\nexport const IOS_URL = \"https://apps.apple.com/nz/app/cluemart/id6747251008\";\nexport const ANDROID_URL =\n \"https://play.google.com/store/apps/details?id=com.timardex.cluemart\";\n","import dayjs from \"dayjs\";\nimport utc from \"dayjs/plugin/utc\";\n\nimport {\n DailyClueGameData,\n EnumGameStatus,\n GameHistory,\n GamePlacement,\n GamePlacementClue,\n gameScreenIdentifierList,\n} from \"../types/game\";\n\ndayjs.extend(utc);\n\nfunction createSeededRng(seed: number) {\n let t = seed >>> 0;\n\n return function random() {\n t += 0x6d2b79f5;\n let x = t;\n\n x = Math.imul(x ^ (x >>> 15), x | 1);\n x ^= x + Math.imul(x ^ (x >>> 7), x | 61);\n\n return ((x ^ (x >>> 14)) >>> 0) / 4294967296;\n };\n}\n\nfunction hashStringToNumber(seed: string): number {\n let hash = 2166136261;\n\n for (let i = 0; i < seed.length; i++) {\n hash ^= seed.codePointAt(i) ?? 0;\n hash = Math.imul(hash, 16777619);\n }\n\n return hash >>> 0;\n}\n\n/** Seeded shuffle so all players see the same letter order / placements for a game. */\nexport function seededShuffle<T>(array: readonly T[], seed: string): T[] {\n const rng = createSeededRng(hashStringToNumber(seed));\n const result = [...array];\n\n for (let i = result.length - 1; i > 0; i--) {\n const j = Math.floor(rng() * (i + 1));\n [result[i], result[j]] = [result[j], result[i]];\n }\n\n return result;\n}\n\nfunction getDayIndex(startDate: Date): number {\n return dayjs()\n .utc()\n .startOf(\"day\")\n .diff(dayjs(startDate).utc().startOf(\"day\"), \"day\");\n}\n\nexport function computeDailyClueState(dailyClue: DailyClueGameData): {\n gameHistory: GameHistory | null;\n todaysClue: GamePlacementClue | null;\n todaysLetter: string | null;\n todaysPlacement: GamePlacement | null;\n} | null {\n const { startDate, endDate } = dailyClue.gameFields.gameDate;\n const { shuffled, collected } = dailyClue.letterInfo;\n\n const today = dayjs().utc().startOf(\"day\");\n const start = dayjs(startDate).utc().startOf(\"day\");\n const end = dayjs(endDate).utc().startOf(\"day\");\n\n const shuffledPlacements = seededShuffle(\n gameScreenIdentifierList,\n start.toISOString(),\n );\n\n if (today.isBefore(start)) {\n return null;\n }\n\n if (today.isAfter(end)) {\n return null;\n }\n\n const index = getDayIndex(startDate);\n\n if (index < 0 || index >= shuffled.length) return null;\n\n if (collected?.includes(shuffled[index])) {\n return null;\n }\n\n if (today.isAfter(end)) {\n return {\n gameHistory: {\n gameDate: dailyClue.gameFields.gameDate,\n gameStatus: EnumGameStatus.GAME_COMPLETED,\n gameType: dailyClue.gameFields.gameType,\n pointsEarned: dailyClue.points,\n },\n todaysClue: null,\n todaysLetter: null,\n todaysPlacement: null,\n };\n }\n\n return {\n gameHistory: null,\n todaysClue: shuffledPlacements[index].clue,\n todaysLetter: shuffled[index],\n todaysPlacement: shuffledPlacements[index].id,\n };\n}\n","import { OwnerType } from \"./global\";\n\ntype MatcherType = \"mongoId\" | \"slug\";\n\nconst createRouteMatcher = (base: string, type: MatcherType) => {\n switch (type) {\n case \"mongoId\":\n return new RegExp(`^\\\\/${base}\\\\/([a-f0-9]{24})$`);\n\n case \"slug\":\n return new RegExp(`^\\\\/${base}\\\\/[^/]+$`);\n\n default:\n return new RegExp(`^\\\\/${base}$`);\n }\n};\n\nexport const gameScreenIdentifierList = [\n {\n clue: \"Where your actions turn into a timeline.\",\n id: \"/profile/activities\",\n },\n {\n clue: \"Where conversations happen without speaking.\",\n id: \"/profile/chat\",\n },\n {\n clue: \"The place to redefine who you are.\",\n id: \"/profile/edit-profile\",\n },\n {\n clue: \"A single moment worth showing up for.\",\n id: createRouteMatcher(\"events\", \"mongoId\"),\n },\n {\n clue: \"What’s happening around you, right now.\",\n id: \"/events/events-near-me\",\n },\n {\n clue: \"A collection of things worth attending.\",\n id: \"/events\",\n },\n {\n clue: \"What’s happening in a wider area—not just nearby.\",\n id: createRouteMatcher(\"events/region\", \"slug\"),\n },\n {\n clue: \"Where you go to find something specific.\",\n id: \"/events/search\",\n },\n {\n clue: \"Where fun becomes a challenge.\",\n id: \"/games\",\n },\n {\n clue: \"Your starting point for everything.\",\n id: \"/\",\n },\n {\n clue: \"Where the app taps you on the shoulder.\",\n id: \"/notifications\",\n },\n {\n clue: \"Where you fine-tune your experience.\",\n id: \"/options\",\n },\n {\n clue: \"A single collaborator in the ecosystem.\",\n id: createRouteMatcher(\"partners\", \"mongoId\"),\n },\n {\n clue: \"The network behind the scenes.\",\n id: \"/partners\",\n },\n {\n clue: \"Where you share something with everyone.\",\n id: createRouteMatcher(\"visitors/posts\", \"mongoId\"),\n },\n {\n clue: \"Your identity, on display.\",\n id: \"/profile\",\n },\n {\n clue: \"One provider offering something valuable.\",\n id: createRouteMatcher(\"vendors\", \"mongoId\"),\n },\n {\n clue: \"A marketplace of providers.\",\n id: \"/vendors\",\n },\n {\n clue: \"People who stopped by to see you.\",\n id: \"/visitors\",\n },\n] as const;\n\nexport type GamePlacement = (typeof gameScreenIdentifierList)[number][\"id\"];\nexport type GamePlacementClue =\n (typeof gameScreenIdentifierList)[number][\"clue\"];\n\nexport enum EnumGameType {\n DAILY_CLUE = \"dailyClue\",\n}\n\nexport const gameTypeToDisplayName: Record<EnumGameType, string> = {\n [EnumGameType.DAILY_CLUE]: \"Daily Clue\",\n};\n\nexport type GameDate = {\n startDate: Date;\n endDate: Date;\n};\n\nexport type BaseGame = {\n gameDate: GameDate;\n gameSolution: string;\n gameType: EnumGameType;\n};\n\nexport type DailyClueGameData = {\n gameFields: BaseGame;\n lastFoundDate: Date | null;\n points: number;\n letterInfo: {\n collected: string[] | null; // The letters the user has found, e.g. [\"C\", \"L\", \"U\"]\n shuffled: string[]; // The letters of the solution, but shuffled, e.g. [\"L\", \"C\", \"U\"]\n todaysLetter: string | null; // The letter the user has to find today, e.g. \"C\"\n todaysClue: GamePlacementClue | null; // The clue for user to find the letter, e.g. related to {todaysPlacement}\n todaysPlacement: GamePlacement | null; // The screen where the user has to find the clue, e.g. \"HomeScreen\"\n };\n // User has found the clue 3 days in a row, this is incrementing if the user finds the clue and decrements if user misses a day\n streak: number;\n};\n\ntype GameDataMap = {\n [EnumGameType.DAILY_CLUE]: DailyClueGameData;\n};\nexport type GameData = {\n [K in keyof GameDataMap]?: GameDataMap[K] | null;\n};\n\nexport enum EnumGameStatus {\n GAME_COMPLETED = \"GAME_COMPLETED\",\n GAME_LEFT = \"GAME_LEFT\",\n GAME_IN_PROGRESS = \"GAME_IN_PROGRESS\",\n}\n\nexport type GameHistory = {\n gameDate: GameDate;\n gameStatus: EnumGameStatus;\n gameType: EnumGameType;\n pointsEarned: number;\n};\n\nexport type GameType = {\n _id: string;\n active: boolean;\n createdAt: Date;\n deletedAt: Date | null;\n gameData: GameData | null;\n gameHistory: GameHistory[] | null;\n owner: OwnerType;\n points: number;\n updatedAt: Date | null;\n};\n\nexport type GameLeaderboard = {\n gameHistory: GameHistory[] | null;\n overallPoints: number;\n owner: OwnerType;\n};\n","export enum EnumInviteStatus {\n ACCEPTED = \"Accepted\",\n COMPLETED = \"Completed\",\n EXPIRED = \"Expired\",\n NO_STATUS = \"No_Status\",\n PENDING = \"Pending\",\n REJECTED = \"Rejected\",\n UNAVAILABLE = \"Unavailable\",\n}\n\nexport enum EnumChatReportReason {\n INAPPROPRIATE_CONTENT = \"Inappropriate_Content\",\n HARASSMENT_OR_BULLYING = \"Harassment_or_Bullying\",\n HATE_SPEECH = \"Hate_Speech\",\n SPAM_OR_SCAM = \"Spam_or_Scam\",\n VIOLENCE_OR_DANGEROUS_BEHAVIOR = \"Violence_or_Dangerous_Behavior\",\n OTHER = \"Other\",\n}\n\nexport enum EnumChatType {\n GROUP = \"group\",\n PRIVATE = \"private\",\n RELATION = \"relation\",\n}\n\nexport enum EnumPaymentMethod {\n CASH = \"cash\",\n EFTPOS = \"eftpos\",\n BANK_TRANSFER = \"bank_transfer\",\n PAYPAL = \"paypal\",\n STRIPE = \"stripe\",\n}\n\nexport enum EnumFoodFlavor {\n SALTY = \"Salty\",\n SAVOURY = \"Savoury\",\n SPICY = \"Spicy\",\n SWEET = \"Sweet\",\n OTHER = \"Not_Applicable\",\n}\n\nexport enum EnumFoodType {\n ADDITIVE_FREE = \"Additive_Free\",\n AIR_FRIED = \"Air_Fried\",\n ALLERGEN_FRIENDLY = \"Allergen_Friendly\",\n ATHLETE_FRIENDLY = \"Athlete_Friendly\",\n BAKED = \"Baked\",\n DAIRY_FREE = \"Dairy_Free\",\n DIABETIC_FRIENDLY = \"Diabetic_Friendly\",\n EGG_FREE = \"Egg_Free\",\n FRESH = \"Fresh\",\n GLUTEN_FREE = \"Gluten_Free\",\n GRILLED = \"Grilled\",\n HALAL = \"Halal\",\n HEART_HEALTHY = \"Heart_Healthy\",\n HIGH_FIBER = \"High_Fiber\",\n HIGH_PROTEIN = \"High_Protein\",\n KETO = \"Keto\",\n KOSHER = \"Kosher\",\n LACTOSE_FREE = \"Lactose_Free\",\n LOW_CALORIE = \"Low_Calorie\",\n LOW_CARB = \"Low_Carb\",\n LOW_FAT = \"Low_Fat\",\n LOW_SODIUM = \"Low_Sodium\",\n NO_ADDED_SUGAR = \"No_Added_Sugar\",\n NO_PRESERVATIVES = \"No_Preservatives\",\n NON_GMO = \"Non_GMO\",\n NUT_FREE = \"Nut_Free\",\n ORGANIC = \"Organic\",\n PALEO = \"Paleo\",\n PLANT_BASED = \"Plant_Based\",\n RAW = \"Raw\",\n SMOKED = \"Smoked\",\n SOY_FREE = \"Soy_Free\",\n SUGAR_FREE = \"Sugar_Free\",\n VEGAN = \"Vegan\",\n VEGETARIAN = \"Vegetarian\",\n}\n\nexport enum EnumResourceType {\n EVENT = \"event\",\n VENDOR = \"vendor\",\n PARTNER = \"partner\",\n}\n\nexport enum EnumEventType {\n MARKET = \"Market\",\n EXPO = \"Expo\",\n FAIR = \"Fair\",\n FESTIVAL = \"Festival\",\n}\n\nexport enum EnumVendorType {\n STALLHOLDER = \"Stallholder\",\n SHOP = \"Shop\",\n}\n\nexport enum EnumPartnerType {\n CHARITY_PARTNER = \"Charity_Partner\",\n MEDIA_PARTNER = \"Media_Partner\",\n SUPPORTING_PARTNER = \"Supporting_Partner\",\n}\n\nexport enum EnumOSPlatform {\n ANDROID = \"android\",\n IOS = \"ios\",\n WEB = \"web\",\n}\n\nexport enum EnumRelationResource {\n EVENT_INVITE_VENDOR = \"event_invite_vendor\",\n VENDOR_APPLICATION_TO_EVENT = \"vendor_application_to_event\",\n}\n\nexport enum EnumNotificationResourceType {\n ADDED_AS_ASSOCIATE_EVENT = \"added_as_associate_event\",\n ADDED_AS_ASSOCIATE_PARTNER = \"added_as_associate_partner\",\n ADDED_AS_ASSOCIATE_VENDOR = \"added_as_associate_vendor\",\n APPROVED_EVENT = \"approved_event\",\n APPROVED_PARTNER = \"approved_partner\",\n APPROVED_VENDOR = \"approved_vendor\",\n CREATED_EVENT = \"created_event\",\n CREATED_PARTNER = \"created_partner\",\n CREATED_VENDOR = \"created_vendor\",\n DEACTIVATED_EVENT = \"deactivated_event\",\n DEACTIVATED_PARTNER = \"deactivated_partner\",\n DEACTIVATED_VENDOR = \"deactivated_vendor\",\n DOWNGRADED_EVENT = \"downgraded_event\",\n DOWNGRADED_PARTNER = \"downgraded_partner\",\n DOWNGRADED_VENDOR = \"downgraded_vendor\",\n DECLINED_EVENT = \"declined_event\",\n DECLINED_PARTNER = \"declined_partner\",\n DECLINED_VENDOR = \"declined_vendor\",\n DAILY_CLUE_LETTER_AVAILABLE = \"daily_clue_letter_available\",\n EVENT_INVITE_VENDOR = EnumRelationResource.EVENT_INVITE_VENDOR,\n EVENT_STARTING_SOON = \"event_starting_soon\",\n EXPIRATION_REMINDER_EVENT = \"expiration_reminder_event\",\n EXPIRATION_REMINDER_PARTNER = \"expiration_reminder_partner\",\n EXPIRATION_REMINDER_VENDOR = \"expiration_reminder_vendor\",\n NEW_CHAT_MESSAGE = \"new_chat_message\",\n SYSTEM_ALERT = \"system_alert\",\n VENDOR_APPLICATION_TO_EVENT = EnumRelationResource.VENDOR_APPLICATION_TO_EVENT,\n}\n\nexport enum EnumNotificationType {\n CHAT = \"chat\",\n EVENT = EnumResourceType.EVENT,\n RELATION = \"relation\",\n SYSTEM = \"system\",\n VENDOR = EnumResourceType.VENDOR,\n}\n\nexport enum EnumRegions {\n All = \"All Regions\",\n Auckland = \"Auckland\",\n BayOfPlentyGisborne = \"Bay of Plenty & Gisborne\",\n CanterburyWestCoast = \"Canterbury & West Coast\",\n HawkesBay = \"Hawke's Bay\",\n ManawatuWanganui = \"Manawatu-Wanganui\",\n MarlboroughNelsonTasman = \"Marlborough & Nelson & Tasman\",\n Northland = \"Northland\",\n Otago = \"Otago\",\n Southland = \"Southland\",\n Taranaki = \"Taranaki\",\n Waikato = \"Waikato\",\n Wellington = \"Wellington\",\n}\n\nexport enum ImageTypeEnum {\n AVATAR = \"avatar\",\n COVER = \"cover\",\n IMAGE = \"image\",\n LOGO = \"logo\",\n}\n\nexport enum EnumUserLicence {\n PRO_EVENT = \"pro_event\",\n PRO_PLUS_EVENT = \"pro_plus_event\",\n PRO_PLUS_VENDOR = \"pro_plus_vendor\",\n PRO_VENDOR = \"pro_vendor\",\n STANDARD_EVENT = \"standard_event\",\n STANDARD_VENDOR = \"standard_vendor\",\n STANDARD_PARTNER = \"standard_partner\",\n}\n\nexport enum EnumUserRole {\n ADMIN = \"admin\",\n CUSTOMER = \"customer\",\n MARKETING = \"marketing\",\n MODERATOR = \"moderator\",\n SUPPORT = \"support\",\n}\n\nexport enum EnumSocialMedia {\n FACEBOOK = \"facebook\",\n INSTAGRAM = \"instagram\",\n TIKTOK = \"tiktok\",\n TWITTER = \"twitter\",\n WEBSITE = \"website\",\n YOUTUBE = \"youtube\",\n}\n\nexport enum EnumEventDateStatus {\n STARTING_SOON = \"Starting_Soon\",\n STARTED = \"Started\",\n TODAY = \"Today\",\n TOMORROW = \"Tomorrow\",\n THIS_WEEK = \"This_Week\",\n NEXT_WEEK = \"Next_Week\",\n UPCOMING = \"Upcoming\",\n ENDED = \"Ended\",\n RE_SCHEDULED = \"Rescheduled\",\n CANCELED = \"Canceled\",\n}\n\nexport enum EnumSubscriptionStatus {\n ACTIVE = \"active\",\n INACTIVE = \"inactive\",\n CANCELLED = \"cancelled\",\n NO_SUBSCRIPTION = \"no_subscription\",\n PAST_DUE = \"past_due\",\n TRIALING = \"trialing\",\n}\n\nexport enum EnumBillingPeriod {\n MONTHLY_CANCEL_ANYTIME = \"monthly_cancel_anytime\",\n YEARLY_ANNUAL_BILLED = \"yearly_annual_billed\",\n YEARLY_MONTHLY_BILLED = \"yearly_monthly_billed\",\n}\n"],"mappings":"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","names":["dayjs","utc","import_dayjs","import_utc","EnumInviteStatus","EnumPaymentMethod","EnumRegions","dayjs","customParseFormat","utc","timezone","isSameOrAfter"]}
|
package/dist/utils/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { D as DailyClueGameData, e as GameHistory, g as GamePlacementClue, f as GamePlacement } from '../game-
|
|
1
|
+
import { D as DailyClueGameData, e as GameHistory, g as GamePlacementClue, f as GamePlacement } from '../game-BR9xpQkt.mjs';
|
|
2
2
|
import { EnumRegions, EnumUserLicence, EnumInviteStatus } from '../enums/index.mjs';
|
|
3
3
|
import { O as OptionItem, T as SocialMediaType } from '../global-MMBYi34A.mjs';
|
|
4
4
|
import 'react-hook-form';
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { D as DailyClueGameData, e as GameHistory, g as GamePlacementClue, f as GamePlacement } from '../game-
|
|
1
|
+
import { D as DailyClueGameData, e as GameHistory, g as GamePlacementClue, f as GamePlacement } from '../game-Dn5SH8_0.js';
|
|
2
2
|
import { EnumRegions, EnumUserLicence, EnumInviteStatus } from '../enums/index.js';
|
|
3
3
|
import { O as OptionItem, T as SocialMediaType } from '../global-B0WdAD-8.js';
|
|
4
4
|
import 'react-hook-form';
|
package/dist/utils/index.mjs
CHANGED
|
@@ -22,9 +22,9 @@ import {
|
|
|
22
22
|
timeFormat,
|
|
23
23
|
toNZTime,
|
|
24
24
|
truncateText
|
|
25
|
-
} from "../chunk-
|
|
25
|
+
} from "../chunk-EJSVR77W.mjs";
|
|
26
26
|
import "../chunk-534WN2SR.mjs";
|
|
27
|
-
import "../chunk-
|
|
27
|
+
import "../chunk-RO2IWCW2.mjs";
|
|
28
28
|
export {
|
|
29
29
|
ANDROID_URL,
|
|
30
30
|
IOS_URL,
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types/game.ts"],"sourcesContent":["import { OwnerType } from \"./global\";\n\nexport const gameScreenIdentifierList = [\n {\n clue: \"Where your actions turn into a timeline.\",\n id: \"activities\",\n },\n {\n clue: \"Where conversations happen without speaking.\",\n id: \"chat\",\n },\n {\n clue: \"The place to redefine who you are.\",\n id: \"edit-profile\",\n },\n {\n clue: \"A single moment worth showing up for.\",\n id: \"event\",\n },\n {\n clue: \"What’s happening around you, right now.\",\n id: \"events-near-me\",\n },\n {\n clue: \"A collection of things worth attending.\",\n id: \"events\",\n },\n {\n clue: \"What’s happening in a wider area—not just nearby.\",\n id: \"events/region\",\n },\n {\n clue: \"Where you go to find something specific.\",\n id: \"events/search\",\n },\n {\n clue: \"Where fun becomes a challenge.\",\n id: \"games\",\n },\n {\n clue: \"Your starting point for everything.\",\n id: \"home\",\n },\n {\n clue: \"Where the app taps you on the shoulder.\",\n id: \"notifications\",\n },\n {\n clue: \"Where you fine-tune your experience.\",\n id: \"options\",\n },\n {\n clue: \"A single collaborator in the ecosystem.\",\n id: \"partner\",\n },\n {\n clue: \"The network behind the scenes.\",\n id: \"partners\",\n },\n {\n clue: \"Where you share something with everyone.\",\n id: \"post\",\n },\n {\n clue: \"Your identity, on display.\",\n id: \"profile\",\n },\n {\n clue: \"One provider offering something valuable.\",\n id: \"vendor\",\n },\n {\n clue: \"A marketplace of providers.\",\n id: \"vendors\",\n },\n {\n clue: \"People who stopped by to see you.\",\n id: \"visitors\",\n },\n] as const;\n\nexport type GamePlacement = (typeof gameScreenIdentifierList)[number][\"id\"];\nexport type GamePlacementClue =\n (typeof gameScreenIdentifierList)[number][\"clue\"];\n\nexport enum EnumGameType {\n DAILY_CLUE = \"dailyClue\",\n}\n\nexport const gameTypeToDisplayName: Record<EnumGameType, string> = {\n [EnumGameType.DAILY_CLUE]: \"Daily Clue\",\n};\n\nexport type GameDate = {\n startDate: Date;\n endDate: Date;\n};\n\nexport type BaseGame = {\n gameDate: GameDate;\n gameSolution: string;\n gameType: EnumGameType;\n};\n\nexport type DailyClueGameData = {\n gameFields: BaseGame;\n lastFoundDate: Date | null;\n points: number;\n letterInfo: {\n collected: string[] | null; // The letters the user has found, e.g. [\"C\", \"L\", \"U\"]\n shuffled: string[]; // The letters of the solution, but shuffled, e.g. [\"L\", \"C\", \"U\"]\n todaysLetter: string | null; // The letter the user has to find today, e.g. \"C\"\n todaysClue: GamePlacementClue | null; // The clue for user to find the letter, e.g. related to {todaysPlacement}\n todaysPlacement: GamePlacement | null; // The screen where the user has to find the clue, e.g. \"HomeScreen\"\n };\n // User has found the clue 3 days in a row, this is incrementing if the user finds the clue and decrements if user misses a day\n streak: number;\n};\n\ntype GameDataMap = {\n [EnumGameType.DAILY_CLUE]: DailyClueGameData;\n};\nexport type GameData = {\n [K in keyof GameDataMap]?: GameDataMap[K] | null;\n};\n\nexport enum EnumGameStatus {\n GAME_COMPLETED = \"GAME_COMPLETED\",\n GAME_LEFT = \"GAME_LEFT\",\n GAME_IN_PROGRESS = \"GAME_IN_PROGRESS\",\n}\n\nexport type GameHistory = {\n gameDate: GameDate;\n gameStatus: EnumGameStatus;\n gameType: EnumGameType;\n pointsEarned: number;\n};\n\nexport type GameType = {\n _id: string;\n active: boolean;\n createdAt: Date;\n deletedAt: Date | null;\n gameData: GameData | null;\n gameHistory: GameHistory[] | null;\n owner: OwnerType;\n points: number;\n updatedAt: Date | null;\n};\n\nexport type GameLeaderboard = {\n gameHistory: GameHistory[] | null;\n overallPoints: number;\n owner: OwnerType;\n};\n"],"mappings":";AAEO,IAAM,2BAA2B;AAAA,EACtC;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,EACN;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,EACN;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,EACN;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,EACN;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,EACN;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,EACN;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,EACN;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,EACN;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,EACN;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,EACN;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,EACN;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,EACN;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,EACN;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,EACN;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,EACN;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,EACN;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,EACN;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,EACN;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,EACN;AACF;AAMO,IAAK,eAAL,kBAAKA,kBAAL;AACL,EAAAA,cAAA,gBAAa;AADH,SAAAA;AAAA,GAAA;AAIL,IAAM,wBAAsD;AAAA,EACjE,CAAC,4BAAuB,GAAG;AAC7B;AAmCO,IAAK,iBAAL,kBAAKC,oBAAL;AACL,EAAAA,gBAAA,oBAAiB;AACjB,EAAAA,gBAAA,eAAY;AACZ,EAAAA,gBAAA,sBAAmB;AAHT,SAAAA;AAAA,GAAA;","names":["EnumGameType","EnumGameStatus"]}
|