Delete 100 files via Git Manager GUI
This commit is contained in:
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"items2020.js","sourceRoot":"","sources":["../../../lib/vocabularies/applicator/items2020.ts"],"names":[],"mappings":";;AAOA,mDAA4C;AAC5C,6CAAoD;AACpD,kCAAqC;AACrC,uDAAyD;AAIzD,MAAM,KAAK,GAA2B;IACpC,OAAO,EAAE,CAAC,EAAC,MAAM,EAAE,EAAC,GAAG,EAAC,EAAC,EAAE,EAAE,CAAC,IAAA,aAAG,EAAA,2BAA2B,GAAG,QAAQ;IACvE,MAAM,EAAE,CAAC,EAAC,MAAM,EAAE,EAAC,GAAG,EAAC,EAAC,EAAE,EAAE,CAAC,IAAA,WAAC,EAAA,WAAW,GAAG,GAAG;CAChD,CAAA;AAED,MAAM,GAAG,GAA0B;IACjC,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,OAAO;IACb,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;IACjC,MAAM,EAAE,aAAa;IACrB,KAAK;IACL,IAAI,CAAC,GAAe;QAClB,MAAM,EAAC,MAAM,EAAE,YAAY,EAAE,EAAE,EAAC,GAAG,GAAG,CAAA;QACtC,MAAM,EAAC,WAAW,EAAC,GAAG,YAAY,CAAA;QAClC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAA;QACf,IAAI,IAAA,wBAAiB,EAAC,EAAE,EAAE,MAAM,CAAC;YAAE,OAAM;QACzC,IAAI,WAAW;YAAE,IAAA,yCAAuB,EAAC,GAAG,EAAE,WAAW,CAAC,CAAA;;YACrD,GAAG,CAAC,EAAE,CAAC,IAAA,oBAAa,EAAC,GAAG,CAAC,CAAC,CAAA;IACjC,CAAC;CACF,CAAA;AAED,kBAAe,GAAG,CAAA"}
|
||||
-4
@@ -1,4 +0,0 @@
|
||||
import type { CodeKeywordDefinition, ErrorNoParams, AnySchema } from "../../types";
|
||||
export type NotKeywordError = ErrorNoParams<"not", AnySchema>;
|
||||
declare const def: CodeKeywordDefinition;
|
||||
export default def;
|
||||
-26
@@ -1,26 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const util_1 = require("../../compile/util");
|
||||
const def = {
|
||||
keyword: "not",
|
||||
schemaType: ["object", "boolean"],
|
||||
trackErrors: true,
|
||||
code(cxt) {
|
||||
const { gen, schema, it } = cxt;
|
||||
if ((0, util_1.alwaysValidSchema)(it, schema)) {
|
||||
cxt.fail();
|
||||
return;
|
||||
}
|
||||
const valid = gen.name("valid");
|
||||
cxt.subschema({
|
||||
keyword: "not",
|
||||
compositeRule: true,
|
||||
createErrors: false,
|
||||
allErrors: false,
|
||||
}, valid);
|
||||
cxt.failResult(valid, () => cxt.reset(), () => cxt.error());
|
||||
},
|
||||
error: { message: "must NOT be valid" },
|
||||
};
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=not.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"not.js","sourceRoot":"","sources":["../../../lib/vocabularies/applicator/not.ts"],"names":[],"mappings":";;AAEA,6CAAoD;AAIpD,MAAM,GAAG,GAA0B;IACjC,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;IACjC,WAAW,EAAE,IAAI;IACjB,IAAI,CAAC,GAAe;QAClB,MAAM,EAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAC,GAAG,GAAG,CAAA;QAC7B,IAAI,IAAA,wBAAiB,EAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;YAClC,GAAG,CAAC,IAAI,EAAE,CAAA;YACV,OAAM;QACR,CAAC;QAED,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC/B,GAAG,CAAC,SAAS,CACX;YACE,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,KAAK;YACnB,SAAS,EAAE,KAAK;SACjB,EACD,KAAK,CACN,CAAA;QAED,GAAG,CAAC,UAAU,CACZ,KAAK,EACL,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,EACjB,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAClB,CAAA;IACH,CAAC;IACD,KAAK,EAAE,EAAC,OAAO,EAAE,mBAAmB,EAAC;CACtC,CAAA;AAED,kBAAe,GAAG,CAAA"}
|
||||
-6
@@ -1,6 +0,0 @@
|
||||
import type { CodeKeywordDefinition, ErrorObject, AnySchema } from "../../types";
|
||||
export type OneOfError = ErrorObject<"oneOf", {
|
||||
passingSchemas: [number, number] | null;
|
||||
}, AnySchema[]>;
|
||||
declare const def: CodeKeywordDefinition;
|
||||
export default def;
|
||||
-60
@@ -1,60 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const codegen_1 = require("../../compile/codegen");
|
||||
const util_1 = require("../../compile/util");
|
||||
const error = {
|
||||
message: "must match exactly one schema in oneOf",
|
||||
params: ({ params }) => (0, codegen_1._) `{passingSchemas: ${params.passing}}`,
|
||||
};
|
||||
const def = {
|
||||
keyword: "oneOf",
|
||||
schemaType: "array",
|
||||
trackErrors: true,
|
||||
error,
|
||||
code(cxt) {
|
||||
const { gen, schema, parentSchema, it } = cxt;
|
||||
/* istanbul ignore if */
|
||||
if (!Array.isArray(schema))
|
||||
throw new Error("ajv implementation error");
|
||||
if (it.opts.discriminator && parentSchema.discriminator)
|
||||
return;
|
||||
const schArr = schema;
|
||||
const valid = gen.let("valid", false);
|
||||
const passing = gen.let("passing", null);
|
||||
const schValid = gen.name("_valid");
|
||||
cxt.setParams({ passing });
|
||||
// TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas
|
||||
gen.block(validateOneOf);
|
||||
cxt.result(valid, () => cxt.reset(), () => cxt.error(true));
|
||||
function validateOneOf() {
|
||||
schArr.forEach((sch, i) => {
|
||||
let schCxt;
|
||||
if ((0, util_1.alwaysValidSchema)(it, sch)) {
|
||||
gen.var(schValid, true);
|
||||
}
|
||||
else {
|
||||
schCxt = cxt.subschema({
|
||||
keyword: "oneOf",
|
||||
schemaProp: i,
|
||||
compositeRule: true,
|
||||
}, schValid);
|
||||
}
|
||||
if (i > 0) {
|
||||
gen
|
||||
.if((0, codegen_1._) `${schValid} && ${valid}`)
|
||||
.assign(valid, false)
|
||||
.assign(passing, (0, codegen_1._) `[${passing}, ${i}]`)
|
||||
.else();
|
||||
}
|
||||
gen.if(schValid, () => {
|
||||
gen.assign(valid, true);
|
||||
gen.assign(passing, i);
|
||||
if (schCxt)
|
||||
cxt.mergeEvaluated(schCxt, codegen_1.Name);
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
};
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=oneOf.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"oneOf.js","sourceRoot":"","sources":["../../../lib/vocabularies/applicator/oneOf.ts"],"names":[],"mappings":";;AAOA,mDAA6C;AAC7C,6CAAoD;AASpD,MAAM,KAAK,GAA2B;IACpC,OAAO,EAAE,wCAAwC;IACjD,MAAM,EAAE,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,IAAA,WAAC,EAAA,oBAAoB,MAAM,CAAC,OAAO,GAAG;CAC7D,CAAA;AAED,MAAM,GAAG,GAA0B;IACjC,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,OAAO;IACnB,WAAW,EAAE,IAAI;IACjB,KAAK;IACL,IAAI,CAAC,GAAe;QAClB,MAAM,EAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAC,GAAG,GAAG,CAAA;QAC3C,wBAAwB;QACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QACvE,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,IAAI,YAAY,CAAC,aAAa;YAAE,OAAM;QAC/D,MAAM,MAAM,GAAgB,MAAM,CAAA;QAClC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACrC,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QACxC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACnC,GAAG,CAAC,SAAS,CAAC,EAAC,OAAO,EAAC,CAAC,CAAA;QACxB,2GAA2G;QAE3G,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QAExB,GAAG,CAAC,MAAM,CACR,KAAK,EACL,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,EACjB,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CACtB,CAAA;QAED,SAAS,aAAa;YACpB,MAAM,CAAC,OAAO,CAAC,CAAC,GAAc,EAAE,CAAS,EAAE,EAAE;gBAC3C,IAAI,MAA6B,CAAA;gBACjC,IAAI,IAAA,wBAAiB,EAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;oBAC/B,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;gBACzB,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,GAAG,CAAC,SAAS,CACpB;wBACE,OAAO,EAAE,OAAO;wBAChB,UAAU,EAAE,CAAC;wBACb,aAAa,EAAE,IAAI;qBACpB,EACD,QAAQ,CACT,CAAA;gBACH,CAAC;gBAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBACV,GAAG;yBACA,EAAE,CAAC,IAAA,WAAC,EAAA,GAAG,QAAQ,OAAO,KAAK,EAAE,CAAC;yBAC9B,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;yBACpB,MAAM,CAAC,OAAO,EAAE,IAAA,WAAC,EAAA,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC;yBACtC,IAAI,EAAE,CAAA;gBACX,CAAC;gBAED,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;oBACpB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;oBACvB,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;oBACtB,IAAI,MAAM;wBAAE,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,cAAI,CAAC,CAAA;gBAC9C,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AAED,kBAAe,GAAG,CAAA"}
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
import type { CodeKeywordDefinition } from "../../types";
|
||||
declare const def: CodeKeywordDefinition;
|
||||
export default def;
|
||||
-75
@@ -1,75 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const code_1 = require("../code");
|
||||
const codegen_1 = require("../../compile/codegen");
|
||||
const util_1 = require("../../compile/util");
|
||||
const util_2 = require("../../compile/util");
|
||||
const def = {
|
||||
keyword: "patternProperties",
|
||||
type: "object",
|
||||
schemaType: "object",
|
||||
code(cxt) {
|
||||
const { gen, schema, data, parentSchema, it } = cxt;
|
||||
const { opts } = it;
|
||||
const patterns = (0, code_1.allSchemaProperties)(schema);
|
||||
const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));
|
||||
if (patterns.length === 0 ||
|
||||
(alwaysValidPatterns.length === patterns.length &&
|
||||
(!it.opts.unevaluated || it.props === true))) {
|
||||
return;
|
||||
}
|
||||
const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;
|
||||
const valid = gen.name("valid");
|
||||
if (it.props !== true && !(it.props instanceof codegen_1.Name)) {
|
||||
it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);
|
||||
}
|
||||
const { props } = it;
|
||||
validatePatternProperties();
|
||||
function validatePatternProperties() {
|
||||
for (const pat of patterns) {
|
||||
if (checkProperties)
|
||||
checkMatchingProperties(pat);
|
||||
if (it.allErrors) {
|
||||
validateProperties(pat);
|
||||
}
|
||||
else {
|
||||
gen.var(valid, true); // TODO var
|
||||
validateProperties(pat);
|
||||
gen.if(valid);
|
||||
}
|
||||
}
|
||||
}
|
||||
function checkMatchingProperties(pat) {
|
||||
for (const prop in checkProperties) {
|
||||
if (new RegExp(pat).test(prop)) {
|
||||
(0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);
|
||||
}
|
||||
}
|
||||
}
|
||||
function validateProperties(pat) {
|
||||
gen.forIn("key", data, (key) => {
|
||||
gen.if((0, codegen_1._) `${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {
|
||||
const alwaysValid = alwaysValidPatterns.includes(pat);
|
||||
if (!alwaysValid) {
|
||||
cxt.subschema({
|
||||
keyword: "patternProperties",
|
||||
schemaProp: pat,
|
||||
dataProp: key,
|
||||
dataPropType: util_2.Type.Str,
|
||||
}, valid);
|
||||
}
|
||||
if (it.opts.unevaluated && props !== true) {
|
||||
gen.assign((0, codegen_1._) `${props}[${key}]`, true);
|
||||
}
|
||||
else if (!alwaysValid && !it.allErrors) {
|
||||
// can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)
|
||||
// or if all properties were evaluated (props === true)
|
||||
gen.if((0, codegen_1.not)(valid), () => gen.break());
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
};
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=patternProperties.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"patternProperties.js","sourceRoot":"","sources":["../../../lib/vocabularies/applicator/patternProperties.ts"],"names":[],"mappings":"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"}
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
import type { CodeKeywordDefinition } from "../../types";
|
||||
declare const def: CodeKeywordDefinition;
|
||||
export default def;
|
||||
-12
@@ -1,12 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const items_1 = require("./items");
|
||||
const def = {
|
||||
keyword: "prefixItems",
|
||||
type: "array",
|
||||
schemaType: ["array"],
|
||||
before: "uniqueItems",
|
||||
code: (cxt) => (0, items_1.validateTuple)(cxt, "items"),
|
||||
};
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=prefixItems.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"prefixItems.js","sourceRoot":"","sources":["../../../lib/vocabularies/applicator/prefixItems.ts"],"names":[],"mappings":";;AACA,mCAAqC;AAErC,MAAM,GAAG,GAA0B;IACjC,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,OAAO;IACb,UAAU,EAAE,CAAC,OAAO,CAAC;IACrB,MAAM,EAAE,aAAa;IACrB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,qBAAa,EAAC,GAAG,EAAE,OAAO,CAAC;CAC3C,CAAA;AAED,kBAAe,GAAG,CAAA"}
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
import type { CodeKeywordDefinition } from "../../types";
|
||||
declare const def: CodeKeywordDefinition;
|
||||
export default def;
|
||||
-54
@@ -1,54 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const validate_1 = require("../../compile/validate");
|
||||
const code_1 = require("../code");
|
||||
const util_1 = require("../../compile/util");
|
||||
const additionalProperties_1 = require("./additionalProperties");
|
||||
const def = {
|
||||
keyword: "properties",
|
||||
type: "object",
|
||||
schemaType: "object",
|
||||
code(cxt) {
|
||||
const { gen, schema, parentSchema, data, it } = cxt;
|
||||
if (it.opts.removeAdditional === "all" && parentSchema.additionalProperties === undefined) {
|
||||
additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, "additionalProperties"));
|
||||
}
|
||||
const allProps = (0, code_1.allSchemaProperties)(schema);
|
||||
for (const prop of allProps) {
|
||||
it.definedProperties.add(prop);
|
||||
}
|
||||
if (it.opts.unevaluated && allProps.length && it.props !== true) {
|
||||
it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);
|
||||
}
|
||||
const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));
|
||||
if (properties.length === 0)
|
||||
return;
|
||||
const valid = gen.name("valid");
|
||||
for (const prop of properties) {
|
||||
if (hasDefault(prop)) {
|
||||
applyPropertySchema(prop);
|
||||
}
|
||||
else {
|
||||
gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));
|
||||
applyPropertySchema(prop);
|
||||
if (!it.allErrors)
|
||||
gen.else().var(valid, true);
|
||||
gen.endIf();
|
||||
}
|
||||
cxt.it.definedProperties.add(prop);
|
||||
cxt.ok(valid);
|
||||
}
|
||||
function hasDefault(prop) {
|
||||
return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined;
|
||||
}
|
||||
function applyPropertySchema(prop) {
|
||||
cxt.subschema({
|
||||
keyword: "properties",
|
||||
schemaProp: prop,
|
||||
dataProp: prop,
|
||||
}, valid);
|
||||
}
|
||||
},
|
||||
};
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=properties.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../lib/vocabularies/applicator/properties.ts"],"names":[],"mappings":";;AACA,qDAAiD;AACjD,kCAA2D;AAC3D,6CAA4E;AAC5E,iEAA0C;AAE1C,MAAM,GAAG,GAA0B;IACjC,OAAO,EAAE,YAAY;IACrB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE,QAAQ;IACpB,IAAI,CAAC,GAAe;QAClB,MAAM,EAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAC,GAAG,GAAG,CAAA;QACjD,IAAI,EAAE,CAAC,IAAI,CAAC,gBAAgB,KAAK,KAAK,IAAI,YAAY,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;YAC1F,8BAAK,CAAC,IAAI,CAAC,IAAI,qBAAU,CAAC,EAAE,EAAE,8BAAK,EAAE,sBAAsB,CAAC,CAAC,CAAA;QAC/D,CAAC;QACD,MAAM,QAAQ,GAAG,IAAA,0BAAmB,EAAC,MAAM,CAAC,CAAA;QAC5C,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAChC,CAAC;QACD,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAChE,EAAE,CAAC,KAAK,GAAG,qBAAc,CAAC,KAAK,CAAC,GAAG,EAAE,IAAA,aAAM,EAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;QAClE,CAAC;QACD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,wBAAiB,EAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QACnC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAE/B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,mBAAmB,CAAC,IAAI,CAAC,CAAA;YAC3B,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,EAAE,CAAC,IAAA,qBAAc,EAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAA;gBAC9D,mBAAmB,CAAC,IAAI,CAAC,CAAA;gBACzB,IAAI,CAAC,EAAE,CAAC,SAAS;oBAAE,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;gBAC9C,GAAG,CAAC,KAAK,EAAE,CAAA;YACb,CAAC;YACD,GAAG,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAClC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;QACf,CAAC;QAED,SAAS,UAAU,CAAC,IAAY;YAC9B,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,CAAA;QACvF,CAAC;QAED,SAAS,mBAAmB,CAAC,IAAY;YACvC,GAAG,CAAC,SAAS,CACX;gBACE,OAAO,EAAE,YAAY;gBACrB,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,IAAI;aACf,EACD,KAAK,CACN,CAAA;QACH,CAAC;IACH,CAAC;CACF,CAAA;AAED,kBAAe,GAAG,CAAA"}
|
||||
-6
@@ -1,6 +0,0 @@
|
||||
import type { CodeKeywordDefinition, ErrorObject, AnySchema } from "../../types";
|
||||
export type PropertyNamesError = ErrorObject<"propertyNames", {
|
||||
propertyName: string;
|
||||
}, AnySchema>;
|
||||
declare const def: CodeKeywordDefinition;
|
||||
export default def;
|
||||
-38
@@ -1,38 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const codegen_1 = require("../../compile/codegen");
|
||||
const util_1 = require("../../compile/util");
|
||||
const error = {
|
||||
message: "property name must be valid",
|
||||
params: ({ params }) => (0, codegen_1._) `{propertyName: ${params.propertyName}}`,
|
||||
};
|
||||
const def = {
|
||||
keyword: "propertyNames",
|
||||
type: "object",
|
||||
schemaType: ["object", "boolean"],
|
||||
error,
|
||||
code(cxt) {
|
||||
const { gen, schema, data, it } = cxt;
|
||||
if ((0, util_1.alwaysValidSchema)(it, schema))
|
||||
return;
|
||||
const valid = gen.name("valid");
|
||||
gen.forIn("key", data, (key) => {
|
||||
cxt.setParams({ propertyName: key });
|
||||
cxt.subschema({
|
||||
keyword: "propertyNames",
|
||||
data: key,
|
||||
dataTypes: ["string"],
|
||||
propertyName: key,
|
||||
compositeRule: true,
|
||||
}, valid);
|
||||
gen.if((0, codegen_1.not)(valid), () => {
|
||||
cxt.error(true);
|
||||
if (!it.allErrors)
|
||||
gen.break();
|
||||
});
|
||||
});
|
||||
cxt.ok(valid);
|
||||
},
|
||||
};
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=propertyNames.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"propertyNames.js","sourceRoot":"","sources":["../../../lib/vocabularies/applicator/propertyNames.ts"],"names":[],"mappings":";;AAOA,mDAA4C;AAC5C,6CAAoD;AAIpD,MAAM,KAAK,GAA2B;IACpC,OAAO,EAAE,6BAA6B;IACtC,MAAM,EAAE,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,IAAA,WAAC,EAAA,kBAAkB,MAAM,CAAC,YAAY,GAAG;CAChE,CAAA;AAED,MAAM,GAAG,GAA0B;IACjC,OAAO,EAAE,eAAe;IACxB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;IACjC,KAAK;IACL,IAAI,CAAC,GAAe;QAClB,MAAM,EAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAC,GAAG,GAAG,CAAA;QACnC,IAAI,IAAA,wBAAiB,EAAC,EAAE,EAAE,MAAM,CAAC;YAAE,OAAM;QACzC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAE/B,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,GAAG,CAAC,SAAS,CAAC,EAAC,YAAY,EAAE,GAAG,EAAC,CAAC,CAAA;YAClC,GAAG,CAAC,SAAS,CACX;gBACE,OAAO,EAAE,eAAe;gBACxB,IAAI,EAAE,GAAG;gBACT,SAAS,EAAE,CAAC,QAAQ,CAAC;gBACrB,YAAY,EAAE,GAAG;gBACjB,aAAa,EAAE,IAAI;aACpB,EACD,KAAK,CACN,CAAA;YACD,GAAG,CAAC,EAAE,CAAC,IAAA,aAAG,EAAC,KAAK,CAAC,EAAE,GAAG,EAAE;gBACtB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACf,IAAI,CAAC,EAAE,CAAC,SAAS;oBAAE,GAAG,CAAC,KAAK,EAAE,CAAA;YAChC,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IACf,CAAC;CACF,CAAA;AAED,kBAAe,GAAG,CAAA"}
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
import type { CodeKeywordDefinition } from "../../types";
|
||||
declare const def: CodeKeywordDefinition;
|
||||
export default def;
|
||||
-13
@@ -1,13 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const util_1 = require("../../compile/util");
|
||||
const def = {
|
||||
keyword: ["then", "else"],
|
||||
schemaType: ["object", "boolean"],
|
||||
code({ keyword, parentSchema, it }) {
|
||||
if (parentSchema.if === undefined)
|
||||
(0, util_1.checkStrictMode)(it, `"${keyword}" without "if" is ignored`);
|
||||
},
|
||||
};
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=thenElse.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"thenElse.js","sourceRoot":"","sources":["../../../lib/vocabularies/applicator/thenElse.ts"],"names":[],"mappings":";;AAEA,6CAAkD;AAElD,MAAM,GAAG,GAA0B;IACjC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;IACjC,IAAI,CAAC,EAAC,OAAO,EAAE,YAAY,EAAE,EAAE,EAAa;QAC1C,IAAI,YAAY,CAAC,EAAE,KAAK,SAAS;YAAE,IAAA,sBAAe,EAAC,EAAE,EAAE,IAAI,OAAO,2BAA2B,CAAC,CAAA;IAChG,CAAC;CACF,CAAA;AAED,kBAAe,GAAG,CAAA"}
|
||||
-17
@@ -1,17 +0,0 @@
|
||||
import type { SchemaMap } from "../types";
|
||||
import type { SchemaCxt } from "../compile";
|
||||
import type { KeywordCxt } from "../compile/validate";
|
||||
import { CodeGen, Code, Name } from "../compile/codegen";
|
||||
export declare function checkReportMissingProp(cxt: KeywordCxt, prop: string): void;
|
||||
export declare function checkMissingProp({ gen, data, it: { opts } }: KeywordCxt, properties: string[], missing: Name): Code;
|
||||
export declare function reportMissingProp(cxt: KeywordCxt, missing: Name): void;
|
||||
export declare function hasPropFunc(gen: CodeGen): Name;
|
||||
export declare function isOwnProperty(gen: CodeGen, data: Name, property: Name | string): Code;
|
||||
export declare function propertyInData(gen: CodeGen, data: Name, property: Name | string, ownProperties?: boolean): Code;
|
||||
export declare function noPropertyInData(gen: CodeGen, data: Name, property: Name | string, ownProperties?: boolean): Code;
|
||||
export declare function allSchemaProperties(schemaMap?: SchemaMap): string[];
|
||||
export declare function schemaProperties(it: SchemaCxt, schemaMap: SchemaMap): string[];
|
||||
export declare function callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }: KeywordCxt, func: Code, context: Code, passSchema?: boolean): Code;
|
||||
export declare function usePattern({ gen, it: { opts } }: KeywordCxt, pattern: string): Name;
|
||||
export declare function validateArray(cxt: KeywordCxt): Name;
|
||||
export declare function validateUnion(cxt: KeywordCxt): void;
|
||||
-131
@@ -1,131 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;
|
||||
const codegen_1 = require("../compile/codegen");
|
||||
const util_1 = require("../compile/util");
|
||||
const names_1 = require("../compile/names");
|
||||
const util_2 = require("../compile/util");
|
||||
function checkReportMissingProp(cxt, prop) {
|
||||
const { gen, data, it } = cxt;
|
||||
gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {
|
||||
cxt.setParams({ missingProperty: (0, codegen_1._) `${prop}` }, true);
|
||||
cxt.error();
|
||||
});
|
||||
}
|
||||
exports.checkReportMissingProp = checkReportMissingProp;
|
||||
function checkMissingProp({ gen, data, it: { opts } }, properties, missing) {
|
||||
return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._) `${missing} = ${prop}`)));
|
||||
}
|
||||
exports.checkMissingProp = checkMissingProp;
|
||||
function reportMissingProp(cxt, missing) {
|
||||
cxt.setParams({ missingProperty: missing }, true);
|
||||
cxt.error();
|
||||
}
|
||||
exports.reportMissingProp = reportMissingProp;
|
||||
function hasPropFunc(gen) {
|
||||
return gen.scopeValue("func", {
|
||||
// eslint-disable-next-line @typescript-eslint/unbound-method
|
||||
ref: Object.prototype.hasOwnProperty,
|
||||
code: (0, codegen_1._) `Object.prototype.hasOwnProperty`,
|
||||
});
|
||||
}
|
||||
exports.hasPropFunc = hasPropFunc;
|
||||
function isOwnProperty(gen, data, property) {
|
||||
return (0, codegen_1._) `${hasPropFunc(gen)}.call(${data}, ${property})`;
|
||||
}
|
||||
exports.isOwnProperty = isOwnProperty;
|
||||
function propertyInData(gen, data, property, ownProperties) {
|
||||
const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} !== undefined`;
|
||||
return ownProperties ? (0, codegen_1._) `${cond} && ${isOwnProperty(gen, data, property)}` : cond;
|
||||
}
|
||||
exports.propertyInData = propertyInData;
|
||||
function noPropertyInData(gen, data, property, ownProperties) {
|
||||
const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} === undefined`;
|
||||
return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;
|
||||
}
|
||||
exports.noPropertyInData = noPropertyInData;
|
||||
function allSchemaProperties(schemaMap) {
|
||||
return schemaMap ? Object.keys(schemaMap).filter((p) => p !== "__proto__") : [];
|
||||
}
|
||||
exports.allSchemaProperties = allSchemaProperties;
|
||||
function schemaProperties(it, schemaMap) {
|
||||
return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));
|
||||
}
|
||||
exports.schemaProperties = schemaProperties;
|
||||
function callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {
|
||||
const dataAndSchema = passSchema ? (0, codegen_1._) `${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;
|
||||
const valCxt = [
|
||||
[names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],
|
||||
[names_1.default.parentData, it.parentData],
|
||||
[names_1.default.parentDataProperty, it.parentDataProperty],
|
||||
[names_1.default.rootData, names_1.default.rootData],
|
||||
];
|
||||
if (it.opts.dynamicRef)
|
||||
valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);
|
||||
const args = (0, codegen_1._) `${dataAndSchema}, ${gen.object(...valCxt)}`;
|
||||
return context !== codegen_1.nil ? (0, codegen_1._) `${func}.call(${context}, ${args})` : (0, codegen_1._) `${func}(${args})`;
|
||||
}
|
||||
exports.callValidateCode = callValidateCode;
|
||||
const newRegExp = (0, codegen_1._) `new RegExp`;
|
||||
function usePattern({ gen, it: { opts } }, pattern) {
|
||||
const u = opts.unicodeRegExp ? "u" : "";
|
||||
const { regExp } = opts.code;
|
||||
const rx = regExp(pattern, u);
|
||||
return gen.scopeValue("pattern", {
|
||||
key: rx.toString(),
|
||||
ref: rx,
|
||||
code: (0, codegen_1._) `${regExp.code === "new RegExp" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`,
|
||||
});
|
||||
}
|
||||
exports.usePattern = usePattern;
|
||||
function validateArray(cxt) {
|
||||
const { gen, data, keyword, it } = cxt;
|
||||
const valid = gen.name("valid");
|
||||
if (it.allErrors) {
|
||||
const validArr = gen.let("valid", true);
|
||||
validateItems(() => gen.assign(validArr, false));
|
||||
return validArr;
|
||||
}
|
||||
gen.var(valid, true);
|
||||
validateItems(() => gen.break());
|
||||
return valid;
|
||||
function validateItems(notValid) {
|
||||
const len = gen.const("len", (0, codegen_1._) `${data}.length`);
|
||||
gen.forRange("i", 0, len, (i) => {
|
||||
cxt.subschema({
|
||||
keyword,
|
||||
dataProp: i,
|
||||
dataPropType: util_1.Type.Num,
|
||||
}, valid);
|
||||
gen.if((0, codegen_1.not)(valid), notValid);
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.validateArray = validateArray;
|
||||
function validateUnion(cxt) {
|
||||
const { gen, schema, keyword, it } = cxt;
|
||||
/* istanbul ignore if */
|
||||
if (!Array.isArray(schema))
|
||||
throw new Error("ajv implementation error");
|
||||
const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));
|
||||
if (alwaysValid && !it.opts.unevaluated)
|
||||
return;
|
||||
const valid = gen.let("valid", false);
|
||||
const schValid = gen.name("_valid");
|
||||
gen.block(() => schema.forEach((_sch, i) => {
|
||||
const schCxt = cxt.subschema({
|
||||
keyword,
|
||||
schemaProp: i,
|
||||
compositeRule: true,
|
||||
}, schValid);
|
||||
gen.assign(valid, (0, codegen_1._) `${valid} || ${schValid}`);
|
||||
const merged = cxt.mergeValidEvaluated(schCxt, schValid);
|
||||
// can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)
|
||||
// or if all properties and items were evaluated (it.props === true && it.items === true)
|
||||
if (!merged)
|
||||
gen.if((0, codegen_1.not)(valid));
|
||||
}));
|
||||
cxt.result(valid, () => cxt.reset(), () => cxt.error(true));
|
||||
}
|
||||
exports.validateUnion = validateUnion;
|
||||
//# sourceMappingURL=code.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-3
@@ -1,3 +0,0 @@
|
||||
import type { CodeKeywordDefinition } from "../../types";
|
||||
declare const def: CodeKeywordDefinition;
|
||||
export default def;
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const def = {
|
||||
keyword: "id",
|
||||
code() {
|
||||
throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID');
|
||||
},
|
||||
};
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=id.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../../lib/vocabularies/core/id.ts"],"names":[],"mappings":";;AAEA,MAAM,GAAG,GAA0B;IACjC,OAAO,EAAE,IAAI;IACb,IAAI;QACF,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACzE,CAAC;CACF,CAAA;AAED,kBAAe,GAAG,CAAA"}
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
import type { Vocabulary } from "../../types";
|
||||
declare const core: Vocabulary;
|
||||
export default core;
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const id_1 = require("./id");
|
||||
const ref_1 = require("./ref");
|
||||
const core = [
|
||||
"$schema",
|
||||
"$id",
|
||||
"$defs",
|
||||
"$vocabulary",
|
||||
{ keyword: "$comment" },
|
||||
"definitions",
|
||||
id_1.default,
|
||||
ref_1.default,
|
||||
];
|
||||
exports.default = core;
|
||||
//# sourceMappingURL=index.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/vocabularies/core/index.ts"],"names":[],"mappings":";;AACA,6BAA4B;AAC5B,+BAA8B;AAE9B,MAAM,IAAI,GAAe;IACvB,SAAS;IACT,KAAK;IACL,OAAO;IACP,aAAa;IACb,EAAC,OAAO,EAAE,UAAU,EAAC;IACrB,aAAa;IACb,YAAS;IACT,aAAU;CACX,CAAA;AAED,kBAAe,IAAI,CAAA"}
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
import type { CodeKeywordDefinition } from "../../types";
|
||||
import type { KeywordCxt } from "../../compile/validate";
|
||||
import { Code } from "../../compile/codegen";
|
||||
import { SchemaEnv } from "../../compile";
|
||||
declare const def: CodeKeywordDefinition;
|
||||
export declare function getValidate(cxt: KeywordCxt, sch: SchemaEnv): Code;
|
||||
export declare function callRef(cxt: KeywordCxt, v: Code, sch?: SchemaEnv, $async?: boolean): void;
|
||||
export default def;
|
||||
-122
@@ -1,122 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.callRef = exports.getValidate = void 0;
|
||||
const ref_error_1 = require("../../compile/ref_error");
|
||||
const code_1 = require("../code");
|
||||
const codegen_1 = require("../../compile/codegen");
|
||||
const names_1 = require("../../compile/names");
|
||||
const compile_1 = require("../../compile");
|
||||
const util_1 = require("../../compile/util");
|
||||
const def = {
|
||||
keyword: "$ref",
|
||||
schemaType: "string",
|
||||
code(cxt) {
|
||||
const { gen, schema: $ref, it } = cxt;
|
||||
const { baseId, schemaEnv: env, validateName, opts, self } = it;
|
||||
const { root } = env;
|
||||
if (($ref === "#" || $ref === "#/") && baseId === root.baseId)
|
||||
return callRootRef();
|
||||
const schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref);
|
||||
if (schOrEnv === undefined)
|
||||
throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref);
|
||||
if (schOrEnv instanceof compile_1.SchemaEnv)
|
||||
return callValidate(schOrEnv);
|
||||
return inlineRefSchema(schOrEnv);
|
||||
function callRootRef() {
|
||||
if (env === root)
|
||||
return callRef(cxt, validateName, env, env.$async);
|
||||
const rootName = gen.scopeValue("root", { ref: root });
|
||||
return callRef(cxt, (0, codegen_1._) `${rootName}.validate`, root, root.$async);
|
||||
}
|
||||
function callValidate(sch) {
|
||||
const v = getValidate(cxt, sch);
|
||||
callRef(cxt, v, sch, sch.$async);
|
||||
}
|
||||
function inlineRefSchema(sch) {
|
||||
const schName = gen.scopeValue("schema", opts.code.source === true ? { ref: sch, code: (0, codegen_1.stringify)(sch) } : { ref: sch });
|
||||
const valid = gen.name("valid");
|
||||
const schCxt = cxt.subschema({
|
||||
schema: sch,
|
||||
dataTypes: [],
|
||||
schemaPath: codegen_1.nil,
|
||||
topSchemaRef: schName,
|
||||
errSchemaPath: $ref,
|
||||
}, valid);
|
||||
cxt.mergeEvaluated(schCxt);
|
||||
cxt.ok(valid);
|
||||
}
|
||||
},
|
||||
};
|
||||
function getValidate(cxt, sch) {
|
||||
const { gen } = cxt;
|
||||
return sch.validate
|
||||
? gen.scopeValue("validate", { ref: sch.validate })
|
||||
: (0, codegen_1._) `${gen.scopeValue("wrapper", { ref: sch })}.validate`;
|
||||
}
|
||||
exports.getValidate = getValidate;
|
||||
function callRef(cxt, v, sch, $async) {
|
||||
const { gen, it } = cxt;
|
||||
const { allErrors, schemaEnv: env, opts } = it;
|
||||
const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil;
|
||||
if ($async)
|
||||
callAsyncRef();
|
||||
else
|
||||
callSyncRef();
|
||||
function callAsyncRef() {
|
||||
if (!env.$async)
|
||||
throw new Error("async schema referenced by sync schema");
|
||||
const valid = gen.let("valid");
|
||||
gen.try(() => {
|
||||
gen.code((0, codegen_1._) `await ${(0, code_1.callValidateCode)(cxt, v, passCxt)}`);
|
||||
addEvaluatedFrom(v); // TODO will not work with async, it has to be returned with the result
|
||||
if (!allErrors)
|
||||
gen.assign(valid, true);
|
||||
}, (e) => {
|
||||
gen.if((0, codegen_1._) `!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e));
|
||||
addErrorsFrom(e);
|
||||
if (!allErrors)
|
||||
gen.assign(valid, false);
|
||||
});
|
||||
cxt.ok(valid);
|
||||
}
|
||||
function callSyncRef() {
|
||||
cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v));
|
||||
}
|
||||
function addErrorsFrom(source) {
|
||||
const errs = (0, codegen_1._) `${source}.errors`;
|
||||
gen.assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`); // TODO tagged
|
||||
gen.assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);
|
||||
}
|
||||
function addEvaluatedFrom(source) {
|
||||
var _a;
|
||||
if (!it.opts.unevaluated)
|
||||
return;
|
||||
const schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated;
|
||||
// TODO refactor
|
||||
if (it.props !== true) {
|
||||
if (schEvaluated && !schEvaluated.dynamicProps) {
|
||||
if (schEvaluated.props !== undefined) {
|
||||
it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props);
|
||||
}
|
||||
}
|
||||
else {
|
||||
const props = gen.var("props", (0, codegen_1._) `${source}.evaluated.props`);
|
||||
it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name);
|
||||
}
|
||||
}
|
||||
if (it.items !== true) {
|
||||
if (schEvaluated && !schEvaluated.dynamicItems) {
|
||||
if (schEvaluated.items !== undefined) {
|
||||
it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items);
|
||||
}
|
||||
}
|
||||
else {
|
||||
const items = gen.var("items", (0, codegen_1._) `${source}.evaluated.items`);
|
||||
it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.callRef = callRef;
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=ref.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-5
@@ -1,5 +0,0 @@
|
||||
import type { CodeKeywordDefinition } from "../../types";
|
||||
import { DiscrError, DiscrErrorObj } from "../discriminator/types";
|
||||
export type DiscriminatorError = DiscrErrorObj<DiscrError.Tag> | DiscrErrorObj<DiscrError.Mapping>;
|
||||
declare const def: CodeKeywordDefinition;
|
||||
export default def;
|
||||
-104
@@ -1,104 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const codegen_1 = require("../../compile/codegen");
|
||||
const types_1 = require("../discriminator/types");
|
||||
const compile_1 = require("../../compile");
|
||||
const ref_error_1 = require("../../compile/ref_error");
|
||||
const util_1 = require("../../compile/util");
|
||||
const error = {
|
||||
message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag
|
||||
? `tag "${tagName}" must be string`
|
||||
: `value of tag "${tagName}" must be in oneOf`,
|
||||
params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._) `{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,
|
||||
};
|
||||
const def = {
|
||||
keyword: "discriminator",
|
||||
type: "object",
|
||||
schemaType: "object",
|
||||
error,
|
||||
code(cxt) {
|
||||
const { gen, data, schema, parentSchema, it } = cxt;
|
||||
const { oneOf } = parentSchema;
|
||||
if (!it.opts.discriminator) {
|
||||
throw new Error("discriminator: requires discriminator option");
|
||||
}
|
||||
const tagName = schema.propertyName;
|
||||
if (typeof tagName != "string")
|
||||
throw new Error("discriminator: requires propertyName");
|
||||
if (schema.mapping)
|
||||
throw new Error("discriminator: mapping is not supported");
|
||||
if (!oneOf)
|
||||
throw new Error("discriminator: requires oneOf keyword");
|
||||
const valid = gen.let("valid", false);
|
||||
const tag = gen.const("tag", (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(tagName)}`);
|
||||
gen.if((0, codegen_1._) `typeof ${tag} == "string"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName }));
|
||||
cxt.ok(valid);
|
||||
function validateMapping() {
|
||||
const mapping = getMapping();
|
||||
gen.if(false);
|
||||
for (const tagValue in mapping) {
|
||||
gen.elseIf((0, codegen_1._) `${tag} === ${tagValue}`);
|
||||
gen.assign(valid, applyTagSchema(mapping[tagValue]));
|
||||
}
|
||||
gen.else();
|
||||
cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName });
|
||||
gen.endIf();
|
||||
}
|
||||
function applyTagSchema(schemaProp) {
|
||||
const _valid = gen.name("valid");
|
||||
const schCxt = cxt.subschema({ keyword: "oneOf", schemaProp }, _valid);
|
||||
cxt.mergeEvaluated(schCxt, codegen_1.Name);
|
||||
return _valid;
|
||||
}
|
||||
function getMapping() {
|
||||
var _a;
|
||||
const oneOfMapping = {};
|
||||
const topRequired = hasRequired(parentSchema);
|
||||
let tagRequired = true;
|
||||
for (let i = 0; i < oneOf.length; i++) {
|
||||
let sch = oneOf[i];
|
||||
if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) {
|
||||
const ref = sch.$ref;
|
||||
sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref);
|
||||
if (sch instanceof compile_1.SchemaEnv)
|
||||
sch = sch.schema;
|
||||
if (sch === undefined)
|
||||
throw new ref_error_1.default(it.opts.uriResolver, it.baseId, ref);
|
||||
}
|
||||
const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName];
|
||||
if (typeof propSch != "object") {
|
||||
throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${tagName}"`);
|
||||
}
|
||||
tagRequired = tagRequired && (topRequired || hasRequired(sch));
|
||||
addMappings(propSch, i);
|
||||
}
|
||||
if (!tagRequired)
|
||||
throw new Error(`discriminator: "${tagName}" must be required`);
|
||||
return oneOfMapping;
|
||||
function hasRequired({ required }) {
|
||||
return Array.isArray(required) && required.includes(tagName);
|
||||
}
|
||||
function addMappings(sch, i) {
|
||||
if (sch.const) {
|
||||
addMapping(sch.const, i);
|
||||
}
|
||||
else if (sch.enum) {
|
||||
for (const tagValue of sch.enum) {
|
||||
addMapping(tagValue, i);
|
||||
}
|
||||
}
|
||||
else {
|
||||
throw new Error(`discriminator: "properties/${tagName}" must have "const" or "enum"`);
|
||||
}
|
||||
}
|
||||
function addMapping(tagValue, i) {
|
||||
if (typeof tagValue != "string" || tagValue in oneOfMapping) {
|
||||
throw new Error(`discriminator: "${tagName}" values must be unique strings`);
|
||||
}
|
||||
oneOfMapping[tagValue] = i;
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=index.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/vocabularies/discriminator/index.ts"],"names":[],"mappings":"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"}
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
import type { ErrorObject } from "../../types";
|
||||
export declare enum DiscrError {
|
||||
Tag = "tag",
|
||||
Mapping = "mapping"
|
||||
}
|
||||
export type DiscrErrorObj<E extends DiscrError> = ErrorObject<"discriminator", {
|
||||
error: E;
|
||||
tag: string;
|
||||
tagValue: unknown;
|
||||
}, string>;
|
||||
-9
@@ -1,9 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.DiscrError = void 0;
|
||||
var DiscrError;
|
||||
(function (DiscrError) {
|
||||
DiscrError["Tag"] = "tag";
|
||||
DiscrError["Mapping"] = "mapping";
|
||||
})(DiscrError || (exports.DiscrError = DiscrError = {}));
|
||||
//# sourceMappingURL=types.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/vocabularies/discriminator/types.ts"],"names":[],"mappings":";;;AAEA,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,yBAAW,CAAA;IACX,iCAAmB,CAAA;AACrB,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB"}
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
import type { Vocabulary } from "../types";
|
||||
declare const draft2020Vocabularies: Vocabulary[];
|
||||
export default draft2020Vocabularies;
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const core_1 = require("./core");
|
||||
const validation_1 = require("./validation");
|
||||
const applicator_1 = require("./applicator");
|
||||
const dynamic_1 = require("./dynamic");
|
||||
const next_1 = require("./next");
|
||||
const unevaluated_1 = require("./unevaluated");
|
||||
const format_1 = require("./format");
|
||||
const metadata_1 = require("./metadata");
|
||||
const draft2020Vocabularies = [
|
||||
dynamic_1.default,
|
||||
core_1.default,
|
||||
validation_1.default,
|
||||
(0, applicator_1.default)(true),
|
||||
format_1.default,
|
||||
metadata_1.metadataVocabulary,
|
||||
metadata_1.contentVocabulary,
|
||||
next_1.default,
|
||||
unevaluated_1.default,
|
||||
];
|
||||
exports.default = draft2020Vocabularies;
|
||||
//# sourceMappingURL=draft2020.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"draft2020.js","sourceRoot":"","sources":["../../lib/vocabularies/draft2020.ts"],"names":[],"mappings":";;AACA,iCAAmC;AACnC,6CAA+C;AAC/C,6CAAkD;AAClD,uCAAyC;AACzC,iCAAmC;AACnC,+CAAiD;AACjD,qCAAuC;AACvC,yCAAgE;AAEhE,MAAM,qBAAqB,GAAiB;IAC1C,iBAAiB;IACjB,cAAc;IACd,oBAAoB;IACpB,IAAA,oBAAuB,EAAC,IAAI,CAAC;IAC7B,gBAAgB;IAChB,6BAAkB;IAClB,4BAAiB;IACjB,cAAc;IACd,qBAAqB;CACtB,CAAA;AAED,kBAAe,qBAAqB,CAAA"}
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
import type { Vocabulary } from "../types";
|
||||
declare const draft7Vocabularies: Vocabulary[];
|
||||
export default draft7Vocabularies;
|
||||
-17
@@ -1,17 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const core_1 = require("./core");
|
||||
const validation_1 = require("./validation");
|
||||
const applicator_1 = require("./applicator");
|
||||
const format_1 = require("./format");
|
||||
const metadata_1 = require("./metadata");
|
||||
const draft7Vocabularies = [
|
||||
core_1.default,
|
||||
validation_1.default,
|
||||
(0, applicator_1.default)(),
|
||||
format_1.default,
|
||||
metadata_1.metadataVocabulary,
|
||||
metadata_1.contentVocabulary,
|
||||
];
|
||||
exports.default = draft7Vocabularies;
|
||||
//# sourceMappingURL=draft7.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"draft7.js","sourceRoot":"","sources":["../../lib/vocabularies/draft7.ts"],"names":[],"mappings":";;AACA,iCAAmC;AACnC,6CAA+C;AAC/C,6CAAkD;AAClD,qCAAuC;AACvC,yCAAgE;AAEhE,MAAM,kBAAkB,GAAiB;IACvC,cAAc;IACd,oBAAoB;IACpB,IAAA,oBAAuB,GAAE;IACzB,gBAAgB;IAChB,6BAAkB;IAClB,4BAAiB;CAClB,CAAA;AAED,kBAAe,kBAAkB,CAAA"}
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
import type { CodeKeywordDefinition } from "../../types";
|
||||
import type { KeywordCxt } from "../../compile/validate";
|
||||
declare const def: CodeKeywordDefinition;
|
||||
export declare function dynamicAnchor(cxt: KeywordCxt, anchor: string): void;
|
||||
export default def;
|
||||
-30
@@ -1,30 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.dynamicAnchor = void 0;
|
||||
const codegen_1 = require("../../compile/codegen");
|
||||
const names_1 = require("../../compile/names");
|
||||
const compile_1 = require("../../compile");
|
||||
const ref_1 = require("../core/ref");
|
||||
const def = {
|
||||
keyword: "$dynamicAnchor",
|
||||
schemaType: "string",
|
||||
code: (cxt) => dynamicAnchor(cxt, cxt.schema),
|
||||
};
|
||||
function dynamicAnchor(cxt, anchor) {
|
||||
const { gen, it } = cxt;
|
||||
it.schemaEnv.root.dynamicAnchors[anchor] = true;
|
||||
const v = (0, codegen_1._) `${names_1.default.dynamicAnchors}${(0, codegen_1.getProperty)(anchor)}`;
|
||||
const validate = it.errSchemaPath === "#" ? it.validateName : _getValidate(cxt);
|
||||
gen.if((0, codegen_1._) `!${v}`, () => gen.assign(v, validate));
|
||||
}
|
||||
exports.dynamicAnchor = dynamicAnchor;
|
||||
function _getValidate(cxt) {
|
||||
const { schemaEnv, schema, self } = cxt.it;
|
||||
const { root, baseId, localRefs, meta } = schemaEnv.root;
|
||||
const { schemaId } = self.opts;
|
||||
const sch = new compile_1.SchemaEnv({ schema, schemaId, root, baseId, localRefs, meta });
|
||||
compile_1.compileSchema.call(self, sch);
|
||||
return (0, ref_1.getValidate)(cxt, sch);
|
||||
}
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=dynamicAnchor.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"dynamicAnchor.js","sourceRoot":"","sources":["../../../lib/vocabularies/dynamic/dynamicAnchor.ts"],"names":[],"mappings":";;;AAEA,mDAA0D;AAC1D,+CAAmC;AACnC,2CAAsD;AACtD,qCAAuC;AAEvC,MAAM,GAAG,GAA0B;IACjC,OAAO,EAAE,gBAAgB;IACzB,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC;CAC9C,CAAA;AAED,SAAgB,aAAa,CAAC,GAAe,EAAE,MAAc;IAC3D,MAAM,EAAC,GAAG,EAAE,EAAE,EAAC,GAAG,GAAG,CAAA;IACrB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;IAC/C,MAAM,CAAC,GAAG,IAAA,WAAC,EAAA,GAAG,eAAC,CAAC,cAAc,GAAG,IAAA,qBAAW,EAAC,MAAM,CAAC,EAAE,CAAA;IACtD,MAAM,QAAQ,GAAG,EAAE,CAAC,aAAa,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;IAC/E,GAAG,CAAC,EAAE,CAAC,IAAA,WAAC,EAAA,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;AACjD,CAAC;AAND,sCAMC;AAED,SAAS,YAAY,CAAC,GAAe;IACnC,MAAM,EAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAC,GAAG,GAAG,CAAC,EAAE,CAAA;IACxC,MAAM,EAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAC,GAAG,SAAS,CAAC,IAAI,CAAA;IACtD,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,CAAC,IAAI,CAAA;IAC5B,MAAM,GAAG,GAAG,IAAI,mBAAS,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAC,CAAC,CAAA;IAC5E,uBAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC7B,OAAO,IAAA,iBAAW,EAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAC9B,CAAC;AAED,kBAAe,GAAG,CAAA"}
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
import type { CodeKeywordDefinition } from "../../types";
|
||||
import type { KeywordCxt } from "../../compile/validate";
|
||||
declare const def: CodeKeywordDefinition;
|
||||
export declare function dynamicRef(cxt: KeywordCxt, ref: string): void;
|
||||
export default def;
|
||||
-51
@@ -1,51 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.dynamicRef = void 0;
|
||||
const codegen_1 = require("../../compile/codegen");
|
||||
const names_1 = require("../../compile/names");
|
||||
const ref_1 = require("../core/ref");
|
||||
const def = {
|
||||
keyword: "$dynamicRef",
|
||||
schemaType: "string",
|
||||
code: (cxt) => dynamicRef(cxt, cxt.schema),
|
||||
};
|
||||
function dynamicRef(cxt, ref) {
|
||||
const { gen, keyword, it } = cxt;
|
||||
if (ref[0] !== "#")
|
||||
throw new Error(`"${keyword}" only supports hash fragment reference`);
|
||||
const anchor = ref.slice(1);
|
||||
if (it.allErrors) {
|
||||
_dynamicRef();
|
||||
}
|
||||
else {
|
||||
const valid = gen.let("valid", false);
|
||||
_dynamicRef(valid);
|
||||
cxt.ok(valid);
|
||||
}
|
||||
function _dynamicRef(valid) {
|
||||
// TODO the assumption here is that `recursiveRef: #` always points to the root
|
||||
// of the schema object, which is not correct, because there may be $id that
|
||||
// makes # point to it, and the target schema may not contain dynamic/recursiveAnchor.
|
||||
// Because of that 2 tests in recursiveRef.json fail.
|
||||
// This is a similar problem to #815 (`$id` doesn't alter resolution scope for `{ "$ref": "#" }`).
|
||||
// (This problem is not tested in JSON-Schema-Test-Suite)
|
||||
if (it.schemaEnv.root.dynamicAnchors[anchor]) {
|
||||
const v = gen.let("_v", (0, codegen_1._) `${names_1.default.dynamicAnchors}${(0, codegen_1.getProperty)(anchor)}`);
|
||||
gen.if(v, _callRef(v, valid), _callRef(it.validateName, valid));
|
||||
}
|
||||
else {
|
||||
_callRef(it.validateName, valid)();
|
||||
}
|
||||
}
|
||||
function _callRef(validate, valid) {
|
||||
return valid
|
||||
? () => gen.block(() => {
|
||||
(0, ref_1.callRef)(cxt, validate);
|
||||
gen.let(valid, true);
|
||||
})
|
||||
: () => (0, ref_1.callRef)(cxt, validate);
|
||||
}
|
||||
}
|
||||
exports.dynamicRef = dynamicRef;
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=dynamicRef.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"dynamicRef.js","sourceRoot":"","sources":["../../../lib/vocabularies/dynamic/dynamicRef.ts"],"names":[],"mappings":";;;AAEA,mDAAgE;AAChE,+CAAmC;AACnC,qCAAmC;AAEnC,MAAM,GAAG,GAA0B;IACjC,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC;CAC3C,CAAA;AAED,SAAgB,UAAU,CAAC,GAAe,EAAE,GAAW;IACrD,MAAM,EAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAC,GAAG,GAAG,CAAA;IAC9B,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,IAAI,OAAO,yCAAyC,CAAC,CAAA;IACzF,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC3B,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;QACjB,WAAW,EAAE,CAAA;IACf,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACrC,WAAW,CAAC,KAAK,CAAC,CAAA;QAClB,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IACf,CAAC;IAED,SAAS,WAAW,CAAC,KAAY;QAC/B,+EAA+E;QAC/E,4EAA4E;QAC5E,sFAAsF;QACtF,qDAAqD;QACrD,kGAAkG;QAClG,yDAAyD;QACzD,IAAI,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAA,WAAC,EAAA,GAAG,eAAC,CAAC,cAAc,GAAG,IAAA,qBAAW,EAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YACrE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAA;QACjE,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,CAAA;QACpC,CAAC;IACH,CAAC;IAED,SAAS,QAAQ,CAAC,QAAc,EAAE,KAAY;QAC5C,OAAO,KAAK;YACV,CAAC,CAAC,GAAG,EAAE,CACH,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;gBACb,IAAA,aAAO,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;gBACtB,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACtB,CAAC,CAAC;YACN,CAAC,CAAC,GAAG,EAAE,CAAC,IAAA,aAAO,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IAClC,CAAC;AACH,CAAC;AApCD,gCAoCC;AAED,kBAAe,GAAG,CAAA"}
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
import type { Vocabulary } from "../../types";
|
||||
declare const dynamic: Vocabulary;
|
||||
export default dynamic;
|
||||
-9
@@ -1,9 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const dynamicAnchor_1 = require("./dynamicAnchor");
|
||||
const dynamicRef_1 = require("./dynamicRef");
|
||||
const recursiveAnchor_1 = require("./recursiveAnchor");
|
||||
const recursiveRef_1 = require("./recursiveRef");
|
||||
const dynamic = [dynamicAnchor_1.default, dynamicRef_1.default, recursiveAnchor_1.default, recursiveRef_1.default];
|
||||
exports.default = dynamic;
|
||||
//# sourceMappingURL=index.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/vocabularies/dynamic/index.ts"],"names":[],"mappings":";;AACA,mDAA2C;AAC3C,6CAAqC;AACrC,uDAA+C;AAC/C,iDAAyC;AAEzC,MAAM,OAAO,GAAe,CAAC,uBAAa,EAAE,oBAAU,EAAE,yBAAe,EAAE,sBAAY,CAAC,CAAA;AAEtF,kBAAe,OAAO,CAAA"}
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
import type { CodeKeywordDefinition } from "../../types";
|
||||
declare const def: CodeKeywordDefinition;
|
||||
export default def;
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const dynamicAnchor_1 = require("./dynamicAnchor");
|
||||
const util_1 = require("../../compile/util");
|
||||
const def = {
|
||||
keyword: "$recursiveAnchor",
|
||||
schemaType: "boolean",
|
||||
code(cxt) {
|
||||
if (cxt.schema)
|
||||
(0, dynamicAnchor_1.dynamicAnchor)(cxt, "");
|
||||
else
|
||||
(0, util_1.checkStrictMode)(cxt.it, "$recursiveAnchor: false is ignored");
|
||||
},
|
||||
};
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=recursiveAnchor.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"recursiveAnchor.js","sourceRoot":"","sources":["../../../lib/vocabularies/dynamic/recursiveAnchor.ts"],"names":[],"mappings":";;AACA,mDAA6C;AAC7C,6CAAkD;AAElD,MAAM,GAAG,GAA0B;IACjC,OAAO,EAAE,kBAAkB;IAC3B,UAAU,EAAE,SAAS;IACrB,IAAI,CAAC,GAAG;QACN,IAAI,GAAG,CAAC,MAAM;YAAE,IAAA,6BAAa,EAAC,GAAG,EAAE,EAAE,CAAC,CAAA;;YACjC,IAAA,sBAAe,EAAC,GAAG,CAAC,EAAE,EAAE,oCAAoC,CAAC,CAAA;IACpE,CAAC;CACF,CAAA;AAED,kBAAe,GAAG,CAAA"}
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
import type { CodeKeywordDefinition } from "../../types";
|
||||
declare const def: CodeKeywordDefinition;
|
||||
export default def;
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const dynamicRef_1 = require("./dynamicRef");
|
||||
const def = {
|
||||
keyword: "$recursiveRef",
|
||||
schemaType: "string",
|
||||
code: (cxt) => (0, dynamicRef_1.dynamicRef)(cxt, cxt.schema),
|
||||
};
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=recursiveRef.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"recursiveRef.js","sourceRoot":"","sources":["../../../lib/vocabularies/dynamic/recursiveRef.ts"],"names":[],"mappings":";;AACA,6CAAuC;AAEvC,MAAM,GAAG,GAA0B;IACjC,OAAO,EAAE,eAAe;IACxB,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,uBAAU,EAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC;CAC3C,CAAA;AAED,kBAAe,GAAG,CAAA"}
|
||||
-9
@@ -1,9 +0,0 @@
|
||||
import type { TypeError } from "../compile/validate/dataType";
|
||||
import type { ApplicatorKeywordError } from "./applicator";
|
||||
import type { ValidationKeywordError } from "./validation";
|
||||
import type { FormatError } from "./format/format";
|
||||
import type { UnevaluatedPropertiesError } from "./unevaluated/unevaluatedProperties";
|
||||
import type { UnevaluatedItemsError } from "./unevaluated/unevaluatedItems";
|
||||
import type { DependentRequiredError } from "./validation/dependentRequired";
|
||||
import type { DiscriminatorError } from "./discriminator";
|
||||
export type DefinedError = TypeError | ApplicatorKeywordError | ValidationKeywordError | FormatError | UnevaluatedPropertiesError | UnevaluatedItemsError | DependentRequiredError | DiscriminatorError;
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
//# sourceMappingURL=errors.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../lib/vocabularies/errors.ts"],"names":[],"mappings":""}
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
import type { CodeKeywordDefinition, ErrorObject } from "../../types";
|
||||
export type FormatError = ErrorObject<"format", {
|
||||
format: string;
|
||||
}, string | {
|
||||
$data: string;
|
||||
}>;
|
||||
declare const def: CodeKeywordDefinition;
|
||||
export default def;
|
||||
-92
@@ -1,92 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const codegen_1 = require("../../compile/codegen");
|
||||
const error = {
|
||||
message: ({ schemaCode }) => (0, codegen_1.str) `must match format "${schemaCode}"`,
|
||||
params: ({ schemaCode }) => (0, codegen_1._) `{format: ${schemaCode}}`,
|
||||
};
|
||||
const def = {
|
||||
keyword: "format",
|
||||
type: ["number", "string"],
|
||||
schemaType: "string",
|
||||
$data: true,
|
||||
error,
|
||||
code(cxt, ruleType) {
|
||||
const { gen, data, $data, schema, schemaCode, it } = cxt;
|
||||
const { opts, errSchemaPath, schemaEnv, self } = it;
|
||||
if (!opts.validateFormats)
|
||||
return;
|
||||
if ($data)
|
||||
validate$DataFormat();
|
||||
else
|
||||
validateFormat();
|
||||
function validate$DataFormat() {
|
||||
const fmts = gen.scopeValue("formats", {
|
||||
ref: self.formats,
|
||||
code: opts.code.formats,
|
||||
});
|
||||
const fDef = gen.const("fDef", (0, codegen_1._) `${fmts}[${schemaCode}]`);
|
||||
const fType = gen.let("fType");
|
||||
const format = gen.let("format");
|
||||
// TODO simplify
|
||||
gen.if((0, codegen_1._) `typeof ${fDef} == "object" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, (0, codegen_1._) `${fDef}.type || "string"`).assign(format, (0, codegen_1._) `${fDef}.validate`), () => gen.assign(fType, (0, codegen_1._) `"string"`).assign(format, fDef));
|
||||
cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt()));
|
||||
function unknownFmt() {
|
||||
if (opts.strictSchema === false)
|
||||
return codegen_1.nil;
|
||||
return (0, codegen_1._) `${schemaCode} && !${format}`;
|
||||
}
|
||||
function invalidFmt() {
|
||||
const callFormat = schemaEnv.$async
|
||||
? (0, codegen_1._) `(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`
|
||||
: (0, codegen_1._) `${format}(${data})`;
|
||||
const validData = (0, codegen_1._) `(typeof ${format} == "function" ? ${callFormat} : ${format}.test(${data}))`;
|
||||
return (0, codegen_1._) `${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`;
|
||||
}
|
||||
}
|
||||
function validateFormat() {
|
||||
const formatDef = self.formats[schema];
|
||||
if (!formatDef) {
|
||||
unknownFormat();
|
||||
return;
|
||||
}
|
||||
if (formatDef === true)
|
||||
return;
|
||||
const [fmtType, format, fmtRef] = getFormat(formatDef);
|
||||
if (fmtType === ruleType)
|
||||
cxt.pass(validCondition());
|
||||
function unknownFormat() {
|
||||
if (opts.strictSchema === false) {
|
||||
self.logger.warn(unknownMsg());
|
||||
return;
|
||||
}
|
||||
throw new Error(unknownMsg());
|
||||
function unknownMsg() {
|
||||
return `unknown format "${schema}" ignored in schema at path "${errSchemaPath}"`;
|
||||
}
|
||||
}
|
||||
function getFormat(fmtDef) {
|
||||
const code = fmtDef instanceof RegExp
|
||||
? (0, codegen_1.regexpCode)(fmtDef)
|
||||
: opts.code.formats
|
||||
? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(schema)}`
|
||||
: undefined;
|
||||
const fmt = gen.scopeValue("formats", { key: schema, ref: fmtDef, code });
|
||||
if (typeof fmtDef == "object" && !(fmtDef instanceof RegExp)) {
|
||||
return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._) `${fmt}.validate`];
|
||||
}
|
||||
return ["string", fmtDef, fmt];
|
||||
}
|
||||
function validCondition() {
|
||||
if (typeof formatDef == "object" && !(formatDef instanceof RegExp) && formatDef.async) {
|
||||
if (!schemaEnv.$async)
|
||||
throw new Error("async format in sync schema");
|
||||
return (0, codegen_1._) `await ${fmtRef}(${data})`;
|
||||
}
|
||||
return typeof format == "function" ? (0, codegen_1._) `${fmtRef}(${data})` : (0, codegen_1._) `${fmtRef}.test(${data})`;
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=format.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../lib/vocabularies/format/format.ts"],"names":[],"mappings":"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"}
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
import type { Vocabulary } from "../../types";
|
||||
declare const format: Vocabulary;
|
||||
export default format;
|
||||
-6
@@ -1,6 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const format_1 = require("./format");
|
||||
const format = [format_1.default];
|
||||
exports.default = format;
|
||||
//# sourceMappingURL=index.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/vocabularies/format/index.ts"],"names":[],"mappings":";;AACA,qCAAoC;AAEpC,MAAM,MAAM,GAAe,CAAC,gBAAa,CAAC,CAAA;AAE1C,kBAAe,MAAM,CAAA"}
|
||||
-6
@@ -1,6 +0,0 @@
|
||||
import type { CodeKeywordDefinition } from "../../types";
|
||||
import { _JTDTypeError } from "./error";
|
||||
import { DiscrError, DiscrErrorObj } from "../discriminator/types";
|
||||
export type JTDDiscriminatorError = _JTDTypeError<"discriminator", "object", string> | DiscrErrorObj<DiscrError.Tag> | DiscrErrorObj<DiscrError.Mapping>;
|
||||
declare const def: CodeKeywordDefinition;
|
||||
export default def;
|
||||
-71
@@ -1,71 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const codegen_1 = require("../../compile/codegen");
|
||||
const metadata_1 = require("./metadata");
|
||||
const nullable_1 = require("./nullable");
|
||||
const error_1 = require("./error");
|
||||
const types_1 = require("../discriminator/types");
|
||||
const error = {
|
||||
message: (cxt) => {
|
||||
const { schema, params } = cxt;
|
||||
return params.discrError
|
||||
? params.discrError === types_1.DiscrError.Tag
|
||||
? `tag "${schema}" must be string`
|
||||
: `value of tag "${schema}" must be in mapping`
|
||||
: (0, error_1.typeErrorMessage)(cxt, "object");
|
||||
},
|
||||
params: (cxt) => {
|
||||
const { schema, params } = cxt;
|
||||
return params.discrError
|
||||
? (0, codegen_1._) `{error: ${params.discrError}, tag: ${schema}, tagValue: ${params.tag}}`
|
||||
: (0, error_1.typeErrorParams)(cxt, "object");
|
||||
},
|
||||
};
|
||||
const def = {
|
||||
keyword: "discriminator",
|
||||
schemaType: "string",
|
||||
implements: ["mapping"],
|
||||
error,
|
||||
code(cxt) {
|
||||
(0, metadata_1.checkMetadata)(cxt);
|
||||
const { gen, data, schema, parentSchema } = cxt;
|
||||
const [valid, cond] = (0, nullable_1.checkNullableObject)(cxt, data);
|
||||
gen.if(cond);
|
||||
validateDiscriminator();
|
||||
gen.elseIf((0, codegen_1.not)(valid));
|
||||
cxt.error();
|
||||
gen.endIf();
|
||||
cxt.ok(valid);
|
||||
function validateDiscriminator() {
|
||||
const tag = gen.const("tag", (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(schema)}`);
|
||||
gen.if((0, codegen_1._) `${tag} === undefined`);
|
||||
cxt.error(false, { discrError: types_1.DiscrError.Tag, tag });
|
||||
gen.elseIf((0, codegen_1._) `typeof ${tag} == "string"`);
|
||||
validateMapping(tag);
|
||||
gen.else();
|
||||
cxt.error(false, { discrError: types_1.DiscrError.Tag, tag }, { instancePath: schema });
|
||||
gen.endIf();
|
||||
}
|
||||
function validateMapping(tag) {
|
||||
gen.if(false);
|
||||
for (const tagValue in parentSchema.mapping) {
|
||||
gen.elseIf((0, codegen_1._) `${tag} === ${tagValue}`);
|
||||
gen.assign(valid, applyTagSchema(tagValue));
|
||||
}
|
||||
gen.else();
|
||||
cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag }, { instancePath: schema, schemaPath: "mapping", parentSchema: true });
|
||||
gen.endIf();
|
||||
}
|
||||
function applyTagSchema(schemaProp) {
|
||||
const _valid = gen.name("valid");
|
||||
cxt.subschema({
|
||||
keyword: "mapping",
|
||||
schemaProp,
|
||||
jtdDiscriminator: schema,
|
||||
}, _valid);
|
||||
return _valid;
|
||||
}
|
||||
},
|
||||
};
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=discriminator.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"discriminator.js","sourceRoot":"","sources":["../../../lib/vocabularies/jtd/discriminator.ts"],"names":[],"mappings":"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"}
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
import type { CodeKeywordDefinition, SchemaObject } from "../../types";
|
||||
import { _JTDTypeError } from "./error";
|
||||
export type JTDElementsError = _JTDTypeError<"elements", "array", SchemaObject>;
|
||||
declare const def: CodeKeywordDefinition;
|
||||
export default def;
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const util_1 = require("../../compile/util");
|
||||
const code_1 = require("../code");
|
||||
const codegen_1 = require("../../compile/codegen");
|
||||
const metadata_1 = require("./metadata");
|
||||
const nullable_1 = require("./nullable");
|
||||
const error_1 = require("./error");
|
||||
const def = {
|
||||
keyword: "elements",
|
||||
schemaType: "object",
|
||||
error: (0, error_1.typeError)("array"),
|
||||
code(cxt) {
|
||||
(0, metadata_1.checkMetadata)(cxt);
|
||||
const { gen, data, schema, it } = cxt;
|
||||
if ((0, util_1.alwaysValidSchema)(it, schema))
|
||||
return;
|
||||
const [valid] = (0, nullable_1.checkNullable)(cxt);
|
||||
gen.if((0, codegen_1.not)(valid), () => gen.if((0, codegen_1._) `Array.isArray(${data})`, () => gen.assign(valid, (0, code_1.validateArray)(cxt)), () => cxt.error()));
|
||||
cxt.ok(valid);
|
||||
},
|
||||
};
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=elements.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"elements.js","sourceRoot":"","sources":["../../../lib/vocabularies/jtd/elements.ts"],"names":[],"mappings":";;AAEA,6CAAoD;AACpD,kCAAqC;AACrC,mDAA4C;AAC5C,yCAAwC;AACxC,yCAAwC;AACxC,mCAAgD;AAIhD,MAAM,GAAG,GAA0B;IACjC,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE,QAAQ;IACpB,KAAK,EAAE,IAAA,iBAAS,EAAC,OAAO,CAAC;IACzB,IAAI,CAAC,GAAe;QAClB,IAAA,wBAAa,EAAC,GAAG,CAAC,CAAA;QAClB,MAAM,EAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAC,GAAG,GAAG,CAAA;QACnC,IAAI,IAAA,wBAAiB,EAAC,EAAE,EAAE,MAAM,CAAC;YAAE,OAAM;QACzC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,wBAAa,EAAC,GAAG,CAAC,CAAA;QAClC,GAAG,CAAC,EAAE,CAAC,IAAA,aAAG,EAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CACtB,GAAG,CAAC,EAAE,CACJ,IAAA,WAAC,EAAA,iBAAiB,IAAI,GAAG,EACzB,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAA,oBAAa,EAAC,GAAG,CAAC,CAAC,EAC3C,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAClB,CACF,CAAA;QACD,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IACf,CAAC;CACF,CAAA;AAED,kBAAe,GAAG,CAAA"}
|
||||
-6
@@ -1,6 +0,0 @@
|
||||
import type { CodeKeywordDefinition, ErrorObject } from "../../types";
|
||||
export type JTDEnumError = ErrorObject<"enum", {
|
||||
allowedValues: string[];
|
||||
}, string[]>;
|
||||
declare const def: CodeKeywordDefinition;
|
||||
export default def;
|
||||
-43
@@ -1,43 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const codegen_1 = require("../../compile/codegen");
|
||||
const metadata_1 = require("./metadata");
|
||||
const nullable_1 = require("./nullable");
|
||||
const error = {
|
||||
message: "must be equal to one of the allowed values",
|
||||
params: ({ schemaCode }) => (0, codegen_1._) `{allowedValues: ${schemaCode}}`,
|
||||
};
|
||||
const def = {
|
||||
keyword: "enum",
|
||||
schemaType: "array",
|
||||
error,
|
||||
code(cxt) {
|
||||
(0, metadata_1.checkMetadata)(cxt);
|
||||
const { gen, data, schema, schemaValue, parentSchema, it } = cxt;
|
||||
if (schema.length === 0)
|
||||
throw new Error("enum must have non-empty array");
|
||||
if (schema.length !== new Set(schema).size)
|
||||
throw new Error("enum items must be unique");
|
||||
let valid;
|
||||
const isString = (0, codegen_1._) `typeof ${data} == "string"`;
|
||||
if (schema.length >= it.opts.loopEnum) {
|
||||
let cond;
|
||||
[valid, cond] = (0, nullable_1.checkNullable)(cxt, isString);
|
||||
gen.if(cond, loopEnum);
|
||||
}
|
||||
else {
|
||||
/* istanbul ignore if */
|
||||
if (!Array.isArray(schema))
|
||||
throw new Error("ajv implementation error");
|
||||
valid = (0, codegen_1.and)(isString, (0, codegen_1.or)(...schema.map((value) => (0, codegen_1._) `${data} === ${value}`)));
|
||||
if (parentSchema.nullable)
|
||||
valid = (0, codegen_1.or)((0, codegen_1._) `${data} === null`, valid);
|
||||
}
|
||||
cxt.pass(valid);
|
||||
function loopEnum() {
|
||||
gen.forOf("v", schemaValue, (v) => gen.if((0, codegen_1._) `${valid} = ${data} === ${v}`, () => gen.break()));
|
||||
}
|
||||
},
|
||||
};
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=enum.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"enum.js","sourceRoot":"","sources":["../../../lib/vocabularies/jtd/enum.ts"],"names":[],"mappings":";;AAEA,mDAAsD;AACtD,yCAAwC;AACxC,yCAAwC;AAIxC,MAAM,KAAK,GAA2B;IACpC,OAAO,EAAE,4CAA4C;IACrD,MAAM,EAAE,CAAC,EAAC,UAAU,EAAC,EAAE,EAAE,CAAC,IAAA,WAAC,EAAA,mBAAmB,UAAU,GAAG;CAC5D,CAAA;AAED,MAAM,GAAG,GAA0B;IACjC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,OAAO;IACnB,KAAK;IACL,IAAI,CAAC,GAAe;QAClB,IAAA,wBAAa,EAAC,GAAG,CAAC,CAAA;QAClB,MAAM,EAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,EAAC,GAAG,GAAG,CAAA;QAC9D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAC1E,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;QACxF,IAAI,KAAW,CAAA;QACf,MAAM,QAAQ,GAAG,IAAA,WAAC,EAAA,UAAU,IAAI,cAAc,CAAA;QAC9C,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,IAAU,CACb;YAAA,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,IAAA,wBAAa,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YAC7C,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QACxB,CAAC;aAAM,CAAC;YACN,wBAAwB;YACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;YACvE,KAAK,GAAG,IAAA,aAAG,EAAC,QAAQ,EAAE,IAAA,YAAE,EAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,IAAA,WAAC,EAAA,GAAG,IAAI,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;YACpF,IAAI,YAAY,CAAC,QAAQ;gBAAE,KAAK,GAAG,IAAA,YAAE,EAAC,IAAA,WAAC,EAAA,GAAG,IAAI,WAAW,EAAE,KAAK,CAAC,CAAA;QACnE,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAEf,SAAS,QAAQ;YACf,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,WAAmB,EAAE,CAAC,CAAC,EAAE,EAAE,CACxC,GAAG,CAAC,EAAE,CAAC,IAAA,WAAC,EAAA,GAAG,KAAK,MAAM,IAAI,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAC1D,CAAA;QACH,CAAC;IACH,CAAC;CACF,CAAA;AAED,kBAAe,GAAG,CAAA"}
|
||||
-9
@@ -1,9 +0,0 @@
|
||||
import type { KeywordErrorDefinition, KeywordErrorCxt, ErrorObject } from "../../types";
|
||||
import { Code } from "../../compile/codegen";
|
||||
export type _JTDTypeError<K extends string, T extends string, S> = ErrorObject<K, {
|
||||
type: T;
|
||||
nullable: boolean;
|
||||
}, S>;
|
||||
export declare function typeError(t: string): KeywordErrorDefinition;
|
||||
export declare function typeErrorMessage({ parentSchema }: KeywordErrorCxt, t: string): string;
|
||||
export declare function typeErrorParams({ parentSchema }: KeywordErrorCxt, t: string): Code;
|
||||
-20
@@ -1,20 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.typeErrorParams = exports.typeErrorMessage = exports.typeError = void 0;
|
||||
const codegen_1 = require("../../compile/codegen");
|
||||
function typeError(t) {
|
||||
return {
|
||||
message: (cxt) => typeErrorMessage(cxt, t),
|
||||
params: (cxt) => typeErrorParams(cxt, t),
|
||||
};
|
||||
}
|
||||
exports.typeError = typeError;
|
||||
function typeErrorMessage({ parentSchema }, t) {
|
||||
return (parentSchema === null || parentSchema === void 0 ? void 0 : parentSchema.nullable) ? `must be ${t} or null` : `must be ${t}`;
|
||||
}
|
||||
exports.typeErrorMessage = typeErrorMessage;
|
||||
function typeErrorParams({ parentSchema }, t) {
|
||||
return (0, codegen_1._) `{type: ${t}, nullable: ${!!(parentSchema === null || parentSchema === void 0 ? void 0 : parentSchema.nullable)}}`;
|
||||
}
|
||||
exports.typeErrorParams = typeErrorParams;
|
||||
//# sourceMappingURL=error.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../lib/vocabularies/jtd/error.ts"],"names":[],"mappings":";;;AACA,mDAA6C;AAQ7C,SAAgB,SAAS,CAAC,CAAS;IACjC,OAAO;QACL,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1C,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC;KACzC,CAAA;AACH,CAAC;AALD,8BAKC;AAED,SAAgB,gBAAgB,CAAC,EAAC,YAAY,EAAkB,EAAE,CAAS;IACzE,OAAO,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,EAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAA;AACzE,CAAC;AAFD,4CAEC;AAED,SAAgB,eAAe,CAAC,EAAC,YAAY,EAAkB,EAAE,CAAS;IACxE,OAAO,IAAA,WAAC,EAAA,UAAU,CAAC,eAAe,CAAC,CAAC,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,CAAA,GAAG,CAAA;AAC/D,CAAC;AAFD,0CAEC"}
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
import type { Vocabulary } from "../../types";
|
||||
import { JTDTypeError } from "./type";
|
||||
import { JTDEnumError } from "./enum";
|
||||
import { JTDElementsError } from "./elements";
|
||||
import { JTDPropertiesError } from "./properties";
|
||||
import { JTDDiscriminatorError } from "./discriminator";
|
||||
import { JTDValuesError } from "./values";
|
||||
declare const jtdVocabulary: Vocabulary;
|
||||
export default jtdVocabulary;
|
||||
export type JTDErrorObject = JTDTypeError | JTDEnumError | JTDElementsError | JTDPropertiesError | JTDDiscriminatorError | JTDValuesError;
|
||||
-29
@@ -1,29 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const ref_1 = require("./ref");
|
||||
const type_1 = require("./type");
|
||||
const enum_1 = require("./enum");
|
||||
const elements_1 = require("./elements");
|
||||
const properties_1 = require("./properties");
|
||||
const optionalProperties_1 = require("./optionalProperties");
|
||||
const discriminator_1 = require("./discriminator");
|
||||
const values_1 = require("./values");
|
||||
const union_1 = require("./union");
|
||||
const metadata_1 = require("./metadata");
|
||||
const jtdVocabulary = [
|
||||
"definitions",
|
||||
ref_1.default,
|
||||
type_1.default,
|
||||
enum_1.default,
|
||||
elements_1.default,
|
||||
properties_1.default,
|
||||
optionalProperties_1.default,
|
||||
discriminator_1.default,
|
||||
values_1.default,
|
||||
union_1.default,
|
||||
metadata_1.default,
|
||||
{ keyword: "additionalProperties", schemaType: "boolean" },
|
||||
{ keyword: "nullable", schemaType: "boolean" },
|
||||
];
|
||||
exports.default = jtdVocabulary;
|
||||
//# sourceMappingURL=index.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/vocabularies/jtd/index.ts"],"names":[],"mappings":";;AACA,+BAA8B;AAC9B,iCAAgD;AAChD,iCAAgD;AAChD,yCAAqD;AACrD,6CAA2D;AAC3D,6DAAqD;AACrD,mDAAoE;AACpE,qCAA+C;AAC/C,mCAA2B;AAC3B,yCAAiC;AAEjC,MAAM,aAAa,GAAe;IAChC,aAAa;IACb,aAAU;IACV,cAAW;IACX,cAAW;IACX,kBAAQ;IACR,oBAAU;IACV,4BAAkB;IAClB,uBAAa;IACb,gBAAM;IACN,eAAK;IACL,kBAAQ;IACR,EAAC,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,SAAS,EAAC;IACxD,EAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAC;CAC7C,CAAA;AAED,kBAAe,aAAa,CAAA"}
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
import { KeywordCxt } from "../../ajv";
|
||||
import type { CodeKeywordDefinition } from "../../types";
|
||||
declare const def: CodeKeywordDefinition;
|
||||
export declare function checkMetadata({ it, keyword }: KeywordCxt, metadata?: boolean): void;
|
||||
export default def;
|
||||
-25
@@ -1,25 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.checkMetadata = void 0;
|
||||
const util_1 = require("../../compile/util");
|
||||
const def = {
|
||||
keyword: "metadata",
|
||||
schemaType: "object",
|
||||
code(cxt) {
|
||||
checkMetadata(cxt);
|
||||
const { gen, schema, it } = cxt;
|
||||
if ((0, util_1.alwaysValidSchema)(it, schema))
|
||||
return;
|
||||
const valid = gen.name("valid");
|
||||
cxt.subschema({ keyword: "metadata", jtdMetadata: true }, valid);
|
||||
cxt.ok(valid);
|
||||
},
|
||||
};
|
||||
function checkMetadata({ it, keyword }, metadata) {
|
||||
if (it.jtdMetadata !== metadata) {
|
||||
throw new Error(`JTD: "${keyword}" cannot be used in this schema location`);
|
||||
}
|
||||
}
|
||||
exports.checkMetadata = checkMetadata;
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=metadata.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../lib/vocabularies/jtd/metadata.ts"],"names":[],"mappings":";;;AAEA,6CAAoD;AAEpD,MAAM,GAAG,GAA0B;IACjC,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE,QAAQ;IACpB,IAAI,CAAC,GAAe;QAClB,aAAa,CAAC,GAAG,CAAC,CAAA;QAClB,MAAM,EAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAC,GAAG,GAAG,CAAA;QAC7B,IAAI,IAAA,wBAAiB,EAAC,EAAE,EAAE,MAAM,CAAC;YAAE,OAAM;QACzC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC/B,GAAG,CAAC,SAAS,CAAC,EAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAC,EAAE,KAAK,CAAC,CAAA;QAC9D,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IACf,CAAC;CACF,CAAA;AAED,SAAgB,aAAa,CAAC,EAAC,EAAE,EAAE,OAAO,EAAa,EAAE,QAAkB;IACzE,IAAI,EAAE,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,0CAA0C,CAAC,CAAA;IAC7E,CAAC;AACH,CAAC;AAJD,sCAIC;AAED,kBAAe,GAAG,CAAA"}
|
||||
-4
@@ -1,4 +0,0 @@
|
||||
import type { KeywordCxt } from "../../compile/validate";
|
||||
import { Code, Name } from "../../compile/codegen";
|
||||
export declare function checkNullable({ gen, data, parentSchema }: KeywordCxt, cond?: Code): [Name, Code];
|
||||
export declare function checkNullableObject(cxt: KeywordCxt, cond: Code): [Name, Code];
|
||||
-22
@@ -1,22 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.checkNullableObject = exports.checkNullable = void 0;
|
||||
const codegen_1 = require("../../compile/codegen");
|
||||
function checkNullable({ gen, data, parentSchema }, cond = codegen_1.nil) {
|
||||
const valid = gen.name("valid");
|
||||
if (parentSchema.nullable) {
|
||||
gen.let(valid, (0, codegen_1._) `${data} === null`);
|
||||
cond = (0, codegen_1.not)(valid);
|
||||
}
|
||||
else {
|
||||
gen.let(valid, false);
|
||||
}
|
||||
return [valid, cond];
|
||||
}
|
||||
exports.checkNullable = checkNullable;
|
||||
function checkNullableObject(cxt, cond) {
|
||||
const [valid, cond_] = checkNullable(cxt, cond);
|
||||
return [valid, (0, codegen_1._) `${cond_} && typeof ${cxt.data} == "object" && !Array.isArray(${cxt.data})`];
|
||||
}
|
||||
exports.checkNullableObject = checkNullableObject;
|
||||
//# sourceMappingURL=nullable.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"nullable.js","sourceRoot":"","sources":["../../../lib/vocabularies/jtd/nullable.ts"],"names":[],"mappings":";;;AACA,mDAA6D;AAE7D,SAAgB,aAAa,CAC3B,EAAC,GAAG,EAAE,IAAI,EAAE,YAAY,EAAa,EACrC,OAAa,aAAG;IAEhB,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/B,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC1B,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAA,WAAC,EAAA,GAAG,IAAI,WAAW,CAAC,CAAA;QACnC,IAAI,GAAG,IAAA,aAAG,EAAC,KAAK,CAAC,CAAA;IACnB,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACvB,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AACtB,CAAC;AAZD,sCAYC;AAED,SAAgB,mBAAmB,CAAC,GAAe,EAAE,IAAU;IAC7D,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC/C,OAAO,CAAC,KAAK,EAAE,IAAA,WAAC,EAAA,GAAG,KAAK,cAAc,GAAG,CAAC,IAAI,kCAAkC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAA;AAC9F,CAAC;AAHD,kDAGC"}
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
import type { CodeKeywordDefinition } from "../../types";
|
||||
declare const def: CodeKeywordDefinition;
|
||||
export default def;
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const properties_1 = require("./properties");
|
||||
const def = {
|
||||
keyword: "optionalProperties",
|
||||
schemaType: "object",
|
||||
error: properties_1.error,
|
||||
code(cxt) {
|
||||
if (cxt.parentSchema.properties)
|
||||
return;
|
||||
(0, properties_1.validateProperties)(cxt);
|
||||
},
|
||||
};
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=optionalProperties.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"optionalProperties.js","sourceRoot":"","sources":["../../../lib/vocabularies/jtd/optionalProperties.ts"],"names":[],"mappings":";;AAEA,6CAAsD;AAEtD,MAAM,GAAG,GAA0B;IACjC,OAAO,EAAE,oBAAoB;IAC7B,UAAU,EAAE,QAAQ;IACpB,KAAK,EAAL,kBAAK;IACL,IAAI,CAAC,GAAe;QAClB,IAAI,GAAG,CAAC,YAAY,CAAC,UAAU;YAAE,OAAM;QACvC,IAAA,+BAAkB,EAAC,GAAG,CAAC,CAAA;IACzB,CAAC;CACF,CAAA;AAED,kBAAe,GAAG,CAAA"}
|
||||
-22
@@ -1,22 +0,0 @@
|
||||
import type { CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition, SchemaObject } from "../../types";
|
||||
import type { KeywordCxt } from "../../compile/validate";
|
||||
import { _JTDTypeError } from "./error";
|
||||
declare enum PropError {
|
||||
Additional = "additional",
|
||||
Missing = "missing"
|
||||
}
|
||||
type PropKeyword = "properties" | "optionalProperties";
|
||||
type PropSchema = {
|
||||
[P in string]?: SchemaObject;
|
||||
};
|
||||
export type JTDPropertiesError = _JTDTypeError<PropKeyword, "object", PropSchema> | ErrorObject<PropKeyword, {
|
||||
error: PropError.Additional;
|
||||
additionalProperty: string;
|
||||
}, PropSchema> | ErrorObject<PropKeyword, {
|
||||
error: PropError.Missing;
|
||||
missingProperty: string;
|
||||
}, PropSchema>;
|
||||
export declare const error: KeywordErrorDefinition;
|
||||
declare const def: CodeKeywordDefinition;
|
||||
export declare function validateProperties(cxt: KeywordCxt): void;
|
||||
export default def;
|
||||
-149
@@ -1,149 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.validateProperties = exports.error = void 0;
|
||||
const code_1 = require("../code");
|
||||
const util_1 = require("../../compile/util");
|
||||
const codegen_1 = require("../../compile/codegen");
|
||||
const metadata_1 = require("./metadata");
|
||||
const nullable_1 = require("./nullable");
|
||||
const error_1 = require("./error");
|
||||
var PropError;
|
||||
(function (PropError) {
|
||||
PropError["Additional"] = "additional";
|
||||
PropError["Missing"] = "missing";
|
||||
})(PropError || (PropError = {}));
|
||||
exports.error = {
|
||||
message: (cxt) => {
|
||||
const { params } = cxt;
|
||||
return params.propError
|
||||
? params.propError === PropError.Additional
|
||||
? "must NOT have additional properties"
|
||||
: `must have property '${params.missingProperty}'`
|
||||
: (0, error_1.typeErrorMessage)(cxt, "object");
|
||||
},
|
||||
params: (cxt) => {
|
||||
const { params } = cxt;
|
||||
return params.propError
|
||||
? params.propError === PropError.Additional
|
||||
? (0, codegen_1._) `{error: ${params.propError}, additionalProperty: ${params.additionalProperty}}`
|
||||
: (0, codegen_1._) `{error: ${params.propError}, missingProperty: ${params.missingProperty}}`
|
||||
: (0, error_1.typeErrorParams)(cxt, "object");
|
||||
},
|
||||
};
|
||||
const def = {
|
||||
keyword: "properties",
|
||||
schemaType: "object",
|
||||
error: exports.error,
|
||||
code: validateProperties,
|
||||
};
|
||||
// const error: KeywordErrorDefinition = {
|
||||
// message: "should NOT have additional properties",
|
||||
// params: ({params}) => _`{additionalProperty: ${params.additionalProperty}}`,
|
||||
// }
|
||||
function validateProperties(cxt) {
|
||||
(0, metadata_1.checkMetadata)(cxt);
|
||||
const { gen, data, parentSchema, it } = cxt;
|
||||
const { additionalProperties, nullable } = parentSchema;
|
||||
if (it.jtdDiscriminator && nullable)
|
||||
throw new Error("JTD: nullable inside discriminator mapping");
|
||||
if (commonProperties()) {
|
||||
throw new Error("JTD: properties and optionalProperties have common members");
|
||||
}
|
||||
const [allProps, properties] = schemaProperties("properties");
|
||||
const [allOptProps, optProperties] = schemaProperties("optionalProperties");
|
||||
if (properties.length === 0 && optProperties.length === 0 && additionalProperties) {
|
||||
return;
|
||||
}
|
||||
const [valid, cond] = it.jtdDiscriminator === undefined
|
||||
? (0, nullable_1.checkNullableObject)(cxt, data)
|
||||
: [gen.let("valid", false), true];
|
||||
gen.if(cond, () => gen.assign(valid, true).block(() => {
|
||||
validateProps(properties, "properties", true);
|
||||
validateProps(optProperties, "optionalProperties");
|
||||
if (!additionalProperties)
|
||||
validateAdditional();
|
||||
}));
|
||||
cxt.pass(valid);
|
||||
function commonProperties() {
|
||||
const props = parentSchema.properties;
|
||||
const optProps = parentSchema.optionalProperties;
|
||||
if (!(props && optProps))
|
||||
return false;
|
||||
for (const p in props) {
|
||||
if (Object.prototype.hasOwnProperty.call(optProps, p))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function schemaProperties(keyword) {
|
||||
const schema = parentSchema[keyword];
|
||||
const allPs = schema ? (0, code_1.allSchemaProperties)(schema) : [];
|
||||
if (it.jtdDiscriminator && allPs.some((p) => p === it.jtdDiscriminator)) {
|
||||
throw new Error(`JTD: discriminator tag used in ${keyword}`);
|
||||
}
|
||||
const ps = allPs.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));
|
||||
return [allPs, ps];
|
||||
}
|
||||
function validateProps(props, keyword, required) {
|
||||
const _valid = gen.var("valid");
|
||||
for (const prop of props) {
|
||||
gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties), () => applyPropertySchema(prop, keyword, _valid), () => missingProperty(prop));
|
||||
cxt.ok(_valid);
|
||||
}
|
||||
function missingProperty(prop) {
|
||||
if (required) {
|
||||
gen.assign(_valid, false);
|
||||
cxt.error(false, { propError: PropError.Missing, missingProperty: prop }, { schemaPath: prop });
|
||||
}
|
||||
else {
|
||||
gen.assign(_valid, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
function applyPropertySchema(prop, keyword, _valid) {
|
||||
cxt.subschema({
|
||||
keyword,
|
||||
schemaProp: prop,
|
||||
dataProp: prop,
|
||||
}, _valid);
|
||||
}
|
||||
function validateAdditional() {
|
||||
gen.forIn("key", data, (key) => {
|
||||
const addProp = isAdditional(key, allProps, "properties", it.jtdDiscriminator);
|
||||
const addOptProp = isAdditional(key, allOptProps, "optionalProperties");
|
||||
const extra = addProp === true ? addOptProp : addOptProp === true ? addProp : (0, codegen_1.and)(addProp, addOptProp);
|
||||
gen.if(extra, () => {
|
||||
if (it.opts.removeAdditional) {
|
||||
gen.code((0, codegen_1._) `delete ${data}[${key}]`);
|
||||
}
|
||||
else {
|
||||
cxt.error(false, { propError: PropError.Additional, additionalProperty: key }, { instancePath: key, parentSchema: true });
|
||||
if (!it.opts.allErrors)
|
||||
gen.break();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
function isAdditional(key, props, keyword, jtdDiscriminator) {
|
||||
let additional;
|
||||
if (props.length > 8) {
|
||||
// TODO maybe an option instead of hard-coded 8?
|
||||
const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema[keyword], keyword);
|
||||
additional = (0, codegen_1.not)((0, code_1.isOwnProperty)(gen, propsSchema, key));
|
||||
if (jtdDiscriminator !== undefined) {
|
||||
additional = (0, codegen_1.and)(additional, (0, codegen_1._) `${key} !== ${jtdDiscriminator}`);
|
||||
}
|
||||
}
|
||||
else if (props.length || jtdDiscriminator !== undefined) {
|
||||
const ps = jtdDiscriminator === undefined ? props : [jtdDiscriminator].concat(props);
|
||||
additional = (0, codegen_1.and)(...ps.map((p) => (0, codegen_1._) `${key} !== ${p}`));
|
||||
}
|
||||
else {
|
||||
additional = true;
|
||||
}
|
||||
return additional;
|
||||
}
|
||||
}
|
||||
exports.validateProperties = validateProperties;
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=properties.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-4
@@ -1,4 +0,0 @@
|
||||
import type { CodeKeywordDefinition, AnySchemaObject } from "../../types";
|
||||
declare const def: CodeKeywordDefinition;
|
||||
export declare function hasRef(schema: AnySchemaObject): boolean;
|
||||
export default def;
|
||||
-67
@@ -1,67 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.hasRef = void 0;
|
||||
const compile_1 = require("../../compile");
|
||||
const codegen_1 = require("../../compile/codegen");
|
||||
const ref_error_1 = require("../../compile/ref_error");
|
||||
const names_1 = require("../../compile/names");
|
||||
const ref_1 = require("../core/ref");
|
||||
const metadata_1 = require("./metadata");
|
||||
const def = {
|
||||
keyword: "ref",
|
||||
schemaType: "string",
|
||||
code(cxt) {
|
||||
(0, metadata_1.checkMetadata)(cxt);
|
||||
const { gen, data, schema: ref, parentSchema, it } = cxt;
|
||||
const { schemaEnv: { root }, } = it;
|
||||
const valid = gen.name("valid");
|
||||
if (parentSchema.nullable) {
|
||||
gen.var(valid, (0, codegen_1._) `${data} === null`);
|
||||
gen.if((0, codegen_1.not)(valid), validateJtdRef);
|
||||
}
|
||||
else {
|
||||
gen.var(valid, false);
|
||||
validateJtdRef();
|
||||
}
|
||||
cxt.ok(valid);
|
||||
function validateJtdRef() {
|
||||
var _a;
|
||||
const refSchema = (_a = root.schema.definitions) === null || _a === void 0 ? void 0 : _a[ref];
|
||||
if (!refSchema) {
|
||||
throw new ref_error_1.default(it.opts.uriResolver, "", ref, `No definition ${ref}`);
|
||||
}
|
||||
if (hasRef(refSchema) || !it.opts.inlineRefs)
|
||||
callValidate(refSchema);
|
||||
else
|
||||
inlineRefSchema(refSchema);
|
||||
}
|
||||
function callValidate(schema) {
|
||||
const sch = compile_1.compileSchema.call(it.self, new compile_1.SchemaEnv({ schema, root, schemaPath: `/definitions/${ref}` }));
|
||||
const v = (0, ref_1.getValidate)(cxt, sch);
|
||||
const errsCount = gen.const("_errs", names_1.default.errors);
|
||||
(0, ref_1.callRef)(cxt, v, sch, sch.$async);
|
||||
gen.assign(valid, (0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);
|
||||
}
|
||||
function inlineRefSchema(schema) {
|
||||
const schName = gen.scopeValue("schema", it.opts.code.source === true ? { ref: schema, code: (0, codegen_1.stringify)(schema) } : { ref: schema });
|
||||
cxt.subschema({
|
||||
schema,
|
||||
dataTypes: [],
|
||||
schemaPath: codegen_1.nil,
|
||||
topSchemaRef: schName,
|
||||
errSchemaPath: `/definitions/${ref}`,
|
||||
}, valid);
|
||||
}
|
||||
},
|
||||
};
|
||||
function hasRef(schema) {
|
||||
for (const key in schema) {
|
||||
let sch;
|
||||
if (key === "ref" || (typeof (sch = schema[key]) == "object" && hasRef(sch)))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
exports.hasRef = hasRef;
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=ref.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"ref.js","sourceRoot":"","sources":["../../../lib/vocabularies/jtd/ref.ts"],"names":[],"mappings":"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"}
|
||||
Reference in New Issue
Block a user