From 12233cb6f6cb608f0d475eedca995355f142bbcd Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Sat, 8 Mar 2025 08:06:18 -0800 Subject: [PATCH] Build plugins --- package-lock.json | 2 +- .../vendored/plugins/auth-jwt/build/index.js | 34 +- .../plugins/auth-oauth2/build/index.js | 2 +- .../plugins/importer-curl/build/index.js | 3 + .../plugins/importer-insomnia/build/index.js | 243 ++++++---- .../plugins/importer-openapi/build/index.js | 418 +++++++++++++++--- .../plugins/importer-openapi/package.json | 2 +- 7 files changed, 550 insertions(+), 154 deletions(-) diff --git a/package-lock.json b/package-lock.json index b794446a..569e1979 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15557,7 +15557,7 @@ }, "packages/plugin-runtime-types": { "name": "@yaakapp/api", - "version": "0.4.1", + "version": "0.5.0", "dependencies": { "@types/node": "^22.5.4" }, diff --git a/src-tauri/vendored/plugins/auth-jwt/build/index.js b/src-tauri/vendored/plugins/auth-jwt/build/index.js index 5159018c..42955a52 100644 --- a/src-tauri/vendored/plugins/auth-jwt/build/index.js +++ b/src-tauri/vendored/plugins/auth-jwt/build/index.js @@ -1044,6 +1044,7 @@ var require_re = __commonJS({ var re = exports2.re = []; var safeRe = exports2.safeRe = []; var src = exports2.src = []; + var safeSrc = exports2.safeSrc = []; var t = exports2.t = {}; var R = 0; var LETTERDASHNUMBER = "[a-zA-Z0-9-]"; @@ -1064,6 +1065,7 @@ var require_re = __commonJS({ debug(name, index, value); t[name] = index; src[index] = value; + safeSrc[index] = safe; re[index] = new RegExp(value, isGlobal ? "g" : void 0); safeRe[index] = new RegExp(safe, isGlobal ? "g" : void 0); }; @@ -1160,7 +1162,7 @@ var require_semver = __commonJS({ "../../node_modules/semver/classes/semver.js"(exports2, module2) { var debug = require_debug(); var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants(); - var { safeRe: re, t } = require_re(); + var { safeRe: re, safeSrc: src, t } = require_re(); var parseOptions = require_parse_options(); var { compareIdentifiers } = require_identifiers(); var SemVer = class _SemVer { @@ -1300,6 +1302,18 @@ var require_semver = __commonJS({ // preminor will bump the version up to the next minor release, and immediately // down to pre-release. premajor and prepatch work the same way. inc(release, identifier, identifierBase) { + if (release.startsWith("pre")) { + if (!identifier && identifierBase === false) { + throw new Error("invalid increment argument: identifier is empty"); + } + if (identifier) { + const r = new RegExp(`^${this.options.loose ? src[t.PRERELEASELOOSE] : src[t.PRERELEASE]}$`); + const match = `-${identifier}`.match(r); + if (!match || match[1] !== identifier) { + throw new Error(`invalid identifier: ${identifier}`); + } + } + } switch (release) { case "premajor": this.prerelease.length = 0; @@ -1325,6 +1339,12 @@ var require_semver = __commonJS({ } this.inc("pre", identifier, identifierBase); break; + case "release": + if (this.prerelease.length === 0) { + throw new Error(`version ${this.raw} is not a prerelease`); + } + this.prerelease.length = 0; + break; case "major": if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { this.major++; @@ -1348,9 +1368,6 @@ var require_semver = __commonJS({ break; case "pre": { const base = Number(identifierBase) ? 1 : 0; - if (!identifier && identifierBase === false) { - throw new Error("invalid increment argument: identifier is empty"); - } if (this.prerelease.length === 0) { this.prerelease = [base]; } else { @@ -1485,13 +1502,12 @@ var require_diff = __commonJS({ if (!lowVersion.patch && !lowVersion.minor) { return "major"; } - if (highVersion.patch) { + if (lowVersion.compareMain(highVersion) === 0) { + if (lowVersion.minor && !lowVersion.patch) { + return "minor"; + } return "patch"; } - if (highVersion.minor) { - return "minor"; - } - return "major"; } const prefix = highHasPre ? "pre" : ""; if (v1.major !== v2.major) { diff --git a/src-tauri/vendored/plugins/auth-oauth2/build/index.js b/src-tauri/vendored/plugins/auth-oauth2/build/index.js index 18026a40..9669d530 100644 --- a/src-tauri/vendored/plugins/auth-oauth2/build/index.js +++ b/src-tauri/vendored/plugins/auth-oauth2/build/index.js @@ -130,7 +130,7 @@ async function getOrRefreshAccessToken(ctx, contextId, { if (token == null) { return null; } - const now = Date.now() / 1e3; + const now = Date.now(); const isExpired = token.expiresAt && now > token.expiresAt; if (!isExpired && !forceRefresh) { return token; diff --git a/src-tauri/vendored/plugins/importer-curl/build/index.js b/src-tauri/vendored/plugins/importer-curl/build/index.js index 247d1503..1f94ee39 100644 --- a/src-tauri/vendored/plugins/importer-curl/build/index.js +++ b/src-tauri/vendored/plugins/importer-curl/build/index.js @@ -36,6 +36,9 @@ var require_quote = __commonJS({ "use strict"; module2.exports = function quote(xs) { return xs.map(function(s) { + if (s === "") { + return "''"; + } if (s && typeof s === "object") { return s.op.replace(/(.)/g, "\\$1"); } diff --git a/src-tauri/vendored/plugins/importer-insomnia/build/index.js b/src-tauri/vendored/plugins/importer-insomnia/build/index.js index 0208e18c..cd965b84 100644 --- a/src-tauri/vendored/plugins/importer-insomnia/build/index.js +++ b/src-tauri/vendored/plugins/importer-insomnia/build/index.js @@ -1304,21 +1304,29 @@ ${indent}`) + "'"; start = start.replace(/\n+/g, `$&${indent}`); } const indentSize = indent ? "2" : "1"; - let header = (literal ? "|" : ">") + (startWithSpace ? indentSize : "") + chomp; + let header = (startWithSpace ? indentSize : "") + chomp; if (comment) { header += " " + commentString(comment.replace(/ ?[\r\n]+/g, " ")); if (onComment) onComment(); } - if (literal) { - value = value.replace(/\n+/g, `$&${indent}`); - return `${header} -${indent}${start}${value}${end}`; - } - value = value.replace(/\n+/g, "\n$&").replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g, "$1$2").replace(/\n+/g, `$&${indent}`); - const body = foldFlowLines.foldFlowLines(`${start}${value}${end}`, indent, foldFlowLines.FOLD_BLOCK, getFoldOptions(ctx, true)); - return `${header} + if (!literal) { + const foldedValue = value.replace(/\n+/g, "\n$&").replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g, "$1$2").replace(/\n+/g, `$&${indent}`); + let literalFallback = false; + const foldOptions = getFoldOptions(ctx, true); + if (blockQuote !== "folded" && type !== Scalar.Scalar.BLOCK_FOLDED) { + foldOptions.onOverflow = () => { + literalFallback = true; + }; + } + const body = foldFlowLines.foldFlowLines(`${start}${foldedValue}${end}`, indent, foldFlowLines.FOLD_BLOCK, foldOptions); + if (!literalFallback) + return `>${header} ${indent}${body}`; + } + value = value.replace(/\n+/g, `$&${indent}`); + return `|${header} +${indent}${start}${value}${end}`; } function plainString(item, ctx, onComment, onChompKeep) { const { type, value } = item; @@ -1446,7 +1454,12 @@ var require_stringify = __commonJS({ let obj; if (identity.isScalar(item)) { obj = item.value; - const match = tags.filter((t) => t.identify?.(obj)); + let match = tags.filter((t) => t.identify?.(obj)); + if (match.length > 1) { + const testMatch = match.filter((t) => t.test); + if (testMatch.length > 0) + match = testMatch; + } tagObj = match.find((t) => t.format === item.format) ?? match.find((t) => !t.format); } else { obj = item; @@ -1643,14 +1656,15 @@ ${ctx.indent}`; var require_log = __commonJS({ "../../node_modules/yaml/dist/log.js"(exports2) { "use strict"; + var node_process = require("node:process"); function debug(logLevel, ...messages) { if (logLevel === "debug") console.log(...messages); } function warn(logLevel, warning) { if (logLevel === "debug" || logLevel === "warn") { - if (typeof process !== "undefined" && process.emitWarning) - process.emitWarning(warning); + if (typeof node_process.emitWarning === "function") + node_process.emitWarning(warning); else console.warn(warning); } @@ -1660,51 +1674,36 @@ var require_log = __commonJS({ } }); -// ../../node_modules/yaml/dist/nodes/addPairToJSMap.js -var require_addPairToJSMap = __commonJS({ - "../../node_modules/yaml/dist/nodes/addPairToJSMap.js"(exports2) { +// ../../node_modules/yaml/dist/schema/yaml-1.1/merge.js +var require_merge = __commonJS({ + "../../node_modules/yaml/dist/schema/yaml-1.1/merge.js"(exports2) { "use strict"; - var log = require_log(); - var stringify = require_stringify(); var identity = require_identity(); var Scalar = require_Scalar(); - var toJS = require_toJS(); var MERGE_KEY = "<<"; - function addPairToJSMap(ctx, map, { key, value }) { - if (ctx?.doc.schema.merge && isMergeKey(key)) { - value = identity.isAlias(value) ? value.resolve(ctx.doc) : value; - if (identity.isSeq(value)) - for (const it of value.items) - mergeToJSMap(ctx, map, it); - else if (Array.isArray(value)) - for (const it of value) - mergeToJSMap(ctx, map, it); - else - mergeToJSMap(ctx, map, value); - } else { - const jsKey = toJS.toJS(key, "", ctx); - if (map instanceof Map) { - map.set(jsKey, toJS.toJS(value, jsKey, ctx)); - } else if (map instanceof Set) { - map.add(jsKey); - } else { - const stringKey = stringifyKey(key, jsKey, ctx); - const jsValue = toJS.toJS(value, stringKey, ctx); - if (stringKey in map) - Object.defineProperty(map, stringKey, { - value: jsValue, - writable: true, - enumerable: true, - configurable: true - }); - else - map[stringKey] = jsValue; - } - } - return map; + var merge = { + identify: (value) => value === MERGE_KEY || typeof value === "symbol" && value.description === MERGE_KEY, + default: "key", + tag: "tag:yaml.org,2002:merge", + test: /^<<$/, + resolve: () => Object.assign(new Scalar.Scalar(Symbol(MERGE_KEY)), { + addToJSMap: addMergeToJSMap + }), + stringify: () => MERGE_KEY + }; + var isMergeKey = (ctx, key) => (merge.identify(key) || identity.isScalar(key) && (!key.type || key.type === Scalar.Scalar.PLAIN) && merge.identify(key.value)) && ctx?.doc.schema.tags.some((tag) => tag.tag === merge.tag && tag.default); + function addMergeToJSMap(ctx, map, value) { + value = ctx && identity.isAlias(value) ? value.resolve(ctx.doc) : value; + if (identity.isSeq(value)) + for (const it of value.items) + mergeValue(ctx, map, it); + else if (Array.isArray(value)) + for (const it of value) + mergeValue(ctx, map, it); + else + mergeValue(ctx, map, value); } - var isMergeKey = (key) => key === MERGE_KEY || identity.isScalar(key) && key.value === MERGE_KEY && (!key.type || key.type === Scalar.Scalar.PLAIN); - function mergeToJSMap(ctx, map, value) { + function mergeValue(ctx, map, value) { const source = ctx && identity.isAlias(value) ? value.resolve(ctx.doc) : value; if (!identity.isMap(source)) throw new Error("Merge sources must be maps or map aliases"); @@ -1726,6 +1725,48 @@ var require_addPairToJSMap = __commonJS({ } return map; } + exports2.addMergeToJSMap = addMergeToJSMap; + exports2.isMergeKey = isMergeKey; + exports2.merge = merge; + } +}); + +// ../../node_modules/yaml/dist/nodes/addPairToJSMap.js +var require_addPairToJSMap = __commonJS({ + "../../node_modules/yaml/dist/nodes/addPairToJSMap.js"(exports2) { + "use strict"; + var log = require_log(); + var merge = require_merge(); + var stringify = require_stringify(); + var identity = require_identity(); + var toJS = require_toJS(); + function addPairToJSMap(ctx, map, { key, value }) { + if (identity.isNode(key) && key.addToJSMap) + key.addToJSMap(ctx, map, value); + else if (merge.isMergeKey(ctx, key)) + merge.addMergeToJSMap(ctx, map, value); + else { + const jsKey = toJS.toJS(key, "", ctx); + if (map instanceof Map) { + map.set(jsKey, toJS.toJS(value, jsKey, ctx)); + } else if (map instanceof Set) { + map.add(jsKey); + } else { + const stringKey = stringifyKey(key, jsKey, ctx); + const jsValue = toJS.toJS(value, stringKey, ctx); + if (stringKey in map) + Object.defineProperty(map, stringKey, { + value: jsValue, + writable: true, + enumerable: true, + configurable: true + }); + else + map[stringKey] = jsValue; + } + } + return map; + } function stringifyKey(key, jsKey, ctx) { if (jsKey === null) return ""; @@ -2481,7 +2522,7 @@ var require_schema2 = __commonJS({ identify: (value) => typeof value === "boolean", default: true, tag: "tag:yaml.org,2002:bool", - test: /^true|false$/, + test: /^true$|^false$/, resolve: (str) => str === "true", stringify: stringifyJSON }, @@ -2520,6 +2561,7 @@ var require_schema2 = __commonJS({ var require_binary = __commonJS({ "../../node_modules/yaml/dist/schema/yaml-1.1/binary.js"(exports2) { "use strict"; + var node_buffer = require("node:buffer"); var Scalar = require_Scalar(); var stringifyString = require_stringifyString(); var binary = { @@ -2536,8 +2578,8 @@ var require_binary = __commonJS({ * document.querySelector('#photo').src = URL.createObjectURL(blob) */ resolve(src, onError) { - if (typeof Buffer === "function") { - return Buffer.from(src, "base64"); + if (typeof node_buffer.Buffer === "function") { + return node_buffer.Buffer.from(src, "base64"); } else if (typeof atob === "function") { const str = atob(src.replace(/[\n\r]/g, "")); const buffer = new Uint8Array(str.length); @@ -2552,8 +2594,8 @@ var require_binary = __commonJS({ stringify({ comment, type, value }, ctx, onComment, onChompKeep) { const buf = value; let str; - if (typeof Buffer === "function") { - str = buf instanceof Buffer ? buf.toString("base64") : Buffer.from(buf.buffer).toString("base64"); + if (typeof node_buffer.Buffer === "function") { + str = buf instanceof node_buffer.Buffer ? buf.toString("base64") : node_buffer.Buffer.from(buf.buffer).toString("base64"); } else if (typeof btoa === "function") { let s = ""; for (let i = 0; i < buf.length; ++i) @@ -3065,7 +3107,7 @@ var require_timestamp = __commonJS({ } return new Date(date); }, - stringify: ({ value }) => value.toISOString().replace(/((T00:00)?:00)?\.000Z$/, "") + stringify: ({ value }) => value.toISOString().replace(/(T00:00:00)?\.000Z$/, "") }; exports2.floatTime = floatTime; exports2.intTime = intTime; @@ -3085,6 +3127,7 @@ var require_schema3 = __commonJS({ var bool = require_bool2(); var float = require_float2(); var int = require_int2(); + var merge = require_merge(); var omap = require_omap(); var pairs = require_pairs(); var set = require_set(); @@ -3104,6 +3147,7 @@ var require_schema3 = __commonJS({ float.floatExp, float.float, binary.binary, + merge.merge, omap.omap, pairs.pairs, set.set, @@ -3129,6 +3173,7 @@ var require_tags = __commonJS({ var schema = require_schema(); var schema$1 = require_schema2(); var binary = require_binary(); + var merge = require_merge(); var omap = require_omap(); var pairs = require_pairs(); var schema$2 = require_schema3(); @@ -3153,6 +3198,7 @@ var require_tags = __commonJS({ intOct: int.intOct, intTime: timestamp.intTime, map: map.map, + merge: merge.merge, null: _null.nullTag, omap: omap.omap, pairs: pairs.pairs, @@ -3162,13 +3208,18 @@ var require_tags = __commonJS({ }; var coreKnownTags = { "tag:yaml.org,2002:binary": binary.binary, + "tag:yaml.org,2002:merge": merge.merge, "tag:yaml.org,2002:omap": omap.omap, "tag:yaml.org,2002:pairs": pairs.pairs, "tag:yaml.org,2002:set": set.set, "tag:yaml.org,2002:timestamp": timestamp.timestamp }; - function getTags(customTags, schemaName) { - let tags = schemas.get(schemaName); + function getTags(customTags, schemaName, addMergeTag) { + const schemaTags = schemas.get(schemaName); + if (schemaTags && !customTags) { + return addMergeTag && !schemaTags.includes(merge.merge) ? schemaTags.concat(merge.merge) : schemaTags.slice(); + } + let tags = schemaTags; if (!tags) { if (Array.isArray(customTags)) tags = []; @@ -3183,15 +3234,19 @@ var require_tags = __commonJS({ } else if (typeof customTags === "function") { tags = customTags(tags.slice()); } - return tags.map((tag) => { - if (typeof tag !== "string") - return tag; - const tagObj = tagsByName[tag]; - if (tagObj) - return tagObj; - const keys = Object.keys(tagsByName).map((key) => JSON.stringify(key)).join(", "); - throw new Error(`Unknown custom tag "${tag}"; use one of ${keys}`); - }); + if (addMergeTag) + tags = tags.concat(merge.merge); + return tags.reduce((tags2, tag) => { + const tagObj = typeof tag === "string" ? tagsByName[tag] : tag; + if (!tagObj) { + const tagName = JSON.stringify(tag); + const keys = Object.keys(tagsByName).map((key) => JSON.stringify(key)).join(", "); + throw new Error(`Unknown custom tag ${tagName}; use one of ${keys}`); + } + if (!tags2.includes(tagObj)) + tags2.push(tagObj); + return tags2; + }, []); } exports2.coreKnownTags = coreKnownTags; exports2.getTags = getTags; @@ -3211,10 +3266,9 @@ var require_Schema = __commonJS({ var Schema = class _Schema { constructor({ compat, customTags, merge, resolveKnownTags, schema, sortMapEntries, toStringDefaults }) { this.compat = Array.isArray(compat) ? tags.getTags(compat, "compat") : compat ? tags.getTags(null, compat) : null; - this.merge = !!merge; this.name = typeof schema === "string" && schema || "core"; this.knownTags = resolveKnownTags ? tags.coreKnownTags : {}; - this.tags = tags.getTags(customTags, this.name); + this.tags = tags.getTags(customTags, this.name, merge); this.toStringOptions = toStringDefaults ?? null; Object.defineProperty(this, identity.MAP, { value: map.map }); Object.defineProperty(this, identity.SCALAR, { value: string.string }); @@ -3346,6 +3400,7 @@ var require_Document = __commonJS({ logLevel: "warn", prettyErrors: true, strict: true, + stringKeys: false, uniqueKeys: true, version: "1.2" }, options); @@ -3547,7 +3602,7 @@ var require_Document = __commonJS({ this.directives.yaml.version = "1.1"; else this.directives = new directives.Directives({ version: "1.1" }); - opt = { merge: true, resolveKnownTags: false, schema: "yaml-1.1" }; + opt = { resolveKnownTags: false, schema: "yaml-1.1" }; break; case "1.2": case "next": @@ -3555,7 +3610,7 @@ var require_Document = __commonJS({ this.directives.yaml.version = version; else this.directives = new directives.Directives({ version }); - opt = { merge: false, resolveKnownTags: true, schema: "core" }; + opt = { resolveKnownTags: true, schema: "core" }; break; case null: if (this.directives) @@ -3738,7 +3793,7 @@ var require_resolve_props = __commonJS({ if (atNewline) { if (comment) comment += token.source; - else + else if (!found || indicator !== "seq-item-ind") spaceBefore = true; } else commentSep += token.source; @@ -3888,7 +3943,7 @@ var require_util_map_includes = __commonJS({ const { uniqueKeys } = ctx.options; if (uniqueKeys === false) return false; - const isEqual = typeof uniqueKeys === "function" ? uniqueKeys : (a, b) => a === b || identity.isScalar(a) && identity.isScalar(b) && a.value === b.value && !(a.value === "<<" && ctx.schema.merge); + const isEqual = typeof uniqueKeys === "function" ? uniqueKeys : (a, b) => a === b || identity.isScalar(a) && identity.isScalar(b) && a.value === b.value; return items.some((pair) => isEqual(pair.key, search)); } exports2.mapIncludes = mapIncludes; @@ -3947,10 +4002,12 @@ var require_resolve_block_map = __commonJS({ } else if (keyProps.found?.indent !== bm.indent) { onError(offset, "BAD_INDENT", startColMsg); } + ctx.atKey = true; const keyStart = keyProps.end; const keyNode = key ? composeNode(ctx, key, keyProps, onError) : composeEmptyNode(ctx, keyStart, start, null, keyProps, onError); if (ctx.schema.compat) utilFlowIndentCheck.flowIndentCheck(bm.indent, key, onError); + ctx.atKey = false; if (utilMapIncludes.mapIncludes(ctx, map.items, keyNode)) onError(keyStart, "DUPLICATE_KEY", "Map keys must be unique"); const valueProps = resolveProps.resolveProps(sep ?? [], { @@ -4013,6 +4070,8 @@ var require_resolve_block_seq = __commonJS({ const seq = new NodeClass(ctx.schema); if (ctx.atRoot) ctx.atRoot = false; + if (ctx.atKey) + ctx.atKey = false; let offset = bs.offset; let commentEnd = null; for (const { start, value } of bs.items) { @@ -4116,6 +4175,8 @@ var require_resolve_flow_collection = __commonJS({ const atRoot = ctx.atRoot; if (atRoot) ctx.atRoot = false; + if (ctx.atKey) + ctx.atKey = false; let offset = fc.offset + fc.start.source.length; for (let i = 0; i < fc.items.length; ++i) { const collItem = fc.items[i]; @@ -4191,10 +4252,12 @@ var require_resolve_flow_collection = __commonJS({ if (isBlock(value)) onError(valueNode.range, "BLOCK_IN_FLOW", blockMsg); } else { + ctx.atKey = true; const keyStart = props.end; const keyNode = key ? composeNode(ctx, key, props, onError) : composeEmptyNode(ctx, keyStart, start, null, props, onError); if (isBlock(key)) onError(keyNode.range, "BLOCK_IN_FLOW", blockMsg); + ctx.atKey = false; const valueProps = resolveProps.resolveProps(sep ?? [], { flow: fcName, indicator: "map-value-ind", @@ -4757,7 +4820,15 @@ var require_compose_scalar = __commonJS({ function composeScalar(ctx, token, tagToken, onError) { const { value, type, comment, range } = token.type === "block-scalar" ? resolveBlockScalar.resolveBlockScalar(ctx, token, onError) : resolveFlowScalar.resolveFlowScalar(token, ctx.options.strict, onError); const tagName = tagToken ? ctx.directives.tagName(tagToken.source, (msg) => onError(tagToken, "TAG_RESOLVE_FAILED", msg)) : null; - const tag = tagToken && tagName ? findScalarTagByName(ctx.schema, value, tagName, tagToken, onError) : token.type === "scalar" ? findScalarTagByTest(ctx, value, token, onError) : ctx.schema[identity.SCALAR]; + let tag; + if (ctx.options.stringKeys && ctx.atKey) { + tag = ctx.schema[identity.SCALAR]; + } else if (tagName) + tag = findScalarTagByName(ctx.schema, value, tagName, tagToken, onError); + else if (token.type === "scalar") + tag = findScalarTagByTest(ctx, value, token, onError); + else + tag = ctx.schema[identity.SCALAR]; let scalar; try { const res = tag.resolve(value, (msg) => onError(tagToken ?? token, "TAG_RESOLVE_FAILED", msg), ctx.options); @@ -4802,8 +4873,8 @@ var require_compose_scalar = __commonJS({ onError(tagToken, "TAG_RESOLVE_FAILED", `Unresolved tag: ${tagName}`, tagName !== "tag:yaml.org,2002:str"); return schema[identity.SCALAR]; } - function findScalarTagByTest({ directives, schema }, value, token, onError) { - const tag = schema.tags.find((tag2) => tag2.default && tag2.test?.test(value)) || schema[identity.SCALAR]; + function findScalarTagByTest({ atKey, directives, schema }, value, token, onError) { + const tag = schema.tags.find((tag2) => (tag2.default === true || atKey && tag2.default === "key") && tag2.test?.test(value)) || schema[identity.SCALAR]; if (schema.compat) { const compat = schema.compat.find((tag2) => tag2.default && tag2.test?.test(value)) ?? schema[identity.SCALAR]; if (tag.tag !== compat.tag) { @@ -4855,12 +4926,14 @@ var require_compose_node = __commonJS({ "../../node_modules/yaml/dist/compose/compose-node.js"(exports2) { "use strict"; var Alias = require_Alias(); + var identity = require_identity(); var composeCollection = require_compose_collection(); var composeScalar = require_compose_scalar(); var resolveEnd = require_resolve_end(); var utilEmptyScalarPosition = require_util_empty_scalar_position(); var CN = { composeNode, composeEmptyNode }; function composeNode(ctx, token, props, onError) { + const atKey = ctx.atKey; const { spaceBefore, comment, anchor, tag } = props; let node; let isSrcToken = true; @@ -4894,6 +4967,10 @@ var require_compose_node = __commonJS({ } if (anchor && node.anchor === "") onError(anchor, "BAD_ALIAS", "Anchor cannot be an empty string"); + if (atKey && ctx.options.stringKeys && (!identity.isScalar(node) || typeof node.value !== "string" || node.tag && node.tag !== "tag:yaml.org,2002:str")) { + const msg = "With stringKeys, all keys must be strings"; + onError(tag ?? token, "NON_STRING_KEY", msg); + } if (spaceBefore) node.spaceBefore = true; if (comment) { @@ -4957,6 +5034,7 @@ var require_compose_doc = __commonJS({ const opts = Object.assign({ _directives: directives }, options); const doc = new Document.Document(void 0, opts); const ctx = { + atKey: false, atRoot: true, directives: doc.directives, options: doc.options, @@ -4991,6 +5069,7 @@ var require_compose_doc = __commonJS({ var require_composer = __commonJS({ "../../node_modules/yaml/dist/compose/composer.js"(exports2) { "use strict"; + var node_process = require("node:process"); var directives = require_directives(); var Document = require_Document(); var errors = require_errors(); @@ -5106,7 +5185,7 @@ ${cb}` : comment; } /** Advance the composer by one CST token. */ *next(token) { - if (process.env.LOG_STREAM) + if (node_process.env.LOG_STREAM) console.dir(token, { depth: null }); switch (token.type) { case "directive": @@ -6211,6 +6290,7 @@ var require_line_counter = __commonJS({ var require_parser = __commonJS({ "../../node_modules/yaml/dist/parse/parser.js"(exports2) { "use strict"; + var node_process = require("node:process"); var cst = require_cst(); var lexer = require_lexer(); function includesToken(list, type) { @@ -6333,7 +6413,7 @@ var require_parser = __commonJS({ */ *next(source) { this.source = source; - if (process.env.LOG_TOKENS) + if (node_process.env.LOG_TOKENS) console.log("|", cst.prettyToken(source)); if (this.atScalar) { this.atScalar = false; @@ -7067,6 +7147,7 @@ var require_public_api = __commonJS({ var Document = require_Document(); var errors = require_errors(); var log = require_log(); + var identity = require_identity(); var lineCounter = require_line_counter(); var parser = require_parser(); function parseOptions(options) { @@ -7144,6 +7225,8 @@ var require_public_api = __commonJS({ if (!keepUndefined) return void 0; } + if (identity.isDocument(value) && !_replacer) + return value.toString(options); return new Document.Document(value, _replacer, options).toString(options); } exports2.parse = parse; diff --git a/src-tauri/vendored/plugins/importer-openapi/build/index.js b/src-tauri/vendored/plugins/importer-openapi/build/index.js index 3e4b11ba..2daeaf3b 100644 --- a/src-tauri/vendored/plugins/importer-openapi/build/index.js +++ b/src-tauri/vendored/plugins/importer-openapi/build/index.js @@ -49782,7 +49782,11 @@ var require_property_base = __commonJS({ * @returns {*|undefined} */ parent() { - return this && this.__parent && (this.__parent.__parent || this.__parent) || void 0; + let parent = this.__parent; + if (parent && parent._postman_propertyIsList) { + parent = parent.__parent || parent; + } + return parent || void 0; }, /** * Accepts an object and sets it as the parent of the current property. @@ -77141,7 +77145,7 @@ var require_dynamic_variables = __commonJS({ description: "A random avatar image", generator: () => { return faker.random.arrayElement([ - // eslint-disable-next-line max-len + // eslint-disable-next-line @stylistic/js/max-len `https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/${faker.datatype.number(1249)}.jpg`, `https://avatars.githubusercontent.com/u/${faker.datatype.number(1e8)}` ]); @@ -77494,7 +77498,7 @@ var require_superstring = __commonJS({ * @readOnly * @type {RegExp} */ - REGEX_EXTRACT_VARS: /\{\{([^{}]*?)}}/g, + REGEX_EXTRACT_VARS: /{{([^{}]*?)}}/g, /** * Defines the number of times the variable substitution mechanism will repeat until all tokens are resolved * @@ -77589,7 +77593,7 @@ var require_property = __commonJS({ } else if (typeof value === "object") { seen.add(value); for (const key in value) { - if (Object.hasOwnProperty.call(value, key)) { + if (Object.hasOwn(value, key)) { _findSubstitutions(value[key], seen, result); } } @@ -77894,7 +77898,7 @@ var require_property_list = __commonJS({ before > -1 ? this.members.splice(before, 0, item) : this.members.push(item); if ((index = item[this._postman_listIndexKey]) && (index = String(index))) { this._postman_listIndexCaseInsensitive && (index = index.toLowerCase()); - if (this._postman_listAllowsMultipleValues && Object.hasOwnProperty.call(this.reference, index)) { + if (this._postman_listAllowsMultipleValues && Object.hasOwn(this.reference, index)) { !_2.isArray(this.reference[index]) && (this.reference[index] = [this.reference[index]]); this.reference[index].push(item); } else { @@ -78458,7 +78462,7 @@ var require_parser = __commonJS({ var ReplacementTracker = require_replacement_tracker(); var REGEX_ALL_BACKSLASHES = /\\/g; var REGEX_LEADING_SLASHES = /^\/+/; - var REGEX_ALL_VARIABLES = /{{[^{}]*[.:/?#@&\]][^{}]*}}/g; + var REGEX_ALL_VARIABLES = /{{[^{}]*}}/g; var HASH_SEPARATOR = "#"; var PATH_SEPARATOR = "/"; var PORT_SEPARATOR = ":"; @@ -78613,6 +78617,7 @@ var require_query_param = __commonJS({ "../../node_modules/postman-collection/lib/collection/query-param.js"(exports2, module2) { var _2 = require_util2().lodash; var Property = require_property().Property; + var Substitutor = require_superstring().Substitutor; var PropertyList = require_property_list().PropertyList; var E = ""; var AMPERSAND = "&"; @@ -78623,7 +78628,7 @@ var require_query_param = __commonJS({ var REGEX_HASH = /#/g; var REGEX_EQUALS = /=/g; var REGEX_AMPERSAND = /&/g; - var REGEX_EXTRACT_VARS = /{{[^{}]*[&#=][^{}]*}}/g; + var REGEX_EXTRACT_VARS = Substitutor.REGEX_EXTRACT_VARS; var QueryParam; var encodeReservedChars = function(str, encodeEquals) { if (!str) { @@ -92126,7 +92131,7 @@ var require_db3 = __commonJS({ type: "embed", format: "pdf" }, - "application/ecmascript": { + "text/javascript": { type: "text", format: "script" }, @@ -92134,6 +92139,66 @@ var require_db3 = __commonJS({ type: "text", format: "script" }, + "application/ecmascript": { + type: "text", + format: "script" + }, + "application/x-ecmascript": { + type: "text", + format: "script" + }, + "application/x-javascript": { + type: "text", + format: "script" + }, + "text/ecmascript": { + type: "text", + format: "script" + }, + "text/javascript1.0": { + type: "text", + format: "script" + }, + "text/javascript1.1": { + type: "text", + format: "script" + }, + "text/javascript1.2": { + type: "text", + format: "script" + }, + "text/javascript1.3": { + type: "text", + format: "script" + }, + "text/javascript1.4": { + type: "text", + format: "script" + }, + "text/javascript1.5": { + type: "text", + format: "script" + }, + "text/jscript": { + type: "text", + format: "script" + }, + "text/livescript": { + type: "text", + format: "script" + }, + "text/x-ecmascript": { + type: "text", + format: "script" + }, + "text/x-javascript": { + type: "text", + format: "script" + }, + "text/css": { + type: "text", + format: "stylesheet" + }, "application/json": { type: "text", format: "json" @@ -94086,7 +94151,7 @@ var require_content_info = __commonJS({ * egHeader: inline; filename="test Response.json" * Reference: https://github.com/jshttp/content-disposition */ - // eslint-disable-next-line max-len + // eslint-disable-next-line @stylistic/js/max-len fileNameRegex: /;[ \t]*(?:filename)[ \t]*=[ \t]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[ \t]*/, /** * RegExp for extracting filename* from content-disposition header @@ -94119,7 +94184,7 @@ var require_content_info = __commonJS({ * egHeader: attachment;filename*=utf-8''%E4%BD%A0%E5%A5%BD.txt * Reference: https://github.com/jshttp/content-disposition */ - // eslint-disable-next-line max-len, security/detect-unsafe-regex + // eslint-disable-next-line @stylistic/js/max-len, security/detect-unsafe-regex encodedFileNameRegex: /;[ \t]*(?:filename\*)[ \t]*=[ \t]*([A-Za-z0-9!#$%&+\-^_`{}~]+)'.*'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)[ \t]*/, /** * RegExp to match quoted-pair in RFC 2616 @@ -95313,6 +95378,7 @@ var require_re = __commonJS({ var re = exports2.re = []; var safeRe = exports2.safeRe = []; var src = exports2.src = []; + var safeSrc = exports2.safeSrc = []; var t = exports2.t = {}; var R = 0; var LETTERDASHNUMBER = "[a-zA-Z0-9-]"; @@ -95333,6 +95399,7 @@ var require_re = __commonJS({ debug(name, index, value); t[name] = index; src[index] = value; + safeSrc[index] = safe; re[index] = new RegExp(value, isGlobal ? "g" : void 0); safeRe[index] = new RegExp(safe, isGlobal ? "g" : void 0); }; @@ -95429,7 +95496,7 @@ var require_semver = __commonJS({ "../../node_modules/semver/classes/semver.js"(exports2, module2) { var debug = require_debug(); var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants(); - var { safeRe: re, t } = require_re(); + var { safeRe: re, safeSrc: src, t } = require_re(); var parseOptions = require_parse_options(); var { compareIdentifiers } = require_identifiers(); var SemVer = class _SemVer { @@ -95569,6 +95636,18 @@ var require_semver = __commonJS({ // preminor will bump the version up to the next minor release, and immediately // down to pre-release. premajor and prepatch work the same way. inc(release, identifier, identifierBase) { + if (release.startsWith("pre")) { + if (!identifier && identifierBase === false) { + throw new Error("invalid increment argument: identifier is empty"); + } + if (identifier) { + const r = new RegExp(`^${this.options.loose ? src[t.PRERELEASELOOSE] : src[t.PRERELEASE]}$`); + const match = `-${identifier}`.match(r); + if (!match || match[1] !== identifier) { + throw new Error(`invalid identifier: ${identifier}`); + } + } + } switch (release) { case "premajor": this.prerelease.length = 0; @@ -95594,6 +95673,12 @@ var require_semver = __commonJS({ } this.inc("pre", identifier, identifierBase); break; + case "release": + if (this.prerelease.length === 0) { + throw new Error(`version ${this.raw} is not a prerelease`); + } + this.prerelease.length = 0; + break; case "major": if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { this.major++; @@ -95617,9 +95702,6 @@ var require_semver = __commonJS({ break; case "pre": { const base = Number(identifierBase) ? 1 : 0; - if (!identifier && identifierBase === false) { - throw new Error("invalid increment argument: identifier is empty"); - } if (this.prerelease.length === 0) { this.prerelease = [base]; } else { @@ -95754,13 +95836,12 @@ var require_diff = __commonJS({ if (!lowVersion.patch && !lowVersion.minor) { return "major"; } - if (highVersion.patch) { + if (lowVersion.compareMain(highVersion) === 0) { + if (lowVersion.minor && !lowVersion.patch) { + return "minor"; + } return "patch"; } - if (highVersion.minor) { - return "minor"; - } - return "major"; } const prefix = highHasPre ? "pre" : ""; if (v12.major !== v2.major) { @@ -136895,8 +136976,6 @@ var require_utils3 = __commonJS({ originalRequest.url.query = []; originalRequest.header = _2.get(response, "originalRequest.headers", []); originalRequest.body = requestItem.request.body; - response.code = response.code.replace(/X|x/g, "0"); - response.code = response.code === "default" ? 500 : _2.toSafeInteger(response.code); let sdkResponse = new Response({ name: response.name, code: response.code, @@ -137692,7 +137771,7 @@ var require_schemaUtils2 = __commonJS({ } exampleKey = Object.keys(exampleObj)[0]; example = exampleObj[exampleKey]; - if (example.$ref) { + if (example && example.$ref) { example = resolveExampleData(context, example); } if (_2.get(example, "value")) { @@ -137881,6 +137960,65 @@ var require_schemaUtils2 = __commonJS({ } return schema2; }; + var processSchema = (resolvedSchema) => { + if (resolvedSchema.type === "object" && resolvedSchema.properties) { + const schemaDetails = { + type: resolvedSchema.type, + properties: {}, + required: [] + }, requiredProperties = new Set(resolvedSchema.required || []); + for (let [propName, propValue] of Object.entries(resolvedSchema.properties)) { + if (!propValue.type) { + continue; + } + const propertyDetails = { + type: propValue.type, + deprecated: propValue.deprecated, + enum: propValue.enum || void 0, + minLength: propValue.minLength, + maxLength: propValue.maxLength, + minimum: propValue.minimum, + maximum: propValue.maximum, + pattern: propValue.pattern, + example: propValue.example, + description: propValue.description, + format: propValue.format + }; + if (requiredProperties.has(propName)) { + schemaDetails.required.push(propName); + } + if (propValue.properties) { + let processedProperties = processSchema(propValue); + propertyDetails.properties = processedProperties.properties; + if (processedProperties.required) { + propertyDetails.required = processedProperties.required; + } + } else if (propValue.type === "array" && propValue.items) { + propertyDetails.items = processSchema(propValue.items); + } + schemaDetails.properties[propName] = propertyDetails; + } + if (schemaDetails.required && schemaDetails.required.length === 0) { + schemaDetails.required = void 0; + } + return schemaDetails; + } else if (resolvedSchema.type === "array" && resolvedSchema.items) { + const arrayDetails = { + type: resolvedSchema.type, + items: processSchema(resolvedSchema.items) + }; + if (resolvedSchema.minItems !== void 0) { + arrayDetails.minItems = resolvedSchema.minItems; + } + if (resolvedSchema.maxItems !== void 0) { + arrayDetails.maxItems = resolvedSchema.maxItems; + } + return arrayDetails; + } + return { + type: resolvedSchema.type + }; + }; var resolveSchema = (context, schema2, { stack = 0, resolveFor = CONVERSION, seenRef = {}, isResponseSchema = false } = {}) => { resetReadWritePropCache(context); let resolvedSchema = _resolveSchema(context, schema2, stack, resolveFor, seenRef); @@ -138227,12 +138365,16 @@ var require_schemaUtils2 = __commonJS({ return pmExamples; }; var resolveBodyData = (context, requestBodySchema, bodyType, isExampleBody = false, responseCode = null, requestBodyExamples = {}) => { - let { parametersResolution, indentCharacter } = context.computedOptions, headerFamily = getHeaderFamily(bodyType), bodyData = "", shouldGenerateFromExample = parametersResolution === "example", isBodyTypeXML = bodyType === APP_XML || bodyType === TEXT_XML || headerFamily === HEADER_TYPE.XML, bodyKey = isExampleBody ? "response" : "request", responseExamples, example, examples; + let { parametersResolution, indentCharacter } = context.computedOptions, headerFamily = getHeaderFamily(bodyType), bodyData = "", shouldGenerateFromExample = parametersResolution === "example", isBodyTypeXML = bodyType === APP_XML || bodyType === TEXT_XML || headerFamily === HEADER_TYPE.XML, bodyKey = isExampleBody ? "response" : "request", responseExamples, example, examples, resolvedSchemaTypes = []; if (_2.isEmpty(requestBodySchema)) { return [{ [bodyKey]: bodyData }]; } if (requestBodySchema.$ref) { - requestBodySchema = resolveSchema(context, requestBodySchema, { isResponseSchema: isExampleBody }); + requestBodySchema = resolveSchema( + context, + requestBodySchema, + { isResponseSchema: isExampleBody } + ); } if (requestBodySchema.example !== void 0) { const shouldResolveValueKey = _2.has(requestBodySchema.example, "value") && _2.keys(requestBodySchema.example).length <= 1; @@ -138243,7 +138385,11 @@ var require_schemaUtils2 = __commonJS({ } examples = requestBodySchema.examples || _2.get(requestBodySchema, "schema.examples"); requestBodySchema = requestBodySchema.schema || requestBodySchema; - requestBodySchema = resolveSchema(context, requestBodySchema, { isResponseSchema: isExampleBody }); + requestBodySchema = resolveSchema( + context, + requestBodySchema, + { isResponseSchema: isExampleBody } + ); if (example === void 0 && _2.get(requestBodySchema, "example") !== void 0) { example = requestBodySchema.example; } @@ -138257,7 +138403,11 @@ var require_schemaUtils2 = __commonJS({ } else if (requestBodySchema) { requestBodySchema = requestBodySchema.schema || requestBodySchema; if (requestBodySchema.$ref) { - requestBodySchema = resolveSchema(context, requestBodySchema, { isResponseSchema: isExampleBody }); + requestBodySchema = resolveSchema( + context, + requestBodySchema, + { isResponseSchema: isExampleBody } + ); } if (isBodyTypeXML) { bodyData = xmlFaker(null, requestBodySchema, indentCharacter, parametersResolution); @@ -138285,6 +138435,10 @@ var require_schemaUtils2 = __commonJS({ } } } + if (context.enableTypeFetching && requestBodySchema.type !== void 0) { + const requestBodySchemaTypes = processSchema(requestBodySchema); + resolvedSchemaTypes.push(requestBodySchemaTypes); + } if (isExampleBody && shouldGenerateFromExample && (_2.size(examples) > 1 || _2.size(requestBodyExamples) > 1)) { responseExamples = [{ key: "_default", @@ -138305,22 +138459,37 @@ var require_schemaUtils2 = __commonJS({ if (_2.isEmpty(matchedRequestBodyExamples)) { matchedRequestBodyExamples = requestBodyExamples; } - return generateExamples(context, responseExamples, matchedRequestBodyExamples, requestBodySchema, isBodyTypeXML); + const generatedBody = generateExamples( + context, + responseExamples, + matchedRequestBodyExamples, + requestBodySchema, + isBodyTypeXML + ); + return { + generatedBody, + resolvedSchemaType: resolvedSchemaTypes[0] + }; } - return [{ [bodyKey]: bodyData }]; + return { + generatedBody: [{ [bodyKey]: bodyData }], + resolvedSchemaType: resolvedSchemaTypes[0] + }; }; var resolveUrlEncodedRequestBodyForPostmanRequest = (context, requestBodyContent) => { let bodyData = "", urlEncodedParams = [], requestBodyData = { mode: "urlencoded", urlencoded: urlEncodedParams - }, resolvedBody; + }, resolvedBody, resolvedBodyResult, resolvedSchemaTypeObject; if (_2.isEmpty(requestBodyContent)) { return requestBodyData; } if (_2.has(requestBodyContent, "schema.$ref")) { requestBodyContent.schema = resolveSchema(context, requestBodyContent.schema); } - resolvedBody = resolveBodyData(context, requestBodyContent.schema)[0]; + resolvedBodyResult = resolveBodyData(context, requestBodyContent.schema); + resolvedBody = resolvedBodyResult && Array.isArray(resolvedBodyResult.generatedBody) && resolvedBodyResult.generatedBody[0]; + resolvedSchemaTypeObject = resolvedBodyResult && resolvedBodyResult.resolvedSchemaType; resolvedBody && (bodyData = resolvedBody.request); const encoding = requestBodyContent.encoding || {}; _2.forOwn(bodyData, (value, key) => { @@ -138342,18 +138511,21 @@ var require_schemaUtils2 = __commonJS({ headers: [{ key: "Content-Type", value: URLENCODED - }] + }], + resolvedSchemaTypeObject }; }; var resolveFormDataRequestBodyForPostmanRequest = (context, requestBodyContent) => { let bodyData = "", formDataParams = [], encoding = {}, requestBodyData = { mode: "formdata", formdata: formDataParams - }, resolvedBody; + }, resolvedBody, resolvedBodyResult, resolvedSchemaTypeObject; if (_2.isEmpty(requestBodyContent)) { return requestBodyData; } - resolvedBody = resolveBodyData(context, requestBodyContent.schema)[0]; + resolvedBodyResult = resolveBodyData(context, requestBodyContent.schema); + resolvedBody = resolvedBodyResult && Array.isArray(resolvedBodyResult.generatedBody) && resolvedBodyResult.generatedBody[0]; + resolvedSchemaTypeObject = resolvedBodyResult && resolvedBodyResult.resolvedSchemaType; resolvedBody && (bodyData = resolvedBody.request); encoding = _2.get(requestBodyContent, "encoding", {}); _2.forOwn(bodyData, (value, key) => { @@ -138389,7 +138561,8 @@ var require_schemaUtils2 = __commonJS({ headers: [{ key: "Content-Type", value: FORM_DATA - }] + }], + resolvedSchemaTypeObject }; }; var getRawBodyType = (content) => { @@ -138425,14 +138598,16 @@ var require_schemaUtils2 = __commonJS({ return bodyType; }; var resolveRawModeRequestBodyForPostmanRequest = (context, requestContent) => { - let bodyType = getRawBodyType(requestContent), bodyData, headerFamily, dataToBeReturned = {}, { concreteUtils } = context, resolvedBody; + let bodyType = getRawBodyType(requestContent), bodyData, headerFamily, dataToBeReturned = {}, { concreteUtils } = context, resolvedBody, resolvedBodyResult, resolvedSchemaTypeObject; headerFamily = getHeaderFamily(bodyType); if (concreteUtils.isBinaryContentType(bodyType, requestContent)) { dataToBeReturned = { mode: "file" }; } else { - resolvedBody = resolveBodyData(context, requestContent[bodyType], bodyType)[0]; + resolvedBodyResult = resolveBodyData(context, requestContent[bodyType], bodyType); + resolvedBody = resolvedBodyResult && Array.isArray(resolvedBodyResult.generatedBody) && resolvedBodyResult.generatedBody[0]; + resolvedSchemaTypeObject = resolvedBodyResult && resolvedBodyResult.resolvedSchemaType; resolvedBody && (bodyData = resolvedBody.request); if (bodyType === TEXT_XML || bodyType === APP_XML || headerFamily === HEADER_TYPE.XML) { bodyData = getXmlVersionContent(bodyData); @@ -138456,7 +138631,8 @@ var require_schemaUtils2 = __commonJS({ headers: [{ key: "Content-Type", value: bodyType - }] + }], + resolvedSchemaTypeObject }; }; var resolveRequestBodyForPostmanRequest = (context, operationItem) => { @@ -138536,8 +138712,25 @@ var require_schemaUtils2 = __commonJS({ }); return reqParam; }; + var createProperties = (param) => { + const { schema: schema2 } = param; + return { + type: schema2.type, + format: schema2.format, + default: schema2.default, + required: param.required || false, + deprecated: param.deprecated || false, + enum: schema2.enum || void 0, + minLength: schema2.minLength, + maxLength: schema2.maxLength, + minimum: schema2.minimum, + maximum: schema2.maximum, + pattern: schema2.pattern, + example: schema2.example + }; + }; var resolveQueryParamsForPostmanRequest = (context, operationItem, method) => { - const params = resolvePathItemParams(context, operationItem[method].parameters, operationItem.parameters), pmParams = [], { includeDeprecated } = context.computedOptions; + const params = resolvePathItemParams(context, operationItem[method].parameters, operationItem.parameters), pmParams = [], queryParamTypes = [], { includeDeprecated } = context.computedOptions; _2.forEach(params, (param) => { if (!_2.isObject(param)) { return; @@ -138545,20 +138738,28 @@ var require_schemaUtils2 = __commonJS({ if (_2.has(param, "$ref")) { param = resolveSchema(context, param); } + if (_2.has(param.schema, "$ref")) { + param.schema = resolveSchema(context, param.schema); + } if (param.in !== QUERYPARAM || !includeDeprecated && param.deprecated) { return; } - let paramValue = resolveValueOfParameter(context, param); + let queryParamTypeInfo = {}, properties = {}, paramValue = resolveValueOfParameter(context, param); + if (param && param.name && param.schema && param.schema.type) { + properties = createProperties(param); + queryParamTypeInfo = { keyName: param.name, properties }; + queryParamTypes.push(queryParamTypeInfo); + } if (typeof paramValue === "number" || typeof paramValue === "boolean") { paramValue = paramValue.toString(); } const deserialisedParams = serialiseParamsBasedOnStyle(context, param, paramValue); pmParams.push(...deserialisedParams); }); - return pmParams; + return { queryParamTypes, queryParams: pmParams }; }; var resolvePathParamsForPostmanRequest = (context, operationItem, method) => { - const params = resolvePathItemParams(context, operationItem[method].parameters, operationItem.parameters), pmParams = []; + const params = resolvePathItemParams(context, operationItem[method].parameters, operationItem.parameters), pmParams = [], pathParamTypes = []; _2.forEach(params, (param) => { if (!_2.isObject(param)) { return; @@ -138566,17 +138767,25 @@ var require_schemaUtils2 = __commonJS({ if (_2.has(param, "$ref")) { param = resolveSchema(context, param); } + if (_2.has(param.schema, "$ref")) { + param.schema = resolveSchema(context, param.schema); + } if (param.in !== PATHPARAM) { return; } - let paramValue = resolveValueOfParameter(context, param); + let pathParamTypeInfo = {}, properties = {}, paramValue = resolveValueOfParameter(context, param); + if (param && param.name && param.schema && param.schema.type) { + properties = createProperties(param); + pathParamTypeInfo = { keyName: param.name, properties }; + pathParamTypes.push(pathParamTypeInfo); + } if (typeof paramValue === "number" || typeof paramValue === "boolean") { paramValue = paramValue.toString(); } const deserialisedParams = serialiseParamsBasedOnStyle(context, param, paramValue); pmParams.push(...deserialisedParams); }); - return pmParams; + return { pathParamTypes, pathParams: pmParams }; }; var resolveNameForPostmanReqeust = (context, operationItem, requestUrl) => { let reqName, { requestNameSource } = context.computedOptions; @@ -138598,7 +138807,7 @@ var require_schemaUtils2 = __commonJS({ return reqName; }; var resolveHeadersForPostmanRequest = (context, operationItem, method) => { - const params = resolvePathItemParams(context, operationItem[method].parameters, operationItem.parameters), pmParams = [], { keepImplicitHeaders, includeDeprecated } = context.computedOptions; + const params = resolvePathItemParams(context, operationItem[method].parameters, operationItem.parameters), pmParams = [], headerTypes = [], { keepImplicitHeaders, includeDeprecated } = context.computedOptions; _2.forEach(params, (param) => { if (!_2.isObject(param)) { return; @@ -138606,25 +138815,33 @@ var require_schemaUtils2 = __commonJS({ if (_2.has(param, "$ref")) { param = resolveSchema(context, param); } + if (_2.has(param.schema, "$ref")) { + param.schema = resolveSchema(context, param.schema); + } if (param.in !== HEADER || !includeDeprecated && param.deprecated) { return; } if (!keepImplicitHeaders && _2.includes(IMPLICIT_HEADERS, _2.toLower(_2.get(param, "name")))) { return; } - let paramValue = resolveValueOfParameter(context, param); + let headerTypeInfo = {}, properties = {}, paramValue = resolveValueOfParameter(context, param); + if (param && param.name && param.schema && param.schema.type) { + properties = createProperties(param); + headerTypeInfo = { keyName: param.name, properties }; + headerTypes.push(headerTypeInfo); + } if (typeof paramValue === "number" || typeof paramValue === "boolean") { paramValue = paramValue.toString(); } const deserialisedParams = serialiseParamsBasedOnStyle(context, param, paramValue); pmParams.push(...deserialisedParams); }); - return pmParams; + return { headerTypes, headers: pmParams }; }; var resolveResponseBody = (context, responseBody = {}, requestBodyExamples = {}, code = null) => { let responseContent, bodyType, allBodyData, headerFamily, acceptHeader, emptyResponse = [{ body: void 0 - }]; + }], resolvedResponseBodyResult, resolvedResponseBodyTypes; if (_2.isEmpty(responseBody)) { return emptyResponse; } @@ -138637,7 +138854,16 @@ var require_schemaUtils2 = __commonJS({ } bodyType = getRawBodyType(responseContent); headerFamily = getHeaderFamily(bodyType); - allBodyData = resolveBodyData(context, responseContent[bodyType], bodyType, true, code, requestBodyExamples); + resolvedResponseBodyResult = resolveBodyData( + context, + responseContent[bodyType], + bodyType, + true, + code, + requestBodyExamples + ); + allBodyData = resolvedResponseBodyResult.generatedBody; + resolvedResponseBodyTypes = resolvedResponseBodyResult.resolvedSchemaType; return _2.map(allBodyData, (bodyData) => { let requestBodyData = bodyData.request, responseBodyData = bodyData.response, exampleName = bodyData.name; if (bodyType === TEXT_XML || bodyType === APP_XML || headerFamily === HEADER_TYPE.XML) { @@ -138663,12 +138889,13 @@ var require_schemaUtils2 = __commonJS({ }], name: exampleName, bodyType, - acceptHeader + acceptHeader, + resolvedResponseBodyTypes }; }); }; var resolveResponseHeaders = (context, responseHeaders) => { - const headers = [], { includeDeprecated } = context.computedOptions; + const headers = [], { includeDeprecated } = context.computedOptions, headerTypes = []; if (_2.has(responseHeaders, "$ref")) { responseHeaders = resolveSchema(context, responseHeaders, { isResponseSchema: true }); } @@ -138679,14 +138906,33 @@ var require_schemaUtils2 = __commonJS({ if (!includeDeprecated && value.deprecated) { return; } - let headerValue = resolveValueOfParameter(context, value, { isResponseSchema: true }); + let headerValue = resolveValueOfParameter(context, value, { isResponseSchema: true }), headerTypeInfo = {}, properties = {}; if (typeof headerValue === "number" || typeof headerValue === "boolean") { headerValue = headerValue.toString(); } const headerData = Object.assign({}, value, { name: headerName }), serialisedHeader = serialiseParamsBasedOnStyle(context, headerData, headerValue, { isResponseSchema: true }); headers.push(...serialisedHeader); + if (headerData && headerData.name && headerData.schema && headerData.schema.type) { + const { schema: schema2 } = headerData; + properties = { + type: schema2.type, + format: schema2.format, + default: schema2.default, + required: schema2.required || false, + deprecated: schema2.deprecated || false, + enum: schema2.enum || void 0, + minLength: schema2.minLength, + maxLength: schema2.maxLength, + minimum: schema2.minimum, + maximum: schema2.maximum, + pattern: schema2.pattern, + example: schema2.example + }; + headerTypeInfo = { keyName: headerData.name, properties }; + headerTypes.push(headerTypeInfo); + } }); - return headers; + return { resolvedHeaderTypes: headerTypes, headers }; }; var getPreviewLangugaForResponseBody = (bodyType) => { const headerFamily = getHeaderFamily(bodyType); @@ -138753,7 +138999,7 @@ var require_schemaUtils2 = __commonJS({ return responseAuthHelper; }; var resolveResponseForPostmanRequest = (context, operationItem, request) => { - let responses = [], requestBodyExamples = [], requestAcceptHeader, requestBody = operationItem.requestBody, requestContent, rawBodyType, headerFamily, isBodyTypeXML; + let responses = [], requestBodyExamples = [], requestAcceptHeader, requestBody = operationItem.requestBody, requestContent, rawBodyType, headerFamily, isBodyTypeXML, resolvedExamplesObject = {}, responseTypes = {}; if (typeof requestBody === "object") { if (requestBody.$ref) { requestBody = resolveSchema(context, requestBody, { isResponseSchema: true }); @@ -138789,7 +139035,15 @@ var require_schemaUtils2 = __commonJS({ } } _2.forOwn(operationItem.responses, (responseObj, code) => { - let responseSchema = _2.has(responseObj, "$ref") ? resolveSchema(context, responseObj, { isResponseSchema: true }) : responseObj, { includeAuthInfoInExample } = context.computedOptions, auth = request.auth, resolvedExamples = resolveResponseBody(context, responseSchema, requestBodyExamples, code) || {}, headers = resolveResponseHeaders(context, responseSchema.headers); + let responseSchema = _2.has(responseObj, "$ref") ? resolveSchema(context, responseObj, { isResponseSchema: true }) : responseObj, { includeAuthInfoInExample } = context.computedOptions, auth = request.auth, resolvedExamples = resolveResponseBody(context, responseSchema, requestBodyExamples, code) || {}, { resolvedHeaderTypes, headers } = resolveResponseHeaders(context, responseSchema.headers), responseBodyHeaderObj; + resolvedExamplesObject = resolvedExamples[0] && resolvedExamples[0].resolvedResponseBodyTypes; + responseBodyHeaderObj = { + body: JSON.stringify(resolvedExamplesObject, null, 2), + headers: JSON.stringify(resolvedHeaderTypes, null, 2) + }; + code = code.replace(/X|x/g, "0"); + code = code === "default" ? 500 : _2.toSafeInteger(code); + Object.assign(responseTypes, { [code]: responseBodyHeaderObj }); _2.forOwn(resolvedExamples, (resolvedExample = {}) => { let { body, contentHeader = [], bodyType, acceptHeader, name } = resolvedExample, resolvedRequestBody = _2.get(resolvedExample, "request.body"), originalRequest, response, responseAuthHelper, requestBodyObj = {}, reqHeaders = _2.clone(request.headers) || [], reqQueryParams = _2.clone(_2.get(request, "params.queryParams", [])); _2.isArray(acceptHeader) && reqHeaders.push(...acceptHeader); @@ -138829,13 +139083,17 @@ var require_schemaUtils2 = __commonJS({ responses.push(response); }); }); - return { responses, acceptHeader: requestAcceptHeader }; + return { + responses, + acceptHeader: requestAcceptHeader, + responseTypes + }; }; module2.exports = { resolvePostmanRequest: function(context, operationItem, path, method) { context.schemaCache = context.schemaCache || {}; context.schemaFakerCache = context.schemaFakerCache || {}; - let url = resolveUrlForPostmanRequest(path), baseUrlData = resolveBaseUrlForPostmanRequest(operationItem[method]), requestName = resolveNameForPostmanReqeust(context, operationItem[method], url), queryParams = resolveQueryParamsForPostmanRequest(context, operationItem, method), headers = resolveHeadersForPostmanRequest(context, operationItem, method), pathParams = resolvePathParamsForPostmanRequest(context, operationItem, method), { pathVariables, collectionVariables } = filterCollectionAndPathVariables(url, pathParams), requestBody = resolveRequestBodyForPostmanRequest(context, operationItem[method]), request, securitySchema = _2.get(operationItem, [method, "security"]), authHelper = generateAuthForCollectionFromOpenAPI(context.openapi, securitySchema), { alwaysInheritAuthentication } = context.computedOptions; + let url = resolveUrlForPostmanRequest(path), baseUrlData = resolveBaseUrlForPostmanRequest(operationItem[method]), requestName = resolveNameForPostmanReqeust(context, operationItem[method], url), { queryParamTypes, queryParams } = resolveQueryParamsForPostmanRequest(context, operationItem, method), { headerTypes, headers } = resolveHeadersForPostmanRequest(context, operationItem, method), { pathParamTypes, pathParams } = resolvePathParamsForPostmanRequest(context, operationItem, method), { pathVariables, collectionVariables } = filterCollectionAndPathVariables(url, pathParams), requestBody = resolveRequestBodyForPostmanRequest(context, operationItem[method]), requestBodyTypes = requestBody && requestBody.resolvedSchemaTypeObject, request, securitySchema = _2.get(operationItem, [method, "security"]), authHelper = generateAuthForCollectionFromOpenAPI(context.openapi, securitySchema), { alwaysInheritAuthentication } = context.computedOptions, requestIdentifier, requestTypesObject = {}; headers.push(..._2.get(requestBody, "headers", [])); pathVariables.push(...baseUrlData.pathVariables); collectionVariables.push(...baseUrlData.collectionVariables); @@ -138853,7 +139111,21 @@ var require_schemaUtils2 = __commonJS({ body: _2.get(requestBody, "body"), auth: alwaysInheritAuthentication ? void 0 : authHelper }; - const { responses, acceptHeader } = resolveResponseForPostmanRequest(context, operationItem[method], request); + const requestTypes = { + body: JSON.stringify(requestBodyTypes, null, 2), + headers: JSON.stringify(headerTypes, null, 2), + pathParam: JSON.stringify(pathParamTypes, null, 2), + queryParam: JSON.stringify(queryParamTypes, null, 2) + }, { + responses, + acceptHeader, + responseTypes + } = resolveResponseForPostmanRequest(context, operationItem[method], request); + requestIdentifier = method + path; + Object.assign( + requestTypesObject, + { [requestIdentifier]: { request: requestTypes, response: responseTypes } } + ); if (!_2.isEmpty(acceptHeader)) { request.headers = _2.concat(request.headers, acceptHeader); } @@ -138864,7 +139136,8 @@ var require_schemaUtils2 = __commonJS({ responses }) }, - collectionVariables + collectionVariables, + requestTypesObject }; }, resolveResponseForPostmanRequest, @@ -141220,7 +141493,7 @@ var require_libV2 = __commonJS({ convertV2: function(context, cb) { let collectionTree = generateSkeletonTreeFromOpenAPI(context.openapi, context.computedOptions); let preOrderTraversal = GraphLib.alg.preorder(collectionTree, "root:collection"); - let collection = {}; + let collection = {}, extractedTypesObject = {}; _2.forEach(preOrderTraversal, function(nodeIdentified) { let node = collectionTree.node(nodeIdentified); switch (node.type) { @@ -141254,15 +141527,16 @@ var require_libV2 = __commonJS({ break; } case "request": { - let request = {}, collectionVariables = [], requestObject = {}; + let request = {}, collectionVariables = [], requestObject = {}, requestTypesObject = {}; try { - ({ request, collectionVariables } = resolvePostmanRequest( + ({ request, collectionVariables, requestTypesObject } = resolvePostmanRequest( context, context.openapi.paths[node.meta.path], node.meta.path, node.meta.method )); requestObject = generateRequestItemObject(request); + extractedTypesObject = Object.assign({}, extractedTypesObject, requestTypesObject); } catch (error) { console.error(error); break; @@ -141337,6 +141611,17 @@ var require_libV2 = __commonJS({ if (!_2.isEmpty(collection.variable)) { collection.variable = _2.uniqBy(collection.variable, "key"); } + if (context.enableTypeFetching) { + return cb(null, { + result: true, + output: [{ + type: "collection", + data: collection + }], + analytics: this.analytics || {}, + extractedTypes: extractedTypesObject || {} + }); + } return cb(null, { result: true, output: [{ @@ -145118,7 +145403,7 @@ var require_schemapack = __commonJS({ var concreteUtils; var pathBrowserify = require_path_browserify(); var SchemaPack = class { - constructor(input, options = {}, moduleVersion = MODULE_VERSION.V1) { + constructor(input, options = {}, moduleVersion = MODULE_VERSION.V1, enableTypeFetching = false) { if (input.type === schemaUtils.MULTI_FILE_API_TYPE_ALLOWED_VALUE && input.data && input.data[0] && input.data[0].path) { input = schemaUtils.mapDetectRootFilesInputToFolderInput(input); } @@ -145136,6 +145421,7 @@ var require_schemapack = __commonJS({ actualStack: 0, numberOfRequests: 0 }; + this.enableTypeFetching = enableTypeFetching; this.computedOptions = utils.mergeOptions( // predefined options _2.keyBy(this.definedOptions, "id"), @@ -145814,6 +146100,14 @@ var require_openapi_to_postmanv2 = __commonJS({ } return cb(new UserError(_2.get(schema2, "validationResult.reason", DEFAULT_INVALID_ERROR))); }, + convertV2WithTypes: function(input, options, cb) { + const enableTypeFetching = true; + var schema2 = new SchemaPack(input, options, MODULE_VERSION.V2, enableTypeFetching); + if (schema2.validated) { + return schema2.convertV2(cb); + } + return cb(new UserError(_2.get(schema2, "validationResult.reason", DEFAULT_INVALID_ERROR))); + }, validate: function(input) { var schema2 = new SchemaPack(input); return schema2.validationResult; diff --git a/src-tauri/vendored/plugins/importer-openapi/package.json b/src-tauri/vendored/plugins/importer-openapi/package.json index 9ea28dd1..eeaa0cd1 100644 --- a/src-tauri/vendored/plugins/importer-openapi/package.json +++ b/src-tauri/vendored/plugins/importer-openapi/package.json @@ -7,7 +7,7 @@ "dev": "yaakcli dev ./src/index.js" }, "dependencies": { - "openapi-to-postmanv2": "^4.23.1", + "openapi-to-postmanv2": "^5.0.0", "yaml": "^2.4.2" }, "devDependencies": {