/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/@vingle/joi-to-json-schema@3.2.0/build/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};exports.default=convert;var _assert=require("assert"),_assert2=_interopRequireDefault(_assert);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var TYPES={alternatives:function(e,r){var t=e.oneOf=[];return r._inner.matches.forEach((function(e){if(e.schema)return t.push(convert(e.schema));if(!e.is)throw new Error('joi.when requires an "is"');if(!e.then&&!e.otherwise)throw new Error('joi.when requires one or both of "then" and "otherwise"');e.then&&t.push(convert(e.then)),e.otherwise&&t.push(convert(e.otherwise))})),e},date:function(e,r){return r._flags.timestamp?(e.type="integer",e):(e.type="string",e.format="date-time",e)},any:function(e){return e.type=["array","boolean","number","object","string","null"],e},array:function(e,r){if(e.type="array",r._tests.forEach((function(r){switch(r.name){case"unique":e.uniqueItems=!0;break;case"length":e.minItems=e.maxItems=r.arg;break;case"min":e.minItems=r.arg;break;case"max":e.maxItems=r.arg}})),r._inner){r._inner.ordereds.length&&(e.ordered=r._inner.ordereds.map((function(e){return convert(e)})));var t=void 0;r._inner.inclusions.length?t=r._inner.inclusions:r._inner.requireds.length&&(t=r._inner.requireds),t&&(e.items=convert(t[0]))}return e},boolean:function(e){return e.type="boolean",e},number:function(e,r){return e.type="number",r._tests.forEach((function(r){switch(r.name){case"integer":e.type="integer";break;case"less":e.exclusiveMaximum=!0,e.maximum=r.arg;break;case"greater":e.exclusiveMinimum=!0,e.minimum=r.arg;break;case"min":e.minimum=r.arg;break;case"max":e.maximum=r.arg}})),e},string:function(e,r){return e.type="string",r._tests.forEach((function(r){switch(r.name){case"email":e.format="email";break;case"regex":var t=r.arg,n=t&&t.pattern?t.pattern:t;e.pattern=String(n).replace(/^\//,"").replace(/\/$/,"");break;case"min":e.minLength=r.arg;break;case"max":e.maxLength=r.arg;break;case"length":e.minLength=e.maxLength=r.arg;break;case"uri":e.format="uri"}})),e},object:function(e,r){return e.type="object",e.properties={},e.additionalProperties=Boolean(r._flags.allowUnknown),e.patterns=r._inner.patterns.map((function(e){return{regex:e.regex,rule:convert(e.rule)}})),r._inner.children?(r._inner.children.forEach((function(r){"forbidden"!==r.schema._flags.presence&&(e.properties[r.key]=convert(r.schema),"optional"!==r.schema._flags.presence&&(e.required=e.required||[],e.required.push(r.key)))})),e):e}};function convert(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if((0,_assert2.default)("object"===(void 0===e?"undefined":_typeof(e))&&!0===e.isJoi,"requires a joi schema object"),(0,_assert2.default)(e._type,"joi schema object must have a type"),!TYPES[e._type])throw new Error('sorry, do not know how to convert unknown joi type: "'+e._type+'"');r&&(0,_assert2.default)("function"==typeof r,"transformer must be a function");var t={};if(e._description&&(t.description=e._description),e._examples&&e._examples.length>0&&(t.examples=e._examples),e._examples&&1===e._examples.length&&(t.example=e._examples[0]),e._settings&&e._settings.language&&e._settings.language.label?t.title=e._settings.language.label:e._flags&&e._flags.label&&(t.title=e._flags.label),e._flags&&void 0!==e._flags.default&&null!==e._flags.default&&(t.default=e._flags.default),e._valids&&e._valids._set&&e._valids._set.length){if(Array.isArray(e._inner.children))return{"------oneOf":[{type:e._type,enum:e._valids._set},TYPES[e._type](t,e)]};t.enum=e._valids._set}var n=TYPES[e._type](t,e);return r&&(n=r(n)),n}module.exports=convert;
//# sourceMappingURL=/sm/53212decc35f2cd9c1893022f2f8740cbb49d9167adc2f78939863c6a67cd8c2.map