├── .gitignore ├── .npmrc ├── .settings.json ├── .vscode ├── extensions.json └── settings.json ├── README.md ├── example ├── client │ ├── env.d.ts │ ├── index.html │ ├── package.json │ ├── silent-renew.html │ ├── silent-renew.ts │ ├── src │ │ ├── App.vue │ │ ├── Callback.vue │ │ ├── Home.vue │ │ ├── Signout.vue │ │ ├── main.ts │ │ ├── oidc.ts │ │ └── router.ts │ ├── tsconfig.config.json │ ├── tsconfig.json │ └── vite.config.ts └── server │ ├── package.json │ ├── src │ ├── config.ts │ └── index.ts │ └── tsconfig.json ├── package.json ├── pnpm-lock.yaml ├── pnpm-workspace.yaml ├── src ├── index.ts ├── store │ ├── events.ts │ └── index.ts ├── useAuth.ts └── utils.ts ├── tsconfig.json └── tsup.config.ts /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | dist 4 | .nyc_output -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | ignore-workspace-root-check=true 2 | strict-peer-dependencies=false 3 | auto-install-peers=true 4 | registry=https://registry.npmjs.org/ 5 | -------------------------------------------------------------------------------- /.settings.json: -------------------------------------------------------------------------------- 1 | {"recycleBin":{"Temp":true,"Cat":true,"undefinedHello":true,"Yes":true,"LogoHello":true,"Hello2":true,"Hello 2024":true,"Hello world":true,"Hello":true,"Temp123":true},"theme":"auto","language":"en-US","currentCDNKey":"JsDelivr","cdn":[{"key":"GitHub","value":"https://github.com/{{owner}}/{{repo}}/raw/{{branch}}/{{path}}","isDefault":true},{"key":"JsDelivr","value":"https://cdn.jsdelivr.net/gh/{{owner}}/{{repo}}@{{branch}}/{{path}}","isDefault":true},{"key":"ChinaJsDelivr","value":"https://jsd.cdn.zzko.cn/gh/{{owner}}/{{repo}}@{{branch}}/{{path}}","isDefault":true},{"key":"Statically","value":"https://cdn.statically.io/gh/{{owner}}/{{repo}}@{{branch}}/{{path}}","isDefault":true},{"key":"Vercel","value":"https://image.qzzhu.cn/{{path}}","isDefault":false}],"watermark":{"enable":false,"text":"Picx","top":10,"left":10,"size":30,"fontColor":"#F4FAFF"},"lastModifyTime":1700566989913} -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["johnsoncodehk.volar", "esbenp.prettier-vscode"] 3 | } 4 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cSpell.words": [ 3 | "activityplace", 4 | "attchment", 5 | "daygrid", 6 | "echarts", 7 | "fortawesome", 8 | "fullcalendar", 9 | "nprogress", 10 | "popconfirm", 11 | "preact", 12 | "signout", 13 | "timegrid", 14 | "vant", 15 | "viselect", 16 | "vitejs", 17 | "vueuse", 18 | "wangeditor" 19 | ], 20 | "typescript.tsdk": "node_modules/typescript/lib", 21 | "editor.formatOnSave": true, 22 | "editor.defaultFormatter": "esbenp.prettier-vscode", 23 | "editor.codeActionsOnSave": { 24 | "source.organizeImports": "explicit" 25 | }, 26 | "i18n-ally.localesPaths": [ 27 | "src/locales" 28 | ], 29 | "[javascriptreact]": { 30 | "editor.defaultFormatter": "esbenp.prettier-vscode" 31 | }, 32 | "[typescript]": { 33 | "editor.defaultFormatter": "esbenp.prettier-vscode" 34 | }, 35 | "[typescriptreact]": { 36 | "editor.defaultFormatter": "esbenp.prettier-vscode" 37 | }, 38 | "[html]": { 39 | "editor.defaultFormatter": "esbenp.prettier-vscode" 40 | }, 41 | "[css]": { 42 | "editor.defaultFormatter": "esbenp.prettier-vscode" 43 | }, 44 | "[less]": { 45 | "editor.defaultFormatter": "esbenp.prettier-vscode" 46 | }, 47 | "[scss]": { 48 | "editor.defaultFormatter": "esbenp.prettier-vscode" 49 | }, 50 | "[markdown]": { 51 | "editor.defaultFormatter": "esbenp.prettier-vscode" 52 | }, 53 | "commentTranslate.multiLineMerge": true 54 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | Vue3-oidc 3 |

4 |

5 | Library of openid connect (oidc) and oauth2 integrated by oidc client, vue3 6 |

7 | 8 | ## 📦 Install 9 | 10 | ```bash 11 | pnpm i vue3-oidc 12 | ``` 13 | 14 | ## Running the Server Sample 15 | 16 | ```bash 17 | $ cd example/server 18 | $ npm install 19 | $ npm run build 20 | ``` 21 | 22 | ## Running the Client Sample 23 | 24 | ```bash 25 | $ cd example/client 26 | $ npm install 27 | $ npm run dev 28 | ``` 29 | 30 | ![vue3-oidc](https://cdn.jsdelivr.net/gh/zhazhazhu/image-hosting@master/root/image_ey5y0c_.jpeg) 31 | 32 | ## Getting Started 33 | 34 | Configure the library by wrapping your application in `createOidc` and your initialization application when run createOidc: 35 | 36 | ```ts 37 | //main.ts 38 | import { createApp } from "vue"; 39 | import App from "./App.vue"; 40 | import "./oidc"; 41 | import router from "./router"; 42 | 43 | const app = createApp(App); 44 | 45 | app.use(router); 46 | 47 | app.mount("#app"); 48 | ``` 49 | 50 | ```ts 51 | //oidc.ts 52 | import type { VueOidcSettings } from "vue3-oidc"; 53 | import { createOidc, useOidcStore, useAuth } from "vue3-oidc"; 54 | import { unref } from "vue"; 55 | 56 | const { state } = useOidcStore(); 57 | const { setRedirectUri } = useAuth(); 58 | 59 | const oidcSettings: VueOidcSettings = { 60 | authority: "http://localhost:4000", 61 | scope: "openid", 62 | client_id: "your client id", 63 | client_secret: "your client secret", 64 | redirect_uri: origin + "/oidc-callback", 65 | response_type: "code", 66 | loadUserInfo: true, 67 | onSigninRedirectCallback(user) { 68 | console.log(user); 69 | location.href = unref(state).redirect_uri || "/"; 70 | }, 71 | onBeforeSigninRedirectCallback() { 72 | setRedirectUri(location.pathname + location.search); 73 | }, 74 | }; 75 | 76 | createOidc({ 77 | oidcSettings: oidcSettings, //your oidc settings 78 | auth: true, //if auth is true,will auto authenticate 79 | events: {}, //your oidc customization callback events 80 | refreshToken: { 81 | enable: true, 82 | time: 30000, 83 | }, 84 | //your key customization of oidc redirect callback 85 | redirectUriKey: "CUSTOM_REDIRECT_URI", 86 | }); 87 | ``` 88 | 89 | ### API 90 | 91 | - useOidcStore 92 | 93 | ```ts 94 | //type 95 | import type { UserProfile } from "oidc-client-ts"; 96 | function useOidcStore(): { 97 | state: ComputedRef>; 98 | actions: ComputedRef; 99 | }; 100 | 101 | interface OidcState { 102 | oidcSettings: MaybeNull; 103 | userManager: MaybeNull; 104 | refreshUserManager: MaybeNull; 105 | user: MaybeNull>; 106 | token: ComputedRef; 107 | hasExpiresAt: ComputedRef; 108 | redirect_uri: string; 109 | } 110 | 111 | interface OidcActions { 112 | setUser(user: User): void; 113 | removeUser(): void; 114 | } 115 | 116 | type OidcUser = User & { 117 | profile: UseUserProfile; 118 | }; 119 | 120 | type UseUserProfile = T; 121 | ``` 122 | 123 | - useAuth 124 | 125 | ```ts 126 | //type 127 | function useAuth(): { 128 | autoAuthenticate: typeof autoAuthenticate; 129 | signinRedirect: typeof signinRedirect; 130 | signoutRedirect: typeof signoutRedirect; 131 | refreshToken: typeof refreshToken; 132 | setRedirectUri: typeof setRedirectUri; 133 | }; 134 | //autoAuthenticate - will try to authenticate the user silently 135 | function autoAuthenticate(): Promise; 136 | //signin callback 137 | function signinRedirect(arg?: SigninRedirectArgs): void; 138 | //signout callback 139 | function signoutRedirect(arg?: SignoutRedirectArgs): void; 140 | //refresh token 141 | function refreshToken( 142 | arg?: SigninSilentArgs, 143 | success?: (user: User | null) => void | Promise, 144 | fail?: (err: any) => void | Promise 145 | ): void; 146 | //setRedirectUri 147 | function setRedirectUri(uri: string): void; 148 | ``` 149 | -------------------------------------------------------------------------------- /example/client/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /example/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | vue3-oidc 12 | 13 | 14 | 15 |

16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /example/client/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue3-oidc-example", 3 | "version": "1.0.0", 4 | "description": "", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "vue": "*", 14 | "vue-router": "^4.0.16", 15 | "vue3-oidc": "workspace:*" 16 | }, 17 | "devDependencies": { 18 | "@types/cors": "^2.8.12", 19 | "@types/express": "^4.17.13", 20 | "@vitejs/plugin-vue": "^3.0.1", 21 | "@vitejs/plugin-vue-jsx": "^2.0.0", 22 | "@vue/tsconfig": "^0.1.3", 23 | "vite": "^3.0.5" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /example/client/silent-renew.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /example/client/silent-renew.ts: -------------------------------------------------------------------------------- 1 | import { useOidcStore } from "vue3-oidc"; 2 | 3 | const { state: oidcState } = useOidcStore(); 4 | oidcState.value.userManager?.signinSilentCallback(); 5 | 6 | const LOGIN_REQUIRED = "login_required"; 7 | const searchParams = new URLSearchParams(window.location.search); 8 | const error = searchParams.get("error"); 9 | const state = searchParams.get("state"); 10 | const isLocalService = location.origin.includes( 11 | "://localhost" || "0.0.0.0" || "127.0.0.0" 12 | ); 13 | 14 | console.error(`Error: \n error: ${error} \n state: ${state}`); 15 | 16 | if (error === LOGIN_REQUIRED && import.meta.env.PROD && !isLocalService) { 17 | localStorage.clear(); 18 | sessionStorage.clear(); 19 | top?.location.reload(); 20 | } 21 | -------------------------------------------------------------------------------- /example/client/src/App.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 23 | -------------------------------------------------------------------------------- /example/client/src/Callback.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /example/client/src/Home.vue: -------------------------------------------------------------------------------- 1 | 34 | 35 | 70 | 71 | 109 | -------------------------------------------------------------------------------- /example/client/src/Signout.vue: -------------------------------------------------------------------------------- 1 | 21 | 22 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /example/client/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from "vue"; 2 | import App from "./App.vue"; 3 | import router from "./router"; 4 | 5 | import "./oidc"; 6 | 7 | const app = createApp(App); 8 | 9 | app.use(router); 10 | 11 | app.mount("#app"); 12 | -------------------------------------------------------------------------------- /example/client/src/oidc.ts: -------------------------------------------------------------------------------- 1 | import { WebStorageStateStore } from "oidc-client-ts"; 2 | import { unref } from "vue"; 3 | import type { VueOidcSettings } from "vue3-oidc"; 4 | import { createOidc, useAuth, useOidcStore } from "vue3-oidc"; 5 | 6 | const { state } = useOidcStore(); 7 | const { setRedirectUri } = useAuth(); 8 | 9 | const oidcSettings: VueOidcSettings = { 10 | authority: "http://localhost:4000", 11 | scope: "openid", 12 | client_id: "your client id", 13 | client_secret: "your client secret", 14 | redirect_uri: origin + "/oidc-callback", 15 | post_logout_redirect_uri: origin + "/signout", 16 | response_type: "code", 17 | loadUserInfo: true, 18 | userStore: new WebStorageStateStore({ 19 | prefix: "vue3-oidc", 20 | store: window.sessionStorage, 21 | }), 22 | automaticSilentRenew: true, 23 | monitorSession: true, 24 | silent_redirect_uri: location.origin + "/silent-renew.html", 25 | onSigninRedirectCallback(user) { 26 | location.href = unref(state).redirect_uri || "/home"; 27 | }, 28 | onBeforeSigninRedirectCallback() { 29 | setRedirectUri(location.pathname + location.search); 30 | }, 31 | }; 32 | 33 | function runAuth() { 34 | createOidc({ 35 | oidcSettings: oidcSettings, //your oidc settings 36 | auth: false, //if auth is true,will auto authenticate 37 | refreshToken: { 38 | enable: true, 39 | time: 10 * 1000, 40 | }, 41 | //your oidc events 42 | events: { 43 | addUserLoaded: (user) => { 44 | console.log(user); 45 | }, 46 | addUserSignedOut: () => {}, 47 | }, 48 | //your key customization of oidc redirect callback 49 | redirectUriKey: "CUSTOM_REDIRECT_URI", 50 | }); 51 | } 52 | 53 | runAuth(); 54 | -------------------------------------------------------------------------------- /example/client/src/router.ts: -------------------------------------------------------------------------------- 1 | import { 2 | createRouter, 3 | createWebHistory, 4 | RouterView, 5 | type RouteRecordRaw, 6 | } from "vue-router"; 7 | 8 | const routes: RouteRecordRaw[] = [ 9 | { 10 | path: "/", 11 | component: RouterView, 12 | redirect: "/home", 13 | }, 14 | /** 15 | * @route home into all pages,will be automatically authenticated,Please see the component 16 | * home下的所有子路由将会自动验证授权,具体请查看Home组件 17 | */ 18 | { 19 | path: "/home", 20 | name: "Home", 21 | component: () => import("./Home.vue"), 22 | }, 23 | { 24 | path: "/signout", 25 | name: "Signout", 26 | component: () => import("./Signout.vue"), 27 | }, 28 | { 29 | path: "/oidc-callback", 30 | component: () => import("./Callback.vue"), 31 | }, 32 | ]; 33 | 34 | export default createRouter({ 35 | history: createWebHistory(), 36 | routes: routes, 37 | }); 38 | -------------------------------------------------------------------------------- /example/client/tsconfig.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@vue/tsconfig/tsconfig.node.json", 3 | "include": [ 4 | "vite.config.*", 5 | "vitest.config.*", 6 | "cypress.config.*" 7 | ], 8 | "compilerOptions": { 9 | "composite": true, 10 | "types": [ 11 | "node" 12 | ] 13 | } 14 | } -------------------------------------------------------------------------------- /example/client/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@vue/tsconfig/tsconfig.web.json", 3 | "include": [ 4 | "src/**/*", 5 | "src/**/*.vue", 6 | "server/**/*" 7 | ], 8 | "noImplicitAny": false, 9 | "compilerOptions": { 10 | "baseUrl": ".", 11 | "paths": { 12 | "@/*": [ 13 | "./src/*" 14 | ], 15 | }, 16 | "types": [ 17 | "vite/client" 18 | ], 19 | }, 20 | "references": [ 21 | { 22 | "path": "./tsconfig.config.json" 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /example/client/vite.config.ts: -------------------------------------------------------------------------------- 1 | import vue from "@vitejs/plugin-vue"; 2 | import vueJsx from "@vitejs/plugin-vue-jsx"; 3 | import { resolve } from "path"; 4 | import { defineConfig } from "vite"; 5 | 6 | export default defineConfig({ 7 | plugins: [vue(), vueJsx()], 8 | resolve: { 9 | alias: { 10 | "@": resolve(__dirname, "src"), 11 | }, 12 | }, 13 | server: { 14 | host: true, 15 | }, 16 | build: { 17 | rollupOptions: { 18 | input: { 19 | main: resolve(__dirname, "index.html"), 20 | "silent-renew": resolve(__dirname, "silent-renew.html"), 21 | }, 22 | }, 23 | }, 24 | }); 25 | -------------------------------------------------------------------------------- /example/server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue3-oidc-server", 3 | "version": "1.0.0", 4 | "description": "", 5 | "scripts": { 6 | "build": "ts-node-dev ./src/index.ts --watch ./src" 7 | }, 8 | "keywords": [], 9 | "author": "", 10 | "license": "ISC", 11 | "devDependencies": { 12 | "@types/cors": "^2.8.12", 13 | "@types/express": "^4.17.13", 14 | "cors": "^2.8.5", 15 | "express": "^4.18.1", 16 | "ts-node": "^10.9.1", 17 | "ts-node-dev": "^2.0.0", 18 | "tslib": "^2.4.0", 19 | "typescript": "^4.7.4" 20 | } 21 | } -------------------------------------------------------------------------------- /example/server/src/config.ts: -------------------------------------------------------------------------------- 1 | export const userInfo = { 2 | sub: "818727", 3 | email: "AliceSmith@email.com", 4 | email_verified: true, 5 | role: ["Admin", "Geek"], 6 | avatar: 7 | "https://avatars.githubusercontent.com/u/80683658?s=400&u=9feb1c1ee3ae25b1b039ee1f0dca4581f44f041c&v=4", 8 | }; 9 | 10 | function encodeBase64Url(str: string) { 11 | return Buffer.from(str) 12 | .toString("base64") 13 | .replace(/=/g, "") 14 | .replace(/\+/g, "-") 15 | .replace(/\//g, "_"); 16 | } 17 | 18 | export const id_token = [{ alg: "none" }, userInfo] 19 | .map((item) => JSON.stringify(item)) 20 | .map(encodeBase64Url) 21 | .join("."); 22 | -------------------------------------------------------------------------------- /example/server/src/index.ts: -------------------------------------------------------------------------------- 1 | import cors from "cors"; 2 | import express from "express"; 3 | import { id_token, userInfo } from "./config"; 4 | 5 | const app = express(); 6 | 7 | app.use(cors()); 8 | 9 | const baseUrl = "http://localhost:4000"; 10 | 11 | const metaData = { 12 | jwks_uri: "/.well-known/jwks", 13 | authorization_endpoint: "/connect/authorize", 14 | userinfo_endpoint: "/connect/userinfo", 15 | end_session_endpoint: "/connect/endsession", 16 | token_endpoint: "/connect/token", 17 | }; 18 | 19 | app.get("/.well-known/openid-configuration", (req, res) => { 20 | const result: any = {}; 21 | 22 | for (const key in metaData) { 23 | result[key] = baseUrl + metaData[key]; 24 | } 25 | res.send(result); 26 | }); 27 | 28 | app.get(metaData.jwks_uri, (req, res) => { 29 | res.send({ 30 | kty: "RSA", 31 | use: "sig", 32 | kid: "1", 33 | e: "E", 34 | n: "N", 35 | }); 36 | }); 37 | 38 | app.get(metaData.authorization_endpoint, (req, res) => { 39 | const url = new URL(req.query.redirect_uri as string); 40 | const paramsKey = req.query.response_mode === "fragment" ? "hash" : "search"; 41 | const params = new URLSearchParams(url[paramsKey].slice(1)); 42 | const state = req.query.state as string; 43 | 44 | if (state) { 45 | params.append("state", state); 46 | if (req.query.code_challenge) { 47 | params.append("code", "foo"); 48 | } 49 | } 50 | url[paramsKey] = params.toString(); 51 | 52 | if (req.query.display === "popup") { 53 | res.status(200); 54 | res.type("text/html"); 55 | res.send(` 56 | 57 | 58 | 59 | 60 | 61 |

