feat: revamped insomnia importer
This commit is contained in:
@@ -1,13 +1,212 @@
|
||||
import { convert, ImportRequest } from "insomnia-importers"
|
||||
import { pipe, flow } from "fp-ts/function"
|
||||
import {
|
||||
HoppRESTAuth,
|
||||
HoppRESTHeader,
|
||||
HoppRESTParam,
|
||||
HoppRESTReqBody,
|
||||
HoppRESTRequest,
|
||||
knownContentTypes,
|
||||
makeRESTRequest,
|
||||
} from "@hoppscotch/data"
|
||||
import * as A from "fp-ts/Array"
|
||||
import * as S from "fp-ts/string"
|
||||
import * as TO from "fp-ts/TaskOption"
|
||||
import * as TE from "fp-ts/TaskEither"
|
||||
import { HoppRESTRequest } from "@hoppscotch/data"
|
||||
import { step } from "../steps"
|
||||
import { getHoppCollection } from "./postman"
|
||||
import { defineImporter, IMPORTER_INVALID_FILE_FORMAT } from "."
|
||||
import { parseInsomniaCollection } from "~/helpers/utils/parseInsomniaCollection"
|
||||
import { Collection } from "~/newstore/collections"
|
||||
import { Collection, makeCollection } from "~/newstore/collections"
|
||||
|
||||
// This Importer definition is less than ideal,
|
||||
// would love an attempt at refactoring this
|
||||
// TODO: Insomnia allows custom prefixes for Bearer token auth, Hoppscotch doesn't. We just ignore the prefix for now
|
||||
|
||||
type UnwrapPromise<T extends Promise<any>> = T extends Promise<infer Y>
|
||||
? Y
|
||||
: never
|
||||
|
||||
type InsomniaDoc = UnwrapPromise<ReturnType<typeof convert>>
|
||||
type InsomniaResource = ImportRequest
|
||||
|
||||
type InsomniaFolderResource = ImportRequest & { _type: "request_group" }
|
||||
type InsomniaRequestResource = ImportRequest & { _type: "request" }
|
||||
|
||||
const parseInsomniaDoc = (content: string) =>
|
||||
TO.tryCatch(() => convert(content))
|
||||
|
||||
const replaceVarTemplating = flow(
|
||||
S.replace(/{{\s+/g, "<<"),
|
||||
S.replace(/\s+}}/g, ">>")
|
||||
)
|
||||
|
||||
const getFoldersIn = (
|
||||
folder: InsomniaFolderResource | null,
|
||||
resources: InsomniaResource[]
|
||||
) =>
|
||||
pipe(
|
||||
resources,
|
||||
A.filter(
|
||||
(x): x is InsomniaFolderResource =>
|
||||
(x._type === "request_group" || x._type === "workspace") &&
|
||||
x.parentId === (folder?._id ?? null)
|
||||
)
|
||||
)
|
||||
|
||||
const getRequestsIn = (
|
||||
folder: InsomniaFolderResource | null,
|
||||
resources: InsomniaResource[]
|
||||
) =>
|
||||
pipe(
|
||||
resources,
|
||||
A.filter(
|
||||
(x): x is InsomniaRequestResource =>
|
||||
x._type === "request" && x.parentId === (folder?._id ?? null)
|
||||
)
|
||||
)
|
||||
|
||||
/**
|
||||
* The provided type by insomnia-importers, this type corrects it
|
||||
*/
|
||||
type InsoReqAuth =
|
||||
| { type: "basic"; disabled?: boolean; username?: string; password?: string }
|
||||
| {
|
||||
type: "oauth2"
|
||||
disabled?: boolean
|
||||
accessTokenUrl?: string
|
||||
authorizationUrl?: string
|
||||
clientId?: string
|
||||
scope?: string
|
||||
}
|
||||
| {
|
||||
type: "bearer"
|
||||
disabled?: boolean
|
||||
token?: string
|
||||
}
|
||||
|
||||
const getHoppReqAuth = (req: InsomniaRequestResource): HoppRESTAuth => {
|
||||
if (!req.authentication) return { authType: "none", authActive: true }
|
||||
|
||||
const auth = req.authentication as InsoReqAuth
|
||||
|
||||
if (auth.type === "basic")
|
||||
return {
|
||||
authType: "basic",
|
||||
authActive: true,
|
||||
username: replaceVarTemplating(auth.username ?? ""),
|
||||
password: replaceVarTemplating(auth.password ?? ""),
|
||||
}
|
||||
else if (auth.type === "oauth2")
|
||||
return {
|
||||
authType: "oauth-2",
|
||||
authActive: !(auth.disabled ?? false),
|
||||
accessTokenURL: replaceVarTemplating(auth.accessTokenUrl ?? ""),
|
||||
authURL: replaceVarTemplating(auth.authorizationUrl ?? ""),
|
||||
clientID: replaceVarTemplating(auth.clientId ?? ""),
|
||||
oidcDiscoveryURL: "",
|
||||
scope: replaceVarTemplating(auth.scope ?? ""),
|
||||
token: "",
|
||||
}
|
||||
else if (auth.type === "bearer")
|
||||
return {
|
||||
authType: "bearer",
|
||||
authActive: true,
|
||||
token: replaceVarTemplating(auth.token ?? ""),
|
||||
}
|
||||
|
||||
return { authType: "none", authActive: true }
|
||||
}
|
||||
|
||||
const getHoppReqBody = (req: InsomniaRequestResource): HoppRESTReqBody => {
|
||||
if (!req.body) return { contentType: null, body: null }
|
||||
|
||||
if (typeof req.body === "string") {
|
||||
const contentType =
|
||||
req.headers?.find(
|
||||
(header) => header.name.toLowerCase() === "content-type"
|
||||
)?.value ?? "text/plain"
|
||||
|
||||
return { contentType, body: replaceVarTemplating(req.body) }
|
||||
}
|
||||
|
||||
if (req.body.mimeType === "multipart/form-data") {
|
||||
return {
|
||||
contentType: "multipart/form-data",
|
||||
body:
|
||||
req.body.params?.map((param) => ({
|
||||
key: replaceVarTemplating(param.name),
|
||||
value: replaceVarTemplating(param.value ?? ""),
|
||||
active: !(param.disabled ?? false),
|
||||
isFile: false,
|
||||
})) ?? [],
|
||||
}
|
||||
} else if (req.body.mimeType === "application/x-www-form-urlencoded") {
|
||||
return {
|
||||
contentType: "application/x-www-form-urlencoded",
|
||||
body:
|
||||
req.body.params
|
||||
?.filter((param) => !(param.disabled ?? false))
|
||||
.map(
|
||||
(param) =>
|
||||
`${replaceVarTemplating(param.name)}: ${replaceVarTemplating(
|
||||
param.value ?? ""
|
||||
)}`
|
||||
)
|
||||
.join("\n") ?? "",
|
||||
}
|
||||
} else if (
|
||||
Object.keys(knownContentTypes).includes(req.body.mimeType ?? "text/plain")
|
||||
) {
|
||||
return {
|
||||
contentType: (req.body.mimeType ?? "text/plain") as any,
|
||||
body: replaceVarTemplating(req.body.text ?? "") as any,
|
||||
}
|
||||
}
|
||||
|
||||
return { contentType: null, body: null }
|
||||
}
|
||||
|
||||
const getHoppReqHeaders = (req: InsomniaRequestResource): HoppRESTHeader[] =>
|
||||
req.headers?.map((header) => ({
|
||||
key: replaceVarTemplating(header.name),
|
||||
value: replaceVarTemplating(header.value),
|
||||
active: !header.disabled,
|
||||
})) ?? []
|
||||
|
||||
const getHoppReqParams = (req: InsomniaRequestResource): HoppRESTParam[] =>
|
||||
req.parameters?.map((param) => ({
|
||||
key: replaceVarTemplating(param.name),
|
||||
value: replaceVarTemplating(param.value ?? ""),
|
||||
active: !(param.disabled ?? false),
|
||||
})) ?? []
|
||||
|
||||
const getHoppRequest = (req: InsomniaRequestResource): HoppRESTRequest =>
|
||||
makeRESTRequest({
|
||||
name: req.name ?? "Untitled Request",
|
||||
method: req.method ?? "GET",
|
||||
endpoint: replaceVarTemplating(req.url ?? ""),
|
||||
auth: getHoppReqAuth(req),
|
||||
body: getHoppReqBody(req),
|
||||
headers: getHoppReqHeaders(req),
|
||||
params: getHoppReqParams(req),
|
||||
|
||||
preRequestScript: "",
|
||||
testScript: "",
|
||||
})
|
||||
|
||||
const getHoppFolder = (
|
||||
folderRes: InsomniaFolderResource,
|
||||
resources: InsomniaResource[]
|
||||
): Collection<HoppRESTRequest> =>
|
||||
makeCollection({
|
||||
name: folderRes.name ?? "",
|
||||
folders: getFoldersIn(folderRes, resources).map((f) =>
|
||||
getHoppFolder(f, resources)
|
||||
),
|
||||
requests: getRequestsIn(folderRes, resources).map(getHoppRequest),
|
||||
})
|
||||
|
||||
const getHoppCollections = (doc: InsomniaDoc) =>
|
||||
getFoldersIn(null, doc.data.resources).map((f) =>
|
||||
getHoppFolder(f, doc.data.resources)
|
||||
)
|
||||
|
||||
export default defineImporter({
|
||||
name: "Insomnia Collection",
|
||||
@@ -16,40 +215,17 @@ export default defineImporter({
|
||||
step({
|
||||
stepName: "FILE_IMPORT",
|
||||
metadata: {
|
||||
acceptedFileTypes: ".json",
|
||||
acceptedFileTypes: ".json, .yaml",
|
||||
},
|
||||
}),
|
||||
] as const,
|
||||
importer: ([fileContent]) => {
|
||||
try {
|
||||
let collections = parseInsomniaCollection(fileContent)
|
||||
const content = JSON.stringify(collections)
|
||||
importer: ([fileContent]) =>
|
||||
pipe(
|
||||
fileContent,
|
||||
parseInsomniaDoc,
|
||||
|
||||
if (collections[0]) {
|
||||
const [name, folders, requests] = Object.keys(collections[0])
|
||||
if (
|
||||
name === "name" &&
|
||||
folders === "folders" &&
|
||||
requests === "requests"
|
||||
) {
|
||||
return TE.right(collections as Collection<HoppRESTRequest>[])
|
||||
}
|
||||
TO.map(getHoppCollections),
|
||||
|
||||
return TE.left(IMPORTER_INVALID_FILE_FORMAT)
|
||||
} else if (
|
||||
collections.info &&
|
||||
collections.info.schema.includes("v2.1.0")
|
||||
) {
|
||||
// replace the variables, postman uses {{var}}, Hoppscotch uses <<var>>
|
||||
collections = JSON.parse(content.replaceAll(/{{([a-z]+)}}/gi, "<<$1>>"))
|
||||
collections = [getHoppCollection(collections)]
|
||||
|
||||
return TE.right(collections as Collection<HoppRESTRequest>[])
|
||||
} else {
|
||||
return TE.left(IMPORTER_INVALID_FILE_FORMAT)
|
||||
}
|
||||
} catch (_e) {
|
||||
return TE.left(IMPORTER_INVALID_FILE_FORMAT)
|
||||
}
|
||||
},
|
||||
TE.fromTaskOption(() => IMPORTER_INVALID_FILE_FORMAT)
|
||||
),
|
||||
})
|
||||
|
||||
@@ -83,6 +83,7 @@
|
||||
"graphql-language-service-parser": "^1.10.4",
|
||||
"graphql-tag": "^2.12.6",
|
||||
"httpsnippet": "^2.0.0",
|
||||
"insomnia-importers": "^2.4.1",
|
||||
"io-ts": "^2.2.16",
|
||||
"js-yaml": "^4.1.0",
|
||||
"json-loader": "^0.5.7",
|
||||
|
||||
200
pnpm-lock.yaml
generated
200
pnpm-lock.yaml
generated
@@ -136,6 +136,7 @@ importers:
|
||||
graphql-language-service-parser: ^1.10.4
|
||||
graphql-tag: ^2.12.6
|
||||
httpsnippet: ^2.0.0
|
||||
insomnia-importers: ^2.4.1
|
||||
io-ts: ^2.2.16
|
||||
jest: ^27.4.5
|
||||
jest-serializer-vue: ^2.0.2
|
||||
@@ -232,6 +233,7 @@ importers:
|
||||
graphql-language-service-parser: 1.10.4_6fc3d2884cf7cc5ceaa63c063181dac6
|
||||
graphql-tag: 2.12.6_graphql@15.7.2
|
||||
httpsnippet: 2.0.0
|
||||
insomnia-importers: 2.4.1_openapi-types@10.0.0
|
||||
io-ts: 2.2.16_fp-ts@2.11.5
|
||||
js-yaml: 4.1.0
|
||||
json-loader: 0.5.7
|
||||
@@ -400,6 +402,20 @@ packages:
|
||||
resolution: {integrity: sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==}
|
||||
dev: false
|
||||
|
||||
/@apidevtools/swagger-parser/10.0.2_openapi-types@10.0.0:
|
||||
resolution: {integrity: sha512-JFxcEyp8RlNHgBCE98nwuTkZT6eNFPc1aosWV6wPcQph72TSEEu1k3baJD4/x1qznU+JiDdz8F5pTwabZh+Dhg==}
|
||||
peerDependencies:
|
||||
openapi-types: '>=7'
|
||||
dependencies:
|
||||
'@apidevtools/json-schema-ref-parser': 9.0.9
|
||||
'@apidevtools/openapi-schemas': 2.1.0
|
||||
'@apidevtools/swagger-methods': 3.0.2
|
||||
'@jsdevtools/ono': 7.1.3
|
||||
call-me-maybe: 1.0.1
|
||||
openapi-types: 10.0.0
|
||||
z-schema: 4.2.4
|
||||
dev: false
|
||||
|
||||
/@apidevtools/swagger-parser/10.0.3_openapi-types@10.0.0:
|
||||
resolution: {integrity: sha512-sNiLY51vZOmSPFZA5TF35KZ2HbgYklQnTSDnkghamzLb3EkNtcQnrBQEj5AOCxHpTtXpqMCRM1CrmV2rG6nw4g==}
|
||||
peerDependencies:
|
||||
@@ -3708,19 +3724,19 @@ packages:
|
||||
ufo: 0.7.9
|
||||
dev: false
|
||||
|
||||
/@nuxt/kit-edge/3.0.0-27356801.e9128f3:
|
||||
resolution: {integrity: sha512-hGiqZydtMiK+UhHBsdD0WC+fHeI3xyJixhY2rNPGwFrzdeTrbUy8YH451SbRPOJ8TS0RYQ+cUT6JfMr0YTpnfg==}
|
||||
/@nuxt/kit-edge/3.0.0-27366343.1d741cb:
|
||||
resolution: {integrity: sha512-7R9f5xoH+8gLiGSeVyKVpEPwqdbptoJ1X852gbGSMEATLb7Wc0eDVUj4/PTBMSjvYuNm54a0bGO0OG02nXZViw==}
|
||||
engines: {node: ^14.16.0 || ^16.11.0 || ^17.0.0}
|
||||
dependencies:
|
||||
'@nuxt/schema': /@nuxt/schema-edge/3.0.0-27356801.e9128f3
|
||||
'@nuxt/schema': /@nuxt/schema-edge/3.0.0-27366343.1d741cb
|
||||
consola: 2.15.3
|
||||
defu: 5.0.0
|
||||
dotenv: 10.0.0
|
||||
globby: 11.0.4
|
||||
dotenv: 11.0.0
|
||||
globby: 11.1.0
|
||||
hash-sum: 2.0.0
|
||||
jiti: 1.12.9
|
||||
lodash.template: 4.5.0
|
||||
mlly: 0.3.16
|
||||
mlly: 0.3.17
|
||||
pathe: 0.2.0
|
||||
pkg-types: 0.3.2
|
||||
rc9: 1.2.0
|
||||
@@ -3750,8 +3766,8 @@ packages:
|
||||
node-fetch: 2.6.6
|
||||
dev: false
|
||||
|
||||
/@nuxt/schema-edge/3.0.0-27356801.e9128f3:
|
||||
resolution: {integrity: sha512-LOi5OLFzxrHL7t/a7sn2+fnkNN8y9ipnLG6l6McI+vEuzXi11YeHCYt7PmoqqySXx411hd6lISmYd/aZzBgYkg==}
|
||||
/@nuxt/schema-edge/3.0.0-27366343.1d741cb:
|
||||
resolution: {integrity: sha512-u3EFLXiisctQlKFLEsuVYxdZroO7FnrMZV1uAOHUbgyX4/0oakhCeFbKko754HaD4wgawFHIPZ2YDJGi1eTO5g==}
|
||||
engines: {node: ^14.16.0 || ^16.11.0 || ^17.0.0}
|
||||
dependencies:
|
||||
create-require: 1.1.1
|
||||
@@ -5857,6 +5873,21 @@ packages:
|
||||
normalize-path: 3.0.0
|
||||
picomatch: 2.3.1
|
||||
|
||||
/apiconnect-wsdl/1.8.31:
|
||||
resolution: {integrity: sha512-kNs26If9xCJnGolVTAt0VWIA8KrqwodQLqDRTrfc7txD54LJ+hFx638sPYEdG9jw78eifWyy+FBlS5befYSa8Q==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
iconv-lite: 0.4.24
|
||||
js-yaml: 3.14.1
|
||||
jszip: 3.7.1
|
||||
lodash: 4.17.21
|
||||
q: 1.5.1
|
||||
swagger-parser: 8.0.3
|
||||
xml2js: 0.4.23
|
||||
xmldom: 0.1.31
|
||||
yauzl: 2.10.0
|
||||
dev: false
|
||||
|
||||
/aproba/1.2.0:
|
||||
resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==}
|
||||
dev: false
|
||||
@@ -6578,6 +6609,10 @@ packages:
|
||||
node-int64: 0.4.0
|
||||
dev: true
|
||||
|
||||
/buffer-crc32/0.2.13:
|
||||
resolution: {integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=}
|
||||
dev: false
|
||||
|
||||
/buffer-equal-constant-time/1.0.1:
|
||||
resolution: {integrity: sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=}
|
||||
dev: true
|
||||
@@ -6828,7 +6863,6 @@ packages:
|
||||
no-case: 3.0.4
|
||||
tslib: 2.3.1
|
||||
upper-case-first: 2.0.2
|
||||
dev: true
|
||||
|
||||
/chalk/1.1.3:
|
||||
resolution: {integrity: sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=}
|
||||
@@ -6893,7 +6927,6 @@ packages:
|
||||
sentence-case: 3.0.4
|
||||
snake-case: 3.0.4
|
||||
tslib: 2.3.1
|
||||
dev: true
|
||||
|
||||
/char-regex/1.0.2:
|
||||
resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
|
||||
@@ -7345,7 +7378,6 @@ packages:
|
||||
no-case: 3.0.4
|
||||
tslib: 2.3.1
|
||||
upper-case: 2.0.2
|
||||
dev: true
|
||||
|
||||
/constants-browserify/1.0.0:
|
||||
resolution: {integrity: sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=}
|
||||
@@ -8269,6 +8301,11 @@ packages:
|
||||
engines: {node: '>=10'}
|
||||
dev: true
|
||||
|
||||
/dotenv/11.0.0:
|
||||
resolution: {integrity: sha512-Fp/b504Y5W+e+FpCxTFMUZ7ZEQkQYF0rx+KZtmwixJxGQbLHrhCwo3FjZgNC8vIfrSi29PABNbMoCGD9YoiXbQ==}
|
||||
engines: {node: '>=12'}
|
||||
dev: true
|
||||
|
||||
/dotenv/8.6.0:
|
||||
resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -9326,6 +9363,17 @@ packages:
|
||||
resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==}
|
||||
dev: true
|
||||
|
||||
/fast-glob/3.2.10:
|
||||
resolution: {integrity: sha512-s9nFhFnvR63wls6/kM88kQqDhMu0AfdjqouE2l5GVQPbqLgyFjjU5ry/r2yKsJxpb9Py1EYNqieFrmMaX4v++A==}
|
||||
engines: {node: '>=8.6.0'}
|
||||
dependencies:
|
||||
'@nodelib/fs.stat': 2.0.5
|
||||
'@nodelib/fs.walk': 1.2.8
|
||||
glob-parent: 5.1.2
|
||||
merge2: 1.4.1
|
||||
micromatch: 4.0.4
|
||||
dev: true
|
||||
|
||||
/fast-glob/3.2.7:
|
||||
resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -9381,6 +9429,12 @@ packages:
|
||||
ua-parser-js: 0.7.31
|
||||
dev: true
|
||||
|
||||
/fd-slicer/1.1.0:
|
||||
resolution: {integrity: sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=}
|
||||
dependencies:
|
||||
pend: 1.2.0
|
||||
dev: false
|
||||
|
||||
/figgy-pudding/3.5.2:
|
||||
resolution: {integrity: sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==}
|
||||
dev: false
|
||||
@@ -10010,6 +10064,18 @@ packages:
|
||||
merge2: 1.4.1
|
||||
slash: 3.0.0
|
||||
|
||||
/globby/11.1.0:
|
||||
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
|
||||
engines: {node: '>=10'}
|
||||
dependencies:
|
||||
array-union: 2.1.0
|
||||
dir-glob: 3.0.1
|
||||
fast-glob: 3.2.10
|
||||
ignore: 5.2.0
|
||||
merge2: 1.4.1
|
||||
slash: 3.0.0
|
||||
dev: true
|
||||
|
||||
/globjoin/0.1.4:
|
||||
resolution: {integrity: sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=}
|
||||
dev: true
|
||||
@@ -10368,7 +10434,6 @@ packages:
|
||||
dependencies:
|
||||
capital-case: 1.0.4
|
||||
tslib: 2.3.1
|
||||
dev: true
|
||||
|
||||
/helpertypes/0.0.17:
|
||||
resolution: {integrity: sha512-muWKRSBsqN3MzqLdh82QfV7vWWwAYvHh3On87z898X+xZ5H2tPRQ5Y6hHA3BXSE+TueztA07iw5bInjwAT3x8A==}
|
||||
@@ -10838,6 +10903,21 @@ packages:
|
||||
through: 2.3.8
|
||||
dev: true
|
||||
|
||||
/insomnia-importers/2.4.1_openapi-types@10.0.0:
|
||||
resolution: {integrity: sha512-KufwGydt6WUlf7Oukqem0ra40ZPWImEBK1gqICarEMydVuzeaoPvyXDCP1r9RLHoJpV1sKUDSv14LZ6CE2j6Qg==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@apidevtools/swagger-parser': 10.0.2_openapi-types@10.0.0
|
||||
apiconnect-wsdl: 1.8.31
|
||||
change-case: 4.1.2
|
||||
commander: 7.2.0
|
||||
lodash: 4.17.21
|
||||
shell-quote: 1.7.3
|
||||
yaml: 1.10.2
|
||||
transitivePeerDependencies:
|
||||
- openapi-types
|
||||
dev: false
|
||||
|
||||
/internal-slot/1.0.3:
|
||||
resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
@@ -12016,6 +12096,14 @@ packages:
|
||||
/json-parse-even-better-errors/2.3.1:
|
||||
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
|
||||
|
||||
/json-schema-ref-parser/7.1.4:
|
||||
resolution: {integrity: sha512-AD7bvav0vak1/63w3jH8F7eHId/4E4EPdMAEZhGxtjktteUv9dnNB/cJy6nVnMyoTPBJnLwFK6tiQPSTeleCtQ==}
|
||||
dependencies:
|
||||
call-me-maybe: 1.0.1
|
||||
js-yaml: 3.14.1
|
||||
ono: 6.0.1
|
||||
dev: false
|
||||
|
||||
/json-schema-traverse/0.4.1:
|
||||
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
|
||||
|
||||
@@ -13020,8 +13108,8 @@ packages:
|
||||
engines: {node: '>=10'}
|
||||
hasBin: true
|
||||
|
||||
/mlly/0.3.16:
|
||||
resolution: {integrity: sha512-DVydmuR8fmiMetH39kp8VXYslN0XDh+OxULuU/ov8TMwVIxDGQ8PsJIrNi6cZZaHiIYL6wtO6+sjGpVc7msKUg==}
|
||||
/mlly/0.3.17:
|
||||
resolution: {integrity: sha512-C3v8eHB9KqmS1ewOB5DUgljX13C3xuoaXZd5bOLtwpxk9pBZhA+wyVgYXPuP4aukQ9bKYWjy+YQVC+DmniIsgA==}
|
||||
dev: true
|
||||
|
||||
/mocha/9.1.3:
|
||||
@@ -13405,7 +13493,7 @@ packages:
|
||||
/nuxt-windicss/2.2.2:
|
||||
resolution: {integrity: sha512-4tvzk9d2TUFxloty187D+wmO8ZNAvpSmRJ5HQO3/AvZdMMhAl4gomXR9fCgFKQe7Fxcj9nIKNInOx8TWowjiqA==}
|
||||
dependencies:
|
||||
'@nuxt/kit': /@nuxt/kit-edge/3.0.0-27356801.e9128f3
|
||||
'@nuxt/kit': /@nuxt/kit-edge/3.0.0-27366343.1d741cb
|
||||
'@windicss/plugin-utils': 1.6.1
|
||||
consola: 2.15.3
|
||||
defu: 5.0.0
|
||||
@@ -13551,6 +13639,14 @@ packages:
|
||||
dependencies:
|
||||
mimic-fn: 2.1.0
|
||||
|
||||
/ono/5.1.0:
|
||||
resolution: {integrity: sha512-GgqRIUWErLX4l9Up0khRtbrlH8Fyj59A0nKv8V6pWEto38aUgnOGOOF7UmgFFLzFnDSc8REzaTXOc0hqEe7yIw==}
|
||||
dev: false
|
||||
|
||||
/ono/6.0.1:
|
||||
resolution: {integrity: sha512-5rdYW/106kHqLeG22GE2MHKq+FlsxMERZev9DCzQX1zwkxnFwBivSn5i17a5O/rDmOJOdf4Wyt80UZljzx9+DA==}
|
||||
dev: false
|
||||
|
||||
/open/8.4.0:
|
||||
resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==}
|
||||
engines: {node: '>=12'}
|
||||
@@ -13560,6 +13656,15 @@ packages:
|
||||
is-wsl: 2.2.0
|
||||
dev: true
|
||||
|
||||
/openapi-schemas/1.0.3:
|
||||
resolution: {integrity: sha512-KtMWcK2VtOS+nD8RKSIyScJsj8JrmVWcIX7Kjx4xEHijFYuvMTDON8WfeKOgeSb4uNG6UsqLj5Na7nKbSav9RQ==}
|
||||
engines: {node: '>=8'}
|
||||
dev: false
|
||||
|
||||
/openapi-types/1.3.5:
|
||||
resolution: {integrity: sha512-11oi4zYorsgvg5yBarZplAqbpev5HkuVNPlZaPTknPDzAynq+lnJdXAmruGWP0s+dNYZS7bjM+xrTpJw7184Fg==}
|
||||
dev: false
|
||||
|
||||
/openapi-types/10.0.0:
|
||||
resolution: {integrity: sha512-Y8xOCT2eiKGYDzMW9R4x5cmfc3vGaaI4EL2pwhDmodWw1HlK18YcZ4uJxc7Rdp7/gGzAygzH9SXr6GKYIXbRcQ==}
|
||||
dev: false
|
||||
@@ -13866,7 +13971,6 @@ packages:
|
||||
dependencies:
|
||||
dot-case: 3.0.4
|
||||
tslib: 2.3.1
|
||||
dev: true
|
||||
|
||||
/path-dirname/1.0.2:
|
||||
resolution: {integrity: sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=}
|
||||
@@ -13941,6 +14045,10 @@ packages:
|
||||
sha.js: 2.4.11
|
||||
dev: false
|
||||
|
||||
/pend/1.2.0:
|
||||
resolution: {integrity: sha1-elfrVQpng/kRUzH89GY9XI4AelA=}
|
||||
dev: false
|
||||
|
||||
/picocolors/0.2.1:
|
||||
resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==}
|
||||
|
||||
@@ -14021,7 +14129,7 @@ packages:
|
||||
resolution: {integrity: sha512-eBYzX/7NYsQEOR2alWY4rnQB49G62oHzFpoi9Som56aUr8vB8UGcmcIia9v8fpBeuhH3Ltentuk2OGpp4IQV3Q==}
|
||||
dependencies:
|
||||
jsonc-parser: 3.0.0
|
||||
mlly: 0.3.16
|
||||
mlly: 0.3.17
|
||||
pathe: 0.2.0
|
||||
dev: true
|
||||
|
||||
@@ -15801,7 +15909,6 @@ packages:
|
||||
no-case: 3.0.4
|
||||
tslib: 2.3.1
|
||||
upper-case-first: 2.0.2
|
||||
dev: true
|
||||
|
||||
/serialize-javascript/3.1.0:
|
||||
resolution: {integrity: sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==}
|
||||
@@ -16004,7 +16111,6 @@ packages:
|
||||
dependencies:
|
||||
dot-case: 3.0.4
|
||||
tslib: 2.3.1
|
||||
dev: true
|
||||
|
||||
/snapdragon-node/2.1.1:
|
||||
resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==}
|
||||
@@ -16807,6 +16913,22 @@ packages:
|
||||
unquote: 1.1.1
|
||||
util.promisify: 1.0.1
|
||||
|
||||
/swagger-methods/2.0.2:
|
||||
resolution: {integrity: sha512-/RNqvBZkH8+3S/FqBPejHxJxZenaYq3MrpeXnzi06aDIS39Mqf5YCUNb/ZBjsvFFt8h9FxfKs8EXPtcYdfLiRg==}
|
||||
dev: false
|
||||
|
||||
/swagger-parser/8.0.3:
|
||||
resolution: {integrity: sha512-y2gw+rTjn7Z9J+J1qwbBm0UL93k/VREDCveKBK6iGjf7KXC6QGshbnpEmeHL0ZkCgmIghsXzpNzPSbBH91BAEQ==}
|
||||
dependencies:
|
||||
call-me-maybe: 1.0.1
|
||||
json-schema-ref-parser: 7.1.4
|
||||
ono: 5.1.0
|
||||
openapi-schemas: 1.0.3
|
||||
openapi-types: 1.3.5
|
||||
swagger-methods: 2.0.2
|
||||
z-schema: 4.2.4
|
||||
dev: false
|
||||
|
||||
/swap-case/2.0.2:
|
||||
resolution: {integrity: sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==}
|
||||
dependencies:
|
||||
@@ -17635,7 +17757,6 @@ packages:
|
||||
resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==}
|
||||
dependencies:
|
||||
tslib: 2.3.1
|
||||
dev: true
|
||||
|
||||
/upper-case/1.1.3:
|
||||
resolution: {integrity: sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=}
|
||||
@@ -17645,7 +17766,6 @@ packages:
|
||||
resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==}
|
||||
dependencies:
|
||||
tslib: 2.3.1
|
||||
dev: true
|
||||
|
||||
/uri-js/4.4.1:
|
||||
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
|
||||
@@ -18480,6 +18600,19 @@ packages:
|
||||
resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==}
|
||||
dev: true
|
||||
|
||||
/xml2js/0.4.23:
|
||||
resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==}
|
||||
engines: {node: '>=4.0.0'}
|
||||
dependencies:
|
||||
sax: 1.2.4
|
||||
xmlbuilder: 11.0.1
|
||||
dev: false
|
||||
|
||||
/xmlbuilder/11.0.1:
|
||||
resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==}
|
||||
engines: {node: '>=4.0'}
|
||||
dev: false
|
||||
|
||||
/xmlbuilder/13.0.2:
|
||||
resolution: {integrity: sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==}
|
||||
engines: {node: '>=6.0'}
|
||||
@@ -18489,6 +18622,12 @@ packages:
|
||||
resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
|
||||
dev: true
|
||||
|
||||
/xmldom/0.1.31:
|
||||
resolution: {integrity: sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==}
|
||||
engines: {node: '>=0.1'}
|
||||
deprecated: Deprecated due to CVE-2021-21366 resolved in 0.5.0
|
||||
dev: false
|
||||
|
||||
/xmlhttprequest-ssl/1.6.3:
|
||||
resolution: {integrity: sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==}
|
||||
engines: {node: '>=0.4.0'}
|
||||
@@ -18608,6 +18747,13 @@ packages:
|
||||
yargs-parser: 21.0.0
|
||||
dev: true
|
||||
|
||||
/yauzl/2.10.0:
|
||||
resolution: {integrity: sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=}
|
||||
dependencies:
|
||||
buffer-crc32: 0.2.13
|
||||
fd-slicer: 1.1.0
|
||||
dev: false
|
||||
|
||||
/yeast/0.1.2:
|
||||
resolution: {integrity: sha1-AI4G2AlDIMNy28L47XagymyKxBk=}
|
||||
dev: false
|
||||
@@ -18620,6 +18766,18 @@ packages:
|
||||
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
/z-schema/4.2.4:
|
||||
resolution: {integrity: sha512-YvBeW5RGNeNzKOUJs3rTL4+9rpcvHXt5I051FJbOcitV8bl40pEfcG0Q+dWSwS0/BIYrMZ/9HHoqLllMkFhD0w==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
lodash.get: 4.4.2
|
||||
lodash.isequal: 4.5.0
|
||||
validator: 13.7.0
|
||||
optionalDependencies:
|
||||
commander: 2.20.3
|
||||
dev: false
|
||||
|
||||
/z-schema/5.0.2:
|
||||
resolution: {integrity: sha512-40TH47ukMHq5HrzkeVE40Ad7eIDKaRV2b+Qpi2prLc9X9eFJFzV7tMe5aH12e6avaSS/u5l653EQOv+J9PirPw==}
|
||||
engines: {node: '>=8.0.0'}
|
||||
|
||||
Reference in New Issue
Block a user