diff --git a/packages/hoppscotch-app/assets/icons/insomnia.svg b/packages/hoppscotch-app/assets/icons/insomnia.svg new file mode 100644 index 000000000..6358eec02 --- /dev/null +++ b/packages/hoppscotch-app/assets/icons/insomnia.svg @@ -0,0 +1 @@ + diff --git a/packages/hoppscotch-app/assets/icons/postman.svg b/packages/hoppscotch-app/assets/icons/postman.svg new file mode 100644 index 000000000..4d224f13d --- /dev/null +++ b/packages/hoppscotch-app/assets/icons/postman.svg @@ -0,0 +1 @@ + diff --git a/packages/hoppscotch-app/assets/icons/upload.svg b/packages/hoppscotch-app/assets/icons/upload.svg new file mode 100644 index 000000000..150713a88 --- /dev/null +++ b/packages/hoppscotch-app/assets/icons/upload.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/packages/hoppscotch-app/components/collections/ImportExport.vue b/packages/hoppscotch-app/components/collections/ImportExport.vue index 9f51f6ba3..7103d75d6 100644 --- a/packages/hoppscotch-app/components/collections/ImportExport.vue +++ b/packages/hoppscotch-app/components/collections/ImportExport.vue @@ -1,50 +1,131 @@ { - mode = 'import_export' - mySelectedCollectionID = undefined - } - " + @click.native="resetImport" /> - - - - + + + + + + + + check_circle + + + {{ t(`${step.metadata.caption}`) }} + + + + + + + + + + check_circle + + + {{ t(`${step.metadata.caption}`) }} + + + + + + + + + + + {{ t("collection.select") }} + + + {{ collection.name }} + + + + + + + + + + + + + + + { - readCollectionGist() - options.tippy().hide() - } - " + v-tippy="{ theme: 'tooltip' }" + :title="t('action.download_file')" + svg="download" + :label="t('export.as_json')" + @click.native="exportJSON" /> { createCollectionGist() - options.tippy().hide() } " /> - - - - - - - - - - - - - - - - { - mySelectedCollectionID = $event.target.value - } - " - > - - Select Collection - - - {{ collection.name }} - - - - - - - - - diff --git a/packages/hoppscotch-app/components/collections/graphql/ImportExport.vue b/packages/hoppscotch-app/components/collections/graphql/ImportExport.vue index 749de4c2a..d1698579a 100644 --- a/packages/hoppscotch-app/components/collections/graphql/ImportExport.vue +++ b/packages/hoppscotch-app/components/collections/graphql/ImportExport.vue @@ -1,7 +1,7 @@ diff --git a/packages/hoppscotch-app/components/environments/ImportExport.vue b/packages/hoppscotch-app/components/environments/ImportExport.vue index 359946de6..45e93de87 100644 --- a/packages/hoppscotch-app/components/environments/ImportExport.vue +++ b/packages/hoppscotch-app/components/environments/ImportExport.vue @@ -1,7 +1,7 @@ diff --git a/packages/hoppscotch-app/components/smart/Expand.vue b/packages/hoppscotch-app/components/smart/Expand.vue new file mode 100644 index 000000000..93bc85f6a --- /dev/null +++ b/packages/hoppscotch-app/components/smart/Expand.vue @@ -0,0 +1,26 @@ + + + + + + + + + + diff --git a/packages/hoppscotch-app/globals.d.ts b/packages/hoppscotch-app/globals.d.ts new file mode 100644 index 000000000..bc3fc3300 --- /dev/null +++ b/packages/hoppscotch-app/globals.d.ts @@ -0,0 +1,8 @@ +/* + * Some helpful type definitions to help with type checking + */ + +interface Object { + // Allows for TypeScript to know this field now exist + hasOwnProperty(key: K): this is Record +} diff --git a/packages/hoppscotch-app/helpers/import-export/export/hopp.ts b/packages/hoppscotch-app/helpers/import-export/export/hopp.ts new file mode 100644 index 000000000..900079412 --- /dev/null +++ b/packages/hoppscotch-app/helpers/import-export/export/hopp.ts @@ -0,0 +1,10 @@ +import { HoppRESTRequest } from "@hoppscotch/data" +import { pipe } from "fp-ts/function" +import * as TE from "fp-ts/TaskEither" +import { HoppExporter } from "." +import { Collection } from "~/newstore/collections" + +const exporter: HoppExporter> = (content) => + pipe(content, JSON.stringify, TE.right) + +export default exporter diff --git a/packages/hoppscotch-app/helpers/import-export/export/index.ts b/packages/hoppscotch-app/helpers/import-export/export/index.ts new file mode 100644 index 000000000..058fa57b4 --- /dev/null +++ b/packages/hoppscotch-app/helpers/import-export/export/index.ts @@ -0,0 +1,19 @@ +import * as TE from "fp-ts/TaskEither" +import { HoppRESTRequest } from "@hoppscotch/data" +import { Collection } from "~/newstore/collections" + +export type HoppExporter = (content: T) => TE.TaskEither + +export type HoppExporterDefintion = { + name: string + exporter: () => Promise> +} + +export const RESTCollectionExporters: HoppExporterDefintion< + Collection +>[] = [ + { + name: "Hoppscotch REST Collection JSON", + exporter: () => import("./hopp").then((m) => m.default), + }, +] diff --git a/packages/hoppscotch-app/helpers/import-export/import/gist.ts b/packages/hoppscotch-app/helpers/import-export/import/gist.ts new file mode 100644 index 000000000..36ecf4ddc --- /dev/null +++ b/packages/hoppscotch-app/helpers/import-export/import/gist.ts @@ -0,0 +1,48 @@ +import { pipe } from "fp-ts/function" +import * as TE from "fp-ts/TaskEither" +import * as TO from "fp-ts/TaskOption" +import * as O from "fp-ts/Option" +import axios from "axios" +import { HoppRESTRequest } from "@hoppscotch/data" +import { step } from "../steps" +import { defineImporter, IMPORTER_INVALID_FILE_FORMAT } from "." +import { Collection } from "~/newstore/collections" + +// TODO: Add validation to output +const fetchGist = (url: string): TO.TaskOption> => + pipe( + TO.tryCatch(() => + axios.get(`https://api.github.com/gists/${url.split("/").pop()}`, { + headers: { + Accept: "application/vnd.github.v3+json", + }, + }) + ), + TO.chain((res) => + pipe( + O.tryCatch(() => + JSON.parse((Object.values(res.data.files)[0] as any).content) + ), + TO.fromOption + ) + ) + ) + +export default defineImporter({ + name: "import.from_gist", + icon: "github", + steps: [ + step({ + stepName: "URL_IMPORT", + metadata: { + caption: "import.from_gist_description", + placeholder: "import.gist_url", + }, + }), + ] as const, + importer: ([content]) => + pipe( + fetchGist(content), + TE.fromTaskOption(() => IMPORTER_INVALID_FILE_FORMAT) + ), +}) diff --git a/packages/hoppscotch-app/helpers/import-export/import/hopp.ts b/packages/hoppscotch-app/helpers/import-export/import/hopp.ts new file mode 100644 index 000000000..14f831a53 --- /dev/null +++ b/packages/hoppscotch-app/helpers/import-export/import/hopp.ts @@ -0,0 +1,31 @@ +import { pipe } from "fp-ts/function" +import * as TE from "fp-ts/TaskEither" +import * as E from "fp-ts/Either" +import { step } from "../steps" +import { defineImporter, IMPORTER_INVALID_FILE_FORMAT } from "." +import { translateToNewRESTCollection } from "~/newstore/collections" + +export default defineImporter({ + name: "import.from_json", + icon: "folder-plus", + steps: [ + step({ + stepName: "FILE_IMPORT", + metadata: { + caption: "import.from_json_description", + acceptedFileTypes: "application/json", + }, + }), + ] as const, + importer: ([content]) => + pipe( + E.tryCatch( + () => + JSON.parse(content).map((coll: any) => + translateToNewRESTCollection(coll) + ), + () => IMPORTER_INVALID_FILE_FORMAT + ), + TE.fromEither + ), +}) diff --git a/packages/hoppscotch-app/helpers/import-export/import/importers.ts b/packages/hoppscotch-app/helpers/import-export/import/importers.ts new file mode 100644 index 000000000..559a247d2 --- /dev/null +++ b/packages/hoppscotch-app/helpers/import-export/import/importers.ts @@ -0,0 +1,15 @@ +import HoppRESTCollImporter from "./hopp" +import OpenAPIImporter from "./openapi" +import PostmanImporter from "./postman" +import InsomniaImporter from "./insomnia" +import GistImporter from "./gist" +import MyCollectionsImporter from "./myCollections" + +export const RESTCollectionImporters = [ + HoppRESTCollImporter, + OpenAPIImporter, + PostmanImporter, + InsomniaImporter, + GistImporter, + MyCollectionsImporter, +] as const diff --git a/packages/hoppscotch-app/helpers/import-export/import/index.ts b/packages/hoppscotch-app/helpers/import-export/import/index.ts new file mode 100644 index 000000000..75eebddcf --- /dev/null +++ b/packages/hoppscotch-app/helpers/import-export/import/index.ts @@ -0,0 +1,59 @@ +import * as TE from "fp-ts/TaskEither" +import { StepsOutputList } from "../steps" + +/** + * A common error state to be used when the file formats are not expected + */ +export const IMPORTER_INVALID_FILE_FORMAT = + "importer_invalid_file_format" as const + +export type HoppImporterError = typeof IMPORTER_INVALID_FILE_FORMAT + +type HoppImporter = ( + stepValues: StepsOutputList +) => TE.TaskEither + +/** + * Definition for importers + */ +type HoppImporterDefintion = { + /** + * Name of the importer, shown on the Select Importer dropdown + */ + name: string + + /** + * Icon for importer button + */ + icon: string + + /** + * Identifier for the importer + */ + applicableTo?: Array<"team-collections" | "my-collections"> + + /** + * The importer function, It is a Promise because its supposed to be loaded in lazily (dynamic imports ?) + */ + importer: HoppImporter + + /** + * The steps to fetch information required to run an importer + */ + steps: Y +} + +/** + * Defines a Hoppscotch importer + */ +export const defineImporter = (input: { + name: string + icon: string + importer: HoppImporter + applicableTo?: Array<"team-collections" | "my-collections"> + steps: StepType +}) => { + return >{ + ...input, + } +} diff --git a/packages/hoppscotch-app/helpers/import-export/import/insomnia.ts b/packages/hoppscotch-app/helpers/import-export/import/insomnia.ts new file mode 100644 index 000000000..33083a6c2 --- /dev/null +++ b/packages/hoppscotch-app/helpers/import-export/import/insomnia.ts @@ -0,0 +1,232 @@ +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 { step } from "../steps" +import { defineImporter, IMPORTER_INVALID_FILE_FORMAT } from "." +import { Collection, makeCollection } from "~/newstore/collections" + +// TODO: Insomnia allows custom prefixes for Bearer token auth, Hoppscotch doesn't. We just ignore the prefix for now + +type UnwrapPromise> = T extends Promise + ? Y + : never + +type InsomniaDoc = UnwrapPromise> +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?.toUpperCase() ?? "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 => + 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: "import.from_insomnia", + icon: "insomnia", + steps: [ + step({ + stepName: "FILE_IMPORT", + metadata: { + caption: "import.from_insomnia_description", + acceptedFileTypes: ".json, .yaml", + }, + }), + ] as const, + importer: ([fileContent]) => + pipe( + fileContent, + parseInsomniaDoc, + + TO.map(getHoppCollections), + + TE.fromTaskOption(() => IMPORTER_INVALID_FILE_FORMAT) + ), +}) diff --git a/packages/hoppscotch-app/helpers/import-export/import/myCollections.ts b/packages/hoppscotch-app/helpers/import-export/import/myCollections.ts new file mode 100644 index 000000000..0c8942d31 --- /dev/null +++ b/packages/hoppscotch-app/helpers/import-export/import/myCollections.ts @@ -0,0 +1,21 @@ +import * as TE from "fp-ts/TaskEither" +import * as A from "fp-ts/Array" +import { pipe } from "fp-ts/function" +import { step } from "../steps" +import { defineImporter } from "." +import { getRESTCollection } from "~/newstore/collections" + +export default defineImporter({ + name: "import.from_my_collections", + icon: "user", + applicableTo: ["team-collections"], + steps: [ + step({ + stepName: "TARGET_MY_COLLECTION", + metadata: { + caption: "import.from_my_collections_description", + }, + }), + ] as const, + importer: ([content]) => pipe(content, getRESTCollection, A.of, TE.of), +}) diff --git a/packages/hoppscotch-app/helpers/import-export/import/openapi.ts b/packages/hoppscotch-app/helpers/import-export/import/openapi.ts new file mode 100644 index 000000000..53721fa80 --- /dev/null +++ b/packages/hoppscotch-app/helpers/import-export/import/openapi.ts @@ -0,0 +1,628 @@ +import { + OpenAPI, + OpenAPIV2, + OpenAPIV3, + OpenAPIV3_1 as OpenAPIV31, +} from "openapi-types" +import SwaggerParser from "@apidevtools/swagger-parser" +import yaml from "js-yaml" +import { + FormDataKeyValue, + HoppRESTAuth, + HoppRESTHeader, + HoppRESTParam, + HoppRESTReqBody, + HoppRESTRequest, + knownContentTypes, + makeRESTRequest, +} from "@hoppscotch/data" +import { pipe, flow } from "fp-ts/function" +import * as A from "fp-ts/Array" +import * as S from "fp-ts/string" +import * as O from "fp-ts/Option" +import * as TE from "fp-ts/TaskEither" +import * as RA from "fp-ts/ReadonlyArray" +import { step } from "../steps" +import { defineImporter, IMPORTER_INVALID_FILE_FORMAT } from "." +import { Collection, makeCollection } from "~/newstore/collections" + +const OPENAPI_DEREF_ERROR = "openapi/deref_error" as const + +// TODO: URL Import Support + +const safeParseJSON = (str: string) => O.tryCatch(() => JSON.parse(str)) + +const safeParseYAML = (str: string) => O.tryCatch(() => yaml.load(str)) + +const objectHasProperty = ( + obj: unknown, + propName: T + // eslint-disable-next-line +): obj is { [propName in T]: unknown } => + !!obj && + typeof obj === "object" && + Object.prototype.hasOwnProperty.call(obj, propName) + +type OpenAPIPathInfoType = + | OpenAPIV2.PathItemObject<{}> + | OpenAPIV3.PathItemObject<{}> + | OpenAPIV31.PathItemObject<{}> + +type OpenAPIParamsType = + | OpenAPIV2.ParameterObject + | OpenAPIV3.ParameterObject + | OpenAPIV31.ParameterObject + +type OpenAPIOperationType = + | OpenAPIV2.OperationObject + | OpenAPIV3.OperationObject + | OpenAPIV31.OperationObject + +// Removes the OpenAPI Path Templating to the Hoppscotch Templating (<< ? >>) +const replaceOpenApiPathTemplating = flow( + S.replace(/{/g, "<<"), + S.replace(/}/g, ">>") +) + +const parseOpenAPIParams = (params: OpenAPIParamsType[]): HoppRESTParam[] => + pipe( + params, + + A.filterMap( + flow( + O.fromPredicate((param) => param.in === "query"), + O.map( + (param) => + { + key: param.name, + value: "", // TODO: Can we do anything more ? (parse default values maybe) + active: true, + } + ) + ) + ) + ) + +const parseOpenAPIHeaders = (params: OpenAPIParamsType[]): HoppRESTHeader[] => + pipe( + params, + + A.filterMap( + flow( + O.fromPredicate((param) => param.in === "header"), + O.map( + (header) => + { + key: header.name, + value: "", // TODO: Can we do anything more ? (parse default values maybe) + active: true, + } + ) + ) + ) + ) + +const parseOpenAPIV2Body = (op: OpenAPIV2.OperationObject): HoppRESTReqBody => { + const obj = (op.consumes ?? [])[0] as string | undefined + + // Not a content-type Hoppscotch supports + if (!obj || !(obj in knownContentTypes)) + return { contentType: null, body: null } + + // Textual Content Types, so we just parse it and keep + if ( + obj !== "multipart/form-data" && + obj !== "application/x-www-form-urlencoded" + ) + return { contentType: obj as any, body: "" } + + const formDataValues = pipe( + (op.parameters ?? []) as OpenAPIV2.Parameter[], + + A.filterMap( + flow( + O.fromPredicate((param) => param.in === "body"), + O.map( + (param) => + { + key: param.name, + isFile: false, + value: "", + active: true, + } + ) + ) + ) + ) + + return obj === "application/x-www-form-urlencoded" + ? { + contentType: obj, + body: formDataValues.map(({ key }) => `${key}: `).join("\n"), + } + : { contentType: obj, body: formDataValues } +} + +const parseOpenAPIV3BodyFormData = ( + contentType: "multipart/form-data" | "application/x-www-form-urlencoded", + mediaObj: OpenAPIV3.MediaTypeObject | OpenAPIV31.MediaTypeObject +): HoppRESTReqBody => { + const schema = mediaObj.schema as + | OpenAPIV3.SchemaObject + | OpenAPIV31.SchemaObject + | undefined + + if (!schema || schema.type !== "object") { + return contentType === "application/x-www-form-urlencoded" + ? { contentType, body: "" } + : { contentType, body: [] } + } + + const keys = Object.keys(schema.properties ?? {}) + + if (contentType === "application/x-www-form-urlencoded") { + return { + contentType, + body: keys.map((key) => `${key}: `).join("\n"), + } + } else { + return { + contentType, + body: keys.map( + (key) => + { key, value: "", isFile: false, active: true } + ), + } + } +} + +const parseOpenAPIV3Body = ( + op: OpenAPIV3.OperationObject | OpenAPIV31.OperationObject +): HoppRESTReqBody => { + const objs = Object.entries( + ( + op.requestBody as + | OpenAPIV3.RequestBodyObject + | OpenAPIV31.RequestBodyObject + | undefined + )?.content ?? {} + ) + + if (objs.length === 0) return { contentType: null, body: null } + + // We only take the first definition + const [contentType, media]: [ + string, + OpenAPIV3.MediaTypeObject | OpenAPIV31.MediaTypeObject + ] = objs[0] + + return contentType in knownContentTypes + ? contentType === "multipart/form-data" || + contentType === "application/x-www-form-urlencoded" + ? parseOpenAPIV3BodyFormData(contentType, media) + : { contentType: contentType as any, body: "" } + : { contentType: null, body: null } +} + +const isOpenAPIV3Operation = ( + doc: OpenAPI.Document, + op: OpenAPIOperationType +): op is OpenAPIV3.OperationObject | OpenAPIV31.OperationObject => + objectHasProperty(doc, "openapi") && + typeof doc.openapi === "string" && + doc.openapi.startsWith("3.") + +const parseOpenAPIBody = ( + doc: OpenAPI.Document, + op: OpenAPIOperationType +): HoppRESTReqBody => + isOpenAPIV3Operation(doc, op) + ? parseOpenAPIV3Body(op) + : parseOpenAPIV2Body(op) + +const resolveOpenAPIV3SecurityObj = ( + scheme: OpenAPIV3.SecuritySchemeObject | OpenAPIV31.SecuritySchemeObject, + _schemeData: string[] // Used for OAuth to pass params +): HoppRESTAuth => { + if (scheme.type === "http") { + if (scheme.scheme === "basic") { + // Basic + return { authType: "basic", authActive: true, username: "", password: "" } + } else if (scheme.scheme === "bearer") { + // Bearer + return { authType: "bearer", authActive: true, token: "" } + } else { + // Unknown/Unsupported Scheme + return { authType: "none", authActive: true } + } + } else if (scheme.type === "apiKey") { + if (scheme.in === "header") { + return { + authType: "api-key", + authActive: true, + addTo: "Headers", + key: scheme.name, + value: "", + } + } else if (scheme.in === "query") { + return { + authType: "api-key", + authActive: true, + addTo: "Query params", + key: scheme.in, + value: "", + } + } + } else if (scheme.type === "oauth2") { + // NOTE: We select flow on a first come basis on this order, authorizationCode > implicit > password > clientCredentials + if (scheme.flows.authorizationCode) { + return { + authType: "oauth-2", + authActive: true, + accessTokenURL: scheme.flows.authorizationCode.tokenUrl ?? "", + authURL: scheme.flows.authorizationCode.authorizationUrl ?? "", + clientID: "", + oidcDiscoveryURL: "", + scope: _schemeData.join(" "), + token: "", + } + } else if (scheme.flows.implicit) { + return { + authType: "oauth-2", + authActive: true, + authURL: scheme.flows.implicit.authorizationUrl ?? "", + accessTokenURL: "", + clientID: "", + oidcDiscoveryURL: "", + scope: _schemeData.join(" "), + token: "", + } + } else if (scheme.flows.password) { + return { + authType: "oauth-2", + authActive: true, + authURL: "", + accessTokenURL: scheme.flows.password.tokenUrl ?? "", + clientID: "", + oidcDiscoveryURL: "", + scope: _schemeData.join(" "), + token: "", + } + } else if (scheme.flows.clientCredentials) { + return { + authType: "oauth-2", + authActive: true, + accessTokenURL: scheme.flows.clientCredentials.tokenUrl ?? "", + authURL: "", + clientID: "", + oidcDiscoveryURL: "", + scope: _schemeData.join(" "), + token: "", + } + } else { + return { + authType: "oauth-2", + authActive: true, + accessTokenURL: "", + authURL: "", + clientID: "", + oidcDiscoveryURL: "", + scope: _schemeData.join(" "), + token: "", + } + } + } else if (scheme.type === "openIdConnect") { + return { + authType: "oauth-2", + authActive: true, + accessTokenURL: "", + authURL: "", + clientID: "", + oidcDiscoveryURL: scheme.openIdConnectUrl ?? "", + scope: _schemeData.join(" "), + token: "", + } + } + + return { authType: "none", authActive: true } +} + +const resolveOpenAPIV3SecurityScheme = ( + doc: OpenAPIV3.Document | OpenAPIV31.Document, + schemeName: string, + schemeData: string[] +): HoppRESTAuth => { + const scheme = doc.components?.securitySchemes?.[schemeName] as + | OpenAPIV3.SecuritySchemeObject + | undefined + + if (!scheme) return { authType: "none", authActive: true } + else return resolveOpenAPIV3SecurityObj(scheme, schemeData) +} + +const resolveOpenAPIV3Security = ( + doc: OpenAPIV3.Document | OpenAPIV31.Document, + security: + | OpenAPIV3.SecurityRequirementObject[] + | OpenAPIV31.SecurityRequirementObject[] +): HoppRESTAuth => { + // NOTE: Hoppscotch only considers the first security requirement + const sec = security[0] as OpenAPIV3.SecurityRequirementObject | undefined + + if (!sec) return { authType: "none", authActive: true } + + // NOTE: We only consider the first security condition within the first condition + const [schemeName, schemeData] = (Object.entries(sec)[0] ?? [ + undefined, + undefined, + ]) as [string | undefined, string[] | undefined] + + if (!schemeName || !schemeData) return { authType: "none", authActive: true } + + return resolveOpenAPIV3SecurityScheme(doc, schemeName, schemeData) +} + +const parseOpenAPIV3Auth = ( + doc: OpenAPIV3.Document | OpenAPIV31.Document, + op: OpenAPIV3.OperationObject | OpenAPIV31.OperationObject +): HoppRESTAuth => { + const rootAuth = doc.security + ? resolveOpenAPIV3Security(doc, doc.security) + : undefined + const opAuth = op.security + ? resolveOpenAPIV3Security(doc, op.security) + : undefined + + return opAuth ?? rootAuth ?? { authType: "none", authActive: true } +} + +const resolveOpenAPIV2SecurityScheme = ( + scheme: OpenAPIV2.SecuritySchemeObject, + _schemeData: string[] +): HoppRESTAuth => { + if (scheme.type === "basic") { + return { authType: "basic", authActive: true, username: "", password: "" } + } else if (scheme.type === "apiKey") { + // V2 only supports in: header and in: query + return { + authType: "api-key", + addTo: scheme.in === "header" ? "Headers" : "Query params", + authActive: true, + key: scheme.name, + value: "", + } + } else if (scheme.type === "oauth2") { + // NOTE: We select flow on a first come basis on this order, accessCode > implicit > password > application + if (scheme.flow === "accessCode") { + return { + authType: "oauth-2", + authActive: true, + accessTokenURL: scheme.tokenUrl ?? "", + authURL: scheme.authorizationUrl ?? "", + clientID: "", + oidcDiscoveryURL: "", + scope: _schemeData.join(" "), + token: "", + } + } else if (scheme.flow === "implicit") { + return { + authType: "oauth-2", + authActive: true, + accessTokenURL: "", + authURL: scheme.authorizationUrl ?? "", + clientID: "", + oidcDiscoveryURL: "", + scope: _schemeData.join(" "), + token: "", + } + } else if (scheme.flow === "application") { + return { + authType: "oauth-2", + authActive: true, + accessTokenURL: scheme.tokenUrl ?? "", + authURL: "", + clientID: "", + oidcDiscoveryURL: "", + scope: _schemeData.join(" "), + token: "", + } + } else if (scheme.flow === "password") { + return { + authType: "oauth-2", + authActive: true, + accessTokenURL: scheme.tokenUrl ?? "", + authURL: "", + clientID: "", + oidcDiscoveryURL: "", + scope: _schemeData.join(" "), + token: "", + } + } else { + return { + authType: "oauth-2", + authActive: true, + accessTokenURL: "", + authURL: "", + clientID: "", + oidcDiscoveryURL: "", + scope: _schemeData.join(" "), + token: "", + } + } + } + + return { authType: "none", authActive: true } +} + +const resolveOpenAPIV2SecurityDef = ( + doc: OpenAPIV2.Document, + schemeName: string, + schemeData: string[] +): HoppRESTAuth => { + const scheme = Object.entries(doc.securityDefinitions ?? {}).find( + ([name]) => schemeName === name + ) + + if (!scheme) return { authType: "none", authActive: true } + + const schemeObj = scheme[1] + + return resolveOpenAPIV2SecurityScheme(schemeObj, schemeData) +} + +const resolveOpenAPIV2Security = ( + doc: OpenAPIV2.Document, + security: OpenAPIV2.SecurityRequirementObject[] +): HoppRESTAuth => { + // NOTE: Hoppscotch only considers the first security requirement + const sec = security[0] as OpenAPIV2.SecurityRequirementObject | undefined + + if (!sec) return { authType: "none", authActive: true } + + // NOTE: We only consider the first security condition within the first condition + const [schemeName, schemeData] = (Object.entries(sec)[0] ?? [ + undefined, + undefined, + ]) as [string | undefined, string[] | undefined] + + if (!schemeName || !schemeData) return { authType: "none", authActive: true } + + return resolveOpenAPIV2SecurityDef(doc, schemeName, schemeData) +} + +const parseOpenAPIV2Auth = ( + doc: OpenAPIV2.Document, + op: OpenAPIV2.OperationObject +): HoppRESTAuth => { + const rootAuth = doc.security + ? resolveOpenAPIV2Security(doc, doc.security) + : undefined + const opAuth = op.security + ? resolveOpenAPIV2Security(doc, op.security) + : undefined + + return opAuth ?? rootAuth ?? { authType: "none", authActive: true } +} + +const parseOpenAPIAuth = ( + doc: OpenAPI.Document, + op: OpenAPIOperationType +): HoppRESTAuth => + isOpenAPIV3Operation(doc, op) + ? parseOpenAPIV3Auth(doc as OpenAPIV3.Document | OpenAPIV31.Document, op) + : parseOpenAPIV2Auth(doc as OpenAPIV2.Document, op) + +const convertPathToHoppReqs = ( + doc: OpenAPI.Document, + pathName: string, + pathObj: OpenAPIPathInfoType +) => + pipe( + ["get", "head", "post", "put", "delete", "options"] as const, + + // Filter and map out path info + RA.filterMap( + flow( + O.fromPredicate((method) => !!pathObj[method]), + O.map((method) => ({ method, info: pathObj[method]! })) + ) + ), + + // Construct request object + RA.map(({ method, info }) => + makeRESTRequest({ + name: info.operationId ?? info.summary ?? "Untitled Request", + method: method.toUpperCase(), + endpoint: `<>${replaceOpenApiPathTemplating(pathName)}`, // TODO: Make this proper + + // We don't need to worry about reference types as the Dereferencing pass should remove them + params: parseOpenAPIParams( + (info.parameters as OpenAPIParamsType[]) ?? [] + ), + headers: parseOpenAPIHeaders( + (info.parameters as OpenAPIParamsType[]) ?? [] + ), + + auth: parseOpenAPIAuth(doc, info), + + body: parseOpenAPIBody(doc, info), + + preRequestScript: "", + testScript: "", + }) + ), + + // Disable Readonly + RA.toArray + ) + +const convertOpenApiDocToHopp = ( + doc: OpenAPI.Document +): TE.TaskEither[]> => { + const name = doc.info.title + + const paths = Object.entries(doc.paths ?? {}) + .map(([pathName, pathObj]) => convertPathToHoppReqs(doc, pathName, pathObj)) + .flat() + + return TE.of([ + makeCollection({ + name, + folders: [], + requests: paths, + }), + ]) +} + +const parseOpenAPIDocContent = (str: string) => + pipe( + str, + safeParseJSON, + O.match( + () => safeParseYAML(str), + (data) => O.of(data) + ) + ) + +export default defineImporter({ + name: "import.from_openapi", + icon: "file", + steps: [ + step({ + stepName: "FILE_IMPORT", + metadata: { + caption: "import.from_openapi_description", + acceptedFileTypes: ".json, .yaml, .yml", + }, + }), + ] as const, + importer: ([fileContent]) => + pipe( + // See if we can parse JSON properly + fileContent, + parseOpenAPIDocContent, + TE.fromOption(() => IMPORTER_INVALID_FILE_FORMAT), + + // Try validating, else the importer is invalid file format + TE.chainW((obj) => + pipe( + TE.tryCatch( + () => SwaggerParser.validate(obj), + () => IMPORTER_INVALID_FILE_FORMAT + ) + ) + ), + + // Deference the references + TE.chainW((obj) => + pipe( + TE.tryCatch( + () => SwaggerParser.dereference(obj), + () => OPENAPI_DEREF_ERROR + ) + ) + ), + + TE.chainW(convertOpenApiDocToHopp) + ), +}) diff --git a/packages/hoppscotch-app/helpers/import-export/import/postman.ts b/packages/hoppscotch-app/helpers/import-export/import/postman.ts new file mode 100644 index 000000000..2de9659aa --- /dev/null +++ b/packages/hoppscotch-app/helpers/import-export/import/postman.ts @@ -0,0 +1,264 @@ +import { + Collection as PMCollection, + FormParam, + Item, + ItemGroup, + QueryParam, + RequestAuthDefinition, + VariableDefinition, +} from "postman-collection" +import { + HoppRESTAuth, + HoppRESTHeader, + HoppRESTParam, + HoppRESTReqBody, + HoppRESTRequest, + makeRESTRequest, +} from "@hoppscotch/data" +import { pipe, flow } from "fp-ts/function" +import * as S from "fp-ts/string" +import * as A from "fp-ts/Array" +import * as O from "fp-ts/Option" +import * as TE from "fp-ts/TaskEither" +import { step } from "../steps" +import { defineImporter, IMPORTER_INVALID_FILE_FORMAT } from "." +import { Collection, makeCollection } from "~/newstore/collections" + +const safeParseJSON = (jsonStr: string) => O.tryCatch(() => JSON.parse(jsonStr)) + +const isPMItem = (x: unknown): x is Item => Item.isItem(x) + +const replacePMVarTemplating = flow( + S.replace(/{{\s*/g, "<<"), + S.replace(/\s*}}/g, ">>") +) + +const isPMItemGroup = (x: unknown): x is ItemGroup => + ItemGroup.isItemGroup(x) + +const readPMCollection = (def: string) => + pipe( + def, + safeParseJSON, + O.chain((data) => O.tryCatch(() => new PMCollection(data))) + ) + +const getHoppReqHeaders = (item: Item): HoppRESTHeader[] => + pipe( + item.request.headers.all(), + A.map((header) => { + return { + key: replacePMVarTemplating(header.key), + value: replacePMVarTemplating(header.value), + active: !header.disabled, + } + }) + ) + +const getHoppReqParams = (item: Item): HoppRESTParam[] => { + return pipe( + item.request.url.query.all(), + A.filter( + (param): param is QueryParam & { key: string } => + param.key !== undefined && param.key !== null && param.key.length > 0 + ), + A.map((param) => { + return { + key: replacePMVarTemplating(param.key), + value: replacePMVarTemplating(param.value ?? ""), + active: !param.disabled, + } + }) + ) +} + +type PMRequestAuthDef< + AuthType extends RequestAuthDefinition["type"] = RequestAuthDefinition["type"] +> = AuthType extends RequestAuthDefinition["type"] & string + ? // eslint-disable-next-line no-unused-vars + { type: AuthType } & { [x in AuthType]: VariableDefinition[] } + : { type: AuthType } + +const getVariableValue = (defs: VariableDefinition[], key: string) => + defs.find((param) => param.key === key)?.value as string | undefined + +const getHoppReqAuth = (item: Item): HoppRESTAuth => { + if (!item.request.auth) return { authType: "none", authActive: true } + + // Cast to the type for more stricter checking down the line + const auth = item.request.auth as unknown as PMRequestAuthDef + + if (auth.type === "basic") { + return { + authType: "basic", + authActive: true, + username: replacePMVarTemplating( + getVariableValue(auth.basic, "username") ?? "" + ), + password: replacePMVarTemplating( + getVariableValue(auth.basic, "password") ?? "" + ), + } + } else if (auth.type === "apikey") { + return { + authType: "api-key", + authActive: true, + key: replacePMVarTemplating(getVariableValue(auth.apikey, "key") ?? ""), + value: replacePMVarTemplating( + getVariableValue(auth.apikey, "value") ?? "" + ), + addTo: + (getVariableValue(auth.apikey, "in") ?? "query") === "query" + ? "Query params" + : "Headers", + } + } else if (auth.type === "bearer") { + return { + authType: "bearer", + authActive: true, + token: replacePMVarTemplating( + getVariableValue(auth.bearer, "token") ?? "" + ), + } + } else if (auth.type === "oauth2") { + return { + authType: "oauth-2", + authActive: true, + accessTokenURL: replacePMVarTemplating( + getVariableValue(auth.oauth2, "accessTokenUrl") ?? "" + ), + authURL: replacePMVarTemplating( + getVariableValue(auth.oauth2, "authUrl") ?? "" + ), + clientID: replacePMVarTemplating( + getVariableValue(auth.oauth2, "clientId") ?? "" + ), + scope: replacePMVarTemplating( + getVariableValue(auth.oauth2, "scope") ?? "" + ), + token: replacePMVarTemplating( + getVariableValue(auth.oauth2, "accessToken") ?? "" + ), + oidcDiscoveryURL: "", + } + } + + return { authType: "none", authActive: true } +} + +type PMFormDataParamType = FormParam & { + type: "file" | "text" +} + +const getHoppReqBody = (item: Item): HoppRESTReqBody => { + if (!item.request.body) return { contentType: null, body: null } + + // TODO: Implement + const body = item.request.body + + if (body.mode === "formdata") { + return { + contentType: "multipart/form-data", + body: + (body.formdata?.all() as PMFormDataParamType[]).map((param) => ({ + key: replacePMVarTemplating(param.key), + value: replacePMVarTemplating( + param.type === "text" ? (param.value as string) : "" + ), + active: !param.disabled, + isFile: false, // TODO: Preserve isFile state ? + })) ?? [], + } + } else if (body.mode === "urlencoded") { + return { + contentType: "application/x-www-form-urlencoded", + body: + body.urlencoded + ?.all() + .map( + (param) => + `${replacePMVarTemplating( + param.key ?? "" + )}: ${replacePMVarTemplating(param.value ?? "")}` + ) + .join("\n") ?? "", + } + } else if (body.mode === "raw") { + // Find content type from the content type header + const contentType = getHoppReqHeaders(item).find( + ({ key }) => key.toLowerCase() === "content-type" + )?.value + + if (contentType && body.raw !== undefined && body.raw !== null) + return { + contentType: contentType as any, + body: replacePMVarTemplating(body.raw), + } + else return { contentType: null, body: null } // TODO: Any sort of recovery ? + } + + // TODO: File + // TODO: GraphQL ? + + return { contentType: null, body: null } +} + +const getHoppReqURL = (item: Item): string => + pipe( + item.request.url.toString(true), + S.replace(/\?.+/g, ""), + replacePMVarTemplating + ) + +const getHoppRequest = (item: Item): HoppRESTRequest => { + return makeRESTRequest({ + name: item.name, + endpoint: getHoppReqURL(item), + method: item.request.method.toUpperCase(), + headers: getHoppReqHeaders(item), + params: getHoppReqParams(item), + auth: getHoppReqAuth(item), + body: getHoppReqBody(item), + + // TODO: Decide about this + preRequestScript: "", + testScript: "", + }) +} + +const getHoppFolder = (ig: ItemGroup): Collection => + makeCollection({ + name: ig.name, + folders: pipe( + ig.items.all(), + A.filter(isPMItemGroup), + A.map(getHoppFolder) + ), + requests: pipe(ig.items.all(), A.filter(isPMItem), A.map(getHoppRequest)), + }) + +export const getHoppCollection = (coll: PMCollection) => getHoppFolder(coll) + +export default defineImporter({ + name: "import.from_postman", + icon: "postman", + steps: [ + step({ + stepName: "FILE_IMPORT", + metadata: { + caption: "import.from_postman_description", + acceptedFileTypes: ".json", + }, + }), + ] as const, + importer: ([fileContent]) => + pipe( + // Try reading + fileContent, + readPMCollection, + + O.map(flow(getHoppCollection, A.of)), + + TE.fromOption(() => IMPORTER_INVALID_FILE_FORMAT) + ), +}) diff --git a/packages/hoppscotch-app/helpers/import-export/steps.ts b/packages/hoppscotch-app/helpers/import-export/steps.ts new file mode 100644 index 000000000..64c967dde --- /dev/null +++ b/packages/hoppscotch-app/helpers/import-export/steps.ts @@ -0,0 +1,82 @@ +/** + * Defines which type of content a Step returns. + * Add an entry here when you define a step + */ +export type StepDefinition = { + FILE_IMPORT: { + returnType: string + metadata: { + caption: string + acceptedFileTypes: string + } + } // String content of the file + TARGET_MY_COLLECTION: { + returnType: number + metadata: { + caption: string + } + } // folderPath + URL_IMPORT: { + returnType: string + metadata: { + caption: string + placeholder: string + } + } // String content of the url +} + +export type StepReturnValue = StepDefinition[keyof StepDefinition]["returnType"] + +/** + * Defines what the data structure of a step + */ +export type Step = + StepDefinition[T]["metadata"] extends never + ? { + name: T + caption?: string + metadata: undefined + } + : { + name: T + caption?: string + metadata: StepDefinition[T]["metadata"] + } + +/** + * The return output value of an individual step + */ +export type StepReturnType = T extends Step + ? StepDefinition[U]["returnType"] + : never + +export type StepMetadata = T extends Step + ? StepDefinition[U]["metadata"] + : never + +/** + * Defines the value of the output list generated by a step + */ +export type StepsOutputList = { + [K in keyof T]: StepReturnType +} + +type StepFuncInput = + StepDefinition[T]["metadata"] extends never + ? { + stepName: T + caption?: string + } + : { + stepName: T + caption?: string + metadata: StepDefinition[T]["metadata"] + } + +/** Use this function to define a step */ +export const step = (input: StepFuncInput) => + >{ + name: input.stepName, + metadata: (input as any).metadata ?? undefined, + caption: input.caption, + } diff --git a/packages/hoppscotch-app/helpers/utils/parseInsomniaCollection.ts b/packages/hoppscotch-app/helpers/utils/parseInsomniaCollection.ts deleted file mode 100644 index 3cb219c02..000000000 --- a/packages/hoppscotch-app/helpers/utils/parseInsomniaCollection.ts +++ /dev/null @@ -1,234 +0,0 @@ -function transformUrl(insomniaUrl: string) { - if (insomniaUrl === "") return {} - const postmanUrl: any = {} - postmanUrl.raw = insomniaUrl - const urlParts = insomniaUrl.split(/:\/\//) - let rawHostAndPath - if (urlParts.length === 1) { - rawHostAndPath = urlParts[0] - } else if (urlParts.length === 2) { - postmanUrl.protocol = urlParts[0] - rawHostAndPath = urlParts[1] - } else { - console.error( - "Error: Unexpected number of components found in the URL string. Exiting." - ) - process.exit(3) - } - // https://stackoverflow.com/questions/4607745/split-string-only-on-first-instance-of-specified-character - const hostAndPath = rawHostAndPath.split(/\/(.+)/) - postmanUrl.host = hostAndPath[0].split(/\./) - postmanUrl.path = - hostAndPath[1] === undefined ? [] : hostAndPath[1].split(/\//) - return postmanUrl -} - -function transformHeaders(insomniaHeaders: any) { - const outputHeaders: any[] = [] - insomniaHeaders.forEach((element: any) => { - const header: any = {} - header.key = element.name - header.value = element.value - outputHeaders.push(header) - }) - return outputHeaders -} - -function transformBody(insomniaBody: any) { - const body: any = {} - switch (insomniaBody.mimeType) { - case "": - case "application/json": - case "application/xml": - body.mode = "raw" - body.raw = insomniaBody.text - break - case "multipart/form-data": - body.mode = "formdata" - body.formdata = [] - insomniaBody.params.forEach((param: any) => { - body.formdata.push({ key: param.name, value: param.value }) - }) - break - case "application/x-www-form-urlencoded": - body.mode = "urlencoded" - body.urlencoded = [] - insomniaBody.params.forEach((param: any) => { - body.urlencoded.push({ key: param.name, value: param.value }) - }) - break - case "application/octet-stream": - body.mode = "file" - body.file = {} - body.file.src = "/C:/PleaseSelectAFile" - console.warn( - "Warning: A file is supposed to be a part of the request!!! Would need to be manually selected in Postman." - ) - break - default: - console.warn( - "Warning: Body type unsupported; skipped!!! ... " + - insomniaBody.mimeType - ) - body.mode = "raw" - body.raw = - "github.com/Vyoam/InsomniaToPostmanFormat: Unsupported body type " + - insomniaBody.mimeType - break - } - return body -} - -function transformItem(insomniaItem: any) { - const postmanItem: any = {} - postmanItem.name = insomniaItem.name - const request: any = {} - request.method = insomniaItem.method - request.header = transformHeaders(insomniaItem.headers) - if (Object.keys(insomniaItem.body).length !== 0) { - request.body = transformBody(insomniaItem.body) - } - request.url = transformUrl(insomniaItem.url) - if (insomniaItem.parameters && insomniaItem.parameters.length > 0) { - if (request.url.raw !== undefined && request.url.raw.includes("?")) { - console.warn( - "Warning: Query params detected in both the raw query and the 'parameters' object of Insomnia request!!! Exported Postman collection may need manual editing for erroneous '?' in url." - ) - } - request.url.query = [] - insomniaItem.parameters.forEach((param: any) => { - request.url.query.push({ key: param.name, value: param.value }) - }) - } - request.auth = {} // todo - if (Object.keys(insomniaItem.authentication).length !== 0) { - console.warn("Warning: Auth param export not yet supported!!!") - } - postmanItem.request = request - postmanItem.response = [] - return postmanItem -} - -const rootId = "d1097c3b-2011-47a4-8f95-87b8f4b54d6d" // unique guid for root - -function generateMaps(insomniaParentChildList: any) { - const parentChildrenMap = new Map() - const flatMap = new Map() - insomniaParentChildList.forEach((element: any) => { - flatMap.set(element._id, element) - let elementArray = [] - switch (element._type) { - case "workspace": - // 'bug': only one workspace to be selected (the last one which comes up here) - elementArray.push(element) - parentChildrenMap.set(rootId, elementArray) // in any case will select the top workspace when creating tree - break - case "request": - elementArray = parentChildrenMap.get(element.parentId) - if (elementArray === undefined) elementArray = [] - elementArray.push(element) - parentChildrenMap.set(element.parentId, elementArray) - break - case "request_group": - elementArray = parentChildrenMap.get(element.parentId) - if (elementArray === undefined) elementArray = [] - elementArray.push(element) - parentChildrenMap.set(element.parentId, elementArray) - break - default: - console.warn( - "Warning: Item type unsupported; skipped!!! ... " + element._type - ) - } - }) - const maps = [parentChildrenMap, flatMap] - return maps -} - -function getCollectionName(insomniaParentChildList: any) { - let collectionName = "Untitled" - - insomniaParentChildList.forEach((element: any) => { - if (element._type === "workspace") { - collectionName = element.name - } - }) - - return collectionName -} - -function generateTreeRecursively(element: any, parentChildrenMap: any) { - let postmanItem: any = {} - switch (element._type) { - case "request_group": - postmanItem.name = element.name - postmanItem.item = [] - parentChildrenMap.get(element._id).forEach((child: any) => { - postmanItem.item.push(generateTreeRecursively(child, parentChildrenMap)) - }) - break - case "request": - postmanItem = transformItem(element) - break - default: - console.warn( - "Warning: Item type unsupported; skipped!!! ... " + element._type - ) - } - return postmanItem -} - -function getSubItemTrees(parentChildrenMap: any) { - const subItemTrees: any[] = [] - const roots = parentChildrenMap.get(rootId) - parentChildrenMap.get(roots[0]._id).forEach((element: any) => { - subItemTrees.push(generateTreeRecursively(element, parentChildrenMap)) - }) - return subItemTrees -} - -export function parseInsomniaCollection(inputDataString: string) { - const inputData = JSON.parse(inputDataString) - - console.log("Parsing Insomnia collection...", inputData) - - if (inputData.__export_format !== 4) { - console.error( - "Error: Version (__export_format " + - inputData.__export_format + - ") not supported. Only version 4 is supported." - ) - process.exit(2) - } - - const outputData: any = { - info: { - _postman_id: "", - name: "", - schema: - "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", - }, - item: [], - } - - outputData.info._postman_id = uuidv4() - outputData.info.name = getCollectionName(inputData.resources) - - const maps = generateMaps(inputData.resources) - - const parentChildrenMap = maps[0] - // const flatMap = maps[1] - - const subItems: any = getSubItemTrees(parentChildrenMap) - outputData.item.push(...subItems) - - return outputData -} - -function uuidv4(): string { - return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) { - const r = (Math.random() * 16) | 0 - const v = c === "x" ? r : (r & 0x3) | 0x8 - return v.toString(16) - }) -} diff --git a/packages/hoppscotch-app/locales/af.json b/packages/hoppscotch-app/locales/af.json index cc4caf99e..791850a9a 100644 --- a/packages/hoppscotch-app/locales/af.json +++ b/packages/hoppscotch-app/locales/af.json @@ -16,13 +16,11 @@ "label": "Etiket", "learn_more": "Leer meer", "more": "Meer", + "less": "Less", "new": "Nuut", "no": "Geen", - "preserve_current": "Bewaar stroom", "prettify": "Prettify", "remove": "Verwyder", - "replace_current": "Vervang stroom", - "replace_json": "Vervang deur JSON", "restore": "Herstel", "save": "Stoor", "search": "Soek", @@ -35,7 +33,10 @@ "turn_off": "Skakel af", "turn_on": "Sit aan", "undo": "Ontdoen", - "yes": "Ja" + "yes": "Ja", + "preserve_current": "Bewaar stroom", + "replace_current": "Vervang stroom", + "replace_json": "Vervang deur JSON" }, "add": { "new": "Voeg nuwe", @@ -231,11 +232,18 @@ "collections": "Voer versamelings in", "curl": "Voer cURL in", "failed": "Invoer misluk", - "from_gist": "Invoer vanaf Gist", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Invoer uit My versamelings", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Voer Gist URL in", "json": "Invoer vanaf JSON", - "title": "Invoer" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "Invoer", + "from_gist": "Invoer vanaf Gist" }, "layout": { "column": "Vertical layout", diff --git a/packages/hoppscotch-app/locales/ar.json b/packages/hoppscotch-app/locales/ar.json index 89e332762..dc9848d99 100644 --- a/packages/hoppscotch-app/locales/ar.json +++ b/packages/hoppscotch-app/locales/ar.json @@ -16,13 +16,11 @@ "label": "ملصق", "learn_more": "يتعلم أكثر", "more": "أكثر", + "less": "Less", "new": "جديد", "no": "رقم", - "preserve_current": "الحفاظ على التيار", "prettify": "جمال", "remove": "يزيل", - "replace_current": "استبدال التيار", - "replace_json": "استبدل بـ JSON", "restore": "يعيد", "save": "يحفظ", "search": "بحث", @@ -35,7 +33,10 @@ "turn_off": "اطفئه", "turn_on": "شغله", "undo": "الغاء التحميل", - "yes": "نعم" + "yes": "نعم", + "preserve_current": "الحفاظ على التيار", + "replace_current": "استبدال التيار", + "replace_json": "استبدل بـ JSON" }, "add": { "new": "اضف جديد", @@ -231,11 +232,18 @@ "collections": "مجموعات الاستيراد", "curl": "استيراد cURL", "failed": "فشل الاستيراد", - "from_gist": "الاستيراد من Gist", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "الاستيراد من \"مجموعاتي\"", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "أدخل عنوان URL لـ Gist", "json": "استيراد من JSON", - "title": "يستورد" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "يستورد", + "from_gist": "الاستيراد من Gist" }, "layout": { "column": "Vertical layout", diff --git a/packages/hoppscotch-app/locales/ca.json b/packages/hoppscotch-app/locales/ca.json index d6edbd757..e5cb839f0 100644 --- a/packages/hoppscotch-app/locales/ca.json +++ b/packages/hoppscotch-app/locales/ca.json @@ -16,13 +16,11 @@ "label": "Etiqueta", "learn_more": "Aprèn més", "more": "Més", + "less": "Less", "new": "Novetat", "no": "No", - "preserve_current": "Conservar el corrent", "prettify": "Prettify", "remove": "Elimina", - "replace_current": "Substitueix el corrent", - "replace_json": "Substitueix per JSON", "restore": "Restaura", "save": "Desa", "search": "Cerca", @@ -35,7 +33,10 @@ "turn_off": "Tanca", "turn_on": "Encendre", "undo": "Desfés", - "yes": "Sí" + "yes": "Sí", + "preserve_current": "Conservar el corrent", + "replace_current": "Substitueix el corrent", + "replace_json": "Substitueix per JSON" }, "add": { "new": "Afegir nou", @@ -231,11 +232,18 @@ "collections": "Importar col·leccions", "curl": "Importa cURL", "failed": "La importació ha fallat", - "from_gist": "Importa de Gist", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Importa de Les meves col·leccions", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Introduïu l'URL Gist", "json": "Importa de JSON", - "title": "Importació" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "Importació", + "from_gist": "Importa de Gist" }, "layout": { "column": "Vertical layout", diff --git a/packages/hoppscotch-app/locales/cn.json b/packages/hoppscotch-app/locales/cn.json index 6dcaf9c5c..d75684111 100644 --- a/packages/hoppscotch-app/locales/cn.json +++ b/packages/hoppscotch-app/locales/cn.json @@ -16,13 +16,11 @@ "label": "标签", "learn_more": "了解更多", "more": "更多", + "less": "Less", "new": "新增", "no": "否", - "preserve_current": "保持当前", "prettify": "美化", "remove": "移除", - "replace_current": "替换当前", - "replace_json": "替换为 JSON", "restore": "恢复", "save": "保存", "search": "搜索", @@ -35,7 +33,10 @@ "turn_off": "关闭", "turn_on": "开启", "undo": "撤消", - "yes": "是" + "yes": "是", + "preserve_current": "保持当前", + "replace_current": "替换当前", + "replace_json": "替换为 JSON" }, "add": { "new": "新增", @@ -231,11 +232,18 @@ "collections": "导入组合", "curl": "导入 cURL", "failed": "导入失败", - "from_gist": "从 Gist 导入", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "从我的组合导入", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "输入 Gist URL", "json": "从 JSON 导入", - "title": "导入" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "导入", + "from_gist": "从 Gist 导入" }, "layout": { "column": "垂直布局", diff --git a/packages/hoppscotch-app/locales/cs.json b/packages/hoppscotch-app/locales/cs.json index 865604561..5b6c3dd55 100644 --- a/packages/hoppscotch-app/locales/cs.json +++ b/packages/hoppscotch-app/locales/cs.json @@ -16,13 +16,11 @@ "label": "Označení", "learn_more": "Další informace", "more": "Více", + "less": "Less", "new": "Nový", "no": "Ne", - "preserve_current": "Zachovat proud", "prettify": "Prettify", "remove": "Odstranit", - "replace_current": "Vyměňte proud", - "replace_json": "Nahradit za JSON", "restore": "Obnovit", "save": "Uložit", "search": "Vyhledávání", @@ -35,7 +33,10 @@ "turn_off": "Vypnout", "turn_on": "Zapnout", "undo": "vrátit", - "yes": "Ano" + "yes": "Ano", + "preserve_current": "Zachovat proud", + "replace_current": "Vyměňte proud", + "replace_json": "Nahradit za JSON" }, "add": { "new": "Přidat nový", @@ -231,11 +232,18 @@ "collections": "Import sbírek", "curl": "Importovat cURL", "failed": "Import se nezdařil", - "from_gist": "Import z Gist", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Importovat z mých sbírek", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Zadejte URL adresy", "json": "Import z JSON", - "title": "Import" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "Import", + "from_gist": "Import z Gist" }, "layout": { "column": "Vertical layout", diff --git a/packages/hoppscotch-app/locales/da.json b/packages/hoppscotch-app/locales/da.json index cb8b419b2..855b9a5c0 100644 --- a/packages/hoppscotch-app/locales/da.json +++ b/packages/hoppscotch-app/locales/da.json @@ -16,13 +16,11 @@ "label": "Etiket", "learn_more": "Lær mere", "more": "Mere", + "less": "Less", "new": "Ny", "no": "Ingen", - "preserve_current": "Bevar strøm", "prettify": "Prettify", "remove": "Fjerne", - "replace_current": "Udskift strøm", - "replace_json": "Udskift med JSON", "restore": "Gendan", "save": "Gemme", "search": "Søg", @@ -35,7 +33,10 @@ "turn_off": "Sluk", "turn_on": "Tænde for", "undo": "Fortryd", - "yes": "Ja" + "yes": "Ja", + "preserve_current": "Bevar strøm", + "replace_current": "Udskift strøm", + "replace_json": "Udskift med JSON" }, "add": { "new": "Tilføj ny", @@ -231,11 +232,18 @@ "collections": "Importer samlinger", "curl": "Importer cURL", "failed": "Import mislykkedes", - "from_gist": "Import fra Gist", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Import fra Mine samlinger", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Indtast Gist URL", "json": "Import fra JSON", - "title": "Importere" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "Importere", + "from_gist": "Import fra Gist" }, "layout": { "column": "Vertical layout", diff --git a/packages/hoppscotch-app/locales/de.json b/packages/hoppscotch-app/locales/de.json index e34e91929..e16f7e31d 100644 --- a/packages/hoppscotch-app/locales/de.json +++ b/packages/hoppscotch-app/locales/de.json @@ -16,13 +16,11 @@ "label": "Etikett", "learn_more": "Mehr erfahren", "more": "Mehr", + "less": "Less", "new": "Neu", "no": "Nein", - "preserve_current": "Aktuelles behalten", "prettify": "Verschönern", "remove": "Entfernen", - "replace_current": "Aktuelles ersetzen", - "replace_json": "Durch JSON ersetzen", "restore": "Wiederherstellen", "save": "Speichern", "search": "Suchen", @@ -35,7 +33,10 @@ "turn_off": "Ausschalten", "turn_on": "Einschalten", "undo": "Rückgängig machen", - "yes": "Ja" + "yes": "Ja", + "preserve_current": "Aktuelles behalten", + "replace_current": "Aktuelles ersetzen", + "replace_json": "Durch JSON ersetzen" }, "add": { "new": "Neue hinzufügen", @@ -231,11 +232,18 @@ "collections": "Sammlungen importieren", "curl": "cURL importieren", "failed": "Importieren fehlgeschlagen", - "from_gist": "Import aus Gist", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Aus Meine Sammlungen importieren", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Gist-URL eingeben", "json": "Aus JSON importieren", - "title": "Importieren" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "Importieren", + "from_gist": "Import aus Gist" }, "layout": { "column": "Vertical layout", diff --git a/packages/hoppscotch-app/locales/el.json b/packages/hoppscotch-app/locales/el.json index f160f29e8..7ebc875a9 100644 --- a/packages/hoppscotch-app/locales/el.json +++ b/packages/hoppscotch-app/locales/el.json @@ -16,13 +16,11 @@ "label": "Επιγραφή", "learn_more": "Μάθε περισσότερα", "more": "Περισσότερο", + "less": "Less", "new": "Νέος", "no": "Οχι", - "preserve_current": "Διατήρηση ρεύματος", "prettify": "Ωραιοποιώ", "remove": "Αφαιρώ", - "replace_current": "Αντικαταστήστε το ρεύμα", - "replace_json": "Αντικαταστήστε με JSON", "restore": "Επαναφέρω", "save": "Αποθηκεύσετε", "search": "Αναζήτηση", @@ -35,7 +33,10 @@ "turn_off": "Σβήνω", "turn_on": "Ανάβω", "undo": "Ξεκάνω", - "yes": "Ναί" + "yes": "Ναί", + "preserve_current": "Διατήρηση ρεύματος", + "replace_current": "Αντικαταστήστε το ρεύμα", + "replace_json": "Αντικαταστήστε με JSON" }, "add": { "new": "Προσθεσε νεο", @@ -231,11 +232,18 @@ "collections": "Εισαγωγή συλλογών", "curl": "Εισαγωγή cURL", "failed": "Η εισαγωγή απέτυχε", - "from_gist": "Εισαγωγή από το Gist", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Εισαγωγή από τις Συλλογές μου", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Εισαγάγετε Gist URL", "json": "Εισαγωγή από JSON", - "title": "Εισαγωγή" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "Εισαγωγή", + "from_gist": "Εισαγωγή από το Gist" }, "layout": { "column": "Vertical layout", diff --git a/packages/hoppscotch-app/locales/en.json b/packages/hoppscotch-app/locales/en.json index a316824d7..9f99b9d13 100644 --- a/packages/hoppscotch-app/locales/en.json +++ b/packages/hoppscotch-app/locales/en.json @@ -16,13 +16,11 @@ "label": "Label", "learn_more": "Learn more", "more": "More", + "less": "Less", "new": "New", "no": "No", - "preserve_current": "Preserve current", "prettify": "Prettify", "remove": "Remove", - "replace_current": "Replace current", - "replace_json": "Replace with JSON", "restore": "Restore", "save": "Save", "search": "Search", @@ -232,9 +230,20 @@ "curl": "Import cURL", "failed": "Error while importing: format not recognized", "from_gist": "Import from Gist", + "from_gist_description": "Import from Gist URL", + "from_insomnia": "Import from Insomnia", + "from_insomnia_description": "Import from Insomnia collection", "from_my_collections": "Import from My Collections", + "from_my_collections_description": "Import from My Collections file", + "from_openapi": "Import from OpenAPI", + "from_openapi_description": "Import from OpenAPI specification file (YML/JSON)", + "from_postman": "Import from Postman", + "from_postman_description": "Import from Postman collection", + "from_url": "Import from URL", + "from_json": "Import from Hoppscotch", + "from_json_description": "Import from Hoppscotch collection file", "gist_url": "Enter Gist URL", - "json": "Import from JSON", + "json_description": "Import collections from a Hoppscotch Collections JSON file", "title": "Import" }, "layout": { diff --git a/packages/hoppscotch-app/locales/es.json b/packages/hoppscotch-app/locales/es.json index ba90ae7f4..eb01e52b4 100644 --- a/packages/hoppscotch-app/locales/es.json +++ b/packages/hoppscotch-app/locales/es.json @@ -16,13 +16,11 @@ "label": "Etiqueta", "learn_more": "Aprende más", "more": "Más", + "less": "Less", "new": "Nuevo", "no": "No", - "preserve_current": "Mantener actual", "prettify": "Prettify", "remove": "Eliminar", - "replace_current": "Reemplazar actual", - "replace_json": "Reemplazar JSON", "restore": "Restaurar", "save": "Guardar", "search": "Búsqueda", @@ -35,7 +33,10 @@ "turn_off": "Desactivar", "turn_on": "Activar", "undo": "Deshacer", - "yes": "Sí" + "yes": "Sí", + "preserve_current": "Mantener actual", + "replace_current": "Reemplazar actual", + "replace_json": "Reemplazar JSON" }, "add": { "new": "Agregar nuevo", @@ -231,11 +232,18 @@ "collections": "Importar colecciones", "curl": "Importar cURL", "failed": "Importación fallida", - "from_gist": "Importar desde Gist", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Importar desde Mis colecciones", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Ingrese la URL de Gist", "json": "Importar desde JSON", - "title": "Importar" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "Importar", + "from_gist": "Importar desde Gist" }, "layout": { "column": "Layout vertical", diff --git a/packages/hoppscotch-app/locales/fi.json b/packages/hoppscotch-app/locales/fi.json index 5b7fb6f9d..ba4c72001 100644 --- a/packages/hoppscotch-app/locales/fi.json +++ b/packages/hoppscotch-app/locales/fi.json @@ -16,13 +16,11 @@ "label": "Etiketti", "learn_more": "Lue lisää", "more": "Lisää", + "less": "Less", "new": "Uusi", "no": "Ei", - "preserve_current": "Säilytä virta", "prettify": "Koristella", "remove": "Poista", - "replace_current": "Vaihda virta", - "replace_json": "Korvaa JSONilla", "restore": "Palauttaa", "save": "Tallentaa", "search": "Hae", @@ -35,7 +33,10 @@ "turn_off": "Sammuttaa", "turn_on": "Kiihottua", "undo": "Kumoa", - "yes": "Joo" + "yes": "Joo", + "preserve_current": "Säilytä virta", + "replace_current": "Vaihda virta", + "replace_json": "Korvaa JSONilla" }, "add": { "new": "Lisää uusi", @@ -231,11 +232,18 @@ "collections": "Tuo kokoelmia", "curl": "Tuo cURL", "failed": "Tuonti epäonnistui", - "from_gist": "Tuo Gististä", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Tuo omista kokoelmista", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Anna Gist URL", "json": "Tuo JSONista", - "title": "Tuonti" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "Tuonti", + "from_gist": "Tuo Gististä" }, "layout": { "column": "Vertical layout", diff --git a/packages/hoppscotch-app/locales/fr.json b/packages/hoppscotch-app/locales/fr.json index 1777af95c..7247c876c 100644 --- a/packages/hoppscotch-app/locales/fr.json +++ b/packages/hoppscotch-app/locales/fr.json @@ -16,13 +16,11 @@ "label": "Étiqueter", "learn_more": "En savoir plus", "more": "Suite", + "less": "Less", "new": "Nouveau", "no": "Non", - "preserve_current": "Conserver l'actuel", "prettify": "Formater", "remove": "Supprimer", - "replace_current": "Remplacer l'actuel", - "replace_json": "Remplacer par JSON", "restore": "Restaurer", "save": "Sauvegarder", "search": "Chercher", @@ -35,7 +33,10 @@ "turn_off": "Éteindre", "turn_on": "Allumer", "undo": "Annuler", - "yes": "Oui" + "yes": "Oui", + "preserve_current": "Conserver l'actuel", + "replace_current": "Remplacer l'actuel", + "replace_json": "Remplacer par JSON" }, "add": { "new": "Ajouter un nouveau", @@ -231,11 +232,18 @@ "collections": "Importer des collections", "curl": "Importer en cURL", "failed": "Échec de l'importation", - "from_gist": "Importer depuis Gist", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Importer depuis Mes collections", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Entrez l'URL principale", "json": "Importer depuis JSON", - "title": "Importer" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "Importer", + "from_gist": "Importer depuis Gist" }, "layout": { "column": "Disposition verticale", diff --git a/packages/hoppscotch-app/locales/he.json b/packages/hoppscotch-app/locales/he.json index ce9f836d0..6129bad1e 100644 --- a/packages/hoppscotch-app/locales/he.json +++ b/packages/hoppscotch-app/locales/he.json @@ -16,13 +16,11 @@ "label": "תווית", "learn_more": "למד עוד", "more": "יותר", + "less": "Less", "new": "חָדָשׁ", "no": "לא", - "preserve_current": "שמור על זרם", "prettify": "לְיַפּוֹת", "remove": "לְהַסִיר", - "replace_current": "החלף זרם", - "replace_json": "החלף ב- JSON", "restore": "לשחזר", "save": "להציל", "search": "לחפש", @@ -35,7 +33,10 @@ "turn_off": "לכבות", "turn_on": "להדליק", "undo": "לבטל", - "yes": "כן" + "yes": "כן", + "preserve_current": "שמור על זרם", + "replace_current": "החלף זרם", + "replace_json": "החלף ב- JSON" }, "add": { "new": "הוסף חדש", @@ -231,11 +232,18 @@ "collections": "ייבוא אוספים", "curl": "ייבא cURL", "failed": "הייבוא נכשל", - "from_gist": "ייבוא מ- Gist", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "ייבוא מהאוספים שלי", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "הזן Gist URL", "json": "ייבוא מ- JSON", - "title": "יְבוּא" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "יְבוּא", + "from_gist": "ייבוא מ- Gist" }, "layout": { "column": "Vertical layout", diff --git a/packages/hoppscotch-app/locales/hu.json b/packages/hoppscotch-app/locales/hu.json index 97fa0e30f..f93fe5c9a 100644 --- a/packages/hoppscotch-app/locales/hu.json +++ b/packages/hoppscotch-app/locales/hu.json @@ -16,13 +16,11 @@ "label": "Címke", "learn_more": "Tudj meg többet", "more": "Több", + "less": "Less", "new": "Új", "no": "Nem", - "preserve_current": "Tartsa meg az áramot", "prettify": "Szépít", "remove": "Eltávolítás", - "replace_current": "Cserélje ki az áramot", - "replace_json": "Cserélje ki JSON -ra", "restore": "visszaállítás", "save": "Mentés", "search": "Keresés", @@ -35,7 +33,10 @@ "turn_off": "Kikapcsolni", "turn_on": "Bekapcsol", "undo": "Visszavonás", - "yes": "Igen" + "yes": "Igen", + "preserve_current": "Tartsa meg az áramot", + "replace_current": "Cserélje ki az áramot", + "replace_json": "Cserélje ki JSON -ra" }, "add": { "new": "Új hozzáadása", @@ -231,11 +232,18 @@ "collections": "Gyűjtemények importálása", "curl": "CURL importálása", "failed": "Az importálás sikertelen", - "from_gist": "Importálás a Gist -ből", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Importálás a Saját gyűjteményekből", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Írja be a lényeg URL -jét", "json": "Importálás a JSON -ból", - "title": "Importálás" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "Importálás", + "from_gist": "Importálás a Gist -ből" }, "layout": { "column": "Vertical layout", diff --git a/packages/hoppscotch-app/locales/it.json b/packages/hoppscotch-app/locales/it.json index 4b9489c22..97816b473 100644 --- a/packages/hoppscotch-app/locales/it.json +++ b/packages/hoppscotch-app/locales/it.json @@ -16,13 +16,11 @@ "label": "Etichetta", "learn_more": "Per saperne di più", "more": "Di più", + "less": "Less", "new": "Nuovo", "no": "No", - "preserve_current": "Conserva attuale", "prettify": "Abbellisci", "remove": "Rimuovi", - "replace_current": "Sostituisci attuale", - "replace_json": "Sostituisci con JSON", "restore": "Ripristina", "save": "Salva", "search": "Cerca", @@ -35,7 +33,10 @@ "turn_off": "Spegni", "turn_on": "Accendi", "undo": "Annulla", - "yes": "Sì" + "yes": "Sì", + "preserve_current": "Conserva attuale", + "replace_current": "Sostituisci attuale", + "replace_json": "Sostituisci con JSON" }, "add": { "new": "Aggiungi nuova", @@ -231,11 +232,18 @@ "collections": "Importa raccolte", "curl": "Importa cURL", "failed": "Importazione non riuscita", - "from_gist": "Importa da Gist", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Importa da Le Mie Raccolte", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Inserisci l'URL del Gist", "json": "Importa da JSON", - "title": "Importa" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "Importa", + "from_gist": "Importa da Gist" }, "layout": { "column": "Disposizione verticale", diff --git a/packages/hoppscotch-app/locales/ja.json b/packages/hoppscotch-app/locales/ja.json index 439d2f97d..652d00f4f 100644 --- a/packages/hoppscotch-app/locales/ja.json +++ b/packages/hoppscotch-app/locales/ja.json @@ -16,13 +16,11 @@ "label": "ラベル", "learn_more": "もっと詳しく知る", "more": "もっと", + "less": "Less", "new": "新しい", "no": "番号", - "preserve_current": "現在を維持する", "prettify": "きれいにする", "remove": "削除する", - "replace_current": "現在を交換してください", - "replace_json": "JSONに置き換えます", "restore": "戻す", "save": "保存する", "search": "探す", @@ -35,7 +33,10 @@ "turn_off": "消す", "turn_on": "オンにする", "undo": "元に戻す", - "yes": "はい" + "yes": "はい", + "preserve_current": "現在を維持する", + "replace_current": "現在を交換してください", + "replace_json": "JSONに置き換えます" }, "add": { "new": "新しく追加する", @@ -231,11 +232,18 @@ "collections": "コレクションをインポートする", "curl": "cURLをインポートする", "failed": "インポートに失敗しました", - "from_gist": "要旨からインポート", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "マイコレクションからインポート", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "要旨URLを入力してください", "json": "JSONからインポート", - "title": "輸入" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "輸入", + "from_gist": "要旨からインポート" }, "layout": { "column": "Vertical layout", diff --git a/packages/hoppscotch-app/locales/ko.json b/packages/hoppscotch-app/locales/ko.json index 2104cc832..7071a26d9 100644 --- a/packages/hoppscotch-app/locales/ko.json +++ b/packages/hoppscotch-app/locales/ko.json @@ -16,13 +16,11 @@ "label": "이름", "learn_more": "더 알아보기", "more": "더보기", + "less": "Less", "new": "추가", "no": "아니요", - "preserve_current": "현재 보존", "prettify": "예쁘게", "remove": "제거", - "replace_current": "현재 교체", - "replace_json": "JSON으로 바꾸기", "restore": "복원", "save": "저장", "search": "검색", @@ -35,7 +33,10 @@ "turn_off": "끄기", "turn_on": "켜기", "undo": "실행 취소", - "yes": "예" + "yes": "예", + "preserve_current": "현재 보존", + "replace_current": "현재 교체", + "replace_json": "JSON으로 바꾸기" }, "add": { "new": "추가", @@ -231,11 +232,18 @@ "collections": "모음집 가져오기", "curl": "cURL 가져오기", "failed": "가져오기 실패", - "from_gist": "요점에서 가져오기", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "내 모음집에서 가져오기", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "요점 URL 입력", "json": "JSON에서 가져오기", - "title": "가저오기" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "가저오기", + "from_gist": "요점에서 가져오기" }, "layout": { "column": "Vertical layout", diff --git a/packages/hoppscotch-app/locales/nl.json b/packages/hoppscotch-app/locales/nl.json index 0539b8008..7053e7820 100644 --- a/packages/hoppscotch-app/locales/nl.json +++ b/packages/hoppscotch-app/locales/nl.json @@ -16,13 +16,11 @@ "label": "Label", "learn_more": "Leer meer", "more": "Meer", + "less": "Less", "new": "Nieuw", "no": "Nee", - "preserve_current": "Huidige behouden", "prettify": "Netter opmaken", "remove": "Verwijderen", - "replace_current": "Vervang huidige", - "replace_json": "Vervang door JSON", "restore": "Herstellen", "save": "Opslaan", "search": "Zoeken", @@ -35,7 +33,10 @@ "turn_off": "Uitschakelen", "turn_on": "Inschakelen", "undo": "Ongedaan maken", - "yes": "Ja" + "yes": "Ja", + "preserve_current": "Huidige behouden", + "replace_current": "Vervang huidige", + "replace_json": "Vervang door JSON" }, "add": { "new": "Nieuwe toevoegen", @@ -231,11 +232,18 @@ "collections": "Collecties importeren", "curl": "cURL-commando importeren", "failed": "Importeren mislukt", - "from_gist": "Importeren uit Gist", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Importeren uit Mijn collecties", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Vul de hoofd-URL in", "json": "Importeren uit JSON", - "title": "Importeren" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "Importeren", + "from_gist": "Importeren uit Gist" }, "layout": { "column": "Vertical layout", diff --git a/packages/hoppscotch-app/locales/no.json b/packages/hoppscotch-app/locales/no.json index 4c1d5a26b..f7942cd49 100644 --- a/packages/hoppscotch-app/locales/no.json +++ b/packages/hoppscotch-app/locales/no.json @@ -16,13 +16,11 @@ "label": "Merkelapp", "learn_more": "Lær mer", "more": "Mer", + "less": "Less", "new": "Ny", "no": "Nei", - "preserve_current": "Bevar nåværende", "prettify": "Forskjønn", "remove": "Ta bort", - "replace_current": "Bytt ut nåværende", - "replace_json": "Erstatt JSON", "restore": "Gjenopprett", "save": "Lagre", "search": "Søk", @@ -35,7 +33,10 @@ "turn_off": "Skru av", "turn_on": "Slå på", "undo": "Angre", - "yes": "Ja" + "yes": "Ja", + "preserve_current": "Bevar nåværende", + "replace_current": "Bytt ut nåværende", + "replace_json": "Erstatt JSON" }, "add": { "new": "Legg til ny", @@ -231,11 +232,18 @@ "collections": "Importer samlinger", "curl": "Importer cURL", "failed": "Import mislyktes", - "from_gist": "Import fra Gist", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Importer fra Mine samlinger", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Skriv inn Gist URL", "json": "Import fra JSON", - "title": "Import" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "Import", + "from_gist": "Import fra Gist" }, "layout": { "column": "Vertical layout", diff --git a/packages/hoppscotch-app/locales/pl.json b/packages/hoppscotch-app/locales/pl.json index b126f832d..44814559f 100644 --- a/packages/hoppscotch-app/locales/pl.json +++ b/packages/hoppscotch-app/locales/pl.json @@ -16,13 +16,11 @@ "label": "Etykieta", "learn_more": "Dowiedz się więcej", "more": "Więcej", + "less": "Less", "new": "Nowa", "no": "Nie", - "preserve_current": "Zachowaj bieżący", "prettify": "Popraw czytelność", "remove": "Usuń", - "replace_current": "Zastąp bieżący", - "replace_json": "Zastąp JSON", "restore": "Przywróć", "save": "Zapisz", "search": "Szukaj", @@ -35,7 +33,10 @@ "turn_off": "Wyłącz", "turn_on": "Włącz", "undo": "Cofnij", - "yes": "Tak" + "yes": "Tak", + "preserve_current": "Zachowaj bieżący", + "replace_current": "Zastąp bieżący", + "replace_json": "Zastąp JSON" }, "add": { "new": "Dodaj nowe", @@ -231,11 +232,18 @@ "collections": "Importuj kolekcje", "curl": "Importuj CURL", "failed": "Import nie powiódł się", - "from_gist": "Importuj z Gist", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Importuj z Moich kolekcji", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Wpisz adres URL Gist", "json": "Importuj z JSON", - "title": "Import" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "Import", + "from_gist": "Importuj z Gist" }, "layout": { "column": "Pionowy układ", diff --git a/packages/hoppscotch-app/locales/pt-br.json b/packages/hoppscotch-app/locales/pt-br.json index 141e69b61..07de71191 100644 --- a/packages/hoppscotch-app/locales/pt-br.json +++ b/packages/hoppscotch-app/locales/pt-br.json @@ -16,13 +16,11 @@ "label": "Etiqueta", "learn_more": "Saber mais", "more": "Mais", + "less": "Less", "new": "Novo", "no": "Não", - "preserve_current": "Preservar corrente", "prettify": "Embelezar", "remove": "Remover", - "replace_current": "Substitua a corrente", - "replace_json": "Substitua por JSON", "restore": "Restaurar", "save": "Salvar", "search": "Procurar", @@ -35,7 +33,10 @@ "turn_off": "Desligar", "turn_on": "Ligar", "undo": "Desfazer", - "yes": "sim" + "yes": "sim", + "preserve_current": "Preservar corrente", + "replace_current": "Substitua a corrente", + "replace_json": "Substitua por JSON" }, "add": { "new": "Adicionar novo", @@ -231,11 +232,18 @@ "collections": "Importar coleções", "curl": "Importar cURL", "failed": "A importação falhou", - "from_gist": "Importar do Gist", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Importar de minhas coleções", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Insira o URL da essência", "json": "Importar de JSON", - "title": "Importar" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "Importar", + "from_gist": "Importar do Gist" }, "layout": { "column": "Vertical layout", diff --git a/packages/hoppscotch-app/locales/pt.json b/packages/hoppscotch-app/locales/pt.json index 141e69b61..07de71191 100644 --- a/packages/hoppscotch-app/locales/pt.json +++ b/packages/hoppscotch-app/locales/pt.json @@ -16,13 +16,11 @@ "label": "Etiqueta", "learn_more": "Saber mais", "more": "Mais", + "less": "Less", "new": "Novo", "no": "Não", - "preserve_current": "Preservar corrente", "prettify": "Embelezar", "remove": "Remover", - "replace_current": "Substitua a corrente", - "replace_json": "Substitua por JSON", "restore": "Restaurar", "save": "Salvar", "search": "Procurar", @@ -35,7 +33,10 @@ "turn_off": "Desligar", "turn_on": "Ligar", "undo": "Desfazer", - "yes": "sim" + "yes": "sim", + "preserve_current": "Preservar corrente", + "replace_current": "Substitua a corrente", + "replace_json": "Substitua por JSON" }, "add": { "new": "Adicionar novo", @@ -231,11 +232,18 @@ "collections": "Importar coleções", "curl": "Importar cURL", "failed": "A importação falhou", - "from_gist": "Importar do Gist", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Importar de minhas coleções", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Insira o URL da essência", "json": "Importar de JSON", - "title": "Importar" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "Importar", + "from_gist": "Importar do Gist" }, "layout": { "column": "Vertical layout", diff --git a/packages/hoppscotch-app/locales/ro.json b/packages/hoppscotch-app/locales/ro.json index 96cbf18a6..41d9e58f3 100644 --- a/packages/hoppscotch-app/locales/ro.json +++ b/packages/hoppscotch-app/locales/ro.json @@ -16,13 +16,11 @@ "label": "Eticheta", "learn_more": "Află mai multe", "more": "Mai mult", + "less": "Less", "new": "Nou", "no": "Nu", - "preserve_current": "Păstrați curentul", "prettify": "Dăruiește", "remove": "Elimina", - "replace_current": "Înlocuiți curentul", - "replace_json": "Înlocuiți cu JSON", "restore": "Restabili", "save": "salva", "search": "Căutare", @@ -35,7 +33,10 @@ "turn_off": "Opriți", "turn_on": "Aprinde", "undo": "Anula", - "yes": "da" + "yes": "da", + "preserve_current": "Păstrați curentul", + "replace_current": "Înlocuiți curentul", + "replace_json": "Înlocuiți cu JSON" }, "add": { "new": "Adăuga nou", @@ -231,11 +232,18 @@ "collections": "Import colecții", "curl": "Importați cURL", "failed": "Importul nu a reușit", - "from_gist": "Import din Gist", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Import din colecțiile mele", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Introduceți adresa URL Gist", "json": "Importați din JSON", - "title": "Import" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "Import", + "from_gist": "Import din Gist" }, "layout": { "column": "Vertical layout", diff --git a/packages/hoppscotch-app/locales/ru.json b/packages/hoppscotch-app/locales/ru.json index 4c172d051..a0b365f60 100644 --- a/packages/hoppscotch-app/locales/ru.json +++ b/packages/hoppscotch-app/locales/ru.json @@ -16,13 +16,11 @@ "label": "Название", "learn_more": "Узнать больше", "more": "Больше", + "less": "Less", "new": "Создать новый", "no": "Нет", - "preserve_current": "Сохранить текущий", "prettify": "Форматировать", "remove": "Удалить", - "replace_current": "Заменить текущий", - "replace_json": "Заменить на JSON", "restore": "Восстановить", "save": "Сохранить", "search": "Поиск", @@ -35,7 +33,10 @@ "turn_off": "Выключить", "turn_on": "Включить", "undo": "Отменить", - "yes": "Да" + "yes": "Да", + "preserve_current": "Сохранить текущий", + "replace_current": "Заменить текущий", + "replace_json": "Заменить на JSON" }, "add": { "new": "Добавить новое", @@ -231,11 +232,18 @@ "collections": "Импортировать коллекции", "curl": "Импортировать cURL", "failed": "Ошибка импорта", - "from_gist": "Импорт из Gist", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Импортировать из моих коллекций", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Введите URL-адрес Gist", "json": "Импорт из JSON", - "title": "Импортировать" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "Импортировать", + "from_gist": "Импорт из Gist" }, "layout": { "column": "Вертикальное оформление", diff --git a/packages/hoppscotch-app/locales/sr.json b/packages/hoppscotch-app/locales/sr.json index 31a16adeb..62618ee44 100644 --- a/packages/hoppscotch-app/locales/sr.json +++ b/packages/hoppscotch-app/locales/sr.json @@ -16,13 +16,11 @@ "label": "Ознака", "learn_more": "Сазнајте више", "more": "Више", + "less": "Less", "new": "Нова", "no": "Не", - "preserve_current": "Очувајте струју", "prettify": "Преттифи", "remove": "Уклони", - "replace_current": "Замените струју", - "replace_json": "Замените са ЈСОН", "restore": "Ресторе", "save": "сачувати", "search": "Претрага", @@ -35,7 +33,10 @@ "turn_off": "Искључити", "turn_on": "Укључити", "undo": "Поништи", - "yes": "да" + "yes": "да", + "preserve_current": "Очувајте струју", + "replace_current": "Замените струју", + "replace_json": "Замените са ЈСОН" }, "add": { "new": "Додај нови", @@ -231,11 +232,18 @@ "collections": "Увоз збирки", "curl": "Увези цУРЛ", "failed": "Увоз није успео", - "from_gist": "Увоз из Гиста", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Увези из Мојих колекција", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Унесите Гист УРЛ", "json": "Увези из ЈСОН -а", - "title": "Увоз" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "Увоз", + "from_gist": "Увоз из Гиста" }, "layout": { "column": "Vertical layout", diff --git a/packages/hoppscotch-app/locales/sv.json b/packages/hoppscotch-app/locales/sv.json index c20eb33fd..c53419cd3 100644 --- a/packages/hoppscotch-app/locales/sv.json +++ b/packages/hoppscotch-app/locales/sv.json @@ -16,13 +16,11 @@ "label": "Märka", "learn_more": "Läs mer", "more": "Mer", + "less": "Less", "new": "Ny", "no": "Nej", - "preserve_current": "Behåll ström", "prettify": "Försköna", "remove": "Avlägsna", - "replace_current": "Byt ut ström", - "replace_json": "Ersätt med JSON", "restore": "Återställ", "save": "Spara", "search": "Sök", @@ -35,7 +33,10 @@ "turn_off": "Stäng av", "turn_on": "Sätta på", "undo": "Ångra", - "yes": "Ja" + "yes": "Ja", + "preserve_current": "Behåll ström", + "replace_current": "Byt ut ström", + "replace_json": "Ersätt med JSON" }, "add": { "new": "Lägg till ny", @@ -231,11 +232,18 @@ "collections": "Importera samlingar", "curl": "Importera cURL", "failed": "Importen misslyckades", - "from_gist": "Importera från Gist", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Importera från Mina samlingar", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Ange Gist URL", "json": "Importera från JSON", - "title": "Importera" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "Importera", + "from_gist": "Importera från Gist" }, "layout": { "column": "Vertical layout", diff --git a/packages/hoppscotch-app/locales/tr.json b/packages/hoppscotch-app/locales/tr.json index 097aefe50..afb88fdbc 100644 --- a/packages/hoppscotch-app/locales/tr.json +++ b/packages/hoppscotch-app/locales/tr.json @@ -16,13 +16,11 @@ "label": "Etiket", "learn_more": "Daha fazla bilgi edin", "more": "Daha", + "less": "Less", "new": "Yeni", "no": "Numara", - "preserve_current": "Şimdikini koru", "prettify": "Güzelleştir", "remove": "Kaldır", - "replace_current": "Şimdikini değiştir", - "replace_json": "JSON ile değiştir", "restore": "Onar", "save": "Kaydet", "search": "Arama", @@ -35,7 +33,10 @@ "turn_off": "Kapat", "turn_on": "Aç", "undo": "Geri al", - "yes": "Evet" + "yes": "Evet", + "preserve_current": "Şimdikini koru", + "replace_current": "Şimdikini değiştir", + "replace_json": "JSON ile değiştir" }, "add": { "new": "Yeni ekle", @@ -231,11 +232,18 @@ "collections": "Koleksiyonları içe aktar", "curl": "cURL'yi içe aktar", "failed": "İçe aktarılamadı", - "from_gist": "Gist'ten içe aktar", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Koleksiyonlarımdan İçe Aktar", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Gist URL'sini girin", "json": "JSON'dan içe aktar", - "title": "İçe aktar" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "İçe aktar", + "from_gist": "Gist'ten içe aktar" }, "layout": { "column": "Dikey görünüm", diff --git a/packages/hoppscotch-app/locales/tw.json b/packages/hoppscotch-app/locales/tw.json index 74f67707f..553f0fdd9 100644 --- a/packages/hoppscotch-app/locales/tw.json +++ b/packages/hoppscotch-app/locales/tw.json @@ -16,13 +16,11 @@ "label": "標籤", "learn_more": "瞭解更多", "more": "更多", + "less": "Less", "new": "新增", "no": "否", - "preserve_current": "保持目前", "prettify": "美化", "remove": "移除", - "replace_current": "替換目前", - "replace_json": "替換為 JSON", "restore": "還原", "save": "儲存", "search": "搜尋", @@ -35,7 +33,10 @@ "turn_off": "關閉", "turn_on": "開啟", "undo": "復原", - "yes": "是" + "yes": "是", + "preserve_current": "保持目前", + "replace_current": "替換目前", + "replace_json": "替換為 JSON" }, "add": { "new": "新增", @@ -231,11 +232,18 @@ "collections": "匯入組合", "curl": "匯入 cURL", "failed": "匯入失敗", - "from_gist": "從 Gist 匯入", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "從我的組合匯入", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "輸入 Gist URL", "json": "從 JSON 匯入", - "title": "匯入" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "匯入", + "from_gist": "從 Gist 匯入" }, "layout": { "column": "垂直布局", diff --git a/packages/hoppscotch-app/locales/uk.json b/packages/hoppscotch-app/locales/uk.json index 134f799aa..82b06805f 100644 --- a/packages/hoppscotch-app/locales/uk.json +++ b/packages/hoppscotch-app/locales/uk.json @@ -16,13 +16,11 @@ "label": "Мітка", "learn_more": "Вчи більше", "more": "Більше", + "less": "Less", "new": "Новий", "no": "Немає", - "preserve_current": "Зберегти струм", "prettify": "Прикрасьте", "remove": "Видалити", - "replace_current": "Замінити струм", - "replace_json": "Замінити на JSON", "restore": "Відновлювати", "save": "Зберегти", "search": "Пошук", @@ -35,7 +33,10 @@ "turn_off": "Вимкнути", "turn_on": "Ввімкнути", "undo": "Скасувати", - "yes": "Так" + "yes": "Так", + "preserve_current": "Зберегти струм", + "replace_current": "Замінити струм", + "replace_json": "Замінити на JSON" }, "add": { "new": "Додати новий", @@ -231,11 +232,18 @@ "collections": "Імпортувати колекції", "curl": "Імпортувати cURL", "failed": "Не вдалося імпортувати", - "from_gist": "Імпорт з Gist", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Імпортувати з Моїх колекцій", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Введіть URL -адресу Gist", "json": "Імпорт із JSON", - "title": "Імпорт" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "Імпорт", + "from_gist": "Імпорт з Gist" }, "layout": { "column": "Vertical layout", diff --git a/packages/hoppscotch-app/locales/vi.json b/packages/hoppscotch-app/locales/vi.json index 9db969fa0..6ce636f00 100644 --- a/packages/hoppscotch-app/locales/vi.json +++ b/packages/hoppscotch-app/locales/vi.json @@ -16,13 +16,11 @@ "label": "Nhãn", "learn_more": "Tìm hiểu thêm", "more": "Hơn", + "less": "Less", "new": "Mới mẻ", "no": "Không", - "preserve_current": "Bảo tồn hiện tại", "prettify": "Kiểm tra trước", "remove": "Tẩy", - "replace_current": "Thay thế hiện tại", - "replace_json": "Thay thế bằng JSON", "restore": "Khôi phục", "save": "Cứu", "search": "Tìm kiếm", @@ -35,7 +33,10 @@ "turn_off": "Tắt", "turn_on": "Bật", "undo": "Hoàn tác", - "yes": "đúng" + "yes": "đúng", + "preserve_current": "Bảo tồn hiện tại", + "replace_current": "Thay thế hiện tại", + "replace_json": "Thay thế bằng JSON" }, "add": { "new": "Thêm mới", @@ -231,11 +232,18 @@ "collections": "Nhập bộ sưu tập", "curl": "Nhập cURL", "failed": "Nhập không thành công", - "from_gist": "Nhập từ Gist", + "gist": "Import from Gist", + "gist_description": "Import a Gist", + "from_insomnia": "Import from Insomnia", "from_my_collections": "Nhập từ Bộ sưu tập của tôi", + "from_openapi": "Import from OpenAPI", + "from_postman": "Import from Postman", + "from_url": "Import from URL", "gist_url": "Nhập URL Gist", "json": "Nhập từ JSON", - "title": "Nhập khẩu" + "json_description": "Import collections from a Hoppscotch Collections JSON file", + "title": "Nhập khẩu", + "from_gist": "Nhập từ Gist" }, "layout": { "column": "Vertical layout", diff --git a/packages/hoppscotch-app/newstore/collections.ts b/packages/hoppscotch-app/newstore/collections.ts index 5147cd8b1..cb1fe6009 100644 --- a/packages/hoppscotch-app/newstore/collections.ts +++ b/packages/hoppscotch-app/newstore/collections.ts @@ -694,6 +694,10 @@ export function removeRESTCollection(collectionIndex: number) { }) } +export function getRESTCollection(collectionIndex: number) { + return restCollectionStore.value.state[collectionIndex] +} + export function editRESTCollection( collectionIndex: number, collection: Collection diff --git a/packages/hoppscotch-app/package.json b/packages/hoppscotch-app/package.json index 5cde9e1c7..47ad8154c 100644 --- a/packages/hoppscotch-app/package.json +++ b/packages/hoppscotch-app/package.json @@ -33,6 +33,7 @@ "gql-codegen": "graphql-codegen --config gql-codegen.yml" }, "dependencies": { + "@apidevtools/swagger-parser": "^10.0.3", "@apollo/client": "^3.5.6", "@codemirror/autocomplete": "^0.19.10", "@codemirror/closebrackets": "^0.19.0", @@ -82,13 +83,17 @@ "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", "lodash": "^4.17.21", "mustache": "^4.2.0", "node-interval-tree": "^1.3.3", "nuxt": "^2.15.8", + "openapi-types": "^10.0.0", "paho-mqtt": "^1.1.0", + "postman-collection": "^4.1.1", "rxjs": "^7.5.1", "socket.io-client-v2": "npm:socket.io-client@^2.4.0", "socket.io-client-v3": "npm:socket.io-client@^3.1.3", @@ -139,6 +144,7 @@ "@types/har-format": "^1.2.8", "@types/httpsnippet": "^1.23.1", "@types/lodash": "^4.14.178", + "@types/postman-collection": "^3.5.7", "@types/splitpanes": "^2.2.1", "@types/uuid": "^8.3.4", "@urql/devtools": "^2.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bb339f483..dac26d4c4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,9 +13,9 @@ importers: husky: 7.0.4 lint-staged: 12.1.7 devDependencies: - '@commitlint/cli': 16.0.2_@types+node@17.0.8 + '@commitlint/cli': 16.0.2_@types+node@17.0.9 '@commitlint/config-conventional': 16.0.0 - '@types/node': 17.0.8 + '@types/node': 17.0.9 packages/codemirror-lang-graphql: specifiers: @@ -35,13 +35,14 @@ importers: devDependencies: '@lezer/generator': 0.15.2 mocha: 9.1.3 - rollup: 2.63.0 - rollup-plugin-dts: 4.1.0_rollup@2.63.0+typescript@4.5.4 - rollup-plugin-ts: 2.0.5_rollup@2.63.0+typescript@4.5.4 + rollup: 2.64.0 + rollup-plugin-dts: 4.1.0_rollup@2.64.0+typescript@4.5.4 + rollup-plugin-ts: 2.0.5_rollup@2.64.0+typescript@4.5.4 typescript: 4.5.4 packages/hoppscotch-app: specifiers: + '@apidevtools/swagger-parser': ^10.0.3 '@apollo/client': ^3.5.6 '@babel/core': ^7.16.7 '@babel/preset-env': ^7.16.7 @@ -105,6 +106,7 @@ importers: '@types/har-format': ^1.2.8 '@types/httpsnippet': ^1.23.1 '@types/lodash': ^4.14.178 + '@types/postman-collection': ^3.5.7 '@types/splitpanes': ^2.2.1 '@types/uuid': ^8.3.4 '@urql/core': ^2.3.6 @@ -134,9 +136,11 @@ 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.7 jest-serializer-vue: ^2.0.2 + js-yaml: ^4.1.0 json-loader: ^0.5.7 lodash: ^4.17.21 mustache: ^4.2.0 @@ -144,7 +148,9 @@ importers: npm-run-all: ^4.1.5 nuxt: ^2.15.8 nuxt-windicss: ^2.2.2 + openapi-types: ^10.0.0 paho-mqtt: ^1.1.0 + postman-collection: ^4.1.1 prettier: ^2.5.1 raw-loader: ^4.0.2 rxjs: ^7.5.1 @@ -177,8 +183,9 @@ importers: worker-loader: ^3.0.8 yargs-parser: ^21.0.0 dependencies: + '@apidevtools/swagger-parser': 10.0.3_openapi-types@10.0.0 '@apollo/client': 3.5.6_f3f7eb5e21785ef7d5faca94c1a68824 - '@codemirror/autocomplete': 0.19.10 + '@codemirror/autocomplete': 0.19.12 '@codemirror/closebrackets': 0.19.0 '@codemirror/commands': 0.19.6 '@codemirror/comment': 0.19.0 @@ -186,7 +193,7 @@ importers: '@codemirror/gutter': 0.19.9 '@codemirror/highlight': 0.19.7 '@codemirror/history': 0.19.2 - '@codemirror/lang-javascript': 0.19.4 + '@codemirror/lang-javascript': 0.19.6 '@codemirror/lang-json': 0.19.1 '@codemirror/language': 0.19.7 '@codemirror/legacy-modes': 0.19.0 @@ -218,21 +225,25 @@ importers: axios: 0.24.0 core-js: 3.20.2 esprima: 4.0.1 - firebase: 9.6.2 - fp-ts: 2.11.6 + firebase: 9.6.3 + fp-ts: 2.11.8 fuse.js: 6.5.3 graphql: 15.7.2 - graphql-language-service-interface: 2.9.1_ff6e0ca8cd9cd37aa1844e8a89a000d0 - graphql-language-service-parser: 1.10.4_ff6e0ca8cd9cd37aa1844e8a89a000d0 + graphql-language-service-interface: 2.9.1_8f91b510d830ea79a04e3946bbf71dff + graphql-language-service-parser: 1.10.4_8f91b510d830ea79a04e3946bbf71dff graphql-tag: 2.12.6_graphql@15.7.2 httpsnippet: 2.0.0 - io-ts: 2.2.16_fp-ts@2.11.6 + insomnia-importers: 2.4.1_openapi-types@10.0.0 + io-ts: 2.2.16_fp-ts@2.11.8 + js-yaml: 4.1.0 json-loader: 0.5.7 lodash: 4.17.21 mustache: 4.2.0 node-interval-tree: 1.3.3 nuxt: 2.15.8_typescript@4.5.4 + openapi-types: 10.0.0 paho-mqtt: 1.1.0 + postman-collection: 4.1.1 rxjs: 7.5.1 socket.io-client-v2: /socket.io-client/2.4.0 socket.io-client-v3: /socket.io-client/3.1.3 @@ -255,14 +266,14 @@ importers: '@babel/core': 7.16.7 '@babel/preset-env': 7.16.7_@babel+core@7.16.7 '@graphql-codegen/add': 3.1.1_graphql@15.7.2 - '@graphql-codegen/cli': 2.3.1_ff6e0ca8cd9cd37aa1844e8a89a000d0 + '@graphql-codegen/cli': 2.3.1_8f91b510d830ea79a04e3946bbf71dff '@graphql-codegen/typed-document-node': 2.2.2_graphql@15.7.2 '@graphql-codegen/typescript': 2.4.2_graphql@15.7.2 '@graphql-codegen/typescript-operations': 2.2.2_graphql@15.7.2 '@graphql-codegen/typescript-urql-graphcache': 2.2.3_0078faba29fbf2fd40f25b4af19ce6b4 '@graphql-codegen/urql-introspection': 2.1.1_graphql@15.7.2 '@graphql-typed-document-node/core': 3.1.1_graphql@15.7.2 - '@nuxt/types': 2.15.8_sass@1.47.0 + '@nuxt/types': 2.15.8_sass@1.48.0 '@nuxt/typescript-build': 2.1.0_@nuxt+types@2.15.8+eslint@8.6.0 '@nuxtjs/color-mode': 2.1.1 '@nuxtjs/dotenv': 1.4.1 @@ -273,7 +284,7 @@ importers: '@nuxtjs/pwa': 3.3.5 '@nuxtjs/stylelint-module': 4.1.0_stylelint@14.2.0 '@nuxtjs/svg': 0.3.0 - '@relmify/jest-fp-ts': 1.1.1_fp-ts@2.11.6+io-ts@2.2.16 + '@relmify/jest-fp-ts': 1.1.1_fp-ts@2.11.8+io-ts@2.2.16 '@sentry/browser': 6.16.1 '@testing-library/jest-dom': 5.16.1 '@types/codemirror': 5.60.5 @@ -282,6 +293,7 @@ importers: '@types/har-format': 1.2.8 '@types/httpsnippet': 1.23.1 '@types/lodash': 4.14.178 + '@types/postman-collection': 3.5.7 '@types/splitpanes': 2.2.1 '@types/uuid': 8.3.4 '@urql/devtools': 2.0.3_@urql+core@2.3.6+graphql@15.7.2 @@ -301,8 +313,8 @@ importers: nuxt-windicss: 2.2.2 prettier: 2.5.1 raw-loader: 4.0.2 - sass: 1.47.0 - sass-loader: 10.2.0_sass@1.47.0 + sass: 1.48.0 + sass-loader: 10.2.0_sass@1.48.0 stylelint: 14.2.0 stylelint-config-prettier: 9.0.3_stylelint@14.2.0 stylelint-config-standard: 24.0.0_stylelint@14.2.0 @@ -345,21 +357,21 @@ importers: ts-jest: ^27.1.2 typescript: ^4.5.4 dependencies: - fp-ts: 2.11.6 + fp-ts: 2.11.8 lodash: 4.17.21 quickjs-emscripten: 0.15.0 devDependencies: '@digitak/esrun': 3.1.2 - '@relmify/jest-fp-ts': 1.1.1_fp-ts@2.11.6+io-ts@2.2.16 + '@relmify/jest-fp-ts': 1.1.1_fp-ts@2.11.8+io-ts@2.2.16 '@types/jest': 27.4.0 '@types/lodash': 4.14.178 - '@types/node': 17.0.8 - '@typescript-eslint/eslint-plugin': 5.9.0_bd2fd93dbcc607ad2f21b784bccfe0c8 - '@typescript-eslint/parser': 5.9.0_eslint@8.6.0+typescript@4.5.4 + '@types/node': 17.0.9 + '@typescript-eslint/eslint-plugin': 5.9.1_b7b2e42b32ee097737cd3e626b10847b + '@typescript-eslint/parser': 5.9.1_eslint@8.6.0+typescript@4.5.4 eslint: 8.6.0 eslint-config-prettier: 8.3.0_eslint@8.6.0 eslint-plugin-prettier: 4.0.0_1c588f61426b1faf18812943f1678311 - io-ts: 2.2.16_fp-ts@2.11.6 + io-ts: 2.2.16_fp-ts@2.11.8 jest: 27.4.7 prettier: 2.5.1 ts-jest: 27.1.2_9364f2ad0b7b67f00a4d081c662c6871 @@ -372,6 +384,52 @@ packages: dependencies: '@types/throttle-debounce': 2.1.0 + /@apidevtools/json-schema-ref-parser/9.0.9: + resolution: {integrity: sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==} + dependencies: + '@jsdevtools/ono': 7.1.3 + '@types/json-schema': 7.0.9 + call-me-maybe: 1.0.1 + js-yaml: 4.1.0 + dev: false + + /@apidevtools/openapi-schemas/2.1.0: + resolution: {integrity: sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==} + engines: {node: '>=10'} + dev: false + + /@apidevtools/swagger-methods/3.0.2: + 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: + 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: 5.0.2 + dev: false + /@apollo/client/3.5.6_f3f7eb5e21785ef7d5faca94c1a68824: resolution: {integrity: sha512-XHoouuEJ4L37mtfftcHHO1caCRrKKAofAwqRoq28UQIPMJk+e7n3X9OtRRNXKk/9tmhNkwelSary+EilfPwI7A==} peerDependencies: @@ -1771,13 +1829,13 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@codemirror/autocomplete/0.19.10: - resolution: {integrity: sha512-8mgT+cSVxIoV/AbfJ36+r06xykxpACmXoD8bbTNwnkrttTwLkugxUP2oFAxL7I+TGMwxkX3ZquroyWX0HFO9nQ==} + /@codemirror/autocomplete/0.19.12: + resolution: {integrity: sha512-zUQYo5gMdv7vhxlKoAY/vnNCGzlE9AU7+P649v3ovpQpoFdo3U1Nt01EJqFb4Sfaw6l1U/Elc9Iksd1lDy+MVw==} dependencies: '@codemirror/language': 0.19.7 '@codemirror/state': 0.19.6 '@codemirror/text': 0.19.5 - '@codemirror/tooltip': 0.19.10 + '@codemirror/tooltip': 0.19.12 '@codemirror/view': 0.19.39 '@lezer/common': 0.15.11 dev: false @@ -1833,9 +1891,9 @@ packages: resolution: {integrity: sha512-3W32hBCY0pbbv/xidismw+RDMKuIag+fo4kZIbD7WoRj+Ttcaxjf+vP6RttRHXLaaqbWh031lTeON8kMlDhMYw==} dependencies: '@codemirror/language': 0.19.7 - '@codemirror/rangeset': 0.19.6 + '@codemirror/rangeset': 0.19.5 '@codemirror/state': 0.19.6 - '@codemirror/view': 0.19.39 + '@codemirror/view': 0.19.37 '@lezer/common': 0.15.11 style-mod: 4.0.0 dev: false @@ -1847,16 +1905,16 @@ packages: '@codemirror/view': 0.19.39 dev: false - /@codemirror/lang-javascript/0.19.4: - resolution: {integrity: sha512-oRANfqQH5XNcfr0Y9pIzAxqXldLmCLpklknODtmEAZ8wQNBiVmgIeLb3JXdOJ43iZWnnmetkDOctFy/N8KuD4Q==} + /@codemirror/lang-javascript/0.19.6: + resolution: {integrity: sha512-NgkoCIc3hdTNTBRIRuPqfUJ0WB798qEgwAgtjwYy6yoiK5CzbDS2z5CFW17h9RmaAx6t1m64iY2CZ3tC7r15Gw==} dependencies: - '@codemirror/autocomplete': 0.19.10 + '@codemirror/autocomplete': 0.19.12 '@codemirror/highlight': 0.19.7 '@codemirror/language': 0.19.7 '@codemirror/lint': 0.19.3 '@codemirror/state': 0.19.6 '@codemirror/view': 0.19.39 - '@lezer/javascript': 0.15.2 + '@lezer/javascript': 0.15.1 dev: false /@codemirror/lang-json/0.19.1: @@ -1872,7 +1930,7 @@ packages: dependencies: '@codemirror/state': 0.19.6 '@codemirror/text': 0.19.5 - '@codemirror/view': 0.19.39 + '@codemirror/view': 0.19.37 '@lezer/common': 0.15.11 '@lezer/lr': 0.15.5 dev: false @@ -1936,8 +1994,8 @@ packages: '@codemirror/state': 0.19.6 dev: false - /@codemirror/rangeset/0.19.6: - resolution: {integrity: sha512-wYtgGnW2Jtrh2nj7vpcBoEZib+jfyilrLN6w7YMTzzSRN8xXhYRorOUg4VQIa1JwFcMQrjSCkIdqXsDqOX1cYg==} + /@codemirror/rangeset/0.19.5: + resolution: {integrity: sha512-L3b+RIwIRKOJ3pJLOtpkxCUjGnxZKFyPb0CjYWKnVLuzEIaEExWWK7sp6rsejxOy8RjYzfCHlFhYB4UdQN7brw==} dependencies: '@codemirror/state': 0.19.6 dev: false @@ -1989,24 +2047,41 @@ packages: '@codemirror/view': 0.19.39 dev: false - /@codemirror/view/0.19.39: - resolution: {integrity: sha512-ol4smHAwhWkW8p1diPZiZkLZVmKybKhQigwyrgdF7k1UFNY+/KDH4w2xic8JQXxX+v0ppMsoNf11C+afKJze5g==} + /@codemirror/tooltip/0.19.12: + resolution: {integrity: sha512-EjF00T/wo+3cKGX1OOiBJF4wgDqtErzKuEqcBQsB2M2kX2O8slzQ0Z0+l5nV2JCe8RpEsz+rWGikjghasokRmw==} dependencies: - '@codemirror/rangeset': 0.19.6 + '@codemirror/state': 0.19.6 + '@codemirror/view': 0.19.39 + dev: false + + /@codemirror/view/0.19.37: + resolution: {integrity: sha512-SLuLx9p0O1ZHXLehvl5MwSvUrQRcsNGemzTgJ0zRajmc3BBsNigI1PXxdo7tvBhO5DcAzRRBXoke9DZFUR6Qqg==} + dependencies: + '@codemirror/rangeset': 0.19.5 '@codemirror/state': 0.19.6 '@codemirror/text': 0.19.5 style-mod: 4.0.0 w3c-keyname: 2.2.4 dev: false - /@commitlint/cli/16.0.2_@types+node@17.0.8: + /@codemirror/view/0.19.39: + resolution: {integrity: sha512-ol4smHAwhWkW8p1diPZiZkLZVmKybKhQigwyrgdF7k1UFNY+/KDH4w2xic8JQXxX+v0ppMsoNf11C+afKJze5g==} + dependencies: + '@codemirror/rangeset': 0.19.5 + '@codemirror/state': 0.19.6 + '@codemirror/text': 0.19.5 + style-mod: 4.0.0 + w3c-keyname: 2.2.4 + dev: false + + /@commitlint/cli/16.0.2_@types+node@17.0.9: resolution: {integrity: sha512-Jt7iaBjoLGC5Nq4dHPTvTYnqPGkElFPBtTXTvBpTgatZApczyjI2plE0oG4GYWPp1suHIS/VdVDOMpPZjGVusg==} engines: {node: '>=v12'} hasBin: true dependencies: '@commitlint/format': 16.0.0 '@commitlint/lint': 16.0.0 - '@commitlint/load': 16.0.0_@types+node@17.0.8 + '@commitlint/load': 16.0.0_@types+node@17.0.9 '@commitlint/read': 16.0.0 '@commitlint/types': 16.0.0 lodash: 4.17.21 @@ -2073,7 +2148,7 @@ packages: '@commitlint/types': 16.0.0 dev: true - /@commitlint/load/16.0.0_@types+node@17.0.8: + /@commitlint/load/16.0.0_@types+node@17.0.9: resolution: {integrity: sha512-7WhrGCkP6K/XfjBBguLkkI2XUdiiIyMGlNsSoSqgRNiD352EiffhFEApMy1/XOU+viwBBm/On0n5p0NC7e9/4A==} engines: {node: '>=v12'} dependencies: @@ -2083,7 +2158,7 @@ packages: '@commitlint/types': 16.0.0 chalk: 4.1.2 cosmiconfig: 7.0.1 - cosmiconfig-typescript-loader: 1.0.3_faf01e1d5a40372a98081522dcafc186 + cosmiconfig-typescript-loader: 1.0.2_58ff8c2ecf784f4683a8548a58a2b611 lodash: 4.17.21 resolve-from: 5.0.0 typescript: 4.5.4 @@ -2217,14 +2292,14 @@ packages: - supports-color dev: true - /@firebase/analytics-compat/0.1.6_66bfbf359ad9540534d7d3b4d84fd1fe: + /@firebase/analytics-compat/0.1.6_fb07e6c78a9212d45bbd091b58e5ee0a: resolution: {integrity: sha512-xvdp4/zwOG1f+v9JSpfCQoPJ98HcJR42cEnZ9pRIQLmUy7L7QceIuaF3m+zVtoqa4agBQnJ1dhe58FshOFKOPw==} peerDependencies: '@firebase/app-compat': 0.x dependencies: - '@firebase/analytics': 0.7.5_@firebase+app@0.7.12 + '@firebase/analytics': 0.7.5_@firebase+app@0.7.13 '@firebase/analytics-types': 0.7.0 - '@firebase/app-compat': 0.1.13 + '@firebase/app-compat': 0.1.14 '@firebase/component': 0.5.10 '@firebase/util': 1.4.3 tslib: 2.3.1 @@ -2236,26 +2311,26 @@ packages: resolution: {integrity: sha512-DNE2Waiwy5+zZnCfintkDtBfaW6MjIG883474v6Z0K1XZIvl76cLND4iv0YUb48leyF+PJK1KO2XrgHb/KpmhQ==} dev: false - /@firebase/analytics/0.7.5_@firebase+app@0.7.12: + /@firebase/analytics/0.7.5_@firebase+app@0.7.13: resolution: {integrity: sha512-vrKDh84hBbKPJaU2oAZDewyC79D8opJOQZ5AU3BXBBwEfRjKt3C3jj/Vl6aJUme+RKXlomTw3xcHIOoPzTgBVA==} peerDependencies: '@firebase/app': 0.x dependencies: - '@firebase/app': 0.7.12 + '@firebase/app': 0.7.13 '@firebase/component': 0.5.10 - '@firebase/installations': 0.5.5_@firebase+app@0.7.12 + '@firebase/installations': 0.5.5_@firebase+app@0.7.13 '@firebase/logger': 0.3.2 '@firebase/util': 1.4.3 tslib: 2.3.1 dev: false - /@firebase/app-check-compat/0.2.3_66bfbf359ad9540534d7d3b4d84fd1fe: + /@firebase/app-check-compat/0.2.3_fb07e6c78a9212d45bbd091b58e5ee0a: resolution: {integrity: sha512-e2mKkuecr1XgsyTGXKfg83PcV1UdT7+tXYoHIjeBeLrP5gGL4OQbWCzzt6uVQpk1gmJbUktje/rd6Et6cdL+wg==} peerDependencies: '@firebase/app-compat': 0.x dependencies: - '@firebase/app-check': 0.5.3_@firebase+app@0.7.12 - '@firebase/app-compat': 0.1.13 + '@firebase/app-check': 0.5.3_@firebase+app@0.7.13 + '@firebase/app-compat': 0.1.14 '@firebase/component': 0.5.10 '@firebase/logger': 0.3.2 '@firebase/util': 1.4.3 @@ -2268,22 +2343,22 @@ packages: resolution: {integrity: sha512-uZfn9s4uuRsaX5Lwx+gFP3B6YsyOKUE+Rqa6z9ojT4VSRAsZFko9FRn6OxQUA1z5t5d08fY4pf+/+Dkd5wbdbA==} dev: false - /@firebase/app-check/0.5.3_@firebase+app@0.7.12: + /@firebase/app-check/0.5.3_@firebase+app@0.7.13: resolution: {integrity: sha512-M2/UO5PgxHCl0wPYWGdF6lO8nqclwuRMCIrc+75xv3/Dr3hhUu4ztF5JNaAV5tktSCt1UrnASG+4rNVifCzSRw==} peerDependencies: '@firebase/app': 0.x dependencies: - '@firebase/app': 0.7.12 + '@firebase/app': 0.7.13 '@firebase/component': 0.5.10 '@firebase/logger': 0.3.2 '@firebase/util': 1.4.3 tslib: 2.3.1 dev: false - /@firebase/app-compat/0.1.13: - resolution: {integrity: sha512-K5eFU0bIbGTTRPihZEc1BtuOTwEtiKhu2tm4e+g9+c5cMSpJvr+GIQaN8A8SgDeqt13DP9lKqTic2NiG+6EQCw==} + /@firebase/app-compat/0.1.14: + resolution: {integrity: sha512-CvT7/TdfWNRudrExAyWiPcMVtaqljE4mch/KfmfSz1mGmK0j/y1DN6PDJ+NZxkI+Za+YRkOI55H6DdIBsYQ0Qg==} dependencies: - '@firebase/app': 0.7.12 + '@firebase/app': 0.7.13 '@firebase/component': 0.5.10 '@firebase/logger': 0.3.2 '@firebase/util': 1.4.3 @@ -2294,8 +2369,8 @@ packages: resolution: {integrity: sha512-6fbHQwDv2jp/v6bXhBw2eSRbNBpxHcd1NBF864UksSMVIqIyri9qpJB1Mn6sGZE+bnDsSQBC5j2TbMxYsJQkQg==} dev: false - /@firebase/app/0.7.12: - resolution: {integrity: sha512-eniX/KcMA/iTuRqdYvMuRaPj3DGxWdXa5r2tsmtLbx8HvdY/Wzq3H0p7fyapBRPsg0rO+t3xzWDVZ3Blq2xfCA==} + /@firebase/app/0.7.13: + resolution: {integrity: sha512-nMnz+lxASVZrWcAgLIgvs2QcsySjYvNpGjDeyhMzrbyBoBLgTux0cGWtm5RrJKx7arqueRpIihxcJtKAzCcIsw==} dependencies: '@firebase/component': 0.5.10 '@firebase/logger': 0.3.2 @@ -2303,13 +2378,13 @@ packages: tslib: 2.3.1 dev: false - /@firebase/auth-compat/0.2.5_044646557187b272223ee82a38083841: + /@firebase/auth-compat/0.2.5_fe4527455d92ca0ea89219dbc846622a: resolution: {integrity: sha512-Ft9PkmWOioxPMts6CMopN7sHpSXipQigOdm4BQ5HYTGHyLZpid2cj+2LxWsOYqQlhA1YBtzwE7sBRpV0W6bblQ==} peerDependencies: '@firebase/app-compat': 0.x dependencies: - '@firebase/app-compat': 0.1.13 - '@firebase/auth': 0.19.5_@firebase+app@0.7.12 + '@firebase/app-compat': 0.1.14 + '@firebase/auth': 0.19.5_@firebase+app@0.7.13 '@firebase/auth-types': 0.11.0_921e789eab5feb003723e0d148cd47c5 '@firebase/component': 0.5.10 '@firebase/util': 1.4.3 @@ -2343,12 +2418,12 @@ packages: '@firebase/util': 1.4.3 dev: false - /@firebase/auth/0.19.5_@firebase+app@0.7.12: + /@firebase/auth/0.19.5_@firebase+app@0.7.13: resolution: {integrity: sha512-3+9XUnxaNb+ck6yULtEwOZbikWpL9KXuNLR34GxRv3mpOKD3uNbbONT149zMo3C6asI1bdv4+hCM78aS8VhZ0w==} peerDependencies: '@firebase/app': 0.x dependencies: - '@firebase/app': 0.7.12 + '@firebase/app': 0.7.13 '@firebase/component': 0.5.10 '@firebase/logger': 0.3.2 '@firebase/util': 1.4.3 @@ -2367,12 +2442,12 @@ packages: tslib: 2.3.1 dev: false - /@firebase/database-compat/0.1.5_65170875eef5feac1c23e809c425b114: + /@firebase/database-compat/0.1.5_d22b532237d23bed2b940d51687d062e: resolution: {integrity: sha512-UVxkHL24sZfsjsjs+yiKIdYdrWXHrLxSFCYNdwNXDlTkAc0CWP9AAY3feLhBVpUKk+4Cj0I4sGnyIm2C1ltAYg==} peerDependencies: '@firebase/app-compat': 0.x dependencies: - '@firebase/app-compat': 0.1.13 + '@firebase/app-compat': 0.1.14 '@firebase/component': 0.5.10 '@firebase/database': 0.12.5_@firebase+app-types@0.7.0 '@firebase/database-types': 0.9.4 @@ -2403,14 +2478,14 @@ packages: - '@firebase/app-types' dev: false - /@firebase/firestore-compat/0.1.11_044646557187b272223ee82a38083841: - resolution: {integrity: sha512-Q1RU93WbjZO/kplZ+eq8U8svif9EE8G8Qbe15Qij9d9PU9u9lGqxUDEL/h4DEL3RFgBfklexpRb64pZ4iemZfg==} + /@firebase/firestore-compat/0.1.12_fe4527455d92ca0ea89219dbc846622a: + resolution: {integrity: sha512-+8FwiYctRc5Vwa59iGD6IdTNCKqgZYB6yl/PvDJfi+WNhJbMznpHYWBI+urNGHAXBpHRDCwJS08LVsVTsBsS0w==} peerDependencies: '@firebase/app-compat': 0.x dependencies: - '@firebase/app-compat': 0.1.13 + '@firebase/app-compat': 0.1.14 '@firebase/component': 0.5.10 - '@firebase/firestore': 3.4.2_@firebase+app@0.7.12 + '@firebase/firestore': 3.4.3_@firebase+app@0.7.13 '@firebase/firestore-types': 2.5.0_921e789eab5feb003723e0d148cd47c5 '@firebase/util': 1.4.3 tslib: 2.3.1 @@ -2429,31 +2504,31 @@ packages: '@firebase/util': 1.4.3 dev: false - /@firebase/firestore/3.4.2_@firebase+app@0.7.12: - resolution: {integrity: sha512-i9tzocEnMagFEB9MLilhmNlOzG8qz9OMjMF85MGV6kMh2jxHRXGUlcDzjPOBthmlBoGKPHkB/3ZCZvxMsatDSw==} + /@firebase/firestore/3.4.3_@firebase+app@0.7.13: + resolution: {integrity: sha512-mUZY/aTKpliCyoYs7/64olumeTbM42axu2u8QDl28AX+4q7vHGIiks9+H2gaqz/zgWODXiQeBmJlHCb1RlJGhQ==} engines: {node: '>=10.10.0'} peerDependencies: '@firebase/app': 0.x dependencies: - '@firebase/app': 0.7.12 + '@firebase/app': 0.7.13 '@firebase/component': 0.5.10 '@firebase/logger': 0.3.2 '@firebase/util': 1.4.3 '@firebase/webchannel-wrapper': 0.6.1 - '@grpc/grpc-js': 1.5.0 - '@grpc/proto-loader': 0.6.9 + '@grpc/grpc-js': 1.4.4 + '@grpc/proto-loader': 0.6.7 node-fetch: 2.6.5 tslib: 2.3.1 dev: false - /@firebase/functions-compat/0.1.8_044646557187b272223ee82a38083841: + /@firebase/functions-compat/0.1.8_fe4527455d92ca0ea89219dbc846622a: resolution: {integrity: sha512-9nB6uPzSbnzOE+V7USbHsQxze/xeJC5WTgBOhyHA8eEU/z5mBGfD1eV31QbI7mbSFL8m4N8F5cidDw3zB1G/Jw==} peerDependencies: '@firebase/app-compat': 0.x dependencies: - '@firebase/app-compat': 0.1.13 + '@firebase/app-compat': 0.1.14 '@firebase/component': 0.5.10 - '@firebase/functions': 0.7.7_3daa4562355d208034ffb80fd170bb9f + '@firebase/functions': 0.7.7_2e05d680a83d9c95188fdb7a3a80f093 '@firebase/functions-types': 0.5.0 '@firebase/util': 1.4.3 tslib: 2.3.1 @@ -2466,12 +2541,12 @@ packages: resolution: {integrity: sha512-qza0M5EwX+Ocrl1cYI14zoipUX4gI/Shwqv0C1nB864INAD42Dgv4v94BCyxGHBg2kzlWy8PNafdP7zPO8aJQA==} dev: false - /@firebase/functions/0.7.7_3daa4562355d208034ffb80fd170bb9f: + /@firebase/functions/0.7.7_2e05d680a83d9c95188fdb7a3a80f093: resolution: {integrity: sha512-e944UigvrqwGHODww8QU1oaZ+KFdqcf/hmf5L2vEakQEIOjCRy6Kal8xAlYpaP4QbC1DEUfY4qC9QoFUErI2fQ==} peerDependencies: '@firebase/app': 0.x dependencies: - '@firebase/app': 0.7.12 + '@firebase/app': 0.7.13 '@firebase/app-check-interop-types': 0.1.0 '@firebase/auth-interop-types': 0.1.6_921e789eab5feb003723e0d148cd47c5 '@firebase/component': 0.5.10 @@ -2483,12 +2558,12 @@ packages: - '@firebase/app-types' dev: false - /@firebase/installations/0.5.5_@firebase+app@0.7.12: + /@firebase/installations/0.5.5_@firebase+app@0.7.13: resolution: {integrity: sha512-mYWUxYXPlxcR0YOikPw88TjIS2NK35Z0ivkJL0+FevNnVIsqwGSe12AtPlZB/kzjB0RtHoKW+cWC0V9xiTgJ3Q==} peerDependencies: '@firebase/app': 0.x dependencies: - '@firebase/app': 0.7.12 + '@firebase/app': 0.7.13 '@firebase/component': 0.5.10 '@firebase/util': 1.4.3 idb: 3.0.2 @@ -2501,14 +2576,14 @@ packages: tslib: 2.3.1 dev: false - /@firebase/messaging-compat/0.1.5_66bfbf359ad9540534d7d3b4d84fd1fe: - resolution: {integrity: sha512-orEhL8aWFsJp1ULyvh9IDBo7YEVnmc+s8GG8J0Szj4BlWjjhjGvtaUCN/hmfWfpp+tg3yWN1b2bjKl5m8YRZmQ==} + /@firebase/messaging-compat/0.1.6_fb07e6c78a9212d45bbd091b58e5ee0a: + resolution: {integrity: sha512-VzNM5ew8YAH7tzyukY0QqrCKdmaIe1FsWJSNPWcfzMNri8mpfKALIjeFzle+6DrRWZweFsp8ejvcvvulIDILGw==} peerDependencies: '@firebase/app-compat': 0.x dependencies: - '@firebase/app-compat': 0.1.13 + '@firebase/app-compat': 0.1.14 '@firebase/component': 0.5.10 - '@firebase/messaging': 0.9.5_@firebase+app@0.7.12 + '@firebase/messaging': 0.9.6_@firebase+app@0.7.13 '@firebase/util': 1.4.3 tslib: 2.3.1 transitivePeerDependencies: @@ -2519,29 +2594,29 @@ packages: resolution: {integrity: sha512-DbvUl/rXAZpQeKBnwz0NYY5OCqr2nFA0Bj28Fmr3NXGqR4PAkfTOHuQlVtLO1Nudo3q0HxAYLa68ZDAcuv2uKQ==} dev: false - /@firebase/messaging/0.9.5_@firebase+app@0.7.12: - resolution: {integrity: sha512-Q0oOEFGvcINTOfW/fa27hFT74fvFOJd0D0yaC4C6uWBCyLwHLN4va+lG8fQkos8XbSMZdnalirRYXDgcFCUebQ==} + /@firebase/messaging/0.9.6_@firebase+app@0.7.13: + resolution: {integrity: sha512-weDGzgU0MNtC6FCFJu/AW+pXbuX/YasHqR42NcLyoHNL8EgjXLPC0EYeMi7B8dY7MCsbc5lbPtqiveOP97L1jQ==} peerDependencies: '@firebase/app': 0.x dependencies: - '@firebase/app': 0.7.12 + '@firebase/app': 0.7.13 '@firebase/component': 0.5.10 - '@firebase/installations': 0.5.5_@firebase+app@0.7.12 + '@firebase/installations': 0.5.5_@firebase+app@0.7.13 '@firebase/messaging-interop-types': 0.1.0 '@firebase/util': 1.4.3 idb: 3.0.2 tslib: 2.3.1 dev: false - /@firebase/performance-compat/0.1.5_66bfbf359ad9540534d7d3b4d84fd1fe: + /@firebase/performance-compat/0.1.5_fb07e6c78a9212d45bbd091b58e5ee0a: resolution: {integrity: sha512-s9mqR0GXJaqvIZD/GsshacpKOGa3NP6Yht33mNEtpL7ERqj35mvD1CBoUwH52eMYAaxlQd9y9JrphQgK3EmWWw==} peerDependencies: '@firebase/app-compat': 0.x dependencies: - '@firebase/app-compat': 0.1.13 + '@firebase/app-compat': 0.1.14 '@firebase/component': 0.5.10 '@firebase/logger': 0.3.2 - '@firebase/performance': 0.5.5_@firebase+app@0.7.12 + '@firebase/performance': 0.5.5_@firebase+app@0.7.13 '@firebase/performance-types': 0.1.0 '@firebase/util': 1.4.3 tslib: 2.3.1 @@ -2553,14 +2628,14 @@ packages: resolution: {integrity: sha512-6p1HxrH0mpx+622Ql6fcxFxfkYSBpE3LSuwM7iTtYU2nw91Hj6THC8Bc8z4nboIq7WvgsT/kOTYVVZzCSlXl8w==} dev: false - /@firebase/performance/0.5.5_@firebase+app@0.7.12: + /@firebase/performance/0.5.5_@firebase+app@0.7.13: resolution: {integrity: sha512-eA8mEKVnyY64fwAKxHbJF5t1hNkdR0EZVib0LfEWl/2elPmFcjik097hqLHzdFE88JYCxNGfFaSPo9Lbk/qe6A==} peerDependencies: '@firebase/app': 0.x dependencies: - '@firebase/app': 0.7.12 + '@firebase/app': 0.7.13 '@firebase/component': 0.5.10 - '@firebase/installations': 0.5.5_@firebase+app@0.7.12 + '@firebase/installations': 0.5.5_@firebase+app@0.7.13 '@firebase/logger': 0.3.2 '@firebase/util': 1.4.3 tslib: 2.3.1 @@ -2574,15 +2649,15 @@ packages: whatwg-fetch: 2.0.4 dev: false - /@firebase/remote-config-compat/0.1.5_66bfbf359ad9540534d7d3b4d84fd1fe: + /@firebase/remote-config-compat/0.1.5_fb07e6c78a9212d45bbd091b58e5ee0a: resolution: {integrity: sha512-bgpmrCGyOj46c0xNFvivcXRHlaVkbt4mX2etbF9s6jaOILPd4rBHIfAiBpKL64GGwTkrOjWO9/HZun4I01gbpg==} peerDependencies: '@firebase/app-compat': 0.x dependencies: - '@firebase/app-compat': 0.1.13 + '@firebase/app-compat': 0.1.14 '@firebase/component': 0.5.10 '@firebase/logger': 0.3.2 - '@firebase/remote-config': 0.3.4_@firebase+app@0.7.12 + '@firebase/remote-config': 0.3.4_@firebase+app@0.7.13 '@firebase/remote-config-types': 0.2.0 '@firebase/util': 1.4.3 tslib: 2.3.1 @@ -2594,27 +2669,27 @@ packages: resolution: {integrity: sha512-hqK5sCPeZvcHQ1D6VjJZdW6EexLTXNMJfPdTwbD8NrXUw6UjWC4KWhLK/TSlL0QPsQtcKRkaaoP+9QCgKfMFPw==} dev: false - /@firebase/remote-config/0.3.4_@firebase+app@0.7.12: + /@firebase/remote-config/0.3.4_@firebase+app@0.7.13: resolution: {integrity: sha512-SLlyVVNJ6DnU1AOjNrmv5u9Fge7gUwZVooyxMIkaT3Lj9MBM5MwfJsoG3UyiV4l7yI0iPj34LuKPpMJXOOcs4w==} peerDependencies: '@firebase/app': 0.x dependencies: - '@firebase/app': 0.7.12 + '@firebase/app': 0.7.13 '@firebase/component': 0.5.10 - '@firebase/installations': 0.5.5_@firebase+app@0.7.12 + '@firebase/installations': 0.5.5_@firebase+app@0.7.13 '@firebase/logger': 0.3.2 '@firebase/util': 1.4.3 tslib: 2.3.1 dev: false - /@firebase/storage-compat/0.1.9_044646557187b272223ee82a38083841: + /@firebase/storage-compat/0.1.9_fe4527455d92ca0ea89219dbc846622a: resolution: {integrity: sha512-FwSNw1FMH8Qk9l+nDmlamesEFVjOfmWO4B2BV4l3YRn5ibvxIvBqRQZP8TGUknHCWKM1b7dMq3C19cVxeJ77VQ==} peerDependencies: '@firebase/app-compat': 0.x dependencies: - '@firebase/app-compat': 0.1.13 + '@firebase/app-compat': 0.1.14 '@firebase/component': 0.5.10 - '@firebase/storage': 0.9.1_@firebase+app@0.7.12 + '@firebase/storage': 0.9.1_@firebase+app@0.7.13 '@firebase/storage-types': 0.6.0_921e789eab5feb003723e0d148cd47c5 '@firebase/util': 1.4.3 tslib: 2.3.1 @@ -2633,12 +2708,12 @@ packages: '@firebase/util': 1.4.3 dev: false - /@firebase/storage/0.9.1_@firebase+app@0.7.12: + /@firebase/storage/0.9.1_@firebase+app@0.7.13: resolution: {integrity: sha512-IMPZ21Mm05R9GKTgiiMpbata0tgzQTtZ2YMbVReSTx16GJTIpadXpjFzxhJMjVi/7Wq57LnSxsg9fe56IBSacw==} peerDependencies: '@firebase/app': 0.x dependencies: - '@firebase/app': 0.7.12 + '@firebase/app': 0.7.13 '@firebase/component': 0.5.10 '@firebase/util': 1.4.3 node-fetch: 2.6.5 @@ -2669,7 +2744,7 @@ packages: tslib: 2.3.1 dev: true - /@graphql-codegen/cli/2.3.1_ff6e0ca8cd9cd37aa1844e8a89a000d0: + /@graphql-codegen/cli/2.3.1_8f91b510d830ea79a04e3946bbf71dff: resolution: {integrity: sha512-xMSvYqFtnRXOp/sVJSyqiFTm70X8ouLXiq5o/R/D3yQtA6NNudAC+Q4oxg9/LZKnRDL6pehwdC8CNnQk0Tf7Sw==} hasBin: true peerDependencies: @@ -2684,8 +2759,8 @@ packages: '@graphql-tools/graphql-file-loader': 7.3.3_graphql@15.7.2 '@graphql-tools/json-file-loader': 7.3.3_graphql@15.7.2 '@graphql-tools/load': 7.5.0_graphql@15.7.2 - '@graphql-tools/prisma-loader': 7.1.1_d953db9ea51e310c6c117ebb182bd311 - '@graphql-tools/url-loader': 7.7.0_d953db9ea51e310c6c117ebb182bd311 + '@graphql-tools/prisma-loader': 7.1.1_bd0b9b855776b637cd61b3759b357e33 + '@graphql-tools/url-loader': 7.7.0_bd0b9b855776b637cd61b3759b357e33 '@graphql-tools/utils': 8.5.5_graphql@15.7.2 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -2699,7 +2774,7 @@ packages: glob: 7.2.0 globby: 11.0.4 graphql: 15.7.2 - graphql-config: 4.1.0_ff6e0ca8cd9cd37aa1844e8a89a000d0 + graphql-config: 4.1.0_8f91b510d830ea79a04e3946bbf71dff inquirer: 8.2.0 is-glob: 4.0.3 json-to-pretty-yaml: 1.2.2 @@ -3016,12 +3091,12 @@ packages: tslib: 2.3.1 dev: true - /@graphql-tools/prisma-loader/7.1.1_d953db9ea51e310c6c117ebb182bd311: + /@graphql-tools/prisma-loader/7.1.1_bd0b9b855776b637cd61b3759b357e33: resolution: {integrity: sha512-9hVpG3BNsXAYMLPlZhSHubk6qBmiHLo/UlU0ldL100sMpqI46iBaHNhTNXZCSdd81hT+4HNqaDXNFqyKJ22OGQ==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-tools/url-loader': 7.7.0_d953db9ea51e310c6c117ebb182bd311 + '@graphql-tools/url-loader': 7.7.0_bd0b9b855776b637cd61b3759b357e33 '@graphql-tools/utils': 8.5.5_graphql@15.7.2 '@types/js-yaml': 4.0.5 '@types/json-stable-stringify': 1.0.33 @@ -3073,7 +3148,7 @@ packages: tslib: 2.3.1 value-or-promise: 1.0.11 - /@graphql-tools/url-loader/7.7.0_d953db9ea51e310c6c117ebb182bd311: + /@graphql-tools/url-loader/7.7.0_bd0b9b855776b637cd61b3759b357e33: resolution: {integrity: sha512-mBBb+aJqI4E0MVEzyfi76Pi/G6lGxGTVt/tP1YtKJly7UnonNoWOtDusdL3zIVAGhGgLsNrLbGhLDbwSd6TV6A==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -3091,7 +3166,7 @@ packages: graphql-sse: 1.0.6_graphql@15.7.2 graphql-ws: 5.5.5_graphql@15.7.2 isomorphic-ws: 4.0.1_ws@8.4.0 - meros: 1.1.4_@types+node@17.0.8 + meros: 1.1.4_@types+node@17.0.9 subscriptions-transport-ws: 0.11.0_graphql@15.7.2 sync-fetch: 0.3.1 tslib: 2.3.1 @@ -3130,16 +3205,16 @@ packages: dependencies: graphql: 15.7.2 - /@grpc/grpc-js/1.5.0: - resolution: {integrity: sha512-PDLazk94MFV5hFn/+aSrVj3d5UsOK9HU1xa0ywachvDh1jymBU/Cb+4nGa2NjpfcBoXlHioBC/qIB/XzELednw==} + /@grpc/grpc-js/1.4.4: + resolution: {integrity: sha512-a6222b7Dl6fIlMgzVl7e+NiRoLiZFbpcwvBH2Oli56Bn7W4/3Ld+86hK4ffPn5rx2DlDidmIcvIJiOQXyhv9gA==} engines: {node: ^8.13.0 || >=10.10.0} dependencies: - '@grpc/proto-loader': 0.6.9 - '@types/node': 17.0.8 + '@grpc/proto-loader': 0.6.7 + '@types/node': 17.0.9 dev: false - /@grpc/proto-loader/0.6.9: - resolution: {integrity: sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==} + /@grpc/proto-loader/0.6.7: + resolution: {integrity: sha512-QzTPIyJxU0u+r2qGe8VMl3j/W2ryhEvBv7hc42OjYfthSj370fUrb7na65rG6w3YLZS/fb8p89iTBobfWGDgdw==} engines: {node: '>=6'} hasBin: true dependencies: @@ -3210,7 +3285,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.4.2 - '@types/node': 17.0.8 + '@types/node': 17.0.9 chalk: 4.1.2 jest-message-util: 27.4.6 jest-util: 27.4.2 @@ -3231,12 +3306,12 @@ packages: '@jest/test-result': 27.4.6 '@jest/transform': 27.4.6 '@jest/types': 27.4.2 - '@types/node': 17.0.8 + '@types/node': 17.0.9 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.8.1 exit: 0.1.2 - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 jest-changed-files: 27.4.2 jest-config: 27.4.7 jest-haste-map: 27.4.6 @@ -3268,7 +3343,7 @@ packages: dependencies: '@jest/fake-timers': 27.4.6 '@jest/types': 27.4.2 - '@types/node': 17.0.8 + '@types/node': 17.0.9 jest-mock: 27.4.6 dev: true @@ -3278,7 +3353,7 @@ packages: dependencies: '@jest/types': 27.4.2 '@sinonjs/fake-timers': 8.1.0 - '@types/node': 17.0.8 + '@types/node': 17.0.9 jest-message-util: 27.4.6 jest-mock: 27.4.6 jest-util: 27.4.2 @@ -3307,12 +3382,12 @@ packages: '@jest/test-result': 27.4.6 '@jest/transform': 27.4.6 '@jest/types': 27.4.2 - '@types/node': 17.0.8 + '@types/node': 17.0.9 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 glob: 7.2.0 - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 istanbul-lib-coverage: 3.2.0 istanbul-lib-instrument: 5.1.0 istanbul-lib-report: 3.0.0 @@ -3326,7 +3401,7 @@ packages: source-map: 0.6.1 string-length: 4.0.2 terminal-link: 2.1.1 - v8-to-istanbul: 8.1.1 + v8-to-istanbul: 8.1.0 transitivePeerDependencies: - supports-color dev: true @@ -3336,7 +3411,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: callsites: 3.1.0 - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 source-map: 0.6.1 dev: true @@ -3355,7 +3430,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/test-result': 27.4.6 - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 jest-haste-map: 27.4.6 jest-runtime: 27.4.6 transitivePeerDependencies: @@ -3372,7 +3447,7 @@ packages: chalk: 4.1.2 convert-source-map: 1.8.0 fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 jest-haste-map: 27.4.6 jest-regex-util: 27.4.0 jest-util: 27.4.2 @@ -3391,7 +3466,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 17.0.8 + '@types/node': 17.0.9 '@types/yargs': 15.0.14 chalk: 4.1.2 dev: true @@ -3402,11 +3477,15 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 17.0.8 + '@types/node': 17.0.9 '@types/yargs': 16.0.4 chalk: 4.1.2 dev: true + /@jsdevtools/ono/7.1.3: + resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} + dev: false + /@lezer/common/0.15.10: resolution: {integrity: sha512-vlr+be73zTDoQBIknBVOh/633tmbQcjxUu9PIeVeYESeBK3V6TuBW96RRFg93Y2cyK9lglz241gOgSn452HFvA==} dev: false @@ -3430,8 +3509,8 @@ packages: '@lezer/lr': 0.15.5 dev: true - /@lezer/javascript/0.15.2: - resolution: {integrity: sha512-ytWvdJ1NAc0pfrNipGQs8otJVfjVibpIiFKH0fl99rKSA6cVlyQN/XTj/dEAQCfBfCBPAFdc30cuUe5CGZ0odA==} + /@lezer/javascript/0.15.1: + resolution: {integrity: sha512-EnfO9MF2yDMpN2DEovPbKKdi4tj1phuolBxcEDC35cx+OUfToweMOEBZHr/nhHI79+6HkLMoCK2coch+PT+oBA==} dependencies: '@lezer/lr': 0.15.5 dev: false @@ -3652,15 +3731,15 @@ 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-27369360.33ebb01: + resolution: {integrity: sha512-p38BaW9o83CPi52k06ao/XSr1uYCLeLcA52S/W7cr3QPPsDflma1JK3Pa8Dwc3Rhqut59+YvbKTmA3Bb/YGnsg==} 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-27369360.33ebb01 consola: 2.15.3 - defu: 5.0.0 - dotenv: 10.0.0 - globby: 11.1.0 + defu: 5.0.1 + dotenv: 11.0.0 + globby: 12.2.0 hash-sum: 2.0.0 jiti: 1.12.9 lodash.template: 4.5.0 @@ -3694,12 +3773,12 @@ 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-27369360.33ebb01: + resolution: {integrity: sha512-m90kfhAFP5zC4YWjrmbq/gNXhuXvMPYR13BDHHPW0kCOq9RD238DFBkVNQ+gBnRxAy0Cq4ko1pSG5o70yxrhCg==} engines: {node: ^14.16.0 || ^16.11.0 || ^17.0.0} dependencies: create-require: 1.1.1 - defu: 5.0.0 + defu: 5.0.1 jiti: 1.12.9 pathe: 0.2.0 scule: 0.2.1 @@ -3753,7 +3832,7 @@ packages: std-env: 2.3.1 dev: false - /@nuxt/types/2.15.8_sass@1.47.0: + /@nuxt/types/2.15.8_sass@1.48.0: resolution: {integrity: sha512-zBAG5Fy+SIaZIerOVF1vxy1zz16ZK07QSbsuQAjdtEFlvr+vKK+0AqCv8r8DBY5IVqdMIaw5FgNUz5py0xWdPg==} dependencies: '@types/autoprefixer': 9.7.2 @@ -3774,7 +3853,7 @@ packages: '@types/webpack-bundle-analyzer': 3.9.3 '@types/webpack-dev-middleware': 4.1.2 '@types/webpack-hot-middleware': 2.25.4 - sass-loader: 10.1.1_sass@1.47.0 + sass-loader: 10.1.1_sass@1.48.0 transitivePeerDependencies: - fibers - node-sass @@ -3787,7 +3866,7 @@ packages: peerDependencies: '@nuxt/types': '>=2.13.1' dependencies: - '@nuxt/types': 2.15.8_sass@1.47.0 + '@nuxt/types': 2.15.8_sass@1.48.0 consola: 2.15.3 fork-ts-checker-webpack-plugin: 6.4.0_eslint@8.6.0+typescript@4.2.4 ts-loader: 8.3.0_typescript@4.2.4 @@ -4180,15 +4259,15 @@ packages: resolution: {integrity: sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=} dev: false - /@relmify/jest-fp-ts/1.1.1_fp-ts@2.11.6+io-ts@2.2.16: + /@relmify/jest-fp-ts/1.1.1_fp-ts@2.11.8+io-ts@2.2.16: resolution: {integrity: sha512-cuYK27gjDoEZIzvUuLRvgmqp/t5BlGWMrsVj+kzGlsgYny9xYCAMMRBd38HcFciG6aVTVKrLKqsYNidvU+4vzA==} peerDependencies: fp-ts: 2.x io-ts: 2.x dependencies: expect: 26.6.2 - fp-ts: 2.11.6 - io-ts: 2.2.16_fp-ts@2.11.6 + fp-ts: 2.11.8 + io-ts: 2.2.16_fp-ts@2.11.8 jest-get-type: 26.3.0 jest-matcher-utils: 26.6.2 dev: true @@ -4478,7 +4557,7 @@ packages: resolution: {integrity: sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==} dependencies: '@types/connect': 3.4.34 - '@types/node': 12.20.12 + '@types/node': 17.0.6 dev: true /@types/browserslist/4.15.0: @@ -4493,14 +4572,14 @@ packages: dependencies: '@types/http-cache-semantics': 4.0.1 '@types/keyv': 3.1.3 - '@types/node': 16.11.12 + '@types/node': 17.0.6 '@types/responselike': 1.0.0 dev: true /@types/clean-css/4.2.5: resolution: {integrity: sha512-NEzjkGGpbs9S9fgC4abuBvTpVwE3i+Acu9BBod3PUyjDVZcNsGx61b8r2PphR61QGPnn0JHVs5ey6/I4eTrkxw==} dependencies: - '@types/node': 12.20.12 + '@types/node': 17.0.6 source-map: 0.6.1 dev: true @@ -4523,7 +4602,7 @@ packages: /@types/connect/3.4.34: resolution: {integrity: sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==} dependencies: - '@types/node': 12.20.12 + '@types/node': 17.0.6 dev: true /@types/cookie/0.4.1: @@ -4550,13 +4629,13 @@ packages: /@types/etag/1.8.0: resolution: {integrity: sha512-EdSN0x+Y0/lBv7YAb8IU4Jgm6DWM+Bqtz7o5qozl96fzaqdqbdfHS5qjdpFeIv7xQ8jSLyjMMNShgYtMajEHyQ==} dependencies: - '@types/node': 12.20.12 + '@types/node': 17.0.6 dev: true /@types/express-serve-static-core/4.17.24: resolution: {integrity: sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==} dependencies: - '@types/node': 12.20.12 + '@types/node': 17.0.6 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 dev: true @@ -4579,7 +4658,7 @@ packages: /@types/graceful-fs/4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: - '@types/node': 17.0.8 + '@types/node': 17.0.9 dev: true /@types/har-format/1.2.8: @@ -4605,7 +4684,7 @@ packages: /@types/http-proxy/1.17.7: resolution: {integrity: sha512-9hdj6iXH64tHSLTY+Vt2eYOGzSogC+JQ2H7bdPWkuh7KXP5qLllWx++t+K9Wk556c3dkDdPws/SpMRi0sdCT1w==} dependencies: - '@types/node': 16.11.12 + '@types/node': 17.0.6 dev: false /@types/httpsnippet/1.23.1: @@ -4633,8 +4712,8 @@ packages: /@types/jest/27.4.0: resolution: {integrity: sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ==} dependencies: - jest-diff: 27.4.6 - pretty-format: 27.4.6 + jest-diff: 27.4.2 + pretty-format: 27.4.2 dev: true /@types/js-yaml/4.0.5: @@ -4655,13 +4734,13 @@ packages: /@types/jsonwebtoken/8.5.6: resolution: {integrity: sha512-+P3O/xC7nzVizIi5VbF34YtqSonFsdnbXBnWUCYRiKOi1f9gA4sEFvXkrGr/QVV23IbMYvcoerI7nnhDUiWXRQ==} dependencies: - '@types/node': 17.0.5 + '@types/node': 17.0.6 dev: true /@types/keyv/3.1.3: resolution: {integrity: sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==} dependencies: - '@types/node': 16.11.12 + '@types/node': 17.0.6 dev: true /@types/less/3.0.2: @@ -4687,31 +4766,26 @@ packages: /@types/node-sass/4.11.2: resolution: {integrity: sha512-pOFlTw/OtZda4e+yMjq6/QYuvY0RDMQ+mxXdWj7rfSyf18V8hS4SfgurO+MasAkQsv6Wt6edOGlwh5QqJml9gw==} dependencies: - '@types/node': 12.20.12 + '@types/node': 17.0.6 dev: true /@types/node/12.20.12: resolution: {integrity: sha512-KQZ1al2hKOONAs2MFv+yTQP1LkDWMrRJ9YCVRalXltOfXsBmH5IownLxQaiq0lnAHwAViLnh2aTYqrPcRGEbgg==} + dev: true /@types/node/12.20.36: resolution: {integrity: sha512-+5haRZ9uzI7rYqzDznXgkuacqb6LJhAti8mzZKWxIXn/WEtvB+GHVJ7AuMwcN1HMvXOSJcrvA6PPoYHYOYYebA==} dev: false - /@types/node/16.11.12: - resolution: {integrity: sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw==} - - /@types/node/16.11.19: - resolution: {integrity: sha512-BPAcfDPoHlRQNKktbsbnpACGdypPFBuX4xQlsWDE7B8XXcfII+SpOLay3/qZmCLb39kV5S1RTYwXdkx2lwLYng==} + /@types/node/16.11.17: + resolution: {integrity: sha512-C1vTZME8cFo8uxY2ui41xcynEotVkczIVI5AjLmy5pkpBv/FtG+jhtOlfcPysI8VRVwoOMv6NJm44LGnoMSWkw==} dev: true - /@types/node/16.11.6: - resolution: {integrity: sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==} + /@types/node/17.0.6: + resolution: {integrity: sha512-+XBAjfZmmivILUzO0HwBJoYkAyyySSLg5KCGBDFLomJo0sV6szvVLAf4ANZZ0pfWzgEds5KmGLG9D5hfEqOhaA==} - /@types/node/17.0.5: - resolution: {integrity: sha512-w3mrvNXLeDYV1GKTZorGJQivK6XLCoGwpnyJFbJVK/aTBQUxOCaa/GlFAAN3OTDFcb7h5tiFG+YXCO2By+riZw==} - - /@types/node/17.0.8: - resolution: {integrity: sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==} + /@types/node/17.0.9: + resolution: {integrity: sha512-5dNBXu/FOER+EXnyah7rn8xlNrfMOQb/qXnw4NQgLkCygKBKhdmF/CA5oXVOKZLBEahw8s2WP9LxIcN/oDDRgQ==} /@types/normalize-package-data/2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -4730,6 +4804,12 @@ packages: /@types/parse-json/4.0.0: resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + /@types/postman-collection/3.5.7: + resolution: {integrity: sha512-wqZ/MlGEYP+RoiofnAnKDJAHxRzmMK97CeFLoHPNoHdHX0uyBLCDl+uZV9x4xuPVRjkeM4xcarIaUaUk47c7SQ==} + dependencies: + '@types/node': 17.0.6 + dev: true + /@types/prettier/2.4.2: resolution: {integrity: sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==} dev: true @@ -4756,7 +4836,7 @@ packages: /@types/responselike/1.0.0: resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} dependencies: - '@types/node': 16.11.12 + '@types/node': 17.0.6 dev: true /@types/sass-loader/8.0.1: @@ -4770,13 +4850,13 @@ packages: /@types/sass/1.43.0: resolution: {integrity: sha512-DPSXNJ1rYLo88GyF9tuB4bsYGfpKI1a4+wOQmc+LI1SUoocm9QLRSpz0GxxuyjmJsYFIQo/dDlRSSpIXngff+w==} dependencies: - '@types/node': 12.20.12 + '@types/node': 17.0.6 dev: true /@types/sax/1.2.3: resolution: {integrity: sha512-+QSw6Tqvs/KQpZX8DvIl3hZSjNFLW/OqE5nlyHXtTwODaJvioN2rOWpBNEWZp2HZUFhOh+VohmJku/WxEXU2XA==} dependencies: - '@types/node': 12.20.36 + '@types/node': 17.0.6 dev: false /@types/semver/7.3.9: @@ -4787,7 +4867,7 @@ packages: resolution: {integrity: sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==} dependencies: '@types/mime': 1.3.2 - '@types/node': 12.20.12 + '@types/node': 17.0.6 dev: true /@types/source-list-map/0.1.2: @@ -4879,7 +4959,7 @@ packages: /@types/webpack-sources/3.2.0: resolution: {integrity: sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==} dependencies: - '@types/node': 12.20.12 + '@types/node': 17.0.6 '@types/source-list-map': 0.1.2 source-map: 0.7.3 @@ -4887,7 +4967,7 @@ packages: resolution: {integrity: sha512-Nn84RAiJjKRfPFFCVR8LC4ueTtTdfWAMZ03THIzZWRJB+rX24BD3LqPSFnbMscWauEsT4segAsylPDIaZyZyLQ==} dependencies: '@types/anymatch': 3.0.0 - '@types/node': 12.20.12 + '@types/node': 17.0.6 '@types/tapable': 1.0.8 '@types/uglify-js': 3.13.1 '@types/webpack-sources': 3.2.0 @@ -4897,7 +4977,7 @@ packages: /@types/webpack/4.41.31: resolution: {integrity: sha512-/i0J7sepXFIp1ZT7FjUGi1eXMCg8HCCzLJEQkKsOtbJFontsJLolBcDC+3qxn5pPwiCt1G0ZdRmYRzNBtvpuGQ==} dependencies: - '@types/node': 16.11.12 + '@types/node': 17.0.6 '@types/tapable': 1.0.8 '@types/uglify-js': 3.13.1 '@types/webpack-sources': 3.2.0 @@ -4908,12 +4988,12 @@ packages: /@types/websocket/1.0.4: resolution: {integrity: sha512-qn1LkcFEKK8RPp459jkjzsfpbsx36BBt3oC3pITYtkoBw/aVX+EZFa5j3ThCRTNpLFvIMr5dSTD4RaMdilIOpA==} dependencies: - '@types/node': 17.0.5 + '@types/node': 17.0.6 /@types/ws/8.2.2: resolution: {integrity: sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg==} dependencies: - '@types/node': 17.0.5 + '@types/node': 17.0.6 /@types/yargs-parser/20.2.1: resolution: {integrity: sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==} @@ -4957,8 +5037,8 @@ packages: - supports-color dev: true - /@typescript-eslint/eslint-plugin/5.9.0_bd2fd93dbcc607ad2f21b784bccfe0c8: - resolution: {integrity: sha512-qT4lr2jysDQBQOPsCCvpPUZHjbABoTJW8V9ZzIYKHMfppJtpdtzszDYsldwhFxlhvrp7aCHeXD1Lb9M1zhwWwQ==} + /@typescript-eslint/eslint-plugin/5.9.1_b7b2e42b32ee097737cd3e626b10847b: + resolution: {integrity: sha512-Xv9tkFlyD4MQGpJgTo6wqDqGvHIRmRgah/2Sjz1PUnJTawjHWIwBivUE9x0QtU2WVii9baYgavo/bHjrZJkqTw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -4968,10 +5048,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/experimental-utils': 5.9.0_eslint@8.6.0+typescript@4.5.4 - '@typescript-eslint/parser': 5.9.0_eslint@8.6.0+typescript@4.5.4 - '@typescript-eslint/scope-manager': 5.9.0 - '@typescript-eslint/type-utils': 5.9.0_eslint@8.6.0+typescript@4.5.4 + '@typescript-eslint/experimental-utils': 5.9.1_eslint@8.6.0+typescript@4.5.4 + '@typescript-eslint/parser': 5.9.1_eslint@8.6.0+typescript@4.5.4 + '@typescript-eslint/scope-manager': 5.9.1 + '@typescript-eslint/type-utils': 5.9.1_eslint@8.6.0+typescript@4.5.4 debug: 4.3.3 eslint: 8.6.0 functional-red-black-tree: 1.0.1 @@ -5002,16 +5082,16 @@ packages: - typescript dev: true - /@typescript-eslint/experimental-utils/5.9.0_eslint@8.6.0+typescript@4.5.4: - resolution: {integrity: sha512-ZnLVjBrf26dn7ElyaSKa6uDhqwvAi4jBBmHK1VxuFGPRAxhdi18ubQYSGA7SRiFiES3q9JiBOBHEBStOFkwD2g==} + /@typescript-eslint/experimental-utils/5.9.1_eslint@8.6.0+typescript@4.5.4: + resolution: {integrity: sha512-cb1Njyss0mLL9kLXgS/eEY53SZQ9sT519wpX3i+U457l2UXRDuo87hgKfgRazmu9/tQb0x2sr3Y0yrU+Zz0y+w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.9 - '@typescript-eslint/scope-manager': 5.9.0 - '@typescript-eslint/types': 5.9.0 - '@typescript-eslint/typescript-estree': 5.9.0_typescript@4.5.4 + '@typescript-eslint/scope-manager': 5.9.1 + '@typescript-eslint/types': 5.9.1 + '@typescript-eslint/typescript-estree': 5.9.1_typescript@4.5.4 eslint: 8.6.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.6.0 @@ -5040,8 +5120,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.9.0_eslint@8.6.0+typescript@4.5.4: - resolution: {integrity: sha512-/6pOPz8yAxEt4PLzgbFRDpZmHnXCeZgPDrh/1DaVKOjvn/UPMlWhbx/gA96xRi2JxY1kBl2AmwVbyROUqys5xQ==} + /@typescript-eslint/parser/5.9.1_eslint@8.6.0+typescript@4.5.4: + resolution: {integrity: sha512-PLYO0AmwD6s6n0ZQB5kqPgfvh73p0+VqopQQLuNfi7Lm0EpfKyDalchpVwkE+81k5HeiRrTV/9w1aNHzjD7C4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -5050,9 +5130,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.9.0 - '@typescript-eslint/types': 5.9.0 - '@typescript-eslint/typescript-estree': 5.9.0_typescript@4.5.4 + '@typescript-eslint/scope-manager': 5.9.1 + '@typescript-eslint/types': 5.9.1 + '@typescript-eslint/typescript-estree': 5.9.1_typescript@4.5.4 debug: 4.3.3 eslint: 8.6.0 typescript: 4.5.4 @@ -5068,16 +5148,16 @@ packages: '@typescript-eslint/visitor-keys': 5.4.0 dev: true - /@typescript-eslint/scope-manager/5.9.0: - resolution: {integrity: sha512-DKtdIL49Qxk2a8icF6whRk7uThuVz4A6TCXfjdJSwOsf+9ree7vgQWcx0KOyCdk0i9ETX666p4aMhrRhxhUkyg==} + /@typescript-eslint/scope-manager/5.9.1: + resolution: {integrity: sha512-8BwvWkho3B/UOtzRyW07ffJXPaLSUKFBjpq8aqsRvu6HdEuzCY57+ffT7QoV4QXJXWSU1+7g3wE4AlgImmQ9pQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.9.0 - '@typescript-eslint/visitor-keys': 5.9.0 + '@typescript-eslint/types': 5.9.1 + '@typescript-eslint/visitor-keys': 5.9.1 dev: true - /@typescript-eslint/type-utils/5.9.0_eslint@8.6.0+typescript@4.5.4: - resolution: {integrity: sha512-uVCb9dJXpBrK1071ri5aEW7ZHdDHAiqEjYznF3HSSvAJXyrkxGOw2Ejibz/q6BXdT8lea8CMI0CzKNFTNI6TEQ==} + /@typescript-eslint/type-utils/5.9.1_eslint@8.6.0+typescript@4.5.4: + resolution: {integrity: sha512-tRSpdBnPRssjlUh35rE9ug5HrUvaB9ntREy7gPXXKwmIx61TNN7+l5YKgi1hMKxo5NvqZCfYhA5FvyuJG6X6vg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -5086,7 +5166,7 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/experimental-utils': 5.9.0_eslint@8.6.0+typescript@4.5.4 + '@typescript-eslint/experimental-utils': 5.9.1_eslint@8.6.0+typescript@4.5.4 debug: 4.3.3 eslint: 8.6.0 tsutils: 3.21.0_typescript@4.5.4 @@ -5100,8 +5180,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types/5.9.0: - resolution: {integrity: sha512-mWp6/b56Umo1rwyGCk8fPIzb9Migo8YOniBGPAQDNC6C52SeyNGN4gsVwQTAR+RS2L5xyajON4hOLwAGwPtUwg==} + /@typescript-eslint/types/5.9.1: + resolution: {integrity: sha512-SsWegWudWpkZCwwYcKoDwuAjoZXnM1y2EbEerTHho19Hmm+bQ56QG4L4jrtCu0bI5STaRTvRTZmjprWlTw/5NQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -5126,8 +5206,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree/5.9.0_typescript@4.5.4: - resolution: {integrity: sha512-kxo3xL2mB7XmiVZcECbaDwYCt3qFXz99tBSuVJR4L/sR7CJ+UNAPrYILILktGj1ppfZ/jNt/cWYbziJUlHl1Pw==} + /@typescript-eslint/typescript-estree/5.9.1_typescript@4.5.4: + resolution: {integrity: sha512-gL1sP6A/KG0HwrahVXI9fZyeVTxEYV//6PmcOn1tD0rw8VhUWYeZeuWHwwhnewnvEMcHjhnJLOBhA9rK4vmb8A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -5135,8 +5215,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.9.0 - '@typescript-eslint/visitor-keys': 5.9.0 + '@typescript-eslint/types': 5.9.1 + '@typescript-eslint/visitor-keys': 5.9.1 debug: 4.3.3 globby: 11.1.0 is-glob: 4.0.3 @@ -5155,11 +5235,11 @@ packages: eslint-visitor-keys: 3.1.0 dev: true - /@typescript-eslint/visitor-keys/5.9.0: - resolution: {integrity: sha512-6zq0mb7LV0ThExKlecvpfepiB+XEtFv/bzx7/jKSgyXTFD7qjmSu1FoiS0x3OZaiS+UIXpH2vd9O89f02RCtgw==} + /@typescript-eslint/visitor-keys/5.9.1: + resolution: {integrity: sha512-Xh37pNz9e9ryW4TVdwiFzmr4hloty8cFj8GTWMXh3Z8swGwyQWeCcNgF0hm6t09iZd6eiZmIf4zHedQVP6TVtg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.9.0 + '@typescript-eslint/types': 5.9.1 eslint-visitor-keys: 3.1.0 dev: true @@ -5816,6 +5896,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 @@ -5845,7 +5940,6 @@ packages: /argparse/2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - dev: true /aria-query/5.0.0: resolution: {integrity: sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==} @@ -5883,6 +5977,11 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} + /array-union/3.0.1: + resolution: {integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==} + engines: {node: '>=12'} + dev: true + /array-unique/0.3.2: resolution: {integrity: sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=} engines: {node: '>=0.10.0'} @@ -6031,7 +6130,7 @@ packages: babel-plugin-istanbul: 6.1.1 babel-preset-jest: 27.4.0_@babel+core@7.16.7 chalk: 4.1.2 - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 slash: 3.0.0 transitivePeerDependencies: - supports-color @@ -6484,7 +6583,7 @@ packages: '@types/semver': 7.3.9 '@types/ua-parser-js': 0.7.36 browserslist: 4.18.1 - caniuse-lite: 1.0.30001298 + caniuse-lite: 1.0.30001295 isbot: 3.3.4 object-path: 0.11.8 semver: 7.3.5 @@ -6507,8 +6606,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001298 - electron-to-chromium: 1.4.38 + caniuse-lite: 1.0.30001295 + electron-to-chromium: 1.4.31 escalade: 3.1.1 node-releases: 2.0.1 picocolors: 1.0.0 @@ -6519,8 +6618,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001298 - electron-to-chromium: 1.4.38 + caniuse-lite: 1.0.30001295 + electron-to-chromium: 1.4.31 escalade: 3.1.1 node-releases: 2.0.1 picocolors: 1.0.0 @@ -6538,6 +6637,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 @@ -6576,12 +6679,12 @@ packages: resolution: {integrity: sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=} dev: false - /bundle-require/2.2.0_esbuild@0.14.11: + /bundle-require/2.2.0_esbuild@0.14.10: resolution: {integrity: sha512-JDVxYEAxEX1g8AWtadiIkCkFf42RulEl5AOIvUa4cpuEL/VKpK2lJwogyswHnp+qizNQxM0Ylamw7CjPRaJZuA==} peerDependencies: esbuild: '>=0.13' dependencies: - esbuild: 0.14.11 + esbuild: 0.14.10 dev: true /bytes/3.0.0: @@ -6601,7 +6704,7 @@ packages: chownr: 1.1.4 figgy-pudding: 3.5.2 glob: 7.2.0 - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 infer-owner: 1.0.4 lru-cache: 5.1.1 mississippi: 3.0.0 @@ -6704,6 +6807,10 @@ packages: function-bind: 1.1.1 get-intrinsic: 1.1.1 + /call-me-maybe/1.0.1: + resolution: {integrity: sha1-JtII6onje1y95gJQoV8DHBak1ms=} + dev: false + /caller-callsite/2.0.0: resolution: {integrity: sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=} engines: {node: '>=4'} @@ -6775,8 +6882,8 @@ packages: /caniuse-lite/1.0.30001274: resolution: {integrity: sha512-+Nkvv0fHyhISkiMIjnyjmf5YJcQ1IQHZN6U9TLUMroWR38FNwpsC51Gb68yueafX1V6ifOisInSgP9WJFS13ew==} - /caniuse-lite/1.0.30001298: - resolution: {integrity: sha512-AcKqikjMLlvghZL/vfTHorlQsLDhGRalYf1+GmWCf5SCMziSGjRYQW/JEksj14NaYHIR6KIhrFAy0HV5C25UzQ==} + /caniuse-lite/1.0.30001295: + resolution: {integrity: sha512-lSP16vcyC0FEy0R4ECc9duSPoKoZy+YkpGkue9G4D81OfPnliopaZrU10+qtPdT8PbGXad/PNx43TIQrOmJZSQ==} /capital-case/1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} @@ -6784,7 +6891,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=} @@ -6849,7 +6955,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==} @@ -6859,6 +6964,11 @@ packages: /chardet/0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + /charset/1.0.1: + resolution: {integrity: sha512-6dVyOOYjpfFcL1Y4qChrAoQLRHvj2ziyhcm0QJlhOcAhykL/k1kTUPbeo+87MNRTRdk2OIIsIXbuF3x2wi5EXg==} + engines: {node: '>=4.0.0'} + dev: false + /cheerio-select/1.5.0: resolution: {integrity: sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg==} dependencies: @@ -7021,7 +7131,7 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: slice-ansi: 5.0.0 - string-width: 5.1.0 + string-width: 5.0.1 dev: false /cli-width/3.0.0: @@ -7296,7 +7406,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=} @@ -7398,16 +7507,16 @@ packages: dependencies: '@iarna/toml': 2.2.5 - /cosmiconfig-typescript-loader/1.0.3_faf01e1d5a40372a98081522dcafc186: - resolution: {integrity: sha512-ARo21VjxdacJUcHxgVMEYNIoVPYiuKOEwWBIYej4M22+pEbe3LzKgmht2UPM+0u7/T/KnZf2r/5IzHv2Nwz+/w==} + /cosmiconfig-typescript-loader/1.0.2_58ff8c2ecf784f4683a8548a58a2b611: + resolution: {integrity: sha512-27ZehvijYqAKVzta5xtZBS3PAliC8CmnWkGXN0vgxAZz7yqxpMjf3aG7flxF5rEiu8FAD7nZZXtOI+xUGn+bVg==} engines: {node: '>=12', npm: '>=6'} peerDependencies: '@types/node': '*' typescript: '>=3' dependencies: - '@types/node': 17.0.8 + '@types/node': 17.0.9 cosmiconfig: 7.0.1 - ts-node: 10.4.0_faf01e1d5a40372a98081522dcafc186 + ts-node: 10.4.0_58ff8c2ecf784f4683a8548a58a2b611 typescript: 4.5.4 transitivePeerDependencies: - '@swc/core' @@ -7533,7 +7642,7 @@ packages: resolution: {integrity: sha512-mpjkSErNO6vioL/Cde2aF4UBysPFEMyn+1AN1t7Oc4yqvzSRWe8iBte4P8BHyjo64OmC+ZBxwjIqmpSpIWiQ7Q==} engines: {node: '>=10.0.0'} dependencies: - '@types/node': 16.11.19 + '@types/node': 16.11.17 dev: true /crypto-browserify/3.12.0: @@ -8019,6 +8128,10 @@ packages: /defu/5.0.0: resolution: {integrity: sha512-VHg73EDeRXlu7oYWRmmrNp/nl7QkdXUxkQQKig0Zk8daNmm84AbGoC8Be6/VVLJEKxn12hR0UBmz8O+xQiAPKQ==} + /defu/5.0.1: + resolution: {integrity: sha512-EPS1carKg+dkEVy3qNTqIdp2qV7mUP08nIsupfwQpz++slCVRw7qbQyWvSTig+kFPwz2XXp5/kIIkH+CwrJKkQ==} + dev: true + /delayed-stream/1.0.0: resolution: {integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=} engines: {node: '>=0.4.0'} @@ -8220,6 +8333,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'} @@ -8251,10 +8369,6 @@ packages: stream-shift: 1.0.1 dev: false - /eastasianwidth/0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: false - /ecdsa-sig-formatter/1.0.11: resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} dependencies: @@ -8277,8 +8391,8 @@ packages: /electron-to-chromium/1.3.886: resolution: {integrity: sha512-+vYdeBosI63VkCtNWnEVFjgNd/IZwvnsWkKyPtWAvrhA+XfByKoBJcbsMgudVU/bUcGAF9Xp3aXn96voWlc3oQ==} - /electron-to-chromium/1.4.38: - resolution: {integrity: sha512-WhHt3sZazKj0KK/UpgsbGQnUUoFeAHVishzHFExMxagpZgjiGYSC9S0ZlbhCfSH2L2i+2A1yyqOIliTctMx7KQ==} + /electron-to-chromium/1.4.31: + resolution: {integrity: sha512-t3XVQtk+Frkv6aTD4RRk0OqosU+VLe1dQFW83MDer78ZD6a52frgXuYOIsLYTQiH2Lm+JB2OKYcn7zrX+YGAiQ==} /elegant-spinner/1.0.1: resolution: {integrity: sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=} @@ -8484,144 +8598,144 @@ packages: is-date-object: 1.0.5 is-symbol: 1.0.4 - /esbuild-android-arm64/0.14.11: - resolution: {integrity: sha512-6iHjgvMnC/SzDH8TefL+/3lgCjYWwAd1LixYfmz/TBPbDQlxcuSkX0yiQgcJB9k+ibZ54yjVXziIwGdlc+6WNw==} + /esbuild-android-arm64/0.14.10: + resolution: {integrity: sha512-vzkTafHKoiMX4uIN1kBnE/HXYLpNT95EgGanVk6DHGeYgDolU0NBxjO7yZpq4ZGFPOx8384eAdDrBYhO11TAlQ==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /esbuild-darwin-64/0.14.11: - resolution: {integrity: sha512-olq84ikh6TiBcrs3FnM4eR5VPPlcJcdW8BnUz/lNoEWYifYQ+Po5DuYV1oz1CTFMw4k6bQIZl8T3yxL+ZT2uvQ==} + /esbuild-darwin-64/0.14.10: + resolution: {integrity: sha512-DJwzFVB95ZV7C3PQbf052WqaUuuMFXJeZJ0LKdnP1w+QOU0rlbKfX0tzuhoS//rOXUj1TFIwRuRsd0FX6skR7A==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-darwin-arm64/0.14.11: - resolution: {integrity: sha512-Jj0ieWLREPBYr/TZJrb2GFH8PVzDqiQWavo1pOFFShrcmHWDBDrlDxPzEZ67NF/Un3t6sNNmeI1TUS/fe1xARg==} + /esbuild-darwin-arm64/0.14.10: + resolution: {integrity: sha512-RNaaoZDg3nsqs5z56vYCjk/VJ76npf752W0rOaCl5lO5TsgV9zecfdYgt7dtUrIx8b7APhVaNYud+tGsDOVC9g==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-freebsd-64/0.14.11: - resolution: {integrity: sha512-C5sT3/XIztxxz/zwDjPRHyzj/NJFOnakAanXuyfLDwhwupKPd76/PPHHyJx6Po6NI6PomgVp/zi6GRB8PfrOTA==} + /esbuild-freebsd-64/0.14.10: + resolution: {integrity: sha512-10B3AzW894u6bGZZhWiJOHw1uEHb4AFbUuBdyml1Ht0vIqd+KqWW+iY/yMwQAzILr2WJZqEhbOXRkJtY8aRqOw==} cpu: [x64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-freebsd-arm64/0.14.11: - resolution: {integrity: sha512-y3Llu4wbs0bk4cwjsdAtVOesXb6JkdfZDLKMt+v1U3tOEPBdSu6w8796VTksJgPfqvpX22JmPLClls0h5p+L9w==} + /esbuild-freebsd-arm64/0.14.10: + resolution: {integrity: sha512-mSQrKB7UaWvuryBTCo9leOfY2uEUSimAvcKIaUWbk5Hth9Sg+Try+qNA/NibPgs/vHkX0KFo/Rce6RPea+P15g==} cpu: [arm64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-linux-32/0.14.11: - resolution: {integrity: sha512-Cg3nVsxArjyLke9EuwictFF3Sva+UlDTwHIuIyx8qpxRYAOUTmxr2LzYrhHyTcGOleLGXUXYsnUVwKqnKAgkcg==} + /esbuild-linux-32/0.14.10: + resolution: {integrity: sha512-lktF09JgJLZ63ANYHIPdYe339PDuVn19Q/FcGKkXWf+jSPkn5xkYzAabboNGZNUgNqSJ/vY7VrOn6UrBbJjgYA==} cpu: [ia32] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-64/0.14.11: - resolution: {integrity: sha512-oeR6dIrrojr8DKVrxtH3xl4eencmjsgI6kPkDCRIIFwv4p+K7ySviM85K66BN01oLjzthpUMvBVfWSJkBLeRbg==} + /esbuild-linux-64/0.14.10: + resolution: {integrity: sha512-K+gCQz2oLIIBI8ZM77e9sYD5/DwEpeYCrOQ2SYXx+R4OU2CT9QjJDi4/OpE7ko4AcYMlMW7qrOCuLSgAlEj4Wg==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm/0.14.11: - resolution: {integrity: sha512-vcwskfD9g0tojux/ZaTJptJQU3a7YgTYsptK1y6LQ/rJmw7U5QJvboNawqM98Ca3ToYEucfCRGbl66OTNtp6KQ==} + /esbuild-linux-arm/0.14.10: + resolution: {integrity: sha512-BYa60dZ/KPmNKYxtHa3LSEdfKWHcm/RzP0MjB4AeBPhjS0D6/okhaBesZIY9kVIGDyeenKsJNOmnVt4+dhNnvQ==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm64/0.14.11: - resolution: {integrity: sha512-+e6ZCgTFQYZlmg2OqLkg1jHLYtkNDksxWDBWNtI4XG4WxuOCUErLqfEt9qWjvzK3XBcCzHImrajkUjO+rRkbMg==} + /esbuild-linux-arm64/0.14.10: + resolution: {integrity: sha512-+qocQuQvcp5wo/V+OLXxqHPc+gxHttJEvbU/xrCGE03vIMqraL4wMua8JQx0SWEnJCWP+Nhf//v8OSwz1Xr5kA==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-mips64le/0.14.11: - resolution: {integrity: sha512-Rrs99L+p54vepmXIb87xTG6ukrQv+CzrM8eoeR+r/OFL2Rg8RlyEtCeshXJ2+Q66MXZOgPJaokXJZb9snq28bw==} + /esbuild-linux-mips64le/0.14.10: + resolution: {integrity: sha512-nmUd2xoBXpGo4NJCEWoaBj+n4EtDoLEvEYc8Z3aSJrY0Oa6s04czD1flmhd0I/d6QEU8b7GQ9U0g/rtBfhtxBg==} cpu: [mips64el] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-ppc64le/0.14.11: - resolution: {integrity: sha512-JyzziGAI0D30Vyzt0HDihp4s1IUtJ3ssV2zx9O/c+U/dhUHVP2TmlYjzCfCr2Q6mwXTeloDcLS4qkyvJtYptdQ==} + /esbuild-linux-ppc64le/0.14.10: + resolution: {integrity: sha512-vsOWZjm0rZix7HSmqwPph9arRVCyPtUpcURdayQDuIhMG2/UxJxpbdRaa//w4zYqcJzAWwuyH2PAlyy0ZNuxqQ==} cpu: [ppc64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-s390x/0.14.11: - resolution: {integrity: sha512-DoThrkzunZ1nfRGoDN6REwmo8ZZWHd2ztniPVIR5RMw/Il9wiWEYBahb8jnMzQaSOxBsGp0PbyJeVLTUatnlcw==} + /esbuild-linux-s390x/0.14.10: + resolution: {integrity: sha512-knArKKZm0ypIYWOWyOT7+accVwbVV1LZnl2FWWy05u9Tyv5oqJ2F5+X2Vqe/gqd61enJXQWqoufXopvG3zULOg==} cpu: [s390x] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-netbsd-64/0.14.11: - resolution: {integrity: sha512-12luoRQz+6eihKYh1zjrw0CBa2aw3twIiHV/FAfjh2NEBDgJQOY4WCEUEN+Rgon7xmLh4XUxCQjnwrvf8zhACw==} + /esbuild-netbsd-64/0.14.10: + resolution: {integrity: sha512-6Gg8neVcLeyq0yt9bZpReb8ntZ8LBEjthxrcYWVrBElcltnDjIy1hrzsujt0+sC2rL+TlSsE9dzgyuvlDdPp2w==} cpu: [x64] os: [netbsd] requiresBuild: true dev: true optional: true - /esbuild-openbsd-64/0.14.11: - resolution: {integrity: sha512-l18TZDjmvwW6cDeR4fmizNoxndyDHamGOOAenwI4SOJbzlJmwfr0jUgjbaXCUuYVOA964siw+Ix+A+bhALWg8Q==} + /esbuild-openbsd-64/0.14.10: + resolution: {integrity: sha512-9rkHZzp10zI90CfKbFrwmQjqZaeDmyQ6s9/hvCwRkbOCHuto6RvMYH9ghQpcr5cUxD5OQIA+sHXi0zokRNXjcg==} cpu: [x64] os: [openbsd] requiresBuild: true dev: true optional: true - /esbuild-sunos-64/0.14.11: - resolution: {integrity: sha512-bmYzDtwASBB8c+0/HVOAiE9diR7+8zLm/i3kEojUH2z0aIs6x/S4KiTuT5/0VKJ4zk69kXel1cNWlHBMkmavQg==} + /esbuild-sunos-64/0.14.10: + resolution: {integrity: sha512-mEU+pqkhkhbwpJj5DiN3vL0GUFR/yrL3qj8ER1amIVyRibKbj02VM1QaIuk1sy5DRVIKiFXXgCaHvH3RNWCHIw==} cpu: [x64] os: [sunos] requiresBuild: true dev: true optional: true - /esbuild-windows-32/0.14.11: - resolution: {integrity: sha512-J1Ys5hMid8QgdY00OBvIolXgCQn1ARhYtxPnG6ESWNTty3ashtc4+As5nTrsErnv8ZGUcWZe4WzTP/DmEVX1UQ==} + /esbuild-windows-32/0.14.10: + resolution: {integrity: sha512-Z5DieUL1N6s78dOSdL95KWf8Y89RtPGxIoMF+LEy8ChDsX+pZpz6uAVCn+YaWpqQXO+2TnrcbgBIoprq2Mco1g==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-64/0.14.11: - resolution: {integrity: sha512-h9FmMskMuGeN/9G9+LlHPAoiQk9jlKDUn9yA0MpiGzwLa82E7r1b1u+h2a+InprbSnSLxDq/7p5YGtYVO85Mlg==} + /esbuild-windows-64/0.14.10: + resolution: {integrity: sha512-LE5Mm62y0Bilu7RDryBhHIX8rK3at5VwJ6IGM3BsASidCfOBTzqcs7Yy0/Vkq39VKeTmy9/66BAfVoZRNznoDw==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-arm64/0.14.11: - resolution: {integrity: sha512-dZp7Krv13KpwKklt9/1vBFBMqxEQIO6ri7Azf8C+ob4zOegpJmha2XY9VVWP/OyQ0OWk6cEeIzMJwInRZrzBUQ==} + /esbuild-windows-arm64/0.14.10: + resolution: {integrity: sha512-OJOyxDtabvcUYTc+O4dR0JMzLBz6G9+gXIHA7Oc5d5Fv1xiYa0nUeo8+W5s2e6ZkPRdIwOseYoL70rZz80S5BA==} cpu: [arm64] os: [win32] requiresBuild: true @@ -8634,29 +8748,29 @@ packages: requiresBuild: true dev: true - /esbuild/0.14.11: - resolution: {integrity: sha512-xZvPtVj6yecnDeFb3KjjCM6i7B5TCAQZT77kkW/CpXTMnd6VLnRPKrUB1XHI1pSq6a4Zcy3BGueQ8VljqjDGCg==} + /esbuild/0.14.10: + resolution: {integrity: sha512-ibZb+NwFqBwHHJlpnFMtg4aNmVK+LUtYMFC9CuKs6lDCBEvCHpqCFZFEirpqt1jOugwKGx8gALNGvX56lQyfew==} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-arm64: 0.14.11 - esbuild-darwin-64: 0.14.11 - esbuild-darwin-arm64: 0.14.11 - esbuild-freebsd-64: 0.14.11 - esbuild-freebsd-arm64: 0.14.11 - esbuild-linux-32: 0.14.11 - esbuild-linux-64: 0.14.11 - esbuild-linux-arm: 0.14.11 - esbuild-linux-arm64: 0.14.11 - esbuild-linux-mips64le: 0.14.11 - esbuild-linux-ppc64le: 0.14.11 - esbuild-linux-s390x: 0.14.11 - esbuild-netbsd-64: 0.14.11 - esbuild-openbsd-64: 0.14.11 - esbuild-sunos-64: 0.14.11 - esbuild-windows-32: 0.14.11 - esbuild-windows-64: 0.14.11 - esbuild-windows-arm64: 0.14.11 + esbuild-android-arm64: 0.14.10 + esbuild-darwin-64: 0.14.10 + esbuild-darwin-arm64: 0.14.10 + esbuild-freebsd-64: 0.14.10 + esbuild-freebsd-arm64: 0.14.10 + esbuild-linux-32: 0.14.10 + esbuild-linux-64: 0.14.10 + esbuild-linux-arm: 0.14.10 + esbuild-linux-arm64: 0.14.10 + esbuild-linux-mips64le: 0.14.10 + esbuild-linux-ppc64le: 0.14.10 + esbuild-linux-s390x: 0.14.10 + esbuild-netbsd-64: 0.14.10 + esbuild-openbsd-64: 0.14.10 + esbuild-sunos-64: 0.14.10 + esbuild-windows-32: 0.14.10 + esbuild-windows-64: 0.14.10 + esbuild-windows-arm64: 0.14.10 dev: true /escalade/3.1.1: @@ -9268,6 +9382,10 @@ packages: css: 2.2.4 dev: true + /faker/5.5.3: + resolution: {integrity: sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g==} + dev: false + /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -9341,6 +9459,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 @@ -9394,6 +9518,11 @@ packages: webpack: 4.46.0 dev: false + /file-type/3.9.0: + resolution: {integrity: sha1-JXoHg4TR24CHvESdEH1SpSZyuek=} + engines: {node: '>=0.10.0'} + dev: false + /file-uri-to-path/1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} @@ -9484,34 +9613,34 @@ packages: path-exists: 4.0.0 dev: true - /firebase/9.6.2: - resolution: {integrity: sha512-YVQa6vYfgs50cooiZYjgvYqpUiPYvNM7yPi72P+6d7VC9ABCMaFJEIaHOPcwjsU+zEA8sChi13yQ66G8lDpZeg==} + /firebase/9.6.3: + resolution: {integrity: sha512-CMzv2LJGruZNtKI6pk1XLVaDC7ujIcq/S57wbC9XGllykIh86GLNPwVEWuCqCWmQDAZLyhi0t6tW/F2NX3HcPA==} dependencies: - '@firebase/analytics': 0.7.5_@firebase+app@0.7.12 - '@firebase/analytics-compat': 0.1.6_66bfbf359ad9540534d7d3b4d84fd1fe - '@firebase/app': 0.7.12 - '@firebase/app-check': 0.5.3_@firebase+app@0.7.12 - '@firebase/app-check-compat': 0.2.3_66bfbf359ad9540534d7d3b4d84fd1fe - '@firebase/app-compat': 0.1.13 + '@firebase/analytics': 0.7.5_@firebase+app@0.7.13 + '@firebase/analytics-compat': 0.1.6_fb07e6c78a9212d45bbd091b58e5ee0a + '@firebase/app': 0.7.13 + '@firebase/app-check': 0.5.3_@firebase+app@0.7.13 + '@firebase/app-check-compat': 0.2.3_fb07e6c78a9212d45bbd091b58e5ee0a + '@firebase/app-compat': 0.1.14 '@firebase/app-types': 0.7.0 - '@firebase/auth': 0.19.5_@firebase+app@0.7.12 - '@firebase/auth-compat': 0.2.5_044646557187b272223ee82a38083841 + '@firebase/auth': 0.19.5_@firebase+app@0.7.13 + '@firebase/auth-compat': 0.2.5_fe4527455d92ca0ea89219dbc846622a '@firebase/database': 0.12.5_@firebase+app-types@0.7.0 - '@firebase/database-compat': 0.1.5_65170875eef5feac1c23e809c425b114 - '@firebase/firestore': 3.4.2_@firebase+app@0.7.12 - '@firebase/firestore-compat': 0.1.11_044646557187b272223ee82a38083841 - '@firebase/functions': 0.7.7_3daa4562355d208034ffb80fd170bb9f - '@firebase/functions-compat': 0.1.8_044646557187b272223ee82a38083841 - '@firebase/installations': 0.5.5_@firebase+app@0.7.12 - '@firebase/messaging': 0.9.5_@firebase+app@0.7.12 - '@firebase/messaging-compat': 0.1.5_66bfbf359ad9540534d7d3b4d84fd1fe - '@firebase/performance': 0.5.5_@firebase+app@0.7.12 - '@firebase/performance-compat': 0.1.5_66bfbf359ad9540534d7d3b4d84fd1fe + '@firebase/database-compat': 0.1.5_d22b532237d23bed2b940d51687d062e + '@firebase/firestore': 3.4.3_@firebase+app@0.7.13 + '@firebase/firestore-compat': 0.1.12_fe4527455d92ca0ea89219dbc846622a + '@firebase/functions': 0.7.7_2e05d680a83d9c95188fdb7a3a80f093 + '@firebase/functions-compat': 0.1.8_fe4527455d92ca0ea89219dbc846622a + '@firebase/installations': 0.5.5_@firebase+app@0.7.13 + '@firebase/messaging': 0.9.6_@firebase+app@0.7.13 + '@firebase/messaging-compat': 0.1.6_fb07e6c78a9212d45bbd091b58e5ee0a + '@firebase/performance': 0.5.5_@firebase+app@0.7.13 + '@firebase/performance-compat': 0.1.5_fb07e6c78a9212d45bbd091b58e5ee0a '@firebase/polyfill': 0.3.36 - '@firebase/remote-config': 0.3.4_@firebase+app@0.7.12 - '@firebase/remote-config-compat': 0.1.5_66bfbf359ad9540534d7d3b4d84fd1fe - '@firebase/storage': 0.9.1_@firebase+app@0.7.12 - '@firebase/storage-compat': 0.1.9_044646557187b272223ee82a38083841 + '@firebase/remote-config': 0.3.4_@firebase+app@0.7.13 + '@firebase/remote-config-compat': 0.1.5_fb07e6c78a9212d45bbd091b58e5ee0a + '@firebase/storage': 0.9.1_@firebase+app@0.7.13 + '@firebase/storage-compat': 0.1.9_fe4527455d92ca0ea89219dbc846622a '@firebase/util': 1.4.3 transitivePeerDependencies: - bufferutil @@ -9628,8 +9757,8 @@ packages: node-domexception: 1.0.0 web-streams-polyfill: 4.0.0-beta.1 - /fp-ts/2.11.6: - resolution: {integrity: sha512-/EDgWhlWXenPvyax2UyKPhdHK+IkVFQZUggby41dCeWgE2F20Z3cx8eWikotwKicfKu7HvZ+tz3xN0vdOGrL6A==} + /fp-ts/2.11.8: + resolution: {integrity: sha512-WQT6rP6Jt3TxMdQB3IKzvfZKLuldumntgumLhIUhvPrukTHdWNI4JgEHY04Bd0LIOR9IQRpB+7RuxgUU0Vhmcg==} dev: false /fragment-cache/0.2.1: @@ -9657,7 +9786,7 @@ packages: resolution: {integrity: sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==} engines: {node: '>=12'} dependencies: - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 jsonfile: 6.1.0 universalify: 2.0.0 dev: true @@ -9702,7 +9831,7 @@ packages: /fs-write-stream-atomic/1.0.10: resolution: {integrity: sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=} dependencies: - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 iferr: 0.1.5 imurmurhash: 0.1.4 readable-stream: 2.3.7 @@ -9977,6 +10106,18 @@ packages: slash: 3.0.0 dev: true + /globby/12.2.0: + resolution: {integrity: sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + array-union: 3.0.1 + dir-glob: 3.0.1 + fast-glob: 3.2.10 + ignore: 5.2.0 + merge2: 1.4.1 + slash: 4.0.0 + dev: true + /globjoin/0.1.4: resolution: {integrity: sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=} dev: true @@ -10026,10 +10167,7 @@ packages: /graceful-fs/4.2.8: resolution: {integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==} - /graceful-fs/4.2.9: - resolution: {integrity: sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==} - - /graphql-config/4.1.0_ff6e0ca8cd9cd37aa1844e8a89a000d0: + /graphql-config/4.1.0_8f91b510d830ea79a04e3946bbf71dff: resolution: {integrity: sha512-Myqay6pmdcmX3KqoH+bMbeKZ1cTODpHS2CxF1ZzNnfTE+YUpGTcp01bOw6LpzamRb0T/WTYtGFbZeXGo9Hab2Q==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -10040,7 +10178,7 @@ packages: '@graphql-tools/json-file-loader': 7.3.3_graphql@15.7.2 '@graphql-tools/load': 7.5.0_graphql@15.7.2 '@graphql-tools/merge': 8.2.1_graphql@15.7.2 - '@graphql-tools/url-loader': 7.7.0_d953db9ea51e310c6c117ebb182bd311 + '@graphql-tools/url-loader': 7.7.0_bd0b9b855776b637cd61b3759b357e33 '@graphql-tools/utils': 8.5.5_graphql@15.7.2 cosmiconfig: 7.0.1 cosmiconfig-toml-loader: 1.0.0 @@ -10053,13 +10191,13 @@ packages: - typescript - utf-8-validate - /graphql-language-service-interface/2.9.1_ff6e0ca8cd9cd37aa1844e8a89a000d0: + /graphql-language-service-interface/2.9.1_8f91b510d830ea79a04e3946bbf71dff: resolution: {integrity: sha512-yGsE67fxJBXxY82+rLDMvUpmzpOUM8XFB+k+xOTUyABWs27osKaoGiuDDXAVGg1adhm+cpunWbipe763ZJkAVA==} peerDependencies: graphql: '>= 15.5.0 <= 16.0.0-experimental-stream-defer.5' dependencies: graphql: 15.7.2 - graphql-language-service-parser: 1.10.4_ff6e0ca8cd9cd37aa1844e8a89a000d0 + graphql-language-service-parser: 1.10.4_8f91b510d830ea79a04e3946bbf71dff graphql-language-service-types: 1.8.3_graphql@15.7.2 graphql-language-service-utils: 2.6.0_graphql@15.7.2 vscode-languageserver-types: 3.16.0 @@ -10070,13 +10208,13 @@ packages: - utf-8-validate dev: false - /graphql-language-service-parser/1.10.4_ff6e0ca8cd9cd37aa1844e8a89a000d0: + /graphql-language-service-parser/1.10.4_8f91b510d830ea79a04e3946bbf71dff: resolution: {integrity: sha512-duDE+0aeKLFVrb9Kf28U84ZEHhHcvTjWIT6dJbIAQJWBaDoht0D4BK9EIhd94I3DtKRc1JCJb2+70y1lvP/hiA==} peerDependencies: graphql: ^15.5.0 || ^16.0.0 dependencies: graphql: 15.7.2 - graphql-language-service-types: 1.8.7_ff6e0ca8cd9cd37aa1844e8a89a000d0 + graphql-language-service-types: 1.8.7_8f91b510d830ea79a04e3946bbf71dff transitivePeerDependencies: - '@types/node' - bufferutil @@ -10092,13 +10230,13 @@ packages: graphql: 15.7.2 dev: false - /graphql-language-service-types/1.8.7_ff6e0ca8cd9cd37aa1844e8a89a000d0: + /graphql-language-service-types/1.8.7_8f91b510d830ea79a04e3946bbf71dff: resolution: {integrity: sha512-LP/Mx0nFBshYEyD0Ny6EVGfacJAGVx+qXtlJP4hLzUdBNOGimfDNtMVIdZANBXHXcM41MDgMHTnyEx2g6/Ttbw==} peerDependencies: graphql: ^15.5.0 || ^16.0.0 dependencies: graphql: 15.7.2 - graphql-config: 4.1.0_ff6e0ca8cd9cd37aa1844e8a89a000d0 + graphql-config: 4.1.0_8f91b510d830ea79a04e3946bbf71dff vscode-languageserver-types: 3.16.0 transitivePeerDependencies: - '@types/node' @@ -10205,7 +10343,7 @@ packages: dependencies: chalk: 2.4.2 find-cache-dir: 2.1.0 - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 lodash: 4.17.21 mkdirp: 0.5.5 node-object-hash: 1.4.2 @@ -10338,7 +10476,6 @@ packages: dependencies: capital-case: 1.0.4 tslib: 2.3.1 - dev: true /helpertypes/0.0.17: resolution: {integrity: sha512-muWKRSBsqN3MzqLdh82QfV7vWWwAYvHh3On87z898X+xZ5H2tPRQ5Y6hHA3BXSE+TueztA07iw5bInjwAT3x8A==} @@ -10367,8 +10504,8 @@ packages: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true - /hosted-git-info/4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + /hosted-git-info/4.0.2: + resolution: {integrity: sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==} engines: {node: '>=10'} dependencies: lru-cache: 6.0.0 @@ -10545,6 +10682,10 @@ packages: - debug dev: false + /http-reasons/0.1.0: + resolution: {integrity: sha1-qVPKZwB4Zp3eFCzomUAbnW6F07Q=} + dev: false + /http-shutdown/1.2.2: resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} @@ -10609,6 +10750,13 @@ packages: dependencies: safer-buffer: 2.1.2 + /iconv-lite/0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: false + /icss-utils/4.1.1: resolution: {integrity: sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==} engines: {node: '>= 6'} @@ -10704,8 +10852,8 @@ packages: engines: {node: '>=8'} dev: true - /import-local/3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + /import-local/3.0.3: + resolution: {integrity: sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==} engines: {node: '>=8'} hasBin: true dependencies: @@ -10797,6 +10945,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'} @@ -10811,12 +10974,12 @@ packages: loose-envify: 1.4.0 dev: true - /io-ts/2.2.16_fp-ts@2.11.6: + /io-ts/2.2.16_fp-ts@2.11.8: resolution: {integrity: sha512-y5TTSa6VP6le0hhmIyN0dqEXkrZeJLeC5KApJq6VLci3UEKF80lZ+KuoUs02RhBxNWlrqSNxzfI7otLX1Euv8Q==} peerDependencies: fp-ts: ^2.5.0 dependencies: - fp-ts: 2.11.6 + fp-ts: 2.11.8 /ip/1.1.5: resolution: {integrity: sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=} @@ -10910,12 +11073,6 @@ packages: dependencies: has: 1.0.3 - /is-core-module/2.8.1: - resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==} - dependencies: - has: 1.0.3 - dev: true - /is-data-descriptor/0.1.4: resolution: {integrity: sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=} engines: {node: '>=0.10.0'} @@ -11323,7 +11480,7 @@ packages: '@jest/environment': 27.4.6 '@jest/test-result': 27.4.6 '@jest/types': 27.4.2 - '@types/node': 17.0.8 + '@types/node': 17.0.9 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -11358,8 +11515,8 @@ packages: '@jest/types': 27.4.2 chalk: 4.1.2 exit: 0.1.2 - graceful-fs: 4.2.9 - import-local: 3.1.0 + graceful-fs: 4.2.8 + import-local: 3.0.3 jest-config: 27.4.7 jest-util: 27.4.2 jest-validate: 27.4.6 @@ -11390,7 +11547,7 @@ packages: ci-info: 3.3.0 deepmerge: 4.2.2 glob: 7.2.0 - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 jest-circus: 27.4.6 jest-environment-jsdom: 27.4.6 jest-environment-node: 27.4.6 @@ -11421,6 +11578,16 @@ packages: pretty-format: 26.6.2 dev: true + /jest-diff/27.4.2: + resolution: {integrity: sha512-ujc9ToyUZDh9KcqvQDkk/gkbf6zSaeEg9AiBxtttXW59H/AcqEYp1ciXAtJp+jXWva5nAf/ePtSsgWwE5mqp4Q==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 27.4.0 + jest-get-type: 27.4.0 + pretty-format: 27.4.2 + dev: true + /jest-diff/27.4.6: resolution: {integrity: sha512-zjaB0sh0Lb13VyPsd92V7HkqF6yKRH9vm33rwBt7rPYrpQvS1nCvlIy2pICbKta+ZjWngYLNn4cCK4nyZkjS/w==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -11456,7 +11623,7 @@ packages: '@jest/environment': 27.4.6 '@jest/fake-timers': 27.4.6 '@jest/types': 27.4.2 - '@types/node': 17.0.8 + '@types/node': 17.0.9 jest-mock: 27.4.6 jest-util: 27.4.2 jsdom: 16.7.0 @@ -11474,7 +11641,7 @@ packages: '@jest/environment': 27.4.6 '@jest/fake-timers': 27.4.6 '@jest/types': 27.4.2 - '@types/node': 17.0.8 + '@types/node': 17.0.9 jest-mock: 27.4.6 jest-util: 27.4.2 dev: true @@ -11495,10 +11662,10 @@ packages: dependencies: '@jest/types': 27.4.2 '@types/graceful-fs': 4.1.5 - '@types/node': 17.0.8 + '@types/node': 17.0.9 anymatch: 3.1.2 fb-watchman: 2.0.1 - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 jest-regex-util: 27.4.0 jest-serializer: 27.4.0 jest-util: 27.4.2 @@ -11517,7 +11684,7 @@ packages: '@jest/source-map': 27.4.0 '@jest/test-result': 27.4.6 '@jest/types': 27.4.2 - '@types/node': 17.0.8 + '@types/node': 17.0.9 chalk: 4.1.2 co: 4.6.0 expect: 27.4.6 @@ -11570,7 +11737,7 @@ packages: '@jest/types': 26.6.2 '@types/stack-utils': 2.0.1 chalk: 4.1.2 - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 micromatch: 4.0.4 pretty-format: 26.6.2 slash: 3.0.0 @@ -11585,7 +11752,7 @@ packages: '@jest/types': 27.4.2 '@types/stack-utils': 2.0.1 chalk: 4.1.2 - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 micromatch: 4.0.4 pretty-format: 27.4.6 slash: 3.0.0 @@ -11597,7 +11764,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.4.2 - '@types/node': 17.0.8 + '@types/node': 17.0.9 dev: true /jest-pnp-resolver/1.2.2_jest-resolve@27.4.6: @@ -11639,12 +11806,12 @@ packages: dependencies: '@jest/types': 27.4.2 chalk: 4.1.2 - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 jest-haste-map: 27.4.6 jest-pnp-resolver: 1.2.2_jest-resolve@27.4.6 jest-util: 27.4.2 jest-validate: 27.4.6 - resolve: 1.21.0 + resolve: 1.20.0 resolve.exports: 1.1.0 slash: 3.0.0 dev: true @@ -11658,11 +11825,11 @@ packages: '@jest/test-result': 27.4.6 '@jest/transform': 27.4.6 '@jest/types': 27.4.2 - '@types/node': 17.0.8 + '@types/node': 17.0.9 chalk: 4.1.2 emittery: 0.8.1 exit: 0.1.2 - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 jest-docblock: 27.4.0 jest-environment-jsdom: 27.4.6 jest-environment-node: 27.4.6 @@ -11698,7 +11865,7 @@ packages: collect-v8-coverage: 1.0.1 execa: 5.1.1 glob: 7.2.0 - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 jest-haste-map: 27.4.6 jest-message-util: 27.4.6 jest-mock: 27.4.6 @@ -11722,8 +11889,8 @@ packages: resolution: {integrity: sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@types/node': 17.0.8 - graceful-fs: 4.2.9 + '@types/node': 17.0.9 + graceful-fs: 4.2.8 dev: true /jest-snapshot/27.4.6: @@ -11742,7 +11909,7 @@ packages: babel-preset-current-node-syntax: 1.0.1_@babel+core@7.16.7 chalk: 4.1.2 expect: 27.4.6 - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 jest-diff: 27.4.6 jest-get-type: 27.4.0 jest-haste-map: 27.4.6 @@ -11761,10 +11928,10 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.4.2 - '@types/node': 17.0.8 + '@types/node': 17.0.9 chalk: 4.1.2 ci-info: 3.3.0 - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 picomatch: 2.3.1 dev: true @@ -11786,7 +11953,7 @@ packages: dependencies: '@jest/test-result': 27.4.6 '@jest/types': 27.4.2 - '@types/node': 17.0.8 + '@types/node': 17.0.9 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 27.4.2 @@ -11797,7 +11964,7 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 16.11.6 + '@types/node': 17.0.6 merge-stream: 2.0.0 supports-color: 7.2.0 @@ -11805,7 +11972,7 @@ packages: resolution: {integrity: sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 16.11.12 + '@types/node': 17.0.6 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -11814,7 +11981,7 @@ packages: resolution: {integrity: sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 17.0.8 + '@types/node': 17.0.9 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -11830,7 +11997,7 @@ packages: optional: true dependencies: '@jest/core': 27.4.7 - import-local: 3.1.0 + import-local: 3.0.3 jest-cli: 27.4.7 transitivePeerDependencies: - bufferutil @@ -11892,7 +12059,6 @@ packages: hasBin: true dependencies: argparse: 2.0.1 - dev: true /jsdom/16.7.0: resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==} @@ -11963,6 +12129,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==} @@ -12021,7 +12195,7 @@ packages: dependencies: universalify: 2.0.0 optionalDependencies: - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 /jsonify/0.0.0: resolution: {integrity: sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=} @@ -12199,7 +12373,7 @@ packages: debug: 4.3.3_supports-color@9.2.1 execa: 5.1.1 lilconfig: 2.0.4 - listr2: 3.14.0 + listr2: 3.13.5 micromatch: 4.0.4 normalize-path: 3.0.0 object-inspect: 1.12.0 @@ -12210,6 +12384,11 @@ packages: - enquirer dev: false + /liquid-json/0.3.1: + resolution: {integrity: sha1-kVWhgTbYprJhXl8W+aJEira1Duo=} + engines: {node: '>=4'} + dev: false + /listhen/0.2.5: resolution: {integrity: sha512-7stTOFjeQHVkDqpPl0AtGdzXNu1XN5sE2Pi4mudeZ597c100OKvUpmPuv3MKemDScIWqmIbeUOeP3PBo0w49XQ==} dependencies: @@ -12271,8 +12450,8 @@ packages: - zen-observable dev: true - /listr2/3.14.0: - resolution: {integrity: sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==} + /listr2/3.13.5: + resolution: {integrity: sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA==} engines: {node: '>=10.0.0'} peerDependencies: enquirer: '>= 2.3.0 < 3' @@ -12391,6 +12570,10 @@ packages: resolution: {integrity: sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=} dev: true + /lodash.isequal/4.5.0: + resolution: {integrity: sha1-QVxEePK8wwEgwizhDtMib30+GOA=} + dev: false + /lodash.isinteger/4.0.4: resolution: {integrity: sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=} dev: true @@ -12721,7 +12904,7 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - /meros/1.1.4_@types+node@17.0.8: + /meros/1.1.4_@types+node@17.0.9: resolution: {integrity: sha512-E9ZXfK9iQfG9s73ars9qvvvbSIkJZF5yOo9j4tcwM5tN8mUKfj/EKN5PzOr3ZH0y5wL7dLAHw3RVEfpQV9Q7VQ==} engines: {node: '>=12'} peerDependencies: @@ -12730,7 +12913,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 17.0.8 + '@types/node': 17.0.9 /micromatch/3.1.0: resolution: {integrity: sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==} @@ -12793,6 +12976,12 @@ packages: resolution: {integrity: sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==} engines: {node: '>= 0.6'} + /mime-format/2.0.1: + resolution: {integrity: sha512-XxU3ngPbEnrYnNbIX+lYSaYg0M01v6p2ntd2YaFksTu0vayaw5OJvbdRyWs07EYRlLED5qadUZ+xo+XhOvFhwg==} + dependencies: + charset: 1.0.1 + dev: false + /mime-types/2.1.33: resolution: {integrity: sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==} engines: {node: '>= 0.6'} @@ -13217,7 +13406,7 @@ packages: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 - resolve: 1.21.0 + resolve: 1.20.0 semver: 5.7.1 validate-npm-package-license: 3.0.4 dev: true @@ -13226,8 +13415,8 @@ packages: resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} engines: {node: '>=10'} dependencies: - hosted-git-info: 4.1.0 - is-core-module: 2.8.1 + hosted-git-info: 4.0.2 + is-core-module: 2.8.0 semver: 7.3.5 validate-npm-package-license: 3.0.4 dev: true @@ -13337,7 +13526,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-27369360.33ebb01 '@windicss/plugin-utils': 1.6.1 consola: 2.15.3 defu: 5.0.0 @@ -13483,6 +13672,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'} @@ -13492,6 +13689,19 @@ 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 + /opener/1.5.2: resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} hasBin: true @@ -13794,7 +14004,6 @@ packages: dependencies: dot-case: 3.0.4 tslib: 2.3.1 - dev: true /path-dirname/1.0.2: resolution: {integrity: sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=} @@ -13869,6 +14078,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==} @@ -14723,6 +14936,30 @@ packages: posthtml-render: 1.4.0 dev: true + /postman-collection/4.1.1: + resolution: {integrity: sha512-ODpJtlf8r99DMcTU7gFmi/yvQYckFzcuE6zL/fWnyrFT34ugdCBFlX+DN7M+AnP6lmR822fv5s60H4DnL4+fAg==} + engines: {node: '>=10'} + dependencies: + faker: 5.5.3 + file-type: 3.9.0 + http-reasons: 0.1.0 + iconv-lite: 0.6.3 + liquid-json: 0.3.1 + lodash: 4.17.21 + mime-format: 2.0.1 + mime-types: 2.1.34 + postman-url-encoder: 3.0.5 + semver: 7.3.5 + uuid: 8.3.2 + dev: false + + /postman-url-encoder/3.0.5: + resolution: {integrity: sha512-jOrdVvzUXBC7C+9gkIkpDJ3HIxOHTIqjpQ4C1EMt1ZGeMvSEpbFCKq23DEfgsj46vMnDgyQf+1ZLp2Wm+bKSsA==} + engines: {node: '>=10'} + dependencies: + punycode: 2.1.1 + dev: false + /prelude-ls/1.1.2: resolution: {integrity: sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=} engines: {node: '>= 0.8.0'} @@ -14777,6 +15014,16 @@ packages: react-is: 17.0.2 dev: true + /pretty-format/27.4.2: + resolution: {integrity: sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/types': 27.4.2 + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 17.0.2 + dev: true + /pretty-format/27.4.6: resolution: {integrity: sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -14845,7 +15092,7 @@ packages: /proper-lockfile/4.1.2: resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} dependencies: - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 retry: 0.12.0 signal-exit: 3.0.5 dev: false @@ -14870,7 +15117,7 @@ packages: '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 '@types/long': 4.0.1 - '@types/node': 17.0.8 + '@types/node': 17.0.9 long: 4.0.0 dev: false @@ -15105,7 +15352,7 @@ packages: resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} engines: {node: '>=0.10'} dependencies: - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 micromatch: 3.1.10 readable-stream: 2.3.7 dev: false @@ -15340,15 +15587,6 @@ packages: is-core-module: 2.8.0 path-parse: 1.0.7 - /resolve/1.21.0: - resolution: {integrity: sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==} - hasBin: true - dependencies: - is-core-module: 2.8.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - /responselike/1.0.2: resolution: {integrity: sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=} dependencies: @@ -15421,7 +15659,7 @@ packages: inherits: 2.0.4 dev: false - /rollup-plugin-dts/4.1.0_rollup@2.63.0+typescript@4.5.4: + /rollup-plugin-dts/4.1.0_rollup@2.64.0+typescript@4.5.4: resolution: {integrity: sha512-rriXIm3jdUiYeiAAd1Fv+x2AxK6Kq6IybB2Z/IdoAW95fb4uRUurYsEYKa8L1seedezDeJhy8cfo8FEL9aZzqg==} engines: {node: '>=v12.22.7'} peerDependencies: @@ -15429,13 +15667,13 @@ packages: typescript: ~4.1 || ~4.2 || ~4.3 || ~4.4 || ~4.5 dependencies: magic-string: 0.25.7 - rollup: 2.63.0 + rollup: 2.64.0 typescript: 4.5.4 optionalDependencies: '@babel/code-frame': 7.16.7 dev: true - /rollup-plugin-ts/2.0.5_rollup@2.63.0+typescript@4.5.4: + /rollup-plugin-ts/2.0.5_rollup@2.64.0+typescript@4.5.4: resolution: {integrity: sha512-yLfu46XsheAEDs+OxCMnHszble9pYwGYDML82lpMw3x/65kgwd9UQSkPX0HZGk+6L+MN8hFgqeh+SPmv+uOz1w==} engines: {node: '>=10.0.0', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'} peerDependencies: @@ -15469,14 +15707,14 @@ packages: compatfactory: 0.0.12_typescript@4.5.4 crosspath: 1.0.0 magic-string: 0.25.7 - rollup: 2.63.0 + rollup: 2.64.0 ts-clone-node: 0.3.30_typescript@4.5.4 tslib: 2.3.1 typescript: 4.5.4 dev: true - /rollup/2.63.0: - resolution: {integrity: sha512-nps0idjmD+NXl6OREfyYXMn/dar3WGcyKn+KBzPdaLecub3x/LrId0wUcthcr8oZUAcZAR8NKcfGGFlNgGL1kQ==} + /rollup/2.64.0: + resolution: {integrity: sha512-+c+lbw1lexBKSMb1yxGDVfJ+vchJH3qLbmavR+awDinTDA2C5Ug9u7lkOzj62SCu0PKUExsW36tpgW7Fmpn3yQ==} engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: @@ -15529,7 +15767,7 @@ packages: /safer-buffer/2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - /sass-loader/10.1.1_sass@1.47.0: + /sass-loader/10.1.1_sass@1.48.0: resolution: {integrity: sha512-W6gVDXAd5hR/WHsPicvZdjAWHBcEJ44UahgxcIE196fW2ong0ZHMPO1kZuI5q0VlvMQZh32gpv69PLWQm70qrw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -15548,12 +15786,12 @@ packages: klona: 2.0.5 loader-utils: 2.0.1 neo-async: 2.6.2 - sass: 1.47.0 + sass: 1.48.0 schema-utils: 3.1.1 semver: 7.3.5 dev: true - /sass-loader/10.2.0_sass@1.47.0: + /sass-loader/10.2.0_sass@1.48.0: resolution: {integrity: sha512-kUceLzC1gIHz0zNJPpqRsJyisWatGYNFRmv2CKZK2/ngMJgLqxTbXwe/hJ85luyvZkgqU3VlJ33UVF2T/0g6mw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -15572,13 +15810,13 @@ packages: klona: 2.0.5 loader-utils: 2.0.1 neo-async: 2.6.2 - sass: 1.47.0 + sass: 1.48.0 schema-utils: 3.1.1 semver: 7.3.5 dev: true - /sass/1.47.0: - resolution: {integrity: sha512-GtXwvwgD7/6MLUZPnlA5/8cdRgC9SzT5kAnnJMRmEZQFRE3J56Foswig4NyyyQGsnmNvg6EUM/FP0Pe9Y2zywQ==} + /sass/1.48.0: + resolution: {integrity: sha512-hQi5g4DcfjcipotoHZ80l7GNJHGqQS5LwMBjVYB/TaT0vcSSpbgM8Ad7cgfsB2M0MinbkEQQPO9+sjjSiwxqmw==} engines: {node: '>=8.9.0'} hasBin: true dependencies: @@ -15713,7 +15951,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==} @@ -15881,6 +16118,11 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + /slash/4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: true + /slice-ansi/0.0.4: resolution: {integrity: sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=} engines: {node: '>=0.10.0'} @@ -15916,7 +16158,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==} @@ -16307,12 +16548,12 @@ packages: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - /string-width/5.1.0: - resolution: {integrity: sha512-7x54QnN21P+XL/v8SuNKvfgsUre6PXpN7mc77N3HlZv+f1SBRGmjxtOud2Z6FZ8DmdkD/IdjCaf9XXbnqmTZGQ==} + /string-width/5.0.1: + resolution: {integrity: sha512-5ohWO/M4//8lErlUUtrFy3b11GtNOuMOU0ysKCDXFcfXuuvUXu95akgj/i8ofmaGdN0hCqyl6uu9i8dS/mQp5g==} engines: {node: '>=12'} dependencies: - eastasianwidth: 0.2.0 emoji-regex: 9.2.2 + is-fullwidth-code-point: 4.0.0 strip-ansi: 7.0.1 dev: false @@ -16648,11 +16889,6 @@ packages: supports-color: 7.2.0 dev: true - /supports-preserve-symlinks-flag/1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: true - /svg-baker-runtime/1.4.7: resolution: {integrity: sha512-Zorfwwj5+lWjk/oxwSMsRdS2sPQQdTmmsvaSpzU+i9ZWi3zugHLt6VckWfnswphQP0LmOel3nggpF5nETbt6xw==} dependencies: @@ -16724,6 +16960,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: @@ -17179,7 +17431,7 @@ packages: resolution: {integrity: sha512-DEQrfv6l7IvN2jlzc/VTdZJYsWUnQNCsueYjMkC/iXoEoi5fNan6MjeDqkvhfzbmHgdz9UxDUluX3V5HdjTydQ==} dev: true - /ts-node/10.4.0_faf01e1d5a40372a98081522dcafc186: + /ts-node/10.4.0_58ff8c2ecf784f4683a8548a58a2b611: resolution: {integrity: sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==} hasBin: true peerDependencies: @@ -17198,7 +17450,7 @@ packages: '@tsconfig/node12': 1.0.9 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.2 - '@types/node': 17.0.8 + '@types/node': 17.0.9 acorn: 8.7.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -17269,17 +17521,17 @@ packages: typescript: optional: true dependencies: - bundle-require: 2.2.0_esbuild@0.14.11 + bundle-require: 2.2.0_esbuild@0.14.10 cac: 6.7.12 chokidar: 3.5.2 debug: 4.3.3 - esbuild: 0.14.11 + esbuild: 0.14.10 execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 postcss-load-config: 3.1.1 resolve-from: 5.0.0 - rollup: 2.63.0 + rollup: 2.64.0 source-map: 0.7.3 sucrase: 3.20.3 tree-kill: 1.2.2 @@ -17552,7 +17804,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=} @@ -17562,7 +17813,6 @@ packages: resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} dependencies: tslib: 2.3.1 - dev: true /uri-js/4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -17677,8 +17927,8 @@ packages: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} dev: true - /v8-to-istanbul/8.1.1: - resolution: {integrity: sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==} + /v8-to-istanbul/8.1.0: + resolution: {integrity: sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==} engines: {node: '>=10.12.0'} dependencies: '@types/istanbul-lib-coverage': 2.0.4 @@ -17696,6 +17946,11 @@ packages: spdx-expression-parse: 3.0.1 dev: true + /validator/13.7.0: + resolution: {integrity: sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==} + engines: {node: '>= 0.10'} + dev: false + /value-or-promise/1.0.11: resolution: {integrity: sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==} engines: {node: '>=12'} @@ -17972,7 +18227,7 @@ packages: /watchpack/1.7.5: resolution: {integrity: sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==} dependencies: - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 neo-async: 2.6.2 optionalDependencies: chokidar: 3.5.2 @@ -18300,7 +18555,7 @@ packages: /write-file-atomic/2.4.3: resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} dependencies: - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 imurmurhash: 0.1.4 signal-exit: 3.0.6 dev: false @@ -18319,7 +18574,7 @@ packages: engines: {node: '>=4'} dependencies: detect-indent: 5.0.0 - graceful-fs: 4.2.9 + graceful-fs: 4.2.8 make-dir: 1.3.0 pify: 3.0.0 sort-keys: 2.0.0 @@ -18392,6 +18647,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'} @@ -18401,6 +18669,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'} @@ -18458,11 +18732,11 @@ packages: /yargs-parser/20.2.4: resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} engines: {node: '>=10'} - dev: true /yargs-parser/20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} + dev: true /yargs-parser/21.0.0: resolution: {integrity: sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==} @@ -18505,7 +18779,7 @@ packages: require-directory: 2.1.1 string-width: 4.2.3 y18n: 5.0.8 - yargs-parser: 20.2.9 + yargs-parser: 20.2.4 /yargs/17.3.1: resolution: {integrity: sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==} @@ -18520,6 +18794,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 @@ -18532,6 +18813,30 @@ 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'} + hasBin: true + dependencies: + lodash.get: 4.4.2 + lodash.isequal: 4.5.0 + validator: 13.7.0 + optionalDependencies: + commander: 2.20.3 + dev: false + /zen-observable-ts/1.2.3: resolution: {integrity: sha512-hc/TGiPkAWpByykMwDcem3SdUgA4We+0Qb36bItSuJC9xD0XVBZoFHYoadAomDSNf64CG8Ydj0Qb8Od8BUWz5g==} dependencies:
+ + check_circle + + + {{ t(`${step.metadata.caption}`) }} + +
+ +