@exyconn/common 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/README.md +259 -0
  2. package/dist/client/http/index.d.mts +85 -0
  3. package/dist/client/http/index.d.ts +85 -0
  4. package/dist/client/http/index.js +127 -0
  5. package/dist/client/http/index.js.map +1 -0
  6. package/dist/client/http/index.mjs +109 -0
  7. package/dist/client/http/index.mjs.map +1 -0
  8. package/dist/client/index.d.mts +7 -0
  9. package/dist/client/index.d.ts +7 -0
  10. package/dist/client/index.js +964 -0
  11. package/dist/client/index.js.map +1 -0
  12. package/dist/client/index.mjs +889 -0
  13. package/dist/client/index.mjs.map +1 -0
  14. package/dist/client/logger/index.d.mts +53 -0
  15. package/dist/client/logger/index.d.ts +53 -0
  16. package/dist/client/logger/index.js +120 -0
  17. package/dist/client/logger/index.js.map +1 -0
  18. package/dist/client/logger/index.mjs +116 -0
  19. package/dist/client/logger/index.mjs.map +1 -0
  20. package/dist/client/utils/index.d.mts +285 -0
  21. package/dist/client/utils/index.d.ts +285 -0
  22. package/dist/client/utils/index.js +403 -0
  23. package/dist/client/utils/index.js.map +1 -0
  24. package/dist/client/utils/index.mjs +362 -0
  25. package/dist/client/utils/index.mjs.map +1 -0
  26. package/dist/index-BNdT-2X4.d.ts +229 -0
  27. package/dist/index-CcrANHAQ.d.mts +59 -0
  28. package/dist/index-ClWtDfwk.d.ts +833 -0
  29. package/dist/index-DSW6JfD-.d.mts +833 -0
  30. package/dist/index-Du0LLt9f.d.mts +229 -0
  31. package/dist/index-iTKxFa78.d.ts +59 -0
  32. package/dist/index.d.mts +171 -0
  33. package/dist/index.d.ts +171 -0
  34. package/dist/index.js +3806 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/index.mjs +3792 -0
  37. package/dist/index.mjs.map +1 -0
  38. package/dist/response.types-D--UhLJq.d.mts +67 -0
  39. package/dist/response.types-D--UhLJq.d.ts +67 -0
  40. package/dist/server/db/index.d.mts +38 -0
  41. package/dist/server/db/index.d.ts +38 -0
  42. package/dist/server/db/index.js +68 -0
  43. package/dist/server/db/index.js.map +1 -0
  44. package/dist/server/db/index.mjs +60 -0
  45. package/dist/server/db/index.mjs.map +1 -0
  46. package/dist/server/enums/index.d.mts +46 -0
  47. package/dist/server/enums/index.d.ts +46 -0
  48. package/dist/server/enums/index.js +48 -0
  49. package/dist/server/enums/index.js.map +1 -0
  50. package/dist/server/enums/index.mjs +43 -0
  51. package/dist/server/enums/index.mjs.map +1 -0
  52. package/dist/server/index.d.mts +9 -0
  53. package/dist/server/index.d.ts +9 -0
  54. package/dist/server/index.js +569 -0
  55. package/dist/server/index.js.map +1 -0
  56. package/dist/server/index.mjs +523 -0
  57. package/dist/server/index.mjs.map +1 -0
  58. package/dist/server/logger/index.d.mts +34 -0
  59. package/dist/server/logger/index.d.ts +34 -0
  60. package/dist/server/logger/index.js +125 -0
  61. package/dist/server/logger/index.js.map +1 -0
  62. package/dist/server/logger/index.mjs +113 -0
  63. package/dist/server/logger/index.mjs.map +1 -0
  64. package/dist/server/middleware/index.d.mts +56 -0
  65. package/dist/server/middleware/index.d.ts +56 -0
  66. package/dist/server/middleware/index.js +128 -0
  67. package/dist/server/middleware/index.js.map +1 -0
  68. package/dist/server/middleware/index.mjs +118 -0
  69. package/dist/server/middleware/index.mjs.map +1 -0
  70. package/dist/server/response/index.d.mts +86 -0
  71. package/dist/server/response/index.d.ts +86 -0
  72. package/dist/server/response/index.js +140 -0
  73. package/dist/server/response/index.js.map +1 -0
  74. package/dist/server/response/index.mjs +126 -0
  75. package/dist/server/response/index.mjs.map +1 -0
  76. package/dist/server/utils/index.d.mts +69 -0
  77. package/dist/server/utils/index.d.ts +69 -0
  78. package/dist/server/utils/index.js +114 -0
  79. package/dist/server/utils/index.js.map +1 -0
  80. package/dist/server/utils/index.mjs +106 -0
  81. package/dist/server/utils/index.mjs.map +1 -0
  82. package/dist/shared/index.d.mts +4 -0
  83. package/dist/shared/index.d.ts +4 -0
  84. package/dist/shared/index.js +933 -0
  85. package/dist/shared/index.js.map +1 -0
  86. package/dist/shared/index.mjs +612 -0
  87. package/dist/shared/index.mjs.map +1 -0
  88. package/package.json +202 -0
