feat: introduces ability to export single environment variables and allow CLI to accept the export format used by the app (#3380)

* feat: add ability to export a single environment

* refactor: export environment without id

* feat: introducing zod for checking json format for environment variables

* refactor: new zod specific type for HoppEnvPair

* feat: add ability to export single environment in team environment

* refactor: moved zod as a dependency to devDependency

* refactor: separated repeating logic to helper file

* refactor: removed unnecessary to string operation

* chore: rearranged smart item placement

* refactor: introduced error type when a bulk environment export is used in cli

* refactor: removed unnecssary type exports and updated logic and variable names across most files

* refactor: better logic for type shapes

* chore: bump hoppscotch-cli package version

---------

Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
This commit is contained in:
Joel Jacob Stephen
2023-10-06 11:21:54 +05:30
committed by GitHub
parent 2694731c36
commit 185c225297
11 changed files with 196 additions and 258 deletions

View File

@@ -1,6 +1,6 @@
{ {
"name": "@hoppscotch/cli", "name": "@hoppscotch/cli",
"version": "0.3.2", "version": "0.3.3",
"description": "A CLI to run Hoppscotch test scripts in CI environments.", "description": "A CLI to run Hoppscotch test scripts in CI environments.",
"homepage": "https://hoppscotch.io", "homepage": "https://hoppscotch.io",
"main": "dist/index.js", "main": "dist/index.js",
@@ -55,6 +55,7 @@
"qs": "^6.10.3", "qs": "^6.10.3",
"ts-jest": "^27.1.4", "ts-jest": "^27.1.4",
"tsup": "^5.12.7", "tsup": "^5.12.7",
"typescript": "^4.6.4" "typescript": "^4.6.4",
"zod": "^3.22.2"
} }
} }

View File

@@ -48,6 +48,11 @@ export const handleError = <T extends HoppErrorCode>(error: HoppError<T>) => {
ERROR_MSG = `Unavailable command: ${error.command}`; ERROR_MSG = `Unavailable command: ${error.command}`;
break; break;
case "MALFORMED_ENV_FILE": case "MALFORMED_ENV_FILE":
ERROR_MSG = `The environment file is not of the correct format.`;
break;
case "BULK_ENV_FILE":
ERROR_MSG = `CLI doesn't support bulk environments export.`;
break;
case "MALFORMED_COLLECTION": case "MALFORMED_COLLECTION":
ERROR_MSG = `${error.path}\n${parseErrorData(error.data)}`; ERROR_MSG = `${error.path}\n${parseErrorData(error.data)}`;
break; break;
@@ -82,4 +87,4 @@ export const handleError = <T extends HoppErrorCode>(error: HoppError<T>) => {
if (!S.isEmpty(ERROR_MSG)) { if (!S.isEmpty(ERROR_MSG)) {
console.error(ERROR_CODE, ERROR_MSG); console.error(ERROR_CODE, ERROR_MSG);
} }
}; };

View File

@@ -1,27 +1,45 @@
import { error } from "../../types/errors"; import { error } from "../../types/errors";
import { HoppEnvs, HoppEnvPair } from "../../types/request"; import {
HoppEnvs,
HoppEnvPair,
HoppEnvKeyPairObject,
HoppEnvExportObject,
HoppBulkEnvExportObject,
} from "../../types/request";
import { readJsonFile } from "../../utils/mutators"; import { readJsonFile } from "../../utils/mutators";
/** /**
* Parses env json file for given path and validates the parsed env json object. * Parses env json file for given path and validates the parsed env json object.
* @param path Path of env.json file to be parsed. * @param path Path of env.json file to be parsed.
* @returns For successful parsing we get HoppEnvs object. * @returns For successful parsing we get HoppEnvs object.
*/ */
export async function parseEnvsData(path: string) { export async function parseEnvsData(path: string) {
const contents = await readJsonFile(path) const contents = await readJsonFile(path);
const envPairs: Array<HoppEnvPair> = [];
const HoppEnvKeyPairResult = HoppEnvKeyPairObject.safeParse(contents);
const HoppEnvExportObjectResult = HoppEnvExportObject.safeParse(contents);
const HoppBulkEnvExportObjectResult =
HoppBulkEnvExportObject.safeParse(contents);
if(!(contents && typeof contents === "object" && !Array.isArray(contents))) { // CLI doesnt support bulk environments export.
throw error({ code: "MALFORMED_ENV_FILE", path, data: null }) // Hence we check for this case and throw an error if it matches the format.
if (HoppBulkEnvExportObjectResult.success) {
throw error({ code: "BULK_ENV_FILE", path, data: error });
} }
const envPairs: Array<HoppEnvPair> = [] // Checks if the environment file is of the correct format.
// If it doesnt match either of them, we throw an error.
if (!(HoppEnvKeyPairResult.success || HoppEnvExportObjectResult.success)) {
throw error({ code: "MALFORMED_ENV_FILE", path, data: error });
}
for( const [key,value] of Object.entries(contents)) { if (HoppEnvKeyPairResult.success) {
if(typeof value !== "string") { for (const [key, value] of Object.entries(HoppEnvKeyPairResult.data)) {
throw error({ code: "MALFORMED_ENV_FILE", path, data: {value: value} }) envPairs.push({ key, value });
} }
} else if (HoppEnvExportObjectResult.success) {
envPairs.push({key, value}) const { key, value } = HoppEnvExportObjectResult.data.variables[0];
envPairs.push({ key, value });
} }
return <HoppEnvs>{ global: [], selected: envPairs }
return <HoppEnvs>{ global: [], selected: envPairs };
} }

View File

@@ -24,6 +24,7 @@ type HoppErrors = {
REQUEST_ERROR: HoppErrorData; REQUEST_ERROR: HoppErrorData;
INVALID_ARGUMENT: HoppErrorData; INVALID_ARGUMENT: HoppErrorData;
MALFORMED_ENV_FILE: HoppErrorPath & HoppErrorData; MALFORMED_ENV_FILE: HoppErrorPath & HoppErrorData;
BULK_ENV_FILE: HoppErrorPath & HoppErrorData;
INVALID_FILE_TYPE: HoppErrorData; INVALID_FILE_TYPE: HoppErrorData;
}; };

View File

