@hpcc-js/ddl-shim 2.17.23 → 2.17.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/index.es6.js +122 -157
- package/dist/index.es6.js.map +1 -1
- package/dist/index.js +122 -157
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +4 -4
- package/src/__package__.ts +2 -2
- package/types/__package__.d.ts +2 -2
- package/types/__package__.d.ts.map +1 -1
package/dist/index.es6.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var PKG_NAME = "@hpcc-js/ddl-shim";
|
|
2
|
-
var PKG_VERSION = "2.17.
|
|
3
|
-
var BUILD_VERSION = "2.
|
|
2
|
+
var PKG_VERSION = "2.17.24";
|
|
3
|
+
var BUILD_VERSION = "2.100.0";
|
|
4
4
|
|
|
5
5
|
function isWorkunitDatasource(ref) {
|
|
6
6
|
return ref.WUID !== undefined;
|
|
@@ -2500,21 +2500,18 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
2500
2500
|
|
|
2501
2501
|
unwrapExports(uri_all);
|
|
2502
2502
|
|
|
2503
|
-
|
|
2504
|
-
|
|
2505
|
-
|
|
2503
|
+
// do not edit .js files directly - edit src/index.jst
|
|
2504
|
+
|
|
2505
|
+
|
|
2506
2506
|
|
|
2507
2507
|
var fastDeepEqual = function equal(a, b) {
|
|
2508
2508
|
if (a === b) return true;
|
|
2509
2509
|
|
|
2510
2510
|
if (a && b && typeof a == 'object' && typeof b == 'object') {
|
|
2511
|
-
|
|
2512
|
-
, arrB = isArray(b)
|
|
2513
|
-
, i
|
|
2514
|
-
, length
|
|
2515
|
-
, key;
|
|
2511
|
+
if (a.constructor !== b.constructor) return false;
|
|
2516
2512
|
|
|
2517
|
-
|
|
2513
|
+
var length, i, keys;
|
|
2514
|
+
if (Array.isArray(a)) {
|
|
2518
2515
|
length = a.length;
|
|
2519
2516
|
if (length != b.length) return false;
|
|
2520
2517
|
for (i = length; i-- !== 0;)
|
|
@@ -2522,35 +2519,29 @@ var fastDeepEqual = function equal(a, b) {
|
|
|
2522
2519
|
return true;
|
|
2523
2520
|
}
|
|
2524
2521
|
|
|
2525
|
-
if (arrA != arrB) return false;
|
|
2526
2522
|
|
|
2527
|
-
var dateA = a instanceof Date
|
|
2528
|
-
, dateB = b instanceof Date;
|
|
2529
|
-
if (dateA != dateB) return false;
|
|
2530
|
-
if (dateA && dateB) return a.getTime() == b.getTime();
|
|
2531
2523
|
|
|
2532
|
-
|
|
2533
|
-
|
|
2534
|
-
if (
|
|
2535
|
-
if (regexpA && regexpB) return a.toString() == b.toString();
|
|
2524
|
+
if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
|
|
2525
|
+
if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
|
|
2526
|
+
if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();
|
|
2536
2527
|
|
|
2537
|
-
|
|
2528
|
+
keys = Object.keys(a);
|
|
2538
2529
|
length = keys.length;
|
|
2539
|
-
|
|
2540
|
-
if (length !== keyList(b).length)
|
|
2541
|
-
return false;
|
|
2530
|
+
if (length !== Object.keys(b).length) return false;
|
|
2542
2531
|
|
|
2543
2532
|
for (i = length; i-- !== 0;)
|
|
2544
|
-
if (!
|
|
2533
|
+
if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
|
|
2545
2534
|
|
|
2546
2535
|
for (i = length; i-- !== 0;) {
|
|
2547
|
-
key = keys[i];
|
|
2536
|
+
var key = keys[i];
|
|
2537
|
+
|
|
2548
2538
|
if (!equal(a[key], b[key])) return false;
|
|
2549
2539
|
}
|
|
2550
2540
|
|
|
2551
2541
|
return true;
|
|
2552
2542
|
}
|
|
2553
2543
|
|
|
2544
|
+
// true if both NaN, false otherwise
|
|
2554
2545
|
return a!==a && b!==b;
|
|
2555
2546
|
};
|
|
2556
2547
|
|
|
@@ -2585,8 +2576,6 @@ var util = {
|
|
|
2585
2576
|
ucs2length: ucs2length,
|
|
2586
2577
|
varOccurences: varOccurences,
|
|
2587
2578
|
varReplace: varReplace,
|
|
2588
|
-
cleanUpCode: cleanUpCode,
|
|
2589
|
-
finalCleanUpCode: finalCleanUpCode,
|
|
2590
2579
|
schemaHasRules: schemaHasRules,
|
|
2591
2580
|
schemaHasRulesExcept: schemaHasRulesExcept,
|
|
2592
2581
|
schemaUnknownRules: schemaUnknownRules,
|
|
@@ -2608,7 +2597,7 @@ function copy(o, to) {
|
|
|
2608
2597
|
}
|
|
2609
2598
|
|
|
2610
2599
|
|
|
2611
|
-
function checkDataType(dataType, data, negate) {
|
|
2600
|
+
function checkDataType(dataType, data, strictNumbers, negate) {
|
|
2612
2601
|
var EQUAL = negate ? ' !== ' : ' === '
|
|
2613
2602
|
, AND = negate ? ' || ' : ' && '
|
|
2614
2603
|
, OK = negate ? '!' : ''
|
|
@@ -2621,15 +2610,18 @@ function checkDataType(dataType, data, negate) {
|
|
|
2621
2610
|
NOT + 'Array.isArray(' + data + '))';
|
|
2622
2611
|
case 'integer': return '(typeof ' + data + EQUAL + '"number"' + AND +
|
|
2623
2612
|
NOT + '(' + data + ' % 1)' +
|
|
2624
|
-
AND + data + EQUAL + data +
|
|
2613
|
+
AND + data + EQUAL + data +
|
|
2614
|
+
(strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';
|
|
2615
|
+
case 'number': return '(typeof ' + data + EQUAL + '"' + dataType + '"' +
|
|
2616
|
+
(strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';
|
|
2625
2617
|
default: return 'typeof ' + data + EQUAL + '"' + dataType + '"';
|
|
2626
2618
|
}
|
|
2627
2619
|
}
|
|
2628
2620
|
|
|
2629
2621
|
|
|
2630
|
-
function checkDataTypes(dataTypes, data) {
|
|
2622
|
+
function checkDataTypes(dataTypes, data, strictNumbers) {
|
|
2631
2623
|
switch (dataTypes.length) {
|
|
2632
|
-
case 1: return checkDataType(dataTypes[0], data, true);
|
|
2624
|
+
case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);
|
|
2633
2625
|
default:
|
|
2634
2626
|
var code = '';
|
|
2635
2627
|
var types = toHash(dataTypes);
|
|
@@ -2642,7 +2634,7 @@ function checkDataTypes(dataTypes, data) {
|
|
|
2642
2634
|
}
|
|
2643
2635
|
if (types.number) delete types.integer;
|
|
2644
2636
|
for (var t in types)
|
|
2645
|
-
code += (code ? ' && ' : '' ) + checkDataType(t, data, true);
|
|
2637
|
+
code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);
|
|
2646
2638
|
|
|
2647
2639
|
return code;
|
|
2648
2640
|
}
|
|
@@ -2708,42 +2700,6 @@ function varReplace(str, dataVar, expr) {
|
|
|
2708
2700
|
}
|
|
2709
2701
|
|
|
2710
2702
|
|
|
2711
|
-
var EMPTY_ELSE = /else\s*{\s*}/g
|
|
2712
|
-
, EMPTY_IF_NO_ELSE = /if\s*\([^)]+\)\s*\{\s*\}(?!\s*else)/g
|
|
2713
|
-
, EMPTY_IF_WITH_ELSE = /if\s*\(([^)]+)\)\s*\{\s*\}\s*else(?!\s*if)/g;
|
|
2714
|
-
function cleanUpCode(out) {
|
|
2715
|
-
return out.replace(EMPTY_ELSE, '')
|
|
2716
|
-
.replace(EMPTY_IF_NO_ELSE, '')
|
|
2717
|
-
.replace(EMPTY_IF_WITH_ELSE, 'if (!($1))');
|
|
2718
|
-
}
|
|
2719
|
-
|
|
2720
|
-
|
|
2721
|
-
var ERRORS_REGEXP = /[^v.]errors/g
|
|
2722
|
-
, REMOVE_ERRORS = /var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g
|
|
2723
|
-
, REMOVE_ERRORS_ASYNC = /var errors = 0;|var vErrors = null;/g
|
|
2724
|
-
, RETURN_VALID = 'return errors === 0;'
|
|
2725
|
-
, RETURN_TRUE = 'validate.errors = null; return true;'
|
|
2726
|
-
, RETURN_ASYNC = /if \(errors === 0\) return data;\s*else throw new ValidationError\(vErrors\);/
|
|
2727
|
-
, RETURN_DATA_ASYNC = 'return data;'
|
|
2728
|
-
, ROOTDATA_REGEXP = /[^A-Za-z_$]rootData[^A-Za-z0-9_$]/g
|
|
2729
|
-
, REMOVE_ROOTDATA = /if \(rootData === undefined\) rootData = data;/;
|
|
2730
|
-
|
|
2731
|
-
function finalCleanUpCode(out, async) {
|
|
2732
|
-
var matches = out.match(ERRORS_REGEXP);
|
|
2733
|
-
if (matches && matches.length == 2) {
|
|
2734
|
-
out = async
|
|
2735
|
-
? out.replace(REMOVE_ERRORS_ASYNC, '')
|
|
2736
|
-
.replace(RETURN_ASYNC, RETURN_DATA_ASYNC)
|
|
2737
|
-
: out.replace(REMOVE_ERRORS, '')
|
|
2738
|
-
.replace(RETURN_VALID, RETURN_TRUE);
|
|
2739
|
-
}
|
|
2740
|
-
|
|
2741
|
-
matches = out.match(ROOTDATA_REGEXP);
|
|
2742
|
-
if (!matches || matches.length !== 3) return out;
|
|
2743
|
-
return out.replace(REMOVE_ROOTDATA, '');
|
|
2744
|
-
}
|
|
2745
|
-
|
|
2746
|
-
|
|
2747
2703
|
function schemaHasRules(schema, rules) {
|
|
2748
2704
|
if (typeof schema == 'boolean') return !schema;
|
|
2749
2705
|
for (var key in schema) if (rules[key]) return true;
|
|
@@ -2822,7 +2778,7 @@ function getData($data, lvl, paths) {
|
|
|
2822
2778
|
|
|
2823
2779
|
function joinPaths (a, b) {
|
|
2824
2780
|
if (a == '""') return b;
|
|
2825
|
-
return (a + ' + ' + b).replace(/' \+ '/g, '');
|
|
2781
|
+
return (a + ' + ' + b).replace(/([^\\])' \+ '/g, '$1');
|
|
2826
2782
|
}
|
|
2827
2783
|
|
|
2828
2784
|
|
|
@@ -3386,7 +3342,7 @@ var validate = function generate_validate(it, $keyword, $ruleType) {
|
|
|
3386
3342
|
it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));
|
|
3387
3343
|
it.baseId = it.baseId || it.rootId;
|
|
3388
3344
|
delete it.isTop;
|
|
3389
|
-
it.dataPathArr = [
|
|
3345
|
+
it.dataPathArr = [""];
|
|
3390
3346
|
if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {
|
|
3391
3347
|
var $defaultMsg = 'default is ignored in the schema root';
|
|
3392
3348
|
if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);
|
|
@@ -3444,47 +3400,39 @@ var validate = function generate_validate(it, $keyword, $ruleType) {
|
|
|
3444
3400
|
var $schemaPath = it.schemaPath + '.type',
|
|
3445
3401
|
$errSchemaPath = it.errSchemaPath + '/type',
|
|
3446
3402
|
$method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';
|
|
3447
|
-
out += ' if (' + (it.util[$method]($typeSchema, $data, true)) + ') { ';
|
|
3403
|
+
out += ' if (' + (it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true)) + ') { ';
|
|
3448
3404
|
if ($coerceToTypes) {
|
|
3449
3405
|
var $dataType = 'dataType' + $lvl,
|
|
3450
3406
|
$coerced = 'coerced' + $lvl;
|
|
3451
|
-
out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; ';
|
|
3407
|
+
out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; var ' + ($coerced) + ' = undefined; ';
|
|
3452
3408
|
if (it.opts.coerceTypes == 'array') {
|
|
3453
|
-
out += ' if (' + ($dataType) + ' == \'object\' && Array.isArray(' + ($data) + ')) ' + ($dataType) + ' =
|
|
3409
|
+
out += ' if (' + ($dataType) + ' == \'object\' && Array.isArray(' + ($data) + ') && ' + ($data) + '.length == 1) { ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; if (' + (it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)) + ') ' + ($coerced) + ' = ' + ($data) + '; } ';
|
|
3454
3410
|
}
|
|
3455
|
-
out += '
|
|
3456
|
-
var $bracesCoercion = '';
|
|
3411
|
+
out += ' if (' + ($coerced) + ' !== undefined) ; ';
|
|
3457
3412
|
var arr1 = $coerceToTypes;
|
|
3458
3413
|
if (arr1) {
|
|
3459
3414
|
var $type, $i = -1,
|
|
3460
3415
|
l1 = arr1.length - 1;
|
|
3461
3416
|
while ($i < l1) {
|
|
3462
3417
|
$type = arr1[$i += 1];
|
|
3463
|
-
if ($i) {
|
|
3464
|
-
out += ' if (' + ($coerced) + ' === undefined) { ';
|
|
3465
|
-
$bracesCoercion += '}';
|
|
3466
|
-
}
|
|
3467
|
-
if (it.opts.coerceTypes == 'array' && $type != 'array') {
|
|
3468
|
-
out += ' if (' + ($dataType) + ' == \'array\' && ' + ($data) + '.length == 1) { ' + ($coerced) + ' = ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; } ';
|
|
3469
|
-
}
|
|
3470
3418
|
if ($type == 'string') {
|
|
3471
|
-
out += ' if (' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\') ' + ($coerced) + ' = \'\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \'\'; ';
|
|
3419
|
+
out += ' else if (' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\') ' + ($coerced) + ' = \'\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \'\'; ';
|
|
3472
3420
|
} else if ($type == 'number' || $type == 'integer') {
|
|
3473
|
-
out += ' if (' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \'string\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' ';
|
|
3421
|
+
out += ' else if (' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \'string\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' ';
|
|
3474
3422
|
if ($type == 'integer') {
|
|
3475
3423
|
out += ' && !(' + ($data) + ' % 1)';
|
|
3476
3424
|
}
|
|
3477
3425
|
out += ')) ' + ($coerced) + ' = +' + ($data) + '; ';
|
|
3478
3426
|
} else if ($type == 'boolean') {
|
|
3479
|
-
out += ' if (' + ($data) + ' === \'false\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \'true\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; ';
|
|
3427
|
+
out += ' else if (' + ($data) + ' === \'false\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \'true\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; ';
|
|
3480
3428
|
} else if ($type == 'null') {
|
|
3481
|
-
out += ' if (' + ($data) + ' === \'\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; ';
|
|
3429
|
+
out += ' else if (' + ($data) + ' === \'\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; ';
|
|
3482
3430
|
} else if (it.opts.coerceTypes == 'array' && $type == 'array') {
|
|
3483
|
-
out += ' if (' + ($dataType) + ' == \'string\' || ' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; ';
|
|
3431
|
+
out += ' else if (' + ($dataType) + ' == \'string\' || ' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; ';
|
|
3484
3432
|
}
|
|
3485
3433
|
}
|
|
3486
3434
|
}
|
|
3487
|
-
out += '
|
|
3435
|
+
out += ' else { ';
|
|
3488
3436
|
var $$outStack = $$outStack || [];
|
|
3489
3437
|
$$outStack.push(out);
|
|
3490
3438
|
out = ''; /* istanbul ignore else */
|
|
@@ -3524,7 +3472,7 @@ var validate = function generate_validate(it, $keyword, $ruleType) {
|
|
|
3524
3472
|
} else {
|
|
3525
3473
|
out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
|
|
3526
3474
|
}
|
|
3527
|
-
out += ' }
|
|
3475
|
+
out += ' } if (' + ($coerced) + ' !== undefined) { ';
|
|
3528
3476
|
var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',
|
|
3529
3477
|
$parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';
|
|
3530
3478
|
out += ' ' + ($data) + ' = ' + ($coerced) + '; ';
|
|
@@ -3597,7 +3545,7 @@ var validate = function generate_validate(it, $keyword, $ruleType) {
|
|
|
3597
3545
|
$rulesGroup = arr2[i2 += 1];
|
|
3598
3546
|
if ($shouldUseGroup($rulesGroup)) {
|
|
3599
3547
|
if ($rulesGroup.type) {
|
|
3600
|
-
out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data)) + ') { ';
|
|
3548
|
+
out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers)) + ') { ';
|
|
3601
3549
|
}
|
|
3602
3550
|
if (it.opts.useDefaults) {
|
|
3603
3551
|
if ($rulesGroup.type == 'object' && it.schema.properties) {
|
|
@@ -3765,10 +3713,6 @@ var validate = function generate_validate(it, $keyword, $ruleType) {
|
|
|
3765
3713
|
} else {
|
|
3766
3714
|
out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';';
|
|
3767
3715
|
}
|
|
3768
|
-
out = it.util.cleanUpCode(out);
|
|
3769
|
-
if ($top) {
|
|
3770
|
-
out = it.util.finalCleanUpCode(out, $async);
|
|
3771
|
-
}
|
|
3772
3716
|
|
|
3773
3717
|
function $shouldUseGroup($rulesGroup) {
|
|
3774
3718
|
var rules = $rulesGroup.rules;
|
|
@@ -3894,7 +3838,7 @@ function compile(schema, root, localRefs, baseId) {
|
|
|
3894
3838
|
+ vars(defaults, defaultCode) + vars(customRules, customRuleCode)
|
|
3895
3839
|
+ sourceCode;
|
|
3896
3840
|
|
|
3897
|
-
if (opts.processCode) sourceCode = opts.processCode(sourceCode);
|
|
3841
|
+
if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema);
|
|
3898
3842
|
// console.log('\n\n\n *** \n', JSON.stringify(sourceCode));
|
|
3899
3843
|
var validate$1;
|
|
3900
3844
|
try {
|
|
@@ -4197,8 +4141,8 @@ Cache.prototype.clear = function Cache_clear() {
|
|
|
4197
4141
|
|
|
4198
4142
|
var DATE = /^(\d\d\d\d)-(\d\d)-(\d\d)$/;
|
|
4199
4143
|
var DAYS = [0,31,28,31,30,31,30,31,31,30,31,30,31];
|
|
4200
|
-
var TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d
|
|
4201
|
-
var HOSTNAME = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)
|
|
4144
|
+
var TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i;
|
|
4145
|
+
var HOSTNAME = /^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i;
|
|
4202
4146
|
var URI = /^(?:[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;
|
|
4203
4147
|
var URIREF = /^(?:[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;
|
|
4204
4148
|
// uri-template: https://tools.ietf.org/html/rfc6570
|
|
@@ -4206,8 +4150,8 @@ var URITEMPLATE = /^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|
|
|
|
4206
4150
|
// For the source: https://gist.github.com/dperini/729294
|
|
4207
4151
|
// For test cases: https://mathiasbynens.be/demo/url-regex
|
|
4208
4152
|
// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.
|
|
4209
|
-
// var 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]
|
|
4210
|
-
var URL = /^(?:(?: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-
|
|
4153
|
+
// var 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;
|
|
4154
|
+
var URL = /^(?:(?: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-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-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;
|
|
4211
4155
|
var UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;
|
|
4212
4156
|
var JSON_POINTER$1 = /^(?:\/(?:[^~/]|~0|~1)*)*$/;
|
|
4213
4157
|
var JSON_POINTER_URI_FRAGMENT = /^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;
|
|
@@ -4226,11 +4170,11 @@ formats.fast = {
|
|
|
4226
4170
|
// date: http://tools.ietf.org/html/rfc3339#section-5.6
|
|
4227
4171
|
date: /^\d\d\d\d-[0-1]\d-[0-3]\d$/,
|
|
4228
4172
|
// date-time: http://tools.ietf.org/html/rfc3339#section-5.6
|
|
4229
|
-
time: /^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d
|
|
4230
|
-
'date-time': /^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d
|
|
4173
|
+
time: /^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,
|
|
4174
|
+
'date-time': /^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,
|
|
4231
4175
|
// uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js
|
|
4232
|
-
uri: /^(?:[a-z][a-z0-9
|
|
4233
|
-
'uri-reference': /^(?:(?:[a-z][a-z0-9
|
|
4176
|
+
uri: /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,
|
|
4177
|
+
'uri-reference': /^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,
|
|
4234
4178
|
'uri-template': URITEMPLATE,
|
|
4235
4179
|
url: URL,
|
|
4236
4180
|
// email (sources from jsen validator):
|
|
@@ -4263,7 +4207,7 @@ formats.full = {
|
|
|
4263
4207
|
'uri-template': URITEMPLATE,
|
|
4264
4208
|
url: URL,
|
|
4265
4209
|
email: /^[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,
|
|
4266
|
-
hostname:
|
|
4210
|
+
hostname: HOSTNAME,
|
|
4267
4211
|
ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,
|
|
4268
4212
|
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,
|
|
4269
4213
|
regex: regex,
|
|
@@ -4316,13 +4260,6 @@ function date_time(str) {
|
|
|
4316
4260
|
}
|
|
4317
4261
|
|
|
4318
4262
|
|
|
4319
|
-
function hostname(str) {
|
|
4320
|
-
// https://tools.ietf.org/html/rfc1034#section-3.5
|
|
4321
|
-
// https://tools.ietf.org/html/rfc1123#section-2
|
|
4322
|
-
return str.length <= 255 && HOSTNAME.test(str);
|
|
4323
|
-
}
|
|
4324
|
-
|
|
4325
|
-
|
|
4326
4263
|
var NOT_URI_FRAGMENT = /\/|:/;
|
|
4327
4264
|
function uri(str) {
|
|
4328
4265
|
// http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required "."
|
|
@@ -4483,7 +4420,7 @@ var allOf = function generate_allOf(it, $keyword, $ruleType) {
|
|
|
4483
4420
|
l1 = arr1.length - 1;
|
|
4484
4421
|
while ($i < l1) {
|
|
4485
4422
|
$sch = arr1[$i += 1];
|
|
4486
|
-
if (it.util.schemaHasRules($sch, it.RULES.all)) {
|
|
4423
|
+
if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {
|
|
4487
4424
|
$allSchemasEmpty = false;
|
|
4488
4425
|
$it.schema = $sch;
|
|
4489
4426
|
$it.schemaPath = $schemaPath + '[' + $i + ']';
|
|
@@ -4504,7 +4441,6 @@ var allOf = function generate_allOf(it, $keyword, $ruleType) {
|
|
|
4504
4441
|
out += ' ' + ($closingBraces.slice(0, -1)) + ' ';
|
|
4505
4442
|
}
|
|
4506
4443
|
}
|
|
4507
|
-
out = it.util.cleanUpCode(out);
|
|
4508
4444
|
return out;
|
|
4509
4445
|
};
|
|
4510
4446
|
|
|
@@ -4524,7 +4460,7 @@ var anyOf = function generate_anyOf(it, $keyword, $ruleType) {
|
|
|
4524
4460
|
$it.level++;
|
|
4525
4461
|
var $nextValid = 'valid' + $it.level;
|
|
4526
4462
|
var $noEmptySchema = $schema.every(function($sch) {
|
|
4527
|
-
return it.util.schemaHasRules($sch, it.RULES.all);
|
|
4463
|
+
return (it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all));
|
|
4528
4464
|
});
|
|
4529
4465
|
if ($noEmptySchema) {
|
|
4530
4466
|
var $currentBaseId = $it.baseId;
|
|
@@ -4573,7 +4509,6 @@ var anyOf = function generate_anyOf(it, $keyword, $ruleType) {
|
|
|
4573
4509
|
if (it.opts.allErrors) {
|
|
4574
4510
|
out += ' } ';
|
|
4575
4511
|
}
|
|
4576
|
-
out = it.util.cleanUpCode(out);
|
|
4577
4512
|
} else {
|
|
4578
4513
|
if ($breakOnError) {
|
|
4579
4514
|
out += ' if (true) { ';
|
|
@@ -4667,7 +4602,7 @@ var contains = function generate_contains(it, $keyword, $ruleType) {
|
|
|
4667
4602
|
$dataNxt = $it.dataLevel = it.dataLevel + 1,
|
|
4668
4603
|
$nextData = 'data' + $dataNxt,
|
|
4669
4604
|
$currentBaseId = it.baseId,
|
|
4670
|
-
$nonEmptySchema = it.util.schemaHasRules($schema, it.RULES.all);
|
|
4605
|
+
$nonEmptySchema = (it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all));
|
|
4671
4606
|
out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';
|
|
4672
4607
|
if ($nonEmptySchema) {
|
|
4673
4608
|
var $wasComposite = it.compositeRule;
|
|
@@ -4726,7 +4661,6 @@ var contains = function generate_contains(it, $keyword, $ruleType) {
|
|
|
4726
4661
|
if (it.opts.allErrors) {
|
|
4727
4662
|
out += ' } ';
|
|
4728
4663
|
}
|
|
4729
|
-
out = it.util.cleanUpCode(out);
|
|
4730
4664
|
return out;
|
|
4731
4665
|
};
|
|
4732
4666
|
|
|
@@ -4748,6 +4682,7 @@ var dependencies = function generate_dependencies(it, $keyword, $ruleType) {
|
|
|
4748
4682
|
$propertyDeps = {},
|
|
4749
4683
|
$ownProperties = it.opts.ownProperties;
|
|
4750
4684
|
for ($property in $schema) {
|
|
4685
|
+
if ($property == '__proto__') continue;
|
|
4751
4686
|
var $sch = $schema[$property];
|
|
4752
4687
|
var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;
|
|
4753
4688
|
$deps[$property] = $sch;
|
|
@@ -4873,7 +4808,7 @@ var dependencies = function generate_dependencies(it, $keyword, $ruleType) {
|
|
|
4873
4808
|
var $currentBaseId = $it.baseId;
|
|
4874
4809
|
for (var $property in $schemaDeps) {
|
|
4875
4810
|
var $sch = $schemaDeps[$property];
|
|
4876
|
-
if (it.util.schemaHasRules($sch, it.RULES.all)) {
|
|
4811
|
+
if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {
|
|
4877
4812
|
out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';
|
|
4878
4813
|
if ($ownProperties) {
|
|
4879
4814
|
out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($property)) + '\') ';
|
|
@@ -4894,7 +4829,6 @@ var dependencies = function generate_dependencies(it, $keyword, $ruleType) {
|
|
|
4894
4829
|
if ($breakOnError) {
|
|
4895
4830
|
out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';
|
|
4896
4831
|
}
|
|
4897
|
-
out = it.util.cleanUpCode(out);
|
|
4898
4832
|
return out;
|
|
4899
4833
|
};
|
|
4900
4834
|
|
|
@@ -5126,8 +5060,8 @@ var _if = function generate_if(it, $keyword, $ruleType) {
|
|
|
5126
5060
|
var $nextValid = 'valid' + $it.level;
|
|
5127
5061
|
var $thenSch = it.schema['then'],
|
|
5128
5062
|
$elseSch = it.schema['else'],
|
|
5129
|
-
$thenPresent = $thenSch !== undefined && it.util.schemaHasRules($thenSch, it.RULES.all),
|
|
5130
|
-
$elsePresent = $elseSch !== undefined && it.util.schemaHasRules($elseSch, it.RULES.all),
|
|
5063
|
+
$thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? (typeof $thenSch == 'object' && Object.keys($thenSch).length > 0) || $thenSch === false : it.util.schemaHasRules($thenSch, it.RULES.all)),
|
|
5064
|
+
$elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? (typeof $elseSch == 'object' && Object.keys($elseSch).length > 0) || $elseSch === false : it.util.schemaHasRules($elseSch, it.RULES.all)),
|
|
5131
5065
|
$currentBaseId = $it.baseId;
|
|
5132
5066
|
if ($thenPresent || $elsePresent) {
|
|
5133
5067
|
var $ifClause;
|
|
@@ -5205,7 +5139,6 @@ var _if = function generate_if(it, $keyword, $ruleType) {
|
|
|
5205
5139
|
if ($breakOnError) {
|
|
5206
5140
|
out += ' else { ';
|
|
5207
5141
|
}
|
|
5208
|
-
out = it.util.cleanUpCode(out);
|
|
5209
5142
|
} else {
|
|
5210
5143
|
if ($breakOnError) {
|
|
5211
5144
|
out += ' if (true) { ';
|
|
@@ -5281,7 +5214,7 @@ var items = function generate_items(it, $keyword, $ruleType) {
|
|
|
5281
5214
|
l1 = arr1.length - 1;
|
|
5282
5215
|
while ($i < l1) {
|
|
5283
5216
|
$sch = arr1[$i += 1];
|
|
5284
|
-
if (it.util.schemaHasRules($sch, it.RULES.all)) {
|
|
5217
|
+
if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {
|
|
5285
5218
|
out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';
|
|
5286
5219
|
var $passData = $data + '[' + $i + ']';
|
|
5287
5220
|
$it.schema = $sch;
|
|
@@ -5304,7 +5237,7 @@ var items = function generate_items(it, $keyword, $ruleType) {
|
|
|
5304
5237
|
}
|
|
5305
5238
|
}
|
|
5306
5239
|
}
|
|
5307
|
-
if (typeof $additionalItems == 'object' && it.util.schemaHasRules($additionalItems, it.RULES.all)) {
|
|
5240
|
+
if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? (typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0) || $additionalItems === false : it.util.schemaHasRules($additionalItems, it.RULES.all))) {
|
|
5308
5241
|
$it.schema = $additionalItems;
|
|
5309
5242
|
$it.schemaPath = it.schemaPath + '.additionalItems';
|
|
5310
5243
|
$it.errSchemaPath = it.errSchemaPath + '/additionalItems';
|
|
@@ -5328,7 +5261,7 @@ var items = function generate_items(it, $keyword, $ruleType) {
|
|
|
5328
5261
|
$closingBraces += '}';
|
|
5329
5262
|
}
|
|
5330
5263
|
}
|
|
5331
|
-
} else if (it.util.schemaHasRules($schema, it.RULES.all)) {
|
|
5264
|
+
} else if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {
|
|
5332
5265
|
$it.schema = $schema;
|
|
5333
5266
|
$it.schemaPath = $schemaPath;
|
|
5334
5267
|
$it.errSchemaPath = $errSchemaPath;
|
|
@@ -5351,7 +5284,6 @@ var items = function generate_items(it, $keyword, $ruleType) {
|
|
|
5351
5284
|
if ($breakOnError) {
|
|
5352
5285
|
out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';
|
|
5353
5286
|
}
|
|
5354
|
-
out = it.util.cleanUpCode(out);
|
|
5355
5287
|
return out;
|
|
5356
5288
|
};
|
|
5357
5289
|
|
|
@@ -5380,6 +5312,12 @@ var _limit = function generate__limit(it, $keyword, $ruleType) {
|
|
|
5380
5312
|
$op = $isMax ? '<' : '>',
|
|
5381
5313
|
$notOp = $isMax ? '>' : '<',
|
|
5382
5314
|
$errorKeyword = undefined;
|
|
5315
|
+
if (!($isData || typeof $schema == 'number' || $schema === undefined)) {
|
|
5316
|
+
throw new Error($keyword + ' must be number');
|
|
5317
|
+
}
|
|
5318
|
+
if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {
|
|
5319
|
+
throw new Error($exclusiveKeyword + ' must be number or boolean');
|
|
5320
|
+
}
|
|
5383
5321
|
if ($isDataExcl) {
|
|
5384
5322
|
var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),
|
|
5385
5323
|
$exclusive = 'exclusive' + $lvl,
|
|
@@ -5530,6 +5468,9 @@ var _limitItems = function generate__limitItems(it, $keyword, $ruleType) {
|
|
|
5530
5468
|
} else {
|
|
5531
5469
|
$schemaValue = $schema;
|
|
5532
5470
|
}
|
|
5471
|
+
if (!($isData || typeof $schema == 'number')) {
|
|
5472
|
+
throw new Error($keyword + ' must be number');
|
|
5473
|
+
}
|
|
5533
5474
|
var $op = $keyword == 'maxItems' ? '>' : '<';
|
|
5534
5475
|
out += 'if ( ';
|
|
5535
5476
|
if ($isData) {
|
|
@@ -5607,6 +5548,9 @@ var _limitLength = function generate__limitLength(it, $keyword, $ruleType) {
|
|
|
5607
5548
|
} else {
|
|
5608
5549
|
$schemaValue = $schema;
|
|
5609
5550
|
}
|
|
5551
|
+
if (!($isData || typeof $schema == 'number')) {
|
|
5552
|
+
throw new Error($keyword + ' must be number');
|
|
5553
|
+
}
|
|
5610
5554
|
var $op = $keyword == 'maxLength' ? '>' : '<';
|
|
5611
5555
|
out += 'if ( ';
|
|
5612
5556
|
if ($isData) {
|
|
@@ -5689,6 +5633,9 @@ var _limitProperties = function generate__limitProperties(it, $keyword, $ruleTyp
|
|
|
5689
5633
|
} else {
|
|
5690
5634
|
$schemaValue = $schema;
|
|
5691
5635
|
}
|
|
5636
|
+
if (!($isData || typeof $schema == 'number')) {
|
|
5637
|
+
throw new Error($keyword + ' must be number');
|
|
5638
|
+
}
|
|
5692
5639
|
var $op = $keyword == 'maxProperties' ? '>' : '<';
|
|
5693
5640
|
out += 'if ( ';
|
|
5694
5641
|
if ($isData) {
|
|
@@ -5765,6 +5712,9 @@ var multipleOf = function generate_multipleOf(it, $keyword, $ruleType) {
|
|
|
5765
5712
|
} else {
|
|
5766
5713
|
$schemaValue = $schema;
|
|
5767
5714
|
}
|
|
5715
|
+
if (!($isData || typeof $schema == 'number')) {
|
|
5716
|
+
throw new Error($keyword + ' must be number');
|
|
5717
|
+
}
|
|
5768
5718
|
out += 'var division' + ($lvl) + ';if (';
|
|
5769
5719
|
if ($isData) {
|
|
5770
5720
|
out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \'number\' || ';
|
|
@@ -5838,7 +5788,7 @@ var not = function generate_not(it, $keyword, $ruleType) {
|
|
|
5838
5788
|
var $it = it.util.copy(it);
|
|
5839
5789
|
$it.level++;
|
|
5840
5790
|
var $nextValid = 'valid' + $it.level;
|
|
5841
|
-
if (it.util.schemaHasRules($schema, it.RULES.all)) {
|
|
5791
|
+
if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {
|
|
5842
5792
|
$it.schema = $schema;
|
|
5843
5793
|
$it.schemaPath = $schemaPath;
|
|
5844
5794
|
$it.errSchemaPath = $errSchemaPath;
|
|
@@ -5936,7 +5886,7 @@ var oneOf = function generate_oneOf(it, $keyword, $ruleType) {
|
|
|
5936
5886
|
l1 = arr1.length - 1;
|
|
5937
5887
|
while ($i < l1) {
|
|
5938
5888
|
$sch = arr1[$i += 1];
|
|
5939
|
-
if (it.util.schemaHasRules($sch, it.RULES.all)) {
|
|
5889
|
+
if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {
|
|
5940
5890
|
$it.schema = $sch;
|
|
5941
5891
|
$it.schemaPath = $schemaPath + '[' + $i + ']';
|
|
5942
5892
|
$it.errSchemaPath = $errSchemaPath + '/' + $i;
|
|
@@ -6076,9 +6026,9 @@ var properties = function generate_properties(it, $keyword, $ruleType) {
|
|
|
6076
6026
|
$dataNxt = $it.dataLevel = it.dataLevel + 1,
|
|
6077
6027
|
$nextData = 'data' + $dataNxt,
|
|
6078
6028
|
$dataProperties = 'dataProperties' + $lvl;
|
|
6079
|
-
var $schemaKeys = Object.keys($schema || {}),
|
|
6029
|
+
var $schemaKeys = Object.keys($schema || {}).filter(notProto),
|
|
6080
6030
|
$pProperties = it.schema.patternProperties || {},
|
|
6081
|
-
$pPropertyKeys = Object.keys($pProperties),
|
|
6031
|
+
$pPropertyKeys = Object.keys($pProperties).filter(notProto),
|
|
6082
6032
|
$aProperties = it.schema.additionalProperties,
|
|
6083
6033
|
$someProperties = $schemaKeys.length || $pPropertyKeys.length,
|
|
6084
6034
|
$noAdditional = $aProperties === false,
|
|
@@ -6088,7 +6038,13 @@ var properties = function generate_properties(it, $keyword, $ruleType) {
|
|
|
6088
6038
|
$ownProperties = it.opts.ownProperties,
|
|
6089
6039
|
$currentBaseId = it.baseId;
|
|
6090
6040
|
var $required = it.schema.required;
|
|
6091
|
-
if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired)
|
|
6041
|
+
if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {
|
|
6042
|
+
var $requiredHash = it.util.toHash($required);
|
|
6043
|
+
}
|
|
6044
|
+
|
|
6045
|
+
function notProto(p) {
|
|
6046
|
+
return p !== '__proto__';
|
|
6047
|
+
}
|
|
6092
6048
|
out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';
|
|
6093
6049
|
if ($ownProperties) {
|
|
6094
6050
|
out += ' var ' + ($dataProperties) + ' = undefined;';
|
|
@@ -6241,7 +6197,7 @@ var properties = function generate_properties(it, $keyword, $ruleType) {
|
|
|
6241
6197
|
while (i3 < l3) {
|
|
6242
6198
|
$propertyKey = arr3[i3 += 1];
|
|
6243
6199
|
var $sch = $schema[$propertyKey];
|
|
6244
|
-
if (it.util.schemaHasRules($sch, it.RULES.all)) {
|
|
6200
|
+
if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {
|
|
6245
6201
|
var $prop = it.util.getProperty($propertyKey),
|
|
6246
6202
|
$passData = $data + $prop,
|
|
6247
6203
|
$hasDefault = $useDefaults && $sch.default !== undefined;
|
|
@@ -6344,7 +6300,7 @@ var properties = function generate_properties(it, $keyword, $ruleType) {
|
|
|
6344
6300
|
while (i4 < l4) {
|
|
6345
6301
|
$pProperty = arr4[i4 += 1];
|
|
6346
6302
|
var $sch = $pProperties[$pProperty];
|
|
6347
|
-
if (it.util.schemaHasRules($sch, it.RULES.all)) {
|
|
6303
|
+
if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {
|
|
6348
6304
|
$it.schema = $sch;
|
|
6349
6305
|
$it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);
|
|
6350
6306
|
$it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);
|
|
@@ -6383,7 +6339,6 @@ var properties = function generate_properties(it, $keyword, $ruleType) {
|
|
|
6383
6339
|
if ($breakOnError) {
|
|
6384
6340
|
out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';
|
|
6385
6341
|
}
|
|
6386
|
-
out = it.util.cleanUpCode(out);
|
|
6387
6342
|
return out;
|
|
6388
6343
|
};
|
|
6389
6344
|
|
|
@@ -6402,7 +6357,7 @@ var propertyNames = function generate_propertyNames(it, $keyword, $ruleType) {
|
|
|
6402
6357
|
$it.level++;
|
|
6403
6358
|
var $nextValid = 'valid' + $it.level;
|
|
6404
6359
|
out += 'var ' + ($errs) + ' = errors;';
|
|
6405
|
-
if (it.util.schemaHasRules($schema, it.RULES.all)) {
|
|
6360
|
+
if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {
|
|
6406
6361
|
$it.schema = $schema;
|
|
6407
6362
|
$it.schemaPath = $schemaPath;
|
|
6408
6363
|
$it.errSchemaPath = $errSchemaPath;
|
|
@@ -6465,7 +6420,6 @@ var propertyNames = function generate_propertyNames(it, $keyword, $ruleType) {
|
|
|
6465
6420
|
if ($breakOnError) {
|
|
6466
6421
|
out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';
|
|
6467
6422
|
}
|
|
6468
|
-
out = it.util.cleanUpCode(out);
|
|
6469
6423
|
return out;
|
|
6470
6424
|
};
|
|
6471
6425
|
|
|
@@ -6494,7 +6448,7 @@ var required = function generate_required(it, $keyword, $ruleType) {
|
|
|
6494
6448
|
while (i1 < l1) {
|
|
6495
6449
|
$property = arr1[i1 += 1];
|
|
6496
6450
|
var $propertySch = it.schema.properties[$property];
|
|
6497
|
-
if (!($propertySch && it.util.schemaHasRules($propertySch, it.RULES.all))) {
|
|
6451
|
+
if (!($propertySch && (it.opts.strictKeywords ? (typeof $propertySch == 'object' && Object.keys($propertySch).length > 0) || $propertySch === false : it.util.schemaHasRules($propertySch, it.RULES.all)))) {
|
|
6498
6452
|
$required[$required.length] = $property;
|
|
6499
6453
|
}
|
|
6500
6454
|
}
|
|
@@ -6765,7 +6719,7 @@ var uniqueItems = function generate_uniqueItems(it, $keyword, $ruleType) {
|
|
|
6765
6719
|
} else {
|
|
6766
6720
|
out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';
|
|
6767
6721
|
var $method = 'checkDataType' + ($typeIsArray ? 's' : '');
|
|
6768
|
-
out += ' if (' + (it.util[$method]($itemType, 'item', true)) + ') continue; ';
|
|
6722
|
+
out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';
|
|
6769
6723
|
if ($typeIsArray) {
|
|
6770
6724
|
out += ' if (typeof item == \'string\') item = \'"\' + item; ';
|
|
6771
6725
|
}
|
|
@@ -6955,7 +6909,7 @@ var data = function (metaSchema, keywordsJsonPointers) {
|
|
|
6955
6909
|
keywords[key] = {
|
|
6956
6910
|
anyOf: [
|
|
6957
6911
|
schema,
|
|
6958
|
-
{ $ref: 'https://raw.githubusercontent.com/
|
|
6912
|
+
{ $ref: 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }
|
|
6959
6913
|
]
|
|
6960
6914
|
};
|
|
6961
6915
|
}
|
|
@@ -7547,20 +7501,10 @@ var jsonSchemaDraft07$1 = /*#__PURE__*/Object.freeze({
|
|
|
7547
7501
|
|
|
7548
7502
|
var require$$2 = getCjsExportFromNamespace(jsonSchemaDraft07$1);
|
|
7549
7503
|
|
|
7550
|
-
var
|
|
7551
|
-
|
|
7552
|
-
var metaSchema = require$$2;
|
|
7553
|
-
|
|
7554
|
-
var keyword = {
|
|
7555
|
-
add: addKeyword,
|
|
7556
|
-
get: getKeyword,
|
|
7557
|
-
remove: removeKeyword,
|
|
7558
|
-
validate: validateKeyword
|
|
7559
|
-
};
|
|
7560
|
-
|
|
7561
|
-
var definitionSchema = {
|
|
7504
|
+
var definition_schema = {
|
|
7505
|
+
$id: 'https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js',
|
|
7562
7506
|
definitions: {
|
|
7563
|
-
simpleTypes:
|
|
7507
|
+
simpleTypes: require$$2.definitions.simpleTypes
|
|
7564
7508
|
},
|
|
7565
7509
|
type: 'object',
|
|
7566
7510
|
dependencies: {
|
|
@@ -7570,7 +7514,7 @@ var definitionSchema = {
|
|
|
7570
7514
|
valid: {not: {required: ['macro']}}
|
|
7571
7515
|
},
|
|
7572
7516
|
properties: {
|
|
7573
|
-
type:
|
|
7517
|
+
type: require$$2.properties.type,
|
|
7574
7518
|
schema: {type: 'boolean'},
|
|
7575
7519
|
statements: {type: 'boolean'},
|
|
7576
7520
|
dependencies: {
|
|
@@ -7591,6 +7535,18 @@ var definitionSchema = {
|
|
|
7591
7535
|
}
|
|
7592
7536
|
};
|
|
7593
7537
|
|
|
7538
|
+
var IDENTIFIER$1 = /^[a-z_$][a-z0-9_$-]*$/i;
|
|
7539
|
+
|
|
7540
|
+
|
|
7541
|
+
|
|
7542
|
+
var keyword = {
|
|
7543
|
+
add: addKeyword,
|
|
7544
|
+
get: getKeyword,
|
|
7545
|
+
remove: removeKeyword,
|
|
7546
|
+
validate: validateKeyword
|
|
7547
|
+
};
|
|
7548
|
+
|
|
7549
|
+
|
|
7594
7550
|
/**
|
|
7595
7551
|
* Define custom keyword
|
|
7596
7552
|
* @this Ajv
|
|
@@ -7625,7 +7581,7 @@ function addKeyword(keyword, definition) {
|
|
|
7625
7581
|
metaSchema = {
|
|
7626
7582
|
anyOf: [
|
|
7627
7583
|
metaSchema,
|
|
7628
|
-
{ '$ref': 'https://raw.githubusercontent.com/
|
|
7584
|
+
{ '$ref': 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }
|
|
7629
7585
|
]
|
|
7630
7586
|
};
|
|
7631
7587
|
}
|
|
@@ -7714,7 +7670,7 @@ function removeKeyword(keyword) {
|
|
|
7714
7670
|
function validateKeyword(definition, throwError) {
|
|
7715
7671
|
validateKeyword.errors = null;
|
|
7716
7672
|
var v = this._validateKeyword = this._validateKeyword
|
|
7717
|
-
|| this.compile(
|
|
7673
|
+
|| this.compile(definition_schema, true);
|
|
7718
7674
|
|
|
7719
7675
|
if (v(definition)) return true;
|
|
7720
7676
|
validateKeyword.errors = v.errors;
|
|
@@ -7725,7 +7681,7 @@ function validateKeyword(definition, throwError) {
|
|
|
7725
7681
|
}
|
|
7726
7682
|
|
|
7727
7683
|
var $schema$1 = "http://json-schema.org/draft-07/schema#";
|
|
7728
|
-
var $id$1 = "https://raw.githubusercontent.com/
|
|
7684
|
+
var $id$1 = "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#";
|
|
7729
7685
|
var description = "Meta-schema for $data reference (JSON Schema extension proposal)";
|
|
7730
7686
|
var type$1 = "object";
|
|
7731
7687
|
var required$1 = [
|
|
@@ -7828,6 +7784,7 @@ function Ajv(opts) {
|
|
|
7828
7784
|
this._metaOpts = getMetaSchemaOptions(this);
|
|
7829
7785
|
|
|
7830
7786
|
if (opts.formats) addInitialFormats(this);
|
|
7787
|
+
if (opts.keywords) addInitialKeywords(this);
|
|
7831
7788
|
addDefaultMetaSchema(this);
|
|
7832
7789
|
if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta);
|
|
7833
7790
|
if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}});
|
|
@@ -8226,6 +8183,14 @@ function addInitialFormats(self) {
|
|
|
8226
8183
|
}
|
|
8227
8184
|
|
|
8228
8185
|
|
|
8186
|
+
function addInitialKeywords(self) {
|
|
8187
|
+
for (var name in self._opts.keywords) {
|
|
8188
|
+
var keyword = self._opts.keywords[name];
|
|
8189
|
+
self.addKeyword(name, keyword);
|
|
8190
|
+
}
|
|
8191
|
+
}
|
|
8192
|
+
|
|
8193
|
+
|
|
8229
8194
|
function checkUnique(self, id) {
|
|
8230
8195
|
if (self._schemas[id] || self._refs[id])
|
|
8231
8196
|
throw new Error('schema with key or id "' + id + '" already exists');
|