@opexa/portal-components 0.0.823 → 0.0.824

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 (242) hide show
  1. package/dist/components/DigitainLauncher/Loading.d.ts +1 -0
  2. package/dist/components/DigitainLauncher/Loading.js +5 -0
  3. package/dist/components/Disclaimer/ResponsibleGaming.d.ts +10 -0
  4. package/dist/components/Disclaimer/ResponsibleGaming.js +13 -0
  5. package/dist/components/Disclaimer/TermsOfUse.d.ts +11 -0
  6. package/dist/components/Disclaimer/TermsOfUse.js +13 -0
  7. package/dist/components/FeatureFlag/FeatureFlag.d.ts +1 -0
  8. package/dist/components/FeatureFlag/FeatureFlag.js +29 -0
  9. package/dist/components/FeatureFlag/index.d.ts +1 -0
  10. package/dist/components/FeatureFlag/index.js +1 -0
  11. package/dist/components/Jackpots/Jackpots.module.css +221 -221
  12. package/dist/components/Jackpots/JackpotsCarousel/JackpotsCarouselItem.module.css +184 -0
  13. package/dist/components/Jackpots/JackpotsList/JackpotsListItem.module.css +184 -0
  14. package/dist/components/KYC/AutoOpen.d.ts +1 -0
  15. package/dist/components/KYC/AutoOpen.js +40 -0
  16. package/dist/components/KYC/BasicInformation.d.ts +1 -0
  17. package/dist/components/KYC/BasicInformation.js +101 -0
  18. package/dist/components/KYC/CaptureIdDocument.d.ts +1 -0
  19. package/dist/components/KYC/CaptureIdDocument.js +219 -0
  20. package/dist/components/KYC/CaptureSelfie.d.ts +1 -0
  21. package/dist/components/KYC/CaptureSelfie.js +285 -0
  22. package/dist/components/KYC/DisplayImage.d.ts +5 -0
  23. package/dist/components/KYC/DisplayImage.js +8 -0
  24. package/dist/components/KYC/FileUpload.d.ts +10 -0
  25. package/dist/components/KYC/FileUpload.js +72 -0
  26. package/dist/components/KYC/IdentityVerification.d.ts +1 -0
  27. package/dist/components/KYC/IdentityVerification.js +120 -0
  28. package/dist/components/KYC/Indicator.d.ts +1 -0
  29. package/dist/components/KYC/Indicator.js +8 -0
  30. package/dist/components/KYC/KYC.lazy.d.ts +6 -0
  31. package/dist/components/KYC/KYC.lazy.js +45 -0
  32. package/dist/components/KYC/KYCContext.d.ts +6 -0
  33. package/dist/components/KYC/KYCContext.js +2 -0
  34. package/dist/components/KYC/KYCDefault/BasicInformation.d.ts +1 -0
  35. package/dist/components/KYC/KYCDefault/BasicInformation.js +101 -0
  36. package/dist/components/KYC/KYCDefault/IdentityVerification.js +2 -0
  37. package/dist/components/KYC/KYCDefault/KYCVerificationStatus.lazy.js +2 -2
  38. package/dist/components/KYC/KYCVerificationStatus.d.ts +1 -0
  39. package/dist/components/KYC/KYCVerificationStatus.js +10 -0
  40. package/dist/components/KYC/KYCVerificationStatus.lazy.d.ts +1 -0
  41. package/dist/components/KYC/KYCVerificationStatus.lazy.js +39 -0
  42. package/dist/components/KYC/NoCameraError.d.ts +7 -0
  43. package/dist/components/KYC/NoCameraError.js +6 -0
  44. package/dist/components/KYC/PersonOverlayDesktop.d.ts +7 -0
  45. package/dist/components/KYC/PersonOverlayDesktop.js +9 -0
  46. package/dist/components/KYC/PersonalInformation.d.ts +1 -0
  47. package/dist/components/KYC/PersonalInformation.js +122 -0
  48. package/dist/components/KYC/backup/Header.d.ts +1 -0
  49. package/dist/components/KYC/backup/Header.js +8 -0
  50. package/dist/components/KYC/backup/Indicator.d.ts +1 -0
  51. package/dist/components/KYC/backup/Indicator.js +9 -0
  52. package/dist/components/KYC/backup/KYC.d.ts +1 -0
  53. package/dist/components/KYC/backup/KYC.js +14 -0
  54. package/dist/components/KYC/backup/KYC.lazy.d.ts +1 -0
  55. package/dist/components/KYC/backup/KYC.lazy.js +26 -0
  56. package/dist/components/KYC/backup/KYCContext.d.ts +6 -0
  57. package/dist/components/KYC/backup/KYCContext.js +2 -0
  58. package/dist/components/KYC/backup/Step1.d.ts +1 -0
  59. package/dist/components/KYC/backup/Step1.js +13 -0
  60. package/dist/components/KYC/backup/Step2.d.ts +1 -0
  61. package/dist/components/KYC/backup/Step2.js +13 -0
  62. package/dist/components/KYC/backup/Step3.d.ts +1 -0
  63. package/dist/components/KYC/backup/Step3.js +13 -0
  64. package/dist/components/KYC/backup/Step4.d.ts +1 -0
  65. package/dist/components/KYC/backup/Step4.js +7 -0
  66. package/dist/components/KYC/backup/useKYC.d.ts +10 -0
  67. package/dist/components/KYC/backup/useKYC.js +8 -0
  68. package/dist/components/KYC/loadModels.d.ts +1 -0
  69. package/dist/components/KYC/loadModels.js +9 -0
  70. package/dist/components/KYC/useKYC.d.ts +25 -0
  71. package/dist/components/KYC/useKYC.js +38 -0
  72. package/dist/components/KYC/utils.d.ts +9 -0
  73. package/dist/components/KYC/utils.js +79 -0
  74. package/dist/components/Messages/Message.d.ts +1 -0
  75. package/dist/components/Messages/Message.js +35 -0
  76. package/dist/components/Messages/MessageContext.d.ts +6 -0
  77. package/dist/components/Messages/MessageContext.js +2 -0
  78. package/dist/components/Messages/MessagePopup.d.ts +1 -0
  79. package/dist/components/Messages/MessagePopup.js +20 -0
  80. package/dist/components/Messages/MessageTrigger.d.ts +8 -0
  81. package/dist/components/Messages/MessageTrigger.js +19 -0
  82. package/dist/components/PortalProvider/CXDTokenObserver.d.ts +1 -0
  83. package/dist/components/PortalProvider/CXDTokenObserver.js +30 -0
  84. package/dist/components/PortalProvider/LinkGoogleAccountObserver.d.ts +1 -0
  85. package/dist/components/PortalProvider/LinkGoogleAccountObserver.js +29 -0
  86. package/dist/components/Quests/CountdownTimer.d.ts +15 -0
  87. package/dist/components/Quests/CountdownTimer.js +33 -0
  88. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuest.d.ts +4 -0
  89. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuest.js +78 -0
  90. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuestModal.d.ts +8 -0
  91. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuestModal.js +9 -0
  92. package/dist/components/Quests/OnboardingQuest/OnboardingQuest.d.ts +4 -0
  93. package/dist/components/Quests/OnboardingQuest/OnboardingQuest.js +4 -0
  94. package/dist/components/Quests/WageringQuest/WageringQuest.d.ts +4 -0
  95. package/dist/components/Quests/WageringQuest/WageringQuest.js +20 -0
  96. package/dist/components/Quests/WageringQuest/WageringQuestModal.d.ts +9 -0
  97. package/dist/components/Quests/WageringQuest/WageringQuestModal.js +9 -0
  98. package/dist/components/SessionWatcher/SessionWatcher.d.ts +1 -0
  99. package/dist/components/SessionWatcher/SessionWatcher.js +20 -0
  100. package/dist/components/SessionWatcher/index.d.ts +1 -0
  101. package/dist/components/SessionWatcher/index.js +1 -0
  102. package/dist/components/SignIn/utils.d.ts +8 -0
  103. package/dist/components/SignIn/utils.js +26 -0
  104. package/dist/components/SignUp/SignUp.lazy.d.ts +12 -0
  105. package/dist/components/SignUp/SignUp.lazy.js +18 -0
  106. package/dist/components/SignUp/SignUpContext.d.ts +6 -0
  107. package/dist/components/SignUp/SignUpContext.js +2 -0
  108. package/dist/components/SignUp/SignUpDefault/SignUp.lazy.d.ts +17 -0
  109. package/dist/components/SignUp/SignUpDefault/SignUp.lazy.js +18 -0
  110. package/dist/components/SignUp/SignUpDefault/SignUpContext.d.ts +6 -0
  111. package/dist/components/SignUp/SignUpDefault/SignUpContext.js +2 -0
  112. package/dist/components/SignUp/SignUpDefault/SignUpForm.d.ts +1 -0
  113. package/dist/components/SignUp/SignUpDefault/SignUpForm.js +310 -0
  114. package/dist/components/SignUp/SignUpForm.d.ts +1 -0
  115. package/dist/components/SignUp/SignUpForm.js +284 -0
  116. package/dist/components/SignUp/SignUpKYC/CaptureIdDocument.d.ts +1 -0
  117. package/dist/components/SignUp/SignUpKYC/CaptureIdDocument.js +198 -0
  118. package/dist/components/SignUp/SignUpKYC/CaptureSelfie.d.ts +1 -0
  119. package/dist/components/SignUp/SignUpKYC/CaptureSelfie.js +251 -0
  120. package/dist/components/SignUp/SignUpKYC/ImageUploader.d.ts +10 -0
  121. package/dist/components/SignUp/SignUpKYC/ImageUploader.js +42 -0
  122. package/dist/components/SignUp/SignUpKYC/PersonOverlayDesktop.d.ts +7 -0
  123. package/dist/components/SignUp/SignUpKYC/PersonOverlayDesktop.js +9 -0
  124. package/dist/components/SignUp/SignUpKYC/SignUpFormKYC.d.ts +1 -0
  125. package/dist/components/SignUp/SignUpKYC/SignUpFormKYC.js +464 -0
  126. package/dist/components/SignUp/SignUpKYC/useImageUploader.d.ts +11 -0
  127. package/dist/components/SignUp/SignUpKYC/useImageUploader.js +20 -0
  128. package/dist/components/SignUp/SignUpKYC/utils.d.ts +9 -0
  129. package/dist/components/SignUp/SignUpKYC/utils.js +79 -0
  130. package/dist/components/SignUp/SignUpPagcor/CaptureIdDocument.d.ts +1 -0
  131. package/dist/components/SignUp/SignUpPagcor/CaptureIdDocument.js +198 -0
  132. package/dist/components/SignUp/SignUpPagcor/CaptureSelfie.d.ts +1 -0
  133. package/dist/components/SignUp/SignUpPagcor/CaptureSelfie.js +251 -0
  134. package/dist/components/SignUp/SignUpPagcor/ImageUploader.d.ts +10 -0
  135. package/dist/components/SignUp/SignUpPagcor/ImageUploader.js +41 -0
  136. package/dist/components/SignUp/SignUpPagcor/SignUpFormPagcor.d.ts +1 -0
  137. package/dist/components/SignUp/SignUpPagcor/SignUpFormPagcor.js +429 -0
  138. package/dist/components/SignUp/SignUpPagcor/SignUpPagcor.lazy.d.ts +13 -0
  139. package/dist/components/SignUp/SignUpPagcor/SignUpPagcor.lazy.js +26 -0
  140. package/dist/components/SignUp/SignUpPagcor/SignUpPagcorContext.d.ts +7 -0
  141. package/dist/components/SignUp/SignUpPagcor/SignUpPagcorContext.js +2 -0
  142. package/dist/components/SignUp/SignUpPagcor/useImageUploader.d.ts +11 -0
  143. package/dist/components/SignUp/SignUpPagcor/useImageUploader.js +20 -0
  144. package/dist/components/Tournaments/TournamentsCarousel/TournamentsCarouselItem.module.css +184 -184
  145. package/dist/components/Tournaments/TournamentsList/TournamentItem.module.css +184 -184
  146. package/dist/components/shared/IdDocumentField.client.d.ts +25 -0
  147. package/dist/components/shared/IdDocumentField.client.js +204 -0
  148. package/dist/components/shared/IdDocumentField.d.ts +2 -0
  149. package/dist/components/shared/IdDocumentField.js +11 -0
  150. package/dist/components/shared/SelfieField.client.d.ts +20 -0
  151. package/dist/components/shared/SelfieField.client.js +327 -0
  152. package/dist/components/shared/SelfieField.d.ts +2 -0
  153. package/dist/components/shared/SelfieField.js +11 -0
  154. package/dist/constants/BranchCode.d.ts +4 -0
  155. package/dist/constants/BranchCode.js +42 -0
  156. package/dist/constants/Branches.d.ts +2 -0
  157. package/dist/constants/Branches.js +42 -0
  158. package/dist/handlers/postTransformIdFrontImage.d.ts +3 -0
  159. package/dist/handlers/postTransformIdFrontImage.js +67 -0
  160. package/dist/handlers/postTransformSelfieImage.d.ts +3 -0
  161. package/dist/handlers/postTransformSelfieImage.js +71 -0
  162. package/dist/handlers.d.ts +43 -0
  163. package/dist/handlers.js +297 -0
  164. package/dist/icons/BellRingIcon.d.ts +2 -0
  165. package/dist/icons/BellRingIcon.js +4 -0
  166. package/dist/images/responsible-gaming-yellow.png +0 -0
  167. package/dist/services/queries.js +3151 -3151
  168. package/dist/styles/theme.css +776 -776
  169. package/dist/third-parties/FacebookPixel/FacebookPixel.d.ts +4 -0
  170. package/dist/third-parties/FacebookPixel/FacebookPixel.js +4 -0
  171. package/dist/third-parties/FacebookPixel/api.d.ts +0 -0
  172. package/dist/third-parties/FacebookPixel/api.js +1 -0
  173. package/dist/third-parties/FacebookPixel/index.d.ts +1 -0
  174. package/dist/third-parties/FacebookPixel/index.js +1 -0
  175. package/dist/third-parties/GoogleRecaptcha/GoogleRecaptcha.d.ts +4 -0
  176. package/dist/third-parties/GoogleRecaptcha/GoogleRecaptcha.js +4 -0
  177. package/dist/third-parties/GoogleRecaptcha/api.d.ts +0 -0
  178. package/dist/third-parties/GoogleRecaptcha/api.js +1 -0
  179. package/dist/third-parties/GoogleRecaptcha/index.d.ts +1 -0
  180. package/dist/third-parties/GoogleRecaptcha/index.js +1 -0
  181. package/dist/third-parties/index.d.ts +2 -0
  182. package/dist/third-parties/index.js +2 -0
  183. package/dist/ui/AlertDialog/AlertDialog.d.ts +154 -154
  184. package/dist/ui/AlertDialog/alertDialog.recipe.d.ts +14 -14
  185. package/dist/ui/Badge/Badge.d.ts +12 -12
  186. package/dist/ui/Badge/badge.anatomy.d.ts +1 -1
  187. package/dist/ui/Badge/badge.recipe.d.ts +3 -3
  188. package/dist/ui/Carousel/Carousel.d.ts +45 -45
  189. package/dist/ui/Carousel/carousel.recipe.d.ts +5 -5
  190. package/dist/ui/Checkbox/Checkbox.d.ts +23 -23
  191. package/dist/ui/Checkbox/checkbox.recipe.d.ts +3 -3
  192. package/dist/ui/Clipboard/Clipboard.d.ts +18 -18
  193. package/dist/ui/Clipboard/clipboard.recipe.d.ts +3 -3
  194. package/dist/ui/Collapsible/Collapsible.d.ts +20 -20
  195. package/dist/ui/Collapsible/collapsible.recipe.d.ts +5 -5
  196. package/dist/ui/Combobox/Combobox.d.ts +42 -42
  197. package/dist/ui/Combobox/combobox.recipe.d.ts +3 -3
  198. package/dist/ui/DatePicker/DatePicker.d.ts +72 -72
  199. package/dist/ui/DatePicker/datePicker.recipe.d.ts +3 -3
  200. package/dist/ui/Dialog/Dialog.d.ts +33 -33
  201. package/dist/ui/Dialog/dialog.recipe.d.ts +3 -3
  202. package/dist/ui/Drawer/Drawer.d.ts +33 -33
  203. package/dist/ui/Drawer/drawer.recipe.d.ts +3 -3
  204. package/dist/ui/Field/Field.d.ts +21 -21
  205. package/dist/ui/Field/field.recipe.d.ts +3 -3
  206. package/dist/ui/Menu/Menu.d.ts +307 -307
  207. package/dist/ui/Menu/menu.recipe.d.ts +17 -17
  208. package/dist/ui/NumberInput/NumberInput.d.ts +24 -24
  209. package/dist/ui/NumberInput/numberInput.recipe.d.ts +3 -3
  210. package/dist/ui/PasswordInput/PasswordInput.d.ts +18 -18
  211. package/dist/ui/PasswordInput/passwordInput.recipe.d.ts +3 -3
  212. package/dist/ui/PinInput/PinInput.d.ts +12 -12
  213. package/dist/ui/PinInput/pinInput.recipe.d.ts +3 -3
  214. package/dist/ui/Popover/Popover.d.ts +88 -88
  215. package/dist/ui/Popover/popover.recipe.d.ts +8 -8
  216. package/dist/ui/Progress/Progress.d.ts +27 -27
  217. package/dist/ui/Progress/progress.recipe.d.ts +3 -3
  218. package/dist/ui/QrCode/QrCode.d.ts +40 -40
  219. package/dist/ui/QrCode/qrCode.recipe.d.ts +8 -8
  220. package/dist/ui/SegmentGroup/SegmentGroup.d.ts +18 -18
  221. package/dist/ui/SegmentGroup/segmentGroup.recipe.d.ts +3 -3
  222. package/dist/ui/Select/Select.d.ts +45 -45
  223. package/dist/ui/Select/select.recipe.d.ts +3 -3
  224. package/dist/ui/Table/Table.d.ts +21 -21
  225. package/dist/ui/Table/table.anatomy.d.ts +1 -1
  226. package/dist/ui/Table/table.recipe.d.ts +3 -3
  227. package/dist/ui/Tabs/Tabs.d.ts +15 -15
  228. package/dist/ui/Tabs/tabs.recipe.d.ts +3 -3
  229. package/dist/ui/Tooltip/Tooltip.d.ts +30 -30
  230. package/dist/ui/Tooltip/tooltip.recipe.d.ts +5 -5
  231. package/dist/utils/dataUrlToBlob.d.ts +1 -0
  232. package/dist/utils/dataUrlToBlob.js +11 -0
  233. package/dist/utils/gamesAvailable3pmTo3am.d.ts +1 -0
  234. package/dist/utils/gamesAvailable3pmTo3am.js +1 -0
  235. package/dist/utils/getGameName.d.ts +1 -0
  236. package/dist/utils/getGameName.js +6 -0
  237. package/dist/utils/isBetween3amAnd3pm.d.ts +1 -0
  238. package/dist/utils/isBetween3amAnd3pm.js +5 -0
  239. package/dist/utils/resizeImageSize.d.ts +2 -0
  240. package/dist/utils/resizeImageSize.js +11 -0
  241. package/package.json +176 -176
  242. package/dist/tsconfig.build.tsbuildinfo +0 -1
