@managesome/knotr-toolkit 0.1.1 → 0.8.5
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/backend/config.d.ts +43 -0
- package/dist/backend/config.d.ts.map +1 -0
- package/dist/backend/config.js +82 -0
- package/dist/backend/config.js.map +1 -0
- package/dist/backend/database.d.ts +28 -0
- package/dist/backend/database.d.ts.map +1 -0
- package/dist/backend/database.js +112 -0
- package/dist/backend/database.js.map +1 -0
- package/dist/backend/firebase.d.ts +68 -0
- package/dist/backend/firebase.d.ts.map +1 -0
- package/dist/backend/firebase.js +233 -0
- package/dist/backend/firebase.js.map +1 -0
- package/dist/backend/index.d.ts +8 -0
- package/dist/backend/index.d.ts.map +1 -0
- package/dist/backend/index.js +19 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/logger.d.ts +23 -0
- package/dist/backend/logger.d.ts.map +1 -0
- package/dist/backend/logger.js +107 -0
- package/dist/backend/logger.js.map +1 -0
- package/dist/backend/redis.d.ts +59 -0
- package/dist/backend/redis.d.ts.map +1 -0
- package/dist/backend/redis.js +169 -0
- package/dist/backend/redis.js.map +1 -0
- package/dist/backend/socket.d.ts +81 -0
- package/dist/backend/socket.d.ts.map +1 -0
- package/dist/backend/socket.js +132 -0
- package/dist/backend/socket.js.map +1 -0
- package/dist/backend/worker-queue.d.ts +40 -0
- package/dist/backend/worker-queue.d.ts.map +1 -0
- package/dist/backend/worker-queue.js +140 -0
- package/dist/backend/worker-queue.js.map +1 -0
- package/dist/client/api-client.d.ts +101 -0
- package/dist/client/api-client.d.ts.map +1 -0
- package/dist/client/api-client.js +261 -0
- package/dist/client/api-client.js.map +1 -0
- package/dist/client/api-error.d.ts +100 -0
- package/dist/client/api-error.d.ts.map +1 -0
- package/dist/client/api-error.js +111 -0
- package/dist/client/api-error.js.map +1 -0
- package/dist/client/endpoints.d.ts +510 -0
- package/dist/client/endpoints.d.ts.map +1 -0
- package/dist/client/endpoints.js +306 -0
- package/dist/client/endpoints.js.map +1 -0
- package/dist/client/index.d.ts +4 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +7 -0
- package/dist/client/index.js.map +1 -0
- package/dist/constants/index.d.ts +2 -1
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +2 -1
- package/dist/constants/index.js.map +1 -1
- package/dist/constants/socket.d.ts +165 -0
- package/dist/constants/socket.d.ts.map +1 -0
- package/dist/constants/socket.js +204 -0
- package/dist/constants/socket.js.map +1 -0
- package/dist/helpers/ApiError.d.ts +74 -0
- package/dist/helpers/ApiError.d.ts.map +1 -0
- package/dist/helpers/ApiError.js +105 -0
- package/dist/helpers/ApiError.js.map +1 -0
- package/dist/helpers/asyncHandler.d.ts +42 -0
- package/dist/helpers/asyncHandler.d.ts.map +1 -0
- package/dist/helpers/asyncHandler.js +47 -0
- package/dist/helpers/asyncHandler.js.map +1 -0
- package/dist/helpers/id-generator.d.ts +98 -0
- package/dist/helpers/id-generator.d.ts.map +1 -0
- package/dist/helpers/id-generator.js +128 -0
- package/dist/helpers/id-generator.js.map +1 -0
- package/dist/helpers/index.d.ts +5 -0
- package/dist/helpers/index.d.ts.map +1 -0
- package/dist/helpers/index.js +8 -0
- package/dist/helpers/index.js.map +1 -0
- package/dist/helpers/response-timing.d.ts +91 -0
- package/dist/helpers/response-timing.d.ts.map +1 -0
- package/dist/helpers/response-timing.js +176 -0
- package/dist/helpers/response-timing.js.map +1 -0
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -3
- package/dist/index.js.map +1 -1
- package/dist/schemas/account.schema.d.ts +4500 -0
- package/dist/schemas/account.schema.d.ts.map +1 -0
- package/dist/schemas/account.schema.js +123 -0
- package/dist/schemas/account.schema.js.map +1 -0
- package/dist/schemas/chat.schema.d.ts +4796 -0
- package/dist/schemas/chat.schema.d.ts.map +1 -0
- package/dist/schemas/chat.schema.js +107 -0
- package/dist/schemas/chat.schema.js.map +1 -0
- package/dist/schemas/collaboration-request.schema.d.ts +3960 -0
- package/dist/schemas/collaboration-request.schema.d.ts.map +1 -0
- package/dist/schemas/collaboration-request.schema.js +92 -0
- package/dist/schemas/collaboration-request.schema.js.map +1 -0
- package/dist/schemas/company-review.schema.d.ts +3465 -0
- package/dist/schemas/company-review.schema.d.ts.map +1 -0
- package/dist/schemas/company-review.schema.js +73 -0
- package/dist/schemas/company-review.schema.js.map +1 -0
- package/dist/schemas/company.schema.d.ts +6152 -0
- package/dist/schemas/company.schema.d.ts.map +1 -0
- package/dist/schemas/company.schema.js +192 -0
- package/dist/schemas/company.schema.js.map +1 -0
- package/dist/schemas/contract.schema.d.ts +5286 -0
- package/dist/schemas/contract.schema.d.ts.map +1 -0
- package/dist/schemas/contract.schema.js +115 -0
- package/dist/schemas/contract.schema.js.map +1 -0
- package/dist/schemas/dispute-evidence.schema.d.ts +3788 -0
- package/dist/schemas/dispute-evidence.schema.d.ts.map +1 -0
- package/dist/schemas/dispute-evidence.schema.js +71 -0
- package/dist/schemas/dispute-evidence.schema.js.map +1 -0
- package/dist/schemas/dispute.schema.d.ts +4970 -0
- package/dist/schemas/dispute.schema.d.ts.map +1 -0
- package/dist/schemas/dispute.schema.js +152 -0
- package/dist/schemas/dispute.schema.js.map +1 -0
- package/dist/schemas/donation.schema.d.ts +3594 -0
- package/dist/schemas/donation.schema.d.ts.map +1 -0
- package/dist/schemas/donation.schema.js +95 -0
- package/dist/schemas/donation.schema.js.map +1 -0
- package/dist/schemas/escrow.schema.d.ts +4322 -0
- package/dist/schemas/escrow.schema.d.ts.map +1 -0
- package/dist/schemas/escrow.schema.js +93 -0
- package/dist/schemas/escrow.schema.js.map +1 -0
- package/dist/schemas/flag.schema.d.ts +4375 -0
- package/dist/schemas/flag.schema.d.ts.map +1 -0
- package/dist/schemas/flag.schema.js +133 -0
- package/dist/schemas/flag.schema.js.map +1 -0
- package/dist/schemas/index.d.ts +33 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +39 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/interest.schema.d.ts +3804 -0
- package/dist/schemas/interest.schema.d.ts.map +1 -0
- package/dist/schemas/interest.schema.js +107 -0
- package/dist/schemas/interest.schema.js.map +1 -0
- package/dist/schemas/match.schema.d.ts +4013 -0
- package/dist/schemas/match.schema.d.ts.map +1 -0
- package/dist/schemas/match.schema.js +118 -0
- package/dist/schemas/match.schema.js.map +1 -0
- package/dist/schemas/message.schema.d.ts +4213 -0
- package/dist/schemas/message.schema.d.ts.map +1 -0
- package/dist/schemas/message.schema.js +134 -0
- package/dist/schemas/message.schema.js.map +1 -0
- package/dist/schemas/milestone.schema.d.ts +4310 -0
- package/dist/schemas/milestone.schema.d.ts.map +1 -0
- package/dist/schemas/milestone.schema.js +99 -0
- package/dist/schemas/milestone.schema.js.map +1 -0
- package/dist/schemas/notification.schema.d.ts +4641 -0
- package/dist/schemas/notification.schema.d.ts.map +1 -0
- package/dist/schemas/notification.schema.js +139 -0
- package/dist/schemas/notification.schema.js.map +1 -0
- package/dist/schemas/profile.schema.d.ts +9589 -0
- package/dist/schemas/profile.schema.d.ts.map +1 -0
- package/dist/schemas/profile.schema.js +360 -0
- package/dist/schemas/profile.schema.js.map +1 -0
- package/dist/schemas/profit-share-agreement.schema.d.ts +3789 -0
- package/dist/schemas/profit-share-agreement.schema.d.ts.map +1 -0
- package/dist/schemas/profit-share-agreement.schema.js +76 -0
- package/dist/schemas/profit-share-agreement.schema.js.map +1 -0
- package/dist/schemas/profit-share.schema.d.ts +4051 -0
- package/dist/schemas/profit-share.schema.d.ts.map +1 -0
- package/dist/schemas/profit-share.schema.js +96 -0
- package/dist/schemas/profit-share.schema.js.map +1 -0
- package/dist/schemas/promo-code.schema.d.ts +3924 -0
- package/dist/schemas/promo-code.schema.d.ts.map +1 -0
- package/dist/schemas/promo-code.schema.js +112 -0
- package/dist/schemas/promo-code.schema.js.map +1 -0
- package/dist/schemas/proposal.schema.d.ts +5182 -0
- package/dist/schemas/proposal.schema.d.ts.map +1 -0
- package/dist/schemas/proposal.schema.js +114 -0
- package/dist/schemas/proposal.schema.js.map +1 -0
- package/dist/schemas/purchase.schema.d.ts +3724 -0
- package/dist/schemas/purchase.schema.d.ts.map +1 -0
- package/dist/schemas/purchase.schema.js +89 -0
- package/dist/schemas/purchase.schema.js.map +1 -0
- package/dist/schemas/requirement-post.schema.d.ts +6315 -0
- package/dist/schemas/requirement-post.schema.d.ts.map +1 -0
- package/dist/schemas/requirement-post.schema.js +153 -0
- package/dist/schemas/requirement-post.schema.js.map +1 -0
- package/dist/schemas/review.schema.d.ts +4512 -0
- package/dist/schemas/review.schema.d.ts.map +1 -0
- package/dist/schemas/review.schema.js +121 -0
- package/dist/schemas/review.schema.js.map +1 -0
- package/dist/schemas/service-listing.schema.d.ts +5152 -0
- package/dist/schemas/service-listing.schema.d.ts.map +1 -0
- package/dist/schemas/service-listing.schema.js +137 -0
- package/dist/schemas/service-listing.schema.js.map +1 -0
- package/dist/schemas/subscription.schema.d.ts +3985 -0
- package/dist/schemas/subscription.schema.d.ts.map +1 -0
- package/dist/schemas/subscription.schema.js +94 -0
- package/dist/schemas/subscription.schema.js.map +1 -0
- package/dist/schemas/tmc-application.schema.d.ts +4357 -0
- package/dist/schemas/tmc-application.schema.d.ts.map +1 -0
- package/dist/schemas/tmc-application.schema.js +96 -0
- package/dist/schemas/tmc-application.schema.js.map +1 -0
- package/dist/schemas/tmc-membership.schema.d.ts +3985 -0
- package/dist/schemas/tmc-membership.schema.d.ts.map +1 -0
- package/dist/schemas/tmc-membership.schema.js +84 -0
- package/dist/schemas/tmc-membership.schema.js.map +1 -0
- package/dist/schemas/trust-badge.schema.d.ts +3919 -0
- package/dist/schemas/trust-badge.schema.d.ts.map +1 -0
- package/dist/schemas/trust-badge.schema.js +83 -0
- package/dist/schemas/trust-badge.schema.js.map +1 -0
- package/dist/schemas/verification.schema.d.ts +4606 -0
- package/dist/schemas/verification.schema.d.ts.map +1 -0
- package/dist/schemas/verification.schema.js +114 -0
- package/dist/schemas/verification.schema.js.map +1 -0
- package/dist/schemas/webhook-event.schema.d.ts +3534 -0
- package/dist/schemas/webhook-event.schema.d.ts.map +1 -0
- package/dist/schemas/webhook-event.schema.js +83 -0
- package/dist/schemas/webhook-event.schema.js.map +1 -0
- package/dist/types/account.d.ts +36 -7
- package/dist/types/account.d.ts.map +1 -1
- package/dist/types/account.js +3 -1
- package/dist/types/account.js.map +1 -1
- package/dist/types/admin.d.ts +20 -10
- package/dist/types/admin.d.ts.map +1 -1
- package/dist/types/admin.js +3 -1
- package/dist/types/admin.js.map +1 -1
- package/dist/types/api.d.ts +184 -109
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/api.js +2 -1
- package/dist/types/api.js.map +1 -1
- package/dist/types/chat.d.ts +38 -20
- package/dist/types/chat.d.ts.map +1 -1
- package/dist/types/chat.js +3 -1
- package/dist/types/chat.js.map +1 -1
- package/dist/types/common.d.ts +39 -12
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/common.js +4 -1
- package/dist/types/common.js.map +1 -1
- package/dist/types/company.d.ts +61 -44
- package/dist/types/company.d.ts.map +1 -1
- package/dist/types/company.js +3 -1
- package/dist/types/company.js.map +1 -1
- package/dist/types/flag.d.ts +19 -8
- package/dist/types/flag.d.ts.map +1 -1
- package/dist/types/flag.js +3 -1
- package/dist/types/flag.js.map +1 -1
- package/dist/types/forms.d.ts +334 -0
- package/dist/types/forms.d.ts.map +1 -0
- package/dist/types/forms.js +5 -0
- package/dist/types/forms.js.map +1 -0
- package/dist/types/index.d.ts +18 -13
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +18 -13
- package/dist/types/index.js.map +1 -1
- package/dist/types/marketplace.d.ts +174 -104
- package/dist/types/marketplace.d.ts.map +1 -1
- package/dist/types/marketplace.js +2 -0
- package/dist/types/marketplace.js.map +1 -1
- package/dist/types/match.d.ts +36 -19
- package/dist/types/match.d.ts.map +1 -1
- package/dist/types/match.js +3 -1
- package/dist/types/match.js.map +1 -1
- package/dist/types/navigation.d.ts +305 -0
- package/dist/types/navigation.d.ts.map +1 -0
- package/dist/types/navigation.js +18 -0
- package/dist/types/navigation.js.map +1 -0
- package/dist/types/notification.d.ts +92 -0
- package/dist/types/notification.d.ts.map +1 -0
- package/dist/types/notification.js +5 -0
- package/dist/types/notification.js.map +1 -0
- package/dist/types/payment.d.ts +70 -38
- package/dist/types/payment.d.ts.map +1 -1
- package/dist/types/payment.js +3 -1
- package/dist/types/payment.js.map +1 -1
- package/dist/types/policy.d.ts +174 -81
- package/dist/types/policy.d.ts.map +1 -1
- package/dist/types/policy.js.map +1 -1
- package/dist/types/profile.d.ts +48 -37
- package/dist/types/profile.d.ts.map +1 -1
- package/dist/types/profile.js +3 -1
- package/dist/types/profile.js.map +1 -1
- package/dist/types/socket.d.ts +431 -0
- package/dist/types/socket.d.ts.map +1 -0
- package/dist/types/socket.js +5 -0
- package/dist/types/socket.js.map +1 -0
- package/dist/types/verification.d.ts +18 -9
- package/dist/types/verification.d.ts.map +1 -1
- package/dist/types/verification.js +3 -1
- package/dist/types/verification.js.map +1 -1
- package/dist/types/worker.d.ts +452 -0
- package/dist/types/worker.d.ts.map +1 -0
- package/dist/types/worker.js +5 -0
- package/dist/types/worker.js.map +1 -0
- package/dist/validation/index.d.ts +5 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +9 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/messages.d.ts +124 -0
- package/dist/validation/messages.d.ts.map +1 -0
- package/dist/validation/messages.js +160 -0
- package/dist/validation/messages.js.map +1 -0
- package/dist/validation/schemas.d.ts +1127 -0
- package/dist/validation/schemas.d.ts.map +1 -0
- package/dist/validation/schemas.js +376 -0
- package/dist/validation/schemas.js.map +1 -0
- package/dist/validation/validators.d.ts +229 -0
- package/dist/validation/validators.d.ts.map +1 -0
- package/dist/validation/validators.js +307 -0
- package/dist/validation/validators.js.map +1 -0
- package/package.json +37 -3
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
// ============================================
|
|
2
|
+
// Validators - Reusable field validation functions
|
|
3
|
+
// ============================================
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { MAX_ABOUT_LENGTH, MAX_AGE, MAX_EXPECTATIONS_LENGTH, MAX_HEIGHT_CM, MAX_MESSAGE_LENGTH, MAX_WEIGHT_KG, MIN_ABOUT_LENGTH, MIN_AGE, MIN_EXPECTATIONS_LENGTH, MIN_HEIGHT_CM, MIN_WEIGHT_KG, } from '../constants/index.js';
|
|
6
|
+
// ============================================
|
|
7
|
+
// Basic Validators
|
|
8
|
+
// ============================================
|
|
9
|
+
/**
|
|
10
|
+
* Email validator
|
|
11
|
+
*/
|
|
12
|
+
export const emailValidator = z
|
|
13
|
+
.string()
|
|
14
|
+
.email('Invalid email address')
|
|
15
|
+
.min(5, 'Email too short')
|
|
16
|
+
.max(254, 'Email too long')
|
|
17
|
+
.toLowerCase()
|
|
18
|
+
.trim();
|
|
19
|
+
/**
|
|
20
|
+
* Phone number validator (E.164 format)
|
|
21
|
+
*/
|
|
22
|
+
export const phoneValidator = z
|
|
23
|
+
.string()
|
|
24
|
+
.regex(/^\+[1-9]\d{1,14}$/, 'Invalid phone number format (use E.164 format: +1234567890)');
|
|
25
|
+
/**
|
|
26
|
+
* Password validator
|
|
27
|
+
*/
|
|
28
|
+
export const passwordValidator = z
|
|
29
|
+
.string()
|
|
30
|
+
.min(8, 'Password must be at least 8 characters')
|
|
31
|
+
.max(128, 'Password too long')
|
|
32
|
+
.regex(/[a-z]/, 'Password must contain a lowercase letter')
|
|
33
|
+
.regex(/[A-Z]/, 'Password must contain an uppercase letter')
|
|
34
|
+
.regex(/[0-9]/, 'Password must contain a number');
|
|
35
|
+
/**
|
|
36
|
+
* Strong password validator (includes special chars)
|
|
37
|
+
*/
|
|
38
|
+
export const strongPasswordValidator = passwordValidator.regex(/[^a-zA-Z0-9]/, 'Password must contain a special character');
|
|
39
|
+
/**
|
|
40
|
+
* Name validator (person's name)
|
|
41
|
+
*/
|
|
42
|
+
export const nameValidator = z
|
|
43
|
+
.string()
|
|
44
|
+
.min(2, 'Name must be at least 2 characters')
|
|
45
|
+
.max(50, 'Name too long')
|
|
46
|
+
.regex(/^[a-zA-Z\s\-']+$/, 'Name can only contain letters, spaces, hyphens, and apostrophes')
|
|
47
|
+
.trim();
|
|
48
|
+
/**
|
|
49
|
+
* Display name validator (more permissive)
|
|
50
|
+
*/
|
|
51
|
+
export const displayNameValidator = z
|
|
52
|
+
.string()
|
|
53
|
+
.min(2, 'Name must be at least 2 characters')
|
|
54
|
+
.max(100, 'Name too long')
|
|
55
|
+
.trim();
|
|
56
|
+
/**
|
|
57
|
+
* URL validator
|
|
58
|
+
*/
|
|
59
|
+
export const urlValidator = z.string().url('Invalid URL');
|
|
60
|
+
/**
|
|
61
|
+
* Optional URL validator
|
|
62
|
+
*/
|
|
63
|
+
export const optionalUrlValidator = z.string().url('Invalid URL').optional().or(z.literal(''));
|
|
64
|
+
// ============================================
|
|
65
|
+
// Profile Validators
|
|
66
|
+
// ============================================
|
|
67
|
+
/**
|
|
68
|
+
* Age validator
|
|
69
|
+
*/
|
|
70
|
+
export const ageValidator = z
|
|
71
|
+
.number()
|
|
72
|
+
.int('Age must be a whole number')
|
|
73
|
+
.min(MIN_AGE, `Must be at least ${MIN_AGE} years old`)
|
|
74
|
+
.max(MAX_AGE, `Must be at most ${MAX_AGE} years old`);
|
|
75
|
+
/**
|
|
76
|
+
* Date of birth validator
|
|
77
|
+
*/
|
|
78
|
+
export const dateOfBirthValidator = z
|
|
79
|
+
.date()
|
|
80
|
+
.refine((date) => {
|
|
81
|
+
const age = Math.floor((new Date().getTime() - date.getTime()) / (365.25 * 24 * 60 * 60 * 1000));
|
|
82
|
+
return age >= MIN_AGE;
|
|
83
|
+
}, { message: `Must be at least ${MIN_AGE} years old` })
|
|
84
|
+
.refine((date) => {
|
|
85
|
+
const age = Math.floor((new Date().getTime() - date.getTime()) / (365.25 * 24 * 60 * 60 * 1000));
|
|
86
|
+
return age <= MAX_AGE;
|
|
87
|
+
}, { message: `Must be at most ${MAX_AGE} years old` });
|
|
88
|
+
/**
|
|
89
|
+
* Date of birth string validator (ISO format)
|
|
90
|
+
*/
|
|
91
|
+
export const dateOfBirthStringValidator = z
|
|
92
|
+
.string()
|
|
93
|
+
.regex(/^\d{4}-\d{2}-\d{2}$/, 'Date must be in YYYY-MM-DD format')
|
|
94
|
+
.transform((s) => new Date(s))
|
|
95
|
+
.pipe(dateOfBirthValidator);
|
|
96
|
+
/**
|
|
97
|
+
* Height validator (in cm)
|
|
98
|
+
*/
|
|
99
|
+
export const heightValidator = z
|
|
100
|
+
.number()
|
|
101
|
+
.int('Height must be a whole number')
|
|
102
|
+
.min(MIN_HEIGHT_CM, `Height must be at least ${MIN_HEIGHT_CM} cm`)
|
|
103
|
+
.max(MAX_HEIGHT_CM, `Height must be at most ${MAX_HEIGHT_CM} cm`);
|
|
104
|
+
/**
|
|
105
|
+
* Weight validator (in kg)
|
|
106
|
+
*/
|
|
107
|
+
export const weightValidator = z
|
|
108
|
+
.number()
|
|
109
|
+
.int('Weight must be a whole number')
|
|
110
|
+
.min(MIN_WEIGHT_KG, `Weight must be at least ${MIN_WEIGHT_KG} kg`)
|
|
111
|
+
.max(MAX_WEIGHT_KG, `Weight must be at most ${MAX_WEIGHT_KG} kg`);
|
|
112
|
+
/**
|
|
113
|
+
* About/bio validator
|
|
114
|
+
*/
|
|
115
|
+
export const aboutValidator = z
|
|
116
|
+
.string()
|
|
117
|
+
.min(MIN_ABOUT_LENGTH, `Bio must be at least ${MIN_ABOUT_LENGTH} characters`)
|
|
118
|
+
.max(MAX_ABOUT_LENGTH, `Bio must be at most ${MAX_ABOUT_LENGTH} characters`)
|
|
119
|
+
.trim();
|
|
120
|
+
/**
|
|
121
|
+
* Expectations validator
|
|
122
|
+
*/
|
|
123
|
+
export const expectationsValidator = z
|
|
124
|
+
.string()
|
|
125
|
+
.min(MIN_EXPECTATIONS_LENGTH, `Must be at least ${MIN_EXPECTATIONS_LENGTH} characters`)
|
|
126
|
+
.max(MAX_EXPECTATIONS_LENGTH, `Must be at most ${MAX_EXPECTATIONS_LENGTH} characters`)
|
|
127
|
+
.trim();
|
|
128
|
+
/**
|
|
129
|
+
* Gender validator
|
|
130
|
+
*/
|
|
131
|
+
export const genderValidator = z.enum(['male', 'female'], {
|
|
132
|
+
errorMap: () => ({ message: 'Please select a gender' }),
|
|
133
|
+
});
|
|
134
|
+
/**
|
|
135
|
+
* Marital status validator
|
|
136
|
+
*/
|
|
137
|
+
export const maritalStatusValidator = z.enum(['never_married', 'divorced', 'widowed', 'annulled'], {
|
|
138
|
+
errorMap: () => ({ message: 'Please select marital status' }),
|
|
139
|
+
});
|
|
140
|
+
/**
|
|
141
|
+
* Education level validator
|
|
142
|
+
*/
|
|
143
|
+
export const educationLevelValidator = z.enum(['high_school', 'some_college', 'bachelors', 'masters', 'doctorate', 'professional', 'trade_school', 'other'], {
|
|
144
|
+
errorMap: () => ({ message: 'Please select education level' }),
|
|
145
|
+
});
|
|
146
|
+
// ============================================
|
|
147
|
+
// Location Validators
|
|
148
|
+
// ============================================
|
|
149
|
+
/**
|
|
150
|
+
* Country code validator (ISO 3166-1 alpha-2)
|
|
151
|
+
*/
|
|
152
|
+
export const countryCodeValidator = z.string().length(2, 'Invalid country code').toUpperCase();
|
|
153
|
+
/**
|
|
154
|
+
* City validator
|
|
155
|
+
*/
|
|
156
|
+
export const cityValidator = z.string().min(2, 'City name too short').max(100, 'City name too long').trim();
|
|
157
|
+
/**
|
|
158
|
+
* Location validator
|
|
159
|
+
*/
|
|
160
|
+
export const locationValidator = z.object({
|
|
161
|
+
country: countryCodeValidator,
|
|
162
|
+
state: z.string().max(100).optional(),
|
|
163
|
+
city: cityValidator,
|
|
164
|
+
coordinates: z
|
|
165
|
+
.object({
|
|
166
|
+
latitude: z.number().min(-90).max(90),
|
|
167
|
+
longitude: z.number().min(-180).max(180),
|
|
168
|
+
})
|
|
169
|
+
.optional(),
|
|
170
|
+
});
|
|
171
|
+
// ============================================
|
|
172
|
+
// Chat Validators
|
|
173
|
+
// ============================================
|
|
174
|
+
/**
|
|
175
|
+
* Message content validator
|
|
176
|
+
*/
|
|
177
|
+
export const messageContentValidator = z
|
|
178
|
+
.string()
|
|
179
|
+
.min(1, 'Message cannot be empty')
|
|
180
|
+
.max(MAX_MESSAGE_LENGTH, `Message too long (max ${MAX_MESSAGE_LENGTH} characters)`)
|
|
181
|
+
.trim();
|
|
182
|
+
/**
|
|
183
|
+
* Message type validator
|
|
184
|
+
*/
|
|
185
|
+
export const messageTypeValidator = z.enum(['text', 'image', 'system', 'deleted']);
|
|
186
|
+
// ============================================
|
|
187
|
+
// Interest Validators
|
|
188
|
+
// ============================================
|
|
189
|
+
/**
|
|
190
|
+
* Interest message validator
|
|
191
|
+
*/
|
|
192
|
+
export const interestMessageValidator = z
|
|
193
|
+
.string()
|
|
194
|
+
.min(10, 'Message must be at least 10 characters')
|
|
195
|
+
.max(500, 'Message must be at most 500 characters')
|
|
196
|
+
.trim();
|
|
197
|
+
// ============================================
|
|
198
|
+
// Payment Validators
|
|
199
|
+
// ============================================
|
|
200
|
+
/**
|
|
201
|
+
* Currency code validator (ISO 4217)
|
|
202
|
+
*/
|
|
203
|
+
export const currencyCodeValidator = z.string().length(3, 'Invalid currency code').toUpperCase();
|
|
204
|
+
/**
|
|
205
|
+
* Promo code validator
|
|
206
|
+
*/
|
|
207
|
+
export const promoCodeValidator = z
|
|
208
|
+
.string()
|
|
209
|
+
.min(4, 'Promo code too short')
|
|
210
|
+
.max(20, 'Promo code too long')
|
|
211
|
+
.regex(/^[A-Z0-9]+$/, 'Invalid promo code format')
|
|
212
|
+
.toUpperCase();
|
|
213
|
+
// ============================================
|
|
214
|
+
// Common Object Validators
|
|
215
|
+
// ============================================
|
|
216
|
+
/**
|
|
217
|
+
* Pagination validator
|
|
218
|
+
*/
|
|
219
|
+
export const paginationValidator = z.object({
|
|
220
|
+
page: z.number().int().min(1).default(1),
|
|
221
|
+
limit: z.number().int().min(1).max(100).default(20),
|
|
222
|
+
});
|
|
223
|
+
/**
|
|
224
|
+
* ID validator (nanoid format)
|
|
225
|
+
*/
|
|
226
|
+
export const idValidator = z.string().min(8, 'Invalid ID').max(32, 'Invalid ID');
|
|
227
|
+
/**
|
|
228
|
+
* Prefixed ID validator
|
|
229
|
+
*/
|
|
230
|
+
export const prefixedIdValidator = (prefix) => z.string().regex(new RegExp(`^${prefix}_[a-zA-Z0-9_-]+$`), `Invalid ${prefix} ID`);
|
|
231
|
+
/**
|
|
232
|
+
* MongoDB ObjectId validator
|
|
233
|
+
*/
|
|
234
|
+
export const objectIdValidator = z.string().regex(/^[a-f\d]{24}$/i, 'Invalid ObjectId');
|
|
235
|
+
/**
|
|
236
|
+
* UUID validator
|
|
237
|
+
*/
|
|
238
|
+
export const uuidValidator = z.string().uuid('Invalid UUID');
|
|
239
|
+
// ============================================
|
|
240
|
+
// File Validators
|
|
241
|
+
// ============================================
|
|
242
|
+
/**
|
|
243
|
+
* Image MIME type validator
|
|
244
|
+
*/
|
|
245
|
+
export const imageMimeTypeValidator = z.enum(['image/jpeg', 'image/png', 'image/webp']);
|
|
246
|
+
/**
|
|
247
|
+
* File size validator (in bytes)
|
|
248
|
+
*/
|
|
249
|
+
export const fileSizeValidator = (maxBytes) => z.number().max(maxBytes, `File too large (max ${Math.round(maxBytes / 1024 / 1024)}MB)`);
|
|
250
|
+
// ============================================
|
|
251
|
+
// Array/Range Validators
|
|
252
|
+
// ============================================
|
|
253
|
+
/**
|
|
254
|
+
* Age range validator
|
|
255
|
+
*/
|
|
256
|
+
export const ageRangeValidator = z
|
|
257
|
+
.object({
|
|
258
|
+
min: z.number().int().min(MIN_AGE).max(MAX_AGE),
|
|
259
|
+
max: z.number().int().min(MIN_AGE).max(MAX_AGE),
|
|
260
|
+
})
|
|
261
|
+
.refine((data) => data.min <= data.max, {
|
|
262
|
+
message: 'Minimum age must be less than or equal to maximum age',
|
|
263
|
+
});
|
|
264
|
+
/**
|
|
265
|
+
* Height range validator
|
|
266
|
+
*/
|
|
267
|
+
export const heightRangeValidator = z
|
|
268
|
+
.object({
|
|
269
|
+
min: z.number().int().min(MIN_HEIGHT_CM).max(MAX_HEIGHT_CM),
|
|
270
|
+
max: z.number().int().min(MIN_HEIGHT_CM).max(MAX_HEIGHT_CM),
|
|
271
|
+
})
|
|
272
|
+
.refine((data) => data.min <= data.max, {
|
|
273
|
+
message: 'Minimum height must be less than or equal to maximum height',
|
|
274
|
+
});
|
|
275
|
+
// ============================================
|
|
276
|
+
// Helper Functions
|
|
277
|
+
// ============================================
|
|
278
|
+
/**
|
|
279
|
+
* Create an optional version of any validator
|
|
280
|
+
*/
|
|
281
|
+
export function optional(schema) {
|
|
282
|
+
return schema.optional().nullable();
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Create a validator that trims and lowercases strings
|
|
286
|
+
*/
|
|
287
|
+
export function normalizedString(min = 1, max = 255) {
|
|
288
|
+
return z.string().min(min).max(max).trim().toLowerCase();
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Validate and parse data, returning errors in a field map
|
|
292
|
+
*/
|
|
293
|
+
export function validateWithFieldErrors(schema, data) {
|
|
294
|
+
const result = schema.safeParse(data);
|
|
295
|
+
if (result.success) {
|
|
296
|
+
return { success: true, data: result.data };
|
|
297
|
+
}
|
|
298
|
+
const errors = {};
|
|
299
|
+
result.error.errors.forEach((err) => {
|
|
300
|
+
const path = err.path.join('.');
|
|
301
|
+
if (!errors[path]) {
|
|
302
|
+
errors[path] = err.message;
|
|
303
|
+
}
|
|
304
|
+
});
|
|
305
|
+
return { success: false, errors };
|
|
306
|
+
}
|
|
307
|
+
//# sourceMappingURL=validators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/validation/validators.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@managesome/knotr-toolkit",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "A Toolkit Library for Knotr",
|
|
3
|
+
"version": "0.8.5",
|
|
4
|
+
"description": "A Toolkit Library for Knotr - Types, Constants, Helpers, Validation, and Mongoose Schemas",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -18,11 +18,31 @@
|
|
|
18
18
|
"types": "./dist/constants/index.d.ts",
|
|
19
19
|
"default": "./dist/constants/index.js"
|
|
20
20
|
},
|
|
21
|
+
"./helpers": {
|
|
22
|
+
"types": "./dist/helpers/index.d.ts",
|
|
23
|
+
"default": "./dist/helpers/index.js"
|
|
24
|
+
},
|
|
21
25
|
"./i18n": {
|
|
22
26
|
"types": "./dist/i18n/index.d.ts",
|
|
23
27
|
"default": "./dist/i18n/index.js"
|
|
24
28
|
},
|
|
25
|
-
"./i18n/*": "./dist/i18n/*.json"
|
|
29
|
+
"./i18n/*": "./dist/i18n/*.json",
|
|
30
|
+
"./client": {
|
|
31
|
+
"types": "./dist/client/index.d.ts",
|
|
32
|
+
"default": "./dist/client/index.js"
|
|
33
|
+
},
|
|
34
|
+
"./validation": {
|
|
35
|
+
"types": "./dist/validation/index.d.ts",
|
|
36
|
+
"default": "./dist/validation/index.js"
|
|
37
|
+
},
|
|
38
|
+
"./backend": {
|
|
39
|
+
"types": "./dist/backend/index.d.ts",
|
|
40
|
+
"default": "./dist/backend/index.js"
|
|
41
|
+
},
|
|
42
|
+
"./schemas": {
|
|
43
|
+
"types": "./dist/schemas/index.d.ts",
|
|
44
|
+
"default": "./dist/schemas/index.js"
|
|
45
|
+
}
|
|
26
46
|
},
|
|
27
47
|
"files": [
|
|
28
48
|
"dist"
|
|
@@ -40,14 +60,28 @@
|
|
|
40
60
|
"clean": "rm -rf dist"
|
|
41
61
|
},
|
|
42
62
|
"devDependencies": {
|
|
63
|
+
"@types/express": "^4.17.21",
|
|
43
64
|
"@types/jest": "^29.5.14",
|
|
44
65
|
"jest": "^29.7.0",
|
|
66
|
+
"mongoose": "^9.1.5",
|
|
45
67
|
"prettier": "^3.5.3",
|
|
46
68
|
"ts-jest": "^29.3.1",
|
|
47
69
|
"tslint": "^6.1.3",
|
|
48
70
|
"tslint-config-prettier": "^1.18.0",
|
|
49
71
|
"typescript": "^5.8.3"
|
|
50
72
|
},
|
|
73
|
+
"dependencies": {
|
|
74
|
+
"nanoid": "^5.0.9",
|
|
75
|
+
"zod": "^3.24.4"
|
|
76
|
+
},
|
|
77
|
+
"peerDependencies": {
|
|
78
|
+
"mongoose": "^8.0.0"
|
|
79
|
+
},
|
|
80
|
+
"peerDependenciesMeta": {
|
|
81
|
+
"mongoose": {
|
|
82
|
+
"optional": true
|
|
83
|
+
}
|
|
84
|
+
},
|
|
51
85
|
"author": "Knotr",
|
|
52
86
|
"license": "UNLICENSED",
|
|
53
87
|
"repository": {
|