@opexa/portal-components 0.0.1

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.
@@ -0,0 +1,84 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __commonJS = (cb, mod) => function __require() {
8
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
19
+ // If the importer is in node compatibility mode or this is not an ESM
20
+ // file that has been converted to a CommonJS file using a Babel-
21
+ // compatible transform (i.e. "__esModule" has not been set), then set
22
+ // "default" to the CommonJS "module.exports" for node compatibility.
23
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
24
+ mod
25
+ ));
26
+
27
+ // ../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constants.js
28
+ var daysInYear = 365.2425;
29
+ var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1e3;
30
+ var minTime = -maxTime;
31
+ var millisecondsInMinute = 6e4;
32
+ var secondsInHour = 3600;
33
+ var secondsInDay = secondsInHour * 24;
34
+ var secondsInWeek = secondsInDay * 7;
35
+ var secondsInYear = secondsInDay * daysInYear;
36
+ var secondsInMonth = secondsInYear / 12;
37
+ var secondsInQuarter = secondsInMonth * 3;
38
+ var constructFromSymbol = Symbol.for("constructDateFrom");
39
+
40
+ // ../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructFrom.js
41
+ function constructFrom(date, value) {
42
+ if (typeof date === "function") return date(value);
43
+ if (date && typeof date === "object" && constructFromSymbol in date)
44
+ return date[constructFromSymbol](value);
45
+ if (date instanceof Date) return new date.constructor(value);
46
+ return new Date(value);
47
+ }
48
+
49
+ // ../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/toDate.js
50
+ function toDate(argument, context) {
51
+ return constructFrom(context || argument, argument);
52
+ }
53
+
54
+ // ../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addMinutes.js
55
+ function addMinutes(date, amount, options) {
56
+ const _date = toDate(date, options == null ? void 0 : options.in);
57
+ _date.setTime(_date.getTime() + amount * millisecondsInMinute);
58
+ return _date;
59
+ }
60
+
61
+ // src/lib/constants/index.ts
62
+ import { z } from "zod";
63
+ var SITE_ID = z.string().min(1, 'Environment variable "NEXT_PUBLIC_SITE_ID" must be 1 or more characters').max(32, 'Environment variable "NEXT_PUBLIC_SITE_ID" must not be more than 32 characters').trim().parse(process.env.NEXT_PUBLIC_SITE_ID);
64
+ var PLATFORM_ID = z.string().min(1, 'Environment variable "NEXT_PUBLIC_PLATFORM_ID" must be 1 or more characters').max(32, 'Environment variable "NEXT_PUBLIC_PLATFORM_ID" must not be more than 32 characters').trim().parse(process.env.NEXT_PUBLIC_PLATFORM_ID);
65
+ var PLATFORM_CODE = z.string().min(4, 'Environment variable "NEXT_PUBLIC_PLATFORM_CODE" must be at least 4 characters').max(8, 'Environment variable "NEXT_PUBLIC_PLATFORM_CODE" must not be more than 8 characters').trim().parse(process.env.NEXT_PUBLIC_PLATFORM_CODE);
66
+ var ENVIRONMENT = z.enum(["production", "development"]).catch("development").parse(process.env.NEXT_PUBLIC_ENVIRONMENT);
67
+ var BYPASS_RECAPTCHA = z.any().transform(Boolean).catch(false).parse(process.env.NEXT_PUBLIC_BYPASS_RECAPTCHA);
68
+ var ACCESS_TOKEN_COOKIE_NAME = "WebPortalAuthAccessToken";
69
+ var REFRESH_TOKEN_COOKIE_NAME = "WebPortalAuthRefreshToken";
70
+
71
+ export {
72
+ __commonJS,
73
+ __toESM,
74
+ constructFrom,
75
+ toDate,
76
+ addMinutes,
77
+ SITE_ID,
78
+ PLATFORM_ID,
79
+ PLATFORM_CODE,
80
+ ENVIRONMENT,
81
+ ACCESS_TOKEN_COOKIE_NAME,
82
+ REFRESH_TOKEN_COOKIE_NAME
83
+ };
84
+ //# sourceMappingURL=chunk-HP26SZP3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constants.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructFrom.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/toDate.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addMinutes.js","../src/lib/constants/index.ts"],"sourcesContent":["/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate<DateType extends Date>(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { millisecondsInMinute } from \"./constants.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addMinutes} function options.\n */\n\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of minutes to be added.\n * @param options - An object with options\n *\n * @returns The new date with the minutes added\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\nexport function addMinutes(date, amount, options) {\n const _date = toDate(date, options?.in);\n _date.setTime(_date.getTime() + amount * millisecondsInMinute);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addMinutes;\n","import { z } from 'zod';\r\n\r\nexport const SITE_ID = z\r\n .string()\r\n .min(1, 'Environment variable \"NEXT_PUBLIC_SITE_ID\" must be 1 or more characters')\r\n .max(32, 'Environment variable \"NEXT_PUBLIC_SITE_ID\" must not be more than 32 characters')\r\n .trim()\r\n .parse(process.env.NEXT_PUBLIC_SITE_ID);\r\n\r\nexport const PLATFORM_ID = z\r\n .string()\r\n .min(1, 'Environment variable \"NEXT_PUBLIC_PLATFORM_ID\" must be 1 or more characters')\r\n .max(32, 'Environment variable \"NEXT_PUBLIC_PLATFORM_ID\" must not be more than 32 characters')\r\n .trim()\r\n .parse(process.env.NEXT_PUBLIC_PLATFORM_ID);\r\n\r\nexport const PLATFORM_CODE = z\r\n .string()\r\n .min(4, 'Environment variable \"NEXT_PUBLIC_PLATFORM_CODE\" must be at least 4 characters')\r\n .max(8, 'Environment variable \"NEXT_PUBLIC_PLATFORM_CODE\" must not be more than 8 characters')\r\n .trim()\r\n .parse(process.env.NEXT_PUBLIC_PLATFORM_CODE);\r\n\r\nexport const ENVIRONMENT = z\r\n .enum(['production', 'development'])\r\n .catch('development')\r\n .parse(process.env.NEXT_PUBLIC_ENVIRONMENT);\r\n\r\nexport const BYPASS_RECAPTCHA = z\r\n .any()\r\n .transform(Boolean)\r\n .catch(false)\r\n .parse(process.env.NEXT_PUBLIC_BYPASS_RECAPTCHA);\r\n\r\nexport const ACCESS_TOKEN_COOKIE_NAME: string = 'WebPortalAuthAccessToken';\r\nexport const REFRESH_TOKEN_COOKIE_NAME: string = 'WebPortalAuthRefreshToken';\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCO,IAAM,aAAa;AAgBnB,IAAM,UAAU,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,KAAK;AAgBjD,IAAM,UAAU,CAAC;AAqBjB,IAAM,uBAAuB;AAsE7B,IAAM,gBAAgB;AActB,IAAM,eAAe,gBAAgB;AAOrC,IAAM,gBAAgB,eAAe;AAOrC,IAAM,gBAAgB,eAAe;AAOrC,IAAM,iBAAiB,gBAAgB;AAOvC,IAAM,mBAAmB,iBAAiB;AAa1C,IAAM,sBAAsB,OAAO,IAAI,mBAAmB;;;AClL1D,SAAS,cAAc,MAAM,OAAO;AACzC,MAAI,OAAO,SAAS,WAAY,QAAO,KAAK,KAAK;AAEjD,MAAI,QAAQ,OAAO,SAAS,YAAY,uBAAuB;AAC7D,WAAO,KAAK,mBAAmB,EAAE,KAAK;AAExC,MAAI,gBAAgB,KAAM,QAAO,IAAI,KAAK,YAAY,KAAK;AAE3D,SAAO,IAAI,KAAK,KAAK;AACvB;;;ACNO,SAAS,OAAO,UAAU,SAAS;AAExC,SAAO,cAAc,WAAW,UAAU,QAAQ;AACpD;;;ACdO,SAAS,WAAW,MAAM,QAAQ,SAAS;AAChD,QAAM,QAAQ,OAAO,MAAM,mCAAS,EAAE;AACtC,QAAM,QAAQ,MAAM,QAAQ,IAAI,SAAS,oBAAoB;AAC7D,SAAO;AACT;;;ACjCA,SAAS,SAAS;AAEX,IAAM,UAAU,EACpB,OAAO,EACP,IAAI,GAAG,yEAAyE,EAChF,IAAI,IAAI,gFAAgF,EACxF,KAAK,EACL,MAAM,QAAQ,IAAI,mBAAmB;AAEjC,IAAM,cAAc,EACxB,OAAO,EACP,IAAI,GAAG,6EAA6E,EACpF,IAAI,IAAI,oFAAoF,EAC5F,KAAK,EACL,MAAM,QAAQ,IAAI,uBAAuB;AAErC,IAAM,gBAAgB,EAC1B,OAAO,EACP,IAAI,GAAG,gFAAgF,EACvF,IAAI,GAAG,qFAAqF,EAC5F,KAAK,EACL,MAAM,QAAQ,IAAI,yBAAyB;AAEvC,IAAM,cAAc,EACxB,KAAK,CAAC,cAAc,aAAa,CAAC,EAClC,MAAM,aAAa,EACnB,MAAM,QAAQ,IAAI,uBAAuB;AAErC,IAAM,mBAAmB,EAC7B,IAAI,EACJ,UAAU,OAAO,EACjB,MAAM,KAAK,EACX,MAAM,QAAQ,IAAI,4BAA4B;AAE1C,IAAM,2BAAmC;AACzC,IAAM,4BAAoC;","names":[]}
@@ -0,0 +1,43 @@
1
+ import { NextRequest, NextResponse } from 'next/server';
2
+
3
+ type GetSessionResponse = {
4
+ status: 'authenticated';
5
+ token: string;
6
+ } | {
7
+ status: 'unauthenticated';
8
+ };
9
+ declare const GET: (request: NextRequest, { params }: {
10
+ params: Promise<{
11
+ auth: string[];
12
+ }>;
13
+ }) => Promise<NextResponse<{
14
+ ok: false;
15
+ message: string;
16
+ } | {
17
+ ok: true;
18
+ data: GetSessionResponse;
19
+ }> | NextResponse<{
20
+ ok: true;
21
+ data?: never;
22
+ } | {
23
+ ok: false;
24
+ message: string;
25
+ }>>;
26
+ declare const DELETE: (request: NextRequest, { params }: {
27
+ params: Promise<{
28
+ auth: string[];
29
+ }>;
30
+ }) => Promise<NextResponse<{
31
+ ok: true;
32
+ data?: never;
33
+ } | {
34
+ ok: false;
35
+ message: string;
36
+ }>>;
37
+ declare const POST: (request: NextRequest, { params }: {
38
+ params: Promise<{
39
+ auth: string[];
40
+ }>;
41
+ }) => Promise<NextResponse>;
42
+
43
+ export { DELETE, GET, POST };
@@ -0,0 +1,43 @@
1
+ import { NextRequest, NextResponse } from 'next/server';
2
+
3
+ type GetSessionResponse = {
4
+ status: 'authenticated';
5
+ token: string;
6
+ } | {
7
+ status: 'unauthenticated';
8
+ };
9
+ declare const GET: (request: NextRequest, { params }: {
10
+ params: Promise<{
11
+ auth: string[];
12
+ }>;
13
+ }) => Promise<NextResponse<{
14
+ ok: false;
15
+ message: string;
16
+ } | {
17
+ ok: true;
18
+ data: GetSessionResponse;
19
+ }> | NextResponse<{
20
+ ok: true;
21
+ data?: never;
22
+ } | {
23
+ ok: false;
24
+ message: string;
25
+ }>>;
26
+ declare const DELETE: (request: NextRequest, { params }: {
27
+ params: Promise<{
28
+ auth: string[];
29
+ }>;
30
+ }) => Promise<NextResponse<{
31
+ ok: true;
32
+ data?: never;
33
+ } | {
34
+ ok: false;
35
+ message: string;
36
+ }>>;
37
+ declare const POST: (request: NextRequest, { params }: {
38
+ params: Promise<{
39
+ auth: string[];
40
+ }>;
41
+ }) => Promise<NextResponse>;
42
+
43
+ export { DELETE, GET, POST };
@@ -0,0 +1,319 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/lib/handlers.ts
21
+ var handlers_exports = {};
22
+ __export(handlers_exports, {
23
+ DELETE: () => DELETE,
24
+ GET: () => GET,
25
+ POST: () => POST
26
+ });
27
+ module.exports = __toCommonJS(handlers_exports);
28
+ var import_portal_sdk_core = require("@opexa/portal-sdk-core");
29
+
30
+ // ../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constants.js
31
+ var daysInYear = 365.2425;
32
+ var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1e3;
33
+ var minTime = -maxTime;
34
+ var millisecondsInMinute = 6e4;
35
+ var secondsInHour = 3600;
36
+ var secondsInDay = secondsInHour * 24;
37
+ var secondsInWeek = secondsInDay * 7;
38
+ var secondsInYear = secondsInDay * daysInYear;
39
+ var secondsInMonth = secondsInYear / 12;
40
+ var secondsInQuarter = secondsInMonth * 3;
41
+ var constructFromSymbol = Symbol.for("constructDateFrom");
42
+
43
+ // ../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructFrom.js
44
+ function constructFrom(date, value) {
45
+ if (typeof date === "function") return date(value);
46
+ if (date && typeof date === "object" && constructFromSymbol in date)
47
+ return date[constructFromSymbol](value);
48
+ if (date instanceof Date) return new date.constructor(value);
49
+ return new Date(value);
50
+ }
51
+
52
+ // ../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/toDate.js
53
+ function toDate(argument, context) {
54
+ return constructFrom(context || argument, argument);
55
+ }
56
+
57
+ // ../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addDays.js
58
+ function addDays(date, amount, options) {
59
+ const _date = toDate(date, options == null ? void 0 : options.in);
60
+ if (isNaN(amount)) return constructFrom((options == null ? void 0 : options.in) || date, NaN);
61
+ if (!amount) return _date;
62
+ _date.setDate(_date.getDate() + amount);
63
+ return _date;
64
+ }
65
+
66
+ // ../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addMinutes.js
67
+ function addMinutes(date, amount, options) {
68
+ const _date = toDate(date, options == null ? void 0 : options.in);
69
+ _date.setTime(_date.getTime() + amount * millisecondsInMinute);
70
+ return _date;
71
+ }
72
+
73
+ // ../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subMinutes.js
74
+ function subMinutes(date, amount, options) {
75
+ return addMinutes(date, -amount, options);
76
+ }
77
+
78
+ // src/lib/handlers.ts
79
+ var import_server = require("next/server");
80
+ var import_zod2 = require("zod");
81
+
82
+ // src/lib/constants/index.ts
83
+ var import_zod = require("zod");
84
+ var SITE_ID = import_zod.z.string().min(1, 'Environment variable "NEXT_PUBLIC_SITE_ID" must be 1 or more characters').max(32, 'Environment variable "NEXT_PUBLIC_SITE_ID" must not be more than 32 characters').trim().parse(process.env.NEXT_PUBLIC_SITE_ID);
85
+ var PLATFORM_ID = import_zod.z.string().min(1, 'Environment variable "NEXT_PUBLIC_PLATFORM_ID" must be 1 or more characters').max(32, 'Environment variable "NEXT_PUBLIC_PLATFORM_ID" must not be more than 32 characters').trim().parse(process.env.NEXT_PUBLIC_PLATFORM_ID);
86
+ var PLATFORM_CODE = import_zod.z.string().min(4, 'Environment variable "NEXT_PUBLIC_PLATFORM_CODE" must be at least 4 characters').max(8, 'Environment variable "NEXT_PUBLIC_PLATFORM_CODE" must not be more than 8 characters').trim().parse(process.env.NEXT_PUBLIC_PLATFORM_CODE);
87
+ var ENVIRONMENT = import_zod.z.enum(["production", "development"]).catch("development").parse(process.env.NEXT_PUBLIC_ENVIRONMENT);
88
+ var BYPASS_RECAPTCHA = import_zod.z.any().transform(Boolean).catch(false).parse(process.env.NEXT_PUBLIC_BYPASS_RECAPTCHA);
89
+ var ACCESS_TOKEN_COOKIE_NAME = "WebPortalAuthAccessToken";
90
+ var REFRESH_TOKEN_COOKIE_NAME = "WebPortalAuthRefreshToken";
91
+
92
+ // src/lib/handlers.ts
93
+ var CreateSessionDefinition = import_zod2.z.union([
94
+ import_zod2.z.object({
95
+ type: import_zod2.z.literal("NAME_AND_PASSWORD"),
96
+ name: import_zod2.z.string(),
97
+ password: import_zod2.z.string()
98
+ }),
99
+ import_zod2.z.object({
100
+ type: import_zod2.z.literal("MOBILE_NUMBER"),
101
+ mobileNumber: import_zod2.z.string(),
102
+ verificationCode: import_zod2.z.string()
103
+ }),
104
+ import_zod2.z.object({
105
+ type: import_zod2.z.literal("MAYA"),
106
+ session: import_zod2.z.string()
107
+ }),
108
+ import_zod2.z.object({
109
+ type: import_zod2.z.union([import_zod2.z.literal("SOCIALS"), import_zod2.z.literal("CABINET"), import_zod2.z.literal("SINGLE_USE_TOKEN")]),
110
+ token: import_zod2.z.string()
111
+ })
112
+ ]);
113
+ var AuthenticateDefinition = import_zod2.z.object({
114
+ type: import_zod2.z.literal("SECURITY_QUESTION"),
115
+ token: import_zod2.z.string(),
116
+ secretAnswer: import_zod2.z.string()
117
+ });
118
+ var GET = async (request, { params }) => {
119
+ var _a, _b;
120
+ const { auth } = await params;
121
+ const path = auth[0];
122
+ if (path === "sessions") {
123
+ const accessToken = (_a = request.cookies.get(ACCESS_TOKEN_COOKIE_NAME)) == null ? void 0 : _a.value;
124
+ const refreshToken = (_b = request.cookies.get(REFRESH_TOKEN_COOKIE_NAME)) == null ? void 0 : _b.value;
125
+ if (!refreshToken) {
126
+ const response = import_server.NextResponse.json({
127
+ ok: true,
128
+ data: {
129
+ status: "unauthenticated"
130
+ }
131
+ });
132
+ response.cookies.delete(ACCESS_TOKEN_COOKIE_NAME);
133
+ response.cookies.delete(REFRESH_TOKEN_COOKIE_NAME);
134
+ return response;
135
+ }
136
+ if (!accessToken) {
137
+ try {
138
+ const data = await (0, import_portal_sdk_core.refreshSession)({
139
+ headers: {
140
+ Authorization: `Bearer ${refreshToken}`
141
+ },
142
+ environment: ENVIRONMENT
143
+ });
144
+ const response = import_server.NextResponse.json({
145
+ ok: true,
146
+ data: {
147
+ status: "authenticated",
148
+ token: data.accessToken
149
+ }
150
+ });
151
+ response.cookies.set(ACCESS_TOKEN_COOKIE_NAME, data.accessToken, {
152
+ expires: addMinutes(/* @__PURE__ */ new Date(), 9),
153
+ httpOnly: true,
154
+ sameSite: "strict"
155
+ });
156
+ return response;
157
+ } catch {
158
+ const response = import_server.NextResponse.json({
159
+ ok: true,
160
+ data: {
161
+ status: "unauthenticated"
162
+ }
163
+ });
164
+ response.cookies.delete(REFRESH_TOKEN_COOKIE_NAME);
165
+ return response;
166
+ }
167
+ }
168
+ return import_server.NextResponse.json({
169
+ ok: true,
170
+ data: {
171
+ status: "authenticated",
172
+ token: accessToken
173
+ }
174
+ });
175
+ }
176
+ return import_server.NextResponse.json(
177
+ {
178
+ ok: false,
179
+ message: "Not found"
180
+ },
181
+ { status: 404 }
182
+ );
183
+ };
184
+ var DELETE = async (request, { params }) => {
185
+ var _a;
186
+ const { auth } = await params;
187
+ const path = auth[0];
188
+ if (path === "sessions") {
189
+ const accessToken = (_a = request.cookies.get(ACCESS_TOKEN_COOKIE_NAME)) == null ? void 0 : _a.value;
190
+ if (accessToken) {
191
+ await (0, import_portal_sdk_core.destroySession)({
192
+ headers: {
193
+ Authorization: `Bearer ${accessToken}`
194
+ },
195
+ environment: ENVIRONMENT
196
+ });
197
+ }
198
+ const response = import_server.NextResponse.json({
199
+ ok: true
200
+ });
201
+ response.cookies.delete(ACCESS_TOKEN_COOKIE_NAME);
202
+ response.cookies.delete(REFRESH_TOKEN_COOKIE_NAME);
203
+ return response;
204
+ }
205
+ return import_server.NextResponse.json(
206
+ {
207
+ ok: false,
208
+ message: "Not found"
209
+ },
210
+ { status: 404 }
211
+ );
212
+ };
213
+ var POST = async (request, { params }) => {
214
+ const { auth } = await params;
215
+ const path = auth[0];
216
+ if (path === "sessions") {
217
+ const body = await request.json();
218
+ const parsed = CreateSessionDefinition.safeParse(body);
219
+ if (!parsed.success) {
220
+ return import_server.NextResponse.json(
221
+ {
222
+ ok: false,
223
+ message: parsed.error.issues[0].message
224
+ },
225
+ { status: 400 }
226
+ );
227
+ }
228
+ try {
229
+ const res = await (0, import_portal_sdk_core.createSession)(parsed.data, {
230
+ headers: {
231
+ "Platform-Code": PLATFORM_CODE
232
+ },
233
+ environment: ENVIRONMENT
234
+ });
235
+ if (res.authenticator) {
236
+ return import_server.NextResponse.json({
237
+ ok: true,
238
+ data: res.authenticator
239
+ });
240
+ }
241
+ const response = import_server.NextResponse.json(
242
+ { ok: true, data: null },
243
+ { status: 201 }
244
+ );
245
+ response.cookies.set(ACCESS_TOKEN_COOKIE_NAME, res.accessToken, {
246
+ expires: addMinutes(/* @__PURE__ */ new Date(), 9),
247
+ httpOnly: true,
248
+ sameSite: "strict"
249
+ });
250
+ response.cookies.set(REFRESH_TOKEN_COOKIE_NAME, res.refreshToken, {
251
+ expires: subMinutes(addDays(/* @__PURE__ */ new Date(), 30), 1),
252
+ httpOnly: true,
253
+ sameSite: "strict"
254
+ });
255
+ return response;
256
+ } catch {
257
+ return import_server.NextResponse.json(
258
+ {
259
+ ok: false,
260
+ message: "Unauthorized"
261
+ },
262
+ { status: 401 }
263
+ );
264
+ }
265
+ }
266
+ if (path === "authenticate") {
267
+ const body = await request.json();
268
+ const parsed = AuthenticateDefinition.safeParse(body);
269
+ if (!parsed.success) {
270
+ return import_server.NextResponse.json(
271
+ {
272
+ ok: false,
273
+ message: parsed.error.issues[0].message
274
+ },
275
+ { status: 400 }
276
+ );
277
+ }
278
+ try {
279
+ const res = await (0, import_portal_sdk_core.authenticate)(parsed.data, {
280
+ headers: {
281
+ "Platform-Code": PLATFORM_CODE
282
+ },
283
+ environment: ENVIRONMENT
284
+ });
285
+ const response = import_server.NextResponse.json({ ok: true }, { status: 201 });
286
+ response.cookies.set(ACCESS_TOKEN_COOKIE_NAME, res.accessToken, {
287
+ expires: addMinutes(/* @__PURE__ */ new Date(), 9),
288
+ httpOnly: true
289
+ });
290
+ response.cookies.set(REFRESH_TOKEN_COOKIE_NAME, res.refreshToken, {
291
+ expires: subMinutes(addDays(/* @__PURE__ */ new Date(), 30), 1),
292
+ httpOnly: true
293
+ });
294
+ return response;
295
+ } catch {
296
+ return import_server.NextResponse.json(
297
+ {
298
+ ok: false,
299
+ message: "Unauthorized"
300
+ },
301
+ { status: 401 }
302
+ );
303
+ }
304
+ }
305
+ return import_server.NextResponse.json(
306
+ {
307
+ ok: false,
308
+ message: "Not found"
309
+ },
310
+ { status: 404 }
311
+ );
312
+ };
313
+ // Annotate the CommonJS export names for ESM import in node:
314
+ 0 && (module.exports = {
315
+ DELETE,
316
+ GET,
317
+ POST
318
+ });
319
+ //# sourceMappingURL=handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/handlers.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constants.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructFrom.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/toDate.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addDays.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addMinutes.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subMinutes.js","../src/lib/constants/index.ts"],"sourcesContent":["import {\r\n authenticate,\r\n createSession,\r\n destroySession,\r\n refreshSession,\r\n type Authenticator,\r\n} from '@opexa/portal-sdk-core';\r\nimport { addDays, addMinutes, subMinutes } from 'date-fns';\r\nimport { NextRequest, NextResponse } from 'next/server';\r\nimport { z } from 'zod';\r\nimport {\r\n ACCESS_TOKEN_COOKIE_NAME,\r\n ENVIRONMENT,\r\n PLATFORM_CODE,\r\n REFRESH_TOKEN_COOKIE_NAME,\r\n} from './constants';\r\nimport type { ApiResponse } from './types';\r\n\r\nconst CreateSessionDefinition = z.union([\r\n z.object({\r\n type: z.literal('NAME_AND_PASSWORD'),\r\n name: z.string(),\r\n password: z.string(),\r\n }),\r\n z.object({\r\n type: z.literal('MOBILE_NUMBER'),\r\n mobileNumber: z.string(),\r\n verificationCode: z.string(),\r\n }),\r\n z.object({\r\n type: z.literal('MAYA'),\r\n session: z.string(),\r\n }),\r\n z.object({\r\n type: z.union([z.literal('SOCIALS'), z.literal('CABINET'), z.literal('SINGLE_USE_TOKEN')]),\r\n token: z.string(),\r\n }),\r\n]);\r\n\r\nconst AuthenticateDefinition = z.object({\r\n type: z.literal('SECURITY_QUESTION'),\r\n token: z.string(),\r\n secretAnswer: z.string(),\r\n});\r\n\r\ntype GetSessionResponse =\r\n | {\r\n status: 'authenticated';\r\n token: string;\r\n }\r\n | {\r\n status: 'unauthenticated';\r\n };\r\n\r\nexport const GET = async (\r\n request: NextRequest,\r\n { params }: { params: Promise<{ auth: string[] }> },\r\n) => {\r\n const { auth } = await params;\r\n const path = auth[0];\r\n\r\n /*\r\n *\r\n * GET -> /api/sessions\r\n *\r\n */\r\n\r\n if (path === 'sessions') {\r\n const accessToken = request.cookies.get(ACCESS_TOKEN_COOKIE_NAME)?.value;\r\n const refreshToken = request.cookies.get(REFRESH_TOKEN_COOKIE_NAME)?.value;\r\n\r\n if (!refreshToken) {\r\n const response = NextResponse.json<ApiResponse<GetSessionResponse>>({\r\n ok: true,\r\n data: {\r\n status: 'unauthenticated',\r\n },\r\n });\r\n\r\n response.cookies.delete(ACCESS_TOKEN_COOKIE_NAME);\r\n response.cookies.delete(REFRESH_TOKEN_COOKIE_NAME);\r\n\r\n return response;\r\n }\r\n\r\n if (!accessToken) {\r\n try {\r\n const data = await refreshSession({\r\n headers: {\r\n Authorization: `Bearer ${refreshToken}`,\r\n },\r\n environment: ENVIRONMENT,\r\n });\r\n\r\n const response = NextResponse.json<ApiResponse<GetSessionResponse>>({\r\n ok: true,\r\n data: {\r\n status: 'authenticated',\r\n token: data.accessToken,\r\n },\r\n });\r\n\r\n response.cookies.set(ACCESS_TOKEN_COOKIE_NAME, data.accessToken, {\r\n expires: addMinutes(new Date(), 9),\r\n httpOnly: true,\r\n sameSite: 'strict',\r\n });\r\n\r\n return response;\r\n } catch {\r\n const response = NextResponse.json<ApiResponse<GetSessionResponse>>({\r\n ok: true,\r\n data: {\r\n status: 'unauthenticated',\r\n },\r\n });\r\n\r\n response.cookies.delete(REFRESH_TOKEN_COOKIE_NAME);\r\n\r\n return response;\r\n }\r\n }\r\n\r\n return NextResponse.json<ApiResponse<GetSessionResponse>>({\r\n ok: true,\r\n data: {\r\n status: 'authenticated',\r\n token: accessToken,\r\n },\r\n });\r\n }\r\n\r\n return NextResponse.json<ApiResponse>(\r\n {\r\n ok: false,\r\n message: 'Not found',\r\n },\r\n { status: 404 },\r\n );\r\n};\r\n\r\nexport const DELETE = async (\r\n request: NextRequest,\r\n { params }: { params: Promise<{ auth: string[] }> },\r\n) => {\r\n const { auth } = await params;\r\n const path = auth[0];\r\n\r\n /*\r\n *\r\n * DELETE -> /api/sessions\r\n *\r\n */\r\n\r\n if (path === 'sessions') {\r\n const accessToken = request.cookies.get(ACCESS_TOKEN_COOKIE_NAME)?.value;\r\n\r\n if (accessToken) {\r\n await destroySession({\r\n headers: {\r\n Authorization: `Bearer ${accessToken}`,\r\n },\r\n environment: ENVIRONMENT,\r\n });\r\n }\r\n\r\n const response = NextResponse.json<ApiResponse>({\r\n ok: true,\r\n });\r\n\r\n response.cookies.delete(ACCESS_TOKEN_COOKIE_NAME);\r\n response.cookies.delete(REFRESH_TOKEN_COOKIE_NAME);\r\n\r\n return response;\r\n }\r\n\r\n return NextResponse.json<ApiResponse>(\r\n {\r\n ok: false,\r\n message: 'Not found',\r\n },\r\n { status: 404 },\r\n );\r\n};\r\n\r\nexport const POST = async (\r\n request: NextRequest,\r\n { params }: { params: Promise<{ auth: string[] }> },\r\n): Promise<NextResponse> => {\r\n const { auth } = await params;\r\n const path = auth[0];\r\n\r\n /*\r\n *\r\n * POST -> /api/sessions\r\n *\r\n */\r\n\r\n if (path === 'sessions') {\r\n const body = await request.json();\r\n const parsed = CreateSessionDefinition.safeParse(body);\r\n\r\n if (!parsed.success) {\r\n return NextResponse.json<ApiResponse>(\r\n {\r\n ok: false,\r\n message: parsed.error.issues[0].message,\r\n },\r\n { status: 400 },\r\n );\r\n }\r\n\r\n try {\r\n const res = await createSession(parsed.data, {\r\n headers: {\r\n 'Platform-Code': PLATFORM_CODE,\r\n },\r\n environment: ENVIRONMENT,\r\n });\r\n\r\n if (res.authenticator) {\r\n return NextResponse.json<ApiResponse<Authenticator | null>>({\r\n ok: true,\r\n data: res.authenticator,\r\n });\r\n }\r\n\r\n const response = NextResponse.json<ApiResponse<Authenticator | null>>(\r\n { ok: true, data: null },\r\n { status: 201 },\r\n );\r\n\r\n response.cookies.set(ACCESS_TOKEN_COOKIE_NAME, res.accessToken, {\r\n expires: addMinutes(new Date(), 9),\r\n httpOnly: true,\r\n sameSite: 'strict',\r\n });\r\n\r\n response.cookies.set(REFRESH_TOKEN_COOKIE_NAME, res.refreshToken, {\r\n expires: subMinutes(addDays(new Date(), 30), 1),\r\n httpOnly: true,\r\n sameSite: 'strict',\r\n });\r\n\r\n return response;\r\n } catch {\r\n return NextResponse.json<ApiResponse>(\r\n {\r\n ok: false,\r\n message: 'Unauthorized',\r\n },\r\n { status: 401 },\r\n );\r\n }\r\n }\r\n\r\n /*\r\n *\r\n * POST -> /api/authenticate\r\n *\r\n */\r\n\r\n if (path === 'authenticate') {\r\n const body = await request.json();\r\n const parsed = AuthenticateDefinition.safeParse(body);\r\n\r\n if (!parsed.success) {\r\n return NextResponse.json<ApiResponse>(\r\n {\r\n ok: false,\r\n message: parsed.error.issues[0].message,\r\n },\r\n { status: 400 },\r\n );\r\n }\r\n\r\n try {\r\n const res = await authenticate(parsed.data, {\r\n headers: {\r\n 'Platform-Code': PLATFORM_CODE,\r\n },\r\n environment: ENVIRONMENT,\r\n });\r\n\r\n const response = NextResponse.json<ApiResponse>({ ok: true }, { status: 201 });\r\n\r\n response.cookies.set(ACCESS_TOKEN_COOKIE_NAME, res.accessToken, {\r\n expires: addMinutes(new Date(), 9),\r\n httpOnly: true,\r\n });\r\n\r\n response.cookies.set(REFRESH_TOKEN_COOKIE_NAME, res.refreshToken, {\r\n expires: subMinutes(addDays(new Date(), 30), 1),\r\n httpOnly: true,\r\n });\r\n\r\n return response;\r\n } catch {\r\n return NextResponse.json<ApiResponse>(\r\n {\r\n ok: false,\r\n message: 'Unauthorized',\r\n },\r\n { status: 401 },\r\n );\r\n }\r\n }\r\n\r\n return NextResponse.json<ApiResponse>(\r\n {\r\n ok: false,\r\n message: 'Not found',\r\n },\r\n { status: 404 },\r\n );\r\n};\r\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate<DateType extends Date>(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addDays} function options.\n */\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n * @param options - An object with options\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n if (!amount) return _date;\n\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","import { millisecondsInMinute } from \"./constants.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addMinutes} function options.\n */\n\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of minutes to be added.\n * @param options - An object with options\n *\n * @returns The new date with the minutes added\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\nexport function addMinutes(date, amount, options) {\n const _date = toDate(date, options?.in);\n _date.setTime(_date.getTime() + amount * millisecondsInMinute);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addMinutes;\n","import { addMinutes } from \"./addMinutes.js\";\n\n/**\n * The {@link subMinutes} function options.\n */\n\n/**\n * @name subMinutes\n * @category Minute Helpers\n * @summary Subtract the specified number of minutes from the given date.\n *\n * @description\n * Subtract the specified number of minutes from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of minutes to be subtracted.\n * @param options - An object with options\n *\n * @returns The new date with the minutes subtracted\n *\n * @example\n * // Subtract 30 minutes from 10 July 2014 12:00:00:\n * const result = subMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 11:30:00\n */\nexport function subMinutes(date, amount, options) {\n return addMinutes(date, -amount, options);\n}\n\n// Fallback for modularized imports:\nexport default subMinutes;\n","import { z } from 'zod';\r\n\r\nexport const SITE_ID = z\r\n .string()\r\n .min(1, 'Environment variable \"NEXT_PUBLIC_SITE_ID\" must be 1 or more characters')\r\n .max(32, 'Environment variable \"NEXT_PUBLIC_SITE_ID\" must not be more than 32 characters')\r\n .trim()\r\n .parse(process.env.NEXT_PUBLIC_SITE_ID);\r\n\r\nexport const PLATFORM_ID = z\r\n .string()\r\n .min(1, 'Environment variable \"NEXT_PUBLIC_PLATFORM_ID\" must be 1 or more characters')\r\n .max(32, 'Environment variable \"NEXT_PUBLIC_PLATFORM_ID\" must not be more than 32 characters')\r\n .trim()\r\n .parse(process.env.NEXT_PUBLIC_PLATFORM_ID);\r\n\r\nexport const PLATFORM_CODE = z\r\n .string()\r\n .min(4, 'Environment variable \"NEXT_PUBLIC_PLATFORM_CODE\" must be at least 4 characters')\r\n .max(8, 'Environment variable \"NEXT_PUBLIC_PLATFORM_CODE\" must not be more than 8 characters')\r\n .trim()\r\n .parse(process.env.NEXT_PUBLIC_PLATFORM_CODE);\r\n\r\nexport const ENVIRONMENT = z\r\n .enum(['production', 'development'])\r\n .catch('development')\r\n .parse(process.env.NEXT_PUBLIC_ENVIRONMENT);\r\n\r\nexport const BYPASS_RECAPTCHA = z\r\n .any()\r\n .transform(Boolean)\r\n .catch(false)\r\n .parse(process.env.NEXT_PUBLIC_BYPASS_RECAPTCHA);\r\n\r\nexport const ACCESS_TOKEN_COOKIE_NAME: string = 'WebPortalAuthAccessToken';\r\nexport const REFRESH_TOKEN_COOKIE_NAME: string = 'WebPortalAuthRefreshToken';\r\n"],"mappings":"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","names":["import_zod"]}