@exyconn/common 2.1.0 → 2.3.3
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/README.md +969 -261
- package/dist/client/hooks/index.d.mts +1042 -0
- package/dist/client/hooks/index.d.ts +1042 -0
- package/dist/client/hooks/index.js +2276 -0
- package/dist/client/hooks/index.js.map +1 -0
- package/dist/client/hooks/index.mjs +2217 -0
- package/dist/client/hooks/index.mjs.map +1 -0
- package/dist/client/http/index.d.mts +217 -49
- package/dist/client/http/index.d.ts +217 -49
- package/dist/client/http/index.js +473 -94
- package/dist/client/http/index.js.map +1 -1
- package/dist/client/http/index.mjs +441 -84
- package/dist/client/http/index.mjs.map +1 -1
- package/dist/client/index.d.mts +6 -4
- package/dist/client/index.d.ts +6 -4
- package/dist/client/index.js +481 -319
- package/dist/client/index.js.map +1 -1
- package/dist/client/index.mjs +449 -290
- package/dist/client/index.mjs.map +1 -1
- package/dist/client/utils/index.d.mts +3 -279
- package/dist/client/utils/index.d.ts +3 -279
- package/dist/client/web/index.d.mts +1461 -0
- package/dist/client/web/index.d.ts +1461 -0
- package/dist/client/web/index.js +2681 -0
- package/dist/client/web/index.js.map +1 -0
- package/dist/client/web/index.mjs +2618 -0
- package/dist/client/web/index.mjs.map +1 -0
- package/dist/data/brand-identity.d.mts +149 -0
- package/dist/data/brand-identity.d.ts +149 -0
- package/dist/data/brand-identity.js +235 -0
- package/dist/data/brand-identity.js.map +1 -0
- package/dist/data/brand-identity.mjs +220 -0
- package/dist/data/brand-identity.mjs.map +1 -0
- package/dist/data/countries.d.mts +61 -0
- package/dist/data/countries.d.ts +61 -0
- package/dist/data/countries.js +987 -0
- package/dist/data/countries.js.map +1 -0
- package/dist/data/countries.mjs +971 -0
- package/dist/data/countries.mjs.map +1 -0
- package/dist/data/currencies.d.mts +19 -0
- package/dist/data/currencies.d.ts +19 -0
- package/dist/data/currencies.js +162 -0
- package/dist/data/currencies.js.map +1 -0
- package/dist/data/currencies.mjs +153 -0
- package/dist/data/currencies.mjs.map +1 -0
- package/dist/data/index.d.mts +7 -0
- package/dist/data/index.d.ts +7 -0
- package/dist/data/index.js +2087 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data/index.mjs +1948 -0
- package/dist/data/index.mjs.map +1 -0
- package/dist/data/phone-codes.d.mts +15 -0
- package/dist/data/phone-codes.d.ts +15 -0
- package/dist/data/phone-codes.js +219 -0
- package/dist/data/phone-codes.js.map +1 -0
- package/dist/data/phone-codes.mjs +211 -0
- package/dist/data/phone-codes.mjs.map +1 -0
- package/dist/data/regex.d.mts +287 -0
- package/dist/data/regex.d.ts +287 -0
- package/dist/data/regex.js +306 -0
- package/dist/data/regex.js.map +1 -0
- package/dist/data/regex.mjs +208 -0
- package/dist/data/regex.mjs.map +1 -0
- package/dist/data/timezones.d.mts +16 -0
- package/dist/data/timezones.d.ts +16 -0
- package/dist/data/timezones.js +98 -0
- package/dist/data/timezones.js.map +1 -0
- package/dist/data/timezones.mjs +89 -0
- package/dist/data/timezones.mjs.map +1 -0
- package/dist/index-BZf42T3R.d.mts +305 -0
- package/dist/index-CF0D8PGE.d.ts +305 -0
- package/dist/index-Ckhm_HaX.d.mts +138 -0
- package/dist/index-DKn4raO7.d.ts +222 -0
- package/dist/index-NS8dS0p9.d.mts +222 -0
- package/dist/index-Nqm5_lwT.d.ts +188 -0
- package/dist/index-br6POSyA.d.ts +138 -0
- package/dist/index-jBi3V6e5.d.mts +188 -0
- package/dist/index.d.mts +21 -580
- package/dist/index.d.ts +21 -580
- package/dist/index.js +1839 -347
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1850 -359
- package/dist/index.mjs.map +1 -1
- package/dist/packageCheck-B_qfsD6R.d.ts +280 -0
- package/dist/packageCheck-C2_FT_Rl.d.mts +280 -0
- package/dist/server/configs/index.d.mts +602 -0
- package/dist/server/configs/index.d.ts +602 -0
- package/dist/server/configs/index.js +707 -0
- package/dist/server/configs/index.js.map +1 -0
- package/dist/server/configs/index.mjs +665 -0
- package/dist/server/configs/index.mjs.map +1 -0
- package/dist/server/index.d.mts +4 -1
- package/dist/server/index.d.ts +4 -1
- package/dist/server/index.js +1330 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +1286 -2
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/middleware/index.d.mts +283 -2
- package/dist/server/middleware/index.d.ts +283 -2
- package/dist/server/middleware/index.js +761 -0
- package/dist/server/middleware/index.js.map +1 -1
- package/dist/server/middleware/index.mjs +751 -1
- package/dist/server/middleware/index.mjs.map +1 -1
- package/dist/shared/config/index.d.mts +40 -0
- package/dist/shared/config/index.d.ts +40 -0
- package/dist/shared/config/index.js +58 -0
- package/dist/shared/config/index.js.map +1 -0
- package/dist/shared/config/index.mjs +51 -0
- package/dist/shared/config/index.mjs.map +1 -0
- package/dist/shared/constants/index.d.mts +593 -0
- package/dist/shared/constants/index.d.ts +593 -0
- package/dist/shared/constants/index.js +391 -0
- package/dist/shared/constants/index.js.map +1 -0
- package/dist/shared/constants/index.mjs +360 -0
- package/dist/shared/constants/index.mjs.map +1 -0
- package/dist/shared/index.d.mts +5 -1
- package/dist/shared/index.d.ts +5 -1
- package/dist/shared/types/index.d.mts +140 -0
- package/dist/shared/types/index.d.ts +140 -0
- package/dist/shared/types/index.js +4 -0
- package/dist/shared/types/index.js.map +1 -0
- package/dist/shared/types/index.mjs +3 -0
- package/dist/shared/types/index.mjs.map +1 -0
- package/dist/shared/utils/index.d.mts +255 -0
- package/dist/shared/utils/index.d.ts +255 -0
- package/dist/shared/utils/index.js +623 -0
- package/dist/shared/utils/index.js.map +1 -0
- package/dist/shared/utils/index.mjs +324 -0
- package/dist/shared/utils/index.mjs.map +1 -0
- package/dist/shared/validation/index.d.mts +258 -0
- package/dist/shared/validation/index.d.ts +258 -0
- package/dist/shared/validation/index.js +185 -0
- package/dist/shared/validation/index.js.map +1 -0
- package/dist/shared/validation/index.mjs +172 -0
- package/dist/shared/validation/index.mjs.map +1 -0
- package/package.json +127 -62
- package/dist/index-BcxL4_V4.d.ts +0 -2946
- package/dist/index-DEzgM15j.d.ts +0 -67
- package/dist/index-DNFVgQx8.d.ts +0 -1375
- package/dist/index-DbV04Dx8.d.mts +0 -67
- package/dist/index-DfqEP6Oe.d.mts +0 -1375
- package/dist/index-bvvCev9Q.d.mts +0 -2946
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
// src/data/regex.ts
|
|
6
|
+
var EMAIL = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
7
|
+
var EMAIL_RFC5322 = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
|
|
8
|
+
var EMAIL_COMMON_DOMAINS = /^[^\s@]+@(gmail|yahoo|outlook|hotmail|icloud|proton|aol|mail)\.[a-z]{2,}$/i;
|
|
9
|
+
var PASSWORD_MIN_8 = /^.{8,}$/;
|
|
10
|
+
var PASSWORD_ALPHANUMERIC = /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/;
|
|
11
|
+
var PASSWORD_MEDIUM = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[A-Za-z\d@$!%*?&]{8,}$/;
|
|
12
|
+
var PASSWORD_STRONG = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/;
|
|
13
|
+
var PASSWORD_VERY_STRONG = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*#?&^()_+=[\]{}|;:'"<>,.\/\\-])[A-Za-z\d@$!%*#?&^()_+=[\]{}|;:'"<>,.\/\\-]{12,}$/;
|
|
14
|
+
var PHONE_INTERNATIONAL = /^\+?[1-9]\d{1,14}$/;
|
|
15
|
+
var PHONE_US = /^(\+1)?[-.\s]?\(?[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}$/;
|
|
16
|
+
var PHONE_INDIA = /^(\+91)?[-.\s]?[6-9]\d{9}$/;
|
|
17
|
+
var PHONE_UK = /^(\+44)?[-.\s]?[0-9]{10,11}$/;
|
|
18
|
+
var PHONE_10_DIGIT = /^\d{10}$/;
|
|
19
|
+
var PHONE_WITH_CODE = /^\+?[\d\s\-().]{10,20}$/;
|
|
20
|
+
var ZIP_US = /^\d{5}(-\d{4})?$/;
|
|
21
|
+
var PIN_INDIA = /^[1-9][0-9]{5}$/;
|
|
22
|
+
var POSTAL_UK = /^[A-Z]{1,2}\d[A-Z\d]?\s*\d[A-Z]{2}$/i;
|
|
23
|
+
var POSTAL_CANADA = /^[A-Z]\d[A-Z]\s?\d[A-Z]\d$/i;
|
|
24
|
+
var PLZ_GERMANY = /^\d{5}$/;
|
|
25
|
+
var POSTAL_GENERIC = /^[A-Z0-9]{4,10}$/i;
|
|
26
|
+
var UUID_V4 = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
27
|
+
var UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
28
|
+
var MONGO_OBJECT_ID = /^[0-9a-f]{24}$/i;
|
|
29
|
+
var CUID = /^c[a-z0-9]{24}$/i;
|
|
30
|
+
var CUID2 = /^[a-z][a-z0-9]{23}$/;
|
|
31
|
+
var NANOID = /^[A-Za-z0-9_-]{21}$/;
|
|
32
|
+
var AADHAAR_INDIA = /^[2-9]\d{11}$/;
|
|
33
|
+
var PAN_INDIA = /^[A-Z]{5}[0-9]{4}[A-Z]$/;
|
|
34
|
+
var GST_INDIA = /^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z][1-9A-Z]Z[0-9A-Z]$/;
|
|
35
|
+
var SSN_US = /^\d{3}-?\d{2}-?\d{4}$/;
|
|
36
|
+
var DL_INDIA = /^[A-Z]{2}[0-9]{2}[0-9]{4}[0-9]{7}$/;
|
|
37
|
+
var VEHICLE_INDIA = /^[A-Z]{2}[0-9]{2}[A-Z]{1,2}[0-9]{4}$/;
|
|
38
|
+
var IFSC_INDIA = /^[A-Z]{4}0[A-Z0-9]{6}$/;
|
|
39
|
+
var URL_BASIC = /^https?:\/\/[^\s$.?#].[^\s]*$/i;
|
|
40
|
+
var URL_OPTIONAL_PROTOCOL = /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([\/\w .-]*)*\/?$/i;
|
|
41
|
+
var URL_STRICT = /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)$/;
|
|
42
|
+
var DOMAIN = /^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$/i;
|
|
43
|
+
var SUBDOMAIN = /^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/i;
|
|
44
|
+
var LOCALHOST = /^(localhost|127\.0\.0\.1)(:\d{1,5})?$/;
|
|
45
|
+
var SLUG = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
46
|
+
var USERNAME = /^[a-zA-Z0-9_-]{3,30}$/;
|
|
47
|
+
var USERNAME_ALPHA_START = /^[a-zA-Z][a-zA-Z0-9_-]{2,29}$/;
|
|
48
|
+
var HANDLE = /^@?[a-zA-Z0-9_]{1,15}$/;
|
|
49
|
+
var CREDIT_CARD = /^\d{13,19}$/;
|
|
50
|
+
var VISA = /^4[0-9]{12}(?:[0-9]{3})?$/;
|
|
51
|
+
var MASTERCARD = /^5[1-5][0-9]{14}$/;
|
|
52
|
+
var AMEX = /^3[47][0-9]{13}$/;
|
|
53
|
+
var DISCOVER = /^6(?:011|5[0-9]{2})[0-9]{12}$/;
|
|
54
|
+
var CVV = /^\d{3,4}$/;
|
|
55
|
+
var CARD_EXPIRY = /^(0[1-9]|1[0-2])\/(\d{2}|\d{4})$/;
|
|
56
|
+
var DATE_ISO = /^\d{4}-\d{2}-\d{2}$/;
|
|
57
|
+
var DATE_DMY = /^(0[1-9]|[12]\d|3[01])\/(0[1-9]|1[0-2])\/\d{4}$/;
|
|
58
|
+
var DATE_MDY = /^(0[1-9]|1[0-2])\/(0[1-9]|[12]\d|3[01])\/\d{4}$/;
|
|
59
|
+
var TIME_24H = /^([01]\d|2[0-3]):([0-5]\d)$/;
|
|
60
|
+
var TIME_24H_SECONDS = /^([01]\d|2[0-3]):([0-5]\d):([0-5]\d)$/;
|
|
61
|
+
var TIME_12H = /^(0?[1-9]|1[0-2]):[0-5]\d\s?(AM|PM|am|pm)$/;
|
|
62
|
+
var DATETIME_ISO = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?(Z|[+-]\d{2}:\d{2})?$/;
|
|
63
|
+
var IPV4 = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
|
|
64
|
+
var IPV6 = /^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/;
|
|
65
|
+
var MAC_ADDRESS = /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/;
|
|
66
|
+
var IMAGE_EXT = /\.(jpg|jpeg|png|gif|bmp|webp|svg|ico|tiff?)$/i;
|
|
67
|
+
var VIDEO_EXT = /\.(mp4|webm|ogg|avi|mov|wmv|flv|mkv)$/i;
|
|
68
|
+
var AUDIO_EXT = /\.(mp3|wav|ogg|aac|flac|wma|m4a)$/i;
|
|
69
|
+
var DOCUMENT_EXT = /\.(pdf|doc|docx|xls|xlsx|ppt|pptx|txt|rtf|odt|ods|odp)$/i;
|
|
70
|
+
var ARCHIVE_EXT = /\.(zip|rar|7z|tar|gz|bz2)$/i;
|
|
71
|
+
var SAFE_FILENAME = /^[a-zA-Z0-9._-]+$/;
|
|
72
|
+
var HEX_COLOR = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;
|
|
73
|
+
var HEX_COLOR_ALPHA = /^#([A-Fa-f0-9]{8}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{3})$/;
|
|
74
|
+
var RGB_COLOR = /^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/;
|
|
75
|
+
var RGBA_COLOR = /^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(0|1|0?\.\d+)\s*\)$/;
|
|
76
|
+
var HSL_COLOR = /^hsl\(\s*(\d{1,3})\s*,\s*(\d{1,3})%\s*,\s*(\d{1,3})%\s*\)$/;
|
|
77
|
+
var ALPHANUMERIC = /^[a-zA-Z0-9]+$/;
|
|
78
|
+
var LETTERS_ONLY = /^[a-zA-Z]+$/;
|
|
79
|
+
var NUMBERS_ONLY = /^\d+$/;
|
|
80
|
+
var DECIMAL = /^-?\d+(\.\d+)?$/;
|
|
81
|
+
var POSITIVE_INTEGER = /^[1-9]\d*$/;
|
|
82
|
+
var NON_NEGATIVE_INTEGER = /^\d+$/;
|
|
83
|
+
var NO_WHITESPACE = /^\S+$/;
|
|
84
|
+
var NO_SPECIAL_CHARS = /^[a-zA-Z0-9\s]+$/;
|
|
85
|
+
var HAS_UPPERCASE = /[A-Z]/;
|
|
86
|
+
var HAS_LOWERCASE = /[a-z]/;
|
|
87
|
+
var HAS_DIGIT = /\d/;
|
|
88
|
+
var HAS_SPECIAL = /[!@#$%^&*(),.?":{}|<>]/;
|
|
89
|
+
var HTML_TAG = /<[^>]*>/g;
|
|
90
|
+
var EMOJI = /[\u{1F600}-\u{1F64F}\u{1F300}-\u{1F5FF}\u{1F680}-\u{1F6FF}\u{1F1E0}-\u{1F1FF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}]/u;
|
|
91
|
+
var HASHTAG = /#[a-zA-Z0-9_]+/g;
|
|
92
|
+
var MENTION = /@[a-zA-Z0-9_]+/g;
|
|
93
|
+
var JSON_STRING = /^[\],:{}\s]*$/;
|
|
94
|
+
var BASE64 = /^[A-Za-z0-9+/]+=*$/;
|
|
95
|
+
var JWT = /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/;
|
|
96
|
+
var SEMVER = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;
|
|
97
|
+
var LATITUDE = /^-?([0-8]?[0-9]|90)(\.[0-9]{1,10})?$/;
|
|
98
|
+
var LONGITUDE = /^-?([0-9]{1,2}|1[0-7][0-9]|180)(\.[0-9]{1,10})?$/;
|
|
99
|
+
var REGEX = {
|
|
100
|
+
// Email
|
|
101
|
+
EMAIL,
|
|
102
|
+
EMAIL_RFC5322,
|
|
103
|
+
EMAIL_COMMON_DOMAINS,
|
|
104
|
+
// Password
|
|
105
|
+
PASSWORD_MIN_8,
|
|
106
|
+
PASSWORD_ALPHANUMERIC,
|
|
107
|
+
PASSWORD_MEDIUM,
|
|
108
|
+
PASSWORD_STRONG,
|
|
109
|
+
PASSWORD_VERY_STRONG,
|
|
110
|
+
// Phone
|
|
111
|
+
PHONE_INTERNATIONAL,
|
|
112
|
+
PHONE_US,
|
|
113
|
+
PHONE_INDIA,
|
|
114
|
+
PHONE_UK,
|
|
115
|
+
PHONE_10_DIGIT,
|
|
116
|
+
PHONE_WITH_CODE,
|
|
117
|
+
// Postal
|
|
118
|
+
ZIP_US,
|
|
119
|
+
PIN_INDIA,
|
|
120
|
+
POSTAL_UK,
|
|
121
|
+
POSTAL_CANADA,
|
|
122
|
+
PLZ_GERMANY,
|
|
123
|
+
POSTAL_GENERIC,
|
|
124
|
+
// IDs
|
|
125
|
+
UUID_V4,
|
|
126
|
+
UUID,
|
|
127
|
+
MONGO_OBJECT_ID,
|
|
128
|
+
CUID,
|
|
129
|
+
CUID2,
|
|
130
|
+
NANOID,
|
|
131
|
+
// Government IDs
|
|
132
|
+
AADHAAR_INDIA,
|
|
133
|
+
PAN_INDIA,
|
|
134
|
+
GST_INDIA,
|
|
135
|
+
SSN_US,
|
|
136
|
+
DL_INDIA,
|
|
137
|
+
VEHICLE_INDIA,
|
|
138
|
+
IFSC_INDIA,
|
|
139
|
+
// URL
|
|
140
|
+
URL_BASIC,
|
|
141
|
+
URL_OPTIONAL_PROTOCOL,
|
|
142
|
+
URL_STRICT,
|
|
143
|
+
DOMAIN,
|
|
144
|
+
SUBDOMAIN,
|
|
145
|
+
LOCALHOST,
|
|
146
|
+
// Slug & Username
|
|
147
|
+
SLUG,
|
|
148
|
+
USERNAME,
|
|
149
|
+
USERNAME_ALPHA_START,
|
|
150
|
+
HANDLE,
|
|
151
|
+
// Credit Card
|
|
152
|
+
CREDIT_CARD,
|
|
153
|
+
VISA,
|
|
154
|
+
MASTERCARD,
|
|
155
|
+
AMEX,
|
|
156
|
+
DISCOVER,
|
|
157
|
+
CVV,
|
|
158
|
+
CARD_EXPIRY,
|
|
159
|
+
// Date & Time
|
|
160
|
+
DATE_ISO,
|
|
161
|
+
DATE_DMY,
|
|
162
|
+
DATE_MDY,
|
|
163
|
+
TIME_24H,
|
|
164
|
+
TIME_24H_SECONDS,
|
|
165
|
+
TIME_12H,
|
|
166
|
+
DATETIME_ISO,
|
|
167
|
+
// IP
|
|
168
|
+
IPV4,
|
|
169
|
+
IPV6,
|
|
170
|
+
MAC_ADDRESS,
|
|
171
|
+
// File
|
|
172
|
+
IMAGE_EXT,
|
|
173
|
+
VIDEO_EXT,
|
|
174
|
+
AUDIO_EXT,
|
|
175
|
+
DOCUMENT_EXT,
|
|
176
|
+
ARCHIVE_EXT,
|
|
177
|
+
SAFE_FILENAME,
|
|
178
|
+
// Color
|
|
179
|
+
HEX_COLOR,
|
|
180
|
+
HEX_COLOR_ALPHA,
|
|
181
|
+
RGB_COLOR,
|
|
182
|
+
RGBA_COLOR,
|
|
183
|
+
HSL_COLOR,
|
|
184
|
+
// Misc
|
|
185
|
+
ALPHANUMERIC,
|
|
186
|
+
LETTERS_ONLY,
|
|
187
|
+
NUMBERS_ONLY,
|
|
188
|
+
DECIMAL,
|
|
189
|
+
POSITIVE_INTEGER,
|
|
190
|
+
NON_NEGATIVE_INTEGER,
|
|
191
|
+
NO_WHITESPACE,
|
|
192
|
+
NO_SPECIAL_CHARS,
|
|
193
|
+
HAS_UPPERCASE,
|
|
194
|
+
HAS_LOWERCASE,
|
|
195
|
+
HAS_DIGIT,
|
|
196
|
+
HAS_SPECIAL,
|
|
197
|
+
HTML_TAG,
|
|
198
|
+
EMOJI,
|
|
199
|
+
HASHTAG,
|
|
200
|
+
MENTION,
|
|
201
|
+
JSON_STRING,
|
|
202
|
+
BASE64,
|
|
203
|
+
JWT,
|
|
204
|
+
SEMVER,
|
|
205
|
+
LATITUDE,
|
|
206
|
+
LONGITUDE
|
|
207
|
+
};
|
|
208
|
+
var regex_default = REGEX;
|
|
209
|
+
|
|
210
|
+
exports.AADHAAR_INDIA = AADHAAR_INDIA;
|
|
211
|
+
exports.ALPHANUMERIC = ALPHANUMERIC;
|
|
212
|
+
exports.AMEX = AMEX;
|
|
213
|
+
exports.ARCHIVE_EXT = ARCHIVE_EXT;
|
|
214
|
+
exports.AUDIO_EXT = AUDIO_EXT;
|
|
215
|
+
exports.BASE64 = BASE64;
|
|
216
|
+
exports.CARD_EXPIRY = CARD_EXPIRY;
|
|
217
|
+
exports.CREDIT_CARD = CREDIT_CARD;
|
|
218
|
+
exports.CUID = CUID;
|
|
219
|
+
exports.CUID2 = CUID2;
|
|
220
|
+
exports.CVV = CVV;
|
|
221
|
+
exports.DATETIME_ISO = DATETIME_ISO;
|
|
222
|
+
exports.DATE_DMY = DATE_DMY;
|
|
223
|
+
exports.DATE_ISO = DATE_ISO;
|
|
224
|
+
exports.DATE_MDY = DATE_MDY;
|
|
225
|
+
exports.DECIMAL = DECIMAL;
|
|
226
|
+
exports.DISCOVER = DISCOVER;
|
|
227
|
+
exports.DL_INDIA = DL_INDIA;
|
|
228
|
+
exports.DOCUMENT_EXT = DOCUMENT_EXT;
|
|
229
|
+
exports.DOMAIN = DOMAIN;
|
|
230
|
+
exports.EMAIL = EMAIL;
|
|
231
|
+
exports.EMAIL_COMMON_DOMAINS = EMAIL_COMMON_DOMAINS;
|
|
232
|
+
exports.EMAIL_RFC5322 = EMAIL_RFC5322;
|
|
233
|
+
exports.EMOJI = EMOJI;
|
|
234
|
+
exports.GST_INDIA = GST_INDIA;
|
|
235
|
+
exports.HANDLE = HANDLE;
|
|
236
|
+
exports.HASHTAG = HASHTAG;
|
|
237
|
+
exports.HAS_DIGIT = HAS_DIGIT;
|
|
238
|
+
exports.HAS_LOWERCASE = HAS_LOWERCASE;
|
|
239
|
+
exports.HAS_SPECIAL = HAS_SPECIAL;
|
|
240
|
+
exports.HAS_UPPERCASE = HAS_UPPERCASE;
|
|
241
|
+
exports.HEX_COLOR = HEX_COLOR;
|
|
242
|
+
exports.HEX_COLOR_ALPHA = HEX_COLOR_ALPHA;
|
|
243
|
+
exports.HSL_COLOR = HSL_COLOR;
|
|
244
|
+
exports.HTML_TAG = HTML_TAG;
|
|
245
|
+
exports.IFSC_INDIA = IFSC_INDIA;
|
|
246
|
+
exports.IMAGE_EXT = IMAGE_EXT;
|
|
247
|
+
exports.IPV4 = IPV4;
|
|
248
|
+
exports.IPV6 = IPV6;
|
|
249
|
+
exports.JSON_STRING = JSON_STRING;
|
|
250
|
+
exports.JWT = JWT;
|
|
251
|
+
exports.LATITUDE = LATITUDE;
|
|
252
|
+
exports.LETTERS_ONLY = LETTERS_ONLY;
|
|
253
|
+
exports.LOCALHOST = LOCALHOST;
|
|
254
|
+
exports.LONGITUDE = LONGITUDE;
|
|
255
|
+
exports.MAC_ADDRESS = MAC_ADDRESS;
|
|
256
|
+
exports.MASTERCARD = MASTERCARD;
|
|
257
|
+
exports.MENTION = MENTION;
|
|
258
|
+
exports.MONGO_OBJECT_ID = MONGO_OBJECT_ID;
|
|
259
|
+
exports.NANOID = NANOID;
|
|
260
|
+
exports.NON_NEGATIVE_INTEGER = NON_NEGATIVE_INTEGER;
|
|
261
|
+
exports.NO_SPECIAL_CHARS = NO_SPECIAL_CHARS;
|
|
262
|
+
exports.NO_WHITESPACE = NO_WHITESPACE;
|
|
263
|
+
exports.NUMBERS_ONLY = NUMBERS_ONLY;
|
|
264
|
+
exports.PAN_INDIA = PAN_INDIA;
|
|
265
|
+
exports.PASSWORD_ALPHANUMERIC = PASSWORD_ALPHANUMERIC;
|
|
266
|
+
exports.PASSWORD_MEDIUM = PASSWORD_MEDIUM;
|
|
267
|
+
exports.PASSWORD_MIN_8 = PASSWORD_MIN_8;
|
|
268
|
+
exports.PASSWORD_STRONG = PASSWORD_STRONG;
|
|
269
|
+
exports.PASSWORD_VERY_STRONG = PASSWORD_VERY_STRONG;
|
|
270
|
+
exports.PHONE_10_DIGIT = PHONE_10_DIGIT;
|
|
271
|
+
exports.PHONE_INDIA = PHONE_INDIA;
|
|
272
|
+
exports.PHONE_INTERNATIONAL = PHONE_INTERNATIONAL;
|
|
273
|
+
exports.PHONE_UK = PHONE_UK;
|
|
274
|
+
exports.PHONE_US = PHONE_US;
|
|
275
|
+
exports.PHONE_WITH_CODE = PHONE_WITH_CODE;
|
|
276
|
+
exports.PIN_INDIA = PIN_INDIA;
|
|
277
|
+
exports.PLZ_GERMANY = PLZ_GERMANY;
|
|
278
|
+
exports.POSITIVE_INTEGER = POSITIVE_INTEGER;
|
|
279
|
+
exports.POSTAL_CANADA = POSTAL_CANADA;
|
|
280
|
+
exports.POSTAL_GENERIC = POSTAL_GENERIC;
|
|
281
|
+
exports.POSTAL_UK = POSTAL_UK;
|
|
282
|
+
exports.REGEX = REGEX;
|
|
283
|
+
exports.RGBA_COLOR = RGBA_COLOR;
|
|
284
|
+
exports.RGB_COLOR = RGB_COLOR;
|
|
285
|
+
exports.SAFE_FILENAME = SAFE_FILENAME;
|
|
286
|
+
exports.SEMVER = SEMVER;
|
|
287
|
+
exports.SLUG = SLUG;
|
|
288
|
+
exports.SSN_US = SSN_US;
|
|
289
|
+
exports.SUBDOMAIN = SUBDOMAIN;
|
|
290
|
+
exports.TIME_12H = TIME_12H;
|
|
291
|
+
exports.TIME_24H = TIME_24H;
|
|
292
|
+
exports.TIME_24H_SECONDS = TIME_24H_SECONDS;
|
|
293
|
+
exports.URL_BASIC = URL_BASIC;
|
|
294
|
+
exports.URL_OPTIONAL_PROTOCOL = URL_OPTIONAL_PROTOCOL;
|
|
295
|
+
exports.URL_STRICT = URL_STRICT;
|
|
296
|
+
exports.USERNAME = USERNAME;
|
|
297
|
+
exports.USERNAME_ALPHA_START = USERNAME_ALPHA_START;
|
|
298
|
+
exports.UUID = UUID;
|
|
299
|
+
exports.UUID_V4 = UUID_V4;
|
|
300
|
+
exports.VEHICLE_INDIA = VEHICLE_INDIA;
|
|
301
|
+
exports.VIDEO_EXT = VIDEO_EXT;
|
|
302
|
+
exports.VISA = VISA;
|
|
303
|
+
exports.ZIP_US = ZIP_US;
|
|
304
|
+
exports.default = regex_default;
|
|
305
|
+
//# sourceMappingURL=regex.js.map
|
|
306
|
+
//# sourceMappingURL=regex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/data/regex.ts"],"names":[],"mappings":"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","file":"regex.js","sourcesContent":["/**\r\n * Common Regex Patterns\r\n * Reusable validation patterns for various data types\r\n */\r\n\r\n// ==========================================\r\n// EMAIL PATTERNS\r\n// ==========================================\r\n\r\n/** Basic email validation */\r\nexport const EMAIL = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\r\n\r\n/** RFC 5322 compliant email (more strict) */\r\nexport const EMAIL_RFC5322 = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\r\n\r\n/** Email with common domains only (gmail, yahoo, outlook, etc.) */\r\nexport const EMAIL_COMMON_DOMAINS = /^[^\\s@]+@(gmail|yahoo|outlook|hotmail|icloud|proton|aol|mail)\\.[a-z]{2,}$/i;\r\n\r\n// ==========================================\r\n// PASSWORD PATTERNS\r\n// ==========================================\r\n\r\n/** Minimum 8 characters */\r\nexport const PASSWORD_MIN_8 = /^.{8,}$/;\r\n\r\n/** Minimum 8 chars, at least one letter and one number */\r\nexport const PASSWORD_ALPHANUMERIC = /^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,}$/;\r\n\r\n/** Medium: min 8 chars, uppercase, lowercase, number */\r\nexport const PASSWORD_MEDIUM = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[A-Za-z\\d@$!%*?&]{8,}$/;\r\n\r\n/** Strong: min 8 chars, uppercase, lowercase, number, special char */\r\nexport const PASSWORD_STRONG = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{8,}$/;\r\n\r\n/** Very Strong: min 12 chars, uppercase, lowercase, number, special char */\r\nexport const PASSWORD_VERY_STRONG = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*#?&^()_+=[\\]{}|;:'\"<>,.\\/\\\\-])[A-Za-z\\d@$!%*#?&^()_+=[\\]{}|;:'\"<>,.\\/\\\\-]{12,}$/;\r\n\r\n// ==========================================\r\n// PHONE NUMBER PATTERNS\r\n// ==========================================\r\n\r\n/** International phone (with + prefix) */\r\nexport const PHONE_INTERNATIONAL = /^\\+?[1-9]\\d{1,14}$/;\r\n\r\n/** US phone number */\r\nexport const PHONE_US = /^(\\+1)?[-.\\s]?\\(?[0-9]{3}\\)?[-.\\s]?[0-9]{3}[-.\\s]?[0-9]{4}$/;\r\n\r\n/** India phone number (10 digits starting with 6-9) */\r\nexport const PHONE_INDIA = /^(\\+91)?[-.\\s]?[6-9]\\d{9}$/;\r\n\r\n/** UK phone number */\r\nexport const PHONE_UK = /^(\\+44)?[-.\\s]?[0-9]{10,11}$/;\r\n\r\n/** Generic 10-digit phone */\r\nexport const PHONE_10_DIGIT = /^\\d{10}$/;\r\n\r\n/** Phone with optional country code */\r\nexport const PHONE_WITH_CODE = /^\\+?[\\d\\s\\-().]{10,20}$/;\r\n\r\n// ==========================================\r\n// PIN/POSTAL CODE PATTERNS\r\n// ==========================================\r\n\r\n/** US ZIP Code (5 digits or 5+4) */\r\nexport const ZIP_US = /^\\d{5}(-\\d{4})?$/;\r\n\r\n/** India PIN Code (6 digits) */\r\nexport const PIN_INDIA = /^[1-9][0-9]{5}$/;\r\n\r\n/** UK Postal Code */\r\nexport const POSTAL_UK = /^[A-Z]{1,2}\\d[A-Z\\d]?\\s*\\d[A-Z]{2}$/i;\r\n\r\n/** Canada Postal Code */\r\nexport const POSTAL_CANADA = /^[A-Z]\\d[A-Z]\\s?\\d[A-Z]\\d$/i;\r\n\r\n/** Germany PLZ (5 digits) */\r\nexport const PLZ_GERMANY = /^\\d{5}$/;\r\n\r\n/** Generic postal code (4-10 alphanumeric) */\r\nexport const POSTAL_GENERIC = /^[A-Z0-9]{4,10}$/i;\r\n\r\n// ==========================================\r\n// ID PATTERNS\r\n// ==========================================\r\n\r\n/** UUID v4 */\r\nexport const UUID_V4 = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\r\n\r\n/** UUID any version */\r\nexport const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\r\n\r\n/** MongoDB ObjectId */\r\nexport const MONGO_OBJECT_ID = /^[0-9a-f]{24}$/i;\r\n\r\n/** CUID */\r\nexport const CUID = /^c[a-z0-9]{24}$/i;\r\n\r\n/** CUID2 */\r\nexport const CUID2 = /^[a-z][a-z0-9]{23}$/;\r\n\r\n/** NanoID (default 21 chars) */\r\nexport const NANOID = /^[A-Za-z0-9_-]{21}$/;\r\n\r\n// ==========================================\r\n// GOVERNMENT ID PATTERNS\r\n// ==========================================\r\n\r\n/** India Aadhaar (12 digits) */\r\nexport const AADHAAR_INDIA = /^[2-9]\\d{11}$/;\r\n\r\n/** India PAN Card */\r\nexport const PAN_INDIA = /^[A-Z]{5}[0-9]{4}[A-Z]$/;\r\n\r\n/** India GST Number */\r\nexport const GST_INDIA = /^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z][1-9A-Z]Z[0-9A-Z]$/;\r\n\r\n/** US SSN */\r\nexport const SSN_US = /^\\d{3}-?\\d{2}-?\\d{4}$/;\r\n\r\n/** India Driving License */\r\nexport const DL_INDIA = /^[A-Z]{2}[0-9]{2}[0-9]{4}[0-9]{7}$/;\r\n\r\n/** India Vehicle Number */\r\nexport const VEHICLE_INDIA = /^[A-Z]{2}[0-9]{2}[A-Z]{1,2}[0-9]{4}$/;\r\n\r\n/** India IFSC Code */\r\nexport const IFSC_INDIA = /^[A-Z]{4}0[A-Z0-9]{6}$/;\r\n\r\n// ==========================================\r\n// URL PATTERNS\r\n// ==========================================\r\n\r\n/** Basic URL (http/https) */\r\nexport const URL_BASIC = /^https?:\\/\\/[^\\s$.?#].[^\\s]*$/i;\r\n\r\n/** URL with optional protocol */\r\nexport const URL_OPTIONAL_PROTOCOL = /^(https?:\\/\\/)?([\\da-z.-]+)\\.([a-z.]{2,6})([\\/\\w .-]*)*\\/?$/i;\r\n\r\n/** Strict URL with protocol required */\r\nexport const URL_STRICT = /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)$/;\r\n\r\n/** Domain only (no protocol) */\r\nexport const DOMAIN = /^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$/i;\r\n\r\n/** Subdomain */\r\nexport const SUBDOMAIN = /^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/i;\r\n\r\n/** Localhost with optional port */\r\nexport const LOCALHOST = /^(localhost|127\\.0\\.0\\.1)(:\\d{1,5})?$/;\r\n\r\n// ==========================================\r\n// SLUG & USERNAME PATTERNS\r\n// ==========================================\r\n\r\n/** URL slug (kebab-case) */\r\nexport const SLUG = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;\r\n\r\n/** Username (alphanumeric, underscore, hyphen, 3-30 chars) */\r\nexport const USERNAME = /^[a-zA-Z0-9_-]{3,30}$/;\r\n\r\n/** Username starting with letter */\r\nexport const USERNAME_ALPHA_START = /^[a-zA-Z][a-zA-Z0-9_-]{2,29}$/;\r\n\r\n/** Handle (like Twitter @username) */\r\nexport const HANDLE = /^@?[a-zA-Z0-9_]{1,15}$/;\r\n\r\n// ==========================================\r\n// CREDIT CARD PATTERNS\r\n// ==========================================\r\n\r\n/** Any credit card (13-19 digits) */\r\nexport const CREDIT_CARD = /^\\d{13,19}$/;\r\n\r\n/** Visa */\r\nexport const VISA = /^4[0-9]{12}(?:[0-9]{3})?$/;\r\n\r\n/** Mastercard */\r\nexport const MASTERCARD = /^5[1-5][0-9]{14}$/;\r\n\r\n/** American Express */\r\nexport const AMEX = /^3[47][0-9]{13}$/;\r\n\r\n/** Discover */\r\nexport const DISCOVER = /^6(?:011|5[0-9]{2})[0-9]{12}$/;\r\n\r\n/** CVV (3-4 digits) */\r\nexport const CVV = /^\\d{3,4}$/;\r\n\r\n/** Card expiry (MM/YY or MM/YYYY) */\r\nexport const CARD_EXPIRY = /^(0[1-9]|1[0-2])\\/(\\d{2}|\\d{4})$/;\r\n\r\n// ==========================================\r\n// DATE & TIME PATTERNS\r\n// ==========================================\r\n\r\n/** ISO 8601 Date (YYYY-MM-DD) */\r\nexport const DATE_ISO = /^\\d{4}-\\d{2}-\\d{2}$/;\r\n\r\n/** Date DD/MM/YYYY */\r\nexport const DATE_DMY = /^(0[1-9]|[12]\\d|3[01])\\/(0[1-9]|1[0-2])\\/\\d{4}$/;\r\n\r\n/** Date MM/DD/YYYY */\r\nexport const DATE_MDY = /^(0[1-9]|1[0-2])\\/(0[1-9]|[12]\\d|3[01])\\/\\d{4}$/;\r\n\r\n/** Time HH:MM (24-hour) */\r\nexport const TIME_24H = /^([01]\\d|2[0-3]):([0-5]\\d)$/;\r\n\r\n/** Time HH:MM:SS (24-hour) */\r\nexport const TIME_24H_SECONDS = /^([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)$/;\r\n\r\n/** Time 12-hour with AM/PM */\r\nexport const TIME_12H = /^(0?[1-9]|1[0-2]):[0-5]\\d\\s?(AM|PM|am|pm)$/;\r\n\r\n/** ISO 8601 DateTime */\r\nexport const DATETIME_ISO = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?(Z|[+-]\\d{2}:\\d{2})?$/;\r\n\r\n// ==========================================\r\n// IP ADDRESS PATTERNS\r\n// ==========================================\r\n\r\n/** IPv4 Address */\r\nexport const IPV4 = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;\r\n\r\n/** IPv6 Address */\r\nexport const IPV6 = /^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/;\r\n\r\n/** MAC Address */\r\nexport const MAC_ADDRESS = /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/;\r\n\r\n// ==========================================\r\n// FILE PATTERNS\r\n// ==========================================\r\n\r\n/** Image file extension */\r\nexport const IMAGE_EXT = /\\.(jpg|jpeg|png|gif|bmp|webp|svg|ico|tiff?)$/i;\r\n\r\n/** Video file extension */\r\nexport const VIDEO_EXT = /\\.(mp4|webm|ogg|avi|mov|wmv|flv|mkv)$/i;\r\n\r\n/** Audio file extension */\r\nexport const AUDIO_EXT = /\\.(mp3|wav|ogg|aac|flac|wma|m4a)$/i;\r\n\r\n/** Document file extension */\r\nexport const DOCUMENT_EXT = /\\.(pdf|doc|docx|xls|xlsx|ppt|pptx|txt|rtf|odt|ods|odp)$/i;\r\n\r\n/** Archive file extension */\r\nexport const ARCHIVE_EXT = /\\.(zip|rar|7z|tar|gz|bz2)$/i;\r\n\r\n/** Safe filename */\r\nexport const SAFE_FILENAME = /^[a-zA-Z0-9._-]+$/;\r\n\r\n// ==========================================\r\n// COLOR PATTERNS\r\n// ==========================================\r\n\r\n/** Hex color (3 or 6 chars) */\r\nexport const HEX_COLOR = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;\r\n\r\n/** Hex color with alpha (8 chars) */\r\nexport const HEX_COLOR_ALPHA = /^#([A-Fa-f0-9]{8}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{3})$/;\r\n\r\n/** RGB color */\r\nexport const RGB_COLOR = /^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/;\r\n\r\n/** RGBA color */\r\nexport const RGBA_COLOR = /^rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(0|1|0?\\.\\d+)\\s*\\)$/;\r\n\r\n/** HSL color */\r\nexport const HSL_COLOR = /^hsl\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})%\\s*,\\s*(\\d{1,3})%\\s*\\)$/;\r\n\r\n// ==========================================\r\n// MISC PATTERNS\r\n// ==========================================\r\n\r\n/** Alphanumeric only */\r\nexport const ALPHANUMERIC = /^[a-zA-Z0-9]+$/;\r\n\r\n/** Letters only */\r\nexport const LETTERS_ONLY = /^[a-zA-Z]+$/;\r\n\r\n/** Numbers only */\r\nexport const NUMBERS_ONLY = /^\\d+$/;\r\n\r\n/** Decimal number */\r\nexport const DECIMAL = /^-?\\d+(\\.\\d+)?$/;\r\n\r\n/** Positive integer */\r\nexport const POSITIVE_INTEGER = /^[1-9]\\d*$/;\r\n\r\n/** Non-negative integer */\r\nexport const NON_NEGATIVE_INTEGER = /^\\d+$/;\r\n\r\n/** No whitespace */\r\nexport const NO_WHITESPACE = /^\\S+$/;\r\n\r\n/** No special characters */\r\nexport const NO_SPECIAL_CHARS = /^[a-zA-Z0-9\\s]+$/;\r\n\r\n/** Contains at least one uppercase */\r\nexport const HAS_UPPERCASE = /[A-Z]/;\r\n\r\n/** Contains at least one lowercase */\r\nexport const HAS_LOWERCASE = /[a-z]/;\r\n\r\n/** Contains at least one digit */\r\nexport const HAS_DIGIT = /\\d/;\r\n\r\n/** Contains at least one special character */\r\nexport const HAS_SPECIAL = /[!@#$%^&*(),.?\":{}|<>]/;\r\n\r\n/** HTML tags */\r\nexport const HTML_TAG = /<[^>]*>/g;\r\n\r\n/** Emoji */\r\nexport const EMOJI = /[\\u{1F600}-\\u{1F64F}\\u{1F300}-\\u{1F5FF}\\u{1F680}-\\u{1F6FF}\\u{1F1E0}-\\u{1F1FF}\\u{2600}-\\u{26FF}\\u{2700}-\\u{27BF}]/u;\r\n\r\n/** Hashtag */\r\nexport const HASHTAG = /#[a-zA-Z0-9_]+/g;\r\n\r\n/** Mention (@username) */\r\nexport const MENTION = /@[a-zA-Z0-9_]+/g;\r\n\r\n/** JSON string */\r\nexport const JSON_STRING = /^[\\],:{}\\s]*$/;\r\n\r\n/** Base64 */\r\nexport const BASE64 = /^[A-Za-z0-9+/]+=*$/;\r\n\r\n/** JWT Token */\r\nexport const JWT = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\r\n\r\n/** Semantic Version */\r\nexport const SEMVER = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\r\n\r\n/** Latitude */\r\nexport const LATITUDE = /^-?([0-8]?[0-9]|90)(\\.[0-9]{1,10})?$/;\r\n\r\n/** Longitude */\r\nexport const LONGITUDE = /^-?([0-9]{1,2}|1[0-7][0-9]|180)(\\.[0-9]{1,10})?$/;\r\n\r\n// ==========================================\r\n// EXPORT AS OBJECT FOR CONVENIENCE\r\n// ==========================================\r\n\r\nexport const REGEX = {\r\n // Email\r\n EMAIL,\r\n EMAIL_RFC5322,\r\n EMAIL_COMMON_DOMAINS,\r\n\r\n // Password\r\n PASSWORD_MIN_8,\r\n PASSWORD_ALPHANUMERIC,\r\n PASSWORD_MEDIUM,\r\n PASSWORD_STRONG,\r\n PASSWORD_VERY_STRONG,\r\n\r\n // Phone\r\n PHONE_INTERNATIONAL,\r\n PHONE_US,\r\n PHONE_INDIA,\r\n PHONE_UK,\r\n PHONE_10_DIGIT,\r\n PHONE_WITH_CODE,\r\n\r\n // Postal\r\n ZIP_US,\r\n PIN_INDIA,\r\n POSTAL_UK,\r\n POSTAL_CANADA,\r\n PLZ_GERMANY,\r\n POSTAL_GENERIC,\r\n\r\n // IDs\r\n UUID_V4,\r\n UUID,\r\n MONGO_OBJECT_ID,\r\n CUID,\r\n CUID2,\r\n NANOID,\r\n\r\n // Government IDs\r\n AADHAAR_INDIA,\r\n PAN_INDIA,\r\n GST_INDIA,\r\n SSN_US,\r\n DL_INDIA,\r\n VEHICLE_INDIA,\r\n IFSC_INDIA,\r\n\r\n // URL\r\n URL_BASIC,\r\n URL_OPTIONAL_PROTOCOL,\r\n URL_STRICT,\r\n DOMAIN,\r\n SUBDOMAIN,\r\n LOCALHOST,\r\n\r\n // Slug & Username\r\n SLUG,\r\n USERNAME,\r\n USERNAME_ALPHA_START,\r\n HANDLE,\r\n\r\n // Credit Card\r\n CREDIT_CARD,\r\n VISA,\r\n MASTERCARD,\r\n AMEX,\r\n DISCOVER,\r\n CVV,\r\n CARD_EXPIRY,\r\n\r\n // Date & Time\r\n DATE_ISO,\r\n DATE_DMY,\r\n DATE_MDY,\r\n TIME_24H,\r\n TIME_24H_SECONDS,\r\n TIME_12H,\r\n DATETIME_ISO,\r\n\r\n // IP\r\n IPV4,\r\n IPV6,\r\n MAC_ADDRESS,\r\n\r\n // File\r\n IMAGE_EXT,\r\n VIDEO_EXT,\r\n AUDIO_EXT,\r\n DOCUMENT_EXT,\r\n ARCHIVE_EXT,\r\n SAFE_FILENAME,\r\n\r\n // Color\r\n HEX_COLOR,\r\n HEX_COLOR_ALPHA,\r\n RGB_COLOR,\r\n RGBA_COLOR,\r\n HSL_COLOR,\r\n\r\n // Misc\r\n ALPHANUMERIC,\r\n LETTERS_ONLY,\r\n NUMBERS_ONLY,\r\n DECIMAL,\r\n POSITIVE_INTEGER,\r\n NON_NEGATIVE_INTEGER,\r\n NO_WHITESPACE,\r\n NO_SPECIAL_CHARS,\r\n HAS_UPPERCASE,\r\n HAS_LOWERCASE,\r\n HAS_DIGIT,\r\n HAS_SPECIAL,\r\n HTML_TAG,\r\n EMOJI,\r\n HASHTAG,\r\n MENTION,\r\n JSON_STRING,\r\n BASE64,\r\n JWT,\r\n SEMVER,\r\n LATITUDE,\r\n LONGITUDE,\r\n} as const;\r\n\r\nexport default REGEX;\r\n"]}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
// src/data/regex.ts
|
|
2
|
+
var EMAIL = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
3
|
+
var EMAIL_RFC5322 = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
|
|
4
|
+
var EMAIL_COMMON_DOMAINS = /^[^\s@]+@(gmail|yahoo|outlook|hotmail|icloud|proton|aol|mail)\.[a-z]{2,}$/i;
|
|
5
|
+
var PASSWORD_MIN_8 = /^.{8,}$/;
|
|
6
|
+
var PASSWORD_ALPHANUMERIC = /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/;
|
|
7
|
+
var PASSWORD_MEDIUM = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[A-Za-z\d@$!%*?&]{8,}$/;
|
|
8
|
+
var PASSWORD_STRONG = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/;
|
|
9
|
+
var PASSWORD_VERY_STRONG = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*#?&^()_+=[\]{}|;:'"<>,.\/\\-])[A-Za-z\d@$!%*#?&^()_+=[\]{}|;:'"<>,.\/\\-]{12,}$/;
|
|
10
|
+
var PHONE_INTERNATIONAL = /^\+?[1-9]\d{1,14}$/;
|
|
11
|
+
var PHONE_US = /^(\+1)?[-.\s]?\(?[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}$/;
|
|
12
|
+
var PHONE_INDIA = /^(\+91)?[-.\s]?[6-9]\d{9}$/;
|
|
13
|
+
var PHONE_UK = /^(\+44)?[-.\s]?[0-9]{10,11}$/;
|
|
14
|
+
var PHONE_10_DIGIT = /^\d{10}$/;
|
|
15
|
+
var PHONE_WITH_CODE = /^\+?[\d\s\-().]{10,20}$/;
|
|
16
|
+
var ZIP_US = /^\d{5}(-\d{4})?$/;
|
|
17
|
+
var PIN_INDIA = /^[1-9][0-9]{5}$/;
|
|
18
|
+
var POSTAL_UK = /^[A-Z]{1,2}\d[A-Z\d]?\s*\d[A-Z]{2}$/i;
|
|
19
|
+
var POSTAL_CANADA = /^[A-Z]\d[A-Z]\s?\d[A-Z]\d$/i;
|
|
20
|
+
var PLZ_GERMANY = /^\d{5}$/;
|
|
21
|
+
var POSTAL_GENERIC = /^[A-Z0-9]{4,10}$/i;
|
|
22
|
+
var UUID_V4 = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
23
|
+
var UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
24
|
+
var MONGO_OBJECT_ID = /^[0-9a-f]{24}$/i;
|
|
25
|
+
var CUID = /^c[a-z0-9]{24}$/i;
|
|
26
|
+
var CUID2 = /^[a-z][a-z0-9]{23}$/;
|
|
27
|
+
var NANOID = /^[A-Za-z0-9_-]{21}$/;
|
|
28
|
+
var AADHAAR_INDIA = /^[2-9]\d{11}$/;
|
|
29
|
+
var PAN_INDIA = /^[A-Z]{5}[0-9]{4}[A-Z]$/;
|
|
30
|
+
var GST_INDIA = /^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z][1-9A-Z]Z[0-9A-Z]$/;
|
|
31
|
+
var SSN_US = /^\d{3}-?\d{2}-?\d{4}$/;
|
|
32
|
+
var DL_INDIA = /^[A-Z]{2}[0-9]{2}[0-9]{4}[0-9]{7}$/;
|
|
33
|
+
var VEHICLE_INDIA = /^[A-Z]{2}[0-9]{2}[A-Z]{1,2}[0-9]{4}$/;
|
|
34
|
+
var IFSC_INDIA = /^[A-Z]{4}0[A-Z0-9]{6}$/;
|
|
35
|
+
var URL_BASIC = /^https?:\/\/[^\s$.?#].[^\s]*$/i;
|
|
36
|
+
var URL_OPTIONAL_PROTOCOL = /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([\/\w .-]*)*\/?$/i;
|
|
37
|
+
var URL_STRICT = /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)$/;
|
|
38
|
+
var DOMAIN = /^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$/i;
|
|
39
|
+
var SUBDOMAIN = /^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/i;
|
|
40
|
+
var LOCALHOST = /^(localhost|127\.0\.0\.1)(:\d{1,5})?$/;
|
|
41
|
+
var SLUG = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
42
|
+
var USERNAME = /^[a-zA-Z0-9_-]{3,30}$/;
|
|
43
|
+
var USERNAME_ALPHA_START = /^[a-zA-Z][a-zA-Z0-9_-]{2,29}$/;
|
|
44
|
+
var HANDLE = /^@?[a-zA-Z0-9_]{1,15}$/;
|
|
45
|
+
var CREDIT_CARD = /^\d{13,19}$/;
|
|
46
|
+
var VISA = /^4[0-9]{12}(?:[0-9]{3})?$/;
|
|
47
|
+
var MASTERCARD = /^5[1-5][0-9]{14}$/;
|
|
48
|
+
var AMEX = /^3[47][0-9]{13}$/;
|
|
49
|
+
var DISCOVER = /^6(?:011|5[0-9]{2})[0-9]{12}$/;
|
|
50
|
+
var CVV = /^\d{3,4}$/;
|
|
51
|
+
var CARD_EXPIRY = /^(0[1-9]|1[0-2])\/(\d{2}|\d{4})$/;
|
|
52
|
+
var DATE_ISO = /^\d{4}-\d{2}-\d{2}$/;
|
|
53
|
+
var DATE_DMY = /^(0[1-9]|[12]\d|3[01])\/(0[1-9]|1[0-2])\/\d{4}$/;
|
|
54
|
+
var DATE_MDY = /^(0[1-9]|1[0-2])\/(0[1-9]|[12]\d|3[01])\/\d{4}$/;
|
|
55
|
+
var TIME_24H = /^([01]\d|2[0-3]):([0-5]\d)$/;
|
|
56
|
+
var TIME_24H_SECONDS = /^([01]\d|2[0-3]):([0-5]\d):([0-5]\d)$/;
|
|
57
|
+
var TIME_12H = /^(0?[1-9]|1[0-2]):[0-5]\d\s?(AM|PM|am|pm)$/;
|
|
58
|
+
var DATETIME_ISO = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?(Z|[+-]\d{2}:\d{2})?$/;
|
|
59
|
+
var IPV4 = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
|
|
60
|
+
var IPV6 = /^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/;
|
|
61
|
+
var MAC_ADDRESS = /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/;
|
|
62
|
+
var IMAGE_EXT = /\.(jpg|jpeg|png|gif|bmp|webp|svg|ico|tiff?)$/i;
|
|
63
|
+
var VIDEO_EXT = /\.(mp4|webm|ogg|avi|mov|wmv|flv|mkv)$/i;
|
|
64
|
+
var AUDIO_EXT = /\.(mp3|wav|ogg|aac|flac|wma|m4a)$/i;
|
|
65
|
+
var DOCUMENT_EXT = /\.(pdf|doc|docx|xls|xlsx|ppt|pptx|txt|rtf|odt|ods|odp)$/i;
|
|
66
|
+
var ARCHIVE_EXT = /\.(zip|rar|7z|tar|gz|bz2)$/i;
|
|
67
|
+
var SAFE_FILENAME = /^[a-zA-Z0-9._-]+$/;
|
|
68
|
+
var HEX_COLOR = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;
|
|
69
|
+
var HEX_COLOR_ALPHA = /^#([A-Fa-f0-9]{8}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{3})$/;
|
|
70
|
+
var RGB_COLOR = /^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/;
|
|
71
|
+
var RGBA_COLOR = /^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(0|1|0?\.\d+)\s*\)$/;
|
|
72
|
+
var HSL_COLOR = /^hsl\(\s*(\d{1,3})\s*,\s*(\d{1,3})%\s*,\s*(\d{1,3})%\s*\)$/;
|
|
73
|
+
var ALPHANUMERIC = /^[a-zA-Z0-9]+$/;
|
|
74
|
+
var LETTERS_ONLY = /^[a-zA-Z]+$/;
|
|
75
|
+
var NUMBERS_ONLY = /^\d+$/;
|
|
76
|
+
var DECIMAL = /^-?\d+(\.\d+)?$/;
|
|
77
|
+
var POSITIVE_INTEGER = /^[1-9]\d*$/;
|
|
78
|
+
var NON_NEGATIVE_INTEGER = /^\d+$/;
|
|
79
|
+
var NO_WHITESPACE = /^\S+$/;
|
|
80
|
+
var NO_SPECIAL_CHARS = /^[a-zA-Z0-9\s]+$/;
|
|
81
|
+
var HAS_UPPERCASE = /[A-Z]/;
|
|
82
|
+
var HAS_LOWERCASE = /[a-z]/;
|
|
83
|
+
var HAS_DIGIT = /\d/;
|
|
84
|
+
var HAS_SPECIAL = /[!@#$%^&*(),.?":{}|<>]/;
|
|
85
|
+
var HTML_TAG = /<[^>]*>/g;
|
|
86
|
+
var EMOJI = /[\u{1F600}-\u{1F64F}\u{1F300}-\u{1F5FF}\u{1F680}-\u{1F6FF}\u{1F1E0}-\u{1F1FF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}]/u;
|
|
87
|
+
var HASHTAG = /#[a-zA-Z0-9_]+/g;
|
|
88
|
+
var MENTION = /@[a-zA-Z0-9_]+/g;
|
|
89
|
+
var JSON_STRING = /^[\],:{}\s]*$/;
|
|
90
|
+
var BASE64 = /^[A-Za-z0-9+/]+=*$/;
|
|
91
|
+
var JWT = /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/;
|
|
92
|
+
var SEMVER = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;
|
|
93
|
+
var LATITUDE = /^-?([0-8]?[0-9]|90)(\.[0-9]{1,10})?$/;
|
|
94
|
+
var LONGITUDE = /^-?([0-9]{1,2}|1[0-7][0-9]|180)(\.[0-9]{1,10})?$/;
|
|
95
|
+
var REGEX = {
|
|
96
|
+
// Email
|
|
97
|
+
EMAIL,
|
|
98
|
+
EMAIL_RFC5322,
|
|
99
|
+
EMAIL_COMMON_DOMAINS,
|
|
100
|
+
// Password
|
|
101
|
+
PASSWORD_MIN_8,
|
|
102
|
+
PASSWORD_ALPHANUMERIC,
|
|
103
|
+
PASSWORD_MEDIUM,
|
|
104
|
+
PASSWORD_STRONG,
|
|
105
|
+
PASSWORD_VERY_STRONG,
|
|
106
|
+
// Phone
|
|
107
|
+
PHONE_INTERNATIONAL,
|
|
108
|
+
PHONE_US,
|
|
109
|
+
PHONE_INDIA,
|
|
110
|
+
PHONE_UK,
|
|
111
|
+
PHONE_10_DIGIT,
|
|
112
|
+
PHONE_WITH_CODE,
|
|
113
|
+
// Postal
|
|
114
|
+
ZIP_US,
|
|
115
|
+
PIN_INDIA,
|
|
116
|
+
POSTAL_UK,
|
|
117
|
+
POSTAL_CANADA,
|
|
118
|
+
PLZ_GERMANY,
|
|
119
|
+
POSTAL_GENERIC,
|
|
120
|
+
// IDs
|
|
121
|
+
UUID_V4,
|
|
122
|
+
UUID,
|
|
123
|
+
MONGO_OBJECT_ID,
|
|
124
|
+
CUID,
|
|
125
|
+
CUID2,
|
|
126
|
+
NANOID,
|
|
127
|
+
// Government IDs
|
|
128
|
+
AADHAAR_INDIA,
|
|
129
|
+
PAN_INDIA,
|
|
130
|
+
GST_INDIA,
|
|
131
|
+
SSN_US,
|
|
132
|
+
DL_INDIA,
|
|
133
|
+
VEHICLE_INDIA,
|
|
134
|
+
IFSC_INDIA,
|
|
135
|
+
// URL
|
|
136
|
+
URL_BASIC,
|
|
137
|
+
URL_OPTIONAL_PROTOCOL,
|
|
138
|
+
URL_STRICT,
|
|
139
|
+
DOMAIN,
|
|
140
|
+
SUBDOMAIN,
|
|
141
|
+
LOCALHOST,
|
|
142
|
+
// Slug & Username
|
|
143
|
+
SLUG,
|
|
144
|
+
USERNAME,
|
|
145
|
+
USERNAME_ALPHA_START,
|
|
146
|
+
HANDLE,
|
|
147
|
+
// Credit Card
|
|
148
|
+
CREDIT_CARD,
|
|
149
|
+
VISA,
|
|
150
|
+
MASTERCARD,
|
|
151
|
+
AMEX,
|
|
152
|
+
DISCOVER,
|
|
153
|
+
CVV,
|
|
154
|
+
CARD_EXPIRY,
|
|
155
|
+
// Date & Time
|
|
156
|
+
DATE_ISO,
|
|
157
|
+
DATE_DMY,
|
|
158
|
+
DATE_MDY,
|
|
159
|
+
TIME_24H,
|
|
160
|
+
TIME_24H_SECONDS,
|
|
161
|
+
TIME_12H,
|
|
162
|
+
DATETIME_ISO,
|
|
163
|
+
// IP
|
|
164
|
+
IPV4,
|
|
165
|
+
IPV6,
|
|
166
|
+
MAC_ADDRESS,
|
|
167
|
+
// File
|
|
168
|
+
IMAGE_EXT,
|
|
169
|
+
VIDEO_EXT,
|
|
170
|
+
AUDIO_EXT,
|
|
171
|
+
DOCUMENT_EXT,
|
|
172
|
+
ARCHIVE_EXT,
|
|
173
|
+
SAFE_FILENAME,
|
|
174
|
+
// Color
|
|
175
|
+
HEX_COLOR,
|
|
176
|
+
HEX_COLOR_ALPHA,
|
|
177
|
+
RGB_COLOR,
|
|
178
|
+
RGBA_COLOR,
|
|
179
|
+
HSL_COLOR,
|
|
180
|
+
// Misc
|
|
181
|
+
ALPHANUMERIC,
|
|
182
|
+
LETTERS_ONLY,
|
|
183
|
+
NUMBERS_ONLY,
|
|
184
|
+
DECIMAL,
|
|
185
|
+
POSITIVE_INTEGER,
|
|
186
|
+
NON_NEGATIVE_INTEGER,
|
|
187
|
+
NO_WHITESPACE,
|
|
188
|
+
NO_SPECIAL_CHARS,
|
|
189
|
+
HAS_UPPERCASE,
|
|
190
|
+
HAS_LOWERCASE,
|
|
191
|
+
HAS_DIGIT,
|
|
192
|
+
HAS_SPECIAL,
|
|
193
|
+
HTML_TAG,
|
|
194
|
+
EMOJI,
|
|
195
|
+
HASHTAG,
|
|
196
|
+
MENTION,
|
|
197
|
+
JSON_STRING,
|
|
198
|
+
BASE64,
|
|
199
|
+
JWT,
|
|
200
|
+
SEMVER,
|
|
201
|
+
LATITUDE,
|
|
202
|
+
LONGITUDE
|
|
203
|
+
};
|
|
204
|
+
var regex_default = REGEX;
|
|
205
|
+
|
|
206
|
+
export { AADHAAR_INDIA, ALPHANUMERIC, AMEX, ARCHIVE_EXT, AUDIO_EXT, BASE64, CARD_EXPIRY, CREDIT_CARD, CUID, CUID2, CVV, DATETIME_ISO, DATE_DMY, DATE_ISO, DATE_MDY, DECIMAL, DISCOVER, DL_INDIA, DOCUMENT_EXT, DOMAIN, EMAIL, EMAIL_COMMON_DOMAINS, EMAIL_RFC5322, EMOJI, GST_INDIA, HANDLE, HASHTAG, HAS_DIGIT, HAS_LOWERCASE, HAS_SPECIAL, HAS_UPPERCASE, HEX_COLOR, HEX_COLOR_ALPHA, HSL_COLOR, HTML_TAG, IFSC_INDIA, IMAGE_EXT, IPV4, IPV6, JSON_STRING, JWT, LATITUDE, LETTERS_ONLY, LOCALHOST, LONGITUDE, MAC_ADDRESS, MASTERCARD, MENTION, MONGO_OBJECT_ID, NANOID, NON_NEGATIVE_INTEGER, NO_SPECIAL_CHARS, NO_WHITESPACE, NUMBERS_ONLY, PAN_INDIA, PASSWORD_ALPHANUMERIC, PASSWORD_MEDIUM, PASSWORD_MIN_8, PASSWORD_STRONG, PASSWORD_VERY_STRONG, PHONE_10_DIGIT, PHONE_INDIA, PHONE_INTERNATIONAL, PHONE_UK, PHONE_US, PHONE_WITH_CODE, PIN_INDIA, PLZ_GERMANY, POSITIVE_INTEGER, POSTAL_CANADA, POSTAL_GENERIC, POSTAL_UK, REGEX, RGBA_COLOR, RGB_COLOR, SAFE_FILENAME, SEMVER, SLUG, SSN_US, SUBDOMAIN, TIME_12H, TIME_24H, TIME_24H_SECONDS, URL_BASIC, URL_OPTIONAL_PROTOCOL, URL_STRICT, USERNAME, USERNAME_ALPHA_START, UUID, UUID_V4, VEHICLE_INDIA, VIDEO_EXT, VISA, ZIP_US, regex_default as default };
|
|
207
|
+
//# sourceMappingURL=regex.mjs.map
|
|
208
|
+
//# sourceMappingURL=regex.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/data/regex.ts"],"names":[],"mappings":"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","file":"regex.mjs","sourcesContent":["/**\r\n * Common Regex Patterns\r\n * Reusable validation patterns for various data types\r\n */\r\n\r\n// ==========================================\r\n// EMAIL PATTERNS\r\n// ==========================================\r\n\r\n/** Basic email validation */\r\nexport const EMAIL = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\r\n\r\n/** RFC 5322 compliant email (more strict) */\r\nexport const EMAIL_RFC5322 = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\r\n\r\n/** Email with common domains only (gmail, yahoo, outlook, etc.) */\r\nexport const EMAIL_COMMON_DOMAINS = /^[^\\s@]+@(gmail|yahoo|outlook|hotmail|icloud|proton|aol|mail)\\.[a-z]{2,}$/i;\r\n\r\n// ==========================================\r\n// PASSWORD PATTERNS\r\n// ==========================================\r\n\r\n/** Minimum 8 characters */\r\nexport const PASSWORD_MIN_8 = /^.{8,}$/;\r\n\r\n/** Minimum 8 chars, at least one letter and one number */\r\nexport const PASSWORD_ALPHANUMERIC = /^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,}$/;\r\n\r\n/** Medium: min 8 chars, uppercase, lowercase, number */\r\nexport const PASSWORD_MEDIUM = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[A-Za-z\\d@$!%*?&]{8,}$/;\r\n\r\n/** Strong: min 8 chars, uppercase, lowercase, number, special char */\r\nexport const PASSWORD_STRONG = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{8,}$/;\r\n\r\n/** Very Strong: min 12 chars, uppercase, lowercase, number, special char */\r\nexport const PASSWORD_VERY_STRONG = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*#?&^()_+=[\\]{}|;:'\"<>,.\\/\\\\-])[A-Za-z\\d@$!%*#?&^()_+=[\\]{}|;:'\"<>,.\\/\\\\-]{12,}$/;\r\n\r\n// ==========================================\r\n// PHONE NUMBER PATTERNS\r\n// ==========================================\r\n\r\n/** International phone (with + prefix) */\r\nexport const PHONE_INTERNATIONAL = /^\\+?[1-9]\\d{1,14}$/;\r\n\r\n/** US phone number */\r\nexport const PHONE_US = /^(\\+1)?[-.\\s]?\\(?[0-9]{3}\\)?[-.\\s]?[0-9]{3}[-.\\s]?[0-9]{4}$/;\r\n\r\n/** India phone number (10 digits starting with 6-9) */\r\nexport const PHONE_INDIA = /^(\\+91)?[-.\\s]?[6-9]\\d{9}$/;\r\n\r\n/** UK phone number */\r\nexport const PHONE_UK = /^(\\+44)?[-.\\s]?[0-9]{10,11}$/;\r\n\r\n/** Generic 10-digit phone */\r\nexport const PHONE_10_DIGIT = /^\\d{10}$/;\r\n\r\n/** Phone with optional country code */\r\nexport const PHONE_WITH_CODE = /^\\+?[\\d\\s\\-().]{10,20}$/;\r\n\r\n// ==========================================\r\n// PIN/POSTAL CODE PATTERNS\r\n// ==========================================\r\n\r\n/** US ZIP Code (5 digits or 5+4) */\r\nexport const ZIP_US = /^\\d{5}(-\\d{4})?$/;\r\n\r\n/** India PIN Code (6 digits) */\r\nexport const PIN_INDIA = /^[1-9][0-9]{5}$/;\r\n\r\n/** UK Postal Code */\r\nexport const POSTAL_UK = /^[A-Z]{1,2}\\d[A-Z\\d]?\\s*\\d[A-Z]{2}$/i;\r\n\r\n/** Canada Postal Code */\r\nexport const POSTAL_CANADA = /^[A-Z]\\d[A-Z]\\s?\\d[A-Z]\\d$/i;\r\n\r\n/** Germany PLZ (5 digits) */\r\nexport const PLZ_GERMANY = /^\\d{5}$/;\r\n\r\n/** Generic postal code (4-10 alphanumeric) */\r\nexport const POSTAL_GENERIC = /^[A-Z0-9]{4,10}$/i;\r\n\r\n// ==========================================\r\n// ID PATTERNS\r\n// ==========================================\r\n\r\n/** UUID v4 */\r\nexport const UUID_V4 = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\r\n\r\n/** UUID any version */\r\nexport const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\r\n\r\n/** MongoDB ObjectId */\r\nexport const MONGO_OBJECT_ID = /^[0-9a-f]{24}$/i;\r\n\r\n/** CUID */\r\nexport const CUID = /^c[a-z0-9]{24}$/i;\r\n\r\n/** CUID2 */\r\nexport const CUID2 = /^[a-z][a-z0-9]{23}$/;\r\n\r\n/** NanoID (default 21 chars) */\r\nexport const NANOID = /^[A-Za-z0-9_-]{21}$/;\r\n\r\n// ==========================================\r\n// GOVERNMENT ID PATTERNS\r\n// ==========================================\r\n\r\n/** India Aadhaar (12 digits) */\r\nexport const AADHAAR_INDIA = /^[2-9]\\d{11}$/;\r\n\r\n/** India PAN Card */\r\nexport const PAN_INDIA = /^[A-Z]{5}[0-9]{4}[A-Z]$/;\r\n\r\n/** India GST Number */\r\nexport const GST_INDIA = /^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z][1-9A-Z]Z[0-9A-Z]$/;\r\n\r\n/** US SSN */\r\nexport const SSN_US = /^\\d{3}-?\\d{2}-?\\d{4}$/;\r\n\r\n/** India Driving License */\r\nexport const DL_INDIA = /^[A-Z]{2}[0-9]{2}[0-9]{4}[0-9]{7}$/;\r\n\r\n/** India Vehicle Number */\r\nexport const VEHICLE_INDIA = /^[A-Z]{2}[0-9]{2}[A-Z]{1,2}[0-9]{4}$/;\r\n\r\n/** India IFSC Code */\r\nexport const IFSC_INDIA = /^[A-Z]{4}0[A-Z0-9]{6}$/;\r\n\r\n// ==========================================\r\n// URL PATTERNS\r\n// ==========================================\r\n\r\n/** Basic URL (http/https) */\r\nexport const URL_BASIC = /^https?:\\/\\/[^\\s$.?#].[^\\s]*$/i;\r\n\r\n/** URL with optional protocol */\r\nexport const URL_OPTIONAL_PROTOCOL = /^(https?:\\/\\/)?([\\da-z.-]+)\\.([a-z.]{2,6})([\\/\\w .-]*)*\\/?$/i;\r\n\r\n/** Strict URL with protocol required */\r\nexport const URL_STRICT = /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)$/;\r\n\r\n/** Domain only (no protocol) */\r\nexport const DOMAIN = /^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$/i;\r\n\r\n/** Subdomain */\r\nexport const SUBDOMAIN = /^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/i;\r\n\r\n/** Localhost with optional port */\r\nexport const LOCALHOST = /^(localhost|127\\.0\\.0\\.1)(:\\d{1,5})?$/;\r\n\r\n// ==========================================\r\n// SLUG & USERNAME PATTERNS\r\n// ==========================================\r\n\r\n/** URL slug (kebab-case) */\r\nexport const SLUG = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;\r\n\r\n/** Username (alphanumeric, underscore, hyphen, 3-30 chars) */\r\nexport const USERNAME = /^[a-zA-Z0-9_-]{3,30}$/;\r\n\r\n/** Username starting with letter */\r\nexport const USERNAME_ALPHA_START = /^[a-zA-Z][a-zA-Z0-9_-]{2,29}$/;\r\n\r\n/** Handle (like Twitter @username) */\r\nexport const HANDLE = /^@?[a-zA-Z0-9_]{1,15}$/;\r\n\r\n// ==========================================\r\n// CREDIT CARD PATTERNS\r\n// ==========================================\r\n\r\n/** Any credit card (13-19 digits) */\r\nexport const CREDIT_CARD = /^\\d{13,19}$/;\r\n\r\n/** Visa */\r\nexport const VISA = /^4[0-9]{12}(?:[0-9]{3})?$/;\r\n\r\n/** Mastercard */\r\nexport const MASTERCARD = /^5[1-5][0-9]{14}$/;\r\n\r\n/** American Express */\r\nexport const AMEX = /^3[47][0-9]{13}$/;\r\n\r\n/** Discover */\r\nexport const DISCOVER = /^6(?:011|5[0-9]{2})[0-9]{12}$/;\r\n\r\n/** CVV (3-4 digits) */\r\nexport const CVV = /^\\d{3,4}$/;\r\n\r\n/** Card expiry (MM/YY or MM/YYYY) */\r\nexport const CARD_EXPIRY = /^(0[1-9]|1[0-2])\\/(\\d{2}|\\d{4})$/;\r\n\r\n// ==========================================\r\n// DATE & TIME PATTERNS\r\n// ==========================================\r\n\r\n/** ISO 8601 Date (YYYY-MM-DD) */\r\nexport const DATE_ISO = /^\\d{4}-\\d{2}-\\d{2}$/;\r\n\r\n/** Date DD/MM/YYYY */\r\nexport const DATE_DMY = /^(0[1-9]|[12]\\d|3[01])\\/(0[1-9]|1[0-2])\\/\\d{4}$/;\r\n\r\n/** Date MM/DD/YYYY */\r\nexport const DATE_MDY = /^(0[1-9]|1[0-2])\\/(0[1-9]|[12]\\d|3[01])\\/\\d{4}$/;\r\n\r\n/** Time HH:MM (24-hour) */\r\nexport const TIME_24H = /^([01]\\d|2[0-3]):([0-5]\\d)$/;\r\n\r\n/** Time HH:MM:SS (24-hour) */\r\nexport const TIME_24H_SECONDS = /^([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)$/;\r\n\r\n/** Time 12-hour with AM/PM */\r\nexport const TIME_12H = /^(0?[1-9]|1[0-2]):[0-5]\\d\\s?(AM|PM|am|pm)$/;\r\n\r\n/** ISO 8601 DateTime */\r\nexport const DATETIME_ISO = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?(Z|[+-]\\d{2}:\\d{2})?$/;\r\n\r\n// ==========================================\r\n// IP ADDRESS PATTERNS\r\n// ==========================================\r\n\r\n/** IPv4 Address */\r\nexport const IPV4 = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;\r\n\r\n/** IPv6 Address */\r\nexport const IPV6 = /^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/;\r\n\r\n/** MAC Address */\r\nexport const MAC_ADDRESS = /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/;\r\n\r\n// ==========================================\r\n// FILE PATTERNS\r\n// ==========================================\r\n\r\n/** Image file extension */\r\nexport const IMAGE_EXT = /\\.(jpg|jpeg|png|gif|bmp|webp|svg|ico|tiff?)$/i;\r\n\r\n/** Video file extension */\r\nexport const VIDEO_EXT = /\\.(mp4|webm|ogg|avi|mov|wmv|flv|mkv)$/i;\r\n\r\n/** Audio file extension */\r\nexport const AUDIO_EXT = /\\.(mp3|wav|ogg|aac|flac|wma|m4a)$/i;\r\n\r\n/** Document file extension */\r\nexport const DOCUMENT_EXT = /\\.(pdf|doc|docx|xls|xlsx|ppt|pptx|txt|rtf|odt|ods|odp)$/i;\r\n\r\n/** Archive file extension */\r\nexport const ARCHIVE_EXT = /\\.(zip|rar|7z|tar|gz|bz2)$/i;\r\n\r\n/** Safe filename */\r\nexport const SAFE_FILENAME = /^[a-zA-Z0-9._-]+$/;\r\n\r\n// ==========================================\r\n// COLOR PATTERNS\r\n// ==========================================\r\n\r\n/** Hex color (3 or 6 chars) */\r\nexport const HEX_COLOR = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;\r\n\r\n/** Hex color with alpha (8 chars) */\r\nexport const HEX_COLOR_ALPHA = /^#([A-Fa-f0-9]{8}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{3})$/;\r\n\r\n/** RGB color */\r\nexport const RGB_COLOR = /^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/;\r\n\r\n/** RGBA color */\r\nexport const RGBA_COLOR = /^rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(0|1|0?\\.\\d+)\\s*\\)$/;\r\n\r\n/** HSL color */\r\nexport const HSL_COLOR = /^hsl\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})%\\s*,\\s*(\\d{1,3})%\\s*\\)$/;\r\n\r\n// ==========================================\r\n// MISC PATTERNS\r\n// ==========================================\r\n\r\n/** Alphanumeric only */\r\nexport const ALPHANUMERIC = /^[a-zA-Z0-9]+$/;\r\n\r\n/** Letters only */\r\nexport const LETTERS_ONLY = /^[a-zA-Z]+$/;\r\n\r\n/** Numbers only */\r\nexport const NUMBERS_ONLY = /^\\d+$/;\r\n\r\n/** Decimal number */\r\nexport const DECIMAL = /^-?\\d+(\\.\\d+)?$/;\r\n\r\n/** Positive integer */\r\nexport const POSITIVE_INTEGER = /^[1-9]\\d*$/;\r\n\r\n/** Non-negative integer */\r\nexport const NON_NEGATIVE_INTEGER = /^\\d+$/;\r\n\r\n/** No whitespace */\r\nexport const NO_WHITESPACE = /^\\S+$/;\r\n\r\n/** No special characters */\r\nexport const NO_SPECIAL_CHARS = /^[a-zA-Z0-9\\s]+$/;\r\n\r\n/** Contains at least one uppercase */\r\nexport const HAS_UPPERCASE = /[A-Z]/;\r\n\r\n/** Contains at least one lowercase */\r\nexport const HAS_LOWERCASE = /[a-z]/;\r\n\r\n/** Contains at least one digit */\r\nexport const HAS_DIGIT = /\\d/;\r\n\r\n/** Contains at least one special character */\r\nexport const HAS_SPECIAL = /[!@#$%^&*(),.?\":{}|<>]/;\r\n\r\n/** HTML tags */\r\nexport const HTML_TAG = /<[^>]*>/g;\r\n\r\n/** Emoji */\r\nexport const EMOJI = /[\\u{1F600}-\\u{1F64F}\\u{1F300}-\\u{1F5FF}\\u{1F680}-\\u{1F6FF}\\u{1F1E0}-\\u{1F1FF}\\u{2600}-\\u{26FF}\\u{2700}-\\u{27BF}]/u;\r\n\r\n/** Hashtag */\r\nexport const HASHTAG = /#[a-zA-Z0-9_]+/g;\r\n\r\n/** Mention (@username) */\r\nexport const MENTION = /@[a-zA-Z0-9_]+/g;\r\n\r\n/** JSON string */\r\nexport const JSON_STRING = /^[\\],:{}\\s]*$/;\r\n\r\n/** Base64 */\r\nexport const BASE64 = /^[A-Za-z0-9+/]+=*$/;\r\n\r\n/** JWT Token */\r\nexport const JWT = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\r\n\r\n/** Semantic Version */\r\nexport const SEMVER = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\r\n\r\n/** Latitude */\r\nexport const LATITUDE = /^-?([0-8]?[0-9]|90)(\\.[0-9]{1,10})?$/;\r\n\r\n/** Longitude */\r\nexport const LONGITUDE = /^-?([0-9]{1,2}|1[0-7][0-9]|180)(\\.[0-9]{1,10})?$/;\r\n\r\n// ==========================================\r\n// EXPORT AS OBJECT FOR CONVENIENCE\r\n// ==========================================\r\n\r\nexport const REGEX = {\r\n // Email\r\n EMAIL,\r\n EMAIL_RFC5322,\r\n EMAIL_COMMON_DOMAINS,\r\n\r\n // Password\r\n PASSWORD_MIN_8,\r\n PASSWORD_ALPHANUMERIC,\r\n PASSWORD_MEDIUM,\r\n PASSWORD_STRONG,\r\n PASSWORD_VERY_STRONG,\r\n\r\n // Phone\r\n PHONE_INTERNATIONAL,\r\n PHONE_US,\r\n PHONE_INDIA,\r\n PHONE_UK,\r\n PHONE_10_DIGIT,\r\n PHONE_WITH_CODE,\r\n\r\n // Postal\r\n ZIP_US,\r\n PIN_INDIA,\r\n POSTAL_UK,\r\n POSTAL_CANADA,\r\n PLZ_GERMANY,\r\n POSTAL_GENERIC,\r\n\r\n // IDs\r\n UUID_V4,\r\n UUID,\r\n MONGO_OBJECT_ID,\r\n CUID,\r\n CUID2,\r\n NANOID,\r\n\r\n // Government IDs\r\n AADHAAR_INDIA,\r\n PAN_INDIA,\r\n GST_INDIA,\r\n SSN_US,\r\n DL_INDIA,\r\n VEHICLE_INDIA,\r\n IFSC_INDIA,\r\n\r\n // URL\r\n URL_BASIC,\r\n URL_OPTIONAL_PROTOCOL,\r\n URL_STRICT,\r\n DOMAIN,\r\n SUBDOMAIN,\r\n LOCALHOST,\r\n\r\n // Slug & Username\r\n SLUG,\r\n USERNAME,\r\n USERNAME_ALPHA_START,\r\n HANDLE,\r\n\r\n // Credit Card\r\n CREDIT_CARD,\r\n VISA,\r\n MASTERCARD,\r\n AMEX,\r\n DISCOVER,\r\n CVV,\r\n CARD_EXPIRY,\r\n\r\n // Date & Time\r\n DATE_ISO,\r\n DATE_DMY,\r\n DATE_MDY,\r\n TIME_24H,\r\n TIME_24H_SECONDS,\r\n TIME_12H,\r\n DATETIME_ISO,\r\n\r\n // IP\r\n IPV4,\r\n IPV6,\r\n MAC_ADDRESS,\r\n\r\n // File\r\n IMAGE_EXT,\r\n VIDEO_EXT,\r\n AUDIO_EXT,\r\n DOCUMENT_EXT,\r\n ARCHIVE_EXT,\r\n SAFE_FILENAME,\r\n\r\n // Color\r\n HEX_COLOR,\r\n HEX_COLOR_ALPHA,\r\n RGB_COLOR,\r\n RGBA_COLOR,\r\n HSL_COLOR,\r\n\r\n // Misc\r\n ALPHANUMERIC,\r\n LETTERS_ONLY,\r\n NUMBERS_ONLY,\r\n DECIMAL,\r\n POSITIVE_INTEGER,\r\n NON_NEGATIVE_INTEGER,\r\n NO_WHITESPACE,\r\n NO_SPECIAL_CHARS,\r\n HAS_UPPERCASE,\r\n HAS_LOWERCASE,\r\n HAS_DIGIT,\r\n HAS_SPECIAL,\r\n HTML_TAG,\r\n EMOJI,\r\n HASHTAG,\r\n MENTION,\r\n JSON_STRING,\r\n BASE64,\r\n JWT,\r\n SEMVER,\r\n LATITUDE,\r\n LONGITUDE,\r\n} as const;\r\n\r\nexport default REGEX;\r\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Timezones data with UTC offsets
|
|
3
|
+
*/
|
|
4
|
+
interface Timezone {
|
|
5
|
+
name: string;
|
|
6
|
+
label: string;
|
|
7
|
+
offset: string;
|
|
8
|
+
offsetMinutes: number;
|
|
9
|
+
}
|
|
10
|
+
declare const timezones: Timezone[];
|
|
11
|
+
declare const getTimezoneByName: (name: string) => Timezone | undefined;
|
|
12
|
+
declare const searchTimezones: (query: string) => Timezone[];
|
|
13
|
+
declare const getTimezonesByOffset: (offsetMinutes: number) => Timezone[];
|
|
14
|
+
declare const sortTimezonesByOffset: (ascending?: boolean) => Timezone[];
|
|
15
|
+
|
|
16
|
+
export { type Timezone, timezones as default, getTimezoneByName, getTimezonesByOffset, searchTimezones, sortTimezonesByOffset, timezones };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Timezones data with UTC offsets
|
|
3
|
+
*/
|
|
4
|
+
interface Timezone {
|
|
5
|
+
name: string;
|
|
6
|
+
label: string;
|
|
7
|
+
offset: string;
|
|
8
|
+
offsetMinutes: number;
|
|
9
|
+
}
|
|
10
|
+
declare const timezones: Timezone[];
|
|
11
|
+
declare const getTimezoneByName: (name: string) => Timezone | undefined;
|
|
12
|
+
declare const searchTimezones: (query: string) => Timezone[];
|
|
13
|
+
declare const getTimezonesByOffset: (offsetMinutes: number) => Timezone[];
|
|
14
|
+
declare const sortTimezonesByOffset: (ascending?: boolean) => Timezone[];
|
|
15
|
+
|
|
16
|
+
export { type Timezone, timezones as default, getTimezoneByName, getTimezonesByOffset, searchTimezones, sortTimezonesByOffset, timezones };
|