@@ -0,0 +1,833 @@
1
+ import { A as ApiErrorResponse, a as ApiResponse, b as ApiSuccessResponse, B as BaseFilterParams, C as CreateResponse, D as DeleteResponse, F as FilterWithPagination, G as GetResponse, L as ListResponse, P as PaginatedResponse, c as PaginationMeta, d as PaginationParams, U as UpdateResponse } from './response.types-D--UhLJq.js';
2
+ import { addDays, addHours, addMinutes, addMonths, addWeeks, addYears, differenceInDays, differenceInHours, differenceInMinutes, differenceInMonths, differenceInSeconds, differenceInWeeks, differenceInYears, eachDayOfInterval, eachMonthOfInterval, eachWeekOfInterval, endOfDay, endOfMonth, endOfWeek, endOfYear, format, formatDistance, formatDistanceToNow, formatDuration, formatRelative, getDate, getDay, getHours, getMinutes, getMonth, getSeconds, getYear, intervalToDuration, isAfter, isBefore, isEqual, isFuture, isPast, isSameDay, isSameMonth, isSameWeek, isSameYear, isThisMonth, isThisWeek, isThisYear, isToday, isTomorrow, isValid, isYesterday, parseISO, setHours, setMinutes, setSeconds, startOfDay, startOfMonth, startOfWeek, startOfYear, subDays, subHours, subMinutes, subMonths, subWeeks, subYears } from 'date-fns';
3
+ import { formatInTimeZone, fromZonedTime, toZonedTime } from 'date-fns-tz';
4
+
5
+ /**
6
+ * User Types
7
+ */
8
+ interface BaseUser {
9
+ id: string;
10
+ email: string;
11
+ name?: string;
12
+ firstName?: string;
13
+ lastName?: string;
14
+ avatar?: string;
15
+ isActive?: boolean;
16
+ createdAt?: string | Date;
17
+ updatedAt?: string | Date;
18
+ }
19
+ interface UserWithRole extends BaseUser {
20
+ role: string | UserRole;
21
+ }
22
+ interface UserRole {
23
+ id: string;
24
+ name: string;
25
+ permissions?: string[];
26
+ }
27
+ /**
28
+ * Authentication Types
29
+ */
30
+ interface LoginCredentials {
31
+ email: string;
32
+ password: string;
33
+ }
34
+ interface RegisterCredentials extends LoginCredentials {
35
+ name?: string;
36
+ firstName?: string;
37
+ lastName?: string;
38
+ }
39
+ interface AuthTokens {
40
+ accessToken: string;
41
+ refreshToken?: string;
42
+ expiresIn?: number;
43
+ }
44
+ interface AuthResponse {
45
+ user: BaseUser;
46
+ tokens: AuthTokens;
47
+ }
48
+ interface JwtPayload {
49
+ userId: string;
50
+ email: string;
51
+ role?: string;
52
+ iat?: number;
53
+ exp?: number;
54
+ }
55
+ /**
56
+ * Password Reset Types
57
+ */
58
+ interface ForgotPasswordRequest {
59
+ email: string;
60
+ }
61
+ interface ResetPasswordRequest {
62
+ token: string;
63
+ password: string;
64
+ confirmPassword: string;
65
+ }
66
+ interface ChangePasswordRequest {
67
+ currentPassword: string;
68
+ newPassword: string;
69
+ confirmPassword: string;
70
+ }
71
+
72
+ /**
73
+ * Common Entity Types
74
+ */
75
+ interface BaseEntity {
76
+ id: string;
77
+ createdAt?: string | Date;
78
+ updatedAt?: string | Date;
79
+ }
80
+ interface SoftDeleteEntity extends BaseEntity {
81
+ deletedAt?: string | Date | null;
82
+ isDeleted?: boolean;
83
+ }
84
+ interface AuditableEntity extends BaseEntity {
85
+ createdBy?: string;
86
+ updatedBy?: string;
87
+ }
88
+ interface OrganizationEntity extends BaseEntity {
89
+ organizationId: string;
90
+ }
91
+ /**
92
+ * Timestamps
93
+ */
94
+ interface Timestamps {
95
+ createdAt: string | Date;
96
+ updatedAt: string | Date;
97
+ }
98
+ /**
99
+ * Generic ID Types
100
+ */
101
+ type ID = string;
102
+ type ObjectId = string;
103
+ /**
104
+ * Nullable Type Helper
105
+ */
106
+ type Nullable<T> = T | null;
107
+ /**
108
+ * Optional Type Helper
109
+ */
110
+ type Optional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
111
+ /**
112
+ * Required Type Helper
113
+ */
114
+ type RequiredFields<T, K extends keyof T> = T & Required<Pick<T, K>>;
115
+ /**
116
+ * Key-Value Pair
117
+ */
118
+ interface KeyValuePair<T = string> {
119
+ key: string;
120
+ value: T;
121
+ }
122
+ /**
123
+ * Select Option (for dropdowns)
124
+ */
125
+ interface SelectOption<T = string> {
126
+ label: string;
127
+ value: T;
128
+ disabled?: boolean;
129
+ }
130
+ /**
131
+ * Sort Order
132
+ */
133
+ type SortOrder = 'asc' | 'desc';
134
+ /**
135
+ * Sort Config
136
+ */
137
+ interface SortConfig {
138
+ field: string;
139
+ order: SortOrder;
140
+ }
141
+
142
+ /**
143
+ * Environment Configuration
144
+ * Shared config helpers for both client and server
145
+ */
146
+ interface EnvConfig {
147
+ NODE_ENV: 'development' | 'production' | 'test';
148
+ PORT?: number;
149
+ API_URL?: string;
150
+ DATABASE_URL?: string;
151
+ JWT_SECRET?: string;
152
+ JWT_EXPIRES_IN?: string;
153
+ LOG_LEVEL?: string;
154
+ [key: string]: string | number | boolean | undefined;
155
+ }
156
+ /**
157
+ * Get environment variable with type safety
158
+ */
159
+ declare const getEnv: <T extends string | number | boolean>(key: string, defaultValue?: T) => T;
160
+ /**
161
+ * Get optional environment variable
162
+ */
163
+ declare const getEnvOptional: <T extends string | number | boolean>(key: string, defaultValue?: T) => T | undefined;
164
+ /**
165
+ * Check if environment is production
166
+ */
167
+ declare const isProd: () => boolean;
168
+ /**
169
+ * Check if environment is development
170
+ */
171
+ declare const isDev: () => boolean;
172
+ /**
173
+ * Check if environment is test
174
+ */
175
+ declare const isTest: () => boolean;
176
+ /**
177
+ * Validate required environment variables
178
+ */
179
+ declare const validateEnv: (requiredVars: string[]) => void;
180
+
181
+ /**
182
+ * HTTP Status Codes
183
+ */
184
+ declare const HTTP_STATUS: {
185
+ readonly OK: 200;
186
+ readonly CREATED: 201;
187
+ readonly ACCEPTED: 202;
188
+ readonly NO_CONTENT: 204;
189
+ readonly MOVED_PERMANENTLY: 301;
190
+ readonly FOUND: 302;
191
+ readonly NOT_MODIFIED: 304;
192
+ readonly TEMPORARY_REDIRECT: 307;
193
+ readonly PERMANENT_REDIRECT: 308;
194
+ readonly BAD_REQUEST: 400;
195
+ readonly UNAUTHORIZED: 401;
196
+ readonly FORBIDDEN: 403;
197
+ readonly NOT_FOUND: 404;
198
+ readonly METHOD_NOT_ALLOWED: 405;
199
+ readonly CONFLICT: 409;
200
+ readonly GONE: 410;
201
+ readonly UNPROCESSABLE_ENTITY: 422;
202
+ readonly TOO_MANY_REQUESTS: 429;
203
+ readonly INTERNAL_SERVER_ERROR: 500;
204
+ readonly NOT_IMPLEMENTED: 501;
205
+ readonly BAD_GATEWAY: 502;
206
+ readonly SERVICE_UNAVAILABLE: 503;
207
+ readonly GATEWAY_TIMEOUT: 504;
208
+ };
209
+ type HttpStatusCode = (typeof HTTP_STATUS)[keyof typeof HTTP_STATUS];
210
+ /**
211
+ * HTTP Status Messages
212
+ */
213
+ declare const HTTP_STATUS_MESSAGES: Record<number, string>;
214
+ /**
215
+ * Common Status Values
216
+ */
217
+ declare const STATUS: {
218
+ readonly ACTIVE: "active";
219
+ readonly INACTIVE: "inactive";
220
+ readonly PENDING: "pending";
221
+ readonly APPROVED: "approved";
222
+ readonly REJECTED: "rejected";
223
+ readonly DELETED: "deleted";
224
+ readonly ARCHIVED: "archived";
225
+ readonly DRAFT: "draft";
226
+ readonly PUBLISHED: "published";
227
+ readonly SUSPENDED: "suspended";
228
+ };
229
+ type StatusValue = (typeof STATUS)[keyof typeof STATUS];
230
+ /**
231
+ * User Status Values
232
+ */
233
+ declare const USER_STATUS: {
234
+ readonly ACTIVE: "active";
235
+ readonly INACTIVE: "inactive";
236
+ readonly PENDING: "pending";
237
+ readonly SUSPENDED: "suspended";
238
+ readonly BANNED: "banned";
239
+ };
240
+ type UserStatusValue = (typeof USER_STATUS)[keyof typeof USER_STATUS];
241
+ /**
242
+ * Common Roles
243
+ */
244
+ declare const ROLES: {
245
+ readonly ADMIN: "admin";
246
+ readonly USER: "user";
247
+ readonly MODERATOR: "moderator";
248
+ readonly GUEST: "guest";
249
+ readonly SUPER_ADMIN: "super_admin";
250
+ };
251
+ type RoleValue = (typeof ROLES)[keyof typeof ROLES];
252
+ /**
253
+ * Pagination Defaults
254
+ */
255
+ declare const PAGINATION: {
256
+ readonly DEFAULT_PAGE: 1;
257
+ readonly DEFAULT_LIMIT: 10;
258
+ readonly MAX_LIMIT: 100;
259
+ };
260
+ /**
261
+ * Token Types
262
+ */
263
+ declare const TOKEN_TYPES: {
264
+ readonly ACCESS: "access";
265
+ readonly REFRESH: "refresh";
266
+ readonly RESET_PASSWORD: "reset_password";
267
+ readonly EMAIL_VERIFICATION: "email_verification";
268
+ };
269
+ type TokenType = (typeof TOKEN_TYPES)[keyof typeof TOKEN_TYPES];
270
+
271
+ /**
272
+ * Enhanced Date/Time utilities using date-fns with timezone support
273
+ * Deep level date handling for all common operations
274
+ */
275
+
276
+ /**
277
+ * Date input type - accepts Date, string (ISO), or timestamp
278
+ */
279
+ type DateInput = Date | string | number;
280
+ /**
281
+ * Parse any date input to Date object
282
+ */
283
+ declare const parseDate: (date: DateInput) => Date;
284
+ /**
285
+ * Check if date input is valid
286
+ */
287
+ declare const isValidDate: (date: DateInput) => boolean;
288
+ /**
289
+ * Format presets for common date formats
290
+ */
291
+ declare const DATE_FORMATS: {
292
+ readonly DATE_SHORT: "MM/dd/yyyy";
293
+ readonly DATE_MEDIUM: "MMM d, yyyy";
294
+ readonly DATE_LONG: "MMMM d, yyyy";
295
+ readonly DATE_FULL: "EEEE, MMMM d, yyyy";
296
+ readonly DATE_ISO: "yyyy-MM-dd";
297
+ readonly TIME_SHORT: "h:mm a";
298
+ readonly TIME_MEDIUM: "h:mm:ss a";
299
+ readonly TIME_24H: "HH:mm";
300
+ readonly TIME_24H_FULL: "HH:mm:ss";
301
+ readonly DATETIME_SHORT: "MM/dd/yyyy h:mm a";
302
+ readonly DATETIME_MEDIUM: "MMM d, yyyy h:mm a";
303
+ readonly DATETIME_LONG: "MMMM d, yyyy h:mm a";
304
+ readonly DATETIME_FULL: "EEEE, MMMM d, yyyy h:mm a";
305
+ readonly DATETIME_ISO: "yyyy-MM-dd'T'HH:mm:ss";
306
+ readonly MONTH_YEAR: "MMMM yyyy";
307
+ readonly MONTH_DAY: "MMM d";
308
+ readonly DAY_MONTH: "d MMM";
309
+ readonly WEEKDAY: "EEEE";
310
+ readonly WEEKDAY_SHORT: "EEE";
311
+ };
312
+ /**
313
+ * Format date with preset or custom format
314
+ */
315
+ declare const formatDate: (date: DateInput, formatStr?: string) => string;
316
+ /**
317
+ * Format date with time
318
+ */
319
+ declare const formatDateTime: (date: DateInput, formatStr?: string) => string;
320
+ /**
321
+ * Format date in a specific timezone
322
+ */
323
+ declare const formatDateInTimezone: (date: DateInput, timezone: string, formatStr?: string) => string;
324
+ /**
325
+ * Format date as relative time (e.g., "2 hours ago", "in 3 days")
326
+ */
327
+ declare const formatRelativeTime: (date: DateInput, baseDate?: DateInput) => string;
328
+ /**
329
+ * Format date as smart relative (Today at 3:30 PM, Yesterday, etc.)
330
+ */
331
+ declare const formatSmartDate: (date: DateInput) => string;
332
+ /**
333
+ * Format duration between two dates in human readable form
334
+ */
335
+ declare const formatDateRange: (start: DateInput, end: DateInput) => string;
336
+ /**
337
+ * Convert date to a specific timezone
338
+ */
339
+ declare const toTimezone: (date: DateInput, timezone: string) => Date;
340
+ /**
341
+ * Convert date from a specific timezone to UTC
342
+ */
343
+ declare const fromTimezone: (date: DateInput, timezone: string) => Date;
344
+ /**
345
+ * Get current time in a specific timezone
346
+ */
347
+ declare const nowInTimezone: (timezone: string) => Date;
348
+ /**
349
+ * Format time difference between timezones
350
+ */
351
+ declare const getTimezoneDifference: (timezone1: string, timezone2: string) => string;
352
+ /**
353
+ * Add time to a date
354
+ */
355
+ declare const addTime: (date: DateInput, amount: number, unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years") => Date;
356
+ /**
357
+ * Subtract time from a date
358
+ */
359
+ declare const subtractTime: (date: DateInput, amount: number, unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years") => Date;
360
+ /**
361
+ * Get difference between two dates
362
+ */
363
+ declare const getDateDifference: (date1: DateInput, date2: DateInput, unit: "seconds" | "minutes" | "hours" | "days" | "weeks" | "months" | "years") => number;
364
+ /**
365
+ * Get all days in a range
366
+ */
367
+ declare const getDaysInRange: (start: DateInput, end: DateInput) => Date[];
368
+ /**
369
+ * Get all weeks in a range
370
+ */
371
+ declare const getWeeksInRange: (start: DateInput, end: DateInput) => Date[];
372
+ /**
373
+ * Get all months in a range
374
+ */
375
+ declare const getMonthsInRange: (start: DateInput, end: DateInput) => Date[];
376
+ /**
377
+ * Get start and end of day
378
+ */
379
+ declare const getDayBoundaries: (date: DateInput) => {
380
+ start: Date;
381
+ end: Date;
382
+ };
383
+ /**
384
+ * Get start and end of week
385
+ */
386
+ declare const getWeekBoundaries: (date: DateInput, weekStartsOn?: 0 | 1) => {
387
+ start: Date;
388
+ end: Date;
389
+ };
390
+ /**
391
+ * Get start and end of month
392
+ */
393
+ declare const getMonthBoundaries: (date: DateInput) => {
394
+ start: Date;
395
+ end: Date;
396
+ };
397
+ /**
398
+ * Get start and end of year
399
+ */
400
+ declare const getYearBoundaries: (date: DateInput) => {
401
+ start: Date;
402
+ end: Date;
403
+ };
404
+ /**
405
+ * Check if date is between two dates (inclusive)
406
+ */
407
+ declare const isDateBetween: (date: DateInput, start: DateInput, end: DateInput) => boolean;
408
+ /**
409
+ * Check if two date ranges overlap
410
+ */
411
+ declare const doDateRangesOverlap: (range1Start: DateInput, range1End: DateInput, range2Start: DateInput, range2End: DateInput) => boolean;
412
+ /**
413
+ * Get age from birthdate
414
+ */
415
+ declare const getAge: (birthDate: DateInput) => number;
416
+ /**
417
+ * Check if date is a weekend
418
+ */
419
+ declare const isWeekend: (date: DateInput) => boolean;
420
+ /**
421
+ * Check if date is a weekday
422
+ */
423
+ declare const isWeekday: (date: DateInput) => boolean;
424
+ /**
425
+ * Get days until a date
426
+ */
427
+ declare const daysUntil: (date: DateInput) => number;
428
+ /**
429
+ * Get days since a date
430
+ */
431
+ declare const daysSince: (date: DateInput) => number;
432
+ /**
433
+ * Format for HTML date input (yyyy-MM-dd)
434
+ */
435
+ declare const toDateInputValue: (date: DateInput) => string;
436
+ /**
437
+ * Format for HTML datetime-local input
438
+ */
439
+ declare const toDateTimeInputValue: (date: DateInput) => string;
440
+ /**
441
+ * Format for HTML time input (HH:mm)
442
+ */
443
+ declare const toTimeInputValue: (date: DateInput) => string;
444
+ /**
445
+ * Set time on a date
446
+ */
447
+ declare const setTime: (date: DateInput, hours: number, minutes: number, seconds?: number) => Date;
448
+ /**
449
+ * Combine date from one input and time from another
450
+ */
451
+ declare const combineDateAndTime: (dateInput: DateInput, timeInput: DateInput) => Date;
452
+ declare const _default: {
453
+ parseDate: (date: DateInput) => Date;
454
+ isValidDate: (date: DateInput) => boolean;
455
+ DATE_FORMATS: {
456
+ readonly DATE_SHORT: "MM/dd/yyyy";
457
+ readonly DATE_MEDIUM: "MMM d, yyyy";
458
+ readonly DATE_LONG: "MMMM d, yyyy";
459
+ readonly DATE_FULL: "EEEE, MMMM d, yyyy";
460
+ readonly DATE_ISO: "yyyy-MM-dd";
461
+ readonly TIME_SHORT: "h:mm a";
462
+ readonly TIME_MEDIUM: "h:mm:ss a";
463
+ readonly TIME_24H: "HH:mm";
464
+ readonly TIME_24H_FULL: "HH:mm:ss";
465
+ readonly DATETIME_SHORT: "MM/dd/yyyy h:mm a";
466
+ readonly DATETIME_MEDIUM: "MMM d, yyyy h:mm a";
467
+ readonly DATETIME_LONG: "MMMM d, yyyy h:mm a";
468
+ readonly DATETIME_FULL: "EEEE, MMMM d, yyyy h:mm a";
469
+ readonly DATETIME_ISO: "yyyy-MM-dd'T'HH:mm:ss";
470
+ readonly MONTH_YEAR: "MMMM yyyy";
471
+ readonly MONTH_DAY: "MMM d";
472
+ readonly DAY_MONTH: "d MMM";
473
+ readonly WEEKDAY: "EEEE";
474
+ readonly WEEKDAY_SHORT: "EEE";
475
+ };
476
+ formatDate: (date: DateInput, formatStr?: string) => string;
477
+ formatDateTime: (date: DateInput, formatStr?: string) => string;
478
+ formatDateInTimezone: (date: DateInput, timezone: string, formatStr?: string) => string;
479
+ formatRelativeTime: (date: DateInput, baseDate?: DateInput) => string;
480
+ formatSmartDate: (date: DateInput) => string;
481
+ formatDateRange: (start: DateInput, end: DateInput) => string;
482
+ toTimezone: (date: DateInput, timezone: string) => Date;
483
+ fromTimezone: (date: DateInput, timezone: string) => Date;
484
+ nowInTimezone: (timezone: string) => Date;
485
+ getTimezoneDifference: (timezone1: string, timezone2: string) => string;
486
+ addTime: (date: DateInput, amount: number, unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years") => Date;
487
+ subtractTime: (date: DateInput, amount: number, unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years") => Date;
488
+ getDateDifference: (date1: DateInput, date2: DateInput, unit: "seconds" | "minutes" | "hours" | "days" | "weeks" | "months" | "years") => number;
489
+ getDaysInRange: (start: DateInput, end: DateInput) => Date[];
490
+ getWeeksInRange: (start: DateInput, end: DateInput) => Date[];
491
+ getMonthsInRange: (start: DateInput, end: DateInput) => Date[];
492
+ getDayBoundaries: (date: DateInput) => {
493
+ start: Date;
494
+ end: Date;
495
+ };
496
+ getWeekBoundaries: (date: DateInput, weekStartsOn?: 0 | 1) => {
497
+ start: Date;
498
+ end: Date;
499
+ };
500
+ getMonthBoundaries: (date: DateInput) => {
501
+ start: Date;
502
+ end: Date;
503
+ };
504
+ getYearBoundaries: (date: DateInput) => {
505
+ start: Date;
506
+ end: Date;
507
+ };
508
+ isDateBetween: (date: DateInput, start: DateInput, end: DateInput) => boolean;
509
+ doDateRangesOverlap: (range1Start: DateInput, range1End: DateInput, range2Start: DateInput, range2End: DateInput) => boolean;
510
+ getAge: (birthDate: DateInput) => number;
511
+ isWeekend: (date: DateInput) => boolean;
512
+ isWeekday: (date: DateInput) => boolean;
513
+ daysUntil: (date: DateInput) => number;
514
+ daysSince: (date: DateInput) => number;
515
+ toDateInputValue: (date: DateInput) => string;
516
+ toDateTimeInputValue: (date: DateInput) => string;
517
+ toTimeInputValue: (date: DateInput) => string;
518
+ setTime: (date: DateInput, hours: number, minutes: number, seconds?: number) => Date;
519
+ combineDateAndTime: (dateInput: DateInput, timeInput: DateInput) => Date;
520
+ };
521
+
522
+ /**
523
+ * Common Validation Rules & Patterns
524
+ * Use with Yup, Zod, or custom validators
525
+ */
526
+ declare const VALIDATION_PATTERNS: {
527
+ /** Email pattern (RFC 5322 simplified) */
528
+ readonly EMAIL: RegExp;
529
+ /** Strong password: min 8 chars, uppercase, lowercase, number, special char */
530
+ readonly PASSWORD_STRONG: RegExp;
531
+ /** Medium password: min 8 chars, uppercase, lowercase, number */
532
+ readonly PASSWORD_MEDIUM: RegExp;
533
+ /** Basic password: min 8 chars */
534
+ readonly PASSWORD_BASIC: RegExp;
535
+ /** Phone number (international) */
536
+ readonly PHONE_INTERNATIONAL: RegExp;
537
+ /** Phone number (US) */
538
+ readonly PHONE_US: RegExp;
539
+ /** Phone number (India) */
540
+ readonly PHONE_INDIA: RegExp;
541
+ /** URL pattern */
542
+ readonly URL: RegExp;
543
+ /** URL with required protocol */
544
+ readonly URL_STRICT: RegExp;
545
+ /** Alphanumeric only */
546
+ readonly ALPHANUMERIC: RegExp;
547
+ /** Letters only */
548
+ readonly LETTERS_ONLY: RegExp;
549
+ /** Numbers only */
550
+ readonly NUMBERS_ONLY: RegExp;
551
+ /** Slug pattern (kebab-case) */
552
+ readonly SLUG: RegExp;
553
+ /** Username pattern (alphanumeric, underscore, hyphen) */
554
+ readonly USERNAME: RegExp;
555
+ /** Credit card (basic validation) */
556
+ readonly CREDIT_CARD: RegExp;
557
+ /** CVV (3 or 4 digits) */
558
+ readonly CVV: RegExp;
559
+ /** ZIP code (US) */
560
+ readonly ZIP_US: RegExp;
561
+ /** Postal code (India) */
562
+ readonly POSTAL_INDIA: RegExp;
563
+ /** IP Address (IPv4) */
564
+ readonly IPV4: RegExp;
565
+ /** Hex color */
566
+ readonly HEX_COLOR: RegExp;
567
+ /** Date (YYYY-MM-DD) */
568
+ readonly DATE_ISO: RegExp;
569
+ /** Time (HH:MM or HH:MM:SS) */
570
+ readonly TIME: RegExp;
571
+ };
572
+ /**
573
+ * Validate email format
574
+ */
575
+ declare const isValidEmail: (email: string) => boolean;
576
+ /**
577
+ * Validate password strength
578
+ */
579
+ declare const isValidPassword: (password: string, strength?: "basic" | "medium" | "strong") => boolean;
580
+ /**
581
+ * Validate phone number
582
+ */
583
+ declare const isValidPhone: (phone: string, format?: "international" | "us" | "india") => boolean;
584
+ /**
585
+ * Validate URL format
586
+ */
587
+ declare const isValidUrl: (url: string, requireProtocol?: boolean) => boolean;
588
+ /**
589
+ * Validate username format
590
+ */
591
+ declare const isValidUsername: (username: string) => boolean;
592
+ /**
593
+ * Validate slug format
594
+ */
595
+ declare const isValidSlug: (slug: string) => boolean;
596
+ declare const VALIDATION_MESSAGES: {
597
+ readonly REQUIRED: "This field is required";
598
+ readonly REQUIRED_FIELD: (field: string) => string;
599
+ readonly EMAIL_INVALID: "Please enter a valid email address";
600
+ readonly EMAIL_REQUIRED: "Email is required";
601
+ readonly PASSWORD_REQUIRED: "Password is required";
602
+ readonly PASSWORD_MIN_LENGTH: (length: number) => string;
603
+ readonly PASSWORD_WEAK: "Password is too weak";
604
+ readonly PASSWORD_MEDIUM: "Password must contain uppercase, lowercase, and number";
605
+ readonly PASSWORD_STRONG: "Password must contain uppercase, lowercase, number, and special character";
606
+ readonly PASSWORD_MISMATCH: "Passwords do not match";
607
+ readonly NAME_REQUIRED: "Name is required";
608
+ readonly FIRST_NAME_REQUIRED: "First name is required";
609
+ readonly LAST_NAME_REQUIRED: "Last name is required";
610
+ readonly NAME_MIN_LENGTH: (length: number) => string;
611
+ readonly NAME_MAX_LENGTH: (length: number) => string;
612
+ readonly PHONE_INVALID: "Please enter a valid phone number";
613
+ readonly PHONE_REQUIRED: "Phone number is required";
614
+ readonly URL_INVALID: "Please enter a valid URL";
615
+ readonly USERNAME_INVALID: "Username can only contain letters, numbers, underscores, and hyphens";
616
+ readonly USERNAME_MIN_LENGTH: "Username must be at least 3 characters";
617
+ readonly USERNAME_MAX_LENGTH: "Username must be at most 30 characters";
618
+ readonly USERNAME_TAKEN: "This username is already taken";
619
+ readonly MIN_LENGTH: (field: string, length: number) => string;
620
+ readonly MAX_LENGTH: (field: string, length: number) => string;
621
+ readonly MIN_VALUE: (field: string, value: number) => string;
622
+ readonly MAX_VALUE: (field: string, value: number) => string;
623
+ readonly INVALID_FORMAT: "Invalid format";
624
+ readonly TERMS_REQUIRED: "You must accept the terms and conditions";
625
+ };
626
+ declare const VALIDATION_RULES: {
627
+ readonly email: {
628
+ readonly pattern: RegExp;
629
+ readonly message: "Please enter a valid email address";
630
+ };
631
+ readonly password: {
632
+ readonly minLength: 8;
633
+ readonly pattern: RegExp;
634
+ readonly message: "Password must contain uppercase, lowercase, and number";
635
+ };
636
+ readonly passwordStrong: {
637
+ readonly minLength: 8;
638
+ readonly pattern: RegExp;
639
+ readonly message: "Password must contain uppercase, lowercase, number, and special character";
640
+ };
641
+ readonly name: {
642
+ readonly minLength: 2;
643
+ readonly maxLength: 50;
644
+ };
645
+ readonly username: {
646
+ readonly minLength: 3;
647
+ readonly maxLength: 30;
648
+ readonly pattern: RegExp;
649
+ readonly message: "Username can only contain letters, numbers, underscores, and hyphens";
650
+ };
651
+ readonly phone: {
652
+ readonly pattern: RegExp;
653
+ readonly message: "Please enter a valid phone number";
654
+ };
655
+ readonly url: {
656
+ readonly pattern: RegExp;
657
+ readonly message: "Please enter a valid URL";
658
+ };
659
+ };
660
+
661
+ declare const index_ApiErrorResponse: typeof ApiErrorResponse;
662
+ declare const index_ApiResponse: typeof ApiResponse;
663
+ declare const index_ApiSuccessResponse: typeof ApiSuccessResponse;
664
+ type index_AuditableEntity = AuditableEntity;
665
+ type index_AuthResponse = AuthResponse;
666
+ type index_AuthTokens = AuthTokens;
667
+ type index_BaseEntity = BaseEntity;
668
+ declare const index_BaseFilterParams: typeof BaseFilterParams;
669
+ type index_BaseUser = BaseUser;
670
+ type index_ChangePasswordRequest = ChangePasswordRequest;
671
+ declare const index_CreateResponse: typeof CreateResponse;
672
+ declare const index_DATE_FORMATS: typeof DATE_FORMATS;
673
+ type index_DateInput = DateInput;
674
+ declare const index_DeleteResponse: typeof DeleteResponse;
675
+ type index_EnvConfig = EnvConfig;
676
+ declare const index_FilterWithPagination: typeof FilterWithPagination;
677
+ type index_ForgotPasswordRequest = ForgotPasswordRequest;
678
+ declare const index_GetResponse: typeof GetResponse;
679
+ declare const index_HTTP_STATUS: typeof HTTP_STATUS;
680
+ declare const index_HTTP_STATUS_MESSAGES: typeof HTTP_STATUS_MESSAGES;
681
+ type index_HttpStatusCode = HttpStatusCode;
682
+ type index_ID = ID;
683
+ type index_JwtPayload = JwtPayload;
684
+ type index_KeyValuePair<T = string> = KeyValuePair<T>;
685
+ declare const index_ListResponse: typeof ListResponse;
686
+ type index_LoginCredentials = LoginCredentials;
687
+ type index_Nullable<T> = Nullable<T>;
688
+ type index_ObjectId = ObjectId;
689
+ type index_Optional<T, K extends keyof T> = Optional<T, K>;
690
+ type index_OrganizationEntity = OrganizationEntity;
691
+ declare const index_PAGINATION: typeof PAGINATION;
692
+ declare const index_PaginatedResponse: typeof PaginatedResponse;
693
+ declare const index_PaginationMeta: typeof PaginationMeta;
694
+ declare const index_PaginationParams: typeof PaginationParams;
695
+ declare const index_ROLES: typeof ROLES;
696
+ type index_RegisterCredentials = RegisterCredentials;
697
+ type index_RequiredFields<T, K extends keyof T> = RequiredFields<T, K>;
698
+ type index_ResetPasswordRequest = ResetPasswordRequest;
699
+ type index_RoleValue = RoleValue;
700
+ declare const index_STATUS: typeof STATUS;
701
+ type index_SelectOption<T = string> = SelectOption<T>;
702
+ type index_SoftDeleteEntity = SoftDeleteEntity;
703
+ type index_SortConfig = SortConfig;
704
+ type index_SortOrder = SortOrder;
705
+ type index_StatusValue = StatusValue;
706
+ declare const index_TOKEN_TYPES: typeof TOKEN_TYPES;
707
+ type index_Timestamps = Timestamps;
708
+ type index_TokenType = TokenType;
709
+ declare const index_USER_STATUS: typeof USER_STATUS;
710
+ declare const index_UpdateResponse: typeof UpdateResponse;
711
+ type index_UserRole = UserRole;
712
+ type index_UserStatusValue = UserStatusValue;
713
+ type index_UserWithRole = UserWithRole;
714
+ declare const index_VALIDATION_MESSAGES: typeof VALIDATION_MESSAGES;
715
+ declare const index_VALIDATION_PATTERNS: typeof VALIDATION_PATTERNS;
716
+ declare const index_VALIDATION_RULES: typeof VALIDATION_RULES;
717
+ declare const index_addDays: typeof addDays;
718
+ declare const index_addHours: typeof addHours;
719
+ declare const index_addMinutes: typeof addMinutes;
720
+ declare const index_addMonths: typeof addMonths;
721
+ declare const index_addTime: typeof addTime;
722
+ declare const index_addWeeks: typeof addWeeks;
723
+ declare const index_addYears: typeof addYears;
724
+ declare const index_combineDateAndTime: typeof combineDateAndTime;
725
+ declare const index_daysSince: typeof daysSince;
726
+ declare const index_daysUntil: typeof daysUntil;
727
+ declare const index_differenceInDays: typeof differenceInDays;
728
+ declare const index_differenceInHours: typeof differenceInHours;
729
+ declare const index_differenceInMinutes: typeof differenceInMinutes;
730
+ declare const index_differenceInMonths: typeof differenceInMonths;
731
+ declare const index_differenceInSeconds: typeof differenceInSeconds;
732
+ declare const index_differenceInWeeks: typeof differenceInWeeks;
733
+ declare const index_differenceInYears: typeof differenceInYears;
734
+ declare const index_doDateRangesOverlap: typeof doDateRangesOverlap;
735
+ declare const index_eachDayOfInterval: typeof eachDayOfInterval;
736
+ declare const index_eachMonthOfInterval: typeof eachMonthOfInterval;
737
+ declare const index_eachWeekOfInterval: typeof eachWeekOfInterval;
738
+ declare const index_endOfDay: typeof endOfDay;
739
+ declare const index_endOfMonth: typeof endOfMonth;
740
+ declare const index_endOfWeek: typeof endOfWeek;
741
+ declare const index_endOfYear: typeof endOfYear;
742
+ declare const index_format: typeof format;
743
+ declare const index_formatDate: typeof formatDate;
744
+ declare const index_formatDateInTimezone: typeof formatDateInTimezone;
745
+ declare const index_formatDateRange: typeof formatDateRange;
746
+ declare const index_formatDateTime: typeof formatDateTime;
747
+ declare const index_formatDistance: typeof formatDistance;
748
+ declare const index_formatDistanceToNow: typeof formatDistanceToNow;
749
+ declare const index_formatDuration: typeof formatDuration;
750
+ declare const index_formatInTimeZone: typeof formatInTimeZone;
751
+ declare const index_formatRelative: typeof formatRelative;
752
+ declare const index_formatRelativeTime: typeof formatRelativeTime;
753
+ declare const index_formatSmartDate: typeof formatSmartDate;
754
+ declare const index_fromTimezone: typeof fromTimezone;
755
+ declare const index_fromZonedTime: typeof fromZonedTime;
756
+ declare const index_getAge: typeof getAge;
757
+ declare const index_getDate: typeof getDate;
758
+ declare const index_getDateDifference: typeof getDateDifference;
759
+ declare const index_getDay: typeof getDay;
760
+ declare const index_getDayBoundaries: typeof getDayBoundaries;
761
+ declare const index_getDaysInRange: typeof getDaysInRange;
762
+ declare const index_getEnv: typeof getEnv;
763
+ declare const index_getEnvOptional: typeof getEnvOptional;
764
+ declare const index_getHours: typeof getHours;
765
+ declare const index_getMinutes: typeof getMinutes;
766
+ declare const index_getMonth: typeof getMonth;
767
+ declare const index_getMonthBoundaries: typeof getMonthBoundaries;
768
+ declare const index_getMonthsInRange: typeof getMonthsInRange;
769
+ declare const index_getSeconds: typeof getSeconds;
770
+ declare const index_getTimezoneDifference: typeof getTimezoneDifference;
771
+ declare const index_getWeekBoundaries: typeof getWeekBoundaries;
772
+ declare const index_getWeeksInRange: typeof getWeeksInRange;
773
+ declare const index_getYear: typeof getYear;
774
+ declare const index_getYearBoundaries: typeof getYearBoundaries;
775
+ declare const index_intervalToDuration: typeof intervalToDuration;
776
+ declare const index_isAfter: typeof isAfter;
777
+ declare const index_isBefore: typeof isBefore;
778
+ declare const index_isDateBetween: typeof isDateBetween;
779
+ declare const index_isDev: typeof isDev;
780
+ declare const index_isEqual: typeof isEqual;
781
+ declare const index_isFuture: typeof isFuture;
782
+ declare const index_isPast: typeof isPast;
783
+ declare const index_isProd: typeof isProd;
784
+ declare const index_isSameDay: typeof isSameDay;
785
+ declare const index_isSameMonth: typeof isSameMonth;
786
+ declare const index_isSameWeek: typeof isSameWeek;
787
+ declare const index_isSameYear: typeof isSameYear;
788
+ declare const index_isTest: typeof isTest;
789
+ declare const index_isThisMonth: typeof isThisMonth;
790
+ declare const index_isThisWeek: typeof isThisWeek;
791
+ declare const index_isThisYear: typeof isThisYear;
792
+ declare const index_isToday: typeof isToday;
793
+ declare const index_isTomorrow: typeof isTomorrow;
794
+ declare const index_isValid: typeof isValid;
795
+ declare const index_isValidDate: typeof isValidDate;
796
+ declare const index_isValidEmail: typeof isValidEmail;
797
+ declare const index_isValidPassword: typeof isValidPassword;
798
+ declare const index_isValidPhone: typeof isValidPhone;
799
+ declare const index_isValidSlug: typeof isValidSlug;
800
+ declare const index_isValidUrl: typeof isValidUrl;
801
+ declare const index_isValidUsername: typeof isValidUsername;
802
+ declare const index_isWeekday: typeof isWeekday;
803
+ declare const index_isWeekend: typeof isWeekend;
804
+ declare const index_isYesterday: typeof isYesterday;
805
+ declare const index_nowInTimezone: typeof nowInTimezone;
806
+ declare const index_parseDate: typeof parseDate;
807
+ declare const index_parseISO: typeof parseISO;
808
+ declare const index_setHours: typeof setHours;
809
+ declare const index_setMinutes: typeof setMinutes;
810
+ declare const index_setSeconds: typeof setSeconds;
811
+ declare const index_setTime: typeof setTime;
812
+ declare const index_startOfDay: typeof startOfDay;
813
+ declare const index_startOfMonth: typeof startOfMonth;
814
+ declare const index_startOfWeek: typeof startOfWeek;
815
+ declare const index_startOfYear: typeof startOfYear;
816
+ declare const index_subDays: typeof subDays;
817
+ declare const index_subHours: typeof subHours;
818
+ declare const index_subMinutes: typeof subMinutes;
819
+ declare const index_subMonths: typeof subMonths;
820
+ declare const index_subWeeks: typeof subWeeks;
821
+ declare const index_subYears: typeof subYears;
822
+ declare const index_subtractTime: typeof subtractTime;
823
+ declare const index_toDateInputValue: typeof toDateInputValue;
824
+ declare const index_toDateTimeInputValue: typeof toDateTimeInputValue;
825
+ declare const index_toTimeInputValue: typeof toTimeInputValue;
826
+ declare const index_toTimezone: typeof toTimezone;
827
+ declare const index_toZonedTime: typeof toZonedTime;
828
+ declare const index_validateEnv: typeof validateEnv;
829
+ declare namespace index {
830
+ export { index_ApiErrorResponse as ApiErrorResponse, index_ApiResponse as ApiResponse, index_ApiSuccessResponse as ApiSuccessResponse, type index_AuditableEntity as AuditableEntity, type index_AuthResponse as AuthResponse, type index_AuthTokens as AuthTokens, type index_BaseEntity as BaseEntity, index_BaseFilterParams as BaseFilterParams, type index_BaseUser as BaseUser, type index_ChangePasswordRequest as ChangePasswordRequest, index_CreateResponse as CreateResponse, index_DATE_FORMATS as DATE_FORMATS, type index_DateInput as DateInput, index_DeleteResponse as DeleteResponse, type index_EnvConfig as EnvConfig, index_FilterWithPagination as FilterWithPagination, type index_ForgotPasswordRequest as ForgotPasswordRequest, index_GetResponse as GetResponse, index_HTTP_STATUS as HTTP_STATUS, index_HTTP_STATUS_MESSAGES as HTTP_STATUS_MESSAGES, type index_HttpStatusCode as HttpStatusCode, type index_ID as ID, type index_JwtPayload as JwtPayload, type index_KeyValuePair as KeyValuePair, index_ListResponse as ListResponse, type index_LoginCredentials as LoginCredentials, type index_Nullable as Nullable, type index_ObjectId as ObjectId, type index_Optional as Optional, type index_OrganizationEntity as OrganizationEntity, index_PAGINATION as PAGINATION, index_PaginatedResponse as PaginatedResponse, index_PaginationMeta as PaginationMeta, index_PaginationParams as PaginationParams, index_ROLES as ROLES, type index_RegisterCredentials as RegisterCredentials, type index_RequiredFields as RequiredFields, type index_ResetPasswordRequest as ResetPasswordRequest, type index_RoleValue as RoleValue, index_STATUS as STATUS, type index_SelectOption as SelectOption, type index_SoftDeleteEntity as SoftDeleteEntity, type index_SortConfig as SortConfig, type index_SortOrder as SortOrder, type index_StatusValue as StatusValue, index_TOKEN_TYPES as TOKEN_TYPES, type index_Timestamps as Timestamps, type index_TokenType as TokenType, index_USER_STATUS as USER_STATUS, index_UpdateResponse as UpdateResponse, type index_UserRole as UserRole, type index_UserStatusValue as UserStatusValue, type index_UserWithRole as UserWithRole, index_VALIDATION_MESSAGES as VALIDATION_MESSAGES, index_VALIDATION_PATTERNS as VALIDATION_PATTERNS, index_VALIDATION_RULES as VALIDATION_RULES, index_addDays as addDays, index_addHours as addHours, index_addMinutes as addMinutes, index_addMonths as addMonths, index_addTime as addTime, index_addWeeks as addWeeks, index_addYears as addYears, index_combineDateAndTime as combineDateAndTime, _default as dateTime, index_daysSince as daysSince, index_daysUntil as daysUntil, index_differenceInDays as differenceInDays, index_differenceInHours as differenceInHours, index_differenceInMinutes as differenceInMinutes, index_differenceInMonths as differenceInMonths, index_differenceInSeconds as differenceInSeconds, index_differenceInWeeks as differenceInWeeks, index_differenceInYears as differenceInYears, index_doDateRangesOverlap as doDateRangesOverlap, index_eachDayOfInterval as eachDayOfInterval, index_eachMonthOfInterval as eachMonthOfInterval, index_eachWeekOfInterval as eachWeekOfInterval, index_endOfDay as endOfDay, index_endOfMonth as endOfMonth, index_endOfWeek as endOfWeek, index_endOfYear as endOfYear, index_format as format, index_formatDate as formatDate, index_formatDateInTimezone as formatDateInTimezone, index_formatDateRange as formatDateRange, index_formatDateTime as formatDateTime, index_formatDistance as formatDistance, index_formatDistanceToNow as formatDistanceToNow, index_formatDuration as formatDuration, index_formatInTimeZone as formatInTimeZone, index_formatRelative as formatRelative, index_formatRelativeTime as formatRelativeTime, index_formatSmartDate as formatSmartDate, index_fromTimezone as fromTimezone, index_fromZonedTime as fromZonedTime, index_getAge as getAge, index_getDate as getDate, index_getDateDifference as getDateDifference, index_getDay as getDay, index_getDayBoundaries as getDayBoundaries, index_getDaysInRange as getDaysInRange, index_getEnv as getEnv, index_getEnvOptional as getEnvOptional, index_getHours as getHours, index_getMinutes as getMinutes, index_getMonth as getMonth, index_getMonthBoundaries as getMonthBoundaries, index_getMonthsInRange as getMonthsInRange, index_getSeconds as getSeconds, index_getTimezoneDifference as getTimezoneDifference, index_getWeekBoundaries as getWeekBoundaries, index_getWeeksInRange as getWeeksInRange, index_getYear as getYear, index_getYearBoundaries as getYearBoundaries, index_intervalToDuration as intervalToDuration, index_isAfter as isAfter, index_isBefore as isBefore, index_isDateBetween as isDateBetween, index_isDev as isDev, index_isEqual as isEqual, index_isFuture as isFuture, index_isPast as isPast, index_isProd as isProd, index_isSameDay as isSameDay, index_isSameMonth as isSameMonth, index_isSameWeek as isSameWeek, index_isSameYear as isSameYear, index_isTest as isTest, index_isThisMonth as isThisMonth, index_isThisWeek as isThisWeek, index_isThisYear as isThisYear, index_isToday as isToday, index_isTomorrow as isTomorrow, index_isValid as isValid, index_isValidDate as isValidDate, index_isValidEmail as isValidEmail, index_isValidPassword as isValidPassword, index_isValidPhone as isValidPhone, index_isValidSlug as isValidSlug, index_isValidUrl as isValidUrl, index_isValidUsername as isValidUsername, index_isWeekday as isWeekday, index_isWeekend as isWeekend, index_isYesterday as isYesterday, index_nowInTimezone as nowInTimezone, index_parseDate as parseDate, index_parseISO as parseISO, index_setHours as setHours, index_setMinutes as setMinutes, index_setSeconds as setSeconds, index_setTime as setTime, index_startOfDay as startOfDay, index_startOfMonth as startOfMonth, index_startOfWeek as startOfWeek, index_startOfYear as startOfYear, index_subDays as subDays, index_subHours as subHours, index_subMinutes as subMinutes, index_subMonths as subMonths, index_subWeeks as subWeeks, index_subYears as subYears, index_subtractTime as subtractTime, index_toDateInputValue as toDateInputValue, index_toDateTimeInputValue as toDateTimeInputValue, index_toTimeInputValue as toTimeInputValue, index_toTimezone as toTimezone, index_toZonedTime as toZonedTime, index_validateEnv as validateEnv };
831
+ }
832
+
833
+ export { formatRelativeTime as $, type AuthTokens as A, type BaseUser as B, type ChangePasswordRequest as C, TOKEN_TYPES as D, type EnvConfig as E, type ForgotPasswordRequest as F, type TokenType as G, HTTP_STATUS as H, type ID as I, type JwtPayload as J, type KeyValuePair as K, type LoginCredentials as L, type DateInput as M, type Nullable as N, type OrganizationEntity as O, PAGINATION as P, parseDate as Q, type RegisterCredentials as R, type SoftDeleteEntity as S, type Timestamps as T, type UserWithRole as U, isValidDate as V, DATE_FORMATS as W, formatDate as X, formatDateTime as Y, formatDateInTimezone as Z, _default as _, type UserRole as a, formatSmartDate as a0, formatDateRange as a1, toTimezone as a2, fromTimezone as a3, nowInTimezone as a4, getTimezoneDifference as a5, addTime as a6, subtractTime as a7, getDateDifference as a8, getDaysInRange as a9, VALIDATION_RULES as aA, getWeeksInRange as aa, getMonthsInRange as ab, getDayBoundaries as ac, getWeekBoundaries as ad, getMonthBoundaries as ae, getYearBoundaries as af, isDateBetween as ag, doDateRangesOverlap as ah, getAge as ai, isWeekend as aj, isWeekday as ak, daysUntil as al, daysSince as am, toDateInputValue as an, toDateTimeInputValue as ao, toTimeInputValue as ap, setTime as aq, combineDateAndTime as ar, VALIDATION_PATTERNS as as, isValidEmail as at, isValidPassword as au, isValidPhone as av, isValidUrl as aw, isValidUsername as ax, isValidSlug as ay, VALIDATION_MESSAGES as az, type AuthResponse as b, type ResetPasswordRequest as c, type BaseEntity as d, type AuditableEntity as e, type ObjectId as f, type Optional as g, type RequiredFields as h, index as i, type SelectOption as j, type SortOrder as k, type SortConfig as l, getEnv as m, getEnvOptional as n, isProd as o, isDev as p, isTest as q, type HttpStatusCode as r, HTTP_STATUS_MESSAGES as s, STATUS as t, type StatusValue as u, validateEnv as v, USER_STATUS as w, type UserStatusValue as x, ROLES as y, type RoleValue as z };