@lyxa.ai/core 1.1.45 → 1.1.46
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/libraries/mongo/models/user.model.d.ts +1 -1
- package/dist/libraries/trpc/context.d.ts +2 -3
- package/dist/libraries/trpc/context.js +1 -4
- package/dist/libraries/trpc/context.js.map +1 -1
- package/dist/types/README.md +1 -1
- package/dist/types/package.json +1 -1
- package/dist/types/utilities/validation/common-validation.d.ts +106 -31
- package/dist/types/utilities/validation/common-validation.js.map +1 -1
- package/dist/types/utilities/validation/global-validation.d.ts +38 -14
- package/dist/utilities/id-generator.js +53 -38
- package/dist/utilities/id-generator.js.map +1 -1
- package/dist/utilities/validation/common-validation.d.ts +106 -31
- package/dist/utilities/validation/common-validation.js.map +1 -1
- package/dist/utilities/validation/global-validation.d.ts +38 -14
- package/package.json +1 -1
|
@@ -2,30 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateId = generateId;
|
|
4
4
|
const enum_1 = require("./enum");
|
|
5
|
-
function
|
|
6
|
-
const match = core.match(/^([A-Z]+)(\d*)$/);
|
|
7
|
-
if (!match)
|
|
8
|
-
throw new Error(`Invalid core format: ${core}`);
|
|
9
|
-
let letters = match[1];
|
|
10
|
-
let numbers = match[2] || '1';
|
|
11
|
-
let numberLength = numbers.length;
|
|
12
|
-
let number = parseInt(numbers, 10);
|
|
13
|
-
const maxNumber = parseInt('9'.repeat(numberLength), 10);
|
|
14
|
-
const isMaxCore = letters.split('').every(c => c === 'Z') && number === maxNumber;
|
|
15
|
-
if (isMaxCore) {
|
|
16
|
-
numberLength += 1;
|
|
17
|
-
number = 1;
|
|
18
|
-
letters = 'A'.repeat(letters.length);
|
|
19
|
-
return `${letters}${number.toString().padStart(numberLength, '0')}`;
|
|
20
|
-
}
|
|
21
|
-
number++;
|
|
22
|
-
if (number > maxNumber) {
|
|
23
|
-
number = 1;
|
|
24
|
-
letters = incrementLettersLevel(letters);
|
|
25
|
-
}
|
|
26
|
-
return `${letters}${number.toString().padStart(numberLength, '0')}`;
|
|
27
|
-
}
|
|
28
|
-
function incrementLettersLevel(letters) {
|
|
5
|
+
function incrementLetters(letters) {
|
|
29
6
|
const chars = letters.split('');
|
|
30
7
|
let carry = true;
|
|
31
8
|
for (let i = chars.length - 1; i >= 0 && carry; i--) {
|
|
@@ -38,10 +15,49 @@ function incrementLettersLevel(letters) {
|
|
|
38
15
|
carry = false;
|
|
39
16
|
}
|
|
40
17
|
}
|
|
41
|
-
if (carry)
|
|
18
|
+
if (carry) {
|
|
42
19
|
return 'A' + chars.join('');
|
|
20
|
+
}
|
|
43
21
|
return chars.join('');
|
|
44
22
|
}
|
|
23
|
+
function getNextCore(core) {
|
|
24
|
+
const totalLength = core.length;
|
|
25
|
+
const match = core.match(/^([A-Z]+)(\d*)$/);
|
|
26
|
+
if (!match)
|
|
27
|
+
throw new Error(`Invalid core format: ${core}`);
|
|
28
|
+
let letters = match[1];
|
|
29
|
+
let numbers = match[2];
|
|
30
|
+
if (numbers === '') {
|
|
31
|
+
if (letters === 'Z'.repeat(totalLength)) {
|
|
32
|
+
return 'A' + '0'.repeat(totalLength - 1) + '1';
|
|
33
|
+
}
|
|
34
|
+
return incrementLetters(letters);
|
|
35
|
+
}
|
|
36
|
+
let numValue = parseInt(numbers, 10);
|
|
37
|
+
const numLength = numbers.length;
|
|
38
|
+
const maxNum = Math.pow(10, numLength) - 1;
|
|
39
|
+
numValue++;
|
|
40
|
+
if (numValue > maxNum) {
|
|
41
|
+
numValue = 1;
|
|
42
|
+
const oldLettersLength = letters.length;
|
|
43
|
+
letters = incrementLetters(letters);
|
|
44
|
+
const newLettersLength = letters.length;
|
|
45
|
+
if (newLettersLength > oldLettersLength) {
|
|
46
|
+
const letterExpansion = newLettersLength - oldLettersLength;
|
|
47
|
+
const newNumLength = numLength - letterExpansion;
|
|
48
|
+
if (newNumLength <= 0) {
|
|
49
|
+
if (newLettersLength === totalLength) {
|
|
50
|
+
return letters;
|
|
51
|
+
}
|
|
52
|
+
if (newLettersLength > totalLength) {
|
|
53
|
+
return 'A'.repeat(totalLength);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return letters + '1'.padStart(newNumLength, '0');
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return letters + numValue.toString().padStart(numLength, '0');
|
|
60
|
+
}
|
|
45
61
|
function getPrefixForType(counterType) {
|
|
46
62
|
const prefixMap = {
|
|
47
63
|
[enum_1.CounterType.USER]: 'U',
|
|
@@ -51,22 +67,21 @@ function getPrefixForType(counterType) {
|
|
|
51
67
|
[enum_1.CounterType.ITEM]: 'I',
|
|
52
68
|
[enum_1.CounterType.TRANSACTION]: 'T',
|
|
53
69
|
};
|
|
54
|
-
return prefixMap[counterType];
|
|
70
|
+
return prefixMap[counterType] || 'X';
|
|
55
71
|
}
|
|
56
72
|
async function generateId(CounterModel, counterType) {
|
|
57
73
|
const prefix = getPrefixForType(counterType);
|
|
58
74
|
const initialCore = 'A0001';
|
|
59
|
-
let
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
70
|
-
return `${prefix}${currentCore}`;
|
|
75
|
+
let currentDoc = await CounterModel.findOneAndUpdate({ counterType }, {
|
|
76
|
+
$setOnInsert: { core: initialCore },
|
|
77
|
+
}, {
|
|
78
|
+
upsert: true,
|
|
79
|
+
new: true,
|
|
80
|
+
setDefaultsOnInsert: true,
|
|
81
|
+
}).lean();
|
|
82
|
+
const coreToIssue = currentDoc.core;
|
|
83
|
+
const nextCore = getNextCore(coreToIssue);
|
|
84
|
+
await CounterModel.findOneAndUpdate({ counterType }, { $set: { core: nextCore } }, { new: false }).lean();
|
|
85
|
+
return `${prefix}${coreToIssue}`;
|
|
71
86
|
}
|
|
72
87
|
//# sourceMappingURL=id-generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id-generator.js","sourceRoot":"/","sources":["utilities/id-generator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"id-generator.js","sourceRoot":"/","sources":["utilities/id-generator.ts"],"names":[],"mappings":"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","sourcesContent":["import { CounterType } from './enum';\n\n\nfunction incrementLetters(letters: string): string {\n\tconst chars = letters.split('');\n\tlet carry = true;\n\n\t// Increment from right to left\n\tfor (let i = chars.length - 1; i >= 0 && carry; i--) {\n\t\tif (chars[i] === 'Z') {\n\t\t\tchars[i] = 'A';\n\t\t\tcarry = true; // Carry continues\n\t\t} else {\n\t\t\tchars[i] = String.fromCharCode(chars[i].charCodeAt(0) + 1);\n\t\t\tcarry = false;\n\t\t}\n\t}\n\n\t// If still carrying (e.g., 'Z' or 'ZZZ'), add a new letter 'A'\n\tif (carry) {\n\t\treturn 'A' + chars.join('');\n\t}\n\n\treturn chars.join('');\n}\n\n/**\n * Get the next core value following your leveling rules.\n * Example: A0001 → ... → Z9999 → AA001 → ... → ZZZZZ → A00001\n */\nfunction getNextCore(core: string): string {\n\tconst totalLength = core.length;\n\n\t// Parse as letters + optional numbers\n\tconst match = core.match(/^([A-Z]+)(\\d*)$/);\n\tif (!match) throw new Error(`Invalid core format: ${core}`);\n\n\tlet letters = match[1];\n\tlet numbers = match[2];\n\n\t// --- SCENARIO 1: All Letters (e.g., AAAAA or ZZZZZ) ---\n\tif (numbers === '') {\n\t\t// If it's the max combination for this length (e.g., ZZZZZ)\n\t\tif (letters === 'Z'.repeat(totalLength)) {\n\t\t\t// FIX: ZZZZZ (Length 5) → A00001 (Length 6).\n\t\t\t// Need (CurrentLength - 1) zeros before the final '1'.\n\t\t\t// totalLength is 5, so we need 4 zeros.\n\t\t\treturn 'A' + '0'.repeat(totalLength - 1) + '1';\n\t\t}\n\n\t\t// Otherwise, it's just an all-letter increment (e.g., AAAAA → AAAAB)\n\t\treturn incrementLetters(letters);\n\t}\n\n\t// --- SCENARIO 2: Letters + Numbers (e.g., A0001) ---\n\n\tlet numValue = parseInt(numbers, 10);\n\tconst numLength = numbers.length;\n\t// const maxNum = parseInt('9'.repeat(numLength), 10);\n\tconst maxNum = Math.pow(10, numLength) - 1;\n\n\t// 1. Increment number first\n\tnumValue++;\n\n\t// 2. If number overflows, reset and increment letters\n\tif (numValue > maxNum) {\n\t\tnumValue = 1;\n\n\t\tconst oldLettersLength = letters.length;\n\t\tletters = incrementLetters(letters);\n\t\tconst newLettersLength = letters.length;\n\n\t\t// Check if the letter increment caused the letter length to expand (e.g., Z → AA)\n\t\tif (newLettersLength > oldLettersLength) {\n\t\t\t// The number of available digits must decrease to maintain total length\n\t\t\tconst letterExpansion = newLettersLength - oldLettersLength;\n\t\t\tconst newNumLength = numLength - letterExpansion;\n\n\t\t\t// If the number of digits is reduced to 0 or less (e.g., ZZZZ9 → AAAAA)\n\t\t\tif (newNumLength <= 0) {\n\t\t\t\tif (newLettersLength === totalLength) {\n\t\t\t\t\treturn letters; // Return the all-letter core (e.g., AAAAA)\n\t\t\t\t}\n\n\t\t\t\tif (newLettersLength > totalLength) {\n\t\t\t\t\treturn 'A'.repeat(totalLength);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If new number length is positive, pad the number (which is currently 1)\n\t\t\treturn letters + '1'.padStart(newNumLength, '0');\n\t\t}\n\t}\n\n\t// 3. Normal increment (A0001 → A0002) or letter carry-over without expansion (AA999 → AB001)\n\treturn letters + numValue.toString().padStart(numLength, '0');\n}\n\n// ----------------------------------------------------------------------\n\n/**\n * Get prefix for a counter type (Robust version)\n */\nfunction getPrefixForType(counterType: CounterType): string {\n\tconst prefixMap: Record<string, string> = {\n\t\t[CounterType.USER]: 'U',\n\t\t[CounterType.RIDER]: 'R',\n\t\t[CounterType.PARENT]: 'P',\n\t\t[CounterType.SHOP]: 'S',\n\t\t[CounterType.ITEM]: 'I',\n\t\t[CounterType.TRANSACTION]: 'T',\n\t};\n\t// Ensure a string is always returned\n\treturn prefixMap[counterType] || 'X';\n}\n\n\nexport async function generateId(CounterModel: any, counterType: CounterType): Promise<string> {\n\tconst prefix = getPrefixForType(counterType);\n\tconst initialCore = 'A0001';\n\n\t// 1. Fetch the current state OR initialize it.\n\tlet currentDoc = await CounterModel.findOneAndUpdate(\n\t\t{ counterType },\n\t\t{\n\t\t\t$setOnInsert: { core: initialCore },\n\t\t},\n\t\t{\n\t\t\tupsert: true,\n\t\t\tnew: true, // Returns the current DB state after potential insertion\n\t\t\tsetDefaultsOnInsert: true,\n\t\t}\n\t).lean();\n\n\tconst coreToIssue = currentDoc.core;\n\tconst nextCore = getNextCore(coreToIssue);\n\n\t// 2. Unconditionally update the counter to the next value.\n\tawait CounterModel.findOneAndUpdate({ counterType }, { $set: { core: nextCore } }, { new: false }).lean();\n\n\t// 3. Return the ID based on the value read in Step 1.\n\treturn `${prefix}${coreToIssue}`;\n}\n\n// ----------------------------------------------------------------------\n\n"]}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { DTO } from './global-validation';
|
|
3
3
|
import { ActionType, GeoLocationType, HolidayWorkStatus, WeekDay, WorkStatus } from '../enum';
|
|
4
|
-
import { mongoose } from '@typegoose/typegoose';
|
|
5
4
|
export declare const FilterSchema: z.ZodOptional<z.ZodObject<{
|
|
6
5
|
size: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
7
6
|
page: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
@@ -62,7 +61,7 @@ export declare const AddressSchema: z.ZodObject<{
|
|
|
62
61
|
}>;
|
|
63
62
|
latitude: z.ZodNumber;
|
|
64
63
|
longitude: z.ZodNumber;
|
|
65
|
-
zone: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>>;
|
|
64
|
+
zone: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, import("mongoose").Types.ObjectId, string>, z.ZodType<import("mongoose").Types.ObjectId, z.ZodTypeDef, import("mongoose").Types.ObjectId>]>>;
|
|
66
65
|
}, "strip", z.ZodTypeAny, {
|
|
67
66
|
location: {
|
|
68
67
|
type: GeoLocationType;
|
|
@@ -75,7 +74,7 @@ export declare const AddressSchema: z.ZodObject<{
|
|
|
75
74
|
longitude: number;
|
|
76
75
|
state?: string | undefined;
|
|
77
76
|
description?: string | undefined;
|
|
78
|
-
zone?: mongoose.Types.ObjectId | undefined;
|
|
77
|
+
zone?: import("mongoose").Types.ObjectId | undefined;
|
|
79
78
|
}, {
|
|
80
79
|
location: {
|
|
81
80
|
coordinates: [number, number];
|
|
@@ -88,7 +87,7 @@ export declare const AddressSchema: z.ZodObject<{
|
|
|
88
87
|
longitude: number;
|
|
89
88
|
state?: string | undefined;
|
|
90
89
|
description?: string | undefined;
|
|
91
|
-
zone?: string | mongoose.Types.ObjectId | undefined;
|
|
90
|
+
zone?: string | import("mongoose").Types.ObjectId | undefined;
|
|
92
91
|
}>;
|
|
93
92
|
export type AddressDTO = DTO<typeof AddressSchema>;
|
|
94
93
|
export declare const UserAddressSchema: z.ZodObject<{
|
|
@@ -109,7 +108,7 @@ export declare const UserAddressSchema: z.ZodObject<{
|
|
|
109
108
|
}>;
|
|
110
109
|
latitude: z.ZodNumber;
|
|
111
110
|
longitude: z.ZodNumber;
|
|
112
|
-
zone: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>>;
|
|
111
|
+
zone: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, import("mongoose").Types.ObjectId, string>, z.ZodType<import("mongoose").Types.ObjectId, z.ZodTypeDef, import("mongoose").Types.ObjectId>]>>;
|
|
113
112
|
} & {
|
|
114
113
|
addressLabel: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
|
115
114
|
apartment: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
|
@@ -131,7 +130,7 @@ export declare const UserAddressSchema: z.ZodObject<{
|
|
|
131
130
|
buildingName: string;
|
|
132
131
|
state?: string | undefined;
|
|
133
132
|
description?: string | undefined;
|
|
134
|
-
zone?: mongoose.Types.ObjectId | undefined;
|
|
133
|
+
zone?: import("mongoose").Types.ObjectId | undefined;
|
|
135
134
|
deliveryOption?: string | undefined;
|
|
136
135
|
instructions?: string | undefined;
|
|
137
136
|
}, {
|
|
@@ -149,7 +148,7 @@ export declare const UserAddressSchema: z.ZodObject<{
|
|
|
149
148
|
buildingName: string;
|
|
150
149
|
state?: string | undefined;
|
|
151
150
|
description?: string | undefined;
|
|
152
|
-
zone?: string | mongoose.Types.ObjectId | undefined;
|
|
151
|
+
zone?: string | import("mongoose").Types.ObjectId | undefined;
|
|
153
152
|
deliveryOption?: string | undefined;
|
|
154
153
|
instructions?: string | undefined;
|
|
155
154
|
}>;
|
|
@@ -172,7 +171,7 @@ export declare const RegularOrderAddressSchema: z.ZodObject<{
|
|
|
172
171
|
}>;
|
|
173
172
|
latitude: z.ZodNumber;
|
|
174
173
|
longitude: z.ZodNumber;
|
|
175
|
-
zone: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>>;
|
|
174
|
+
zone: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, import("mongoose").Types.ObjectId, string>, z.ZodType<import("mongoose").Types.ObjectId, z.ZodTypeDef, import("mongoose").Types.ObjectId>]>>;
|
|
176
175
|
} & {
|
|
177
176
|
addressLabel: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
|
178
177
|
apartment: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
|
@@ -180,7 +179,7 @@ export declare const RegularOrderAddressSchema: z.ZodObject<{
|
|
|
180
179
|
deliveryOption: z.ZodOptional<z.ZodString> | z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
|
|
181
180
|
instructions: z.ZodOptional<z.ZodString> | z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
|
|
182
181
|
} & {
|
|
183
|
-
_id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
|
|
182
|
+
_id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, import("mongoose").Types.ObjectId, string>, z.ZodType<import("mongoose").Types.ObjectId, z.ZodTypeDef, import("mongoose").Types.ObjectId>]>;
|
|
184
183
|
}, "strip", z.ZodTypeAny, {
|
|
185
184
|
location: {
|
|
186
185
|
type: GeoLocationType;
|
|
@@ -188,7 +187,7 @@ export declare const RegularOrderAddressSchema: z.ZodObject<{
|
|
|
188
187
|
};
|
|
189
188
|
address: string;
|
|
190
189
|
country: string;
|
|
191
|
-
_id: mongoose.Types.ObjectId;
|
|
190
|
+
_id: import("mongoose").Types.ObjectId;
|
|
192
191
|
city: string;
|
|
193
192
|
latitude: number;
|
|
194
193
|
longitude: number;
|
|
@@ -197,7 +196,7 @@ export declare const RegularOrderAddressSchema: z.ZodObject<{
|
|
|
197
196
|
buildingName: string;
|
|
198
197
|
state?: string | undefined;
|
|
199
198
|
description?: string | undefined;
|
|
200
|
-
zone?: mongoose.Types.ObjectId | undefined;
|
|
199
|
+
zone?: import("mongoose").Types.ObjectId | undefined;
|
|
201
200
|
deliveryOption?: string | undefined;
|
|
202
201
|
instructions?: string | undefined;
|
|
203
202
|
}, {
|
|
@@ -207,7 +206,7 @@ export declare const RegularOrderAddressSchema: z.ZodObject<{
|
|
|
207
206
|
};
|
|
208
207
|
address: string;
|
|
209
208
|
country: string;
|
|
210
|
-
_id: string | mongoose.Types.ObjectId;
|
|
209
|
+
_id: string | import("mongoose").Types.ObjectId;
|
|
211
210
|
city: string;
|
|
212
211
|
latitude: number;
|
|
213
212
|
longitude: number;
|
|
@@ -216,7 +215,7 @@ export declare const RegularOrderAddressSchema: z.ZodObject<{
|
|
|
216
215
|
buildingName: string;
|
|
217
216
|
state?: string | undefined;
|
|
218
217
|
description?: string | undefined;
|
|
219
|
-
zone?: string | mongoose.Types.ObjectId | undefined;
|
|
218
|
+
zone?: string | import("mongoose").Types.ObjectId | undefined;
|
|
220
219
|
deliveryOption?: string | undefined;
|
|
221
220
|
instructions?: string | undefined;
|
|
222
221
|
}>;
|
|
@@ -239,7 +238,7 @@ export declare const CourierAddressSchema: z.ZodObject<{
|
|
|
239
238
|
}>;
|
|
240
239
|
latitude: z.ZodNumber;
|
|
241
240
|
longitude: z.ZodNumber;
|
|
242
|
-
zone: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>>;
|
|
241
|
+
zone: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, import("mongoose").Types.ObjectId, string>, z.ZodType<import("mongoose").Types.ObjectId, z.ZodTypeDef, import("mongoose").Types.ObjectId>]>>;
|
|
243
242
|
} & {
|
|
244
243
|
addressLabel: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
|
245
244
|
apartment: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
|
@@ -266,7 +265,7 @@ export declare const CourierAddressSchema: z.ZodObject<{
|
|
|
266
265
|
phoneNumber: string;
|
|
267
266
|
state?: string | undefined;
|
|
268
267
|
description?: string | undefined;
|
|
269
|
-
zone?: mongoose.Types.ObjectId | undefined;
|
|
268
|
+
zone?: import("mongoose").Types.ObjectId | undefined;
|
|
270
269
|
deliveryOption?: string | undefined;
|
|
271
270
|
instructions?: string | undefined;
|
|
272
271
|
}, {
|
|
@@ -286,7 +285,7 @@ export declare const CourierAddressSchema: z.ZodObject<{
|
|
|
286
285
|
phoneNumber: string;
|
|
287
286
|
state?: string | undefined;
|
|
288
287
|
description?: string | undefined;
|
|
289
|
-
zone?: string | mongoose.Types.ObjectId | undefined;
|
|
288
|
+
zone?: string | import("mongoose").Types.ObjectId | undefined;
|
|
290
289
|
deliveryOption?: string | undefined;
|
|
291
290
|
instructions?: string | undefined;
|
|
292
291
|
}>;
|
|
@@ -647,7 +646,7 @@ export declare const createResponseSchema: <T>(schema: z.ZodSchema<T>) => z.ZodO
|
|
|
647
646
|
totalPages: number;
|
|
648
647
|
} | undefined;
|
|
649
648
|
}>, z.ZodType<T, z.ZodTypeDef, T>]>>;
|
|
650
|
-
}>, any> extends infer T_1 ? { [k in keyof T_1]:
|
|
649
|
+
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
|
|
651
650
|
success: z.ZodBoolean;
|
|
652
651
|
message: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
|
653
652
|
data: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
|
|
@@ -685,7 +684,83 @@ export declare const createResponseSchema: <T>(schema: z.ZodSchema<T>) => z.ZodO
|
|
|
685
684
|
totalPages: number;
|
|
686
685
|
} | undefined;
|
|
687
686
|
}>, z.ZodType<T, z.ZodTypeDef, T>]>>;
|
|
688
|
-
}>
|
|
687
|
+
}>, any>[k]; } : never, z.baseObjectInputType<{
|
|
688
|
+
success: z.ZodBoolean;
|
|
689
|
+
message: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
|
690
|
+
data: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
|
|
691
|
+
metadata: z.ZodOptional<z.ZodObject<{
|
|
692
|
+
page: z.ZodNumber;
|
|
693
|
+
size: z.ZodNumber;
|
|
694
|
+
totalElements: z.ZodNumber;
|
|
695
|
+
totalPages: z.ZodNumber;
|
|
696
|
+
}, "strip", z.ZodTypeAny, {
|
|
697
|
+
page: number;
|
|
698
|
+
size: number;
|
|
699
|
+
totalElements: number;
|
|
700
|
+
totalPages: number;
|
|
701
|
+
}, {
|
|
702
|
+
page: number;
|
|
703
|
+
size: number;
|
|
704
|
+
totalElements: number;
|
|
705
|
+
totalPages: number;
|
|
706
|
+
}>>;
|
|
707
|
+
documents: z.ZodArray<z.ZodType<T, z.ZodTypeDef, T>, "many">;
|
|
708
|
+
}, "strip", z.ZodTypeAny, {
|
|
709
|
+
documents: T[];
|
|
710
|
+
metadata?: {
|
|
711
|
+
page: number;
|
|
712
|
+
size: number;
|
|
713
|
+
totalElements: number;
|
|
714
|
+
totalPages: number;
|
|
715
|
+
} | undefined;
|
|
716
|
+
}, {
|
|
717
|
+
documents: T[];
|
|
718
|
+
metadata?: {
|
|
719
|
+
page: number;
|
|
720
|
+
size: number;
|
|
721
|
+
totalElements: number;
|
|
722
|
+
totalPages: number;
|
|
723
|
+
} | undefined;
|
|
724
|
+
}>, z.ZodType<T, z.ZodTypeDef, T>]>>;
|
|
725
|
+
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
|
|
726
|
+
success: z.ZodBoolean;
|
|
727
|
+
message: z.ZodString | z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
|
728
|
+
data: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
|
|
729
|
+
metadata: z.ZodOptional<z.ZodObject<{
|
|
730
|
+
page: z.ZodNumber;
|
|
731
|
+
size: z.ZodNumber;
|
|
732
|
+
totalElements: z.ZodNumber;
|
|
733
|
+
totalPages: z.ZodNumber;
|
|
734
|
+
}, "strip", z.ZodTypeAny, {
|
|
735
|
+
page: number;
|
|
736
|
+
size: number;
|
|
737
|
+
totalElements: number;
|
|
738
|
+
totalPages: number;
|
|
739
|
+
}, {
|
|
740
|
+
page: number;
|
|
741
|
+
size: number;
|
|
742
|
+
totalElements: number;
|
|
743
|
+
totalPages: number;
|
|
744
|
+
}>>;
|
|
745
|
+
documents: z.ZodArray<z.ZodType<T, z.ZodTypeDef, T>, "many">;
|
|
746
|
+
}, "strip", z.ZodTypeAny, {
|
|
747
|
+
documents: T[];
|
|
748
|
+
metadata?: {
|
|
749
|
+
page: number;
|
|
750
|
+
size: number;
|
|
751
|
+
totalElements: number;
|
|
752
|
+
totalPages: number;
|
|
753
|
+
} | undefined;
|
|
754
|
+
}, {
|
|
755
|
+
documents: T[];
|
|
756
|
+
metadata?: {
|
|
757
|
+
page: number;
|
|
758
|
+
size: number;
|
|
759
|
+
totalElements: number;
|
|
760
|
+
totalPages: number;
|
|
761
|
+
} | undefined;
|
|
762
|
+
}>, z.ZodType<T, z.ZodTypeDef, T>]>>;
|
|
763
|
+
}>[k_1]; } : never>;
|
|
689
764
|
export type PaginatedDTO<T> = {
|
|
690
765
|
metadata: DTO<typeof metadataSchema>;
|
|
691
766
|
documents: T[];
|
|
@@ -706,54 +781,54 @@ export declare const TokenSchema: z.ZodObject<{
|
|
|
706
781
|
refreshToken: string;
|
|
707
782
|
}>;
|
|
708
783
|
export declare const UpdateSortingOrderSchema: z.ZodObject<{
|
|
709
|
-
_id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
|
|
784
|
+
_id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, import("mongoose").Types.ObjectId, string>, z.ZodType<import("mongoose").Types.ObjectId, z.ZodTypeDef, import("mongoose").Types.ObjectId>]>;
|
|
710
785
|
newPosition: z.ZodNumber;
|
|
711
786
|
}, "strip", z.ZodTypeAny, {
|
|
712
|
-
_id: mongoose.Types.ObjectId;
|
|
787
|
+
_id: import("mongoose").Types.ObjectId;
|
|
713
788
|
newPosition: number;
|
|
714
789
|
}, {
|
|
715
|
-
_id: string | mongoose.Types.ObjectId;
|
|
790
|
+
_id: string | import("mongoose").Types.ObjectId;
|
|
716
791
|
newPosition: number;
|
|
717
792
|
}>;
|
|
718
793
|
export type UpdateSortingOrderDTO = DTO<typeof UpdateSortingOrderSchema>;
|
|
719
794
|
export declare const DeleteSchema: z.ZodObject<{
|
|
720
|
-
_id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
|
|
795
|
+
_id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, import("mongoose").Types.ObjectId, string>, z.ZodType<import("mongoose").Types.ObjectId, z.ZodTypeDef, import("mongoose").Types.ObjectId>]>;
|
|
721
796
|
softDelete: z.ZodDefault<z.ZodBoolean>;
|
|
722
797
|
}, "strip", z.ZodTypeAny, {
|
|
723
|
-
_id: mongoose.Types.ObjectId;
|
|
798
|
+
_id: import("mongoose").Types.ObjectId;
|
|
724
799
|
softDelete: boolean;
|
|
725
800
|
}, {
|
|
726
|
-
_id: string | mongoose.Types.ObjectId;
|
|
801
|
+
_id: string | import("mongoose").Types.ObjectId;
|
|
727
802
|
softDelete?: boolean | undefined;
|
|
728
803
|
}>;
|
|
729
804
|
export type DeleteDTO = DTO<typeof DeleteSchema>;
|
|
730
|
-
export declare const IdSchema: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
|
|
805
|
+
export declare const IdSchema: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, import("mongoose").Types.ObjectId, string>, z.ZodType<import("mongoose").Types.ObjectId, z.ZodTypeDef, import("mongoose").Types.ObjectId>]>;
|
|
731
806
|
export declare const GetByIdInputSchema: z.ZodObject<{
|
|
732
|
-
_id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
|
|
807
|
+
_id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, import("mongoose").Types.ObjectId, string>, z.ZodType<import("mongoose").Types.ObjectId, z.ZodTypeDef, import("mongoose").Types.ObjectId>]>;
|
|
733
808
|
select: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<1>]>>>;
|
|
734
809
|
populate: z.ZodOptional<z.ZodUnion<[z.ZodType<any, z.ZodTypeDef, any>, z.ZodArray<z.ZodType<any, z.ZodTypeDef, any>, "many">]>>;
|
|
735
810
|
}, "strip", z.ZodTypeAny, {
|
|
736
|
-
_id: mongoose.Types.ObjectId;
|
|
811
|
+
_id: import("mongoose").Types.ObjectId;
|
|
737
812
|
select?: Record<string, 0 | 1> | undefined;
|
|
738
813
|
populate?: any;
|
|
739
814
|
}, {
|
|
740
|
-
_id: string | mongoose.Types.ObjectId;
|
|
815
|
+
_id: string | import("mongoose").Types.ObjectId;
|
|
741
816
|
select?: Record<string, 0 | 1> | undefined;
|
|
742
817
|
populate?: any;
|
|
743
818
|
}>;
|
|
744
819
|
export type GetByIdInputDTO = DTO<typeof GetByIdInputSchema>;
|
|
745
820
|
export declare const GetProductByIdInputSchema: z.ZodObject<{
|
|
746
|
-
_id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, mongoose.Types.ObjectId, string>, z.ZodType<mongoose.Types.ObjectId, z.ZodTypeDef, mongoose.Types.ObjectId>]>;
|
|
821
|
+
_id: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, import("mongoose").Types.ObjectId, string>, z.ZodType<import("mongoose").Types.ObjectId, z.ZodTypeDef, import("mongoose").Types.ObjectId>]>;
|
|
747
822
|
select: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<1>]>>>;
|
|
748
823
|
populate: z.ZodOptional<z.ZodUnion<[z.ZodType<any, z.ZodTypeDef, any>, z.ZodArray<z.ZodType<any, z.ZodTypeDef, any>, "many">]>>;
|
|
749
824
|
withAttributeHiddenItems: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
750
825
|
}, "strip", z.ZodTypeAny, {
|
|
751
|
-
_id: mongoose.Types.ObjectId;
|
|
826
|
+
_id: import("mongoose").Types.ObjectId;
|
|
752
827
|
withAttributeHiddenItems: boolean;
|
|
753
828
|
select?: Record<string, 0 | 1> | undefined;
|
|
754
829
|
populate?: any;
|
|
755
830
|
}, {
|
|
756
|
-
_id: string | mongoose.Types.ObjectId;
|
|
831
|
+
_id: string | import("mongoose").Types.ObjectId;
|
|
757
832
|
select?: Record<string, 0 | 1> | undefined;
|
|
758
833
|
populate?: any;
|
|
759
834
|
withAttributeHiddenItems?: boolean | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common-validation.js","sourceRoot":"/","sources":["utilities/validation/common-validation.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { DTO, ZodValidation } from './global-validation';\nimport { ActionType, GeoLocationType, HolidayWorkStatus, WeekDay, WorkStatus } from '../enum';\nimport { mongoose } from '@typegoose/typegoose';\n\n/**\n * Define MongoDB query schema (fields + operators) using lazy evaluation to avoid circular dependency\n */\nconst MongoQuerySchema: z.ZodType<Record<string, any>> = z.lazy(() =>\n\tz.record(z.union([z.any(), MongoOperatorsSchema]))\n);\n\n/**\n * Define allowed MongoDB query operators\n */\nconst MongoOperatorsSchema = z.object({\n\t$eq: z.any().optional(),\n\t$ne: z.any().optional(),\n\t$gt: z.any().optional(),\n\t$gte: z.any().optional(),\n\t$lt: z.any().optional(),\n\t$lte: z.any().optional(),\n\t$in: z.array(z.any()).optional(),\n\t$nin: z.array(z.any()).optional(),\n\t$exists: z.boolean().optional(),\n\t$regex: z.string().optional(),\n\t$and: z.array(MongoQuerySchema).optional(),\n\t$or: z.array(MongoQuerySchema).optional(),\n\t$not: MongoQuerySchema.optional(),\n\t$nor: z.array(MongoQuerySchema).optional(),\n});\n\nconst sortSchema = z.record(z.string(), z.union([z.literal(1), z.literal(-1)]));\n\nconst populateSchema: z.ZodType<any> = z.lazy(() =>\n\tz.object({\n\t\tpath: z.string(), // required\n\t\tselect: z.record(z.string(), z.union([z.literal(0), z.literal(1)])).optional(),\n\t\tmatch: z.record(z.string(), z.any()).optional(),\n\t\toptions: z\n\t\t\t.object({\n\t\t\t\tsort: sortSchema.optional(),\n\t\t\t\tlimit: z.number().optional(),\n\t\t\t\tskip: z.number().optional(),\n\t\t\t})\n\t\t\t.optional(),\n\t\tpopulate: z.union([populateSchema, z.array(populateSchema)]).optional(),\n\t})\n);\n\n/**\n * Define the filter schema using MongoQuerySchema\n */\nexport const FilterSchema = z\n\t.object({\n\t\tsize: z\n\t\t\t.number()\n\t\t\t.min(1, { message: 'Size must be greater than 0.' })\n\t\t\t.max(100, { message: 'Size cannot exceed 100.' })\n\t\t\t.optional()\n\t\t\t.default(10),\n\t\tpage: z.number().min(1, { message: 'Page number must be at least 1.' }).optional().default(1),\n\t\tsort: sortSchema.optional(),\n\t\tquery: MongoQuerySchema.optional(),\n\t\tselect: z.record(z.string(), z.union([z.literal(0), z.literal(1)])).optional(),\n\t\tpopulate: z.union([populateSchema, z.array(populateSchema)]).optional(),\n\t\tsearch: z.object({ searchKey: z.string(), searchFields: z.array(z.string()).optional() }).optional(),\n\t})\n\t.optional();\n\n/**\n * Infer TypeScript type from Zod schema\n */\nexport type FilterDTO = z.infer<typeof FilterSchema>;\n\n/**\n * Define String schema\n */\nexport const StringSchema = z.string().min(1, 'String cannot be empty').max(255, 'String is too long');\n\n/**\n * Common address validation schema that can be reused across models.\n * Provides validation for address-related fields.\n *\n * @example\n * ```typescript\n * const userSchema = z.object({\n * name: z.string(),\n * address: AddressSchema\n * });\n * ```\n */\nexport const AddressSchema = z.object({\n\taddress: ZodValidation.string('Address'),\n\tdescription: ZodValidation.string('Description').optional(),\n\tcity: ZodValidation.string('City'),\n\tstate: ZodValidation.string('State').optional(),\n\tcountry: ZodValidation.string('Country'),\n\tlocation: z.object({\n\t\ttype: ZodValidation.enumType(GeoLocationType, 'GeoLocationType').default(GeoLocationType.POINT),\n\t\tcoordinates: z.tuple([\n\t\t\tZodValidation.number('Longitude', { min: -180, max: 180 }),\n\t\t\tZodValidation.number('Latitude', { min: -90, max: 90 }),\n\t\t]),\n\t}),\n\tlatitude: ZodValidation.number('Latitude', { min: -90, max: 90 }),\n\tlongitude: ZodValidation.number('Longitude', { min: -180, max: 180 }),\n\tzone: ZodValidation.objectId('Zone').optional(),\n});\nexport type AddressDTO = DTO<typeof AddressSchema>;\n\n/**\n * Common user address validation schema that can be reused across models.\n * Provides validation for address-related fields.\n *\n * @example\n * ```typescript\n * const userSchema = z.object({\n * name: z.string(),\n * address: UserAddressSchema\n * });\n * ```\n */\nexport const UserAddressSchema = AddressSchema.extend({\n\taddressLabel: ZodValidation.string('Address Label'),\n\tapartment: ZodValidation.string('Apartment'),\n\tbuildingName: ZodValidation.string('Building Name'),\n\tdeliveryOption: ZodValidation.string('Delivery Option').optional(),\n\tinstructions: ZodValidation.string('Instructions').optional(),\n});\nexport type UserAddressDTO = DTO<typeof UserAddressSchema>;\n\n/**\n * Regular order address validation schema.\n * Provides validation for address-related fields.\n *\n */\nexport const RegularOrderAddressSchema = UserAddressSchema.extend({\n\t_id: ZodValidation.objectId('ID of the user address'),\n});\nexport type RegularOrderAddressDTO = DTO<typeof RegularOrderAddressSchema>;\n\n/**\n * Common courier address validation schema that can be reused across models.\n * Provides validation for address-related fields.\n *\n * @example\n * ```typescript\n * const courierAddressSchema = z.object({\n * name: z.string(),\n * address: courierAddressSchema\n * });\n * ```\n */\nexport const CourierAddressSchema = UserAddressSchema.extend({\n\tname: ZodValidation.string('Name'),\n\tphoneNumber: ZodValidation.string('Phone Number'),\n});\nexport type CourierAddressDTO = DTO<typeof CourierAddressSchema>;\n\n/**\n * Common duration validation schema that can be reused across models.\n * Provides validation for duration fields.\n *\n * @example\n * ```typescript\n * const subscriptionSchema = z.object({\n * fee: z.number(),\n * duration: DurationSchema\n * });\n * ```\n */\nexport const DurationSchema = z.object({\n\tstart: ZodValidation.date('Start'),\n\tend: ZodValidation.date('End').optional(),\n});\n\n/**\n * Common Work Hour validation schema that can be reused across models.\n * Provides validation for workHourSetting fields.\n *\n * @example\n * ```typescript\n * const settingSchema = z.object({\n * vat: z.number(),\n * workHourSetting: WorkHourSettingSchema\n * });\n * ```\n */\n\nconst TimeStringSchema = z\n\t.string()\n\t// Allow 1 or 2 digits for hour\n\t.regex(/^([0-9]|[01]\\d|2[0-3]):([0-5]\\d)$/, 'Time must be in HH:mm format (e.g., 09:30 or 9:30)')\n\t// Normalize to HH:mm → always two digits for hour\n\t.transform(time => {\n\t\tlet [h, m] = time.split(':');\n\t\th = h.padStart(2, '0'); // convert \"9:30\" → \"09:30\"\n\t\treturn `${h}:${m}`;\n\t})\n\t// Validate logical range\n\t.refine(\n\t\ttime => {\n\t\t\tconst [h, m] = time.split(':').map(Number);\n\t\t\treturn h >= 0 && h <= 23 && m >= 0 && m <= 59;\n\t\t},\n\t\t{ message: 'Invalid time range, must be between 00:00 and 23:59' }\n\t);\n\nconst StartEndTimeSchema = z\n\t.object({\n\t\tstart: TimeStringSchema,\n\t\tend: TimeStringSchema,\n\t})\n\t.refine(\n\t\tdata => {\n\t\t\tconst start = parseInt(data.start.replace(':', ''));\n\t\t\tconst end = parseInt(data.end.replace(':', ''));\n\t\t\treturn end > start;\n\t\t},\n\t\t{\n\t\t\tmessage: 'End time must be later than start time',\n\t\t\tpath: ['end'],\n\t\t}\n\t)\n\t.refine(\n\t\tdata => {\n\t\t\tconst end = parseInt(data.end.replace(':', ''));\n\t\t\treturn end <= 2359;\n\t\t},\n\t\t{\n\t\t\tmessage: 'End time cannot exceed 23:59',\n\t\t\tpath: ['end'],\n\t\t}\n\t);\n\nexport const NormalHourSchema = z.object({\n\tday: ZodValidation.enumType(WeekDay, 'Day'),\n\tstatus: ZodValidation.enumType(WorkStatus, 'Status'),\n\topeningHours: ZodValidation.array(StartEndTimeSchema)\n\t\t.default([])\n\t\t.refine(arr => {\n\t\t\tif (arr.length === 0) return true;\n\t\t\tfor (let i = 1; i < arr.length; i++) {\n\t\t\t\tconst prevEnd = parseInt(arr[i - 1].end.replace(':', ''));\n\t\t\t\tconst currStart = parseInt(arr[i].start.replace(':', ''));\n\t\t\t\tif (currStart < prevEnd) return false; // Overlap or out of order\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\t\t{\n\t\t\tmessage: 'Opening hours must be non-overlapping and in chronological order',\n\t\t}\n\t\t\n\t),\n});\n\nexport const HolidayHourSchema = z.object({\n\tdate: ZodValidation.date('Date'),\n\tstatus: ZodValidation.enumType(HolidayWorkStatus, 'Status'),\n\tclosingHour: StartEndTimeSchema,\n});\n\nexport const WorkHourSettingSchema = z.object({\n\tnormalHours: ZodValidation.array(NormalHourSchema).default([]),\n\tholidayHours: ZodValidation.array(HolidayHourSchema).default([]),\n});\n\n/**\n * Schema for validating user login credentials.\n * This schema ensures that the provided email and password meet the required validation rules.\n *\n * @example\n * ```typescript\n * const credentials = {\n * email: 'user@example.com',\n * password: 'securePassword123',\n * };\n * ```\n */\nexport const LoginSchema = z.object({\n\temail: ZodValidation.email('Email', {\n\t\trequiredMessage: 'Please enter a valid email address.',\n\t\tinvalidMessage: 'Please enter a valid email address.',\n\t}),\n\tpassword: ZodValidation.string('Password', { requiredMessage: 'Please enter password' }),\n});\nexport type LoginDTO = DTO<typeof LoginSchema>;\n\nconst metadataSchema = z.object({\n\tpage: ZodValidation.number(),\n\tsize: ZodValidation.number(),\n\ttotalElements: ZodValidation.number(),\n\ttotalPages: ZodValidation.number(),\n});\nexport const createPaginatedSchema = <T>(documentSchema: z.ZodSchema<T>) =>\n\tz.object({\n\t\tmetadata: metadataSchema.optional(),\n\t\tdocuments: ZodValidation.array(documentSchema),\n\t});\n\nexport const createResponseSchema = <T>(schema: z.ZodSchema<T>) =>\n\tz.object({\n\t\tsuccess: ZodValidation.boolean(),\n\t\tmessage: ZodValidation.string(),\n\t\tdata: z.union([createPaginatedSchema(schema), schema]).optional(),\n\t});\n\nexport type PaginatedDTO<T> = {\n\tmetadata: DTO<typeof metadataSchema>;\n\tdocuments: T[];\n};\n\nexport type ResponseDTO<T> = {\n\tsuccess: boolean;\n\tmessage: string;\n\tdata?: T;\n};\n\n/**\n * Schema for validating token data, typically used for authentication.\n * This schema ensures that the provided access token and refresh token are valid strings.\n *\n * @example\n * ```typescript\n * const tokens = {\n * accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',\n * refreshToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',\n * };\n * ```\n */\nexport const TokenSchema = z.object({\n\taccessToken: ZodValidation.string('AccessToken'),\n\trefreshToken: ZodValidation.string('RefreshToken'),\n});\n\n/**\n * Schema validation for sorting order\n */\nexport const UpdateSortingOrderSchema = z.object({\n\t_id: ZodValidation.objectId('_id'),\n\tnewPosition: ZodValidation.number('New position'),\n});\nexport type UpdateSortingOrderDTO = DTO<typeof UpdateSortingOrderSchema>;\n\n/**\n * Schema validation for delete\n */\nexport const DeleteSchema = z.object({\n\t_id: ZodValidation.objectId('_id'),\n\tsoftDelete: ZodValidation.boolean('Soft Delete').default(true),\n});\nexport type DeleteDTO = DTO<typeof DeleteSchema>;\n\n/**\n * Schema validation for Id\n */\nexport const IdSchema = ZodValidation.objectId();\n\n/**\n * Schema validation get by id\n */\nexport const GetByIdInputSchema = z.object({\n\t_id: ZodValidation.objectId('_id'),\n\tselect: z.record(z.string(), z.union([z.literal(0), z.literal(1)])).optional(),\n\tpopulate: z.union([populateSchema, z.array(populateSchema)]).optional(),\n});\nexport type GetByIdInputDTO = DTO<typeof GetByIdInputSchema>;\n\nexport const GetProductByIdInputSchema = z.object({\n\t_id: ZodValidation.objectId('_id'),\n\tselect: z.record(z.string(), z.union([z.literal(0), z.literal(1)])).optional(),\n\tpopulate: z.union([populateSchema, z.array(populateSchema)]).optional(),\n\twithAttributeHiddenItems: z.boolean().optional().default(true),\n});\nexport type GetProductByIdInputDTO = DTO<typeof GetProductByIdInputSchema>;\n\nexport const GetOneQuerySchema = z.object({\n\tquery: MongoQuerySchema.optional(),\n\tselect: z.record(z.string(), z.union([z.literal(0), z.literal(1)])).optional(),\n\tpopulate: z.union([populateSchema, z.array(populateSchema)]).optional(),\n});\n\nexport type GetOneQueryDTO = DTO<typeof GetOneQuerySchema>;\n\nconst ShareableLinkSchema = z.object({\n\tlink: ZodValidation.url('Link'),\n\tmessage: ZodValidation.string('Message'),\n});\n\nexport const ShareableLinkResponseSchema = createResponseSchema(ShareableLinkSchema);\nexport type ShareableLinkDTO = DTO<typeof ShareableLinkSchema>;\n\nexport const UpdateFcmTokenInputSchema = z.object({\n\tfcmToken: ZodValidation.string('Fcm token'),\n\taction: ZodValidation.enumType(ActionType, 'Action'),\n});\nexport type UpdateFcmTokenInputDTO = DTO<typeof UpdateFcmTokenInputSchema>;\n"]}
|
|
1
|
+
{"version":3,"file":"common-validation.js","sourceRoot":"/","sources":["utilities/validation/common-validation.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { DTO, ZodValidation } from './global-validation';\nimport { ActionType, GeoLocationType, HolidayWorkStatus, WeekDay, WorkStatus } from '../enum';\n\n/**\n * Define MongoDB query schema (fields + operators) using lazy evaluation to avoid circular dependency\n */\nconst MongoQuerySchema: z.ZodType<Record<string, any>> = z.lazy(() =>\n\tz.record(z.union([z.any(), MongoOperatorsSchema]))\n);\n\n/**\n * Define allowed MongoDB query operators\n */\nconst MongoOperatorsSchema = z.object({\n\t$eq: z.any().optional(),\n\t$ne: z.any().optional(),\n\t$gt: z.any().optional(),\n\t$gte: z.any().optional(),\n\t$lt: z.any().optional(),\n\t$lte: z.any().optional(),\n\t$in: z.array(z.any()).optional(),\n\t$nin: z.array(z.any()).optional(),\n\t$exists: z.boolean().optional(),\n\t$regex: z.string().optional(),\n\t$and: z.array(MongoQuerySchema).optional(),\n\t$or: z.array(MongoQuerySchema).optional(),\n\t$not: MongoQuerySchema.optional(),\n\t$nor: z.array(MongoQuerySchema).optional(),\n});\n\nconst sortSchema = z.record(z.string(), z.union([z.literal(1), z.literal(-1)]));\n\nconst populateSchema: z.ZodType<any> = z.lazy(() =>\n\tz.object({\n\t\tpath: z.string(), // required\n\t\tselect: z.record(z.string(), z.union([z.literal(0), z.literal(1)])).optional(),\n\t\tmatch: z.record(z.string(), z.any()).optional(),\n\t\toptions: z\n\t\t\t.object({\n\t\t\t\tsort: sortSchema.optional(),\n\t\t\t\tlimit: z.number().optional(),\n\t\t\t\tskip: z.number().optional(),\n\t\t\t})\n\t\t\t.optional(),\n\t\tpopulate: z.union([populateSchema, z.array(populateSchema)]).optional(),\n\t})\n);\n\n/**\n * Define the filter schema using MongoQuerySchema\n */\nexport const FilterSchema = z\n\t.object({\n\t\tsize: z\n\t\t\t.number()\n\t\t\t.min(1, { message: 'Size must be greater than 0.' })\n\t\t\t.max(100, { message: 'Size cannot exceed 100.' })\n\t\t\t.optional()\n\t\t\t.default(10),\n\t\tpage: z.number().min(1, { message: 'Page number must be at least 1.' }).optional().default(1),\n\t\tsort: sortSchema.optional(),\n\t\tquery: MongoQuerySchema.optional(),\n\t\tselect: z.record(z.string(), z.union([z.literal(0), z.literal(1)])).optional(),\n\t\tpopulate: z.union([populateSchema, z.array(populateSchema)]).optional(),\n\t\tsearch: z.object({ searchKey: z.string(), searchFields: z.array(z.string()).optional() }).optional(),\n\t})\n\t.optional();\n\n/**\n * Infer TypeScript type from Zod schema\n */\nexport type FilterDTO = z.infer<typeof FilterSchema>;\n\n/**\n * Define String schema\n */\nexport const StringSchema = z.string().min(1, 'String cannot be empty').max(255, 'String is too long');\n\n/**\n * Common address validation schema that can be reused across models.\n * Provides validation for address-related fields.\n *\n * @example\n * ```typescript\n * const userSchema = z.object({\n * name: z.string(),\n * address: AddressSchema\n * });\n * ```\n */\nexport const AddressSchema = z.object({\n\taddress: ZodValidation.string('Address'),\n\tdescription: ZodValidation.string('Description').optional(),\n\tcity: ZodValidation.string('City'),\n\tstate: ZodValidation.string('State').optional(),\n\tcountry: ZodValidation.string('Country'),\n\tlocation: z.object({\n\t\ttype: ZodValidation.enumType(GeoLocationType, 'GeoLocationType').default(GeoLocationType.POINT),\n\t\tcoordinates: z.tuple([\n\t\t\tZodValidation.number('Longitude', { min: -180, max: 180 }),\n\t\t\tZodValidation.number('Latitude', { min: -90, max: 90 }),\n\t\t]),\n\t}),\n\tlatitude: ZodValidation.number('Latitude', { min: -90, max: 90 }),\n\tlongitude: ZodValidation.number('Longitude', { min: -180, max: 180 }),\n\tzone: ZodValidation.objectId('Zone').optional(),\n});\nexport type AddressDTO = DTO<typeof AddressSchema>;\n\n/**\n * Common user address validation schema that can be reused across models.\n * Provides validation for address-related fields.\n *\n * @example\n * ```typescript\n * const userSchema = z.object({\n * name: z.string(),\n * address: UserAddressSchema\n * });\n * ```\n */\nexport const UserAddressSchema = AddressSchema.extend({\n\taddressLabel: ZodValidation.string('Address Label'),\n\tapartment: ZodValidation.string('Apartment'),\n\tbuildingName: ZodValidation.string('Building Name'),\n\tdeliveryOption: ZodValidation.string('Delivery Option').optional(),\n\tinstructions: ZodValidation.string('Instructions').optional(),\n});\nexport type UserAddressDTO = DTO<typeof UserAddressSchema>;\n\n/**\n * Regular order address validation schema.\n * Provides validation for address-related fields.\n *\n */\nexport const RegularOrderAddressSchema = UserAddressSchema.extend({\n\t_id: ZodValidation.objectId('ID of the user address'),\n});\nexport type RegularOrderAddressDTO = DTO<typeof RegularOrderAddressSchema>;\n\n/**\n * Common courier address validation schema that can be reused across models.\n * Provides validation for address-related fields.\n *\n * @example\n * ```typescript\n * const courierAddressSchema = z.object({\n * name: z.string(),\n * address: courierAddressSchema\n * });\n * ```\n */\nexport const CourierAddressSchema = UserAddressSchema.extend({\n\tname: ZodValidation.string('Name'),\n\tphoneNumber: ZodValidation.string('Phone Number'),\n});\nexport type CourierAddressDTO = DTO<typeof CourierAddressSchema>;\n\n/**\n * Common duration validation schema that can be reused across models.\n * Provides validation for duration fields.\n *\n * @example\n * ```typescript\n * const subscriptionSchema = z.object({\n * fee: z.number(),\n * duration: DurationSchema\n * });\n * ```\n */\nexport const DurationSchema = z.object({\n\tstart: ZodValidation.date('Start'),\n\tend: ZodValidation.date('End').optional(),\n});\n\n/**\n * Common Work Hour validation schema that can be reused across models.\n * Provides validation for workHourSetting fields.\n *\n * @example\n * ```typescript\n * const settingSchema = z.object({\n * vat: z.number(),\n * workHourSetting: WorkHourSettingSchema\n * });\n * ```\n */\n\nconst TimeStringSchema = z\n\t.string()\n\t// Allow 1 or 2 digits for hour\n\t.regex(/^([0-9]|[01]\\d|2[0-3]):([0-5]\\d)$/, 'Time must be in HH:mm format (e.g., 09:30 or 9:30)')\n\t// Normalize to HH:mm → always two digits for hour\n\t.transform(time => {\n\t\tlet [h, m] = time.split(':');\n\t\th = h.padStart(2, '0'); // convert \"9:30\" → \"09:30\"\n\t\treturn `${h}:${m}`;\n\t})\n\t// Validate logical range\n\t.refine(\n\t\ttime => {\n\t\t\tconst [h, m] = time.split(':').map(Number);\n\t\t\treturn h >= 0 && h <= 23 && m >= 0 && m <= 59;\n\t\t},\n\t\t{ message: 'Invalid time range, must be between 00:00 and 23:59' }\n\t);\n\nconst StartEndTimeSchema = z\n\t.object({\n\t\tstart: TimeStringSchema,\n\t\tend: TimeStringSchema,\n\t})\n\t.refine(\n\t\tdata => {\n\t\t\tconst start = parseInt(data.start.replace(':', ''));\n\t\t\tconst end = parseInt(data.end.replace(':', ''));\n\t\t\treturn end > start;\n\t\t},\n\t\t{\n\t\t\tmessage: 'End time must be later than start time',\n\t\t\tpath: ['end'],\n\t\t}\n\t)\n\t.refine(\n\t\tdata => {\n\t\t\tconst end = parseInt(data.end.replace(':', ''));\n\t\t\treturn end <= 2359;\n\t\t},\n\t\t{\n\t\t\tmessage: 'End time cannot exceed 23:59',\n\t\t\tpath: ['end'],\n\t\t}\n\t);\n\nexport const NormalHourSchema = z.object({\n\tday: ZodValidation.enumType(WeekDay, 'Day'),\n\tstatus: ZodValidation.enumType(WorkStatus, 'Status'),\n\topeningHours: ZodValidation.array(StartEndTimeSchema)\n\t\t.default([])\n\t\t.refine(arr => {\n\t\t\tif (arr.length === 0) return true;\n\t\t\tfor (let i = 1; i < arr.length; i++) {\n\t\t\t\tconst prevEnd = parseInt(arr[i - 1].end.replace(':', ''));\n\t\t\t\tconst currStart = parseInt(arr[i].start.replace(':', ''));\n\t\t\t\tif (currStart < prevEnd) return false; // Overlap or out of order\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\t\t{\n\t\t\tmessage: 'Opening hours must be non-overlapping and in chronological order',\n\t\t}\n\t\t\n\t),\n});\n\nexport const HolidayHourSchema = z.object({\n\tdate: ZodValidation.date('Date'),\n\tstatus: ZodValidation.enumType(HolidayWorkStatus, 'Status'),\n\tclosingHour: StartEndTimeSchema,\n});\n\nexport const WorkHourSettingSchema = z.object({\n\tnormalHours: ZodValidation.array(NormalHourSchema).default([]),\n\tholidayHours: ZodValidation.array(HolidayHourSchema).default([]),\n});\n\n/**\n * Schema for validating user login credentials.\n * This schema ensures that the provided email and password meet the required validation rules.\n *\n * @example\n * ```typescript\n * const credentials = {\n * email: 'user@example.com',\n * password: 'securePassword123',\n * };\n * ```\n */\nexport const LoginSchema = z.object({\n\temail: ZodValidation.email('Email', {\n\t\trequiredMessage: 'Please enter a valid email address.',\n\t\tinvalidMessage: 'Please enter a valid email address.',\n\t}),\n\tpassword: ZodValidation.string('Password', { requiredMessage: 'Please enter password' }),\n});\nexport type LoginDTO = DTO<typeof LoginSchema>;\n\nconst metadataSchema = z.object({\n\tpage: ZodValidation.number(),\n\tsize: ZodValidation.number(),\n\ttotalElements: ZodValidation.number(),\n\ttotalPages: ZodValidation.number(),\n});\nexport const createPaginatedSchema = <T>(documentSchema: z.ZodSchema<T>) =>\n\tz.object({\n\t\tmetadata: metadataSchema.optional(),\n\t\tdocuments: ZodValidation.array(documentSchema),\n\t});\n\nexport const createResponseSchema = <T>(schema: z.ZodSchema<T>) =>\n\tz.object({\n\t\tsuccess: ZodValidation.boolean(),\n\t\tmessage: ZodValidation.string(),\n\t\tdata: z.union([createPaginatedSchema(schema), schema]).optional(),\n\t});\n\nexport type PaginatedDTO<T> = {\n\tmetadata: DTO<typeof metadataSchema>;\n\tdocuments: T[];\n};\n\nexport type ResponseDTO<T> = {\n\tsuccess: boolean;\n\tmessage: string;\n\tdata?: T;\n};\n\n/**\n * Schema for validating token data, typically used for authentication.\n * This schema ensures that the provided access token and refresh token are valid strings.\n *\n * @example\n * ```typescript\n * const tokens = {\n * accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',\n * refreshToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',\n * };\n * ```\n */\nexport const TokenSchema = z.object({\n\taccessToken: ZodValidation.string('AccessToken'),\n\trefreshToken: ZodValidation.string('RefreshToken'),\n});\n\n/**\n * Schema validation for sorting order\n */\nexport const UpdateSortingOrderSchema = z.object({\n\t_id: ZodValidation.objectId('_id'),\n\tnewPosition: ZodValidation.number('New position'),\n});\nexport type UpdateSortingOrderDTO = DTO<typeof UpdateSortingOrderSchema>;\n\n/**\n * Schema validation for delete\n */\nexport const DeleteSchema = z.object({\n\t_id: ZodValidation.objectId('_id'),\n\tsoftDelete: ZodValidation.boolean('Soft Delete').default(true),\n});\nexport type DeleteDTO = DTO<typeof DeleteSchema>;\n\n/**\n * Schema validation for Id\n */\nexport const IdSchema = ZodValidation.objectId();\n\n/**\n * Schema validation get by id\n */\nexport const GetByIdInputSchema = z.object({\n\t_id: ZodValidation.objectId('_id'),\n\tselect: z.record(z.string(), z.union([z.literal(0), z.literal(1)])).optional(),\n\tpopulate: z.union([populateSchema, z.array(populateSchema)]).optional(),\n});\nexport type GetByIdInputDTO = DTO<typeof GetByIdInputSchema>;\n\nexport const GetProductByIdInputSchema = z.object({\n\t_id: ZodValidation.objectId('_id'),\n\tselect: z.record(z.string(), z.union([z.literal(0), z.literal(1)])).optional(),\n\tpopulate: z.union([populateSchema, z.array(populateSchema)]).optional(),\n\twithAttributeHiddenItems: z.boolean().optional().default(true),\n});\nexport type GetProductByIdInputDTO = DTO<typeof GetProductByIdInputSchema>;\n\nexport const GetOneQuerySchema = z.object({\n\tquery: MongoQuerySchema.optional(),\n\tselect: z.record(z.string(), z.union([z.literal(0), z.literal(1)])).optional(),\n\tpopulate: z.union([populateSchema, z.array(populateSchema)]).optional(),\n});\n\nexport type GetOneQueryDTO = DTO<typeof GetOneQuerySchema>;\n\nconst ShareableLinkSchema = z.object({\n\tlink: ZodValidation.url('Link'),\n\tmessage: ZodValidation.string('Message'),\n});\n\nexport const ShareableLinkResponseSchema = createResponseSchema(ShareableLinkSchema);\nexport type ShareableLinkDTO = DTO<typeof ShareableLinkSchema>;\n\nexport const UpdateFcmTokenInputSchema = z.object({\n\tfcmToken: ZodValidation.string('Fcm token'),\n\taction: ZodValidation.enumType(ActionType, 'Action'),\n});\nexport type UpdateFcmTokenInputDTO = DTO<typeof UpdateFcmTokenInputSchema>;\n"]}
|