@@ -0,0 +1,297 @@
1
+ import { addDays, addMinutes, subMinutes } from 'date-fns';
2
+ import { NextResponse } from 'next/server';
3
+ import { z } from 'zod';
4
+ import { ACCESS_TOKEN_COOKIE_NAME, DOMAIN_COOKIE_NAME, DOMAIN_HEADER_KEY, RECAPTCHA_HEADER_KEY, REFRESH_TOKEN_COOKIE_NAME, } from './constants/index.js';
5
+ import { authenticate, createSession, destroySession, refreshSession, } from './services/auth.js';
6
+ const CreateSessionDefinition = z.union([
7
+ z.object({
8
+ type: z.literal('NAME_AND_PASSWORD'),
9
+ name: z.string(),
10
+ password: z.string(),
11
+ }),
12
+ z.object({
13
+ type: z.literal('MOBILE_NUMBER'),
14
+ mobileNumber: z.string(),
15
+ verificationCode: z.string(),
16
+ }),
17
+ z.object({
18
+ type: z.literal('MAYA'),
19
+ session: z.string(),
20
+ }),
21
+ z.object({
22
+ type: z.union([
23
+ z.literal('SOCIALS'),
24
+ z.literal('CABINET'),
25
+ z.literal('SINGLE_USE_TOKEN'),
26
+ ]),
27
+ token: z.string(),
28
+ }),
29
+ ]);
30
+ const AuthenticateDefinition = z.object({
31
+ type: z.literal('SECURITY_QUESTION'),
32
+ token: z.string(),
33
+ secretAnswer: z.string(),
34
+ });
35
+ export const GET = async (request, { params }) => {
36
+ const { auth } = await params;
37
+ const path = auth[0];
38
+ /*
39
+ *
40
+ * GET -> /api/health
41
+ * GET -> /api/healthcheck
42
+ * GET -> /api/health-check
43
+ *
44
+ */
45
+ if (/^health(-?check)?$/i.test(path)) {
46
+ return NextResponse.json({
47
+ ok: true,
48
+ }, {
49
+ headers: {
50
+ 'Access-Control-Allow-Origin': '*',
51
+ 'Cache-Control': 'no-cache, no-store, must-revalidate',
52
+ Pragma: 'no-cache',
53
+ Expires: '0',
54
+ },
55
+ });
56
+ }
57
+ /*
58
+ *
59
+ * GET -> /api/sessions
60
+ *
61
+ */
62
+ if (path === 'sessions') {
63
+ const accessToken = request.cookies.get(ACCESS_TOKEN_COOKIE_NAME)?.value;
64
+ const refreshToken = request.cookies.get(REFRESH_TOKEN_COOKIE_NAME)?.value;
65
+ const domain = request.cookies.get(DOMAIN_COOKIE_NAME)?.value;
66
+ if (!refreshToken) {
67
+ const response = NextResponse.json({
68
+ ok: true,
69
+ data: {
70
+ domain,
71
+ status: 'unauthenticated',
72
+ },
73
+ });
74
+ response.cookies.delete(ACCESS_TOKEN_COOKIE_NAME);
75
+ response.cookies.delete(REFRESH_TOKEN_COOKIE_NAME);
76
+ return response;
77
+ }
78
+ if (!accessToken) {
79
+ try {
80
+ const data = await refreshSession({
81
+ headers: {
82
+ Authorization: `Bearer ${refreshToken}`,
83
+ },
84
+ });
85
+ const response = NextResponse.json({
86
+ ok: true,
87
+ data: {
88
+ status: 'authenticated',
89
+ domain,
90
+ token: data.accessToken,
91
+ },
92
+ });
93
+ response.cookies.set(ACCESS_TOKEN_COOKIE_NAME, data.accessToken, {
94
+ expires: addMinutes(new Date(), 9),
95
+ httpOnly: true,
96
+ sameSite: 'strict',
97
+ });
98
+ return response;
99
+ }
100
+ catch {
101
+ const response = NextResponse.json({
102
+ ok: true,
103
+ data: {
104
+ status: 'unauthenticated',
105
+ domain,
106
+ },
107
+ });
108
+ response.cookies.delete(REFRESH_TOKEN_COOKIE_NAME);
109
+ return response;
110
+ }
111
+ }
112
+ return NextResponse.json({
113
+ ok: true,
114
+ data: {
115
+ status: 'authenticated',
116
+ domain,
117
+ token: accessToken,
118
+ },
119
+ });
120
+ }
121
+ return NextResponse.json({
122
+ ok: false,
123
+ message: 'Not found',
124
+ }, { status: 404 });
125
+ };
126
+ export const DELETE = async (request, { params }) => {
127
+ const { auth } = await params;
128
+ const path = auth[0];
129
+ /*
130
+ *
131
+ * DELETE -> /api/sessions
132
+ *
133
+ */
134
+ if (path === 'sessions') {
135
+ const accessToken = request.cookies.get(ACCESS_TOKEN_COOKIE_NAME)?.value;
136
+ if (accessToken) {
137
+ await destroySession({
138
+ headers: {
139
+ Authorization: `Bearer ${accessToken}`,
140
+ },
141
+ });
142
+ }
143
+ const response = NextResponse.json({
144
+ ok: true,
145
+ });
146
+ response.cookies.delete(ACCESS_TOKEN_COOKIE_NAME);
147
+ response.cookies.delete(REFRESH_TOKEN_COOKIE_NAME);
148
+ return response;
149
+ }
150
+ return NextResponse.json({
151
+ ok: false,
152
+ message: 'Not found',
153
+ }, { status: 404 });
154
+ };
155
+ export const POST = async (request, { params }) => {
156
+ const { auth } = await params;
157
+ const path = auth[0];
158
+ /*
159
+ *
160
+ * POST -> /api/sessions
161
+ *
162
+ */
163
+ if (path === 'sessions') {
164
+ const body = await request.json();
165
+ const parsed = CreateSessionDefinition.safeParse(body);
166
+ if (!parsed.success) {
167
+ return NextResponse.json({
168
+ ok: false,
169
+ message: parsed.error.issues[0].message,
170
+ }, { status: 400 });
171
+ }
172
+ const recaptcha = request.headers.get(RECAPTCHA_HEADER_KEY);
173
+ const domain = request.headers.get(DOMAIN_HEADER_KEY);
174
+ try {
175
+ const res = await createSession(parsed.data, {
176
+ headers: {
177
+ ...(recaptcha && {
178
+ [RECAPTCHA_HEADER_KEY]: recaptcha,
179
+ }),
180
+ ...(domain && {
181
+ [DOMAIN_HEADER_KEY]: domain,
182
+ }),
183
+ },
184
+ });
185
+ if (res.authenticator) {
186
+ return NextResponse.json({
187
+ ok: true,
188
+ data: res.authenticator,
189
+ });
190
+ }
191
+ const response = NextResponse.json({ ok: true, data: null }, { status: 201 });
192
+ response.cookies.set(ACCESS_TOKEN_COOKIE_NAME, res.accessToken, {
193
+ expires: addMinutes(new Date(), 9),
194
+ httpOnly: true,
195
+ sameSite: 'strict',
196
+ });
197
+ response.cookies.set(REFRESH_TOKEN_COOKIE_NAME, res.refreshToken, {
198
+ expires: subMinutes(addDays(new Date(), 30), 1),
199
+ httpOnly: true,
200
+ sameSite: 'strict',
201
+ });
202
+ return response;
203
+ }
204
+ catch (e) {
205
+ return NextResponse.json({
206
+ ok: false,
207
+ message: 'Unauthorized',
208
+ __error: e,
209
+ }, { status: 401 });
210
+ }
211
+ }
212
+ /*
213
+ *
214
+ * POST -> /api/authenticate
215
+ *
216
+ */
217
+ if (path === 'authenticate') {
218
+ const body = await request.json();
219
+ const parsed = AuthenticateDefinition.safeParse(body);
220
+ if (!parsed.success) {
221
+ return NextResponse.json({
222
+ ok: false,
223
+ message: parsed.error.issues[0].message,
224
+ }, { status: 400 });
225
+ }
226
+ const recaptcha = request.headers.get(RECAPTCHA_HEADER_KEY);
227
+ const domain = request.headers.get(DOMAIN_HEADER_KEY);
228
+ try {
229
+ const res = await authenticate(parsed.data, {
230
+ headers: {
231
+ ...(recaptcha && {
232
+ [RECAPTCHA_HEADER_KEY]: recaptcha,
233
+ }),
234
+ ...(domain && {
235
+ [DOMAIN_HEADER_KEY]: domain,
236
+ }),
237
+ },
238
+ });
239
+ const response = NextResponse.json({ ok: true }, { status: 201 });
240
+ response.cookies.set(ACCESS_TOKEN_COOKIE_NAME, res.accessToken, {
241
+ expires: addMinutes(new Date(), 9),
242
+ httpOnly: true,
243
+ });
244
+ response.cookies.set(REFRESH_TOKEN_COOKIE_NAME, res.refreshToken, {
245
+ expires: subMinutes(addDays(new Date(), 30), 1),
246
+ httpOnly: true,
247
+ });
248
+ return response;
249
+ }
250
+ catch (e) {
251
+ return NextResponse.json({
252
+ ok: false,
253
+ message: 'Unauthorized',
254
+ __error: e,
255
+ }, { status: 401 });
256
+ }
257
+ }
258
+ return NextResponse.json({
259
+ ok: false,
260
+ message: 'Not found',
261
+ }, { status: 404 });
262
+ };
263
+ const UpdateSessionDefinition = z.object({
264
+ domain: z.string().optional().nullable(),
265
+ });
266
+ export const PATCH = async (request, { params }) => {
267
+ const { auth } = await params;
268
+ const path = auth[0];
269
+ /*
270
+ *
271
+ * PATCH -> /api/sessions
272
+ *
273
+ */
274
+ if (path === 'sessions') {
275
+ const body = await request.json();
276
+ const parsed = UpdateSessionDefinition.safeParse(body);
277
+ if (!parsed.success) {
278
+ return NextResponse.json({
279
+ ok: false,
280
+ message: parsed.error.issues[0].message,
281
+ }, { status: 400 });
282
+ }
283
+ const response = NextResponse.json({ ok: true });
284
+ if (parsed.data.domain) {
285
+ response.cookies.set(DOMAIN_COOKIE_NAME, parsed.data.domain, {
286
+ expires: addDays(new Date(), 30),
287
+ httpOnly: true,
288
+ sameSite: 'strict',
289
+ });
290
+ }
291
+ return response;
292
+ }
293
+ return NextResponse.json({
294
+ ok: false,
295
+ message: 'Not found',
296
+ }, { status: 404 });
297
+ };
@@ -0,0 +1,2 @@
1
+ import type { ComponentPropsWithRef } from 'react';
2
+ export declare function BellRingIcon(props: ComponentPropsWithRef<'svg'>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export function BellRingIcon(props) {
3
+ return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 25 24", fill: "none", stroke: "currentColor", ...props, children: _jsx("path", { d: "M15.5002 19C15.5002 20.6569 14.1571 22 12.5002 22C10.8434 22 9.50025 20.6569 9.50025 19M14.2968 6.23856C14.7322 5.78864 15.0002 5.17562 15.0002 4.5C15.0002 3.11929 13.881 2 12.5002 2C11.1195 2 10.0002 3.11929 10.0002 4.5C10.0002 5.17562 10.2683 5.78864 10.7037 6.23856M3.04707 8.32296C3.03272 6.87161 3.8152 5.51631 5.07928 4.80306M21.9534 8.32296C21.9678 6.87161 21.1853 5.51631 19.9212 4.80306M18.5002 11.2C18.5002 9.82087 17.8681 8.49823 16.7429 7.52304C15.6177 6.54786 14.0915 6 12.5002 6C10.9089 6 9.38283 6.54786 8.25761 7.52304C7.13239 8.49823 6.50025 9.82087 6.50025 11.2C6.50025 13.4818 5.93438 15.1506 5.22831 16.3447C4.42359 17.7056 4.02122 18.3861 4.03711 18.5486C4.05529 18.7346 4.08876 18.7933 4.23959 18.9036C4.37142 19 5.03376 19 6.35844 19H18.6421C19.9667 19 20.6291 19 20.7609 18.9036C20.9117 18.7933 20.9452 18.7346 20.9634 18.5486C20.9793 18.3861 20.5769 17.7056 19.7722 16.3447C19.0661 15.1506 18.5002 13.4818 18.5002 11.2Z", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }));
4
+ }