@redocly/ajv
Advanced tools
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const code_1 = require("../code"); | ||
| const util_1 = require("../../compile/util"); | ||
| const codegen_1 = require("../../compile/codegen"); | ||
@@ -16,7 +17,15 @@ const error = { | ||
| code(cxt) { | ||
| const { data, $data, schema, schemaCode, it } = cxt; | ||
| // TODO regexp should be wrapped in try/catchs | ||
| const { gen, data, $data, schema, schemaCode, it } = cxt; | ||
| const u = it.opts.unicodeRegExp ? "u" : ""; | ||
| const regExp = $data ? (0, codegen_1._) `(new RegExp(${schemaCode}, ${u}))` : (0, code_1.usePattern)(cxt, schema); | ||
| cxt.fail$data((0, codegen_1._) `!${regExp}.test(${data})`); | ||
| if ($data) { | ||
| const { regExp } = it.opts.code; | ||
| const regExpCode = regExp.code === "new RegExp" ? (0, codegen_1._) `new RegExp` : (0, util_1.useFunc)(gen, regExp); | ||
| const valid = gen.let("valid"); | ||
| gen.try(() => gen.assign(valid, (0, codegen_1._) `${regExpCode}(${schemaCode}, ${u}).test(${data})`), () => gen.assign(valid, false)); | ||
| cxt.fail$data((0, codegen_1._) `!${valid}`); | ||
| } | ||
| else { | ||
| const regExp = (0, code_1.usePattern)(cxt, schema); | ||
| cxt.fail$data((0, codegen_1._) `!${regExp}.test(${data})`); | ||
| } | ||
| }, | ||
@@ -23,0 +32,0 @@ }; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../../lib/vocabularies/validation/pattern.ts"],"names":[],"mappings":";;AAEA,kCAAkC;AAClC,mDAA4C;AAI5C,MAAM,KAAK,GAA2B;IACpC,OAAO,EAAE,CAAC,EAAC,UAAU,EAAC,EAAE,EAAE,CAAC,IAAA,aAAG,EAAA,uBAAuB,UAAU,GAAG;IAClE,MAAM,EAAE,CAAC,EAAC,UAAU,EAAC,EAAE,EAAE,CAAC,IAAA,WAAC,EAAA,aAAa,UAAU,GAAG;CACtD,CAAA;AAED,MAAM,GAAG,GAA0B;IACjC,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE,QAAQ;IACpB,KAAK,EAAE,IAAI;IACX,KAAK;IACL,IAAI,CAAC,GAAe;QAClB,MAAM,EAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAC,GAAG,GAAG,CAAA;QACjD,8CAA8C;QAC9C,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAA,WAAC,EAAA,eAAe,UAAU,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,iBAAU,EAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QACrF,GAAG,CAAC,SAAS,CAAC,IAAA,WAAC,EAAA,IAAI,MAAM,SAAS,IAAI,GAAG,CAAC,CAAA;IAC5C,CAAC;CACF,CAAA;AAED,kBAAe,GAAG,CAAA"} | ||
| {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../../lib/vocabularies/validation/pattern.ts"],"names":[],"mappings":";;AAEA,kCAAkC;AAClC,6CAA0C;AAC1C,mDAA4C;AAI5C,MAAM,KAAK,GAA2B;IACpC,OAAO,EAAE,CAAC,EAAC,UAAU,EAAC,EAAE,EAAE,CAAC,IAAA,aAAG,EAAA,uBAAuB,UAAU,GAAG;IAClE,MAAM,EAAE,CAAC,EAAC,UAAU,EAAC,EAAE,EAAE,CAAC,IAAA,WAAC,EAAA,aAAa,UAAU,GAAG;CACtD,CAAA;AAED,MAAM,GAAG,GAA0B;IACjC,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE,QAAQ;IACpB,KAAK,EAAE,IAAI;IACX,KAAK;IACL,IAAI,CAAC,GAAe;QAClB,MAAM,EAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAC,GAAG,GAAG,CAAA;QACtD,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QAC1C,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,EAAC,MAAM,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAA;YAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,IAAA,WAAC,EAAA,YAAY,CAAC,CAAC,CAAC,IAAA,cAAO,EAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YACtF,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC9B,GAAG,CAAC,GAAG,CACL,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAA,WAAC,EAAA,GAAG,UAAU,IAAI,UAAU,KAAK,CAAC,UAAU,IAAI,GAAG,CAAC,EAC5E,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAC/B,CAAA;YACD,GAAG,CAAC,SAAS,CAAC,IAAA,WAAC,EAAA,IAAI,KAAK,EAAE,CAAC,CAAA;QAC7B,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YACtC,GAAG,CAAC,SAAS,CAAC,IAAA,WAAC,EAAA,IAAI,MAAM,SAAS,IAAI,GAAG,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;CACF,CAAA;AAED,kBAAe,GAAG,CAAA"} |
| import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from "../../types" | ||
| import type {KeywordCxt} from "../../compile/validate" | ||
| import {usePattern} from "../code" | ||
| import {useFunc} from "../../compile/util" | ||
| import {_, str} from "../../compile/codegen" | ||
@@ -20,7 +21,17 @@ | ||
| code(cxt: KeywordCxt) { | ||
| const {data, $data, schema, schemaCode, it} = cxt | ||
| // TODO regexp should be wrapped in try/catchs | ||
| const {gen, data, $data, schema, schemaCode, it} = cxt | ||
| const u = it.opts.unicodeRegExp ? "u" : "" | ||
| const regExp = $data ? _`(new RegExp(${schemaCode}, ${u}))` : usePattern(cxt, schema) | ||
| cxt.fail$data(_`!${regExp}.test(${data})`) | ||
| if ($data) { | ||
| const {regExp} = it.opts.code | ||
| const regExpCode = regExp.code === "new RegExp" ? _`new RegExp` : useFunc(gen, regExp) | ||
| const valid = gen.let("valid") | ||
| gen.try( | ||
| () => gen.assign(valid, _`${regExpCode}(${schemaCode}, ${u}).test(${data})`), | ||
| () => gen.assign(valid, false) | ||
| ) | ||
| cxt.fail$data(_`!${valid}`) | ||
| } else { | ||
| const regExp = usePattern(cxt, schema) | ||
| cxt.fail$data(_`!${regExp}.test(${data})`) | ||
| } | ||
| }, | ||
@@ -27,0 +38,0 @@ } |
+1
-1
| { | ||
| "name": "@redocly/ajv", | ||
| "version": "8.17.4", | ||
| "version": "8.18.0", | ||
| "description": "Another JSON Schema Validator", | ||
@@ -5,0 +5,0 @@ "main": "dist/ajv.js", |
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Found 2 instances
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Found 2 instances
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
1083481
0.12%21112
0.09%