@@ -1,6 +1,7 @@
import { HoppCollection, HoppRESTRequest } from "@hoppscotch/data"; import { HoppCollection, HoppRESTRequest } from "@hoppscotch/data";
import { TestReport } from "../interfaces/response"; import { TestReport } from "../interfaces/response";
import { HoppCLIError } from "./errors"; import { HoppCLIError } from "./errors";
import { z } from "zod";
export type FormDataEntry = { export type FormDataEntry = {
key: string; key: string;
@@ -9,6 +10,22 @@ export type FormDataEntry = {
export type HoppEnvPair = { key: string; value: string }; export type HoppEnvPair = { key: string; value: string };
export const HoppEnvKeyPairObject = z.record(z.string(), z.string());
// Shape of the single environment export object that is exported from the app.
export const HoppEnvExportObject = z.object({
name: z.string(),
variables: z.array(
z.object({
key: z.string(),
value: z.string(),
})
),
});
// Shape of the bulk environment export object that is exported from the app.
export const HoppBulkEnvExportObject = z.array(HoppEnvExportObject);
export type HoppEnvs = { export type HoppEnvs = {
global: HoppEnvPair[]; global: HoppEnvPair[];
selected: HoppEnvPair[]; selected: HoppEnvPair[];

View File

@@ -746,6 +746,7 @@
"disconnected_from": "Disconnected from {name}", "disconnected_from": "Disconnected from {name}",
"docs_generated": "Documentation generated", "docs_generated": "Documentation generated",
"download_started": "Download started", "download_started": "Download started",
"download_failed": "Download failed",
"enabled": "Enabled", "enabled": "Enabled",
"file_imported": "File imported", "file_imported": "File imported",
"finished_in": "Finished in {duration} ms", "finished_in": "Finished in {duration} ms",

View File

@@ -46,6 +46,7 @@
role="menu" role="menu"
@keyup.e="edit!.$el.click()" @keyup.e="edit!.$el.click()"
@keyup.d="duplicate!.$el.click()" @keyup.d="duplicate!.$el.click()"
@keyup.j="exportAsJsonEl!.$el.click()"
@keyup.delete=" @keyup.delete="
!(environmentIndex === 'Global') !(environmentIndex === 'Global')
? deleteAction!.$el.click() ? deleteAction!.$el.click()
@@ -77,6 +78,18 @@
} }
" "
/> />
<HoppSmartItem
ref="exportAsJsonEl"
:icon="IconEdit"
:label="`${t('export.as_json')}`"
:shortcut="['J']"
@click="
() => {
exportEnvironmentAsJSON()
hide()
}
"
/>
<HoppSmartItem <HoppSmartItem
v-if="environmentIndex !== 'Global'" v-if="environmentIndex !== 'Global'"
ref="deleteAction" ref="deleteAction"
@@ -121,6 +134,7 @@ import { useI18n } from "@composables/i18n"
import { useToast } from "@composables/toast" import { useToast } from "@composables/toast"
import { TippyComponent } from "vue-tippy" import { TippyComponent } from "vue-tippy"
import { HoppSmartItem } from "@hoppscotch/ui" import { HoppSmartItem } from "@hoppscotch/ui"
import { exportAsJSON } from "~/helpers/import-export/export/environment"
const t = useI18n() const t = useI18n()
const toast = useToast() const toast = useToast()
@@ -136,10 +150,18 @@ const emit = defineEmits<{
const confirmRemove = ref(false) const confirmRemove = ref(false)
const exportEnvironmentAsJSON = () => {
const { environment, environmentIndex } = props
exportAsJSON(environment, environmentIndex)
? toast.success(t("state.download_started"))
: toast.error(t("state.download_failed"))
}
const tippyActions = ref<TippyComponent | null>(null) const tippyActions = ref<TippyComponent | null>(null)
const options = ref<TippyComponent | null>(null) const options = ref<TippyComponent | null>(null)
const edit = ref<typeof HoppSmartItem>() const edit = ref<typeof HoppSmartItem>()
const duplicate = ref<typeof HoppSmartItem>() const duplicate = ref<typeof HoppSmartItem>()
const exportAsJsonEl = ref<typeof HoppSmartItem>()
const deleteAction = ref<typeof HoppSmartItem>() const deleteAction = ref<typeof HoppSmartItem>()
const removeEnvironment = () => { const removeEnvironment = () => {

View File

@@ -39,6 +39,7 @@
role="menu" role="menu"
@keyup.e="edit!.$el.click()" @keyup.e="edit!.$el.click()"
@keyup.d="duplicate!.$el.click()" @keyup.d="duplicate!.$el.click()"
@keyup.j="exportAsJsonEl!.$el.click()"
@keyup.delete="deleteAction!.$el.click()" @keyup.delete="deleteAction!.$el.click()"
@keyup.escape="options!.tippy().hide()" @keyup.escape="options!.tippy().hide()"
> >
@@ -54,6 +55,7 @@
} }
" "
/> />
<HoppSmartItem <HoppSmartItem
ref="duplicate" ref="duplicate"
:icon="IconCopy" :icon="IconCopy"
@@ -66,6 +68,18 @@
} }
" "
/> />
<HoppSmartItem
ref="exportAsJsonEl"
:icon="IconEdit"
:label="`${t('export.as_json')}`"
:shortcut="['J']"
@click="
() => {
exportEnvironmentAsJSON()
hide()
}
"
/>
<HoppSmartItem <HoppSmartItem
ref="deleteAction" ref="deleteAction"
:icon="IconTrash2" :icon="IconTrash2"
@@ -109,6 +123,7 @@ import IconTrash2 from "~icons/lucide/trash-2"
import IconMoreVertical from "~icons/lucide/more-vertical" import IconMoreVertical from "~icons/lucide/more-vertical"
import { TippyComponent } from "vue-tippy" import { TippyComponent } from "vue-tippy"
import { HoppSmartItem } from "@hoppscotch/ui" import { HoppSmartItem } from "@hoppscotch/ui"
import { exportAsJSON } from "~/helpers/import-export/export/environment"
const t = useI18n() const t = useI18n()
const toast = useToast() const toast = useToast()
@@ -124,11 +139,17 @@ const emit = defineEmits<{
const confirmRemove = ref(false) const confirmRemove = ref(false)
const exportEnvironmentAsJSON = () =>
exportAsJSON(props.environment)
? toast.success(t("state.download_started"))
: toast.error(t("state.download_failed"))
const tippyActions = ref<TippyComponent | null>(null) const tippyActions = ref<TippyComponent | null>(null)
const options = ref<TippyComponent | null>(null) const options = ref<TippyComponent | null>(null)
const edit = ref<typeof HoppSmartItem>() const edit = ref<typeof HoppSmartItem>()
const duplicate = ref<typeof HoppSmartItem>() const duplicate = ref<typeof HoppSmartItem>()
const deleteAction = ref<typeof HoppSmartItem>() const deleteAction = ref<typeof HoppSmartItem>()
const exportAsJsonEl = ref<typeof HoppSmartItem>()
const removeEnvironment = () => { const removeEnvironment = () => {
pipe( pipe(

View File

@@ -0,0 +1,48 @@
import { Environment } from "@hoppscotch/data"
import { TeamEnvironment } from "~/helpers/teams/TeamEnvironment"
import { cloneDeep } from "lodash-es"
const getEnvironmentJson = (
environmentObj: TeamEnvironment | Environment,
environmentIndex?: number | "Global" | null
) => {
const newEnvironment =
"environment" in environmentObj
? cloneDeep(environmentObj.environment)
: cloneDeep(environmentObj)
delete newEnvironment.id
const environmentId =
environmentIndex || environmentIndex === 0
? environmentIndex
: environmentObj.id
return environmentId !== null
? JSON.stringify(newEnvironment, null, 2)
: undefined
}
export const exportAsJSON = (
environmentObj: Environment | TeamEnvironment,
environmentIndex?: number | "Global" | null
): boolean => {
const dataToWrite = getEnvironmentJson(environmentObj, environmentIndex)
if (!dataToWrite) return false
const file = new Blob([dataToWrite], { type: "application/json" })
const a = document.createElement("a")
const url = URL.createObjectURL(file)
a.href = url
// Extracts the path from url, removes fragment identifier and query parameters if any, appends the ".json" extension, and assigns it
a.download = `${url.split("/").pop()!.split("#")[0].split("?")[0]}.json`
document.body.appendChild(a)
a.click()
setTimeout(() => {
document.body.removeChild(a)
window.URL.revokeObjectURL(url)
}, 0)
return true
}

View File

@@ -24,6 +24,7 @@ declare module '@vue/runtime-core' {
HoppSmartModal: typeof import('@hoppscotch/ui')['HoppSmartModal'] HoppSmartModal: typeof import('@hoppscotch/ui')['HoppSmartModal']
HoppSmartPicture: typeof import('@hoppscotch/ui')['HoppSmartPicture'] HoppSmartPicture: typeof import('@hoppscotch/ui')['HoppSmartPicture']
HoppSmartSpinner: typeof import('@hoppscotch/ui')['HoppSmartSpinner'] HoppSmartSpinner: typeof import('@hoppscotch/ui')['HoppSmartSpinner']
HoppSmartTable: typeof import('@hoppscotch/ui')['HoppSmartTable']
IconLucideArrowLeft: typeof import('~icons/lucide/arrow-left')['default'] IconLucideArrowLeft: typeof import('~icons/lucide/arrow-left')['default']
IconLucideChevronDown: typeof import('~icons/lucide/chevron-down')['default'] IconLucideChevronDown: typeof import('~icons/lucide/chevron-down')['default']
IconLucideInbox: typeof import('~icons/lucide/inbox')['default'] IconLucideInbox: typeof import('~icons/lucide/inbox')['default']

289
pnpm-lock.yaml generated
View File

@@ -1,9 +1,5 @@
lockfileVersion: '6.0' lockfileVersion: '6.0'
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
packageExtensionsChecksum: 18e898b62612ac7acc736e0323d495da packageExtensionsChecksum: 18e898b62612ac7acc736e0323d495da
importers: importers:
@@ -201,7 +197,7 @@ importers:
version: 9.1.5 version: 9.1.5
'@nestjs/schematics': '@nestjs/schematics':
specifier: ^9.0.3 specifier: ^9.0.3
version: 9.0.3(typescript@4.9.3) version: 9.0.3(chokidar@3.5.3)(typescript@4.8.4)
'@nestjs/testing': '@nestjs/testing':
specifier: ^9.2.1 specifier: ^9.2.1
version: 9.2.1(@nestjs/common@9.2.1)(@nestjs/core@9.2.1)(@nestjs/platform-express@9.2.1) version: 9.2.1(@nestjs/common@9.2.1)(@nestjs/core@9.2.1)(@nestjs/platform-express@9.2.1)
@@ -361,6 +357,9 @@ importers:
typescript: typescript:
specifier: ^4.6.4 specifier: ^4.6.4
version: 4.7.4 version: 4.7.4
zod:
specifier: ^3.22.2
version: 3.22.2
packages/hoppscotch-common: packages/hoppscotch-common:
dependencies: dependencies:
@@ -934,7 +933,7 @@ importers:
version: 3.2.0(graphql@16.8.0) version: 3.2.0(graphql@16.8.0)
'@intlify/vite-plugin-vue-i18n': '@intlify/vite-plugin-vue-i18n':
specifier: ^7.0.0 specifier: ^7.0.0
version: 7.0.0(vite@4.4.9) version: 7.0.0(vite@3.2.4)(vue-i18n@9.2.2)
'@rushstack/eslint-patch': '@rushstack/eslint-patch':
specifier: ^1.3.3 specifier: ^1.3.3
version: 1.3.3 version: 1.3.3
@@ -994,7 +993,7 @@ importers:
version: 0.7.38(rollup@2.79.1)(vite@4.4.9) version: 0.7.38(rollup@2.79.1)(vite@4.4.9)
vite-plugin-pages: vite-plugin-pages:
specifier: ^0.31.0 specifier: ^0.31.0
version: 0.31.0(vite@4.4.9) version: 0.31.0(@vue/compiler-sfc@3.3.4)(vite@4.4.9)
vite-plugin-pages-sitemap: vite-plugin-pages-sitemap:
specifier: ^1.6.1 specifier: ^1.6.1
version: 1.6.1 version: 1.6.1
@@ -1093,7 +1092,7 @@ importers:
version: 0.14.9(@vue/compiler-sfc@3.2.45)(vite@3.2.4) version: 0.14.9(@vue/compiler-sfc@3.2.45)(vite@3.2.4)
unplugin-vue-components: unplugin-vue-components:
specifier: ^0.21.0 specifier: ^0.21.0
version: 0.21.0(vite@3.2.4)(vue@3.2.45) version: 0.21.0(esbuild@0.19.2)(rollup@2.79.1)(vite@3.2.4)(vue@3.2.45)
vue: vue:
specifier: ^3.2.6 specifier: ^3.2.6
version: 3.2.45 version: 3.2.45
@@ -1169,7 +1168,7 @@ importers:
version: 1.0.3(vite@3.2.4) version: 1.0.3(vite@3.2.4)
vite: vite:
specifier: ^3.1.4 specifier: ^3.1.4
version: 3.2.4(@types/node@18.17.6)(sass@1.58.0) version: 3.2.4(@types/node@17.0.27)(sass@1.53.0)(terser@5.19.2)
vite-plugin-pages: vite-plugin-pages:
specifier: ^0.26.0 specifier: ^0.26.0
version: 0.26.0(@vue/compiler-sfc@3.2.45)(vite@3.2.4) version: 0.26.0(@vue/compiler-sfc@3.2.45)(vite@3.2.4)
@@ -1272,7 +1271,7 @@ importers:
version: 8.29.0 version: 8.29.0
eslint-plugin-prettier: eslint-plugin-prettier:
specifier: ^4.2.1 specifier: ^4.2.1
version: 4.2.1(eslint-config-prettier@8.5.0)(eslint@8.29.0)(prettier@2.8.4) version: 4.2.1(eslint-config-prettier@8.6.0)(eslint@8.19.0)(prettier@2.8.4)
eslint-plugin-vue: eslint-plugin-vue:
specifier: ^9.5.1 specifier: ^9.5.1
version: 9.5.1(eslint@8.29.0) version: 9.5.1(eslint@8.29.0)
@@ -1732,13 +1731,13 @@ packages:
resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
dependencies: dependencies:
'@babel/highlight': 7.18.6 '@babel/highlight': 7.22.20
/@babel/code-frame@7.22.10: /@babel/code-frame@7.22.10:
resolution: {integrity: sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==} resolution: {integrity: sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
dependencies: dependencies:
'@babel/highlight': 7.22.10 '@babel/highlight': 7.22.20
chalk: 2.4.2 chalk: 2.4.2
dev: true dev: true
@@ -1898,7 +1897,7 @@ packages:
'@babel/helper-module-imports': 7.22.5 '@babel/helper-module-imports': 7.22.5
'@babel/helper-simple-access': 7.22.5 '@babel/helper-simple-access': 7.22.5
'@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-split-export-declaration': 7.22.6
'@babel/helper-validator-identifier': 7.22.5 '@babel/helper-validator-identifier': 7.22.20
/@babel/helper-optimise-call-expression@7.22.5: /@babel/helper-optimise-call-expression@7.22.5:
resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
@@ -1964,10 +1963,6 @@ packages:
resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
/@babel/helper-validator-identifier@7.19.1:
resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==}
engines: {node: '>=6.9.0'}
/@babel/helper-validator-identifier@7.22.20: /@babel/helper-validator-identifier@7.22.20:
resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
@@ -1998,23 +1993,6 @@ packages:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
/@babel/highlight@7.18.6:
resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-validator-identifier': 7.19.1
chalk: 2.4.2
js-tokens: 4.0.0
/@babel/highlight@7.22.10:
resolution: {integrity: sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-validator-identifier': 7.22.5
chalk: 2.4.2
js-tokens: 4.0.0
dev: true
/@babel/highlight@7.22.20: /@babel/highlight@7.22.20:
resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
@@ -2546,7 +2524,7 @@ packages:
'@babel/helper-hoist-variables': 7.22.5 '@babel/helper-hoist-variables': 7.22.5
'@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.10) '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.10)
'@babel/helper-plugin-utils': 7.22.5 '@babel/helper-plugin-utils': 7.22.5
'@babel/helper-validator-identifier': 7.22.5 '@babel/helper-validator-identifier': 7.22.20
/@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.22.10): /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.22.10):
resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==} resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==}
@@ -2968,7 +2946,7 @@ packages:
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
dependencies: dependencies:
'@babel/helper-string-parser': 7.19.4 '@babel/helper-string-parser': 7.19.4
'@babel/helper-validator-identifier': 7.19.1 '@babel/helper-validator-identifier': 7.22.20
to-fast-properties: 2.0.0 to-fast-properties: 2.0.0
dev: true dev: true
@@ -3376,7 +3354,6 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [android] os: [android]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/android-arm@0.15.15: /@esbuild/android-arm@0.15.15:
@@ -3410,7 +3387,6 @@ packages:
cpu: [arm] cpu: [arm]
os: [android] os: [android]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/android-x64@0.16.17: /@esbuild/android-x64@0.16.17:
@@ -3436,7 +3412,6 @@ packages:
cpu: [x64] cpu: [x64]
os: [android] os: [android]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/darwin-arm64@0.16.17: /@esbuild/darwin-arm64@0.16.17:
@@ -3462,7 +3437,6 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/darwin-x64@0.16.17: /@esbuild/darwin-x64@0.16.17:
@@ -3488,7 +3462,6 @@ packages:
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/freebsd-arm64@0.16.17: /@esbuild/freebsd-arm64@0.16.17:
@@ -3514,7 +3487,6 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [freebsd] os: [freebsd]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/freebsd-x64@0.16.17: /@esbuild/freebsd-x64@0.16.17:
@@ -3540,7 +3512,6 @@ packages:
cpu: [x64] cpu: [x64]
os: [freebsd] os: [freebsd]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-arm64@0.16.17: /@esbuild/linux-arm64@0.16.17:
@@ -3566,7 +3537,6 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-arm@0.16.17: /@esbuild/linux-arm@0.16.17:
@@ -3592,7 +3562,6 @@ packages:
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-ia32@0.16.17: /@esbuild/linux-ia32@0.16.17:
@@ -3618,7 +3587,6 @@ packages:
cpu: [ia32] cpu: [ia32]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-loong64@0.15.15: /@esbuild/linux-loong64@0.15.15:
@@ -3652,7 +3620,6 @@ packages:
cpu: [loong64] cpu: [loong64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-mips64el@0.16.17: /@esbuild/linux-mips64el@0.16.17:
@@ -3678,7 +3645,6 @@ packages:
cpu: [mips64el] cpu: [mips64el]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-ppc64@0.16.17: /@esbuild/linux-ppc64@0.16.17:
@@ -3704,7 +3670,6 @@ packages:
cpu: [ppc64] cpu: [ppc64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-riscv64@0.16.17: /@esbuild/linux-riscv64@0.16.17:
@@ -3730,7 +3695,6 @@ packages:
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-s390x@0.16.17: /@esbuild/linux-s390x@0.16.17:
@@ -3756,7 +3720,6 @@ packages:
cpu: [s390x] cpu: [s390x]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-x64@0.16.17: /@esbuild/linux-x64@0.16.17:
@@ -3782,7 +3745,6 @@ packages:
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/netbsd-x64@0.16.17: /@esbuild/netbsd-x64@0.16.17:
@@ -3808,7 +3770,6 @@ packages:
cpu: [x64] cpu: [x64]
os: [netbsd] os: [netbsd]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/openbsd-x64@0.16.17: /@esbuild/openbsd-x64@0.16.17:
@@ -3834,7 +3795,6 @@ packages:
cpu: [x64] cpu: [x64]
os: [openbsd] os: [openbsd]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/sunos-x64@0.16.17: /@esbuild/sunos-x64@0.16.17:
@@ -3860,7 +3820,6 @@ packages:
cpu: [x64] cpu: [x64]
os: [sunos] os: [sunos]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/win32-arm64@0.16.17: /@esbuild/win32-arm64@0.16.17:
@@ -3886,7 +3845,6 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/win32-ia32@0.16.17: /@esbuild/win32-ia32@0.16.17:
@@ -3912,7 +3870,6 @@ packages:
cpu: [ia32] cpu: [ia32]
os: [win32] os: [win32]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/win32-x64@0.16.17: /@esbuild/win32-x64@0.16.17:
@@ -3938,7 +3895,6 @@ packages:
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@eslint-community/eslint-utils@4.4.0(eslint@8.29.0): /@eslint-community/eslint-utils@4.4.0(eslint@8.29.0):
@@ -6096,7 +6052,7 @@ packages:
escodegen: 2.1.0 escodegen: 2.1.0
estree-walker: 2.0.2 estree-walker: 2.0.2
jsonc-eslint-parser: 1.4.1 jsonc-eslint-parser: 1.4.1
magic-string: 0.30.3 magic-string: 0.30.4
mlly: 1.4.0 mlly: 1.4.0
source-map: 0.6.1 source-map: 0.6.1
yaml-eslint-parser: 0.3.2 yaml-eslint-parser: 0.3.2
@@ -6202,39 +6158,12 @@ packages:
debug: 4.3.4(supports-color@9.2.2) debug: 4.3.4(supports-color@9.2.2)
fast-glob: 3.3.1 fast-glob: 3.3.1
source-map: 0.6.1 source-map: 0.6.1
vite: 3.2.4(@types/node@18.17.6)(sass@1.58.0) vite: 3.2.4(@types/node@17.0.27)(sass@1.53.0)(terser@5.19.2)
vue-i18n: 9.2.2(vue@3.2.45) vue-i18n: 9.2.2(vue@3.2.45)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/@intlify/vite-plugin-vue-i18n@7.0.0(vite@4.4.9):
resolution: {integrity: sha512-2TbDOQ8XD+vkc0s5OFmr+IY/k4mYMC7pzvx0xGQn+cU/ev314+yi7Z7N7rWcBgiYk1WOUalbGSo3d4nJDxOOyw==}
engines: {node: '>= 14.6'}
deprecated: This plugin support until Vite 3. If you would like to use on Vite 4, please use @intlify/unplugin-vue-i18n
peerDependencies:
petite-vue-i18n: '*'
vite: ^2.9.0 || ^3.0.0
vue-i18n: '*'
peerDependenciesMeta:
petite-vue-i18n:
optional: true
vite:
optional: true
vue-i18n:
optional: true
dependencies:
'@intlify/bundle-utils': 3.4.0(vue-i18n@9.2.2)
'@intlify/shared': 9.4.1
'@rollup/pluginutils': 4.2.1
debug: 4.3.4(supports-color@9.2.2)
fast-glob: 3.3.1
source-map: 0.6.1
vite: 4.4.9(@types/node@17.0.27)(sass@1.53.0)(terser@5.19.2)
transitivePeerDependencies:
- supports-color
dev: true
/@intlify/vite-plugin-vue-i18n@7.0.0(vite@4.4.9)(vue-i18n@9.2.2): /@intlify/vite-plugin-vue-i18n@7.0.0(vite@4.4.9)(vue-i18n@9.2.2):
resolution: {integrity: sha512-2TbDOQ8XD+vkc0s5OFmr+IY/k4mYMC7pzvx0xGQn+cU/ev314+yi7Z7N7rWcBgiYk1WOUalbGSo3d4nJDxOOyw==} resolution: {integrity: sha512-2TbDOQ8XD+vkc0s5OFmr+IY/k4mYMC7pzvx0xGQn+cU/ev314+yi7Z7N7rWcBgiYk1WOUalbGSo3d4nJDxOOyw==}
engines: {node: '>= 14.6'} engines: {node: '>= 14.6'}
@@ -6930,8 +6859,8 @@ packages:
- supports-color - supports-color
dev: false dev: false
/@mdn/browser-compat-data@5.3.19: /@mdn/browser-compat-data@5.3.20:
resolution: {integrity: sha512-3k0I0sqa9vyO1z687O4hfoeXnTIf68WI0UBksBj0GPbXdNrOA4VOntP08jtvuaTG7yYHRVXSyoA9xRWxSGv3mw==} resolution: {integrity: sha512-UoZWTHXYXPm0AOcCgmbeirzJqE3fZ2P16qAs9kgMpckw67yCsYgdrQ2NqhlxJYpe6h/62I10+uX8xUZjwTp1sA==}
dev: true dev: true
/@microsoft/api-extractor-model@7.27.5(@types/node@17.0.27): /@microsoft/api-extractor-model@7.27.5(@types/node@17.0.27):
@@ -7238,21 +7167,6 @@ packages:
- chokidar - chokidar
dev: true dev: true
/@nestjs/schematics@9.0.3(typescript@4.9.3):
resolution: {integrity: sha512-kZrU/lrpVd2cnK8I3ibDb3Wi1ppl3wX3U3lVWoL+DzRRoezWKkh8upEL4q0koKmuXnsmLiu3UPxFeMOrJV7TSA==}
peerDependencies:
typescript: ^4.3.5
dependencies:
'@angular-devkit/core': 14.2.1(chokidar@3.5.3)
'@angular-devkit/schematics': 14.2.1(chokidar@3.5.3)
fs-extra: 10.1.0
jsonc-parser: 3.2.0
pluralize: 8.0.0
typescript: 4.9.3
transitivePeerDependencies:
- chokidar
dev: true
/@nestjs/testing@9.2.1(@nestjs/common@9.2.1)(@nestjs/core@9.2.1)(@nestjs/platform-express@9.2.1): /@nestjs/testing@9.2.1(@nestjs/common@9.2.1)(@nestjs/core@9.2.1)(@nestjs/platform-express@9.2.1):
resolution: {integrity: sha512-lemXZdRSuqoZ87l0orCrS/c7gqwxeduIFOd21g9g2RUeQ4qlWPegbQDKASzbfC28klPyrgJLW4MNq7uv2JwV8w==} resolution: {integrity: sha512-lemXZdRSuqoZ87l0orCrS/c7gqwxeduIFOd21g9g2RUeQ4qlWPegbQDKASzbfC28klPyrgJLW4MNq7uv2JwV8w==}
peerDependencies: peerDependencies:
@@ -9304,7 +9218,7 @@ packages:
/@vitest/snapshot@0.34.2: /@vitest/snapshot@0.34.2:
resolution: {integrity: sha512-qhQ+xy3u4mwwLxltS4Pd4SR+XHv4EajiTPNY3jkIBLUApE6/ce72neJPSUQZ7bL3EBuKI+NhvzhGj3n5baRQUQ==} resolution: {integrity: sha512-qhQ+xy3u4mwwLxltS4Pd4SR+XHv4EajiTPNY3jkIBLUApE6/ce72neJPSUQZ7bL3EBuKI+NhvzhGj3n5baRQUQ==}
dependencies: dependencies:
magic-string: 0.30.3 magic-string: 0.30.4
pathe: 1.1.1 pathe: 1.1.1
pretty-format: 29.5.0 pretty-format: 29.5.0
dev: true dev: true
@@ -9612,7 +9526,7 @@ packages:
'@vue/compiler-core': 3.3.4 '@vue/compiler-core': 3.3.4
'@vue/shared': 3.3.4 '@vue/shared': 3.3.4
estree-walker: 2.0.2 estree-walker: 2.0.2
magic-string: 0.30.3 magic-string: 0.30.4
/@vue/reactivity@3.2.45: /@vue/reactivity@3.2.45:
resolution: {integrity: sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==} resolution: {integrity: sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==}
@@ -10149,7 +10063,7 @@ packages:
'@windicss/config': 1.9.1 '@windicss/config': 1.9.1
debug: 4.3.4(supports-color@9.2.2) debug: 4.3.4(supports-color@9.2.2)
fast-glob: 3.3.1 fast-glob: 3.3.1
magic-string: 0.30.3 magic-string: 0.30.4
micromatch: 4.0.5 micromatch: 4.0.5
windicss: 3.5.6 windicss: 3.5.6
transitivePeerDependencies: transitivePeerDependencies:
@@ -10288,7 +10202,7 @@ packages:
hasBin: true hasBin: true
/after@0.8.2: /after@0.8.2:
resolution: {integrity: sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==} resolution: {integrity: sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=}
dev: false dev: false
/agent-base@6.0.2: /agent-base@6.0.2:
@@ -10937,7 +10851,7 @@ packages:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
/base64-arraybuffer@0.1.4: /base64-arraybuffer@0.1.4:
resolution: {integrity: sha512-a1eIFi4R9ySrbiMuyTGx5e92uRH5tQY6kArNcFaKBUleIoLjdjBg7Zxm3Mqm3Kmkf27HLR/1fnxX9q8GQ7Iavg==} resolution: {integrity: sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=}
engines: {node: '>= 0.6.0'} engines: {node: '>= 0.6.0'}
dev: false dev: false
@@ -11055,7 +10969,7 @@ packages:
resolution: {integrity: sha512-ZFz4mAOgqm0cbwKaZsfJbYDbTXGoPANlte7qRsRJOfjB9KmmISQrXJxAVrnXG8C8v/QHNzXyeJt0Cfcks6zZvQ==} resolution: {integrity: sha512-ZFz4mAOgqm0cbwKaZsfJbYDbTXGoPANlte7qRsRJOfjB9KmmISQrXJxAVrnXG8C8v/QHNzXyeJt0Cfcks6zZvQ==}
engines: {node: '>=16.15.1', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'} engines: {node: '>=16.15.1', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'}
dependencies: dependencies:
'@mdn/browser-compat-data': 5.3.19 '@mdn/browser-compat-data': 5.3.20
'@types/object-path': 0.11.1 '@types/object-path': 0.11.1
'@types/semver': 7.5.0 '@types/semver': 7.5.0
'@types/ua-parser-js': 0.7.36 '@types/ua-parser-js': 0.7.36
@@ -11593,14 +11507,14 @@ packages:
dev: true dev: true
/component-bind@1.0.0: /component-bind@1.0.0:
resolution: {integrity: sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw==} resolution: {integrity: sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=}
dev: false dev: false
/component-emitter@1.3.0: /component-emitter@1.3.0:
resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==}
/component-inherit@0.0.3: /component-inherit@0.0.3:
resolution: {integrity: sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA==} resolution: {integrity: sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=}
dev: false dev: false
/concat-map@0.0.1: /concat-map@0.0.1:
@@ -12631,7 +12545,7 @@ packages:
is-shared-array-buffer: 1.0.2 is-shared-array-buffer: 1.0.2
is-string: 1.0.7 is-string: 1.0.7
is-weakref: 1.0.2 is-weakref: 1.0.2
object-inspect: 1.12.2 object-inspect: 1.12.3
object-keys: 1.1.1 object-keys: 1.1.1
object.assign: 4.1.4 object.assign: 4.1.4
regexp.prototype.flags: 1.5.0 regexp.prototype.flags: 1.5.0
@@ -13188,7 +13102,6 @@ packages:
'@esbuild/win32-arm64': 0.19.2 '@esbuild/win32-arm64': 0.19.2
'@esbuild/win32-ia32': 0.19.2 '@esbuild/win32-ia32': 0.19.2
'@esbuild/win32-x64': 0.19.2 '@esbuild/win32-x64': 0.19.2
dev: true
/escalade@3.1.1: /escalade@3.1.1:
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
@@ -14119,7 +14032,7 @@ packages:
vue-template-compiler: vue-template-compiler:
optional: true optional: true
dependencies: dependencies:
'@babel/code-frame': 7.18.6 '@babel/code-frame': 7.22.13
chalk: 4.1.2 chalk: 4.1.2
chokidar: 3.5.3 chokidar: 3.5.3
cosmiconfig: 7.0.1 cosmiconfig: 7.0.1
@@ -14868,7 +14781,7 @@ packages:
dev: false dev: false
/has-cors@1.1.0: /has-cors@1.1.0:
resolution: {integrity: sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA==} resolution: {integrity: sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=}
dev: false dev: false
/has-flag@3.0.0: /has-flag@3.0.0:
@@ -15294,7 +15207,7 @@ packages:
dev: true dev: true
/indexof@0.0.1: /indexof@0.0.1:
resolution: {integrity: sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==} resolution: {integrity: sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=}
dev: false dev: false
/inflight@1.0.6: /inflight@1.0.6:
@@ -17657,8 +17570,8 @@ packages:
dependencies: dependencies:
'@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/sourcemap-codec': 1.4.15
/magic-string@0.30.3: /magic-string@0.30.4:
resolution: {integrity: sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==} resolution: {integrity: sha512-Q/TKtsC5BPm0kGqgBIF9oXAs/xEf2vRKiIB4wCRQTJOQIByZ1d+NnUOotvJOvNpi5RNIgVOMC3pOuaP1ZTDlVg==}
engines: {node: '>=12'} engines: {node: '>=12'}
dependencies: dependencies:
'@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/sourcemap-codec': 1.4.15
@@ -18667,10 +18580,6 @@ packages:
resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
engines: {node: '>= 6'} engines: {node: '>= 6'}
/object-inspect@1.12.2:
resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==}
dev: true
/object-inspect@1.12.3: /object-inspect@1.12.3:
resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
@@ -20011,7 +19920,7 @@ packages:
rollup: ^3.25 rollup: ^3.25
typescript: ^4.5 || ^5.0 typescript: ^4.5 || ^5.0
dependencies: dependencies:
magic-string: 0.30.3 magic-string: 0.30.4
rollup: 3.29.3 rollup: 3.29.3
typescript: 5.2.2 typescript: 5.2.2
optionalDependencies: optionalDependencies:
@@ -20218,6 +20127,7 @@ packages:
chokidar: 3.5.3 chokidar: 3.5.3
immutable: 4.3.2 immutable: 4.3.2
source-map-js: 1.0.2 source-map-js: 1.0.2
dev: true
/sass@1.66.0: /sass@1.66.0:
resolution: {integrity: sha512-C3U+RgpAAlTXULZkWwzfysgbbBBo8IZudNAOJAVBLslFbIaZv4MBPkTqhuvpK4lqgdoFiWhnOGMoV4L1FyOBag==} resolution: {integrity: sha512-C3U+RgpAAlTXULZkWwzfysgbbBBo8IZudNAOJAVBLslFbIaZv4MBPkTqhuvpK4lqgdoFiWhnOGMoV4L1FyOBag==}
@@ -20979,7 +20889,7 @@ packages:
graphql: 15.8.0 graphql: 15.8.0
iterall: 1.3.0 iterall: 1.3.0
symbol-observable: 1.2.0 symbol-observable: 1.2.0
ws: 7.5.9 ws: 7.4.6
transitivePeerDependencies: transitivePeerDependencies:
- bufferutil - bufferutil
- utf-8-validate - utf-8-validate
@@ -21409,7 +21319,7 @@ packages:
dev: true dev: true
/to-array@0.1.4: /to-array@0.1.4:
resolution: {integrity: sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A==} resolution: {integrity: sha1-F+bBH3PdTz10zaek/zI46a2b+JA=}
dev: false dev: false
/to-fast-properties@2.0.0: /to-fast-properties@2.0.0:
@@ -22285,36 +22195,6 @@ packages:
- supports-color - supports-color
- vite - vite
- webpack - webpack
dev: true
/unplugin-vue-components@0.21.0(vite@3.2.4)(vue@3.2.45):
resolution: {integrity: sha512-U7uOMNmRJ2eAv9CNjP8QRvxs6nAe3FVQUEIUphC1FGguBp3BWSLgGAcSHaX2nQy0gFoDY2mLF2M52W/t/eDaKg==}
engines: {node: '>=14'}
peerDependencies:
'@babel/parser': ^7.15.8
vue: 2 || 3
peerDependenciesMeta:
'@babel/parser':
optional: true
dependencies:
'@antfu/utils': 0.5.2
'@rollup/pluginutils': 4.2.1
chokidar: 3.5.3
debug: 4.3.4(supports-color@9.2.2)
fast-glob: 3.3.1
local-pkg: 0.4.3
magic-string: 0.26.7
minimatch: 5.1.6
resolve: 1.22.4
unplugin: 0.7.1(vite@3.2.4)
vue: 3.2.45
transitivePeerDependencies:
- esbuild
- rollup
- supports-color
- vite
- webpack
dev: false
/unplugin-vue-components@0.25.1(rollup@2.79.1)(vue@3.3.4): /unplugin-vue-components@0.25.1(rollup@2.79.1)(vue@3.3.4):
resolution: {integrity: sha512-kzS2ZHVMaGU2XEO2keYQcMjNZkanDSGDdY96uQT9EPe+wqSZwwgbFfKVJ5ti0+8rGAcKHColwKUvctBhq2LJ3A==} resolution: {integrity: sha512-kzS2ZHVMaGU2XEO2keYQcMjNZkanDSGDdY96uQT9EPe+wqSZwwgbFfKVJ5ti0+8rGAcKHColwKUvctBhq2LJ3A==}
@@ -22398,31 +22278,6 @@ packages:
vite: 3.2.4(@types/node@17.0.27)(sass@1.53.0)(terser@5.19.2) vite: 3.2.4(@types/node@17.0.27)(sass@1.53.0)(terser@5.19.2)
webpack-sources: 3.2.3 webpack-sources: 3.2.3
webpack-virtual-modules: 0.4.4 webpack-virtual-modules: 0.4.4
dev: true
/unplugin@0.7.1(vite@3.2.4):
resolution: {integrity: sha512-Z6hNDXDNh9aimMkPU1mEjtk+2ova8gh0y7rJeJdGH1vWZOHwF2lLQiQ/R97rv9ymmzEQXsR2fyMet72T8jy6ew==}
peerDependencies:
esbuild: '>=0.13'
rollup: ^2.50.0
vite: ^2.3.0 || ^3.0.0-0
webpack: 4 || 5
peerDependenciesMeta:
esbuild:
optional: true
rollup:
optional: true
vite:
optional: true
webpack:
optional: true
dependencies:
acorn: 8.10.0
chokidar: 3.5.3
vite: 3.2.4(@types/node@18.17.6)(sass@1.58.0)
webpack-sources: 3.2.3
webpack-virtual-modules: 0.4.4
dev: false
/unplugin@0.9.5(vite@3.2.4): /unplugin@0.9.5(vite@3.2.4):
resolution: {integrity: sha512-luraheyfxwtvkvHpsOvMNv7IjLdORTWKZp0gWYNHGLi2ImON3iIZOj464qEyyEwLA/EMt12fC415HW9zRpOfTg==} resolution: {integrity: sha512-luraheyfxwtvkvHpsOvMNv7IjLdORTWKZp0gWYNHGLi2ImON3iIZOj464qEyyEwLA/EMt12fC415HW9zRpOfTg==}
@@ -22443,7 +22298,7 @@ packages:
dependencies: dependencies:
acorn: 8.10.0 acorn: 8.10.0
chokidar: 3.5.3 chokidar: 3.5.3
vite: 3.2.4(@types/node@18.17.6)(sass@1.58.0) vite: 3.2.4(@types/node@17.0.27)(sass@1.53.0)(terser@5.19.2)
webpack-sources: 3.2.3 webpack-sources: 3.2.3
webpack-virtual-modules: 0.4.4 webpack-virtual-modules: 0.4.4
dev: false dev: false
@@ -22675,7 +22530,7 @@ packages:
mlly: 1.2.0 mlly: 1.2.0
pathe: 1.1.0 pathe: 1.1.0
picocolors: 1.0.0 picocolors: 1.0.0
vite: 4.4.9(@types/node@18.17.6)(sass@1.66.0)(terser@5.19.2) vite: 4.4.9(@types/node@17.0.27)(sass@1.53.0)(terser@5.19.2)
transitivePeerDependencies: transitivePeerDependencies:
- '@types/node' - '@types/node'
- less - less
@@ -23002,29 +22857,6 @@ packages:
- supports-color - supports-color
dev: true dev: true
/vite-plugin-pages@0.31.0(vite@4.4.9):
resolution: {integrity: sha512-fw3onBfVTXQI7rOzAbSZhmfwvk50+3qNnGZpERjmD93c8nEjrGLyd53eFXYMxcJV4KA1vzi4qIHt2+6tS4dEMw==}
peerDependencies:
'@vue/compiler-sfc': ^2.7.0 || ^3.0.0
vite: ^2.0.0 || ^3.0.0-0 || ^4.0.0
peerDependenciesMeta:
'@vue/compiler-sfc':
optional: true
dependencies:
'@types/debug': 4.1.8
debug: 4.3.4(supports-color@9.2.2)
deep-equal: 2.2.2
extract-comments: 1.1.0
fast-glob: 3.3.1
json5: 2.2.3
local-pkg: 0.4.3
picocolors: 1.0.0
vite: 4.4.9(@types/node@17.0.27)(sass@1.53.0)(terser@5.19.2)
yaml: 2.3.1
transitivePeerDependencies:
- supports-color
dev: true
/vite-plugin-pwa@0.13.1(vite@3.2.4)(workbox-build@6.6.0)(workbox-window@6.6.0): /vite-plugin-pwa@0.13.1(vite@3.2.4)(workbox-build@6.6.0)(workbox-window@6.6.0):
resolution: {integrity: sha512-NR3dIa+o2hzlzo4lF4Gu0cYvoMjSw2DdRc6Epw1yjmCqWaGuN86WK9JqZie4arNlE1ZuWT3CLiMdiX5wcmmUmg==} resolution: {integrity: sha512-NR3dIa+o2hzlzo4lF4Gu0cYvoMjSw2DdRc6Epw1yjmCqWaGuN86WK9JqZie4arNlE1ZuWT3CLiMdiX5wcmmUmg==}
peerDependencies: peerDependencies:
@@ -23084,7 +22916,7 @@ packages:
'@vue/compiler-sfc': 3.3.4 '@vue/compiler-sfc': 3.3.4
debug: 4.3.4(supports-color@9.2.2) debug: 4.3.4(supports-color@9.2.2)
fast-glob: 3.3.1 fast-glob: 3.3.1
vite: 3.2.4(@types/node@18.17.6)(sass@1.58.0) vite: 3.2.4(@types/node@17.0.27)(sass@1.53.0)(terser@5.19.2)
vue: 3.2.45 vue: 3.2.45
vue-router: 4.1.0(vue@3.2.45) vue-router: 4.1.0(vue@3.2.45)
transitivePeerDependencies: transitivePeerDependencies:
@@ -23188,40 +23020,6 @@ packages:
optionalDependencies: optionalDependencies:
fsevents: 2.3.2 fsevents: 2.3.2
/vite@3.2.4(@types/node@18.17.6)(sass@1.58.0):
resolution: {integrity: sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
peerDependencies:
'@types/node': '>= 14'
less: '*'
sass: '*'
stylus: '*'
sugarss: '*'
terser: ^5.4.0
peerDependenciesMeta:
'@types/node':
optional: true
less:
optional: true
sass:
optional: true
stylus:
optional: true
sugarss:
optional: true
terser:
optional: true
dependencies:
'@types/node': 18.17.6
esbuild: 0.15.15
postcss: 8.4.28
resolve: 1.22.4
rollup: 2.79.1
sass: 1.58.0
optionalDependencies:
fsevents: 2.3.2
/vite@4.0.4(@types/node@17.0.27): /vite@4.0.4(@types/node@17.0.27):
resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==} resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==}
engines: {node: ^14.18.0 || >=16.0.0} engines: {node: ^14.18.0 || >=16.0.0}
@@ -23421,7 +23219,7 @@ packages:
tinybench: 2.5.0 tinybench: 2.5.0
tinypool: 0.4.0 tinypool: 0.4.0
tinyspy: 1.1.1 tinyspy: 1.1.1
vite: 3.2.4(@types/node@18.17.6)(sass@1.58.0) vite: 3.2.4(@types/node@17.0.27)(sass@1.53.0)(terser@5.19.2)
vite-node: 0.29.8(@types/node@18.17.6) vite-node: 0.29.8(@types/node@18.17.6)
why-is-node-running: 2.2.2 why-is-node-running: 2.2.2
transitivePeerDependencies: transitivePeerDependencies:
@@ -24661,6 +24459,7 @@ packages:
optional: true optional: true
utf-8-validate: utf-8-validate:
optional: true optional: true
dev: true
/ws@8.11.0: /ws@8.11.0:
resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==}
@@ -24916,7 +24715,7 @@ packages:
dev: false dev: false
/yeast@0.1.2: /yeast@0.1.2:
resolution: {integrity: sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg==} resolution: {integrity: sha1-AI4G2AlDIMNy28L47XagymyKxBk=}
dev: false dev: false
/yn@3.1.1: /yn@3.1.1:
@@ -24959,3 +24758,7 @@ packages:
/zhead@2.0.10: /zhead@2.0.10:
resolution: {integrity: sha512-irug8fXNKjqazkA27cFQs7C6/ZD3qNiEzLC56kDyzQART/Z9GMGfg8h2i6fb9c8ZWnIx/QgOgFJxK3A/CYHG0g==} resolution: {integrity: sha512-irug8fXNKjqazkA27cFQs7C6/ZD3qNiEzLC56kDyzQART/Z9GMGfg8h2i6fb9c8ZWnIx/QgOgFJxK3A/CYHG0g==}
dev: false dev: false
/zod@3.22.2:
resolution: {integrity: sha512-wvWkphh5WQsJbVk1tbx1l1Ly4yg+XecD+Mq280uBGt9wa5BKSWf4Mhp6GmrkPixhMxmabYY7RbzlwVP32pbGCg==}
dev: true