Redirecting in 3 seconds...

62 | 63 | `); 64 | } else { 65 | res.redirect(url.href); 66 | } 67 | }); 68 | 69 | app.post(metaData.token_endpoint, (req, res) => { 70 | res.send({ 71 | access_token: "foobar", 72 | token_type: "Bearer", 73 | id_token, 74 | }); 75 | }); 76 | 77 | app.get(metaData.userinfo_endpoint, (req, res) => { 78 | res.contentType("application/json"); 79 | res.send(JSON.stringify(userInfo)); 80 | }); 81 | 82 | app.get(metaData.end_session_endpoint, function (req, res) { 83 | let url = req.query.post_logout_redirect_uri as string; 84 | const state = req.query.state as string; 85 | if (url) { 86 | if (state) { 87 | url += "?state=" + state; 88 | } 89 | res.redirect(url); 90 | } else { 91 | res.send("will redirect url,logged out..."); 92 | } 93 | }); 94 | 95 | app.listen(4000); 96 | console.log("Server started at http://localhost:4000"); 97 | -------------------------------------------------------------------------------- /example/server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "useDefineForClassFields": true, 5 | "module": "CommonJS", 6 | "moduleResolution": "node", 7 | "strict": true, 8 | "jsx": "preserve", 9 | "sourceMap": true, 10 | "resolveJsonModule": true, 11 | "esModuleInterop": true, 12 | "baseUrl": ".", 13 | "skipLibCheck": true, 14 | "lib": [ 15 | "esnext", 16 | "dom" 17 | ], 18 | "types": [ 19 | "node" 20 | ], 21 | "noImplicitAny": false 22 | }, 23 | "include": [ 24 | "src/**/*.ts", 25 | "src/**/*.d.ts", 26 | ], 27 | "exclude": [ 28 | "node_modules", 29 | ] 30 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue3-oidc", 3 | "version": "1.0.2", 4 | "description": "vue3-oidc", 5 | "main": "dist/index.js", 6 | "module": "dist/index.mjs", 7 | "types": "dist/index.d.ts", 8 | "files": [ 9 | "dist", 10 | "types" 11 | ], 12 | "exports": { 13 | ".": { 14 | "types": "./dist/index.d.ts", 15 | "import": "./dist/index.mjs", 16 | "require": "./dist/index.js" 17 | }, 18 | "./types/*": "./types/*.d.ts" 19 | }, 20 | "packageManager": "pnpm@9.4.0", 21 | "scripts": { 22 | "dev": "tsup --watch src", 23 | "build": "tsup", 24 | "patch": "npm version patch && npm publish", 25 | "minor": "npm version minor && npm publish", 26 | "major": "npm version major && npm publish" 27 | }, 28 | "keywords": [ 29 | "vue3-oidc", 30 | "oidc-client", 31 | "oidc" 32 | ], 33 | "author": "zhazhazhu", 34 | "license": "ISC", 35 | "repository": { 36 | "url": "https://github.com/zhazhazhu/vue3-oidc" 37 | }, 38 | "devDependencies": { 39 | "@types/node": "^18.0.0", 40 | "tsup": "^6.1.2", 41 | "typescript": "^4.7.4", 42 | "vite": "^2.9.13", 43 | "vitest": "^0.16.0", 44 | "vue": "^3.2.37" 45 | }, 46 | "dependencies": { 47 | "oidc-client-ts": "^2.4.0", 48 | "vue": ">=3.0.0" 49 | }, 50 | "peerDependencies": { 51 | "vue": ">=3.0.0" 52 | }, 53 | "peerDependenciesMeta": { 54 | "vue": { 55 | "optional": true 56 | } 57 | }, 58 | "publishConfig": { 59 | "registry": "https://registry.npmjs.org", 60 | "access": "public" 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | oidc-client-ts: 12 | specifier: ^2.4.0 13 | version: 2.4.0 14 | vue: 15 | specifier: '>=3.0.0' 16 | version: 3.4.34(typescript@4.9.5) 17 | devDependencies: 18 | '@types/node': 19 | specifier: ^18.0.0 20 | version: 18.19.42 21 | tsup: 22 | specifier: ^6.1.2 23 | version: 6.7.0(postcss@8.4.40)(ts-node@10.9.2(@types/node@18.19.42)(typescript@4.9.5))(typescript@4.9.5) 24 | typescript: 25 | specifier: ^4.7.4 26 | version: 4.9.5 27 | vite: 28 | specifier: ^2.9.13 29 | version: 2.9.18 30 | vitest: 31 | specifier: ^0.16.0 32 | version: 0.16.0 33 | 34 | example/client: 35 | dependencies: 36 | vue: 37 | specifier: '*' 38 | version: 3.4.34(typescript@4.9.5) 39 | vue-router: 40 | specifier: ^4.0.16 41 | version: 4.4.0(vue@3.4.34(typescript@4.9.5)) 42 | vue3-oidc: 43 | specifier: workspace:* 44 | version: link:../.. 45 | devDependencies: 46 | '@types/cors': 47 | specifier: ^2.8.12 48 | version: 2.8.17 49 | '@types/express': 50 | specifier: ^4.17.13 51 | version: 4.17.21 52 | '@vitejs/plugin-vue': 53 | specifier: ^3.0.1 54 | version: 3.2.0(vite@3.2.10(@types/node@18.19.42))(vue@3.4.34(typescript@4.9.5)) 55 | '@vitejs/plugin-vue-jsx': 56 | specifier: ^2.0.0 57 | version: 2.1.1(vite@3.2.10(@types/node@18.19.42))(vue@3.4.34(typescript@4.9.5)) 58 | '@vue/tsconfig': 59 | specifier: ^0.1.3 60 | version: 0.1.3(@types/node@18.19.42) 61 | vite: 62 | specifier: ^3.0.5 63 | version: 3.2.10(@types/node@18.19.42) 64 | 65 | example/server: 66 | devDependencies: 67 | '@types/cors': 68 | specifier: ^2.8.12 69 | version: 2.8.17 70 | '@types/express': 71 | specifier: ^4.17.13 72 | version: 4.17.21 73 | cors: 74 | specifier: ^2.8.5 75 | version: 2.8.5 76 | express: 77 | specifier: ^4.18.1 78 | version: 4.19.2 79 | ts-node: 80 | specifier: ^10.9.1 81 | version: 10.9.2(@types/node@18.19.42)(typescript@4.9.5) 82 | ts-node-dev: 83 | specifier: ^2.0.0 84 | version: 2.0.0(@types/node@18.19.42)(typescript@4.9.5) 85 | tslib: 86 | specifier: ^2.4.0 87 | version: 2.6.3 88 | typescript: 89 | specifier: ^4.7.4 90 | version: 4.9.5 91 | 92 | packages: 93 | 94 | '@ampproject/remapping@2.3.0': 95 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 96 | engines: {node: '>=6.0.0'} 97 | 98 | '@babel/code-frame@7.24.7': 99 | resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} 100 | engines: {node: '>=6.9.0'} 101 | 102 | '@babel/compat-data@7.25.0': 103 | resolution: {integrity: sha512-P4fwKI2mjEb3ZU5cnMJzvRsRKGBUcs8jvxIoRmr6ufAY9Xk2Bz7JubRTTivkw55c7WQJfTECeqYVa+HZ0FzREg==} 104 | engines: {node: '>=6.9.0'} 105 | 106 | '@babel/core@7.24.9': 107 | resolution: {integrity: sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==} 108 | engines: {node: '>=6.9.0'} 109 | 110 | '@babel/generator@7.25.0': 111 | resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==} 112 | engines: {node: '>=6.9.0'} 113 | 114 | '@babel/helper-annotate-as-pure@7.24.7': 115 | resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} 116 | engines: {node: '>=6.9.0'} 117 | 118 | '@babel/helper-compilation-targets@7.24.8': 119 | resolution: {integrity: sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==} 120 | engines: {node: '>=6.9.0'} 121 | 122 | '@babel/helper-create-class-features-plugin@7.25.0': 123 | resolution: {integrity: sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==} 124 | engines: {node: '>=6.9.0'} 125 | peerDependencies: 126 | '@babel/core': ^7.0.0 127 | 128 | '@babel/helper-member-expression-to-functions@7.24.8': 129 | resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==} 130 | engines: {node: '>=6.9.0'} 131 | 132 | '@babel/helper-module-imports@7.22.15': 133 | resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} 134 | engines: {node: '>=6.9.0'} 135 | 136 | '@babel/helper-module-imports@7.24.7': 137 | resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} 138 | engines: {node: '>=6.9.0'} 139 | 140 | '@babel/helper-module-transforms@7.25.0': 141 | resolution: {integrity: sha512-bIkOa2ZJYn7FHnepzr5iX9Kmz8FjIz4UKzJ9zhX3dnYuVW0xul9RuR3skBfoLu+FPTQw90EHW9rJsSZhyLQ3fQ==} 142 | engines: {node: '>=6.9.0'} 143 | peerDependencies: 144 | '@babel/core': ^7.0.0 145 | 146 | '@babel/helper-optimise-call-expression@7.24.7': 147 | resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} 148 | engines: {node: '>=6.9.0'} 149 | 150 | '@babel/helper-plugin-utils@7.24.8': 151 | resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} 152 | engines: {node: '>=6.9.0'} 153 | 154 | '@babel/helper-replace-supers@7.25.0': 155 | resolution: {integrity: sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==} 156 | engines: {node: '>=6.9.0'} 157 | peerDependencies: 158 | '@babel/core': ^7.0.0 159 | 160 | '@babel/helper-simple-access@7.24.7': 161 | resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} 162 | engines: {node: '>=6.9.0'} 163 | 164 | '@babel/helper-skip-transparent-expression-wrappers@7.24.7': 165 | resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} 166 | engines: {node: '>=6.9.0'} 167 | 168 | '@babel/helper-string-parser@7.24.8': 169 | resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} 170 | engines: {node: '>=6.9.0'} 171 | 172 | '@babel/helper-validator-identifier@7.24.7': 173 | resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} 174 | engines: {node: '>=6.9.0'} 175 | 176 | '@babel/helper-validator-option@7.24.8': 177 | resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} 178 | engines: {node: '>=6.9.0'} 179 | 180 | '@babel/helpers@7.25.0': 181 | resolution: {integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==} 182 | engines: {node: '>=6.9.0'} 183 | 184 | '@babel/highlight@7.24.7': 185 | resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} 186 | engines: {node: '>=6.9.0'} 187 | 188 | '@babel/parser@7.25.0': 189 | resolution: {integrity: sha512-CzdIU9jdP0dg7HdyB+bHvDJGagUv+qtzZt5rYCWwW6tITNqV9odjp6Qu41gkG0ca5UfdDUWrKkiAnHHdGRnOrA==} 190 | engines: {node: '>=6.0.0'} 191 | hasBin: true 192 | 193 | '@babel/plugin-syntax-jsx@7.24.7': 194 | resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} 195 | engines: {node: '>=6.9.0'} 196 | peerDependencies: 197 | '@babel/core': ^7.0.0-0 198 | 199 | '@babel/plugin-syntax-typescript@7.24.7': 200 | resolution: {integrity: sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==} 201 | engines: {node: '>=6.9.0'} 202 | peerDependencies: 203 | '@babel/core': ^7.0.0-0 204 | 205 | '@babel/plugin-transform-typescript@7.25.0': 206 | resolution: {integrity: sha512-LZicxFzHIw+Sa3pzgMgSz6gdpsdkfiMObHUzhSIrwKF0+/rP/nuR49u79pSS+zIFJ1FeGeqQD2Dq4QGFbOVvSw==} 207 | engines: {node: '>=6.9.0'} 208 | peerDependencies: 209 | '@babel/core': ^7.0.0-0 210 | 211 | '@babel/template@7.25.0': 212 | resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} 213 | engines: {node: '>=6.9.0'} 214 | 215 | '@babel/traverse@7.25.1': 216 | resolution: {integrity: sha512-LrHHoWq08ZpmmFqBAzN+hUdWwy5zt7FGa/hVwMcOqW6OVtwqaoD5utfuGYU87JYxdZgLUvktAsn37j/sYR9siA==} 217 | engines: {node: '>=6.9.0'} 218 | 219 | '@babel/types@7.25.0': 220 | resolution: {integrity: sha512-LcnxQSsd9aXOIgmmSpvZ/1yo46ra2ESYyqLcryaBZOghxy5qqOBjvCWP5JfkI8yl9rlxRgdLTTMCQQRcN2hdCg==} 221 | engines: {node: '>=6.9.0'} 222 | 223 | '@cspotcode/source-map-support@0.8.1': 224 | resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} 225 | engines: {node: '>=12'} 226 | 227 | '@esbuild/android-arm64@0.17.19': 228 | resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} 229 | engines: {node: '>=12'} 230 | cpu: [arm64] 231 | os: [android] 232 | 233 | '@esbuild/android-arm@0.15.18': 234 | resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} 235 | engines: {node: '>=12'} 236 | cpu: [arm] 237 | os: [android] 238 | 239 | '@esbuild/android-arm@0.17.19': 240 | resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} 241 | engines: {node: '>=12'} 242 | cpu: [arm] 243 | os: [android] 244 | 245 | '@esbuild/android-x64@0.17.19': 246 | resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} 247 | engines: {node: '>=12'} 248 | cpu: [x64] 249 | os: [android] 250 | 251 | '@esbuild/darwin-arm64@0.17.19': 252 | resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} 253 | engines: {node: '>=12'} 254 | cpu: [arm64] 255 | os: [darwin] 256 | 257 | '@esbuild/darwin-x64@0.17.19': 258 | resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} 259 | engines: {node: '>=12'} 260 | cpu: [x64] 261 | os: [darwin] 262 | 263 | '@esbuild/freebsd-arm64@0.17.19': 264 | resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} 265 | engines: {node: '>=12'} 266 | cpu: [arm64] 267 | os: [freebsd] 268 | 269 | '@esbuild/freebsd-x64@0.17.19': 270 | resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} 271 | engines: {node: '>=12'} 272 | cpu: [x64] 273 | os: [freebsd] 274 | 275 | '@esbuild/linux-arm64@0.17.19': 276 | resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} 277 | engines: {node: '>=12'} 278 | cpu: [arm64] 279 | os: [linux] 280 | 281 | '@esbuild/linux-arm@0.17.19': 282 | resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} 283 | engines: {node: '>=12'} 284 | cpu: [arm] 285 | os: [linux] 286 | 287 | '@esbuild/linux-ia32@0.17.19': 288 | resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} 289 | engines: {node: '>=12'} 290 | cpu: [ia32] 291 | os: [linux] 292 | 293 | '@esbuild/linux-loong64@0.14.54': 294 | resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} 295 | engines: {node: '>=12'} 296 | cpu: [loong64] 297 | os: [linux] 298 | 299 | '@esbuild/linux-loong64@0.15.18': 300 | resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} 301 | engines: {node: '>=12'} 302 | cpu: [loong64] 303 | os: [linux] 304 | 305 | '@esbuild/linux-loong64@0.17.19': 306 | resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} 307 | engines: {node: '>=12'} 308 | cpu: [loong64] 309 | os: [linux] 310 | 311 | '@esbuild/linux-mips64el@0.17.19': 312 | resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} 313 | engines: {node: '>=12'} 314 | cpu: [mips64el] 315 | os: [linux] 316 | 317 | '@esbuild/linux-ppc64@0.17.19': 318 | resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} 319 | engines: {node: '>=12'} 320 | cpu: [ppc64] 321 | os: [linux] 322 | 323 | '@esbuild/linux-riscv64@0.17.19': 324 | resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} 325 | engines: {node: '>=12'} 326 | cpu: [riscv64] 327 | os: [linux] 328 | 329 | '@esbuild/linux-s390x@0.17.19': 330 | resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} 331 | engines: {node: '>=12'} 332 | cpu: [s390x] 333 | os: [linux] 334 | 335 | '@esbuild/linux-x64@0.17.19': 336 | resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} 337 | engines: {node: '>=12'} 338 | cpu: [x64] 339 | os: [linux] 340 | 341 | '@esbuild/netbsd-x64@0.17.19': 342 | resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} 343 | engines: {node: '>=12'} 344 | cpu: [x64] 345 | os: [netbsd] 346 | 347 | '@esbuild/openbsd-x64@0.17.19': 348 | resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} 349 | engines: {node: '>=12'} 350 | cpu: [x64] 351 | os: [openbsd] 352 | 353 | '@esbuild/sunos-x64@0.17.19': 354 | resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} 355 | engines: {node: '>=12'} 356 | cpu: [x64] 357 | os: [sunos] 358 | 359 | '@esbuild/win32-arm64@0.17.19': 360 | resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} 361 | engines: {node: '>=12'} 362 | cpu: [arm64] 363 | os: [win32] 364 | 365 | '@esbuild/win32-ia32@0.17.19': 366 | resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} 367 | engines: {node: '>=12'} 368 | cpu: [ia32] 369 | os: [win32] 370 | 371 | '@esbuild/win32-x64@0.17.19': 372 | resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} 373 | engines: {node: '>=12'} 374 | cpu: [x64] 375 | os: [win32] 376 | 377 | '@isaacs/cliui@8.0.2': 378 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 379 | engines: {node: '>=12'} 380 | 381 | '@jridgewell/gen-mapping@0.3.5': 382 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 383 | engines: {node: '>=6.0.0'} 384 | 385 | '@jridgewell/resolve-uri@3.1.2': 386 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 387 | engines: {node: '>=6.0.0'} 388 | 389 | '@jridgewell/set-array@1.2.1': 390 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 391 | engines: {node: '>=6.0.0'} 392 | 393 | '@jridgewell/sourcemap-codec@1.5.0': 394 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 395 | 396 | '@jridgewell/trace-mapping@0.3.25': 397 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 398 | 399 | '@jridgewell/trace-mapping@0.3.9': 400 | resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} 401 | 402 | '@nodelib/fs.scandir@2.1.5': 403 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 404 | engines: {node: '>= 8'} 405 | 406 | '@nodelib/fs.stat@2.0.5': 407 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 408 | engines: {node: '>= 8'} 409 | 410 | '@nodelib/fs.walk@1.2.8': 411 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 412 | engines: {node: '>= 8'} 413 | 414 | '@pkgjs/parseargs@0.11.0': 415 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 416 | engines: {node: '>=14'} 417 | 418 | '@tsconfig/node10@1.0.11': 419 | resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} 420 | 421 | '@tsconfig/node12@1.0.11': 422 | resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} 423 | 424 | '@tsconfig/node14@1.0.3': 425 | resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} 426 | 427 | '@tsconfig/node16@1.0.4': 428 | resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} 429 | 430 | '@types/body-parser@1.19.5': 431 | resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} 432 | 433 | '@types/chai-subset@1.3.5': 434 | resolution: {integrity: sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==} 435 | 436 | '@types/chai@4.3.16': 437 | resolution: {integrity: sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ==} 438 | 439 | '@types/connect@3.4.38': 440 | resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} 441 | 442 | '@types/cors@2.8.17': 443 | resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} 444 | 445 | '@types/express-serve-static-core@4.19.5': 446 | resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} 447 | 448 | '@types/express@4.17.21': 449 | resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} 450 | 451 | '@types/http-errors@2.0.4': 452 | resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} 453 | 454 | '@types/mime@1.3.5': 455 | resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} 456 | 457 | '@types/node@18.19.42': 458 | resolution: {integrity: sha512-d2ZFc/3lnK2YCYhos8iaNIYu9Vfhr92nHiyJHRltXWjXUBjEE+A4I58Tdbnw4VhggSW+2j5y5gTrLs4biNnubg==} 459 | 460 | '@types/qs@6.9.15': 461 | resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} 462 | 463 | '@types/range-parser@1.2.7': 464 | resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} 465 | 466 | '@types/send@0.17.4': 467 | resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} 468 | 469 | '@types/serve-static@1.15.7': 470 | resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} 471 | 472 | '@types/strip-bom@3.0.0': 473 | resolution: {integrity: sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==} 474 | 475 | '@types/strip-json-comments@0.0.30': 476 | resolution: {integrity: sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==} 477 | 478 | '@vitejs/plugin-vue-jsx@2.1.1': 479 | resolution: {integrity: sha512-JgDhxstQlwnHBvZ1BSnU5mbmyQ14/t5JhREc6YH5kWyu2QdAAOsLF6xgHoIWarj8tddaiwFrNzLbWJPudpXKYA==} 480 | engines: {node: ^14.18.0 || >=16.0.0} 481 | peerDependencies: 482 | vite: ^3.0.0 483 | vue: ^3.0.0 484 | 485 | '@vitejs/plugin-vue@3.2.0': 486 | resolution: {integrity: sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==} 487 | engines: {node: ^14.18.0 || >=16.0.0} 488 | peerDependencies: 489 | vite: ^3.0.0 490 | vue: ^3.2.25 491 | 492 | '@vue/babel-helper-vue-transform-on@1.2.2': 493 | resolution: {integrity: sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==} 494 | 495 | '@vue/babel-plugin-jsx@1.2.2': 496 | resolution: {integrity: sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==} 497 | peerDependencies: 498 | '@babel/core': ^7.0.0-0 499 | peerDependenciesMeta: 500 | '@babel/core': 501 | optional: true 502 | 503 | '@vue/babel-plugin-resolve-type@1.2.2': 504 | resolution: {integrity: sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==} 505 | peerDependencies: 506 | '@babel/core': ^7.0.0-0 507 | 508 | '@vue/compiler-core@3.4.34': 509 | resolution: {integrity: sha512-Z0izUf32+wAnQewjHu+pQf1yw00EGOmevl1kE+ljjjMe7oEfpQ+BI3/JNK7yMB4IrUsqLDmPecUrpj3mCP+yJQ==} 510 | 511 | '@vue/compiler-dom@3.4.34': 512 | resolution: {integrity: sha512-3PUOTS1h5cskdOJMExCu2TInXuM0j60DRPpSCJDqOCupCfUZCJoyQmKtRmA8EgDNZ5kcEE7vketamRZfrEuVDw==} 513 | 514 | '@vue/compiler-sfc@3.4.34': 515 | resolution: {integrity: sha512-x6lm0UrM03jjDXTPZgD9Ad8bIVD1ifWNit2EaWQIZB5CULr46+FbLQ5RpK7AXtDHGjx9rmvC7QRCTjsiGkAwRw==} 516 | 517 | '@vue/compiler-ssr@3.4.34': 518 | resolution: {integrity: sha512-8TDBcLaTrFm5rnF+Qm4BlliaopJgqJ28Nsrc80qazynm5aJO+Emu7y0RWw34L8dNnTRdcVBpWzJxhGYzsoVu4g==} 519 | 520 | '@vue/devtools-api@6.6.3': 521 | resolution: {integrity: sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==} 522 | 523 | '@vue/reactivity@3.4.34': 524 | resolution: {integrity: sha512-ua+Lo+wBRlBEX9TtgPOShE2JwIO7p6BTZ7t1KZVPoaBRfqbC7N3c8Mpzicx173fXxx5VXeU6ykiHo7WgLzJQDA==} 525 | 526 | '@vue/runtime-core@3.4.34': 527 | resolution: {integrity: sha512-PXhkiRPwcPGJ1BnyBZFI96GfInCVskd0HPNIAZn7i3YOmLbtbTZpB7/kDTwC1W7IqdGPkTVC63IS7J2nZs4Ebg==} 528 | 529 | '@vue/runtime-dom@3.4.34': 530 | resolution: {integrity: sha512-dXqIe+RqFAK2Euak4UsvbIupalrhc67OuQKpD7HJ3W2fv8jlqvI7szfBCsAEcE8o/wyNpkloxB6J8viuF/E3gw==} 531 | 532 | '@vue/server-renderer@3.4.34': 533 | resolution: {integrity: sha512-GeyEUfMVRZMD/mZcNONEqg7MiU10QQ1DB3O/Qr6+8uXpbwdlmVgQ5Qs1/ZUAFX1X2UUtqMoGrDRbxdWfOJFT7Q==} 534 | peerDependencies: 535 | vue: 3.4.34 536 | 537 | '@vue/shared@3.4.34': 538 | resolution: {integrity: sha512-x5LmiRLpRsd9KTjAB8MPKf0CDPMcuItjP0gbNqFCIgL1I8iYp4zglhj9w9FPCdIbHG2M91RVeIbArFfFTz9I3A==} 539 | 540 | '@vue/tsconfig@0.1.3': 541 | resolution: {integrity: sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==} 542 | peerDependencies: 543 | '@types/node': '*' 544 | peerDependenciesMeta: 545 | '@types/node': 546 | optional: true 547 | 548 | accepts@1.3.8: 549 | resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} 550 | engines: {node: '>= 0.6'} 551 | 552 | acorn-walk@8.3.3: 553 | resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} 554 | engines: {node: '>=0.4.0'} 555 | 556 | acorn@8.12.1: 557 | resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} 558 | engines: {node: '>=0.4.0'} 559 | hasBin: true 560 | 561 | ansi-regex@5.0.1: 562 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 563 | engines: {node: '>=8'} 564 | 565 | ansi-regex@6.0.1: 566 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 567 | engines: {node: '>=12'} 568 | 569 | ansi-styles@3.2.1: 570 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 571 | engines: {node: '>=4'} 572 | 573 | ansi-styles@4.3.0: 574 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 575 | engines: {node: '>=8'} 576 | 577 | ansi-styles@6.2.1: 578 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 579 | engines: {node: '>=12'} 580 | 581 | any-promise@1.3.0: 582 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 583 | 584 | anymatch@3.1.3: 585 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 586 | engines: {node: '>= 8'} 587 | 588 | arg@4.1.3: 589 | resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} 590 | 591 | array-flatten@1.1.1: 592 | resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} 593 | 594 | array-union@2.1.0: 595 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 596 | engines: {node: '>=8'} 597 | 598 | assertion-error@1.1.0: 599 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 600 | 601 | balanced-match@1.0.2: 602 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 603 | 604 | binary-extensions@2.3.0: 605 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 606 | engines: {node: '>=8'} 607 | 608 | body-parser@1.20.2: 609 | resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} 610 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 611 | 612 | brace-expansion@1.1.11: 613 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 614 | 615 | brace-expansion@2.0.1: 616 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 617 | 618 | braces@3.0.3: 619 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 620 | engines: {node: '>=8'} 621 | 622 | browserslist@4.23.2: 623 | resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} 624 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 625 | hasBin: true 626 | 627 | buffer-from@1.1.2: 628 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 629 | 630 | bundle-require@4.2.1: 631 | resolution: {integrity: sha512-7Q/6vkyYAwOmQNRw75x+4yRtZCZJXUDmHHlFdkiV0wgv/reNjtJwpu1jPJ0w2kbEpIM0uoKI3S4/f39dU7AjSA==} 632 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 633 | peerDependencies: 634 | esbuild: '>=0.17' 635 | 636 | bytes@3.1.2: 637 | resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} 638 | engines: {node: '>= 0.8'} 639 | 640 | cac@6.7.14: 641 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 642 | engines: {node: '>=8'} 643 | 644 | call-bind@1.0.7: 645 | resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} 646 | engines: {node: '>= 0.4'} 647 | 648 | camelcase@6.3.0: 649 | resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} 650 | engines: {node: '>=10'} 651 | 652 | caniuse-lite@1.0.30001643: 653 | resolution: {integrity: sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==} 654 | 655 | chai@4.5.0: 656 | resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} 657 | engines: {node: '>=4'} 658 | 659 | chalk@2.4.2: 660 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 661 | engines: {node: '>=4'} 662 | 663 | check-error@1.0.3: 664 | resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} 665 | 666 | chokidar@3.6.0: 667 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 668 | engines: {node: '>= 8.10.0'} 669 | 670 | color-convert@1.9.3: 671 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 672 | 673 | color-convert@2.0.1: 674 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 675 | engines: {node: '>=7.0.0'} 676 | 677 | color-name@1.1.3: 678 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 679 | 680 | color-name@1.1.4: 681 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 682 | 683 | commander@4.1.1: 684 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 685 | engines: {node: '>= 6'} 686 | 687 | concat-map@0.0.1: 688 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 689 | 690 | content-disposition@0.5.4: 691 | resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} 692 | engines: {node: '>= 0.6'} 693 | 694 | content-type@1.0.5: 695 | resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} 696 | engines: {node: '>= 0.6'} 697 | 698 | convert-source-map@2.0.0: 699 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 700 | 701 | cookie-signature@1.0.6: 702 | resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} 703 | 704 | cookie@0.6.0: 705 | resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} 706 | engines: {node: '>= 0.6'} 707 | 708 | cors@2.8.5: 709 | resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} 710 | engines: {node: '>= 0.10'} 711 | 712 | create-require@1.1.1: 713 | resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} 714 | 715 | cross-spawn@7.0.3: 716 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 717 | engines: {node: '>= 8'} 718 | 719 | crypto-js@4.2.0: 720 | resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} 721 | 722 | csstype@3.1.3: 723 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 724 | 725 | debug@2.6.9: 726 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 727 | peerDependencies: 728 | supports-color: '*' 729 | peerDependenciesMeta: 730 | supports-color: 731 | optional: true 732 | 733 | debug@4.3.6: 734 | resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} 735 | engines: {node: '>=6.0'} 736 | peerDependencies: 737 | supports-color: '*' 738 | peerDependenciesMeta: 739 | supports-color: 740 | optional: true 741 | 742 | deep-eql@4.1.4: 743 | resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} 744 | engines: {node: '>=6'} 745 | 746 | define-data-property@1.1.4: 747 | resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} 748 | engines: {node: '>= 0.4'} 749 | 750 | depd@2.0.0: 751 | resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} 752 | engines: {node: '>= 0.8'} 753 | 754 | destroy@1.2.0: 755 | resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} 756 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 757 | 758 | diff@4.0.2: 759 | resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} 760 | engines: {node: '>=0.3.1'} 761 | 762 | dir-glob@3.0.1: 763 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 764 | engines: {node: '>=8'} 765 | 766 | dynamic-dedupe@0.3.0: 767 | resolution: {integrity: sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ==} 768 | 769 | eastasianwidth@0.2.0: 770 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 771 | 772 | ee-first@1.1.1: 773 | resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} 774 | 775 | electron-to-chromium@1.5.2: 776 | resolution: {integrity: sha512-kc4r3U3V3WLaaZqThjYz/Y6z8tJe+7K0bbjUVo3i+LWIypVdMx5nXCkwRe6SWbY6ILqLdc1rKcKmr3HoH7wjSQ==} 777 | 778 | emoji-regex@8.0.0: 779 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 780 | 781 | emoji-regex@9.2.2: 782 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 783 | 784 | encodeurl@1.0.2: 785 | resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} 786 | engines: {node: '>= 0.8'} 787 | 788 | entities@4.5.0: 789 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 790 | engines: {node: '>=0.12'} 791 | 792 | es-define-property@1.0.0: 793 | resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} 794 | engines: {node: '>= 0.4'} 795 | 796 | es-errors@1.3.0: 797 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 798 | engines: {node: '>= 0.4'} 799 | 800 | esbuild-android-64@0.14.54: 801 | resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} 802 | engines: {node: '>=12'} 803 | cpu: [x64] 804 | os: [android] 805 | 806 | esbuild-android-64@0.15.18: 807 | resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==} 808 | engines: {node: '>=12'} 809 | cpu: [x64] 810 | os: [android] 811 | 812 | esbuild-android-arm64@0.14.54: 813 | resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} 814 | engines: {node: '>=12'} 815 | cpu: [arm64] 816 | os: [android] 817 | 818 | esbuild-android-arm64@0.15.18: 819 | resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==} 820 | engines: {node: '>=12'} 821 | cpu: [arm64] 822 | os: [android] 823 | 824 | esbuild-darwin-64@0.14.54: 825 | resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} 826 | engines: {node: '>=12'} 827 | cpu: [x64] 828 | os: [darwin] 829 | 830 | esbuild-darwin-64@0.15.18: 831 | resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==} 832 | engines: {node: '>=12'} 833 | cpu: [x64] 834 | os: [darwin] 835 | 836 | esbuild-darwin-arm64@0.14.54: 837 | resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} 838 | engines: {node: '>=12'} 839 | cpu: [arm64] 840 | os: [darwin] 841 | 842 | esbuild-darwin-arm64@0.15.18: 843 | resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==} 844 | engines: {node: '>=12'} 845 | cpu: [arm64] 846 | os: [darwin] 847 | 848 | esbuild-freebsd-64@0.14.54: 849 | resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} 850 | engines: {node: '>=12'} 851 | cpu: [x64] 852 | os: [freebsd] 853 | 854 | esbuild-freebsd-64@0.15.18: 855 | resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==} 856 | engines: {node: '>=12'} 857 | cpu: [x64] 858 | os: [freebsd] 859 | 860 | esbuild-freebsd-arm64@0.14.54: 861 | resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} 862 | engines: {node: '>=12'} 863 | cpu: [arm64] 864 | os: [freebsd] 865 | 866 | esbuild-freebsd-arm64@0.15.18: 867 | resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==} 868 | engines: {node: '>=12'} 869 | cpu: [arm64] 870 | os: [freebsd] 871 | 872 | esbuild-linux-32@0.14.54: 873 | resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} 874 | engines: {node: '>=12'} 875 | cpu: [ia32] 876 | os: [linux] 877 | 878 | esbuild-linux-32@0.15.18: 879 | resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==} 880 | engines: {node: '>=12'} 881 | cpu: [ia32] 882 | os: [linux] 883 | 884 | esbuild-linux-64@0.14.54: 885 | resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} 886 | engines: {node: '>=12'} 887 | cpu: [x64] 888 | os: [linux] 889 | 890 | esbuild-linux-64@0.15.18: 891 | resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==} 892 | engines: {node: '>=12'} 893 | cpu: [x64] 894 | os: [linux] 895 | 896 | esbuild-linux-arm64@0.14.54: 897 | resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} 898 | engines: {node: '>=12'} 899 | cpu: [arm64] 900 | os: [linux] 901 | 902 | esbuild-linux-arm64@0.15.18: 903 | resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==} 904 | engines: {node: '>=12'} 905 | cpu: [arm64] 906 | os: [linux] 907 | 908 | esbuild-linux-arm@0.14.54: 909 | resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} 910 | engines: {node: '>=12'} 911 | cpu: [arm] 912 | os: [linux] 913 | 914 | esbuild-linux-arm@0.15.18: 915 | resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==} 916 | engines: {node: '>=12'} 917 | cpu: [arm] 918 | os: [linux] 919 | 920 | esbuild-linux-mips64le@0.14.54: 921 | resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} 922 | engines: {node: '>=12'} 923 | cpu: [mips64el] 924 | os: [linux] 925 | 926 | esbuild-linux-mips64le@0.15.18: 927 | resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==} 928 | engines: {node: '>=12'} 929 | cpu: [mips64el] 930 | os: [linux] 931 | 932 | esbuild-linux-ppc64le@0.14.54: 933 | resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} 934 | engines: {node: '>=12'} 935 | cpu: [ppc64] 936 | os: [linux] 937 | 938 | esbuild-linux-ppc64le@0.15.18: 939 | resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==} 940 | engines: {node: '>=12'} 941 | cpu: [ppc64] 942 | os: [linux] 943 | 944 | esbuild-linux-riscv64@0.14.54: 945 | resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} 946 | engines: {node: '>=12'} 947 | cpu: [riscv64] 948 | os: [linux] 949 | 950 | esbuild-linux-riscv64@0.15.18: 951 | resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==} 952 | engines: {node: '>=12'} 953 | cpu: [riscv64] 954 | os: [linux] 955 | 956 | esbuild-linux-s390x@0.14.54: 957 | resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} 958 | engines: {node: '>=12'} 959 | cpu: [s390x] 960 | os: [linux] 961 | 962 | esbuild-linux-s390x@0.15.18: 963 | resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==} 964 | engines: {node: '>=12'} 965 | cpu: [s390x] 966 | os: [linux] 967 | 968 | esbuild-netbsd-64@0.14.54: 969 | resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} 970 | engines: {node: '>=12'} 971 | cpu: [x64] 972 | os: [netbsd] 973 | 974 | esbuild-netbsd-64@0.15.18: 975 | resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==} 976 | engines: {node: '>=12'} 977 | cpu: [x64] 978 | os: [netbsd] 979 | 980 | esbuild-openbsd-64@0.14.54: 981 | resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} 982 | engines: {node: '>=12'} 983 | cpu: [x64] 984 | os: [openbsd] 985 | 986 | esbuild-openbsd-64@0.15.18: 987 | resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==} 988 | engines: {node: '>=12'} 989 | cpu: [x64] 990 | os: [openbsd] 991 | 992 | esbuild-sunos-64@0.14.54: 993 | resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} 994 | engines: {node: '>=12'} 995 | cpu: [x64] 996 | os: [sunos] 997 | 998 | esbuild-sunos-64@0.15.18: 999 | resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==} 1000 | engines: {node: '>=12'} 1001 | cpu: [x64] 1002 | os: [sunos] 1003 | 1004 | esbuild-windows-32@0.14.54: 1005 | resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} 1006 | engines: {node: '>=12'} 1007 | cpu: [ia32] 1008 | os: [win32] 1009 | 1010 | esbuild-windows-32@0.15.18: 1011 | resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==} 1012 | engines: {node: '>=12'} 1013 | cpu: [ia32] 1014 | os: [win32] 1015 | 1016 | esbuild-windows-64@0.14.54: 1017 | resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} 1018 | engines: {node: '>=12'} 1019 | cpu: [x64] 1020 | os: [win32] 1021 | 1022 | esbuild-windows-64@0.15.18: 1023 | resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==} 1024 | engines: {node: '>=12'} 1025 | cpu: [x64] 1026 | os: [win32] 1027 | 1028 | esbuild-windows-arm64@0.14.54: 1029 | resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} 1030 | engines: {node: '>=12'} 1031 | cpu: [arm64] 1032 | os: [win32] 1033 | 1034 | esbuild-windows-arm64@0.15.18: 1035 | resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==} 1036 | engines: {node: '>=12'} 1037 | cpu: [arm64] 1038 | os: [win32] 1039 | 1040 | esbuild@0.14.54: 1041 | resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} 1042 | engines: {node: '>=12'} 1043 | hasBin: true 1044 | 1045 | esbuild@0.15.18: 1046 | resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==} 1047 | engines: {node: '>=12'} 1048 | hasBin: true 1049 | 1050 | esbuild@0.17.19: 1051 | resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} 1052 | engines: {node: '>=12'} 1053 | hasBin: true 1054 | 1055 | escalade@3.1.2: 1056 | resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} 1057 | engines: {node: '>=6'} 1058 | 1059 | escape-html@1.0.3: 1060 | resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} 1061 | 1062 | escape-string-regexp@1.0.5: 1063 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1064 | engines: {node: '>=0.8.0'} 1065 | 1066 | estree-walker@2.0.2: 1067 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 1068 | 1069 | etag@1.8.1: 1070 | resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} 1071 | engines: {node: '>= 0.6'} 1072 | 1073 | execa@5.1.1: 1074 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 1075 | engines: {node: '>=10'} 1076 | 1077 | express@4.19.2: 1078 | resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} 1079 | engines: {node: '>= 0.10.0'} 1080 | 1081 | fast-glob@3.3.2: 1082 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 1083 | engines: {node: '>=8.6.0'} 1084 | 1085 | fastq@1.17.1: 1086 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 1087 | 1088 | fill-range@7.1.1: 1089 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 1090 | engines: {node: '>=8'} 1091 | 1092 | finalhandler@1.2.0: 1093 | resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} 1094 | engines: {node: '>= 0.8'} 1095 | 1096 | foreground-child@3.2.1: 1097 | resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} 1098 | engines: {node: '>=14'} 1099 | 1100 | forwarded@0.2.0: 1101 | resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} 1102 | engines: {node: '>= 0.6'} 1103 | 1104 | fresh@0.5.2: 1105 | resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} 1106 | engines: {node: '>= 0.6'} 1107 | 1108 | fs.realpath@1.0.0: 1109 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1110 | 1111 | fsevents@2.3.3: 1112 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1113 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1114 | os: [darwin] 1115 | 1116 | function-bind@1.1.2: 1117 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1118 | 1119 | gensync@1.0.0-beta.2: 1120 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 1121 | engines: {node: '>=6.9.0'} 1122 | 1123 | get-func-name@2.0.2: 1124 | resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} 1125 | 1126 | get-intrinsic@1.2.4: 1127 | resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} 1128 | engines: {node: '>= 0.4'} 1129 | 1130 | get-stream@6.0.1: 1131 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 1132 | engines: {node: '>=10'} 1133 | 1134 | glob-parent@5.1.2: 1135 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1136 | engines: {node: '>= 6'} 1137 | 1138 | glob@10.4.5: 1139 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 1140 | hasBin: true 1141 | 1142 | glob@7.2.3: 1143 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1144 | deprecated: Glob versions prior to v9 are no longer supported 1145 | 1146 | globals@11.12.0: 1147 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 1148 | engines: {node: '>=4'} 1149 | 1150 | globby@11.1.0: 1151 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1152 | engines: {node: '>=10'} 1153 | 1154 | gopd@1.0.1: 1155 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 1156 | 1157 | has-flag@3.0.0: 1158 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1159 | engines: {node: '>=4'} 1160 | 1161 | has-property-descriptors@1.0.2: 1162 | resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} 1163 | 1164 | has-proto@1.0.3: 1165 | resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} 1166 | engines: {node: '>= 0.4'} 1167 | 1168 | has-symbols@1.0.3: 1169 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 1170 | engines: {node: '>= 0.4'} 1171 | 1172 | hasown@2.0.2: 1173 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1174 | engines: {node: '>= 0.4'} 1175 | 1176 | html-tags@3.3.1: 1177 | resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} 1178 | engines: {node: '>=8'} 1179 | 1180 | http-errors@2.0.0: 1181 | resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} 1182 | engines: {node: '>= 0.8'} 1183 | 1184 | human-signals@2.1.0: 1185 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 1186 | engines: {node: '>=10.17.0'} 1187 | 1188 | iconv-lite@0.4.24: 1189 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 1190 | engines: {node: '>=0.10.0'} 1191 | 1192 | ignore@5.3.1: 1193 | resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} 1194 | engines: {node: '>= 4'} 1195 | 1196 | inflight@1.0.6: 1197 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1198 | deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. 1199 | 1200 | inherits@2.0.4: 1201 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1202 | 1203 | ipaddr.js@1.9.1: 1204 | resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} 1205 | engines: {node: '>= 0.10'} 1206 | 1207 | is-binary-path@2.1.0: 1208 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1209 | engines: {node: '>=8'} 1210 | 1211 | is-core-module@2.15.0: 1212 | resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} 1213 | engines: {node: '>= 0.4'} 1214 | 1215 | is-extglob@2.1.1: 1216 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1217 | engines: {node: '>=0.10.0'} 1218 | 1219 | is-fullwidth-code-point@3.0.0: 1220 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1221 | engines: {node: '>=8'} 1222 | 1223 | is-glob@4.0.3: 1224 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1225 | engines: {node: '>=0.10.0'} 1226 | 1227 | is-number@7.0.0: 1228 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1229 | engines: {node: '>=0.12.0'} 1230 | 1231 | is-stream@2.0.1: 1232 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 1233 | engines: {node: '>=8'} 1234 | 1235 | isexe@2.0.0: 1236 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1237 | 1238 | jackspeak@3.4.3: 1239 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 1240 | 1241 | joycon@3.1.1: 1242 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 1243 | engines: {node: '>=10'} 1244 | 1245 | js-tokens@4.0.0: 1246 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1247 | 1248 | jsesc@2.5.2: 1249 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 1250 | engines: {node: '>=4'} 1251 | hasBin: true 1252 | 1253 | json5@2.2.3: 1254 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1255 | engines: {node: '>=6'} 1256 | hasBin: true 1257 | 1258 | jwt-decode@3.1.2: 1259 | resolution: {integrity: sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==} 1260 | 1261 | lilconfig@2.1.0: 1262 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 1263 | engines: {node: '>=10'} 1264 | 1265 | lines-and-columns@1.2.4: 1266 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1267 | 1268 | load-tsconfig@0.2.5: 1269 | resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} 1270 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1271 | 1272 | local-pkg@0.4.3: 1273 | resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} 1274 | engines: {node: '>=14'} 1275 | 1276 | lodash.sortby@4.7.0: 1277 | resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} 1278 | 1279 | loupe@2.3.7: 1280 | resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} 1281 | 1282 | lru-cache@10.4.3: 1283 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 1284 | 1285 | lru-cache@5.1.1: 1286 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 1287 | 1288 | magic-string@0.30.10: 1289 | resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} 1290 | 1291 | make-error@1.3.6: 1292 | resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} 1293 | 1294 | media-typer@0.3.0: 1295 | resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} 1296 | engines: {node: '>= 0.6'} 1297 | 1298 | merge-descriptors@1.0.1: 1299 | resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} 1300 | 1301 | merge-stream@2.0.0: 1302 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1303 | 1304 | merge2@1.4.1: 1305 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1306 | engines: {node: '>= 8'} 1307 | 1308 | methods@1.1.2: 1309 | resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} 1310 | engines: {node: '>= 0.6'} 1311 | 1312 | micromatch@4.0.7: 1313 | resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} 1314 | engines: {node: '>=8.6'} 1315 | 1316 | mime-db@1.52.0: 1317 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1318 | engines: {node: '>= 0.6'} 1319 | 1320 | mime-types@2.1.35: 1321 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1322 | engines: {node: '>= 0.6'} 1323 | 1324 | mime@1.6.0: 1325 | resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} 1326 | engines: {node: '>=4'} 1327 | hasBin: true 1328 | 1329 | mimic-fn@2.1.0: 1330 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 1331 | engines: {node: '>=6'} 1332 | 1333 | minimatch@3.1.2: 1334 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1335 | 1336 | minimatch@9.0.5: 1337 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1338 | engines: {node: '>=16 || 14 >=14.17'} 1339 | 1340 | minimist@1.2.8: 1341 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 1342 | 1343 | minipass@7.1.2: 1344 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 1345 | engines: {node: '>=16 || 14 >=14.17'} 1346 | 1347 | mkdirp@1.0.4: 1348 | resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} 1349 | engines: {node: '>=10'} 1350 | hasBin: true 1351 | 1352 | ms@2.0.0: 1353 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 1354 | 1355 | ms@2.1.2: 1356 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1357 | 1358 | ms@2.1.3: 1359 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1360 | 1361 | mz@2.7.0: 1362 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 1363 | 1364 | nanoid@3.3.7: 1365 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 1366 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1367 | hasBin: true 1368 | 1369 | negotiator@0.6.3: 1370 | resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} 1371 | engines: {node: '>= 0.6'} 1372 | 1373 | node-releases@2.0.18: 1374 | resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} 1375 | 1376 | normalize-path@3.0.0: 1377 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1378 | engines: {node: '>=0.10.0'} 1379 | 1380 | npm-run-path@4.0.1: 1381 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 1382 | engines: {node: '>=8'} 1383 | 1384 | object-assign@4.1.1: 1385 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1386 | engines: {node: '>=0.10.0'} 1387 | 1388 | object-inspect@1.13.2: 1389 | resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} 1390 | engines: {node: '>= 0.4'} 1391 | 1392 | oidc-client-ts@2.4.0: 1393 | resolution: {integrity: sha512-WijhkTrlXK2VvgGoakWJiBdfIsVGz6CFzgjNNqZU1hPKV2kyeEaJgLs7RwuiSp2WhLfWBQuLvr2SxVlZnk3N1w==} 1394 | engines: {node: '>=12.13.0'} 1395 | 1396 | on-finished@2.4.1: 1397 | resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} 1398 | engines: {node: '>= 0.8'} 1399 | 1400 | once@1.4.0: 1401 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1402 | 1403 | onetime@5.1.2: 1404 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 1405 | engines: {node: '>=6'} 1406 | 1407 | package-json-from-dist@1.0.0: 1408 | resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} 1409 | 1410 | parseurl@1.3.3: 1411 | resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} 1412 | engines: {node: '>= 0.8'} 1413 | 1414 | path-is-absolute@1.0.1: 1415 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1416 | engines: {node: '>=0.10.0'} 1417 | 1418 | path-key@3.1.1: 1419 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1420 | engines: {node: '>=8'} 1421 | 1422 | path-parse@1.0.7: 1423 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1424 | 1425 | path-scurry@1.11.1: 1426 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 1427 | engines: {node: '>=16 || 14 >=14.18'} 1428 | 1429 | path-to-regexp@0.1.7: 1430 | resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} 1431 | 1432 | path-type@4.0.0: 1433 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1434 | engines: {node: '>=8'} 1435 | 1436 | pathval@1.1.1: 1437 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} 1438 | 1439 | picocolors@1.0.1: 1440 | resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} 1441 | 1442 | picomatch@2.3.1: 1443 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1444 | engines: {node: '>=8.6'} 1445 | 1446 | pirates@4.0.6: 1447 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 1448 | engines: {node: '>= 6'} 1449 | 1450 | postcss-load-config@3.1.4: 1451 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} 1452 | engines: {node: '>= 10'} 1453 | peerDependencies: 1454 | postcss: '>=8.0.9' 1455 | ts-node: '>=9.0.0' 1456 | peerDependenciesMeta: 1457 | postcss: 1458 | optional: true 1459 | ts-node: 1460 | optional: true 1461 | 1462 | postcss@8.4.40: 1463 | resolution: {integrity: sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==} 1464 | engines: {node: ^10 || ^12 || >=14} 1465 | 1466 | proxy-addr@2.0.7: 1467 | resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} 1468 | engines: {node: '>= 0.10'} 1469 | 1470 | punycode@2.3.1: 1471 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1472 | engines: {node: '>=6'} 1473 | 1474 | qs@6.11.0: 1475 | resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} 1476 | engines: {node: '>=0.6'} 1477 | 1478 | queue-microtask@1.2.3: 1479 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1480 | 1481 | range-parser@1.2.1: 1482 | resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} 1483 | engines: {node: '>= 0.6'} 1484 | 1485 | raw-body@2.5.2: 1486 | resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} 1487 | engines: {node: '>= 0.8'} 1488 | 1489 | readdirp@3.6.0: 1490 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1491 | engines: {node: '>=8.10.0'} 1492 | 1493 | resolve-from@5.0.0: 1494 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 1495 | engines: {node: '>=8'} 1496 | 1497 | resolve@1.22.8: 1498 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 1499 | hasBin: true 1500 | 1501 | reusify@1.0.4: 1502 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1503 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1504 | 1505 | rimraf@2.7.1: 1506 | resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} 1507 | deprecated: Rimraf versions prior to v4 are no longer supported 1508 | hasBin: true 1509 | 1510 | rollup@2.77.3: 1511 | resolution: {integrity: sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==} 1512 | engines: {node: '>=10.0.0'} 1513 | hasBin: true 1514 | 1515 | rollup@2.79.1: 1516 | resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} 1517 | engines: {node: '>=10.0.0'} 1518 | hasBin: true 1519 | 1520 | rollup@3.29.4: 1521 | resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} 1522 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 1523 | hasBin: true 1524 | 1525 | run-parallel@1.2.0: 1526 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1527 | 1528 | safe-buffer@5.2.1: 1529 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1530 | 1531 | safer-buffer@2.1.2: 1532 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1533 | 1534 | semver@6.3.1: 1535 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1536 | hasBin: true 1537 | 1538 | send@0.18.0: 1539 | resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} 1540 | engines: {node: '>= 0.8.0'} 1541 | 1542 | serve-static@1.15.0: 1543 | resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} 1544 | engines: {node: '>= 0.8.0'} 1545 | 1546 | set-function-length@1.2.2: 1547 | resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} 1548 | engines: {node: '>= 0.4'} 1549 | 1550 | setprototypeof@1.2.0: 1551 | resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} 1552 | 1553 | shebang-command@2.0.0: 1554 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1555 | engines: {node: '>=8'} 1556 | 1557 | shebang-regex@3.0.0: 1558 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1559 | engines: {node: '>=8'} 1560 | 1561 | side-channel@1.0.6: 1562 | resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} 1563 | engines: {node: '>= 0.4'} 1564 | 1565 | signal-exit@3.0.7: 1566 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 1567 | 1568 | signal-exit@4.1.0: 1569 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1570 | engines: {node: '>=14'} 1571 | 1572 | slash@3.0.0: 1573 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1574 | engines: {node: '>=8'} 1575 | 1576 | source-map-js@1.2.0: 1577 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 1578 | engines: {node: '>=0.10.0'} 1579 | 1580 | source-map-support@0.5.21: 1581 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 1582 | 1583 | source-map@0.6.1: 1584 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1585 | engines: {node: '>=0.10.0'} 1586 | 1587 | source-map@0.8.0-beta.0: 1588 | resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} 1589 | engines: {node: '>= 8'} 1590 | 1591 | statuses@2.0.1: 1592 | resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} 1593 | engines: {node: '>= 0.8'} 1594 | 1595 | string-width@4.2.3: 1596 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1597 | engines: {node: '>=8'} 1598 | 1599 | string-width@5.1.2: 1600 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1601 | engines: {node: '>=12'} 1602 | 1603 | strip-ansi@6.0.1: 1604 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1605 | engines: {node: '>=8'} 1606 | 1607 | strip-ansi@7.1.0: 1608 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1609 | engines: {node: '>=12'} 1610 | 1611 | strip-bom@3.0.0: 1612 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 1613 | engines: {node: '>=4'} 1614 | 1615 | strip-final-newline@2.0.0: 1616 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 1617 | engines: {node: '>=6'} 1618 | 1619 | strip-json-comments@2.0.1: 1620 | resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} 1621 | engines: {node: '>=0.10.0'} 1622 | 1623 | sucrase@3.35.0: 1624 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 1625 | engines: {node: '>=16 || 14 >=14.17'} 1626 | hasBin: true 1627 | 1628 | supports-color@5.5.0: 1629 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1630 | engines: {node: '>=4'} 1631 | 1632 | supports-preserve-symlinks-flag@1.0.0: 1633 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1634 | engines: {node: '>= 0.4'} 1635 | 1636 | svg-tags@1.0.0: 1637 | resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} 1638 | 1639 | thenify-all@1.6.0: 1640 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 1641 | engines: {node: '>=0.8'} 1642 | 1643 | thenify@3.3.1: 1644 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 1645 | 1646 | tinypool@0.2.4: 1647 | resolution: {integrity: sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ==} 1648 | engines: {node: '>=14.0.0'} 1649 | 1650 | tinyspy@0.3.3: 1651 | resolution: {integrity: sha512-gRiUR8fuhUf0W9lzojPf1N1euJYA30ISebSfgca8z76FOvXtVXqd5ojEIaKLWbDQhAaC3ibxZIjqbyi4ybjcTw==} 1652 | engines: {node: '>=14.0.0'} 1653 | 1654 | to-fast-properties@2.0.0: 1655 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 1656 | engines: {node: '>=4'} 1657 | 1658 | to-regex-range@5.0.1: 1659 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1660 | engines: {node: '>=8.0'} 1661 | 1662 | toidentifier@1.0.1: 1663 | resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} 1664 | engines: {node: '>=0.6'} 1665 | 1666 | tr46@1.0.1: 1667 | resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} 1668 | 1669 | tree-kill@1.2.2: 1670 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 1671 | hasBin: true 1672 | 1673 | ts-interface-checker@0.1.13: 1674 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 1675 | 1676 | ts-node-dev@2.0.0: 1677 | resolution: {integrity: sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w==} 1678 | engines: {node: '>=0.8.0'} 1679 | hasBin: true 1680 | peerDependencies: 1681 | node-notifier: '*' 1682 | typescript: '*' 1683 | peerDependenciesMeta: 1684 | node-notifier: 1685 | optional: true 1686 | 1687 | ts-node@10.9.2: 1688 | resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} 1689 | hasBin: true 1690 | peerDependencies: 1691 | '@swc/core': '>=1.2.50' 1692 | '@swc/wasm': '>=1.2.50' 1693 | '@types/node': '*' 1694 | typescript: '>=2.7' 1695 | peerDependenciesMeta: 1696 | '@swc/core': 1697 | optional: true 1698 | '@swc/wasm': 1699 | optional: true 1700 | 1701 | tsconfig@7.0.0: 1702 | resolution: {integrity: sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==} 1703 | 1704 | tslib@2.6.3: 1705 | resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} 1706 | 1707 | tsup@6.7.0: 1708 | resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==} 1709 | engines: {node: '>=14.18'} 1710 | hasBin: true 1711 | peerDependencies: 1712 | '@swc/core': ^1 1713 | postcss: ^8.4.12 1714 | typescript: '>=4.1.0' 1715 | peerDependenciesMeta: 1716 | '@swc/core': 1717 | optional: true 1718 | postcss: 1719 | optional: true 1720 | typescript: 1721 | optional: true 1722 | 1723 | type-detect@4.1.0: 1724 | resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} 1725 | engines: {node: '>=4'} 1726 | 1727 | type-is@1.6.18: 1728 | resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} 1729 | engines: {node: '>= 0.6'} 1730 | 1731 | typescript@4.9.5: 1732 | resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} 1733 | engines: {node: '>=4.2.0'} 1734 | hasBin: true 1735 | 1736 | undici-types@5.26.5: 1737 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} 1738 | 1739 | unpipe@1.0.0: 1740 | resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} 1741 | engines: {node: '>= 0.8'} 1742 | 1743 | update-browserslist-db@1.1.0: 1744 | resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} 1745 | hasBin: true 1746 | peerDependencies: 1747 | browserslist: '>= 4.21.0' 1748 | 1749 | utils-merge@1.0.1: 1750 | resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} 1751 | engines: {node: '>= 0.4.0'} 1752 | 1753 | v8-compile-cache-lib@3.0.1: 1754 | resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} 1755 | 1756 | vary@1.1.2: 1757 | resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} 1758 | engines: {node: '>= 0.8'} 1759 | 1760 | vite@2.9.18: 1761 | resolution: {integrity: sha512-sAOqI5wNM9QvSEE70W3UGMdT8cyEn0+PmJMTFvTB8wB0YbYUWw3gUbY62AOyrXosGieF2htmeLATvNxpv/zNyQ==} 1762 | engines: {node: '>=12.2.0'} 1763 | hasBin: true 1764 | peerDependencies: 1765 | less: '*' 1766 | sass: '*' 1767 | stylus: '*' 1768 | peerDependenciesMeta: 1769 | less: 1770 | optional: true 1771 | sass: 1772 | optional: true 1773 | stylus: 1774 | optional: true 1775 | 1776 | vite@3.2.10: 1777 | resolution: {integrity: sha512-Dx3olBo/ODNiMVk/cA5Yft9Ws+snLOXrhLtrI3F4XLt4syz2Yg8fayZMWScPKoz12v5BUv7VEmQHnsfpY80fYw==} 1778 | engines: {node: ^14.18.0 || >=16.0.0} 1779 | hasBin: true 1780 | peerDependencies: 1781 | '@types/node': '>= 14' 1782 | less: '*' 1783 | sass: '*' 1784 | stylus: '*' 1785 | sugarss: '*' 1786 | terser: ^5.4.0 1787 | peerDependenciesMeta: 1788 | '@types/node': 1789 | optional: true 1790 | less: 1791 | optional: true 1792 | sass: 1793 | optional: true 1794 | stylus: 1795 | optional: true 1796 | sugarss: 1797 | optional: true 1798 | terser: 1799 | optional: true 1800 | 1801 | vitest@0.16.0: 1802 | resolution: {integrity: sha512-Ntp6jrM8wf2NMtamMBLkRBBdeqHkgAH/WMh5Xryts1j2ft2D8QZQbiSVFkSl4WmEQzcPP0YM069g/Ga1vtnEtg==} 1803 | engines: {node: '>=v14.16.0'} 1804 | hasBin: true 1805 | peerDependencies: 1806 | '@vitest/ui': '*' 1807 | c8: '*' 1808 | happy-dom: '*' 1809 | jsdom: '*' 1810 | peerDependenciesMeta: 1811 | '@vitest/ui': 1812 | optional: true 1813 | c8: 1814 | optional: true 1815 | happy-dom: 1816 | optional: true 1817 | jsdom: 1818 | optional: true 1819 | 1820 | vue-router@4.4.0: 1821 | resolution: {integrity: sha512-HB+t2p611aIZraV2aPSRNXf0Z/oLZFrlygJm+sZbdJaW6lcFqEDQwnzUBXn+DApw+/QzDU/I9TeWx9izEjTmsA==} 1822 | peerDependencies: 1823 | vue: ^3.2.0 1824 | 1825 | vue@3.4.34: 1826 | resolution: {integrity: sha512-VZze05HWlA3ItreQ/ka7Sx7PoD0/3St8FEiSlSTVgb6l4hL+RjtP2/8g5WQBzZgyf8WG2f+g1bXzC7zggLhAJA==} 1827 | peerDependencies: 1828 | typescript: '*' 1829 | peerDependenciesMeta: 1830 | typescript: 1831 | optional: true 1832 | 1833 | webidl-conversions@4.0.2: 1834 | resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} 1835 | 1836 | whatwg-url@7.1.0: 1837 | resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} 1838 | 1839 | which@2.0.2: 1840 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1841 | engines: {node: '>= 8'} 1842 | hasBin: true 1843 | 1844 | wrap-ansi@7.0.0: 1845 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1846 | engines: {node: '>=10'} 1847 | 1848 | wrap-ansi@8.1.0: 1849 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 1850 | engines: {node: '>=12'} 1851 | 1852 | wrappy@1.0.2: 1853 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1854 | 1855 | xtend@4.0.2: 1856 | resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 1857 | engines: {node: '>=0.4'} 1858 | 1859 | yallist@3.1.1: 1860 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 1861 | 1862 | yaml@1.10.2: 1863 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 1864 | engines: {node: '>= 6'} 1865 | 1866 | yn@3.1.1: 1867 | resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} 1868 | engines: {node: '>=6'} 1869 | 1870 | snapshots: 1871 | 1872 | '@ampproject/remapping@2.3.0': 1873 | dependencies: 1874 | '@jridgewell/gen-mapping': 0.3.5 1875 | '@jridgewell/trace-mapping': 0.3.25 1876 | 1877 | '@babel/code-frame@7.24.7': 1878 | dependencies: 1879 | '@babel/highlight': 7.24.7 1880 | picocolors: 1.0.1 1881 | 1882 | '@babel/compat-data@7.25.0': {} 1883 | 1884 | '@babel/core@7.24.9': 1885 | dependencies: 1886 | '@ampproject/remapping': 2.3.0 1887 | '@babel/code-frame': 7.24.7 1888 | '@babel/generator': 7.25.0 1889 | '@babel/helper-compilation-targets': 7.24.8 1890 | '@babel/helper-module-transforms': 7.25.0(@babel/core@7.24.9) 1891 | '@babel/helpers': 7.25.0 1892 | '@babel/parser': 7.25.0 1893 | '@babel/template': 7.25.0 1894 | '@babel/traverse': 7.25.1 1895 | '@babel/types': 7.25.0 1896 | convert-source-map: 2.0.0 1897 | debug: 4.3.6 1898 | gensync: 1.0.0-beta.2 1899 | json5: 2.2.3 1900 | semver: 6.3.1 1901 | transitivePeerDependencies: 1902 | - supports-color 1903 | 1904 | '@babel/generator@7.25.0': 1905 | dependencies: 1906 | '@babel/types': 7.25.0 1907 | '@jridgewell/gen-mapping': 0.3.5 1908 | '@jridgewell/trace-mapping': 0.3.25 1909 | jsesc: 2.5.2 1910 | 1911 | '@babel/helper-annotate-as-pure@7.24.7': 1912 | dependencies: 1913 | '@babel/types': 7.25.0 1914 | 1915 | '@babel/helper-compilation-targets@7.24.8': 1916 | dependencies: 1917 | '@babel/compat-data': 7.25.0 1918 | '@babel/helper-validator-option': 7.24.8 1919 | browserslist: 4.23.2 1920 | lru-cache: 5.1.1 1921 | semver: 6.3.1 1922 | 1923 | '@babel/helper-create-class-features-plugin@7.25.0(@babel/core@7.24.9)': 1924 | dependencies: 1925 | '@babel/core': 7.24.9 1926 | '@babel/helper-annotate-as-pure': 7.24.7 1927 | '@babel/helper-member-expression-to-functions': 7.24.8 1928 | '@babel/helper-optimise-call-expression': 7.24.7 1929 | '@babel/helper-replace-supers': 7.25.0(@babel/core@7.24.9) 1930 | '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 1931 | '@babel/traverse': 7.25.1 1932 | semver: 6.3.1 1933 | transitivePeerDependencies: 1934 | - supports-color 1935 | 1936 | '@babel/helper-member-expression-to-functions@7.24.8': 1937 | dependencies: 1938 | '@babel/traverse': 7.25.1 1939 | '@babel/types': 7.25.0 1940 | transitivePeerDependencies: 1941 | - supports-color 1942 | 1943 | '@babel/helper-module-imports@7.22.15': 1944 | dependencies: 1945 | '@babel/types': 7.25.0 1946 | 1947 | '@babel/helper-module-imports@7.24.7': 1948 | dependencies: 1949 | '@babel/traverse': 7.25.1 1950 | '@babel/types': 7.25.0 1951 | transitivePeerDependencies: 1952 | - supports-color 1953 | 1954 | '@babel/helper-module-transforms@7.25.0(@babel/core@7.24.9)': 1955 | dependencies: 1956 | '@babel/core': 7.24.9 1957 | '@babel/helper-module-imports': 7.24.7 1958 | '@babel/helper-simple-access': 7.24.7 1959 | '@babel/helper-validator-identifier': 7.24.7 1960 | '@babel/traverse': 7.25.1 1961 | transitivePeerDependencies: 1962 | - supports-color 1963 | 1964 | '@babel/helper-optimise-call-expression@7.24.7': 1965 | dependencies: 1966 | '@babel/types': 7.25.0 1967 | 1968 | '@babel/helper-plugin-utils@7.24.8': {} 1969 | 1970 | '@babel/helper-replace-supers@7.25.0(@babel/core@7.24.9)': 1971 | dependencies: 1972 | '@babel/core': 7.24.9 1973 | '@babel/helper-member-expression-to-functions': 7.24.8 1974 | '@babel/helper-optimise-call-expression': 7.24.7 1975 | '@babel/traverse': 7.25.1 1976 | transitivePeerDependencies: 1977 | - supports-color 1978 | 1979 | '@babel/helper-simple-access@7.24.7': 1980 | dependencies: 1981 | '@babel/traverse': 7.25.1 1982 | '@babel/types': 7.25.0 1983 | transitivePeerDependencies: 1984 | - supports-color 1985 | 1986 | '@babel/helper-skip-transparent-expression-wrappers@7.24.7': 1987 | dependencies: 1988 | '@babel/traverse': 7.25.1 1989 | '@babel/types': 7.25.0 1990 | transitivePeerDependencies: 1991 | - supports-color 1992 | 1993 | '@babel/helper-string-parser@7.24.8': {} 1994 | 1995 | '@babel/helper-validator-identifier@7.24.7': {} 1996 | 1997 | '@babel/helper-validator-option@7.24.8': {} 1998 | 1999 | '@babel/helpers@7.25.0': 2000 | dependencies: 2001 | '@babel/template': 7.25.0 2002 | '@babel/types': 7.25.0 2003 | 2004 | '@babel/highlight@7.24.7': 2005 | dependencies: 2006 | '@babel/helper-validator-identifier': 7.24.7 2007 | chalk: 2.4.2 2008 | js-tokens: 4.0.0 2009 | picocolors: 1.0.1 2010 | 2011 | '@babel/parser@7.25.0': 2012 | dependencies: 2013 | '@babel/types': 7.25.0 2014 | 2015 | '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.9)': 2016 | dependencies: 2017 | '@babel/core': 7.24.9 2018 | '@babel/helper-plugin-utils': 7.24.8 2019 | 2020 | '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.9)': 2021 | dependencies: 2022 | '@babel/core': 7.24.9 2023 | '@babel/helper-plugin-utils': 7.24.8 2024 | 2025 | '@babel/plugin-transform-typescript@7.25.0(@babel/core@7.24.9)': 2026 | dependencies: 2027 | '@babel/core': 7.24.9 2028 | '@babel/helper-annotate-as-pure': 7.24.7 2029 | '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.24.9) 2030 | '@babel/helper-plugin-utils': 7.24.8 2031 | '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 2032 | '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.9) 2033 | transitivePeerDependencies: 2034 | - supports-color 2035 | 2036 | '@babel/template@7.25.0': 2037 | dependencies: 2038 | '@babel/code-frame': 7.24.7 2039 | '@babel/parser': 7.25.0 2040 | '@babel/types': 7.25.0 2041 | 2042 | '@babel/traverse@7.25.1': 2043 | dependencies: 2044 | '@babel/code-frame': 7.24.7 2045 | '@babel/generator': 7.25.0 2046 | '@babel/parser': 7.25.0 2047 | '@babel/template': 7.25.0 2048 | '@babel/types': 7.25.0 2049 | debug: 4.3.6 2050 | globals: 11.12.0 2051 | transitivePeerDependencies: 2052 | - supports-color 2053 | 2054 | '@babel/types@7.25.0': 2055 | dependencies: 2056 | '@babel/helper-string-parser': 7.24.8 2057 | '@babel/helper-validator-identifier': 7.24.7 2058 | to-fast-properties: 2.0.0 2059 | 2060 | '@cspotcode/source-map-support@0.8.1': 2061 | dependencies: 2062 | '@jridgewell/trace-mapping': 0.3.9 2063 | 2064 | '@esbuild/android-arm64@0.17.19': 2065 | optional: true 2066 | 2067 | '@esbuild/android-arm@0.15.18': 2068 | optional: true 2069 | 2070 | '@esbuild/android-arm@0.17.19': 2071 | optional: true 2072 | 2073 | '@esbuild/android-x64@0.17.19': 2074 | optional: true 2075 | 2076 | '@esbuild/darwin-arm64@0.17.19': 2077 | optional: true 2078 | 2079 | '@esbuild/darwin-x64@0.17.19': 2080 | optional: true 2081 | 2082 | '@esbuild/freebsd-arm64@0.17.19': 2083 | optional: true 2084 | 2085 | '@esbuild/freebsd-x64@0.17.19': 2086 | optional: true 2087 | 2088 | '@esbuild/linux-arm64@0.17.19': 2089 | optional: true 2090 | 2091 | '@esbuild/linux-arm@0.17.19': 2092 | optional: true 2093 | 2094 | '@esbuild/linux-ia32@0.17.19': 2095 | optional: true 2096 | 2097 | '@esbuild/linux-loong64@0.14.54': 2098 | optional: true 2099 | 2100 | '@esbuild/linux-loong64@0.15.18': 2101 | optional: true 2102 | 2103 | '@esbuild/linux-loong64@0.17.19': 2104 | optional: true 2105 | 2106 | '@esbuild/linux-mips64el@0.17.19': 2107 | optional: true 2108 | 2109 | '@esbuild/linux-ppc64@0.17.19': 2110 | optional: true 2111 | 2112 | '@esbuild/linux-riscv64@0.17.19': 2113 | optional: true 2114 | 2115 | '@esbuild/linux-s390x@0.17.19': 2116 | optional: true 2117 | 2118 | '@esbuild/linux-x64@0.17.19': 2119 | optional: true 2120 | 2121 | '@esbuild/netbsd-x64@0.17.19': 2122 | optional: true 2123 | 2124 | '@esbuild/openbsd-x64@0.17.19': 2125 | optional: true 2126 | 2127 | '@esbuild/sunos-x64@0.17.19': 2128 | optional: true 2129 | 2130 | '@esbuild/win32-arm64@0.17.19': 2131 | optional: true 2132 | 2133 | '@esbuild/win32-ia32@0.17.19': 2134 | optional: true 2135 | 2136 | '@esbuild/win32-x64@0.17.19': 2137 | optional: true 2138 | 2139 | '@isaacs/cliui@8.0.2': 2140 | dependencies: 2141 | string-width: 5.1.2 2142 | string-width-cjs: string-width@4.2.3 2143 | strip-ansi: 7.1.0 2144 | strip-ansi-cjs: strip-ansi@6.0.1 2145 | wrap-ansi: 8.1.0 2146 | wrap-ansi-cjs: wrap-ansi@7.0.0 2147 | 2148 | '@jridgewell/gen-mapping@0.3.5': 2149 | dependencies: 2150 | '@jridgewell/set-array': 1.2.1 2151 | '@jridgewell/sourcemap-codec': 1.5.0 2152 | '@jridgewell/trace-mapping': 0.3.25 2153 | 2154 | '@jridgewell/resolve-uri@3.1.2': {} 2155 | 2156 | '@jridgewell/set-array@1.2.1': {} 2157 | 2158 | '@jridgewell/sourcemap-codec@1.5.0': {} 2159 | 2160 | '@jridgewell/trace-mapping@0.3.25': 2161 | dependencies: 2162 | '@jridgewell/resolve-uri': 3.1.2 2163 | '@jridgewell/sourcemap-codec': 1.5.0 2164 | 2165 | '@jridgewell/trace-mapping@0.3.9': 2166 | dependencies: 2167 | '@jridgewell/resolve-uri': 3.1.2 2168 | '@jridgewell/sourcemap-codec': 1.5.0 2169 | 2170 | '@nodelib/fs.scandir@2.1.5': 2171 | dependencies: 2172 | '@nodelib/fs.stat': 2.0.5 2173 | run-parallel: 1.2.0 2174 | 2175 | '@nodelib/fs.stat@2.0.5': {} 2176 | 2177 | '@nodelib/fs.walk@1.2.8': 2178 | dependencies: 2179 | '@nodelib/fs.scandir': 2.1.5 2180 | fastq: 1.17.1 2181 | 2182 | '@pkgjs/parseargs@0.11.0': 2183 | optional: true 2184 | 2185 | '@tsconfig/node10@1.0.11': {} 2186 | 2187 | '@tsconfig/node12@1.0.11': {} 2188 | 2189 | '@tsconfig/node14@1.0.3': {} 2190 | 2191 | '@tsconfig/node16@1.0.4': {} 2192 | 2193 | '@types/body-parser@1.19.5': 2194 | dependencies: 2195 | '@types/connect': 3.4.38 2196 | '@types/node': 18.19.42 2197 | 2198 | '@types/chai-subset@1.3.5': 2199 | dependencies: 2200 | '@types/chai': 4.3.16 2201 | 2202 | '@types/chai@4.3.16': {} 2203 | 2204 | '@types/connect@3.4.38': 2205 | dependencies: 2206 | '@types/node': 18.19.42 2207 | 2208 | '@types/cors@2.8.17': 2209 | dependencies: 2210 | '@types/node': 18.19.42 2211 | 2212 | '@types/express-serve-static-core@4.19.5': 2213 | dependencies: 2214 | '@types/node': 18.19.42 2215 | '@types/qs': 6.9.15 2216 | '@types/range-parser': 1.2.7 2217 | '@types/send': 0.17.4 2218 | 2219 | '@types/express@4.17.21': 2220 | dependencies: 2221 | '@types/body-parser': 1.19.5 2222 | '@types/express-serve-static-core': 4.19.5 2223 | '@types/qs': 6.9.15 2224 | '@types/serve-static': 1.15.7 2225 | 2226 | '@types/http-errors@2.0.4': {} 2227 | 2228 | '@types/mime@1.3.5': {} 2229 | 2230 | '@types/node@18.19.42': 2231 | dependencies: 2232 | undici-types: 5.26.5 2233 | 2234 | '@types/qs@6.9.15': {} 2235 | 2236 | '@types/range-parser@1.2.7': {} 2237 | 2238 | '@types/send@0.17.4': 2239 | dependencies: 2240 | '@types/mime': 1.3.5 2241 | '@types/node': 18.19.42 2242 | 2243 | '@types/serve-static@1.15.7': 2244 | dependencies: 2245 | '@types/http-errors': 2.0.4 2246 | '@types/node': 18.19.42 2247 | '@types/send': 0.17.4 2248 | 2249 | '@types/strip-bom@3.0.0': {} 2250 | 2251 | '@types/strip-json-comments@0.0.30': {} 2252 | 2253 | '@vitejs/plugin-vue-jsx@2.1.1(vite@3.2.10(@types/node@18.19.42))(vue@3.4.34(typescript@4.9.5))': 2254 | dependencies: 2255 | '@babel/core': 7.24.9 2256 | '@babel/plugin-transform-typescript': 7.25.0(@babel/core@7.24.9) 2257 | '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.9) 2258 | vite: 3.2.10(@types/node@18.19.42) 2259 | vue: 3.4.34(typescript@4.9.5) 2260 | transitivePeerDependencies: 2261 | - supports-color 2262 | 2263 | '@vitejs/plugin-vue@3.2.0(vite@3.2.10(@types/node@18.19.42))(vue@3.4.34(typescript@4.9.5))': 2264 | dependencies: 2265 | vite: 3.2.10(@types/node@18.19.42) 2266 | vue: 3.4.34(typescript@4.9.5) 2267 | 2268 | '@vue/babel-helper-vue-transform-on@1.2.2': {} 2269 | 2270 | '@vue/babel-plugin-jsx@1.2.2(@babel/core@7.24.9)': 2271 | dependencies: 2272 | '@babel/helper-module-imports': 7.22.15 2273 | '@babel/helper-plugin-utils': 7.24.8 2274 | '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.9) 2275 | '@babel/template': 7.25.0 2276 | '@babel/traverse': 7.25.1 2277 | '@babel/types': 7.25.0 2278 | '@vue/babel-helper-vue-transform-on': 1.2.2 2279 | '@vue/babel-plugin-resolve-type': 1.2.2(@babel/core@7.24.9) 2280 | camelcase: 6.3.0 2281 | html-tags: 3.3.1 2282 | svg-tags: 1.0.0 2283 | optionalDependencies: 2284 | '@babel/core': 7.24.9 2285 | transitivePeerDependencies: 2286 | - supports-color 2287 | 2288 | '@vue/babel-plugin-resolve-type@1.2.2(@babel/core@7.24.9)': 2289 | dependencies: 2290 | '@babel/code-frame': 7.24.7 2291 | '@babel/core': 7.24.9 2292 | '@babel/helper-module-imports': 7.22.15 2293 | '@babel/helper-plugin-utils': 7.24.8 2294 | '@babel/parser': 7.25.0 2295 | '@vue/compiler-sfc': 3.4.34 2296 | 2297 | '@vue/compiler-core@3.4.34': 2298 | dependencies: 2299 | '@babel/parser': 7.25.0 2300 | '@vue/shared': 3.4.34 2301 | entities: 4.5.0 2302 | estree-walker: 2.0.2 2303 | source-map-js: 1.2.0 2304 | 2305 | '@vue/compiler-dom@3.4.34': 2306 | dependencies: 2307 | '@vue/compiler-core': 3.4.34 2308 | '@vue/shared': 3.4.34 2309 | 2310 | '@vue/compiler-sfc@3.4.34': 2311 | dependencies: 2312 | '@babel/parser': 7.25.0 2313 | '@vue/compiler-core': 3.4.34 2314 | '@vue/compiler-dom': 3.4.34 2315 | '@vue/compiler-ssr': 3.4.34 2316 | '@vue/shared': 3.4.34 2317 | estree-walker: 2.0.2 2318 | magic-string: 0.30.10 2319 | postcss: 8.4.40 2320 | source-map-js: 1.2.0 2321 | 2322 | '@vue/compiler-ssr@3.4.34': 2323 | dependencies: 2324 | '@vue/compiler-dom': 3.4.34 2325 | '@vue/shared': 3.4.34 2326 | 2327 | '@vue/devtools-api@6.6.3': {} 2328 | 2329 | '@vue/reactivity@3.4.34': 2330 | dependencies: 2331 | '@vue/shared': 3.4.34 2332 | 2333 | '@vue/runtime-core@3.4.34': 2334 | dependencies: 2335 | '@vue/reactivity': 3.4.34 2336 | '@vue/shared': 3.4.34 2337 | 2338 | '@vue/runtime-dom@3.4.34': 2339 | dependencies: 2340 | '@vue/reactivity': 3.4.34 2341 | '@vue/runtime-core': 3.4.34 2342 | '@vue/shared': 3.4.34 2343 | csstype: 3.1.3 2344 | 2345 | '@vue/server-renderer@3.4.34(vue@3.4.34(typescript@4.9.5))': 2346 | dependencies: 2347 | '@vue/compiler-ssr': 3.4.34 2348 | '@vue/shared': 3.4.34 2349 | vue: 3.4.34(typescript@4.9.5) 2350 | 2351 | '@vue/shared@3.4.34': {} 2352 | 2353 | '@vue/tsconfig@0.1.3(@types/node@18.19.42)': 2354 | optionalDependencies: 2355 | '@types/node': 18.19.42 2356 | 2357 | accepts@1.3.8: 2358 | dependencies: 2359 | mime-types: 2.1.35 2360 | negotiator: 0.6.3 2361 | 2362 | acorn-walk@8.3.3: 2363 | dependencies: 2364 | acorn: 8.12.1 2365 | 2366 | acorn@8.12.1: {} 2367 | 2368 | ansi-regex@5.0.1: {} 2369 | 2370 | ansi-regex@6.0.1: {} 2371 | 2372 | ansi-styles@3.2.1: 2373 | dependencies: 2374 | color-convert: 1.9.3 2375 | 2376 | ansi-styles@4.3.0: 2377 | dependencies: 2378 | color-convert: 2.0.1 2379 | 2380 | ansi-styles@6.2.1: {} 2381 | 2382 | any-promise@1.3.0: {} 2383 | 2384 | anymatch@3.1.3: 2385 | dependencies: 2386 | normalize-path: 3.0.0 2387 | picomatch: 2.3.1 2388 | 2389 | arg@4.1.3: {} 2390 | 2391 | array-flatten@1.1.1: {} 2392 | 2393 | array-union@2.1.0: {} 2394 | 2395 | assertion-error@1.1.0: {} 2396 | 2397 | balanced-match@1.0.2: {} 2398 | 2399 | binary-extensions@2.3.0: {} 2400 | 2401 | body-parser@1.20.2: 2402 | dependencies: 2403 | bytes: 3.1.2 2404 | content-type: 1.0.5 2405 | debug: 2.6.9 2406 | depd: 2.0.0 2407 | destroy: 1.2.0 2408 | http-errors: 2.0.0 2409 | iconv-lite: 0.4.24 2410 | on-finished: 2.4.1 2411 | qs: 6.11.0 2412 | raw-body: 2.5.2 2413 | type-is: 1.6.18 2414 | unpipe: 1.0.0 2415 | transitivePeerDependencies: 2416 | - supports-color 2417 | 2418 | brace-expansion@1.1.11: 2419 | dependencies: 2420 | balanced-match: 1.0.2 2421 | concat-map: 0.0.1 2422 | 2423 | brace-expansion@2.0.1: 2424 | dependencies: 2425 | balanced-match: 1.0.2 2426 | 2427 | braces@3.0.3: 2428 | dependencies: 2429 | fill-range: 7.1.1 2430 | 2431 | browserslist@4.23.2: 2432 | dependencies: 2433 | caniuse-lite: 1.0.30001643 2434 | electron-to-chromium: 1.5.2 2435 | node-releases: 2.0.18 2436 | update-browserslist-db: 1.1.0(browserslist@4.23.2) 2437 | 2438 | buffer-from@1.1.2: {} 2439 | 2440 | bundle-require@4.2.1(esbuild@0.17.19): 2441 | dependencies: 2442 | esbuild: 0.17.19 2443 | load-tsconfig: 0.2.5 2444 | 2445 | bytes@3.1.2: {} 2446 | 2447 | cac@6.7.14: {} 2448 | 2449 | call-bind@1.0.7: 2450 | dependencies: 2451 | es-define-property: 1.0.0 2452 | es-errors: 1.3.0 2453 | function-bind: 1.1.2 2454 | get-intrinsic: 1.2.4 2455 | set-function-length: 1.2.2 2456 | 2457 | camelcase@6.3.0: {} 2458 | 2459 | caniuse-lite@1.0.30001643: {} 2460 | 2461 | chai@4.5.0: 2462 | dependencies: 2463 | assertion-error: 1.1.0 2464 | check-error: 1.0.3 2465 | deep-eql: 4.1.4 2466 | get-func-name: 2.0.2 2467 | loupe: 2.3.7 2468 | pathval: 1.1.1 2469 | type-detect: 4.1.0 2470 | 2471 | chalk@2.4.2: 2472 | dependencies: 2473 | ansi-styles: 3.2.1 2474 | escape-string-regexp: 1.0.5 2475 | supports-color: 5.5.0 2476 | 2477 | check-error@1.0.3: 2478 | dependencies: 2479 | get-func-name: 2.0.2 2480 | 2481 | chokidar@3.6.0: 2482 | dependencies: 2483 | anymatch: 3.1.3 2484 | braces: 3.0.3 2485 | glob-parent: 5.1.2 2486 | is-binary-path: 2.1.0 2487 | is-glob: 4.0.3 2488 | normalize-path: 3.0.0 2489 | readdirp: 3.6.0 2490 | optionalDependencies: 2491 | fsevents: 2.3.3 2492 | 2493 | color-convert@1.9.3: 2494 | dependencies: 2495 | color-name: 1.1.3 2496 | 2497 | color-convert@2.0.1: 2498 | dependencies: 2499 | color-name: 1.1.4 2500 | 2501 | color-name@1.1.3: {} 2502 | 2503 | color-name@1.1.4: {} 2504 | 2505 | commander@4.1.1: {} 2506 | 2507 | concat-map@0.0.1: {} 2508 | 2509 | content-disposition@0.5.4: 2510 | dependencies: 2511 | safe-buffer: 5.2.1 2512 | 2513 | content-type@1.0.5: {} 2514 | 2515 | convert-source-map@2.0.0: {} 2516 | 2517 | cookie-signature@1.0.6: {} 2518 | 2519 | cookie@0.6.0: {} 2520 | 2521 | cors@2.8.5: 2522 | dependencies: 2523 | object-assign: 4.1.1 2524 | vary: 1.1.2 2525 | 2526 | create-require@1.1.1: {} 2527 | 2528 | cross-spawn@7.0.3: 2529 | dependencies: 2530 | path-key: 3.1.1 2531 | shebang-command: 2.0.0 2532 | which: 2.0.2 2533 | 2534 | crypto-js@4.2.0: {} 2535 | 2536 | csstype@3.1.3: {} 2537 | 2538 | debug@2.6.9: 2539 | dependencies: 2540 | ms: 2.0.0 2541 | 2542 | debug@4.3.6: 2543 | dependencies: 2544 | ms: 2.1.2 2545 | 2546 | deep-eql@4.1.4: 2547 | dependencies: 2548 | type-detect: 4.1.0 2549 | 2550 | define-data-property@1.1.4: 2551 | dependencies: 2552 | es-define-property: 1.0.0 2553 | es-errors: 1.3.0 2554 | gopd: 1.0.1 2555 | 2556 | depd@2.0.0: {} 2557 | 2558 | destroy@1.2.0: {} 2559 | 2560 | diff@4.0.2: {} 2561 | 2562 | dir-glob@3.0.1: 2563 | dependencies: 2564 | path-type: 4.0.0 2565 | 2566 | dynamic-dedupe@0.3.0: 2567 | dependencies: 2568 | xtend: 4.0.2 2569 | 2570 | eastasianwidth@0.2.0: {} 2571 | 2572 | ee-first@1.1.1: {} 2573 | 2574 | electron-to-chromium@1.5.2: {} 2575 | 2576 | emoji-regex@8.0.0: {} 2577 | 2578 | emoji-regex@9.2.2: {} 2579 | 2580 | encodeurl@1.0.2: {} 2581 | 2582 | entities@4.5.0: {} 2583 | 2584 | es-define-property@1.0.0: 2585 | dependencies: 2586 | get-intrinsic: 1.2.4 2587 | 2588 | es-errors@1.3.0: {} 2589 | 2590 | esbuild-android-64@0.14.54: 2591 | optional: true 2592 | 2593 | esbuild-android-64@0.15.18: 2594 | optional: true 2595 | 2596 | esbuild-android-arm64@0.14.54: 2597 | optional: true 2598 | 2599 | esbuild-android-arm64@0.15.18: 2600 | optional: true 2601 | 2602 | esbuild-darwin-64@0.14.54: 2603 | optional: true 2604 | 2605 | esbuild-darwin-64@0.15.18: 2606 | optional: true 2607 | 2608 | esbuild-darwin-arm64@0.14.54: 2609 | optional: true 2610 | 2611 | esbuild-darwin-arm64@0.15.18: 2612 | optional: true 2613 | 2614 | esbuild-freebsd-64@0.14.54: 2615 | optional: true 2616 | 2617 | esbuild-freebsd-64@0.15.18: 2618 | optional: true 2619 | 2620 | esbuild-freebsd-arm64@0.14.54: 2621 | optional: true 2622 | 2623 | esbuild-freebsd-arm64@0.15.18: 2624 | optional: true 2625 | 2626 | esbuild-linux-32@0.14.54: 2627 | optional: true 2628 | 2629 | esbuild-linux-32@0.15.18: 2630 | optional: true 2631 | 2632 | esbuild-linux-64@0.14.54: 2633 | optional: true 2634 | 2635 | esbuild-linux-64@0.15.18: 2636 | optional: true 2637 | 2638 | esbuild-linux-arm64@0.14.54: 2639 | optional: true 2640 | 2641 | esbuild-linux-arm64@0.15.18: 2642 | optional: true 2643 | 2644 | esbuild-linux-arm@0.14.54: 2645 | optional: true 2646 | 2647 | esbuild-linux-arm@0.15.18: 2648 | optional: true 2649 | 2650 | esbuild-linux-mips64le@0.14.54: 2651 | optional: true 2652 | 2653 | esbuild-linux-mips64le@0.15.18: 2654 | optional: true 2655 | 2656 | esbuild-linux-ppc64le@0.14.54: 2657 | optional: true 2658 | 2659 | esbuild-linux-ppc64le@0.15.18: 2660 | optional: true 2661 | 2662 | esbuild-linux-riscv64@0.14.54: 2663 | optional: true 2664 | 2665 | esbuild-linux-riscv64@0.15.18: 2666 | optional: true 2667 | 2668 | esbuild-linux-s390x@0.14.54: 2669 | optional: true 2670 | 2671 | esbuild-linux-s390x@0.15.18: 2672 | optional: true 2673 | 2674 | esbuild-netbsd-64@0.14.54: 2675 | optional: true 2676 | 2677 | esbuild-netbsd-64@0.15.18: 2678 | optional: true 2679 | 2680 | esbuild-openbsd-64@0.14.54: 2681 | optional: true 2682 | 2683 | esbuild-openbsd-64@0.15.18: 2684 | optional: true 2685 | 2686 | esbuild-sunos-64@0.14.54: 2687 | optional: true 2688 | 2689 | esbuild-sunos-64@0.15.18: 2690 | optional: true 2691 | 2692 | esbuild-windows-32@0.14.54: 2693 | optional: true 2694 | 2695 | esbuild-windows-32@0.15.18: 2696 | optional: true 2697 | 2698 | esbuild-windows-64@0.14.54: 2699 | optional: true 2700 | 2701 | esbuild-windows-64@0.15.18: 2702 | optional: true 2703 | 2704 | esbuild-windows-arm64@0.14.54: 2705 | optional: true 2706 | 2707 | esbuild-windows-arm64@0.15.18: 2708 | optional: true 2709 | 2710 | esbuild@0.14.54: 2711 | optionalDependencies: 2712 | '@esbuild/linux-loong64': 0.14.54 2713 | esbuild-android-64: 0.14.54 2714 | esbuild-android-arm64: 0.14.54 2715 | esbuild-darwin-64: 0.14.54 2716 | esbuild-darwin-arm64: 0.14.54 2717 | esbuild-freebsd-64: 0.14.54 2718 | esbuild-freebsd-arm64: 0.14.54 2719 | esbuild-linux-32: 0.14.54 2720 | esbuild-linux-64: 0.14.54 2721 | esbuild-linux-arm: 0.14.54 2722 | esbuild-linux-arm64: 0.14.54 2723 | esbuild-linux-mips64le: 0.14.54 2724 | esbuild-linux-ppc64le: 0.14.54 2725 | esbuild-linux-riscv64: 0.14.54 2726 | esbuild-linux-s390x: 0.14.54 2727 | esbuild-netbsd-64: 0.14.54 2728 | esbuild-openbsd-64: 0.14.54 2729 | esbuild-sunos-64: 0.14.54 2730 | esbuild-windows-32: 0.14.54 2731 | esbuild-windows-64: 0.14.54 2732 | esbuild-windows-arm64: 0.14.54 2733 | 2734 | esbuild@0.15.18: 2735 | optionalDependencies: 2736 | '@esbuild/android-arm': 0.15.18 2737 | '@esbuild/linux-loong64': 0.15.18 2738 | esbuild-android-64: 0.15.18 2739 | esbuild-android-arm64: 0.15.18 2740 | esbuild-darwin-64: 0.15.18 2741 | esbuild-darwin-arm64: 0.15.18 2742 | esbuild-freebsd-64: 0.15.18 2743 | esbuild-freebsd-arm64: 0.15.18 2744 | esbuild-linux-32: 0.15.18 2745 | esbuild-linux-64: 0.15.18 2746 | esbuild-linux-arm: 0.15.18 2747 | esbuild-linux-arm64: 0.15.18 2748 | esbuild-linux-mips64le: 0.15.18 2749 | esbuild-linux-ppc64le: 0.15.18 2750 | esbuild-linux-riscv64: 0.15.18 2751 | esbuild-linux-s390x: 0.15.18 2752 | esbuild-netbsd-64: 0.15.18 2753 | esbuild-openbsd-64: 0.15.18 2754 | esbuild-sunos-64: 0.15.18 2755 | esbuild-windows-32: 0.15.18 2756 | esbuild-windows-64: 0.15.18 2757 | esbuild-windows-arm64: 0.15.18 2758 | 2759 | esbuild@0.17.19: 2760 | optionalDependencies: 2761 | '@esbuild/android-arm': 0.17.19 2762 | '@esbuild/android-arm64': 0.17.19 2763 | '@esbuild/android-x64': 0.17.19 2764 | '@esbuild/darwin-arm64': 0.17.19 2765 | '@esbuild/darwin-x64': 0.17.19 2766 | '@esbuild/freebsd-arm64': 0.17.19 2767 | '@esbuild/freebsd-x64': 0.17.19 2768 | '@esbuild/linux-arm': 0.17.19 2769 | '@esbuild/linux-arm64': 0.17.19 2770 | '@esbuild/linux-ia32': 0.17.19 2771 | '@esbuild/linux-loong64': 0.17.19 2772 | '@esbuild/linux-mips64el': 0.17.19 2773 | '@esbuild/linux-ppc64': 0.17.19 2774 | '@esbuild/linux-riscv64': 0.17.19 2775 | '@esbuild/linux-s390x': 0.17.19 2776 | '@esbuild/linux-x64': 0.17.19 2777 | '@esbuild/netbsd-x64': 0.17.19 2778 | '@esbuild/openbsd-x64': 0.17.19 2779 | '@esbuild/sunos-x64': 0.17.19 2780 | '@esbuild/win32-arm64': 0.17.19 2781 | '@esbuild/win32-ia32': 0.17.19 2782 | '@esbuild/win32-x64': 0.17.19 2783 | 2784 | escalade@3.1.2: {} 2785 | 2786 | escape-html@1.0.3: {} 2787 | 2788 | escape-string-regexp@1.0.5: {} 2789 | 2790 | estree-walker@2.0.2: {} 2791 | 2792 | etag@1.8.1: {} 2793 | 2794 | execa@5.1.1: 2795 | dependencies: 2796 | cross-spawn: 7.0.3 2797 | get-stream: 6.0.1 2798 | human-signals: 2.1.0 2799 | is-stream: 2.0.1 2800 | merge-stream: 2.0.0 2801 | npm-run-path: 4.0.1 2802 | onetime: 5.1.2 2803 | signal-exit: 3.0.7 2804 | strip-final-newline: 2.0.0 2805 | 2806 | express@4.19.2: 2807 | dependencies: 2808 | accepts: 1.3.8 2809 | array-flatten: 1.1.1 2810 | body-parser: 1.20.2 2811 | content-disposition: 0.5.4 2812 | content-type: 1.0.5 2813 | cookie: 0.6.0 2814 | cookie-signature: 1.0.6 2815 | debug: 2.6.9 2816 | depd: 2.0.0 2817 | encodeurl: 1.0.2 2818 | escape-html: 1.0.3 2819 | etag: 1.8.1 2820 | finalhandler: 1.2.0 2821 | fresh: 0.5.2 2822 | http-errors: 2.0.0 2823 | merge-descriptors: 1.0.1 2824 | methods: 1.1.2 2825 | on-finished: 2.4.1 2826 | parseurl: 1.3.3 2827 | path-to-regexp: 0.1.7 2828 | proxy-addr: 2.0.7 2829 | qs: 6.11.0 2830 | range-parser: 1.2.1 2831 | safe-buffer: 5.2.1 2832 | send: 0.18.0 2833 | serve-static: 1.15.0 2834 | setprototypeof: 1.2.0 2835 | statuses: 2.0.1 2836 | type-is: 1.6.18 2837 | utils-merge: 1.0.1 2838 | vary: 1.1.2 2839 | transitivePeerDependencies: 2840 | - supports-color 2841 | 2842 | fast-glob@3.3.2: 2843 | dependencies: 2844 | '@nodelib/fs.stat': 2.0.5 2845 | '@nodelib/fs.walk': 1.2.8 2846 | glob-parent: 5.1.2 2847 | merge2: 1.4.1 2848 | micromatch: 4.0.7 2849 | 2850 | fastq@1.17.1: 2851 | dependencies: 2852 | reusify: 1.0.4 2853 | 2854 | fill-range@7.1.1: 2855 | dependencies: 2856 | to-regex-range: 5.0.1 2857 | 2858 | finalhandler@1.2.0: 2859 | dependencies: 2860 | debug: 2.6.9 2861 | encodeurl: 1.0.2 2862 | escape-html: 1.0.3 2863 | on-finished: 2.4.1 2864 | parseurl: 1.3.3 2865 | statuses: 2.0.1 2866 | unpipe: 1.0.0 2867 | transitivePeerDependencies: 2868 | - supports-color 2869 | 2870 | foreground-child@3.2.1: 2871 | dependencies: 2872 | cross-spawn: 7.0.3 2873 | signal-exit: 4.1.0 2874 | 2875 | forwarded@0.2.0: {} 2876 | 2877 | fresh@0.5.2: {} 2878 | 2879 | fs.realpath@1.0.0: {} 2880 | 2881 | fsevents@2.3.3: 2882 | optional: true 2883 | 2884 | function-bind@1.1.2: {} 2885 | 2886 | gensync@1.0.0-beta.2: {} 2887 | 2888 | get-func-name@2.0.2: {} 2889 | 2890 | get-intrinsic@1.2.4: 2891 | dependencies: 2892 | es-errors: 1.3.0 2893 | function-bind: 1.1.2 2894 | has-proto: 1.0.3 2895 | has-symbols: 1.0.3 2896 | hasown: 2.0.2 2897 | 2898 | get-stream@6.0.1: {} 2899 | 2900 | glob-parent@5.1.2: 2901 | dependencies: 2902 | is-glob: 4.0.3 2903 | 2904 | glob@10.4.5: 2905 | dependencies: 2906 | foreground-child: 3.2.1 2907 | jackspeak: 3.4.3 2908 | minimatch: 9.0.5 2909 | minipass: 7.1.2 2910 | package-json-from-dist: 1.0.0 2911 | path-scurry: 1.11.1 2912 | 2913 | glob@7.2.3: 2914 | dependencies: 2915 | fs.realpath: 1.0.0 2916 | inflight: 1.0.6 2917 | inherits: 2.0.4 2918 | minimatch: 3.1.2 2919 | once: 1.4.0 2920 | path-is-absolute: 1.0.1 2921 | 2922 | globals@11.12.0: {} 2923 | 2924 | globby@11.1.0: 2925 | dependencies: 2926 | array-union: 2.1.0 2927 | dir-glob: 3.0.1 2928 | fast-glob: 3.3.2 2929 | ignore: 5.3.1 2930 | merge2: 1.4.1 2931 | slash: 3.0.0 2932 | 2933 | gopd@1.0.1: 2934 | dependencies: 2935 | get-intrinsic: 1.2.4 2936 | 2937 | has-flag@3.0.0: {} 2938 | 2939 | has-property-descriptors@1.0.2: 2940 | dependencies: 2941 | es-define-property: 1.0.0 2942 | 2943 | has-proto@1.0.3: {} 2944 | 2945 | has-symbols@1.0.3: {} 2946 | 2947 | hasown@2.0.2: 2948 | dependencies: 2949 | function-bind: 1.1.2 2950 | 2951 | html-tags@3.3.1: {} 2952 | 2953 | http-errors@2.0.0: 2954 | dependencies: 2955 | depd: 2.0.0 2956 | inherits: 2.0.4 2957 | setprototypeof: 1.2.0 2958 | statuses: 2.0.1 2959 | toidentifier: 1.0.1 2960 | 2961 | human-signals@2.1.0: {} 2962 | 2963 | iconv-lite@0.4.24: 2964 | dependencies: 2965 | safer-buffer: 2.1.2 2966 | 2967 | ignore@5.3.1: {} 2968 | 2969 | inflight@1.0.6: 2970 | dependencies: 2971 | once: 1.4.0 2972 | wrappy: 1.0.2 2973 | 2974 | inherits@2.0.4: {} 2975 | 2976 | ipaddr.js@1.9.1: {} 2977 | 2978 | is-binary-path@2.1.0: 2979 | dependencies: 2980 | binary-extensions: 2.3.0 2981 | 2982 | is-core-module@2.15.0: 2983 | dependencies: 2984 | hasown: 2.0.2 2985 | 2986 | is-extglob@2.1.1: {} 2987 | 2988 | is-fullwidth-code-point@3.0.0: {} 2989 | 2990 | is-glob@4.0.3: 2991 | dependencies: 2992 | is-extglob: 2.1.1 2993 | 2994 | is-number@7.0.0: {} 2995 | 2996 | is-stream@2.0.1: {} 2997 | 2998 | isexe@2.0.0: {} 2999 | 3000 | jackspeak@3.4.3: 3001 | dependencies: 3002 | '@isaacs/cliui': 8.0.2 3003 | optionalDependencies: 3004 | '@pkgjs/parseargs': 0.11.0 3005 | 3006 | joycon@3.1.1: {} 3007 | 3008 | js-tokens@4.0.0: {} 3009 | 3010 | jsesc@2.5.2: {} 3011 | 3012 | json5@2.2.3: {} 3013 | 3014 | jwt-decode@3.1.2: {} 3015 | 3016 | lilconfig@2.1.0: {} 3017 | 3018 | lines-and-columns@1.2.4: {} 3019 | 3020 | load-tsconfig@0.2.5: {} 3021 | 3022 | local-pkg@0.4.3: {} 3023 | 3024 | lodash.sortby@4.7.0: {} 3025 | 3026 | loupe@2.3.7: 3027 | dependencies: 3028 | get-func-name: 2.0.2 3029 | 3030 | lru-cache@10.4.3: {} 3031 | 3032 | lru-cache@5.1.1: 3033 | dependencies: 3034 | yallist: 3.1.1 3035 | 3036 | magic-string@0.30.10: 3037 | dependencies: 3038 | '@jridgewell/sourcemap-codec': 1.5.0 3039 | 3040 | make-error@1.3.6: {} 3041 | 3042 | media-typer@0.3.0: {} 3043 | 3044 | merge-descriptors@1.0.1: {} 3045 | 3046 | merge-stream@2.0.0: {} 3047 | 3048 | merge2@1.4.1: {} 3049 | 3050 | methods@1.1.2: {} 3051 | 3052 | micromatch@4.0.7: 3053 | dependencies: 3054 | braces: 3.0.3 3055 | picomatch: 2.3.1 3056 | 3057 | mime-db@1.52.0: {} 3058 | 3059 | mime-types@2.1.35: 3060 | dependencies: 3061 | mime-db: 1.52.0 3062 | 3063 | mime@1.6.0: {} 3064 | 3065 | mimic-fn@2.1.0: {} 3066 | 3067 | minimatch@3.1.2: 3068 | dependencies: 3069 | brace-expansion: 1.1.11 3070 | 3071 | minimatch@9.0.5: 3072 | dependencies: 3073 | brace-expansion: 2.0.1 3074 | 3075 | minimist@1.2.8: {} 3076 | 3077 | minipass@7.1.2: {} 3078 | 3079 | mkdirp@1.0.4: {} 3080 | 3081 | ms@2.0.0: {} 3082 | 3083 | ms@2.1.2: {} 3084 | 3085 | ms@2.1.3: {} 3086 | 3087 | mz@2.7.0: 3088 | dependencies: 3089 | any-promise: 1.3.0 3090 | object-assign: 4.1.1 3091 | thenify-all: 1.6.0 3092 | 3093 | nanoid@3.3.7: {} 3094 | 3095 | negotiator@0.6.3: {} 3096 | 3097 | node-releases@2.0.18: {} 3098 | 3099 | normalize-path@3.0.0: {} 3100 | 3101 | npm-run-path@4.0.1: 3102 | dependencies: 3103 | path-key: 3.1.1 3104 | 3105 | object-assign@4.1.1: {} 3106 | 3107 | object-inspect@1.13.2: {} 3108 | 3109 | oidc-client-ts@2.4.0: 3110 | dependencies: 3111 | crypto-js: 4.2.0 3112 | jwt-decode: 3.1.2 3113 | 3114 | on-finished@2.4.1: 3115 | dependencies: 3116 | ee-first: 1.1.1 3117 | 3118 | once@1.4.0: 3119 | dependencies: 3120 | wrappy: 1.0.2 3121 | 3122 | onetime@5.1.2: 3123 | dependencies: 3124 | mimic-fn: 2.1.0 3125 | 3126 | package-json-from-dist@1.0.0: {} 3127 | 3128 | parseurl@1.3.3: {} 3129 | 3130 | path-is-absolute@1.0.1: {} 3131 | 3132 | path-key@3.1.1: {} 3133 | 3134 | path-parse@1.0.7: {} 3135 | 3136 | path-scurry@1.11.1: 3137 | dependencies: 3138 | lru-cache: 10.4.3 3139 | minipass: 7.1.2 3140 | 3141 | path-to-regexp@0.1.7: {} 3142 | 3143 | path-type@4.0.0: {} 3144 | 3145 | pathval@1.1.1: {} 3146 | 3147 | picocolors@1.0.1: {} 3148 | 3149 | picomatch@2.3.1: {} 3150 | 3151 | pirates@4.0.6: {} 3152 | 3153 | postcss-load-config@3.1.4(postcss@8.4.40)(ts-node@10.9.2(@types/node@18.19.42)(typescript@4.9.5)): 3154 | dependencies: 3155 | lilconfig: 2.1.0 3156 | yaml: 1.10.2 3157 | optionalDependencies: 3158 | postcss: 8.4.40 3159 | ts-node: 10.9.2(@types/node@18.19.42)(typescript@4.9.5) 3160 | 3161 | postcss@8.4.40: 3162 | dependencies: 3163 | nanoid: 3.3.7 3164 | picocolors: 1.0.1 3165 | source-map-js: 1.2.0 3166 | 3167 | proxy-addr@2.0.7: 3168 | dependencies: 3169 | forwarded: 0.2.0 3170 | ipaddr.js: 1.9.1 3171 | 3172 | punycode@2.3.1: {} 3173 | 3174 | qs@6.11.0: 3175 | dependencies: 3176 | side-channel: 1.0.6 3177 | 3178 | queue-microtask@1.2.3: {} 3179 | 3180 | range-parser@1.2.1: {} 3181 | 3182 | raw-body@2.5.2: 3183 | dependencies: 3184 | bytes: 3.1.2 3185 | http-errors: 2.0.0 3186 | iconv-lite: 0.4.24 3187 | unpipe: 1.0.0 3188 | 3189 | readdirp@3.6.0: 3190 | dependencies: 3191 | picomatch: 2.3.1 3192 | 3193 | resolve-from@5.0.0: {} 3194 | 3195 | resolve@1.22.8: 3196 | dependencies: 3197 | is-core-module: 2.15.0 3198 | path-parse: 1.0.7 3199 | supports-preserve-symlinks-flag: 1.0.0 3200 | 3201 | reusify@1.0.4: {} 3202 | 3203 | rimraf@2.7.1: 3204 | dependencies: 3205 | glob: 7.2.3 3206 | 3207 | rollup@2.77.3: 3208 | optionalDependencies: 3209 | fsevents: 2.3.3 3210 | 3211 | rollup@2.79.1: 3212 | optionalDependencies: 3213 | fsevents: 2.3.3 3214 | 3215 | rollup@3.29.4: 3216 | optionalDependencies: 3217 | fsevents: 2.3.3 3218 | 3219 | run-parallel@1.2.0: 3220 | dependencies: 3221 | queue-microtask: 1.2.3 3222 | 3223 | safe-buffer@5.2.1: {} 3224 | 3225 | safer-buffer@2.1.2: {} 3226 | 3227 | semver@6.3.1: {} 3228 | 3229 | send@0.18.0: 3230 | dependencies: 3231 | debug: 2.6.9 3232 | depd: 2.0.0 3233 | destroy: 1.2.0 3234 | encodeurl: 1.0.2 3235 | escape-html: 1.0.3 3236 | etag: 1.8.1 3237 | fresh: 0.5.2 3238 | http-errors: 2.0.0 3239 | mime: 1.6.0 3240 | ms: 2.1.3 3241 | on-finished: 2.4.1 3242 | range-parser: 1.2.1 3243 | statuses: 2.0.1 3244 | transitivePeerDependencies: 3245 | - supports-color 3246 | 3247 | serve-static@1.15.0: 3248 | dependencies: 3249 | encodeurl: 1.0.2 3250 | escape-html: 1.0.3 3251 | parseurl: 1.3.3 3252 | send: 0.18.0 3253 | transitivePeerDependencies: 3254 | - supports-color 3255 | 3256 | set-function-length@1.2.2: 3257 | dependencies: 3258 | define-data-property: 1.1.4 3259 | es-errors: 1.3.0 3260 | function-bind: 1.1.2 3261 | get-intrinsic: 1.2.4 3262 | gopd: 1.0.1 3263 | has-property-descriptors: 1.0.2 3264 | 3265 | setprototypeof@1.2.0: {} 3266 | 3267 | shebang-command@2.0.0: 3268 | dependencies: 3269 | shebang-regex: 3.0.0 3270 | 3271 | shebang-regex@3.0.0: {} 3272 | 3273 | side-channel@1.0.6: 3274 | dependencies: 3275 | call-bind: 1.0.7 3276 | es-errors: 1.3.0 3277 | get-intrinsic: 1.2.4 3278 | object-inspect: 1.13.2 3279 | 3280 | signal-exit@3.0.7: {} 3281 | 3282 | signal-exit@4.1.0: {} 3283 | 3284 | slash@3.0.0: {} 3285 | 3286 | source-map-js@1.2.0: {} 3287 | 3288 | source-map-support@0.5.21: 3289 | dependencies: 3290 | buffer-from: 1.1.2 3291 | source-map: 0.6.1 3292 | 3293 | source-map@0.6.1: {} 3294 | 3295 | source-map@0.8.0-beta.0: 3296 | dependencies: 3297 | whatwg-url: 7.1.0 3298 | 3299 | statuses@2.0.1: {} 3300 | 3301 | string-width@4.2.3: 3302 | dependencies: 3303 | emoji-regex: 8.0.0 3304 | is-fullwidth-code-point: 3.0.0 3305 | strip-ansi: 6.0.1 3306 | 3307 | string-width@5.1.2: 3308 | dependencies: 3309 | eastasianwidth: 0.2.0 3310 | emoji-regex: 9.2.2 3311 | strip-ansi: 7.1.0 3312 | 3313 | strip-ansi@6.0.1: 3314 | dependencies: 3315 | ansi-regex: 5.0.1 3316 | 3317 | strip-ansi@7.1.0: 3318 | dependencies: 3319 | ansi-regex: 6.0.1 3320 | 3321 | strip-bom@3.0.0: {} 3322 | 3323 | strip-final-newline@2.0.0: {} 3324 | 3325 | strip-json-comments@2.0.1: {} 3326 | 3327 | sucrase@3.35.0: 3328 | dependencies: 3329 | '@jridgewell/gen-mapping': 0.3.5 3330 | commander: 4.1.1 3331 | glob: 10.4.5 3332 | lines-and-columns: 1.2.4 3333 | mz: 2.7.0 3334 | pirates: 4.0.6 3335 | ts-interface-checker: 0.1.13 3336 | 3337 | supports-color@5.5.0: 3338 | dependencies: 3339 | has-flag: 3.0.0 3340 | 3341 | supports-preserve-symlinks-flag@1.0.0: {} 3342 | 3343 | svg-tags@1.0.0: {} 3344 | 3345 | thenify-all@1.6.0: 3346 | dependencies: 3347 | thenify: 3.3.1 3348 | 3349 | thenify@3.3.1: 3350 | dependencies: 3351 | any-promise: 1.3.0 3352 | 3353 | tinypool@0.2.4: {} 3354 | 3355 | tinyspy@0.3.3: {} 3356 | 3357 | to-fast-properties@2.0.0: {} 3358 | 3359 | to-regex-range@5.0.1: 3360 | dependencies: 3361 | is-number: 7.0.0 3362 | 3363 | toidentifier@1.0.1: {} 3364 | 3365 | tr46@1.0.1: 3366 | dependencies: 3367 | punycode: 2.3.1 3368 | 3369 | tree-kill@1.2.2: {} 3370 | 3371 | ts-interface-checker@0.1.13: {} 3372 | 3373 | ts-node-dev@2.0.0(@types/node@18.19.42)(typescript@4.9.5): 3374 | dependencies: 3375 | chokidar: 3.6.0 3376 | dynamic-dedupe: 0.3.0 3377 | minimist: 1.2.8 3378 | mkdirp: 1.0.4 3379 | resolve: 1.22.8 3380 | rimraf: 2.7.1 3381 | source-map-support: 0.5.21 3382 | tree-kill: 1.2.2 3383 | ts-node: 10.9.2(@types/node@18.19.42)(typescript@4.9.5) 3384 | tsconfig: 7.0.0 3385 | typescript: 4.9.5 3386 | transitivePeerDependencies: 3387 | - '@swc/core' 3388 | - '@swc/wasm' 3389 | - '@types/node' 3390 | 3391 | ts-node@10.9.2(@types/node@18.19.42)(typescript@4.9.5): 3392 | dependencies: 3393 | '@cspotcode/source-map-support': 0.8.1 3394 | '@tsconfig/node10': 1.0.11 3395 | '@tsconfig/node12': 1.0.11 3396 | '@tsconfig/node14': 1.0.3 3397 | '@tsconfig/node16': 1.0.4 3398 | '@types/node': 18.19.42 3399 | acorn: 8.12.1 3400 | acorn-walk: 8.3.3 3401 | arg: 4.1.3 3402 | create-require: 1.1.1 3403 | diff: 4.0.2 3404 | make-error: 1.3.6 3405 | typescript: 4.9.5 3406 | v8-compile-cache-lib: 3.0.1 3407 | yn: 3.1.1 3408 | 3409 | tsconfig@7.0.0: 3410 | dependencies: 3411 | '@types/strip-bom': 3.0.0 3412 | '@types/strip-json-comments': 0.0.30 3413 | strip-bom: 3.0.0 3414 | strip-json-comments: 2.0.1 3415 | 3416 | tslib@2.6.3: {} 3417 | 3418 | tsup@6.7.0(postcss@8.4.40)(ts-node@10.9.2(@types/node@18.19.42)(typescript@4.9.5))(typescript@4.9.5): 3419 | dependencies: 3420 | bundle-require: 4.2.1(esbuild@0.17.19) 3421 | cac: 6.7.14 3422 | chokidar: 3.6.0 3423 | debug: 4.3.6 3424 | esbuild: 0.17.19 3425 | execa: 5.1.1 3426 | globby: 11.1.0 3427 | joycon: 3.1.1 3428 | postcss-load-config: 3.1.4(postcss@8.4.40)(ts-node@10.9.2(@types/node@18.19.42)(typescript@4.9.5)) 3429 | resolve-from: 5.0.0 3430 | rollup: 3.29.4 3431 | source-map: 0.8.0-beta.0 3432 | sucrase: 3.35.0 3433 | tree-kill: 1.2.2 3434 | optionalDependencies: 3435 | postcss: 8.4.40 3436 | typescript: 4.9.5 3437 | transitivePeerDependencies: 3438 | - supports-color 3439 | - ts-node 3440 | 3441 | type-detect@4.1.0: {} 3442 | 3443 | type-is@1.6.18: 3444 | dependencies: 3445 | media-typer: 0.3.0 3446 | mime-types: 2.1.35 3447 | 3448 | typescript@4.9.5: {} 3449 | 3450 | undici-types@5.26.5: {} 3451 | 3452 | unpipe@1.0.0: {} 3453 | 3454 | update-browserslist-db@1.1.0(browserslist@4.23.2): 3455 | dependencies: 3456 | browserslist: 4.23.2 3457 | escalade: 3.1.2 3458 | picocolors: 1.0.1 3459 | 3460 | utils-merge@1.0.1: {} 3461 | 3462 | v8-compile-cache-lib@3.0.1: {} 3463 | 3464 | vary@1.1.2: {} 3465 | 3466 | vite@2.9.18: 3467 | dependencies: 3468 | esbuild: 0.14.54 3469 | postcss: 8.4.40 3470 | resolve: 1.22.8 3471 | rollup: 2.77.3 3472 | optionalDependencies: 3473 | fsevents: 2.3.3 3474 | 3475 | vite@3.2.10(@types/node@18.19.42): 3476 | dependencies: 3477 | esbuild: 0.15.18 3478 | postcss: 8.4.40 3479 | resolve: 1.22.8 3480 | rollup: 2.79.1 3481 | optionalDependencies: 3482 | '@types/node': 18.19.42 3483 | fsevents: 2.3.3 3484 | 3485 | vitest@0.16.0: 3486 | dependencies: 3487 | '@types/chai': 4.3.16 3488 | '@types/chai-subset': 1.3.5 3489 | '@types/node': 18.19.42 3490 | chai: 4.5.0 3491 | debug: 4.3.6 3492 | local-pkg: 0.4.3 3493 | tinypool: 0.2.4 3494 | tinyspy: 0.3.3 3495 | vite: 2.9.18 3496 | transitivePeerDependencies: 3497 | - less 3498 | - sass 3499 | - stylus 3500 | - supports-color 3501 | 3502 | vue-router@4.4.0(vue@3.4.34(typescript@4.9.5)): 3503 | dependencies: 3504 | '@vue/devtools-api': 6.6.3 3505 | vue: 3.4.34(typescript@4.9.5) 3506 | 3507 | vue@3.4.34(typescript@4.9.5): 3508 | dependencies: 3509 | '@vue/compiler-dom': 3.4.34 3510 | '@vue/compiler-sfc': 3.4.34 3511 | '@vue/runtime-dom': 3.4.34 3512 | '@vue/server-renderer': 3.4.34(vue@3.4.34(typescript@4.9.5)) 3513 | '@vue/shared': 3.4.34 3514 | optionalDependencies: 3515 | typescript: 4.9.5 3516 | 3517 | webidl-conversions@4.0.2: {} 3518 | 3519 | whatwg-url@7.1.0: 3520 | dependencies: 3521 | lodash.sortby: 4.7.0 3522 | tr46: 1.0.1 3523 | webidl-conversions: 4.0.2 3524 | 3525 | which@2.0.2: 3526 | dependencies: 3527 | isexe: 2.0.0 3528 | 3529 | wrap-ansi@7.0.0: 3530 | dependencies: 3531 | ansi-styles: 4.3.0 3532 | string-width: 4.2.3 3533 | strip-ansi: 6.0.1 3534 | 3535 | wrap-ansi@8.1.0: 3536 | dependencies: 3537 | ansi-styles: 6.2.1 3538 | string-width: 5.1.2 3539 | strip-ansi: 7.1.0 3540 | 3541 | wrappy@1.0.2: {} 3542 | 3543 | xtend@4.0.2: {} 3544 | 3545 | yallist@3.1.1: {} 3546 | 3547 | yaml@1.10.2: {} 3548 | 3549 | yn@3.1.1: {} 3550 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - "example/*" 3 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { UserManager, UserManagerEvents } from "oidc-client-ts"; 2 | import { unref } from "vue"; 3 | import { useOidcStore } from "./store"; 4 | import { inlineOidcEvents } from "./store/events"; 5 | import { VueOidcSettings } from "./store/index"; 6 | import { oidcRedirectUriKey, useAuth } from "./useAuth"; 7 | 8 | const { state, actions } = useOidcStore(); 9 | 10 | export type VueOidcEvents = { 11 | [P in keyof UserManagerEvents]?: Parameters[0]; 12 | }; 13 | 14 | export type MaybeNull = T | null; 15 | 16 | export interface RefreshTokenConfig { 17 | enable?: boolean; 18 | time?: number; 19 | settings?: VueOidcSettings | null; 20 | } 21 | 22 | const inlineCreateOidcOptions: Partial = { 23 | refreshToken: { 24 | enable: false, 25 | time: 3000 * 10, 26 | settings: null, 27 | }, 28 | }; 29 | 30 | export interface CreateOidcOptions { 31 | oidcSettings: VueOidcSettings; 32 | /** 33 | * whether open autoAuthenticate 34 | */ 35 | auth?: boolean; 36 | /** 37 | * oidc events 38 | */ 39 | events?: VueOidcEvents; 40 | /** 41 | * refresh token 42 | */ 43 | refreshToken?: RefreshTokenConfig; 44 | /** 45 | * key of oidc redirect callback 46 | */ 47 | redirectUriKey?: string; 48 | } 49 | 50 | export async function createOidc(options: CreateOidcOptions) { 51 | const _options = { ...inlineCreateOidcOptions, ...options }; 52 | const { oidcSettings, auth, refreshToken } = _options; 53 | const events = { ...inlineOidcEvents, ...options.events }; 54 | oidcRedirectUriKey.value = options.redirectUriKey || oidcRedirectUriKey.value; 55 | 56 | unref(state).settings = _options; 57 | unref(state).oidcSettings = oidcSettings; 58 | unref(state).userManager = new UserManager(oidcSettings); 59 | unref(state).refreshUserManager = refreshToken?.settings 60 | ? new UserManager(refreshToken.settings) 61 | : null; 62 | unref(state).redirect_uri = 63 | (await unref(state).userManager?.settings.userStore.get( 64 | oidcRedirectUriKey.value 65 | )) || ""; 66 | //add event listeners to the oidc client 67 | Object.keys(events).forEach((key) => { 68 | unref(state).userManager!.events[key](events[key]); 69 | }); 70 | 71 | unref(state) 72 | .userManager!.getUser() 73 | .then((user) => { 74 | actions.value.setUser(user!); 75 | }); 76 | 77 | const { autoAuthenticate } = useAuth(); 78 | 79 | if (auth && autoAuthenticate) await autoAuthenticate(); 80 | } 81 | 82 | export * from "oidc-client-ts"; 83 | export * from "./store"; 84 | export * from "./useAuth"; 85 | -------------------------------------------------------------------------------- /src/store/events.ts: -------------------------------------------------------------------------------- 1 | import { User } from "oidc-client-ts"; 2 | 3 | export const inlineOidcEvents = { 4 | addUserLoaded, 5 | }; 6 | 7 | function addUserLoaded(user: User) { 8 | console.log(user); 9 | } 10 | -------------------------------------------------------------------------------- /src/store/index.ts: -------------------------------------------------------------------------------- 1 | import { MaybeNull } from "@/index"; 2 | import { Awaitable } from "@/utils"; 3 | import { 4 | User, 5 | UserManager, 6 | UserManagerSettings, 7 | UserProfile, 8 | } from "oidc-client-ts"; 9 | import { ComputedRef, UnwrapNestedRefs, computed, reactive } from "vue"; 10 | import { CreateOidcOptions } from ".."; 11 | 12 | export interface VueOidcSettings extends UserManagerSettings { 13 | /** 14 | * redirect callback is login success after 15 | */ 16 | onSigninRedirectCallback?: (user: User) => Awaitable; 17 | /** 18 | * redirect callback is login before 19 | */ 20 | onBeforeSigninRedirectCallback?: () => Awaitable; 21 | } 22 | 23 | export type UseUserProfile = T; 24 | 25 | export type OidcUser = User & { 26 | profile: UseUserProfile; 27 | }; 28 | 29 | export interface OidcState { 30 | settings: MaybeNull; 31 | oidcSettings: MaybeNull; 32 | userManager: MaybeNull; 33 | refreshUserManager: MaybeNull; 34 | user: MaybeNull>; 35 | token: ComputedRef; 36 | hasExpiresAt: ComputedRef; 37 | redirect_uri: string; 38 | } 39 | 40 | export interface OidcActions { 41 | setUser(user: User): void; 42 | removeUser(): void; 43 | } 44 | 45 | const state: UnwrapNestedRefs = reactive({ 46 | settings: null, 47 | oidcSettings: null, 48 | userManager: null, 49 | refreshUserManager: null, 50 | user: null, 51 | token: computed(() => state.user?.access_token || null), 52 | hasExpiresAt: computed( 53 | () => Date.now() / 1000 > state.user?.expires_at! || false 54 | ), 55 | redirect_uri: "", 56 | }); 57 | 58 | const actions: OidcActions = { 59 | setUser(user: User) { 60 | state.user = user; 61 | state.userManager?.storeUser(user); 62 | }, 63 | async removeUser() { 64 | state.user = null; 65 | await state.userManager?.removeUser(); 66 | }, 67 | }; 68 | 69 | export function useOidcStore(): { 70 | state: ComputedRef>>; 71 | actions: ComputedRef; 72 | } { 73 | return { 74 | state: computed(() => state as UnwrapNestedRefs>), 75 | actions: computed(() => actions), 76 | }; 77 | } 78 | -------------------------------------------------------------------------------- /src/useAuth.ts: -------------------------------------------------------------------------------- 1 | import { 2 | SigninRedirectArgs, 3 | SigninSilentArgs, 4 | SignoutRedirectArgs, 5 | User, 6 | } from "oidc-client-ts"; 7 | import { ref, unref } from "vue"; 8 | import { useOidcStore } from "./store"; 9 | import { isPathOfCallback } from "./utils"; 10 | 11 | const { state, actions } = useOidcStore(); 12 | 13 | export const oidcRedirectUriKey = ref("OIDC_REDIRECT_URI"); 14 | 15 | export function useAuth() { 16 | return { 17 | autoAuthenticate, 18 | signinRedirect, 19 | signoutRedirect, 20 | refreshToken, 21 | setRedirectUri, 22 | }; 23 | } 24 | 25 | async function signinRedirect(arg?: SigninRedirectArgs) { 26 | state.value.oidcSettings?.onBeforeSigninRedirectCallback && 27 | (await state.value.oidcSettings?.onBeforeSigninRedirectCallback()); 28 | if (!unref(state).user) { 29 | unref(state).userManager?.signinRedirect(arg); 30 | } 31 | } 32 | 33 | async function signoutRedirect(arg?: SignoutRedirectArgs) { 34 | await unref(state).userManager?.signoutRedirect(arg); 35 | } 36 | 37 | /** 38 | * @fn autoAuthenticate - will try to authenticate the user silently 39 | */ 40 | async function autoAuthenticate(uri: string = "") { 41 | let timer: NodeJS.Timer | null = null; 42 | const user = (await unref(state).userManager?.getUser()) || unref(state).user; 43 | 44 | //if the user and pathCallback is not, then we can authenticate 45 | if (!user && !isPathOfCallback()) { 46 | await unref(state).userManager?.settings.userStore?.set( 47 | oidcRedirectUriKey.value, 48 | uri || location.pathname + location.search || "/" 49 | ); 50 | state.value.oidcSettings?.onBeforeSigninRedirectCallback && 51 | (await state.value.oidcSettings?.onBeforeSigninRedirectCallback()); 52 | await unref(state).userManager?.removeUser(); 53 | await unref(state).userManager?.signinRedirect(); 54 | return; 55 | } 56 | //if the user is not and pathCallback is, then we can set the user 57 | if (!user && isPathOfCallback()) { 58 | const user = await unref(state).userManager?.signinRedirectCallback(); 59 | unref(state).oidcSettings?.onSigninRedirectCallback && 60 | (await unref(state).oidcSettings?.onSigninRedirectCallback?.(user!)); 61 | unref(actions).setUser(user!); 62 | return; 63 | } 64 | //if the user and pathCallback of true, then we can set the user 65 | if (user && !isPathOfCallback()) { 66 | if (timer) clearInterval(timer); 67 | 68 | unref(actions).setUser(user); 69 | 70 | useRefreshToken(); 71 | //if the user has expired, then we can remove the user 72 | if (unref(state).hasExpiresAt) { 73 | await signoutRedirect(); 74 | return; 75 | } 76 | return; 77 | } 78 | //if the user is and pathCallback is then we can recur set the user and run function name is onSigninRedirectCallback 79 | if (user && isPathOfCallback()) { 80 | timer = setInterval(async () => { 81 | unref(state).oidcSettings?.onSigninRedirectCallback && 82 | (await unref(state).oidcSettings?.onSigninRedirectCallback?.(user)); 83 | unref(actions).setUser(user); 84 | }, 3000); 85 | return; 86 | } 87 | } 88 | 89 | export function useRefreshToken() { 90 | const _config = state.value.settings?.refreshToken; 91 | if (_config?.enable) { 92 | setInterval(async () => { 93 | refreshToken(); 94 | }, _config.time); 95 | } 96 | } 97 | 98 | function refreshToken( 99 | args?: SigninSilentArgs | undefined, 100 | fn1?: (user: User | null) => void | Promise, 101 | fn2?: (error: any) => void | Promise 102 | ) { 103 | const mgr = state.value.refreshUserManager; 104 | mgr 105 | ?.signinSilent(args) 106 | .then((res) => { 107 | res && unref(actions).setUser(res); 108 | fn1 && fn1(res); 109 | }) 110 | .catch((err) => { 111 | fn2 && fn2(err); 112 | }); 113 | } 114 | 115 | async function setRedirectUri(uri: string) { 116 | await unref(state).userManager?.settings.userStore?.set( 117 | oidcRedirectUriKey.value, 118 | uri 119 | ); 120 | } 121 | -------------------------------------------------------------------------------- /src/utils.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @fn isPathOfCallback 3 | * @brief Checks if the path is a callback path 4 | */ 5 | // export function isPathOfCallback( 6 | // location: Location = window.location 7 | // ): boolean { 8 | // // response_mode: query 9 | // let searchParams = new URLSearchParams(location.search); 10 | // if ( 11 | // (searchParams.get("code") || searchParams.get("error")) && 12 | // searchParams.get("state") 13 | // ) { 14 | // return true; 15 | // } 16 | 17 | // // response_mode: fragment 18 | // searchParams = new URLSearchParams(location.hash.replace("#", "?")); 19 | // if ( 20 | // (searchParams.get("code") || searchParams.get("error")) && 21 | // searchParams.get("state") 22 | // ) { 23 | // return true; 24 | // } 25 | 26 | // return false; 27 | // } 28 | 29 | export function isPathOfCallback( 30 | location: Location = window.location 31 | ): boolean { 32 | // response_mode: query 33 | let searchParams = new URLSearchParams(location.search); 34 | if ( 35 | (searchParams.get("code") || searchParams.get("error")) && 36 | searchParams.get("state") 37 | ) { 38 | return true; 39 | } 40 | 41 | // response_mode: fragment 42 | searchParams = new URLSearchParams(location.hash.replace("#", "?")); 43 | if ( 44 | (searchParams.get("code") || searchParams.get("error")) && 45 | searchParams.get("state") 46 | ) { 47 | return true; 48 | } 49 | 50 | return false; 51 | } 52 | 53 | export type Awaitable = Promise | T; 54 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "esnext", 4 | "useDefineForClassFields": true, 5 | "module": "esnext", 6 | "moduleResolution": "node", 7 | "strict": true, 8 | "jsx": "preserve", 9 | "sourceMap": true, 10 | "resolveJsonModule": true, 11 | "esModuleInterop": true, 12 | "baseUrl": ".", 13 | "paths": { 14 | "@/*": [ 15 | "src/*" 16 | ], 17 | }, 18 | "skipLibCheck": true, 19 | "lib": [ 20 | "esnext", 21 | "dom" 22 | ], 23 | "noImplicitAny": false 24 | }, 25 | "include": [ 26 | "src/**/*.ts", 27 | "src/**/*.d.ts", 28 | ], 29 | "exclude": [ 30 | "node_modules", 31 | ] 32 | } -------------------------------------------------------------------------------- /tsup.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "tsup"; 2 | 3 | export default defineConfig({ 4 | entry: ["src/index.ts"], 5 | format: ["cjs", "esm"], 6 | dts: true, 7 | splitting: true, 8 | clean: true, 9 | skipNodeModulesBundle: true, 10 | }); 11 | --------------------------------------------------------------------------------