@jarenjs/formats 0.8.2
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 +3 -0
- package/dist/index.js +679 -0
- package/dist/index.js.map +7 -0
- package/dist/index.min.js +2 -0
- package/dist/index.min.js.map +7 -0
- package/package.json +29 -0
package/README.md
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,679 @@
|
|
|
1
|
+
// ../core/src/index.js
|
|
2
|
+
function isStringType(data) {
|
|
3
|
+
return typeof data === "string";
|
|
4
|
+
}
|
|
5
|
+
function isNumberType(data) {
|
|
6
|
+
return data != null && typeof data === "number";
|
|
7
|
+
}
|
|
8
|
+
function isIntegerType(data) {
|
|
9
|
+
return Number.isInteger(data);
|
|
10
|
+
}
|
|
11
|
+
function isObjectOfClass(data, type) {
|
|
12
|
+
return data != null && data.constructor === type;
|
|
13
|
+
}
|
|
14
|
+
var TypedArray = Object.getPrototypeOf(Uint8Array);
|
|
15
|
+
function getInclusiveExclusiveBounds(getType, inclusive, exclusive) {
|
|
16
|
+
const includes = getType(inclusive);
|
|
17
|
+
const excludes = exclusive === true ? includes : getType(exclusive);
|
|
18
|
+
return excludes === void 0 ? [includes, void 0] : [void 0, excludes];
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// ../core/src/dates.js
|
|
22
|
+
var CONST_TICKS_SECOND = 1e3;
|
|
23
|
+
var CONST_TICKS_HOUR = CONST_TICKS_SECOND * 60 * 60;
|
|
24
|
+
var CONST_TICKS_DAY = CONST_TICKS_HOUR * 24;
|
|
25
|
+
var CONST_TIME_INSERTDATE = "1970-01-01T";
|
|
26
|
+
var CONST_RFC3339_DAYS = Object.freeze(
|
|
27
|
+
[0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
|
|
28
|
+
);
|
|
29
|
+
var CONST_RFC3339_REGEX_ISDATE = /^(\d\d\d\d)-([0-1]\d)-([0-3]\d)z?$/i;
|
|
30
|
+
var CONST_RFC3339_REGEX_ISTIME = /^(\d\d):(\d\d):(\d\d)(\.\d{1,6})?(z|(([+-])(\d\d):(\d\d)))$/i;
|
|
31
|
+
function isDateType(data) {
|
|
32
|
+
return isObjectOfClass(data, Date);
|
|
33
|
+
}
|
|
34
|
+
function isLeapYear(year) {
|
|
35
|
+
return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
|
|
36
|
+
}
|
|
37
|
+
function isDateOnlyInRange(year = 0, month = 0, day = 0) {
|
|
38
|
+
return month >= 1 && month <= 12 && day >= 1 && day <= (month === 2 && isLeapYear(year) ? 29 : CONST_RFC3339_DAYS[month]);
|
|
39
|
+
}
|
|
40
|
+
function isDateOnlyRFC3339(str) {
|
|
41
|
+
if (!isStringType(str))
|
|
42
|
+
return false;
|
|
43
|
+
const r = str.match(CONST_RFC3339_REGEX_ISDATE);
|
|
44
|
+
if (r == null)
|
|
45
|
+
return false;
|
|
46
|
+
const y = parseInt(r[1], 10) | 0;
|
|
47
|
+
const m = parseInt(r[2], 10) | 0;
|
|
48
|
+
const d = parseInt(r[3], 10) | 0;
|
|
49
|
+
return isDateOnlyInRange(y, m, d);
|
|
50
|
+
}
|
|
51
|
+
function isTimeOnlyInRange(hrs = 0, min = 0, sec = 0, tzh = 0, tzm = 0) {
|
|
52
|
+
return (hrs === 23 && min === 59 && sec === 60 || hrs >= 0 && hrs <= 23 && min >= 0 && min <= 59 && sec >= 0 && sec <= 59) && (tzh >= 0 && tzh <= 23 && tzm >= 0 && tzm <= 59);
|
|
53
|
+
}
|
|
54
|
+
function isTimeOnlyRFC3339(str) {
|
|
55
|
+
if (!isStringType(str))
|
|
56
|
+
return false;
|
|
57
|
+
const r = str.match(CONST_RFC3339_REGEX_ISTIME);
|
|
58
|
+
if (r == null)
|
|
59
|
+
return false;
|
|
60
|
+
const h = parseInt(r[1], 10) | 0;
|
|
61
|
+
const m = parseInt(r[2], 10) | 0;
|
|
62
|
+
const s = parseInt(r[3], 10) | 0;
|
|
63
|
+
const th = parseInt(r[8], 10) | 0;
|
|
64
|
+
const tm = parseInt(r[9], 10) | 0;
|
|
65
|
+
return isTimeOnlyInRange(h, m, s, th, tm);
|
|
66
|
+
}
|
|
67
|
+
function isDateTimeRFC3339(str) {
|
|
68
|
+
if (!isStringType(str)) return false;
|
|
69
|
+
const dateTime = str.split(/t|\s/i);
|
|
70
|
+
return dateTime.length === 2 && isDateOnlyRFC3339(dateTime[0]) && isTimeOnlyRFC3339(dateTime[1]);
|
|
71
|
+
}
|
|
72
|
+
function getDateTypeOfDateOnlyRFC3339(str, def = void 0) {
|
|
73
|
+
return isDateOnlyRFC3339(str) ? new Date(Date.parse(str)) : def;
|
|
74
|
+
}
|
|
75
|
+
function getDateTypeOfTimeOnlyRFC3339(str, def = void 0) {
|
|
76
|
+
return isTimeOnlyRFC3339(str) ? new Date(Date.parse(CONST_TIME_INSERTDATE + str)) : def;
|
|
77
|
+
}
|
|
78
|
+
function getDateTypeOfDateTimeRFC3339(str, def = void 0) {
|
|
79
|
+
return isDateTimeRFC3339(str) ? new Date(Date.parse(str)) : def;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// src/datetime.js
|
|
83
|
+
function compileFormatMinimumByType(parseType, schemaObj, jsonSchema) {
|
|
84
|
+
const [min, emin] = getInclusiveExclusiveBounds(
|
|
85
|
+
parseType,
|
|
86
|
+
jsonSchema.formatMinimum,
|
|
87
|
+
jsonSchema.formatExclusiveMinimum
|
|
88
|
+
);
|
|
89
|
+
if (emin != null) {
|
|
90
|
+
const addError = schemaObj.createErrorHandler(emin, "formatExclusiveMinimum");
|
|
91
|
+
return function isFormatExclusiveMinimum(date, dataPath) {
|
|
92
|
+
return date > emin || addError(date, dataPath);
|
|
93
|
+
};
|
|
94
|
+
} else if (min) {
|
|
95
|
+
const addError = schemaObj.createErrorHandler(min, "formatMinimum");
|
|
96
|
+
return function isFormatMinimum(date, dataPath) {
|
|
97
|
+
return date >= min || addError(date, dataPath);
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
return void 0;
|
|
101
|
+
}
|
|
102
|
+
function compileFormatMaximumByType(parseType, schemaObj, jsonSchema) {
|
|
103
|
+
const [max, emax] = getInclusiveExclusiveBounds(
|
|
104
|
+
parseType,
|
|
105
|
+
jsonSchema.formatMaximum,
|
|
106
|
+
jsonSchema.formatExclusiveMaximum
|
|
107
|
+
);
|
|
108
|
+
if (emax != null) {
|
|
109
|
+
const addError = schemaObj.createErrorHandler(emax, "formatExclusiveMaximum");
|
|
110
|
+
return function isFormatExclusiveMaximum(date, dataPath) {
|
|
111
|
+
return date < emax || addError(date, dataPath);
|
|
112
|
+
};
|
|
113
|
+
} else if (max != null) {
|
|
114
|
+
const addError = schemaObj.createErrorHandler(max, "formatMaximum");
|
|
115
|
+
return function isFormatMaximum(date, dataPath) {
|
|
116
|
+
return date <= max || addError(date, dataPath);
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
return void 0;
|
|
120
|
+
}
|
|
121
|
+
function compileFormatByType(name, parseType, schemaObj, jsonSchema) {
|
|
122
|
+
if (jsonSchema.format !== name)
|
|
123
|
+
throw new Error("ERROR: This should not happen!");
|
|
124
|
+
const addError = schemaObj.createErrorHandler(jsonSchema.format, "format");
|
|
125
|
+
const validateMin = compileFormatMinimumByType(
|
|
126
|
+
parseType,
|
|
127
|
+
schemaObj,
|
|
128
|
+
jsonSchema
|
|
129
|
+
);
|
|
130
|
+
const validateMax = compileFormatMaximumByType(
|
|
131
|
+
parseType,
|
|
132
|
+
schemaObj,
|
|
133
|
+
jsonSchema
|
|
134
|
+
);
|
|
135
|
+
if (validateMin != null && validateMax != null) {
|
|
136
|
+
return function validateFormatBetween(data, dataPath) {
|
|
137
|
+
if (isStringType(data)) {
|
|
138
|
+
const date = parseType(data);
|
|
139
|
+
return date == null ? addError(data, dataPath) : validateMin(date, dataPath) && validateMax(date, dataPath);
|
|
140
|
+
} else if (isDateType(data))
|
|
141
|
+
return validateMin(data, dataPath) && validateMax(data, dataPath);
|
|
142
|
+
else
|
|
143
|
+
return true;
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
if (validateMin != null) {
|
|
147
|
+
return function validateFormatMinimum(data, dataPath) {
|
|
148
|
+
if (isStringType(data)) {
|
|
149
|
+
const date = parseType(data);
|
|
150
|
+
return date == null ? addError(data, dataPath) : validateMin(date, dataPath);
|
|
151
|
+
} else if (isDateType(data))
|
|
152
|
+
return validateMin(data, dataPath);
|
|
153
|
+
else
|
|
154
|
+
return true;
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
if (validateMax != null) {
|
|
158
|
+
return function validateFormatMaximum(data, dataPath) {
|
|
159
|
+
if (isStringType(data)) {
|
|
160
|
+
const date = parseType(data);
|
|
161
|
+
return date == null ? addError(data, dataPath) : validateMax(date);
|
|
162
|
+
} else if (isDateType(data))
|
|
163
|
+
return validateMax(data, dataPath);
|
|
164
|
+
else
|
|
165
|
+
return true;
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
return function validateDateTime(data, dataPath) {
|
|
169
|
+
if (isStringType(data)) {
|
|
170
|
+
const date = parseType(data);
|
|
171
|
+
return date == null ? addError(data, dataPath) : true;
|
|
172
|
+
} else
|
|
173
|
+
return true;
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
function compileDateTimeFormat(schemaObj, jsonSchema) {
|
|
177
|
+
return compileFormatByType(
|
|
178
|
+
"date-time",
|
|
179
|
+
getDateTypeOfDateTimeRFC3339,
|
|
180
|
+
schemaObj,
|
|
181
|
+
jsonSchema
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
|
+
function compileDateOnlyFormat(schemaObj, jsonSchema) {
|
|
185
|
+
return compileFormatByType(
|
|
186
|
+
"date",
|
|
187
|
+
getDateTypeOfDateOnlyRFC3339,
|
|
188
|
+
schemaObj,
|
|
189
|
+
jsonSchema
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
function compileTimeOnlyFormat(schemaObj, jsonSchema) {
|
|
193
|
+
return compileFormatByType(
|
|
194
|
+
"time",
|
|
195
|
+
getDateTypeOfTimeOnlyRFC3339,
|
|
196
|
+
schemaObj,
|
|
197
|
+
jsonSchema
|
|
198
|
+
);
|
|
199
|
+
}
|
|
200
|
+
var formatValidators = {
|
|
201
|
+
"date-time": compileDateTimeFormat,
|
|
202
|
+
date: compileDateOnlyFormat,
|
|
203
|
+
time: compileTimeOnlyFormat
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
// ../core/src/string.js
|
|
207
|
+
function isStringUpperCase(str) {
|
|
208
|
+
return str === str.toUpperCase();
|
|
209
|
+
}
|
|
210
|
+
function isStringLowerCase(str) {
|
|
211
|
+
return str === str.toLowerCase();
|
|
212
|
+
}
|
|
213
|
+
function isRegExpType(data) {
|
|
214
|
+
return isObjectOfClass(data, RegExp);
|
|
215
|
+
}
|
|
216
|
+
function isStringRegExp(str) {
|
|
217
|
+
try {
|
|
218
|
+
return createRegExp(str) != null;
|
|
219
|
+
} catch (e) {
|
|
220
|
+
return false;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
function createRegExp(pattern) {
|
|
224
|
+
if (pattern == null)
|
|
225
|
+
return void 0;
|
|
226
|
+
if (isRegExpType(pattern))
|
|
227
|
+
return pattern;
|
|
228
|
+
if (isStringType(pattern)) {
|
|
229
|
+
if (pattern[0] === "/") {
|
|
230
|
+
const e = pattern.lastIndexOf("/");
|
|
231
|
+
if (e >= 0) {
|
|
232
|
+
const r = pattern.substring(1, e);
|
|
233
|
+
const g = pattern.substring(e + 1);
|
|
234
|
+
return new RegExp(r, g);
|
|
235
|
+
}
|
|
236
|
+
} else
|
|
237
|
+
return new RegExp(pattern);
|
|
238
|
+
}
|
|
239
|
+
throw new Error(`Unknown Regular Expression Pattern Type: ${pattern}`);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
// ../strings/src/punycode.js
|
|
243
|
+
var maxInt = 2147483647;
|
|
244
|
+
var base = 36;
|
|
245
|
+
var tMin = 1;
|
|
246
|
+
var tMax = 26;
|
|
247
|
+
var skew = 38;
|
|
248
|
+
var damp = 700;
|
|
249
|
+
var initialBias = 72;
|
|
250
|
+
var initialN = 128;
|
|
251
|
+
var delimiter = "-";
|
|
252
|
+
var regexNonASCII = /[^\0-\x7E]/;
|
|
253
|
+
var regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g;
|
|
254
|
+
var errors = {
|
|
255
|
+
"overflow": "Overflow: input needs wider integers to process",
|
|
256
|
+
"not-basic": "Illegal input >= 0x80 (not a basic code point)",
|
|
257
|
+
"invalid-input": "Invalid input"
|
|
258
|
+
};
|
|
259
|
+
var baseMinusTMin = base - tMin;
|
|
260
|
+
var floor = Math.floor;
|
|
261
|
+
var stringFromCharCode = String.fromCharCode;
|
|
262
|
+
function error(type) {
|
|
263
|
+
throw new RangeError(errors[type]);
|
|
264
|
+
}
|
|
265
|
+
function map(array, fn) {
|
|
266
|
+
const result = [];
|
|
267
|
+
let length = array.length;
|
|
268
|
+
while (length--) {
|
|
269
|
+
result[length] = fn(array[length]);
|
|
270
|
+
}
|
|
271
|
+
return result;
|
|
272
|
+
}
|
|
273
|
+
function mapDomain(domain, fn) {
|
|
274
|
+
const parts = domain.split("@");
|
|
275
|
+
let result = "";
|
|
276
|
+
if (parts.length > 1) {
|
|
277
|
+
result = parts[0] + "@";
|
|
278
|
+
domain = parts[1];
|
|
279
|
+
}
|
|
280
|
+
domain = domain.replace(regexSeparators, ".");
|
|
281
|
+
const labels = domain.split(".");
|
|
282
|
+
const encoded = map(labels, fn).join(".");
|
|
283
|
+
return result + encoded;
|
|
284
|
+
}
|
|
285
|
+
function ucs2decode(string) {
|
|
286
|
+
const output = [];
|
|
287
|
+
let counter = 0;
|
|
288
|
+
const length = string.length;
|
|
289
|
+
while (counter < length) {
|
|
290
|
+
const value = string.charCodeAt(counter++);
|
|
291
|
+
if (value >= 55296 && value <= 56319 && counter < length) {
|
|
292
|
+
const extra = string.charCodeAt(counter++);
|
|
293
|
+
if ((extra & 64512) === 56320) {
|
|
294
|
+
output.push(((value & 1023) << 10) + (extra & 1023) + 65536);
|
|
295
|
+
} else {
|
|
296
|
+
output.push(value);
|
|
297
|
+
counter--;
|
|
298
|
+
}
|
|
299
|
+
} else {
|
|
300
|
+
output.push(value);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
return output;
|
|
304
|
+
}
|
|
305
|
+
function digitToBasic(digit, flag) {
|
|
306
|
+
return digit + 22 + 75 * (digit < 26) - ((flag !== 0) << 5);
|
|
307
|
+
}
|
|
308
|
+
function adapt(delta, numPoints, firstTime) {
|
|
309
|
+
let k = 0;
|
|
310
|
+
delta = firstTime ? floor(delta / damp) : delta >> 1;
|
|
311
|
+
delta += floor(delta / numPoints);
|
|
312
|
+
for (; delta > baseMinusTMin * tMax >> 1; k += base) {
|
|
313
|
+
delta = floor(delta / baseMinusTMin);
|
|
314
|
+
}
|
|
315
|
+
return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
|
|
316
|
+
}
|
|
317
|
+
function encode(str) {
|
|
318
|
+
const output = [];
|
|
319
|
+
const input = ucs2decode(str);
|
|
320
|
+
const inputLength = input.length;
|
|
321
|
+
let n = initialN;
|
|
322
|
+
let delta = 0;
|
|
323
|
+
let bias = initialBias;
|
|
324
|
+
for (const currentValue of input) {
|
|
325
|
+
if (currentValue < 128) {
|
|
326
|
+
output.push(stringFromCharCode(currentValue));
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
const basicLength = output.length;
|
|
330
|
+
let handledCPCount = basicLength;
|
|
331
|
+
if (basicLength) {
|
|
332
|
+
output.push(delimiter);
|
|
333
|
+
}
|
|
334
|
+
while (handledCPCount < inputLength) {
|
|
335
|
+
let m = maxInt;
|
|
336
|
+
for (const currentValue of input) {
|
|
337
|
+
if (currentValue >= n && currentValue < m) {
|
|
338
|
+
m = currentValue;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
const handledCPCountPlusOne = handledCPCount + 1;
|
|
342
|
+
if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
|
|
343
|
+
error("overflow");
|
|
344
|
+
}
|
|
345
|
+
delta += (m - n) * handledCPCountPlusOne;
|
|
346
|
+
n = m;
|
|
347
|
+
for (const currentValue of input) {
|
|
348
|
+
if (currentValue < n && ++delta > maxInt) {
|
|
349
|
+
error("overflow");
|
|
350
|
+
}
|
|
351
|
+
if (currentValue === n) {
|
|
352
|
+
let q = delta;
|
|
353
|
+
for (let k = base; ; k += base) {
|
|
354
|
+
const t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;
|
|
355
|
+
if (q < t) {
|
|
356
|
+
break;
|
|
357
|
+
}
|
|
358
|
+
const qMinusT = q - t;
|
|
359
|
+
const baseMinusT = base - t;
|
|
360
|
+
output.push(
|
|
361
|
+
stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
|
|
362
|
+
);
|
|
363
|
+
q = floor(qMinusT / baseMinusT);
|
|
364
|
+
}
|
|
365
|
+
output.push(stringFromCharCode(digitToBasic(q, 0)));
|
|
366
|
+
bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);
|
|
367
|
+
delta = 0;
|
|
368
|
+
++handledCPCount;
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
++delta;
|
|
372
|
+
++n;
|
|
373
|
+
}
|
|
374
|
+
return output.join("");
|
|
375
|
+
}
|
|
376
|
+
function toASCII(input) {
|
|
377
|
+
return mapDomain(input, function iterateMapDomain(string) {
|
|
378
|
+
return regexNonASCII.test(string) ? "xn--" + encode(string) : string;
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
// ../strings/src/index.js
|
|
383
|
+
var CONST_REGEXP_ALPHA = /^[a-zA-Z]+$/;
|
|
384
|
+
function isStringAlpha(str) {
|
|
385
|
+
return CONST_REGEXP_ALPHA.test(str);
|
|
386
|
+
}
|
|
387
|
+
var CONST_REGEXP_ALPHANUMERIC = /^[a-zA-Z0-9]+$/;
|
|
388
|
+
function isStringAlphaNumeric(str) {
|
|
389
|
+
return CONST_REGEXP_ALPHANUMERIC.test(str);
|
|
390
|
+
}
|
|
391
|
+
var CONST_REGEXP_NUMERIC = /^[0-9]+$/;
|
|
392
|
+
function isStringNumeric(str) {
|
|
393
|
+
return CONST_REGEXP_NUMERIC.test(str);
|
|
394
|
+
}
|
|
395
|
+
var CONST_REGEXP_HEXADECIMAL = /^[a-fA-F0-9]+$/;
|
|
396
|
+
function isStringHexaDecimal(str) {
|
|
397
|
+
return CONST_REGEXP_HEXADECIMAL.test(str);
|
|
398
|
+
}
|
|
399
|
+
var CONST_REGEXP_HEXCOLOR = /^#(?:[0-9a-f]{3}){1,2}\b$/i;
|
|
400
|
+
function isStringHexColor(str) {
|
|
401
|
+
return CONST_REGEXP_HEXCOLOR.test(str);
|
|
402
|
+
}
|
|
403
|
+
var CONST_REGEXP_UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;
|
|
404
|
+
function isStringUUID(str) {
|
|
405
|
+
return CONST_REGEXP_UUID.test(str);
|
|
406
|
+
}
|
|
407
|
+
var CONST_REGEXP_GUID = /^({)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;
|
|
408
|
+
function isStringGUID(str) {
|
|
409
|
+
return CONST_REGEXP_GUID.test(str);
|
|
410
|
+
}
|
|
411
|
+
var CONST_REGEXP_IDENTIFIER = /^[_a-zA-Z]+\w{0,30}$/;
|
|
412
|
+
function isStringIdentifier(str) {
|
|
413
|
+
return (
|
|
414
|
+
/* str != null && */
|
|
415
|
+
CONST_REGEXP_IDENTIFIER.test(str)
|
|
416
|
+
);
|
|
417
|
+
}
|
|
418
|
+
var CONST_REGEXP_HTML_IDENTIFIER = /^[A-Za-z]+[\w\-\:\.]{0,30}$/;
|
|
419
|
+
function isStringHtmlIdentifier(str) {
|
|
420
|
+
return (
|
|
421
|
+
/* str != null && */
|
|
422
|
+
CONST_REGEXP_HTML_IDENTIFIER.test(str)
|
|
423
|
+
);
|
|
424
|
+
}
|
|
425
|
+
var CONST_REGEXP_CSS_IDENTIFIER = /^-?[_a-zA-Z]+[\w-]{0,30}$/;
|
|
426
|
+
function isStringCssIdentifier(str) {
|
|
427
|
+
return (
|
|
428
|
+
/* str != null && */
|
|
429
|
+
CONST_REGEXP_CSS_IDENTIFIER.test(str)
|
|
430
|
+
);
|
|
431
|
+
}
|
|
432
|
+
var CONST_REGEXP_MAC_ADDR = /^(?:[0-9A-Fa-f]{2}([:-]?)[0-9A-Fa-f]{2})(?:(?:\1|\.)(?:[0-9A-Fa-f]{2}([:-]?)[0-9A-Fa-f]{2})){2}$/;
|
|
433
|
+
function isStringMACAddr(str) {
|
|
434
|
+
return CONST_REGEXP_MAC_ADDR.test(str);
|
|
435
|
+
}
|
|
436
|
+
var CONST_REGEXP_IPV4 = /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/;
|
|
437
|
+
function isStringIPv4(str) {
|
|
438
|
+
return CONST_REGEXP_IPV4.test(str);
|
|
439
|
+
}
|
|
440
|
+
var CONST_REGEXP_IPV6 = /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i;
|
|
441
|
+
function isStringIPv6(str) {
|
|
442
|
+
return CONST_REGEXP_IPV6.test(str);
|
|
443
|
+
}
|
|
444
|
+
var CONST_REGEXP_HOSTNAME = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i;
|
|
445
|
+
function isStringHostname(str) {
|
|
446
|
+
return str.length <= 255 && CONST_REGEXP_HOSTNAME.test(str);
|
|
447
|
+
}
|
|
448
|
+
var CONST_REGEXP_ACEHOSTNAME = /^(?!-)(xn--)?[a-zA-Z0-9][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9]{0,1}\.(?!-)(xn--)?([a-zA-Z0-9\-]{1,50}|[a-zA-Z0-9-]{1,30}\.[a-zA-Z]{2,})$/;
|
|
449
|
+
function isStringIdnHostname(str) {
|
|
450
|
+
const punycode = toASCII(str);
|
|
451
|
+
return CONST_REGEXP_ACEHOSTNAME.test(punycode);
|
|
452
|
+
}
|
|
453
|
+
var CONST_REGEXP_URL = /^[(http(s)?):\/\/(www\.)?\w-/=#%&\.\?]{2,}\.[a-z]{2,}([\w-/=#%&\.\?]*)$/i;
|
|
454
|
+
function isStringUrl(str) {
|
|
455
|
+
return CONST_REGEXP_URL.test(str);
|
|
456
|
+
}
|
|
457
|
+
var CONST_REGEXP_NOT_URI_FRAGMENT = /\/|:/;
|
|
458
|
+
var CONST_REGEXP_URI_FAST = /^(?:[a-z][a-z0-9+-.]*:)(?:\/?\/)?[^\s]*$/i;
|
|
459
|
+
function isStringUri(str) {
|
|
460
|
+
return CONST_REGEXP_NOT_URI_FRAGMENT.test(str) && CONST_REGEXP_URI_FAST.test(str);
|
|
461
|
+
}
|
|
462
|
+
var CONST_REGEXP_URI_FULL = /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;
|
|
463
|
+
function isStringUriFull(str) {
|
|
464
|
+
return CONST_REGEXP_NOT_URI_FRAGMENT.test(str) && CONST_REGEXP_URI_FULL.test(str);
|
|
465
|
+
}
|
|
466
|
+
var CONST_REGEXP_URIREF_FAST = /^(?:(?:[a-z][a-z0-9+-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i;
|
|
467
|
+
function isStringUriRef(str) {
|
|
468
|
+
return CONST_REGEXP_URIREF_FAST.test(str);
|
|
469
|
+
}
|
|
470
|
+
var CONST_REGEXP_URIREF_FULL = /^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;
|
|
471
|
+
function isStringUriRefFull(str) {
|
|
472
|
+
return CONST_REGEXP_URIREF_FULL.test(str);
|
|
473
|
+
}
|
|
474
|
+
var CONST_REGEXP_URITEMPLATE = /^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i;
|
|
475
|
+
function isStringUriTemplate(str) {
|
|
476
|
+
return CONST_REGEXP_URITEMPLATE.test(str);
|
|
477
|
+
}
|
|
478
|
+
var CONST_REGEXP_ABSOLUTE_IRI = /^([a-z]([a-z]|\d|\+|-|\.)*):(\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?((\[(|(v[\da-f]{1,}\.(([a-z]|\d|-|\.|_|~)|[!\$&'\(\)\*\+,;=]|:)+))\])|((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=])*)(:\d*)?)(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*|(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)){0})(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i;
|
|
479
|
+
function isStringIRI(str) {
|
|
480
|
+
return CONST_REGEXP_ABSOLUTE_IRI.test(str);
|
|
481
|
+
}
|
|
482
|
+
function isStringIRIRef(str) {
|
|
483
|
+
return isStringUriRef(str);
|
|
484
|
+
}
|
|
485
|
+
var CONST_REGEXP_JSON_POINTER = /^(?:\/(?:[^~/]|~0|~1)*)*$/;
|
|
486
|
+
function isStringJSONPointer(str) {
|
|
487
|
+
return CONST_REGEXP_JSON_POINTER.test(str);
|
|
488
|
+
}
|
|
489
|
+
var CONST_REGEXP_JSON_POINTER_URI_FRAGMENT = /^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;
|
|
490
|
+
function isStringJSONPointerUriFragment(str) {
|
|
491
|
+
return CONST_REGEXP_JSON_POINTER_URI_FRAGMENT.test(str);
|
|
492
|
+
}
|
|
493
|
+
var CONST_REGEXP_RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;
|
|
494
|
+
function isStringRelativeJSONPointer(str) {
|
|
495
|
+
return CONST_REGEXP_RELATIVE_JSON_POINTER.test(str);
|
|
496
|
+
}
|
|
497
|
+
var CONST_REGEXP_EMAIL_FAST = /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i;
|
|
498
|
+
function isStringEmail(str) {
|
|
499
|
+
return CONST_REGEXP_EMAIL_FAST.test(str);
|
|
500
|
+
}
|
|
501
|
+
var CONST_REGEXP_EMAIL_FULL = /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;
|
|
502
|
+
function isStringEmailFull(str) {
|
|
503
|
+
return CONST_REGEXP_EMAIL_FULL.test(str);
|
|
504
|
+
}
|
|
505
|
+
var CONST_REGEXP_IDNEMAIL = /^[^@]+@[^@]+\.[^@]+$/;
|
|
506
|
+
function isStringIdnEmail(str) {
|
|
507
|
+
return CONST_REGEXP_IDNEMAIL.test(str);
|
|
508
|
+
}
|
|
509
|
+
var CONST_REGPEXP_ISBN10 = /^(?:ISBN(?:-10)?:?\ *((?=\d{1,5}([ -]?)\d{1,7}\2?\d{1,6}\2?\d)(?:\d\2*){9}[\dX]))$/i;
|
|
510
|
+
function isStringISBN10(str) {
|
|
511
|
+
return CONST_REGPEXP_ISBN10.test(str);
|
|
512
|
+
}
|
|
513
|
+
var CONST_REGEXP_ISBN13 = /^(?:ISBN(?:-13)?:?\ *(97(?:8|9)([ -]?)(?=\d{1,5}\2?\d{1,7}\2?\d{1,6}\2?\d)(?:\d\2*){9}\d))$/i;
|
|
514
|
+
function isStringISBN13(str) {
|
|
515
|
+
return CONST_REGEXP_ISBN13.test(str);
|
|
516
|
+
}
|
|
517
|
+
var CONST_REGEXP_BASE64 = /^(?:[a-zA-Z0-9+\/]{4})*(?:|(?:[a-zA-Z0-9+\/]{3}=)|(?:[a-zA-Z0-9+\/]{2}==)|(?:[a-zA-Z0-9+\/]{1}===))$/;
|
|
518
|
+
function isStringBase64(str) {
|
|
519
|
+
return CONST_REGEXP_BASE64.test(str);
|
|
520
|
+
}
|
|
521
|
+
var CONST_REGEXP_COUNTRY_ALPHA2 = /^(AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW|XK)/i;
|
|
522
|
+
function isStringCountryAlpha2(str) {
|
|
523
|
+
return CONST_REGEXP_COUNTRY_ALPHA2.test(str);
|
|
524
|
+
}
|
|
525
|
+
var CONST_REGEXP_IBAN = /^([A-Z]{2}[ '+'\\\\'+'-]?[0-9]{2})(?=(?:[ '+'\\\\'+'-]?[A-Z0-9]){9,30}\$)((?:[ '+'\\\\'+'-]?[A-Z0-9]{3,5}){2,7})([ '+'\\\\'+'-]?[A-Z0-9]{1,3})?\$/i;
|
|
526
|
+
function isStringIBAN(str) {
|
|
527
|
+
return CONST_REGEXP_IBAN.test(str);
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
// src/string.js
|
|
531
|
+
function createStringFormatCompiler(formatName, isFormatTest) {
|
|
532
|
+
return function compileStringFormat(schemaObj, jsonSchema) {
|
|
533
|
+
if (jsonSchema.format !== formatName)
|
|
534
|
+
throw new Error("Format is not equal to jsonSchema (should not happen!)");
|
|
535
|
+
const addError = schemaObj.createErrorHandler(formatName, "format", isFormatTest.constructor.name);
|
|
536
|
+
return function validateStringFormat(data, dataPath) {
|
|
537
|
+
return isStringType(data) ? isFormatTest(data) || addError(data, dataPath) : true;
|
|
538
|
+
};
|
|
539
|
+
};
|
|
540
|
+
}
|
|
541
|
+
var formatValidators2 = {
|
|
542
|
+
"alpha": createStringFormatCompiler("alpha", isStringAlpha),
|
|
543
|
+
"alphanumeric": createStringFormatCompiler("alphanumeric", isStringAlphaNumeric),
|
|
544
|
+
"identifier": createStringFormatCompiler("identifier", isStringIdentifier),
|
|
545
|
+
"html-identifier": createStringFormatCompiler("html-identifier", isStringHtmlIdentifier),
|
|
546
|
+
"css-identifier": createStringFormatCompiler("css-identifier", isStringCssIdentifier),
|
|
547
|
+
"hexadecimal": createStringFormatCompiler("hexadecimal", isStringHexaDecimal),
|
|
548
|
+
"numeric": createStringFormatCompiler("numeric", isStringNumeric),
|
|
549
|
+
"uppercase": createStringFormatCompiler("uppercase", isStringUpperCase),
|
|
550
|
+
"lowercase": createStringFormatCompiler("lowercase", isStringLowerCase),
|
|
551
|
+
"color": createStringFormatCompiler("color", isStringHexColor),
|
|
552
|
+
"regex": createStringFormatCompiler("regex", isStringRegExp),
|
|
553
|
+
"uri": createStringFormatCompiler("uri", isStringUri),
|
|
554
|
+
"uri--full": createStringFormatCompiler("uri--full", isStringUriFull),
|
|
555
|
+
"uri-reference": createStringFormatCompiler("uri-reference", isStringUriRef),
|
|
556
|
+
"uri-reference--full": createStringFormatCompiler("uri-reference--full", isStringUriRefFull),
|
|
557
|
+
"uri-template": createStringFormatCompiler("uri-template", isStringUriTemplate),
|
|
558
|
+
"url": createStringFormatCompiler("url", isStringUrl),
|
|
559
|
+
"url--full": createStringFormatCompiler("url--full", isStringUrl),
|
|
560
|
+
"email": createStringFormatCompiler("email", isStringEmail),
|
|
561
|
+
"email--full": createStringFormatCompiler("email--full", isStringEmailFull),
|
|
562
|
+
"hostname": createStringFormatCompiler("hostname", isStringHostname),
|
|
563
|
+
"idn-email": createStringFormatCompiler("idn-email", isStringIdnEmail),
|
|
564
|
+
"idn-hostname": createStringFormatCompiler("idn-hostname", isStringIdnHostname),
|
|
565
|
+
"ipv4": createStringFormatCompiler("ipv4", isStringIPv4),
|
|
566
|
+
"ipv6": createStringFormatCompiler("ipv6", isStringIPv6),
|
|
567
|
+
"uuid": createStringFormatCompiler("uuid", isStringUUID),
|
|
568
|
+
"guid": createStringFormatCompiler("guid", isStringGUID),
|
|
569
|
+
"json-pointer": createStringFormatCompiler("json-pointer", isStringJSONPointer),
|
|
570
|
+
"json-pointer-uri-fragment": createStringFormatCompiler("json-pointer-uri-fragment", isStringJSONPointerUriFragment),
|
|
571
|
+
"relative-json-pointer": createStringFormatCompiler("relative-json-pointer", isStringRelativeJSONPointer),
|
|
572
|
+
"iri": createStringFormatCompiler("iri", isStringIRI),
|
|
573
|
+
"iri-reference": createStringFormatCompiler("iri-reference", isStringIRIRef),
|
|
574
|
+
"isbn10": createStringFormatCompiler("isbn10", isStringISBN10),
|
|
575
|
+
"isbn13": createStringFormatCompiler("isbn13", isStringISBN13),
|
|
576
|
+
"mac": createStringFormatCompiler("mac", isStringMACAddr),
|
|
577
|
+
"base64": createStringFormatCompiler("base64", isStringBase64),
|
|
578
|
+
"byte": createStringFormatCompiler("byte", isStringBase64),
|
|
579
|
+
"country2": createStringFormatCompiler("country2", isStringCountryAlpha2),
|
|
580
|
+
"iban": createStringFormatCompiler("iban", isStringIBAN)
|
|
581
|
+
};
|
|
582
|
+
|
|
583
|
+
// ../numbers/src/integer.js
|
|
584
|
+
var INT8_MIN = -128;
|
|
585
|
+
var INT8_MAX = 127;
|
|
586
|
+
function isValidInt8(value) {
|
|
587
|
+
return isIntegerType(value) && value >= INT8_MIN && value <= INT8_MAX;
|
|
588
|
+
}
|
|
589
|
+
var UINT8_MIN = 0;
|
|
590
|
+
var UINT8_MAX = 255;
|
|
591
|
+
function isValidUInt8(value) {
|
|
592
|
+
return isIntegerType(value) && value >= UINT8_MIN && value <= UINT8_MAX;
|
|
593
|
+
}
|
|
594
|
+
var INT16_MIN = -32768;
|
|
595
|
+
var INT16_MAX = 32767;
|
|
596
|
+
function isValidInt16(value) {
|
|
597
|
+
return isIntegerType(value) && value >= INT16_MIN && value <= INT16_MAX;
|
|
598
|
+
}
|
|
599
|
+
var UINT16_MIN = 0;
|
|
600
|
+
var UINT16_MAX = 65535;
|
|
601
|
+
function isValidUInt16(value) {
|
|
602
|
+
return isIntegerType(value) && value >= UINT16_MIN && value <= UINT16_MAX;
|
|
603
|
+
}
|
|
604
|
+
var INT32_MIN = -(2 ** 31);
|
|
605
|
+
var INT32_MAX = 2 ** 31 - 1;
|
|
606
|
+
function isValidInt32(value) {
|
|
607
|
+
return isIntegerType(value) && value >= INT32_MIN && value <= INT32_MAX;
|
|
608
|
+
}
|
|
609
|
+
var UINT32_MIN = 0;
|
|
610
|
+
var UINT32_MAX = 2 ** 32 - 1;
|
|
611
|
+
function isValidUInt32(value) {
|
|
612
|
+
return isIntegerType(value) && value >= UINT32_MIN && value <= UINT32_MAX;
|
|
613
|
+
}
|
|
614
|
+
var INT64_MIN = Number.MIN_SAFE_INTEGER;
|
|
615
|
+
var INT64_MAX = Number.MAX_SAFE_INTEGER;
|
|
616
|
+
function isValidInt64(value) {
|
|
617
|
+
return isIntegerType(value) && value >= INT64_MIN && value <= INT64_MAX;
|
|
618
|
+
}
|
|
619
|
+
var UINT64_MIN = 0;
|
|
620
|
+
var UINT64_MAX = Number.MAX_SAFE_INTEGER;
|
|
621
|
+
function isValidUInt64(value) {
|
|
622
|
+
return isIntegerType(value) && value >= UINT64_MIN && value <= UINT64_MAX;
|
|
623
|
+
}
|
|
624
|
+
|
|
625
|
+
// ../numbers/src/float.js
|
|
626
|
+
var FLOAT16_MAX = 65504;
|
|
627
|
+
function isValidFloat16(value) {
|
|
628
|
+
return isNumberType(value) && !Number.isNaN(value) && value >= -FLOAT16_MAX && value <= FLOAT16_MAX;
|
|
629
|
+
}
|
|
630
|
+
var FLOAT32_MAX = 34028234663852886e22;
|
|
631
|
+
function isValidFloat32(value) {
|
|
632
|
+
return isNumberType(value) && !Number.isNaN(value) && value >= -FLOAT32_MAX && value <= FLOAT32_MAX;
|
|
633
|
+
}
|
|
634
|
+
var FLOAT64_MAX = Number.MAX_VALUE;
|
|
635
|
+
var FLOAT64_MIN = Number.MIN_VALUE;
|
|
636
|
+
var FLOAT64_EPS = Number.EPSILON;
|
|
637
|
+
function isValidFloat64(value) {
|
|
638
|
+
return isNumberType(value) && !Number.isNaN(value) && value >= -FLOAT64_MAX && value <= FLOAT64_MAX;
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
// src/number.js
|
|
642
|
+
function createNumberFormatCompiler(formatName, isNumberTest, strictFormat = false) {
|
|
643
|
+
return function compileNumberFormat(schemaObj, jsonSchema) {
|
|
644
|
+
if (jsonSchema.format !== formatName)
|
|
645
|
+
throw new Error("Format is not equal to jsonSchema (should not happen!)");
|
|
646
|
+
const addError = schemaObj.createErrorHandler(formatName, "format");
|
|
647
|
+
if (strictFormat === true)
|
|
648
|
+
return function validateNumberStrictFormat(data, dataPath) {
|
|
649
|
+
return data == null || isNumberTest(data) || addError(data, dataPath);
|
|
650
|
+
};
|
|
651
|
+
else
|
|
652
|
+
return function validateNumberFormat(data, dataPath) {
|
|
653
|
+
return data == null || isNumberTest(Number(data)) || addError(data, dataPath);
|
|
654
|
+
};
|
|
655
|
+
};
|
|
656
|
+
}
|
|
657
|
+
var formatValidators3 = {
|
|
658
|
+
// integer types
|
|
659
|
+
int8: createNumberFormatCompiler("int8", isValidInt8),
|
|
660
|
+
uint8: createNumberFormatCompiler("uint8", isValidUInt8),
|
|
661
|
+
int16: createNumberFormatCompiler("int16", isValidInt16),
|
|
662
|
+
uint16: createNumberFormatCompiler("uint16", isValidUInt16),
|
|
663
|
+
int32: createNumberFormatCompiler("int32", isValidInt32),
|
|
664
|
+
uint32: createNumberFormatCompiler("uint32", isValidUInt32),
|
|
665
|
+
int64: createNumberFormatCompiler("int64", isValidInt64),
|
|
666
|
+
uint64: createNumberFormatCompiler("uint64", isValidUInt64),
|
|
667
|
+
// floating point types
|
|
668
|
+
float16: createNumberFormatCompiler("float16", isValidFloat16),
|
|
669
|
+
float32: createNumberFormatCompiler("float32", isValidFloat32),
|
|
670
|
+
float64: createNumberFormatCompiler("float64", isValidFloat64),
|
|
671
|
+
float: createNumberFormatCompiler("float", isValidFloat32),
|
|
672
|
+
double: createNumberFormatCompiler("double", isValidFloat64)
|
|
673
|
+
};
|
|
674
|
+
export {
|
|
675
|
+
formatValidators as dateTimeFormats,
|
|
676
|
+
formatValidators3 as numberFormats,
|
|
677
|
+
formatValidators2 as stringFormats
|
|
678
|
+
};
|
|
679
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../core/src/index.js", "../../core/src/dates.js", "../src/datetime.js", "../../core/src/string.js", "../../strings/src/punycode.js", "../../strings/src/index.js", "../src/string.js", "../../numbers/src/integer.js", "../../numbers/src/float.js", "../src/number.js"],
|
|
4
|
+
"sourcesContent": ["//@ts-check\nexport function isFn(data) {\n return typeof data === 'function';\n}\n\n//#region Scalar Tests\nfunction isScalarTypeEx(typeName) {\n switch (typeName) {\n case 'string':\n case 'number':\n case 'boolean':\n case 'integer':\n case 'bigint':\n return true;\n default:\n return false;\n }\n}\n\nexport function isScalarType(data) {\n return data != null && isScalarTypeEx(typeof data);\n}\n\nexport function isStringType(data) {\n return typeof data === 'string';\n}\n\n/**\n * Checks if the given data is of boolean type.\n * @param {any} data - The data to check.\n * @returns {boolean} - True if the data is a boolean, otherwise false.\n */\nexport function isBooleanType(data) {\n return data === true || data === false;\n}\n\n/**\n * Checks if the given data is of number type.\n * @param {any} data - The data to check.\n * @returns {boolean} - True if the data is a number, otherwise false.\n */\nexport function isNumberType(data) {\n return data != null && typeof data === 'number';\n}\n\n/**\n * Checks if the given data is an integer type.\n * @param {any} data - The data to check.\n * @returns {boolean} - True if the data is an integer, otherwise false.\n */\nexport function isIntegerType(data) {\n return Number.isInteger(data);\n}\n\nexport function isBigIntType(data) {\n return typeof data === 'bigint';\n}\n\n//#endregion\n\n//#region Scalar Getters\n/**\n * Returns the string type of the input object if it is a string; otherwise, returns the default value.\n * \n * @param {any} obj - The input object to check its type.\n * @param {string|undefined} [def=undefined] - The default value to return if the input object is not a string.\n * @returns {string} The string type of the input object or the default value.\n */\nexport function getStringType(obj, def = undefined) {\n return isStringType(obj) ? obj : def;\n}\n\n/**\n * Checks if the given object is a boolean type and returns it, otherwise returns the default value.\n * @param {any} obj - The object to check.\n * @param {boolean|undefined} [def=undefined] - The default value to return if the object is not a boolean.\n * @returns {boolean|undefined} - The boolean value or the default value.\n */\nexport function getBooleanType(obj, def = undefined) {\n return isBooleanType(obj) ? obj : def;\n}\n\n/**\n * Checks if the given object is a number type and returns it, otherwise returns the default value.\n * @param {any} obj - The object to check.\n * @param {number|undefined} [def=undefined] - The default value to return if the object is not a number.\n * @returns {number|undefined} - The number value or the default value.\n */\nexport function getNumberType(obj, def = undefined) {\n return isNumberType(obj) ? obj : def;\n}\n\n/**\n * Checks if the given object is an integer type and returns it, otherwise returns the default value.\n * @param {any} obj - The object to check.\n * @param {number|undefined} [def=undefined] - The default value to return if the object is not an integer.\n * @returns {number|undefined} - The integer value or the default value.\n */\nexport function getIntegerType(obj, def = undefined) {\n return isIntegerType(obj) ? obj : def;\n}\n\n/**\n * Checks if the given object is a bigint type and returns it, otherwise returns the default value.\n * @param {any} obj - The object to check.\n * @param {bigint|undefined} [def=undefined] - The default value to return if the object is not a bigint.\n * @returns {bigint|undefined} - The bigint value or the default value.\n */\nexport function getBigIntType(obj, def = undefined) {\n return isBigIntType(obj)\n ? obj\n : def;\n}\n//#endregion\n\n//#region Object Tests\n/**\n * Checks if the input data is null.\n *\n * @param {any} data - The data to be checked.\n * @returns {boolean} - Returns true if the data is null, otherwise false.\n */\nexport function isNullValue(data) {\n return data === null;\n}\n\n/**\n * Checks if the given data is an object of a specific class.\n *\n * @param {any} data - The data to check.\n * @param {Function} type - The class type to compare against.\n * @returns {boolean} Returns true if the data is an object of the specified class; otherwise, false.\n */\nexport function isObjectOfClass(data, type) {\n return data != null && data.constructor === type;\n}\n\n/**\n * @brief test if data is an object literal\n * @param {*} data the data to test\n * @returns boolean\n */\nexport function isObjectClass(data) {\n return isObjectOfClass(data, Object);\n}\n\n/**\n * Checks if the input data is of type Map.\n *\n * @param {any} data - The data to be checked.\n * @returns {boolean} - Returns true if the data is an instance of the Map class, otherwise false.\n */\nexport function isMapClass(data) {\n return isObjectOfClass(data, Map);\n}\n\n/**\n * @brief test if data is typeof object but not an Array\n * @param {*} data the data to test\n * @returns boolean\n */\nexport function isObjectType(data) {\n return data != null\n && typeof data === 'object'\n && data.constructor !== Array;\n}\n\n/**\n * Checks if the input data is of type Array.\n *\n * @param {any} data - The data to be checked.\n * @returns {boolean} - Returns true if the data is an instance of the Array class, otherwise false.\n */\nexport function isArrayClass(data) {\n return isObjectOfClass(data, Array);\n}\n\n/**\n * Checks if the input data is of type Set.\n *\n * @param {any} data - The data to be checked.\n * @returns {boolean} - Returns true if the data is an instance of the Set class, otherwise false.\n */\nexport function isSetClass(data) {\n return isObjectOfClass(data, Set);\n}\n\nexport const TypedArray = Object.getPrototypeOf(Uint8Array);\nexport function isTypedArray(data) {\n if (data == null)\n return false;\n const proto = data.__proto__.__proto__;\n return proto != null && proto.constructor === TypedArray;\n}\n//#endregion\n\n//#region Object Getters\nexport function getObjectType(obj, def = undefined) {\n return isObjectClass(obj) ? obj : def;\n}\n\nexport function getArrayClass(obj, def = undefined) {\n return isArrayClass(obj) ? obj : def;\n}\n//#endregion\n\n/**\n * Calculates the inclusive and exclusive bounds based on the provided parameters.\n * \n * @param {function} getType - A function to determine the type of the inclusive and exclusive bounds.\n * @param {number|string|undefined} inclusive - The inclusive bound value.\n * @param {number|string|boolean|undefined} exclusive - The exclusive bound value.\n * @returns {Array} An array containing the inclusive and exclusive bounds.\n */\nexport function getInclusiveExclusiveBounds(getType, inclusive, exclusive) {\n const includes = getType(inclusive);\n const excludes = exclusive === true\n ? includes\n : getType(exclusive);\n return (excludes === undefined)\n ? [includes, undefined]\n : [undefined, excludes];\n}\n", "//@ts-check\n\nimport {\n isStringType,\n isObjectOfClass,\n} from './index.js';\n\n//#region Dates Constants\nexport const CONST_TICKS_SECOND = 1000;\nexport const CONST_TICKS_HOUR = CONST_TICKS_SECOND * 60 * 60;\nexport const CONST_TICKS_DAY = CONST_TICKS_HOUR * 24;\n\nexport const CONST_TIME_INSERTDATE = '1970-01-01T';\nexport const CONST_DATE_APPENDTIME = 'T00:00:00Z';\n\nexport const CONST_RFC3339_DAYS = Object.freeze(\n [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n);\n\n// full-date from http://tools.ietf.org/html/rfc3339#section-5.6\nexport const CONST_RFC3339_REGEX_ISDATE = /^(\\d\\d\\d\\d)-([0-1]\\d)-([0-3]\\d)z?$/i;\n\n// full-date from http://tools.ietf.org/html/rfc3339#section-5.6\nexport const CONST_RFC3339_REGEX_ISTIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d{1,6})?(z|(([+-])(\\d\\d):(\\d\\d)))$/i;\n\n//#endregion\n\n//#region Dates Compare\nexport function isDateType(data) {\n return isObjectOfClass(data, Date);\n}\n\nexport function isDateishType(data) {\n return isDateType(data)\n || !Number.isNaN(Date.parse(data));\n}\n\nexport function isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nexport function isDateOnlyInRange(year = 0, month = 0, day = 0) {\n return month >= 1\n && month <= 12\n && day >= 1\n && day <= (month === 2 && isLeapYear(year)\n ? 29\n : CONST_RFC3339_DAYS[month]);\n}\n\nexport function isDateOnlyRFC3339(str) {\n if (!isStringType(str))\n return false;\n\n const r = str.match(CONST_RFC3339_REGEX_ISDATE);\n if (r == null)\n return false;\n\n const y = parseInt(r[1], 10) | 0;\n const m = parseInt(r[2], 10) | 0;\n const d = parseInt(r[3], 10) | 0;\n return isDateOnlyInRange(y, m, d);\n}\n\nexport function isTimeOnlyInRange(hrs = 0, min = 0, sec = 0, tzh = 0, tzm = 0) {\n return ((hrs === 23 && min === 59 && sec === 60)\n || (hrs >= 0 && hrs <= 23\n && min >= 0 && min <= 59\n && sec >= 0 && sec <= 59))\n && (tzh >= 0 && tzh <= 23\n && tzm >= 0 && tzm <= 59);\n}\n\nexport function isTimeOnlyRFC3339(str) {\n if (!isStringType(str))\n return false;\n\n const r = str.match(CONST_RFC3339_REGEX_ISTIME);\n if (r == null)\n return false;\n\n const h = parseInt(r[1], 10) | 0;\n const m = parseInt(r[2], 10) | 0;\n const s = parseInt(r[3], 10) | 0;\n const th = parseInt(r[8], 10) | 0;\n const tm = parseInt(r[9], 10) | 0;\n return isTimeOnlyInRange(h, m, s, th, tm);\n}\n\nexport function isDateTimeRFC3339(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n if (!isStringType(str)) return false;\n const dateTime = str.split(/t|\\s/i);\n return dateTime.length === 2\n && isDateOnlyRFC3339(dateTime[0])\n && isTimeOnlyRFC3339(dateTime[1]);\n}\n\n//#endregion\n\n//#region Dates Getters\nexport function getDateTypeOfDateOnlyRFC3339(str, def = undefined) {\n return isDateOnlyRFC3339(str)\n ? new Date(Date.parse(str))\n : def;\n}\n\nexport function getDateTypeOfTimeOnlyRFC3339(str, def = undefined) {\n return isTimeOnlyRFC3339(str)\n ? new Date(Date.parse(CONST_TIME_INSERTDATE + str))\n : def;\n}\n\nexport function getDateTypeOfDateTimeRFC3339(str, def = undefined) {\n return isDateTimeRFC3339(str)\n ? new Date(Date.parse(str))\n : def;\n}\n//#endregion\n", "//@ts-check\n\nimport {\n isStringType,\n getInclusiveExclusiveBounds,\n} from '@jarenjs/core';\n\nimport {\n isDateType,\n getDateTypeOfDateTimeRFC3339,\n getDateTypeOfDateOnlyRFC3339,\n getDateTypeOfTimeOnlyRFC3339,\n} from '@jarenjs/core/dates';\n\n//#region generalized\nfunction compileFormatMinimumByType(parseType, schemaObj, jsonSchema) {\n const [min, emin] = getInclusiveExclusiveBounds(\n parseType,\n jsonSchema.formatMinimum,\n jsonSchema.formatExclusiveMinimum,\n );\n\n if (emin != null) {\n const addError = schemaObj.createErrorHandler(emin, 'formatExclusiveMinimum');\n\n return function isFormatExclusiveMinimum(date, dataPath) {\n return date > emin\n || addError(date, dataPath);\n };\n }\n else if (min) {\n const addError = schemaObj.createErrorHandler(min, 'formatMinimum');\n\n return function isFormatMinimum(date, dataPath) {\n return date >= min\n || addError(date, dataPath);\n };\n }\n\n return undefined;\n}\n\nfunction compileFormatMaximumByType(parseType, schemaObj, jsonSchema) {\n const [max, emax] = getInclusiveExclusiveBounds(\n parseType,\n jsonSchema.formatMaximum,\n jsonSchema.formatExclusiveMaximum,\n );\n\n if (emax != null) {\n const addError = schemaObj.createErrorHandler(emax, 'formatExclusiveMaximum');\n\n return function isFormatExclusiveMaximum(date, dataPath) {\n return date < emax\n || addError(date, dataPath);\n };\n }\n else if (max != null) {\n const addError = schemaObj.createErrorHandler(max, 'formatMaximum');\n\n return function isFormatMaximum(date, dataPath) {\n return date <= max\n || addError(date, dataPath);\n };\n }\n\n return undefined;\n}\n\nfunction compileFormatByType(name, parseType, schemaObj, jsonSchema) {\n if (jsonSchema.format !== name)\n throw new Error('ERROR: This should not happen!');\n\n const addError = schemaObj.createErrorHandler(jsonSchema.format, 'format');\n\n const validateMin = compileFormatMinimumByType(\n parseType,\n schemaObj,\n jsonSchema,\n );\n\n const validateMax = compileFormatMaximumByType(\n parseType,\n schemaObj,\n jsonSchema,\n );\n\n if (validateMin != null && validateMax != null) {\n return function validateFormatBetween(data, dataPath) {\n if (isStringType(data)) {\n const date = parseType(data);\n return date == null\n ? addError(data, dataPath)\n : validateMin(date, dataPath)\n && validateMax(date, dataPath);\n }\n else if (isDateType(data))\n return validateMin(data, dataPath)\n && validateMax(data, dataPath);\n else\n return true;\n };\n }\n if (validateMin != null) {\n return function validateFormatMinimum(data, dataPath) {\n if (isStringType(data)) {\n const date = parseType(data);\n return date == null\n ? addError(data, dataPath)\n : validateMin(date, dataPath);\n }\n else if (isDateType(data))\n return validateMin(data, dataPath);\n else\n return true;\n };\n }\n if (validateMax != null) {\n return function validateFormatMaximum(data, dataPath) {\n if (isStringType(data)) {\n const date = parseType(data);\n return date == null\n ? addError(data, dataPath)\n : validateMax(date);\n }\n else if (isDateType(data))\n return validateMax(data, dataPath);\n else\n return true;\n };\n }\n\n return function validateDateTime(data, dataPath) {\n if (isStringType(data)) {\n const date = parseType(data);\n return date == null\n ? addError(data, dataPath)\n : true;\n }\n else\n return true;\n };\n}\n//#endregion\n\nfunction compileDateTimeFormat(schemaObj, jsonSchema) {\n return compileFormatByType(\n 'date-time',\n getDateTypeOfDateTimeRFC3339,\n schemaObj,\n jsonSchema,\n );\n}\n\nfunction compileDateOnlyFormat(schemaObj, jsonSchema) {\n return compileFormatByType(\n 'date',\n getDateTypeOfDateOnlyRFC3339,\n schemaObj,\n jsonSchema,\n );\n}\n\nfunction compileTimeOnlyFormat(schemaObj, jsonSchema) {\n return compileFormatByType(\n 'time',\n getDateTypeOfTimeOnlyRFC3339,\n schemaObj,\n jsonSchema,\n );\n}\n\nexport const formatValidators = {\n 'date-time': compileDateTimeFormat,\n date: compileDateOnlyFormat,\n time: compileTimeOnlyFormat,\n};\n", "//@ts-check\n\nimport {\n isStringType,\n isObjectOfClass,\n} from './index.js';\n\n//#region String Tools\nexport function isStringEmpty(data) {\n return typeof data === 'string' && !data;\n}\n\nexport function isStringWhiteSpace(data) {\n return data == null || /^\\s*$/.test(data);\n}\n\nexport function isStringUpperCase(str) {\n return str === str.toUpperCase();\n}\n\nexport function isStringLowerCase(str) {\n return str === str.toLowerCase();\n}\n\nexport function isRegExpType(data) {\n return isObjectOfClass(data, RegExp);\n}\n\nexport function isStringRegExp(str) {\n try {\n return createRegExp(str) != null;\n }\n // eslint-disable-next-line no-unused-vars\n catch (e) {\n return false;\n }\n}\n\nexport function createRegExp(pattern) {\n if (pattern == null)\n return undefined;\n\n if (isRegExpType(pattern))\n return pattern;\n\n if (isStringType(pattern)) {\n if (pattern[0] === '/') {\n const e = pattern.lastIndexOf('/');\n if (e >= 0) {\n const r = pattern.substring(1, e);\n const g = pattern.substring(e + 1);\n return new RegExp(r, g);\n }\n }\n else\n return new RegExp(pattern);\n }\n\n throw new Error(`Unknown Regular Expression Pattern Type: ${pattern}`);\n}\n", "// @ts-nocheck\n// Copyright Mathias Bynens <https://mathiasbynens.be/>\n// https://github.com/bestiejs/punycode.js/blob/master/punycode.js\n\nexport const punycodeVersion = '2.1.0';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n 'overflow': 'Overflow: input needs wider integers to process',\n 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n 'invalid-input': 'Invalid input',\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n throw new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} fn The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n const result = [];\n let length = array.length;\n while (length--) {\n result[length] = fn(array[length]);\n }\n return result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} fn The function that gets called for every\n * character.\n * @returns {String} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(domain, fn) {\n const parts = domain.split('@');\n let result = '';\n if (parts.length > 1) {\n // In email addresses, only the domain name should be punycoded. Leave\n // the local part (i.e. everything up to `@`) intact.\n result = parts[0] + '@';\n domain = parts[1];\n }\n // Avoid `split(regex)` for IE8 compatibility. See #17.\n domain = domain.replace(regexSeparators, '\\x2E');\n const labels = domain.split('.');\n const encoded = map(labels, fn).join('.');\n return result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nexport function ucs2decode(string) {\n const output = [];\n let counter = 0;\n const length = string.length;\n while (counter < length) {\n const value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n const extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) === 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nexport const ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nexport function basicToDigit(codePoint) {\n if (codePoint - 0x30 < 0x0A) {\n return codePoint - 0x16;\n }\n if (codePoint - 0x41 < 0x1A) {\n return codePoint - 0x41;\n }\n if (codePoint - 0x61 < 0x1A) {\n return codePoint - 0x61;\n }\n return base;\n}\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nexport function digitToBasic(digit, flag) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26) - ((flag !== 0) << 5);\n}\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nfunction adapt(delta, numPoints, firstTime) {\n let k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n}\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nexport function decode(input) {\n // Don't use UCS-2.\n const output = [];\n const inputLength = input.length;\n let i = 0;\n let n = initialN;\n let bias = initialBias;\n\n // Handle the basic code points: let `basic` be the number of input code\n // points before the last delimiter, or `0` if there is none, then copy\n // the first basic code points to the output.\n\n let basic = input.lastIndexOf(delimiter);\n if (basic < 0) {\n basic = 0;\n }\n\n for (let j = 0; j < basic; ++j) {\n // if it's not a basic code point\n if (input.charCodeAt(j) >= 0x80) {\n error('not-basic');\n }\n output.push(input.charCodeAt(j));\n }\n\n // Main decoding loop: start just after the last delimiter if any basic code\n // points were copied; start at the beginning otherwise.\n\n for (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n // `index` is the index of the next character to be consumed.\n // Decode a generalized variable-length integer into `delta`,\n // which gets added to `i`. The overflow checking is easier\n // if we increase `i` as we go, then subtract off its starting\n // value at the end to obtain `delta`.\n const oldi = i;\n for (let w = 1, k = base; /* no condition */; k += base) {\n if (index >= inputLength) {\n error('invalid-input');\n }\n\n const digit = basicToDigit(input.charCodeAt(index++));\n if (digit >= base || digit > floor((maxInt - i) / w)) {\n error('overflow');\n }\n\n i += digit * w;\n const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (digit < t) {\n break;\n }\n\n const baseMinusT = base - t;\n if (w > floor(maxInt / baseMinusT)) {\n error('overflow');\n }\n\n w *= baseMinusT;\n }\n\n const out = output.length + 1;\n bias = adapt(i - oldi, out, oldi === 0);\n\n // `i` was supposed to wrap around from `out` to `0`,\n // incrementing `n` each time, so we'll fix that now:\n if (floor(i / out) > maxInt - n) {\n error('overflow');\n }\n\n n += floor(i / out);\n i %= out;\n\n // Insert `n` at position `i` of the output.\n output.splice(i++, 0, n);\n }\n\n return String.fromCodePoint(...output);\n}\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nexport function encode(str) {\n const output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n const input = ucs2decode(str);\n\n // Cache the length.\n const inputLength = input.length;\n\n // Initialize the state.\n let n = initialN;\n let delta = 0;\n let bias = initialBias;\n\n // Handle the basic code points.\n for (const currentValue of input) {\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n const basicLength = output.length;\n let handledCPCount = basicLength;\n\n // `handledCPCount` is the number of code points that have been handled;\n // `basicLength` is the number of basic code points.\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next\n // larger one:\n let m = maxInt;\n for (const currentValue of input) {\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n // but guard against overflow.\n const handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n error('overflow');\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (const currentValue of input) {\n if (currentValue < n && ++delta > maxInt) {\n error('overflow');\n }\n if (currentValue === n) {\n // Represent delta as a generalized variable-length integer.\n let q = delta;\n for (let k = base; /* no condition */; k += base) {\n const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) {\n break;\n }\n const qMinusT = q - t;\n const baseMinusT = base - t;\n output.push(\n stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)),\n );\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q, 0)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n}\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nexport function toUnicode(input) {\n return mapDomain(input, function iterateMapDomain(string) {\n return regexPunycode.test(string)\n ? decode(string.slice(4).toLowerCase())\n : string;\n });\n}\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nexport function toASCII(input) {\n return mapDomain(input, function iterateMapDomain(string) {\n return regexNonASCII.test(string)\n ? 'xn--' + encode(string)\n : string;\n });\n}\n", "/* eslint no-unused-vars: \"off\" */\n/* eslint no-useless-escape: \"off\" */\n\n//@ts-check\nimport {\n toASCII,\n} from './punycode.js';\n\n//#region Common Tests\nconst CONST_REGEXP_ALPHA = /^[a-zA-Z]+$/;\nexport function isStringAlpha(str) {\n return CONST_REGEXP_ALPHA.test(str);\n}\nconst CONST_REGEXP_ALPHANUMERIC = /^[a-zA-Z0-9]+$/;\nexport function isStringAlphaNumeric(str) {\n return CONST_REGEXP_ALPHANUMERIC.test(str);\n}\n\nconst CONST_REGEXP_NUMERIC = /^[0-9]+$/;\nexport function isStringNumeric(str) {\n return CONST_REGEXP_NUMERIC.test(str);\n}\n\nconst CONST_REGEXP_HEXADECIMAL = /^[a-fA-F0-9]+$/;\nexport function isStringHexaDecimal(str) {\n return CONST_REGEXP_HEXADECIMAL.test(str);\n}\n\nconst CONST_REGEXP_HEXCOLOR = /^#(?:[0-9a-f]{3}){1,2}\\b$/i;\nexport function isStringHexColor(str) {\n return CONST_REGEXP_HEXCOLOR.test(str);\n}\n//#endregion\n\n//#region Identifier Tests\nconst CONST_REGEXP_UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nexport function isStringUUID(str) {\n // uuid: http://tools.ietf.org/html/rfc4122\n return CONST_REGEXP_UUID.test(str);\n}\n\nconst CONST_REGEXP_GUID = /^({)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nexport function isStringGUID(str) {\n return CONST_REGEXP_GUID.test(str);\n}\n\nconst CONST_REGEXP_IDENTIFIER = /^[_a-zA-Z]+\\w{0,30}$/;\nexport function isStringIdentifier(str) {\n return /* str != null && */ CONST_REGEXP_IDENTIFIER.test(str);\n}\n\nconst CONST_REGEXP_HTML_IDENTIFIER = /^[A-Za-z]+[\\w\\-\\:\\.]{0,30}$/;\nexport function isStringHtmlIdentifier(str) {\n return /* str != null && */ CONST_REGEXP_HTML_IDENTIFIER.test(str);\n}\n\nconst CONST_REGEXP_CSS_IDENTIFIER = /^-?[_a-zA-Z]+[\\w-]{0,30}$/;\nexport function isStringCssIdentifier(str) {\n return /* str != null && */ CONST_REGEXP_CSS_IDENTIFIER.test(str);\n}\n//#endregion\n\n//#region Host Tests\nconst CONST_REGEXP_MAC_ADDR = /^(?:[0-9A-Fa-f]{2}([:-]?)[0-9A-Fa-f]{2})(?:(?:\\1|\\.)(?:[0-9A-Fa-f]{2}([:-]?)[0-9A-Fa-f]{2})){2}$/;\nexport function isStringMACAddr(str) {\n return CONST_REGEXP_MAC_ADDR.test(str);\n}\n\nconst CONST_REGEXP_IPV4 = /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/;\nexport function isStringIPv4(str) {\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n return CONST_REGEXP_IPV4.test(str);\n}\n\nconst CONST_REGEXP_IPV6 = /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i;\nexport function isStringIPv6(str) {\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n return CONST_REGEXP_IPV6.test(str);\n}\n\nconst CONST_REGEXP_HOSTNAME = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i;\nexport function isStringHostname(str) {\n // https://tools.ietf.org/html/rfc1034#section-3.5\n // https://tools.ietf.org/html/rfc1123#section-2\n return str.length <= 255 && CONST_REGEXP_HOSTNAME.test(str);\n}\n\nconst CONST_REGEXP_ACEHOSTNAME = /^(?!-)(xn--)?[a-zA-Z0-9][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9]{0,1}\\.(?!-)(xn--)?([a-zA-Z0-9\\-]{1,50}|[a-zA-Z0-9-]{1,30}\\.[a-zA-Z]{2,})$/;\nexport function isStringIdnHostname(str) {\n // https://stackoverflow.com/questions/47514123/domain-name-regex-including-idn-characters-c-sharp\n const punycode = toASCII(str);\n return CONST_REGEXP_ACEHOSTNAME.test(punycode);\n}\n//#endregion\n\n//#region URL Tests\nconst CONST_REGEXP_URL = /^[(http(s)?):\\/\\/(www\\.)?\\w-/=#%&\\.\\?]{2,}\\.[a-z]{2,}([\\w-/=#%&\\.\\?]*)$/i;\nexport function isStringUrl(str) {\n return CONST_REGEXP_URL.test(str);\n}\n\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\n// eslint-disable-next-line no-control-regex\nconst CONST_REGEXP_URL_FULL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nexport function isStringUrlFull(str) {\n return CONST_REGEXP_URL_FULL.test(str);\n}\n//#endregion\n\n//#region URI Tests\nconst CONST_REGEXP_NOT_URI_FRAGMENT = /\\/|:/;\n// uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\nconst CONST_REGEXP_URI_FAST = /^(?:[a-z][a-z0-9+-.]*:)(?:\\/?\\/)?[^\\s]*$/i;\nexport function isStringUri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return CONST_REGEXP_NOT_URI_FRAGMENT.test(str)\n && CONST_REGEXP_URI_FAST.test(str);\n}\n\n// uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\nconst CONST_REGEXP_URI_FULL = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nexport function isStringUriFull(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return CONST_REGEXP_NOT_URI_FRAGMENT.test(str)\n && CONST_REGEXP_URI_FULL.test(str);\n}\n\nconst CONST_REGEXP_URIREF_FAST = /^(?:(?:[a-z][a-z0-9+-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i;\nexport function isStringUriRef(str) {\n return CONST_REGEXP_URIREF_FAST.test(str);\n}\n\nconst CONST_REGEXP_URIREF_FULL = /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nexport function isStringUriRefFull(str) {\n return CONST_REGEXP_URIREF_FULL.test(str);\n}\n\n// uri-template: https://tools.ietf.org/html/rfc6570\n// eslint-disable-next-line no-control-regex\nconst CONST_REGEXP_URITEMPLATE = /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\nexport function isStringUriTemplate(str) {\n return CONST_REGEXP_URITEMPLATE.test(str);\n}\n//#endregion\n\n//#region IRI Tests\nconst CONST_REGEXP_ABSOLUTE_IRI = /^([a-z]([a-z]|\\d|\\+|-|\\.)*):(\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?((\\[(|(v[\\da-f]{1,}\\.(([a-z]|\\d|-|\\.|_|~)|[!\\$&'\\(\\)\\*\\+,;=]|:)+))\\])|((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=])*)(:\\d*)?)(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*|(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)|((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)|((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)){0})(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i;\nexport function isStringIRI(str) {\n return CONST_REGEXP_ABSOLUTE_IRI.test(str);\n}\n\nexport function isStringIRIRef(str) {\n return isStringUriRef(str);\n}\n//#endregion\n\n//#region JPtr Tests\n// JSON-pointer: https://tools.ietf.org/html/rfc6901\nconst CONST_REGEXP_JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nexport function isStringJSONPointer(str) {\n return CONST_REGEXP_JSON_POINTER.test(str);\n}\n\n// uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\nconst CONST_REGEXP_JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nexport function isStringJSONPointerUriFragment(str) {\n return CONST_REGEXP_JSON_POINTER_URI_FRAGMENT.test(str);\n}\n\n// relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\nconst CONST_REGEXP_RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\nexport function isStringRelativeJSONPointer(str) {\n return CONST_REGEXP_RELATIVE_JSON_POINTER.test(str);\n}\n//#endregion\n\n//#region Email Tests\n// email (sources from jsen validator):\n// http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n// http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\nconst CONST_REGEXP_EMAIL_FAST = /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i;\nexport function isStringEmail(str) {\n return CONST_REGEXP_EMAIL_FAST.test(str);\n}\n\nconst CONST_REGEXP_EMAIL_FULL = /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;\nexport function isStringEmailFull(str) {\n return CONST_REGEXP_EMAIL_FULL.test(str);\n}\n\nconst CONST_REGEXP_IDNEMAIL = /^[^@]+@[^@]+\\.[^@]+$/;\nexport function isStringIdnEmail(str) {\n return CONST_REGEXP_IDNEMAIL.test(str);\n}\n//#endregion\n\n//#region Common Tests\nconst CONST_REGPEXP_ISBN10 = /^(?:ISBN(?:-10)?:?\\ *((?=\\d{1,5}([ -]?)\\d{1,7}\\2?\\d{1,6}\\2?\\d)(?:\\d\\2*){9}[\\dX]))$/i;\nexport function isStringISBN10(str) {\n return CONST_REGPEXP_ISBN10.test(str);\n}\n\nconst CONST_REGEXP_ISBN13 = /^(?:ISBN(?:-13)?:?\\ *(97(?:8|9)([ -]?)(?=\\d{1,5}\\2?\\d{1,7}\\2?\\d{1,6}\\2?\\d)(?:\\d\\2*){9}\\d))$/i;\nexport function isStringISBN13(str) {\n return CONST_REGEXP_ISBN13.test(str);\n}\n\nconst CONST_REGEXP_BASE64 = /^(?:[a-zA-Z0-9+\\/]{4})*(?:|(?:[a-zA-Z0-9+\\/]{3}=)|(?:[a-zA-Z0-9+\\/]{2}==)|(?:[a-zA-Z0-9+\\/]{1}===))$/;\nexport function isStringBase64(str) {\n return CONST_REGEXP_BASE64.test(str);\n}\n\nconst CONST_REGEXP_COUNTRY_ALPHA2 = /^(AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW|XK)/i;\nexport function isStringCountryAlpha2(str) {\n return CONST_REGEXP_COUNTRY_ALPHA2.test(str);\n}\n\nconst CONST_REGEXP_IBAN = /^([A-Z]{2}[ '+'\\\\\\\\'+'-]?[0-9]{2})(?=(?:[ '+'\\\\\\\\'+'-]?[A-Z0-9]){9,30}\\$)((?:[ '+'\\\\\\\\'+'-]?[A-Z0-9]{3,5}){2,7})([ '+'\\\\\\\\'+'-]?[A-Z0-9]{1,3})?\\$/i;\nexport function isStringIBAN(str) {\n return CONST_REGEXP_IBAN.test(str);\n}\n//#endregion\n", "//@ts-check\n// eslint-disable no-useless-escape\n\nimport {\n isStringType,\n} from '@jarenjs/core';\n\nimport {\n isStringLowerCase,\n isStringUpperCase,\n isStringRegExp,\n} from '@jarenjs/core/string';\n\nimport {\n isStringUri,\n isStringUriRef,\n isStringUriTemplate,\n isStringJSONPointer,\n isStringJSONPointerUriFragment,\n isStringRelativeJSONPointer,\n isStringUrl,\n isStringEmail,\n isStringHostname,\n isStringIdnEmail,\n isStringIdnHostname,\n isStringIPv4,\n isStringIPv6,\n isStringUUID,\n isStringAlpha,\n isStringAlphaNumeric,\n isStringIdentifier,\n isStringHtmlIdentifier,\n isStringCssIdentifier,\n isStringHexaDecimal,\n isStringNumeric,\n isStringIRI,\n isStringIRIRef,\n isStringHexColor,\n isStringUriFull,\n isStringUriRefFull,\n isStringEmailFull,\n isStringGUID,\n isStringISBN10,\n isStringISBN13,\n isStringMACAddr,\n isStringBase64,\n isStringCountryAlpha2,\n isStringIBAN,\n} from '@jarenjs/strings';\n\nfunction createStringFormatCompiler(formatName, isFormatTest) {\n return function compileStringFormat(schemaObj, jsonSchema) {\n if (jsonSchema.format !== formatName)\n throw new Error('Format is not equal to jsonSchema (should not happen!)');\n\n const addError = schemaObj.createErrorHandler(formatName, 'format', isFormatTest.constructor.name);\n\n return function validateStringFormat(data, dataPath) {\n return isStringType(data)\n ? isFormatTest(data) || addError(data, dataPath)\n : true;\n };\n };\n}\n\nexport const formatValidators = {\n 'alpha': createStringFormatCompiler('alpha', isStringAlpha),\n 'alphanumeric': createStringFormatCompiler('alphanumeric', isStringAlphaNumeric),\n 'identifier': createStringFormatCompiler('identifier', isStringIdentifier),\n 'html-identifier': createStringFormatCompiler('html-identifier', isStringHtmlIdentifier),\n 'css-identifier': createStringFormatCompiler('css-identifier', isStringCssIdentifier),\n 'hexadecimal': createStringFormatCompiler('hexadecimal', isStringHexaDecimal),\n 'numeric': createStringFormatCompiler('numeric', isStringNumeric),\n 'uppercase': createStringFormatCompiler('uppercase', isStringUpperCase),\n 'lowercase': createStringFormatCompiler('lowercase', isStringLowerCase),\n 'color': createStringFormatCompiler('color', isStringHexColor),\n 'regex': createStringFormatCompiler('regex', isStringRegExp),\n 'uri': createStringFormatCompiler('uri', isStringUri),\n 'uri--full': createStringFormatCompiler('uri--full', isStringUriFull),\n 'uri-reference': createStringFormatCompiler('uri-reference', isStringUriRef),\n 'uri-reference--full': createStringFormatCompiler('uri-reference--full', isStringUriRefFull),\n 'uri-template': createStringFormatCompiler('uri-template', isStringUriTemplate),\n 'url': createStringFormatCompiler('url', isStringUrl),\n 'url--full': createStringFormatCompiler('url--full', isStringUrl),\n 'email': createStringFormatCompiler('email', isStringEmail),\n 'email--full': createStringFormatCompiler('email--full', isStringEmailFull),\n 'hostname': createStringFormatCompiler('hostname', isStringHostname),\n 'idn-email': createStringFormatCompiler('idn-email', isStringIdnEmail),\n 'idn-hostname': createStringFormatCompiler('idn-hostname', isStringIdnHostname),\n 'ipv4': createStringFormatCompiler('ipv4', isStringIPv4),\n 'ipv6': createStringFormatCompiler('ipv6', isStringIPv6),\n 'uuid': createStringFormatCompiler('uuid', isStringUUID),\n 'guid': createStringFormatCompiler('guid', isStringGUID),\n 'json-pointer': createStringFormatCompiler('json-pointer', isStringJSONPointer),\n 'json-pointer-uri-fragment': createStringFormatCompiler('json-pointer-uri-fragment', isStringJSONPointerUriFragment),\n 'relative-json-pointer': createStringFormatCompiler('relative-json-pointer', isStringRelativeJSONPointer),\n 'iri': createStringFormatCompiler('iri', isStringIRI),\n 'iri-reference': createStringFormatCompiler('iri-reference', isStringIRIRef),\n 'isbn10': createStringFormatCompiler('isbn10', isStringISBN10),\n 'isbn13': createStringFormatCompiler('isbn13', isStringISBN13),\n 'mac': createStringFormatCompiler('mac', isStringMACAddr),\n 'base64': createStringFormatCompiler('base64', isStringBase64),\n 'byte': createStringFormatCompiler('byte', isStringBase64),\n 'country2': createStringFormatCompiler('country2', isStringCountryAlpha2),\n 'iban': createStringFormatCompiler('iban', isStringIBAN),\n};\n", "//@ts-check\n\nimport {\n isIntegerType,\n} from '@jarenjs/core';\n\nexport const INT8_MIN = -128;\nexport const INT8_MAX = 127;\n\nexport function isValidInt8(value) {\n return isIntegerType(value)\n && value >= INT8_MIN\n && value <= INT8_MAX;\n}\n\nexport const UINT8_MIN = 0;\nexport const UINT8_MAX = 255;\n\nexport function isValidUInt8(value) {\n return isIntegerType(value)\n && value >= UINT8_MIN\n && value <= UINT8_MAX;\n}\n\nexport const INT16_MIN = -32768;\nexport const INT16_MAX = 32767;\n\nexport function isValidInt16(value) {\n return isIntegerType(value)\n && value >= INT16_MIN\n && value <= INT16_MAX;\n}\n\nexport const UINT16_MIN = 0;\nexport const UINT16_MAX = 65535;\n\nexport function isValidUInt16(value) {\n return isIntegerType(value)\n && value >= UINT16_MIN\n && value <= UINT16_MAX;\n}\n\nexport const INT32_MIN = -(2 ** 31);\nexport const INT32_MAX = (2 ** 31) - 1;\n\nexport function isValidInt32(value) {\n return isIntegerType(value)\n && value >= INT32_MIN\n && value <= INT32_MAX;\n}\n\nexport const UINT32_MIN = 0;\nexport const UINT32_MAX = (2 ** 32) - 1;\n\nexport function isValidUInt32(value) {\n return isIntegerType(value)\n && value >= UINT32_MIN\n && value <= UINT32_MAX;\n}\n\nexport const INT64_MIN = Number.MIN_SAFE_INTEGER;\nexport const INT64_MAX = Number.MAX_SAFE_INTEGER;\n\nexport function isValidInt64(value) {\n return isIntegerType(value)\n && value >= INT64_MIN\n && value <= INT64_MAX;\n}\n\nexport const UINT64_MIN = 0;\nexport const UINT64_MAX = Number.MAX_SAFE_INTEGER;\n\nexport function isValidUInt64(value) {\n return isIntegerType(value)\n && value >= UINT64_MIN\n && value <= UINT64_MAX;\n}\n", "//@ts-check\n\nimport {\n isNumberType,\n} from '@jarenjs/core';\n\nexport const FLOAT16_MAX = 65504.0;\nexport const FLOAT16_MIN = 0.00006103515625;\nexport const FLOAT16_EPS = 0.0009765625;\nexport const FLOAT16_EXBITS = 5;\nexport const FLOAT16_FRBITS = 10;\n\nexport function isValidFloat16(value) {\n return isNumberType(value)\n && !Number.isNaN(value)\n && value >= -FLOAT16_MAX\n && value <= FLOAT16_MAX;\n}\n\nexport function getValidFloat16(value, defVal = NaN) {\n if (!isNumberType(value) /* TODO: do we need this? */\n || Number.isNaN(value)) return defVal;\n if (value < -FLOAT16_MAX) return -Infinity;\n if (value > FLOAT16_MAX) return Infinity;\n return value;\n}\n\nexport function Float16_increment(value) {\n const next = value + 2 ** (Math.log2(value) - 11);\n return (next > FLOAT16_MAX)\n ? Infinity\n : next;\n}\n\nexport function Float16_decrement(value) {\n const next = value - 2 ** (Math.log2(value) - 11);\n return (next < -FLOAT16_MAX)\n ? -Infinity\n : next;\n}\n\nexport const FLOAT32_MAX = 3.4028234663852886e+38;\nexport const FLOAT32_MIN = 1.1754943508222875e-38;\nexport const FLOAT32_EPS = 1.1920928955078125e-7;\nexport const FLOAT32_EXBITS = 8;\nexport const FLOAT32_FRBITS = 23;\n\nexport function isValidFloat32(value) {\n return isNumberType(value)\n && !Number.isNaN(value)\n && value >= -FLOAT32_MAX\n && value <= FLOAT32_MAX;\n}\n\nexport function getValidFloat32(value, defVal = NaN) {\n if (!isNumberType(value) || Number.isNaN(value)) return defVal;\n if (value < -FLOAT32_MAX) return -Infinity;\n if (value > FLOAT32_MAX) return Infinity;\n return value;\n}\n\nexport function Float32_increment(value) {\n const next = value + 2 ** (Math.log2(value) - 24);\n return (next > FLOAT32_MAX)\n ? Infinity\n : next;\n}\n\nexport function Float32_decrement(value) {\n const next = value - 2 ** (Math.log2(value) - 24);\n return (next < -FLOAT32_MAX)\n ? -Infinity\n : next;\n}\n\nexport const FLOAT64_MAX = Number.MAX_VALUE;\nexport const FLOAT64_MIN = Number.MIN_VALUE;\nexport const FLOAT64_EPS = Number.EPSILON;\nexport const FLOAT64_EXBITS = 11;\nexport const FLOAT64_FRBITS = 52;\n\nexport function isValidFloat64(value) {\n return isNumberType(value)\n && !Number.isNaN(value)\n && value >= -FLOAT64_MAX\n && value <= FLOAT64_MAX;\n}\n\nexport function getValidFloat64(value, defVal = NaN) {\n return isNumberType(value)\n ? value\n : defVal;\n}\n\nexport function Float64_increment(value) {\n return value + 2 ** (Math.log2(value) - 53);\n}\n\nexport function Float64_decrement(value) {\n return value - 2 ** (Math.log2(value) - 53);\n}\n\nexport const FLOAT128_MAX = 0.0;\nexport const FLOAT128_MIN = 0.0;\nexport const FLOAT128_EPS = 0.0;\nexport const FLOAT128_EXBITS = 15;\nexport const FLOAT128_FRBITS = 112;\n", "//@ts-check\n\nimport {\n isValidInt8,\n isValidInt16,\n isValidInt32,\n isValidInt64,\n isValidUInt8,\n isValidUInt16,\n isValidUInt32,\n isValidUInt64,\n} from '@jarenjs/numbers/integer';\n\nimport {\n isValidFloat16,\n isValidFloat32,\n isValidFloat64,\n} from '@jarenjs/numbers/float';\n\nfunction createNumberFormatCompiler(formatName, isNumberTest, strictFormat = false) {\n return function compileNumberFormat(schemaObj, jsonSchema) {\n if (jsonSchema.format !== formatName)\n throw new Error('Format is not equal to jsonSchema (should not happen!)');\n\n const addError = schemaObj.createErrorHandler(formatName, 'format');\n\n if (strictFormat === true)\n return function validateNumberStrictFormat(data, dataPath) {\n return data == null\n || isNumberTest(data)\n || addError(data, dataPath);\n };\n else\n return function validateNumberFormat(data, dataPath) {\n return (data == null\n || isNumberTest(Number(data))\n || addError(data, dataPath));\n };\n };\n}\n\nexport const formatValidators = {\n // integer types\n int8: createNumberFormatCompiler('int8', isValidInt8),\n uint8: createNumberFormatCompiler('uint8', isValidUInt8),\n int16: createNumberFormatCompiler('int16', isValidInt16),\n uint16: createNumberFormatCompiler('uint16', isValidUInt16),\n int32: createNumberFormatCompiler('int32', isValidInt32),\n uint32: createNumberFormatCompiler('uint32', isValidUInt32),\n int64: createNumberFormatCompiler('int64', isValidInt64),\n uint64: createNumberFormatCompiler('uint64', isValidUInt64),\n // floating point types\n float16: createNumberFormatCompiler('float16', isValidFloat16),\n float32: createNumberFormatCompiler('float32', isValidFloat32),\n float64: createNumberFormatCompiler('float64', isValidFloat64),\n float: createNumberFormatCompiler('float', isValidFloat32),\n double: createNumberFormatCompiler('double', isValidFloat64),\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["formatValidators", "formatValidators"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function l(t){return typeof t=="string"}function I(t){return t!=null&&typeof t=="number"}function d(t){return Number.isInteger(t)}function T(t,n){return t!=null&&t.constructor===n}var ur=Object.getPrototypeOf(Uint8Array);function N(t,n,r){let i=t(n),o=r===!0?i:t(r);return o===void 0?[i,void 0]:[void 0,o]}var yt=1e3,Lt=yt*60*60,fr=Lt*24,$t="1970-01-01T";var bt=Object.freeze([0,31,28,31,30,31,30,31,31,30,31,30,31]),Xt=/^(\d\d\d\d)-([0-1]\d)-([0-3]\d)z?$/i,ht=/^(\d\d):(\d\d):(\d\d)(\.\d{1,6})?(z|(([+-])(\d\d):(\d\d)))$/i;function D(t){return T(t,Date)}function Vt(t){return t%4===0&&(t%100!==0||t%400===0)}function wt(t=0,n=0,r=0){return n>=1&&n<=12&&r>=1&&r<=(n===2&&Vt(t)?29:bt[n])}function P(t){if(!l(t))return!1;let n=t.match(Xt);if(n==null)return!1;let r=parseInt(n[1],10)|0,i=parseInt(n[2],10)|0,o=parseInt(n[3],10)|0;return wt(r,i,o)}function Ht(t=0,n=0,r=0,i=0,o=0){return(t===23&&n===59&&r===60||t>=0&&t<=23&&n>=0&&n<=59&&r>=0&&r<=59)&&i>=0&&i<=23&&o>=0&&o<=59}function y(t){if(!l(t))return!1;let n=t.match(ht);if(n==null)return!1;let r=parseInt(n[1],10)|0,i=parseInt(n[2],10)|0,o=parseInt(n[3],10)|0,s=parseInt(n[8],10)|0,F=parseInt(n[9],10)|0;return Ht(r,i,o,s,F)}function Zt(t){if(!l(t))return!1;let n=t.split(/t|\s/i);return n.length===2&&P(n[0])&&y(n[1])}function L(t,n=void 0){return P(t)?new Date(Date.parse(t)):n}function $(t,n=void 0){return y(t)?new Date(Date.parse($t+t)):n}function b(t,n=void 0){return Zt(t)?new Date(Date.parse(t)):n}function Kt(t,n,r){let[i,o]=N(t,r.formatMinimum,r.formatExclusiveMinimum);if(o!=null){let s=n.createErrorHandler(o,"formatExclusiveMinimum");return function(f,e){return f>o||s(f,e)}}else if(i){let s=n.createErrorHandler(i,"formatMinimum");return function(f,e){return f>=i||s(f,e)}}}function Jt(t,n,r){let[i,o]=N(t,r.formatMaximum,r.formatExclusiveMaximum);if(o!=null){let s=n.createErrorHandler(o,"formatExclusiveMaximum");return function(f,e){return f<o||s(f,e)}}else if(i!=null){let s=n.createErrorHandler(i,"formatMaximum");return function(f,e){return f<=i||s(f,e)}}}function A(t,n,r,i){if(i.format!==t)throw new Error("ERROR: This should not happen!");let o=r.createErrorHandler(i.format,"format"),s=Kt(n,r,i),F=Jt(n,r,i);return s!=null&&F!=null?function(e,a){if(l(e)){let c=n(e);return c==null?o(e,a):s(c,a)&&F(c,a)}else return D(e)?s(e,a)&&F(e,a):!0}:s!=null?function(e,a){if(l(e)){let c=n(e);return c==null?o(e,a):s(c,a)}else return D(e)?s(e,a):!0}:F!=null?function(e,a){if(l(e)){let c=n(e);return c==null?o(e,a):F(c)}else return D(e)?F(e,a):!0}:function(e,a){return l(e)&&n(e)==null?o(e,a):!0}}function Yt(t,n){return A("date-time",b,t,n)}function Wt(t,n){return A("date",L,t,n)}function kt(t,n){return A("time",$,t,n)}var Qt={"date-time":Yt,date:Wt,time:kt};function X(t){return t===t.toUpperCase()}function h(t){return t===t.toLowerCase()}function jt(t){return T(t,RegExp)}function V(t){try{return qt(t)!=null}catch{return!1}}function qt(t){if(t!=null){if(jt(t))return t;if(l(t))if(t[0]==="/"){let n=t.lastIndexOf("/");if(n>=0){let r=t.substring(1,n),i=t.substring(n+1);return new RegExp(r,i)}}else return new RegExp(t);throw new Error(`Unknown Regular Expression Pattern Type: ${t}`)}}var vt="-";var tn=/[^\0-\x7E]/,nn=/[\x2E\u3002\uFF0E\uFF61]/g,rn={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},C=35,E=Math.floor,g=String.fromCharCode;function w(t){throw new RangeError(rn[t])}function en(t,n){let r=[],i=t.length;for(;i--;)r[i]=n(t[i]);return r}function on(t,n){let r=t.split("@"),i="";r.length>1&&(i=r[0]+"@",t=r[1]),t=t.replace(nn,".");let o=t.split("."),s=en(o,n).join(".");return i+s}function un(t){let n=[],r=0,i=t.length;for(;r<i;){let o=t.charCodeAt(r++);if(o>=55296&&o<=56319&&r<i){let s=t.charCodeAt(r++);(s&64512)===56320?n.push(((o&1023)<<10)+(s&1023)+65536):(n.push(o),r--)}else n.push(o)}return n}function H(t,n){return t+22+75*(t<26)-((n!==0)<<5)}function sn(t,n,r){let i=0;for(t=r?E(t/700):t>>1,t+=E(t/n);t>C*26>>1;i+=36)t=E(t/C);return E(i+(C+1)*t/(t+38))}function an(t){let n=[],r=un(t),i=r.length,o=128,s=0,F=72;for(let a of r)a<128&&n.push(g(a));let f=n.length,e=f;for(f&&n.push(vt);e<i;){let a=2147483647;for(let x of r)x>=o&&x<a&&(a=x);let c=e+1;a-o>E((2147483647-s)/c)&&w("overflow"),s+=(a-o)*c,o=a;for(let x of r)if(x<o&&++s>2147483647&&w("overflow"),x===o){let S=s;for(let m=36;;m+=36){let _=m<=F?1:m>=F+26?26:m-F;if(S<_)break;let U=S-_,G=36-_;n.push(g(H(_+U%G,0))),S=E(U/G)}n.push(g(H(S,0))),F=sn(s,c,e===f),s=0,++e}++s,++o}return n.join("")}function Z(t){return on(t,function(r){return tn.test(r)?"xn--"+an(r):r})}var fn=/^[a-zA-Z]+$/;function K(t){return fn.test(t)}var Fn=/^[a-zA-Z0-9]+$/;function J(t){return Fn.test(t)}var cn=/^[0-9]+$/;function Y(t){return cn.test(t)}var ln=/^[a-fA-F0-9]+$/;function W(t){return ln.test(t)}var pn=/^#(?:[0-9a-f]{3}){1,2}\b$/i;function k(t){return pn.test(t)}var dn=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;function Q(t){return dn.test(t)}var xn=/^({)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;function j(t){return xn.test(t)}var En=/^[_a-zA-Z]+\w{0,30}$/;function q(t){return En.test(t)}var Sn=/^[A-Za-z]+[\w\-\:\.]{0,30}$/;function v(t){return Sn.test(t)}var mn=/^-?[_a-zA-Z]+[\w-]{0,30}$/;function tt(t){return mn.test(t)}var _n=/^(?:[0-9A-Fa-f]{2}([:-]?)[0-9A-Fa-f]{2})(?:(?:\1|\.)(?:[0-9A-Fa-f]{2}([:-]?)[0-9A-Fa-f]{2})){2}$/;function nt(t){return _n.test(t)}var In=/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/;function rt(t){return In.test(t)}var Tn=/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i;function et(t){return Tn.test(t)}var Dn=/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i;function it(t){return t.length<=255&&Dn.test(t)}var Nn=/^(?!-)(xn--)?[a-zA-Z0-9][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9]{0,1}\.(?!-)(xn--)?([a-zA-Z0-9\-]{1,50}|[a-zA-Z0-9-]{1,30}\.[a-zA-Z]{2,})$/;function ot(t){let n=Z(t);return Nn.test(n)}var An=/^[(http(s)?):\/\/(www\.)?\w-/=#%&\.\?]{2,}\.[a-z]{2,}([\w-/=#%&\.\?]*)$/i;function M(t){return An.test(t)}var ut=/\/|:/,Cn=/^(?:[a-z][a-z0-9+-.]*:)(?:\/?\/)?[^\s]*$/i;function st(t){return ut.test(t)&&Cn.test(t)}var gn=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function at(t){return ut.test(t)&&gn.test(t)}var Mn=/^(?:(?:[a-z][a-z0-9+-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i;function R(t){return Mn.test(t)}var Rn=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function ft(t){return Rn.test(t)}var On=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i;function Ft(t){return On.test(t)}var zn=/^([a-z]([a-z]|\d|\+|-|\.)*):(\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?((\[(|(v[\da-f]{1,}\.(([a-z]|\d|-|\.|_|~)|[!\$&'\(\)\*\+,;=]|:)+))\])|((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=])*)(:\d*)?)(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*|(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)){0})(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i;function ct(t){return zn.test(t)}function lt(t){return R(t)}var Bn=/^(?:\/(?:[^~/]|~0|~1)*)*$/;function pt(t){return Bn.test(t)}var Un=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;function dt(t){return Un.test(t)}var Gn=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function xt(t){return Gn.test(t)}var Pn=/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i;function Et(t){return Pn.test(t)}var yn=/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;function St(t){return yn.test(t)}var Ln=/^[^@]+@[^@]+\.[^@]+$/;function mt(t){return Ln.test(t)}var $n=/^(?:ISBN(?:-10)?:?\ *((?=\d{1,5}([ -]?)\d{1,7}\2?\d{1,6}\2?\d)(?:\d\2*){9}[\dX]))$/i;function _t(t){return $n.test(t)}var bn=/^(?:ISBN(?:-13)?:?\ *(97(?:8|9)([ -]?)(?=\d{1,5}\2?\d{1,7}\2?\d{1,6}\2?\d)(?:\d\2*){9}\d))$/i;function It(t){return bn.test(t)}var Xn=/^(?:[a-zA-Z0-9+\/]{4})*(?:|(?:[a-zA-Z0-9+\/]{3}=)|(?:[a-zA-Z0-9+\/]{2}==)|(?:[a-zA-Z0-9+\/]{1}===))$/;function O(t){return Xn.test(t)}var hn=/^(AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW|XK)/i;function Tt(t){return hn.test(t)}var Vn=/^([A-Z]{2}[ '+'\\\\'+'-]?[0-9]{2})(?=(?:[ '+'\\\\'+'-]?[A-Z0-9]){9,30}\$)((?:[ '+'\\\\'+'-]?[A-Z0-9]{3,5}){2,7})([ '+'\\\\'+'-]?[A-Z0-9]{1,3})?\$/i;function Dt(t){return Vn.test(t)}function u(t,n){return function(i,o){if(o.format!==t)throw new Error("Format is not equal to jsonSchema (should not happen!)");let s=i.createErrorHandler(t,"format",n.constructor.name);return function(f,e){return l(f)?n(f)||s(f,e):!0}}}var wn={alpha:u("alpha",K),alphanumeric:u("alphanumeric",J),identifier:u("identifier",q),"html-identifier":u("html-identifier",v),"css-identifier":u("css-identifier",tt),hexadecimal:u("hexadecimal",W),numeric:u("numeric",Y),uppercase:u("uppercase",X),lowercase:u("lowercase",h),color:u("color",k),regex:u("regex",V),uri:u("uri",st),"uri--full":u("uri--full",at),"uri-reference":u("uri-reference",R),"uri-reference--full":u("uri-reference--full",ft),"uri-template":u("uri-template",Ft),url:u("url",M),"url--full":u("url--full",M),email:u("email",Et),"email--full":u("email--full",St),hostname:u("hostname",it),"idn-email":u("idn-email",mt),"idn-hostname":u("idn-hostname",ot),ipv4:u("ipv4",rt),ipv6:u("ipv6",et),uuid:u("uuid",Q),guid:u("guid",j),"json-pointer":u("json-pointer",pt),"json-pointer-uri-fragment":u("json-pointer-uri-fragment",dt),"relative-json-pointer":u("relative-json-pointer",xt),iri:u("iri",ct),"iri-reference":u("iri-reference",lt),isbn10:u("isbn10",_t),isbn13:u("isbn13",It),mac:u("mac",nt),base64:u("base64",O),byte:u("byte",O),country2:u("country2",Tt),iban:u("iban",Dt)};var Hn=-128,Zn=127;function Nt(t){return d(t)&&t>=Hn&&t<=Zn}var Kn=0,Jn=255;function At(t){return d(t)&&t>=Kn&&t<=Jn}var Yn=-32768,Wn=32767;function Ct(t){return d(t)&&t>=Yn&&t<=Wn}var kn=0,Qn=65535;function gt(t){return d(t)&&t>=kn&&t<=Qn}var jn=-(2**31),qn=2**31-1;function Mt(t){return d(t)&&t>=jn&&t<=qn}var vn=0,tr=2**32-1;function Rt(t){return d(t)&&t>=vn&&t<=tr}var nr=Number.MIN_SAFE_INTEGER,rr=Number.MAX_SAFE_INTEGER;function Ot(t){return d(t)&&t>=nr&&t<=rr}var er=0,ir=Number.MAX_SAFE_INTEGER;function zt(t){return d(t)&&t>=er&&t<=ir}var Bt=65504;function Pt(t){return I(t)&&!Number.isNaN(t)&&t>=-Bt&&t<=Bt}var Ut=34028234663852886e22;function z(t){return I(t)&&!Number.isNaN(t)&&t>=-Ut&&t<=Ut}var Gt=Number.MAX_VALUE,gr=Number.MIN_VALUE,Mr=Number.EPSILON;function B(t){return I(t)&&!Number.isNaN(t)&&t>=-Gt&&t<=Gt}function p(t,n,r=!1){return function(o,s){if(s.format!==t)throw new Error("Format is not equal to jsonSchema (should not happen!)");let F=o.createErrorHandler(t,"format");return r===!0?function(e,a){return e==null||n(e)||F(e,a)}:function(e,a){return e==null||n(Number(e))||F(e,a)}}}var or={int8:p("int8",Nt),uint8:p("uint8",At),int16:p("int16",Ct),uint16:p("uint16",gt),int32:p("int32",Mt),uint32:p("uint32",Rt),int64:p("int64",Ot),uint64:p("uint64",zt),float16:p("float16",Pt),float32:p("float32",z),float64:p("float64",B),float:p("float",z),double:p("double",B)};export{Qt as dateTimeFormats,or as numberFormats,wn as stringFormats};
|
|
2
|
+
//# sourceMappingURL=index.min.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../core/src/index.js", "../../core/src/dates.js", "../src/datetime.js", "../../core/src/string.js", "../../strings/src/punycode.js", "../../strings/src/index.js", "../src/string.js", "../../numbers/src/integer.js", "../../numbers/src/float.js", "../src/number.js"],
|
|
4
|
+
"sourcesContent": ["//@ts-check\nexport function isFn(data) {\n return typeof data === 'function';\n}\n\n//#region Scalar Tests\nfunction isScalarTypeEx(typeName) {\n switch (typeName) {\n case 'string':\n case 'number':\n case 'boolean':\n case 'integer':\n case 'bigint':\n return true;\n default:\n return false;\n }\n}\n\nexport function isScalarType(data) {\n return data != null && isScalarTypeEx(typeof data);\n}\n\nexport function isStringType(data) {\n return typeof data === 'string';\n}\n\n/**\n * Checks if the given data is of boolean type.\n * @param {any} data - The data to check.\n * @returns {boolean} - True if the data is a boolean, otherwise false.\n */\nexport function isBooleanType(data) {\n return data === true || data === false;\n}\n\n/**\n * Checks if the given data is of number type.\n * @param {any} data - The data to check.\n * @returns {boolean} - True if the data is a number, otherwise false.\n */\nexport function isNumberType(data) {\n return data != null && typeof data === 'number';\n}\n\n/**\n * Checks if the given data is an integer type.\n * @param {any} data - The data to check.\n * @returns {boolean} - True if the data is an integer, otherwise false.\n */\nexport function isIntegerType(data) {\n return Number.isInteger(data);\n}\n\nexport function isBigIntType(data) {\n return typeof data === 'bigint';\n}\n\n//#endregion\n\n//#region Scalar Getters\n/**\n * Returns the string type of the input object if it is a string; otherwise, returns the default value.\n * \n * @param {any} obj - The input object to check its type.\n * @param {string|undefined} [def=undefined] - The default value to return if the input object is not a string.\n * @returns {string} The string type of the input object or the default value.\n */\nexport function getStringType(obj, def = undefined) {\n return isStringType(obj) ? obj : def;\n}\n\n/**\n * Checks if the given object is a boolean type and returns it, otherwise returns the default value.\n * @param {any} obj - The object to check.\n * @param {boolean|undefined} [def=undefined] - The default value to return if the object is not a boolean.\n * @returns {boolean|undefined} - The boolean value or the default value.\n */\nexport function getBooleanType(obj, def = undefined) {\n return isBooleanType(obj) ? obj : def;\n}\n\n/**\n * Checks if the given object is a number type and returns it, otherwise returns the default value.\n * @param {any} obj - The object to check.\n * @param {number|undefined} [def=undefined] - The default value to return if the object is not a number.\n * @returns {number|undefined} - The number value or the default value.\n */\nexport function getNumberType(obj, def = undefined) {\n return isNumberType(obj) ? obj : def;\n}\n\n/**\n * Checks if the given object is an integer type and returns it, otherwise returns the default value.\n * @param {any} obj - The object to check.\n * @param {number|undefined} [def=undefined] - The default value to return if the object is not an integer.\n * @returns {number|undefined} - The integer value or the default value.\n */\nexport function getIntegerType(obj, def = undefined) {\n return isIntegerType(obj) ? obj : def;\n}\n\n/**\n * Checks if the given object is a bigint type and returns it, otherwise returns the default value.\n * @param {any} obj - The object to check.\n * @param {bigint|undefined} [def=undefined] - The default value to return if the object is not a bigint.\n * @returns {bigint|undefined} - The bigint value or the default value.\n */\nexport function getBigIntType(obj, def = undefined) {\n return isBigIntType(obj)\n ? obj\n : def;\n}\n//#endregion\n\n//#region Object Tests\n/**\n * Checks if the input data is null.\n *\n * @param {any} data - The data to be checked.\n * @returns {boolean} - Returns true if the data is null, otherwise false.\n */\nexport function isNullValue(data) {\n return data === null;\n}\n\n/**\n * Checks if the given data is an object of a specific class.\n *\n * @param {any} data - The data to check.\n * @param {Function} type - The class type to compare against.\n * @returns {boolean} Returns true if the data is an object of the specified class; otherwise, false.\n */\nexport function isObjectOfClass(data, type) {\n return data != null && data.constructor === type;\n}\n\n/**\n * @brief test if data is an object literal\n * @param {*} data the data to test\n * @returns boolean\n */\nexport function isObjectClass(data) {\n return isObjectOfClass(data, Object);\n}\n\n/**\n * Checks if the input data is of type Map.\n *\n * @param {any} data - The data to be checked.\n * @returns {boolean} - Returns true if the data is an instance of the Map class, otherwise false.\n */\nexport function isMapClass(data) {\n return isObjectOfClass(data, Map);\n}\n\n/**\n * @brief test if data is typeof object but not an Array\n * @param {*} data the data to test\n * @returns boolean\n */\nexport function isObjectType(data) {\n return data != null\n && typeof data === 'object'\n && data.constructor !== Array;\n}\n\n/**\n * Checks if the input data is of type Array.\n *\n * @param {any} data - The data to be checked.\n * @returns {boolean} - Returns true if the data is an instance of the Array class, otherwise false.\n */\nexport function isArrayClass(data) {\n return isObjectOfClass(data, Array);\n}\n\n/**\n * Checks if the input data is of type Set.\n *\n * @param {any} data - The data to be checked.\n * @returns {boolean} - Returns true if the data is an instance of the Set class, otherwise false.\n */\nexport function isSetClass(data) {\n return isObjectOfClass(data, Set);\n}\n\nexport const TypedArray = Object.getPrototypeOf(Uint8Array);\nexport function isTypedArray(data) {\n if (data == null)\n return false;\n const proto = data.__proto__.__proto__;\n return proto != null && proto.constructor === TypedArray;\n}\n//#endregion\n\n//#region Object Getters\nexport function getObjectType(obj, def = undefined) {\n return isObjectClass(obj) ? obj : def;\n}\n\nexport function getArrayClass(obj, def = undefined) {\n return isArrayClass(obj) ? obj : def;\n}\n//#endregion\n\n/**\n * Calculates the inclusive and exclusive bounds based on the provided parameters.\n * \n * @param {function} getType - A function to determine the type of the inclusive and exclusive bounds.\n * @param {number|string|undefined} inclusive - The inclusive bound value.\n * @param {number|string|boolean|undefined} exclusive - The exclusive bound value.\n * @returns {Array} An array containing the inclusive and exclusive bounds.\n */\nexport function getInclusiveExclusiveBounds(getType, inclusive, exclusive) {\n const includes = getType(inclusive);\n const excludes = exclusive === true\n ? includes\n : getType(exclusive);\n return (excludes === undefined)\n ? [includes, undefined]\n : [undefined, excludes];\n}\n", "//@ts-check\n\nimport {\n isStringType,\n isObjectOfClass,\n} from './index.js';\n\n//#region Dates Constants\nexport const CONST_TICKS_SECOND = 1000;\nexport const CONST_TICKS_HOUR = CONST_TICKS_SECOND * 60 * 60;\nexport const CONST_TICKS_DAY = CONST_TICKS_HOUR * 24;\n\nexport const CONST_TIME_INSERTDATE = '1970-01-01T';\nexport const CONST_DATE_APPENDTIME = 'T00:00:00Z';\n\nexport const CONST_RFC3339_DAYS = Object.freeze(\n [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n);\n\n// full-date from http://tools.ietf.org/html/rfc3339#section-5.6\nexport const CONST_RFC3339_REGEX_ISDATE = /^(\\d\\d\\d\\d)-([0-1]\\d)-([0-3]\\d)z?$/i;\n\n// full-date from http://tools.ietf.org/html/rfc3339#section-5.6\nexport const CONST_RFC3339_REGEX_ISTIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d{1,6})?(z|(([+-])(\\d\\d):(\\d\\d)))$/i;\n\n//#endregion\n\n//#region Dates Compare\nexport function isDateType(data) {\n return isObjectOfClass(data, Date);\n}\n\nexport function isDateishType(data) {\n return isDateType(data)\n || !Number.isNaN(Date.parse(data));\n}\n\nexport function isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nexport function isDateOnlyInRange(year = 0, month = 0, day = 0) {\n return month >= 1\n && month <= 12\n && day >= 1\n && day <= (month === 2 && isLeapYear(year)\n ? 29\n : CONST_RFC3339_DAYS[month]);\n}\n\nexport function isDateOnlyRFC3339(str) {\n if (!isStringType(str))\n return false;\n\n const r = str.match(CONST_RFC3339_REGEX_ISDATE);\n if (r == null)\n return false;\n\n const y = parseInt(r[1], 10) | 0;\n const m = parseInt(r[2], 10) | 0;\n const d = parseInt(r[3], 10) | 0;\n return isDateOnlyInRange(y, m, d);\n}\n\nexport function isTimeOnlyInRange(hrs = 0, min = 0, sec = 0, tzh = 0, tzm = 0) {\n return ((hrs === 23 && min === 59 && sec === 60)\n || (hrs >= 0 && hrs <= 23\n && min >= 0 && min <= 59\n && sec >= 0 && sec <= 59))\n && (tzh >= 0 && tzh <= 23\n && tzm >= 0 && tzm <= 59);\n}\n\nexport function isTimeOnlyRFC3339(str) {\n if (!isStringType(str))\n return false;\n\n const r = str.match(CONST_RFC3339_REGEX_ISTIME);\n if (r == null)\n return false;\n\n const h = parseInt(r[1], 10) | 0;\n const m = parseInt(r[2], 10) | 0;\n const s = parseInt(r[3], 10) | 0;\n const th = parseInt(r[8], 10) | 0;\n const tm = parseInt(r[9], 10) | 0;\n return isTimeOnlyInRange(h, m, s, th, tm);\n}\n\nexport function isDateTimeRFC3339(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n if (!isStringType(str)) return false;\n const dateTime = str.split(/t|\\s/i);\n return dateTime.length === 2\n && isDateOnlyRFC3339(dateTime[0])\n && isTimeOnlyRFC3339(dateTime[1]);\n}\n\n//#endregion\n\n//#region Dates Getters\nexport function getDateTypeOfDateOnlyRFC3339(str, def = undefined) {\n return isDateOnlyRFC3339(str)\n ? new Date(Date.parse(str))\n : def;\n}\n\nexport function getDateTypeOfTimeOnlyRFC3339(str, def = undefined) {\n return isTimeOnlyRFC3339(str)\n ? new Date(Date.parse(CONST_TIME_INSERTDATE + str))\n : def;\n}\n\nexport function getDateTypeOfDateTimeRFC3339(str, def = undefined) {\n return isDateTimeRFC3339(str)\n ? new Date(Date.parse(str))\n : def;\n}\n//#endregion\n", "//@ts-check\n\nimport {\n isStringType,\n getInclusiveExclusiveBounds,\n} from '@jarenjs/core';\n\nimport {\n isDateType,\n getDateTypeOfDateTimeRFC3339,\n getDateTypeOfDateOnlyRFC3339,\n getDateTypeOfTimeOnlyRFC3339,\n} from '@jarenjs/core/dates';\n\n//#region generalized\nfunction compileFormatMinimumByType(parseType, schemaObj, jsonSchema) {\n const [min, emin] = getInclusiveExclusiveBounds(\n parseType,\n jsonSchema.formatMinimum,\n jsonSchema.formatExclusiveMinimum,\n );\n\n if (emin != null) {\n const addError = schemaObj.createErrorHandler(emin, 'formatExclusiveMinimum');\n\n return function isFormatExclusiveMinimum(date, dataPath) {\n return date > emin\n || addError(date, dataPath);\n };\n }\n else if (min) {\n const addError = schemaObj.createErrorHandler(min, 'formatMinimum');\n\n return function isFormatMinimum(date, dataPath) {\n return date >= min\n || addError(date, dataPath);\n };\n }\n\n return undefined;\n}\n\nfunction compileFormatMaximumByType(parseType, schemaObj, jsonSchema) {\n const [max, emax] = getInclusiveExclusiveBounds(\n parseType,\n jsonSchema.formatMaximum,\n jsonSchema.formatExclusiveMaximum,\n );\n\n if (emax != null) {\n const addError = schemaObj.createErrorHandler(emax, 'formatExclusiveMaximum');\n\n return function isFormatExclusiveMaximum(date, dataPath) {\n return date < emax\n || addError(date, dataPath);\n };\n }\n else if (max != null) {\n const addError = schemaObj.createErrorHandler(max, 'formatMaximum');\n\n return function isFormatMaximum(date, dataPath) {\n return date <= max\n || addError(date, dataPath);\n };\n }\n\n return undefined;\n}\n\nfunction compileFormatByType(name, parseType, schemaObj, jsonSchema) {\n if (jsonSchema.format !== name)\n throw new Error('ERROR: This should not happen!');\n\n const addError = schemaObj.createErrorHandler(jsonSchema.format, 'format');\n\n const validateMin = compileFormatMinimumByType(\n parseType,\n schemaObj,\n jsonSchema,\n );\n\n const validateMax = compileFormatMaximumByType(\n parseType,\n schemaObj,\n jsonSchema,\n );\n\n if (validateMin != null && validateMax != null) {\n return function validateFormatBetween(data, dataPath) {\n if (isStringType(data)) {\n const date = parseType(data);\n return date == null\n ? addError(data, dataPath)\n : validateMin(date, dataPath)\n && validateMax(date, dataPath);\n }\n else if (isDateType(data))\n return validateMin(data, dataPath)\n && validateMax(data, dataPath);\n else\n return true;\n };\n }\n if (validateMin != null) {\n return function validateFormatMinimum(data, dataPath) {\n if (isStringType(data)) {\n const date = parseType(data);\n return date == null\n ? addError(data, dataPath)\n : validateMin(date, dataPath);\n }\n else if (isDateType(data))\n return validateMin(data, dataPath);\n else\n return true;\n };\n }\n if (validateMax != null) {\n return function validateFormatMaximum(data, dataPath) {\n if (isStringType(data)) {\n const date = parseType(data);\n return date == null\n ? addError(data, dataPath)\n : validateMax(date);\n }\n else if (isDateType(data))\n return validateMax(data, dataPath);\n else\n return true;\n };\n }\n\n return function validateDateTime(data, dataPath) {\n if (isStringType(data)) {\n const date = parseType(data);\n return date == null\n ? addError(data, dataPath)\n : true;\n }\n else\n return true;\n };\n}\n//#endregion\n\nfunction compileDateTimeFormat(schemaObj, jsonSchema) {\n return compileFormatByType(\n 'date-time',\n getDateTypeOfDateTimeRFC3339,\n schemaObj,\n jsonSchema,\n );\n}\n\nfunction compileDateOnlyFormat(schemaObj, jsonSchema) {\n return compileFormatByType(\n 'date',\n getDateTypeOfDateOnlyRFC3339,\n schemaObj,\n jsonSchema,\n );\n}\n\nfunction compileTimeOnlyFormat(schemaObj, jsonSchema) {\n return compileFormatByType(\n 'time',\n getDateTypeOfTimeOnlyRFC3339,\n schemaObj,\n jsonSchema,\n );\n}\n\nexport const formatValidators = {\n 'date-time': compileDateTimeFormat,\n date: compileDateOnlyFormat,\n time: compileTimeOnlyFormat,\n};\n", "//@ts-check\n\nimport {\n isStringType,\n isObjectOfClass,\n} from './index.js';\n\n//#region String Tools\nexport function isStringEmpty(data) {\n return typeof data === 'string' && !data;\n}\n\nexport function isStringWhiteSpace(data) {\n return data == null || /^\\s*$/.test(data);\n}\n\nexport function isStringUpperCase(str) {\n return str === str.toUpperCase();\n}\n\nexport function isStringLowerCase(str) {\n return str === str.toLowerCase();\n}\n\nexport function isRegExpType(data) {\n return isObjectOfClass(data, RegExp);\n}\n\nexport function isStringRegExp(str) {\n try {\n return createRegExp(str) != null;\n }\n // eslint-disable-next-line no-unused-vars\n catch (e) {\n return false;\n }\n}\n\nexport function createRegExp(pattern) {\n if (pattern == null)\n return undefined;\n\n if (isRegExpType(pattern))\n return pattern;\n\n if (isStringType(pattern)) {\n if (pattern[0] === '/') {\n const e = pattern.lastIndexOf('/');\n if (e >= 0) {\n const r = pattern.substring(1, e);\n const g = pattern.substring(e + 1);\n return new RegExp(r, g);\n }\n }\n else\n return new RegExp(pattern);\n }\n\n throw new Error(`Unknown Regular Expression Pattern Type: ${pattern}`);\n}\n", "// @ts-nocheck\n// Copyright Mathias Bynens <https://mathiasbynens.be/>\n// https://github.com/bestiejs/punycode.js/blob/master/punycode.js\n\nexport const punycodeVersion = '2.1.0';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n 'overflow': 'Overflow: input needs wider integers to process',\n 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n 'invalid-input': 'Invalid input',\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n throw new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} fn The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n const result = [];\n let length = array.length;\n while (length--) {\n result[length] = fn(array[length]);\n }\n return result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} fn The function that gets called for every\n * character.\n * @returns {String} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(domain, fn) {\n const parts = domain.split('@');\n let result = '';\n if (parts.length > 1) {\n // In email addresses, only the domain name should be punycoded. Leave\n // the local part (i.e. everything up to `@`) intact.\n result = parts[0] + '@';\n domain = parts[1];\n }\n // Avoid `split(regex)` for IE8 compatibility. See #17.\n domain = domain.replace(regexSeparators, '\\x2E');\n const labels = domain.split('.');\n const encoded = map(labels, fn).join('.');\n return result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nexport function ucs2decode(string) {\n const output = [];\n let counter = 0;\n const length = string.length;\n while (counter < length) {\n const value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n const extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) === 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nexport const ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nexport function basicToDigit(codePoint) {\n if (codePoint - 0x30 < 0x0A) {\n return codePoint - 0x16;\n }\n if (codePoint - 0x41 < 0x1A) {\n return codePoint - 0x41;\n }\n if (codePoint - 0x61 < 0x1A) {\n return codePoint - 0x61;\n }\n return base;\n}\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nexport function digitToBasic(digit, flag) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26) - ((flag !== 0) << 5);\n}\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nfunction adapt(delta, numPoints, firstTime) {\n let k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n}\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nexport function decode(input) {\n // Don't use UCS-2.\n const output = [];\n const inputLength = input.length;\n let i = 0;\n let n = initialN;\n let bias = initialBias;\n\n // Handle the basic code points: let `basic` be the number of input code\n // points before the last delimiter, or `0` if there is none, then copy\n // the first basic code points to the output.\n\n let basic = input.lastIndexOf(delimiter);\n if (basic < 0) {\n basic = 0;\n }\n\n for (let j = 0; j < basic; ++j) {\n // if it's not a basic code point\n if (input.charCodeAt(j) >= 0x80) {\n error('not-basic');\n }\n output.push(input.charCodeAt(j));\n }\n\n // Main decoding loop: start just after the last delimiter if any basic code\n // points were copied; start at the beginning otherwise.\n\n for (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n // `index` is the index of the next character to be consumed.\n // Decode a generalized variable-length integer into `delta`,\n // which gets added to `i`. The overflow checking is easier\n // if we increase `i` as we go, then subtract off its starting\n // value at the end to obtain `delta`.\n const oldi = i;\n for (let w = 1, k = base; /* no condition */; k += base) {\n if (index >= inputLength) {\n error('invalid-input');\n }\n\n const digit = basicToDigit(input.charCodeAt(index++));\n if (digit >= base || digit > floor((maxInt - i) / w)) {\n error('overflow');\n }\n\n i += digit * w;\n const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (digit < t) {\n break;\n }\n\n const baseMinusT = base - t;\n if (w > floor(maxInt / baseMinusT)) {\n error('overflow');\n }\n\n w *= baseMinusT;\n }\n\n const out = output.length + 1;\n bias = adapt(i - oldi, out, oldi === 0);\n\n // `i` was supposed to wrap around from `out` to `0`,\n // incrementing `n` each time, so we'll fix that now:\n if (floor(i / out) > maxInt - n) {\n error('overflow');\n }\n\n n += floor(i / out);\n i %= out;\n\n // Insert `n` at position `i` of the output.\n output.splice(i++, 0, n);\n }\n\n return String.fromCodePoint(...output);\n}\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nexport function encode(str) {\n const output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n const input = ucs2decode(str);\n\n // Cache the length.\n const inputLength = input.length;\n\n // Initialize the state.\n let n = initialN;\n let delta = 0;\n let bias = initialBias;\n\n // Handle the basic code points.\n for (const currentValue of input) {\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n const basicLength = output.length;\n let handledCPCount = basicLength;\n\n // `handledCPCount` is the number of code points that have been handled;\n // `basicLength` is the number of basic code points.\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next\n // larger one:\n let m = maxInt;\n for (const currentValue of input) {\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n // but guard against overflow.\n const handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n error('overflow');\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (const currentValue of input) {\n if (currentValue < n && ++delta > maxInt) {\n error('overflow');\n }\n if (currentValue === n) {\n // Represent delta as a generalized variable-length integer.\n let q = delta;\n for (let k = base; /* no condition */; k += base) {\n const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) {\n break;\n }\n const qMinusT = q - t;\n const baseMinusT = base - t;\n output.push(\n stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)),\n );\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q, 0)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n}\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nexport function toUnicode(input) {\n return mapDomain(input, function iterateMapDomain(string) {\n return regexPunycode.test(string)\n ? decode(string.slice(4).toLowerCase())\n : string;\n });\n}\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nexport function toASCII(input) {\n return mapDomain(input, function iterateMapDomain(string) {\n return regexNonASCII.test(string)\n ? 'xn--' + encode(string)\n : string;\n });\n}\n", "/* eslint no-unused-vars: \"off\" */\n/* eslint no-useless-escape: \"off\" */\n\n//@ts-check\nimport {\n toASCII,\n} from './punycode.js';\n\n//#region Common Tests\nconst CONST_REGEXP_ALPHA = /^[a-zA-Z]+$/;\nexport function isStringAlpha(str) {\n return CONST_REGEXP_ALPHA.test(str);\n}\nconst CONST_REGEXP_ALPHANUMERIC = /^[a-zA-Z0-9]+$/;\nexport function isStringAlphaNumeric(str) {\n return CONST_REGEXP_ALPHANUMERIC.test(str);\n}\n\nconst CONST_REGEXP_NUMERIC = /^[0-9]+$/;\nexport function isStringNumeric(str) {\n return CONST_REGEXP_NUMERIC.test(str);\n}\n\nconst CONST_REGEXP_HEXADECIMAL = /^[a-fA-F0-9]+$/;\nexport function isStringHexaDecimal(str) {\n return CONST_REGEXP_HEXADECIMAL.test(str);\n}\n\nconst CONST_REGEXP_HEXCOLOR = /^#(?:[0-9a-f]{3}){1,2}\\b$/i;\nexport function isStringHexColor(str) {\n return CONST_REGEXP_HEXCOLOR.test(str);\n}\n//#endregion\n\n//#region Identifier Tests\nconst CONST_REGEXP_UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nexport function isStringUUID(str) {\n // uuid: http://tools.ietf.org/html/rfc4122\n return CONST_REGEXP_UUID.test(str);\n}\n\nconst CONST_REGEXP_GUID = /^({)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nexport function isStringGUID(str) {\n return CONST_REGEXP_GUID.test(str);\n}\n\nconst CONST_REGEXP_IDENTIFIER = /^[_a-zA-Z]+\\w{0,30}$/;\nexport function isStringIdentifier(str) {\n return /* str != null && */ CONST_REGEXP_IDENTIFIER.test(str);\n}\n\nconst CONST_REGEXP_HTML_IDENTIFIER = /^[A-Za-z]+[\\w\\-\\:\\.]{0,30}$/;\nexport function isStringHtmlIdentifier(str) {\n return /* str != null && */ CONST_REGEXP_HTML_IDENTIFIER.test(str);\n}\n\nconst CONST_REGEXP_CSS_IDENTIFIER = /^-?[_a-zA-Z]+[\\w-]{0,30}$/;\nexport function isStringCssIdentifier(str) {\n return /* str != null && */ CONST_REGEXP_CSS_IDENTIFIER.test(str);\n}\n//#endregion\n\n//#region Host Tests\nconst CONST_REGEXP_MAC_ADDR = /^(?:[0-9A-Fa-f]{2}([:-]?)[0-9A-Fa-f]{2})(?:(?:\\1|\\.)(?:[0-9A-Fa-f]{2}([:-]?)[0-9A-Fa-f]{2})){2}$/;\nexport function isStringMACAddr(str) {\n return CONST_REGEXP_MAC_ADDR.test(str);\n}\n\nconst CONST_REGEXP_IPV4 = /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/;\nexport function isStringIPv4(str) {\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n return CONST_REGEXP_IPV4.test(str);\n}\n\nconst CONST_REGEXP_IPV6 = /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i;\nexport function isStringIPv6(str) {\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n return CONST_REGEXP_IPV6.test(str);\n}\n\nconst CONST_REGEXP_HOSTNAME = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i;\nexport function isStringHostname(str) {\n // https://tools.ietf.org/html/rfc1034#section-3.5\n // https://tools.ietf.org/html/rfc1123#section-2\n return str.length <= 255 && CONST_REGEXP_HOSTNAME.test(str);\n}\n\nconst CONST_REGEXP_ACEHOSTNAME = /^(?!-)(xn--)?[a-zA-Z0-9][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9]{0,1}\\.(?!-)(xn--)?([a-zA-Z0-9\\-]{1,50}|[a-zA-Z0-9-]{1,30}\\.[a-zA-Z]{2,})$/;\nexport function isStringIdnHostname(str) {\n // https://stackoverflow.com/questions/47514123/domain-name-regex-including-idn-characters-c-sharp\n const punycode = toASCII(str);\n return CONST_REGEXP_ACEHOSTNAME.test(punycode);\n}\n//#endregion\n\n//#region URL Tests\nconst CONST_REGEXP_URL = /^[(http(s)?):\\/\\/(www\\.)?\\w-/=#%&\\.\\?]{2,}\\.[a-z]{2,}([\\w-/=#%&\\.\\?]*)$/i;\nexport function isStringUrl(str) {\n return CONST_REGEXP_URL.test(str);\n}\n\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\n// eslint-disable-next-line no-control-regex\nconst CONST_REGEXP_URL_FULL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nexport function isStringUrlFull(str) {\n return CONST_REGEXP_URL_FULL.test(str);\n}\n//#endregion\n\n//#region URI Tests\nconst CONST_REGEXP_NOT_URI_FRAGMENT = /\\/|:/;\n// uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\nconst CONST_REGEXP_URI_FAST = /^(?:[a-z][a-z0-9+-.]*:)(?:\\/?\\/)?[^\\s]*$/i;\nexport function isStringUri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return CONST_REGEXP_NOT_URI_FRAGMENT.test(str)\n && CONST_REGEXP_URI_FAST.test(str);\n}\n\n// uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\nconst CONST_REGEXP_URI_FULL = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nexport function isStringUriFull(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return CONST_REGEXP_NOT_URI_FRAGMENT.test(str)\n && CONST_REGEXP_URI_FULL.test(str);\n}\n\nconst CONST_REGEXP_URIREF_FAST = /^(?:(?:[a-z][a-z0-9+-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i;\nexport function isStringUriRef(str) {\n return CONST_REGEXP_URIREF_FAST.test(str);\n}\n\nconst CONST_REGEXP_URIREF_FULL = /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nexport function isStringUriRefFull(str) {\n return CONST_REGEXP_URIREF_FULL.test(str);\n}\n\n// uri-template: https://tools.ietf.org/html/rfc6570\n// eslint-disable-next-line no-control-regex\nconst CONST_REGEXP_URITEMPLATE = /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\nexport function isStringUriTemplate(str) {\n return CONST_REGEXP_URITEMPLATE.test(str);\n}\n//#endregion\n\n//#region IRI Tests\nconst CONST_REGEXP_ABSOLUTE_IRI = /^([a-z]([a-z]|\\d|\\+|-|\\.)*):(\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?((\\[(|(v[\\da-f]{1,}\\.(([a-z]|\\d|-|\\.|_|~)|[!\\$&'\\(\\)\\*\\+,;=]|:)+))\\])|((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=])*)(:\\d*)?)(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*|(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)|((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)|((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)){0})(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i;\nexport function isStringIRI(str) {\n return CONST_REGEXP_ABSOLUTE_IRI.test(str);\n}\n\nexport function isStringIRIRef(str) {\n return isStringUriRef(str);\n}\n//#endregion\n\n//#region JPtr Tests\n// JSON-pointer: https://tools.ietf.org/html/rfc6901\nconst CONST_REGEXP_JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nexport function isStringJSONPointer(str) {\n return CONST_REGEXP_JSON_POINTER.test(str);\n}\n\n// uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\nconst CONST_REGEXP_JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nexport function isStringJSONPointerUriFragment(str) {\n return CONST_REGEXP_JSON_POINTER_URI_FRAGMENT.test(str);\n}\n\n// relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\nconst CONST_REGEXP_RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\nexport function isStringRelativeJSONPointer(str) {\n return CONST_REGEXP_RELATIVE_JSON_POINTER.test(str);\n}\n//#endregion\n\n//#region Email Tests\n// email (sources from jsen validator):\n// http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n// http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\nconst CONST_REGEXP_EMAIL_FAST = /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i;\nexport function isStringEmail(str) {\n return CONST_REGEXP_EMAIL_FAST.test(str);\n}\n\nconst CONST_REGEXP_EMAIL_FULL = /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;\nexport function isStringEmailFull(str) {\n return CONST_REGEXP_EMAIL_FULL.test(str);\n}\n\nconst CONST_REGEXP_IDNEMAIL = /^[^@]+@[^@]+\\.[^@]+$/;\nexport function isStringIdnEmail(str) {\n return CONST_REGEXP_IDNEMAIL.test(str);\n}\n//#endregion\n\n//#region Common Tests\nconst CONST_REGPEXP_ISBN10 = /^(?:ISBN(?:-10)?:?\\ *((?=\\d{1,5}([ -]?)\\d{1,7}\\2?\\d{1,6}\\2?\\d)(?:\\d\\2*){9}[\\dX]))$/i;\nexport function isStringISBN10(str) {\n return CONST_REGPEXP_ISBN10.test(str);\n}\n\nconst CONST_REGEXP_ISBN13 = /^(?:ISBN(?:-13)?:?\\ *(97(?:8|9)([ -]?)(?=\\d{1,5}\\2?\\d{1,7}\\2?\\d{1,6}\\2?\\d)(?:\\d\\2*){9}\\d))$/i;\nexport function isStringISBN13(str) {\n return CONST_REGEXP_ISBN13.test(str);\n}\n\nconst CONST_REGEXP_BASE64 = /^(?:[a-zA-Z0-9+\\/]{4})*(?:|(?:[a-zA-Z0-9+\\/]{3}=)|(?:[a-zA-Z0-9+\\/]{2}==)|(?:[a-zA-Z0-9+\\/]{1}===))$/;\nexport function isStringBase64(str) {\n return CONST_REGEXP_BASE64.test(str);\n}\n\nconst CONST_REGEXP_COUNTRY_ALPHA2 = /^(AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW|XK)/i;\nexport function isStringCountryAlpha2(str) {\n return CONST_REGEXP_COUNTRY_ALPHA2.test(str);\n}\n\nconst CONST_REGEXP_IBAN = /^([A-Z]{2}[ '+'\\\\\\\\'+'-]?[0-9]{2})(?=(?:[ '+'\\\\\\\\'+'-]?[A-Z0-9]){9,30}\\$)((?:[ '+'\\\\\\\\'+'-]?[A-Z0-9]{3,5}){2,7})([ '+'\\\\\\\\'+'-]?[A-Z0-9]{1,3})?\\$/i;\nexport function isStringIBAN(str) {\n return CONST_REGEXP_IBAN.test(str);\n}\n//#endregion\n", "//@ts-check\n// eslint-disable no-useless-escape\n\nimport {\n isStringType,\n} from '@jarenjs/core';\n\nimport {\n isStringLowerCase,\n isStringUpperCase,\n isStringRegExp,\n} from '@jarenjs/core/string';\n\nimport {\n isStringUri,\n isStringUriRef,\n isStringUriTemplate,\n isStringJSONPointer,\n isStringJSONPointerUriFragment,\n isStringRelativeJSONPointer,\n isStringUrl,\n isStringEmail,\n isStringHostname,\n isStringIdnEmail,\n isStringIdnHostname,\n isStringIPv4,\n isStringIPv6,\n isStringUUID,\n isStringAlpha,\n isStringAlphaNumeric,\n isStringIdentifier,\n isStringHtmlIdentifier,\n isStringCssIdentifier,\n isStringHexaDecimal,\n isStringNumeric,\n isStringIRI,\n isStringIRIRef,\n isStringHexColor,\n isStringUriFull,\n isStringUriRefFull,\n isStringEmailFull,\n isStringGUID,\n isStringISBN10,\n isStringISBN13,\n isStringMACAddr,\n isStringBase64,\n isStringCountryAlpha2,\n isStringIBAN,\n} from '@jarenjs/strings';\n\nfunction createStringFormatCompiler(formatName, isFormatTest) {\n return function compileStringFormat(schemaObj, jsonSchema) {\n if (jsonSchema.format !== formatName)\n throw new Error('Format is not equal to jsonSchema (should not happen!)');\n\n const addError = schemaObj.createErrorHandler(formatName, 'format', isFormatTest.constructor.name);\n\n return function validateStringFormat(data, dataPath) {\n return isStringType(data)\n ? isFormatTest(data) || addError(data, dataPath)\n : true;\n };\n };\n}\n\nexport const formatValidators = {\n 'alpha': createStringFormatCompiler('alpha', isStringAlpha),\n 'alphanumeric': createStringFormatCompiler('alphanumeric', isStringAlphaNumeric),\n 'identifier': createStringFormatCompiler('identifier', isStringIdentifier),\n 'html-identifier': createStringFormatCompiler('html-identifier', isStringHtmlIdentifier),\n 'css-identifier': createStringFormatCompiler('css-identifier', isStringCssIdentifier),\n 'hexadecimal': createStringFormatCompiler('hexadecimal', isStringHexaDecimal),\n 'numeric': createStringFormatCompiler('numeric', isStringNumeric),\n 'uppercase': createStringFormatCompiler('uppercase', isStringUpperCase),\n 'lowercase': createStringFormatCompiler('lowercase', isStringLowerCase),\n 'color': createStringFormatCompiler('color', isStringHexColor),\n 'regex': createStringFormatCompiler('regex', isStringRegExp),\n 'uri': createStringFormatCompiler('uri', isStringUri),\n 'uri--full': createStringFormatCompiler('uri--full', isStringUriFull),\n 'uri-reference': createStringFormatCompiler('uri-reference', isStringUriRef),\n 'uri-reference--full': createStringFormatCompiler('uri-reference--full', isStringUriRefFull),\n 'uri-template': createStringFormatCompiler('uri-template', isStringUriTemplate),\n 'url': createStringFormatCompiler('url', isStringUrl),\n 'url--full': createStringFormatCompiler('url--full', isStringUrl),\n 'email': createStringFormatCompiler('email', isStringEmail),\n 'email--full': createStringFormatCompiler('email--full', isStringEmailFull),\n 'hostname': createStringFormatCompiler('hostname', isStringHostname),\n 'idn-email': createStringFormatCompiler('idn-email', isStringIdnEmail),\n 'idn-hostname': createStringFormatCompiler('idn-hostname', isStringIdnHostname),\n 'ipv4': createStringFormatCompiler('ipv4', isStringIPv4),\n 'ipv6': createStringFormatCompiler('ipv6', isStringIPv6),\n 'uuid': createStringFormatCompiler('uuid', isStringUUID),\n 'guid': createStringFormatCompiler('guid', isStringGUID),\n 'json-pointer': createStringFormatCompiler('json-pointer', isStringJSONPointer),\n 'json-pointer-uri-fragment': createStringFormatCompiler('json-pointer-uri-fragment', isStringJSONPointerUriFragment),\n 'relative-json-pointer': createStringFormatCompiler('relative-json-pointer', isStringRelativeJSONPointer),\n 'iri': createStringFormatCompiler('iri', isStringIRI),\n 'iri-reference': createStringFormatCompiler('iri-reference', isStringIRIRef),\n 'isbn10': createStringFormatCompiler('isbn10', isStringISBN10),\n 'isbn13': createStringFormatCompiler('isbn13', isStringISBN13),\n 'mac': createStringFormatCompiler('mac', isStringMACAddr),\n 'base64': createStringFormatCompiler('base64', isStringBase64),\n 'byte': createStringFormatCompiler('byte', isStringBase64),\n 'country2': createStringFormatCompiler('country2', isStringCountryAlpha2),\n 'iban': createStringFormatCompiler('iban', isStringIBAN),\n};\n", "//@ts-check\n\nimport {\n isIntegerType,\n} from '@jarenjs/core';\n\nexport const INT8_MIN = -128;\nexport const INT8_MAX = 127;\n\nexport function isValidInt8(value) {\n return isIntegerType(value)\n && value >= INT8_MIN\n && value <= INT8_MAX;\n}\n\nexport const UINT8_MIN = 0;\nexport const UINT8_MAX = 255;\n\nexport function isValidUInt8(value) {\n return isIntegerType(value)\n && value >= UINT8_MIN\n && value <= UINT8_MAX;\n}\n\nexport const INT16_MIN = -32768;\nexport const INT16_MAX = 32767;\n\nexport function isValidInt16(value) {\n return isIntegerType(value)\n && value >= INT16_MIN\n && value <= INT16_MAX;\n}\n\nexport const UINT16_MIN = 0;\nexport const UINT16_MAX = 65535;\n\nexport function isValidUInt16(value) {\n return isIntegerType(value)\n && value >= UINT16_MIN\n && value <= UINT16_MAX;\n}\n\nexport const INT32_MIN = -(2 ** 31);\nexport const INT32_MAX = (2 ** 31) - 1;\n\nexport function isValidInt32(value) {\n return isIntegerType(value)\n && value >= INT32_MIN\n && value <= INT32_MAX;\n}\n\nexport const UINT32_MIN = 0;\nexport const UINT32_MAX = (2 ** 32) - 1;\n\nexport function isValidUInt32(value) {\n return isIntegerType(value)\n && value >= UINT32_MIN\n && value <= UINT32_MAX;\n}\n\nexport const INT64_MIN = Number.MIN_SAFE_INTEGER;\nexport const INT64_MAX = Number.MAX_SAFE_INTEGER;\n\nexport function isValidInt64(value) {\n return isIntegerType(value)\n && value >= INT64_MIN\n && value <= INT64_MAX;\n}\n\nexport const UINT64_MIN = 0;\nexport const UINT64_MAX = Number.MAX_SAFE_INTEGER;\n\nexport function isValidUInt64(value) {\n return isIntegerType(value)\n && value >= UINT64_MIN\n && value <= UINT64_MAX;\n}\n", "//@ts-check\n\nimport {\n isNumberType,\n} from '@jarenjs/core';\n\nexport const FLOAT16_MAX = 65504.0;\nexport const FLOAT16_MIN = 0.00006103515625;\nexport const FLOAT16_EPS = 0.0009765625;\nexport const FLOAT16_EXBITS = 5;\nexport const FLOAT16_FRBITS = 10;\n\nexport function isValidFloat16(value) {\n return isNumberType(value)\n && !Number.isNaN(value)\n && value >= -FLOAT16_MAX\n && value <= FLOAT16_MAX;\n}\n\nexport function getValidFloat16(value, defVal = NaN) {\n if (!isNumberType(value) /* TODO: do we need this? */\n || Number.isNaN(value)) return defVal;\n if (value < -FLOAT16_MAX) return -Infinity;\n if (value > FLOAT16_MAX) return Infinity;\n return value;\n}\n\nexport function Float16_increment(value) {\n const next = value + 2 ** (Math.log2(value) - 11);\n return (next > FLOAT16_MAX)\n ? Infinity\n : next;\n}\n\nexport function Float16_decrement(value) {\n const next = value - 2 ** (Math.log2(value) - 11);\n return (next < -FLOAT16_MAX)\n ? -Infinity\n : next;\n}\n\nexport const FLOAT32_MAX = 3.4028234663852886e+38;\nexport const FLOAT32_MIN = 1.1754943508222875e-38;\nexport const FLOAT32_EPS = 1.1920928955078125e-7;\nexport const FLOAT32_EXBITS = 8;\nexport const FLOAT32_FRBITS = 23;\n\nexport function isValidFloat32(value) {\n return isNumberType(value)\n && !Number.isNaN(value)\n && value >= -FLOAT32_MAX\n && value <= FLOAT32_MAX;\n}\n\nexport function getValidFloat32(value, defVal = NaN) {\n if (!isNumberType(value) || Number.isNaN(value)) return defVal;\n if (value < -FLOAT32_MAX) return -Infinity;\n if (value > FLOAT32_MAX) return Infinity;\n return value;\n}\n\nexport function Float32_increment(value) {\n const next = value + 2 ** (Math.log2(value) - 24);\n return (next > FLOAT32_MAX)\n ? Infinity\n : next;\n}\n\nexport function Float32_decrement(value) {\n const next = value - 2 ** (Math.log2(value) - 24);\n return (next < -FLOAT32_MAX)\n ? -Infinity\n : next;\n}\n\nexport const FLOAT64_MAX = Number.MAX_VALUE;\nexport const FLOAT64_MIN = Number.MIN_VALUE;\nexport const FLOAT64_EPS = Number.EPSILON;\nexport const FLOAT64_EXBITS = 11;\nexport const FLOAT64_FRBITS = 52;\n\nexport function isValidFloat64(value) {\n return isNumberType(value)\n && !Number.isNaN(value)\n && value >= -FLOAT64_MAX\n && value <= FLOAT64_MAX;\n}\n\nexport function getValidFloat64(value, defVal = NaN) {\n return isNumberType(value)\n ? value\n : defVal;\n}\n\nexport function Float64_increment(value) {\n return value + 2 ** (Math.log2(value) - 53);\n}\n\nexport function Float64_decrement(value) {\n return value - 2 ** (Math.log2(value) - 53);\n}\n\nexport const FLOAT128_MAX = 0.0;\nexport const FLOAT128_MIN = 0.0;\nexport const FLOAT128_EPS = 0.0;\nexport const FLOAT128_EXBITS = 15;\nexport const FLOAT128_FRBITS = 112;\n", "//@ts-check\n\nimport {\n isValidInt8,\n isValidInt16,\n isValidInt32,\n isValidInt64,\n isValidUInt8,\n isValidUInt16,\n isValidUInt32,\n isValidUInt64,\n} from '@jarenjs/numbers/integer';\n\nimport {\n isValidFloat16,\n isValidFloat32,\n isValidFloat64,\n} from '@jarenjs/numbers/float';\n\nfunction createNumberFormatCompiler(formatName, isNumberTest, strictFormat = false) {\n return function compileNumberFormat(schemaObj, jsonSchema) {\n if (jsonSchema.format !== formatName)\n throw new Error('Format is not equal to jsonSchema (should not happen!)');\n\n const addError = schemaObj.createErrorHandler(formatName, 'format');\n\n if (strictFormat === true)\n return function validateNumberStrictFormat(data, dataPath) {\n return data == null\n || isNumberTest(data)\n || addError(data, dataPath);\n };\n else\n return function validateNumberFormat(data, dataPath) {\n return (data == null\n || isNumberTest(Number(data))\n || addError(data, dataPath));\n };\n };\n}\n\nexport const formatValidators = {\n // integer types\n int8: createNumberFormatCompiler('int8', isValidInt8),\n uint8: createNumberFormatCompiler('uint8', isValidUInt8),\n int16: createNumberFormatCompiler('int16', isValidInt16),\n uint16: createNumberFormatCompiler('uint16', isValidUInt16),\n int32: createNumberFormatCompiler('int32', isValidInt32),\n uint32: createNumberFormatCompiler('uint32', isValidUInt32),\n int64: createNumberFormatCompiler('int64', isValidInt64),\n uint64: createNumberFormatCompiler('uint64', isValidUInt64),\n // floating point types\n float16: createNumberFormatCompiler('float16', isValidFloat16),\n float32: createNumberFormatCompiler('float32', isValidFloat32),\n float64: createNumberFormatCompiler('float64', isValidFloat64),\n float: createNumberFormatCompiler('float', isValidFloat32),\n double: createNumberFormatCompiler('double', isValidFloat64),\n};\n"],
|
|
5
|
+
"mappings": "AAuBO,SAASA,EAAaC,EAAM,CACjC,OAAO,OAAOA,GAAS,QACzB,CAgBO,SAASC,EAAaC,EAAM,CACjC,OAAOA,GAAQ,MAAQ,OAAOA,GAAS,QACzC,CAOO,SAASC,EAAcD,EAAM,CAClC,OAAO,OAAO,UAAUA,CAAI,CAC9B,CAiFO,SAASE,EAAgBC,EAAMC,EAAM,CAC1C,OAAOD,GAAQ,MAAQA,EAAK,cAAgBC,CAC9C,CAoDO,IAAMC,GAAa,OAAO,eAAe,UAAU,EA2BnD,SAASC,EAA4BC,EAASC,EAAWC,EAAW,CACzE,IAAMC,EAAWH,EAAQC,CAAS,EAC5BG,EAAWF,IAAc,GAC3BC,EACAH,EAAQE,CAAS,EACrB,OAAQE,IAAa,OACjB,CAACD,EAAU,MAAS,EACpB,CAAC,OAAWC,CAAQ,CAC1B,CCtNO,IAAMC,GAAqB,IACrBC,GAAmBD,GAAqB,GAAK,GAC7CE,GAAkBD,GAAmB,GAErCE,GAAwB,cAG9B,IAAMC,GAAqB,OAAO,OACvC,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,CACpD,EAGaC,GAA6B,sCAG7BC,GAA6B,+DAKnC,SAASC,EAAWC,EAAM,CAC/B,OAAOC,EAAgBD,EAAM,IAAI,CACnC,CAOO,SAASE,GAAWC,EAAM,CAE/B,OAAOA,EAAO,IAAM,IAAMA,EAAO,MAAQ,GAAKA,EAAO,MAAQ,EAC/D,CAEO,SAASC,GAAkBD,EAAO,EAAGE,EAAQ,EAAGC,EAAM,EAAG,CAC9D,OAAOD,GAAS,GACXA,GAAS,IACTC,GAAO,GACPA,IAAQD,IAAU,GAAKH,GAAWC,CAAI,EACrC,GACAI,GAAmBF,CAAK,EAChC,CAEO,SAASG,EAAkBC,EAAK,CACrC,GAAI,CAACC,EAAaD,CAAG,EACnB,MAAO,GAET,IAAME,EAAIF,EAAI,MAAMG,EAA0B,EAC9C,GAAID,GAAK,KACP,MAAO,GAET,IAAME,EAAI,SAASF,EAAE,CAAC,EAAG,EAAE,EAAI,EACzBG,EAAI,SAASH,EAAE,CAAC,EAAG,EAAE,EAAI,EACzBI,EAAI,SAASJ,EAAE,CAAC,EAAG,EAAE,EAAI,EAC/B,OAAOP,GAAkBS,EAAGC,EAAGC,CAAC,CAClC,CAEO,SAASC,GAAkBC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAG,CAC7E,OAASJ,IAAQ,IAAMC,IAAQ,IAAMC,IAAQ,IACvCF,GAAO,GAAKA,GAAO,IAClBC,GAAO,GAAKA,GAAO,IACnBC,GAAO,GAAKA,GAAO,KACpBC,GAAO,GAAKA,GAAO,IAClBC,GAAO,GAAKA,GAAO,EAC5B,CAEO,SAASC,EAAkBb,EAAK,CACrC,GAAI,CAACC,EAAaD,CAAG,EACnB,MAAO,GAET,IAAME,EAAIF,EAAI,MAAMc,EAA0B,EAC9C,GAAIZ,GAAK,KACP,MAAO,GAET,IAAMa,EAAI,SAASb,EAAE,CAAC,EAAG,EAAE,EAAI,EACzBG,EAAI,SAASH,EAAE,CAAC,EAAG,EAAE,EAAI,EACzBc,EAAI,SAASd,EAAE,CAAC,EAAG,EAAE,EAAI,EACzBe,EAAK,SAASf,EAAE,CAAC,EAAG,EAAE,EAAI,EAC1BgB,EAAK,SAAShB,EAAE,CAAC,EAAG,EAAE,EAAI,EAChC,OAAOK,GAAkBQ,EAAGV,EAAGW,EAAGC,EAAIC,CAAE,CAC1C,CAEO,SAASC,GAAkBnB,EAAK,CAErC,GAAI,CAACC,EAAaD,CAAG,EAAG,MAAO,GAC/B,IAAMoB,EAAWpB,EAAI,MAAM,OAAO,EAClC,OAAOoB,EAAS,SAAW,GACtBrB,EAAkBqB,EAAS,CAAC,CAAC,GAC7BP,EAAkBO,EAAS,CAAC,CAAC,CACpC,CAKO,SAASC,EAA6BrB,EAAKsB,EAAM,OAAW,CACjE,OAAOvB,EAAkBC,CAAG,EACxB,IAAI,KAAK,KAAK,MAAMA,CAAG,CAAC,EACxBsB,CACN,CAEO,SAASC,EAA6BvB,EAAKsB,EAAM,OAAW,CACjE,OAAOT,EAAkBb,CAAG,EACxB,IAAI,KAAK,KAAK,MAAMwB,GAAwBxB,CAAG,CAAC,EAChDsB,CACN,CAEO,SAASG,EAA6BzB,EAAKsB,EAAM,OAAW,CACjE,OAAOH,GAAkBnB,CAAG,EACxB,IAAI,KAAK,KAAK,MAAMA,CAAG,CAAC,EACxBsB,CACN,CCvGA,SAASI,GAA2BC,EAAWC,EAAWC,EAAY,CACpE,GAAM,CAACC,EAAKC,CAAI,EAAIC,EAClBL,EACAE,EAAW,cACXA,EAAW,sBACb,EAEA,GAAIE,GAAQ,KAAM,CAChB,IAAME,EAAWL,EAAU,mBAAmBG,EAAM,wBAAwB,EAE5E,OAAO,SAAkCG,EAAMC,EAAU,CACvD,OAAOD,EAAOH,GACTE,EAASC,EAAMC,CAAQ,CAC9B,CACF,SACSL,EAAK,CACZ,IAAMG,EAAWL,EAAU,mBAAmBE,EAAK,eAAe,EAElE,OAAO,SAAyBI,EAAMC,EAAU,CAC9C,OAAOD,GAAQJ,GACVG,EAASC,EAAMC,CAAQ,CAC9B,CACF,CAGF,CAEA,SAASC,GAA2BT,EAAWC,EAAWC,EAAY,CACpE,GAAM,CAACQ,EAAKC,CAAI,EAAIN,EAClBL,EACAE,EAAW,cACXA,EAAW,sBACb,EAEA,GAAIS,GAAQ,KAAM,CAChB,IAAML,EAAWL,EAAU,mBAAmBU,EAAM,wBAAwB,EAE5E,OAAO,SAAkCJ,EAAMC,EAAU,CACvD,OAAOD,EAAOI,GACTL,EAASC,EAAMC,CAAQ,CAC9B,CACF,SACSE,GAAO,KAAM,CACpB,IAAMJ,EAAWL,EAAU,mBAAmBS,EAAK,eAAe,EAElE,OAAO,SAAyBH,EAAMC,EAAU,CAC9C,OAAOD,GAAQG,GACVJ,EAASC,EAAMC,CAAQ,CAC9B,CACF,CAGF,CAEA,SAASI,EAAoBC,EAAMb,EAAWC,EAAWC,EAAY,CACnE,GAAIA,EAAW,SAAWW,EACxB,MAAM,IAAI,MAAM,gCAAgC,EAElD,IAAMP,EAAWL,EAAU,mBAAmBC,EAAW,OAAQ,QAAQ,EAEnEY,EAAcf,GAClBC,EACAC,EACAC,CACF,EAEMa,EAAcN,GAClBT,EACAC,EACAC,CACF,EAEA,OAAIY,GAAe,MAAQC,GAAe,KACjC,SAA+BC,EAAMR,EAAU,CACpD,GAAIS,EAAaD,CAAI,EAAG,CACtB,IAAMT,EAAOP,EAAUgB,CAAI,EAC3B,OAAOT,GAAQ,KACXD,EAASU,EAAMR,CAAQ,EACvBM,EAAYP,EAAMC,CAAQ,GACvBO,EAAYR,EAAMC,CAAQ,CACnC,KACK,QAAIU,EAAWF,CAAI,EACfF,EAAYE,EAAMR,CAAQ,GAC5BO,EAAYC,EAAMR,CAAQ,EAExB,EACX,EAEEM,GAAe,KACV,SAA+BE,EAAMR,EAAU,CACpD,GAAIS,EAAaD,CAAI,EAAG,CACtB,IAAMT,EAAOP,EAAUgB,CAAI,EAC3B,OAAOT,GAAQ,KACXD,EAASU,EAAMR,CAAQ,EACvBM,EAAYP,EAAMC,CAAQ,CAChC,KACK,QAAIU,EAAWF,CAAI,EACfF,EAAYE,EAAMR,CAAQ,EAE1B,EACX,EAEEO,GAAe,KACV,SAA+BC,EAAMR,EAAU,CACpD,GAAIS,EAAaD,CAAI,EAAG,CACtB,IAAMT,EAAOP,EAAUgB,CAAI,EAC3B,OAAOT,GAAQ,KACXD,EAASU,EAAMR,CAAQ,EACvBO,EAAYR,CAAI,CACtB,KACK,QAAIW,EAAWF,CAAI,EACfD,EAAYC,EAAMR,CAAQ,EAE1B,EACX,EAGK,SAA0BQ,EAAMR,EAAU,CAC/C,OAAIS,EAAaD,CAAI,GACNhB,EAAUgB,CAAI,GACZ,KACXV,EAASU,EAAMR,CAAQ,EAIpB,EACX,CACF,CAGA,SAASW,GAAsBlB,EAAWC,EAAY,CACpD,OAAOU,EACL,YACAQ,EACAnB,EACAC,CACF,CACF,CAEA,SAASmB,GAAsBpB,EAAWC,EAAY,CACpD,OAAOU,EACL,OACAU,EACArB,EACAC,CACF,CACF,CAEA,SAASqB,GAAsBtB,EAAWC,EAAY,CACpD,OAAOU,EACL,OACAY,EACAvB,EACAC,CACF,CACF,CAEO,IAAMuB,GAAmB,CAC9B,YAAaN,GACb,KAAME,GACN,KAAME,EACR,EChKO,SAASG,EAAkBC,EAAK,CACrC,OAAOA,IAAQA,EAAI,YAAY,CACjC,CAEO,SAASC,EAAkBD,EAAK,CACrC,OAAOA,IAAQA,EAAI,YAAY,CACjC,CAEO,SAASE,GAAaC,EAAM,CACjC,OAAOC,EAAgBD,EAAM,MAAM,CACrC,CAEO,SAASE,EAAeL,EAAK,CAClC,GAAI,CACF,OAAOM,GAAaN,CAAG,GAAK,IAC9B,MAEU,CACR,MAAO,EACT,CACF,CAEO,SAASM,GAAaC,EAAS,CACpC,GAAIA,GAAW,KAGf,IAAIL,GAAaK,CAAO,EACtB,OAAOA,EAET,GAAIC,EAAaD,CAAO,EACtB,GAAIA,EAAQ,CAAC,IAAM,IAAK,CACtB,IAAME,EAAIF,EAAQ,YAAY,GAAG,EACjC,GAAIE,GAAK,EAAG,CACV,IAAM,EAAIF,EAAQ,UAAU,EAAGE,CAAC,EAC1BC,EAAIH,EAAQ,UAAUE,EAAI,CAAC,EACjC,OAAO,IAAI,OAAO,EAAGC,CAAC,CACxB,CACF,KAEE,QAAO,IAAI,OAAOH,CAAO,EAG7B,MAAM,IAAI,MAAM,4CAA4CA,CAAO,EAAE,EACvE,CC1CA,IAAMI,GAAY,IAIlB,IAAMC,GAAgB,aAChBC,GAAkB,4BAGlBC,GAAS,CACb,SAAY,kDACZ,YAAa,iDACb,gBAAiB,eACnB,EAGMC,EAAgB,GAChBC,EAAQ,KAAK,MACbC,EAAqB,OAAO,aAUlC,SAASC,EAAMC,EAAM,CACnB,MAAM,IAAI,WAAWL,GAAOK,CAAI,CAAC,CACnC,CAUA,SAASC,GAAIC,EAAOC,EAAI,CACtB,IAAMC,EAAS,CAAC,EACZC,EAASH,EAAM,OACnB,KAAOG,KACLD,EAAOC,CAAM,EAAIF,EAAGD,EAAMG,CAAM,CAAC,EAEnC,OAAOD,CACT,CAYA,SAASE,GAAUC,EAAQJ,EAAI,CAC7B,IAAMK,EAAQD,EAAO,MAAM,GAAG,EAC1BH,EAAS,GACTI,EAAM,OAAS,IAGjBJ,EAASI,EAAM,CAAC,EAAI,IACpBD,EAASC,EAAM,CAAC,GAGlBD,EAASA,EAAO,QAAQb,GAAiB,GAAM,EAC/C,IAAMe,EAASF,EAAO,MAAM,GAAG,EACzBG,EAAUT,GAAIQ,EAAQN,CAAE,EAAE,KAAK,GAAG,EACxC,OAAOC,EAASM,CAClB,CAeO,SAASC,GAAWC,EAAQ,CACjC,IAAMC,EAAS,CAAC,EACZC,EAAU,EACRT,EAASO,EAAO,OACtB,KAAOE,EAAUT,GAAQ,CACvB,IAAMU,EAAQH,EAAO,WAAWE,GAAS,EACzC,GAAIC,GAAS,OAAUA,GAAS,OAAUD,EAAUT,EAAQ,CAE1D,IAAMW,EAAQJ,EAAO,WAAWE,GAAS,GACpCE,EAAQ,SAAY,MACvBH,EAAO,OAAOE,EAAQ,OAAU,KAAOC,EAAQ,MAAS,KAAO,GAI/DH,EAAO,KAAKE,CAAK,EACjBD,IAEJ,MACED,EAAO,KAAKE,CAAK,CAErB,CACA,OAAOF,CACT,CA6CO,SAASI,EAAaC,EAAOC,EAAM,CAGxC,OAAOD,EAAQ,GAAK,IAAMA,EAAQ,MAAQC,IAAS,IAAM,EAC3D,CAOA,SAASC,GAAMC,EAAOC,EAAWC,EAAW,CAC1C,IAAIC,EAAI,EAGR,IAFAH,EAAQE,EAAYE,EAAMJ,EAAQ,GAAI,EAAIA,GAAS,EACnDA,GAASI,EAAMJ,EAAQC,CAAS,EACFD,EAAQK,EAAgB,IAAQ,EAAGF,GAAK,GACpEH,EAAQI,EAAMJ,EAAQK,CAAa,EAErC,OAAOD,EAAMD,GAAKE,EAAgB,GAAKL,GAASA,EAAQ,GAAK,CAC/D,CA8FO,SAASM,GAAOC,EAAK,CAC1B,IAAMC,EAAS,CAAC,EAGVC,EAAQC,GAAWH,CAAG,EAGtBI,EAAcF,EAAM,OAGtBG,EAAI,IACJC,EAAQ,EACRC,EAAO,GAGX,QAAWC,KAAgBN,EACrBM,EAAe,KACjBP,EAAO,KAAKQ,EAAmBD,CAAY,CAAC,EAIhD,IAAME,EAAcT,EAAO,OACvBU,EAAiBD,EAWrB,IALIA,GACFT,EAAO,KAAKW,EAAS,EAIhBD,EAAiBP,GAAa,CAGnC,IAAIS,EAAI,WACR,QAAWL,KAAgBN,EACrBM,GAAgBH,GAAKG,EAAeK,IACtCA,EAAIL,GAMR,IAAMM,EAAwBH,EAAiB,EAC3CE,EAAIR,EAAIU,GAAO,WAAST,GAASQ,CAAqB,GACxDE,EAAM,UAAU,EAGlBV,IAAUO,EAAIR,GAAKS,EACnBT,EAAIQ,EAEJ,QAAWL,KAAgBN,EAIzB,GAHIM,EAAeH,GAAK,EAAEC,EAAQ,YAChCU,EAAM,UAAU,EAEdR,IAAiBH,EAAG,CAEtB,IAAIY,EAAIX,EACR,QAASY,EAAI,IAA0BA,GAAK,GAAM,CAChD,IAAMC,EAAID,GAAKX,EAAO,EAAQW,GAAKX,EAAO,GAAO,GAAOW,EAAIX,EAC5D,GAAIU,EAAIE,EACN,MAEF,IAAMC,EAAUH,EAAIE,EACdE,EAAa,GAAOF,EAC1BlB,EAAO,KACLQ,EAAmBa,EAAaH,EAAIC,EAAUC,EAAY,CAAC,CAAC,CAC9D,EACAJ,EAAIF,EAAMK,EAAUC,CAAU,CAChC,CAEApB,EAAO,KAAKQ,EAAmBa,EAAaL,EAAG,CAAC,CAAC,CAAC,EAClDV,EAAOgB,GAAMjB,EAAOQ,EAAuBH,IAAmBD,CAAW,EACzEJ,EAAQ,EACR,EAAEK,CACJ,CAGF,EAAEL,EACF,EAAED,CACJ,CACA,OAAOJ,EAAO,KAAK,EAAE,CACvB,CAgCO,SAASuB,EAAQC,EAAO,CAC7B,OAAOC,GAAUD,EAAO,SAA0BE,EAAQ,CACxD,OAAOC,GAAc,KAAKD,CAAM,EAC5B,OAASE,GAAOF,CAAM,EACtBA,CACN,CAAC,CACH,CC7YA,IAAMG,GAAqB,cACpB,SAASC,EAAcC,EAAK,CACjC,OAAOF,GAAmB,KAAKE,CAAG,CACpC,CACA,IAAMC,GAA4B,iBAC3B,SAASC,EAAqBF,EAAK,CACxC,OAAOC,GAA0B,KAAKD,CAAG,CAC3C,CAEA,IAAMG,GAAuB,WACtB,SAASC,EAAgBJ,EAAK,CACnC,OAAOG,GAAqB,KAAKH,CAAG,CACtC,CAEA,IAAMK,GAA2B,iBAC1B,SAASC,EAAoBN,EAAK,CACvC,OAAOK,GAAyB,KAAKL,CAAG,CAC1C,CAEA,IAAMO,GAAwB,6BACvB,SAASC,EAAiBR,EAAK,CACpC,OAAOO,GAAsB,KAAKP,CAAG,CACvC,CAIA,IAAMS,GAAoB,+DACnB,SAASC,EAAaV,EAAK,CAEhC,OAAOS,GAAkB,KAAKT,CAAG,CACnC,CAEA,IAAMW,GAAoB,qDACnB,SAASC,EAAaZ,EAAK,CAChC,OAAOW,GAAkB,KAAKX,CAAG,CACnC,CAEA,IAAMa,GAA0B,uBACzB,SAASC,EAAmBd,EAAK,CACtC,OAA4Ba,GAAwB,KAAKb,CAAG,CAC9D,CAEA,IAAMe,GAA+B,8BAC9B,SAASC,EAAuBhB,EAAK,CAC1C,OAA4Be,GAA6B,KAAKf,CAAG,CACnE,CAEA,IAAMiB,GAA8B,4BAC7B,SAASC,GAAsBlB,EAAK,CACzC,OAA4BiB,GAA4B,KAAKjB,CAAG,CAClE,CAIA,IAAMmB,GAAwB,mGACvB,SAASC,GAAgBpB,EAAK,CACnC,OAAOmB,GAAsB,KAAKnB,CAAG,CACvC,CAEA,IAAMqB,GAAoB,4EACnB,SAASC,GAAatB,EAAK,CAEhC,OAAOqB,GAAkB,KAAKrB,CAAG,CACnC,CAEA,IAAMuB,GAAoB,qpCACnB,SAASC,GAAaxB,EAAK,CAEhC,OAAOuB,GAAkB,KAAKvB,CAAG,CACnC,CAEA,IAAMyB,GAAwB,qFACvB,SAASC,GAAiB1B,EAAK,CAGpC,OAAOA,EAAI,QAAU,KAAOyB,GAAsB,KAAKzB,CAAG,CAC5D,CAEA,IAAM2B,GAA2B,mIAC1B,SAASC,GAAoB5B,EAAK,CAEvC,IAAM6B,EAAWC,EAAQ9B,CAAG,EAC5B,OAAO2B,GAAyB,KAAKE,CAAQ,CAC/C,CAIA,IAAME,GAAmB,2EAClB,SAASC,EAAYhC,EAAK,CAC/B,OAAO+B,GAAiB,KAAK/B,CAAG,CAClC,CAcA,IAAMiC,GAAgC,OAEhCC,GAAwB,4CACvB,SAASC,GAAYC,EAAK,CAE/B,OAAOH,GAA8B,KAAKG,CAAG,GACxCF,GAAsB,KAAKE,CAAG,CACrC,CAGA,IAAMC,GAAwB,+nCACvB,SAASC,GAAgBF,EAAK,CAEnC,OAAOH,GAA8B,KAAKG,CAAG,GACxCC,GAAsB,KAAKD,CAAG,CACrC,CAEA,IAAMG,GAA2B,yEAC1B,SAASC,EAAeJ,EAAK,CAClC,OAAOG,GAAyB,KAAKH,CAAG,CAC1C,CAEA,IAAMK,GAA2B,yoCAC1B,SAASC,GAAmBN,EAAK,CACtC,OAAOK,GAAyB,KAAKL,CAAG,CAC1C,CAIA,IAAMO,GAA2B,oLAC1B,SAASC,GAAoBR,EAAK,CACvC,OAAOO,GAAyB,KAAKP,CAAG,CAC1C,CAIA,IAAMS,GAA4B,q0CAC3B,SAASC,GAAYV,EAAK,CAC/B,OAAOS,GAA0B,KAAKT,CAAG,CAC3C,CAEO,SAASW,GAAeX,EAAK,CAClC,OAAOI,EAAeJ,CAAG,CAC3B,CAKA,IAAMY,GAA4B,4BAC3B,SAASC,GAAoBb,EAAK,CACvC,OAAOY,GAA0B,KAAKZ,CAAG,CAC3C,CAGA,IAAMc,GAAyC,+DACxC,SAASC,GAA+Bf,EAAK,CAClD,OAAOc,GAAuC,KAAKd,CAAG,CACxD,CAGA,IAAMgB,GAAqC,mDACpC,SAASC,GAA4BjB,EAAK,CAC/C,OAAOgB,GAAmC,KAAKhB,CAAG,CACpD,CAOA,IAAMkB,GAA0B,mHACzB,SAASC,GAAcnB,EAAK,CACjC,OAAOkB,GAAwB,KAAKlB,CAAG,CACzC,CAEA,IAAMoB,GAA0B,2IACzB,SAASC,GAAkBrB,EAAK,CACrC,OAAOoB,GAAwB,KAAKpB,CAAG,CACzC,CAEA,IAAMsB,GAAwB,uBACvB,SAASC,GAAiBvB,EAAK,CACpC,OAAOsB,GAAsB,KAAKtB,CAAG,CACvC,CAIA,IAAMwB,GAAuB,sFACtB,SAASC,GAAezB,EAAK,CAClC,OAAOwB,GAAqB,KAAKxB,CAAG,CACtC,CAEA,IAAM0B,GAAsB,+FACrB,SAASC,GAAe3B,EAAK,CAClC,OAAO0B,GAAoB,KAAK1B,CAAG,CACrC,CAEA,IAAM4B,GAAsB,uGACrB,SAASC,EAAe7B,EAAK,CAClC,OAAO4B,GAAoB,KAAK5B,CAAG,CACrC,CAEA,IAAM8B,GAA8B,ovBAC7B,SAASC,GAAsB/B,EAAK,CACzC,OAAO8B,GAA4B,KAAK9B,CAAG,CAC7C,CAEA,IAAMgC,GAAoB,qJACnB,SAASC,GAAajC,EAAK,CAChC,OAAOgC,GAAkB,KAAKhC,CAAG,CACnC,CC7KA,SAASkC,EAA2BC,EAAYC,EAAc,CAC5D,OAAO,SAA6BC,EAAWC,EAAY,CACzD,GAAIA,EAAW,SAAWH,EACxB,MAAM,IAAI,MAAM,wDAAwD,EAE1E,IAAMI,EAAWF,EAAU,mBAAmBF,EAAY,SAAUC,EAAa,YAAY,IAAI,EAEjG,OAAO,SAA8BI,EAAMC,EAAU,CACnD,OAAOC,EAAaF,CAAI,EACpBJ,EAAaI,CAAI,GAAKD,EAASC,EAAMC,CAAQ,EAC7C,EACN,CACF,CACF,CAEO,IAAME,GAAmB,CAC9B,MAAST,EAA2B,QAASU,CAAa,EAC1D,aAAgBV,EAA2B,eAAgBW,CAAoB,EAC/E,WAAcX,EAA2B,aAAcY,CAAkB,EACzE,kBAAmBZ,EAA2B,kBAAmBa,CAAsB,EACvF,iBAAkBb,EAA2B,iBAAkBc,EAAqB,EACpF,YAAed,EAA2B,cAAee,CAAmB,EAC5E,QAAWf,EAA2B,UAAWgB,CAAe,EAChE,UAAahB,EAA2B,YAAaiB,CAAiB,EACtE,UAAajB,EAA2B,YAAakB,CAAiB,EACtE,MAASlB,EAA2B,QAASmB,CAAgB,EAC7D,MAASnB,EAA2B,QAASoB,CAAc,EAC3D,IAAOpB,EAA2B,MAAOqB,EAAW,EACpD,YAAarB,EAA2B,YAAasB,EAAe,EACpE,gBAAiBtB,EAA2B,gBAAiBuB,CAAc,EAC3E,sBAAuBvB,EAA2B,sBAAuBwB,EAAkB,EAC3F,eAAgBxB,EAA2B,eAAgByB,EAAmB,EAC9E,IAAOzB,EAA2B,MAAO0B,CAAW,EACpD,YAAa1B,EAA2B,YAAa0B,CAAW,EAChE,MAAS1B,EAA2B,QAAS2B,EAAa,EAC1D,cAAe3B,EAA2B,cAAe4B,EAAiB,EAC1E,SAAY5B,EAA2B,WAAY6B,EAAgB,EACnE,YAAa7B,EAA2B,YAAa8B,EAAgB,EACrE,eAAgB9B,EAA2B,eAAgB+B,EAAmB,EAC9E,KAAQ/B,EAA2B,OAAQgC,EAAY,EACvD,KAAQhC,EAA2B,OAAQiC,EAAY,EACvD,KAAQjC,EAA2B,OAAQkC,CAAY,EACvD,KAAQlC,EAA2B,OAAQmC,CAAY,EACvD,eAAgBnC,EAA2B,eAAgBoC,EAAmB,EAC9E,4BAA6BpC,EAA2B,4BAA6BqC,EAA8B,EACnH,wBAAyBrC,EAA2B,wBAAyBsC,EAA2B,EACxG,IAAOtC,EAA2B,MAAOuC,EAAW,EACpD,gBAAiBvC,EAA2B,gBAAiBwC,EAAc,EAC3E,OAAUxC,EAA2B,SAAUyC,EAAc,EAC7D,OAAUzC,EAA2B,SAAU0C,EAAc,EAC7D,IAAO1C,EAA2B,MAAO2C,EAAe,EACxD,OAAU3C,EAA2B,SAAU4C,CAAc,EAC7D,KAAQ5C,EAA2B,OAAQ4C,CAAc,EACzD,SAAY5C,EAA2B,WAAY6C,EAAqB,EACxE,KAAQ7C,EAA2B,OAAQ8C,EAAY,CACzD,ECnGO,IAAMC,GAAW,KACXC,GAAW,IAEjB,SAASC,GAAYC,EAAO,CACjC,OAAOC,EAAcD,CAAK,GACrBA,GAASH,IACTG,GAASF,EAChB,CAEO,IAAMI,GAAY,EACZC,GAAY,IAElB,SAASC,GAAaJ,EAAO,CAClC,OAAOC,EAAcD,CAAK,GACrBA,GAASE,IACTF,GAASG,EAChB,CAEO,IAAME,GAAY,OACZC,GAAY,MAElB,SAASC,GAAaP,EAAO,CAClC,OAAOC,EAAcD,CAAK,GACrBA,GAASK,IACTL,GAASM,EAChB,CAEO,IAAME,GAAa,EACbC,GAAa,MAEnB,SAASC,GAAcV,EAAO,CACnC,OAAOC,EAAcD,CAAK,GACrBA,GAASQ,IACTR,GAASS,EAChB,CAEO,IAAME,GAAY,EAAE,GAAK,IACnBC,GAAa,GAAK,GAAM,EAE9B,SAASC,GAAab,EAAO,CAClC,OAAOC,EAAcD,CAAK,GACrBA,GAASW,IACTX,GAASY,EAChB,CAEO,IAAME,GAAa,EACbC,GAAc,GAAK,GAAM,EAE/B,SAASC,GAAchB,EAAO,CACnC,OAAOC,EAAcD,CAAK,GACrBA,GAASc,IACTd,GAASe,EAChB,CAEO,IAAME,GAAY,OAAO,iBACnBC,GAAY,OAAO,iBAEzB,SAASC,GAAanB,EAAO,CAClC,OAAOC,EAAcD,CAAK,GACrBA,GAASiB,IACTjB,GAASkB,EAChB,CAEO,IAAME,GAAa,EACbC,GAAa,OAAO,iBAE1B,SAASC,GAActB,EAAO,CACnC,OAAOC,EAAcD,CAAK,GACrBA,GAASoB,IACTpB,GAASqB,EAChB,CCtEO,IAAME,GAAc,MAMpB,SAASC,GAAeC,EAAO,CACpC,OAAOC,EAAaD,CAAK,GACpB,CAAC,OAAO,MAAMA,CAAK,GACnBA,GAAS,CAACE,IACVF,GAASE,EAChB,CAwBO,IAAMC,GAAc,qBAMpB,SAASC,EAAeC,EAAO,CACpC,OAAOC,EAAaD,CAAK,GACpB,CAAC,OAAO,MAAMA,CAAK,GACnBA,GAAS,CAACE,IACVF,GAASE,EAChB,CAuBO,IAAMC,GAAc,OAAO,UACrBC,GAAc,OAAO,UACrBC,GAAc,OAAO,QAI3B,SAASC,EAAeC,EAAO,CACpC,OAAOC,EAAaD,CAAK,GACpB,CAAC,OAAO,MAAMA,CAAK,GACnBA,GAAS,CAACE,IACVF,GAASE,EAChB,CCnEA,SAASC,EAA2BC,EAAYC,EAAcC,EAAe,GAAO,CAClF,OAAO,SAA6BC,EAAWC,EAAY,CACzD,GAAIA,EAAW,SAAWJ,EACxB,MAAM,IAAI,MAAM,wDAAwD,EAE1E,IAAMK,EAAWF,EAAU,mBAAmBH,EAAY,QAAQ,EAElE,OAAIE,IAAiB,GACZ,SAAoCI,EAAMC,EAAU,CACzD,OAAOD,GAAQ,MACVL,EAAaK,CAAI,GACjBD,EAASC,EAAMC,CAAQ,CAC9B,EAEO,SAA8BD,EAAMC,EAAU,CACnD,OAAQD,GAAQ,MACXL,EAAa,OAAOK,CAAI,CAAC,GACzBD,EAASC,EAAMC,CAAQ,CAC9B,CACJ,CACF,CAEO,IAAMC,GAAmB,CAE9B,KAAMT,EAA2B,OAAQU,EAAW,EACpD,MAAOV,EAA2B,QAASW,EAAY,EACvD,MAAOX,EAA2B,QAASY,EAAY,EACvD,OAAQZ,EAA2B,SAAUa,EAAa,EAC1D,MAAOb,EAA2B,QAASc,EAAY,EACvD,OAAQd,EAA2B,SAAUe,EAAa,EAC1D,MAAOf,EAA2B,QAASgB,EAAY,EACvD,OAAQhB,EAA2B,SAAUiB,EAAa,EAE1D,QAASjB,EAA2B,UAAWkB,EAAc,EAC7D,QAASlB,EAA2B,UAAWmB,CAAc,EAC7D,QAASnB,EAA2B,UAAWoB,CAAc,EAC7D,MAAOpB,EAA2B,QAASmB,CAAc,EACzD,OAAQnB,EAA2B,SAAUoB,CAAc,CAC7D",
|
|
6
|
+
"names": ["isStringType", "data", "isNumberType", "data", "isIntegerType", "isObjectOfClass", "data", "type", "TypedArray", "getInclusiveExclusiveBounds", "getType", "inclusive", "exclusive", "includes", "excludes", "CONST_TICKS_SECOND", "CONST_TICKS_HOUR", "CONST_TICKS_DAY", "CONST_TIME_INSERTDATE", "CONST_RFC3339_DAYS", "CONST_RFC3339_REGEX_ISDATE", "CONST_RFC3339_REGEX_ISTIME", "isDateType", "data", "isObjectOfClass", "isLeapYear", "year", "isDateOnlyInRange", "month", "day", "CONST_RFC3339_DAYS", "isDateOnlyRFC3339", "str", "isStringType", "r", "CONST_RFC3339_REGEX_ISDATE", "y", "m", "d", "isTimeOnlyInRange", "hrs", "min", "sec", "tzh", "tzm", "isTimeOnlyRFC3339", "CONST_RFC3339_REGEX_ISTIME", "h", "s", "th", "tm", "isDateTimeRFC3339", "dateTime", "getDateTypeOfDateOnlyRFC3339", "def", "getDateTypeOfTimeOnlyRFC3339", "CONST_TIME_INSERTDATE", "getDateTypeOfDateTimeRFC3339", "compileFormatMinimumByType", "parseType", "schemaObj", "jsonSchema", "min", "emin", "getInclusiveExclusiveBounds", "addError", "date", "dataPath", "compileFormatMaximumByType", "max", "emax", "compileFormatByType", "name", "validateMin", "validateMax", "data", "isStringType", "isDateType", "compileDateTimeFormat", "getDateTypeOfDateTimeRFC3339", "compileDateOnlyFormat", "getDateTypeOfDateOnlyRFC3339", "compileTimeOnlyFormat", "getDateTypeOfTimeOnlyRFC3339", "formatValidators", "isStringUpperCase", "str", "isStringLowerCase", "isRegExpType", "data", "isObjectOfClass", "isStringRegExp", "createRegExp", "pattern", "isStringType", "e", "g", "delimiter", "regexNonASCII", "regexSeparators", "errors", "baseMinusTMin", "floor", "stringFromCharCode", "error", "type", "map", "array", "fn", "result", "length", "mapDomain", "domain", "parts", "labels", "encoded", "ucs2decode", "string", "output", "counter", "value", "extra", "digitToBasic", "digit", "flag", "adapt", "delta", "numPoints", "firstTime", "k", "floor", "baseMinusTMin", "encode", "str", "output", "input", "ucs2decode", "inputLength", "n", "delta", "bias", "currentValue", "stringFromCharCode", "basicLength", "handledCPCount", "delimiter", "m", "handledCPCountPlusOne", "floor", "error", "q", "k", "t", "qMinusT", "baseMinusT", "digitToBasic", "adapt", "toASCII", "input", "mapDomain", "string", "regexNonASCII", "encode", "CONST_REGEXP_ALPHA", "isStringAlpha", "str", "CONST_REGEXP_ALPHANUMERIC", "isStringAlphaNumeric", "CONST_REGEXP_NUMERIC", "isStringNumeric", "CONST_REGEXP_HEXADECIMAL", "isStringHexaDecimal", "CONST_REGEXP_HEXCOLOR", "isStringHexColor", "CONST_REGEXP_UUID", "isStringUUID", "CONST_REGEXP_GUID", "isStringGUID", "CONST_REGEXP_IDENTIFIER", "isStringIdentifier", "CONST_REGEXP_HTML_IDENTIFIER", "isStringHtmlIdentifier", "CONST_REGEXP_CSS_IDENTIFIER", "isStringCssIdentifier", "CONST_REGEXP_MAC_ADDR", "isStringMACAddr", "CONST_REGEXP_IPV4", "isStringIPv4", "CONST_REGEXP_IPV6", "isStringIPv6", "CONST_REGEXP_HOSTNAME", "isStringHostname", "CONST_REGEXP_ACEHOSTNAME", "isStringIdnHostname", "punycode", "toASCII", "CONST_REGEXP_URL", "isStringUrl", "CONST_REGEXP_NOT_URI_FRAGMENT", "CONST_REGEXP_URI_FAST", "isStringUri", "str", "CONST_REGEXP_URI_FULL", "isStringUriFull", "CONST_REGEXP_URIREF_FAST", "isStringUriRef", "CONST_REGEXP_URIREF_FULL", "isStringUriRefFull", "CONST_REGEXP_URITEMPLATE", "isStringUriTemplate", "CONST_REGEXP_ABSOLUTE_IRI", "isStringIRI", "isStringIRIRef", "CONST_REGEXP_JSON_POINTER", "isStringJSONPointer", "CONST_REGEXP_JSON_POINTER_URI_FRAGMENT", "isStringJSONPointerUriFragment", "CONST_REGEXP_RELATIVE_JSON_POINTER", "isStringRelativeJSONPointer", "CONST_REGEXP_EMAIL_FAST", "isStringEmail", "CONST_REGEXP_EMAIL_FULL", "isStringEmailFull", "CONST_REGEXP_IDNEMAIL", "isStringIdnEmail", "CONST_REGPEXP_ISBN10", "isStringISBN10", "CONST_REGEXP_ISBN13", "isStringISBN13", "CONST_REGEXP_BASE64", "isStringBase64", "CONST_REGEXP_COUNTRY_ALPHA2", "isStringCountryAlpha2", "CONST_REGEXP_IBAN", "isStringIBAN", "createStringFormatCompiler", "formatName", "isFormatTest", "schemaObj", "jsonSchema", "addError", "data", "dataPath", "isStringType", "formatValidators", "isStringAlpha", "isStringAlphaNumeric", "isStringIdentifier", "isStringHtmlIdentifier", "isStringCssIdentifier", "isStringHexaDecimal", "isStringNumeric", "isStringUpperCase", "isStringLowerCase", "isStringHexColor", "isStringRegExp", "isStringUri", "isStringUriFull", "isStringUriRef", "isStringUriRefFull", "isStringUriTemplate", "isStringUrl", "isStringEmail", "isStringEmailFull", "isStringHostname", "isStringIdnEmail", "isStringIdnHostname", "isStringIPv4", "isStringIPv6", "isStringUUID", "isStringGUID", "isStringJSONPointer", "isStringJSONPointerUriFragment", "isStringRelativeJSONPointer", "isStringIRI", "isStringIRIRef", "isStringISBN10", "isStringISBN13", "isStringMACAddr", "isStringBase64", "isStringCountryAlpha2", "isStringIBAN", "INT8_MIN", "INT8_MAX", "isValidInt8", "value", "isIntegerType", "UINT8_MIN", "UINT8_MAX", "isValidUInt8", "INT16_MIN", "INT16_MAX", "isValidInt16", "UINT16_MIN", "UINT16_MAX", "isValidUInt16", "INT32_MIN", "INT32_MAX", "isValidInt32", "UINT32_MIN", "UINT32_MAX", "isValidUInt32", "INT64_MIN", "INT64_MAX", "isValidInt64", "UINT64_MIN", "UINT64_MAX", "isValidUInt64", "FLOAT16_MAX", "isValidFloat16", "value", "isNumberType", "FLOAT16_MAX", "FLOAT32_MAX", "isValidFloat32", "value", "isNumberType", "FLOAT32_MAX", "FLOAT64_MAX", "FLOAT64_MIN", "FLOAT64_EPS", "isValidFloat64", "value", "isNumberType", "FLOAT64_MAX", "createNumberFormatCompiler", "formatName", "isNumberTest", "strictFormat", "schemaObj", "jsonSchema", "addError", "data", "dataPath", "formatValidators", "isValidInt8", "isValidUInt8", "isValidInt16", "isValidUInt16", "isValidInt32", "isValidUInt32", "isValidInt64", "isValidUInt64", "isValidFloat16", "isValidFloat32", "isValidFloat64"]
|
|
7
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@jarenjs/formats",
|
|
3
|
+
"private": false,
|
|
4
|
+
"version": "0.8.2",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist"
|
|
9
|
+
],
|
|
10
|
+
"description": "Jaren Formats for JSON Schema Validation",
|
|
11
|
+
"author": "joham",
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "https://github.com/jklarenbeek/jarenjs.git",
|
|
15
|
+
"directory": "packages/formats"
|
|
16
|
+
},
|
|
17
|
+
"license": "MIT",
|
|
18
|
+
"keywords": [
|
|
19
|
+
"jaren",
|
|
20
|
+
"json schema",
|
|
21
|
+
"formats"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "node esbuild.config.js"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"esbuild": "^0.23.1"
|
|
28
|
+
}
|
|
29
|
+
}
|