UNPKG

allof-merge

Version:

Simplify JsonSchema/Openapi by combining allOf safely

1 lines 39.7 kB
{"version":3,"file":"index.cjs","sources":["../node_modules/tslib/tslib.es6.js","../node_modules/json-crawl/dist/index.mjs","../src/utils.ts","../src/resolvers/properties.ts","../src/errors.ts","../src/resolvers/jsonschema.ts","../src/resolvers/basic.ts","../src/resolvers/items.ts","../src/rules/jsonschema.ts","../src/rules/openapi.ts","../src/rules/graphapi.ts","../src/resolvers/combinary.ts","../src/normalize.ts","../src/merge.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*!\n * json-crawl v0.5.3\n * Copyright (C) 2012-2024 Damir Yusipov\n * Date: Sat, 06 Jan 2024 08:16:05 GMT\n */\nfunction e(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var s=0;for(o=Object.getOwnPropertySymbols(e);s<o.length;s++)t.indexOf(o[s])<0&&Object.prototype.propertyIsEnumerable.call(e,o[s])&&(n[o[s]]=e[o[s]])}return n}function t(e,t,n,o){return new(n||(n=Promise))((function(s,a){function r(e){try{u(o.next(e))}catch(e){a(e)}}function l(e){try{u(o.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,l)}u((o=o.apply(e,t||[])).next())}))}const n=(e={},t,n,o)=>{const s=`/${t}`,a=\"function\"==typeof e[\"/**\"]?e[\"/**\"]({key:t,path:n,value:o}):e[\"/**\"],r=\"function\"==typeof e[\"/*\"]?e[\"/*\"]({key:t,path:n,value:o}):e[\"/*\"];let l={};if(s in e)l=e[s];else if(!a&&!r)return;return l=\"function\"==typeof l?l({key:t,path:n,value:o}):l,r&&(l=Object.assign(Object.assign({},r),l)),a?Object.assign(Object.assign({\"/**\":e[\"/**\"]},a),l):l},o=e=>{const t={},n=e.reduce(((e,t)=>(Object.keys(t).forEach((t=>e.add(t))),e)),new Set);for(const s of n.keys()){const n=e.filter((e=>s in e));if(1!==n.length){if(\"/\"!==s.charAt(0))throw new Error(`Cannot merge rules. Duplicate key: ${s}. Rules should not have same Rule key`);t[s]=(e,t)=>{const a=n.map((n=>\"function\"==typeof n[s]?n[s](e,t):n[s]));return o(a)}}else t[s]=n[0][s]}return t},s=e=>\"object\"==typeof e&&null!==e,a=e=>Array.isArray(e),r=(r,l,u={})=>t(void 0,void 0,void 0,(function*(){var t,i;l=a(l)?l:[l];const c=a(u.rules)?o(u.rules):u.rules,d=[{data:r,state:u.state,path:[],keys:[],keyIndex:-1,rules:c}];for(;d.length>0;){const o=d[d.length-1];if(o.keyIndex>=o.keys.length){for(;null===(t=o.hooks)||void 0===t?void 0:t.length;)o.hooks.pop()();d.pop();continue}const r=o.keys[o.keyIndex++],[u,f,y]=d.length>1?[o.data[r],[...o.path,r],n(o.rules,r,[...o.path,r],o.data[r])]:[o.data,o.path,c];let v={value:u,path:f,key:r,state:o.state,rules:y};const p=[];for(const t of l){if(!t||\"function\"!=typeof t)continue;const n=null!==(i=yield t(v))&&void 0!==i?i:{},{terminate:o,done:s,exitHook:a}=n,r=e(n,[\"terminate\",\"done\",\"exitHook\"]);if(o)return;if(v=Object.assign(Object.assign({},v),r),a&&p.push(a),s){v=null;break}}if(v&&s(v.value)){const e=a(v.value)?[...v.value.keys()]:Object.keys(v.value);d.push({hooks:p,state:v.state,data:v.value,path:f,keys:e,keyIndex:0,rules:v.rules})}else for(;p.length;)p.pop()()}})),l=(t,r,l={})=>{var u,i;r=a(r)?r:[r];const c=a(l.rules)?o(l.rules):l.rules,d=[{data:t,state:l.state,path:[],keys:[],keyIndex:-1,rules:c}];for(;d.length>0;){const t=d[d.length-1];if(t.keyIndex>=t.keys.length){for(;null===(u=t.hooks)||void 0===u?void 0:u.length;)t.hooks.pop()();d.pop();continue}const o=t.keys[t.keyIndex++],[l,f,y]=d.length>1?[t.data[o],[...t.path,o],n(t.rules,o,[...t.path,o],t.data[o])]:[t.data,t.path,c];let v={value:l,path:f,key:o,state:t.state,rules:y};const p=[];for(const t of r){if(!t||\"function\"!=typeof t)continue;const n=null!==(i=t(v))&&void 0!==i?i:{},{terminate:o,done:s,exitHook:a}=n,r=e(n,[\"terminate\",\"done\",\"exitHook\"]);if(o)return;if(a&&p.push(a),v=Object.assign(Object.assign({},v),r),s){v=null;break}}if(v&&s(v.value)){const e=a(v.value)?[...v.value.keys()]:Object.keys(v.value);d.push({hooks:p,state:v.state,data:v.value,path:f,keys:e,keyIndex:0,rules:v.rules})}else for(;p.length;)p.pop()()}},u=()=>{const e=new WeakMap;let t;return[({value:e})=>{t=e},({value:n,path:o,key:a,state:r})=>{if(a=o.length?a:\"#\",s(t)&&s(n)){if(e.has(t))return r.node[a]=e.get(t),{done:!0};const o=Array.isArray(n)?[]:{};r.node[a]=o,e.set(t,o)}else r.node[a]=n;return{value:n,state:Object.assign(Object.assign({},r),{node:r.node[a]})}}]},i=(e,n=[],o={})=>t(void 0,void 0,void 0,(function*(){var t;n=Array.isArray(n)?n:[n];const s={\"#\":void 0},a=Object.assign({state:Object.assign(Object.assign({},null!==(t=o.state)&&void 0!==t?t:{}),{root:s,node:s})},o.rules?{rules:o.rules}:{}),[l,i]=u();return yield r(e,[l,...n,i],a),s[\"#\"]})),c=(e,t=[],n={})=>{var o;t=Array.isArray(t)?t:[t];const s={\"#\":void 0},a=Object.assign({state:Object.assign(Object.assign({},null!==(o=n.state)&&void 0!==o?o:{}),{root:s,node:s})},n.rules?{rules:n.rules}:{}),[r,i]=u();return l(e,[r,...t,i],a),s[\"#\"]},d=(e,t)=>{if(e===t)return!0;let n=!0;return l(e,(({value:e,key:t,state:o})=>{const s=void 0===t?o.value:o.value[t],r={state:{value:s}};if(e===s)return r;if(n=!1,typeof e!=typeof s)return{done:!0};if(a(e)&&e.length!==s.length)return{terminate:!0};if(\"object\"==typeof e&&null!==e){const t=Object.keys(e),n=Object.keys(s);if(t.length!==n.length||!t.every((e=>n.includes(e))))return{terminate:!0}}else if(e!==s)return{terminate:!0};return n=!0,r}),{state:{value:t}}),n},f=(e,n=[],o={})=>t(void 0,void 0,void 0,(function*(){var l;n=a(n)?n:[n];const u={\"#\":e},i=Object.assign({state:Object.assign(Object.assign({},null!==(l=o.state)&&void 0!==l?l:{}),{root:u,node:u})},o.rules?{rules:o.rules}:{});return yield r(e,[...n,({value:e,path:n,key:o,state:r})=>t(void 0,void 0,void 0,(function*(){return o=n.length?o:\"#\",void 0===e?a(r.node)&&\"number\"==typeof o?r.node.splice(o,1):s(r.node)&&o in r.node&&delete r.node[o]:s(r.node)&&(r.node[o]=e),{value:e,state:r}}))],i),u[\"#\"]}));export{i as clone,r as crawl,d as equal,n as getNodeRules,a as isArray,s as isObject,o as mergeRules,c as syncClone,l as syncCrawl,f as transform};\n//# sourceMappingURL=index.mjs.map\n",null,null,null,null,null,null,null,null,null,null,null,null],"names":["__rest","s","e","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","n","o","a","key","path","value","r","l","assign","reduce","keys","forEach","add","Set","filter","charAt","Error","map","Array","isArray","u","c","rules","d","data","state","keyIndex","hooks","pop","f","y","v","terminate","done","exitHook","push","WeakMap","has","node","get","set","MapArray","Map","arr","this","popValues","source","mergeValues","patch","isObject","result","isRefNode","$ref","isAnyOfNode","anyOf","isOneOfNode","oneOf","parseRef","basePath","filePath","ref","split","pointer","normalized","createRef","jsonPath","parsePointer","resolvePointer","pointers","_ref","includes","undefined","pathMask","slash","tilde","escapedSlash","escapedTilde","decodeURIComponent","replace","slice","buildPointer","encodeURIComponent","String","join","isEqual","b","JSON","stringify","findMultiplierForInteger","number","multiplier","calculateLCM","args","x","Math","max","round","calculateGCD","findCombinations","vectors","firstVector","remainingVectors","combinationsOfRemaining","combinations","element","combination","getPropertiesForMerge","allOfItems","properties","schema","ownProperties","additionalPropertiesSchema","prop","values","_schema","patternProperties","pattern","RegExp","test","delete","additionalProperties","size","props","allOf","getPatternPropertiesForMerge","patterns","propertiesMergeResolver","getAllOfItemsMap","items","entries","additionalPropertiesMergeResolver","ctx","jsonSchemaMergeResolver","ErrorMessage","mergeError","_args","mergeRules","rule","mergeFunc","merged","last","alternative","minValue","min","maxValue","mergePattern","intersectItems","equal","find","mergeObjects","mergeArray","mergeNot","mergeMultipleOf","mergeEnum","parse","sort","mergeTypes","arrayTypes","types","mergeStringItems","uniqueStrings","array","str","from","dependenciesMergeResolver","_items","required","itemsMergeResolver","mergeItems","itemsLimit","Infinity","maxItemsLength","additionalItemsSchema","obj","additionalItems","len","item","j","k","additionalItemsMergeResolver","itemsSchema","jsonSchemaMergeRules","draft","customRules","$","resolvers","/*","sibling","/items","/additionalProperties","/additionalItems","/propertyNames","/contains","customJsonSchemaMergeRules","version","openApiJsonSchemaMergeRules","parametersMergeRules","requestBodyMergeRules","responsesMergeRules","openApiMergeRules","graphSchemaMergeRules","/args","graphapiMergeRules","mergeCombinarySibling","combinaryKey","siblingKeys","_a","_b","combinary","rest","normalizeAllOfItems","allOfRefs","resolvedAllOfItems","brokenRefs","_allOfRef","refs","refPointer","allOfRef","flattenAllOf","selectMergeRules","openapi","startsWith","graphapi","allOfResolverHook","options","nodeToDelete","findNodeToDelete","onMergeError","strPath","_key","child","splice","isAllOfMergeRule","_allOf","mergeRefSibling","onRefResolveError","mergedNode","_path","first","merge","root","syncClone"],"mappings":"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"}