🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

joi

Package Overview
Dependencies
Maintainers
6
Versions
249
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

joi - npm Package Compare versions

Comparing version
18.2.1
to
18.2.2
dist/joi-browser.min.js.map

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

+2
-2

@@ -150,3 +150,3 @@ 'use strict';

else {
for (const errorKey in annotations.errors) {
for (const errorKey of Object.keys(annotations.errors)) {
value[`${errorKey}_$key$_${annotations.errors[errorKey].sort().join(', ')}_$end$_`] = value[errorKey];

@@ -156,3 +156,3 @@ value[errorKey] = undefined;

for (const missingKey in annotations.missing) {
for (const missingKey of Object.keys(annotations.missing)) {
value[`_$miss$_${missingKey}|${annotations.missing[missingKey]}_$end$_`] = '__missing__';

@@ -159,0 +159,0 @@ }

@@ -121,3 +121,3 @@ 'use strict';

const definition = this._definition.rules[rule.name];
if (definition.jsonSchema && typesOverlap) {
if (definition.jsonSchema && typesOverlap && !rule._resolve.length) {
schema = definition.jsonSchema(rule, schema, isOnly, mode, subOptions);

@@ -248,3 +248,3 @@ }

obj.$_terms.alterations = obj.$_terms.alterations || [];
for (const target in targets) {
for (const target of Object.keys(targets)) {
const adjuster = targets[target];

@@ -584,3 +584,3 @@ assert(typeof adjuster === 'function', 'Alteration adjuster for', target, 'must be a function');

for (const key in source.$_terms) {
for (const key of Object.keys(source.$_terms)) {
const terms = source.$_terms[key];

@@ -689,3 +689,3 @@ if (!terms) {

for (const name in options) {
for (const name of Object.keys(options)) {
def.modifiers[name](rule, options[name]);

@@ -770,3 +770,3 @@ assert(rule.name === original.name, 'Cannot change rule name');

for (const key in options) {
for (const key of Object.keys(options)) {
assert(key[0] !== '_', 'Cannot set private rule properties');

@@ -791,3 +791,3 @@ }

for (const key in args) {
for (const key of Object.keys(args)) {
let arg = args[key];

@@ -1002,3 +1002,3 @@

target.$_terms = {};
for (const key in this.$_terms) {
for (const key of Object.keys(this.$_terms)) {
target.$_terms[key] = this.$_terms[key] ? this.$_terms[key].slice() : null;

@@ -1010,4 +1010,6 @@ }

target.$_super = {};
for (const override in this.$_super) {
target.$_super[override] = this._super[override].bind(target);
if (this.$_super) {
for (const override of Object.keys(this.$_super)) {
target.$_super[override] = this._super[override].bind(target);
}
}

@@ -1024,3 +1026,3 @@

const terms = obj._definition.terms;
for (const name in terms) {
for (const name of Object.keys(terms)) {
const term = terms[name];

@@ -1027,0 +1029,0 @@ obj.$_terms[name] = term.init;

@@ -155,3 +155,3 @@ 'use strict';

for (const key in schema) {
for (const key of Object.keys(schema)) {
const compiler = internals.walk(schema[key]);

@@ -158,0 +158,0 @@ if (compiler) {

@@ -38,3 +38,3 @@ 'use strict';

if (def.terms) {
for (const name in def.terms) { // Only apply own terms
for (const name of Object.keys(def.terms)) { // Only apply own terms
const term = def.terms[name];

@@ -83,3 +83,3 @@ assert(schema.$_terms[name] === undefined, 'Invalid term override for', def.type, name);

if (def.rules) {
for (const name in def.rules) {
for (const name of Object.keys(def.rules)) {
const rule = def.rules[name];

@@ -144,3 +144,3 @@ assert(typeof rule === 'object', 'Invalid rule definition for', def.type, name);

if (def.modifiers) {
for (const name in def.modifiers) {
for (const name of Object.keys(def.modifiers)) {
assert(!prototype[name], 'Rule conflict in', def.type, name);

@@ -168,3 +168,3 @@

schema.$_super = {}; // Backwards compatibility
for (const override in def.overrides) {
for (const override of Object.keys(def.overrides)) {
assert(base[override], 'Cannot override missing', override);

@@ -171,0 +171,0 @@ def.overrides[override][Common.symbols.parent] = base[override];

@@ -76,3 +76,3 @@ 'use strict';

for (const alias in internals.aliases) {
for (const alias of Object.keys(internals.aliases)) {
const target = internals.aliases[alias];

@@ -210,3 +210,3 @@ root[alias] = root[target];

for (const target in internals.aliases) {
for (const target of Object.keys(internals.aliases)) {
types[target] = this[target]();

@@ -213,0 +213,0 @@ }

@@ -30,3 +30,3 @@ 'use strict';

for (const flag in schema._flags) {
for (const flag of Object.keys(schema._flags)) {
if (flag[0] !== '_') {

@@ -71,3 +71,3 @@ desc.flags[flag] = internals.describe(schema._flags[flag]);

for (const custom in def.modifiers) {
for (const custom of Object.keys(def.modifiers)) {
if (rule[custom] !== undefined) {

@@ -80,3 +80,3 @@ item[custom] = internals.describe(rule[custom]);

item.args = {};
for (const key in rule.args) {
for (const key of Object.keys(rule.args)) {
const arg = rule.args[key];

@@ -106,3 +106,3 @@ if (key === 'options' &&

for (const term in schema.$_terms) {
for (const term of Object.keys(schema.$_terms)) {
if (term[0] === '_') {

@@ -229,3 +229,3 @@ continue;

const normalized = {};
for (const key in item) {
for (const key of Object.keys(item)) {
const value = item[key];

@@ -269,3 +269,3 @@ if (value === undefined) {

if (desc.flags) {
for (const flag in desc.flags) {
for (const flag of Object.keys(desc.flags)) {
const setter = def.flags[flag] && def.flags[flag].setter || flag;

@@ -302,3 +302,3 @@ assert(typeof schema[setter] === 'function', 'Invalid flag', flag, 'for type', desc.type);

const built = {};
for (const key in rule.args) {
for (const key of Object.keys(rule.args)) {
built[key] = this.build(rule.args[key], { assign: key });

@@ -328,3 +328,3 @@ }

const options = {};
for (const custom in def.modifiers) {
for (const custom of Object.keys(def.modifiers)) {
if (rule[custom] !== undefined) {

@@ -344,3 +344,3 @@ options[custom] = this.build(rule[custom]);

const terms = {};
for (const key in desc) {
for (const key of Object.keys(desc)) {
if (['allow', 'flags', 'invalid', 'whens', 'preferences', 'rules', 'type'].includes(key)) {

@@ -370,3 +370,3 @@ continue;

terms[key] = {};
for (const name in desc[key]) {
for (const name of Object.keys(desc[key])) {
const value = desc[key][name];

@@ -462,3 +462,3 @@ terms[key][name] = this.parse(value);

const normalized = {};
for (const key in desc) {
for (const key of Object.keys(desc)) {
normalized[key] = this.build(desc[key], { assign: key });

@@ -465,0 +465,0 @@ }

@@ -33,3 +33,3 @@ 'use strict';

for (let code in messages) {
for (const code of Object.keys(messages)) {
const message = messages[code];

@@ -56,14 +56,14 @@

for (code in message) {
const localized = message[code];
for (const key of Object.keys(message)) {
const localized = message[key];
if (code === 'root' ||
if (key === 'root' ||
Template.isTemplate(localized)) {
target[language][code] = localized;
target[language][key] = localized;
continue;
}
assert(typeof localized === 'string', 'Invalid message for', code, 'in', language);
target[language][code] = new Template(localized);
assert(typeof localized === 'string', 'Invalid message for', key, 'in', language);
target[language][key] = new Template(localized);
}

@@ -81,3 +81,3 @@ }

const target = {};
for (let code in messages) {
for (const code of Object.keys(messages)) {
const message = messages[code];

@@ -100,6 +100,6 @@

for (code in message) {
const localized = message[code];
for (const key of Object.keys(message)) {
const localized = message[key];
if (code === 'root') {
if (key === 'root') {
target[language].root = localized;

@@ -109,3 +109,3 @@ continue;

target[language][code] = localized.describe({ compact: true });
target[language][key] = localized.describe({ compact: true });
}

@@ -144,3 +144,3 @@ }

for (let code in extended) {
for (const code of Object.keys(extended)) {
const message = extended[code];

@@ -167,14 +167,14 @@

for (code in message) {
const localized = message[code];
for (const key of Object.keys(message)) {
const localized = message[key];
if (code === 'root' ||
if (key === 'root' ||
Template.isTemplate(localized)) {
target[language][code] = localized;
target[language][key] = localized;
continue;
}
assert(typeof localized === 'string', 'Invalid message for', code, 'in', language);
target[language][code] = new Template(localized);
assert(typeof localized === 'string', 'Invalid message for', key, 'in', language);
target[language][key] = new Template(localized);
}

@@ -181,0 +181,0 @@ }

@@ -174,3 +174,3 @@ 'use strict';

for (const name in schema._flags) {
for (const name of Object.keys(schema._flags)) {
if (name[0] === '_') {

@@ -203,3 +203,3 @@ continue;

for (const name in schema.$_terms) {
for (const name of Object.keys(schema.$_terms)) {
if (name[0] === '_') {

@@ -256,3 +256,3 @@ continue;

for (const key in item) {
for (const key of Object.keys(item)) {
if (key[0] === '_') {

@@ -259,0 +259,0 @@ continue;

@@ -184,2 +184,5 @@ 'use strict';

}
else if (matchMode === 'all') {
res.allOf = matches;
}
else {

@@ -186,0 +189,0 @@ res.anyOf = matches;

@@ -115,3 +115,3 @@ 'use strict';

for (const key in desc) {
for (const key of Object.keys(desc)) {
const values = desc[key];

@@ -118,0 +118,0 @@

@@ -96,3 +96,3 @@ 'use strict';

res.unevaluatedItems = items;
res.minItems = ordered.length;
internals.setOrderedMinItems(res, ordered);
}

@@ -107,3 +107,3 @@ else {

res.unevaluatedItems = false;
res.minItems = ordered.length;
internals.setOrderedMinItems(res, ordered);
res.maxItems = ordered.length;

@@ -116,3 +116,5 @@ }

for (const rule of schema._rules) {
if (rule.name === 'has') {
if (rule.name === 'has' &&
!rule.args.schema._refs.refs.length) {
contains.push(rule.args.schema.$_jsonSchema(mode, options));

@@ -666,3 +668,5 @@ }

res.uniqueItems = true;
if (!rule.args.comparator) {
res.uniqueItems = true;
}

@@ -775,2 +779,25 @@ return res;

internals.setOrderedMinItems = function (res, ordered) {
// Ordered items are optional by default; the array only needs to reach the
// last explicitly required position.
const minItems = internals.orderedMinItems(ordered);
if (minItems) {
res.minItems = minItems;
}
};
internals.orderedMinItems = function (ordered) {
for (let i = ordered.length - 1; i >= 0; --i) {
if (ordered[i]._flags.presence === 'required') {
return i + 1;
}
}
return 0;
};
internals.fillMissedErrors = function (schema, errors, requireds, value, state, prefs) {

@@ -777,0 +804,0 @@

@@ -64,2 +64,7 @@ 'use strict';

res.properties[child.key] = jsonSchema;
if (child.schema._flags.id) {
options.$defs[child.schema._flags.id] = jsonSchema;
}
if (child.schema._flags.presence === 'required' ||

@@ -324,3 +329,3 @@ (mode === 'output' && child.schema._flags.default !== undefined)) {

obj.$_terms.keys = obj.$_terms.keys ? obj.$_terms.keys.filter((child) => !schema.hasOwnProperty(child.key)) : new internals.Keys();
for (const key in schema) {
for (const key of Object.keys(schema)) {
Common.tryWithPath(() => obj.$_terms.keys.push({ key, schema: this.$_compile(schema[key]) }), key);

@@ -925,3 +930,3 @@ }

else {
for (const from in value) {
for (const from of Object.keys(value)) {
if (value[from] === undefined &&

@@ -928,0 +933,0 @@ rename.options.ignoreUndefined) {

{
"name": "joi",
"description": "Object schema validation",
"version": "18.2.1",
"version": "18.2.2",
"repository": {

@@ -40,2 +40,3 @@ "url": "git://github.com/hapijs/joi.git",

"ajv": "^8.18.0",
"ajv-formats": "^3.0.1",
"typescript": "^5.8.3"

@@ -42,0 +43,0 @@ },

Sorry, the diff of this file is too big to display